@devalok/shilp-sutra 0.34.0 → 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 +306 -246
- package/dist/_chunks/badge-group.js.map +1 -0
- package/dist/_chunks/chat.js +518 -0
- package/dist/_chunks/chat.js.map +1 -0
- package/dist/_chunks/date-picker.js +748 -0
- package/dist/_chunks/date-picker.js.map +1 -0
- package/dist/_chunks/document-preview.js +109 -90
- package/dist/_chunks/document-preview.js.map +1 -0
- package/dist/_chunks/file-preview.js +492 -504
- package/dist/_chunks/file-preview.js.map +1 -0
- package/dist/_chunks/framer.js +5564 -5613
- package/dist/_chunks/framer.js.map +1 -0
- package/dist/_chunks/image-preview.js +127 -88
- package/dist/_chunks/image-preview.js.map +1 -0
- package/dist/_chunks/keybinding.js +12 -14
- package/dist/_chunks/keybinding.js.map +1 -0
- package/dist/_chunks/link-context.js +19 -16
- package/dist/_chunks/link-context.js.map +1 -0
- package/dist/_chunks/mention-suggestion.js +353 -350
- package/dist/_chunks/mention-suggestion.js.map +1 -0
- package/dist/_chunks/motion-provider.js +26 -20
- package/dist/_chunks/motion-provider.js.map +1 -0
- package/dist/_chunks/popover.js +123 -0
- package/dist/_chunks/popover.js.map +1 -0
- package/dist/_chunks/primitives.js +7585 -6426
- package/dist/_chunks/primitives.js.map +1 -0
- package/dist/_chunks/rich-chat-input.js +2071 -0
- package/dist/_chunks/rich-chat-input.js.map +1 -0
- package/dist/_chunks/rolldown-runtime.js +21 -0
- package/dist/_chunks/shared.js +126 -0
- package/dist/_chunks/shared.js.map +1 -0
- package/dist/_chunks/sonner.js +605 -734
- package/dist/_chunks/sonner.js.map +1 -0
- package/dist/_chunks/stat-row.js +418 -440
- package/dist/_chunks/stat-row.js.map +1 -0
- package/dist/_chunks/tiptap.js +15850 -19964
- package/dist/_chunks/tiptap.js.map +1 -0
- package/dist/_chunks/tree-view.js +231 -290
- package/dist/_chunks/tree-view.js.map +1 -0
- package/dist/_chunks/use-calendar.js +161 -208
- package/dist/_chunks/use-calendar.js.map +1 -0
- package/dist/_chunks/vendor-client.js +314 -2199
- package/dist/_chunks/vendor-client.js.map +1 -0
- package/dist/_chunks/vendor-utils.js +1721 -2978
- package/dist/_chunks/vendor-utils.js.map +1 -0
- package/dist/ai/ai-command-provider.js +23 -17
- package/dist/ai/ai-command-provider.js.map +1 -0
- package/dist/ai/block-renderer.js +68 -51
- package/dist/ai/block-renderer.js.map +1 -0
- package/dist/ai/blocks/index.js +2 -12
- package/dist/ai/blocks/loading.d.ts.map +1 -1
- package/dist/ai/command-bar.js +470 -519
- package/dist/ai/command-bar.js.map +1 -0
- package/dist/ai/conversation.js +241 -227
- package/dist/ai/conversation.js.map +1 -0
- package/dist/ai/devadoot-icon.d.ts.map +1 -1
- package/dist/ai/index.js +181 -167
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/types.js +0 -1
- package/dist/composed/activity-feed.js +232 -202
- package/dist/composed/activity-feed.js.map +1 -0
- package/dist/composed/avatar-group.js +164 -222
- package/dist/composed/avatar-group.js.map +1 -0
- package/dist/composed/bulk-action-bar.js +166 -165
- package/dist/composed/bulk-action-bar.js.map +1 -0
- package/dist/composed/command-palette.js +290 -308
- package/dist/composed/command-palette.js.map +1 -0
- package/dist/composed/confirm-dialog.js +28 -48
- package/dist/composed/confirm-dialog.js.map +1 -0
- package/dist/composed/content-card.js +69 -108
- package/dist/composed/content-card.js.map +1 -0
- package/dist/composed/date-picker/index.js +3 -13
- package/dist/composed/deadline-indicator.js +68 -74
- package/dist/composed/deadline-indicator.js.map +1 -0
- package/dist/composed/emoji-picker.js +83 -110
- 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 +64 -103
- package/dist/composed/empty-state.js.map +1 -0
- package/dist/composed/error-boundary.js +129 -127
- package/dist/composed/error-boundary.js.map +1 -0
- package/dist/composed/file-preview.js +2 -12
- package/dist/composed/filter-bar.js +98 -130
- package/dist/composed/filter-bar.js.map +1 -0
- package/dist/composed/form-section.js +61 -45
- package/dist/composed/form-section.js.map +1 -0
- package/dist/composed/global-loading.js +34 -47
- package/dist/composed/global-loading.js.map +1 -0
- package/dist/composed/index.js +34 -92
- package/dist/composed/inline-edit.js +92 -107
- package/dist/composed/inline-edit.js.map +1 -0
- package/dist/composed/lib/string-utils.js +8 -8
- package/dist/composed/lib/string-utils.js.map +1 -0
- package/dist/composed/loading-skeleton.js +103 -171
- package/dist/composed/loading-skeleton.js.map +1 -0
- package/dist/composed/markdown-viewer.js +187 -139
- package/dist/composed/markdown-viewer.js.map +1 -0
- package/dist/composed/master-detail.js +147 -156
- package/dist/composed/master-detail.js.map +1 -0
- package/dist/composed/member-picker.js +46 -49
- 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 +185 -179
- package/dist/composed/multi-select-popover.js.map +1 -0
- package/dist/composed/page-header.js +54 -76
- package/dist/composed/page-header.js.map +1 -0
- package/dist/composed/page-skeletons.js +143 -127
- package/dist/composed/page-skeletons.js.map +1 -0
- package/dist/composed/priority-indicator.js +105 -111
- package/dist/composed/priority-indicator.js.map +1 -0
- package/dist/composed/responsive-overlay.js +36 -41
- 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-chat-input.js +2 -1860
- package/dist/composed/rich-text-editor.js +561 -424
- package/dist/composed/rich-text-editor.js.map +1 -0
- package/dist/composed/schedule-view.js +134 -185
- package/dist/composed/schedule-view.js.map +1 -0
- package/dist/composed/simple-tooltip.js +21 -21
- 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 +133 -137
- package/dist/composed/status-badge.js.map +1 -0
- package/dist/hooks/index.js +7 -12
- package/dist/hooks/use-color-mode.js +28 -25
- package/dist/hooks/use-color-mode.js.map +1 -0
- package/dist/hooks/use-mobile.js +13 -13
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-toast.js +2 -4
- package/dist/hooks/use-touch-device.js +9 -11
- package/dist/hooks/use-touch-device.js.map +1 -0
- package/dist/hooks/use-viewport-height.js +14 -14
- 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 +17 -11
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/primitives-index.js +226 -186
- 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 +94 -238
- package/dist/shell/app-command-palette.js.map +1 -0
- package/dist/shell/bottom-navbar.js +150 -190
- package/dist/shell/bottom-navbar.js.map +1 -0
- package/dist/shell/command-registry.js +13 -14
- package/dist/shell/command-registry.js.map +1 -0
- package/dist/shell/index.js +10 -20
- package/dist/shell/link-context.js +2 -5
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +263 -259
- package/dist/shell/notification-center.js.map +1 -0
- package/dist/shell/notification-preferences.js +241 -184
- package/dist/shell/notification-preferences.js.map +1 -0
- package/dist/shell/sidebar.js +251 -281
- package/dist/shell/sidebar.js.map +1 -0
- package/dist/shell/top-bar.js +203 -237
- package/dist/shell/top-bar.js.map +1 -0
- package/dist/tailwind/index.cjs +473 -442
- package/dist/tailwind/index.js +2 -4
- package/dist/tailwind/preset.d.ts.map +1 -1
- package/dist/tailwind/preset.js +490 -459
- 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 +52 -60
- 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 +112 -156
- 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 +203 -99
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.js +13 -16
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +137 -148
- package/dist/ui/autocomplete.js.map +1 -0
- package/dist/ui/avatar.js +196 -169
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge-group.js +2 -7
- package/dist/ui/badge-indicator.js +42 -51
- package/dist/ui/badge-indicator.js.map +1 -0
- package/dist/ui/badge.js +2 -15
- package/dist/ui/banner.js +76 -68
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/breadcrumb.js +65 -84
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button-group.js +109 -102
- 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 +89 -72
- package/dist/ui/button-processing.js.map +1 -0
- package/dist/ui/button.js +393 -279
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.js +151 -157
- 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 +1025 -1319
- package/dist/ui/charts/index.js.map +1 -0
- package/dist/ui/charts/line-chart.d.ts.map +1 -1
- package/dist/ui/chat/index.js +2 -11
- 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 +82 -100
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code.js +18 -32
- package/dist/ui/code.js.map +1 -0
- package/dist/ui/collapsible.js +21 -29
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/color-input.d.ts.map +1 -1
- package/dist/ui/color-input.js +455 -372
- package/dist/ui/color-input.js.map +1 -0
- package/dist/ui/color-swatch.js +60 -90
- 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 +278 -293
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/container.js +18 -24
- package/dist/ui/container.js.map +1 -0
- package/dist/ui/context-menu.js +154 -203
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/data-table-body.js +116 -213
- package/dist/ui/data-table-body.js.map +1 -0
- package/dist/ui/data-table-bulk-actions.js +43 -59
- package/dist/ui/data-table-bulk-actions.js.map +1 -0
- package/dist/ui/data-table-card.js +84 -71
- package/dist/ui/data-table-card.js.map +1 -0
- package/dist/ui/data-table-context.js +39 -42
- package/dist/ui/data-table-context.js.map +1 -0
- package/dist/ui/data-table-header.js +98 -139
- package/dist/ui/data-table-header.js.map +1 -0
- package/dist/ui/data-table-pagination.js +69 -82
- package/dist/ui/data-table-pagination.js.map +1 -0
- package/dist/ui/data-table-toolbar.js +104 -130
- package/dist/ui/data-table-toolbar.js.map +1 -0
- package/dist/ui/data-table.js +281 -354
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/devalok-grain.js +77 -66
- package/dist/ui/devalok-grain.js.map +1 -0
- package/dist/ui/dialog.js +118 -151
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.js +152 -203
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/file-upload.js +242 -266
- 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 +62 -56
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/hover-card.js +54 -54
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/icon-button.js +21 -26
- package/dist/ui/icon-button.js.map +1 -0
- package/dist/ui/icon-context.js +17 -17
- package/dist/ui/icon-context.js.map +1 -0
- package/dist/ui/icon-group.js +22 -29
- package/dist/ui/icon-group.js.map +1 -0
- package/dist/ui/icon.js +201 -121
- 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 +90 -350
- 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 +58 -48
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +93 -169
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js +23 -23
- 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 +14 -11
- 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 +83 -33
- package/dist/ui/lib/motion.js.map +1 -0
- package/dist/ui/lib/utils.js +39 -16
- package/dist/ui/lib/utils.js.map +1 -0
- package/dist/ui/link.js +13 -24
- package/dist/ui/link.js.map +1 -0
- package/dist/ui/menubar.js +132 -210
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.js +163 -193
- 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 +102 -95
- package/dist/ui/number-input.js.map +1 -0
- package/dist/ui/pagination.js +122 -159
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/popover.js +2 -131
- package/dist/ui/progress-ring.d.ts.map +1 -1
- package/dist/ui/progress-ring.js +133 -143
- package/dist/ui/progress-ring.js.map +1 -0
- package/dist/ui/progress.js +51 -95
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +47 -49
- package/dist/ui/radio.js.map +1 -0
- package/dist/ui/search-input.js +51 -53
- 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 +95 -114
- package/dist/ui/segmented-control.js.map +1 -0
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +137 -157
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts.map +1 -1
- package/dist/ui/separator.js +18 -25
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.js +135 -163
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.js +357 -600
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.js +179 -231
- 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 +62 -34
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/spinner.js +226 -205
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/split-button.d.ts.map +1 -1
- package/dist/ui/split-button.js +228 -276
- package/dist/ui/split-button.js.map +1 -0
- package/dist/ui/stack.js +56 -70
- package/dist/ui/stack.js.map +1 -0
- package/dist/ui/stat-card.js +259 -251
- package/dist/ui/stat-card.js.map +1 -0
- package/dist/ui/status-dot.js +67 -63
- 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 +124 -168
- package/dist/ui/stepper.js.map +1 -0
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +56 -55
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.js +57 -90
- 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 +159 -156
- 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 +60 -59
- package/dist/ui/text.js.map +1 -0
- package/dist/ui/textarea.js +40 -57
- 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-types.js +0 -1
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +559 -536
- package/dist/ui/toast.js.map +1 -0
- package/dist/ui/toaster.d.ts.map +1 -1
- package/dist/ui/toaster.js +24 -33
- 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 +44 -41
- 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 +44 -40
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.js +80 -65
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/tree-view/index.js +2 -6
- package/dist/ui/visually-hidden.js +12 -10
- 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
- package/dist/_chunks/date-time-picker.js +0 -851
- package/dist/_chunks/typing-indicator.js +0 -565
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# EmptyState
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/empty-state
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
Note: EmptyState was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
|
|
8
|
-
|
|
9
|
-
## Props
|
|
10
|
-
title: string (REQUIRED)
|
|
11
|
-
description: string
|
|
12
|
-
icon: ReactNode | ComponentType<{ className?: string }> (default: Devalok chakra icon)
|
|
13
|
-
action: ReactNode (e.g. a Button)
|
|
14
|
-
compact: boolean (smaller layout)
|
|
15
|
-
iconSize: 'sm' | 'md' | 'lg' (default 'md', compact defaults to 'sm') — sm=h-ico-sm, md=h-ico-lg, lg=h-ico-xl
|
|
16
|
-
|
|
17
|
-
## Defaults
|
|
18
|
-
iconSize="md" (compact defaults to "sm")
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
```jsx
|
|
22
|
-
<EmptyState
|
|
23
|
-
title="No tasks found"
|
|
24
|
-
description="Create your first task to get started."
|
|
25
|
-
action={<Button>Create Task</Button>}
|
|
26
|
-
iconSize="lg"
|
|
27
|
-
/>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Gotchas
|
|
31
|
-
- `icon` accepts both JSX elements (`<IconFolder />`) and component references (`IconFolder`). Component references are auto-instantiated with correct sizing classes.
|
|
32
|
-
- `iconSize` controls icon dimensions regardless of icon type. When `compact=true` and no `iconSize`, defaults to `'sm'`.
|
|
33
|
-
- As of v0.18.0, EmptyState is NOT server-safe (Framer Motion dependency). Use per-component import in client components.
|
|
34
|
-
|
|
35
|
-
## Changes
|
|
36
|
-
### v0.18.0
|
|
37
|
-
- **Changed** No longer server-safe due to Framer Motion dependency
|
|
38
|
-
|
|
39
|
-
### v0.16.0
|
|
40
|
-
- **Added** `iconSize?: 'sm' | 'md' | 'lg'` — control icon dimensions
|
|
41
|
-
|
|
42
|
-
### v0.13.0
|
|
43
|
-
- **Changed** `icon` prop now accepts `React.ComponentType<{ className?: string }>` in addition to `ReactNode` — component references are auto-instantiated
|
|
44
|
-
|
|
45
|
-
### v0.5.0
|
|
46
|
-
- **Changed** `icon` prop changed from `TablerIcon` (component ref) to `React.ReactNode` — use `icon={<MyIcon />}` instead of `icon={MyIcon}`
|
|
47
|
-
- **Changed** Default icon is now the Devalok swadhisthana chakra (inline SVG)
|
|
48
|
-
|
|
49
|
-
### v0.2.0
|
|
50
|
-
- **Added** Identified as server-safe component (later reverted in v0.18.0)
|
|
51
|
-
|
|
52
|
-
### v0.1.0
|
|
53
|
-
- **Added** Initial release
|
|
1
|
+
# EmptyState
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/empty-state
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
Note: EmptyState was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
title: string (REQUIRED)
|
|
11
|
+
description: string
|
|
12
|
+
icon: ReactNode | ComponentType<{ className?: string }> (default: Devalok chakra icon)
|
|
13
|
+
action: ReactNode (e.g. a Button)
|
|
14
|
+
compact: boolean (smaller layout)
|
|
15
|
+
iconSize: 'sm' | 'md' | 'lg' (default 'md', compact defaults to 'sm') — sm=h-ico-sm, md=h-ico-lg, lg=h-ico-xl
|
|
16
|
+
|
|
17
|
+
## Defaults
|
|
18
|
+
iconSize="md" (compact defaults to "sm")
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
```jsx
|
|
22
|
+
<EmptyState
|
|
23
|
+
title="No tasks found"
|
|
24
|
+
description="Create your first task to get started."
|
|
25
|
+
action={<Button>Create Task</Button>}
|
|
26
|
+
iconSize="lg"
|
|
27
|
+
/>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Gotchas
|
|
31
|
+
- `icon` accepts both JSX elements (`<IconFolder />`) and component references (`IconFolder`). Component references are auto-instantiated with correct sizing classes.
|
|
32
|
+
- `iconSize` controls icon dimensions regardless of icon type. When `compact=true` and no `iconSize`, defaults to `'sm'`.
|
|
33
|
+
- As of v0.18.0, EmptyState is NOT server-safe (Framer Motion dependency). Use per-component import in client components.
|
|
34
|
+
|
|
35
|
+
## Changes
|
|
36
|
+
### v0.18.0
|
|
37
|
+
- **Changed** No longer server-safe due to Framer Motion dependency
|
|
38
|
+
|
|
39
|
+
### v0.16.0
|
|
40
|
+
- **Added** `iconSize?: 'sm' | 'md' | 'lg'` — control icon dimensions
|
|
41
|
+
|
|
42
|
+
### v0.13.0
|
|
43
|
+
- **Changed** `icon` prop now accepts `React.ComponentType<{ className?: string }>` in addition to `ReactNode` — component references are auto-instantiated
|
|
44
|
+
|
|
45
|
+
### v0.5.0
|
|
46
|
+
- **Changed** `icon` prop changed from `TablerIcon` (component ref) to `React.ReactNode` — use `icon={<MyIcon />}` instead of `icon={MyIcon}`
|
|
47
|
+
- **Changed** Default icon is now the Devalok swadhisthana chakra (inline SVG)
|
|
48
|
+
|
|
49
|
+
### v0.2.0
|
|
50
|
+
- **Added** Identified as server-safe component (later reverted in v0.18.0)
|
|
51
|
+
|
|
52
|
+
### v0.1.0
|
|
53
|
+
- **Added** Initial release
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# ErrorDisplay
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/error-boundary
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
error: unknown (REQUIRED — Error object, status object, or string)
|
|
9
|
-
onReset: () => void (optional retry button)
|
|
10
|
-
|
|
11
|
-
## Defaults
|
|
12
|
-
None
|
|
13
|
-
|
|
14
|
-
## Example
|
|
15
|
-
```jsx
|
|
16
|
-
<ErrorDisplay error={error} onReset={() => refetch()} />
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Gotchas
|
|
20
|
-
- Auto-detects HTTP status codes (404, 403, 500) and shows appropriate icon/message
|
|
21
|
-
- Shows stack trace in development mode only
|
|
22
|
-
- The import path is `error-boundary` but the component is named `ErrorDisplay`
|
|
23
|
-
|
|
24
|
-
## Changes
|
|
25
|
-
### v0.18.0
|
|
26
|
-
- **Added** ErrorBoundary tests (13 new tests)
|
|
27
|
-
|
|
28
|
-
### v0.1.0
|
|
29
|
-
- **Added** Initial release
|
|
1
|
+
# ErrorDisplay
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/error-boundary
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
error: unknown (REQUIRED — Error object, status object, or string)
|
|
9
|
+
onReset: () => void (optional retry button)
|
|
10
|
+
|
|
11
|
+
## Defaults
|
|
12
|
+
None
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
```jsx
|
|
16
|
+
<ErrorDisplay error={error} onReset={() => refetch()} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Gotchas
|
|
20
|
+
- Auto-detects HTTP status codes (404, 403, 500) and shows appropriate icon/message
|
|
21
|
+
- Shows stack trace in development mode only
|
|
22
|
+
- The import path is `error-boundary` but the component is named `ErrorDisplay`
|
|
23
|
+
|
|
24
|
+
## Changes
|
|
25
|
+
### v0.18.0
|
|
26
|
+
- **Added** ErrorBoundary tests (13 new tests)
|
|
27
|
+
|
|
28
|
+
### v0.1.0
|
|
29
|
+
- **Added** Initial release
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# FilePreview
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/file-preview
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
url: string (file URL — required)
|
|
9
|
-
type: "image" | "pdf" | "video" | "audio" | "embed" (auto-detected from URL/mimeType)
|
|
10
|
-
mimeType: string (helps auto-detection)
|
|
11
|
-
alt: string (image alt text)
|
|
12
|
-
initialPage: number (PDF starting page, default 1)
|
|
13
|
-
fileName: string (displayed in file info bar)
|
|
14
|
-
fileSize: string (displayed as badge, e.g. "2.4 MB")
|
|
15
|
-
onError: (error: string) => void (called on load failures)
|
|
16
|
-
|
|
17
|
-
## Defaults
|
|
18
|
-
initialPage={1}, type auto-detected
|
|
19
|
-
|
|
20
|
-
## Features by Type
|
|
21
|
-
|
|
22
|
-
**Image:** Pinch/scroll zoom (0.1x–8x), double-click toggle, floating toolbar (zoom %/reset/fullscreen), keyboard (+/-/0/F/Esc)
|
|
23
|
-
**PDF:** react-pdf page nav (prev/next + direct input), keyboard (←→), crossfade between pages
|
|
24
|
-
**Video:** Custom branded player, play overlay, auto-hiding controls, progress bar + scrub handle, mute, fullscreen
|
|
25
|
-
**Audio:** Branded mini-player, full-width progress bar with hover tooltip + scrub handle, volume, file name display
|
|
26
|
-
**Embed:** 16:9 aspect ratio, auto-converts YouTube/Vimeo/Figma/Loom URLs, 15s timeout
|
|
27
|
-
|
|
28
|
-
## Example
|
|
29
|
-
```jsx
|
|
30
|
-
<FilePreview url="/uploads/mockup.png" fileName="mockup.png" fileSize="2.4 MB" />
|
|
31
|
-
<FilePreview url="/docs/contract.pdf" initialPage={3} />
|
|
32
|
-
<FilePreview url="https://youtube.com/watch?v=..." />
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Gotchas
|
|
36
|
-
- Image/PDF lazy-loaded (Skeleton on first render)
|
|
37
|
-
- PDF worker from unpkg CDN — configure workerSrc for offline apps
|
|
38
|
-
- All types have error fallback with download link
|
|
39
|
-
- Embed URLs auto-converted to embed format
|
|
40
|
-
- Audio player doesn't show separate Download button (integrated in card)
|
|
1
|
+
# FilePreview
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/file-preview
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
url: string (file URL — required)
|
|
9
|
+
type: "image" | "pdf" | "video" | "audio" | "embed" (auto-detected from URL/mimeType)
|
|
10
|
+
mimeType: string (helps auto-detection)
|
|
11
|
+
alt: string (image alt text)
|
|
12
|
+
initialPage: number (PDF starting page, default 1)
|
|
13
|
+
fileName: string (displayed in file info bar)
|
|
14
|
+
fileSize: string (displayed as badge, e.g. "2.4 MB")
|
|
15
|
+
onError: (error: string) => void (called on load failures)
|
|
16
|
+
|
|
17
|
+
## Defaults
|
|
18
|
+
initialPage={1}, type auto-detected
|
|
19
|
+
|
|
20
|
+
## Features by Type
|
|
21
|
+
|
|
22
|
+
**Image:** Pinch/scroll zoom (0.1x–8x), double-click toggle, floating toolbar (zoom %/reset/fullscreen), keyboard (+/-/0/F/Esc)
|
|
23
|
+
**PDF:** react-pdf page nav (prev/next + direct input), keyboard (←→), crossfade between pages
|
|
24
|
+
**Video:** Custom branded player, play overlay, auto-hiding controls, progress bar + scrub handle, mute, fullscreen
|
|
25
|
+
**Audio:** Branded mini-player, full-width progress bar with hover tooltip + scrub handle, volume, file name display
|
|
26
|
+
**Embed:** 16:9 aspect ratio, auto-converts YouTube/Vimeo/Figma/Loom URLs, 15s timeout
|
|
27
|
+
|
|
28
|
+
## Example
|
|
29
|
+
```jsx
|
|
30
|
+
<FilePreview url="/uploads/mockup.png" fileName="mockup.png" fileSize="2.4 MB" />
|
|
31
|
+
<FilePreview url="/docs/contract.pdf" initialPage={3} />
|
|
32
|
+
<FilePreview url="https://youtube.com/watch?v=..." />
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Gotchas
|
|
36
|
+
- Image/PDF lazy-loaded (Skeleton on first render)
|
|
37
|
+
- PDF worker from unpkg CDN — configure workerSrc for offline apps
|
|
38
|
+
- All types have error fallback with download link
|
|
39
|
+
- Embed URLs auto-converted to embed format
|
|
40
|
+
- Audio player doesn't show separate Download button (integrated in card)
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
# FilterBar
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/filter-bar
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Exports
|
|
8
|
-
FilterBar, FilterSelect, FilterMultiSelect
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
### FilterBar
|
|
13
|
-
searchValue: string
|
|
14
|
-
onSearchChange: (value: string) => void (renders SearchInput when provided)
|
|
15
|
-
searchPlaceholder: string
|
|
16
|
-
onClearAll: () => void (renders "Clear all" button when provided)
|
|
17
|
-
size: "xs" | "sm" | "md" (propagated to all child controls via context)
|
|
18
|
-
children: ReactNode (FilterSelect / FilterMultiSelect controls)
|
|
19
|
-
|
|
20
|
-
### FilterSelect
|
|
21
|
-
label: string
|
|
22
|
-
value: string
|
|
23
|
-
onValueChange: (value: string) => void
|
|
24
|
-
options: { value: string; label: string }[]
|
|
25
|
-
allLabel: string (label for the "all" option)
|
|
26
|
-
|
|
27
|
-
### FilterMultiSelect
|
|
28
|
-
label: string
|
|
29
|
-
value: string[]
|
|
30
|
-
onValueChange: (values: string[]) => void
|
|
31
|
-
options: { value: string; label: string }[]
|
|
32
|
-
|
|
33
|
-
## Defaults
|
|
34
|
-
size="sm", searchPlaceholder="Search...", allLabel="All"
|
|
35
|
-
|
|
36
|
-
## Example
|
|
37
|
-
```jsx
|
|
38
|
-
<FilterBar searchValue={search} onSearchChange={setSearch} onClearAll={clearFilters}>
|
|
39
|
-
<FilterSelect
|
|
40
|
-
label="Status"
|
|
41
|
-
value={status}
|
|
42
|
-
onValueChange={setStatus}
|
|
43
|
-
options={[{ value: 'active', label: 'Active' }, { value: 'done', label: 'Done' }]}
|
|
44
|
-
/>
|
|
45
|
-
<FilterMultiSelect
|
|
46
|
-
label="Assignees"
|
|
47
|
-
value={assignees}
|
|
48
|
-
onValueChange={setAssignees}
|
|
49
|
-
options={memberOptions}
|
|
50
|
-
/>
|
|
51
|
-
</FilterBar>
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Gotchas
|
|
55
|
-
- FilterSelect and FilterMultiSelect must be direct children of FilterBar to inherit the size context
|
|
56
|
-
- FilterSelect uses `"all"` as the sentinel value for "no filter" — do not use `"all"` as a real option value
|
|
57
|
-
- Active filters get an accent border highlight automatically
|
|
1
|
+
# FilterBar
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/filter-bar
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Exports
|
|
8
|
+
FilterBar, FilterSelect, FilterMultiSelect
|
|
9
|
+
|
|
10
|
+
## Props
|
|
11
|
+
|
|
12
|
+
### FilterBar
|
|
13
|
+
searchValue: string
|
|
14
|
+
onSearchChange: (value: string) => void (renders SearchInput when provided)
|
|
15
|
+
searchPlaceholder: string
|
|
16
|
+
onClearAll: () => void (renders "Clear all" button when provided)
|
|
17
|
+
size: "xs" | "sm" | "md" (propagated to all child controls via context)
|
|
18
|
+
children: ReactNode (FilterSelect / FilterMultiSelect controls)
|
|
19
|
+
|
|
20
|
+
### FilterSelect
|
|
21
|
+
label: string
|
|
22
|
+
value: string
|
|
23
|
+
onValueChange: (value: string) => void
|
|
24
|
+
options: { value: string; label: string }[]
|
|
25
|
+
allLabel: string (label for the "all" option)
|
|
26
|
+
|
|
27
|
+
### FilterMultiSelect
|
|
28
|
+
label: string
|
|
29
|
+
value: string[]
|
|
30
|
+
onValueChange: (values: string[]) => void
|
|
31
|
+
options: { value: string; label: string }[]
|
|
32
|
+
|
|
33
|
+
## Defaults
|
|
34
|
+
size="sm", searchPlaceholder="Search...", allLabel="All"
|
|
35
|
+
|
|
36
|
+
## Example
|
|
37
|
+
```jsx
|
|
38
|
+
<FilterBar searchValue={search} onSearchChange={setSearch} onClearAll={clearFilters}>
|
|
39
|
+
<FilterSelect
|
|
40
|
+
label="Status"
|
|
41
|
+
value={status}
|
|
42
|
+
onValueChange={setStatus}
|
|
43
|
+
options={[{ value: 'active', label: 'Active' }, { value: 'done', label: 'Done' }]}
|
|
44
|
+
/>
|
|
45
|
+
<FilterMultiSelect
|
|
46
|
+
label="Assignees"
|
|
47
|
+
value={assignees}
|
|
48
|
+
onValueChange={setAssignees}
|
|
49
|
+
options={memberOptions}
|
|
50
|
+
/>
|
|
51
|
+
</FilterBar>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Gotchas
|
|
55
|
+
- FilterSelect and FilterMultiSelect must be direct children of FilterBar to inherit the size context
|
|
56
|
+
- FilterSelect uses `"all"` as the sentinel value for "no filter" — do not use `"all"` as a real option value
|
|
57
|
+
- Active filters get an accent border highlight automatically
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
# FormSection
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/form-section
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
title: string
|
|
9
|
-
description: string (subtitle text below the title)
|
|
10
|
-
collapsible: boolean (wraps content in a Collapsible)
|
|
11
|
-
defaultOpen: boolean (initial open state when collapsible)
|
|
12
|
-
children: ReactNode (form fields)
|
|
13
|
-
|
|
14
|
-
## Defaults
|
|
15
|
-
collapsible={false}, defaultOpen={true}
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
```jsx
|
|
19
|
-
<FormSection title="General" description="Basic project settings">
|
|
20
|
-
<FormField .../>
|
|
21
|
-
<FormField .../>
|
|
22
|
-
</FormSection>
|
|
23
|
-
|
|
24
|
-
<FormSection title="Advanced" collapsible defaultOpen={false}>
|
|
25
|
-
<FormField .../>
|
|
26
|
-
</FormSection>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Gotchas
|
|
30
|
-
- `defaultOpen` only applies when `collapsible={true}` — otherwise the section is always open
|
|
31
|
-
- Renders a horizontal rule between the header and content automatically
|
|
1
|
+
# FormSection
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/form-section
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
title: string
|
|
9
|
+
description: string (subtitle text below the title)
|
|
10
|
+
collapsible: boolean (wraps content in a Collapsible)
|
|
11
|
+
defaultOpen: boolean (initial open state when collapsible)
|
|
12
|
+
children: ReactNode (form fields)
|
|
13
|
+
|
|
14
|
+
## Defaults
|
|
15
|
+
collapsible={false}, defaultOpen={true}
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
```jsx
|
|
19
|
+
<FormSection title="General" description="Basic project settings">
|
|
20
|
+
<FormField .../>
|
|
21
|
+
<FormField .../>
|
|
22
|
+
</FormSection>
|
|
23
|
+
|
|
24
|
+
<FormSection title="Advanced" collapsible defaultOpen={false}>
|
|
25
|
+
<FormField .../>
|
|
26
|
+
</FormSection>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Gotchas
|
|
30
|
+
- `defaultOpen` only applies when `collapsible={true}` — otherwise the section is always open
|
|
31
|
+
- Renders a horizontal rule between the header and content automatically
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# GlobalLoading
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/global-loading
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
isLoading: boolean (REQUIRED)
|
|
9
|
-
|
|
10
|
-
## Defaults
|
|
11
|
-
None
|
|
12
|
-
|
|
13
|
-
## Example
|
|
14
|
-
```jsx
|
|
15
|
-
<GlobalLoading isLoading={isNavigating} />
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Gotchas
|
|
19
|
-
- Fixed-position bar at top of viewport (z-toast layer)
|
|
20
|
-
- Renders nothing when `isLoading` is false
|
|
21
|
-
|
|
22
|
-
## Changes
|
|
23
|
-
### v0.18.0
|
|
24
|
-
- **Fixed** Track `setTimeout` with ref, add cleanup on unmount
|
|
25
|
-
|
|
26
|
-
### v0.1.0
|
|
27
|
-
- **Added** Initial release
|
|
1
|
+
# GlobalLoading
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/global-loading
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
isLoading: boolean (REQUIRED)
|
|
9
|
+
|
|
10
|
+
## Defaults
|
|
11
|
+
None
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
```jsx
|
|
15
|
+
<GlobalLoading isLoading={isNavigating} />
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Gotchas
|
|
19
|
+
- Fixed-position bar at top of viewport (z-toast layer)
|
|
20
|
+
- Renders nothing when `isLoading` is false
|
|
21
|
+
|
|
22
|
+
## Changes
|
|
23
|
+
### v0.18.0
|
|
24
|
+
- **Fixed** Track `setTimeout` with ref, add cleanup on unmount
|
|
25
|
+
|
|
26
|
+
### v0.1.0
|
|
27
|
+
- **Added** Initial release
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# InlineEdit
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/inline-edit
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
value: string (current text value)
|
|
9
|
-
onSave: (newValue: string) => void | Promise<void> (called on commit; async shows spinner)
|
|
10
|
-
placeholder: string (shown when value is empty)
|
|
11
|
-
textClassName: string (CSS class for the editable text, e.g. "text-ds-lg font-semibold")
|
|
12
|
-
readOnly: boolean
|
|
13
|
-
maxLength: number
|
|
14
|
-
saving: boolean (external saving state — shows spinner, disables editing)
|
|
15
|
-
|
|
16
|
-
## Defaults
|
|
17
|
-
placeholder="Click to edit", readOnly={false}, saving={false}
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
```jsx
|
|
21
|
-
<InlineEdit
|
|
22
|
-
value={title}
|
|
23
|
-
onSave={(v) => updateTitle(v)}
|
|
24
|
-
textClassName="text-ds-lg font-semibold"
|
|
25
|
-
/>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Gotchas
|
|
29
|
-
- Uses contentEditable — the text IS the editor. No input field appears.
|
|
30
|
-
- Click to focus → cursor appears in text. Type to edit. Enter saves. Escape reverts.
|
|
31
|
-
- Text is auto-selected on focus (like renaming a file in Finder)
|
|
32
|
-
- Paste is restricted to plain text (no rich content)
|
|
33
|
-
- The value is trimmed before calling `onSave`; if unchanged, `onSave` is not called
|
|
34
|
-
- If `onSave` returns a Promise, a spinner is shown and editing is disabled until it resolves
|
|
35
|
-
- On Promise rejection, the text reverts to the original value
|
|
1
|
+
# InlineEdit
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/inline-edit
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
value: string (current text value)
|
|
9
|
+
onSave: (newValue: string) => void | Promise<void> (called on commit; async shows spinner)
|
|
10
|
+
placeholder: string (shown when value is empty)
|
|
11
|
+
textClassName: string (CSS class for the editable text, e.g. "text-ds-lg font-semibold")
|
|
12
|
+
readOnly: boolean
|
|
13
|
+
maxLength: number
|
|
14
|
+
saving: boolean (external saving state — shows spinner, disables editing)
|
|
15
|
+
|
|
16
|
+
## Defaults
|
|
17
|
+
placeholder="Click to edit", readOnly={false}, saving={false}
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
```jsx
|
|
21
|
+
<InlineEdit
|
|
22
|
+
value={title}
|
|
23
|
+
onSave={(v) => updateTitle(v)}
|
|
24
|
+
textClassName="text-ds-lg font-semibold"
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Gotchas
|
|
29
|
+
- Uses contentEditable — the text IS the editor. No input field appears.
|
|
30
|
+
- Click to focus → cursor appears in text. Type to edit. Enter saves. Escape reverts.
|
|
31
|
+
- Text is auto-selected on focus (like renaming a file in Finder)
|
|
32
|
+
- Paste is restricted to plain text (no rich content)
|
|
33
|
+
- The value is trimmed before calling `onSave`; if unchanged, `onSave` is not called
|
|
34
|
+
- If `onSave` returns a Promise, a spinner is shown and editing is disabled until it resolves
|
|
35
|
+
- On Promise rejection, the text reverts to the original value
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
# LoadingSkeleton
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/loading-skeleton
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
Exports: CardSkeleton, TableSkeleton, BoardSkeleton, ListSkeleton
|
|
8
|
-
|
|
9
|
-
## Props
|
|
10
|
-
|
|
11
|
-
### CardSkeleton
|
|
12
|
-
className: string
|
|
13
|
-
|
|
14
|
-
### TableSkeleton
|
|
15
|
-
rows: number (default: 5)
|
|
16
|
-
columns: number (default: 4)
|
|
17
|
-
className: string
|
|
18
|
-
|
|
19
|
-
### BoardSkeleton
|
|
20
|
-
columns: number (default: 4)
|
|
21
|
-
cardsPerColumn: number (default: 3)
|
|
22
|
-
className: string
|
|
23
|
-
|
|
24
|
-
### ListSkeleton
|
|
25
|
-
rows: number (default: 6)
|
|
26
|
-
showAvatar: boolean (default: true)
|
|
27
|
-
className: string
|
|
28
|
-
|
|
29
|
-
## Defaults
|
|
30
|
-
TableSkeleton: rows=5, columns=4
|
|
31
|
-
BoardSkeleton: columns=4, cardsPerColumn=3
|
|
32
|
-
ListSkeleton: rows=6, showAvatar=true
|
|
33
|
-
|
|
34
|
-
## Example
|
|
35
|
-
```jsx
|
|
36
|
-
<CardSkeleton />
|
|
37
|
-
<TableSkeleton rows={8} columns={5} />
|
|
38
|
-
<BoardSkeleton columns={3} cardsPerColumn={4} />
|
|
39
|
-
<ListSkeleton rows={10} showAvatar={false} />
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Gotchas
|
|
43
|
-
- Server-safe: can be imported directly in Next.js Server Components
|
|
44
|
-
- These are pre-composed skeleton layouts — for individual skeleton shapes, use the `Skeleton` UI component
|
|
45
|
-
|
|
46
|
-
## Changes
|
|
47
|
-
### v0.2.0
|
|
48
|
-
- **Added** Identified as server-safe component
|
|
49
|
-
|
|
50
|
-
### v0.1.0
|
|
51
|
-
- **Added** Initial release
|
|
1
|
+
# LoadingSkeleton
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/loading-skeleton
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
Exports: CardSkeleton, TableSkeleton, BoardSkeleton, ListSkeleton
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
### CardSkeleton
|
|
12
|
+
className: string
|
|
13
|
+
|
|
14
|
+
### TableSkeleton
|
|
15
|
+
rows: number (default: 5)
|
|
16
|
+
columns: number (default: 4)
|
|
17
|
+
className: string
|
|
18
|
+
|
|
19
|
+
### BoardSkeleton
|
|
20
|
+
columns: number (default: 4)
|
|
21
|
+
cardsPerColumn: number (default: 3)
|
|
22
|
+
className: string
|
|
23
|
+
|
|
24
|
+
### ListSkeleton
|
|
25
|
+
rows: number (default: 6)
|
|
26
|
+
showAvatar: boolean (default: true)
|
|
27
|
+
className: string
|
|
28
|
+
|
|
29
|
+
## Defaults
|
|
30
|
+
TableSkeleton: rows=5, columns=4
|
|
31
|
+
BoardSkeleton: columns=4, cardsPerColumn=3
|
|
32
|
+
ListSkeleton: rows=6, showAvatar=true
|
|
33
|
+
|
|
34
|
+
## Example
|
|
35
|
+
```jsx
|
|
36
|
+
<CardSkeleton />
|
|
37
|
+
<TableSkeleton rows={8} columns={5} />
|
|
38
|
+
<BoardSkeleton columns={3} cardsPerColumn={4} />
|
|
39
|
+
<ListSkeleton rows={10} showAvatar={false} />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Gotchas
|
|
43
|
+
- Server-safe: can be imported directly in Next.js Server Components
|
|
44
|
+
- These are pre-composed skeleton layouts — for individual skeleton shapes, use the `Skeleton` UI component
|
|
45
|
+
|
|
46
|
+
## Changes
|
|
47
|
+
### v0.2.0
|
|
48
|
+
- **Added** Identified as server-safe component
|
|
49
|
+
|
|
50
|
+
### v0.1.0
|
|
51
|
+
- **Added** Initial release
|