aboutsummaryrefslogtreecommitdiff
path: root/packages/ui
diff options
context:
space:
mode:
authorPauline <git@ethanlibs.co>2023-11-26 17:13:07 -0500
committerPauline <git@ethanlibs.co>2023-11-26 17:13:07 -0500
commite9d485fe3b5db8c426ac03b30ed8917df0baa62d (patch)
tree69a684d53abce6b636620cc0000a6e84846246d7 /packages/ui
parent85c31ee8d278ac6fa1f0ba143b78d65e5f665f32 (diff)
downloadNexus-e9d485fe3b5db8c426ac03b30ed8917df0baa62d.tar.gz
Nexus-e9d485fe3b5db8c426ac03b30ed8917df0baa62d.tar.bz2
Nexus-e9d485fe3b5db8c426ac03b30ed8917df0baa62d.zip
feat(lint): switch to eslint config and formatting (use vscode for autoformat)
Diffstat (limited to 'packages/ui')
-rw-r--r--packages/ui/.eslintrc.js8
-rw-r--r--packages/ui/package.json29
-rw-r--r--packages/ui/postcss.config.js2
-rw-r--r--packages/ui/src/keys.ts36
-rw-r--r--packages/ui/src/utils.tsx14
-rw-r--r--packages/ui/style/tailwind.js46
6 files changed, 78 insertions, 57 deletions
diff --git a/packages/ui/.eslintrc.js b/packages/ui/.eslintrc.js
deleted file mode 100644
index f80eaa9..0000000
--- a/packages/ui/.eslintrc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/** @type {import('eslint').ESLint.ConfigData} */
-module.exports = {
- extends: [require.resolve('@polyfrost/config/eslint/web.js')],
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: './tsconfig.json'
- }
-};
diff --git a/packages/ui/package.json b/packages/ui/package.json
index d843ba8..c2c95a0 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -1,8 +1,6 @@
{
"name": "@polyfrost/ui",
"version": "0.0.0",
- "main": "src/index.ts",
- "types": "src/index.ts",
"exports": {
".": "./src/index.ts",
"./src/forms": "./src/forms/index.ts",
@@ -12,8 +10,9 @@
"./style/style.scss": "./style/style.scss",
"./package.json": "./package.json"
},
+ "main": "src/index.ts",
+ "types": "src/index.ts",
"scripts": {
- "lint": "eslint src --cache",
"typecheck": "tsc -b"
},
"dependencies": {
@@ -21,31 +20,31 @@
"@headlessui/tailwindcss": "^0.2.0",
"@polyfrost/assets": "workspace:*",
"@react-spring/web": "^9.7.3",
- "@tailwindcss/forms": "^0.5.6",
+ "@tailwindcss/forms": "^0.5.7",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router-dom": "^6.17.0",
- "sonner": "^1.0.3",
+ "react-router-dom": "^6.20.0",
+ "sonner": "^1.2.3",
"tailwindcss-radix": "^2.8.0",
"ts-pattern": "^5.0.5",
- "use-debounce": "^9.0.4",
+ "use-debounce": "^10.0.0",
"zod": "^3.22.4"
},
"devDependencies": {
- "@babel/core": "^7.23.2",
+ "@babel/core": "^7.23.3",
"@polyfrost/config": "workspace:*",
- "@storybook/types": "^7.5.1",
+ "@storybook/types": "^7.5.3",
"@tailwindcss/typography": "^0.5.10",
- "@types/node": "~18.17.19",
- "@types/react": "^18.2.31",
- "@types/react-dom": "^18.2.14",
+ "@types/node": "~20.10.0",
+ "@types/react": "^18.2.38",
+ "@types/react-dom": "^18.2.17",
"autoprefixer": "^10.4.16",
"postcss": "^8.4.31",
- "sass": "^1.69.4",
- "tailwindcss": "^3.3.3",
+ "sass": "^1.69.5",
+ "tailwindcss": "^3.3.5",
"tailwindcss-animate": "^1.0.7",
- "typescript": "^5.2.2"
+ "typescript": "^5.3.2"
}
}
diff --git a/packages/ui/postcss.config.js b/packages/ui/postcss.config.js
index 708cbaf..cc95735 100644
--- a/packages/ui/postcss.config.js
+++ b/packages/ui/postcss.config.js
@@ -1,3 +1,3 @@
module.exports = {
- plugins: [require('tailwindcss'), require('autoprefixer')]
+ plugins: [require('tailwindcss'), require('autoprefixer')],
};
diff --git a/packages/ui/src/keys.ts b/packages/ui/src/keys.ts
index 55940f9..bb8eaa4 100644
--- a/packages/ui/src/keys.ts
+++ b/packages/ui/src/keys.ts
@@ -1,3 +1,4 @@
+// https://www.w3.org/TR/uievents-key/#keys-modifier
export enum ModifierKeys {
Alt = 'Alt',
Shift = 'Shift',
@@ -10,14 +11,30 @@ export enum ModifierKeys {
NumLock = 'NumLock',
ScrollLock = 'ScrollLock',
Symbol = 'Symbol',
- SymbolLock = 'SymbolLock'
+ SymbolLock = 'SymbolLock',
+}
+
+export enum EditingKeys {
+ Backspace = 'Backspace',
+ Delete = 'Delete',
+}
+
+export enum UIKeys {
+ Escape = 'Escape',
+}
+
+export enum NavigationKeys {
+ ArrowUp = 'ArrowUp',
+ ArrowDown = 'ArrowDown',
+ ArrowLeft = 'ArrowLeft',
+ ArrowRight = 'ArrowRight',
}
export type OSforKeys = 'macOS' | 'Windows' | 'Other';
export const modifierSymbols: Record<
- ModifierKeys,
- { macOS?: string; Windows?: string; Other: string }
+ ModifierKeys | EditingKeys | UIKeys | NavigationKeys,
+ { macOS?: string, Windows?: string, Other: string }
> = {
Alt: { macOS: '⌥', Other: 'Alt' },
AltGraph: { macOS: '⌥', Other: 'Alt' },
@@ -30,10 +47,17 @@ export const modifierSymbols: Record<
ScrollLock: { macOS: '⤓', Other: 'ScrLk' },
Shift: { Other: 'Shift', macOS: '⇧' },
Symbol: { macOS: '⎄', Other: 'Sym' },
- SymbolLock: { macOS: '⎄', Other: 'Sym' }
+ SymbolLock: { macOS: '⎄', Other: 'Sym' },
+ Escape: { macOS: '⎋', Other: 'Esc' },
+ Delete: { macOS: '⌦', Other: 'Del' },
+ Backspace: { macOS: '⌫', Other: '⟵' },
+ ArrowUp: { Other: '↑' },
+ ArrowDown: { Other: '↓' },
+ ArrowLeft: { Other: '←' },
+ ArrowRight: { Other: '→' },
};
-export const keySymbols: Record<string, { macOS?: string; Windows?: string; Other: string }> = {
+export const keySymbols: Record<string, { macOS?: string, Windows?: string, Other: string }> = {
' ': { Other: '␣' },
'Tab': { macOS: '⇥', Other: '⭾' },
'Enter': { macOS: '↩', Other: '↵' },
@@ -52,5 +76,5 @@ export const keySymbols: Record<string, { macOS?: string; Windows?: string; Othe
'Shift': { macOS: '⇧', Other: 'Shift' },
'PrintScreen': { Other: 'PrtSc' },
'ScrollLock': { macOS: '⤓', Other: 'ScrLk' },
- 'Pause': { macOS: '⎉', Other: 'Pause' }
+ 'Pause': { macOS: '⎉', Other: 'Pause' },
};
diff --git a/packages/ui/src/utils.tsx b/packages/ui/src/utils.tsx
index 5ccb488..67782bb 100644
--- a/packages/ui/src/utils.tsx
+++ b/packages/ui/src/utils.tsx
@@ -1,16 +1,16 @@
import clsx from 'clsx';
import React from 'react';
-const twFactory =
- (element: any) =>
- ([newClassNames, ..._]: TemplateStringsArray) =>
+function twFactory(element: any) {
+ return ([newClassNames, ..._]: TemplateStringsArray) =>
React.forwardRef(({ className, ...props }: any, ref) =>
React.createElement(element, {
...props,
className: clsx(newClassNames, className),
- ref
- })
+ ref,
+ }),
);
+}
type ClassnameFactory<T> = (s: TemplateStringsArray) => T;
@@ -19,10 +19,10 @@ type TailwindFactory = {
React.ForwardRefExoticComponent<JSX.IntrinsicElements[K]>
>;
} & {
- <T>(c: T): ClassnameFactory<T>;
+ <T>(c: T): ClassnameFactory<T>
};
export const tw = new Proxy((() => {}) as unknown as TailwindFactory, {
get: (_, property: string) => twFactory(property),
- apply: (_, __, [el]: [React.ReactElement]) => twFactory(el)
+ apply: (_, __, [el]: [React.ReactElement]) => twFactory(el),
});
diff --git a/packages/ui/style/tailwind.js b/packages/ui/style/tailwind.js
index fc05bd9..8ebf041 100644
--- a/packages/ui/style/tailwind.js
+++ b/packages/ui/style/tailwind.js
@@ -1,21 +1,24 @@
const defaultTheme = require('tailwindcss/defaultTheme');
/** @type {(varName: string) => string} */
-const alpha = (varName) => `hsla(var(${varName}), <alpha-value>)`;
+// eslint-disable-next-line unused-imports/no-unused-vars
+const alpha = varName => `hsla(var(${varName}), <alpha-value>)`;
const contentExts = `{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue,stories.tsx}`;
+// TODO: make this not CJS
+
/**
* @param {string} app
* @param {import('tailwindcss').Config} options
- * @returns {import('tailwindcss').Config}
+ * @returns {import('tailwindcss').Config} the tailwind config
*/
module.exports = (app, options) => {
/** @type {import('tailwindcss').Config} */
- let config = {
+ const config = {
content: [
`../../apps/${app}/src/**/*.${contentExts}`,
`../../packages/*/src/**/*.${contentExts}`,
- `../../interface/**/*.${contentExts}`
+ `../../interface/**/*.${contentExts}`,
],
darkMode: 'class',
theme: {
@@ -25,7 +28,7 @@ module.exports = (app, options) => {
md: '868px',
lg: '1024px',
xl: '1280px',
- ...defaultTheme.screens
+ ...defaultTheme.screens,
},
fontSize: {
'xs': '12px',
@@ -37,7 +40,7 @@ module.exports = (app, options) => {
'header-lg': '32px',
'body-sm': '15px',
'body': '16px',
- 'body-lg': '17px'
+ 'body-lg': '17px',
},
borderRadius: {
none: '0',
@@ -45,31 +48,31 @@ module.exports = (app, options) => {
md: '5px',
lg: '8px',
xl: '12px',
- full: '100vw'
+ full: '100vw',
},
extend: {
colors: {
blue: {
- 500: 'rgba(31, 101, 214, 1)'
+ 500: 'rgba(31, 101, 214, 1)',
},
gray: {
50: 'rgba(240, 242, 244, 1)',
400: 'rgba(138, 150, 168, 1)',
700: 'rgba(65, 74, 88, 1)',
- 800: 'rgba(42, 47, 55, 1)'
+ 800: 'rgba(42, 47, 55, 1)',
},
white: {
DEFAULT: 'rgba(255, 255, 255, 1)',
secondary: 'rgba(238, 241, 254, 1)',
- hover: 'rgba(231, 235, 252, 1)'
+ hover: 'rgba(231, 235, 252, 1)',
},
black: {
- DEFAULT: 'rgba(0, 0, 0, 1)'
+ DEFAULT: 'rgba(0, 0, 0, 1)',
},
text: {
DEFAULT: 'rgba(2, 3, 7, 1)',
- primary: 'rgba(2, 3, 7, 1)'
- }
+ primary: 'rgba(2, 3, 7, 1)',
+ },
},
extend: {
transitionTimingFunction: {
@@ -100,20 +103,23 @@ module.exports = (app, options) => {
'in-out-circ': 'cubic-bezier(0.85, 0, 0.15, 1)',
'in-back': 'cubic-bezier(0.36, 0, 0.66, -0.56)',
'out-back': 'cubic-bezier(0.34, 1.56, 0.64, 1)',
- 'in-out-back': 'cubic-bezier(0.68, -0.6, 0.32, 1.6)'
- }
- }
- }
+ 'in-out-back': 'cubic-bezier(0.68, -0.6, 0.32, 1.6)',
+ },
+ },
+ },
},
plugins: [
require('@tailwindcss/forms'),
require('tailwindcss-animate'),
require('@headlessui/tailwindcss'),
- require('tailwindcss-radix')()
- ]
+ require('tailwindcss-radix')(),
+ ],
+
+ ...options,
};
- if (app === 'website') config.plugins.push(require('@tailwindcss/typography'));
+ if (app === 'website')
+ config.plugins.push(require('@tailwindcss/typography'));
return config;
};