@devalok/shilp-sutra 0.34.1 → 0.36.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/LICENSE +21 -21
- package/dist/_chunks/badge-group.js +95 -95
- package/dist/_chunks/badge-group.js.map +1 -0
- package/dist/_chunks/chat.js +7 -2
- package/dist/_chunks/chat.js.map +1 -0
- package/dist/_chunks/date-picker.js.map +1 -0
- package/dist/_chunks/document-preview.js.map +1 -0
- package/dist/_chunks/file-preview.js.map +1 -0
- package/dist/_chunks/framer.js +62 -62
- package/dist/_chunks/framer.js.map +1 -0
- package/dist/_chunks/image-preview.js +1 -1
- package/dist/_chunks/image-preview.js.map +1 -0
- package/dist/_chunks/keybinding.js.map +1 -0
- package/dist/_chunks/link-context.js.map +1 -0
- package/dist/_chunks/mention-suggestion.js.map +1 -0
- package/dist/_chunks/motion-provider.js.map +1 -0
- package/dist/_chunks/popover.js +32 -36
- package/dist/_chunks/popover.js.map +1 -0
- package/dist/_chunks/primitives.js +686 -686
- package/dist/_chunks/primitives.js.map +1 -0
- package/dist/_chunks/rich-chat-input.js +651 -650
- package/dist/_chunks/rich-chat-input.js.map +1 -0
- package/dist/_chunks/shared.js.map +1 -0
- package/dist/_chunks/sonner.js.map +1 -0
- package/dist/_chunks/stat-row.js +158 -158
- package/dist/_chunks/stat-row.js.map +1 -0
- package/dist/_chunks/tiptap.js +11 -11
- package/dist/_chunks/tiptap.js.map +1 -0
- package/dist/_chunks/tree-view.js +1 -1
- package/dist/_chunks/tree-view.js.map +1 -0
- package/dist/_chunks/use-calendar.js.map +1 -0
- package/dist/_chunks/vendor-client.js +1 -1
- package/dist/_chunks/vendor-client.js.map +1 -0
- package/dist/_chunks/vendor-utils.js.map +1 -0
- package/dist/ai/ai-command-provider.js.map +1 -0
- package/dist/ai/block-renderer.js.map +1 -0
- package/dist/ai/blocks/loading.d.ts.map +1 -1
- package/dist/ai/command-bar.js.map +1 -0
- package/dist/ai/conversation.js +76 -76
- package/dist/ai/conversation.js.map +1 -0
- package/dist/ai/devadoot-icon.d.ts.map +1 -1
- package/dist/ai/index.js.map +1 -0
- package/dist/composed/activity-feed.js.map +1 -0
- package/dist/composed/avatar-group.js +1 -1
- package/dist/composed/avatar-group.js.map +1 -0
- package/dist/composed/bulk-action-bar.js +13 -21
- package/dist/composed/bulk-action-bar.js.map +1 -0
- package/dist/composed/command-palette.js.map +1 -0
- package/dist/composed/confirm-dialog.js.map +1 -0
- package/dist/composed/content-card.js.map +1 -0
- package/dist/composed/deadline-indicator.js.map +1 -0
- package/dist/composed/emoji-picker.js.map +1 -0
- package/dist/composed/empty-state.d.ts.map +1 -1
- package/dist/composed/empty-state.js +30 -30
- package/dist/composed/empty-state.js.map +1 -0
- package/dist/composed/error-boundary.js.map +1 -0
- package/dist/composed/filter-bar.js.map +1 -0
- package/dist/composed/form-section.js.map +1 -0
- package/dist/composed/global-loading.js.map +1 -0
- package/dist/composed/inline-edit.js.map +1 -0
- package/dist/composed/lib/string-utils.js.map +1 -0
- package/dist/composed/loading-skeleton.js.map +1 -0
- package/dist/composed/markdown-viewer.js.map +1 -0
- package/dist/composed/master-detail.js.map +1 -0
- package/dist/composed/member-picker.js.map +1 -0
- package/dist/composed/multi-select-popover.d.ts.map +1 -1
- package/dist/composed/multi-select-popover.js +4 -0
- package/dist/composed/multi-select-popover.js.map +1 -0
- package/dist/composed/page-header.js.map +1 -0
- package/dist/composed/page-skeletons.js.map +1 -0
- package/dist/composed/priority-indicator.js.map +1 -0
- package/dist/composed/responsive-overlay.js.map +1 -0
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js +1 -1
- package/dist/composed/rich-text-editor.js.map +1 -0
- package/dist/composed/schedule-view.js.map +1 -0
- package/dist/composed/simple-tooltip.js.map +1 -0
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js.map +1 -0
- package/dist/hooks/use-color-mode.js.map +1 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-touch-device.js.map +1 -0
- package/dist/hooks/use-viewport-height.js.map +1 -0
- package/dist/motion/check-motion-provider.d.ts +3 -0
- package/dist/motion/check-motion-provider.d.ts.map +1 -0
- package/dist/motion/index.js +14 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/primitives-index.js.map +1 -0
- package/dist/primitives/react-accordion.d.ts +114 -114
- package/dist/primitives/react-alert-dialog.d.ts +51 -51
- package/dist/primitives/react-aspect-ratio.d.ts +11 -11
- package/dist/primitives/react-avatar.d.ts +24 -24
- package/dist/primitives/react-checkbox.d.ts +50 -50
- package/dist/primitives/react-collapsible.d.ts +33 -33
- package/dist/primitives/react-context-menu.d.ts +96 -96
- package/dist/primitives/react-dialog.d.ts +103 -103
- package/dist/primitives/react-dropdown-menu.d.ts +97 -97
- package/dist/primitives/react-hover-card.d.ts +79 -79
- package/dist/primitives/react-label.d.ts +10 -10
- package/dist/primitives/react-menu.d.ts +169 -169
- package/dist/primitives/react-menubar.d.ts +115 -115
- package/dist/primitives/react-navigation-menu.d.ts +126 -126
- package/dist/primitives/react-popover.d.ts +85 -85
- package/dist/primitives/react-progress.d.ts +19 -19
- package/dist/primitives/react-radio-group.d.ts +58 -58
- package/dist/primitives/react-roving-focus.d.ts +49 -49
- package/dist/primitives/react-select.d.ts +137 -137
- package/dist/primitives/react-separator.d.ts +21 -21
- package/dist/primitives/react-slider.d.ts +75 -75
- package/dist/primitives/react-switch.d.ts +21 -21
- package/dist/primitives/react-tabs.d.ts +56 -56
- package/dist/primitives/react-toast.d.ts +120 -120
- package/dist/primitives/react-toggle-group.d.ts +75 -75
- package/dist/primitives/react-toggle.d.ts +24 -24
- package/dist/primitives/react-tooltip.d.ts +101 -101
- package/dist/primitives/react-visually-hidden.d.ts +22 -22
- package/dist/shell/app-command-palette.d.ts +2 -0
- package/dist/shell/app-command-palette.d.ts.map +1 -1
- package/dist/shell/app-command-palette.js +42 -155
- package/dist/shell/app-command-palette.js.map +1 -0
- package/dist/shell/bottom-navbar.js +1 -1
- package/dist/shell/bottom-navbar.js.map +1 -0
- package/dist/shell/command-registry.js.map +1 -0
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +194 -169
- package/dist/shell/notification-center.js.map +1 -0
- package/dist/shell/notification-preferences.js.map +1 -0
- package/dist/shell/sidebar.js.map +1 -0
- package/dist/shell/top-bar.js +1 -1
- package/dist/shell/top-bar.js.map +1 -0
- package/dist/tailwind/index.cjs +48 -1
- package/dist/tailwind/preset.d.ts.map +1 -1
- package/dist/tailwind/preset.js +48 -1
- package/dist/tailwind/preset.js.map +1 -0
- package/dist/tokens/index.css +4 -4
- package/dist/tokens/primitives.css +442 -442
- package/dist/tokens/semantic.css +742 -547
- package/dist/tokens/typography-semantic.css +123 -100
- package/dist/tokens/typography.css +422 -422
- package/dist/ui/accordion.js +13 -13
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.d.ts +6 -2
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +43 -42
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +3 -2
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +31 -5
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.js +1 -1
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +92 -67
- package/dist/ui/autocomplete.js.map +1 -0
- package/dist/ui/avatar.js +9 -9
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge-indicator.js.map +1 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/breadcrumb.js +1 -1
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button-processing.d.ts.map +1 -1
- package/dist/ui/button-processing.js +61 -40
- package/dist/ui/button-processing.js.map +1 -0
- package/dist/ui/button.js +8 -8
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/charts/bar-chart.d.ts.map +1 -1
- package/dist/ui/charts/chart-container.d.ts +2 -0
- package/dist/ui/charts/chart-container.d.ts.map +1 -1
- package/dist/ui/charts/index.js +88 -65
- package/dist/ui/charts/index.js.map +1 -0
- package/dist/ui/charts/line-chart.d.ts.map +1 -1
- package/dist/ui/chat/message-input.d.ts.map +1 -1
- package/dist/ui/chat/message-list.d.ts +1 -1
- package/dist/ui/chat/message-list.d.ts.map +1 -1
- package/dist/ui/chat/message.d.ts.map +1 -1
- package/dist/ui/chat/system-message.d.ts.map +1 -1
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +33 -28
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code.js.map +1 -0
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/color-input.d.ts.map +1 -1
- package/dist/ui/color-input.js +165 -163
- package/dist/ui/color-input.js.map +1 -0
- package/dist/ui/color-swatch.js.map +1 -0
- package/dist/ui/combobox.d.ts +7 -0
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +147 -113
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/container.js +1 -1
- package/dist/ui/container.js.map +1 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/data-table-body.js.map +1 -0
- package/dist/ui/data-table-bulk-actions.js +1 -1
- package/dist/ui/data-table-bulk-actions.js.map +1 -0
- package/dist/ui/data-table-card.js.map +1 -0
- package/dist/ui/data-table-context.js.map +1 -0
- package/dist/ui/data-table-header.js.map +1 -0
- package/dist/ui/data-table-pagination.js.map +1 -0
- package/dist/ui/data-table-toolbar.js.map +1 -0
- package/dist/ui/data-table.js +34 -31
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/devalok-grain.js.map +1 -0
- package/dist/ui/dialog.js +31 -35
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/file-upload.js +120 -120
- package/dist/ui/file-upload.js.map +1 -0
- package/dist/ui/form.d.ts +8 -0
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +14 -12
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/icon-button.js.map +1 -0
- package/dist/ui/icon-context.js.map +1 -0
- package/dist/ui/icon-group.js.map +1 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/index.d.ts +4 -4
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +82 -66
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input-otp.d.ts +12 -3
- package/dist/ui/input-otp.d.ts.map +1 -1
- package/dist/ui/input-otp.js +41 -27
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +16 -15
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js +19 -14
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/lib/check-tokens.d.ts +3 -0
- package/dist/ui/lib/check-tokens.d.ts.map +1 -0
- package/dist/ui/lib/date-utils.js.map +1 -0
- package/dist/ui/lib/motion.d.ts +15 -4
- package/dist/ui/lib/motion.d.ts.map +1 -1
- package/dist/ui/lib/motion.js +18 -9
- package/dist/ui/lib/motion.js.map +1 -0
- package/dist/ui/lib/utils.js.map +1 -0
- package/dist/ui/link.js +2 -2
- package/dist/ui/link.js.map +1 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/number-input.d.ts +16 -1
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js +79 -49
- package/dist/ui/number-input.js.map +1 -0
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/progress-ring.d.ts.map +1 -1
- package/dist/ui/progress-ring.js.map +1 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +27 -20
- package/dist/ui/radio.js.map +1 -0
- package/dist/ui/search-input.js.map +1 -0
- package/dist/ui/segmented-control.d.ts +1 -1
- package/dist/ui/segmented-control.d.ts.map +1 -1
- package/dist/ui/segmented-control.js +3 -1
- package/dist/ui/segmented-control.js.map +1 -0
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +54 -48
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts.map +1 -1
- package/dist/ui/separator.js +10 -7
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.js +29 -29
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.js +9 -9
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.d.ts +22 -3
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +57 -19
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/split-button.d.ts.map +1 -1
- package/dist/ui/split-button.js +77 -76
- package/dist/ui/split-button.js.map +1 -0
- package/dist/ui/stack.js.map +1 -0
- package/dist/ui/stat-card.js.map +1 -0
- package/dist/ui/status-dot.js.map +1 -0
- package/dist/ui/stepper.d.ts +10 -0
- package/dist/ui/stepper.d.ts.map +1 -1
- package/dist/ui/stepper.js +80 -75
- package/dist/ui/stepper.js.map +1 -0
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +26 -22
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +3 -1
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +68 -48
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/text.d.ts +1 -1
- package/dist/ui/text.d.ts.map +1 -1
- package/dist/ui/text.js +10 -2
- package/dist/ui/text.js.map +1 -0
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toast-registry.d.ts +8 -0
- package/dist/ui/toast-registry.d.ts.map +1 -0
- package/dist/ui/toast-registry.js +13 -0
- package/dist/ui/toast-registry.js.map +1 -0
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +141 -136
- package/dist/ui/toast.js.map +1 -0
- package/dist/ui/toaster.d.ts.map +1 -1
- package/dist/ui/toaster.js +15 -14
- package/dist/ui/toaster.js.map +1 -0
- package/dist/ui/toggle-group.d.ts +2 -0
- package/dist/ui/toggle-group.d.ts.map +1 -1
- package/dist/ui/toggle-group.js +23 -16
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.d.ts +2 -0
- package/dist/ui/toggle.d.ts.map +1 -1
- package/dist/ui/toggle.js +14 -6
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/visually-hidden.js.map +1 -0
- package/docs/components/_header.md +85 -85
- package/docs/components/composed/activity-feed.md +62 -62
- package/docs/components/composed/avatar-group.md +65 -65
- package/docs/components/composed/bulk-action-bar.md +40 -40
- package/docs/components/composed/command-palette.md +40 -40
- package/docs/components/composed/confirm-dialog.md +46 -46
- package/docs/components/composed/content-card.md +36 -36
- package/docs/components/composed/date-picker.md +130 -130
- package/docs/components/composed/deadline-indicator.md +27 -27
- package/docs/components/composed/emoji-picker.md +52 -52
- package/docs/components/composed/empty-state.md +53 -53
- package/docs/components/composed/error-boundary.md +29 -29
- package/docs/components/composed/file-preview.md +40 -40
- package/docs/components/composed/filter-bar.md +57 -57
- package/docs/components/composed/form-section.md +31 -31
- package/docs/components/composed/global-loading.md +27 -27
- package/docs/components/composed/inline-edit.md +35 -35
- package/docs/components/composed/loading-skeleton.md +51 -51
- package/docs/components/composed/markdown-viewer.md +27 -27
- package/docs/components/composed/master-detail.md +48 -48
- package/docs/components/composed/member-picker.md +35 -35
- package/docs/components/composed/multi-select-popover.md +62 -62
- package/docs/components/composed/page-header.md +41 -41
- package/docs/components/composed/page-skeletons.md +32 -32
- package/docs/components/composed/priority-indicator.md +32 -32
- package/docs/components/composed/responsive-overlay.md +34 -34
- package/docs/components/composed/rich-text-editor.md +82 -82
- package/docs/components/composed/schedule-view.md +39 -39
- package/docs/components/composed/simple-tooltip.md +33 -33
- package/docs/components/composed/status-badge.md +55 -55
- package/docs/components/shell/app-command-palette.md +44 -44
- package/docs/components/shell/bottom-navbar.md +52 -52
- package/docs/components/shell/command-registry.md +48 -48
- package/docs/components/shell/link-context.md +41 -41
- package/docs/components/shell/notification-center.md +63 -63
- package/docs/components/shell/notification-preferences.md +42 -42
- package/docs/components/shell/sidebar.md +92 -92
- package/docs/components/shell/top-bar.md +143 -143
- package/docs/components/ui/accordion.md +51 -51
- package/docs/components/ui/alert-dialog.md +61 -61
- package/docs/components/ui/alert.md +46 -46
- package/docs/components/ui/aspect-ratio.md +25 -25
- package/docs/components/ui/autocomplete.md +48 -48
- package/docs/components/ui/avatar.md +56 -56
- package/docs/components/ui/badge.md +83 -82
- package/docs/components/ui/banner.md +42 -42
- package/docs/components/ui/breadcrumb.md +37 -37
- package/docs/components/ui/button-group.md +41 -41
- package/docs/components/ui/button.md +94 -93
- package/docs/components/ui/card.md +52 -52
- package/docs/components/ui/charts.md +43 -43
- package/docs/components/ui/checkbox.md +36 -36
- package/docs/components/ui/chip.md +47 -47
- package/docs/components/ui/code.md +28 -28
- package/docs/components/ui/collapsible.md +40 -40
- package/docs/components/ui/color-input.md +91 -91
- package/docs/components/ui/color-swatch.md +25 -25
- package/docs/components/ui/combobox.md +54 -54
- package/docs/components/ui/container.md +26 -26
- package/docs/components/ui/context-menu.md +43 -43
- package/docs/components/ui/data-table-body.md +1 -1
- package/docs/components/ui/data-table-bulk-actions.md +1 -1
- package/docs/components/ui/data-table-card.md +1 -1
- package/docs/components/ui/data-table-context.md +1 -1
- package/docs/components/ui/data-table-header.md +1 -1
- package/docs/components/ui/data-table-pagination.md +1 -1
- package/docs/components/ui/data-table-toolbar.md +44 -44
- package/docs/components/ui/data-table.md +94 -94
- package/docs/components/ui/dialog.md +54 -54
- package/docs/components/ui/dropdown-menu.md +48 -48
- package/docs/components/ui/file-upload.md +41 -41
- package/docs/components/ui/form.md +51 -51
- package/docs/components/ui/hover-card.md +32 -32
- package/docs/components/ui/icon-button.md +40 -40
- package/docs/components/ui/input-otp.md +44 -44
- package/docs/components/ui/input.md +74 -74
- package/docs/components/ui/label.md +25 -25
- package/docs/components/ui/link.md +29 -29
- package/docs/components/ui/menubar.md +44 -44
- package/docs/components/ui/navigation-menu.md +46 -46
- package/docs/components/ui/number-input.md +44 -44
- package/docs/components/ui/pagination.md +48 -48
- package/docs/components/ui/popover.md +30 -30
- package/docs/components/ui/progress-ring.md +41 -41
- package/docs/components/ui/progress.md +34 -34
- package/docs/components/ui/radio.md +34 -34
- package/docs/components/ui/search-input.md +43 -43
- package/docs/components/ui/segmented-control.md +50 -50
- package/docs/components/ui/select.md +53 -53
- package/docs/components/ui/separator.md +32 -32
- package/docs/components/ui/sheet.md +47 -47
- package/docs/components/ui/sidebar.md +72 -72
- package/docs/components/ui/skeleton.md +77 -77
- package/docs/components/ui/slider.md +29 -29
- package/docs/components/ui/spinner.md +54 -54
- package/docs/components/ui/stack.md +39 -39
- package/docs/components/ui/stat-card.md +61 -61
- package/docs/components/ui/status-dot.md +26 -26
- package/docs/components/ui/stepper.md +49 -49
- package/docs/components/ui/switch.md +47 -47
- package/docs/components/ui/table.md +47 -47
- package/docs/components/ui/tabs.md +60 -60
- package/docs/components/ui/text.md +37 -37
- package/docs/components/ui/textarea.md +39 -39
- package/docs/components/ui/toast.md +65 -65
- package/docs/components/ui/toaster.md +47 -47
- package/docs/components/ui/toggle-group.md +43 -43
- package/docs/components/ui/toggle.md +37 -37
- package/docs/components/ui/tooltip.md +38 -38
- package/docs/components/ui/tree-view.md +65 -65
- package/docs/components/ui/visually-hidden.md +21 -21
- package/llms-full.txt +5266 -5264
- package/llms.txt +624 -580
- package/package.json +7 -8
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
# Skeleton
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/skeleton
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
### Skeleton (base)
|
|
9
|
-
variant: "rectangle" | "circle" | "text"
|
|
10
|
-
animation: "pulse" | "shimmer" | "none"
|
|
11
|
-
|
|
12
|
-
### SkeletonAvatar
|
|
13
|
-
size: "sm" | "md" | "lg" | "xl"
|
|
14
|
-
animation: "pulse" | "shimmer" | "none"
|
|
15
|
-
|
|
16
|
-
### SkeletonText
|
|
17
|
-
lines: number (default: 3)
|
|
18
|
-
lastLineWidth: "full" | "three-quarter" | "half" (default: "three-quarter")
|
|
19
|
-
spacing: "sm" | "md" (default: "md")
|
|
20
|
-
animation: "pulse" | "shimmer" | "none"
|
|
21
|
-
|
|
22
|
-
### SkeletonButton
|
|
23
|
-
size: "sm" | "md" | "lg"
|
|
24
|
-
width: "auto" | "full" | "icon"
|
|
25
|
-
animation: "pulse" | "shimmer" | "none"
|
|
26
|
-
|
|
27
|
-
### SkeletonInput
|
|
28
|
-
size: "sm" | "md" | "lg"
|
|
29
|
-
animation: "pulse" | "shimmer" | "none"
|
|
30
|
-
|
|
31
|
-
### SkeletonChart
|
|
32
|
-
bars: number (default: 7)
|
|
33
|
-
height: string (default: "h-40")
|
|
34
|
-
animation: "pulse" | "shimmer" | "none"
|
|
35
|
-
|
|
36
|
-
### SkeletonImage
|
|
37
|
-
width: string (default: "w-full")
|
|
38
|
-
height: string (default: "h-40")
|
|
39
|
-
animation: "pulse" | "shimmer" | "none"
|
|
40
|
-
|
|
41
|
-
### SkeletonGroup
|
|
42
|
-
label: string (default: "Loading") — accessible label for the loading state
|
|
43
|
-
|
|
44
|
-
## Defaults
|
|
45
|
-
Skeleton: variant="rectangle", animation="pulse"
|
|
46
|
-
SkeletonAvatar: size="md", animation="pulse"
|
|
47
|
-
SkeletonText: lines=3, lastLineWidth="three-quarter", spacing="md", animation="pulse"
|
|
48
|
-
SkeletonButton: size="md", width="auto", animation="pulse"
|
|
49
|
-
SkeletonInput: size="md", animation="pulse"
|
|
50
|
-
SkeletonChart: bars=7, height="h-40", animation="pulse"
|
|
51
|
-
SkeletonImage: width="w-full", height="h-40", animation="pulse"
|
|
52
|
-
SkeletonGroup: label="Loading"
|
|
53
|
-
|
|
54
|
-
## Example
|
|
55
|
-
```jsx
|
|
56
|
-
<Skeleton variant="text" className="w-3/4" />
|
|
57
|
-
<Skeleton variant="circle" className="h-12 w-12" />
|
|
58
|
-
<Skeleton variant="rectangle" animation="shimmer" className="h-48 w-full" />
|
|
59
|
-
|
|
60
|
-
<SkeletonGroup label="Loading user profile">
|
|
61
|
-
<SkeletonAvatar size="lg" />
|
|
62
|
-
<SkeletonText lines={2} />
|
|
63
|
-
<SkeletonButton />
|
|
64
|
-
</SkeletonGroup>
|
|
65
|
-
|
|
66
|
-
<SkeletonChart bars={5} height="h-32" />
|
|
67
|
-
<SkeletonImage height="h-64" />
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Gotchas
|
|
71
|
-
- shimmer respects prefers-reduced-motion
|
|
72
|
-
- SkeletonGroup adds role="status" and aria-busy="true" — wrap multiple skeletons for a11y
|
|
73
|
-
- All sub-components accept className for custom sizing
|
|
74
|
-
|
|
75
|
-
## Changes
|
|
76
|
-
### v0.1.0
|
|
77
|
-
- **Added** Initial release with `shape` variants (text, circular, rectangular) and shimmer animation
|
|
1
|
+
# Skeleton
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/skeleton
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
### Skeleton (base)
|
|
9
|
+
variant: "rectangle" | "circle" | "text"
|
|
10
|
+
animation: "pulse" | "shimmer" | "none"
|
|
11
|
+
|
|
12
|
+
### SkeletonAvatar
|
|
13
|
+
size: "sm" | "md" | "lg" | "xl"
|
|
14
|
+
animation: "pulse" | "shimmer" | "none"
|
|
15
|
+
|
|
16
|
+
### SkeletonText
|
|
17
|
+
lines: number (default: 3)
|
|
18
|
+
lastLineWidth: "full" | "three-quarter" | "half" (default: "three-quarter")
|
|
19
|
+
spacing: "sm" | "md" (default: "md")
|
|
20
|
+
animation: "pulse" | "shimmer" | "none"
|
|
21
|
+
|
|
22
|
+
### SkeletonButton
|
|
23
|
+
size: "sm" | "md" | "lg"
|
|
24
|
+
width: "auto" | "full" | "icon"
|
|
25
|
+
animation: "pulse" | "shimmer" | "none"
|
|
26
|
+
|
|
27
|
+
### SkeletonInput
|
|
28
|
+
size: "sm" | "md" | "lg"
|
|
29
|
+
animation: "pulse" | "shimmer" | "none"
|
|
30
|
+
|
|
31
|
+
### SkeletonChart
|
|
32
|
+
bars: number (default: 7)
|
|
33
|
+
height: string (default: "h-40")
|
|
34
|
+
animation: "pulse" | "shimmer" | "none"
|
|
35
|
+
|
|
36
|
+
### SkeletonImage
|
|
37
|
+
width: string (default: "w-full")
|
|
38
|
+
height: string (default: "h-40")
|
|
39
|
+
animation: "pulse" | "shimmer" | "none"
|
|
40
|
+
|
|
41
|
+
### SkeletonGroup
|
|
42
|
+
label: string (default: "Loading") — accessible label for the loading state
|
|
43
|
+
|
|
44
|
+
## Defaults
|
|
45
|
+
Skeleton: variant="rectangle", animation="pulse"
|
|
46
|
+
SkeletonAvatar: size="md", animation="pulse"
|
|
47
|
+
SkeletonText: lines=3, lastLineWidth="three-quarter", spacing="md", animation="pulse"
|
|
48
|
+
SkeletonButton: size="md", width="auto", animation="pulse"
|
|
49
|
+
SkeletonInput: size="md", animation="pulse"
|
|
50
|
+
SkeletonChart: bars=7, height="h-40", animation="pulse"
|
|
51
|
+
SkeletonImage: width="w-full", height="h-40", animation="pulse"
|
|
52
|
+
SkeletonGroup: label="Loading"
|
|
53
|
+
|
|
54
|
+
## Example
|
|
55
|
+
```jsx
|
|
56
|
+
<Skeleton variant="text" className="w-3/4" />
|
|
57
|
+
<Skeleton variant="circle" className="h-12 w-12" />
|
|
58
|
+
<Skeleton variant="rectangle" animation="shimmer" className="h-48 w-full" />
|
|
59
|
+
|
|
60
|
+
<SkeletonGroup label="Loading user profile">
|
|
61
|
+
<SkeletonAvatar size="lg" />
|
|
62
|
+
<SkeletonText lines={2} />
|
|
63
|
+
<SkeletonButton />
|
|
64
|
+
</SkeletonGroup>
|
|
65
|
+
|
|
66
|
+
<SkeletonChart bars={5} height="h-32" />
|
|
67
|
+
<SkeletonImage height="h-64" />
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Gotchas
|
|
71
|
+
- shimmer respects prefers-reduced-motion
|
|
72
|
+
- SkeletonGroup adds role="status" and aria-busy="true" — wrap multiple skeletons for a11y
|
|
73
|
+
- All sub-components accept className for custom sizing
|
|
74
|
+
|
|
75
|
+
## Changes
|
|
76
|
+
### v0.1.0
|
|
77
|
+
- **Added** Initial release with `shape` variants (text, circular, rectangular) and shimmer animation
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# Slider
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/slider
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
Standard Radix Slider props (value, onValueChange, defaultValue, min, max, step, aria-label)
|
|
9
|
-
|
|
10
|
-
## Example
|
|
11
|
-
```jsx
|
|
12
|
-
<Slider defaultValue={[50]} max={100} step={1} aria-label="Volume" />
|
|
13
|
-
<Slider defaultValue={[25, 75]} max={100} step={1} /> {/* range slider */}
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Gotchas
|
|
17
|
-
- value is number[] (array), not a single number
|
|
18
|
-
- Multi-thumb: Pass array `defaultValue={[25, 75]}` for range sliders — renders one thumb per value
|
|
19
|
-
|
|
20
|
-
## Changes
|
|
21
|
-
### v0.18.0
|
|
22
|
-
- **Fixed** Multi-thumb support added
|
|
23
|
-
|
|
24
|
-
### v0.3.0
|
|
25
|
-
- **Added** `SliderProps` type export
|
|
26
|
-
|
|
27
|
-
### v0.1.0
|
|
28
|
-
- **Added** Initial release
|
|
29
|
-
- **Fixed** `aria-label` now forwarded to thumb element (was only on root container)
|
|
1
|
+
# Slider
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/slider
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
Standard Radix Slider props (value, onValueChange, defaultValue, min, max, step, aria-label)
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
```jsx
|
|
12
|
+
<Slider defaultValue={[50]} max={100} step={1} aria-label="Volume" />
|
|
13
|
+
<Slider defaultValue={[25, 75]} max={100} step={1} /> {/* range slider */}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Gotchas
|
|
17
|
+
- value is number[] (array), not a single number
|
|
18
|
+
- Multi-thumb: Pass array `defaultValue={[25, 75]}` for range sliders — renders one thumb per value
|
|
19
|
+
|
|
20
|
+
## Changes
|
|
21
|
+
### v0.18.0
|
|
22
|
+
- **Fixed** Multi-thumb support added
|
|
23
|
+
|
|
24
|
+
### v0.3.0
|
|
25
|
+
- **Added** `SliderProps` type export
|
|
26
|
+
|
|
27
|
+
### v0.1.0
|
|
28
|
+
- **Added** Initial release
|
|
29
|
+
- **Fixed** `aria-label` now forwarded to thumb element (was only on root container)
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# Spinner
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/spinner
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
size: "sm" | "md" | "lg"
|
|
9
|
-
state: "spinning" | "success" | "error"
|
|
10
|
-
variant: "filled" | "bare"
|
|
11
|
-
delay: number (ms — render delay to avoid flicker on fast operations)
|
|
12
|
-
onComplete: () => void (callback after success/error state transition)
|
|
13
|
-
className: string
|
|
14
|
-
|
|
15
|
-
## Defaults
|
|
16
|
-
size: "md"
|
|
17
|
-
state: "spinning"
|
|
18
|
-
variant: "filled"
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
```jsx
|
|
22
|
-
<Spinner size="lg" />
|
|
23
|
-
<Spinner state="success" /> {/* green checkmark */}
|
|
24
|
-
<Spinner variant="bare" /> {/* uses currentColor, for embedding in buttons */}
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Gotchas
|
|
28
|
-
- Renders role="status" with sr-only "Loading..." text — no need for aria-label
|
|
29
|
-
- Button has built-in loading prop — prefer that over manual Spinner composition
|
|
30
|
-
- `bare` variant inherits text color — useful inside buttons and toolbars
|
|
31
|
-
- `delay` prevents flicker: spinner only appears after delay ms (good for fast API calls)
|
|
32
|
-
- No longer server-safe as of v0.18.0 (uses Framer Motion)
|
|
33
|
-
|
|
34
|
-
## Changes
|
|
35
|
-
### v0.29.0
|
|
36
|
-
- **Changed** `bare` variant spinning state now uses `currentColor` instead of `var(--color-accent-9)` — inherits text color from parent for seamless embedding in buttons/toolbars
|
|
37
|
-
|
|
38
|
-
### v0.18.0
|
|
39
|
-
- **Changed** (BREAKING) Complete rewrite with Framer Motion arc animation and state transitions
|
|
40
|
-
- **Added** `state` prop: 'spinning' | 'success' | 'error'
|
|
41
|
-
- **Added** `variant` prop: 'filled' | 'bare'
|
|
42
|
-
- **Added** `delay` prop for flicker prevention
|
|
43
|
-
- **Added** `onComplete` callback for state transitions
|
|
44
|
-
- **Changed** No longer server-safe (Framer Motion dependency)
|
|
45
|
-
- **Fixed** Fade out track circle in bare mode, use larger icons for bare variant
|
|
46
|
-
|
|
47
|
-
### v0.3.0
|
|
48
|
-
- **Fixed** Animations respect `prefers-reduced-motion`
|
|
49
|
-
|
|
50
|
-
### v0.2.0
|
|
51
|
-
- **Added** Identified as server-safe (no longer true as of v0.18.0)
|
|
52
|
-
|
|
53
|
-
### v0.1.0
|
|
54
|
-
- **Added** Initial release
|
|
1
|
+
# Spinner
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/spinner
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
size: "sm" | "md" | "lg"
|
|
9
|
+
state: "spinning" | "success" | "error"
|
|
10
|
+
variant: "filled" | "bare"
|
|
11
|
+
delay: number (ms — render delay to avoid flicker on fast operations)
|
|
12
|
+
onComplete: () => void (callback after success/error state transition)
|
|
13
|
+
className: string
|
|
14
|
+
|
|
15
|
+
## Defaults
|
|
16
|
+
size: "md"
|
|
17
|
+
state: "spinning"
|
|
18
|
+
variant: "filled"
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
```jsx
|
|
22
|
+
<Spinner size="lg" />
|
|
23
|
+
<Spinner state="success" /> {/* green checkmark */}
|
|
24
|
+
<Spinner variant="bare" /> {/* uses currentColor, for embedding in buttons */}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Gotchas
|
|
28
|
+
- Renders role="status" with sr-only "Loading..." text — no need for aria-label
|
|
29
|
+
- Button has built-in loading prop — prefer that over manual Spinner composition
|
|
30
|
+
- `bare` variant inherits text color — useful inside buttons and toolbars
|
|
31
|
+
- `delay` prevents flicker: spinner only appears after delay ms (good for fast API calls)
|
|
32
|
+
- No longer server-safe as of v0.18.0 (uses Framer Motion)
|
|
33
|
+
|
|
34
|
+
## Changes
|
|
35
|
+
### v0.29.0
|
|
36
|
+
- **Changed** `bare` variant spinning state now uses `currentColor` instead of `var(--color-accent-9)` — inherits text color from parent for seamless embedding in buttons/toolbars
|
|
37
|
+
|
|
38
|
+
### v0.18.0
|
|
39
|
+
- **Changed** (BREAKING) Complete rewrite with Framer Motion arc animation and state transitions
|
|
40
|
+
- **Added** `state` prop: 'spinning' | 'success' | 'error'
|
|
41
|
+
- **Added** `variant` prop: 'filled' | 'bare'
|
|
42
|
+
- **Added** `delay` prop for flicker prevention
|
|
43
|
+
- **Added** `onComplete` callback for state transitions
|
|
44
|
+
- **Changed** No longer server-safe (Framer Motion dependency)
|
|
45
|
+
- **Fixed** Fade out track circle in bare mode, use larger icons for bare variant
|
|
46
|
+
|
|
47
|
+
### v0.3.0
|
|
48
|
+
- **Fixed** Animations respect `prefers-reduced-motion`
|
|
49
|
+
|
|
50
|
+
### v0.2.0
|
|
51
|
+
- **Added** Identified as server-safe (no longer true as of v0.18.0)
|
|
52
|
+
|
|
53
|
+
### v0.1.0
|
|
54
|
+
- **Added** Initial release
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
# Stack
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/stack
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
direction: "vertical" | "horizontal" | "row" | "column"
|
|
9
|
-
gap: SpacingToken | number — tokens: "ds-01".."ds-13", or numbers 0-13
|
|
10
|
-
align: "start" | "center" | "end" | "stretch" | "baseline"
|
|
11
|
-
justify: "start" | "center" | "end" | "between" | "around" | "evenly"
|
|
12
|
-
wrap: boolean
|
|
13
|
-
as: ElementType (default: "div")
|
|
14
|
-
|
|
15
|
-
## Defaults
|
|
16
|
-
direction: "vertical"
|
|
17
|
-
|
|
18
|
-
## Example
|
|
19
|
-
```jsx
|
|
20
|
-
<Stack direction="horizontal" gap="ds-04" align="center">
|
|
21
|
-
<Avatar size="sm" />
|
|
22
|
-
<Text variant="body-md">User Name</Text>
|
|
23
|
-
</Stack>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Gotchas
|
|
27
|
-
- "row" and "column" are aliases for "horizontal" and "vertical"
|
|
28
|
-
- gap accepts both token strings and numeric values
|
|
29
|
-
|
|
30
|
-
## Changes
|
|
31
|
-
### v0.2.0
|
|
32
|
-
- **Added** `direction` prop now accepts `"row"` / `"column"` as aliases for `"horizontal"` / `"vertical"`
|
|
33
|
-
- **Added** `gap` prop now accepts numeric values (e.g., `gap={4}` -> `gap-ds-04`) in addition to token strings
|
|
34
|
-
|
|
35
|
-
### v0.1.1
|
|
36
|
-
- **Fixed** Replaced dynamic `gap-${N}` with static lookup map (Tailwind JIT safety)
|
|
37
|
-
|
|
38
|
-
### v0.1.0
|
|
39
|
-
- **Added** Initial release
|
|
1
|
+
# Stack
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/stack
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
direction: "vertical" | "horizontal" | "row" | "column"
|
|
9
|
+
gap: SpacingToken | number — tokens: "ds-01".."ds-13", or numbers 0-13
|
|
10
|
+
align: "start" | "center" | "end" | "stretch" | "baseline"
|
|
11
|
+
justify: "start" | "center" | "end" | "between" | "around" | "evenly"
|
|
12
|
+
wrap: boolean
|
|
13
|
+
as: ElementType (default: "div")
|
|
14
|
+
|
|
15
|
+
## Defaults
|
|
16
|
+
direction: "vertical"
|
|
17
|
+
|
|
18
|
+
## Example
|
|
19
|
+
```jsx
|
|
20
|
+
<Stack direction="horizontal" gap="ds-04" align="center">
|
|
21
|
+
<Avatar size="sm" />
|
|
22
|
+
<Text variant="body-md">User Name</Text>
|
|
23
|
+
</Stack>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Gotchas
|
|
27
|
+
- "row" and "column" are aliases for "horizontal" and "vertical"
|
|
28
|
+
- gap accepts both token strings and numeric values
|
|
29
|
+
|
|
30
|
+
## Changes
|
|
31
|
+
### v0.2.0
|
|
32
|
+
- **Added** `direction` prop now accepts `"row"` / `"column"` as aliases for `"horizontal"` / `"vertical"`
|
|
33
|
+
- **Added** `gap` prop now accepts numeric values (e.g., `gap={4}` -> `gap-ds-04`) in addition to token strings
|
|
34
|
+
|
|
35
|
+
### v0.1.1
|
|
36
|
+
- **Fixed** Replaced dynamic `gap-${N}` with static lookup map (Tailwind JIT safety)
|
|
37
|
+
|
|
38
|
+
### v0.1.0
|
|
39
|
+
- **Added** Initial release
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
# StatCard
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/stat-card
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
label: string (heading text)
|
|
9
|
-
title: string (alias for label)
|
|
10
|
-
value: string | number (REQUIRED)
|
|
11
|
-
prefix: string (before value, e.g. "$")
|
|
12
|
-
suffix: string (after value, e.g. "users")
|
|
13
|
-
delta: { value: string, direction: "up" | "down" | "neutral" }
|
|
14
|
-
icon: ReactNode | ComponentType<{ className?: string }>
|
|
15
|
-
loading: boolean (renders skeleton)
|
|
16
|
-
comparisonLabel: string (shown after delta, e.g. "vs last month")
|
|
17
|
-
secondaryLabel: string (below main value, e.g. "of $50,000 target")
|
|
18
|
-
progress: number (0-100, renders thin progress bar below value)
|
|
19
|
-
accent: "default" | "success" | "warning" | "error" | "info" (left border color)
|
|
20
|
-
sparkline: number[] (renders mini SVG line chart)
|
|
21
|
-
onClick: () => void (makes card clickable with hover state)
|
|
22
|
-
href: string (makes card a link via LinkContext)
|
|
23
|
-
footer: ReactNode (below card body, e.g. "View details →")
|
|
24
|
-
|
|
25
|
-
## Defaults
|
|
26
|
-
none (all props are optional except value)
|
|
27
|
-
|
|
28
|
-
## Example
|
|
29
|
-
```jsx
|
|
30
|
-
<StatCard
|
|
31
|
-
label="Revenue"
|
|
32
|
-
value="$48,200"
|
|
33
|
-
prefix="$"
|
|
34
|
-
delta={{ value: "+12%", direction: "up" }}
|
|
35
|
-
comparisonLabel="vs last month"
|
|
36
|
-
icon={<IconCurrencyDollar />}
|
|
37
|
-
accent="success"
|
|
38
|
-
/>
|
|
39
|
-
|
|
40
|
-
<StatCard
|
|
41
|
-
label="Storage"
|
|
42
|
-
value="4.2 GB"
|
|
43
|
-
secondaryLabel="of 10 GB"
|
|
44
|
-
progress={42}
|
|
45
|
-
sparkline={[10, 25, 18, 30, 42]}
|
|
46
|
-
footer={<a href="/storage">Manage storage →</a>}
|
|
47
|
-
/>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Gotchas
|
|
51
|
-
- delta.direction "up" = green, "down" = red, "neutral" = grey
|
|
52
|
-
- `label` and `title` are aliases — use either, not both
|
|
53
|
-
- `onClick` and `href` are mutually exclusive — href takes precedence
|
|
54
|
-
- `sparkline` needs at least 2 data points to render
|
|
55
|
-
|
|
56
|
-
## Changes
|
|
57
|
-
### v0.2.0
|
|
58
|
-
- **Added** `icon` prop now accepts `React.ComponentType` (e.g., `icon={IconBolt}`) in addition to `ReactNode`
|
|
59
|
-
|
|
60
|
-
### v0.1.0
|
|
61
|
-
- **Added** Initial release
|
|
1
|
+
# StatCard
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/stat-card
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
label: string (heading text)
|
|
9
|
+
title: string (alias for label)
|
|
10
|
+
value: string | number (REQUIRED)
|
|
11
|
+
prefix: string (before value, e.g. "$")
|
|
12
|
+
suffix: string (after value, e.g. "users")
|
|
13
|
+
delta: { value: string, direction: "up" | "down" | "neutral" }
|
|
14
|
+
icon: ReactNode | ComponentType<{ className?: string }>
|
|
15
|
+
loading: boolean (renders skeleton)
|
|
16
|
+
comparisonLabel: string (shown after delta, e.g. "vs last month")
|
|
17
|
+
secondaryLabel: string (below main value, e.g. "of $50,000 target")
|
|
18
|
+
progress: number (0-100, renders thin progress bar below value)
|
|
19
|
+
accent: "default" | "success" | "warning" | "error" | "info" (left border color)
|
|
20
|
+
sparkline: number[] (renders mini SVG line chart)
|
|
21
|
+
onClick: () => void (makes card clickable with hover state)
|
|
22
|
+
href: string (makes card a link via LinkContext)
|
|
23
|
+
footer: ReactNode (below card body, e.g. "View details →")
|
|
24
|
+
|
|
25
|
+
## Defaults
|
|
26
|
+
none (all props are optional except value)
|
|
27
|
+
|
|
28
|
+
## Example
|
|
29
|
+
```jsx
|
|
30
|
+
<StatCard
|
|
31
|
+
label="Revenue"
|
|
32
|
+
value="$48,200"
|
|
33
|
+
prefix="$"
|
|
34
|
+
delta={{ value: "+12%", direction: "up" }}
|
|
35
|
+
comparisonLabel="vs last month"
|
|
36
|
+
icon={<IconCurrencyDollar />}
|
|
37
|
+
accent="success"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
<StatCard
|
|
41
|
+
label="Storage"
|
|
42
|
+
value="4.2 GB"
|
|
43
|
+
secondaryLabel="of 10 GB"
|
|
44
|
+
progress={42}
|
|
45
|
+
sparkline={[10, 25, 18, 30, 42]}
|
|
46
|
+
footer={<a href="/storage">Manage storage →</a>}
|
|
47
|
+
/>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Gotchas
|
|
51
|
+
- delta.direction "up" = green, "down" = red, "neutral" = grey
|
|
52
|
+
- `label` and `title` are aliases — use either, not both
|
|
53
|
+
- `onClick` and `href` are mutually exclusive — href takes precedence
|
|
54
|
+
- `sparkline` needs at least 2 data points to render
|
|
55
|
+
|
|
56
|
+
## Changes
|
|
57
|
+
### v0.2.0
|
|
58
|
+
- **Added** `icon` prop now accepts `React.ComponentType` (e.g., `icon={IconBolt}`) in addition to `ReactNode`
|
|
59
|
+
|
|
60
|
+
### v0.1.0
|
|
61
|
+
- **Added** Initial release
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
# StatusDot
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/status-dot
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
status: "healthy" | "warning" | "critical" | "neutral" | "inactive"
|
|
9
|
-
size: "sm" | "md" | "lg"
|
|
10
|
-
pulse: boolean (ping animation; defaults to true for "healthy", false for others)
|
|
11
|
-
label: string (inline text rendered after the dot)
|
|
12
|
-
labelClassName: string (extra classes on the label span)
|
|
13
|
-
|
|
14
|
-
## Defaults
|
|
15
|
-
size="md", pulse={status === "healthy"}
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
```jsx
|
|
19
|
-
<StatusDot status="healthy" />
|
|
20
|
-
<StatusDot status="critical" label="Service down" pulse />
|
|
21
|
-
<StatusDot status="warning" size="lg" label="Elevated load" />
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Gotchas
|
|
25
|
-
- The `pulse` prop auto-enables for "healthy" status — pass `pulse={false}` to suppress
|
|
26
|
-
- Status type is exported as `StatusDotStatus` if you need it in consumer code
|
|
1
|
+
# StatusDot
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/status-dot
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
status: "healthy" | "warning" | "critical" | "neutral" | "inactive"
|
|
9
|
+
size: "sm" | "md" | "lg"
|
|
10
|
+
pulse: boolean (ping animation; defaults to true for "healthy", false for others)
|
|
11
|
+
label: string (inline text rendered after the dot)
|
|
12
|
+
labelClassName: string (extra classes on the label span)
|
|
13
|
+
|
|
14
|
+
## Defaults
|
|
15
|
+
size="md", pulse={status === "healthy"}
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
```jsx
|
|
19
|
+
<StatusDot status="healthy" />
|
|
20
|
+
<StatusDot status="critical" label="Service down" pulse />
|
|
21
|
+
<StatusDot status="warning" size="lg" label="Elevated load" />
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Gotchas
|
|
25
|
+
- The `pulse` prop auto-enables for "healthy" status — pass `pulse={false}` to suppress
|
|
26
|
+
- Status type is exported as `StatusDotStatus` if you need it in consumer code
|