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
@@ -1,147 +0,0 @@
1
- import { Card } from "../Card";
2
- import { Button } from "../Button";
3
- import { TextInput } from "../TextInput";
4
- import { Column } from "../Column";
5
- import { Row } from "../Row";
6
- import { H2, H3, P, Span } from "../Text";
7
- import { Icon } from "../Icon";
8
-
9
- # Card
10
-
11
- A container component that groups related content with a distinct visual treatment. Cards provide elevation, background, and rounded corners to create visual hierarchy.
12
-
13
- ---
14
-
15
- ## Props
16
-
17
- Card extends all FlexLayout props:
18
-
19
- | Prop | Type | Default | Description |
20
- |------|------|---------|-------------|
21
- | `padding` | `Padding` | `"large"` | Internal padding |
22
- | `gap` | `Gap` | `"large"` | Space between children |
23
- | `direction` | `"row"` \| `"column"` | `"column"` | Flex direction |
24
- | `align` | `Align` | - | Cross-axis alignment |
25
- | `justify` | `Justify` | - | Main-axis alignment |
26
- | `grow` | `boolean` | - | Allow card to grow |
27
-
28
- ---
29
-
30
- ## Basic card
31
-
32
- <Card>
33
- <H3>Card title</H3>
34
- <P>Cards group related content together with visual distinction from the surrounding interface.</P>
35
- </Card>
36
-
37
- ```js
38
- <Card>
39
- <H3>Card title</H3>
40
- <P>Card content goes here...</P>
41
- </Card>
42
- ```
43
-
44
- ---
45
-
46
- ## Contact form example
47
-
48
- <Card>
49
- <H3>Contact Us</H3>
50
- <P>Send us a message and we'll get back to you soon.</P>
51
- <TextInput
52
- placeholder="Your email"
53
- value=""
54
- type="email"
55
- onValueChange={() => {}}
56
- />
57
- <TextInput
58
- placeholder="Your message"
59
- value=""
60
- onValueChange={() => {}}
61
- />
62
- <Button color="positive" onClick={() => {}}>
63
- Send Message
64
- </Button>
65
- </Card>
66
-
67
- ```js
68
- <Card>
69
- <H3>Contact Us</H3>
70
- <P>Send us a message and we'll get back to you soon.</P>
71
- <TextInput
72
- placeholder="Your email"
73
- value={email}
74
- type="email"
75
- onValueChange={setEmail}
76
- />
77
- <TextInput
78
- placeholder="Your message"
79
- value={message}
80
- onValueChange={setMessage}
81
- />
82
- <Button color="positive" onClick={handleSubmit}>
83
- Send Message
84
- </Button>
85
- </Card>
86
- ```
87
-
88
- ---
89
-
90
- ## Custom padding and gap
91
-
92
- <Row gap="medium">
93
- <Card padding="small" gap="small">
94
- <Span>Small padding</Span>
95
- <Span color="secondary">Compact layout</Span>
96
- </Card>
97
- <Card padding="xlarge" gap="medium">
98
- <Span>Large padding</Span>
99
- <Span color="secondary">Spacious layout</Span>
100
- </Card>
101
- </Row>
102
-
103
- ```js
104
- <Card padding="small" gap="small">
105
- <Span>Compact card</Span>
106
- </Card>
107
-
108
- <Card padding="xlarge" gap="large">
109
- <Span>Spacious card</Span>
110
- </Card>
111
- ```
112
-
113
- ---
114
-
115
- ## Horizontal card
116
-
117
- Use `direction="row"` for horizontal layouts:
118
-
119
- <Card direction="row" align="center" gap="medium">
120
- <Icon icon="fa-user" color="highlight" size="xlarge" />
121
- <Column gap="none">
122
- <Span bold>John Doe</Span>
123
- <Span color="secondary" size="small">Software Engineer</Span>
124
- </Column>
125
- </Card>
126
-
127
- ```js
128
- <Card direction="row" align="center" gap="medium">
129
- <Icon icon="fa-user" color="highlight" size="xlarge" />
130
- <Column gap="none">
131
- <Span bold>John Doe</Span>
132
- <Span color="secondary" size="small">Software Engineer</Span>
133
- </Column>
134
- </Card>
135
- ```
136
-
137
- ---
138
-
139
- ## Use cases
140
-
141
- Cards are useful for:
142
-
143
- - **Forms** - Group related inputs together
144
- - **Profiles** - Display user or item information
145
- - **Summaries** - Highlight key metrics or stats
146
- - **Actions** - Group related actions with context
147
- - **Content sections** - Separate distinct content areas
@@ -1,131 +0,0 @@
1
- import { Checkbox } from "../Checkbox";
2
- import { StaticCheckbox } from "../StaticCheckbox";
3
- import { Column } from "../Column";
4
- import { Row } from "../Row";
5
- import { Span } from "../Text";
6
-
7
- # Checkbox
8
-
9
- A styled checkbox input with custom visual appearance. Built on native HTML checkbox for full accessibility support.
10
-
11
- ---
12
-
13
- ## Props
14
-
15
- ### Checkbox
16
-
17
- | Prop | Type | Required | Default | Description |
18
- |------|------|----------|---------|-------------|
19
- | `checked` | `boolean` | Yes | - | Whether the checkbox is checked |
20
- | `onClick` | `() => void` | Yes | - | Called when checkbox is toggled |
21
- | `size` | `Size` | Yes | - | `"small"` (16px), `"medium"` (20px), `"large"` (24px) |
22
-
23
- Also accepts standard HTML input attributes.
24
-
25
- ### StaticCheckbox
26
-
27
- | Prop | Type | Required | Default | Description |
28
- |------|------|----------|---------|-------------|
29
- | `checked` | `boolean` | Yes | - | Whether the checkbox appears checked |
30
- | `size` | `Size` | Yes | - | `"small"`, `"medium"`, `"large"` |
31
-
32
- ---
33
-
34
- ## Sizes
35
-
36
- <Row padding="medium" gap="xlarge" justify="center" align="center">
37
- <Column gap="small" align="center">
38
- <Checkbox size="small" checked={true} onClick={() => {}} />
39
- <Span size="small" color="secondary">small</Span>
40
- </Column>
41
- <Column gap="small" align="center">
42
- <Checkbox size="medium" checked={true} onClick={() => {}} />
43
- <Span size="small" color="secondary">medium</Span>
44
- </Column>
45
- <Column gap="small" align="center">
46
- <Checkbox size="large" checked={true} onClick={() => {}} />
47
- <Span size="small" color="secondary">large</Span>
48
- </Column>
49
- </Row>
50
-
51
- ```js
52
- <Checkbox size="small" checked={checked} onClick={toggle} />
53
- <Checkbox size="medium" checked={checked} onClick={toggle} />
54
- <Checkbox size="large" checked={checked} onClick={toggle} />
55
- ```
56
-
57
- ---
58
-
59
- ## States
60
-
61
- <Row padding="medium" gap="xlarge" justify="center" align="center">
62
- <Column gap="small" align="center">
63
- <Checkbox size="medium" checked={false} onClick={() => {}} />
64
- <Span size="small" color="secondary">unchecked</Span>
65
- </Column>
66
- <Column gap="small" align="center">
67
- <Checkbox size="medium" checked={true} onClick={() => {}} />
68
- <Span size="small" color="secondary">checked</Span>
69
- </Column>
70
- </Row>
71
-
72
- ```js
73
- const [checked, setChecked] = useState(false);
74
-
75
- <Checkbox
76
- size="medium"
77
- checked={checked}
78
- onClick={() => setChecked(!checked)}
79
- />
80
- ```
81
-
82
- ---
83
-
84
- ## StaticCheckbox
85
-
86
- Use `StaticCheckbox` when you need just the visual appearance without the underlying `<input>` element. Useful when the checkbox is part of a larger interactive component.
87
-
88
- <Row padding="medium" gap="large" justify="center" align="center">
89
- <StaticCheckbox size="small" checked={true} />
90
- <StaticCheckbox size="medium" checked={true} />
91
- <StaticCheckbox size="large" checked={true} />
92
- </Row>
93
-
94
- ```js
95
- // Visual only - no input element
96
- <StaticCheckbox size="medium" checked={isSelected} />
97
-
98
- // Used within a custom list item
99
- <ListButtonItem
100
- headline="Option"
101
- addOn={<StaticCheckbox size="medium" checked={selected} />}
102
- onClick={toggleSelection}
103
- />
104
- ```
105
-
106
- ---
107
-
108
- ## With label
109
-
110
- Checkboxes are typically paired with labels for better UX:
111
-
112
- ```js
113
- <Row gap="small" align="center">
114
- <Checkbox
115
- size="medium"
116
- checked={agreed}
117
- onClick={() => setAgreed(!agreed)}
118
- />
119
- <Span>I agree to the terms and conditions</Span>
120
- </Row>
121
- ```
122
-
123
- ---
124
-
125
- ## Accessibility
126
-
127
- - Uses native `<input type="checkbox">` for full keyboard and screen reader support
128
- - Visual checkbox is layered over the hidden input
129
- - Focus ring appears on keyboard navigation
130
- - Press animation provides tactile feedback
131
- - `aria-checked` attribute reflects current state
@@ -1,197 +0,0 @@
1
- import { DialogTrigger } from "../examples/ExampleDialog.tsx";
2
- import { Button } from "../Button";
3
-
4
- # Dialog
5
-
6
- A modal dialog component that overlays the main UI. Dialogs trap focus and prevent interaction with the underlying content, following accessibility best practices.
7
-
8
- ---
9
-
10
- ## Props
11
-
12
- ### Dialog component
13
-
14
- | Prop | Type | Required | Description |
15
- |------|------|----------|-------------|
16
- | `label` | `string` | Yes | Dialog title displayed in the header |
17
- | `children` | `ReactNode` | Yes | Dialog content |
18
- | `close` | `() => void` | Yes | Function to close the dialog |
19
-
20
- ### useDialog hook
21
-
22
- | Parameter | Type | Description |
23
- |-----------|------|-------------|
24
- | `DialogComponent` | `(props: { close: () => void } & Input) => JSX.Element` | Component to render inside the dialog |
25
- | `options.closeOnOutsideClick` | `boolean` | Whether clicking outside closes the dialog |
26
-
27
- Returns:
28
- - `open(input?: Input)` - Function to open the dialog with optional input data
29
- - `close()` - Function to close the dialog programmatically
30
-
31
- ---
32
-
33
- ## Basic usage
34
-
35
- Click the button to open a dialog:
36
-
37
- <DialogTrigger />
38
-
39
- ```js
40
- import { Dialog, useDialog } from "aidos-ui";
41
-
42
- function MyDialog({ close }) {
43
- return (
44
- <Dialog close={close} label="Settings">
45
- <Row padding="medium" align="center" justify="space-between">
46
- <Span>Dark mode</Span>
47
- <DarkModeToggle />
48
- </Row>
49
- </Dialog>
50
- );
51
- }
52
-
53
- function App() {
54
- const { open } = useDialog(
55
- ({ close }) => <MyDialog close={close} />,
56
- { closeOnOutsideClick: true }
57
- );
58
-
59
- return (
60
- <Button color="positive" onClick={() => open()}>
61
- Open Settings
62
- </Button>
63
- );
64
- }
65
- ```
66
-
67
- ---
68
-
69
- ## Passing data to dialog
70
-
71
- Use TypeScript generics to pass data when opening the dialog:
72
-
73
- ```js
74
- interface UserData {
75
- name: string;
76
- email: string;
77
- }
78
-
79
- function EditUserDialog({ close, name, email }: { close: () => void } & UserData) {
80
- return (
81
- <Dialog close={close} label="Edit User">
82
- <Column padding="medium" gap="medium">
83
- <TextInput value={name} onValueChange={() => {}} />
84
- <TextInput value={email} onValueChange={() => {}} />
85
- <Button color="positive" onClick={close}>
86
- Save
87
- </Button>
88
- </Column>
89
- </Dialog>
90
- );
91
- }
92
-
93
- function App() {
94
- const { open } = useDialog<UserData>(
95
- ({ close, name, email }) => (
96
- <EditUserDialog close={close} name={name} email={email} />
97
- ),
98
- { closeOnOutsideClick: false }
99
- );
100
-
101
- return (
102
- <Button
103
- color="primary"
104
- onClick={() => open({ name: "John", email: "john@example.com" })}
105
- >
106
- Edit User
107
- </Button>
108
- );
109
- }
110
- ```
111
-
112
- ---
113
-
114
- ## Dialog options
115
-
116
- ### Close on outside click
117
-
118
- Control whether clicking the backdrop closes the dialog:
119
-
120
- ```js
121
- // Dialog closes when clicking outside
122
- const { open } = useDialog(
123
- ({ close }) => <MyDialog close={close} />,
124
- { closeOnOutsideClick: true }
125
- );
126
-
127
- // Dialog stays open until explicitly closed
128
- const { open } = useDialog(
129
- ({ close }) => <MyDialog close={close} />,
130
- { closeOnOutsideClick: false }
131
- );
132
- ```
133
-
134
- ---
135
-
136
- ## Closing the dialog
137
-
138
- Dialogs can be closed in several ways:
139
-
140
- 1. **Close button** - Built into the Dialog header
141
- 2. **Escape key** - Native dialog behavior
142
- 3. **Outside click** - When `closeOnOutsideClick: true`
143
- 4. **Programmatically** - Using the `close` function
144
-
145
- ```js
146
- function ConfirmDialog({ close, onConfirm }) {
147
- return (
148
- <Dialog close={close} label="Confirm">
149
- <Column padding="medium" gap="medium">
150
- <P>Are you sure you want to proceed?</P>
151
- <Row gap="medium" justify="end">
152
- <Button bare color="primary" onClick={close}>
153
- Cancel
154
- </Button>
155
- <Button
156
- color="positive"
157
- onClick={() => {
158
- onConfirm();
159
- close();
160
- }}
161
- >
162
- Confirm
163
- </Button>
164
- </Row>
165
- </Column>
166
- </Dialog>
167
- );
168
- }
169
- ```
170
-
171
- ---
172
-
173
- ## Setup
174
-
175
- The `DialogProvider` must wrap your app to enable dialogs. This is typically included in the `Providers` component:
176
-
177
- ```js
178
- import { Providers } from "aidos-ui";
179
-
180
- function App() {
181
- return (
182
- <Providers>
183
- {/* Your app content */}
184
- </Providers>
185
- );
186
- }
187
- ```
188
-
189
- ---
190
-
191
- ## Accessibility
192
-
193
- - Uses native `<dialog>` element with `showModal()` for proper modal behavior
194
- - Focus is trapped within the dialog
195
- - Escape key closes the dialog
196
- - Focus returns to the triggering element when closed
197
- - Backdrop prevents interaction with underlying content
@@ -1,211 +0,0 @@
1
- import { Column } from "../Column";
2
- import { Row } from "../Row";
3
- import { Badge } from "../Badge";
4
- import { BaseView } from "../BaseView";
5
- import { Span } from "../Text";
6
- import { cssVar } from "../jss";
7
-
8
- # FlexLayout
9
-
10
- `Row` and `Column` are the primary layout components, providing a simple API for flexbox layouts without writing custom styles.
11
-
12
- ---
13
-
14
- ## Row
15
-
16
- Arranges children horizontally (flex-direction: row).
17
-
18
- <Row gap="medium" padding="medium" jss={{ border: `1px solid ${cssVar("--divider")}`, borderRadius: 8 }}>
19
- <Badge />
20
- <Badge />
21
- <Badge />
22
- </Row>
23
-
24
- ```js
25
- <Row gap="medium" padding="medium">
26
- <Badge />
27
- <Badge />
28
- <Badge />
29
- </Row>
30
- ```
31
-
32
- ---
33
-
34
- ## Column
35
-
36
- Arranges children vertically (flex-direction: column).
37
-
38
- <Column gap="medium" padding="medium" jss={{ border: `1px solid ${cssVar("--divider")}`, borderRadius: 8 }}>
39
- <Badge />
40
- <Badge />
41
- <Badge />
42
- </Column>
43
-
44
- ```js
45
- <Column gap="medium" padding="medium">
46
- <Badge />
47
- <Badge />
48
- <Badge />
49
- </Column>
50
- ```
51
-
52
- ---
53
-
54
- ## Props
55
-
56
- Both `Row` and `Column` accept the same props:
57
-
58
- | Prop | Type | Default | Description |
59
- |------|------|---------|-------------|
60
- | `gap` | `Gap` | - | Space between children: `"none"`, `"xsmall"`, `"small"`, `"medium"`, `"large"`, `"xlarge"` |
61
- | `padding` | `Padding` | - | Internal padding (same values as gap) |
62
- | `justify` | `Justify` | - | Main axis alignment: `"start"`, `"end"`, `"center"`, `"space-between"`, `"space-around"`, `"space-evenly"` |
63
- | `align` | `Align` | - | Cross axis alignment: `"start"`, `"end"`, `"center"`, `"stretch"`, `"baseline"` |
64
- | `grow` | `boolean` | `false` | Allow element to grow (flex-grow: 1) |
65
- | `shrink` | `boolean` | `false` | Allow element to shrink (flex-shrink: 1) |
66
- | `wrap` | `boolean` | `false` | Allow items to wrap |
67
-
68
- ---
69
-
70
- ## Justify content
71
-
72
- Control how items are distributed along the main axis:
73
-
74
- <Column gap="medium">
75
- <Row justify="start" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
76
- <Badge /><Badge /><Badge />
77
- </Row>
78
- <Row justify="center" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
79
- <Badge /><Badge /><Badge />
80
- </Row>
81
- <Row justify="end" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
82
- <Badge /><Badge /><Badge />
83
- </Row>
84
- <Row justify="space-between" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
85
- <Badge /><Badge /><Badge />
86
- </Row>
87
- <Row justify="space-around" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
88
- <Badge /><Badge /><Badge />
89
- </Row>
90
- <Row justify="space-evenly" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}` }}>
91
- <Badge /><Badge /><Badge />
92
- </Row>
93
- </Column>
94
-
95
- ```js
96
- <Row justify="start">...</Row>
97
- <Row justify="center">...</Row>
98
- <Row justify="end">...</Row>
99
- <Row justify="space-between">...</Row>
100
- <Row justify="space-around">...</Row>
101
- <Row justify="space-evenly">...</Row>
102
- ```
103
-
104
- ---
105
-
106
- ## Align items
107
-
108
- Control how items are aligned on the cross axis:
109
-
110
- <Row gap="medium">
111
- <Row align="start" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}`, height: 80 }}>
112
- <Badge />
113
- </Row>
114
- <Row align="center" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}`, height: 80 }}>
115
- <Badge />
116
- </Row>
117
- <Row align="end" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}`, height: 80 }}>
118
- <Badge />
119
- </Row>
120
- <Row align="stretch" padding="small" jss={{ border: `1px solid ${cssVar("--highlight")}`, height: 80 }}>
121
- <BaseView jss={{ backgroundColor: cssVar("--highlight"), width: 16 }} />
122
- </Row>
123
- </Row>
124
-
125
- ```js
126
- <Row align="start">...</Row>
127
- <Row align="center">...</Row>
128
- <Row align="end">...</Row>
129
- <Row align="stretch">...</Row>
130
- ```
131
-
132
- ---
133
-
134
- ## Gap sizes
135
-
136
- <Column gap="medium">
137
- <Row gap="none" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
138
- <Badge /><Badge /><Badge />
139
- </Row>
140
- <Row gap="small" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
141
- <Badge /><Badge /><Badge />
142
- </Row>
143
- <Row gap="medium" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
144
- <Badge /><Badge /><Badge />
145
- </Row>
146
- <Row gap="large" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
147
- <Badge /><Badge /><Badge />
148
- </Row>
149
- <Row gap="xlarge" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
150
- <Badge /><Badge /><Badge />
151
- </Row>
152
- </Column>
153
-
154
- ```js
155
- <Row gap="none">...</Row> // 0px
156
- <Row gap="xsmall">...</Row> // 4px
157
- <Row gap="small">...</Row> // 8px
158
- <Row gap="medium">...</Row> // 12px
159
- <Row gap="large">...</Row> // 16px
160
- <Row gap="xlarge">...</Row> // 24px
161
- ```
162
-
163
- ---
164
-
165
- ## Grow and shrink
166
-
167
- Control how items expand or contract:
168
-
169
- <Row gap="medium" jss={{ border: `1px solid ${cssVar("--divider")}` }}>
170
- <BaseView padding="medium" jss={{ backgroundColor: cssVar("--highlight") }}>
171
- <Span color="light">Fixed</Span>
172
- </BaseView>
173
- <BaseView grow padding="medium" jss={{ backgroundColor: cssVar("--secondary-background") }}>
174
- <Span>Grows to fill space</Span>
175
- </BaseView>
176
- <BaseView padding="medium" jss={{ backgroundColor: cssVar("--highlight") }}>
177
- <Span color="light">Fixed</Span>
178
- </BaseView>
179
- </Row>
180
-
181
- ```js
182
- <Row>
183
- <BaseView>Fixed width</BaseView>
184
- <BaseView grow>Fills remaining space</BaseView>
185
- <BaseView>Fixed width</BaseView>
186
- </Row>
187
- ```
188
-
189
- ---
190
-
191
- ## Nesting layouts
192
-
193
- Combine Row and Column for complex layouts:
194
-
195
- ```js
196
- <Column gap="medium" padding="medium">
197
- <Row justify="space-between" align="center">
198
- <Span>Title</Span>
199
- <Button color="primary" onClick={() => {}}>Action</Button>
200
- </Row>
201
- <Row gap="medium">
202
- <Column grow gap="small">
203
- <Span>Main content</Span>
204
- <P>Description text here...</P>
205
- </Column>
206
- <Column gap="small">
207
- <Span>Sidebar</Span>
208
- </Column>
209
- </Row>
210
- </Column>
211
- ```