@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,27 +1,27 @@
|
|
|
1
|
-
# MarkdownViewer
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/markdown-viewer
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
content: string (markdown source)
|
|
9
|
-
compact: boolean (tighter spacing for inline use)
|
|
10
|
-
allowHtml: boolean (allow raw HTML in markdown)
|
|
11
|
-
linkTarget: string (target attribute for links)
|
|
12
|
-
|
|
13
|
-
## Defaults
|
|
14
|
-
compact={false}, allowHtml={false}, linkTarget="_blank"
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
```jsx
|
|
18
|
-
<MarkdownViewer content={message.body} />
|
|
19
|
-
<MarkdownViewer content={comment} compact />
|
|
20
|
-
<MarkdownViewer content={trustedHtml} allowHtml />
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Gotchas
|
|
24
|
-
- Code blocks with a language fence are syntax-highlighted via `react-syntax-highlighter` (lazy-loaded) — the first render shows a plain `<pre>` fallback
|
|
25
|
-
- GFM (tables, strikethrough, task lists) is supported via `remark-gfm`
|
|
26
|
-
- Raw HTML is stripped by default — only enable `allowHtml` for trusted content
|
|
27
|
-
- Links open in a new tab by default (`target="_blank"` with `rel="noopener noreferrer"`)
|
|
1
|
+
# MarkdownViewer
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/markdown-viewer
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
content: string (markdown source)
|
|
9
|
+
compact: boolean (tighter spacing for inline use)
|
|
10
|
+
allowHtml: boolean (allow raw HTML in markdown)
|
|
11
|
+
linkTarget: string (target attribute for links)
|
|
12
|
+
|
|
13
|
+
## Defaults
|
|
14
|
+
compact={false}, allowHtml={false}, linkTarget="_blank"
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
```jsx
|
|
18
|
+
<MarkdownViewer content={message.body} />
|
|
19
|
+
<MarkdownViewer content={comment} compact />
|
|
20
|
+
<MarkdownViewer content={trustedHtml} allowHtml />
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Gotchas
|
|
24
|
+
- Code blocks with a language fence are syntax-highlighted via `react-syntax-highlighter` (lazy-loaded) — the first render shows a plain `<pre>` fallback
|
|
25
|
+
- GFM (tables, strikethrough, task lists) is supported via `remark-gfm`
|
|
26
|
+
- Raw HTML is stripped by default — only enable `allowHtml` for trusted content
|
|
27
|
+
- Links open in a new tab by default (`target="_blank"` with `rel="noopener noreferrer"`)
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# MasterDetail
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/master-detail
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Compound Components
|
|
8
|
-
MasterDetail (root), MasterDetail.List, MasterDetail.Detail, MasterDetail.ListItem
|
|
9
|
-
|
|
10
|
-
## Props
|
|
11
|
-
|
|
12
|
-
### MasterDetail (root)
|
|
13
|
-
selected: string | null (ID of currently selected item; null = show list on mobile)
|
|
14
|
-
onBack: () => void (called when mobile back button is pressed)
|
|
15
|
-
masterWidth: string (master panel width on desktop)
|
|
16
|
-
breakpoint: "sm" | "md" | "lg" (below this, stacked mobile mode activates)
|
|
17
|
-
|
|
18
|
-
### MasterDetail.ListItem
|
|
19
|
-
active: boolean (highlights the item)
|
|
20
|
-
(extends ButtonHTMLAttributes)
|
|
21
|
-
|
|
22
|
-
## Defaults
|
|
23
|
-
selected={null}, masterWidth="280px", breakpoint="md"
|
|
24
|
-
|
|
25
|
-
## Example
|
|
26
|
-
```jsx
|
|
27
|
-
<MasterDetail selected={selectedId} onBack={() => setSelectedId(null)}>
|
|
28
|
-
<MasterDetail.List>
|
|
29
|
-
{items.map((item) => (
|
|
30
|
-
<MasterDetail.ListItem
|
|
31
|
-
key={item.id}
|
|
32
|
-
active={item.id === selectedId}
|
|
33
|
-
onClick={() => setSelectedId(item.id)}
|
|
34
|
-
>
|
|
35
|
-
{item.name}
|
|
36
|
-
</MasterDetail.ListItem>
|
|
37
|
-
))}
|
|
38
|
-
</MasterDetail.List>
|
|
39
|
-
<MasterDetail.Detail>
|
|
40
|
-
{selectedId ? <ItemDetail id={selectedId} /> : <EmptyState />}
|
|
41
|
-
</MasterDetail.Detail>
|
|
42
|
-
</MasterDetail>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Gotchas
|
|
46
|
-
- On mobile (below breakpoint), List and Detail are mutually exclusive — selecting an item hides the list
|
|
47
|
-
- The `onBack` callback is required for the mobile back button to appear in the Detail pane
|
|
48
|
-
- Uses `window.matchMedia` — SSR renders desktop layout initially, then hydrates to correct mode
|
|
1
|
+
# MasterDetail
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/master-detail
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Compound Components
|
|
8
|
+
MasterDetail (root), MasterDetail.List, MasterDetail.Detail, MasterDetail.ListItem
|
|
9
|
+
|
|
10
|
+
## Props
|
|
11
|
+
|
|
12
|
+
### MasterDetail (root)
|
|
13
|
+
selected: string | null (ID of currently selected item; null = show list on mobile)
|
|
14
|
+
onBack: () => void (called when mobile back button is pressed)
|
|
15
|
+
masterWidth: string (master panel width on desktop)
|
|
16
|
+
breakpoint: "sm" | "md" | "lg" (below this, stacked mobile mode activates)
|
|
17
|
+
|
|
18
|
+
### MasterDetail.ListItem
|
|
19
|
+
active: boolean (highlights the item)
|
|
20
|
+
(extends ButtonHTMLAttributes)
|
|
21
|
+
|
|
22
|
+
## Defaults
|
|
23
|
+
selected={null}, masterWidth="280px", breakpoint="md"
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
```jsx
|
|
27
|
+
<MasterDetail selected={selectedId} onBack={() => setSelectedId(null)}>
|
|
28
|
+
<MasterDetail.List>
|
|
29
|
+
{items.map((item) => (
|
|
30
|
+
<MasterDetail.ListItem
|
|
31
|
+
key={item.id}
|
|
32
|
+
active={item.id === selectedId}
|
|
33
|
+
onClick={() => setSelectedId(item.id)}
|
|
34
|
+
>
|
|
35
|
+
{item.name}
|
|
36
|
+
</MasterDetail.ListItem>
|
|
37
|
+
))}
|
|
38
|
+
</MasterDetail.List>
|
|
39
|
+
<MasterDetail.Detail>
|
|
40
|
+
{selectedId ? <ItemDetail id={selectedId} /> : <EmptyState />}
|
|
41
|
+
</MasterDetail.Detail>
|
|
42
|
+
</MasterDetail>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Gotchas
|
|
46
|
+
- On mobile (below breakpoint), List and Detail are mutually exclusive — selecting an item hides the list
|
|
47
|
+
- The `onBack` callback is required for the mobile back button to appear in the Detail pane
|
|
48
|
+
- Uses `window.matchMedia` — SSR renders desktop layout initially, then hydrates to correct mode
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# MemberPicker
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/member-picker
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
members: MemberPickerMember[] (REQUIRED) — { id, name, avatar? }
|
|
9
|
-
selectedIds: string[] (REQUIRED)
|
|
10
|
-
onSelect: (memberId: string) => void (REQUIRED)
|
|
11
|
-
multiple: boolean (default: false)
|
|
12
|
-
placeholder: string (default: "Search members...")
|
|
13
|
-
children: ReactNode (trigger element)
|
|
14
|
-
|
|
15
|
-
## Defaults
|
|
16
|
-
multiple=false, placeholder="Search members..."
|
|
17
|
-
|
|
18
|
-
## Example
|
|
19
|
-
```jsx
|
|
20
|
-
<MemberPicker members={teamMembers} selectedIds={assignees} onSelect={toggleAssignee} multiple>
|
|
21
|
-
<Button variant="outline">Assign Members</Button>
|
|
22
|
-
</MemberPicker>
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Gotchas
|
|
26
|
-
- `children` is used as the trigger element (e.g., a Button)
|
|
27
|
-
- `onSelect` is called with a single `memberId` — toggle logic is up to the consumer
|
|
28
|
-
- When `multiple=false`, selecting a new member replaces the previous selection
|
|
29
|
-
|
|
30
|
-
## Changes
|
|
31
|
-
### v0.18.0
|
|
32
|
-
- **Fixed** Added `aria-label` to search input
|
|
33
|
-
|
|
34
|
-
### v0.1.0
|
|
35
|
-
- **Added** Initial release
|
|
1
|
+
# MemberPicker
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/member-picker
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
members: MemberPickerMember[] (REQUIRED) — { id, name, avatar? }
|
|
9
|
+
selectedIds: string[] (REQUIRED)
|
|
10
|
+
onSelect: (memberId: string) => void (REQUIRED)
|
|
11
|
+
multiple: boolean (default: false)
|
|
12
|
+
placeholder: string (default: "Search members...")
|
|
13
|
+
children: ReactNode (trigger element)
|
|
14
|
+
|
|
15
|
+
## Defaults
|
|
16
|
+
multiple=false, placeholder="Search members..."
|
|
17
|
+
|
|
18
|
+
## Example
|
|
19
|
+
```jsx
|
|
20
|
+
<MemberPicker members={teamMembers} selectedIds={assignees} onSelect={toggleAssignee} multiple>
|
|
21
|
+
<Button variant="outline">Assign Members</Button>
|
|
22
|
+
</MemberPicker>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Gotchas
|
|
26
|
+
- `children` is used as the trigger element (e.g., a Button)
|
|
27
|
+
- `onSelect` is called with a single `memberId` — toggle logic is up to the consumer
|
|
28
|
+
- When `multiple=false`, selecting a new member replaces the previous selection
|
|
29
|
+
|
|
30
|
+
## Changes
|
|
31
|
+
### v0.18.0
|
|
32
|
+
- **Fixed** Added `aria-label` to search input
|
|
33
|
+
|
|
34
|
+
### v0.1.0
|
|
35
|
+
- **Added** Initial release
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
# MultiSelectPopover
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/multi-select-popover
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
items: MultiSelectItem[] (flat list — use `groups` for grouped rendering)
|
|
9
|
-
groups: MultiSelectGroup[] (grouped items with section headers)
|
|
10
|
-
value: string[] (currently selected item IDs)
|
|
11
|
-
onValueChange: (ids: string[]) => void
|
|
12
|
-
searchPlaceholder: string
|
|
13
|
-
onSearch: (query: string) => Promise<MultiSelectItem[]> (async search — replaces local filter)
|
|
14
|
-
searchDebounce: number (debounce for async search in ms)
|
|
15
|
-
renderItem: (item: MultiSelectItem, selected: boolean) => ReactNode (custom item renderer)
|
|
16
|
-
emptyMessage: string (message when no items match)
|
|
17
|
-
maxSelections: number (cap on selections)
|
|
18
|
-
align: "start" | "center" | "end"
|
|
19
|
-
width: string | number (popover width)
|
|
20
|
-
children: ReactNode (trigger element)
|
|
21
|
-
|
|
22
|
-
### MultiSelectItem
|
|
23
|
-
id: string
|
|
24
|
-
label: string
|
|
25
|
-
image?: string
|
|
26
|
-
description?: string
|
|
27
|
-
disabled?: boolean
|
|
28
|
-
|
|
29
|
-
### MultiSelectGroup
|
|
30
|
-
label: string
|
|
31
|
-
items: MultiSelectItem[]
|
|
32
|
-
|
|
33
|
-
## Defaults
|
|
34
|
-
searchPlaceholder="Search...", searchDebounce={300}, emptyMessage="No results found", align="start", width={240}
|
|
35
|
-
|
|
36
|
-
## Example
|
|
37
|
-
```jsx
|
|
38
|
-
<MultiSelectPopover
|
|
39
|
-
items={[
|
|
40
|
-
{ id: '1', label: 'Alice', image: '/alice.jpg' },
|
|
41
|
-
{ id: '2', label: 'Bob' },
|
|
42
|
-
]}
|
|
43
|
-
value={selected}
|
|
44
|
-
onValueChange={setSelected}
|
|
45
|
-
>
|
|
46
|
-
<Button>Assign members</Button>
|
|
47
|
-
</MultiSelectPopover>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Gotchas
|
|
51
|
-
- Supply either `items` (flat) or `groups` (sectioned), not both
|
|
52
|
-
- When `onSearch` is provided, local filtering is disabled — the callback must return results
|
|
53
|
-
- Search state resets when the popover closes
|
|
54
|
-
- `maxSelections: 1` acts as single-select — clicking a new item replaces the current one
|
|
55
|
-
|
|
56
|
-
## Changes
|
|
57
|
-
|
|
58
|
-
### v0.27.2
|
|
59
|
-
- **Fixed** `maxSelections` at limit now replaces oldest selection instead of blocking. Single-select (`maxSelections: 1`) swaps in the new value.
|
|
60
|
-
|
|
61
|
-
### v0.26.0
|
|
62
|
-
- **Added** Initial release
|
|
1
|
+
# MultiSelectPopover
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/multi-select-popover
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
items: MultiSelectItem[] (flat list — use `groups` for grouped rendering)
|
|
9
|
+
groups: MultiSelectGroup[] (grouped items with section headers)
|
|
10
|
+
value: string[] (currently selected item IDs)
|
|
11
|
+
onValueChange: (ids: string[]) => void
|
|
12
|
+
searchPlaceholder: string
|
|
13
|
+
onSearch: (query: string) => Promise<MultiSelectItem[]> (async search — replaces local filter)
|
|
14
|
+
searchDebounce: number (debounce for async search in ms)
|
|
15
|
+
renderItem: (item: MultiSelectItem, selected: boolean) => ReactNode (custom item renderer)
|
|
16
|
+
emptyMessage: string (message when no items match)
|
|
17
|
+
maxSelections: number (cap on selections)
|
|
18
|
+
align: "start" | "center" | "end"
|
|
19
|
+
width: string | number (popover width)
|
|
20
|
+
children: ReactNode (trigger element)
|
|
21
|
+
|
|
22
|
+
### MultiSelectItem
|
|
23
|
+
id: string
|
|
24
|
+
label: string
|
|
25
|
+
image?: string
|
|
26
|
+
description?: string
|
|
27
|
+
disabled?: boolean
|
|
28
|
+
|
|
29
|
+
### MultiSelectGroup
|
|
30
|
+
label: string
|
|
31
|
+
items: MultiSelectItem[]
|
|
32
|
+
|
|
33
|
+
## Defaults
|
|
34
|
+
searchPlaceholder="Search...", searchDebounce={300}, emptyMessage="No results found", align="start", width={240}
|
|
35
|
+
|
|
36
|
+
## Example
|
|
37
|
+
```jsx
|
|
38
|
+
<MultiSelectPopover
|
|
39
|
+
items={[
|
|
40
|
+
{ id: '1', label: 'Alice', image: '/alice.jpg' },
|
|
41
|
+
{ id: '2', label: 'Bob' },
|
|
42
|
+
]}
|
|
43
|
+
value={selected}
|
|
44
|
+
onValueChange={setSelected}
|
|
45
|
+
>
|
|
46
|
+
<Button>Assign members</Button>
|
|
47
|
+
</MultiSelectPopover>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Gotchas
|
|
51
|
+
- Supply either `items` (flat) or `groups` (sectioned), not both
|
|
52
|
+
- When `onSearch` is provided, local filtering is disabled — the callback must return results
|
|
53
|
+
- Search state resets when the popover closes
|
|
54
|
+
- `maxSelections: 1` acts as single-select — clicking a new item replaces the current one
|
|
55
|
+
|
|
56
|
+
## Changes
|
|
57
|
+
|
|
58
|
+
### v0.27.2
|
|
59
|
+
- **Fixed** `maxSelections` at limit now replaces oldest selection instead of blocking. Single-select (`maxSelections: 1`) swaps in the new value.
|
|
60
|
+
|
|
61
|
+
### v0.26.0
|
|
62
|
+
- **Added** Initial release
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# PageHeader
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/page-header
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
title: string (falls back to last breadcrumb label if omitted)
|
|
9
|
-
subtitle: string
|
|
10
|
-
actions: ReactNode (action buttons)
|
|
11
|
-
breadcrumbs: Breadcrumb[] — { label: string, href?: string }
|
|
12
|
-
titleClassName: string
|
|
13
|
-
|
|
14
|
-
## Defaults
|
|
15
|
-
None
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
```jsx
|
|
19
|
-
<PageHeader
|
|
20
|
-
title="Project Settings"
|
|
21
|
-
subtitle="Configure your project preferences"
|
|
22
|
-
breadcrumbs={[
|
|
23
|
-
{ label: 'Home', href: '/' },
|
|
24
|
-
{ label: 'Projects', href: '/projects' },
|
|
25
|
-
{ label: 'Settings' },
|
|
26
|
-
]}
|
|
27
|
-
actions={<Button>Save</Button>}
|
|
28
|
-
/>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Gotchas
|
|
32
|
-
- Server-safe: can be imported directly in Next.js Server Components
|
|
33
|
-
- If `title` is omitted, the last breadcrumb's `label` is used as the page title
|
|
34
|
-
- The last breadcrumb should not have an `href` (it represents the current page)
|
|
35
|
-
|
|
36
|
-
## Changes
|
|
37
|
-
### v0.2.0
|
|
38
|
-
- **Added** Identified as server-safe component
|
|
39
|
-
|
|
40
|
-
### v0.1.0
|
|
41
|
-
- **Added** Initial release
|
|
1
|
+
# PageHeader
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/page-header
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
title: string (falls back to last breadcrumb label if omitted)
|
|
9
|
+
subtitle: string
|
|
10
|
+
actions: ReactNode (action buttons)
|
|
11
|
+
breadcrumbs: Breadcrumb[] — { label: string, href?: string }
|
|
12
|
+
titleClassName: string
|
|
13
|
+
|
|
14
|
+
## Defaults
|
|
15
|
+
None
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
```jsx
|
|
19
|
+
<PageHeader
|
|
20
|
+
title="Project Settings"
|
|
21
|
+
subtitle="Configure your project preferences"
|
|
22
|
+
breadcrumbs={[
|
|
23
|
+
{ label: 'Home', href: '/' },
|
|
24
|
+
{ label: 'Projects', href: '/projects' },
|
|
25
|
+
{ label: 'Settings' },
|
|
26
|
+
]}
|
|
27
|
+
actions={<Button>Save</Button>}
|
|
28
|
+
/>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Gotchas
|
|
32
|
+
- Server-safe: can be imported directly in Next.js Server Components
|
|
33
|
+
- If `title` is omitted, the last breadcrumb's `label` is used as the page title
|
|
34
|
+
- The last breadcrumb should not have an `href` (it represents the current page)
|
|
35
|
+
|
|
36
|
+
## Changes
|
|
37
|
+
### v0.2.0
|
|
38
|
+
- **Added** Identified as server-safe component
|
|
39
|
+
|
|
40
|
+
### v0.1.0
|
|
41
|
+
- **Added** Initial release
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# PageSkeletons
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/page-skeletons
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
Exports: DashboardSkeleton, ProjectListSkeleton, TaskDetailSkeleton
|
|
8
|
-
|
|
9
|
-
## Props
|
|
10
|
-
className?: string (plus all standard HTML div attributes via React.ComponentPropsWithoutRef<'div'>)
|
|
11
|
-
|
|
12
|
-
## Defaults
|
|
13
|
-
None
|
|
14
|
-
|
|
15
|
-
## Example
|
|
16
|
-
```jsx
|
|
17
|
-
<DashboardSkeleton />
|
|
18
|
-
<ProjectListSkeleton />
|
|
19
|
-
<TaskDetailSkeleton />
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Gotchas
|
|
23
|
-
- Server-safe: can be imported directly in Next.js Server Components
|
|
24
|
-
- These are full-page skeleton layouts — for smaller skeleton sections, use LoadingSkeleton components
|
|
25
|
-
- Accept `className` and standard div attributes but render fixed layout structures
|
|
26
|
-
|
|
27
|
-
## Changes
|
|
28
|
-
### v0.2.0
|
|
29
|
-
- **Added** Identified as server-safe component
|
|
30
|
-
|
|
31
|
-
### v0.1.0
|
|
32
|
-
- **Added** Initial release
|
|
1
|
+
# PageSkeletons
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/page-skeletons
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
Exports: DashboardSkeleton, ProjectListSkeleton, TaskDetailSkeleton
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
className?: string (plus all standard HTML div attributes via React.ComponentPropsWithoutRef<'div'>)
|
|
11
|
+
|
|
12
|
+
## Defaults
|
|
13
|
+
None
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
```jsx
|
|
17
|
+
<DashboardSkeleton />
|
|
18
|
+
<ProjectListSkeleton />
|
|
19
|
+
<TaskDetailSkeleton />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Gotchas
|
|
23
|
+
- Server-safe: can be imported directly in Next.js Server Components
|
|
24
|
+
- These are full-page skeleton layouts — for smaller skeleton sections, use LoadingSkeleton components
|
|
25
|
+
- Accept `className` and standard div attributes but render fixed layout structures
|
|
26
|
+
|
|
27
|
+
## Changes
|
|
28
|
+
### v0.2.0
|
|
29
|
+
- **Added** Identified as server-safe component
|
|
30
|
+
|
|
31
|
+
### v0.1.0
|
|
32
|
+
- **Added** Initial release
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# PriorityIndicator
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/priority-indicator
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
priority: Priority
|
|
9
|
-
display: "compact" | "full" (default: "full")
|
|
10
|
-
|
|
11
|
-
Priority = 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT' | 'low' | 'medium' | 'high' | 'urgent'
|
|
12
|
-
|
|
13
|
-
## Defaults
|
|
14
|
-
display="full"
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
```jsx
|
|
18
|
-
<PriorityIndicator priority="HIGH" />
|
|
19
|
-
<PriorityIndicator priority="low" display="compact" />
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Gotchas
|
|
23
|
-
- Case-insensitive — "low" and "LOW" both work
|
|
24
|
-
- Server-safe: can be imported directly in Next.js Server Components
|
|
25
|
-
- `compact` display shows only the icon; `full` shows icon + text label
|
|
26
|
-
|
|
27
|
-
## Changes
|
|
28
|
-
### v0.2.0
|
|
29
|
-
- **Added** Identified as server-safe component
|
|
30
|
-
|
|
31
|
-
### v0.1.0
|
|
32
|
-
- **Added** Initial release
|
|
1
|
+
# PriorityIndicator
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/priority-indicator
|
|
4
|
+
- Server-safe: Yes
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
priority: Priority
|
|
9
|
+
display: "compact" | "full" (default: "full")
|
|
10
|
+
|
|
11
|
+
Priority = 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT' | 'low' | 'medium' | 'high' | 'urgent'
|
|
12
|
+
|
|
13
|
+
## Defaults
|
|
14
|
+
display="full"
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
```jsx
|
|
18
|
+
<PriorityIndicator priority="HIGH" />
|
|
19
|
+
<PriorityIndicator priority="low" display="compact" />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Gotchas
|
|
23
|
+
- Case-insensitive — "low" and "LOW" both work
|
|
24
|
+
- Server-safe: can be imported directly in Next.js Server Components
|
|
25
|
+
- `compact` display shows only the icon; `full` shows icon + text label
|
|
26
|
+
|
|
27
|
+
## Changes
|
|
28
|
+
### v0.2.0
|
|
29
|
+
- **Added** Identified as server-safe component
|
|
30
|
+
|
|
31
|
+
### v0.1.0
|
|
32
|
+
- **Added** Initial release
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# ResponsiveOverlay
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/composed/responsive-overlay
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: composed
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
open: boolean
|
|
9
|
-
onOpenChange: (open: boolean) => void
|
|
10
|
-
title: string
|
|
11
|
-
description: string
|
|
12
|
-
breakpoint: "sm" | "md" (below this renders as bottom Sheet; above as Dialog)
|
|
13
|
-
children: ReactNode
|
|
14
|
-
className: string
|
|
15
|
-
|
|
16
|
-
## Defaults
|
|
17
|
-
breakpoint="md"
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
```jsx
|
|
21
|
-
<ResponsiveOverlay
|
|
22
|
-
open={open}
|
|
23
|
-
onOpenChange={setOpen}
|
|
24
|
-
title="Edit task"
|
|
25
|
-
description="Update the task details"
|
|
26
|
-
>
|
|
27
|
-
<TaskForm />
|
|
28
|
-
</ResponsiveOverlay>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Gotchas
|
|
32
|
-
- Renders a centered Dialog on desktop and a bottom Sheet on mobile — same content, different container
|
|
33
|
-
- Uses `window.matchMedia` internally — SSR defaults to desktop (Dialog) until hydration
|
|
34
|
-
- Title and description are optional; if omitted, no header is rendered in either mode
|
|
1
|
+
# ResponsiveOverlay
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/composed/responsive-overlay
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: composed
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
open: boolean
|
|
9
|
+
onOpenChange: (open: boolean) => void
|
|
10
|
+
title: string
|
|
11
|
+
description: string
|
|
12
|
+
breakpoint: "sm" | "md" (below this renders as bottom Sheet; above as Dialog)
|
|
13
|
+
children: ReactNode
|
|
14
|
+
className: string
|
|
15
|
+
|
|
16
|
+
## Defaults
|
|
17
|
+
breakpoint="md"
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
```jsx
|
|
21
|
+
<ResponsiveOverlay
|
|
22
|
+
open={open}
|
|
23
|
+
onOpenChange={setOpen}
|
|
24
|
+
title="Edit task"
|
|
25
|
+
description="Update the task details"
|
|
26
|
+
>
|
|
27
|
+
<TaskForm />
|
|
28
|
+
</ResponsiveOverlay>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Gotchas
|
|
32
|
+
- Renders a centered Dialog on desktop and a bottom Sheet on mobile — same content, different container
|
|
33
|
+
- Uses `window.matchMedia` internally — SSR defaults to desktop (Dialog) until hydration
|
|
34
|
+
- Title and description are optional; if omitted, no header is rendered in either mode
|