@eml-payments/ui-kit 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +149 -3
- package/dist/src/components/Button/Button.d.ts +3 -0
- package/dist/src/components/Button/Button.js +11 -0
- package/dist/{components → src/components}/Button/Button.types.d.ts +1 -1
- package/dist/{components/Button/Button.d.ts → src/components/Button/ButtonVariants.d.ts} +0 -3
- package/dist/{components/Button/Button.js → src/components/Button/ButtonVariants.js} +0 -9
- package/dist/{components → src/components}/Checkbox/Checkbox.d.ts +1 -1
- package/dist/{components → src/components}/Checkbox/Checkbox.js +1 -3
- package/dist/{components → src/components}/Checkbox/Checkbox.types.d.ts +2 -2
- package/dist/{components → src/components}/Divider/Divider.d.ts +1 -1
- package/dist/{components → src/components}/Ellipsis/Ellipsis.d.ts +1 -1
- package/dist/{components → src/components}/Ellipsis/Ellipsis.functions.js +2 -1
- package/dist/{components → src/components}/Input/Input.d.ts +1 -1
- package/dist/{components → src/components}/Input/Input.js +2 -1
- package/dist/{components → src/components}/Input/Input.types.d.ts +1 -1
- package/dist/{components → src/components}/Label/Label.types.d.ts +2 -1
- package/dist/src/components/Pills/Pills.d.ts +2 -0
- package/dist/src/components/Pills/Pills.js +31 -0
- package/dist/src/components/Pills/Pills.stories.d.ts +14 -0
- package/dist/src/components/Pills/Pills.stories.js +76 -0
- package/dist/src/components/Pills/Pills.types.d.ts +9 -0
- package/dist/src/components/Pills/index.d.ts +2 -0
- package/dist/src/components/Pills/index.js +2 -0
- package/dist/{components → src/components}/RadioGroup/RadioGroup.js +1 -1
- package/dist/src/components/RadioGroup/RadioGroup.types.d.ts +5 -0
- package/dist/src/components/Select/Select.d.ts +14 -0
- package/dist/src/components/Select/Select.js +25 -0
- package/dist/src/components/Select/Select.stories.d.ts +10 -0
- package/dist/src/components/Select/Select.stories.js +33 -0
- package/dist/src/components/Select/Select.types.d.ts +11 -0
- package/dist/src/components/Select/index.d.ts +2 -0
- package/dist/src/components/Select/index.js +2 -0
- package/dist/src/components/SelectWrapper/SelectWrapper.d.ts +2 -0
- package/dist/src/components/SelectWrapper/SelectWrapper.js +8 -0
- package/dist/src/components/SelectWrapper/SelectWrapper.stories.d.ts +12 -0
- package/dist/src/components/SelectWrapper/SelectWrapper.stories.js +83 -0
- package/dist/src/components/SelectWrapper/SelectWrapper.types.d.ts +15 -0
- package/dist/src/components/SelectWrapper/index.d.ts +2 -0
- package/dist/src/components/SelectWrapper/index.js +2 -0
- package/dist/src/components/SelectWrapper/select.d.ts +13 -0
- package/dist/src/components/SelectWrapper/select.js +25 -0
- package/dist/{components → src/components}/Switch/Switch.d.ts +1 -1
- package/dist/{components → src/components}/Switch/Switch.js +15 -15
- package/dist/{components → src/components}/Switch/Switch.types.d.ts +2 -2
- package/dist/src/components/Table/Pagination/PaginationControls.d.ts +2 -0
- package/dist/src/components/Table/Pagination/PaginationControls.js +11 -0
- package/dist/src/components/Table/Pagination/PaginationControls.types.d.ts +9 -0
- package/dist/src/components/Table/Pagination/PaginationControls.types.js +1 -0
- package/dist/src/components/Table/Pagination/index.d.ts +2 -0
- package/dist/src/components/Table/Pagination/index.js +2 -0
- package/dist/src/components/Table/Table.d.ts +4 -0
- package/dist/src/components/Table/Table.js +32 -0
- package/dist/src/components/Table/Table.stories.d.ts +20 -0
- package/dist/src/components/Table/Table.stories.js +75 -0
- package/dist/src/components/Table/Table.types.d.ts +22 -0
- package/dist/src/components/Table/Table.types.js +1 -0
- package/dist/src/components/Table/hooks/useTableController.d.ts +13 -0
- package/dist/src/components/Table/hooks/useTableController.js +66 -0
- package/dist/src/components/Table/table.helpers.d.ts +4 -0
- package/dist/src/components/Table/table.helpers.js +24 -0
- package/dist/{components → src/components}/Tooltip/Tooltip.stories.d.ts +2 -2
- package/dist/{components → src/components}/Tooltip/Tooltip.types.d.ts +1 -1
- package/dist/src/components/Tooltip/Tooltip.types.js +1 -0
- package/dist/src/components/index.d.ts +10 -0
- package/dist/src/components/index.js +10 -0
- package/dist/src/config/defaultTheme.d.ts +2 -0
- package/dist/{config → src/config}/uikitConfig.d.ts +1 -1
- package/dist/src/config/uikitConfig.js +1 -0
- package/dist/{context → src/context}/UIKitContext.d.ts +1 -1
- package/dist/src/context/UIKitProvider.d.ts +5 -0
- package/dist/{context → src/context}/UIKitProvider.js +8 -4
- package/dist/{index.d.ts → src/index.d.ts} +1 -3
- package/dist/{index.js → src/index.js} +1 -3
- package/dist/src/lib/utils.d.ts +2 -0
- package/dist/src/lib/utils.js +5 -0
- package/package.json +21 -3
- package/dist/components/RadioGroup/RadioGroup.types.d.ts +0 -5
- package/dist/components/Table/Table.d.ts +0 -36
- package/dist/components/Table/Table.js +0 -120
- package/dist/components/Table/Table.stories.d.ts +0 -9
- package/dist/components/Table/Table.stories.js +0 -19
- package/dist/components/Table/Table.types.d.ts +0 -4
- package/dist/config/defaultTheme.d.ts +0 -2
- package/dist/context/UIKitProvider.d.ts +0 -5
- package/dist/index.css +0 -1
- package/dist/stories/Header.stories.d.ts +0 -18
- package/dist/stories/Header.stories.js +0 -26
- package/dist/stories/Page.stories.d.ts +0 -12
- package/dist/stories/Page.stories.js +0 -24
- /package/dist/{components → src/components}/Button/Button.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Button/Button.stories.js +0 -0
- /package/dist/{components → src/components}/Button/Button.types.js +0 -0
- /package/dist/{components → src/components}/Button/index.d.ts +0 -0
- /package/dist/{components → src/components}/Button/index.js +0 -0
- /package/dist/{components → src/components}/Checkbox/Checkbox.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Checkbox/Checkbox.stories.js +0 -0
- /package/dist/{components → src/components}/Checkbox/Checkbox.types.js +0 -0
- /package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
- /package/dist/{components → src/components}/Checkbox/index.js +0 -0
- /package/dist/{components → src/components}/Divider/Divider.js +0 -0
- /package/dist/{components → src/components}/Divider/Divider.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Divider/Divider.stories.js +0 -0
- /package/dist/{components → src/components}/Divider/Divider.types.d.ts +0 -0
- /package/dist/{components → src/components}/Divider/Divider.types.js +0 -0
- /package/dist/{components → src/components}/Divider/index.d.ts +0 -0
- /package/dist/{components → src/components}/Divider/index.js +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.functions.d.ts +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.js +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.stories.js +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.types.d.ts +0 -0
- /package/dist/{components → src/components}/Ellipsis/Ellipsis.types.js +0 -0
- /package/dist/{components → src/components}/Ellipsis/index.d.ts +0 -0
- /package/dist/{components → src/components}/Ellipsis/index.js +0 -0
- /package/dist/{components → src/components}/Input/Input.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Input/Input.stories.js +0 -0
- /package/dist/{components → src/components}/Input/Input.types.js +0 -0
- /package/dist/{components → src/components}/Input/index.d.ts +0 -0
- /package/dist/{components → src/components}/Input/index.js +0 -0
- /package/dist/{components → src/components}/Label/Label.d.ts +0 -0
- /package/dist/{components → src/components}/Label/Label.js +0 -0
- /package/dist/{components → src/components}/Label/Label.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Label/Label.stories.js +0 -0
- /package/dist/{components → src/components}/Label/Label.types.js +0 -0
- /package/dist/{components → src/components}/Label/index.d.ts +0 -0
- /package/dist/{components → src/components}/Label/index.js +0 -0
- /package/dist/{components/RadioGroup/RadioGroup.types.js → src/components/Pills/Pills.types.js} +0 -0
- /package/dist/{components → src/components}/RadioGroup/RadioGroup.d.ts +0 -0
- /package/dist/{components → src/components}/RadioGroup/RadioGroup.stories.d.ts +0 -0
- /package/dist/{components → src/components}/RadioGroup/RadioGroup.stories.js +0 -0
- /package/dist/{components/Switch/Switch.types.js → src/components/RadioGroup/RadioGroup.types.js} +0 -0
- /package/dist/{components → src/components}/RadioGroup/index.d.ts +0 -0
- /package/dist/{components → src/components}/RadioGroup/index.js +0 -0
- /package/dist/{components/Table/Table.types.js → src/components/Select/Select.types.js} +0 -0
- /package/dist/{components/Tooltip/Tooltip.types.js → src/components/SelectWrapper/SelectWrapper.types.js} +0 -0
- /package/dist/{components → src/components}/Switch/Switch.stories.d.ts +0 -0
- /package/dist/{components → src/components}/Switch/Switch.stories.js +0 -0
- /package/dist/{config/uikitConfig.js → src/components/Switch/Switch.types.js} +0 -0
- /package/dist/{components → src/components}/Switch/index.d.ts +0 -0
- /package/dist/{components → src/components}/Switch/index.js +0 -0
- /package/dist/{components → src/components}/Table/index.d.ts +0 -0
- /package/dist/{components → src/components}/Table/index.js +0 -0
- /package/dist/{components → src/components}/Tooltip/Tooltip.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/Tooltip.js +0 -0
- /package/dist/{components → src/components}/Tooltip/Tooltip.stories.js +0 -0
- /package/dist/{components → src/components}/Tooltip/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/index.js +0 -0
- /package/dist/{config → src/config}/defaultTheme.js +0 -0
- /package/dist/{config → src/config}/index.d.ts +0 -0
- /package/dist/{config → src/config}/index.js +0 -0
- /package/dist/{context → src/context}/UIKitContext.js +0 -0
- /package/dist/{context → src/context}/useUIKitTheme.d.ts +0 -0
- /package/dist/{context → src/context}/useUIKitTheme.js +0 -0
- /package/dist/{hooks → src/hooks}/useToggle.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useToggle.js +0 -0
- /package/dist/{stories → src/stories}/Header.d.ts +0 -0
- /package/dist/{stories → src/stories}/Header.js +0 -0
- /package/dist/{stories → src/stories}/Page.d.ts +0 -0
- /package/dist/{stories → src/stories}/Page.js +0 -0
- /package/dist/{types → src/types}/index.d.ts +0 -0
- /package/dist/{types → src/types}/index.js +0 -0
- /package/dist/{utils → src/utils}/classNames.d.ts +0 -0
- /package/dist/{utils → src/utils}/classNames.js +0 -0
|
@@ -10,18 +10,22 @@ const mergeTheme = (user) => {
|
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
function applyThemeToRoot(theme) {
|
|
13
|
-
if (typeof window === 'undefined')
|
|
13
|
+
if (typeof window === 'undefined') {
|
|
14
14
|
return;
|
|
15
|
+
}
|
|
15
16
|
const root = document.documentElement;
|
|
16
17
|
const { colors = {}, radius, fontFamily } = theme;
|
|
17
18
|
Object.entries(colors).forEach(([key, value]) => {
|
|
18
|
-
if (value)
|
|
19
|
+
if (value) {
|
|
19
20
|
root.style.setProperty(`--uikit-${key}`, value);
|
|
21
|
+
}
|
|
20
22
|
});
|
|
21
|
-
if (radius)
|
|
23
|
+
if (radius) {
|
|
22
24
|
root.style.setProperty('--uikit-radius', radius);
|
|
23
|
-
|
|
25
|
+
}
|
|
26
|
+
if (fontFamily) {
|
|
24
27
|
root.style.setProperty('--uikit-font-family', fontFamily);
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
export const UIKitProvider = ({ config, children }) => {
|
|
27
31
|
const mergedTheme = useMemo(() => mergeTheme(config), [config]);
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { UIKitProvider } from './context/UIKitProvider';
|
|
2
2
|
export { useUIKitTheme } from './context/useUIKitTheme';
|
|
3
|
-
export * from './components
|
|
4
|
-
export * from './components/Input';
|
|
5
|
-
export * from './components/Table';
|
|
3
|
+
export * from './components';
|
|
6
4
|
export * from './types';
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { UIKitProvider } from './context/UIKitProvider';
|
|
2
2
|
export { useUIKitTheme } from './context/useUIKitTheme';
|
|
3
|
-
export * from './components
|
|
4
|
-
export * from './components/Input';
|
|
5
|
-
export * from './components/Table';
|
|
3
|
+
export * from './components';
|
|
6
4
|
export * from './types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eml-payments/ui-kit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "ARLO UIKit",
|
|
6
6
|
"homepage": "https://github.com/EML-Payments/arlo.npm.uikit#readme",
|
|
@@ -37,12 +37,20 @@
|
|
|
37
37
|
"build-storybook": "storybook build",
|
|
38
38
|
"build": "tsc",
|
|
39
39
|
"lint": "eslint . --ext .ts,.tsx --fix",
|
|
40
|
-
"
|
|
40
|
+
"format": "prettier --list-different \"**/*.{js,jsx,ts,tsx,json,htm,html,yml,yaml}\"",
|
|
41
|
+
"format:fix": "prettier --write \"**/*.{js,jsx,ts,tsx,json,htm,html,yml,yaml}\"",
|
|
42
|
+
"task:prettier": "prettier \"./src/**/*.{ts,tsx}\" --check --log-level error",
|
|
43
|
+
"task:prettier:fix": "prettier --write \"./src/**/*.{ts,tsx}\" --check --log-level error",
|
|
44
|
+
"task:eslint": "eslint \"./src/**/*\" --ext .ts,.tsx --cache",
|
|
45
|
+
"task:eslint:fix": "eslint \"./src/**/*.tsx\" --fix --cache && eslint \"src/**/*.ts\" --fix --cache",
|
|
46
|
+
"task:typecheck": "tsc",
|
|
47
|
+
"formatx": "npm run task:prettier:fix && npm run task:eslint:fix && npm run task:typecheck"
|
|
41
48
|
},
|
|
42
49
|
"dependencies": {
|
|
43
50
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
44
51
|
"@radix-ui/react-label": "^2.1.7",
|
|
45
52
|
"@radix-ui/react-radio-group": "^1.3.7",
|
|
53
|
+
"@radix-ui/react-select": "^2.2.5",
|
|
46
54
|
"@radix-ui/react-slot": "^1.2.3",
|
|
47
55
|
"@radix-ui/react-switch": "^1.2.5",
|
|
48
56
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
@@ -53,19 +61,29 @@
|
|
|
53
61
|
"prettier": "^3.6.2",
|
|
54
62
|
"react": ">=18.0.0",
|
|
55
63
|
"react-dom": ">=18.0.0",
|
|
64
|
+
"react-icons": "^5.5.0",
|
|
56
65
|
"tailwind-merge": "^3.3.1",
|
|
57
66
|
"tailwindcss": "^3.4.1",
|
|
58
67
|
"tailwindcss-animate": "^1.0.7",
|
|
59
68
|
"tw-animate-css": "^1.3.5"
|
|
60
69
|
},
|
|
61
70
|
"devDependencies": {
|
|
71
|
+
"@storybook/addon-a11y": "^9.0.15",
|
|
62
72
|
"@storybook/addon-docs": "^9.0.15",
|
|
63
73
|
"@storybook/addon-onboarding": "^9.0.15",
|
|
64
74
|
"@storybook/react-vite": "^9.0.15",
|
|
65
75
|
"@typescript-eslint/eslint-plugin": "^8.35.1",
|
|
66
76
|
"autoprefixer": "^10.4.13",
|
|
67
|
-
"eslint": "^
|
|
77
|
+
"@eslint/js": "^9.30.1",
|
|
78
|
+
"eslint": "^9.31.0",
|
|
79
|
+
"eslint-config-prettier": "^10.1.5",
|
|
80
|
+
"eslint-plugin-import": "^2.32.0",
|
|
81
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
82
|
+
"eslint-plugin-prettier": "^5.5.1",
|
|
68
83
|
"eslint-plugin-react": "^7.37.5",
|
|
84
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
85
|
+
"eslint-plugin-react-refresh": "^0.4.20",
|
|
86
|
+
"typescript-eslint": "^8.36.0",
|
|
69
87
|
"eslint-plugin-storybook": "^9.0.15",
|
|
70
88
|
"husky": "^8.0.3",
|
|
71
89
|
"postcss": "^8.4.21",
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { type ColumnDef, type RowSelectionState } from '@tanstack/react-table';
|
|
2
|
-
import { type Dispatch, type ReactNode, type SetStateAction } from 'react';
|
|
3
|
-
type PaginationProps = {
|
|
4
|
-
pageSize: number;
|
|
5
|
-
pageIndex: number;
|
|
6
|
-
pageCount: number;
|
|
7
|
-
onPageChange: (_pageIndex: number) => void;
|
|
8
|
-
onPageSizeChange: (_pageSize: number) => void;
|
|
9
|
-
};
|
|
10
|
-
type RowAction<T> = {
|
|
11
|
-
title: string;
|
|
12
|
-
fn: (_row: T) => void;
|
|
13
|
-
icon: ReactNode;
|
|
14
|
-
className?: string;
|
|
15
|
-
};
|
|
16
|
-
type TableAction = {
|
|
17
|
-
title: string;
|
|
18
|
-
fn: () => void;
|
|
19
|
-
icon: ReactNode;
|
|
20
|
-
className?: string;
|
|
21
|
-
};
|
|
22
|
-
type TableProps<T extends object> = {
|
|
23
|
-
data: T[];
|
|
24
|
-
columns: ColumnDef<T, unknown>[];
|
|
25
|
-
sortableFields?: string[];
|
|
26
|
-
onSortChange?: (_field: string | undefined, _direction: 'asc' | 'desc' | undefined) => void;
|
|
27
|
-
selected?: RowSelectionState;
|
|
28
|
-
setSelected?: Dispatch<SetStateAction<RowSelectionState>>;
|
|
29
|
-
rowIdKey?: keyof T;
|
|
30
|
-
rowActions?: RowAction<T>[];
|
|
31
|
-
tableActions?: TableAction[];
|
|
32
|
-
search?: string;
|
|
33
|
-
setSearch?: Dispatch<SetStateAction<string>>;
|
|
34
|
-
} & Partial<PaginationProps>;
|
|
35
|
-
export declare function Table<T extends object>({ data, search, columns, selected, pageSize, rowIdKey, setSearch, pageIndex, pageCount, rowActions, setSelected, onSortChange, tableActions, onPageChange, onPageSizeChange, sortableFields, }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
-
export {};
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { flexRender, getCoreRowModel, getPaginationRowModel, useReactTable, } from '@tanstack/react-table';
|
|
3
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
-
import { Button } from '../Button';
|
|
5
|
-
export function Table({ data, search, columns, selected, pageSize, rowIdKey, setSearch, pageIndex, pageCount, rowActions, setSelected, onSortChange, tableActions, onPageChange, onPageSizeChange, sortableFields = [], }) {
|
|
6
|
-
const [inputValue, setInputValue] = useState(search !== null && search !== void 0 ? search : '');
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
if (setSearch) {
|
|
9
|
-
setSearch(inputValue);
|
|
10
|
-
if (onPageChange) {
|
|
11
|
-
onPageChange(0);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}, [inputValue, setSearch, onPageChange]);
|
|
15
|
-
const [sortingField, setSortingField] = useState(undefined);
|
|
16
|
-
const [sortingDirection, setSortingDirection] = useState(undefined);
|
|
17
|
-
function handleSortClick(key) {
|
|
18
|
-
if (!key || !sortableFields.includes(key)) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
let nextDir;
|
|
22
|
-
if (sortingField !== key) {
|
|
23
|
-
nextDir = 'asc';
|
|
24
|
-
}
|
|
25
|
-
else if (sortingDirection === 'asc') {
|
|
26
|
-
nextDir = 'desc';
|
|
27
|
-
}
|
|
28
|
-
else if (sortingDirection === 'desc') {
|
|
29
|
-
nextDir = undefined;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
nextDir = 'asc';
|
|
33
|
-
}
|
|
34
|
-
setSortingField(nextDir ? key : undefined);
|
|
35
|
-
setSortingDirection(nextDir);
|
|
36
|
-
onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(nextDir ? key : undefined, nextDir);
|
|
37
|
-
}
|
|
38
|
-
const isSelectionEnabled = selected !== undefined && setSelected !== undefined;
|
|
39
|
-
const isPaginationEnabled = pageIndex !== undefined &&
|
|
40
|
-
pageSize !== undefined &&
|
|
41
|
-
pageCount !== undefined &&
|
|
42
|
-
onPageChange !== undefined &&
|
|
43
|
-
onPageSizeChange !== undefined;
|
|
44
|
-
function getAccessorKey(col) {
|
|
45
|
-
return 'accessorKey' in col && typeof col.accessorKey === 'string' ? col.accessorKey : undefined;
|
|
46
|
-
}
|
|
47
|
-
const internalColumns = useMemo(() => {
|
|
48
|
-
const result = [];
|
|
49
|
-
if (isSelectionEnabled) {
|
|
50
|
-
result.unshift({
|
|
51
|
-
id: '__select__',
|
|
52
|
-
accessorFn: (row) => row,
|
|
53
|
-
enableSorting: false,
|
|
54
|
-
header: ({ table }) => {
|
|
55
|
-
return (_jsx("input", { type: "checkbox", checked: table.getIsAllPageRowsSelected(), onChange: table.getToggleAllRowsSelectedHandler() }));
|
|
56
|
-
},
|
|
57
|
-
cell: ({ row }) => {
|
|
58
|
-
return (_jsx("input", { type: "checkbox", checked: row.getIsSelected(), disabled: !row.getCanSelect(), onChange: row.getToggleSelectedHandler() }));
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
for (const col of columns) {
|
|
63
|
-
const key = getAccessorKey(col);
|
|
64
|
-
result.push({
|
|
65
|
-
...col,
|
|
66
|
-
enableSorting: key ? sortableFields.includes(key) : false,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
if (rowActions) {
|
|
70
|
-
result.push({
|
|
71
|
-
id: '__actions__',
|
|
72
|
-
accessorFn: (row) => row,
|
|
73
|
-
enableSorting: false,
|
|
74
|
-
header: 'Actions',
|
|
75
|
-
cell: (info) => (_jsx("div", { className: "flex gap-2", children: rowActions.map((action) => (_jsx(Button, { title: action.title, "aria-label": action.title, className: action.className, onClick: () => action.fn(info.row.original), children: action.icon }, action.title))) })),
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}, [columns, sortableFields, rowActions, isSelectionEnabled]);
|
|
80
|
-
const table = useReactTable({
|
|
81
|
-
data,
|
|
82
|
-
manualSorting: true,
|
|
83
|
-
columns: internalColumns,
|
|
84
|
-
getCoreRowModel: getCoreRowModel(),
|
|
85
|
-
manualPagination: isPaginationEnabled,
|
|
86
|
-
enableRowSelection: isSelectionEnabled,
|
|
87
|
-
...(rowIdKey && {
|
|
88
|
-
getRowId: (row) => String(row[rowIdKey]),
|
|
89
|
-
}),
|
|
90
|
-
...(isPaginationEnabled && { getPaginationRowModel: getPaginationRowModel() }),
|
|
91
|
-
state: {
|
|
92
|
-
...(isSelectionEnabled && { rowSelection: selected }),
|
|
93
|
-
...(isPaginationEnabled && { pagination: { pageIndex, pageSize } }),
|
|
94
|
-
},
|
|
95
|
-
...(isSelectionEnabled && { onRowSelectionChange: setSelected }),
|
|
96
|
-
...(isPaginationEnabled && {
|
|
97
|
-
onPaginationChange: (updater) => {
|
|
98
|
-
const next = typeof updater === 'function' ? updater({ pageIndex, pageSize }) : updater;
|
|
99
|
-
onPageChange(next.pageIndex);
|
|
100
|
-
onPageSizeChange(next.pageSize);
|
|
101
|
-
},
|
|
102
|
-
}),
|
|
103
|
-
});
|
|
104
|
-
let sortIcon;
|
|
105
|
-
if (sortingDirection === 'asc') {
|
|
106
|
-
sortIcon = ' 🔼';
|
|
107
|
-
}
|
|
108
|
-
else if (sortingDirection === 'desc') {
|
|
109
|
-
sortIcon = ' 🔽';
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
sortIcon = null;
|
|
113
|
-
}
|
|
114
|
-
return (_jsxs("div", { children: [_jsxs("div", { className: "flex justify-between", children: [setSearch && (_jsx("div", { className: "mb-4", children: _jsx("input", { type: "text", value: inputValue, placeholder: "Search\u2026", className: "border px-3 py-2 w-full max-w-sm", onChange: (e) => setInputValue(e.target.value) }) })), tableActions && (_jsx("div", { className: "mb-2 flex gap-2", children: tableActions.map((action) => (_jsxs(Button, { onClick: action.fn, title: action.title, "aria-label": action.title, className: action.className, children: [action.icon, action.title] }, action.title))) }))] }), _jsxs("table", { className: "table-auto w-full border border-gray-300 border-collapse", children: [_jsx("thead", { children: table.getHeaderGroups().map((headerGroup) => (_jsx("tr", { className: "bg-gray-100", children: headerGroup.headers.map((header) => {
|
|
115
|
-
const key = getAccessorKey(header.column.columnDef);
|
|
116
|
-
return (_jsx("th", { className: "border border-gray-300 px-4 py-2 text-left", children: header.isPlaceholder ? null : (_jsxs("div", { className: header.column.getCanSort()
|
|
117
|
-
? 'cursor-pointer select-none'
|
|
118
|
-
: undefined, onClick: () => handleSortClick(key), children: [flexRender(header.column.columnDef.header, header.getContext()), sortingField === key && sortIcon] })) }, header.id));
|
|
119
|
-
}) }, headerGroup.id))) }), _jsx("tbody", { children: table.getRowModel().rows.length ? (table.getRowModel().rows.map((row) => (_jsx("tr", { className: row.getIsSelected() ? 'bg-blue-100' : undefined, children: row.getVisibleCells().map((cell) => (_jsx("td", { className: "border border-gray-300 px-4 py-2", children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))) }, row.id)))) : (_jsx("tr", { children: _jsx("td", { colSpan: internalColumns.length, children: _jsx("div", { className: "p-4 text-center", children: _jsx("h2", { children: "\u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0434\u0430\u043D\u043D\u0438" }) }) }) })) })] }), isPaginationEnabled && (_jsxs("div", { className: "mt-4 flex items-center gap-2", children: [_jsx("button", { onClick: () => onPageChange(pageIndex - 1), disabled: pageIndex === 0, className: "px-3 py-1 bg-gray-200 rounded disabled:opacity-50", children: "Previous" }), _jsx("button", { onClick: () => onPageChange(pageIndex + 1), disabled: pageIndex + 1 >= pageCount, className: "px-3 py-1 bg-gray-200 rounded disabled:opacity-50", children: "Next" }), _jsxs("span", { className: "ml-2", children: ["Page ", pageIndex + 1, " of ", pageCount] }), _jsx("select", { value: pageSize, onChange: (e) => onPageSizeChange(Number(e.target.value)), className: "ml-4 border border-gray-300 px-2 py-1", children: [10, 20, 30, 50].map((size) => (_jsxs("option", { value: size, children: ["Show ", size] }, size))) })] }))] }));
|
|
120
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Table } from './Table';
|
|
3
|
-
const data = [
|
|
4
|
-
{ name: 'Alice', email: 'alice@email.com', role: 'Admin' },
|
|
5
|
-
{ name: 'Bob', email: 'bob@email.com', role: 'User' },
|
|
6
|
-
{ name: 'Charlie', email: 'charlie@email.com', role: 'User' },
|
|
7
|
-
];
|
|
8
|
-
const columns = [
|
|
9
|
-
{ header: 'Name', accessorKey: 'name' },
|
|
10
|
-
{ header: 'Email', accessorKey: 'email' },
|
|
11
|
-
{ header: 'Role', accessorKey: 'role' },
|
|
12
|
-
];
|
|
13
|
-
export default {
|
|
14
|
-
title: 'UIKit/Table',
|
|
15
|
-
component: Table,
|
|
16
|
-
};
|
|
17
|
-
export const Basic = {
|
|
18
|
-
render: () => _jsx(Table, { data: data, columns: columns }),
|
|
19
|
-
};
|
package/dist/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:0.5rem}.dark{--background:0 0% 3.9%;--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:0 0% 9%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:0 0% 14.9%;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.right-3{right:.75rem}.z-50{z-index:50}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-10{height:2.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[15px\]{height:15px}.h-\[24px\]{height:24px}.h-full{height:100%}.h-px{height:1px}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[15px\]{width:15px}.w-\[200px\]{width:200px}.w-\[42px\]{width:42px}.w-full{width:100%}.w-px{width:1px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-hidden,.truncate{overflow:hidden}.truncate{white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:var(--uikit-radius,.5rem)}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[var\(--uikit-primary\)\]{border-color:var(--uikit-primary)}.border-\[var\(--uikit-secondary\)\]{border-color:var(--uikit-secondary)}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-error{border-color:var(--uikit-error,#d7263d)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.bg-\[var\(--uikit-error\)\]{background-color:var(--uikit-error)}.bg-\[var\(--uikit-info\)\]{background-color:var(--uikit-info)}.bg-\[var\(--uikit-primary\)\]{background-color:var(--uikit-primary)}.bg-background{background-color:hsl(var(--background))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.fill-primary{fill:hsl(var(--primary))}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-3{padding-left:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-\[var\(--uikit-font-family\)\]{font-weight:var(--uikit-font-family)}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-none{line-height:1}.text-\[var\(--uikit-secondary\)\]{color:var(--uikit-secondary)}.text-\[var\(--uikit-text-primary\)\]{color:var(--uikit-text-primary)}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-current{color:currentColor}.text-error{color:var(--uikit-error,#d7263d)}.text-foreground{color:hsl(var(--foreground))}.text-primary{color:hsl(var(--primary))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}:root{--uikit-primary:#0a5fff;--uikit-secondary:#71717b;--uikit-tertiary:#f3f5fb;--uikit-accent:#e3ecff;--uikit-success:#16c784;--uikit-warning:#f4b740;--uikit-error:#d7263d;--uikit-info:#fef9bf;--uikit-radius:8px;--uikit-font-family:Inter,system-ui,sans-serif;--uikit-text-primary:#27272a}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border:hover{border-width:1px}.hover\:border-\[var\(--uikit-primary\)\]:hover{border-color:var(--uikit-primary)}.hover\:bg-\[var\(--uikit-secondary\)\]:hover{background-color:var(--uikit-secondary)}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:border-\[var\(--uikit-primary\)\]:focus{border-color:var(--uikit-primary)}.focus\:border-\[var\(--uikit-secondary\)\]:focus{border-color:var(--uikit-secondary)}.focus\:bg-\[var\(--uikit-error\)\]:focus{background-color:var(--uikit-error)}.focus\:bg-\[var\(--uikit-primary\)\]:focus{background-color:var(--uikit-primary)}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:text-\[var\(--uikit-secondary\)\]:focus{color:var(--uikit-secondary)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-error:focus-visible{--tw-ring-color:var(--uikit-error,#d7263d)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked],.data-\[state\=checked\]\:translate-x-5[data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=checked\]\:translate-x-7[data-state=checked]{--tw-translate-x:1.75rem}.data-\[state\=checked\]\:translate-x-7[data-state=checked],.data-\[state\=checked\]\:translate-x-\[20px\][data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-\[20px\][data-state=checked]{--tw-translate-x:20px}.data-\[state\=unchecked\]\:translate-x-\[2px\][data-state=unchecked]{--tw-translate-x:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-\[var\(--uikit-primary\)\][data-state=checked]{background-color:var(--uikit-primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=unchecked\]\:bg-black[data-state=unchecked]{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}@media (min-width:640px){.sm\:max-w-sm{max-width:24rem}}@media (min-width:768px){.md\:max-w-md{max-width:28rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:h-3 svg{height:.75rem}.\[\&_svg\]\:h-4 svg{height:1rem}.\[\&_svg\]\:w-3 svg{width:.75rem}.\[\&_svg\]\:w-4 svg{width:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
declare const meta: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: ({ user, onLogin, onLogout, onCreateAccount }: import("./Header").HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
tags: string[];
|
|
6
|
-
parameters: {
|
|
7
|
-
layout: string;
|
|
8
|
-
};
|
|
9
|
-
args: {
|
|
10
|
-
onLogin: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
11
|
-
onLogout: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
12
|
-
onCreateAccount: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<typeof meta>;
|
|
17
|
-
export declare const LoggedIn: Story;
|
|
18
|
-
export declare const LoggedOut: Story;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { fn } from 'storybook/test';
|
|
2
|
-
import { Header } from './Header';
|
|
3
|
-
const meta = {
|
|
4
|
-
title: 'Example/Header',
|
|
5
|
-
component: Header,
|
|
6
|
-
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
|
7
|
-
tags: ['autodocs'],
|
|
8
|
-
parameters: {
|
|
9
|
-
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
|
10
|
-
layout: 'fullscreen',
|
|
11
|
-
},
|
|
12
|
-
args: {
|
|
13
|
-
onLogin: fn(),
|
|
14
|
-
onLogout: fn(),
|
|
15
|
-
onCreateAccount: fn(),
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
export default meta;
|
|
19
|
-
export const LoggedIn = {
|
|
20
|
-
args: {
|
|
21
|
-
user: {
|
|
22
|
-
name: 'Jane Doe',
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
export const LoggedOut = {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
declare const meta: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: import("react").FC<{}>;
|
|
5
|
-
parameters: {
|
|
6
|
-
layout: string;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
export default meta;
|
|
10
|
-
type Story = StoryObj<typeof meta>;
|
|
11
|
-
export declare const LoggedOut: Story;
|
|
12
|
-
export declare const LoggedIn: Story;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { expect, userEvent, within } from 'storybook/test';
|
|
2
|
-
import { Page } from './Page';
|
|
3
|
-
const meta = {
|
|
4
|
-
title: 'Example/Page',
|
|
5
|
-
component: Page,
|
|
6
|
-
parameters: {
|
|
7
|
-
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
|
8
|
-
layout: 'fullscreen',
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
export default meta;
|
|
12
|
-
export const LoggedOut = {};
|
|
13
|
-
// More on component testing: https://storybook.js.org/docs/writing-tests/interaction-testing
|
|
14
|
-
export const LoggedIn = {
|
|
15
|
-
play: async ({ canvasElement }) => {
|
|
16
|
-
const canvas = within(canvasElement);
|
|
17
|
-
const loginButton = canvas.getByRole('button', { name: /Log in/i });
|
|
18
|
-
await expect(loginButton).toBeInTheDocument();
|
|
19
|
-
await userEvent.click(loginButton);
|
|
20
|
-
await expect(loginButton).not.toBeInTheDocument();
|
|
21
|
-
const logoutButton = canvas.getByRole('button', { name: /Log out/i });
|
|
22
|
-
await expect(logoutButton).toBeInTheDocument();
|
|
23
|
-
},
|
|
24
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{components/RadioGroup/RadioGroup.types.js → src/components/Pills/Pills.types.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{components/Switch/Switch.types.js → src/components/RadioGroup/RadioGroup.types.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|