@devalok/shilp-sutra 0.34.1 → 0.36.0
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 +650 -649
- 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.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 +2 -0
- 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 +7 -7
- 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,62 +1,62 @@
|
|
|
1
|
-
# ActivityFeed
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/activity-feed
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
items: ActivityItem[] (REQUIRED) — { id, actor?: { name, image? }, action: string|ReactNode, timestamp: Date|string, icon?, color?: 'default'|'success'|'warning'|'error'|'info', detail?: ReactNode }
|
|
9
|
-
onLoadMore?: () => void — "Load more" button callback
|
|
10
|
-
loading: boolean — skeleton shimmer
|
|
11
|
-
hasMore?: boolean — shows "Load more" button
|
|
12
|
-
emptyState?: ReactNode — empty state content
|
|
13
|
-
compact: boolean — tighter spacing, no avatars, smaller text
|
|
14
|
-
maxInitialItems: number — truncate with "Show all (N)" toggle
|
|
15
|
-
groupBy?: 'time' | 'none' — group items by time buckets (today, yesterday, this week, older)
|
|
16
|
-
groupLabels?: GroupLabels — custom labels for time groups: { today?, yesterday?, thisWeek?, older? }
|
|
17
|
-
renderItem?: (item: ActivityItem, index: number) => ReactNode | undefined — custom renderer per item; return undefined to fall back to default ActivityEntry
|
|
18
|
-
|
|
19
|
-
## Defaults
|
|
20
|
-
loading=false, compact=false, hasMore=false, groupBy='none'
|
|
21
|
-
|
|
22
|
-
## Example
|
|
23
|
-
```jsx
|
|
24
|
-
<ActivityFeed
|
|
25
|
-
items={[
|
|
26
|
-
{ id: '1', actor: { name: 'Alice' }, action: 'completed task', timestamp: new Date(), color: 'success' },
|
|
27
|
-
{ id: '2', action: 'System backup completed', timestamp: new Date(), detail: <pre>Details...</pre> },
|
|
28
|
-
]}
|
|
29
|
-
hasMore
|
|
30
|
-
onLoadMore={() => fetchMore()}
|
|
31
|
-
compact
|
|
32
|
-
/>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Exported Utilities
|
|
36
|
-
groupItemsByTime(items: ActivityItem[], labels?: GroupLabels) — pure function that buckets items into time groups; returns { label: string, items: ActivityItem[] }[]
|
|
37
|
-
|
|
38
|
-
## Gotchas
|
|
39
|
-
- `items` is required — passing an empty array renders the `emptyState` content
|
|
40
|
-
- `color` on each item controls the timeline dot color
|
|
41
|
-
- `actor.image` is optional — falls back to initials from `actor.name`
|
|
42
|
-
- `maxInitialItems` truncates with a "Show all (N)" toggle button
|
|
43
|
-
- `maxInitialItems` applies to the flat list BEFORE grouping — items are sliced first, then grouped
|
|
44
|
-
- Empty time groups are automatically skipped
|
|
45
|
-
- `renderItem` receives the item and index; return `undefined` to use the default ActivityEntry rendering
|
|
46
|
-
- Custom `renderItem` content is wrapped in the same dot + layout container as default entries for consistent vertical rhythm
|
|
47
|
-
|
|
48
|
-
## Changes
|
|
49
|
-
### v0.29.0
|
|
50
|
-
- **Added** `renderItem` prop — custom render function per item; return ReactNode for custom rendering, return `undefined` to fall back to default ActivityEntry
|
|
51
|
-
- **Added** Internal `CustomEntry` wrapper that keeps dot + layout consistent with default entries
|
|
52
|
-
|
|
53
|
-
### v0.20.0
|
|
54
|
-
- **Added** `groupBy="time"` prop — groups items into Today, Yesterday, This Week, Older with section headers
|
|
55
|
-
- **Added** `groupLabels` prop for custom group label text
|
|
56
|
-
- **Added** `groupItemsByTime()` exported pure utility function
|
|
57
|
-
|
|
58
|
-
### v0.18.0
|
|
59
|
-
- **Fixed** `bg-accent-9` changed to `bg-info-9` (info color, not accent)
|
|
60
|
-
|
|
61
|
-
### v0.16.0
|
|
62
|
-
- **Added** Initial release — vertical timeline with colored dots, actor avatars, expandable detail, compact mode, load more, maxInitialItems truncation
|
|
1
|
+
# ActivityFeed
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/activity-feed
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
items: ActivityItem[] (REQUIRED) — { id, actor?: { name, image? }, action: string|ReactNode, timestamp: Date|string, icon?, color?: 'default'|'success'|'warning'|'error'|'info', detail?: ReactNode }
|
|
9
|
+
onLoadMore?: () => void — "Load more" button callback
|
|
10
|
+
loading: boolean — skeleton shimmer
|
|
11
|
+
hasMore?: boolean — shows "Load more" button
|
|
12
|
+
emptyState?: ReactNode — empty state content
|
|
13
|
+
compact: boolean — tighter spacing, no avatars, smaller text
|
|
14
|
+
maxInitialItems: number — truncate with "Show all (N)" toggle
|
|
15
|
+
groupBy?: 'time' | 'none' — group items by time buckets (today, yesterday, this week, older)
|
|
16
|
+
groupLabels?: GroupLabels — custom labels for time groups: { today?, yesterday?, thisWeek?, older? }
|
|
17
|
+
renderItem?: (item: ActivityItem, index: number) => ReactNode | undefined — custom renderer per item; return undefined to fall back to default ActivityEntry
|
|
18
|
+
|
|
19
|
+
## Defaults
|
|
20
|
+
loading=false, compact=false, hasMore=false, groupBy='none'
|
|
21
|
+
|
|
22
|
+
## Example
|
|
23
|
+
```jsx
|
|
24
|
+
<ActivityFeed
|
|
25
|
+
items={[
|
|
26
|
+
{ id: '1', actor: { name: 'Alice' }, action: 'completed task', timestamp: new Date(), color: 'success' },
|
|
27
|
+
{ id: '2', action: 'System backup completed', timestamp: new Date(), detail: <pre>Details...</pre> },
|
|
28
|
+
]}
|
|
29
|
+
hasMore
|
|
30
|
+
onLoadMore={() => fetchMore()}
|
|
31
|
+
compact
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Exported Utilities
|
|
36
|
+
groupItemsByTime(items: ActivityItem[], labels?: GroupLabels) — pure function that buckets items into time groups; returns { label: string, items: ActivityItem[] }[]
|
|
37
|
+
|
|
38
|
+
## Gotchas
|
|
39
|
+
- `items` is required — passing an empty array renders the `emptyState` content
|
|
40
|
+
- `color` on each item controls the timeline dot color
|
|
41
|
+
- `actor.image` is optional — falls back to initials from `actor.name`
|
|
42
|
+
- `maxInitialItems` truncates with a "Show all (N)" toggle button
|
|
43
|
+
- `maxInitialItems` applies to the flat list BEFORE grouping — items are sliced first, then grouped
|
|
44
|
+
- Empty time groups are automatically skipped
|
|
45
|
+
- `renderItem` receives the item and index; return `undefined` to use the default ActivityEntry rendering
|
|
46
|
+
- Custom `renderItem` content is wrapped in the same dot + layout container as default entries for consistent vertical rhythm
|
|
47
|
+
|
|
48
|
+
## Changes
|
|
49
|
+
### v0.29.0
|
|
50
|
+
- **Added** `renderItem` prop — custom render function per item; return ReactNode for custom rendering, return `undefined` to fall back to default ActivityEntry
|
|
51
|
+
- **Added** Internal `CustomEntry` wrapper that keeps dot + layout consistent with default entries
|
|
52
|
+
|
|
53
|
+
### v0.20.0
|
|
54
|
+
- **Added** `groupBy="time"` prop — groups items into Today, Yesterday, This Week, Older with section headers
|
|
55
|
+
- **Added** `groupLabels` prop for custom group label text
|
|
56
|
+
- **Added** `groupItemsByTime()` exported pure utility function
|
|
57
|
+
|
|
58
|
+
### v0.18.0
|
|
59
|
+
- **Fixed** `bg-accent-9` changed to `bg-info-9` (info color, not accent)
|
|
60
|
+
|
|
61
|
+
### v0.16.0
|
|
62
|
+
- **Added** Initial release — vertical timeline with colored dots, actor avatars, expandable detail, compact mode, load more, maxInitialItems truncation
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# AvatarGroup
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/avatar-group
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
users: AvatarUser[] (REQUIRED) — { name: string, image?: string | null, ring?: AvatarRing }
|
|
9
|
-
max: number (default: 4, overflow shows "+N" badge)
|
|
10
|
-
size: "xs" | "sm" | "md" | "lg" | "xl"
|
|
11
|
-
showTooltip: boolean (default: true)
|
|
12
|
-
borderColor: "surface-base" | "surface-raised" (default: "surface-raised") — overlap border color
|
|
13
|
-
onOverflowClick: () => void — makes the "+N" badge interactive (button)
|
|
14
|
-
renderAvatar: (user: AvatarUser, index: number) => ReactNode — custom avatar render
|
|
15
|
-
expandDirection: "left" | "right" (default: "right") — direction group expands on hover
|
|
16
|
-
expandAmount: "compact" | "default" | "wide" (default: "default") — how far group spreads
|
|
17
|
-
|
|
18
|
-
## AvatarUser Type
|
|
19
|
-
name: string (REQUIRED)
|
|
20
|
-
image?: string | null
|
|
21
|
-
ring?: "none" | "lead" | "admin" | "client" — role ring per user in group
|
|
22
|
-
indicator?: "lead" | "admin" | ReactNode — small dot indicator at top-right of avatar
|
|
23
|
-
|
|
24
|
-
## Defaults
|
|
25
|
-
size="md", max=4, showTooltip=true, borderColor="surface-raised", expandDirection="right", expandAmount="default"
|
|
26
|
-
|
|
27
|
-
## Example
|
|
28
|
-
```jsx
|
|
29
|
-
<AvatarGroup
|
|
30
|
-
users={[
|
|
31
|
-
{ name: 'Alice', image: '/alice.jpg', ring: 'lead' },
|
|
32
|
-
{ name: 'Bob', ring: 'admin' },
|
|
33
|
-
]}
|
|
34
|
-
max={3}
|
|
35
|
-
size="md"
|
|
36
|
-
borderColor="surface-base"
|
|
37
|
-
onOverflowClick={() => setShowAll(true)}
|
|
38
|
-
/>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Gotchas
|
|
42
|
-
- Wraps TooltipProvider internally — no need to add one yourself
|
|
43
|
-
- Users beyond `max` are collapsed into a "+N" overflow badge
|
|
44
|
-
- Missing `image` falls back to initials derived from `name`
|
|
45
|
-
- Hover expand animation uses CSS `group-hover` — parent must not clip overflow
|
|
46
|
-
- `borderColor` should match the surface the group sits on (`surface-base` on page bg, `surface-raised` on cards)
|
|
47
|
-
- `renderAvatar` wrapper is positioning-only — pass `size` directly to your Avatar (do NOT use `className="h-full w-full"`)
|
|
48
|
-
|
|
49
|
-
## Changes
|
|
50
|
-
### v0.29.0
|
|
51
|
-
- **Added** `indicator` prop on AvatarUser: `"lead"` (warning dot) | `"admin"` (accent dot) | ReactNode (custom indicator) — animated dot at the top-right corner of each avatar
|
|
52
|
-
|
|
53
|
-
### v0.22.3
|
|
54
|
-
- **Fixed** `renderAvatar` wrapper no longer clips consumer Avatar content (removed overflow-hidden, border, and size classes from wrapper)
|
|
55
|
-
- **Fixed** Removed redundant text-size classes from wrapper — Avatar handles font scaling internally
|
|
56
|
-
|
|
57
|
-
### v0.21.0
|
|
58
|
-
- **Added** `xs` and `xl` size variants
|
|
59
|
-
- **Added** `borderColor` prop for overlap border matching surface context
|
|
60
|
-
- **Added** `onOverflowClick` prop making the overflow badge an interactive button
|
|
61
|
-
- **Added** `renderAvatar` prop for custom per-avatar rendering
|
|
62
|
-
- **Added** `AvatarUser.ring` field for per-user role rings in groups
|
|
63
|
-
|
|
64
|
-
### v0.1.0
|
|
65
|
-
- **Added** Initial release
|
|
1
|
+
# AvatarGroup
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/avatar-group
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
users: AvatarUser[] (REQUIRED) — { name: string, image?: string | null, ring?: AvatarRing }
|
|
9
|
+
max: number (default: 4, overflow shows "+N" badge)
|
|
10
|
+
size: "xs" | "sm" | "md" | "lg" | "xl"
|
|
11
|
+
showTooltip: boolean (default: true)
|
|
12
|
+
borderColor: "surface-base" | "surface-raised" (default: "surface-raised") — overlap border color
|
|
13
|
+
onOverflowClick: () => void — makes the "+N" badge interactive (button)
|
|
14
|
+
renderAvatar: (user: AvatarUser, index: number) => ReactNode — custom avatar render
|
|
15
|
+
expandDirection: "left" | "right" (default: "right") — direction group expands on hover
|
|
16
|
+
expandAmount: "compact" | "default" | "wide" (default: "default") — how far group spreads
|
|
17
|
+
|
|
18
|
+
## AvatarUser Type
|
|
19
|
+
name: string (REQUIRED)
|
|
20
|
+
image?: string | null
|
|
21
|
+
ring?: "none" | "lead" | "admin" | "client" — role ring per user in group
|
|
22
|
+
indicator?: "lead" | "admin" | ReactNode — small dot indicator at top-right of avatar
|
|
23
|
+
|
|
24
|
+
## Defaults
|
|
25
|
+
size="md", max=4, showTooltip=true, borderColor="surface-raised", expandDirection="right", expandAmount="default"
|
|
26
|
+
|
|
27
|
+
## Example
|
|
28
|
+
```jsx
|
|
29
|
+
<AvatarGroup
|
|
30
|
+
users={[
|
|
31
|
+
{ name: 'Alice', image: '/alice.jpg', ring: 'lead' },
|
|
32
|
+
{ name: 'Bob', ring: 'admin' },
|
|
33
|
+
]}
|
|
34
|
+
max={3}
|
|
35
|
+
size="md"
|
|
36
|
+
borderColor="surface-base"
|
|
37
|
+
onOverflowClick={() => setShowAll(true)}
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Gotchas
|
|
42
|
+
- Wraps TooltipProvider internally — no need to add one yourself
|
|
43
|
+
- Users beyond `max` are collapsed into a "+N" overflow badge
|
|
44
|
+
- Missing `image` falls back to initials derived from `name`
|
|
45
|
+
- Hover expand animation uses CSS `group-hover` — parent must not clip overflow
|
|
46
|
+
- `borderColor` should match the surface the group sits on (`surface-base` on page bg, `surface-raised` on cards)
|
|
47
|
+
- `renderAvatar` wrapper is positioning-only — pass `size` directly to your Avatar (do NOT use `className="h-full w-full"`)
|
|
48
|
+
|
|
49
|
+
## Changes
|
|
50
|
+
### v0.29.0
|
|
51
|
+
- **Added** `indicator` prop on AvatarUser: `"lead"` (warning dot) | `"admin"` (accent dot) | ReactNode (custom indicator) — animated dot at the top-right corner of each avatar
|
|
52
|
+
|
|
53
|
+
### v0.22.3
|
|
54
|
+
- **Fixed** `renderAvatar` wrapper no longer clips consumer Avatar content (removed overflow-hidden, border, and size classes from wrapper)
|
|
55
|
+
- **Fixed** Removed redundant text-size classes from wrapper — Avatar handles font scaling internally
|
|
56
|
+
|
|
57
|
+
### v0.21.0
|
|
58
|
+
- **Added** `xs` and `xl` size variants
|
|
59
|
+
- **Added** `borderColor` prop for overlap border matching surface context
|
|
60
|
+
- **Added** `onOverflowClick` prop making the overflow badge an interactive button
|
|
61
|
+
- **Added** `renderAvatar` prop for custom per-avatar rendering
|
|
62
|
+
- **Added** `AvatarUser.ring` field for per-user role rings in groups
|
|
63
|
+
|
|
64
|
+
### v0.1.0
|
|
65
|
+
- **Added** Initial release
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# BulkActionBar
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/bulk-action-bar
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
show: boolean (controls visibility)
|
|
9
|
-
count: number (number of selected items — displayed in badge)
|
|
10
|
-
onClearSelection: () => void
|
|
11
|
-
actions: BulkActionBarAction[]
|
|
12
|
-
className: string
|
|
13
|
-
|
|
14
|
-
### BulkActionBarAction
|
|
15
|
-
label: string
|
|
16
|
-
icon: ComponentType<{ className?: string }> (optional icon component)
|
|
17
|
-
onClick: () => void
|
|
18
|
-
color: "default" | "error"
|
|
19
|
-
disabled: boolean
|
|
20
|
-
|
|
21
|
-
## Defaults
|
|
22
|
-
(no optional props with defaults)
|
|
23
|
-
|
|
24
|
-
## Example
|
|
25
|
-
```jsx
|
|
26
|
-
<BulkActionBar
|
|
27
|
-
show={selected.length > 0}
|
|
28
|
-
count={selected.length}
|
|
29
|
-
onClearSelection={() => setSelected([])}
|
|
30
|
-
actions={[
|
|
31
|
-
{ label: 'Archive', icon: IconArchive, onClick: archiveSelected },
|
|
32
|
-
{ label: 'Delete', icon: IconTrash, onClick: deleteSelected, color: 'error' },
|
|
33
|
-
]}
|
|
34
|
-
/>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Gotchas
|
|
38
|
-
- Renders via `createPortal` into `document.body` — will not appear during SSR (mounts only client-side)
|
|
39
|
-
- Positioned fixed at bottom-center with `z-50`; ensure no other fixed elements conflict
|
|
40
|
-
- Uses Framer Motion AnimatePresence for slide-in/out animation
|
|
1
|
+
# BulkActionBar
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/bulk-action-bar
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
show: boolean (controls visibility)
|
|
9
|
+
count: number (number of selected items — displayed in badge)
|
|
10
|
+
onClearSelection: () => void
|
|
11
|
+
actions: BulkActionBarAction[]
|
|
12
|
+
className: string
|
|
13
|
+
|
|
14
|
+
### BulkActionBarAction
|
|
15
|
+
label: string
|
|
16
|
+
icon: ComponentType<{ className?: string }> (optional icon component)
|
|
17
|
+
onClick: () => void
|
|
18
|
+
color: "default" | "error"
|
|
19
|
+
disabled: boolean
|
|
20
|
+
|
|
21
|
+
## Defaults
|
|
22
|
+
(no optional props with defaults)
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
```jsx
|
|
26
|
+
<BulkActionBar
|
|
27
|
+
show={selected.length > 0}
|
|
28
|
+
count={selected.length}
|
|
29
|
+
onClearSelection={() => setSelected([])}
|
|
30
|
+
actions={[
|
|
31
|
+
{ label: 'Archive', icon: IconArchive, onClick: archiveSelected },
|
|
32
|
+
{ label: 'Delete', icon: IconTrash, onClick: deleteSelected, color: 'error' },
|
|
33
|
+
]}
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Gotchas
|
|
38
|
+
- Renders via `createPortal` into `document.body` — will not appear during SSR (mounts only client-side)
|
|
39
|
+
- Positioned fixed at bottom-center with `z-50`; ensure no other fixed elements conflict
|
|
40
|
+
- Uses Framer Motion AnimatePresence for slide-in/out animation
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# CommandPalette
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/command-palette
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
groups?: CommandGroup[] (default: []) — { label: string, items: CommandItem[] }
|
|
9
|
-
placeholder: string (default: "Search or jump to...")
|
|
10
|
-
onSearch: (query: string) => void
|
|
11
|
-
emptyMessage: string (default: "No results found.")
|
|
12
|
-
|
|
13
|
-
CommandItem shape: { id, label, description?, icon?, shortcut?, onSelect: () => void }
|
|
14
|
-
|
|
15
|
-
## Defaults
|
|
16
|
-
placeholder="Search or jump to...", emptyMessage="No results found.", groups=[]
|
|
17
|
-
|
|
18
|
-
## Example
|
|
19
|
-
```jsx
|
|
20
|
-
<CommandPalette
|
|
21
|
-
groups={[{
|
|
22
|
-
label: 'Navigation',
|
|
23
|
-
items: [{ id: 'dash', label: 'Dashboard', onSelect: () => navigate('/') }],
|
|
24
|
-
}]}
|
|
25
|
-
/>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Gotchas
|
|
29
|
-
- Opens with Ctrl+K / Cmd+K by default
|
|
30
|
-
- Items animate in with staggered slide-up (30ms delay cascade); groups fade in; active item icon/shortcut highlight in interactive color (v0.15.0)
|
|
31
|
-
|
|
32
|
-
## Changes
|
|
33
|
-
### v0.15.0
|
|
34
|
-
- **Added** Staggered slide-up entrance animations for items, fade-in for groups/empty state/footer, scale-in for search icon, active item icon/shortcut color transitions
|
|
35
|
-
|
|
36
|
-
### v0.8.0
|
|
37
|
-
- **Added** Full ARIA combobox pattern (`role="combobox"`, `aria-expanded`, `aria-activedescendant`)
|
|
38
|
-
|
|
39
|
-
### v0.1.0
|
|
40
|
-
- **Added** Initial release
|
|
1
|
+
# CommandPalette
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/command-palette
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
groups?: CommandGroup[] (default: []) — { label: string, items: CommandItem[] }
|
|
9
|
+
placeholder: string (default: "Search or jump to...")
|
|
10
|
+
onSearch: (query: string) => void
|
|
11
|
+
emptyMessage: string (default: "No results found.")
|
|
12
|
+
|
|
13
|
+
CommandItem shape: { id, label, description?, icon?, shortcut?, onSelect: () => void }
|
|
14
|
+
|
|
15
|
+
## Defaults
|
|
16
|
+
placeholder="Search or jump to...", emptyMessage="No results found.", groups=[]
|
|
17
|
+
|
|
18
|
+
## Example
|
|
19
|
+
```jsx
|
|
20
|
+
<CommandPalette
|
|
21
|
+
groups={[{
|
|
22
|
+
label: 'Navigation',
|
|
23
|
+
items: [{ id: 'dash', label: 'Dashboard', onSelect: () => navigate('/') }],
|
|
24
|
+
}]}
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Gotchas
|
|
29
|
+
- Opens with Ctrl+K / Cmd+K by default
|
|
30
|
+
- Items animate in with staggered slide-up (30ms delay cascade); groups fade in; active item icon/shortcut highlight in interactive color (v0.15.0)
|
|
31
|
+
|
|
32
|
+
## Changes
|
|
33
|
+
### v0.15.0
|
|
34
|
+
- **Added** Staggered slide-up entrance animations for items, fade-in for groups/empty state/footer, scale-in for search icon, active item icon/shortcut color transitions
|
|
35
|
+
|
|
36
|
+
### v0.8.0
|
|
37
|
+
- **Added** Full ARIA combobox pattern (`role="combobox"`, `aria-expanded`, `aria-activedescendant`)
|
|
38
|
+
|
|
39
|
+
### v0.1.0
|
|
40
|
+
- **Added** Initial release
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# ConfirmDialog
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/confirm-dialog
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
open: boolean (REQUIRED, controlled)
|
|
9
|
-
onOpenChange: (open: boolean) => void (REQUIRED)
|
|
10
|
-
title: string (REQUIRED)
|
|
11
|
-
description: string (REQUIRED)
|
|
12
|
-
confirmText: string (default: "Confirm")
|
|
13
|
-
cancelText: string (default: "Cancel")
|
|
14
|
-
color: "default" | "error" (controls confirm button color)
|
|
15
|
-
loading: boolean (default: false, disables buttons and replaces confirm button text with 'Processing...')
|
|
16
|
-
onConfirm: () => void | Promise<void> (REQUIRED)
|
|
17
|
-
|
|
18
|
-
## Defaults
|
|
19
|
-
confirmText="Confirm", cancelText="Cancel", color="default", loading=false
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
```jsx
|
|
23
|
-
const [open, setOpen] = useState(false)
|
|
24
|
-
<ConfirmDialog
|
|
25
|
-
open={open}
|
|
26
|
-
onOpenChange={setOpen}
|
|
27
|
-
title="Delete project?"
|
|
28
|
-
description="This action cannot be undone."
|
|
29
|
-
color="error"
|
|
30
|
-
confirmText="Delete"
|
|
31
|
-
loading={isDeleting}
|
|
32
|
-
onConfirm={async () => { await deleteProject(); setOpen(false) }}
|
|
33
|
-
/>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Gotchas
|
|
37
|
-
- Dialog stays open after confirm — consumer must close it via `onOpenChange`
|
|
38
|
-
- Built on AlertDialog internally
|
|
39
|
-
- Fully controlled — `open` and `onOpenChange` are required
|
|
40
|
-
|
|
41
|
-
## Changes
|
|
42
|
-
### v0.18.0
|
|
43
|
-
- **Fixed** Converted to `forwardRef` pattern
|
|
44
|
-
|
|
45
|
-
### v0.1.0
|
|
46
|
-
- **Added** Initial release
|
|
1
|
+
# ConfirmDialog
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/confirm-dialog
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
open: boolean (REQUIRED, controlled)
|
|
9
|
+
onOpenChange: (open: boolean) => void (REQUIRED)
|
|
10
|
+
title: string (REQUIRED)
|
|
11
|
+
description: string (REQUIRED)
|
|
12
|
+
confirmText: string (default: "Confirm")
|
|
13
|
+
cancelText: string (default: "Cancel")
|
|
14
|
+
color: "default" | "error" (controls confirm button color)
|
|
15
|
+
loading: boolean (default: false, disables buttons and replaces confirm button text with 'Processing...')
|
|
16
|
+
onConfirm: () => void | Promise<void> (REQUIRED)
|
|
17
|
+
|
|
18
|
+
## Defaults
|
|
19
|
+
confirmText="Confirm", cancelText="Cancel", color="default", loading=false
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
```jsx
|
|
23
|
+
const [open, setOpen] = useState(false)
|
|
24
|
+
<ConfirmDialog
|
|
25
|
+
open={open}
|
|
26
|
+
onOpenChange={setOpen}
|
|
27
|
+
title="Delete project?"
|
|
28
|
+
description="This action cannot be undone."
|
|
29
|
+
color="error"
|
|
30
|
+
confirmText="Delete"
|
|
31
|
+
loading={isDeleting}
|
|
32
|
+
onConfirm={async () => { await deleteProject(); setOpen(false) }}
|
|
33
|
+
/>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Gotchas
|
|
37
|
+
- Dialog stays open after confirm — consumer must close it via `onOpenChange`
|
|
38
|
+
- Built on AlertDialog internally
|
|
39
|
+
- Fully controlled — `open` and `onOpenChange` are required
|
|
40
|
+
|
|
41
|
+
## Changes
|
|
42
|
+
### v0.18.0
|
|
43
|
+
- **Fixed** Converted to `forwardRef` pattern
|
|
44
|
+
|
|
45
|
+
### v0.1.0
|
|
46
|
+
- **Added** Initial release
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# ContentCard
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/content-card
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
variant: "default" | "outline" | "ghost"
|
|
9
|
-
padding: "default" | "compact" | "spacious" | "none"
|
|
10
|
-
header: ReactNode (custom header content)
|
|
11
|
-
headerTitle: string (simple text header)
|
|
12
|
-
headerActions: ReactNode (actions in header area)
|
|
13
|
-
footer: ReactNode
|
|
14
|
-
children: ReactNode (body)
|
|
15
|
-
|
|
16
|
-
## Defaults
|
|
17
|
-
variant="default", padding="default"
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
```jsx
|
|
21
|
-
<ContentCard headerTitle="Team Members" headerActions={<Button size="sm">Add</Button>}>
|
|
22
|
-
<p>Member list here</p>
|
|
23
|
-
</ContentCard>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Gotchas
|
|
27
|
-
- Server-safe: can be imported directly in Next.js Server Components
|
|
28
|
-
- Use `headerTitle` for simple text headers; use `header` for custom header content
|
|
29
|
-
- `header` takes precedence over `headerTitle` if both are provided
|
|
30
|
-
|
|
31
|
-
## Changes
|
|
32
|
-
### v0.2.0
|
|
33
|
-
- **Added** Identified as server-safe component
|
|
34
|
-
|
|
35
|
-
### v0.1.0
|
|
36
|
-
- **Added** Initial release
|
|
1
|
+
# ContentCard
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/content-card
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
variant: "default" | "outline" | "ghost"
|
|
9
|
+
padding: "default" | "compact" | "spacious" | "none"
|
|
10
|
+
header: ReactNode (custom header content)
|
|
11
|
+
headerTitle: string (simple text header)
|
|
12
|
+
headerActions: ReactNode (actions in header area)
|
|
13
|
+
footer: ReactNode
|
|
14
|
+
children: ReactNode (body)
|
|
15
|
+
|
|
16
|
+
## Defaults
|
|
17
|
+
variant="default", padding="default"
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
```jsx
|
|
21
|
+
<ContentCard headerTitle="Team Members" headerActions={<Button size="sm">Add</Button>}>
|
|
22
|
+
<p>Member list here</p>
|
|
23
|
+
</ContentCard>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Gotchas
|
|
27
|
+
- Server-safe: can be imported directly in Next.js Server Components
|
|
28
|
+
- Use `headerTitle` for simple text headers; use `header` for custom header content
|
|
29
|
+
- `header` takes precedence over `headerTitle` if both are provided
|
|
30
|
+
|
|
31
|
+
## Changes
|
|
32
|
+
### v0.2.0
|
|
33
|
+
- **Added** Identified as server-safe component
|
|
34
|
+
|
|
35
|
+
### v0.1.0
|
|
36
|
+
- **Added** Initial release
|