@g4rcez/components 4.0.2 → 4.1.2

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 (337) hide show
  1. package/ai/SKILL.md +120 -153
  2. package/ai/docs/Alert.md +47 -48
  3. package/ai/docs/AnimatedList.md +88 -87
  4. package/ai/docs/Autocomplete.md +102 -106
  5. package/ai/docs/Button.md +33 -33
  6. package/ai/docs/Calendar.md +67 -101
  7. package/ai/docs/Card.md +59 -55
  8. package/ai/docs/Checkbox.md +77 -82
  9. package/ai/docs/CommandPalette.md +154 -172
  10. package/ai/docs/DatePicker.md +45 -64
  11. package/ai/docs/Dropdown.md +98 -126
  12. package/ai/docs/Empty.md +41 -44
  13. package/ai/docs/Expand.md +40 -54
  14. package/ai/docs/FileUpload.md +102 -109
  15. package/ai/docs/Form.md +35 -29
  16. package/ai/docs/FormReset.md +37 -37
  17. package/ai/docs/Heading.md +4 -6
  18. package/ai/docs/Input.md +73 -98
  19. package/ai/docs/InputField.md +67 -67
  20. package/ai/docs/List.md +88 -85
  21. package/ai/docs/Menu.md +62 -60
  22. package/ai/docs/Modal.md +129 -136
  23. package/ai/docs/MultiSelect.md +65 -84
  24. package/ai/docs/Notifications.md +96 -96
  25. package/ai/docs/PageCalendar.md +88 -97
  26. package/ai/docs/Polymorph.md +25 -41
  27. package/ai/docs/Progress.md +55 -51
  28. package/ai/docs/Radiobox.md +49 -41
  29. package/ai/docs/RenderOnView.md +26 -32
  30. package/ai/docs/Resizable.md +60 -65
  31. package/ai/docs/Select.md +158 -158
  32. package/ai/docs/Shortcut.md +14 -14
  33. package/ai/docs/Skeleton.md +56 -60
  34. package/ai/docs/Slider.md +26 -49
  35. package/ai/docs/Slot.md +15 -17
  36. package/ai/docs/Spinner.md +17 -15
  37. package/ai/docs/Stats.md +44 -42
  38. package/ai/docs/Step.md +60 -60
  39. package/ai/docs/Switch.md +44 -54
  40. package/ai/docs/Table.md +124 -136
  41. package/ai/docs/Tabs.md +90 -90
  42. package/ai/docs/Tag.md +63 -65
  43. package/ai/docs/TaskList.md +40 -50
  44. package/ai/docs/Textarea.md +47 -70
  45. package/ai/docs/Timeline.md +98 -96
  46. package/ai/docs/Toolbar.md +46 -46
  47. package/ai/docs/Tooltip.md +103 -103
  48. package/ai/docs/Typography.md +55 -55
  49. package/ai/docs/Wizard.md +104 -109
  50. package/ai/docs/index.md +116 -116
  51. package/dist/autocomplete-DcTNOwyg.js +393 -0
  52. package/dist/autocomplete-DcTNOwyg.js.map +1 -0
  53. package/dist/{calendar-B5lSd0ID.js → calendar-BJMHRoy2.js} +104 -105
  54. package/dist/calendar-BJMHRoy2.js.map +1 -0
  55. package/dist/components/core/button.d.ts.map +1 -1
  56. package/dist/components/core/button.js +10 -10
  57. package/dist/components/core/button.js.map +1 -1
  58. package/dist/components/core/button.jsx +79 -0
  59. package/dist/components/core/heading.jsx +4 -0
  60. package/dist/components/core/polymorph.d.ts +1 -1
  61. package/dist/components/core/polymorph.d.ts.map +1 -1
  62. package/dist/components/core/polymorph.jsx +5 -0
  63. package/dist/components/core/render-on-view.jsx +31 -0
  64. package/dist/components/core/resizable.jsx +51 -0
  65. package/dist/components/core/slot.d.ts.map +1 -1
  66. package/dist/components/core/slot.jsx +156 -0
  67. package/dist/components/core/tag.d.ts +1 -1
  68. package/dist/components/core/tag.d.ts.map +1 -1
  69. package/dist/components/core/tag.js +4 -4
  70. package/dist/components/core/tag.js.map +1 -1
  71. package/dist/components/core/tag.jsx +51 -0
  72. package/dist/components/core/typography.jsx +18 -0
  73. package/dist/components/display/alert.d.ts +1 -1
  74. package/dist/components/display/alert.d.ts.map +1 -1
  75. package/dist/components/display/alert.js +48 -46
  76. package/dist/components/display/alert.js.map +1 -1
  77. package/dist/components/display/alert.jsx +61 -0
  78. package/dist/components/display/calendar.js +6 -6
  79. package/dist/components/display/calendar.jsx +299 -0
  80. package/dist/components/display/card.js +2 -2
  81. package/dist/components/display/card.js.map +1 -1
  82. package/dist/components/display/card.jsx +43 -0
  83. package/dist/components/display/empty.jsx +11 -0
  84. package/dist/components/display/list.js +1 -1
  85. package/dist/components/display/list.js.map +1 -1
  86. package/dist/components/display/list.jsx +81 -0
  87. package/dist/components/display/notifications.d.ts +1 -1
  88. package/dist/components/display/notifications.d.ts.map +1 -1
  89. package/dist/components/display/notifications.js +3 -3
  90. package/dist/components/display/notifications.jsx +126 -0
  91. package/dist/components/display/progress.jsx +11 -0
  92. package/dist/components/display/shortcut.jsx +23 -0
  93. package/dist/components/display/skeleton.d.ts.map +1 -1
  94. package/dist/components/display/skeleton.jsx +19 -0
  95. package/dist/components/display/spinner.d.ts.map +1 -1
  96. package/dist/components/display/spinner.jsx +11 -0
  97. package/dist/components/display/stats.js +1 -1
  98. package/dist/components/display/stats.jsx +20 -0
  99. package/dist/components/display/step.jsx +131 -0
  100. package/dist/components/display/tabs.d.ts +1 -1
  101. package/dist/components/display/tabs.d.ts.map +1 -1
  102. package/dist/components/display/tabs.js +2 -2
  103. package/dist/components/display/tabs.jsx +125 -0
  104. package/dist/components/display/timeline.js +1 -1
  105. package/dist/components/display/timeline.jsx +25 -0
  106. package/dist/components/floating/command-palette.d.ts.map +1 -1
  107. package/dist/components/floating/command-palette.jsx +197 -0
  108. package/dist/components/floating/dropdown.d.ts.map +1 -1
  109. package/dist/components/floating/dropdown.js +25 -17
  110. package/dist/components/floating/dropdown.js.map +1 -1
  111. package/dist/components/floating/dropdown.jsx +56 -0
  112. package/dist/components/floating/expand.js +7 -7
  113. package/dist/components/floating/expand.js.map +1 -1
  114. package/dist/components/floating/expand.jsx +44 -0
  115. package/dist/components/floating/menu.js +10 -10
  116. package/dist/components/floating/menu.js.map +1 -1
  117. package/dist/components/floating/menu.jsx +147 -0
  118. package/dist/components/floating/modal.d.ts +4 -4
  119. package/dist/components/floating/modal.d.ts.map +1 -1
  120. package/dist/components/floating/modal.js +106 -102
  121. package/dist/components/floating/modal.js.map +1 -1
  122. package/dist/components/floating/modal.jsx +301 -0
  123. package/dist/components/floating/toolbar.jsx +5 -0
  124. package/dist/components/floating/tooltip.d.ts.map +1 -1
  125. package/dist/components/floating/tooltip.js +14 -14
  126. package/dist/components/floating/tooltip.js.map +1 -1
  127. package/dist/components/floating/tooltip.jsx +58 -0
  128. package/dist/components/floating/wizard.jsx +161 -0
  129. package/dist/components/form/autocomplete.d.ts.map +1 -1
  130. package/dist/components/form/autocomplete.js +6 -6
  131. package/dist/components/form/autocomplete.jsx +278 -0
  132. package/dist/components/form/checkbox.js +1 -1
  133. package/dist/components/form/checkbox.jsx +12 -0
  134. package/dist/components/form/date-picker.d.ts.map +1 -1
  135. package/dist/components/form/date-picker.js +5 -5
  136. package/dist/components/form/date-picker.jsx +115 -0
  137. package/dist/components/form/file-upload.d.ts.map +1 -1
  138. package/dist/components/form/file-upload.js +2 -2
  139. package/dist/components/form/file-upload.jsx +134 -0
  140. package/dist/components/form/form.js.map +1 -1
  141. package/dist/components/form/form.jsx +10 -0
  142. package/dist/components/form/formReset.jsx +17 -0
  143. package/dist/components/form/free-text.d.ts.map +1 -1
  144. package/dist/components/form/free-text.jsx +41 -0
  145. package/dist/components/form/input-field.d.ts +11 -11
  146. package/dist/components/form/input-field.d.ts.map +1 -1
  147. package/dist/components/form/input-field.jsx +58 -0
  148. package/dist/components/form/input.js +1 -1
  149. package/dist/components/form/input.jsx +36 -0
  150. package/dist/components/form/multi-select.d.ts.map +1 -1
  151. package/dist/components/form/multi-select.jsx +336 -0
  152. package/dist/components/form/radiobox.js +1 -1
  153. package/dist/components/form/radiobox.jsx +6 -0
  154. package/dist/components/form/select.js +3 -3
  155. package/dist/components/form/select.jsx +42 -0
  156. package/dist/components/form/slider.jsx +45 -0
  157. package/dist/components/form/switch.js +2 -2
  158. package/dist/components/form/switch.js.map +1 -1
  159. package/dist/components/form/switch.jsx +46 -0
  160. package/dist/components/form/task-list.jsx +26 -0
  161. package/dist/components/form/textarea.jsx +12 -0
  162. package/dist/components/index.d.ts +0 -1
  163. package/dist/components/index.d.ts.map +1 -1
  164. package/dist/components/index.js +44 -0
  165. package/dist/components/page-calendar/calendar-header.jsx +83 -0
  166. package/dist/components/page-calendar/day-view.jsx +94 -0
  167. package/dist/components/page-calendar/event-pill.d.ts.map +1 -1
  168. package/dist/components/page-calendar/event-pill.jsx +25 -0
  169. package/dist/components/page-calendar/index.js +2 -0
  170. package/dist/components/page-calendar/month-view.jsx +46 -0
  171. package/dist/components/page-calendar/page-calendar.jsx +41 -0
  172. package/dist/components/page-calendar/page-calendar.types.js +1 -0
  173. package/dist/components/page-calendar/page-calendar.utils.js +93 -0
  174. package/dist/components/page-calendar/week-view.jsx +71 -0
  175. package/dist/components/table/filter.jsx +141 -0
  176. package/dist/components/table/group.jsx +68 -0
  177. package/dist/components/table/index.d.ts +2 -3
  178. package/dist/components/table/index.d.ts.map +1 -1
  179. package/dist/components/table/index.jsx +60 -0
  180. package/dist/components/table/inner-table.d.ts +2 -3
  181. package/dist/components/table/inner-table.d.ts.map +1 -1
  182. package/dist/components/table/inner-table.jsx +102 -0
  183. package/dist/components/table/metadata.jsx +36 -0
  184. package/dist/components/table/pagination.d.ts +3 -1
  185. package/dist/components/table/pagination.d.ts.map +1 -1
  186. package/dist/components/table/pagination.jsx +74 -0
  187. package/dist/components/table/row.d.ts +4 -5
  188. package/dist/components/table/row.d.ts.map +1 -1
  189. package/dist/components/table/row.jsx +49 -0
  190. package/dist/components/table/sort.d.ts.map +1 -1
  191. package/dist/components/table/sort.jsx +109 -0
  192. package/dist/components/table/table-lib.d.ts +1 -1
  193. package/dist/components/table/table-lib.d.ts.map +1 -1
  194. package/dist/components/table/table-lib.js +83 -0
  195. package/dist/components/table/table.context.jsx +4 -0
  196. package/dist/components/table/table.js +3 -3
  197. package/dist/components/table/thead.jsx +103 -0
  198. package/dist/config/context.js +12 -0
  199. package/dist/config/default-translations.d.ts +4 -0
  200. package/dist/config/default-translations.d.ts.map +1 -1
  201. package/dist/config/default-translations.jsx +87 -0
  202. package/dist/config/default-tweaks.js +4 -0
  203. package/dist/constants.js +2 -0
  204. package/dist/{date-picker-DwNo22lx.js → date-picker-Bnl07nd8.js} +8 -6
  205. package/dist/date-picker-Bnl07nd8.js.map +1 -0
  206. package/dist/{dom-Dl8XH0CK.js → dom-CyQHY7ID.js} +66 -61
  207. package/dist/dom-CyQHY7ID.js.map +1 -0
  208. package/dist/{file-upload-Brf2NkLr.js → file-upload-93d5DR4q.js} +139 -129
  209. package/dist/file-upload-93d5DR4q.js.map +1 -0
  210. package/dist/{floating-ui.react-QNHG9W4N.js → floating-ui.react-M2PGXLDp.js} +8 -8
  211. package/dist/floating-ui.react-M2PGXLDp.js.map +1 -0
  212. package/dist/{fns-D2eyJKd5.js → fns-C7Dt27Qd.js} +2 -2
  213. package/dist/fns-C7Dt27Qd.js.map +1 -0
  214. package/dist/hooks/use-click-outside.js +17 -0
  215. package/dist/hooks/use-color-parser.js +9 -0
  216. package/dist/hooks/use-components-provider.jsx +22 -0
  217. package/dist/hooks/use-debounce.d.ts +3 -3
  218. package/dist/hooks/use-debounce.d.ts.map +1 -1
  219. package/dist/hooks/use-debounce.js +12 -0
  220. package/dist/hooks/use-floating-ref.js +6 -0
  221. package/dist/hooks/use-form.d.ts +14 -13
  222. package/dist/hooks/use-form.d.ts.map +1 -1
  223. package/dist/hooks/use-form.js +563 -0
  224. package/dist/hooks/use-hover.js +18 -0
  225. package/dist/hooks/use-input-id.js +5 -0
  226. package/dist/hooks/use-is-coarse-device.js +12 -0
  227. package/dist/hooks/use-locale.js +10 -0
  228. package/dist/hooks/use-media-query.js +25 -0
  229. package/dist/hooks/use-on-event.js +7 -0
  230. package/dist/hooks/use-parent.js +21 -0
  231. package/dist/hooks/use-preferences.js +23 -0
  232. package/dist/hooks/use-previous.js +9 -0
  233. package/dist/hooks/use-reactive.js +9 -0
  234. package/dist/hooks/use-remove-scroll.d.ts.map +1 -1
  235. package/dist/hooks/use-remove-scroll.js +48 -0
  236. package/dist/hooks/use-resize-observer.js +17 -0
  237. package/dist/hooks/use-stable-ref.js +9 -0
  238. package/dist/hooks/use-swipe.js +17 -0
  239. package/dist/hooks/use-translations.d.ts +4 -0
  240. package/dist/hooks/use-translations.d.ts.map +1 -1
  241. package/dist/hooks/use-translations.js +9 -0
  242. package/dist/hooks/use-tweaks.js +9 -0
  243. package/dist/hooks/use-window-size.js +14 -0
  244. package/dist/index-BJ1ayTam.js +126 -0
  245. package/dist/index-BJ1ayTam.js.map +1 -0
  246. package/dist/index-C-PuFUZi.js.map +1 -1
  247. package/dist/{index-BelDtX5M.js → index-DDeQW0JW.js} +399 -404
  248. package/dist/index-DDeQW0JW.js.map +1 -0
  249. package/dist/index-DE4shK8D.js +215 -0
  250. package/dist/index-DE4shK8D.js.map +1 -0
  251. package/dist/{index-DJSMaZR4.js → index-DlJ_2RBL.js} +2 -2
  252. package/dist/index-DlJ_2RBL.js.map +1 -0
  253. package/dist/index.css +1 -1
  254. package/dist/index.esm-BaIwleSE.js.map +1 -1
  255. package/dist/index.js +20 -8177
  256. package/dist/index.js.map +1 -1
  257. package/dist/{input-CrGrSnUt.js → input-_MVxmIpu.js} +116 -114
  258. package/dist/input-_MVxmIpu.js.map +1 -0
  259. package/dist/{input-field-5vYcz5tT.js → input-field-CDCOODOl.js} +63 -47
  260. package/dist/input-field-CDCOODOl.js.map +1 -0
  261. package/dist/lib/combi-keys.js +60 -0
  262. package/dist/lib/dict.d.ts +1 -4
  263. package/dist/lib/dict.d.ts.map +1 -1
  264. package/dist/lib/dict.js +28 -0
  265. package/dist/lib/dom.d.ts +3 -2
  266. package/dist/lib/dom.d.ts.map +1 -1
  267. package/dist/lib/dom.js +66 -0
  268. package/dist/lib/fns.js +46 -0
  269. package/dist/lib/fzf.d.ts.map +1 -1
  270. package/dist/lib/fzf.js +115 -0
  271. package/dist/lib/keyboard-area.js +14 -0
  272. package/dist/notifications-Dp0ydKJS.js +2576 -0
  273. package/dist/notifications-Dp0ydKJS.js.map +1 -0
  274. package/dist/polymorph-B5n9fs_K.js.map +1 -1
  275. package/dist/preset/plugin.tailwind.d.ts.map +1 -1
  276. package/dist/preset/plugin.tailwind.js +20 -18
  277. package/dist/preset/preset.tailwind.js +24 -25
  278. package/dist/preset/src/styles/common.js +6 -3
  279. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  280. package/dist/preset/src/styles/dark.js +9 -5
  281. package/dist/preset/src/styles/design-tokens.js +68 -89
  282. package/dist/preset/src/styles/light.d.ts.map +1 -1
  283. package/dist/preset/src/styles/light.js +9 -5
  284. package/dist/preset/src/styles/theme.js +7 -4
  285. package/dist/preset/src/styles/theme.types.d.ts +2 -1
  286. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  287. package/dist/preset/src/styles/theme.types.js +2 -1
  288. package/dist/skeleton-BjJobYYf.js +24 -0
  289. package/dist/skeleton-BjJobYYf.js.map +1 -0
  290. package/dist/slot-CRyweuj0.js.map +1 -1
  291. package/dist/styles/common.js +6 -3
  292. package/dist/styles/dark.d.ts.map +1 -1
  293. package/dist/styles/dark.js +9 -5
  294. package/dist/styles/design-tokens.js +68 -89
  295. package/dist/styles/light.d.ts.map +1 -1
  296. package/dist/styles/light.js +9 -5
  297. package/dist/styles/theme.js +7 -4
  298. package/dist/styles/theme.types.d.ts +2 -1
  299. package/dist/styles/theme.types.d.ts.map +1 -1
  300. package/dist/styles/theme.types.js +2 -1
  301. package/dist/tabs-B0g7YtQv.js +123 -0
  302. package/dist/tabs-B0g7YtQv.js.map +1 -0
  303. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  304. package/dist/types.d.ts +2 -2
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +1 -0
  307. package/dist/{context-BFXNJVn2.js → use-translations-DSltA7H_.js} +38 -30
  308. package/dist/use-translations-DSltA7H_.js.map +1 -0
  309. package/package.json +99 -86
  310. package/ai/docs/TransferList.md +0 -142
  311. package/dist/autocomplete-Cn9Z2hLq.js +0 -375
  312. package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
  313. package/dist/calendar-B5lSd0ID.js.map +0 -1
  314. package/dist/components/form/transfer-list.d.ts +0 -14
  315. package/dist/components/form/transfer-list.d.ts.map +0 -1
  316. package/dist/components/form/transfer-list.js +0 -55
  317. package/dist/components/form/transfer-list.js.map +0 -1
  318. package/dist/context-BFXNJVn2.js.map +0 -1
  319. package/dist/date-picker-DwNo22lx.js.map +0 -1
  320. package/dist/dom-Dl8XH0CK.js.map +0 -1
  321. package/dist/file-upload-Brf2NkLr.js.map +0 -1
  322. package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
  323. package/dist/fns-D2eyJKd5.js.map +0 -1
  324. package/dist/index-BelDtX5M.js.map +0 -1
  325. package/dist/index-DJSMaZR4.js.map +0 -1
  326. package/dist/index-Z-fZHxfJ.js +0 -335
  327. package/dist/index-Z-fZHxfJ.js.map +0 -1
  328. package/dist/input-CrGrSnUt.js.map +0 -1
  329. package/dist/input-field-5vYcz5tT.js.map +0 -1
  330. package/dist/notifications-cUdVPs-B.js +0 -2786
  331. package/dist/notifications-cUdVPs-B.js.map +0 -1
  332. package/dist/skeleton-D75GFBV6.js +0 -10
  333. package/dist/skeleton-D75GFBV6.js.map +0 -1
  334. package/dist/tabs-S00a8qq8.js +0 -106
  335. package/dist/tabs-S00a8qq8.js.map +0 -1
  336. package/dist/use-translations-BwLKTrZv.js +0 -10
  337. package/dist/use-translations-BwLKTrZv.js.map +0 -1
package/ai/docs/List.md CHANGED
@@ -23,19 +23,19 @@ import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
23
23
 
24
24
  ### AnimatedList
25
25
 
26
- | Prop | Type | Default | Description |
27
- |------|------|---------|-------------|
28
- | `children` | `React.ReactNode` | — | One or more `AnimatedListItem` elements. |
26
+ | Prop | Type | Default | Description |
27
+ | ---------- | ----------------- | ------- | ---------------------------------------- |
28
+ | `children` | `React.ReactNode` | — | One or more `AnimatedListItem` elements. |
29
29
 
30
30
  ### AnimatedListItem
31
31
 
32
- | Prop | Type | Default | Description |
33
- |------|------|---------|-------------|
34
- | `title` | `Label` | — | Primary heading shown in the list row and in the overlay header. |
35
- | `description` | `Label` | — | Secondary text rendered below the title in both the row and the overlay. |
36
- | `children` | `Label` | — | Content rendered inside the expanded overlay below the header section. |
37
- | `avatar` | `Label` | — | Optional leading node (image, icon, or element) displayed before the title in the row. |
38
- | `leading` | `React.FC<{ open: () => void }>` | — | Optional render-prop component at the trailing end of the row. Receives an `open` callback to open the overlay programmatically. |
32
+ | Prop | Type | Default | Description |
33
+ | ------------- | -------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
34
+ | `title` | `Label` | — | Primary heading shown in the list row and in the overlay header. |
35
+ | `description` | `Label` | — | Secondary text rendered below the title in both the row and the overlay. |
36
+ | `children` | `Label` | — | Content rendered inside the expanded overlay below the header section. |
37
+ | `avatar` | `Label` | — | Optional leading node (image, icon, or element) displayed before the title in the row. |
38
+ | `leading` | `React.FC<{ open: () => void }>` | — | Optional render-prop component at the trailing end of the row. Receives an `open` callback to open the overlay programmatically. |
39
39
 
40
40
  `Label` is `string | number | ReactNode`.
41
41
 
@@ -43,19 +43,19 @@ import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
43
43
 
44
44
  Tokens this component reads. Customize by overriding these CSS variables in your theme.
45
45
 
46
- | Token | CSS Variable | Purpose |
47
- |-------|-------------|---------|
48
- | `border-card-border` | `--card-border` | Row separator and overlay card border |
49
- | `bg-card-background` | `--card-background` | Overlay card background color |
50
- | `rounded-card` | `--radius-card` | Overlay card corner radius |
51
- | `shadow-shadow-card` | `--shadow-card` | Overlay card drop shadow |
52
- | `text-foreground` | `--foreground` | Default text color for row and overlay content |
53
- | `text-secondary` | `--secondary` | Description text color |
54
- | `text-primary` | `--primary` | Row title hover color and avatar focus ring |
55
- | `text-danger` | `--danger` | Close button hover color in the overlay |
46
+ | Token | CSS Variable | Purpose |
47
+ | --------------------- | -------------------- | ------------------------------------------------------------------- |
48
+ | `border-card-border` | `--card-border` | Row separator and overlay card border |
49
+ | `bg-card-background` | `--card-background` | Overlay card background color |
50
+ | `rounded-card` | `--radius-card` | Overlay card corner radius |
51
+ | `shadow-shadow-card` | `--shadow-card` | Overlay card drop shadow |
52
+ | `text-foreground` | `--foreground` | Default text color for row and overlay content |
53
+ | `text-secondary` | `--secondary` | Description text color |
54
+ | `text-primary` | `--primary` | Row title hover color and avatar focus ring |
55
+ | `text-danger` | `--danger` | Close button hover color in the overlay |
56
56
  | `bg-floating-overlay` | `--floating-overlay` | Semi-transparent backdrop behind the overlay (used at 70 % opacity) |
57
- | `z-floating` | `--z-floating` | `z-index` for the overlay card (value: 22) |
58
- | `z-overlay` | `--z-overlay` | `z-index` for the backdrop scrim |
57
+ | `z-floating` | `--z-floating` | `z-index` for the overlay card (value: 22) |
58
+ | `z-overlay` | `--z-overlay` | `z-index` for the backdrop scrim |
59
59
 
60
60
  ## Examples
61
61
 
@@ -65,24 +65,20 @@ Tokens this component reads. Customize by overriding these CSS variables in your
65
65
  import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
66
66
 
67
67
  const members = [
68
- { id: "1", name: "Alice Johnson", role: "Engineering" },
69
- { id: "2", name: "Bob Smith", role: "Design" },
68
+ { id: "1", name: "Alice Johnson", role: "Engineering" },
69
+ { id: "2", name: "Bob Smith", role: "Design" },
70
70
  ];
71
71
 
72
72
  export function TeamList() {
73
- return (
74
- <AnimatedList>
75
- {members.map((m) => (
76
- <AnimatedListItem
77
- key={m.id}
78
- title={m.name}
79
- description={m.role}
80
- >
81
- <p className="text-foreground">Full profile for {m.name}.</p>
82
- </AnimatedListItem>
83
- ))}
84
- </AnimatedList>
85
- );
73
+ return (
74
+ <AnimatedList>
75
+ {members.map((m) => (
76
+ <AnimatedListItem key={m.id} title={m.name} description={m.role}>
77
+ <p className="text-foreground">Full profile for {m.name}.</p>
78
+ </AnimatedListItem>
79
+ ))}
80
+ </AnimatedList>
81
+ );
86
82
  }
87
83
  ```
88
84
 
@@ -93,20 +89,20 @@ import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
93
89
  import { UserCircleIcon } from "@phosphor-icons/react";
94
90
 
95
91
  export function UserDirectory() {
96
- return (
97
- <AnimatedList>
98
- <AnimatedListItem
99
- title="Carol White"
100
- description="Product Manager"
101
- avatar={<UserCircleIcon size={40} className="text-muted-foreground" />}
102
- >
103
- <div className="flex flex-col gap-2 text-foreground">
104
- <span>Department: Product</span>
105
- <span>Location: San Francisco</span>
106
- </div>
107
- </AnimatedListItem>
108
- </AnimatedList>
109
- );
92
+ return (
93
+ <AnimatedList>
94
+ <AnimatedListItem
95
+ title="Carol White"
96
+ description="Product Manager"
97
+ avatar={<UserCircleIcon size={40} className="text-muted-foreground" />}
98
+ >
99
+ <div className="flex flex-col gap-2 text-foreground">
100
+ <span>Department: Product</span>
101
+ <span>Location: San Francisco</span>
102
+ </div>
103
+ </AnimatedListItem>
104
+ </AnimatedList>
105
+ );
110
106
  }
111
107
  ```
112
108
 
@@ -117,24 +113,24 @@ import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
117
113
  import { Button } from "@g4rcez/components/button";
118
114
 
119
115
  export function OrderList({ orders }: { orders: Order[] }) {
120
- return (
121
- <AnimatedList>
122
- {orders.map((order) => (
123
- <AnimatedListItem
124
- key={order.id}
125
- title={`Order #${order.id}`}
126
- description={`Total: ${order.total}`}
127
- leading={({ open }) => (
128
- <Button size="small" theme="ghost-muted" onClick={open}>
129
- View details
130
- </Button>
131
- )}
132
- >
133
- <OrderDetailContent order={order} />
134
- </AnimatedListItem>
135
- ))}
136
- </AnimatedList>
137
- );
116
+ return (
117
+ <AnimatedList>
118
+ {orders.map((order) => (
119
+ <AnimatedListItem
120
+ key={order.id}
121
+ title={`Order #${order.id}`}
122
+ description={`Total: ${order.total}`}
123
+ leading={({ open }) => (
124
+ <Button size="small" theme="ghost-muted" onClick={open}>
125
+ View details
126
+ </Button>
127
+ )}
128
+ >
129
+ <OrderDetailContent order={order} />
130
+ </AnimatedListItem>
131
+ ))}
132
+ </AnimatedList>
133
+ );
138
134
  }
139
135
  ```
140
136
 
@@ -145,25 +141,32 @@ import { AnimatedList, AnimatedListItem } from "@g4rcez/components/list";
145
141
  import { CheckCircleIcon, WarningIcon } from "@phosphor-icons/react";
146
142
 
147
143
  const feed = [
148
- { id: "n1", icon: <CheckCircleIcon size={20} className="text-success" />, title: "Deployment succeeded", time: "2 min ago", detail: "All 3 services are healthy." },
149
- { id: "n2", icon: <WarningIcon size={20} className="text-warn" />, title: "High CPU usage", time: "10 min ago", detail: "Instance i-0ab2 is at 94 %." },
144
+ {
145
+ id: "n1",
146
+ icon: <CheckCircleIcon size={20} className="text-success" />,
147
+ title: "Deployment succeeded",
148
+ time: "2 min ago",
149
+ detail: "All 3 services are healthy.",
150
+ },
151
+ {
152
+ id: "n2",
153
+ icon: <WarningIcon size={20} className="text-warn" />,
154
+ title: "High CPU usage",
155
+ time: "10 min ago",
156
+ detail: "Instance i-0ab2 is at 94 %.",
157
+ },
150
158
  ];
151
159
 
152
160
  export function NotificationFeed() {
153
- return (
154
- <AnimatedList>
155
- {feed.map((n) => (
156
- <AnimatedListItem
157
- key={n.id}
158
- title={n.title}
159
- description={n.time}
160
- avatar={n.icon}
161
- >
162
- <p className="text-sm text-muted-foreground">{n.detail}</p>
163
- </AnimatedListItem>
164
- ))}
165
- </AnimatedList>
166
- );
161
+ return (
162
+ <AnimatedList>
163
+ {feed.map((n) => (
164
+ <AnimatedListItem key={n.id} title={n.title} description={n.time} avatar={n.icon}>
165
+ <p className="text-sm text-muted-foreground">{n.detail}</p>
166
+ </AnimatedListItem>
167
+ ))}
168
+ </AnimatedList>
169
+ );
167
170
  }
168
171
  ```
169
172
 
package/ai/docs/Menu.md CHANGED
@@ -21,39 +21,39 @@ import { Menu, MenuItem } from "@g4rcez/components/menu";
21
21
 
22
22
  ### Menu
23
23
 
24
- | Prop | Type | Default | Description |
25
- |------|------|---------|-------------|
26
- | `label` | `string \| React.ReactElement` | — | Trigger content |
27
- | `title` | `string` | — | Required for accessibility when `label` is an element; also used for typeahead |
28
- | `hover` | `boolean` | `true` | Open on hover in addition to click |
29
- | `open` | `boolean` | `false` | Initial open state |
30
- | `asChild` | `boolean` | `false` | Use the `Slot` pattern — merge props onto the child element instead of wrapping in a `<button>` |
31
- | `restoreFocus` | `boolean` | `false` | Restore focus to the trigger after the menu closes |
32
- | `floatingClassName` | `string` | — | Additional CSS classes for the floating list container |
33
- | `FloatingComponent` | `React.ElementType` | `"div"` | Element type for the floating container |
24
+ | Prop | Type | Default | Description |
25
+ | ------------------- | ------------------------------ | ------- | ----------------------------------------------------------------------------------------------- |
26
+ | `label` | `string \| React.ReactElement` | — | Trigger content |
27
+ | `title` | `string` | — | Required for accessibility when `label` is an element; also used for typeahead |
28
+ | `hover` | `boolean` | `true` | Open on hover in addition to click |
29
+ | `open` | `boolean` | `false` | Initial open state |
30
+ | `asChild` | `boolean` | `false` | Use the `Slot` pattern — merge props onto the child element instead of wrapping in a `<button>` |
31
+ | `restoreFocus` | `boolean` | `false` | Restore focus to the trigger after the menu closes |
32
+ | `floatingClassName` | `string` | — | Additional CSS classes for the floating list container |
33
+ | `FloatingComponent` | `React.ElementType` | `"div"` | Element type for the floating container |
34
34
 
35
35
  ### MenuItem
36
36
 
37
- | Prop | Type | Default | Description |
38
- |------|------|---------|-------------|
39
- | `title` | `string` | — | Item text; used for typeahead matching and the `title` attribute |
40
- | `children` | `React.ReactNode` | — | Visual content of the item |
41
- | `disabled` | `boolean` | `false` | Removes item from keyboard navigation and typeahead |
42
- | `Right` | `React.FC<IconProps>` | — | Icon rendered on the right side |
43
- | `onClick` | `function` | — | Click handler |
37
+ | Prop | Type | Default | Description |
38
+ | ---------- | --------------------- | ------- | ---------------------------------------------------------------- |
39
+ | `title` | `string` | — | Item text; used for typeahead matching and the `title` attribute |
40
+ | `children` | `React.ReactNode` | — | Visual content of the item |
41
+ | `disabled` | `boolean` | `false` | Removes item from keyboard navigation and typeahead |
42
+ | `Right` | `React.FC<IconProps>` | — | Icon rendered on the right side |
43
+ | `onClick` | `function` | — | Click handler |
44
44
 
45
45
  ## Design Tokens
46
46
 
47
47
  Tokens this component reads. Customize by overriding these CSS variables in your theme.
48
48
 
49
- | Token | CSS Variable | Purpose |
50
- |-------|-------------|---------|
51
- | `bg-floating-background` | `--floating-background` | Menu list surface background |
52
- | `border-floating-border` | `--floating-border` | Menu list border |
53
- | `shadow-shadow-floating` | `--shadow-floating` | Menu list drop shadow |
54
- | `z-tooltip` | `--z-tooltip` | Z-index of the floating list |
55
- | `bg-primary` | `--primary` | Active/focused item background |
56
- | `text-primary-foreground` | `--primary-foreground` | Active/focused item text |
49
+ | Token | CSS Variable | Purpose |
50
+ | ------------------------- | ----------------------- | ------------------------------ |
51
+ | `bg-floating-background` | `--floating-background` | Menu list surface background |
52
+ | `border-floating-border` | `--floating-border` | Menu list border |
53
+ | `shadow-shadow-floating` | `--shadow-floating` | Menu list drop shadow |
54
+ | `z-tooltip` | `--z-tooltip` | Z-index of the floating list |
55
+ | `bg-primary` | `--primary` | Active/focused item background |
56
+ | `text-primary-foreground` | `--primary-foreground` | Active/focused item text |
57
57
 
58
58
  ## Examples
59
59
 
@@ -63,9 +63,9 @@ Tokens this component reads. Customize by overriding these CSS variables in your
63
63
  import { Menu, MenuItem } from "@g4rcez/components/menu";
64
64
 
65
65
  <Menu label="Actions">
66
- <MenuItem title="Edit">Edit Profile</MenuItem>
67
- <MenuItem title="Share">Share Profile</MenuItem>
68
- </Menu>
66
+ <MenuItem title="Edit">Edit Profile</MenuItem>
67
+ <MenuItem title="Share">Share Profile</MenuItem>
68
+ </Menu>;
69
69
  ```
70
70
 
71
71
  ### With Icons and Shortcuts
@@ -75,11 +75,13 @@ import { PencilSimpleIcon, TrashIcon } from "@phosphor-icons/react";
75
75
  import { Menu, MenuItem } from "@g4rcez/components/menu";
76
76
 
77
77
  <Menu label="Settings">
78
- <MenuItem title="Edit" Right={PencilSimpleIcon}>Edit</MenuItem>
79
- <MenuItem title="Delete" Right={TrashIcon} className="text-danger">
80
- Delete
81
- </MenuItem>
82
- </Menu>
78
+ <MenuItem title="Edit" Right={PencilSimpleIcon}>
79
+ Edit
80
+ </MenuItem>
81
+ <MenuItem title="Delete" Right={TrashIcon} className="text-danger">
82
+ Delete
83
+ </MenuItem>
84
+ </Menu>;
83
85
  ```
84
86
 
85
87
  ### Nested Submenus
@@ -88,15 +90,15 @@ import { Menu, MenuItem } from "@g4rcez/components/menu";
88
90
  import { Menu, MenuItem } from "@g4rcez/components/menu";
89
91
 
90
92
  <Menu label="Actions">
91
- <MenuItem title="Edit">Edit Profile</MenuItem>
92
- <MenuItem title="Share">Share Profile</MenuItem>
93
- <Menu label="More Options" title="More Options">
94
- <MenuItem title="Archive">Archive Account</MenuItem>
95
- <MenuItem title="Delete" className="text-danger">
96
- Delete Account
97
- </MenuItem>
98
- </Menu>
99
- </Menu>
93
+ <MenuItem title="Edit">Edit Profile</MenuItem>
94
+ <MenuItem title="Share">Share Profile</MenuItem>
95
+ <Menu label="More Options" title="More Options">
96
+ <MenuItem title="Archive">Archive Account</MenuItem>
97
+ <MenuItem title="Delete" className="text-danger">
98
+ Delete Account
99
+ </MenuItem>
100
+ </Menu>
101
+ </Menu>;
100
102
  ```
101
103
 
102
104
  ### Using asChild for Custom Triggers
@@ -105,14 +107,10 @@ import { Menu, MenuItem } from "@g4rcez/components/menu";
105
107
  import { Menu, MenuItem } from "@g4rcez/components/menu";
106
108
  import { Button } from "@g4rcez/components/button";
107
109
 
108
- <Menu
109
- label={<Button theme="primary">Main Action</Button>}
110
- asChild
111
- title="Main Action"
112
- >
113
- <MenuItem title="Save">Save Version</MenuItem>
114
- <MenuItem title="Publish">Publish Now</MenuItem>
115
- </Menu>
110
+ <Menu label={<Button theme="primary">Main Action</Button>} asChild title="Main Action">
111
+ <MenuItem title="Save">Save Version</MenuItem>
112
+ <MenuItem title="Publish">Publish Now</MenuItem>
113
+ </Menu>;
116
114
  ```
117
115
 
118
116
  ### Disabled Items
@@ -121,10 +119,14 @@ import { Button } from "@g4rcez/components/button";
121
119
  import { Menu, MenuItem } from "@g4rcez/components/menu";
122
120
 
123
121
  <Menu label="Options">
124
- <MenuItem title="Export">Export Data</MenuItem>
125
- <MenuItem title="Import" disabled>Import (unavailable)</MenuItem>
126
- <MenuItem title="Delete" className="text-danger">Delete</MenuItem>
127
- </Menu>
122
+ <MenuItem title="Export">Export Data</MenuItem>
123
+ <MenuItem title="Import" disabled>
124
+ Import (unavailable)
125
+ </MenuItem>
126
+ <MenuItem title="Delete" className="text-danger">
127
+ Delete
128
+ </MenuItem>
129
+ </Menu>;
128
130
  ```
129
131
 
130
132
  ## Do
@@ -151,12 +153,12 @@ import { Menu, MenuItem } from "@g4rcez/components/menu";
151
153
 
152
154
  ## Data Attributes
153
155
 
154
- | Attribute | Applied to | Description |
155
- |-----------|-----------|-------------|
156
- | `data-open` | Menu trigger, MenuItem | Present when the menu/item is open |
157
- | `data-nested` | Nested menu trigger | Present on triggers that open a submenu |
158
- | `data-focus-inside` | Menu trigger | Present when focus is inside an open submenu |
159
- | `data-active` | MenuItem | Present on the currently focused item |
156
+ | Attribute | Applied to | Description |
157
+ | ------------------- | ---------------------- | -------------------------------------------- |
158
+ | `data-open` | Menu trigger, MenuItem | Present when the menu/item is open |
159
+ | `data-nested` | Nested menu trigger | Present on triggers that open a submenu |
160
+ | `data-focus-inside` | Menu trigger | Present when focus is inside an open submenu |
161
+ | `data-active` | MenuItem | Present on the currently focused item |
160
162
 
161
163
  ## Notes
162
164