@g4rcez/components 4.0.1 → 4.1.1

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 (415) hide show
  1. package/ai/SKILL.md +233 -0
  2. package/ai/docs/Alert.md +166 -0
  3. package/ai/docs/AnimatedList.md +206 -0
  4. package/ai/docs/Autocomplete.md +221 -0
  5. package/ai/docs/Button.md +182 -0
  6. package/ai/docs/Calendar.md +185 -0
  7. package/ai/docs/Card.md +178 -0
  8. package/ai/docs/Checkbox.md +194 -0
  9. package/ai/docs/CommandPalette.md +275 -0
  10. package/ai/docs/DatePicker.md +152 -0
  11. package/ai/docs/Dropdown.md +195 -0
  12. package/{dist/ai → ai}/docs/Empty.md +41 -44
  13. package/{dist/ai → ai}/docs/Expand.md +40 -54
  14. package/ai/docs/FileUpload.md +218 -0
  15. package/{dist/ai → ai}/docs/Form.md +35 -29
  16. package/{dist/ai → ai}/docs/FormReset.md +37 -37
  17. package/{dist/ai → ai}/docs/Heading.md +4 -6
  18. package/ai/docs/Input.md +212 -0
  19. package/ai/docs/InputField.md +170 -0
  20. package/ai/docs/List.md +208 -0
  21. package/ai/docs/Menu.md +168 -0
  22. package/ai/docs/Modal.md +273 -0
  23. package/ai/docs/MultiSelect.md +177 -0
  24. package/ai/docs/Notifications.md +231 -0
  25. package/ai/docs/PageCalendar.md +262 -0
  26. package/{dist/ai → ai}/docs/Polymorph.md +25 -41
  27. package/{dist/ai → ai}/docs/Progress.md +55 -51
  28. package/{dist/ai → ai}/docs/Radiobox.md +49 -41
  29. package/{dist/ai → ai}/docs/RenderOnView.md +26 -32
  30. package/{dist/ai → ai}/docs/Resizable.md +60 -65
  31. package/ai/docs/Select.md +284 -0
  32. package/{dist/ai → ai}/docs/Shortcut.md +14 -14
  33. package/{dist/ai → ai}/docs/Skeleton.md +56 -60
  34. package/{dist/ai → ai}/docs/Slider.md +26 -49
  35. package/{dist/ai → ai}/docs/Slot.md +15 -17
  36. package/{dist/ai → ai}/docs/Spinner.md +17 -15
  37. package/{dist/ai → ai}/docs/Stats.md +44 -42
  38. package/ai/docs/Step.md +159 -0
  39. package/{dist/ai → ai}/docs/Switch.md +44 -54
  40. package/ai/docs/Table.md +286 -0
  41. package/ai/docs/Tabs.md +191 -0
  42. package/ai/docs/Tag.md +222 -0
  43. package/{dist/ai → ai}/docs/TaskList.md +40 -50
  44. package/ai/docs/Textarea.md +144 -0
  45. package/ai/docs/Timeline.md +212 -0
  46. package/{dist/ai → ai}/docs/Toolbar.md +46 -46
  47. package/ai/docs/Tooltip.md +231 -0
  48. package/ai/docs/Typography.md +187 -0
  49. package/ai/docs/Wizard.md +208 -0
  50. package/ai/docs/index.md +183 -0
  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.js +10 -10
  56. package/dist/components/core/button.js.map +1 -1
  57. package/dist/components/core/tag.js +4 -4
  58. package/dist/components/core/tag.js.map +1 -1
  59. package/dist/components/display/alert.js +48 -46
  60. package/dist/components/display/alert.js.map +1 -1
  61. package/dist/components/display/calendar.js +6 -6
  62. package/dist/components/display/card.js +2 -2
  63. package/dist/components/display/card.js.map +1 -1
  64. package/dist/components/display/list.js +1 -1
  65. package/dist/components/display/list.js.map +1 -1
  66. package/dist/components/display/notifications.js +3 -3
  67. package/dist/components/display/stats.js +1 -1
  68. package/dist/components/display/tabs.js +2 -2
  69. package/dist/components/display/timeline.js +1 -1
  70. package/dist/components/floating/dropdown.js +25 -17
  71. package/dist/components/floating/dropdown.js.map +1 -1
  72. package/dist/components/floating/expand.js +7 -7
  73. package/dist/components/floating/expand.js.map +1 -1
  74. package/dist/components/floating/menu.js +10 -10
  75. package/dist/components/floating/menu.js.map +1 -1
  76. package/dist/components/floating/modal.js +106 -102
  77. package/dist/components/floating/modal.js.map +1 -1
  78. package/dist/components/floating/tooltip.js +14 -14
  79. package/dist/components/floating/tooltip.js.map +1 -1
  80. package/dist/components/form/autocomplete.js +6 -6
  81. package/dist/components/form/checkbox.js +1 -1
  82. package/dist/components/form/date-picker.js +5 -5
  83. package/dist/components/form/file-upload.js +2 -2
  84. package/dist/components/form/form.js.map +1 -1
  85. package/dist/components/form/input.js +1 -1
  86. package/dist/components/form/radiobox.js +1 -1
  87. package/dist/components/form/select.js +3 -3
  88. package/dist/components/form/switch.js +2 -2
  89. package/dist/components/form/switch.js.map +1 -1
  90. package/dist/components/table/table.js +3 -3
  91. package/dist/{date-picker-DwNo22lx.js → date-picker-Bnl07nd8.js} +8 -6
  92. package/dist/date-picker-Bnl07nd8.js.map +1 -0
  93. package/dist/{dom-Dl8XH0CK.js → dom-CyQHY7ID.js} +66 -61
  94. package/dist/dom-CyQHY7ID.js.map +1 -0
  95. package/dist/{file-upload-Brf2NkLr.js → file-upload-93d5DR4q.js} +139 -129
  96. package/dist/file-upload-93d5DR4q.js.map +1 -0
  97. package/dist/{floating-ui.react-QNHG9W4N.js → floating-ui.react-M2PGXLDp.js} +8 -8
  98. package/dist/floating-ui.react-M2PGXLDp.js.map +1 -0
  99. package/dist/{fns-D2eyJKd5.js → fns-C7Dt27Qd.js} +2 -2
  100. package/dist/fns-C7Dt27Qd.js.map +1 -0
  101. package/dist/index-BJ1ayTam.js +126 -0
  102. package/dist/index-BJ1ayTam.js.map +1 -0
  103. package/dist/index-C-PuFUZi.js.map +1 -1
  104. package/dist/{index-BelDtX5M.js → index-DDeQW0JW.js} +399 -404
  105. package/dist/index-DDeQW0JW.js.map +1 -0
  106. package/dist/index-DE4shK8D.js +215 -0
  107. package/dist/index-DE4shK8D.js.map +1 -0
  108. package/dist/{index-DJSMaZR4.js → index-DlJ_2RBL.js} +2 -2
  109. package/dist/index-DlJ_2RBL.js.map +1 -0
  110. package/dist/index.css +1 -1
  111. package/dist/index.esm-BaIwleSE.js.map +1 -1
  112. package/dist/index.js +2826 -2765
  113. package/dist/index.js.map +1 -1
  114. package/dist/{input-CrGrSnUt.js → input-_MVxmIpu.js} +116 -114
  115. package/dist/input-_MVxmIpu.js.map +1 -0
  116. package/dist/{input-field-5vYcz5tT.js → input-field-CDCOODOl.js} +63 -47
  117. package/dist/input-field-CDCOODOl.js.map +1 -0
  118. package/dist/notifications-Dp0ydKJS.js +2576 -0
  119. package/dist/notifications-Dp0ydKJS.js.map +1 -0
  120. package/dist/polymorph-B5n9fs_K.js.map +1 -1
  121. package/dist/preset/plugin.tailwind.d.ts.map +1 -1
  122. package/dist/preset/plugin.tailwind.js +20 -18
  123. package/dist/preset/preset.tailwind.js +24 -25
  124. package/dist/preset/src/styles/common.js +6 -3
  125. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  126. package/dist/preset/src/styles/dark.js +9 -5
  127. package/dist/preset/src/styles/design-tokens.js +68 -89
  128. package/dist/preset/src/styles/light.d.ts.map +1 -1
  129. package/dist/preset/src/styles/light.js +9 -5
  130. package/dist/preset/src/styles/theme.js +7 -4
  131. package/dist/preset/src/styles/theme.types.d.ts +2 -1
  132. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  133. package/dist/preset/src/styles/theme.types.js +2 -1
  134. package/dist/skeleton-BjJobYYf.js +24 -0
  135. package/dist/skeleton-BjJobYYf.js.map +1 -0
  136. package/dist/slot-CRyweuj0.js.map +1 -1
  137. package/dist/styles/common.js +6 -3
  138. package/dist/styles/dark.d.ts.map +1 -1
  139. package/dist/styles/dark.js +9 -5
  140. package/dist/styles/design-tokens.js +68 -89
  141. package/dist/styles/light.d.ts.map +1 -1
  142. package/dist/styles/light.js +9 -5
  143. package/dist/styles/theme.js +7 -4
  144. package/dist/styles/theme.types.d.ts +2 -1
  145. package/dist/styles/theme.types.d.ts.map +1 -1
  146. package/dist/styles/theme.types.js +2 -1
  147. package/dist/tabs-B0g7YtQv.js +123 -0
  148. package/dist/tabs-B0g7YtQv.js.map +1 -0
  149. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  150. package/dist/{context-BFXNJVn2.js → use-translations-DSltA7H_.js} +38 -30
  151. package/dist/use-translations-DSltA7H_.js.map +1 -0
  152. package/package.json +101 -88
  153. package/dist/ai/SKILL.md +0 -266
  154. package/dist/ai/docs/Alert.md +0 -167
  155. package/dist/ai/docs/AnimatedList.md +0 -205
  156. package/dist/ai/docs/Autocomplete.md +0 -225
  157. package/dist/ai/docs/Button.md +0 -182
  158. package/dist/ai/docs/Calendar.md +0 -219
  159. package/dist/ai/docs/Card.md +0 -174
  160. package/dist/ai/docs/Checkbox.md +0 -199
  161. package/dist/ai/docs/CommandPalette.md +0 -293
  162. package/dist/ai/docs/DatePicker.md +0 -171
  163. package/dist/ai/docs/Dropdown.md +0 -223
  164. package/dist/ai/docs/FileUpload.md +0 -225
  165. package/dist/ai/docs/Input.md +0 -237
  166. package/dist/ai/docs/InputField.md +0 -170
  167. package/dist/ai/docs/List.md +0 -205
  168. package/dist/ai/docs/Menu.md +0 -166
  169. package/dist/ai/docs/Modal.md +0 -280
  170. package/dist/ai/docs/MultiSelect.md +0 -196
  171. package/dist/ai/docs/Notifications.md +0 -231
  172. package/dist/ai/docs/PageCalendar.md +0 -271
  173. package/dist/ai/docs/Select.md +0 -284
  174. package/dist/ai/docs/Step.md +0 -159
  175. package/dist/ai/docs/Table.md +0 -298
  176. package/dist/ai/docs/Tabs.md +0 -191
  177. package/dist/ai/docs/Tag.md +0 -224
  178. package/dist/ai/docs/Textarea.md +0 -167
  179. package/dist/ai/docs/Timeline.md +0 -210
  180. package/dist/ai/docs/Tooltip.md +0 -231
  181. package/dist/ai/docs/TransferList.md +0 -142
  182. package/dist/ai/docs/Typography.md +0 -187
  183. package/dist/ai/docs/Wizard.md +0 -213
  184. package/dist/ai/docs/index.md +0 -183
  185. package/dist/autocomplete-Cn9Z2hLq.js +0 -375
  186. package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
  187. package/dist/calendar-B5lSd0ID.js.map +0 -1
  188. package/dist/components/core/button.d.ts +0 -77
  189. package/dist/components/core/button.d.ts.map +0 -1
  190. package/dist/components/core/heading.d.ts +0 -3
  191. package/dist/components/core/heading.d.ts.map +0 -1
  192. package/dist/components/core/polymorph.d.ts +0 -10
  193. package/dist/components/core/polymorph.d.ts.map +0 -1
  194. package/dist/components/core/render-on-view.d.ts +0 -7
  195. package/dist/components/core/render-on-view.d.ts.map +0 -1
  196. package/dist/components/core/resizable.d.ts +0 -3
  197. package/dist/components/core/resizable.d.ts.map +0 -1
  198. package/dist/components/core/slot.d.ts +0 -16
  199. package/dist/components/core/slot.d.ts.map +0 -1
  200. package/dist/components/core/tag.d.ts +0 -35
  201. package/dist/components/core/tag.d.ts.map +0 -1
  202. package/dist/components/core/typography.d.ts +0 -24
  203. package/dist/components/core/typography.d.ts.map +0 -1
  204. package/dist/components/display/alert.d.ts +0 -28
  205. package/dist/components/display/alert.d.ts.map +0 -1
  206. package/dist/components/display/calendar.d.ts +0 -42
  207. package/dist/components/display/calendar.d.ts.map +0 -1
  208. package/dist/components/display/card.d.ts +0 -29
  209. package/dist/components/display/card.d.ts.map +0 -1
  210. package/dist/components/display/empty.d.ts +0 -8
  211. package/dist/components/display/empty.d.ts.map +0 -1
  212. package/dist/components/display/list.d.ts +0 -16
  213. package/dist/components/display/list.d.ts.map +0 -1
  214. package/dist/components/display/notifications.d.ts +0 -27
  215. package/dist/components/display/notifications.d.ts.map +0 -1
  216. package/dist/components/display/progress.d.ts +0 -13
  217. package/dist/components/display/progress.d.ts.map +0 -1
  218. package/dist/components/display/shortcut.d.ts +0 -4
  219. package/dist/components/display/shortcut.d.ts.map +0 -1
  220. package/dist/components/display/skeleton.d.ts +0 -12
  221. package/dist/components/display/skeleton.d.ts.map +0 -1
  222. package/dist/components/display/spinner.d.ts +0 -5
  223. package/dist/components/display/spinner.d.ts.map +0 -1
  224. package/dist/components/display/stats.d.ts +0 -12
  225. package/dist/components/display/stats.d.ts.map +0 -1
  226. package/dist/components/display/step.d.ts +0 -24
  227. package/dist/components/display/step.d.ts.map +0 -1
  228. package/dist/components/display/tabs.d.ts +0 -24
  229. package/dist/components/display/tabs.d.ts.map +0 -1
  230. package/dist/components/display/timeline.d.ts +0 -10
  231. package/dist/components/display/timeline.d.ts.map +0 -1
  232. package/dist/components/floating/command-palette.d.ts +0 -49
  233. package/dist/components/floating/command-palette.d.ts.map +0 -1
  234. package/dist/components/floating/dropdown.d.ts +0 -15
  235. package/dist/components/floating/dropdown.d.ts.map +0 -1
  236. package/dist/components/floating/expand.d.ts +0 -11
  237. package/dist/components/floating/expand.d.ts.map +0 -1
  238. package/dist/components/floating/menu.d.ts +0 -52
  239. package/dist/components/floating/menu.d.ts.map +0 -1
  240. package/dist/components/floating/modal.d.ts +0 -60
  241. package/dist/components/floating/modal.d.ts.map +0 -1
  242. package/dist/components/floating/toolbar.d.ts +0 -6
  243. package/dist/components/floating/toolbar.d.ts.map +0 -1
  244. package/dist/components/floating/tooltip.d.ts +0 -17
  245. package/dist/components/floating/tooltip.d.ts.map +0 -1
  246. package/dist/components/floating/wizard.d.ts +0 -26
  247. package/dist/components/floating/wizard.d.ts.map +0 -1
  248. package/dist/components/form/autocomplete.d.ts +0 -16
  249. package/dist/components/form/autocomplete.d.ts.map +0 -1
  250. package/dist/components/form/checkbox.d.ts +0 -12
  251. package/dist/components/form/checkbox.d.ts.map +0 -1
  252. package/dist/components/form/date-picker.d.ts +0 -10
  253. package/dist/components/form/date-picker.d.ts.map +0 -1
  254. package/dist/components/form/file-upload.d.ts +0 -15
  255. package/dist/components/form/file-upload.d.ts.map +0 -1
  256. package/dist/components/form/form.d.ts +0 -3
  257. package/dist/components/form/form.d.ts.map +0 -1
  258. package/dist/components/form/formReset.d.ts +0 -2
  259. package/dist/components/form/formReset.d.ts.map +0 -1
  260. package/dist/components/form/free-text.d.ts +0 -11
  261. package/dist/components/form/free-text.d.ts.map +0 -1
  262. package/dist/components/form/input-field.d.ts +0 -34
  263. package/dist/components/form/input-field.d.ts.map +0 -1
  264. package/dist/components/form/input.d.ts +0 -52
  265. package/dist/components/form/input.d.ts.map +0 -1
  266. package/dist/components/form/multi-select.d.ts +0 -19
  267. package/dist/components/form/multi-select.d.ts.map +0 -1
  268. package/dist/components/form/radiobox.d.ts +0 -7
  269. package/dist/components/form/radiobox.d.ts.map +0 -1
  270. package/dist/components/form/select.d.ts +0 -13
  271. package/dist/components/form/select.d.ts.map +0 -1
  272. package/dist/components/form/slider.d.ts +0 -7
  273. package/dist/components/form/slider.d.ts.map +0 -1
  274. package/dist/components/form/switch.d.ts +0 -9
  275. package/dist/components/form/switch.d.ts.map +0 -1
  276. package/dist/components/form/task-list.d.ts +0 -3
  277. package/dist/components/form/task-list.d.ts.map +0 -1
  278. package/dist/components/form/textarea.d.ts +0 -6
  279. package/dist/components/form/textarea.d.ts.map +0 -1
  280. package/dist/components/form/transfer-list.d.ts +0 -14
  281. package/dist/components/form/transfer-list.d.ts.map +0 -1
  282. package/dist/components/form/transfer-list.js +0 -55
  283. package/dist/components/form/transfer-list.js.map +0 -1
  284. package/dist/components/index.d.ts +0 -46
  285. package/dist/components/index.d.ts.map +0 -1
  286. package/dist/components/page-calendar/calendar-header.d.ts +0 -16
  287. package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
  288. package/dist/components/page-calendar/day-view.d.ts +0 -12
  289. package/dist/components/page-calendar/day-view.d.ts.map +0 -1
  290. package/dist/components/page-calendar/event-pill.d.ts +0 -9
  291. package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
  292. package/dist/components/page-calendar/index.d.ts +0 -4
  293. package/dist/components/page-calendar/index.d.ts.map +0 -1
  294. package/dist/components/page-calendar/month-view.d.ts +0 -11
  295. package/dist/components/page-calendar/month-view.d.ts.map +0 -1
  296. package/dist/components/page-calendar/page-calendar.d.ts +0 -18
  297. package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
  298. package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
  299. package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
  300. package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
  301. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
  302. package/dist/components/page-calendar/week-view.d.ts +0 -11
  303. package/dist/components/page-calendar/week-view.d.ts.map +0 -1
  304. package/dist/components/table/filter.d.ts +0 -42
  305. package/dist/components/table/filter.d.ts.map +0 -1
  306. package/dist/components/table/group.d.ts +0 -17
  307. package/dist/components/table/group.d.ts.map +0 -1
  308. package/dist/components/table/index.d.ts +0 -20
  309. package/dist/components/table/index.d.ts.map +0 -1
  310. package/dist/components/table/inner-table.d.ts +0 -29
  311. package/dist/components/table/inner-table.d.ts.map +0 -1
  312. package/dist/components/table/metadata.d.ts +0 -4
  313. package/dist/components/table/metadata.d.ts.map +0 -1
  314. package/dist/components/table/pagination.d.ts +0 -3
  315. package/dist/components/table/pagination.d.ts.map +0 -1
  316. package/dist/components/table/row.d.ts +0 -12
  317. package/dist/components/table/row.d.ts.map +0 -1
  318. package/dist/components/table/sort.d.ts +0 -28
  319. package/dist/components/table/sort.d.ts.map +0 -1
  320. package/dist/components/table/table-lib.d.ts +0 -135
  321. package/dist/components/table/table-lib.d.ts.map +0 -1
  322. package/dist/components/table/table.context.d.ts +0 -10
  323. package/dist/components/table/table.context.d.ts.map +0 -1
  324. package/dist/components/table/thead.d.ts +0 -9
  325. package/dist/components/table/thead.d.ts.map +0 -1
  326. package/dist/config/context.d.ts +0 -21
  327. package/dist/config/context.d.ts.map +0 -1
  328. package/dist/config/default-translations.d.ts +0 -90
  329. package/dist/config/default-translations.d.ts.map +0 -1
  330. package/dist/config/default-tweaks.d.ts +0 -13
  331. package/dist/config/default-tweaks.d.ts.map +0 -1
  332. package/dist/constants.d.ts +0 -3
  333. package/dist/constants.d.ts.map +0 -1
  334. package/dist/context-BFXNJVn2.js.map +0 -1
  335. package/dist/date-picker-DwNo22lx.js.map +0 -1
  336. package/dist/dom-Dl8XH0CK.js.map +0 -1
  337. package/dist/file-upload-Brf2NkLr.js.map +0 -1
  338. package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
  339. package/dist/fns-D2eyJKd5.js.map +0 -1
  340. package/dist/hooks/use-click-outside.d.ts +0 -3
  341. package/dist/hooks/use-click-outside.d.ts.map +0 -1
  342. package/dist/hooks/use-color-parser.d.ts +0 -2
  343. package/dist/hooks/use-color-parser.d.ts.map +0 -1
  344. package/dist/hooks/use-components-provider.d.ts +0 -15
  345. package/dist/hooks/use-components-provider.d.ts.map +0 -1
  346. package/dist/hooks/use-debounce.d.ts +0 -5
  347. package/dist/hooks/use-debounce.d.ts.map +0 -1
  348. package/dist/hooks/use-floating-ref.d.ts +0 -2
  349. package/dist/hooks/use-floating-ref.d.ts.map +0 -1
  350. package/dist/hooks/use-form.d.ts +0 -394
  351. package/dist/hooks/use-form.d.ts.map +0 -1
  352. package/dist/hooks/use-hover.d.ts +0 -3
  353. package/dist/hooks/use-hover.d.ts.map +0 -1
  354. package/dist/hooks/use-input-id.d.ts +0 -4
  355. package/dist/hooks/use-input-id.d.ts.map +0 -1
  356. package/dist/hooks/use-is-coarse-device.d.ts +0 -2
  357. package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
  358. package/dist/hooks/use-locale.d.ts +0 -3
  359. package/dist/hooks/use-locale.d.ts.map +0 -1
  360. package/dist/hooks/use-media-query.d.ts +0 -2
  361. package/dist/hooks/use-media-query.d.ts.map +0 -1
  362. package/dist/hooks/use-on-event.d.ts +0 -4
  363. package/dist/hooks/use-on-event.d.ts.map +0 -1
  364. package/dist/hooks/use-parent.d.ts +0 -3
  365. package/dist/hooks/use-parent.d.ts.map +0 -1
  366. package/dist/hooks/use-preferences.d.ts +0 -2
  367. package/dist/hooks/use-preferences.d.ts.map +0 -1
  368. package/dist/hooks/use-previous.d.ts +0 -2
  369. package/dist/hooks/use-previous.d.ts.map +0 -1
  370. package/dist/hooks/use-reactive.d.ts +0 -2
  371. package/dist/hooks/use-reactive.d.ts.map +0 -1
  372. package/dist/hooks/use-remove-scroll.d.ts +0 -4
  373. package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
  374. package/dist/hooks/use-resize-observer.d.ts +0 -2
  375. package/dist/hooks/use-resize-observer.d.ts.map +0 -1
  376. package/dist/hooks/use-stable-ref.d.ts +0 -2
  377. package/dist/hooks/use-stable-ref.d.ts.map +0 -1
  378. package/dist/hooks/use-swipe.d.ts +0 -8
  379. package/dist/hooks/use-swipe.d.ts.map +0 -1
  380. package/dist/hooks/use-translations.d.ts +0 -88
  381. package/dist/hooks/use-translations.d.ts.map +0 -1
  382. package/dist/hooks/use-tweaks.d.ts +0 -3
  383. package/dist/hooks/use-tweaks.d.ts.map +0 -1
  384. package/dist/hooks/use-window-size.d.ts +0 -5
  385. package/dist/hooks/use-window-size.d.ts.map +0 -1
  386. package/dist/index-BelDtX5M.js.map +0 -1
  387. package/dist/index-DJSMaZR4.js.map +0 -1
  388. package/dist/index-Z-fZHxfJ.js +0 -335
  389. package/dist/index-Z-fZHxfJ.js.map +0 -1
  390. package/dist/index.d.ts +0 -22
  391. package/dist/index.d.ts.map +0 -1
  392. package/dist/input-CrGrSnUt.js.map +0 -1
  393. package/dist/input-field-5vYcz5tT.js.map +0 -1
  394. package/dist/lib/combi-keys.d.ts +0 -15
  395. package/dist/lib/combi-keys.d.ts.map +0 -1
  396. package/dist/lib/dict.d.ts +0 -12
  397. package/dist/lib/dict.d.ts.map +0 -1
  398. package/dist/lib/dom.d.ts +0 -19
  399. package/dist/lib/dom.d.ts.map +0 -1
  400. package/dist/lib/fns.d.ts +0 -11
  401. package/dist/lib/fns.d.ts.map +0 -1
  402. package/dist/lib/fzf.d.ts +0 -16
  403. package/dist/lib/fzf.d.ts.map +0 -1
  404. package/dist/lib/keyboard-area.d.ts +0 -16
  405. package/dist/lib/keyboard-area.d.ts.map +0 -1
  406. package/dist/notifications-cUdVPs-B.js +0 -2786
  407. package/dist/notifications-cUdVPs-B.js.map +0 -1
  408. package/dist/skeleton-D75GFBV6.js +0 -10
  409. package/dist/skeleton-D75GFBV6.js.map +0 -1
  410. package/dist/tabs-S00a8qq8.js +0 -106
  411. package/dist/tabs-S00a8qq8.js.map +0 -1
  412. package/dist/types.d.ts +0 -26
  413. package/dist/types.d.ts.map +0 -1
  414. package/dist/use-translations-BwLKTrZv.js +0 -10
  415. package/dist/use-translations-BwLKTrZv.js.map +0 -1
@@ -1,182 +0,0 @@
1
- ---
2
- title: Button
3
- description: A versatile button component with multiple variants, sizes, and states.
4
- package: "@g4rcez/components"
5
- export: "{ Button }"
6
- import: "import { Button } from '@g4rcez/components/button'"
7
- category: core
8
- ---
9
-
10
- # Button
11
-
12
- A versatile button component with multiple variants, sizes, and states. Built with polymorphic capabilities to render as different HTML elements.
13
-
14
- ## Import
15
-
16
- ```tsx
17
- import { Button } from "@g4rcez/components/button";
18
- ```
19
-
20
- ## Props
21
-
22
- | Prop | Type | Default | Description |
23
- |------|------|---------|-------------|
24
- | `theme` | `"main" \| "primary" \| "secondary" \| "info" \| "warn" \| "danger" \| "success" \| "muted" \| "neutral" \| "ghost-primary" \| "ghost-secondary" \| "ghost-info" \| "ghost-warn" \| "ghost-danger" \| "ghost-success" \| "ghost-muted" \| "ghost-neutral" \| "raw" \| "disabled" \| "loading"` | `"main"` | Visual theme/variant of the button |
25
- | `size` | `"icon" \| "min" \| "small" \| "default" \| "big" \| "tiny"` | `"default"` | Size of the button |
26
- | `rounded` | `"rough" \| "squared" \| "default" \| "circle"` | `"default"` | Border radius style |
27
- | `icon` | `React.ReactNode` | - | Icon to display before button content |
28
- | `loading` | `boolean` | `false` | Shows loading state with pulse animation and disables interaction |
29
- | `disabled` | `boolean` | `false` | Disables the button |
30
- | `as` | `React.ElementType` | `"button"` | HTML element to render as |
31
- | `type` | `string` | `"button"` | Button type attribute |
32
- | `className` | `string` | - | Additional CSS classes |
33
- | `children` | `React.ReactNode` | - | Button content |
34
-
35
- ## Design Tokens
36
-
37
- Tokens this component reads. Customize by overriding these CSS variables in your theme.
38
-
39
- | Token | CSS Variable | Purpose |
40
- |-------|-------------|---------|
41
- | `bg-button-primary-bg` | `--button-primary-bg` | Background for primary/main theme |
42
- | `text-button-primary-text` | `--button-primary-text` | Text color for primary/main theme |
43
- | `bg-button-secondary-bg` | `--button-secondary-bg` | Background for secondary theme |
44
- | `text-button-secondary-text` | `--button-secondary-text` | Text color for secondary theme |
45
- | `bg-button-info-bg` | `--button-info-bg` | Background for info theme |
46
- | `text-button-info-text` | `--button-info-text` | Text color for info theme |
47
- | `bg-button-warn-bg` | `--button-warn-bg` | Background for warn theme |
48
- | `text-button-warn-text` | `--button-warn-text` | Text color for warn theme |
49
- | `bg-button-danger-bg` | `--button-danger-bg` | Background for danger theme |
50
- | `text-button-danger-text` | `--button-danger-text` | Text color for danger theme |
51
- | `bg-button-success-bg` | `--button-success-bg` | Background for success theme |
52
- | `text-button-success-text` | `--button-success-text` | Text color for success theme |
53
- | `bg-button-muted-bg` | `--button-muted-bg` | Background for muted theme |
54
- | `text-button-muted-text` | `--button-muted-text` | Text color for muted theme |
55
- | `bg-disabled` | `--disabled` | Background for disabled/loading states |
56
- | `border-card-border` | `--card-border` | Border color for neutral theme |
57
- | `rounded-button` | `--radius-button` | Default border radius |
58
- | `focus-visible:ring-ring` | `--ring` | Focus ring color |
59
-
60
- ## Theme Variants
61
-
62
- ### Solid Variants
63
-
64
- - `main` / `primary`: Primary brand action
65
- - `secondary`: Secondary action
66
- - `info`: Informational action
67
- - `warn`: Warning action
68
- - `danger`: Destructive action
69
- - `success`: Confirmation/success action
70
- - `muted`: Subtle/subdued appearance
71
- - `neutral`: Transparent with card border
72
-
73
- ### Ghost Variants
74
-
75
- Transparent background with colored text; shows a tinted background on hover.
76
-
77
- - `ghost-primary`, `ghost-secondary`, `ghost-info`, `ghost-warn`, `ghost-danger`, `ghost-success`, `ghost-muted`, `ghost-neutral`
78
-
79
- ### Special Variants
80
-
81
- - `raw`: No default styling — supply all classes via `className`
82
- - `disabled`: Disabled visual appearance (use the `disabled` prop for full behavior)
83
- - `loading`: Pulse animation with muted background
84
-
85
- ## Examples
86
-
87
- ### Basic Variants
88
-
89
- ```tsx
90
- <Button theme="primary">Primary</Button>
91
- <Button theme="secondary">Secondary</Button>
92
- <Button theme="danger">Delete</Button>
93
- <Button theme="success">Save</Button>
94
- ```
95
-
96
- ### Sizes
97
-
98
- ```tsx
99
- <Button size="min">Mini</Button>
100
- <Button size="small">Small</Button>
101
- <Button size="default">Default</Button>
102
- <Button size="big">Big</Button>
103
- ```
104
-
105
- ### With Icons
106
-
107
- ```tsx
108
- import { PlusIcon } from "@phosphor-icons/react";
109
-
110
- <Button icon={<PlusIcon size={16} />}>Add Item</Button>
111
-
112
- <Button size="icon" theme="ghost-primary">
113
- <PlusIcon size={16} />
114
- </Button>
115
- ```
116
-
117
- ### Loading State
118
-
119
- ```tsx
120
- <Button loading>Saving...</Button>
121
- ```
122
-
123
- ### Ghost Variants
124
-
125
- ```tsx
126
- <Button theme="ghost-primary">Ghost Primary</Button>
127
- <Button theme="ghost-danger">Ghost Danger</Button>
128
- ```
129
-
130
- ### Polymorphic Usage
131
-
132
- ```tsx
133
- <Button as="a" href="/dashboard" theme="primary">
134
- Go to Dashboard
135
- </Button>
136
- ```
137
-
138
- ### Rounded Variants
139
-
140
- ```tsx
141
- <Button rounded="squared">Squared</Button>
142
- <Button rounded="circle" size="icon">
143
- <PlusIcon size={16} />
144
- </Button>
145
- ```
146
-
147
- ## Do
148
-
149
- - Use `theme="primary"` for the single main action on a page
150
- - Use `theme="danger"` for destructive actions (delete, remove)
151
- - Use the `loading` prop to give immediate feedback for async operations
152
- - Use `as="a"` with `href` when the button navigates to a URL
153
- - Use design-token classes for any wrapper elements (`bg-primary`, `text-foreground`)
154
-
155
- ## Don't
156
-
157
- - Don't pass raw Tailwind color classes (`bg-blue-500`, `text-white`) — use `theme` prop instead
158
- - Don't use arbitrary Tailwind values (`bg-[#abc]`, `bg-[--my-var]`) — override CSS variables in your `@theme` block
159
- - Don't place multiple `theme="primary"` buttons in the same view
160
- - Don't use `theme="primary"` for destructive actions — use `theme="danger"` instead
161
-
162
- ## Accessibility
163
-
164
- - Renders as a semantic `<button>` element by default
165
- - Sets `aria-disabled` when `disabled` or `loading` is true
166
- - Sets `aria-busy` during loading state
167
- - Click handlers are automatically removed while loading or disabled
168
- - Supports visible focus rings via `focus-visible:ring-4 focus-visible:ring-ring`
169
- - Keyboard navigation is fully supported
170
-
171
- ## Data Attributes
172
-
173
- - `data-component="button"`: Identifies the component for styling/testing
174
- - `data-theme`: Current theme variant value
175
- - `data-loading`: `"true"` when in loading state, `"false"` otherwise
176
-
177
- ## Notes
178
-
179
- - When `loading` is `true`, `disabled` is also set to `true` automatically
180
- - The component forwards refs correctly to the underlying element
181
- - All standard HTML button (or target element) attributes are forwarded
182
- - The `as` prop enables rendering as any HTML element or React component while preserving full TypeScript type safety
@@ -1,219 +0,0 @@
1
- ---
2
- title: Calendar
3
- description: Interactive month-view calendar with single-date and range selection, keyboard navigation, and locale support.
4
- package: "@g4rcez/components"
5
- export: "{ Calendar }"
6
- import: "import { Calendar } from '@g4rcez/components/calendar'"
7
- category: display
8
- ---
9
-
10
- # Calendar
11
-
12
- Interactive month-view calendar with single-date and range selection, keyboard navigation, and locale support.
13
-
14
- ## Import
15
-
16
- ```tsx
17
- import { Calendar } from "@g4rcez/components/calendar";
18
- import type { Range, Locales } from "@g4rcez/components/calendar";
19
- ```
20
-
21
- ## Props
22
-
23
- | Prop | Type | Default | Description |
24
- |------|------|---------|-------------|
25
- | `date` | `Date` | — | Selected date (single-date mode) |
26
- | `range` | `Range` | — | Selected range `{ from?: Date; to?: Date }` |
27
- | `rangeMode` | `boolean` | `false` | Enable range selection mode |
28
- | `markRange` | `boolean` | `true` | Visually highlight dates inside a range |
29
- | `markToday` | `boolean` | `true` | Emphasize today's date |
30
- | `type` | `"date" \| "datetime"` | `"date"` | Show an additional time input when `"datetime"` |
31
- | `datetimeTitle` | `string` | — | Label for the time input in `"datetime"` mode |
32
- | `onChange` | `OnChangeDate \| OnChangeRange` | — | Called when a date or range changes |
33
- | `changeOnlyOnClick` | `boolean` | `false` | Suppress onChange on keyboard navigation; fire only on explicit click |
34
- | `onChangeYear` | `(date: Date) => void` | — | Called when the year changes |
35
- | `onChangeMonth` | `(date: Date) => void` | — | Called when the month changes |
36
- | `disabledDate` | `(date: Date) => boolean` | — | Return `true` to disable a specific date |
37
- | `RenderOnDay` | `React.FC<{ date: Date }>` | — | Custom renderer overlaid on each day cell |
38
- | `locale` | `Locales` | — | BCP 47 locale string for month/weekday labels |
39
- | `labelRange` | `{ from: string; to: string }` | — | Labels shown on the selected range endpoints |
40
- | `styles` | `CalendarStyles` | — | Fine-grained class overrides per calendar section |
41
-
42
- ## Design Tokens
43
-
44
- Tokens this component reads. Customize by overriding these CSS variables in your theme.
45
-
46
- | Token | CSS Variable | Purpose |
47
- |-------|-------------|---------|
48
- | `bg-primary` | `--primary` | Selected day background |
49
- | `text-primary-foreground` | `--primary-foreground` | Selected day text |
50
- | `hover:bg-primary` | `--primary` | Navigation button hover background |
51
- | `hover:text-primary-foreground` | `--primary-foreground` | Navigation button hover text |
52
- | `text-primary` | `--primary` | "Today" button and year/month hover color |
53
- | `text-disabled` | `--disabled` | Days outside the current month |
54
- | `border-card-border` | `--card-border` | Range highlight border |
55
- | `text-foreground` | `--foreground` | Range endpoint label |
56
-
57
- ## Examples
58
-
59
- ### Single Date Selection
60
-
61
- ```tsx
62
- import { useState } from "react";
63
-
64
- function DatePicker() {
65
- const [selectedDate, setSelectedDate] = useState<Date>(new Date());
66
-
67
- return (
68
- <Calendar
69
- date={selectedDate}
70
- onChange={setSelectedDate}
71
- markToday
72
- />
73
- );
74
- }
75
- ```
76
-
77
- ### Date Range Selection
78
-
79
- ```tsx
80
- import { useState } from "react";
81
- import { Calendar, type Range } from "@g4rcez/components/calendar";
82
-
83
- function DateRangePicker() {
84
- const [range, setRange] = useState<Range>({ from: undefined, to: undefined });
85
-
86
- return (
87
- <Calendar
88
- range={range}
89
- rangeMode
90
- markRange
91
- onChange={setRange}
92
- labelRange={{ from: "Start Date", to: "End Date" }}
93
- />
94
- );
95
- }
96
- ```
97
-
98
- ### Disabled Dates
99
-
100
- ```tsx
101
- const isPastDate = (date: Date): boolean => {
102
- const today = new Date();
103
- today.setHours(0, 0, 0, 0);
104
- return date < today;
105
- };
106
-
107
- <Calendar
108
- date={selectedDate}
109
- onChange={setSelectedDate}
110
- disabledDate={isPastDate}
111
- />
112
- ```
113
-
114
- ### Booking Calendar with Range Restrictions
115
-
116
- ```tsx
117
- function BookingCalendar() {
118
- const [bookingRange, setBookingRange] = useState<Range>({});
119
-
120
- const isDateDisabled = (date: Date): boolean => {
121
- const today = new Date();
122
- const minDate = new Date(today);
123
- minDate.setDate(today.getDate() + 2);
124
- const maxDate = new Date(today);
125
- maxDate.setDate(today.getDate() + 90);
126
- return date < minDate || date > maxDate;
127
- };
128
-
129
- return (
130
- <Calendar
131
- range={bookingRange}
132
- rangeMode
133
- markRange
134
- markToday
135
- onChange={setBookingRange}
136
- disabledDate={isDateDisabled}
137
- labelRange={{ from: "Check-in", to: "Check-out" }}
138
- />
139
- );
140
- }
141
- ```
142
-
143
- ### Internationalized Calendar
144
-
145
- ```tsx
146
- import { Calendar, type Locales } from "@g4rcez/components/calendar";
147
-
148
- function InternationalCalendar() {
149
- const [selectedDate, setSelectedDate] = useState<Date>(new Date());
150
- const [locale, setLocale] = useState<Locales>("en");
151
-
152
- return (
153
- <Calendar
154
- date={selectedDate}
155
- onChange={setSelectedDate}
156
- locale={locale}
157
- markToday
158
- />
159
- );
160
- }
161
- ```
162
-
163
- ### Custom Day Renderer
164
-
165
- ```tsx
166
- function EventDot({ date }: { date: Date }) {
167
- const hasEvent = myEvents.some(
168
- (e) => e.date.toDateString() === date.toDateString()
169
- );
170
- return hasEvent ? (
171
- <span className="absolute bottom-1 left-1/2 -translate-x-1/2 size-1 rounded-full bg-primary" />
172
- ) : null;
173
- }
174
-
175
- <Calendar
176
- date={selectedDate}
177
- onChange={setSelectedDate}
178
- RenderOnDay={EventDot}
179
- markToday
180
- />
181
- ```
182
-
183
- ## Do
184
-
185
- - Use `markToday` to help users orient themselves.
186
- - Use `disabledDate` to restrict selection to valid periods.
187
- - Provide `labelRange` labels when using `rangeMode` so users know which endpoint they are selecting.
188
- - Pass the correct `locale` to match user locale preferences.
189
- - Use design-token classes for any wrapper elements (`bg-background`, `border-border`).
190
-
191
- ## Don't
192
-
193
- - Don't pass raw Tailwind color classes (`bg-blue-500`, `text-white`) in `styles` or `RenderOnDay` — use design tokens instead.
194
- - Don't use arbitrary Tailwind values (`bg-[#abc]`) — override CSS variables in your `@theme` block.
195
- - Don't use `Calendar` when only year selection is needed — a `Select` is more efficient.
196
- - Don't place too many visual markers on each day; keep day-level indicators minimal.
197
-
198
- ## Accessibility
199
-
200
- - Full keyboard navigation: Arrow keys move days, Shift+Arrow moves months/years, Enter/Space selects.
201
- - Month and year controls are accessible `<select>` and masked text inputs with `aria-label`.
202
- - Navigation buttons include `title` attributes for screen reader description.
203
- - Disabled dates use the native `disabled` attribute on `<button>`.
204
-
205
- ## Data Attributes
206
-
207
- - `data-component="calendar"` — root container.
208
- - `data-date` — ISO date string on each day button, used for focus management.
209
- - `data-samemonth` — `"true"` / `"false"` on each day button.
210
- - `data-range` — `"true"` / `"false"` on each day button.
211
- - `data-focustrap` — `"prev"` / `"next"` on navigation buttons.
212
-
213
- ## Notes
214
-
215
- - Uses `date-fns` for date arithmetic and Framer Motion (`motion/react`) for slide animations.
216
- - Touch devices get swipe-left/right support for month navigation automatically.
217
- - When `changeOnlyOnClick` is `false` (default), `onChange` fires on every keyboard navigation move.
218
- - The calendar always renders 6 weeks (42 cells) to avoid layout shifts when switching months.
219
- - `type="datetime"` appends a masked time input below the calendar grid.
@@ -1,174 +0,0 @@
1
- ---
2
- title: Card
3
- description: Polymorphic container for grouping related content with optional title header, loading state, and composable sub-components.
4
- package: "@g4rcez/components"
5
- export: "{ Card }"
6
- import: "import { Card } from '@g4rcez/components/card'"
7
- category: display
8
- ---
9
-
10
- # Card
11
-
12
- Polymorphic container for grouping related content with optional title header, loading state, and composable sub-components.
13
-
14
- ## Import
15
-
16
- ```tsx
17
- import { Card } from "@g4rcez/components/card";
18
- ```
19
-
20
- ## Props
21
-
22
- ### Card
23
-
24
- | Prop | Type | Default | Description |
25
- |------|------|---------|-------------|
26
- | `title` | `React.ReactNode` | — | Renders an automatic header with border separator |
27
- | `loading` | `boolean` | — | Replaces content with animated skeleton lines |
28
- | `titleClassName` | `string` | `""` | Additional classes for the title header element |
29
- | `header` | `React.ReactElement \| null` | `null` | Custom header element; overrides `title` |
30
- | `container` | `string` | `""` | Additional classes for the outer card element |
31
- | `as` | `React.ElementType` | `"div"` | Polymorphic root element |
32
- | `className` | `string` | `""` | Additional classes for the card body element |
33
- | `children` | `React.ReactNode` | — | Card body content |
34
-
35
- ### Card.Title
36
-
37
- A composable header with a title and an optional navigation/action area.
38
-
39
- | Prop | Type | Default | Description |
40
- |------|------|---------|-------------|
41
- | `title` | `React.ReactElement \| string` | — | Title content |
42
- | `titleTag` | `React.ElementType` | `"h2"` | Element type for the title |
43
- | `navTag` | `React.ElementType` | `"nav"` | Element type for the actions wrapper |
44
- | `as` | `React.ElementType` | `"div"` | Element type for the container |
45
- | `children` | `React.ReactNode` | — | Action elements rendered in the navigation area |
46
-
47
- ## Design Tokens
48
-
49
- Tokens this component reads. Customize by overriding these CSS variables in your theme.
50
-
51
- | Token | CSS Variable | Purpose |
52
- |-------|-------------|---------|
53
- | `bg-card-background` | `--card-background` | Card surface color |
54
- | `border-card-border` | `--card-border` | Card border and title separator |
55
- | `rounded-card` | `--radius-card` | Corner radius |
56
- | `shadow-shadow-card` | `--shadow-card` | Card drop shadow |
57
- | `bg-muted` | `--muted` | Skeleton loading lines |
58
-
59
- ## Examples
60
-
61
- ### Basic Card
62
-
63
- ```tsx
64
- <Card>
65
- <p>Card content goes here.</p>
66
- </Card>
67
- ```
68
-
69
- ### Card with Title
70
-
71
- ```tsx
72
- <Card title="User Profile">
73
- <div className="space-y-4">
74
- <p>Name: John Doe</p>
75
- <p>Email: john@example.com</p>
76
- </div>
77
- </Card>
78
- ```
79
-
80
- ### Card with Loading State
81
-
82
- ```tsx
83
- <Card title="Analytics" loading={isLoading}>
84
- <p>Loaded content rendered here when not loading.</p>
85
- </Card>
86
- ```
87
-
88
- ### Card.Title with Actions
89
-
90
- ```tsx
91
- import { Button } from "@g4rcez/components/button";
92
-
93
- <Card>
94
- <Card.Title title="Project Overview">
95
- <Button theme="primary" size="small">Edit</Button>
96
- <Button theme="neutral" size="small">Share</Button>
97
- </Card.Title>
98
-
99
- <p>Project description and details.</p>
100
- </Card>
101
- ```
102
-
103
- ### Custom Header
104
-
105
- ```tsx
106
- <Card
107
- header={
108
- <header className="flex justify-between items-center p-4 border-b border-card-border">
109
- <h2 className="text-foreground font-semibold">Custom Header</h2>
110
- </header>
111
- }
112
- >
113
- <p>Content with a completely custom header.</p>
114
- </Card>
115
- ```
116
-
117
- ### Nested Cards
118
-
119
- ```tsx
120
- <Card title="Dashboard">
121
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
122
- <Card title="Statistics">
123
- <p>Chart content here</p>
124
- </Card>
125
- <Card title="Recent Activity">
126
- <ul>
127
- <li>User logged in</li>
128
- <li>New order received</li>
129
- </ul>
130
- </Card>
131
- </div>
132
- </Card>
133
- ```
134
-
135
- ### Semantic Element
136
-
137
- ```tsx
138
- <Card as="article" title="Blog Post">
139
- <p>Blog post content.</p>
140
- </Card>
141
- ```
142
-
143
- ## Do
144
-
145
- - Use `title` or `Card.Title` to give cards a clear, descriptive heading.
146
- - Use `as="article"` or `as="section"` when semantics matter.
147
- - Use `loading={true}` while data is fetching to prevent layout shift.
148
- - Maintain consistent spacing between multiple cards in a grid using gap utilities.
149
- - Use design-token classes for wrapper elements (`bg-background`, `border-border`).
150
-
151
- ## Don't
152
-
153
- - Don't pass raw Tailwind color classes (`bg-blue-500`, `text-white`, `border-gray-300`) — use design tokens instead.
154
- - Don't use arbitrary Tailwind values (`bg-[#abc]`, `bg-[--my-var]`) — override CSS variables in your `@theme` block instead.
155
- - Don't over-nest cards; multiple borders and shadows create visual clutter.
156
- - Don't put more than one primary action in a single `Card.Title` — keep actions focused.
157
-
158
- ## Accessibility
159
-
160
- - Uses semantic HTML; `Card.Title` renders an `h2` by default (configurable via `titleTag`).
161
- - Polymorphic `as` prop allows correct element type for document structure.
162
- - Interactive elements within cards remain keyboard accessible.
163
-
164
- ## Data Attributes
165
-
166
- - `data-component="card"` — outer card element.
167
- - `data-component="card-title"` — automatic title header.
168
- - `data-component="card-body"` — card body wrapper.
169
-
170
- ## Notes
171
-
172
- - When both `title` and `header` are provided, `title` takes precedence and `header` is ignored.
173
- - The `loading` prop replaces children with four `Skeleton` lines of varying widths.
174
- - `Card.Title` lays out title and actions responsively: stacked on mobile, inline on `sm+`.