@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,48 +1,48 @@
|
|
|
1
|
-
# CommandRegistry
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/shell/command-registry
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: shell
|
|
6
|
-
|
|
7
|
-
Exports: CommandRegistryProvider, useCommandRegistry
|
|
8
|
-
|
|
9
|
-
## Props
|
|
10
|
-
|
|
11
|
-
### CommandRegistryProvider
|
|
12
|
-
children: ReactNode
|
|
13
|
-
registry: CommandRegistry (REQUIRED)
|
|
14
|
-
|
|
15
|
-
CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
|
|
16
|
-
CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
|
|
17
|
-
|
|
18
|
-
### useCommandRegistry hook
|
|
19
|
-
Returns: CommandRegistry | null
|
|
20
|
-
|
|
21
|
-
## Defaults
|
|
22
|
-
None
|
|
23
|
-
|
|
24
|
-
## Example
|
|
25
|
-
```jsx
|
|
26
|
-
<CommandRegistryProvider
|
|
27
|
-
registry={{
|
|
28
|
-
pages: [
|
|
29
|
-
{ id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
|
|
30
|
-
{ id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
|
|
31
|
-
],
|
|
32
|
-
adminPages: [
|
|
33
|
-
{ id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
|
|
34
|
-
],
|
|
35
|
-
}}
|
|
36
|
-
>
|
|
37
|
-
<App />
|
|
38
|
-
</CommandRegistryProvider>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Gotchas
|
|
42
|
-
- Provides the command registry context consumed by AppCommandPalette
|
|
43
|
-
- Place at app root, wrapping both AppCommandPalette and the rest of the app
|
|
44
|
-
- `useCommandRegistry()` returns `null` if no provider is found — handle this case
|
|
45
|
-
|
|
46
|
-
## Changes
|
|
47
|
-
### v0.1.0
|
|
48
|
-
- **Added** Initial release
|
|
1
|
+
# CommandRegistry
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/shell/command-registry
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: shell
|
|
6
|
+
|
|
7
|
+
Exports: CommandRegistryProvider, useCommandRegistry
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
### CommandRegistryProvider
|
|
12
|
+
children: ReactNode
|
|
13
|
+
registry: CommandRegistry (REQUIRED)
|
|
14
|
+
|
|
15
|
+
CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
|
|
16
|
+
CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
|
|
17
|
+
|
|
18
|
+
### useCommandRegistry hook
|
|
19
|
+
Returns: CommandRegistry | null
|
|
20
|
+
|
|
21
|
+
## Defaults
|
|
22
|
+
None
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
```jsx
|
|
26
|
+
<CommandRegistryProvider
|
|
27
|
+
registry={{
|
|
28
|
+
pages: [
|
|
29
|
+
{ id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
|
|
30
|
+
{ id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
|
|
31
|
+
],
|
|
32
|
+
adminPages: [
|
|
33
|
+
{ id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
|
|
34
|
+
],
|
|
35
|
+
}}
|
|
36
|
+
>
|
|
37
|
+
<App />
|
|
38
|
+
</CommandRegistryProvider>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Gotchas
|
|
42
|
+
- Provides the command registry context consumed by AppCommandPalette
|
|
43
|
+
- Place at app root, wrapping both AppCommandPalette and the rest of the app
|
|
44
|
+
- `useCommandRegistry()` returns `null` if no provider is found — handle this case
|
|
45
|
+
|
|
46
|
+
## Changes
|
|
47
|
+
### v0.1.0
|
|
48
|
+
- **Added** Initial release
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# LinkProvider
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/shell/link-context
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: shell
|
|
6
|
-
|
|
7
|
-
Exports: LinkProvider, useLink
|
|
8
|
-
|
|
9
|
-
## Props
|
|
10
|
-
|
|
11
|
-
### LinkProvider
|
|
12
|
-
component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
|
|
13
|
-
children: ReactNode
|
|
14
|
-
|
|
15
|
-
### useLink hook
|
|
16
|
-
Returns: LinkComponent
|
|
17
|
-
|
|
18
|
-
## Defaults
|
|
19
|
-
Without LinkProvider, shell components render plain `<a>` tags
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
```jsx
|
|
23
|
-
import Link from 'next/link'
|
|
24
|
-
|
|
25
|
-
<LinkProvider component={Link}>
|
|
26
|
-
<AppSidebar ... />
|
|
27
|
-
<BottomNavbar ... />
|
|
28
|
-
</LinkProvider>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Gotchas
|
|
32
|
-
- Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
|
|
33
|
-
- Place at app root, wrapping all shell components that render navigation links
|
|
34
|
-
- The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
|
|
35
|
-
|
|
36
|
-
## Changes
|
|
37
|
-
### v0.1.1
|
|
38
|
-
- **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
|
|
39
|
-
|
|
40
|
-
### v0.1.0
|
|
41
|
-
- **Added** Initial release (with hardcoded Next.js Link dependency)
|
|
1
|
+
# LinkProvider
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/shell/link-context
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: shell
|
|
6
|
+
|
|
7
|
+
Exports: LinkProvider, useLink
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
### LinkProvider
|
|
12
|
+
component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
|
|
13
|
+
children: ReactNode
|
|
14
|
+
|
|
15
|
+
### useLink hook
|
|
16
|
+
Returns: LinkComponent
|
|
17
|
+
|
|
18
|
+
## Defaults
|
|
19
|
+
Without LinkProvider, shell components render plain `<a>` tags
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
```jsx
|
|
23
|
+
import Link from 'next/link'
|
|
24
|
+
|
|
25
|
+
<LinkProvider component={Link}>
|
|
26
|
+
<AppSidebar ... />
|
|
27
|
+
<BottomNavbar ... />
|
|
28
|
+
</LinkProvider>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Gotchas
|
|
32
|
+
- Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
|
|
33
|
+
- Place at app root, wrapping all shell components that render navigation links
|
|
34
|
+
- The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
|
|
35
|
+
|
|
36
|
+
## Changes
|
|
37
|
+
### v0.1.1
|
|
38
|
+
- **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
|
|
39
|
+
|
|
40
|
+
### v0.1.0
|
|
41
|
+
- **Added** Initial release (with hardcoded Next.js Link dependency)
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
# NotificationCenter
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/shell/notification-center
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: shell
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
notifications?: Notification[]
|
|
9
|
-
unreadCount?: number (derived from notifications if not provided)
|
|
10
|
-
open?: boolean (controlled mode)
|
|
11
|
-
onOpenChange?: (open: boolean) => void
|
|
12
|
-
isLoading?: boolean
|
|
13
|
-
hasMore?: boolean
|
|
14
|
-
onFetchMore?: () => void
|
|
15
|
-
onMarkRead?: (id: string) => void
|
|
16
|
-
onMarkAllRead?: () => void
|
|
17
|
-
onNavigate?: (path: string) => void — called when a notification with a route is clicked
|
|
18
|
-
getNotificationRoute?: (notification: Notification) => string | null — returns route for a notification; defaults to () => null
|
|
19
|
-
footerSlot?: ReactNode — content rendered in a sticky footer below the scroll area
|
|
20
|
-
emptyState?: ReactNode — replaces default empty state UI
|
|
21
|
-
headerActions?: ReactNode — extra action buttons after "Mark all read"
|
|
22
|
-
popoverClassName?: string — override default popover dimensions
|
|
23
|
-
onDismiss?: (id: string) => void — when provided, each notification shows a dismiss button
|
|
24
|
-
|
|
25
|
-
Notification: { id: string, title: string, body?: string | null, tier: 'INFO' | 'IMPORTANT' | 'CRITICAL', isRead: boolean, createdAt: string, entityType?: string | null, entityId?: string | null, projectId?: string | null, project?: { title: string } | null, actions?: NotificationAction[] }
|
|
26
|
-
NotificationAction: { label: string, variant?: 'primary' | 'default' | 'danger', onClick: (id: string) => void }
|
|
27
|
-
|
|
28
|
-
## Defaults
|
|
29
|
-
getNotificationRoute defaults to () => null (no hardcoded routes)
|
|
30
|
-
|
|
31
|
-
## Example
|
|
32
|
-
```jsx
|
|
33
|
-
<NotificationCenter
|
|
34
|
-
notifications={notifications}
|
|
35
|
-
onMarkRead={markAsRead}
|
|
36
|
-
onMarkAllRead={markAllAsRead}
|
|
37
|
-
onNavigate={(path) => router.push(path)}
|
|
38
|
-
getNotificationRoute={(n) => n.entityType === 'task' ? `/tasks/${n.entityId}` : null}
|
|
39
|
-
onDismiss={(id) => dismissNotification(id)}
|
|
40
|
-
footerSlot={<Link href="/notifications">View all notifications</Link>}
|
|
41
|
-
emptyState={<p>You're all caught up!</p>}
|
|
42
|
-
headerActions={<Button variant="ghost" size="sm">Settings</Button>}
|
|
43
|
-
popoverClassName="w-[480px]"
|
|
44
|
-
/>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Gotchas
|
|
48
|
-
- Typically rendered inside TopBar's `notificationSlot` prop
|
|
49
|
-
- `getNotificationRoute` must be provided for clickable notifications — no hardcoded routes
|
|
50
|
-
- Tier dot doubles as read/unread marker (opacity-based)
|
|
51
|
-
- `onDismiss` enables per-notification dismiss buttons when provided
|
|
52
|
-
|
|
53
|
-
## Changes
|
|
54
|
-
### v0.13.0
|
|
55
|
-
- **Added** `NotificationAction` type and `actions` prop on `Notification` — inline action buttons per notification row
|
|
56
|
-
- **Fixed** Tier dot now doubles as read/unread marker (opacity-based) — removed separate unread indicator dot
|
|
57
|
-
|
|
58
|
-
### v0.1.1
|
|
59
|
-
- **Changed** Decoupled from Next.js via LinkProvider
|
|
60
|
-
- **Fixed** Added `aria-label` to bell button
|
|
61
|
-
|
|
62
|
-
### v0.1.0
|
|
63
|
-
- **Added** Initial release
|
|
1
|
+
# NotificationCenter
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/shell/notification-center
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: shell
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
notifications?: Notification[]
|
|
9
|
+
unreadCount?: number (derived from notifications if not provided)
|
|
10
|
+
open?: boolean (controlled mode)
|
|
11
|
+
onOpenChange?: (open: boolean) => void
|
|
12
|
+
isLoading?: boolean
|
|
13
|
+
hasMore?: boolean
|
|
14
|
+
onFetchMore?: () => void
|
|
15
|
+
onMarkRead?: (id: string) => void
|
|
16
|
+
onMarkAllRead?: () => void
|
|
17
|
+
onNavigate?: (path: string) => void — called when a notification with a route is clicked
|
|
18
|
+
getNotificationRoute?: (notification: Notification) => string | null — returns route for a notification; defaults to () => null
|
|
19
|
+
footerSlot?: ReactNode — content rendered in a sticky footer below the scroll area
|
|
20
|
+
emptyState?: ReactNode — replaces default empty state UI
|
|
21
|
+
headerActions?: ReactNode — extra action buttons after "Mark all read"
|
|
22
|
+
popoverClassName?: string — override default popover dimensions
|
|
23
|
+
onDismiss?: (id: string) => void — when provided, each notification shows a dismiss button
|
|
24
|
+
|
|
25
|
+
Notification: { id: string, title: string, body?: string | null, tier: 'INFO' | 'IMPORTANT' | 'CRITICAL', isRead: boolean, createdAt: string, entityType?: string | null, entityId?: string | null, projectId?: string | null, project?: { title: string } | null, actions?: NotificationAction[] }
|
|
26
|
+
NotificationAction: { label: string, variant?: 'primary' | 'default' | 'danger', onClick: (id: string) => void }
|
|
27
|
+
|
|
28
|
+
## Defaults
|
|
29
|
+
getNotificationRoute defaults to () => null (no hardcoded routes)
|
|
30
|
+
|
|
31
|
+
## Example
|
|
32
|
+
```jsx
|
|
33
|
+
<NotificationCenter
|
|
34
|
+
notifications={notifications}
|
|
35
|
+
onMarkRead={markAsRead}
|
|
36
|
+
onMarkAllRead={markAllAsRead}
|
|
37
|
+
onNavigate={(path) => router.push(path)}
|
|
38
|
+
getNotificationRoute={(n) => n.entityType === 'task' ? `/tasks/${n.entityId}` : null}
|
|
39
|
+
onDismiss={(id) => dismissNotification(id)}
|
|
40
|
+
footerSlot={<Link href="/notifications">View all notifications</Link>}
|
|
41
|
+
emptyState={<p>You're all caught up!</p>}
|
|
42
|
+
headerActions={<Button variant="ghost" size="sm">Settings</Button>}
|
|
43
|
+
popoverClassName="w-[480px]"
|
|
44
|
+
/>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Gotchas
|
|
48
|
+
- Typically rendered inside TopBar's `notificationSlot` prop
|
|
49
|
+
- `getNotificationRoute` must be provided for clickable notifications — no hardcoded routes
|
|
50
|
+
- Tier dot doubles as read/unread marker (opacity-based)
|
|
51
|
+
- `onDismiss` enables per-notification dismiss buttons when provided
|
|
52
|
+
|
|
53
|
+
## Changes
|
|
54
|
+
### v0.13.0
|
|
55
|
+
- **Added** `NotificationAction` type and `actions` prop on `Notification` — inline action buttons per notification row
|
|
56
|
+
- **Fixed** Tier dot now doubles as read/unread marker (opacity-based) — removed separate unread indicator dot
|
|
57
|
+
|
|
58
|
+
### v0.1.1
|
|
59
|
+
- **Changed** Decoupled from Next.js via LinkProvider
|
|
60
|
+
- **Fixed** Added `aria-label` to bell button
|
|
61
|
+
|
|
62
|
+
### v0.1.0
|
|
63
|
+
- **Added** Initial release
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# NotificationPreferences
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/shell/notification-preferences
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: shell
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
preferences?: NotificationPreference[]
|
|
9
|
-
projects?: NotificationProject[]
|
|
10
|
-
isLoading?: boolean
|
|
11
|
-
onSave?: (preference: { projectId, channel, minTier, muted }) => void | Promise<void>
|
|
12
|
-
onToggleMute?: (preference: NotificationPreference) => void | Promise<void>
|
|
13
|
-
onUpdateTier?: (preference: NotificationPreference, newTier: string) => void | Promise<void>
|
|
14
|
-
onDelete?: (preferenceId: string) => void | Promise<void>
|
|
15
|
-
className?: string
|
|
16
|
-
|
|
17
|
-
NotificationPreference: { id: string, userId?: string, projectId: string | null, channel: string, minTier: string, muted: boolean }
|
|
18
|
-
NotificationProject: { id: string, title: string }
|
|
19
|
-
|
|
20
|
-
## Defaults
|
|
21
|
-
None
|
|
22
|
-
|
|
23
|
-
## Example
|
|
24
|
-
```jsx
|
|
25
|
-
<NotificationPreferences
|
|
26
|
-
preferences={prefs}
|
|
27
|
-
projects={projectList}
|
|
28
|
-
onSave={handleSavePref}
|
|
29
|
-
onToggleMute={handleToggleMute}
|
|
30
|
-
onUpdateTier={handleUpdateTier}
|
|
31
|
-
onDelete={handleDeletePref}
|
|
32
|
-
/>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Gotchas
|
|
36
|
-
- Manages per-project notification preferences (channel, tier, mute)
|
|
37
|
-
- All callback props support async (Promise<void>) for server-side operations
|
|
38
|
-
- Typically rendered on a settings/preferences page
|
|
39
|
-
|
|
40
|
-
## Changes
|
|
41
|
-
### v0.1.0
|
|
42
|
-
- **Added** Initial release
|
|
1
|
+
# NotificationPreferences
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/shell/notification-preferences
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: shell
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
preferences?: NotificationPreference[]
|
|
9
|
+
projects?: NotificationProject[]
|
|
10
|
+
isLoading?: boolean
|
|
11
|
+
onSave?: (preference: { projectId, channel, minTier, muted }) => void | Promise<void>
|
|
12
|
+
onToggleMute?: (preference: NotificationPreference) => void | Promise<void>
|
|
13
|
+
onUpdateTier?: (preference: NotificationPreference, newTier: string) => void | Promise<void>
|
|
14
|
+
onDelete?: (preferenceId: string) => void | Promise<void>
|
|
15
|
+
className?: string
|
|
16
|
+
|
|
17
|
+
NotificationPreference: { id: string, userId?: string, projectId: string | null, channel: string, minTier: string, muted: boolean }
|
|
18
|
+
NotificationProject: { id: string, title: string }
|
|
19
|
+
|
|
20
|
+
## Defaults
|
|
21
|
+
None
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
```jsx
|
|
25
|
+
<NotificationPreferences
|
|
26
|
+
preferences={prefs}
|
|
27
|
+
projects={projectList}
|
|
28
|
+
onSave={handleSavePref}
|
|
29
|
+
onToggleMute={handleToggleMute}
|
|
30
|
+
onUpdateTier={handleUpdateTier}
|
|
31
|
+
onDelete={handleDeletePref}
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Gotchas
|
|
36
|
+
- Manages per-project notification preferences (channel, tier, mute)
|
|
37
|
+
- All callback props support async (Promise<void>) for server-side operations
|
|
38
|
+
- Typically rendered on a settings/preferences page
|
|
39
|
+
|
|
40
|
+
## Changes
|
|
41
|
+
### v0.1.0
|
|
42
|
+
- **Added** Initial release
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
# AppSidebar
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/shell/sidebar
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: shell
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
currentPath?: string (highlights active nav item)
|
|
9
|
-
user?: SidebarUser | null — { name, email?, image?, designation?, role? }
|
|
10
|
-
navGroups?: NavGroup[] — { label: string, items: NavItem[], action?: ReactNode }
|
|
11
|
-
logo?: ReactNode
|
|
12
|
-
footerLinks?: Array<{ label: string, href: string }> (DEPRECATED — use footer.links)
|
|
13
|
-
footer?: SidebarFooterConfig — structured footer (takes precedence over footerLinks)
|
|
14
|
-
headerSlot?: ReactNode — content between user info and navigation
|
|
15
|
-
preFooterSlot?: ReactNode — content between navigation and footer
|
|
16
|
-
preFooterClassName?: string — className on preFooterSlot wrapper div
|
|
17
|
-
renderItem?: (item: NavItem, defaultRender: () => ReactNode) => ReactNode | null — custom item rendering
|
|
18
|
-
className?: string
|
|
19
|
-
|
|
20
|
-
NavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: string | number, children?: NavSubItem[], defaultOpen?: boolean }
|
|
21
|
-
NavSubItem: { title: string, href: string, icon?: ReactNode, exact?: boolean }
|
|
22
|
-
NavGroup: { label: string, items: NavItem[], action?: ReactNode }
|
|
23
|
-
SidebarUser: { name: string, email?: string, image?: string | null, designation?: string, role?: string }
|
|
24
|
-
SidebarFooterConfig: { links?: Array<{ label: string, href: string }>, version?: string | { label: string, href: string }, slot?: ReactNode, promo?: SidebarPromo }
|
|
25
|
-
SidebarPromo: { text: string, icon?: ReactNode, action?: { label: string, href?: string, onClick?: () => void }, onDismiss?: () => void }
|
|
26
|
-
|
|
27
|
-
## Defaults
|
|
28
|
-
None
|
|
29
|
-
|
|
30
|
-
## Example
|
|
31
|
-
```jsx
|
|
32
|
-
<AppSidebar
|
|
33
|
-
currentPath="/dashboard"
|
|
34
|
-
user={{ name: 'Jane', email: 'jane@example.com' }}
|
|
35
|
-
navGroups={[{
|
|
36
|
-
label: 'Main',
|
|
37
|
-
items: [
|
|
38
|
-
{ title: 'Dashboard', href: '/dashboard', icon: <IconHome /> },
|
|
39
|
-
{ title: 'Projects', href: '/projects', icon: <IconFolder />, children: [
|
|
40
|
-
{ title: 'Karm V2', href: '/projects/abc/board' },
|
|
41
|
-
]},
|
|
42
|
-
],
|
|
43
|
-
}]}
|
|
44
|
-
footer={{
|
|
45
|
-
links: [{ label: 'Terms', href: '/terms' }],
|
|
46
|
-
version: { label: 'v2.4.1', href: '/changelog' },
|
|
47
|
-
}}
|
|
48
|
-
/>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Gotchas
|
|
52
|
-
- Must be wrapped in SidebarProvider (from ui/sidebar)
|
|
53
|
-
- Requires LinkProvider for framework-specific link components
|
|
54
|
-
- `footerLinks` is deprecated — use `footer.links` instead
|
|
55
|
-
- `renderItem` returning `null` falls back to default rendering
|
|
56
|
-
- Collapsible nav items auto-open when a child is active (matching `currentPath`)
|
|
57
|
-
- Badge numbers > 99 display as "99+"
|
|
58
|
-
|
|
59
|
-
## Changes
|
|
60
|
-
### v0.19.0
|
|
61
|
-
- **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
|
|
62
|
-
- **Changed** Interactive hover states bumped from `surface-2` to `surface-3`
|
|
63
|
-
|
|
64
|
-
### v0.18.0
|
|
65
|
-
- **Fixed** `bg-interactive-subtle` changed to `bg-accent-2` (OKLCH migration)
|
|
66
|
-
|
|
67
|
-
### v0.16.0
|
|
68
|
-
- **Added** `preFooterClassName?: string` — custom className on preFooterSlot wrapper
|
|
69
|
-
|
|
70
|
-
### v0.14.0
|
|
71
|
-
- **Changed** `footer.version` now accepts `string | { label: string; href: string }` — version can link to changelog
|
|
72
|
-
|
|
73
|
-
### v0.13.0
|
|
74
|
-
- **Added** `SidebarPromo` type and `footer.promo` prop — dismissable promo/upsell banner
|
|
75
|
-
- **Changed** Footer links and version now render on a single line separated by dividers
|
|
76
|
-
- **Fixed** Collapsible chevron wrapped in fixed-height container to prevent drift
|
|
77
|
-
- **Fixed** Collapsible chevron no longer drifts into child elements when sub-list expands
|
|
78
|
-
|
|
79
|
-
### v0.10.0
|
|
80
|
-
- **Added** Collapsible nav items with `children` array and `NavSubItem` type
|
|
81
|
-
- **Added** Nav item `badge` prop for counts/labels, caps at 99+
|
|
82
|
-
- **Added** Nav group `action` prop for buttons next to group labels
|
|
83
|
-
- **Added** Structured `footer` prop with `SidebarFooterConfig` — links, version, slot
|
|
84
|
-
- **Added** `headerSlot` and `preFooterSlot` content slots
|
|
85
|
-
- **Added** `renderItem` escape hatch for custom item rendering
|
|
86
|
-
- **Deprecated** `footerLinks` prop — use `footer.links` instead
|
|
87
|
-
|
|
88
|
-
### v0.1.1
|
|
89
|
-
- **Changed** Decoupled from Next.js via LinkProvider
|
|
90
|
-
|
|
91
|
-
### v0.1.0
|
|
92
|
-
- **Added** Initial release
|
|
1
|
+
# AppSidebar
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/shell/sidebar
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: shell
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
currentPath?: string (highlights active nav item)
|
|
9
|
+
user?: SidebarUser | null — { name, email?, image?, designation?, role? }
|
|
10
|
+
navGroups?: NavGroup[] — { label: string, items: NavItem[], action?: ReactNode }
|
|
11
|
+
logo?: ReactNode
|
|
12
|
+
footerLinks?: Array<{ label: string, href: string }> (DEPRECATED — use footer.links)
|
|
13
|
+
footer?: SidebarFooterConfig — structured footer (takes precedence over footerLinks)
|
|
14
|
+
headerSlot?: ReactNode — content between user info and navigation
|
|
15
|
+
preFooterSlot?: ReactNode — content between navigation and footer
|
|
16
|
+
preFooterClassName?: string — className on preFooterSlot wrapper div
|
|
17
|
+
renderItem?: (item: NavItem, defaultRender: () => ReactNode) => ReactNode | null — custom item rendering
|
|
18
|
+
className?: string
|
|
19
|
+
|
|
20
|
+
NavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: string | number, children?: NavSubItem[], defaultOpen?: boolean }
|
|
21
|
+
NavSubItem: { title: string, href: string, icon?: ReactNode, exact?: boolean }
|
|
22
|
+
NavGroup: { label: string, items: NavItem[], action?: ReactNode }
|
|
23
|
+
SidebarUser: { name: string, email?: string, image?: string | null, designation?: string, role?: string }
|
|
24
|
+
SidebarFooterConfig: { links?: Array<{ label: string, href: string }>, version?: string | { label: string, href: string }, slot?: ReactNode, promo?: SidebarPromo }
|
|
25
|
+
SidebarPromo: { text: string, icon?: ReactNode, action?: { label: string, href?: string, onClick?: () => void }, onDismiss?: () => void }
|
|
26
|
+
|
|
27
|
+
## Defaults
|
|
28
|
+
None
|
|
29
|
+
|
|
30
|
+
## Example
|
|
31
|
+
```jsx
|
|
32
|
+
<AppSidebar
|
|
33
|
+
currentPath="/dashboard"
|
|
34
|
+
user={{ name: 'Jane', email: 'jane@example.com' }}
|
|
35
|
+
navGroups={[{
|
|
36
|
+
label: 'Main',
|
|
37
|
+
items: [
|
|
38
|
+
{ title: 'Dashboard', href: '/dashboard', icon: <IconHome /> },
|
|
39
|
+
{ title: 'Projects', href: '/projects', icon: <IconFolder />, children: [
|
|
40
|
+
{ title: 'Karm V2', href: '/projects/abc/board' },
|
|
41
|
+
]},
|
|
42
|
+
],
|
|
43
|
+
}]}
|
|
44
|
+
footer={{
|
|
45
|
+
links: [{ label: 'Terms', href: '/terms' }],
|
|
46
|
+
version: { label: 'v2.4.1', href: '/changelog' },
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Gotchas
|
|
52
|
+
- Must be wrapped in SidebarProvider (from ui/sidebar)
|
|
53
|
+
- Requires LinkProvider for framework-specific link components
|
|
54
|
+
- `footerLinks` is deprecated — use `footer.links` instead
|
|
55
|
+
- `renderItem` returning `null` falls back to default rendering
|
|
56
|
+
- Collapsible nav items auto-open when a child is active (matching `currentPath`)
|
|
57
|
+
- Badge numbers > 99 display as "99+"
|
|
58
|
+
|
|
59
|
+
## Changes
|
|
60
|
+
### v0.19.0
|
|
61
|
+
- **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
|
|
62
|
+
- **Changed** Interactive hover states bumped from `surface-2` to `surface-3`
|
|
63
|
+
|
|
64
|
+
### v0.18.0
|
|
65
|
+
- **Fixed** `bg-interactive-subtle` changed to `bg-accent-2` (OKLCH migration)
|
|
66
|
+
|
|
67
|
+
### v0.16.0
|
|
68
|
+
- **Added** `preFooterClassName?: string` — custom className on preFooterSlot wrapper
|
|
69
|
+
|
|
70
|
+
### v0.14.0
|
|
71
|
+
- **Changed** `footer.version` now accepts `string | { label: string; href: string }` — version can link to changelog
|
|
72
|
+
|
|
73
|
+
### v0.13.0
|
|
74
|
+
- **Added** `SidebarPromo` type and `footer.promo` prop — dismissable promo/upsell banner
|
|
75
|
+
- **Changed** Footer links and version now render on a single line separated by dividers
|
|
76
|
+
- **Fixed** Collapsible chevron wrapped in fixed-height container to prevent drift
|
|
77
|
+
- **Fixed** Collapsible chevron no longer drifts into child elements when sub-list expands
|
|
78
|
+
|
|
79
|
+
### v0.10.0
|
|
80
|
+
- **Added** Collapsible nav items with `children` array and `NavSubItem` type
|
|
81
|
+
- **Added** Nav item `badge` prop for counts/labels, caps at 99+
|
|
82
|
+
- **Added** Nav group `action` prop for buttons next to group labels
|
|
83
|
+
- **Added** Structured `footer` prop with `SidebarFooterConfig` — links, version, slot
|
|
84
|
+
- **Added** `headerSlot` and `preFooterSlot` content slots
|
|
85
|
+
- **Added** `renderItem` escape hatch for custom item rendering
|
|
86
|
+
- **Deprecated** `footerLinks` prop — use `footer.links` instead
|
|
87
|
+
|
|
88
|
+
### v0.1.1
|
|
89
|
+
- **Changed** Decoupled from Next.js via LinkProvider
|
|
90
|
+
|
|
91
|
+
### v0.1.0
|
|
92
|
+
- **Added** Initial release
|