@devalok/shilp-sutra 0.34.1 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/dist/_chunks/badge-group.js +95 -95
- package/dist/_chunks/badge-group.js.map +1 -0
- package/dist/_chunks/chat.js +7 -2
- package/dist/_chunks/chat.js.map +1 -0
- package/dist/_chunks/date-picker.js.map +1 -0
- package/dist/_chunks/document-preview.js.map +1 -0
- package/dist/_chunks/file-preview.js.map +1 -0
- package/dist/_chunks/framer.js +62 -62
- package/dist/_chunks/framer.js.map +1 -0
- package/dist/_chunks/image-preview.js +1 -1
- package/dist/_chunks/image-preview.js.map +1 -0
- package/dist/_chunks/keybinding.js.map +1 -0
- package/dist/_chunks/link-context.js.map +1 -0
- package/dist/_chunks/mention-suggestion.js.map +1 -0
- package/dist/_chunks/motion-provider.js.map +1 -0
- package/dist/_chunks/popover.js +32 -36
- package/dist/_chunks/popover.js.map +1 -0
- package/dist/_chunks/primitives.js +686 -686
- package/dist/_chunks/primitives.js.map +1 -0
- package/dist/_chunks/rich-chat-input.js +650 -649
- package/dist/_chunks/rich-chat-input.js.map +1 -0
- package/dist/_chunks/shared.js.map +1 -0
- package/dist/_chunks/sonner.js.map +1 -0
- package/dist/_chunks/stat-row.js +158 -158
- package/dist/_chunks/stat-row.js.map +1 -0
- package/dist/_chunks/tiptap.js +11 -11
- package/dist/_chunks/tiptap.js.map +1 -0
- package/dist/_chunks/tree-view.js +1 -1
- package/dist/_chunks/tree-view.js.map +1 -0
- package/dist/_chunks/use-calendar.js.map +1 -0
- package/dist/_chunks/vendor-client.js +1 -1
- package/dist/_chunks/vendor-client.js.map +1 -0
- package/dist/_chunks/vendor-utils.js.map +1 -0
- package/dist/ai/ai-command-provider.js.map +1 -0
- package/dist/ai/block-renderer.js.map +1 -0
- package/dist/ai/blocks/loading.d.ts.map +1 -1
- package/dist/ai/command-bar.js.map +1 -0
- package/dist/ai/conversation.js +76 -76
- package/dist/ai/conversation.js.map +1 -0
- package/dist/ai/devadoot-icon.d.ts.map +1 -1
- package/dist/ai/index.js.map +1 -0
- package/dist/composed/activity-feed.js.map +1 -0
- package/dist/composed/avatar-group.js +1 -1
- package/dist/composed/avatar-group.js.map +1 -0
- package/dist/composed/bulk-action-bar.js +13 -21
- package/dist/composed/bulk-action-bar.js.map +1 -0
- package/dist/composed/command-palette.js.map +1 -0
- package/dist/composed/confirm-dialog.js.map +1 -0
- package/dist/composed/content-card.js.map +1 -0
- package/dist/composed/deadline-indicator.js.map +1 -0
- package/dist/composed/emoji-picker.js.map +1 -0
- package/dist/composed/empty-state.d.ts.map +1 -1
- package/dist/composed/empty-state.js +30 -30
- package/dist/composed/empty-state.js.map +1 -0
- package/dist/composed/error-boundary.js.map +1 -0
- package/dist/composed/filter-bar.js.map +1 -0
- package/dist/composed/form-section.js.map +1 -0
- package/dist/composed/global-loading.js.map +1 -0
- package/dist/composed/inline-edit.js.map +1 -0
- package/dist/composed/lib/string-utils.js.map +1 -0
- package/dist/composed/loading-skeleton.js.map +1 -0
- package/dist/composed/markdown-viewer.js.map +1 -0
- package/dist/composed/master-detail.js.map +1 -0
- package/dist/composed/member-picker.js.map +1 -0
- package/dist/composed/multi-select-popover.d.ts.map +1 -1
- package/dist/composed/multi-select-popover.js +4 -0
- package/dist/composed/multi-select-popover.js.map +1 -0
- package/dist/composed/page-header.js.map +1 -0
- package/dist/composed/page-skeletons.js.map +1 -0
- package/dist/composed/priority-indicator.js.map +1 -0
- package/dist/composed/responsive-overlay.js.map +1 -0
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js.map +1 -0
- package/dist/composed/schedule-view.js.map +1 -0
- package/dist/composed/simple-tooltip.js.map +1 -0
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js.map +1 -0
- package/dist/hooks/use-color-mode.js.map +1 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-touch-device.js.map +1 -0
- package/dist/hooks/use-viewport-height.js.map +1 -0
- package/dist/motion/check-motion-provider.d.ts +3 -0
- package/dist/motion/check-motion-provider.d.ts.map +1 -0
- package/dist/motion/index.js +14 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/primitives-index.js.map +1 -0
- package/dist/primitives/react-accordion.d.ts +114 -114
- package/dist/primitives/react-alert-dialog.d.ts +51 -51
- package/dist/primitives/react-aspect-ratio.d.ts +11 -11
- package/dist/primitives/react-avatar.d.ts +24 -24
- package/dist/primitives/react-checkbox.d.ts +50 -50
- package/dist/primitives/react-collapsible.d.ts +33 -33
- package/dist/primitives/react-context-menu.d.ts +96 -96
- package/dist/primitives/react-dialog.d.ts +103 -103
- package/dist/primitives/react-dropdown-menu.d.ts +97 -97
- package/dist/primitives/react-hover-card.d.ts +79 -79
- package/dist/primitives/react-label.d.ts +10 -10
- package/dist/primitives/react-menu.d.ts +169 -169
- package/dist/primitives/react-menubar.d.ts +115 -115
- package/dist/primitives/react-navigation-menu.d.ts +126 -126
- package/dist/primitives/react-popover.d.ts +85 -85
- package/dist/primitives/react-progress.d.ts +19 -19
- package/dist/primitives/react-radio-group.d.ts +58 -58
- package/dist/primitives/react-roving-focus.d.ts +49 -49
- package/dist/primitives/react-select.d.ts +137 -137
- package/dist/primitives/react-separator.d.ts +21 -21
- package/dist/primitives/react-slider.d.ts +75 -75
- package/dist/primitives/react-switch.d.ts +21 -21
- package/dist/primitives/react-tabs.d.ts +56 -56
- package/dist/primitives/react-toast.d.ts +120 -120
- package/dist/primitives/react-toggle-group.d.ts +75 -75
- package/dist/primitives/react-toggle.d.ts +24 -24
- package/dist/primitives/react-tooltip.d.ts +101 -101
- package/dist/primitives/react-visually-hidden.d.ts +22 -22
- package/dist/shell/app-command-palette.d.ts +2 -0
- package/dist/shell/app-command-palette.d.ts.map +1 -1
- package/dist/shell/app-command-palette.js +42 -155
- package/dist/shell/app-command-palette.js.map +1 -0
- package/dist/shell/bottom-navbar.js +1 -1
- package/dist/shell/bottom-navbar.js.map +1 -0
- package/dist/shell/command-registry.js.map +1 -0
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +194 -169
- package/dist/shell/notification-center.js.map +1 -0
- package/dist/shell/notification-preferences.js.map +1 -0
- package/dist/shell/sidebar.js.map +1 -0
- package/dist/shell/top-bar.js +1 -1
- package/dist/shell/top-bar.js.map +1 -0
- package/dist/tailwind/index.cjs +48 -1
- package/dist/tailwind/preset.d.ts.map +1 -1
- package/dist/tailwind/preset.js +48 -1
- package/dist/tailwind/preset.js.map +1 -0
- package/dist/tokens/index.css +4 -4
- package/dist/tokens/primitives.css +442 -442
- package/dist/tokens/semantic.css +742 -547
- package/dist/tokens/typography-semantic.css +123 -100
- package/dist/tokens/typography.css +422 -422
- package/dist/ui/accordion.js +13 -13
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.d.ts +6 -2
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +43 -42
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +3 -2
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +31 -5
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.js +1 -1
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +92 -67
- package/dist/ui/autocomplete.js.map +1 -0
- package/dist/ui/avatar.js +9 -9
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge-indicator.js.map +1 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/breadcrumb.js +1 -1
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button-processing.d.ts.map +1 -1
- package/dist/ui/button-processing.js +61 -40
- package/dist/ui/button-processing.js.map +1 -0
- package/dist/ui/button.js +8 -8
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/charts/bar-chart.d.ts.map +1 -1
- package/dist/ui/charts/chart-container.d.ts +2 -0
- package/dist/ui/charts/chart-container.d.ts.map +1 -1
- package/dist/ui/charts/index.js +88 -65
- package/dist/ui/charts/index.js.map +1 -0
- package/dist/ui/charts/line-chart.d.ts.map +1 -1
- package/dist/ui/chat/message-input.d.ts.map +1 -1
- package/dist/ui/chat/message-list.d.ts +1 -1
- package/dist/ui/chat/message-list.d.ts.map +1 -1
- package/dist/ui/chat/message.d.ts.map +1 -1
- package/dist/ui/chat/system-message.d.ts.map +1 -1
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +33 -28
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code.js.map +1 -0
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/color-input.d.ts.map +1 -1
- package/dist/ui/color-input.js +165 -163
- package/dist/ui/color-input.js.map +1 -0
- package/dist/ui/color-swatch.js.map +1 -0
- package/dist/ui/combobox.d.ts +7 -0
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +147 -113
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/container.js +1 -1
- package/dist/ui/container.js.map +1 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/data-table-body.js.map +1 -0
- package/dist/ui/data-table-bulk-actions.js +1 -1
- package/dist/ui/data-table-bulk-actions.js.map +1 -0
- package/dist/ui/data-table-card.js.map +1 -0
- package/dist/ui/data-table-context.js.map +1 -0
- package/dist/ui/data-table-header.js.map +1 -0
- package/dist/ui/data-table-pagination.js.map +1 -0
- package/dist/ui/data-table-toolbar.js.map +1 -0
- package/dist/ui/data-table.js +34 -31
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/devalok-grain.js.map +1 -0
- package/dist/ui/dialog.js +31 -35
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/file-upload.js +120 -120
- package/dist/ui/file-upload.js.map +1 -0
- package/dist/ui/form.d.ts +8 -0
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +14 -12
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/icon-button.js.map +1 -0
- package/dist/ui/icon-context.js.map +1 -0
- package/dist/ui/icon-group.js.map +1 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/index.d.ts +4 -4
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +82 -66
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input-otp.d.ts +12 -3
- package/dist/ui/input-otp.d.ts.map +1 -1
- package/dist/ui/input-otp.js +41 -27
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +16 -15
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js +19 -14
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/lib/check-tokens.d.ts +3 -0
- package/dist/ui/lib/check-tokens.d.ts.map +1 -0
- package/dist/ui/lib/date-utils.js.map +1 -0
- package/dist/ui/lib/motion.d.ts +15 -4
- package/dist/ui/lib/motion.d.ts.map +1 -1
- package/dist/ui/lib/motion.js +18 -9
- package/dist/ui/lib/motion.js.map +1 -0
- package/dist/ui/lib/utils.js.map +1 -0
- package/dist/ui/link.js +2 -2
- package/dist/ui/link.js.map +1 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/number-input.d.ts +16 -1
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js +79 -49
- package/dist/ui/number-input.js.map +1 -0
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/progress-ring.d.ts.map +1 -1
- package/dist/ui/progress-ring.js.map +1 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +27 -20
- package/dist/ui/radio.js.map +1 -0
- package/dist/ui/search-input.js.map +1 -0
- package/dist/ui/segmented-control.d.ts +1 -1
- package/dist/ui/segmented-control.d.ts.map +1 -1
- package/dist/ui/segmented-control.js +2 -0
- package/dist/ui/segmented-control.js.map +1 -0
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +54 -48
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts.map +1 -1
- package/dist/ui/separator.js +10 -7
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.js +29 -29
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.js +7 -7
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.d.ts +22 -3
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +57 -19
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/split-button.d.ts.map +1 -1
- package/dist/ui/split-button.js +77 -76
- package/dist/ui/split-button.js.map +1 -0
- package/dist/ui/stack.js.map +1 -0
- package/dist/ui/stat-card.js.map +1 -0
- package/dist/ui/status-dot.js.map +1 -0
- package/dist/ui/stepper.d.ts +10 -0
- package/dist/ui/stepper.d.ts.map +1 -1
- package/dist/ui/stepper.js +80 -75
- package/dist/ui/stepper.js.map +1 -0
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +26 -22
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +3 -1
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +68 -48
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/text.d.ts +1 -1
- package/dist/ui/text.d.ts.map +1 -1
- package/dist/ui/text.js +10 -2
- package/dist/ui/text.js.map +1 -0
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toast-registry.d.ts +8 -0
- package/dist/ui/toast-registry.d.ts.map +1 -0
- package/dist/ui/toast-registry.js +13 -0
- package/dist/ui/toast-registry.js.map +1 -0
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +141 -136
- package/dist/ui/toast.js.map +1 -0
- package/dist/ui/toaster.d.ts.map +1 -1
- package/dist/ui/toaster.js +15 -14
- package/dist/ui/toaster.js.map +1 -0
- package/dist/ui/toggle-group.d.ts +2 -0
- package/dist/ui/toggle-group.d.ts.map +1 -1
- package/dist/ui/toggle-group.js +23 -16
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.d.ts +2 -0
- package/dist/ui/toggle.d.ts.map +1 -1
- package/dist/ui/toggle.js +14 -6
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/visually-hidden.js.map +1 -0
- package/docs/components/_header.md +85 -85
- package/docs/components/composed/activity-feed.md +62 -62
- package/docs/components/composed/avatar-group.md +65 -65
- package/docs/components/composed/bulk-action-bar.md +40 -40
- package/docs/components/composed/command-palette.md +40 -40
- package/docs/components/composed/confirm-dialog.md +46 -46
- package/docs/components/composed/content-card.md +36 -36
- package/docs/components/composed/date-picker.md +130 -130
- package/docs/components/composed/deadline-indicator.md +27 -27
- package/docs/components/composed/emoji-picker.md +52 -52
- package/docs/components/composed/empty-state.md +53 -53
- package/docs/components/composed/error-boundary.md +29 -29
- package/docs/components/composed/file-preview.md +40 -40
- package/docs/components/composed/filter-bar.md +57 -57
- package/docs/components/composed/form-section.md +31 -31
- package/docs/components/composed/global-loading.md +27 -27
- package/docs/components/composed/inline-edit.md +35 -35
- package/docs/components/composed/loading-skeleton.md +51 -51
- package/docs/components/composed/markdown-viewer.md +27 -27
- package/docs/components/composed/master-detail.md +48 -48
- package/docs/components/composed/member-picker.md +35 -35
- package/docs/components/composed/multi-select-popover.md +62 -62
- package/docs/components/composed/page-header.md +41 -41
- package/docs/components/composed/page-skeletons.md +32 -32
- package/docs/components/composed/priority-indicator.md +32 -32
- package/docs/components/composed/responsive-overlay.md +34 -34
- package/docs/components/composed/rich-text-editor.md +82 -82
- package/docs/components/composed/schedule-view.md +39 -39
- package/docs/components/composed/simple-tooltip.md +33 -33
- package/docs/components/composed/status-badge.md +55 -55
- package/docs/components/shell/app-command-palette.md +44 -44
- package/docs/components/shell/bottom-navbar.md +52 -52
- package/docs/components/shell/command-registry.md +48 -48
- package/docs/components/shell/link-context.md +41 -41
- package/docs/components/shell/notification-center.md +63 -63
- package/docs/components/shell/notification-preferences.md +42 -42
- package/docs/components/shell/sidebar.md +92 -92
- package/docs/components/shell/top-bar.md +143 -143
- package/docs/components/ui/accordion.md +51 -51
- package/docs/components/ui/alert-dialog.md +61 -61
- package/docs/components/ui/alert.md +46 -46
- package/docs/components/ui/aspect-ratio.md +25 -25
- package/docs/components/ui/autocomplete.md +48 -48
- package/docs/components/ui/avatar.md +56 -56
- package/docs/components/ui/badge.md +83 -82
- package/docs/components/ui/banner.md +42 -42
- package/docs/components/ui/breadcrumb.md +37 -37
- package/docs/components/ui/button-group.md +41 -41
- package/docs/components/ui/button.md +94 -93
- package/docs/components/ui/card.md +52 -52
- package/docs/components/ui/charts.md +43 -43
- package/docs/components/ui/checkbox.md +36 -36
- package/docs/components/ui/chip.md +47 -47
- package/docs/components/ui/code.md +28 -28
- package/docs/components/ui/collapsible.md +40 -40
- package/docs/components/ui/color-input.md +91 -91
- package/docs/components/ui/color-swatch.md +25 -25
- package/docs/components/ui/combobox.md +54 -54
- package/docs/components/ui/container.md +26 -26
- package/docs/components/ui/context-menu.md +43 -43
- package/docs/components/ui/data-table-body.md +1 -1
- package/docs/components/ui/data-table-bulk-actions.md +1 -1
- package/docs/components/ui/data-table-card.md +1 -1
- package/docs/components/ui/data-table-context.md +1 -1
- package/docs/components/ui/data-table-header.md +1 -1
- package/docs/components/ui/data-table-pagination.md +1 -1
- package/docs/components/ui/data-table-toolbar.md +44 -44
- package/docs/components/ui/data-table.md +94 -94
- package/docs/components/ui/dialog.md +54 -54
- package/docs/components/ui/dropdown-menu.md +48 -48
- package/docs/components/ui/file-upload.md +41 -41
- package/docs/components/ui/form.md +51 -51
- package/docs/components/ui/hover-card.md +32 -32
- package/docs/components/ui/icon-button.md +40 -40
- package/docs/components/ui/input-otp.md +44 -44
- package/docs/components/ui/input.md +74 -74
- package/docs/components/ui/label.md +25 -25
- package/docs/components/ui/link.md +29 -29
- package/docs/components/ui/menubar.md +44 -44
- package/docs/components/ui/navigation-menu.md +46 -46
- package/docs/components/ui/number-input.md +44 -44
- package/docs/components/ui/pagination.md +48 -48
- package/docs/components/ui/popover.md +30 -30
- package/docs/components/ui/progress-ring.md +41 -41
- package/docs/components/ui/progress.md +34 -34
- package/docs/components/ui/radio.md +34 -34
- package/docs/components/ui/search-input.md +43 -43
- package/docs/components/ui/segmented-control.md +50 -50
- package/docs/components/ui/select.md +53 -53
- package/docs/components/ui/separator.md +32 -32
- package/docs/components/ui/sheet.md +47 -47
- package/docs/components/ui/sidebar.md +72 -72
- package/docs/components/ui/skeleton.md +77 -77
- package/docs/components/ui/slider.md +29 -29
- package/docs/components/ui/spinner.md +54 -54
- package/docs/components/ui/stack.md +39 -39
- package/docs/components/ui/stat-card.md +61 -61
- package/docs/components/ui/status-dot.md +26 -26
- package/docs/components/ui/stepper.md +49 -49
- package/docs/components/ui/switch.md +47 -47
- package/docs/components/ui/table.md +47 -47
- package/docs/components/ui/tabs.md +60 -60
- package/docs/components/ui/text.md +37 -37
- package/docs/components/ui/textarea.md +39 -39
- package/docs/components/ui/toast.md +65 -65
- package/docs/components/ui/toaster.md +47 -47
- package/docs/components/ui/toggle-group.md +43 -43
- package/docs/components/ui/toggle.md +37 -37
- package/docs/components/ui/tooltip.md +38 -38
- package/docs/components/ui/tree-view.md +65 -65
- package/docs/components/ui/visually-hidden.md +21 -21
- package/llms-full.txt +5266 -5264
- package/llms.txt +624 -580
- package/package.json +7 -8
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
# DataTableToolbar
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/data-table-toolbar
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
table: Table<TData> (TanStack table instance)
|
|
9
|
-
globalFilter: boolean
|
|
10
|
-
globalFilterValue: string
|
|
11
|
-
onGlobalFilterChange: (value: string) => void
|
|
12
|
-
density: 'compact' | 'standard' | 'comfortable'
|
|
13
|
-
onDensityChange: (density: Density) => void
|
|
14
|
-
enableExport: boolean
|
|
15
|
-
|
|
16
|
-
## Defaults
|
|
17
|
-
none
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
```jsx
|
|
21
|
-
import { DataTableToolbar } from '@devalok/shilp-sutra/ui/data-table-toolbar'
|
|
22
|
-
|
|
23
|
-
<DataTableToolbar
|
|
24
|
-
table={table}
|
|
25
|
-
globalFilter
|
|
26
|
-
globalFilterValue={filterValue}
|
|
27
|
-
onGlobalFilterChange={setFilterValue}
|
|
28
|
-
density={density}
|
|
29
|
-
onDensityChange={setDensity}
|
|
30
|
-
enableExport
|
|
31
|
-
/>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Gotchas
|
|
35
|
-
- Barrel-isolated since v0.5.0 — must use `@devalok/shilp-sutra/ui/data-table-toolbar`, NOT the `ui` barrel
|
|
36
|
-
- Companion to DataTable — provides column visibility, density toggle, and CSV export controls
|
|
37
|
-
- Requires @tanstack/react-table as a peer dependency
|
|
38
|
-
|
|
39
|
-
## Changes
|
|
40
|
-
### v0.5.0
|
|
41
|
-
- **Changed** (BREAKING) Removed from `@devalok/shilp-sutra/ui` barrel export — must use `@devalok/shilp-sutra/ui/data-table-toolbar`
|
|
42
|
-
|
|
43
|
-
### v0.1.0
|
|
44
|
-
- **Added** Initial release
|
|
1
|
+
# DataTableToolbar
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/data-table-toolbar
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
table: Table<TData> (TanStack table instance)
|
|
9
|
+
globalFilter: boolean
|
|
10
|
+
globalFilterValue: string
|
|
11
|
+
onGlobalFilterChange: (value: string) => void
|
|
12
|
+
density: 'compact' | 'standard' | 'comfortable'
|
|
13
|
+
onDensityChange: (density: Density) => void
|
|
14
|
+
enableExport: boolean
|
|
15
|
+
|
|
16
|
+
## Defaults
|
|
17
|
+
none
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
```jsx
|
|
21
|
+
import { DataTableToolbar } from '@devalok/shilp-sutra/ui/data-table-toolbar'
|
|
22
|
+
|
|
23
|
+
<DataTableToolbar
|
|
24
|
+
table={table}
|
|
25
|
+
globalFilter
|
|
26
|
+
globalFilterValue={filterValue}
|
|
27
|
+
onGlobalFilterChange={setFilterValue}
|
|
28
|
+
density={density}
|
|
29
|
+
onDensityChange={setDensity}
|
|
30
|
+
enableExport
|
|
31
|
+
/>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Gotchas
|
|
35
|
+
- Barrel-isolated since v0.5.0 — must use `@devalok/shilp-sutra/ui/data-table-toolbar`, NOT the `ui` barrel
|
|
36
|
+
- Companion to DataTable — provides column visibility, density toggle, and CSV export controls
|
|
37
|
+
- Requires @tanstack/react-table as a peer dependency
|
|
38
|
+
|
|
39
|
+
## Changes
|
|
40
|
+
### v0.5.0
|
|
41
|
+
- **Changed** (BREAKING) Removed from `@devalok/shilp-sutra/ui` barrel export — must use `@devalok/shilp-sutra/ui/data-table-toolbar`
|
|
42
|
+
|
|
43
|
+
### v0.1.0
|
|
44
|
+
- **Added** Initial release
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
# DataTable
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/data-table
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
columns: ColumnDef<TData>[] (TanStack column definitions)
|
|
9
|
-
data: TData[]
|
|
10
|
-
sortable: boolean — enable column sorting
|
|
11
|
-
onSort: (key: string, dir: 'asc' | 'desc' | false) => void — server-side sort callback (enables manualSorting)
|
|
12
|
-
filterable: boolean — enable per-column filters
|
|
13
|
-
globalFilter: boolean — enable global search
|
|
14
|
-
paginated: boolean — enable client-side pagination
|
|
15
|
-
pagination: { page: number, pageSize: number, total: number, onPageChange: (page: number) => void } — server-side pagination (1-based page)
|
|
16
|
-
pageSize: number (default 10)
|
|
17
|
-
selectable: boolean — enable row selection with checkboxes
|
|
18
|
-
selectedIds: Set<string> — controlled selection state
|
|
19
|
-
selectableFilter: (row: TData) => boolean — disable selection on certain rows
|
|
20
|
-
getRowId: (row: TData) => string — custom row ID accessor
|
|
21
|
-
onSelectionChange: (selectedRows: TData[]) => void
|
|
22
|
-
expandable: boolean — enable row expansion
|
|
23
|
-
renderExpanded: (row: TData) => ReactNode — expanded row content
|
|
24
|
-
singleExpand: boolean — only one row expanded at a time
|
|
25
|
-
loading: boolean — show skeleton shimmer rows
|
|
26
|
-
emptyState: ReactNode — custom empty state (takes precedence over noResultsText)
|
|
27
|
-
noResultsText: string (default "No results.")
|
|
28
|
-
stickyHeader: boolean — sticky table header
|
|
29
|
-
onRowClick: (row: TData) => void — row click handler (excludes interactive element clicks)
|
|
30
|
-
bulkActions: BulkAction<TData>[] — floating action bar on selection — { label, onClick, color?: 'default'|'error', disabled? }
|
|
31
|
-
toolbar: boolean — show DataTableToolbar (column visibility, density, CSV export)
|
|
32
|
-
editable: boolean — enable double-click cell editing
|
|
33
|
-
virtualRows: boolean — virtualize rows for large datasets
|
|
34
|
-
columnPinning: { left?: string[], right?: string[] }
|
|
35
|
-
defaultDensity: 'compact' | 'standard' | 'comfortable'
|
|
36
|
-
|
|
37
|
-
## Defaults
|
|
38
|
-
pageSize=10, noResultsText="No results."
|
|
39
|
-
|
|
40
|
-
## Example
|
|
41
|
-
```jsx
|
|
42
|
-
import { DataTable } from '@devalok/shilp-sutra/ui/data-table'
|
|
43
|
-
|
|
44
|
-
<DataTable
|
|
45
|
-
columns={[
|
|
46
|
-
{ accessorKey: 'name', header: 'Name' },
|
|
47
|
-
{ accessorKey: 'email', header: 'Email' },
|
|
48
|
-
]}
|
|
49
|
-
data={users}
|
|
50
|
-
sortable
|
|
51
|
-
onSort={(key, dir) => handleSort(key, dir)}
|
|
52
|
-
pagination={{ page, pageSize: 20, total: totalCount, onPageChange: setPage }}
|
|
53
|
-
loading={isLoading}
|
|
54
|
-
emptyState={<EmptyState title="No users" />}
|
|
55
|
-
/>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Gotchas
|
|
59
|
-
- Barrel-isolated since v0.5.0 — must use `@devalok/shilp-sutra/ui/data-table`, NOT the `ui` barrel
|
|
60
|
-
- Requires @tanstack/react-table and @tanstack/react-virtual as peer dependencies
|
|
61
|
-
- When onSort is provided, sorting is manual (server-side) — rows stay in data order
|
|
62
|
-
- When pagination prop is provided, pagination is manual — pass total count
|
|
63
|
-
- selectedIds syncs via useEffect — provide getRowId for custom row IDs
|
|
64
|
-
- onRowClick does NOT fire when clicking checkboxes, buttons, links, or inputs
|
|
65
|
-
- Use defaultDensity="compact" for Karm-style h-9 rows
|
|
66
|
-
|
|
67
|
-
## Changes
|
|
68
|
-
### v0.29.0
|
|
69
|
-
- **Fixed** Controlled selection infinite re-render loop — inline `getRowId` callback caused `onSelectionChange` effect to fire every render, creating a setState cycle with `selectedIds`. Now uses a stable ref for `getRowId`.
|
|
70
|
-
|
|
71
|
-
### v0.16.1
|
|
72
|
-
- **Fixed** `serverPagination` object reference in `useCallback` dependency caused stale closure — now uses stable ref for `onPageChange`
|
|
73
|
-
- **Fixed** `onSelectionChange` effect fired every render due to `table` in dependency array — now derives selected rows directly
|
|
74
|
-
- **Fixed** `selectedRows` useMemo for bulk actions had same `table` dependency issue
|
|
75
|
-
|
|
76
|
-
### v0.16.0
|
|
77
|
-
- **Added** `onSort` callback for server-side sorting
|
|
78
|
-
- **Added** `emptyState` ReactNode slot
|
|
79
|
-
- **Added** `loading` prop with shimmer skeleton rows
|
|
80
|
-
- **Added** `selectedIds` + `selectableFilter` for controlled selection
|
|
81
|
-
- **Added** `pagination` prop for server-side pagination
|
|
82
|
-
- **Added** `singleExpand` prop
|
|
83
|
-
- **Added** `stickyHeader` prop
|
|
84
|
-
- **Added** `onRowClick` handler
|
|
85
|
-
- **Added** `bulkActions` floating action bar
|
|
86
|
-
|
|
87
|
-
### v0.5.0
|
|
88
|
-
- **Changed** (BREAKING) Removed from `@devalok/shilp-sutra/ui` barrel export — must use `@devalok/shilp-sutra/ui/data-table`
|
|
89
|
-
|
|
90
|
-
### v0.1.1
|
|
91
|
-
- **Fixed** `useEffect` exhaustive-deps with proper dependency array
|
|
92
|
-
|
|
93
|
-
### v0.1.0
|
|
94
|
-
- **Added** Initial release
|
|
1
|
+
# DataTable
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/data-table
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
columns: ColumnDef<TData>[] (TanStack column definitions)
|
|
9
|
+
data: TData[]
|
|
10
|
+
sortable: boolean — enable column sorting
|
|
11
|
+
onSort: (key: string, dir: 'asc' | 'desc' | false) => void — server-side sort callback (enables manualSorting)
|
|
12
|
+
filterable: boolean — enable per-column filters
|
|
13
|
+
globalFilter: boolean — enable global search
|
|
14
|
+
paginated: boolean — enable client-side pagination
|
|
15
|
+
pagination: { page: number, pageSize: number, total: number, onPageChange: (page: number) => void } — server-side pagination (1-based page)
|
|
16
|
+
pageSize: number (default 10)
|
|
17
|
+
selectable: boolean — enable row selection with checkboxes
|
|
18
|
+
selectedIds: Set<string> — controlled selection state
|
|
19
|
+
selectableFilter: (row: TData) => boolean — disable selection on certain rows
|
|
20
|
+
getRowId: (row: TData) => string — custom row ID accessor
|
|
21
|
+
onSelectionChange: (selectedRows: TData[]) => void
|
|
22
|
+
expandable: boolean — enable row expansion
|
|
23
|
+
renderExpanded: (row: TData) => ReactNode — expanded row content
|
|
24
|
+
singleExpand: boolean — only one row expanded at a time
|
|
25
|
+
loading: boolean — show skeleton shimmer rows
|
|
26
|
+
emptyState: ReactNode — custom empty state (takes precedence over noResultsText)
|
|
27
|
+
noResultsText: string (default "No results.")
|
|
28
|
+
stickyHeader: boolean — sticky table header
|
|
29
|
+
onRowClick: (row: TData) => void — row click handler (excludes interactive element clicks)
|
|
30
|
+
bulkActions: BulkAction<TData>[] — floating action bar on selection — { label, onClick, color?: 'default'|'error', disabled? }
|
|
31
|
+
toolbar: boolean — show DataTableToolbar (column visibility, density, CSV export)
|
|
32
|
+
editable: boolean — enable double-click cell editing
|
|
33
|
+
virtualRows: boolean — virtualize rows for large datasets
|
|
34
|
+
columnPinning: { left?: string[], right?: string[] }
|
|
35
|
+
defaultDensity: 'compact' | 'standard' | 'comfortable'
|
|
36
|
+
|
|
37
|
+
## Defaults
|
|
38
|
+
pageSize=10, noResultsText="No results."
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
```jsx
|
|
42
|
+
import { DataTable } from '@devalok/shilp-sutra/ui/data-table'
|
|
43
|
+
|
|
44
|
+
<DataTable
|
|
45
|
+
columns={[
|
|
46
|
+
{ accessorKey: 'name', header: 'Name' },
|
|
47
|
+
{ accessorKey: 'email', header: 'Email' },
|
|
48
|
+
]}
|
|
49
|
+
data={users}
|
|
50
|
+
sortable
|
|
51
|
+
onSort={(key, dir) => handleSort(key, dir)}
|
|
52
|
+
pagination={{ page, pageSize: 20, total: totalCount, onPageChange: setPage }}
|
|
53
|
+
loading={isLoading}
|
|
54
|
+
emptyState={<EmptyState title="No users" />}
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Gotchas
|
|
59
|
+
- Barrel-isolated since v0.5.0 — must use `@devalok/shilp-sutra/ui/data-table`, NOT the `ui` barrel
|
|
60
|
+
- Requires @tanstack/react-table and @tanstack/react-virtual as peer dependencies
|
|
61
|
+
- When onSort is provided, sorting is manual (server-side) — rows stay in data order
|
|
62
|
+
- When pagination prop is provided, pagination is manual — pass total count
|
|
63
|
+
- selectedIds syncs via useEffect — provide getRowId for custom row IDs
|
|
64
|
+
- onRowClick does NOT fire when clicking checkboxes, buttons, links, or inputs
|
|
65
|
+
- Use defaultDensity="compact" for Karm-style h-9 rows
|
|
66
|
+
|
|
67
|
+
## Changes
|
|
68
|
+
### v0.29.0
|
|
69
|
+
- **Fixed** Controlled selection infinite re-render loop — inline `getRowId` callback caused `onSelectionChange` effect to fire every render, creating a setState cycle with `selectedIds`. Now uses a stable ref for `getRowId`.
|
|
70
|
+
|
|
71
|
+
### v0.16.1
|
|
72
|
+
- **Fixed** `serverPagination` object reference in `useCallback` dependency caused stale closure — now uses stable ref for `onPageChange`
|
|
73
|
+
- **Fixed** `onSelectionChange` effect fired every render due to `table` in dependency array — now derives selected rows directly
|
|
74
|
+
- **Fixed** `selectedRows` useMemo for bulk actions had same `table` dependency issue
|
|
75
|
+
|
|
76
|
+
### v0.16.0
|
|
77
|
+
- **Added** `onSort` callback for server-side sorting
|
|
78
|
+
- **Added** `emptyState` ReactNode slot
|
|
79
|
+
- **Added** `loading` prop with shimmer skeleton rows
|
|
80
|
+
- **Added** `selectedIds` + `selectableFilter` for controlled selection
|
|
81
|
+
- **Added** `pagination` prop for server-side pagination
|
|
82
|
+
- **Added** `singleExpand` prop
|
|
83
|
+
- **Added** `stickyHeader` prop
|
|
84
|
+
- **Added** `onRowClick` handler
|
|
85
|
+
- **Added** `bulkActions` floating action bar
|
|
86
|
+
|
|
87
|
+
### v0.5.0
|
|
88
|
+
- **Changed** (BREAKING) Removed from `@devalok/shilp-sutra/ui` barrel export — must use `@devalok/shilp-sutra/ui/data-table`
|
|
89
|
+
|
|
90
|
+
### v0.1.1
|
|
91
|
+
- **Fixed** `useEffect` exhaustive-deps with proper dependency array
|
|
92
|
+
|
|
93
|
+
### v0.1.0
|
|
94
|
+
- **Added** Initial release
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# Dialog
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/dialog
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Compound Components
|
|
8
|
-
Dialog (root)
|
|
9
|
-
DialogTrigger
|
|
10
|
-
DialogContent
|
|
11
|
-
DialogHeader
|
|
12
|
-
DialogTitle
|
|
13
|
-
DialogDescription
|
|
14
|
-
[body content]
|
|
15
|
-
DialogFooter
|
|
16
|
-
DialogClose
|
|
17
|
-
|
|
18
|
-
## Defaults
|
|
19
|
-
none
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
```jsx
|
|
23
|
-
<Dialog>
|
|
24
|
-
<DialogTrigger asChild><Button>Open</Button></DialogTrigger>
|
|
25
|
-
<DialogContent>
|
|
26
|
-
<DialogHeader>
|
|
27
|
-
<DialogTitle>Edit Profile</DialogTitle>
|
|
28
|
-
<DialogDescription>Make changes to your profile.</DialogDescription>
|
|
29
|
-
</DialogHeader>
|
|
30
|
-
<div>Form fields here</div>
|
|
31
|
-
<DialogFooter>
|
|
32
|
-
<Button>Save</Button>
|
|
33
|
-
</DialogFooter>
|
|
34
|
-
</DialogContent>
|
|
35
|
-
</Dialog>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Gotchas
|
|
39
|
-
- DialogTitle is required for accessibility — screen readers announce it when the dialog opens
|
|
40
|
-
|
|
41
|
-
## Changes
|
|
42
|
-
### v0.19.1
|
|
43
|
-
- **Fixed** Dialog not centered after Framer Motion animation completes — `transform: none` inline style overrode Tailwind `translate-x/y` classes. Centering now handled via Framer Motion `x`/`y` properties.
|
|
44
|
-
|
|
45
|
-
### v0.18.0
|
|
46
|
-
- **Changed** Overlay animations migrated to Framer Motion (physics-based springs)
|
|
47
|
-
- **Added** `DialogContentProps`, `DialogTitleProps` type exports
|
|
48
|
-
- **Fixed** Context provider value wrapped in `useMemo` for performance
|
|
49
|
-
|
|
50
|
-
### v0.3.0
|
|
51
|
-
- **Fixed** DialogHeader/Footer now support ref forwarding
|
|
52
|
-
|
|
53
|
-
### v0.1.0
|
|
54
|
-
- **Added** Initial release
|
|
1
|
+
# Dialog
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/dialog
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Compound Components
|
|
8
|
+
Dialog (root)
|
|
9
|
+
DialogTrigger
|
|
10
|
+
DialogContent
|
|
11
|
+
DialogHeader
|
|
12
|
+
DialogTitle
|
|
13
|
+
DialogDescription
|
|
14
|
+
[body content]
|
|
15
|
+
DialogFooter
|
|
16
|
+
DialogClose
|
|
17
|
+
|
|
18
|
+
## Defaults
|
|
19
|
+
none
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
```jsx
|
|
23
|
+
<Dialog>
|
|
24
|
+
<DialogTrigger asChild><Button>Open</Button></DialogTrigger>
|
|
25
|
+
<DialogContent>
|
|
26
|
+
<DialogHeader>
|
|
27
|
+
<DialogTitle>Edit Profile</DialogTitle>
|
|
28
|
+
<DialogDescription>Make changes to your profile.</DialogDescription>
|
|
29
|
+
</DialogHeader>
|
|
30
|
+
<div>Form fields here</div>
|
|
31
|
+
<DialogFooter>
|
|
32
|
+
<Button>Save</Button>
|
|
33
|
+
</DialogFooter>
|
|
34
|
+
</DialogContent>
|
|
35
|
+
</Dialog>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Gotchas
|
|
39
|
+
- DialogTitle is required for accessibility — screen readers announce it when the dialog opens
|
|
40
|
+
|
|
41
|
+
## Changes
|
|
42
|
+
### v0.19.1
|
|
43
|
+
- **Fixed** Dialog not centered after Framer Motion animation completes — `transform: none` inline style overrode Tailwind `translate-x/y` classes. Centering now handled via Framer Motion `x`/`y` properties.
|
|
44
|
+
|
|
45
|
+
### v0.18.0
|
|
46
|
+
- **Changed** Overlay animations migrated to Framer Motion (physics-based springs)
|
|
47
|
+
- **Added** `DialogContentProps`, `DialogTitleProps` type exports
|
|
48
|
+
- **Fixed** Context provider value wrapped in `useMemo` for performance
|
|
49
|
+
|
|
50
|
+
### v0.3.0
|
|
51
|
+
- **Fixed** DialogHeader/Footer now support ref forwarding
|
|
52
|
+
|
|
53
|
+
### v0.1.0
|
|
54
|
+
- **Added** Initial release
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# DropdownMenu
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/dropdown-menu
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Compound Components
|
|
8
|
-
DropdownMenu (root)
|
|
9
|
-
DropdownMenuTrigger
|
|
10
|
-
DropdownMenuContent
|
|
11
|
-
DropdownMenuLabel
|
|
12
|
-
DropdownMenuSeparator
|
|
13
|
-
DropdownMenuItem (+ DropdownMenuShortcut for keyboard hints)
|
|
14
|
-
DropdownMenuCheckboxItem
|
|
15
|
-
DropdownMenuRadioGroup > DropdownMenuRadioItem
|
|
16
|
-
DropdownMenuGroup
|
|
17
|
-
DropdownMenuSub > DropdownMenuSubTrigger, DropdownMenuSubContent
|
|
18
|
-
|
|
19
|
-
## Defaults
|
|
20
|
-
none
|
|
21
|
-
|
|
22
|
-
## Example
|
|
23
|
-
```jsx
|
|
24
|
-
<DropdownMenu>
|
|
25
|
-
<DropdownMenuTrigger asChild><Button variant="ghost">Menu</Button></DropdownMenuTrigger>
|
|
26
|
-
<DropdownMenuContent>
|
|
27
|
-
<DropdownMenuItem>Profile</DropdownMenuItem>
|
|
28
|
-
<DropdownMenuSeparator />
|
|
29
|
-
<DropdownMenuItem>Logout</DropdownMenuItem>
|
|
30
|
-
</DropdownMenuContent>
|
|
31
|
-
</DropdownMenu>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Gotchas
|
|
35
|
-
- Use `asChild` on DropdownMenuTrigger to render your own button element
|
|
36
|
-
|
|
37
|
-
## Changes
|
|
38
|
-
### v0.22.0
|
|
39
|
-
- **Added** Hover state on `DropdownMenuItem` — was completely missing. Items now show `bg-surface-3` on hover with `ease-productive-standard` transition.
|
|
40
|
-
|
|
41
|
-
### v0.18.0
|
|
42
|
-
- **Added** `DropdownMenuContentProps`, `DropdownMenuItemProps` type exports
|
|
43
|
-
|
|
44
|
-
### v0.14.0
|
|
45
|
-
- **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes dropdown rendering behind Sheet/Dialog overlays
|
|
46
|
-
|
|
47
|
-
### v0.1.0
|
|
48
|
-
- **Added** Initial release
|
|
1
|
+
# DropdownMenu
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/dropdown-menu
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Compound Components
|
|
8
|
+
DropdownMenu (root)
|
|
9
|
+
DropdownMenuTrigger
|
|
10
|
+
DropdownMenuContent
|
|
11
|
+
DropdownMenuLabel
|
|
12
|
+
DropdownMenuSeparator
|
|
13
|
+
DropdownMenuItem (+ DropdownMenuShortcut for keyboard hints)
|
|
14
|
+
DropdownMenuCheckboxItem
|
|
15
|
+
DropdownMenuRadioGroup > DropdownMenuRadioItem
|
|
16
|
+
DropdownMenuGroup
|
|
17
|
+
DropdownMenuSub > DropdownMenuSubTrigger, DropdownMenuSubContent
|
|
18
|
+
|
|
19
|
+
## Defaults
|
|
20
|
+
none
|
|
21
|
+
|
|
22
|
+
## Example
|
|
23
|
+
```jsx
|
|
24
|
+
<DropdownMenu>
|
|
25
|
+
<DropdownMenuTrigger asChild><Button variant="ghost">Menu</Button></DropdownMenuTrigger>
|
|
26
|
+
<DropdownMenuContent>
|
|
27
|
+
<DropdownMenuItem>Profile</DropdownMenuItem>
|
|
28
|
+
<DropdownMenuSeparator />
|
|
29
|
+
<DropdownMenuItem>Logout</DropdownMenuItem>
|
|
30
|
+
</DropdownMenuContent>
|
|
31
|
+
</DropdownMenu>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Gotchas
|
|
35
|
+
- Use `asChild` on DropdownMenuTrigger to render your own button element
|
|
36
|
+
|
|
37
|
+
## Changes
|
|
38
|
+
### v0.22.0
|
|
39
|
+
- **Added** Hover state on `DropdownMenuItem` — was completely missing. Items now show `bg-surface-3` on hover with `ease-productive-standard` transition.
|
|
40
|
+
|
|
41
|
+
### v0.18.0
|
|
42
|
+
- **Added** `DropdownMenuContentProps`, `DropdownMenuItemProps` type exports
|
|
43
|
+
|
|
44
|
+
### v0.14.0
|
|
45
|
+
- **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes dropdown rendering behind Sheet/Dialog overlays
|
|
46
|
+
|
|
47
|
+
### v0.1.0
|
|
48
|
+
- **Added** Initial release
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# FileUpload
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/file-upload
|
|
4
|
-
- Server-safe: No
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
onFiles: (files: File[]) => void (REQUIRED)
|
|
9
|
-
accept: string (MIME or extension, e.g. "image/*", ".pdf,.doc")
|
|
10
|
-
maxSize: number (bytes, default: 10MB)
|
|
11
|
-
multiple: boolean
|
|
12
|
-
uploading: boolean
|
|
13
|
-
progress: number (0-100)
|
|
14
|
-
error: string
|
|
15
|
-
compact: boolean (inline button mode vs drop zone)
|
|
16
|
-
disabled: boolean
|
|
17
|
-
label: string
|
|
18
|
-
sublabel: string
|
|
19
|
-
|
|
20
|
-
## Defaults
|
|
21
|
-
compact: false
|
|
22
|
-
maxSize: 10MB (10485760 bytes)
|
|
23
|
-
|
|
24
|
-
## Example
|
|
25
|
-
```jsx
|
|
26
|
-
<FileUpload
|
|
27
|
-
accept="image/*"
|
|
28
|
-
maxSize={2 * 1024 * 1024}
|
|
29
|
-
onFiles={(files) => uploadAvatar(files[0])}
|
|
30
|
-
label="Upload profile photo"
|
|
31
|
-
sublabel="PNG, JPG up to 2MB"
|
|
32
|
-
/>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Gotchas
|
|
36
|
-
- compact=true renders a small inline button; false (default) renders a large drag-and-drop zone
|
|
37
|
-
- Client-side validation: invalid files are rejected before onFiles is called
|
|
38
|
-
|
|
39
|
-
## Changes
|
|
40
|
-
### v0.1.0
|
|
41
|
-
- **Added** Initial release
|
|
1
|
+
# FileUpload
|
|
2
|
+
|
|
3
|
+
- Import: @devalok/shilp-sutra/ui/file-upload
|
|
4
|
+
- Server-safe: No
|
|
5
|
+
- Category: ui
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
onFiles: (files: File[]) => void (REQUIRED)
|
|
9
|
+
accept: string (MIME or extension, e.g. "image/*", ".pdf,.doc")
|
|
10
|
+
maxSize: number (bytes, default: 10MB)
|
|
11
|
+
multiple: boolean
|
|
12
|
+
uploading: boolean
|
|
13
|
+
progress: number (0-100)
|
|
14
|
+
error: string
|
|
15
|
+
compact: boolean (inline button mode vs drop zone)
|
|
16
|
+
disabled: boolean
|
|
17
|
+
label: string
|
|
18
|
+
sublabel: string
|
|
19
|
+
|
|
20
|
+
## Defaults
|
|
21
|
+
compact: false
|
|
22
|
+
maxSize: 10MB (10485760 bytes)
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
```jsx
|
|
26
|
+
<FileUpload
|
|
27
|
+
accept="image/*"
|
|
28
|
+
maxSize={2 * 1024 * 1024}
|
|
29
|
+
onFiles={(files) => uploadAvatar(files[0])}
|
|
30
|
+
label="Upload profile photo"
|
|
31
|
+
sublabel="PNG, JPG up to 2MB"
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Gotchas
|
|
36
|
+
- compact=true renders a small inline button; false (default) renders a large drag-and-drop zone
|
|
37
|
+
- Client-side validation: invalid files are rejected before onFiles is called
|
|
38
|
+
|
|
39
|
+
## Changes
|
|
40
|
+
### v0.1.0
|
|
41
|
+
- **Added** Initial release
|