@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.
- package/ai/SKILL.md +233 -0
- package/ai/docs/Alert.md +166 -0
- package/ai/docs/AnimatedList.md +206 -0
- package/ai/docs/Autocomplete.md +221 -0
- package/ai/docs/Button.md +182 -0
- package/ai/docs/Calendar.md +185 -0
- package/ai/docs/Card.md +178 -0
- package/ai/docs/Checkbox.md +194 -0
- package/ai/docs/CommandPalette.md +275 -0
- package/ai/docs/DatePicker.md +152 -0
- package/ai/docs/Dropdown.md +195 -0
- package/{dist/ai → ai}/docs/Empty.md +41 -44
- package/{dist/ai → ai}/docs/Expand.md +40 -54
- package/ai/docs/FileUpload.md +218 -0
- package/{dist/ai → ai}/docs/Form.md +35 -29
- package/{dist/ai → ai}/docs/FormReset.md +37 -37
- package/{dist/ai → ai}/docs/Heading.md +4 -6
- package/ai/docs/Input.md +212 -0
- package/ai/docs/InputField.md +170 -0
- package/ai/docs/List.md +208 -0
- package/ai/docs/Menu.md +168 -0
- package/ai/docs/Modal.md +273 -0
- package/ai/docs/MultiSelect.md +177 -0
- package/ai/docs/Notifications.md +231 -0
- package/ai/docs/PageCalendar.md +262 -0
- package/{dist/ai → ai}/docs/Polymorph.md +25 -41
- package/{dist/ai → ai}/docs/Progress.md +55 -51
- package/{dist/ai → ai}/docs/Radiobox.md +49 -41
- package/{dist/ai → ai}/docs/RenderOnView.md +26 -32
- package/{dist/ai → ai}/docs/Resizable.md +60 -65
- package/ai/docs/Select.md +284 -0
- package/{dist/ai → ai}/docs/Shortcut.md +14 -14
- package/{dist/ai → ai}/docs/Skeleton.md +56 -60
- package/{dist/ai → ai}/docs/Slider.md +26 -49
- package/{dist/ai → ai}/docs/Slot.md +15 -17
- package/{dist/ai → ai}/docs/Spinner.md +17 -15
- package/{dist/ai → ai}/docs/Stats.md +44 -42
- package/ai/docs/Step.md +159 -0
- package/{dist/ai → ai}/docs/Switch.md +44 -54
- package/ai/docs/Table.md +286 -0
- package/ai/docs/Tabs.md +191 -0
- package/ai/docs/Tag.md +222 -0
- package/{dist/ai → ai}/docs/TaskList.md +40 -50
- package/ai/docs/Textarea.md +144 -0
- package/ai/docs/Timeline.md +212 -0
- package/{dist/ai → ai}/docs/Toolbar.md +46 -46
- package/ai/docs/Tooltip.md +231 -0
- package/ai/docs/Typography.md +187 -0
- package/ai/docs/Wizard.md +208 -0
- package/ai/docs/index.md +183 -0
- package/dist/autocomplete-DcTNOwyg.js +393 -0
- package/dist/autocomplete-DcTNOwyg.js.map +1 -0
- package/dist/{calendar-B5lSd0ID.js → calendar-BJMHRoy2.js} +104 -105
- package/dist/calendar-BJMHRoy2.js.map +1 -0
- package/dist/components/core/button.js +10 -10
- package/dist/components/core/button.js.map +1 -1
- package/dist/components/core/tag.js +4 -4
- package/dist/components/core/tag.js.map +1 -1
- package/dist/components/display/alert.js +48 -46
- package/dist/components/display/alert.js.map +1 -1
- package/dist/components/display/calendar.js +6 -6
- package/dist/components/display/card.js +2 -2
- package/dist/components/display/card.js.map +1 -1
- package/dist/components/display/list.js +1 -1
- package/dist/components/display/list.js.map +1 -1
- package/dist/components/display/notifications.js +3 -3
- package/dist/components/display/stats.js +1 -1
- package/dist/components/display/tabs.js +2 -2
- package/dist/components/display/timeline.js +1 -1
- package/dist/components/floating/dropdown.js +25 -17
- package/dist/components/floating/dropdown.js.map +1 -1
- package/dist/components/floating/expand.js +7 -7
- package/dist/components/floating/expand.js.map +1 -1
- package/dist/components/floating/menu.js +10 -10
- package/dist/components/floating/menu.js.map +1 -1
- package/dist/components/floating/modal.js +106 -102
- package/dist/components/floating/modal.js.map +1 -1
- package/dist/components/floating/tooltip.js +14 -14
- package/dist/components/floating/tooltip.js.map +1 -1
- package/dist/components/form/autocomplete.js +6 -6
- package/dist/components/form/checkbox.js +1 -1
- package/dist/components/form/date-picker.js +5 -5
- package/dist/components/form/file-upload.js +2 -2
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/input.js +1 -1
- package/dist/components/form/radiobox.js +1 -1
- package/dist/components/form/select.js +3 -3
- package/dist/components/form/switch.js +2 -2
- package/dist/components/form/switch.js.map +1 -1
- package/dist/components/table/table.js +3 -3
- package/dist/{date-picker-DwNo22lx.js → date-picker-Bnl07nd8.js} +8 -6
- package/dist/date-picker-Bnl07nd8.js.map +1 -0
- package/dist/{dom-Dl8XH0CK.js → dom-CyQHY7ID.js} +66 -61
- package/dist/dom-CyQHY7ID.js.map +1 -0
- package/dist/{file-upload-Brf2NkLr.js → file-upload-93d5DR4q.js} +139 -129
- package/dist/file-upload-93d5DR4q.js.map +1 -0
- package/dist/{floating-ui.react-QNHG9W4N.js → floating-ui.react-M2PGXLDp.js} +8 -8
- package/dist/floating-ui.react-M2PGXLDp.js.map +1 -0
- package/dist/{fns-D2eyJKd5.js → fns-C7Dt27Qd.js} +2 -2
- package/dist/fns-C7Dt27Qd.js.map +1 -0
- package/dist/index-BJ1ayTam.js +126 -0
- package/dist/index-BJ1ayTam.js.map +1 -0
- package/dist/index-C-PuFUZi.js.map +1 -1
- package/dist/{index-BelDtX5M.js → index-DDeQW0JW.js} +399 -404
- package/dist/index-DDeQW0JW.js.map +1 -0
- package/dist/index-DE4shK8D.js +215 -0
- package/dist/index-DE4shK8D.js.map +1 -0
- package/dist/{index-DJSMaZR4.js → index-DlJ_2RBL.js} +2 -2
- package/dist/index-DlJ_2RBL.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.esm-BaIwleSE.js.map +1 -1
- package/dist/index.js +2826 -2765
- package/dist/index.js.map +1 -1
- package/dist/{input-CrGrSnUt.js → input-_MVxmIpu.js} +116 -114
- package/dist/input-_MVxmIpu.js.map +1 -0
- package/dist/{input-field-5vYcz5tT.js → input-field-CDCOODOl.js} +63 -47
- package/dist/input-field-CDCOODOl.js.map +1 -0
- package/dist/notifications-Dp0ydKJS.js +2576 -0
- package/dist/notifications-Dp0ydKJS.js.map +1 -0
- package/dist/polymorph-B5n9fs_K.js.map +1 -1
- package/dist/preset/plugin.tailwind.d.ts.map +1 -1
- package/dist/preset/plugin.tailwind.js +20 -18
- package/dist/preset/preset.tailwind.js +24 -25
- package/dist/preset/src/styles/common.js +6 -3
- package/dist/preset/src/styles/dark.d.ts.map +1 -1
- package/dist/preset/src/styles/dark.js +9 -5
- package/dist/preset/src/styles/design-tokens.js +68 -89
- package/dist/preset/src/styles/light.d.ts.map +1 -1
- package/dist/preset/src/styles/light.js +9 -5
- package/dist/preset/src/styles/theme.js +7 -4
- package/dist/preset/src/styles/theme.types.d.ts +2 -1
- package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
- package/dist/preset/src/styles/theme.types.js +2 -1
- package/dist/skeleton-BjJobYYf.js +24 -0
- package/dist/skeleton-BjJobYYf.js.map +1 -0
- package/dist/slot-CRyweuj0.js.map +1 -1
- package/dist/styles/common.js +6 -3
- package/dist/styles/dark.d.ts.map +1 -1
- package/dist/styles/dark.js +9 -5
- package/dist/styles/design-tokens.js +68 -89
- package/dist/styles/light.d.ts.map +1 -1
- package/dist/styles/light.js +9 -5
- package/dist/styles/theme.js +7 -4
- package/dist/styles/theme.types.d.ts +2 -1
- package/dist/styles/theme.types.d.ts.map +1 -1
- package/dist/styles/theme.types.js +2 -1
- package/dist/tabs-B0g7YtQv.js +123 -0
- package/dist/tabs-B0g7YtQv.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/{context-BFXNJVn2.js → use-translations-DSltA7H_.js} +38 -30
- package/dist/use-translations-DSltA7H_.js.map +1 -0
- package/package.json +101 -88
- package/dist/ai/SKILL.md +0 -266
- package/dist/ai/docs/Alert.md +0 -167
- package/dist/ai/docs/AnimatedList.md +0 -205
- package/dist/ai/docs/Autocomplete.md +0 -225
- package/dist/ai/docs/Button.md +0 -182
- package/dist/ai/docs/Calendar.md +0 -219
- package/dist/ai/docs/Card.md +0 -174
- package/dist/ai/docs/Checkbox.md +0 -199
- package/dist/ai/docs/CommandPalette.md +0 -293
- package/dist/ai/docs/DatePicker.md +0 -171
- package/dist/ai/docs/Dropdown.md +0 -223
- package/dist/ai/docs/FileUpload.md +0 -225
- package/dist/ai/docs/Input.md +0 -237
- package/dist/ai/docs/InputField.md +0 -170
- package/dist/ai/docs/List.md +0 -205
- package/dist/ai/docs/Menu.md +0 -166
- package/dist/ai/docs/Modal.md +0 -280
- package/dist/ai/docs/MultiSelect.md +0 -196
- package/dist/ai/docs/Notifications.md +0 -231
- package/dist/ai/docs/PageCalendar.md +0 -271
- package/dist/ai/docs/Select.md +0 -284
- package/dist/ai/docs/Step.md +0 -159
- package/dist/ai/docs/Table.md +0 -298
- package/dist/ai/docs/Tabs.md +0 -191
- package/dist/ai/docs/Tag.md +0 -224
- package/dist/ai/docs/Textarea.md +0 -167
- package/dist/ai/docs/Timeline.md +0 -210
- package/dist/ai/docs/Tooltip.md +0 -231
- package/dist/ai/docs/TransferList.md +0 -142
- package/dist/ai/docs/Typography.md +0 -187
- package/dist/ai/docs/Wizard.md +0 -213
- package/dist/ai/docs/index.md +0 -183
- package/dist/autocomplete-Cn9Z2hLq.js +0 -375
- package/dist/autocomplete-Cn9Z2hLq.js.map +0 -1
- package/dist/calendar-B5lSd0ID.js.map +0 -1
- package/dist/components/core/button.d.ts +0 -77
- package/dist/components/core/button.d.ts.map +0 -1
- package/dist/components/core/heading.d.ts +0 -3
- package/dist/components/core/heading.d.ts.map +0 -1
- package/dist/components/core/polymorph.d.ts +0 -10
- package/dist/components/core/polymorph.d.ts.map +0 -1
- package/dist/components/core/render-on-view.d.ts +0 -7
- package/dist/components/core/render-on-view.d.ts.map +0 -1
- package/dist/components/core/resizable.d.ts +0 -3
- package/dist/components/core/resizable.d.ts.map +0 -1
- package/dist/components/core/slot.d.ts +0 -16
- package/dist/components/core/slot.d.ts.map +0 -1
- package/dist/components/core/tag.d.ts +0 -35
- package/dist/components/core/tag.d.ts.map +0 -1
- package/dist/components/core/typography.d.ts +0 -24
- package/dist/components/core/typography.d.ts.map +0 -1
- package/dist/components/display/alert.d.ts +0 -28
- package/dist/components/display/alert.d.ts.map +0 -1
- package/dist/components/display/calendar.d.ts +0 -42
- package/dist/components/display/calendar.d.ts.map +0 -1
- package/dist/components/display/card.d.ts +0 -29
- package/dist/components/display/card.d.ts.map +0 -1
- package/dist/components/display/empty.d.ts +0 -8
- package/dist/components/display/empty.d.ts.map +0 -1
- package/dist/components/display/list.d.ts +0 -16
- package/dist/components/display/list.d.ts.map +0 -1
- package/dist/components/display/notifications.d.ts +0 -27
- package/dist/components/display/notifications.d.ts.map +0 -1
- package/dist/components/display/progress.d.ts +0 -13
- package/dist/components/display/progress.d.ts.map +0 -1
- package/dist/components/display/shortcut.d.ts +0 -4
- package/dist/components/display/shortcut.d.ts.map +0 -1
- package/dist/components/display/skeleton.d.ts +0 -12
- package/dist/components/display/skeleton.d.ts.map +0 -1
- package/dist/components/display/spinner.d.ts +0 -5
- package/dist/components/display/spinner.d.ts.map +0 -1
- package/dist/components/display/stats.d.ts +0 -12
- package/dist/components/display/stats.d.ts.map +0 -1
- package/dist/components/display/step.d.ts +0 -24
- package/dist/components/display/step.d.ts.map +0 -1
- package/dist/components/display/tabs.d.ts +0 -24
- package/dist/components/display/tabs.d.ts.map +0 -1
- package/dist/components/display/timeline.d.ts +0 -10
- package/dist/components/display/timeline.d.ts.map +0 -1
- package/dist/components/floating/command-palette.d.ts +0 -49
- package/dist/components/floating/command-palette.d.ts.map +0 -1
- package/dist/components/floating/dropdown.d.ts +0 -15
- package/dist/components/floating/dropdown.d.ts.map +0 -1
- package/dist/components/floating/expand.d.ts +0 -11
- package/dist/components/floating/expand.d.ts.map +0 -1
- package/dist/components/floating/menu.d.ts +0 -52
- package/dist/components/floating/menu.d.ts.map +0 -1
- package/dist/components/floating/modal.d.ts +0 -60
- package/dist/components/floating/modal.d.ts.map +0 -1
- package/dist/components/floating/toolbar.d.ts +0 -6
- package/dist/components/floating/toolbar.d.ts.map +0 -1
- package/dist/components/floating/tooltip.d.ts +0 -17
- package/dist/components/floating/tooltip.d.ts.map +0 -1
- package/dist/components/floating/wizard.d.ts +0 -26
- package/dist/components/floating/wizard.d.ts.map +0 -1
- package/dist/components/form/autocomplete.d.ts +0 -16
- package/dist/components/form/autocomplete.d.ts.map +0 -1
- package/dist/components/form/checkbox.d.ts +0 -12
- package/dist/components/form/checkbox.d.ts.map +0 -1
- package/dist/components/form/date-picker.d.ts +0 -10
- package/dist/components/form/date-picker.d.ts.map +0 -1
- package/dist/components/form/file-upload.d.ts +0 -15
- package/dist/components/form/file-upload.d.ts.map +0 -1
- package/dist/components/form/form.d.ts +0 -3
- package/dist/components/form/form.d.ts.map +0 -1
- package/dist/components/form/formReset.d.ts +0 -2
- package/dist/components/form/formReset.d.ts.map +0 -1
- package/dist/components/form/free-text.d.ts +0 -11
- package/dist/components/form/free-text.d.ts.map +0 -1
- package/dist/components/form/input-field.d.ts +0 -34
- package/dist/components/form/input-field.d.ts.map +0 -1
- package/dist/components/form/input.d.ts +0 -52
- package/dist/components/form/input.d.ts.map +0 -1
- package/dist/components/form/multi-select.d.ts +0 -19
- package/dist/components/form/multi-select.d.ts.map +0 -1
- package/dist/components/form/radiobox.d.ts +0 -7
- package/dist/components/form/radiobox.d.ts.map +0 -1
- package/dist/components/form/select.d.ts +0 -13
- package/dist/components/form/select.d.ts.map +0 -1
- package/dist/components/form/slider.d.ts +0 -7
- package/dist/components/form/slider.d.ts.map +0 -1
- package/dist/components/form/switch.d.ts +0 -9
- package/dist/components/form/switch.d.ts.map +0 -1
- package/dist/components/form/task-list.d.ts +0 -3
- package/dist/components/form/task-list.d.ts.map +0 -1
- package/dist/components/form/textarea.d.ts +0 -6
- package/dist/components/form/textarea.d.ts.map +0 -1
- package/dist/components/form/transfer-list.d.ts +0 -14
- package/dist/components/form/transfer-list.d.ts.map +0 -1
- package/dist/components/form/transfer-list.js +0 -55
- package/dist/components/form/transfer-list.js.map +0 -1
- package/dist/components/index.d.ts +0 -46
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/page-calendar/calendar-header.d.ts +0 -16
- package/dist/components/page-calendar/calendar-header.d.ts.map +0 -1
- package/dist/components/page-calendar/day-view.d.ts +0 -12
- package/dist/components/page-calendar/day-view.d.ts.map +0 -1
- package/dist/components/page-calendar/event-pill.d.ts +0 -9
- package/dist/components/page-calendar/event-pill.d.ts.map +0 -1
- package/dist/components/page-calendar/index.d.ts +0 -4
- package/dist/components/page-calendar/index.d.ts.map +0 -1
- package/dist/components/page-calendar/month-view.d.ts +0 -11
- package/dist/components/page-calendar/month-view.d.ts.map +0 -1
- package/dist/components/page-calendar/page-calendar.d.ts +0 -18
- package/dist/components/page-calendar/page-calendar.d.ts.map +0 -1
- package/dist/components/page-calendar/page-calendar.types.d.ts +0 -18
- package/dist/components/page-calendar/page-calendar.types.d.ts.map +0 -1
- package/dist/components/page-calendar/page-calendar.utils.d.ts +0 -24
- package/dist/components/page-calendar/page-calendar.utils.d.ts.map +0 -1
- package/dist/components/page-calendar/week-view.d.ts +0 -11
- package/dist/components/page-calendar/week-view.d.ts.map +0 -1
- package/dist/components/table/filter.d.ts +0 -42
- package/dist/components/table/filter.d.ts.map +0 -1
- package/dist/components/table/group.d.ts +0 -17
- package/dist/components/table/group.d.ts.map +0 -1
- package/dist/components/table/index.d.ts +0 -20
- package/dist/components/table/index.d.ts.map +0 -1
- package/dist/components/table/inner-table.d.ts +0 -29
- package/dist/components/table/inner-table.d.ts.map +0 -1
- package/dist/components/table/metadata.d.ts +0 -4
- package/dist/components/table/metadata.d.ts.map +0 -1
- package/dist/components/table/pagination.d.ts +0 -3
- package/dist/components/table/pagination.d.ts.map +0 -1
- package/dist/components/table/row.d.ts +0 -12
- package/dist/components/table/row.d.ts.map +0 -1
- package/dist/components/table/sort.d.ts +0 -28
- package/dist/components/table/sort.d.ts.map +0 -1
- package/dist/components/table/table-lib.d.ts +0 -135
- package/dist/components/table/table-lib.d.ts.map +0 -1
- package/dist/components/table/table.context.d.ts +0 -10
- package/dist/components/table/table.context.d.ts.map +0 -1
- package/dist/components/table/thead.d.ts +0 -9
- package/dist/components/table/thead.d.ts.map +0 -1
- package/dist/config/context.d.ts +0 -21
- package/dist/config/context.d.ts.map +0 -1
- package/dist/config/default-translations.d.ts +0 -90
- package/dist/config/default-translations.d.ts.map +0 -1
- package/dist/config/default-tweaks.d.ts +0 -13
- package/dist/config/default-tweaks.d.ts.map +0 -1
- package/dist/constants.d.ts +0 -3
- package/dist/constants.d.ts.map +0 -1
- package/dist/context-BFXNJVn2.js.map +0 -1
- package/dist/date-picker-DwNo22lx.js.map +0 -1
- package/dist/dom-Dl8XH0CK.js.map +0 -1
- package/dist/file-upload-Brf2NkLr.js.map +0 -1
- package/dist/floating-ui.react-QNHG9W4N.js.map +0 -1
- package/dist/fns-D2eyJKd5.js.map +0 -1
- package/dist/hooks/use-click-outside.d.ts +0 -3
- package/dist/hooks/use-click-outside.d.ts.map +0 -1
- package/dist/hooks/use-color-parser.d.ts +0 -2
- package/dist/hooks/use-color-parser.d.ts.map +0 -1
- package/dist/hooks/use-components-provider.d.ts +0 -15
- package/dist/hooks/use-components-provider.d.ts.map +0 -1
- package/dist/hooks/use-debounce.d.ts +0 -5
- package/dist/hooks/use-debounce.d.ts.map +0 -1
- package/dist/hooks/use-floating-ref.d.ts +0 -2
- package/dist/hooks/use-floating-ref.d.ts.map +0 -1
- package/dist/hooks/use-form.d.ts +0 -394
- package/dist/hooks/use-form.d.ts.map +0 -1
- package/dist/hooks/use-hover.d.ts +0 -3
- package/dist/hooks/use-hover.d.ts.map +0 -1
- package/dist/hooks/use-input-id.d.ts +0 -4
- package/dist/hooks/use-input-id.d.ts.map +0 -1
- package/dist/hooks/use-is-coarse-device.d.ts +0 -2
- package/dist/hooks/use-is-coarse-device.d.ts.map +0 -1
- package/dist/hooks/use-locale.d.ts +0 -3
- package/dist/hooks/use-locale.d.ts.map +0 -1
- package/dist/hooks/use-media-query.d.ts +0 -2
- package/dist/hooks/use-media-query.d.ts.map +0 -1
- package/dist/hooks/use-on-event.d.ts +0 -4
- package/dist/hooks/use-on-event.d.ts.map +0 -1
- package/dist/hooks/use-parent.d.ts +0 -3
- package/dist/hooks/use-parent.d.ts.map +0 -1
- package/dist/hooks/use-preferences.d.ts +0 -2
- package/dist/hooks/use-preferences.d.ts.map +0 -1
- package/dist/hooks/use-previous.d.ts +0 -2
- package/dist/hooks/use-previous.d.ts.map +0 -1
- package/dist/hooks/use-reactive.d.ts +0 -2
- package/dist/hooks/use-reactive.d.ts.map +0 -1
- package/dist/hooks/use-remove-scroll.d.ts +0 -4
- package/dist/hooks/use-remove-scroll.d.ts.map +0 -1
- package/dist/hooks/use-resize-observer.d.ts +0 -2
- package/dist/hooks/use-resize-observer.d.ts.map +0 -1
- package/dist/hooks/use-stable-ref.d.ts +0 -2
- package/dist/hooks/use-stable-ref.d.ts.map +0 -1
- package/dist/hooks/use-swipe.d.ts +0 -8
- package/dist/hooks/use-swipe.d.ts.map +0 -1
- package/dist/hooks/use-translations.d.ts +0 -88
- package/dist/hooks/use-translations.d.ts.map +0 -1
- package/dist/hooks/use-tweaks.d.ts +0 -3
- package/dist/hooks/use-tweaks.d.ts.map +0 -1
- package/dist/hooks/use-window-size.d.ts +0 -5
- package/dist/hooks/use-window-size.d.ts.map +0 -1
- package/dist/index-BelDtX5M.js.map +0 -1
- package/dist/index-DJSMaZR4.js.map +0 -1
- package/dist/index-Z-fZHxfJ.js +0 -335
- package/dist/index-Z-fZHxfJ.js.map +0 -1
- package/dist/index.d.ts +0 -22
- package/dist/index.d.ts.map +0 -1
- package/dist/input-CrGrSnUt.js.map +0 -1
- package/dist/input-field-5vYcz5tT.js.map +0 -1
- package/dist/lib/combi-keys.d.ts +0 -15
- package/dist/lib/combi-keys.d.ts.map +0 -1
- package/dist/lib/dict.d.ts +0 -12
- package/dist/lib/dict.d.ts.map +0 -1
- package/dist/lib/dom.d.ts +0 -19
- package/dist/lib/dom.d.ts.map +0 -1
- package/dist/lib/fns.d.ts +0 -11
- package/dist/lib/fns.d.ts.map +0 -1
- package/dist/lib/fzf.d.ts +0 -16
- package/dist/lib/fzf.d.ts.map +0 -1
- package/dist/lib/keyboard-area.d.ts +0 -16
- package/dist/lib/keyboard-area.d.ts.map +0 -1
- package/dist/notifications-cUdVPs-B.js +0 -2786
- package/dist/notifications-cUdVPs-B.js.map +0 -1
- package/dist/skeleton-D75GFBV6.js +0 -10
- package/dist/skeleton-D75GFBV6.js.map +0 -1
- package/dist/tabs-S00a8qq8.js +0 -106
- package/dist/tabs-S00a8qq8.js.map +0 -1
- package/dist/types.d.ts +0 -26
- package/dist/types.d.ts.map +0 -1
- package/dist/use-translations-BwLKTrZv.js +0 -10
- package/dist/use-translations-BwLKTrZv.js.map +0 -1
package/dist/ai/docs/Button.md
DELETED
|
@@ -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
|
package/dist/ai/docs/Calendar.md
DELETED
|
@@ -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.
|
package/dist/ai/docs/Card.md
DELETED
|
@@ -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+`.
|