@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/Tag.md
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Tag
|
|
3
|
-
description: A label/badge component for displaying metadata, status, or categorization information.
|
|
4
|
-
package: "@g4rcez/components"
|
|
5
|
-
export: "{ Tag }"
|
|
6
|
-
import: "import { Tag } from '@g4rcez/components/tag'"
|
|
7
|
-
category: core
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Tag
|
|
11
|
-
|
|
12
|
-
A versatile label/badge component for displaying metadata, status, or categorization information. Built with polymorphic capabilities and multiple visual variants.
|
|
13
|
-
|
|
14
|
-
## Import
|
|
15
|
-
|
|
16
|
-
```tsx
|
|
17
|
-
import { Tag } from "@g4rcez/components/tag";
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Props
|
|
21
|
-
|
|
22
|
-
| Prop | Type | Default | Description |
|
|
23
|
-
|------|------|---------|-------------|
|
|
24
|
-
| `theme` | `"primary" \| "secondary" \| "info" \| "warn" \| "danger" \| "success" \| "muted" \| "neutral" \| "custom" \| "disabled" \| "loading"` | `"primary"` | Visual theme/variant of the tag |
|
|
25
|
-
| `size` | `"icon" \| "small" \| "default" \| "big" \| "tiny"` | `"default"` | Size of the tag |
|
|
26
|
-
| `icon` | `React.ReactNode` | - | Icon to display inside the tag |
|
|
27
|
-
| `indicator` | `"primary" \| "secondary" \| "info" \| "warn" \| "danger" \| "success" \| "muted" \| "neutral"` | - | Shows a small colored dot before the label |
|
|
28
|
-
| `loading` | `boolean` | `false` | Overrides theme with pulse animation |
|
|
29
|
-
| `as` | `React.ElementType` | `"span"` | HTML element to render as |
|
|
30
|
-
| `className` | `string` | - | Additional CSS classes |
|
|
31
|
-
| `children` | `React.ReactNode` | - | Tag content |
|
|
32
|
-
|
|
33
|
-
## Design Tokens
|
|
34
|
-
|
|
35
|
-
Tokens this component reads. Customize by overriding these CSS variables in your theme.
|
|
36
|
-
|
|
37
|
-
| Token | CSS Variable | Purpose |
|
|
38
|
-
|-------|-------------|---------|
|
|
39
|
-
| `bg-tag-primary-bg` | `--tag-primary-bg` | Background for primary theme |
|
|
40
|
-
| `text-tag-primary-text` | `--tag-primary-text` | Text color for primary theme |
|
|
41
|
-
| `bg-tag-secondary-bg` | `--tag-secondary-bg` | Background for secondary theme |
|
|
42
|
-
| `text-tag-secondary-text` | `--tag-secondary-text` | Text color for secondary theme |
|
|
43
|
-
| `bg-tag-info-bg` | `--tag-info-bg` | Background for info theme |
|
|
44
|
-
| `text-tag-info-text` | `--tag-info-text` | Text color for info theme |
|
|
45
|
-
| `bg-tag-warn-bg` | `--tag-warn-bg` | Background for warn theme |
|
|
46
|
-
| `text-tag-warn-text` | `--tag-warn-text` | Text color for warn theme |
|
|
47
|
-
| `bg-tag-danger-bg` | `--tag-danger-bg` | Background for danger theme |
|
|
48
|
-
| `text-tag-danger-text` | `--tag-danger-text` | Text color for danger theme |
|
|
49
|
-
| `bg-tag-success-bg` | `--tag-success-bg` | Background for success theme |
|
|
50
|
-
| `text-tag-success-text` | `--tag-success-text` | Text color for success theme |
|
|
51
|
-
| `bg-tag-muted-bg` | `--tag-muted-bg` | Background for muted theme |
|
|
52
|
-
| `text-tag-muted-text` | `--tag-muted-text` | Text color for muted theme |
|
|
53
|
-
| `bg-disabled` | `--disabled` | Background for disabled/loading states |
|
|
54
|
-
| `border-card-border` | `--card-border` | Border color for neutral theme |
|
|
55
|
-
| `rounded-pill` | `--radius-pill` | Pill border radius applied to all tags |
|
|
56
|
-
| `bg-primary` | `--primary` | Dot color for primary indicator |
|
|
57
|
-
| `bg-secondary` | `--secondary` | Dot color for secondary indicator |
|
|
58
|
-
| `bg-info` | `--info` | Dot color for info indicator |
|
|
59
|
-
| `bg-warn` | `--warn` | Dot color for warn indicator |
|
|
60
|
-
| `bg-danger` | `--danger` | Dot color for danger indicator |
|
|
61
|
-
| `bg-success` | `--success` | Dot color for success indicator |
|
|
62
|
-
| `bg-muted` | `--muted` | Dot color for muted indicator |
|
|
63
|
-
|
|
64
|
-
## Theme Variants
|
|
65
|
-
|
|
66
|
-
- `primary`: Primary brand color
|
|
67
|
-
- `secondary`: Secondary color scheme
|
|
68
|
-
- `info`: Informational styling
|
|
69
|
-
- `warn`: Warning/caution styling
|
|
70
|
-
- `danger`: Error/destructive styling
|
|
71
|
-
- `success`: Success/positive styling
|
|
72
|
-
- `muted`: Subtle/subdued styling
|
|
73
|
-
- `neutral`: Transparent with card border
|
|
74
|
-
- `custom`: No default styling — supply all classes via `className`
|
|
75
|
-
- `disabled`: Disabled appearance with reduced opacity
|
|
76
|
-
- `loading`: Pulse animation (also triggered by the `loading` boolean prop)
|
|
77
|
-
|
|
78
|
-
## Examples
|
|
79
|
-
|
|
80
|
-
### Basic Variants
|
|
81
|
-
|
|
82
|
-
```tsx
|
|
83
|
-
<Tag theme="primary">Primary</Tag>
|
|
84
|
-
<Tag theme="secondary">Secondary</Tag>
|
|
85
|
-
<Tag theme="info">Info</Tag>
|
|
86
|
-
<Tag theme="warn">Warning</Tag>
|
|
87
|
-
<Tag theme="danger">Error</Tag>
|
|
88
|
-
<Tag theme="success">Success</Tag>
|
|
89
|
-
<Tag theme="muted">Muted</Tag>
|
|
90
|
-
<Tag theme="neutral">Neutral</Tag>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Sizes
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
<Tag size="small">Small</Tag>
|
|
97
|
-
<Tag size="default">Default</Tag>
|
|
98
|
-
<Tag size="big">Big</Tag>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### With Icons
|
|
102
|
-
|
|
103
|
-
```tsx
|
|
104
|
-
import { StarIcon, CheckIcon } from "@phosphor-icons/react";
|
|
105
|
-
|
|
106
|
-
<Tag icon={<StarIcon size={14} />} theme="warn">Featured</Tag>
|
|
107
|
-
<Tag icon={<CheckIcon size={14} />} theme="success">Completed</Tag>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### With Indicators
|
|
111
|
-
|
|
112
|
-
```tsx
|
|
113
|
-
<Tag indicator="success">Online</Tag>
|
|
114
|
-
<Tag indicator="danger">Offline</Tag>
|
|
115
|
-
<Tag indicator="warn">Pending</Tag>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Status Tags
|
|
119
|
-
|
|
120
|
-
```tsx
|
|
121
|
-
const statusMap: Record<string, { theme: "success" | "warn" | "muted" | "danger" }> = {
|
|
122
|
-
active: { theme: "success" },
|
|
123
|
-
pending: { theme: "warn" },
|
|
124
|
-
inactive: { theme: "muted" },
|
|
125
|
-
error: { theme: "danger" },
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const StatusTag = ({ status }: { status: string }) => {
|
|
129
|
-
const config = statusMap[status] ?? statusMap.inactive;
|
|
130
|
-
return (
|
|
131
|
-
<Tag theme={config.theme} indicator={config.theme}>
|
|
132
|
-
{status.charAt(0).toUpperCase() + status.slice(1)}
|
|
133
|
-
</Tag>
|
|
134
|
-
);
|
|
135
|
-
};
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Loading State
|
|
139
|
-
|
|
140
|
-
```tsx
|
|
141
|
-
<Tag loading theme="primary">Processing...</Tag>
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### Polymorphic Usage
|
|
145
|
-
|
|
146
|
-
```tsx
|
|
147
|
-
<Tag as="button" onClick={() => void 0} theme="primary">
|
|
148
|
-
Clickable Tag
|
|
149
|
-
</Tag>
|
|
150
|
-
|
|
151
|
-
<Tag as="a" href="/category/react" theme="info">
|
|
152
|
-
React
|
|
153
|
-
</Tag>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Content Categorization
|
|
157
|
-
|
|
158
|
-
```tsx
|
|
159
|
-
const categories = [
|
|
160
|
-
{ name: "React", theme: "info" },
|
|
161
|
-
{ name: "TypeScript", theme: "primary" },
|
|
162
|
-
{ name: "CSS", theme: "success" },
|
|
163
|
-
];
|
|
164
|
-
|
|
165
|
-
<div className="flex gap-2 flex-wrap">
|
|
166
|
-
{categories.map((cat) => (
|
|
167
|
-
<Tag key={cat.name} theme={cat.theme as any}>
|
|
168
|
-
{cat.name}
|
|
169
|
-
</Tag>
|
|
170
|
-
))}
|
|
171
|
-
</div>
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### Notification Badge
|
|
175
|
-
|
|
176
|
-
```tsx
|
|
177
|
-
import { BellIcon } from "@phosphor-icons/react";
|
|
178
|
-
|
|
179
|
-
<div className="relative">
|
|
180
|
-
<BellIcon size={24} />
|
|
181
|
-
<Tag
|
|
182
|
-
size="small"
|
|
183
|
-
theme="danger"
|
|
184
|
-
className="absolute -top-2 -right-2 min-w-[20px] h-5 text-xs"
|
|
185
|
-
>
|
|
186
|
-
3
|
|
187
|
-
</Tag>
|
|
188
|
-
</div>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Do
|
|
192
|
-
|
|
193
|
-
- Use `theme="success"` for positive states and `theme="danger"` for errors — keep it consistent
|
|
194
|
-
- Keep tag labels short and scannable
|
|
195
|
-
- Use `indicator` to add extra color meaning without extra text
|
|
196
|
-
- Use `as="button"` when the tag performs an action (e.g., removing a filter)
|
|
197
|
-
- Use design-token classes for wrapper elements (`bg-muted`, `border-border`)
|
|
198
|
-
|
|
199
|
-
## Don't
|
|
200
|
-
|
|
201
|
-
- Don't pass raw Tailwind color classes (`bg-blue-500`, `text-white`) — use `theme` prop instead
|
|
202
|
-
- Don't use arbitrary Tailwind values (`bg-[#abc]`, `bg-[--my-var]`) — override CSS variables in your `@theme` block
|
|
203
|
-
- Don't use too many different themes on one screen — excessive color variety is distracting
|
|
204
|
-
- Don't use `Tag` as a replacement for `Button` on primary actions
|
|
205
|
-
- Don't combine `icon` and `indicator` on a small tag — it becomes too visually busy
|
|
206
|
-
|
|
207
|
-
## Accessibility
|
|
208
|
-
|
|
209
|
-
- Uses semantic HTML via the `as` prop (defaults to `<span>`)
|
|
210
|
-
- The indicator dot is `aria-hidden="true"` — it is purely decorative
|
|
211
|
-
- When used as a `button` or `a`, standard keyboard navigation applies
|
|
212
|
-
- Ensure color meaning is supplemented by text — do not rely on color alone
|
|
213
|
-
|
|
214
|
-
## Data Attributes
|
|
215
|
-
|
|
216
|
-
- `data-component="tag"`: Identifies the component for styling/testing
|
|
217
|
-
- `data-theme`: Current theme variant value
|
|
218
|
-
|
|
219
|
-
## Notes
|
|
220
|
-
|
|
221
|
-
- The `loading` prop overrides the `theme` value and applies the loading animation
|
|
222
|
-
- Once `loading` becomes `false`, the original `theme` is restored
|
|
223
|
-
- The component forwards refs to the underlying element
|
|
224
|
-
- All standard HTML attributes for the target element are forwarded
|
package/dist/ai/docs/Textarea.md
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Textarea
|
|
3
|
-
description: Auto-growing multi-line text input built on the InputField foundation.
|
|
4
|
-
package: "@g4rcez/components"
|
|
5
|
-
export: "{ Textarea }"
|
|
6
|
-
import: "import { Textarea } from '@g4rcez/components'"
|
|
7
|
-
category: form
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Textarea
|
|
11
|
-
|
|
12
|
-
Auto-growing multi-line text input built on the InputField foundation.
|
|
13
|
-
|
|
14
|
-
## Import
|
|
15
|
-
|
|
16
|
-
```tsx
|
|
17
|
-
import { Textarea } from "@g4rcez/components";
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Props
|
|
21
|
-
|
|
22
|
-
Inherits all `InputField` props and standard HTML `<textarea>` attributes, plus:
|
|
23
|
-
|
|
24
|
-
| Prop | Type | Default | Description |
|
|
25
|
-
|------|------|---------|-------------|
|
|
26
|
-
| `title` | `Label` | — | Label for the textarea. |
|
|
27
|
-
| `error` | `string` | — | Error message displayed below the field. |
|
|
28
|
-
| `loading` | `boolean` | `false` | Disables the field and signals a pending state. |
|
|
29
|
-
| `rows` | `number` | `2` | Initial number of visible text rows. |
|
|
30
|
-
| `next` | `string` | — | ID of the next element to focus when Enter is pressed (requires `enterKeyHint="next"`). |
|
|
31
|
-
| `placeholder` | `string` | — | Placeholder text. |
|
|
32
|
-
| `required` | `boolean` | — | Marks the field as required. |
|
|
33
|
-
| `className` | `string` | — | Additional CSS classes for the `<textarea>` element. |
|
|
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
|
-
| `placeholder-input-mask` | `--input-mask` | Placeholder text color |
|
|
42
|
-
| `placeholder-input-mask-error` (via `group-error`) | `--input-mask-error` | Placeholder tint in error state |
|
|
43
|
-
| `text-foreground` | `--foreground` | Input text color |
|
|
44
|
-
| `text-danger` (via `group-error`) | `--danger` | Text color in error state |
|
|
45
|
-
| `bg-transparent` | — | Input background (inherits from field wrapper) |
|
|
46
|
-
| `focus:ring-primary` | `--primary` | Focus ring |
|
|
47
|
-
| `group-focus-within:border-primary` | `--primary` | Border highlight on focus |
|
|
48
|
-
| `group-hover:border-primary` | `--primary` | Border highlight on hover |
|
|
49
|
-
| `h-input-height` | `--input-height` | Base height token (overridden by `rows` in practice) |
|
|
50
|
-
| `px-input-x` | `--input-x` | Horizontal padding |
|
|
51
|
-
| `py-input-y` | `--input-y` | Vertical padding |
|
|
52
|
-
|
|
53
|
-
## Examples
|
|
54
|
-
|
|
55
|
-
### Basic usage
|
|
56
|
-
|
|
57
|
-
```tsx
|
|
58
|
-
import { Textarea } from "@g4rcez/components";
|
|
59
|
-
|
|
60
|
-
export default function BioField() {
|
|
61
|
-
return (
|
|
62
|
-
<Textarea
|
|
63
|
-
title="Bio"
|
|
64
|
-
name="bio"
|
|
65
|
-
placeholder="Tell us about yourself…"
|
|
66
|
-
rows={4}
|
|
67
|
-
onChange={(e) => console.log(e.target.value)}
|
|
68
|
-
/>
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### With validation error
|
|
74
|
-
|
|
75
|
-
```tsx
|
|
76
|
-
import { Textarea } from "@g4rcez/components";
|
|
77
|
-
|
|
78
|
-
export default function MessageField() {
|
|
79
|
-
return (
|
|
80
|
-
<Textarea
|
|
81
|
-
title="Message"
|
|
82
|
-
name="message"
|
|
83
|
-
required
|
|
84
|
-
error="Message is required and must be at least 10 characters."
|
|
85
|
-
placeholder="Enter your message…"
|
|
86
|
-
/>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Monospace styling for code
|
|
92
|
-
|
|
93
|
-
```tsx
|
|
94
|
-
import { Textarea } from "@g4rcez/components";
|
|
95
|
-
|
|
96
|
-
export default function CssSnippetField() {
|
|
97
|
-
return (
|
|
98
|
-
<Textarea
|
|
99
|
-
title="CSS Snippet"
|
|
100
|
-
name="css"
|
|
101
|
-
className="font-mono text-sm"
|
|
102
|
-
rows={6}
|
|
103
|
-
placeholder="body { margin: 0; }"
|
|
104
|
-
/>
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Focus-next navigation
|
|
110
|
-
|
|
111
|
-
```tsx
|
|
112
|
-
import { Textarea } from "@g4rcez/components";
|
|
113
|
-
import { Input } from "@g4rcez/components";
|
|
114
|
-
|
|
115
|
-
export default function MultiFieldForm() {
|
|
116
|
-
return (
|
|
117
|
-
<div className="flex flex-col gap-base">
|
|
118
|
-
<Textarea
|
|
119
|
-
title="Description"
|
|
120
|
-
name="description"
|
|
121
|
-
enterKeyHint="next"
|
|
122
|
-
next="submit-btn"
|
|
123
|
-
rows={3}
|
|
124
|
-
placeholder="Describe the issue…"
|
|
125
|
-
/>
|
|
126
|
-
<button id="submit-btn" type="submit" className="btn">
|
|
127
|
-
Submit
|
|
128
|
-
</button>
|
|
129
|
-
</div>
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Do
|
|
135
|
-
|
|
136
|
-
- Provide a descriptive `title` to label the field.
|
|
137
|
-
- Set a sensible initial `rows` value based on the expected content length.
|
|
138
|
-
- Use `Textarea` whenever the user is expected to provide more than a single line of text.
|
|
139
|
-
- Use design-token classes on wrapper elements (`bg-background`, `text-foreground`, `border-border`).
|
|
140
|
-
|
|
141
|
-
## Don't
|
|
142
|
-
|
|
143
|
-
- Don't use `Textarea` for single-line inputs like names or emails — use `Input` instead.
|
|
144
|
-
- Don't fix the height with a `className` like `h-32` if you want the auto-resize behavior to work.
|
|
145
|
-
- Don't pass raw Tailwind color classes (`bg-gray-50`, `border-gray-300`) — use design tokens instead.
|
|
146
|
-
- Don't use arbitrary Tailwind values (`bg-[#abc]`) — override CSS variables in your `@theme` block instead.
|
|
147
|
-
|
|
148
|
-
## Accessibility
|
|
149
|
-
|
|
150
|
-
- Rendered inside an `InputField` which wraps the element with `<fieldset>` and a `<label>` linked via `id`/`for`.
|
|
151
|
-
- Supports `aria-required`, `aria-invalid`, `aria-disabled`, and `aria-readonly` via prop spread.
|
|
152
|
-
- Keyboard navigation follows standard `<textarea>` behavior (Tab to focus, Shift+Tab to leave).
|
|
153
|
-
- When `enterKeyHint="next"` and a `next` id is provided, pressing Enter moves focus to the target element.
|
|
154
|
-
|
|
155
|
-
## Data Attributes
|
|
156
|
-
|
|
157
|
-
| Attribute | Element | Value | Description |
|
|
158
|
-
|-----------|---------|-------|-------------|
|
|
159
|
-
| `data-component` | `InputField` root | `"textarea"` | Identifies the component. |
|
|
160
|
-
| `data-error` | `InputField` root | truthy string | Present when an error message is supplied. |
|
|
161
|
-
| `data-next` | `<textarea>` | element id | Target element id for Enter-key focus forwarding. |
|
|
162
|
-
|
|
163
|
-
## Notes
|
|
164
|
-
|
|
165
|
-
- Auto-resize is driven by a native `input` event listener that sets `style.height = "auto"` then `style.height = scrollHeight + "px"` — no JavaScript polling or ResizeObserver involved.
|
|
166
|
-
- The resize handle is set to `resize-y` by default; add `className="resize-none"` to disable it.
|
|
167
|
-
- Built via the shared `createFreeText` factory, which also powers the `Input` component — all `InputField` layout features (left/right slots, optional text, feedback, etc.) are available.
|
package/dist/ai/docs/Timeline.md
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Timeline
|
|
3
|
-
description: Vertical chronological event list with icon markers, body content, and optional right-side metadata.
|
|
4
|
-
package: "@g4rcez/components"
|
|
5
|
-
export: "{ Timeline }"
|
|
6
|
-
import: "import { Timeline, TimelineItem } from '@g4rcez/components/timeline'"
|
|
7
|
-
category: display
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Timeline
|
|
11
|
-
|
|
12
|
-
Vertical chronological event list with icon markers, body content, and optional right-side metadata.
|
|
13
|
-
|
|
14
|
-
## Import
|
|
15
|
-
|
|
16
|
-
```tsx
|
|
17
|
-
import { Timeline, TimelineItem } from "@g4rcez/components/timeline";
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Components
|
|
21
|
-
|
|
22
|
-
### Timeline
|
|
23
|
-
|
|
24
|
-
The root container. Renders as a `<ul>` with `role="list"`. The vertical connector line on the last item is hidden automatically.
|
|
25
|
-
|
|
26
|
-
### TimelineItem
|
|
27
|
-
|
|
28
|
-
A single event entry. Renders as a `<li>` with `role="listitem"` and `pb-12` vertical spacing for the connector line.
|
|
29
|
-
|
|
30
|
-
### TimelineItem.Icon
|
|
31
|
-
|
|
32
|
-
The visual marker — a rounded circle, typically containing an icon. Renders as a `<header>`.
|
|
33
|
-
|
|
34
|
-
| Prop | Type | Default | Description |
|
|
35
|
-
|------|------|---------|-------------|
|
|
36
|
-
| `className` | `string` | — | Override icon container appearance |
|
|
37
|
-
| `children` | `React.ReactNode` | — | Icon element |
|
|
38
|
-
|
|
39
|
-
### TimelineItem.Body
|
|
40
|
-
|
|
41
|
-
The main content area. Polymorphic — defaults to `<section>`.
|
|
42
|
-
|
|
43
|
-
| Prop | Type | Default | Description |
|
|
44
|
-
|------|------|---------|-------------|
|
|
45
|
-
| `as` | `React.ElementType` | `"section"` | HTML element to render as |
|
|
46
|
-
| `className` | `string` | — | Additional classes |
|
|
47
|
-
| `children` | `React.ReactNode` | — | Event body content |
|
|
48
|
-
|
|
49
|
-
### TimelineItem.Right
|
|
50
|
-
|
|
51
|
-
Optional right-side slot for timestamps or auxiliary actions. Renders inside a `<footer>` wrapper. Polymorphic — defaults to `<button>`.
|
|
52
|
-
|
|
53
|
-
| Prop | Type | Default | Description |
|
|
54
|
-
|------|------|---------|-------------|
|
|
55
|
-
| `as` | `React.ElementType` | `"button"` | HTML element to render as |
|
|
56
|
-
| `children` | `React.ReactNode` | — | Right-side content |
|
|
57
|
-
|
|
58
|
-
## Design Tokens
|
|
59
|
-
|
|
60
|
-
Tokens this component reads. Customize by overriding these CSS variables in your theme.
|
|
61
|
-
|
|
62
|
-
| Token | CSS Variable | Purpose |
|
|
63
|
-
|-------|-------------|---------|
|
|
64
|
-
| `bg-card-border` | `--card-border` | Vertical connector line color |
|
|
65
|
-
| `bg-primary` | `--primary` | Icon container default background |
|
|
66
|
-
| `text-primary-foreground` | `--primary-foreground` | Icon default text/icon color |
|
|
67
|
-
|
|
68
|
-
## Examples
|
|
69
|
-
|
|
70
|
-
### Order Tracking Timeline
|
|
71
|
-
|
|
72
|
-
```tsx
|
|
73
|
-
import { CheckIcon, PackageIcon, TruckIcon } from "@phosphor-icons/react";
|
|
74
|
-
|
|
75
|
-
<Timeline>
|
|
76
|
-
<TimelineItem>
|
|
77
|
-
<TimelineItem.Icon>
|
|
78
|
-
<CheckIcon size={20} />
|
|
79
|
-
</TimelineItem.Icon>
|
|
80
|
-
<TimelineItem.Body>
|
|
81
|
-
<h4 className="font-bold">Order Placed</h4>
|
|
82
|
-
<p className="text-muted-foreground">Your order has been received and is being processed.</p>
|
|
83
|
-
</TimelineItem.Body>
|
|
84
|
-
<TimelineItem.Right as="time">10:00 AM</TimelineItem.Right>
|
|
85
|
-
</TimelineItem>
|
|
86
|
-
|
|
87
|
-
<TimelineItem>
|
|
88
|
-
<TimelineItem.Icon>
|
|
89
|
-
<PackageIcon size={20} />
|
|
90
|
-
</TimelineItem.Icon>
|
|
91
|
-
<TimelineItem.Body>
|
|
92
|
-
<h4 className="font-bold">Packed</h4>
|
|
93
|
-
<p className="text-muted-foreground">Your order has been packed and is ready for shipment.</p>
|
|
94
|
-
</TimelineItem.Body>
|
|
95
|
-
<TimelineItem.Right as="time">1:00 PM</TimelineItem.Right>
|
|
96
|
-
</TimelineItem>
|
|
97
|
-
|
|
98
|
-
<TimelineItem>
|
|
99
|
-
<TimelineItem.Icon>
|
|
100
|
-
<TruckIcon size={20} />
|
|
101
|
-
</TimelineItem.Icon>
|
|
102
|
-
<TimelineItem.Body>
|
|
103
|
-
<h4 className="font-bold">Shipped</h4>
|
|
104
|
-
<p className="text-muted-foreground">Your package is on its way.</p>
|
|
105
|
-
</TimelineItem.Body>
|
|
106
|
-
<TimelineItem.Right as="time">2:30 PM</TimelineItem.Right>
|
|
107
|
-
</TimelineItem>
|
|
108
|
-
</Timeline>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Simple Text Timeline
|
|
112
|
-
|
|
113
|
-
```tsx
|
|
114
|
-
<Timeline>
|
|
115
|
-
<TimelineItem>
|
|
116
|
-
<TimelineItem.Body>
|
|
117
|
-
<strong>Step 1:</strong> Initial setup completed.
|
|
118
|
-
</TimelineItem.Body>
|
|
119
|
-
</TimelineItem>
|
|
120
|
-
<TimelineItem>
|
|
121
|
-
<TimelineItem.Body>
|
|
122
|
-
<strong>Step 2:</strong> Data migration started.
|
|
123
|
-
</TimelineItem.Body>
|
|
124
|
-
</TimelineItem>
|
|
125
|
-
</Timeline>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Activity Feed
|
|
129
|
-
|
|
130
|
-
```tsx
|
|
131
|
-
import { UserIcon, PencilSimpleIcon, TrashIcon } from "@phosphor-icons/react";
|
|
132
|
-
|
|
133
|
-
function ActivityFeed({ events }: { events: ActivityEvent[] }) {
|
|
134
|
-
const iconMap = {
|
|
135
|
-
create: UserIcon,
|
|
136
|
-
update: PencilSimpleIcon,
|
|
137
|
-
delete: TrashIcon,
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
return (
|
|
141
|
-
<Timeline>
|
|
142
|
-
{events.map((event) => {
|
|
143
|
-
const Icon = iconMap[event.type];
|
|
144
|
-
return (
|
|
145
|
-
<TimelineItem key={event.id}>
|
|
146
|
-
<TimelineItem.Icon>
|
|
147
|
-
<Icon size={18} />
|
|
148
|
-
</TimelineItem.Icon>
|
|
149
|
-
<TimelineItem.Body>
|
|
150
|
-
<p className="font-medium">{event.user} {event.action}</p>
|
|
151
|
-
<p className="text-sm text-muted-foreground">{event.description}</p>
|
|
152
|
-
</TimelineItem.Body>
|
|
153
|
-
<TimelineItem.Right as="time" dateTime={event.iso}>
|
|
154
|
-
{event.relativeTime}
|
|
155
|
-
</TimelineItem.Right>
|
|
156
|
-
</TimelineItem>
|
|
157
|
-
);
|
|
158
|
-
})}
|
|
159
|
-
</Timeline>
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Custom Icon Background
|
|
165
|
-
|
|
166
|
-
```tsx
|
|
167
|
-
import { WarningCircleIcon } from "@phosphor-icons/react";
|
|
168
|
-
|
|
169
|
-
<TimelineItem>
|
|
170
|
-
<TimelineItem.Icon className="bg-danger text-danger-foreground">
|
|
171
|
-
<WarningCircleIcon size={20} />
|
|
172
|
-
</TimelineItem.Icon>
|
|
173
|
-
<TimelineItem.Body>
|
|
174
|
-
<h4 className="font-bold text-danger-foreground">Deployment Failed</h4>
|
|
175
|
-
<p className="text-muted-foreground">Build step exited with code 1.</p>
|
|
176
|
-
</TimelineItem.Body>
|
|
177
|
-
</TimelineItem>
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## Do
|
|
181
|
-
|
|
182
|
-
- Use icons that clearly represent the status or type of event.
|
|
183
|
-
- Keep body content concise; link to a detail view for lengthy information.
|
|
184
|
-
- Maintain consistent chronological order (ascending or descending) throughout the list.
|
|
185
|
-
- Use semantic elements for timestamps — `as="time"` with a `dateTime` attribute.
|
|
186
|
-
- Use design-token classes for icon background overrides (`bg-success`, `bg-danger`).
|
|
187
|
-
|
|
188
|
-
## Don't
|
|
189
|
-
|
|
190
|
-
- Don't pass raw Tailwind color classes (`bg-green-500`, `text-red-600`) for icon backgrounds — use design tokens instead.
|
|
191
|
-
- Don't use arbitrary Tailwind values (`bg-[#abc]`) — override CSS variables in your `@theme` block.
|
|
192
|
-
- Don't cram too much information into a single `TimelineItem`; link to detail pages.
|
|
193
|
-
- Don't use `Timeline` for non-sequential data — use `List` or `Table` for unordered collections.
|
|
194
|
-
|
|
195
|
-
## Accessibility
|
|
196
|
-
|
|
197
|
-
- `Timeline` uses `<ul role="list">` and each `TimelineItem` uses `<li role="listitem">` for semantic list structure.
|
|
198
|
-
- The vertical connector `<span>` between items carries `aria-hidden="true"` since it is purely decorative.
|
|
199
|
-
- The last item's connector line is hidden via a CSS selector (`[&>li:last-child>span[aria-hidden=true]]:hidden`), removing it from layout without JS.
|
|
200
|
-
|
|
201
|
-
## Data Attributes
|
|
202
|
-
|
|
203
|
-
- `data-component="timeline"` — applied to the `<ul>` container.
|
|
204
|
-
- `data-component="timeline-item"` — applied to each `<li>` entry.
|
|
205
|
-
|
|
206
|
-
## Notes
|
|
207
|
-
|
|
208
|
-
- `TimelineItem.Right` defaults to `as="button"` — change to `as="time"` or `as="span"` if the right slot is non-interactive.
|
|
209
|
-
- Vertical spacing between entries is controlled by `pb-12` on `TimelineItem`; the connector line fills this gap.
|
|
210
|
-
- `TimelineItem` can be used without `TimelineItem.Icon` — the connector line still renders from the left edge.
|