aidos-ui 4.0.3 → 4.0.5
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/LICENSE +1 -1
- package/README.md +23 -3
- package/dist/index.d.ts +797 -68
- package/dist/index.js +3868 -68
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.d.ts +6 -2
- package/dist/jsx-dev-runtime.js +87 -42
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.d.ts +1 -1
- package/dist/jsx-runtime.js +2 -2
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/vite-plugin-jss-debug.d.ts +12 -6
- package/dist/vite-plugin-jss-debug.js +57 -72
- package/dist/vite-plugin-jss-debug.js.map +1 -1
- package/package.json +58 -27
- package/.claude/settings.local.json +0 -22
- package/.prettierrc +0 -4
- package/CLAUDE.md +0 -72
- package/dist/Badge.d.ts +0 -6
- package/dist/Badge.js +0 -22
- package/dist/Badge.js.map +0 -1
- package/dist/BaseButton.d.ts +0 -14
- package/dist/BaseButton.js +0 -23
- package/dist/BaseButton.js.map +0 -1
- package/dist/BaseInput.d.ts +0 -14
- package/dist/BaseInput.js +0 -15
- package/dist/BaseInput.js.map +0 -1
- package/dist/BaseLink.d.ts +0 -18
- package/dist/BaseLink.js +0 -29
- package/dist/BaseLink.js.map +0 -1
- package/dist/BaseList.d.ts +0 -6
- package/dist/BaseList.js +0 -14
- package/dist/BaseList.js.map +0 -1
- package/dist/BaseListAddOn.d.ts +0 -5
- package/dist/BaseListAddOn.js +0 -7
- package/dist/BaseListAddOn.js.map +0 -1
- package/dist/BaseListItem.d.ts +0 -26
- package/dist/BaseListItem.js +0 -29
- package/dist/BaseListItem.js.map +0 -1
- package/dist/BaseView.d.ts +0 -12
- package/dist/BaseView.js +0 -26
- package/dist/BaseView.js.map +0 -1
- package/dist/Box.d.ts +0 -4
- package/dist/Box.js +0 -6
- package/dist/Box.js.map +0 -1
- package/dist/Button.d.ts +0 -20
- package/dist/Button.js +0 -19
- package/dist/Button.js.map +0 -1
- package/dist/Calendar.d.ts +0 -18
- package/dist/Calendar.js +0 -57
- package/dist/Calendar.js.map +0 -1
- package/dist/Card.d.ts +0 -4
- package/dist/Card.js +0 -14
- package/dist/Card.js.map +0 -1
- package/dist/Checkbox.d.ts +0 -11
- package/dist/Checkbox.js +0 -32
- package/dist/Checkbox.js.map +0 -1
- package/dist/Circle.d.ts +0 -5
- package/dist/Circle.js +0 -12
- package/dist/Circle.js.map +0 -1
- package/dist/Column.d.ts +0 -6
- package/dist/Column.js +0 -7
- package/dist/Column.js.map +0 -1
- package/dist/DarkMode.d.ts +0 -13
- package/dist/DarkMode.js +0 -62
- package/dist/DarkMode.js.map +0 -1
- package/dist/DateInput.d.ts +0 -13
- package/dist/DateInput.js +0 -29
- package/dist/DateInput.js.map +0 -1
- package/dist/DatePicker.d.ts +0 -11
- package/dist/DatePicker.js +0 -34
- package/dist/DatePicker.js.map +0 -1
- package/dist/DatetimeInput.d.ts +0 -13
- package/dist/DatetimeInput.js +0 -31
- package/dist/DatetimeInput.js.map +0 -1
- package/dist/DesignBook.d.ts +0 -1
- package/dist/DesignBook.js +0 -55
- package/dist/DesignBook.js.map +0 -1
- package/dist/Dialog.d.ts +0 -17
- package/dist/Dialog.js +0 -92
- package/dist/Dialog.js.map +0 -1
- package/dist/Dropdown.d.ts +0 -14
- package/dist/Dropdown.js +0 -65
- package/dist/Dropdown.js.map +0 -1
- package/dist/Emitter.d.ts +0 -6
- package/dist/Emitter.js +0 -19
- package/dist/Emitter.js.map +0 -1
- package/dist/FlexLayout.d.ts +0 -11
- package/dist/FlexLayout.js +0 -18
- package/dist/FlexLayout.js.map +0 -1
- package/dist/Icon.d.ts +0 -12
- package/dist/Icon.js +0 -60
- package/dist/Icon.js.map +0 -1
- package/dist/IconButton.d.ts +0 -9
- package/dist/IconButton.js +0 -31
- package/dist/IconButton.js.map +0 -1
- package/dist/IconLink.d.ts +0 -9
- package/dist/IconLink.js +0 -32
- package/dist/IconLink.js.map +0 -1
- package/dist/IconType.d.ts +0 -1
- package/dist/IconType.js +0 -2
- package/dist/IconType.js.map +0 -1
- package/dist/Interactable.d.ts +0 -50
- package/dist/Interactable.js +0 -169
- package/dist/Interactable.js.map +0 -1
- package/dist/JSSComment.d.ts +0 -10
- package/dist/JSSComment.js +0 -52
- package/dist/JSSComment.js.map +0 -1
- package/dist/Link.d.ts +0 -22
- package/dist/Link.js +0 -29
- package/dist/Link.js.map +0 -1
- package/dist/List.d.ts +0 -15
- package/dist/List.js +0 -29
- package/dist/List.js.map +0 -1
- package/dist/ListButtonItem.d.ts +0 -14
- package/dist/ListButtonItem.js +0 -11
- package/dist/ListButtonItem.js.map +0 -1
- package/dist/ListDivider.d.ts +0 -1
- package/dist/ListDivider.js +0 -12
- package/dist/ListDivider.js.map +0 -1
- package/dist/ListHeaderItem.d.ts +0 -10
- package/dist/ListHeaderItem.js +0 -15
- package/dist/ListHeaderItem.js.map +0 -1
- package/dist/ListItem.d.ts +0 -9
- package/dist/ListItem.js +0 -9
- package/dist/ListItem.js.map +0 -1
- package/dist/ListLinkItem.d.ts +0 -16
- package/dist/ListLinkItem.js +0 -11
- package/dist/ListLinkItem.js.map +0 -1
- package/dist/ListSpacer.d.ts +0 -1
- package/dist/ListSpacer.js +0 -13
- package/dist/ListSpacer.js.map +0 -1
- package/dist/MenuIcon.d.ts +0 -5
- package/dist/MenuIcon.js +0 -31
- package/dist/MenuIcon.js.map +0 -1
- package/dist/NextJSRouter.d.ts +0 -1
- package/dist/NextJSRouter.js +0 -37
- package/dist/NextJSRouter.js.map +0 -1
- package/dist/NextJSRouterState.d.ts +0 -38
- package/dist/NextJSRouterState.js +0 -111
- package/dist/NextJSRouterState.js.map +0 -1
- package/dist/OnVisible.d.ts +0 -5
- package/dist/OnVisible.js +0 -28
- package/dist/OnVisible.js.map +0 -1
- package/dist/Popover.d.ts +0 -22
- package/dist/Popover.js +0 -90
- package/dist/Popover.js.map +0 -1
- package/dist/ProgressBar.d.ts +0 -7
- package/dist/ProgressBar.js +0 -42
- package/dist/ProgressBar.js.map +0 -1
- package/dist/ProgressCircle.d.ts +0 -5
- package/dist/ProgressCircle.js +0 -12
- package/dist/ProgressCircle.js.map +0 -1
- package/dist/Providers.d.ts +0 -9
- package/dist/Providers.js +0 -16
- package/dist/Providers.js.map +0 -1
- package/dist/RangeInput.d.ts +0 -14
- package/dist/RangeInput.js +0 -32
- package/dist/RangeInput.js.map +0 -1
- package/dist/ResultOrError.d.ts +0 -13
- package/dist/ResultOrError.js +0 -7
- package/dist/ResultOrError.js.map +0 -1
- package/dist/RootView.d.ts +0 -5
- package/dist/RootView.js +0 -35
- package/dist/RootView.js.map +0 -1
- package/dist/Row.d.ts +0 -6
- package/dist/Row.js +0 -7
- package/dist/Row.js.map +0 -1
- package/dist/Select.d.ts +0 -9
- package/dist/Select.js +0 -17
- package/dist/Select.js.map +0 -1
- package/dist/StackContext.d.ts +0 -8
- package/dist/StackContext.js +0 -25
- package/dist/StackContext.js.map +0 -1
- package/dist/StaticCheckbox.d.ts +0 -16
- package/dist/StaticCheckbox.js +0 -48
- package/dist/StaticCheckbox.js.map +0 -1
- package/dist/Storage.d.ts +0 -13
- package/dist/Storage.js +0 -146
- package/dist/Storage.js.map +0 -1
- package/dist/Stream.d.ts +0 -9
- package/dist/Stream.js +0 -36
- package/dist/Stream.js.map +0 -1
- package/dist/Sublist.d.ts +0 -12
- package/dist/Sublist.js +0 -18
- package/dist/Sublist.js.map +0 -1
- package/dist/SubmitIconInput.d.ts +0 -8
- package/dist/SubmitIconInput.js +0 -25
- package/dist/SubmitIconInput.js.map +0 -1
- package/dist/Tabs.d.ts +0 -23
- package/dist/Tabs.js +0 -39
- package/dist/Tabs.js.map +0 -1
- package/dist/Text.d.ts +0 -25
- package/dist/Text.js +0 -52
- package/dist/Text.js.map +0 -1
- package/dist/TextArea.d.ts +0 -11
- package/dist/TextArea.js +0 -27
- package/dist/TextArea.js.map +0 -1
- package/dist/TextInput.d.ts +0 -15
- package/dist/TextInput.js +0 -61
- package/dist/TextInput.js.map +0 -1
- package/dist/TextInputWithState.d.ts +0 -8
- package/dist/TextInputWithState.js +0 -14
- package/dist/TextInputWithState.js.map +0 -1
- package/dist/TextPairing.d.ts +0 -21
- package/dist/TextPairing.js +0 -26
- package/dist/TextPairing.js.map +0 -1
- package/dist/TimeInput.d.ts +0 -15
- package/dist/TimeInput.js +0 -58
- package/dist/TimeInput.js.map +0 -1
- package/dist/Tooltip.d.ts +0 -11
- package/dist/Tooltip.js +0 -73
- package/dist/Tooltip.js.map +0 -1
- package/dist/aria.d.ts +0 -8
- package/dist/aria.js +0 -42
- package/dist/aria.js.map +0 -1
- package/dist/guid.d.ts +0 -1
- package/dist/guid.js +0 -7
- package/dist/guid.js.map +0 -1
- package/dist/hash.d.ts +0 -1
- package/dist/hash.js +0 -20
- package/dist/hash.js.map +0 -1
- package/dist/isServer.d.ts +0 -1
- package/dist/isServer.js +0 -4
- package/dist/isServer.js.map +0 -1
- package/dist/jss.d.ts +0 -122
- package/dist/jss.js +0 -515
- package/dist/jss.js.map +0 -1
- package/dist/numberToBase.d.ts +0 -1
- package/dist/numberToBase.js +0 -44
- package/dist/numberToBase.js.map +0 -1
- package/dist/stateMachineContextFactory.d.ts +0 -36
- package/dist/stateMachineContextFactory.js +0 -48
- package/dist/stateMachineContextFactory.js.map +0 -1
- package/dist/useCookie.d.ts +0 -9
- package/dist/useCookie.js +0 -67
- package/dist/useCookie.js.map +0 -1
- package/dist/useKeyboard.d.ts +0 -8
- package/dist/useKeyboard.js +0 -26
- package/dist/useKeyboard.js.map +0 -1
- package/dist/useNavigation.d.ts +0 -5
- package/dist/useNavigation.js +0 -79
- package/dist/useNavigation.js.map +0 -1
- package/dist/usePromise.d.ts +0 -1
- package/dist/usePromise.js +0 -12
- package/dist/usePromise.js.map +0 -1
- package/dist/useRefEffect.d.ts +0 -1
- package/dist/useRefEffect.js +0 -15
- package/dist/useRefEffect.js.map +0 -1
- package/jss-debug-loader.mjs +0 -44
- package/next-env.d.ts +0 -6
- package/next.config.js +0 -33
- package/scripts/embeddings.js +0 -93
- package/scripts/openai_embeddings.js +0 -100
- package/scripts/publish.js +0 -28
- package/scripts/test_embeddings.js +0 -47
- package/src/Badge.tsx +0 -36
- package/src/BaseButton.tsx +0 -62
- package/src/BaseInput.tsx +0 -63
- package/src/BaseLink.tsx +0 -80
- package/src/BaseList.tsx +0 -26
- package/src/BaseListAddOn.tsx +0 -10
- package/src/BaseListItem.tsx +0 -119
- package/src/BaseView.tsx +0 -57
- package/src/Box.tsx +0 -20
- package/src/Button.tsx +0 -90
- package/src/Calendar.tsx +0 -125
- package/src/Card.tsx +0 -30
- package/src/Checkbox.tsx +0 -63
- package/src/Circle.tsx +0 -24
- package/src/Column.tsx +0 -12
- package/src/DarkMode.tsx +0 -100
- package/src/DateInput.tsx +0 -63
- package/src/DatePicker.tsx +0 -67
- package/src/DatetimeInput.tsx +0 -64
- package/src/DesignBook.tsx +0 -677
- package/src/Dialog.tsx +0 -150
- package/src/Dropdown.tsx +0 -146
- package/src/Emitter.ts +0 -26
- package/src/FlexLayout.tsx +0 -53
- package/src/Icon.tsx +0 -80
- package/src/IconButton.tsx +0 -58
- package/src/IconLink.tsx +0 -59
- package/src/IconType.ts +0 -787
- package/src/Interactable.tsx +0 -210
- package/src/JSSComment.tsx +0 -56
- package/src/Link.tsx +0 -110
- package/src/List.tsx +0 -58
- package/src/ListButtonItem.tsx +0 -69
- package/src/ListDivider.tsx +0 -13
- package/src/ListHeaderItem.tsx +0 -45
- package/src/ListItem.tsx +0 -24
- package/src/ListLinkItem.tsx +0 -76
- package/src/ListSpacer.tsx +0 -14
- package/src/MenuIcon.tsx +0 -50
- package/src/NextJSRouter.tsx +0 -62
- package/src/NextJSRouterState.tsx +0 -154
- package/src/OnVisible.tsx +0 -42
- package/src/Popover.tsx +0 -145
- package/src/ProgressBar.tsx +0 -63
- package/src/ProgressCircle.tsx +0 -38
- package/src/Providers.tsx +0 -33
- package/src/RangeInput.tsx +0 -82
- package/src/ResultOrError.ts +0 -15
- package/src/RootView.tsx +0 -55
- package/src/Row.tsx +0 -12
- package/src/Select.tsx +0 -39
- package/src/StackContext.tsx +0 -52
- package/src/StaticCheckbox.tsx +0 -72
- package/src/Storage.tsx +0 -198
- package/src/Stream.tsx +0 -50
- package/src/Sublist.tsx +0 -61
- package/src/SubmitIconInput.tsx +0 -45
- package/src/Tabs.tsx +0 -110
- package/src/Text.tsx +0 -111
- package/src/TextArea.tsx +0 -58
- package/src/TextInput.tsx +0 -123
- package/src/TextInputWithState.tsx +0 -32
- package/src/TextPairing.tsx +0 -115
- package/src/TimeInput.tsx +0 -109
- package/src/Tooltip.tsx +0 -109
- package/src/aria.ts +0 -72
- package/src/docs/mdx.tsx +0 -137
- package/src/docs/pages.ts +0 -115
- package/src/docs/searchIndex.ts +0 -1
- package/src/examples/ExampleDialog.tsx +0 -28
- package/src/guid.ts +0 -7
- package/src/hash.ts +0 -21
- package/src/index.ts +0 -68
- package/src/isServer.ts +0 -3
- package/src/jss.tsx +0 -712
- package/src/jsx-dev-runtime.ts +0 -74
- package/src/jsx-runtime.ts +0 -2
- package/src/numberToBase.ts +0 -52
- package/src/pages/Badge.mdx +0 -152
- package/src/pages/Button.mdx +0 -163
- package/src/pages/Calendar.mdx +0 -254
- package/src/pages/Card.mdx +0 -147
- package/src/pages/Checkbox.mdx +0 -131
- package/src/pages/Dialog.mdx +0 -197
- package/src/pages/FlexLayout.mdx +0 -211
- package/src/pages/Hashing.mdx +0 -211
- package/src/pages/Icon.mdx +0 -171
- package/src/pages/IconButton.mdx +0 -155
- package/src/pages/Link.mdx +0 -160
- package/src/pages/List.mdx +0 -262
- package/src/pages/ListHeader.mdx +0 -220
- package/src/pages/Popover.mdx +0 -223
- package/src/pages/ProgressBar.mdx +0 -200
- package/src/pages/ProgressCircle.mdx +0 -218
- package/src/pages/RangeInput.mdx +0 -237
- package/src/pages/Tabs.mdx +0 -281
- package/src/pages/Text.mdx +0 -154
- package/src/pages/TextInput.mdx +0 -235
- package/src/pages/TextPairing.mdx +0 -204
- package/src/pages/TimeInput.mdx +0 -178
- package/src/pages/Tooltip.mdx +0 -115
- package/src/pages/_app.tsx +0 -466
- package/src/pages/_document.tsx +0 -30
- package/src/pages/css-in-js.mdx +0 -240
- package/src/pages/index.mdx +0 -58
- package/src/pages/navigation.mdx +0 -158
- package/src/pages/prism.css +0 -3
- package/src/pages/useCookie.mdx +0 -176
- package/src/pages/useKeyboard.mdx +0 -257
- package/src/pages/useNavigation.mdx +0 -258
- package/src/pages/usePromise.mdx +0 -280
- package/src/pages/useRefEffect.mdx +0 -251
- package/src/stateMachineContextFactory.tsx +0 -111
- package/src/useCookie.tsx +0 -95
- package/src/useKeyboard.tsx +0 -43
- package/src/useNavigation.tsx +0 -89
- package/src/usePromise.tsx +0 -18
- package/src/useRefEffect.tsx +0 -18
- package/src/vite-plugin-jss-debug.ts +0 -75
- package/tsconfig.build.json +0 -23
- package/tsconfig.json +0 -38
package/src/useCookie.tsx
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback, useEffect, useRef } from "react";
|
|
2
|
-
import { isServer } from "./isServer";
|
|
3
|
-
|
|
4
|
-
export function hasCookie(key: string): boolean {
|
|
5
|
-
return (
|
|
6
|
-
document.cookie
|
|
7
|
-
.split(";")
|
|
8
|
-
.map((c) => c.trim())
|
|
9
|
-
.filter((c) => c.startsWith(`${key}=`)).length > 0
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function getCookie<T>(
|
|
14
|
-
key: string,
|
|
15
|
-
deserialize: (s: string) => T = JSON.parse
|
|
16
|
-
): T {
|
|
17
|
-
return document.cookie
|
|
18
|
-
.split(";")
|
|
19
|
-
.map((c) => c.trim())
|
|
20
|
-
.filter((c) => c.startsWith(`${key}=`))
|
|
21
|
-
.map((s) => s.split("=")[1])
|
|
22
|
-
.map((s) => deserialize(s))
|
|
23
|
-
.reverse()
|
|
24
|
-
.pop();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function useCookie<T, L>(
|
|
28
|
-
key: string,
|
|
29
|
-
{
|
|
30
|
-
initialValue = null,
|
|
31
|
-
loadingValue,
|
|
32
|
-
serialize = JSON.stringify,
|
|
33
|
-
deserialize = JSON.parse,
|
|
34
|
-
maxAge = 60 * 60 * 24 * 365,
|
|
35
|
-
}: {
|
|
36
|
-
initialValue: T;
|
|
37
|
-
loadingValue: L;
|
|
38
|
-
serialize?: (t: T) => string;
|
|
39
|
-
deserialize?: (s: string) => T;
|
|
40
|
-
maxAge?: number;
|
|
41
|
-
}
|
|
42
|
-
): [T | L, (t: T | ((prevValue: T | L) => T)) => void] {
|
|
43
|
-
const initializationRef = useRef(false);
|
|
44
|
-
const [cookie, setCookie] = useState<T | L>(() => {
|
|
45
|
-
if (!isServer()) {
|
|
46
|
-
const hasPersistedCookie = hasCookie(key);
|
|
47
|
-
if (hasPersistedCookie) {
|
|
48
|
-
return getCookie(key, deserialize);
|
|
49
|
-
} else {
|
|
50
|
-
return loadingValue;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return loadingValue;
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
if (initializationRef.current === true) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const hasPersistedCookie = hasCookie(key);
|
|
63
|
-
|
|
64
|
-
if (hasPersistedCookie) {
|
|
65
|
-
const persistedCookie = getCookie(key, deserialize);
|
|
66
|
-
setCookie(persistedCookie);
|
|
67
|
-
} else {
|
|
68
|
-
document.cookie = `${key}=${serialize(
|
|
69
|
-
initialValue
|
|
70
|
-
)}; max-age=${maxAge};path=/;`;
|
|
71
|
-
setCookie(initialValue);
|
|
72
|
-
}
|
|
73
|
-
initializationRef.current = true;
|
|
74
|
-
}, []);
|
|
75
|
-
|
|
76
|
-
return [
|
|
77
|
-
cookie,
|
|
78
|
-
useCallback((t: T | ((prevValue: T | L) => T)) => {
|
|
79
|
-
if (typeof t === "function") {
|
|
80
|
-
// @ts-ignore
|
|
81
|
-
const callback: (prevValue: T | L) => T = t;
|
|
82
|
-
setCookie((oldCookie) => {
|
|
83
|
-
const newValue = callback(oldCookie);
|
|
84
|
-
document.cookie = `${key}=${serialize(
|
|
85
|
-
newValue
|
|
86
|
-
)}; max-age=${maxAge};path=/;`;
|
|
87
|
-
return newValue;
|
|
88
|
-
});
|
|
89
|
-
} else {
|
|
90
|
-
setCookie(t);
|
|
91
|
-
document.cookie = `${key}=${serialize(t)}; max-age=${maxAge};path=/;`;
|
|
92
|
-
}
|
|
93
|
-
}, []),
|
|
94
|
-
];
|
|
95
|
-
}
|
package/src/useKeyboard.tsx
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { useRefEffect } from "./useRefEffect";
|
|
2
|
-
|
|
3
|
-
export type KeyboardShortcut<T> = {
|
|
4
|
-
key: string;
|
|
5
|
-
metaKey?: boolean;
|
|
6
|
-
ctrlKey?: boolean;
|
|
7
|
-
action: (root: T) => void;
|
|
8
|
-
onlyWhenFocused?: boolean;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export function useKeyboard<T extends HTMLElement>(
|
|
12
|
-
shortcuts: Array<KeyboardShortcut<T>>
|
|
13
|
-
) {
|
|
14
|
-
return useRefEffect<T>((root: T) => {
|
|
15
|
-
const onKeyDown = (e: KeyboardEvent) => {
|
|
16
|
-
for (const {
|
|
17
|
-
metaKey,
|
|
18
|
-
key,
|
|
19
|
-
action,
|
|
20
|
-
ctrlKey,
|
|
21
|
-
onlyWhenFocused,
|
|
22
|
-
} of shortcuts) {
|
|
23
|
-
if (metaKey && e.metaKey !== true) {
|
|
24
|
-
continue;
|
|
25
|
-
} else if (ctrlKey && e.ctrlKey !== true) {
|
|
26
|
-
continue;
|
|
27
|
-
} else if (onlyWhenFocused && document.activeElement !== root) {
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (e.key.toLowerCase() === key.toLowerCase()) {
|
|
32
|
-
action(root);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
window.addEventListener("keydown", onKeyDown);
|
|
38
|
-
|
|
39
|
-
return () => {
|
|
40
|
-
window.removeEventListener("keydown", onKeyDown);
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
package/src/useNavigation.tsx
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { useRef, useCallback, useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
import { queryFocusables, focusElement, normalizeElements } from "./aria";
|
|
4
|
-
import { useRefEffect } from "./useRefEffect";
|
|
5
|
-
|
|
6
|
-
export function useNavigation({
|
|
7
|
-
autofocus = false,
|
|
8
|
-
rowLength = 1,
|
|
9
|
-
enabled = true,
|
|
10
|
-
} = {}) {
|
|
11
|
-
return useRefEffect((root: HTMLElement) => {
|
|
12
|
-
if (!enabled) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
let index = 0;
|
|
17
|
-
|
|
18
|
-
const elements = queryFocusables(root);
|
|
19
|
-
|
|
20
|
-
if (elements.length === 0) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (elements.length !== 0 && autofocus) {
|
|
25
|
-
focusElement(elements, index);
|
|
26
|
-
} else {
|
|
27
|
-
normalizeElements(elements, index);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const onKeyDown = (e: KeyboardEvent) => {
|
|
31
|
-
const elements = queryFocusables(root);
|
|
32
|
-
|
|
33
|
-
if (elements.length === 0) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
let newIndex: number = -1;
|
|
38
|
-
|
|
39
|
-
if (e.code === "ArrowUp") {
|
|
40
|
-
if (index - rowLength < 0) {
|
|
41
|
-
newIndex = elements.length - (elements.length % rowLength) + index;
|
|
42
|
-
} else {
|
|
43
|
-
newIndex = index - rowLength;
|
|
44
|
-
}
|
|
45
|
-
} else if (e.code === "ArrowLeft") {
|
|
46
|
-
if (index <= 0) {
|
|
47
|
-
newIndex = elements.length - 1;
|
|
48
|
-
} else {
|
|
49
|
-
newIndex = index - 1;
|
|
50
|
-
}
|
|
51
|
-
} else if (e.code === "ArrowRight") {
|
|
52
|
-
if (index >= elements.length - 1) {
|
|
53
|
-
newIndex = 0;
|
|
54
|
-
} else {
|
|
55
|
-
newIndex = index + 1;
|
|
56
|
-
}
|
|
57
|
-
} else if (e.code === "ArrowDown") {
|
|
58
|
-
if (index + rowLength > elements.length - 1) {
|
|
59
|
-
newIndex = (index + rowLength) % rowLength;
|
|
60
|
-
} else {
|
|
61
|
-
newIndex = index + rowLength;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (newIndex !== -1 && index !== newIndex) {
|
|
66
|
-
index = newIndex;
|
|
67
|
-
focusElement(elements, index);
|
|
68
|
-
e.preventDefault();
|
|
69
|
-
e.stopPropagation();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
root.addEventListener("keydown", onKeyDown);
|
|
74
|
-
|
|
75
|
-
const observer = new MutationObserver((mutationList) => {
|
|
76
|
-
if (mutationList.filter((m) => m.type === "childList").length > 0) {
|
|
77
|
-
const elements = queryFocusables(root);
|
|
78
|
-
if (elements.length > 0) {
|
|
79
|
-
normalizeElements(elements, index);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
observer.observe(root, { childList: true });
|
|
84
|
-
|
|
85
|
-
return () => {
|
|
86
|
-
root.removeEventListener("keydown", onKeyDown);
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
}
|
package/src/usePromise.tsx
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
export function usePromise<T>(
|
|
4
|
-
promiseFactory: () => Promise<T>,
|
|
5
|
-
inputs: Array<any>,
|
|
6
|
-
initialValue: T
|
|
7
|
-
): [T | null, any] {
|
|
8
|
-
const [value, setValue] = useState(initialValue);
|
|
9
|
-
const [error, setError] = useState(null);
|
|
10
|
-
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
promiseFactory()
|
|
13
|
-
.then((value) => setValue(value))
|
|
14
|
-
.catch((error) => setError(error));
|
|
15
|
-
}, inputs);
|
|
16
|
-
|
|
17
|
-
return [value, error];
|
|
18
|
-
}
|
package/src/useRefEffect.tsx
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useRef, useCallback } from "react";
|
|
2
|
-
|
|
3
|
-
export function useRefEffect<T>(
|
|
4
|
-
callback: (root: T) => (() => void) | void
|
|
5
|
-
): (root: T) => void {
|
|
6
|
-
const unsubscribeRef = useRef<(() => void) | void>(null);
|
|
7
|
-
|
|
8
|
-
const refCallback = useCallback((root: T | null) => {
|
|
9
|
-
if (root === null) {
|
|
10
|
-
unsubscribeRef.current && unsubscribeRef.current();
|
|
11
|
-
} else {
|
|
12
|
-
const unsubscribe = callback(root);
|
|
13
|
-
unsubscribeRef.current = unsubscribe;
|
|
14
|
-
}
|
|
15
|
-
}, []);
|
|
16
|
-
|
|
17
|
-
return refCallback;
|
|
18
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Vite plugin that enables JSS debug tooling:
|
|
5
|
-
*
|
|
6
|
-
* 1. Injects component names into toClassnames() calls so they appear as CSS classes.
|
|
7
|
-
* toClassnames(jss) → toClassnames(jss, "Card")
|
|
8
|
-
*
|
|
9
|
-
* 2. Configures the custom JSX dev runtime that injects <!-- ComponentName -->
|
|
10
|
-
* HTML comments at component boundaries (same approach as the Next.js setup).
|
|
11
|
-
*
|
|
12
|
-
* Usage in vite.config.ts:
|
|
13
|
-
* import jssDebug from "aidos-ui/vite-plugin-jss-debug";
|
|
14
|
-
* export default defineConfig({ plugins: [jssDebug()] });
|
|
15
|
-
*/
|
|
16
|
-
export default function jssDebug() {
|
|
17
|
-
return [
|
|
18
|
-
{
|
|
19
|
-
name: "jss-debug-jsx",
|
|
20
|
-
config() {
|
|
21
|
-
return {
|
|
22
|
-
esbuild: {
|
|
23
|
-
jsx: "automatic",
|
|
24
|
-
jsxDev: true,
|
|
25
|
-
jsxImportSource: "aidos-ui",
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: "jss-debug-classnames",
|
|
32
|
-
enforce: "pre" as const,
|
|
33
|
-
|
|
34
|
-
transform(code: string, id: string) {
|
|
35
|
-
if (id.includes("node_modules")) return;
|
|
36
|
-
if (!id.match(/\.[jt]sx?$/)) return;
|
|
37
|
-
if (!code.includes("toClassnames(")) return;
|
|
38
|
-
|
|
39
|
-
const filename = path.basename(id, path.extname(id));
|
|
40
|
-
const name = JSON.stringify(filename);
|
|
41
|
-
const needle = "toClassnames(";
|
|
42
|
-
let result = "";
|
|
43
|
-
let i = 0;
|
|
44
|
-
|
|
45
|
-
while (i < code.length) {
|
|
46
|
-
const idx = code.indexOf(needle, i);
|
|
47
|
-
if (idx === -1) {
|
|
48
|
-
result += code.slice(i);
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Copy everything up to and including "toClassnames("
|
|
53
|
-
result += code.slice(i, idx + needle.length);
|
|
54
|
-
i = idx + needle.length;
|
|
55
|
-
|
|
56
|
-
// Track parens to find the matching closing )
|
|
57
|
-
let depth = 1;
|
|
58
|
-
let j = i;
|
|
59
|
-
while (j < code.length && depth > 0) {
|
|
60
|
-
const ch = code[j];
|
|
61
|
-
if (ch === "(") depth++;
|
|
62
|
-
else if (ch === ")") depth--;
|
|
63
|
-
if (depth > 0) j++;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Copy the original arguments, then inject the component name
|
|
67
|
-
result += code.slice(i, j) + ", " + name;
|
|
68
|
-
i = j;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return { code: result, map: null };
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
];
|
|
75
|
-
}
|
package/tsconfig.build.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": ["dom", "dom.iterable", "es2020", "es2020.string"],
|
|
4
|
-
"target": "ES2020",
|
|
5
|
-
"module": "esnext",
|
|
6
|
-
"sourceMap": true,
|
|
7
|
-
"outDir": "dist/",
|
|
8
|
-
"jsx": "react-jsx",
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"allowJs": true,
|
|
13
|
-
"skipLibCheck": true,
|
|
14
|
-
"strict": false,
|
|
15
|
-
"forceConsistentCasingInFileNames": true,
|
|
16
|
-
"noEmit": false,
|
|
17
|
-
"incremental": false,
|
|
18
|
-
"resolveJsonModule": true,
|
|
19
|
-
"isolatedModules": true
|
|
20
|
-
},
|
|
21
|
-
"include": ["src/*"],
|
|
22
|
-
"exclude": ["node_modules"]
|
|
23
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": [
|
|
4
|
-
"dom",
|
|
5
|
-
"dom.iterable",
|
|
6
|
-
"es2020",
|
|
7
|
-
"es2020.string"
|
|
8
|
-
],
|
|
9
|
-
"target": "ES2020",
|
|
10
|
-
"module": "esnext",
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"outDir": "dist/",
|
|
13
|
-
"jsx": "react-jsx",
|
|
14
|
-
"jsxImportSource": "aidos-ui-jsx",
|
|
15
|
-
"baseUrl": ".",
|
|
16
|
-
"paths": {
|
|
17
|
-
"aidos-ui-jsx/jsx-dev-runtime": ["./src/jsx-dev-runtime"],
|
|
18
|
-
"aidos-ui-jsx/jsx-runtime": ["./src/jsx-runtime"]
|
|
19
|
-
},
|
|
20
|
-
"moduleResolution": "node",
|
|
21
|
-
"esModuleInterop": true,
|
|
22
|
-
"declaration": true,
|
|
23
|
-
"allowJs": true,
|
|
24
|
-
"skipLibCheck": true,
|
|
25
|
-
"strict": false,
|
|
26
|
-
"forceConsistentCasingInFileNames": true,
|
|
27
|
-
"noEmit": false,
|
|
28
|
-
"incremental": false,
|
|
29
|
-
"resolveJsonModule": true,
|
|
30
|
-
"isolatedModules": true
|
|
31
|
-
},
|
|
32
|
-
"include": [
|
|
33
|
-
"src/*"
|
|
34
|
-
],
|
|
35
|
-
"exclude": [
|
|
36
|
-
"node_modules"
|
|
37
|
-
]
|
|
38
|
-
}
|