@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
@@ -19,30 +19,30 @@ import { Dropdown } from "@g4rcez/components/dropdown";
19
19
 
20
20
  ## Props
21
21
 
22
- | Prop | Type | Default | Description |
23
- |------|------|---------|-------------|
24
- | `trigger` | `React.ReactElement \| React.ReactNode` | — | Element that toggles the dropdown on click |
25
- | `open` | `boolean` | — | Controlled open state |
26
- | `arrow` | `boolean` | `false` | Show an arrow pointer pointing at the trigger |
27
- | `title` | `React.ReactNode \| string` | — | Header title rendered inside the panel |
28
- | `restoreFocus` | `boolean` | `true` | Restore focus to the trigger when the panel closes |
29
- | `returnFocus` | `boolean` | `true` | Return focus to the trigger element |
30
- | `onChange` | `(nextValue: boolean) => void` | — | Callback fired when the open state changes |
31
- | `buttonProps` | `React.HTMLProps<"button">` | — | Additional props forwarded to the trigger `<button>` |
32
- | `children` | `React.ReactNode` | — | Panel content |
22
+ | Prop | Type | Default | Description |
23
+ | -------------- | --------------------------------------- | ------- | ---------------------------------------------------- |
24
+ | `trigger` | `React.ReactElement \| React.ReactNode` | — | Element that toggles the dropdown on click |
25
+ | `open` | `boolean` | — | Controlled open state |
26
+ | `arrow` | `boolean` | `false` | Show an arrow pointer pointing at the trigger |
27
+ | `title` | `React.ReactNode \| string` | — | Header title rendered inside the panel |
28
+ | `restoreFocus` | `boolean` | `true` | Restore focus to the trigger when the panel closes |
29
+ | `returnFocus` | `boolean` | `true` | Return focus to the trigger element |
30
+ | `onChange` | `(nextValue: boolean) => void` | — | Callback fired when the open state changes |
31
+ | `buttonProps` | `React.HTMLProps<"button">` | — | Additional props forwarded to the trigger `<button>` |
32
+ | `children` | `React.ReactNode` | — | Panel content |
33
33
 
34
34
  ## Design Tokens
35
35
 
36
36
  Tokens this component reads. Customize by overriding these CSS variables in your theme.
37
37
 
38
- | Token | CSS Variable | Purpose |
39
- |-------|-------------|---------|
40
- | `bg-floating-background` | `--floating-background` | Panel surface background |
41
- | `border-floating-border` | `--floating-border` | Panel border and arrow stroke |
42
- | `fill-floating-background` | `--floating-background` | Arrow fill color |
43
- | `z-floating` | `--z-floating` | Z-index for the floating panel |
44
- | `shadow-shadow-floating` | `--shadow-floating` | Panel drop shadow |
45
- | `rounded-lg` | — | Panel corner radius |
38
+ | Token | CSS Variable | Purpose |
39
+ | -------------------------- | ----------------------- | ------------------------------ |
40
+ | `bg-floating-background` | `--floating-background` | Panel surface background |
41
+ | `border-floating-border` | `--floating-border` | Panel border and arrow stroke |
42
+ | `fill-floating-background` | `--floating-background` | Arrow fill color |
43
+ | `z-floating` | `--z-floating` | Z-index for the floating panel |
44
+ | `shadow-shadow-floating` | `--shadow-floating` | Panel drop shadow |
45
+ | `rounded-lg` | — | Panel corner radius |
46
46
 
47
47
  ## Examples
48
48
 
@@ -53,24 +53,16 @@ import { Dropdown } from "@g4rcez/components/dropdown";
53
53
  import { Button } from "@g4rcez/components/button";
54
54
 
55
55
  function SimpleDropdown() {
56
- return (
57
- <Dropdown
58
- trigger={<Button theme="primary">Actions</Button>}
59
- >
60
- <div className="flex min-w-48 flex-col py-1">
61
- <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">
62
- Edit
63
- </button>
64
- <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">
65
- Duplicate
66
- </button>
67
- <hr className="border-border my-1" />
68
- <button className="w-full px-4 py-2 text-left text-danger hover:bg-floating-hover">
69
- Delete
70
- </button>
71
- </div>
72
- </Dropdown>
73
- );
56
+ return (
57
+ <Dropdown trigger={<Button theme="primary">Actions</Button>}>
58
+ <div className="flex min-w-48 flex-col py-1">
59
+ <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">Edit</button>
60
+ <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">Duplicate</button>
61
+ <hr className="border-border my-1" />
62
+ <button className="w-full px-4 py-2 text-left text-danger hover:bg-floating-hover">Delete</button>
63
+ </div>
64
+ </Dropdown>
65
+ );
74
66
  }
75
67
  ```
76
68
 
@@ -81,31 +73,25 @@ import { UserIcon, CaretDownIcon } from "@phosphor-icons/react";
81
73
  import { Dropdown } from "@g4rcez/components/dropdown";
82
74
 
83
75
  function AccountDropdown() {
84
- return (
85
- <Dropdown
86
- trigger={
87
- <button className="flex items-center gap-2 px-3 py-2 rounded-button border border-border text-foreground">
88
- <UserIcon size={16} />
89
- Account
90
- <CaretDownIcon size={16} />
91
- </button>
92
- }
93
- title="Account Options"
94
- arrow
95
- >
96
- <div className="flex min-w-48 flex-col py-1">
97
- <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">
98
- Profile Settings
99
- </button>
100
- <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">
101
- Billing
102
- </button>
103
- <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">
104
- Sign Out
105
- </button>
106
- </div>
107
- </Dropdown>
108
- );
76
+ return (
77
+ <Dropdown
78
+ trigger={
79
+ <button className="flex items-center gap-2 px-3 py-2 rounded-button border border-border text-foreground">
80
+ <UserIcon size={16} />
81
+ Account
82
+ <CaretDownIcon size={16} />
83
+ </button>
84
+ }
85
+ title="Account Options"
86
+ arrow
87
+ >
88
+ <div className="flex min-w-48 flex-col py-1">
89
+ <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">Profile Settings</button>
90
+ <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">Billing</button>
91
+ <button className="w-full px-4 py-2 text-left text-foreground hover:bg-floating-hover">Sign Out</button>
92
+ </div>
93
+ </Dropdown>
94
+ );
109
95
  }
110
96
  ```
111
97
 
@@ -116,29 +102,22 @@ import { useState } from "react";
116
102
  import { Dropdown } from "@g4rcez/components/dropdown";
117
103
 
118
104
  function ControlledDropdown() {
119
- const [isOpen, setIsOpen] = useState(false);
120
-
121
- return (
122
- <Dropdown
123
- trigger={
124
- <button className="px-4 py-2 rounded-button bg-muted text-foreground">
125
- {isOpen ? "Close" : "Open"} Menu
126
- </button>
127
- }
128
- open={isOpen}
129
- onChange={setIsOpen}
130
- >
131
- <div className="min-w-48 p-4">
132
- <p className="text-foreground">Controlled dropdown content</p>
133
- <button
134
- onClick={() => setIsOpen(false)}
135
- className="mt-2 px-3 py-1 bg-primary text-primary-foreground rounded-button text-sm"
105
+ const [isOpen, setIsOpen] = useState(false);
106
+
107
+ return (
108
+ <Dropdown
109
+ trigger={<button className="px-4 py-2 rounded-button bg-muted text-foreground">{isOpen ? "Close" : "Open"} Menu</button>}
110
+ open={isOpen}
111
+ onChange={setIsOpen}
136
112
  >
137
- Close
138
- </button>
139
- </div>
140
- </Dropdown>
141
- );
113
+ <div className="min-w-48 p-4">
114
+ <p className="text-foreground">Controlled dropdown content</p>
115
+ <button onClick={() => setIsOpen(false)} className="mt-2 px-3 py-1 bg-primary text-primary-foreground rounded-button text-sm">
116
+ Close
117
+ </button>
118
+ </div>
119
+ </Dropdown>
120
+ );
142
121
  }
143
122
  ```
144
123
 
@@ -149,48 +128,41 @@ import { FunnelIcon } from "@phosphor-icons/react";
149
128
  import { Dropdown } from "@g4rcez/components/dropdown";
150
129
 
151
130
  function FilterDropdown() {
152
- const [status, setStatus] = useState("");
153
-
154
- return (
155
- <Dropdown
156
- trigger={
157
- <button className="flex items-center gap-2 px-3 py-2 rounded-button border border-border text-foreground">
158
- <FunnelIcon size={16} />
159
- Filters
160
- {status && <span className="h-2 w-2 rounded-full bg-primary" />}
161
- </button>
162
- }
163
- title="Filter Options"
164
- >
165
- <div className="min-w-64 space-y-4 p-4">
166
- <div>
167
- <label className="block text-sm font-medium text-foreground mb-1">
168
- Status
169
- </label>
170
- <select
171
- value={status}
172
- onChange={(e) => setStatus(e.target.value)}
173
- className="w-full px-3 py-2 rounded-button border border-border bg-background text-foreground"
174
- >
175
- <option value="">All</option>
176
- <option value="active">Active</option>
177
- <option value="inactive">Inactive</option>
178
- </select>
179
- </div>
180
- <div className="flex gap-2 pt-2">
181
- <button
182
- onClick={() => setStatus("")}
183
- className="px-3 py-1 text-sm rounded-button border border-border text-foreground"
184
- >
185
- Clear
186
- </button>
187
- <button className="px-3 py-1 text-sm rounded-button bg-primary text-primary-foreground">
188
- Apply
189
- </button>
190
- </div>
191
- </div>
192
- </Dropdown>
193
- );
131
+ const [status, setStatus] = useState("");
132
+
133
+ return (
134
+ <Dropdown
135
+ trigger={
136
+ <button className="flex items-center gap-2 px-3 py-2 rounded-button border border-border text-foreground">
137
+ <FunnelIcon size={16} />
138
+ Filters
139
+ {status && <span className="h-2 w-2 rounded-full bg-primary" />}
140
+ </button>
141
+ }
142
+ title="Filter Options"
143
+ >
144
+ <div className="min-w-64 space-y-4 p-4">
145
+ <div>
146
+ <label className="block text-sm font-medium text-foreground mb-1">Status</label>
147
+ <select
148
+ value={status}
149
+ onChange={(e) => setStatus(e.target.value)}
150
+ className="w-full px-3 py-2 rounded-button border border-border bg-background text-foreground"
151
+ >
152
+ <option value="">All</option>
153
+ <option value="active">Active</option>
154
+ <option value="inactive">Inactive</option>
155
+ </select>
156
+ </div>
157
+ <div className="flex gap-2 pt-2">
158
+ <button onClick={() => setStatus("")} className="px-3 py-1 text-sm rounded-button border border-border text-foreground">
159
+ Clear
160
+ </button>
161
+ <button className="px-3 py-1 text-sm rounded-button bg-primary text-primary-foreground">Apply</button>
162
+ </div>
163
+ </div>
164
+ </Dropdown>
165
+ );
194
166
  }
195
167
  ```
196
168
 
package/ai/docs/Empty.md CHANGED
@@ -19,17 +19,17 @@ import { Empty } from "@g4rcez/components";
19
19
 
20
20
  ## Props
21
21
 
22
- | Prop | Type | Default | Description |
23
- |------|------|---------|-------------|
24
- | `Icon` | `Icon` | `FileIcon` | Phosphor icon component to display |
25
- | `message` | `string` | Localized "No data available" | Descriptive empty state message |
22
+ | Prop | Type | Default | Description |
23
+ | --------- | -------- | ----------------------------- | ---------------------------------- |
24
+ | `Icon` | `Icon` | `FileIcon` | Phosphor icon component to display |
25
+ | `message` | `string` | Localized "No data available" | Descriptive empty state message |
26
26
 
27
27
  ## Design Tokens
28
28
 
29
29
  Tokens this component reads. Customize by overriding these CSS variables in your theme.
30
30
 
31
- | Token | CSS Variable | Purpose |
32
- |-------|-------------|---------|
31
+ | Token | CSS Variable | Purpose |
32
+ | --------------- | ------------ | --------------------------- |
33
33
  | `text-disabled` | `--disabled` | Icon and message text color |
34
34
 
35
35
  ## Examples
@@ -45,7 +45,7 @@ Tokens this component reads. Customize by overriding these CSS variables in your
45
45
  ```tsx
46
46
  import { MagnifyingGlassMinusIcon } from "@phosphor-icons/react";
47
47
 
48
- <Empty Icon={MagnifyingGlassMinusIcon} message="No results found" />
48
+ <Empty Icon={MagnifyingGlassMinusIcon} message="No results found" />;
49
49
  ```
50
50
 
51
51
  ### In a Data Table
@@ -54,15 +54,15 @@ import { MagnifyingGlassMinusIcon } from "@phosphor-icons/react";
54
54
  import { DatabaseIcon } from "@phosphor-icons/react";
55
55
 
56
56
  function DataTable({ data }: { data: Item[] }) {
57
- if (data.length === 0) {
58
- return (
59
- <div className="py-12">
60
- <Empty Icon={DatabaseIcon} message="No records found" />
61
- </div>
62
- );
63
- }
64
-
65
- return <table>{/* table content */}</table>;
57
+ if (data.length === 0) {
58
+ return (
59
+ <div className="py-12">
60
+ <Empty Icon={DatabaseIcon} message="No records found" />
61
+ </div>
62
+ );
63
+ }
64
+
65
+ return <table>{/* table content */}</table>;
66
66
  }
67
67
  ```
68
68
 
@@ -72,21 +72,21 @@ function DataTable({ data }: { data: Item[] }) {
72
72
  import { TrayIcon } from "@phosphor-icons/react";
73
73
 
74
74
  function TaskList({ tasks }: { tasks: Task[] }) {
75
- return (
76
- <div className="space-y-4">
77
- <h2>My Tasks</h2>
78
-
79
- {tasks.length === 0 ? (
80
- <Empty Icon={TrayIcon} message="No tasks yet" />
81
- ) : (
82
- <ul>
83
- {tasks.map((task) => (
84
- <TaskItem key={task.id} task={task} />
85
- ))}
86
- </ul>
87
- )}
88
- </div>
89
- );
75
+ return (
76
+ <div className="space-y-4">
77
+ <h2>My Tasks</h2>
78
+
79
+ {tasks.length === 0 ? (
80
+ <Empty Icon={TrayIcon} message="No tasks yet" />
81
+ ) : (
82
+ <ul>
83
+ {tasks.map((task) => (
84
+ <TaskItem key={task.id} task={task} />
85
+ ))}
86
+ </ul>
87
+ )}
88
+ </div>
89
+ );
90
90
  }
91
91
  ```
92
92
 
@@ -97,19 +97,16 @@ import { Button } from "@g4rcez/components/button";
97
97
  import { FolderPlusIcon } from "@phosphor-icons/react";
98
98
 
99
99
  function EmptyProjectsList() {
100
- return (
101
- <div className="text-center py-12">
102
- <Empty
103
- Icon={FolderPlusIcon}
104
- message="You haven't created any projects yet"
105
- />
106
- <div className="mt-6">
107
- <Button theme="primary" onClick={handleCreate}>
108
- Create Your First Project
109
- </Button>
110
- </div>
111
- </div>
112
- );
100
+ return (
101
+ <div className="text-center py-12">
102
+ <Empty Icon={FolderPlusIcon} message="You haven't created any projects yet" />
103
+ <div className="mt-6">
104
+ <Button theme="primary" onClick={handleCreate}>
105
+ Create Your First Project
106
+ </Button>
107
+ </div>
108
+ </div>
109
+ );
113
110
  }
114
111
  ```
115
112
 
package/ai/docs/Expand.md CHANGED
@@ -21,12 +21,12 @@ import { Expand } from "@g4rcez/components/expand";
21
21
 
22
22
  `Expand` accepts all `Button` props plus the following:
23
23
 
24
- | Prop | Type | Default | Description |
25
- |------|------|---------|-------------|
26
- | `trigger` | `Label` | — | Content displayed on the button before expansion |
27
- | `open` | `boolean` | `false` | Controlled open state |
28
- | `disabled` | `boolean` | `false` | When `true`, the button cannot be expanded |
29
- | `children` | `React.ReactNode` | — | Content shown inside the expanded floating container |
24
+ | Prop | Type | Default | Description |
25
+ | ---------- | ----------------- | ------- | ---------------------------------------------------- |
26
+ | `trigger` | `Label` | — | Content displayed on the button before expansion |
27
+ | `open` | `boolean` | `false` | Controlled open state |
28
+ | `disabled` | `boolean` | `false` | When `true`, the button cannot be expanded |
29
+ | `children` | `React.ReactNode` | — | Content shown inside the expanded floating container |
30
30
 
31
31
  Inherits all `Button` props: `theme`, `size`, `rounded`, `className`, etc.
32
32
 
@@ -34,10 +34,10 @@ Inherits all `Button` props: `theme`, `size`, `rounded`, `className`, etc.
34
34
 
35
35
  Tokens this component reads. Customize by overriding these CSS variables in your theme.
36
36
 
37
- | Token | CSS Variable | Purpose |
38
- |-------|-------------|---------|
37
+ | Token | CSS Variable | Purpose |
38
+ | --------------- | -------------- | ------------------------------------------------------- |
39
39
  | `bg-background` | `--background` | Default expanded panel background (applied by consumer) |
40
- | `border-border` | `--border` | Default expanded panel border (applied by consumer) |
40
+ | `border-border` | `--border` | Default expanded panel border (applied by consumer) |
41
41
 
42
42
  The `Expand` component itself only renders the trigger button and an animated wrapper; visual tokens for the expanded content are your responsibility via `children` className.
43
43
 
@@ -49,28 +49,19 @@ The `Expand` component itself only renders the trigger button and an animated wr
49
49
  import { PlusIcon } from "@phosphor-icons/react";
50
50
  import { Expand } from "@g4rcez/components/expand";
51
51
 
52
- <Expand
53
- trigger={<PlusIcon size={16} />}
54
- theme="primary"
55
- size="icon"
56
- rounded="circle"
57
- >
58
- <div className="w-64 rounded-card border border-border bg-background p-4 shadow-shadow-floating">
59
- <h3 className="font-bold mb-2 text-foreground">Create New</h3>
60
- <ul className="space-y-2">
61
- <li>
62
- <button className="w-full rounded-button p-2 text-left text-foreground hover:bg-muted">
63
- Project
64
- </button>
65
- </li>
66
- <li>
67
- <button className="w-full rounded-button p-2 text-left text-foreground hover:bg-muted">
68
- Task
69
- </button>
70
- </li>
71
- </ul>
72
- </div>
73
- </Expand>
52
+ <Expand trigger={<PlusIcon size={16} />} theme="primary" size="icon" rounded="circle">
53
+ <div className="w-64 rounded-card border border-border bg-background p-4 shadow-shadow-floating">
54
+ <h3 className="font-bold mb-2 text-foreground">Create New</h3>
55
+ <ul className="space-y-2">
56
+ <li>
57
+ <button className="w-full rounded-button p-2 text-left text-foreground hover:bg-muted">Project</button>
58
+ </li>
59
+ <li>
60
+ <button className="w-full rounded-button p-2 text-left text-foreground hover:bg-muted">Task</button>
61
+ </li>
62
+ </ul>
63
+ </div>
64
+ </Expand>;
74
65
  ```
75
66
 
76
67
  ### Expand with Label
@@ -80,11 +71,13 @@ import { Expand } from "@g4rcez/components/expand";
80
71
  import { Button } from "@g4rcez/components/button";
81
72
 
82
73
  <Expand trigger="Open Menu">
83
- <div className="rounded-card border border-border bg-background p-4 shadow-shadow-floating">
84
- <p className="text-foreground">Expanded content goes here.</p>
85
- <Button theme="primary" className="mt-2">Action</Button>
86
- </div>
87
- </Expand>
74
+ <div className="rounded-card border border-border bg-background p-4 shadow-shadow-floating">
75
+ <p className="text-foreground">Expanded content goes here.</p>
76
+ <Button theme="primary" className="mt-2">
77
+ Action
78
+ </Button>
79
+ </div>
80
+ </Expand>;
88
81
  ```
89
82
 
90
83
  ### Controlled Expand
@@ -94,24 +87,17 @@ import { useState } from "react";
94
87
  import { Expand } from "@g4rcez/components/expand";
95
88
 
96
89
  function ControlledExpand() {
97
- const [open, setOpen] = useState(false);
98
-
99
- return (
100
- <Expand
101
- trigger="Options"
102
- open={open}
103
- theme="ghost-neutral"
104
- >
105
- <div className="rounded-card border border-border bg-background p-4 shadow-shadow-floating">
106
- <button
107
- onClick={() => setOpen(false)}
108
- className="text-sm text-foreground"
109
- >
110
- Close
111
- </button>
112
- </div>
113
- </Expand>
114
- );
90
+ const [open, setOpen] = useState(false);
91
+
92
+ return (
93
+ <Expand trigger="Options" open={open} theme="ghost-neutral">
94
+ <div className="rounded-card border border-border bg-background p-4 shadow-shadow-floating">
95
+ <button onClick={() => setOpen(false)} className="text-sm text-foreground">
96
+ Close
97
+ </button>
98
+ </div>
99
+ </Expand>
100
+ );
115
101
  }
116
102
  ```
117
103