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.
Files changed (377) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +23 -3
  3. package/dist/index.d.ts +797 -68
  4. package/dist/index.js +3868 -68
  5. package/dist/index.js.map +1 -1
  6. package/dist/jsx-dev-runtime.d.ts +6 -2
  7. package/dist/jsx-dev-runtime.js +87 -42
  8. package/dist/jsx-dev-runtime.js.map +1 -1
  9. package/dist/jsx-runtime.d.ts +1 -1
  10. package/dist/jsx-runtime.js +2 -2
  11. package/dist/jsx-runtime.js.map +1 -1
  12. package/dist/vite-plugin-jss-debug.d.ts +12 -6
  13. package/dist/vite-plugin-jss-debug.js +57 -72
  14. package/dist/vite-plugin-jss-debug.js.map +1 -1
  15. package/package.json +58 -27
  16. package/.claude/settings.local.json +0 -22
  17. package/.prettierrc +0 -4
  18. package/CLAUDE.md +0 -72
  19. package/dist/Badge.d.ts +0 -6
  20. package/dist/Badge.js +0 -22
  21. package/dist/Badge.js.map +0 -1
  22. package/dist/BaseButton.d.ts +0 -14
  23. package/dist/BaseButton.js +0 -23
  24. package/dist/BaseButton.js.map +0 -1
  25. package/dist/BaseInput.d.ts +0 -14
  26. package/dist/BaseInput.js +0 -15
  27. package/dist/BaseInput.js.map +0 -1
  28. package/dist/BaseLink.d.ts +0 -18
  29. package/dist/BaseLink.js +0 -29
  30. package/dist/BaseLink.js.map +0 -1
  31. package/dist/BaseList.d.ts +0 -6
  32. package/dist/BaseList.js +0 -14
  33. package/dist/BaseList.js.map +0 -1
  34. package/dist/BaseListAddOn.d.ts +0 -5
  35. package/dist/BaseListAddOn.js +0 -7
  36. package/dist/BaseListAddOn.js.map +0 -1
  37. package/dist/BaseListItem.d.ts +0 -26
  38. package/dist/BaseListItem.js +0 -29
  39. package/dist/BaseListItem.js.map +0 -1
  40. package/dist/BaseView.d.ts +0 -12
  41. package/dist/BaseView.js +0 -26
  42. package/dist/BaseView.js.map +0 -1
  43. package/dist/Box.d.ts +0 -4
  44. package/dist/Box.js +0 -6
  45. package/dist/Box.js.map +0 -1
  46. package/dist/Button.d.ts +0 -20
  47. package/dist/Button.js +0 -19
  48. package/dist/Button.js.map +0 -1
  49. package/dist/Calendar.d.ts +0 -18
  50. package/dist/Calendar.js +0 -57
  51. package/dist/Calendar.js.map +0 -1
  52. package/dist/Card.d.ts +0 -4
  53. package/dist/Card.js +0 -14
  54. package/dist/Card.js.map +0 -1
  55. package/dist/Checkbox.d.ts +0 -11
  56. package/dist/Checkbox.js +0 -32
  57. package/dist/Checkbox.js.map +0 -1
  58. package/dist/Circle.d.ts +0 -5
  59. package/dist/Circle.js +0 -12
  60. package/dist/Circle.js.map +0 -1
  61. package/dist/Column.d.ts +0 -6
  62. package/dist/Column.js +0 -7
  63. package/dist/Column.js.map +0 -1
  64. package/dist/DarkMode.d.ts +0 -13
  65. package/dist/DarkMode.js +0 -62
  66. package/dist/DarkMode.js.map +0 -1
  67. package/dist/DateInput.d.ts +0 -13
  68. package/dist/DateInput.js +0 -29
  69. package/dist/DateInput.js.map +0 -1
  70. package/dist/DatePicker.d.ts +0 -11
  71. package/dist/DatePicker.js +0 -34
  72. package/dist/DatePicker.js.map +0 -1
  73. package/dist/DatetimeInput.d.ts +0 -13
  74. package/dist/DatetimeInput.js +0 -31
  75. package/dist/DatetimeInput.js.map +0 -1
  76. package/dist/DesignBook.d.ts +0 -1
  77. package/dist/DesignBook.js +0 -55
  78. package/dist/DesignBook.js.map +0 -1
  79. package/dist/Dialog.d.ts +0 -17
  80. package/dist/Dialog.js +0 -92
  81. package/dist/Dialog.js.map +0 -1
  82. package/dist/Dropdown.d.ts +0 -14
  83. package/dist/Dropdown.js +0 -65
  84. package/dist/Dropdown.js.map +0 -1
  85. package/dist/Emitter.d.ts +0 -6
  86. package/dist/Emitter.js +0 -19
  87. package/dist/Emitter.js.map +0 -1
  88. package/dist/FlexLayout.d.ts +0 -11
  89. package/dist/FlexLayout.js +0 -18
  90. package/dist/FlexLayout.js.map +0 -1
  91. package/dist/Icon.d.ts +0 -12
  92. package/dist/Icon.js +0 -60
  93. package/dist/Icon.js.map +0 -1
  94. package/dist/IconButton.d.ts +0 -9
  95. package/dist/IconButton.js +0 -31
  96. package/dist/IconButton.js.map +0 -1
  97. package/dist/IconLink.d.ts +0 -9
  98. package/dist/IconLink.js +0 -32
  99. package/dist/IconLink.js.map +0 -1
  100. package/dist/IconType.d.ts +0 -1
  101. package/dist/IconType.js +0 -2
  102. package/dist/IconType.js.map +0 -1
  103. package/dist/Interactable.d.ts +0 -50
  104. package/dist/Interactable.js +0 -169
  105. package/dist/Interactable.js.map +0 -1
  106. package/dist/JSSComment.d.ts +0 -10
  107. package/dist/JSSComment.js +0 -52
  108. package/dist/JSSComment.js.map +0 -1
  109. package/dist/Link.d.ts +0 -22
  110. package/dist/Link.js +0 -29
  111. package/dist/Link.js.map +0 -1
  112. package/dist/List.d.ts +0 -15
  113. package/dist/List.js +0 -29
  114. package/dist/List.js.map +0 -1
  115. package/dist/ListButtonItem.d.ts +0 -14
  116. package/dist/ListButtonItem.js +0 -11
  117. package/dist/ListButtonItem.js.map +0 -1
  118. package/dist/ListDivider.d.ts +0 -1
  119. package/dist/ListDivider.js +0 -12
  120. package/dist/ListDivider.js.map +0 -1
  121. package/dist/ListHeaderItem.d.ts +0 -10
  122. package/dist/ListHeaderItem.js +0 -15
  123. package/dist/ListHeaderItem.js.map +0 -1
  124. package/dist/ListItem.d.ts +0 -9
  125. package/dist/ListItem.js +0 -9
  126. package/dist/ListItem.js.map +0 -1
  127. package/dist/ListLinkItem.d.ts +0 -16
  128. package/dist/ListLinkItem.js +0 -11
  129. package/dist/ListLinkItem.js.map +0 -1
  130. package/dist/ListSpacer.d.ts +0 -1
  131. package/dist/ListSpacer.js +0 -13
  132. package/dist/ListSpacer.js.map +0 -1
  133. package/dist/MenuIcon.d.ts +0 -5
  134. package/dist/MenuIcon.js +0 -31
  135. package/dist/MenuIcon.js.map +0 -1
  136. package/dist/NextJSRouter.d.ts +0 -1
  137. package/dist/NextJSRouter.js +0 -37
  138. package/dist/NextJSRouter.js.map +0 -1
  139. package/dist/NextJSRouterState.d.ts +0 -38
  140. package/dist/NextJSRouterState.js +0 -111
  141. package/dist/NextJSRouterState.js.map +0 -1
  142. package/dist/OnVisible.d.ts +0 -5
  143. package/dist/OnVisible.js +0 -28
  144. package/dist/OnVisible.js.map +0 -1
  145. package/dist/Popover.d.ts +0 -22
  146. package/dist/Popover.js +0 -90
  147. package/dist/Popover.js.map +0 -1
  148. package/dist/ProgressBar.d.ts +0 -7
  149. package/dist/ProgressBar.js +0 -42
  150. package/dist/ProgressBar.js.map +0 -1
  151. package/dist/ProgressCircle.d.ts +0 -5
  152. package/dist/ProgressCircle.js +0 -12
  153. package/dist/ProgressCircle.js.map +0 -1
  154. package/dist/Providers.d.ts +0 -9
  155. package/dist/Providers.js +0 -16
  156. package/dist/Providers.js.map +0 -1
  157. package/dist/RangeInput.d.ts +0 -14
  158. package/dist/RangeInput.js +0 -32
  159. package/dist/RangeInput.js.map +0 -1
  160. package/dist/ResultOrError.d.ts +0 -13
  161. package/dist/ResultOrError.js +0 -7
  162. package/dist/ResultOrError.js.map +0 -1
  163. package/dist/RootView.d.ts +0 -5
  164. package/dist/RootView.js +0 -35
  165. package/dist/RootView.js.map +0 -1
  166. package/dist/Row.d.ts +0 -6
  167. package/dist/Row.js +0 -7
  168. package/dist/Row.js.map +0 -1
  169. package/dist/Select.d.ts +0 -9
  170. package/dist/Select.js +0 -17
  171. package/dist/Select.js.map +0 -1
  172. package/dist/StackContext.d.ts +0 -8
  173. package/dist/StackContext.js +0 -25
  174. package/dist/StackContext.js.map +0 -1
  175. package/dist/StaticCheckbox.d.ts +0 -16
  176. package/dist/StaticCheckbox.js +0 -48
  177. package/dist/StaticCheckbox.js.map +0 -1
  178. package/dist/Storage.d.ts +0 -13
  179. package/dist/Storage.js +0 -146
  180. package/dist/Storage.js.map +0 -1
  181. package/dist/Stream.d.ts +0 -9
  182. package/dist/Stream.js +0 -36
  183. package/dist/Stream.js.map +0 -1
  184. package/dist/Sublist.d.ts +0 -12
  185. package/dist/Sublist.js +0 -18
  186. package/dist/Sublist.js.map +0 -1
  187. package/dist/SubmitIconInput.d.ts +0 -8
  188. package/dist/SubmitIconInput.js +0 -25
  189. package/dist/SubmitIconInput.js.map +0 -1
  190. package/dist/Tabs.d.ts +0 -23
  191. package/dist/Tabs.js +0 -39
  192. package/dist/Tabs.js.map +0 -1
  193. package/dist/Text.d.ts +0 -25
  194. package/dist/Text.js +0 -52
  195. package/dist/Text.js.map +0 -1
  196. package/dist/TextArea.d.ts +0 -11
  197. package/dist/TextArea.js +0 -27
  198. package/dist/TextArea.js.map +0 -1
  199. package/dist/TextInput.d.ts +0 -15
  200. package/dist/TextInput.js +0 -61
  201. package/dist/TextInput.js.map +0 -1
  202. package/dist/TextInputWithState.d.ts +0 -8
  203. package/dist/TextInputWithState.js +0 -14
  204. package/dist/TextInputWithState.js.map +0 -1
  205. package/dist/TextPairing.d.ts +0 -21
  206. package/dist/TextPairing.js +0 -26
  207. package/dist/TextPairing.js.map +0 -1
  208. package/dist/TimeInput.d.ts +0 -15
  209. package/dist/TimeInput.js +0 -58
  210. package/dist/TimeInput.js.map +0 -1
  211. package/dist/Tooltip.d.ts +0 -11
  212. package/dist/Tooltip.js +0 -73
  213. package/dist/Tooltip.js.map +0 -1
  214. package/dist/aria.d.ts +0 -8
  215. package/dist/aria.js +0 -42
  216. package/dist/aria.js.map +0 -1
  217. package/dist/guid.d.ts +0 -1
  218. package/dist/guid.js +0 -7
  219. package/dist/guid.js.map +0 -1
  220. package/dist/hash.d.ts +0 -1
  221. package/dist/hash.js +0 -20
  222. package/dist/hash.js.map +0 -1
  223. package/dist/isServer.d.ts +0 -1
  224. package/dist/isServer.js +0 -4
  225. package/dist/isServer.js.map +0 -1
  226. package/dist/jss.d.ts +0 -122
  227. package/dist/jss.js +0 -515
  228. package/dist/jss.js.map +0 -1
  229. package/dist/numberToBase.d.ts +0 -1
  230. package/dist/numberToBase.js +0 -44
  231. package/dist/numberToBase.js.map +0 -1
  232. package/dist/stateMachineContextFactory.d.ts +0 -36
  233. package/dist/stateMachineContextFactory.js +0 -48
  234. package/dist/stateMachineContextFactory.js.map +0 -1
  235. package/dist/useCookie.d.ts +0 -9
  236. package/dist/useCookie.js +0 -67
  237. package/dist/useCookie.js.map +0 -1
  238. package/dist/useKeyboard.d.ts +0 -8
  239. package/dist/useKeyboard.js +0 -26
  240. package/dist/useKeyboard.js.map +0 -1
  241. package/dist/useNavigation.d.ts +0 -5
  242. package/dist/useNavigation.js +0 -79
  243. package/dist/useNavigation.js.map +0 -1
  244. package/dist/usePromise.d.ts +0 -1
  245. package/dist/usePromise.js +0 -12
  246. package/dist/usePromise.js.map +0 -1
  247. package/dist/useRefEffect.d.ts +0 -1
  248. package/dist/useRefEffect.js +0 -15
  249. package/dist/useRefEffect.js.map +0 -1
  250. package/jss-debug-loader.mjs +0 -44
  251. package/next-env.d.ts +0 -6
  252. package/next.config.js +0 -33
  253. package/scripts/embeddings.js +0 -93
  254. package/scripts/openai_embeddings.js +0 -100
  255. package/scripts/publish.js +0 -28
  256. package/scripts/test_embeddings.js +0 -47
  257. package/src/Badge.tsx +0 -36
  258. package/src/BaseButton.tsx +0 -62
  259. package/src/BaseInput.tsx +0 -63
  260. package/src/BaseLink.tsx +0 -80
  261. package/src/BaseList.tsx +0 -26
  262. package/src/BaseListAddOn.tsx +0 -10
  263. package/src/BaseListItem.tsx +0 -119
  264. package/src/BaseView.tsx +0 -57
  265. package/src/Box.tsx +0 -20
  266. package/src/Button.tsx +0 -90
  267. package/src/Calendar.tsx +0 -125
  268. package/src/Card.tsx +0 -30
  269. package/src/Checkbox.tsx +0 -63
  270. package/src/Circle.tsx +0 -24
  271. package/src/Column.tsx +0 -12
  272. package/src/DarkMode.tsx +0 -100
  273. package/src/DateInput.tsx +0 -63
  274. package/src/DatePicker.tsx +0 -67
  275. package/src/DatetimeInput.tsx +0 -64
  276. package/src/DesignBook.tsx +0 -677
  277. package/src/Dialog.tsx +0 -150
  278. package/src/Dropdown.tsx +0 -146
  279. package/src/Emitter.ts +0 -26
  280. package/src/FlexLayout.tsx +0 -53
  281. package/src/Icon.tsx +0 -80
  282. package/src/IconButton.tsx +0 -58
  283. package/src/IconLink.tsx +0 -59
  284. package/src/IconType.ts +0 -787
  285. package/src/Interactable.tsx +0 -210
  286. package/src/JSSComment.tsx +0 -56
  287. package/src/Link.tsx +0 -110
  288. package/src/List.tsx +0 -58
  289. package/src/ListButtonItem.tsx +0 -69
  290. package/src/ListDivider.tsx +0 -13
  291. package/src/ListHeaderItem.tsx +0 -45
  292. package/src/ListItem.tsx +0 -24
  293. package/src/ListLinkItem.tsx +0 -76
  294. package/src/ListSpacer.tsx +0 -14
  295. package/src/MenuIcon.tsx +0 -50
  296. package/src/NextJSRouter.tsx +0 -62
  297. package/src/NextJSRouterState.tsx +0 -154
  298. package/src/OnVisible.tsx +0 -42
  299. package/src/Popover.tsx +0 -145
  300. package/src/ProgressBar.tsx +0 -63
  301. package/src/ProgressCircle.tsx +0 -38
  302. package/src/Providers.tsx +0 -33
  303. package/src/RangeInput.tsx +0 -82
  304. package/src/ResultOrError.ts +0 -15
  305. package/src/RootView.tsx +0 -55
  306. package/src/Row.tsx +0 -12
  307. package/src/Select.tsx +0 -39
  308. package/src/StackContext.tsx +0 -52
  309. package/src/StaticCheckbox.tsx +0 -72
  310. package/src/Storage.tsx +0 -198
  311. package/src/Stream.tsx +0 -50
  312. package/src/Sublist.tsx +0 -61
  313. package/src/SubmitIconInput.tsx +0 -45
  314. package/src/Tabs.tsx +0 -110
  315. package/src/Text.tsx +0 -111
  316. package/src/TextArea.tsx +0 -58
  317. package/src/TextInput.tsx +0 -123
  318. package/src/TextInputWithState.tsx +0 -32
  319. package/src/TextPairing.tsx +0 -115
  320. package/src/TimeInput.tsx +0 -109
  321. package/src/Tooltip.tsx +0 -109
  322. package/src/aria.ts +0 -72
  323. package/src/docs/mdx.tsx +0 -137
  324. package/src/docs/pages.ts +0 -115
  325. package/src/docs/searchIndex.ts +0 -1
  326. package/src/examples/ExampleDialog.tsx +0 -28
  327. package/src/guid.ts +0 -7
  328. package/src/hash.ts +0 -21
  329. package/src/index.ts +0 -68
  330. package/src/isServer.ts +0 -3
  331. package/src/jss.tsx +0 -712
  332. package/src/jsx-dev-runtime.ts +0 -74
  333. package/src/jsx-runtime.ts +0 -2
  334. package/src/numberToBase.ts +0 -52
  335. package/src/pages/Badge.mdx +0 -152
  336. package/src/pages/Button.mdx +0 -163
  337. package/src/pages/Calendar.mdx +0 -254
  338. package/src/pages/Card.mdx +0 -147
  339. package/src/pages/Checkbox.mdx +0 -131
  340. package/src/pages/Dialog.mdx +0 -197
  341. package/src/pages/FlexLayout.mdx +0 -211
  342. package/src/pages/Hashing.mdx +0 -211
  343. package/src/pages/Icon.mdx +0 -171
  344. package/src/pages/IconButton.mdx +0 -155
  345. package/src/pages/Link.mdx +0 -160
  346. package/src/pages/List.mdx +0 -262
  347. package/src/pages/ListHeader.mdx +0 -220
  348. package/src/pages/Popover.mdx +0 -223
  349. package/src/pages/ProgressBar.mdx +0 -200
  350. package/src/pages/ProgressCircle.mdx +0 -218
  351. package/src/pages/RangeInput.mdx +0 -237
  352. package/src/pages/Tabs.mdx +0 -281
  353. package/src/pages/Text.mdx +0 -154
  354. package/src/pages/TextInput.mdx +0 -235
  355. package/src/pages/TextPairing.mdx +0 -204
  356. package/src/pages/TimeInput.mdx +0 -178
  357. package/src/pages/Tooltip.mdx +0 -115
  358. package/src/pages/_app.tsx +0 -466
  359. package/src/pages/_document.tsx +0 -30
  360. package/src/pages/css-in-js.mdx +0 -240
  361. package/src/pages/index.mdx +0 -58
  362. package/src/pages/navigation.mdx +0 -158
  363. package/src/pages/prism.css +0 -3
  364. package/src/pages/useCookie.mdx +0 -176
  365. package/src/pages/useKeyboard.mdx +0 -257
  366. package/src/pages/useNavigation.mdx +0 -258
  367. package/src/pages/usePromise.mdx +0 -280
  368. package/src/pages/useRefEffect.mdx +0 -251
  369. package/src/stateMachineContextFactory.tsx +0 -111
  370. package/src/useCookie.tsx +0 -95
  371. package/src/useKeyboard.tsx +0 -43
  372. package/src/useNavigation.tsx +0 -89
  373. package/src/usePromise.tsx +0 -18
  374. package/src/useRefEffect.tsx +0 -18
  375. package/src/vite-plugin-jss-debug.ts +0 -75
  376. package/tsconfig.build.json +0 -23
  377. package/tsconfig.json +0 -38
package/src/Dialog.tsx DELETED
@@ -1,150 +0,0 @@
1
- import React, { useContext, useMemo, useRef, useState } from "react";
2
-
3
- import { BaseView } from "./BaseView";
4
- import { Text } from "./Text";
5
- import { ListDivider } from "./ListDivider";
6
- import { Column } from "./Column";
7
- import { Row } from "./Row";
8
- import { IconButton } from "./IconButton";
9
- import { toClassnames } from "./jss";
10
-
11
- const jsss = {
12
- dialog: {
13
- border: "1px solid var(--divider)",
14
- borderRadius: "var(--border-radius-l)",
15
- padding: 0,
16
- boxShadow: "var(--shadow-lg)",
17
- animation: "dialogFadeIn 0.2s ease-out",
18
- "::backdrop": {
19
- backgroundColor: "rgba(0, 0, 0, 0.4)",
20
- animation: "backdropFadeIn 0.2s ease-out",
21
- },
22
- },
23
- root: {
24
- display: "grid",
25
- width: "calc(100vw - 48px)",
26
- gridTemplateAreas: `
27
- "header"
28
- "content"
29
- `,
30
- "@media (min-width: 750px)": {
31
- maxWidth: 750,
32
- },
33
- backgroundColor: "var(--secondary-background)",
34
- },
35
- header: {
36
- gridArea: "header",
37
- },
38
- content: {
39
- gridArea: "content",
40
- },
41
- };
42
-
43
- export const Dialog = ({
44
- label,
45
- children,
46
- close,
47
- }: {
48
- label: string;
49
- children: React.JSX.Element;
50
- close: () => void;
51
- }) => {
52
- return (
53
- <BaseView jss={jsss.root}>
54
- <Column jss={jsss.header}>
55
- <Row padding="medium" justify="space-between" align="center">
56
- <Text size="medium" color="secondary">
57
- {label}
58
- </Text>
59
- <IconButton
60
- autoFocus={true}
61
- bare={true}
62
- icon="fa-close"
63
- size="medium"
64
- onClick={close}
65
- color="primary"
66
- />
67
- </Row>
68
- <ListDivider />
69
- </Column>
70
- <BaseView jss={jsss.content}>{children}</BaseView>
71
- </BaseView>
72
- );
73
- };
74
-
75
- const DialogContext = React.createContext<{ setDialog: React.Dispatch<any> }>({
76
- setDialog: () => {},
77
- });
78
-
79
- export function DialogProvider({ children }) {
80
- const [dialog, setDialog] = useState<React.JSX.Element>(null);
81
- const value = useMemo(() => ({ setDialog }), []);
82
-
83
- return (
84
- <DialogContext.Provider value={value}>
85
- {dialog}
86
- {children}
87
- </DialogContext.Provider>
88
- );
89
- }
90
-
91
- export function useDialog<Input>(
92
- DialogComponent: (props: { close: () => void } & Input) => React.JSX.Element,
93
- options: { closeOnOutsideClick: boolean }
94
- ) {
95
- const { setDialog } = useContext(DialogContext);
96
- const dialogRef = useRef<null | HTMLDialogElement>(null);
97
- const activeElementRef = useRef(null);
98
- const closeRef = useRef(null);
99
-
100
- closeRef.current = () => {
101
- dialogRef.current && dialogRef.current.close();
102
- activeElementRef.current && activeElementRef.current.focus();
103
- dialogRef.current = null;
104
- activeElementRef.current = null;
105
- setDialog(null);
106
- };
107
-
108
- const open = (input: Input) => {
109
- activeElementRef.current = document.activeElement;
110
- setDialog(
111
- <dialog
112
- ref={(ref: null | HTMLDialogElement) => {
113
- dialogRef.current = ref;
114
- ref && ref.showModal();
115
- }}
116
- className={toClassnames(jsss.dialog)}
117
- onClose={() => {
118
- closeRef.current();
119
- }}
120
- onClick={(e) => {
121
- if (dialogRef.current == null) {
122
- return;
123
- }
124
-
125
- const dialogDimensions = dialogRef.current.getBoundingClientRect();
126
-
127
- if (options.closeOnOutsideClick === false) {
128
- return;
129
- }
130
-
131
- if (
132
- e.clientX < dialogDimensions.left ||
133
- e.clientX > dialogDimensions.right ||
134
- e.clientY > dialogDimensions.bottom ||
135
- e.clientY < dialogDimensions.top
136
- ) {
137
- dialogRef.current.close();
138
- }
139
- }}
140
- >
141
- <DialogComponent {...input} close={() => closeRef.current()} />
142
- </dialog>
143
- );
144
- };
145
-
146
- return {
147
- open,
148
- close: () => closeRef.current(),
149
- };
150
- }
package/src/Dropdown.tsx DELETED
@@ -1,146 +0,0 @@
1
- import React, { useEffect, useId, useRef, useState } from "react";
2
-
3
- import { BaseView } from "./BaseView";
4
- import { Button } from "./Button";
5
- import { Column } from "./Column";
6
- import { useNavigation } from "./useNavigation";
7
- import { useRefEffect } from "./useRefEffect";
8
- import { Gap, JSS, Padding, Size, getBackground } from "./jss";
9
-
10
- const jsss: { [key: string]: JSS } = {
11
- root: {
12
- position: "relative",
13
- display: "flex",
14
- justifyContent: "center",
15
- alignItems: "stretch",
16
- flexGrow: 1,
17
- },
18
- button: {
19
- flexGrow: 1,
20
- },
21
- dropdown: {
22
- position: "absolute",
23
- top: "100%",
24
- left: 0,
25
- right: 0,
26
- borderRadius: "var(--border-radius-m)",
27
- boxShadow: "var(--shadow-sm)",
28
- zIndex: 1,
29
- },
30
- };
31
- export function Dropdown<T extends string | number>({
32
- id: propId,
33
- label,
34
- options,
35
- selection,
36
- setSelection,
37
- jss,
38
- jssButton,
39
- optionLabel,
40
- padding,
41
- size,
42
- gap = "medium",
43
- }: {
44
- id?: string;
45
- label: string;
46
- options: Set<T>;
47
- setSelection: (selection: T) => void;
48
- selection: T;
49
- jss?: JSS;
50
- jssButton?: JSS;
51
- optionLabel: (option: T) => string;
52
- padding?: Padding;
53
- gap?: Gap;
54
- size?: Size;
55
- }) {
56
- const hookId = useId();
57
- const id = propId ?? hookId;
58
- const triggerRef = useRef(null);
59
- const [expanded, setExpanded] = useState(false);
60
- const dropdownRef = useNavigation({ autofocus: true });
61
- const rootRef = useRefEffect<HTMLElement>((root) => {
62
- const onKeyDown = (e) => {
63
- if (e.code === "Escape") {
64
- setExpanded(false);
65
- }
66
- };
67
-
68
- root.addEventListener("keydown", onKeyDown);
69
- return () => root.removeEventListener("keydown", onKeyDown);
70
- });
71
-
72
- useEffect(() => {
73
- if (!expanded) {
74
- triggerRef.current && triggerRef.current.focus();
75
- }
76
- }, [expanded]);
77
-
78
- return (
79
- <BaseView ref={rootRef} jss={[jsss.root, jss]}>
80
- <Button
81
- size={size}
82
- padding={padding}
83
- aria-expanded={expanded ? "true" : "false"}
84
- aria-controls={id}
85
- aria-haspopup="true"
86
- aria-label={label}
87
- role="combobox"
88
- justify="space-between"
89
- tabIndex={0}
90
- jss={[jsss.button, jssButton]}
91
- color="positive"
92
- icon="fa-chevron-down"
93
- iconPosition="right"
94
- onClick={() => {
95
- setExpanded((x) => !x);
96
- }}
97
- ref={triggerRef}
98
- >
99
- {optionLabel(selection)}
100
- </Button>
101
- {expanded && (
102
- <Column
103
- gap={gap}
104
- jss={[jsss.dropdown, getBackground("secondary-background")]}
105
- id={id}
106
- role="listbox"
107
- aria-label={label}
108
- tabIndex={-1}
109
- ref={dropdownRef}
110
- onBlur={(e) => {
111
- if (!e.currentTarget.contains(e.relatedTarget)) {
112
- setExpanded(false);
113
- }
114
- }}
115
- >
116
- {Array.from(options).map((option, index) => {
117
- const optionId = `${id}-${index}`;
118
- const selected = option === selection;
119
- return (
120
- <Button
121
- size={size}
122
- padding={padding}
123
- justify={selected ? "space-between" : "flex-start"}
124
- align="center"
125
- bare={true}
126
- iconPosition="right"
127
- icon={selected ? "fa-check" : undefined}
128
- key={optionId}
129
- role="option"
130
- id={optionId}
131
- aria-selected={selected ? "true" : "false"}
132
- color="positive"
133
- onClick={() => {
134
- setSelection(option);
135
- setExpanded(false);
136
- }}
137
- >
138
- {optionLabel(option)}
139
- </Button>
140
- );
141
- })}
142
- </Column>
143
- )}
144
- </BaseView>
145
- );
146
- }
package/src/Emitter.ts DELETED
@@ -1,26 +0,0 @@
1
- export type Callback<Value> = (value: Value) => void;
2
-
3
- export type Subscribe<Value> = (callback: Callback<Value>) => () => void;
4
-
5
- export function createEmitter<Value>() {
6
- const subscriptions = new Set<Callback<Value>>();
7
-
8
- const subscribe: Subscribe<Value> = (callback: Callback<Value>) => {
9
- subscriptions.add(callback);
10
-
11
- return () => {
12
- subscriptions.delete(callback);
13
- };
14
- };
15
-
16
- const emit = (value: Value) => {
17
- subscriptions.forEach((subscription) => {
18
- subscription(value);
19
- });
20
- };
21
-
22
- return {
23
- subscribe,
24
- emit,
25
- };
26
- }
@@ -1,53 +0,0 @@
1
- import React from "react";
2
-
3
- import { BaseView, BaseViewProps } from "./BaseView";
4
- import {
5
- Justify,
6
- Gap,
7
- Align,
8
- Padding,
9
- FlexDirection,
10
- getPadding,
11
- getSpacing,
12
- } from "./jss";
13
-
14
- export interface FlexLayoutProps extends BaseViewProps {
15
- justify?: Justify;
16
- gap?: Gap;
17
- align?: Align;
18
- padding?: Padding;
19
- direction?: FlexDirection;
20
- }
21
-
22
- export const FlexLayout = React.forwardRef(
23
- (
24
- {
25
- jss,
26
- gap = "none",
27
- justify = "none",
28
- align = "none",
29
- padding = "none",
30
- direction = "column",
31
- ...otherProps
32
- }: FlexLayoutProps,
33
- ref?: React.Ref<HTMLElement>
34
- ) => {
35
- return (
36
- <BaseView
37
- ref={ref}
38
- jss={[
39
- {
40
- display: "flex",
41
- flexDirection: direction,
42
- gap: getSpacing(gap),
43
- justifyContent: justify,
44
- alignItems: align,
45
- },
46
- getPadding(padding),
47
- jss,
48
- ]}
49
- {...otherProps}
50
- />
51
- );
52
- }
53
- );
package/src/Icon.tsx DELETED
@@ -1,80 +0,0 @@
1
- import React from "react";
2
- import { Icon as IconifyIcon } from "@iconify/react";
3
- import { BaseView } from "./BaseView";
4
- import { IconType } from "./IconType";
5
- import { Size, TextColor, getTextColor } from "./jss";
6
-
7
- const jsss = {
8
- root: {
9
- display: "flex",
10
- justifyContent: "center",
11
- alignItems: "center",
12
- " svg": {
13
- height: "inherit",
14
- width: "inherit",
15
- },
16
- },
17
- xsmall: {
18
- height: 8,
19
- width: 8,
20
- },
21
- small: {
22
- height: 12,
23
- width: 12,
24
- },
25
- medium: {
26
- height: 18,
27
- width: 18,
28
- },
29
- large: {
30
- height: 24,
31
- width: 24,
32
- },
33
- xlarge: {
34
- height: 32,
35
- width: 32,
36
- },
37
- xxlarge: {
38
- height: 48,
39
- width: 48,
40
- },
41
- xxxlarge: {
42
- height: 64,
43
- width: 64,
44
- },
45
- };
46
-
47
- export function IconProvider({ children }: { children: React.JSX.Element }) {
48
- return children;
49
- }
50
-
51
- export function Icon({
52
- icon,
53
- size,
54
- color,
55
- ariaLabel,
56
- }: {
57
- ariaLabel?: string;
58
- icon: IconType;
59
- size: Size;
60
- color: TextColor;
61
- }) {
62
- return (
63
- <BaseView
64
- aria-label={ariaLabel}
65
- jss={[
66
- jsss.root,
67
- size === "xsmall" && jsss.xsmall,
68
- size === "small" && jsss.small,
69
- size === "medium" && jsss.medium,
70
- size === "large" && jsss.large,
71
- size === "xlarge" && jsss.xlarge,
72
- size === "xxlarge" && jsss.xxlarge,
73
- size === "xxxlarge" && jsss.xxxlarge,
74
- getTextColor(color),
75
- ]}
76
- >
77
- <IconifyIcon icon={icon} width="100%" height="100%" />
78
- </BaseView>
79
- );
80
- }
@@ -1,58 +0,0 @@
1
- import React from "react";
2
- import { BaseButton, BaseButtonProps } from "./BaseButton";
3
- import { Icon } from "./Icon";
4
- import { IconType } from "./IconType";
5
- import { getGlyphColor } from "./Interactable";
6
- import { Size } from "./jss";
7
-
8
- const sizes = {
9
- xsmall: 20,
10
- small: 24,
11
- medium: 32,
12
- large: 40,
13
- xlarge: 48,
14
- };
15
-
16
- export interface IconButtonProps extends BaseButtonProps {
17
- icon: IconType;
18
- size: Size;
19
- }
20
-
21
- export const IconButton = React.forwardRef(
22
- (
23
- { icon, size, color, bare, disabled, jss, ...buttonProps }: IconButtonProps,
24
- ref?: React.Ref<HTMLButtonElement>
25
- ) => {
26
- return (
27
- <BaseButton
28
- {...buttonProps}
29
- bare={bare}
30
- jss={[
31
- {
32
- display: "flex",
33
- justifyContent: "center",
34
- alignItems: "center",
35
- height: sizes[size],
36
- width: sizes[size],
37
- borderRadius: sizes[size] / 2,
38
- },
39
- !disabled && {
40
- ":active": {
41
- transform: "scale(0.92)",
42
- },
43
- },
44
- jss,
45
- ]}
46
- color={color}
47
- ref={ref}
48
- disabled={disabled}
49
- >
50
- <Icon
51
- size={size}
52
- icon={icon}
53
- color={getGlyphColor(color, disabled, bare)}
54
- />
55
- </BaseButton>
56
- );
57
- }
58
- );
package/src/IconLink.tsx DELETED
@@ -1,59 +0,0 @@
1
- import React from "react";
2
- import { Icon } from "./Icon";
3
- import { IconType } from "./IconType";
4
- import { getGlyphColor } from "./Interactable";
5
- import { Size } from "./jss";
6
- import { BaseLink, BaseLinkProps } from "./BaseLink";
7
-
8
- const sizes = {
9
- xsmall: 20,
10
- small: 24,
11
- medium: 32,
12
- large: 40,
13
- xlarge: 48,
14
- };
15
-
16
- export interface IconLinkProps extends BaseLinkProps {
17
- icon: IconType;
18
- size: Size;
19
- }
20
-
21
- export const IconLink = React.forwardRef(
22
- (
23
- { icon, size, color, bare, disabled, jss, ...otherProps }: IconLinkProps,
24
- ref?: React.Ref<HTMLAnchorElement>
25
- ) => {
26
- return (
27
- <BaseLink
28
- {...otherProps}
29
- bare={bare}
30
- jss={[
31
- {
32
- display: "flex",
33
- justifyContent: "center",
34
- alignItems: "center",
35
- height: sizes[size],
36
- width: sizes[size],
37
- borderRadius: sizes[size] / 2,
38
- textDecoration: "none",
39
- },
40
- !disabled && {
41
- ":active": {
42
- transform: "scale(0.92)",
43
- },
44
- },
45
- jss,
46
- ]}
47
- color={color}
48
- ref={ref}
49
- disabled={disabled}
50
- >
51
- <Icon
52
- size={size}
53
- icon={icon}
54
- color={getGlyphColor(color, disabled, bare)}
55
- />
56
- </BaseLink>
57
- );
58
- }
59
- );