@devalok/shilp-sutra 0.55.1 → 0.57.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/BREAKING.json +13 -0
- package/MIGRATION.md +163 -0
- package/README.md +16 -1
- package/dist/_chunks/badge-group.js +92 -78
- package/dist/_chunks/badge-group.js.map +1 -1
- package/dist/_chunks/chat.js +91 -75
- package/dist/_chunks/chat.js.map +1 -1
- package/dist/_chunks/document-preview.js +1 -1
- package/dist/_chunks/document-preview.js.map +1 -1
- package/dist/_chunks/emoji-suggestion.js +32 -30
- package/dist/_chunks/emoji-suggestion.js.map +1 -1
- package/dist/_chunks/mention-suggestion.js +36 -35
- package/dist/_chunks/mention-suggestion.js.map +1 -1
- package/dist/_chunks/oauth-button.js +1 -1
- package/dist/_chunks/oauth-button.js.map +1 -1
- package/dist/_chunks/primitives-internal.js +437 -537
- package/dist/_chunks/primitives-internal.js.map +1 -1
- package/dist/_chunks/success.js +2 -2
- package/dist/_chunks/success.js.map +1 -1
- package/dist/_chunks/tree-view.js +1 -1
- package/dist/_chunks/tree-view.js.map +1 -1
- package/dist/_chunks/use-calendar.js +4 -4
- package/dist/_chunks/use-calendar.js.map +1 -1
- package/dist/ai/blocks/text.js +1 -1
- package/dist/ai/blocks/text.js.map +1 -1
- package/dist/ai/command-bar.js +9 -9
- package/dist/ai/command-bar.js.map +1 -1
- package/dist/ai/conversation.js +2 -2
- package/dist/ai/conversation.js.map +1 -1
- package/dist/composed/activity-feed.js +1 -1
- package/dist/composed/activity-feed.js.map +1 -1
- package/dist/composed/avatar-group.d.ts +7 -2
- package/dist/composed/avatar-group.d.ts.map +1 -1
- package/dist/composed/avatar-group.js +3 -3
- package/dist/composed/avatar-group.js.map +1 -1
- package/dist/composed/command-palette.js +7 -7
- package/dist/composed/command-palette.js.map +1 -1
- package/dist/composed/content-card.js +20 -20
- package/dist/composed/content-card.js.map +1 -1
- package/dist/composed/date-picker/index.js +4 -4
- package/dist/composed/date-picker/index.js.map +1 -1
- package/dist/composed/diff.d.ts +23 -2
- package/dist/composed/diff.d.ts.map +1 -1
- package/dist/composed/diff.js +341 -260
- package/dist/composed/diff.js.map +1 -1
- package/dist/composed/emoji-picker.js +3 -3
- package/dist/composed/emoji-picker.js.map +1 -1
- package/dist/composed/error-boundary.js +2 -2
- package/dist/composed/error-boundary.js.map +1 -1
- package/dist/composed/extensions/emoji-node.js +8 -7
- package/dist/composed/extensions/emoji-node.js.map +1 -1
- package/dist/composed/file-preview.js +1 -1
- package/dist/composed/file-preview.js.map +1 -1
- package/dist/composed/filter-bar.js +1 -1
- package/dist/composed/filter-bar.js.map +1 -1
- package/dist/composed/inline-edit.js +1 -1
- package/dist/composed/inline-edit.js.map +1 -1
- package/dist/composed/loading-skeleton.js +3 -3
- package/dist/composed/loading-skeleton.js.map +1 -1
- package/dist/composed/master-detail.js +1 -1
- package/dist/composed/master-detail.js.map +1 -1
- package/dist/composed/member-picker.js +1 -1
- package/dist/composed/member-picker.js.map +1 -1
- package/dist/composed/multi-select-popover.js +1 -1
- package/dist/composed/multi-select-popover.js.map +1 -1
- package/dist/composed/page-skeletons.js +4 -4
- package/dist/composed/page-skeletons.js.map +1 -1
- package/dist/composed/responsive-modal.js +1 -1
- package/dist/composed/responsive-modal.js.map +1 -1
- package/dist/composed/rich-chat-input.js +549 -540
- package/dist/composed/rich-chat-input.js.map +1 -1
- package/dist/composed/rich-text-editor.js +206 -198
- package/dist/composed/rich-text-editor.js.map +1 -1
- package/dist/composed/schedule-view.js +5 -5
- package/dist/composed/schedule-view.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -3
- package/dist/hooks/use-container-size.d.ts +18 -0
- package/dist/hooks/use-container-size.d.ts.map +1 -0
- package/dist/hooks/use-container-size.js +28 -0
- package/dist/hooks/use-container-size.js.map +1 -0
- package/dist/shell/app-shell.d.ts +101 -0
- package/dist/shell/app-shell.d.ts.map +1 -0
- package/dist/shell/app-shell.js +76 -0
- package/dist/shell/app-shell.js.map +1 -0
- package/dist/shell/bottom-navbar.js +2 -2
- package/dist/shell/bottom-navbar.js.map +1 -1
- package/dist/shell/index.d.ts +1 -0
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +6 -5
- package/dist/shell/notification-center.js +4 -4
- package/dist/shell/notification-center.js.map +1 -1
- package/dist/shell/notification-preferences.js +1 -1
- package/dist/shell/notification-preferences.js.map +1 -1
- package/dist/shell/top-bar.js +7 -7
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/tokens/generate-scale.d.ts +49 -0
- package/dist/tokens/generate-scale.d.ts.map +1 -1
- package/dist/tokens/primitives.css +29 -26
- package/dist/tokens/semantic.css +98 -39
- package/dist/tokens/variants.css +1 -1
- package/dist/ui/accordion.js +1 -1
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +36 -36
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/avatar.js +44 -44
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge-indicator.js +1 -1
- package/dist/ui/badge-indicator.js.map +1 -1
- package/dist/ui/badge.d.ts +47 -33
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/banner.js +26 -26
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/button.js +35 -35
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.js +42 -42
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/chat/date-separator.d.ts +8 -1
- package/dist/ui/chat/date-separator.d.ts.map +1 -1
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code.js +2 -2
- package/dist/ui/code.js.map +1 -1
- package/dist/ui/color-input.js +3 -3
- package/dist/ui/color-input.js.map +1 -1
- package/dist/ui/combobox.js +139 -139
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/context-menu.js +4 -4
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/data-table-body.d.ts +3 -1
- package/dist/ui/data-table-body.d.ts.map +1 -1
- package/dist/ui/data-table-body.js +93 -92
- package/dist/ui/data-table-body.js.map +1 -1
- package/dist/ui/data-table-bulk-actions.d.ts +7 -1
- package/dist/ui/data-table-bulk-actions.d.ts.map +1 -1
- package/dist/ui/data-table-bulk-actions.js +14 -8
- package/dist/ui/data-table-bulk-actions.js.map +1 -1
- package/dist/ui/data-table-card.d.ts.map +1 -1
- package/dist/ui/data-table-card.js +66 -47
- package/dist/ui/data-table-card.js.map +1 -1
- package/dist/ui/data-table-context.d.ts +4 -0
- package/dist/ui/data-table-context.d.ts.map +1 -1
- package/dist/ui/data-table-context.js.map +1 -1
- package/dist/ui/data-table-header.d.ts.map +1 -1
- package/dist/ui/data-table-header.js +18 -15
- package/dist/ui/data-table-header.js.map +1 -1
- package/dist/ui/data-table-pagination.js +3 -3
- package/dist/ui/data-table-pagination.js.map +1 -1
- package/dist/ui/data-table-toolbar.d.ts +11 -1
- package/dist/ui/data-table-toolbar.d.ts.map +1 -1
- package/dist/ui/data-table-toolbar.js +7 -7
- package/dist/ui/data-table-toolbar.js.map +1 -1
- package/dist/ui/data-table.d.ts +52 -5
- package/dist/ui/data-table.d.ts.map +1 -1
- package/dist/ui/data-table.js +181 -169
- package/dist/ui/data-table.js.map +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dot.js +13 -13
- package/dist/ui/dot.js.map +1 -1
- package/dist/ui/dropdown-menu.js +4 -4
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/file-upload.js +3 -3
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/input-otp.js +1 -1
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.js +30 -30
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/lib/utils.js +2 -1
- package/dist/ui/lib/utils.js.map +1 -1
- package/dist/ui/menubar.js +5 -5
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/navigation-menu.js +1 -1
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/number-input.js +36 -36
- package/dist/ui/number-input.js.map +1 -1
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/progress-ring.js +2 -2
- package/dist/ui/progress-ring.js.map +1 -1
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +66 -62
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/radio.js +1 -1
- package/dist/ui/radio.js.map +1 -1
- package/dist/ui/select.js +61 -61
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/sheet.js +47 -47
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/sidebar.js +132 -132
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.js +39 -39
- package/dist/ui/slider.js +18 -18
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/split-button.js +3 -3
- package/dist/ui/split-button.js.map +1 -1
- package/dist/ui/stat-card.js +1 -1
- package/dist/ui/stat-card.js.map +1 -1
- package/dist/ui/stepper.js +2 -2
- package/dist/ui/stepper.js.map +1 -1
- package/dist/ui/surface.d.ts.map +1 -1
- package/dist/ui/surface.js +11 -11
- package/dist/ui/surface.js.map +1 -1
- package/dist/ui/switch.js +1 -1
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.js +1 -1
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +48 -48
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/text.js +8 -8
- package/dist/ui/textarea.js +17 -17
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/toast.js +1 -1
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toggle.js +15 -15
- package/dist/ui/toggle.js.map +1 -1
- package/docs/components/composed/avatar-group.md +4 -4
- package/docs/components/composed/diff.md +10 -2
- package/docs/components/composed/schedule-view.md +1 -1
- package/docs/components/shell/app-shell.md +132 -0
- package/docs/components/ui/avatar.md +1 -1
- package/docs/components/ui/button.md +1 -1
- package/docs/components/ui/chat.md +7 -1
- package/docs/components/ui/color-swatch.md +1 -1
- package/docs/components/ui/data-table-toolbar.md +6 -2
- package/docs/components/ui/data-table.md +41 -7
- package/docs/components/ui/dot.md +1 -1
- package/docs/components/ui/progress.md +1 -0
- package/docs/components/ui/surface.md +3 -3
- package/docs/components/ui/table.md +2 -2
- package/docs/recipes/install-astro.md +3 -2
- package/docs/recipes/install-next-app-router.md +3 -2
- package/docs/recipes/install-remix.md +3 -2
- package/docs/recipes/install-tanstack-start.md +3 -2
- package/docs/recipes/install-vite.md +3 -2
- package/docs/recipes/troubleshoot.md +26 -5
- package/llms.txt +2 -1
- package/make-kit/Guidelines.md +2 -2
- package/make-kit/components/button.md +1 -1
- package/make-kit/components/card.md +6 -6
- package/make-kit/components/surface.md +4 -4
- package/make-kit/foundations/color.md +4 -4
- package/make-kit/foundations/dark-mode.md +1 -1
- package/make-kit/foundations/radius.md +1 -1
- package/make-kit/foundations/surfaces.md +9 -9
- package/mcp-manifest.json +373 -34
- package/package.json +43 -13
- package/skill/SKILL.md +12 -6
- package/skill/references/components.md +2 -1
- package/skill/references/setup-astro.md +3 -2
- package/skill/references/setup-next-app-router.md +3 -2
- package/skill/references/setup-remix.md +3 -2
- package/skill/references/setup-tanstack-start.md +3 -2
- package/skill/references/setup-vite.md +3 -2
- package/skill/references/troubleshoot.md +26 -5
- package/dist/_chunks/tiptap.js +0 -18809
- package/dist/_chunks/tiptap.js.map +0 -1
- package/dist/_chunks/vendor-utils.js +0 -1766
- package/dist/_chunks/vendor-utils.js.map +0 -1
- package/dist/primitives/react-toast.d.ts +0 -120
- package/dist/ui/charts/_internal/scales.d.ts +0 -5
- package/dist/ui/charts/_internal/scales.d.ts.map +0 -1
- package/dist/ui/lib/slot.d.ts +0 -8
- package/dist/ui/lib/slot.d.ts.map +0 -1
- package/scripts/welcome.mjs +0 -312
package/mcp-manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "./mcp-manifest.schema.json",
|
|
3
3
|
"manifestVersion": "1.2.0",
|
|
4
4
|
"package": "@devalok/shilp-sutra",
|
|
5
|
-
"packageVersion": "0.
|
|
5
|
+
"packageVersion": "0.57.0",
|
|
6
6
|
"components": {
|
|
7
7
|
"accordion": {
|
|
8
8
|
"displayName": "Accordion",
|
|
@@ -603,7 +603,7 @@
|
|
|
603
603
|
"**Status + Ring + Badge are independent** — you can stack all three on one Avatar. They render in separate layers so they don't conflict visually.",
|
|
604
604
|
"**Use with AvatarGroup:** AvatarGroup applies its own `size` to children. If your Avatar has an explicit `size`, it overrides AvatarGroup's default — keep it consistent across the group.",
|
|
605
605
|
"**AvatarFallback colorSeed:** Deterministic background color from the seed string — identical user IDs produce identical backgrounds across renders. Useful for user-identifying avatars without photos.",
|
|
606
|
-
"**Ring offset color:** The ring renders with `ring-offset` matching the current surface — it assumes the Avatar sits on `bg-surface-
|
|
606
|
+
"**Ring offset color:** The ring renders with `ring-offset` matching the current surface — it assumes the Avatar sits on `bg-surface-panel`. On other backgrounds, add a ring-offset className to compensate."
|
|
607
607
|
],
|
|
608
608
|
"parts": [
|
|
609
609
|
{
|
|
@@ -1427,7 +1427,7 @@
|
|
|
1427
1427
|
"<Button variant=\"solid\" color=\"error\" startIcon={<Icon icon={IconTrash} />} loading={isDeleting}>\n Delete project\n</Button>\n<Button variant=\"soft\" color=\"success\" startIcon={<Icon icon={IconCheck} />}>Approved</Button>\n<Button variant=\"soft\" color=\"warning\" size=\"compact-sm\" shape=\"pill\">Overdue</Button>"
|
|
1428
1428
|
],
|
|
1429
1429
|
"gotchas": [
|
|
1430
|
-
"**Prefer `variant=\"soft\"` over `variant=\"outline\"` for secondary actions.** Soft (tinted step-3 bg, step-11 text) is the Devalok-recommended default — it feels warmer and brand-consistent. Use `outline` only when soft's tint would disappear (on colored/surface-
|
|
1430
|
+
"**Prefer `variant=\"soft\"` over `variant=\"outline\"` for secondary actions.** Soft (tinted step-3 bg, step-11 text) is the Devalok-recommended default — it feels warmer and brand-consistent. Use `outline` only when soft's tint would disappear (on colored/surface-panel bg), in toolbar/icon-dense contexts, or when you need outline's stronger hierarchy next to a primary action.",
|
|
1431
1431
|
"DO NOT use variant=\"destructive\" — use variant=\"solid\" color=\"error\"",
|
|
1432
1432
|
"DO NOT use variant=\"secondary\" — use variant=\"soft\" (preferred) or variant=\"ghost\"",
|
|
1433
1433
|
"DO NOT use size=\"default\" — use size=\"md\"",
|
|
@@ -2306,7 +2306,7 @@
|
|
|
2306
2306
|
"notes": [
|
|
2307
2307
|
"**Server-safe, decorative-only primitive.** Accepts any valid CSS color string — hex, rgb, oklch, hsl, named. Pure presentation, no context.",
|
|
2308
2308
|
"**Usage patterns:** Inline color marker next to a label, preview dot in lists, color-indicator in a category chip, legend swatch for charts.",
|
|
2309
|
-
"**`ring={true}`** adds a subtle outline — essential for white/very-light colors that would otherwise disappear on surface-
|
|
2309
|
+
"**`ring={true}`** adds a subtle outline — essential for white/very-light colors that would otherwise disappear on surface-panel backgrounds.",
|
|
2310
2310
|
"**Interactive color picking:** Use ColorInput (which opens a full picker). ColorSwatch is display-only.",
|
|
2311
2311
|
"No IconProvider cascade, no FormField consumption — composes freely with anything."
|
|
2312
2312
|
]
|
|
@@ -2626,7 +2626,7 @@
|
|
|
2626
2626
|
"columns": {
|
|
2627
2627
|
"type": {
|
|
2628
2628
|
"name": "object",
|
|
2629
|
-
"raw": "ColumnDef<TData>[]"
|
|
2629
|
+
"raw": "ColumnDef<TData, TValue>[]"
|
|
2630
2630
|
},
|
|
2631
2631
|
"required": false,
|
|
2632
2632
|
"description": "TanStack column definitions"
|
|
@@ -2638,6 +2638,13 @@
|
|
|
2638
2638
|
},
|
|
2639
2639
|
"required": false
|
|
2640
2640
|
},
|
|
2641
|
+
"className": {
|
|
2642
|
+
"type": {
|
|
2643
|
+
"name": "object",
|
|
2644
|
+
"raw": "string — class name for the wrapper div"
|
|
2645
|
+
},
|
|
2646
|
+
"required": false
|
|
2647
|
+
},
|
|
2641
2648
|
"sortable": {
|
|
2642
2649
|
"type": {
|
|
2643
2650
|
"name": "object",
|
|
@@ -2648,7 +2655,7 @@
|
|
|
2648
2655
|
"onSort": {
|
|
2649
2656
|
"type": {
|
|
2650
2657
|
"name": "function",
|
|
2651
|
-
"raw": "(key: string,
|
|
2658
|
+
"raw": "(key: string, direction: 'asc' | 'desc' | false) => void — server-side sort callback (enables manualSorting)"
|
|
2652
2659
|
},
|
|
2653
2660
|
"required": false
|
|
2654
2661
|
},
|
|
@@ -2659,6 +2666,14 @@
|
|
|
2659
2666
|
},
|
|
2660
2667
|
"required": false
|
|
2661
2668
|
},
|
|
2669
|
+
"filterableColumns": {
|
|
2670
|
+
"type": {
|
|
2671
|
+
"name": "object",
|
|
2672
|
+
"raw": "string[] — restrict filter inputs to these column IDs"
|
|
2673
|
+
},
|
|
2674
|
+
"required": false,
|
|
2675
|
+
"description": "only with filterable; omit for all filterable columns"
|
|
2676
|
+
},
|
|
2662
2677
|
"globalFilter": {
|
|
2663
2678
|
"type": {
|
|
2664
2679
|
"name": "object",
|
|
@@ -2688,6 +2703,14 @@
|
|
|
2688
2703
|
"description": "default 10",
|
|
2689
2704
|
"defaultValue": 10
|
|
2690
2705
|
},
|
|
2706
|
+
"pageSizeOptions": {
|
|
2707
|
+
"type": {
|
|
2708
|
+
"name": "object",
|
|
2709
|
+
"raw": "number[] — page-size selector options"
|
|
2710
|
+
},
|
|
2711
|
+
"required": false,
|
|
2712
|
+
"description": "default [10, 20, 50, 100]"
|
|
2713
|
+
},
|
|
2691
2714
|
"selectable": {
|
|
2692
2715
|
"type": {
|
|
2693
2716
|
"name": "object",
|
|
@@ -2719,7 +2742,7 @@
|
|
|
2719
2742
|
"onSelectionChange": {
|
|
2720
2743
|
"type": {
|
|
2721
2744
|
"name": "function",
|
|
2722
|
-
"raw": "(selectedRows: TData[]) => void"
|
|
2745
|
+
"raw": "(selectedRows: TData[], selectedIds: Set<string>) => void — does NOT fire on mount"
|
|
2723
2746
|
},
|
|
2724
2747
|
"required": false
|
|
2725
2748
|
},
|
|
@@ -2780,13 +2803,28 @@
|
|
|
2780
2803
|
},
|
|
2781
2804
|
"required": false
|
|
2782
2805
|
},
|
|
2806
|
+
"rowClassName": {
|
|
2807
|
+
"type": {
|
|
2808
|
+
"name": "function",
|
|
2809
|
+
"raw": "(row: TData) => string | undefined — conditional per-row class (the <tr> in table mode, the Card in card mode)"
|
|
2810
|
+
},
|
|
2811
|
+
"required": false
|
|
2812
|
+
},
|
|
2783
2813
|
"bulkActions": {
|
|
2784
2814
|
"type": {
|
|
2785
2815
|
"name": "union",
|
|
2786
|
-
"raw": "BulkAction<TData>[] — floating action bar on selection — { label, onClick, color?: '
|
|
2816
|
+
"raw": "BulkAction<TData>[] — floating action bar on selection — { label, onClick, icon?: IconInput, color?: 'accent'|'error', disabled? }"
|
|
2787
2817
|
},
|
|
2788
2818
|
"required": false
|
|
2789
2819
|
},
|
|
2820
|
+
"bulkActionsPosition": {
|
|
2821
|
+
"type": {
|
|
2822
|
+
"name": "union",
|
|
2823
|
+
"raw": "'bottom' | 'top' | 'inline' — where the bulk-actions bar renders"
|
|
2824
|
+
},
|
|
2825
|
+
"required": false,
|
|
2826
|
+
"description": "default 'bottom'"
|
|
2827
|
+
},
|
|
2790
2828
|
"toolbar": {
|
|
2791
2829
|
"type": {
|
|
2792
2830
|
"name": "object",
|
|
@@ -2795,6 +2833,22 @@
|
|
|
2795
2833
|
"required": false,
|
|
2796
2834
|
"description": "column visibility, density, CSV export"
|
|
2797
2835
|
},
|
|
2836
|
+
"enableExport": {
|
|
2837
|
+
"type": {
|
|
2838
|
+
"name": "object",
|
|
2839
|
+
"raw": "boolean — show the toolbar's Export CSV button"
|
|
2840
|
+
},
|
|
2841
|
+
"required": false,
|
|
2842
|
+
"description": "default true",
|
|
2843
|
+
"defaultValue": true
|
|
2844
|
+
},
|
|
2845
|
+
"onExport": {
|
|
2846
|
+
"type": {
|
|
2847
|
+
"name": "function",
|
|
2848
|
+
"raw": "(visibleRows: TData[]) => void — replace the built-in CSV export"
|
|
2849
|
+
},
|
|
2850
|
+
"required": false
|
|
2851
|
+
},
|
|
2798
2852
|
"editable": {
|
|
2799
2853
|
"type": {
|
|
2800
2854
|
"name": "object",
|
|
@@ -2802,6 +2856,13 @@
|
|
|
2802
2856
|
},
|
|
2803
2857
|
"required": false
|
|
2804
2858
|
},
|
|
2859
|
+
"onCellEdit": {
|
|
2860
|
+
"type": {
|
|
2861
|
+
"name": "function",
|
|
2862
|
+
"raw": "(rowIndex: number, columnId: string, value: unknown) => void — fired on cell edit commit"
|
|
2863
|
+
},
|
|
2864
|
+
"required": false
|
|
2865
|
+
},
|
|
2805
2866
|
"virtualRows": {
|
|
2806
2867
|
"type": {
|
|
2807
2868
|
"name": "object",
|
|
@@ -2809,6 +2870,32 @@
|
|
|
2809
2870
|
},
|
|
2810
2871
|
"required": false
|
|
2811
2872
|
},
|
|
2873
|
+
"virtualRowHeight": {
|
|
2874
|
+
"type": {
|
|
2875
|
+
"name": "object",
|
|
2876
|
+
"raw": "number — ESTIMATED row height in px (default 48); real heights are measured after mount"
|
|
2877
|
+
},
|
|
2878
|
+
"required": false,
|
|
2879
|
+
"defaultValue": 48
|
|
2880
|
+
},
|
|
2881
|
+
"maxHeight": {
|
|
2882
|
+
"type": {
|
|
2883
|
+
"name": "object",
|
|
2884
|
+
"raw": "number — max height of the virtual scroll container in px"
|
|
2885
|
+
},
|
|
2886
|
+
"required": false,
|
|
2887
|
+
"description": "default 600",
|
|
2888
|
+
"defaultValue": 600
|
|
2889
|
+
},
|
|
2890
|
+
"mobileView": {
|
|
2891
|
+
"type": {
|
|
2892
|
+
"name": "union",
|
|
2893
|
+
"raw": "'card' | 'table' — stacked cards below the sm breakpoint"
|
|
2894
|
+
},
|
|
2895
|
+
"required": false,
|
|
2896
|
+
"description": "default 'table'",
|
|
2897
|
+
"defaultValue": "table"
|
|
2898
|
+
},
|
|
2812
2899
|
"columnPinning": {
|
|
2813
2900
|
"type": {
|
|
2814
2901
|
"name": "object",
|
|
@@ -2825,7 +2912,8 @@
|
|
|
2825
2912
|
"comfortable"
|
|
2826
2913
|
]
|
|
2827
2914
|
},
|
|
2828
|
-
"required": false
|
|
2915
|
+
"required": false,
|
|
2916
|
+
"defaultValue": "standard"
|
|
2829
2917
|
}
|
|
2830
2918
|
},
|
|
2831
2919
|
"composition": {
|
|
@@ -2840,13 +2928,18 @@
|
|
|
2840
2928
|
"Pass `selectedIds` (Set<string>) + `onSelectionChange` for controlled row selection.",
|
|
2841
2929
|
"Provide `getRowId: (row) => row.id` so selection survives data refetches (otherwise TanStack uses array index, which breaks on sort/filter).",
|
|
2842
2930
|
"`selectableFilter: (row) => boolean` disables selection on specific rows (e.g. archived items). **Row click model:**",
|
|
2843
|
-
"`onRowClick` fires on row-level click BUT excludes clicks on checkboxes, buttons, links, and inputs automatically. No manual `stopPropagation` needed for standard interactive elements. **Virtualization:** `virtualRows={true}` enables row virtualization via `@tanstack/react-virtual`. Turn it on for 1000+ row datasets; the scroll container must have a bounded height. **Density integration:** density is forwarded to `Table`'s `density` prop, which sets `--table-py` (compact 4 / standard 8 / comfortable 12px → rows ≈ 29 / 37 / 45px; header tracks it). DataTableToolbar's density switcher updates this at runtime; the prop sets the initial state only."
|
|
2931
|
+
"`onRowClick` fires on row-level click BUT excludes clicks on checkboxes, buttons, links, and inputs automatically. No manual `stopPropagation` needed for standard interactive elements. **Virtualization:** `virtualRows={true}` enables row virtualization via `@tanstack/react-virtual`. Turn it on for 1000+ row datasets; the scroll container must have a bounded height. Rows stay in normal table flow (each windowed row is its own `<tbody>` measured by the virtualizer, with spacer row groups reserving the un-rendered remainder), so column widths keep tracking `<thead>` and `virtualRowHeight` is only the pre-measurement estimate. **Virtualization + expansion:** `virtualRows` and `expandable` compose. Because each row group is measured, an expanded detail panel of any height contributes to the total scroll size and pushes the rows below it down. The reveal is instant in virtual mode (no height animation) — an animating height would fire a resize on every frame. **Toolbar export:** the Export button renders whenever `toolbar` is on. The built-in CSV export walks `getFilteredRowModel()`, which under server-side `pagination` is only the current page — pass `onExport` to fetch the full set yourself, or `enableExport={false}` to drop the button. **Density integration:** density is forwarded to `Table`'s `density` prop, which sets `--table-py` (compact 4 / standard 8 / comfortable 12px → rows ≈ 29 / 37 / 45px; header tracks it). DataTableToolbar's density switcher updates this at runtime; the prop sets the initial state only."
|
|
2844
2932
|
]
|
|
2845
2933
|
},
|
|
2846
2934
|
"docPath": "docs/components/ui/data-table.md",
|
|
2847
2935
|
"defaults": {
|
|
2848
2936
|
"pageSize": 10,
|
|
2849
|
-
"noResultsText": "No results."
|
|
2937
|
+
"noResultsText": "No results.",
|
|
2938
|
+
"enableExport": true,
|
|
2939
|
+
"mobileView": "table",
|
|
2940
|
+
"virtualRowHeight": 48,
|
|
2941
|
+
"maxHeight": 600,
|
|
2942
|
+
"density": "standard"
|
|
2850
2943
|
},
|
|
2851
2944
|
"examples": [
|
|
2852
2945
|
"import { DataTable } from '@devalok/shilp-sutra/ui/data-table'\n\n<DataTable\n columns={[\n { accessorKey: 'name', header: 'Name' },\n { accessorKey: 'email', header: 'Email' },\n ]}\n data={users}\n sortable\n onSort={(key, dir) => handleSort(key, dir)}\n pagination={{ page, pageSize: 20, total: totalCount, onPageChange: setPage }}\n loading={isLoading}\n emptyState={<EmptyState title=\"No users\" />}\n/>"
|
|
@@ -2859,9 +2952,16 @@
|
|
|
2859
2952
|
"selectedIds syncs via useEffect — provide getRowId for custom row IDs",
|
|
2860
2953
|
"onRowClick does NOT fire when clicking checkboxes, buttons, links, or inputs",
|
|
2861
2954
|
"Use density=\"compact\" for Karm-style h-9 rows",
|
|
2862
|
-
"`virtualRows={true}` requires a bounded scroll container — unbounded height silently disables virtualization"
|
|
2955
|
+
"`virtualRows={true}` requires a bounded scroll container — unbounded height silently disables virtualization",
|
|
2956
|
+
"`onSelectionChange` does NOT fire on mount, and does NOT fire when selection is synced from the `selectedIds` prop — only on genuine selection changes",
|
|
2957
|
+
"`filterableColumns` is ignored unless `filterable` is also set",
|
|
2958
|
+
"`rowClassName` returns are passed through `cn()` verbatim — a class that does not exist in the token set silently does nothing (use the real scale steps, e.g. `bg-error-3`, not invented names like `bg-error-subtle`)"
|
|
2863
2959
|
],
|
|
2864
2960
|
"changes": [
|
|
2961
|
+
{
|
|
2962
|
+
"version": "0.57.0",
|
|
2963
|
+
"summary": "**Fixed** `onSelectionChange` no longer fires on mount with `[]` — first-render guard added. Root cause of the cascade reported in #213."
|
|
2964
|
+
},
|
|
2865
2965
|
{
|
|
2866
2966
|
"version": "0.45.0",
|
|
2867
2967
|
"summary": "**Fixed** Expander a11y per the expando-row spec: `aria-expanded` on the toggle button, visually-hidden \"Expand rows\" column header; chevron rotation uses `duration-fast-02 ease-productive-standard`."
|
|
@@ -3041,7 +3141,8 @@
|
|
|
3041
3141
|
"type": {
|
|
3042
3142
|
"name": "boolean"
|
|
3043
3143
|
},
|
|
3044
|
-
"required": false
|
|
3144
|
+
"required": false,
|
|
3145
|
+
"defaultValue": false
|
|
3045
3146
|
},
|
|
3046
3147
|
"globalFilterValue": {
|
|
3047
3148
|
"type": {
|
|
@@ -3076,7 +3177,17 @@
|
|
|
3076
3177
|
},
|
|
3077
3178
|
"enableExport": {
|
|
3078
3179
|
"type": {
|
|
3079
|
-
"name": "
|
|
3180
|
+
"name": "object",
|
|
3181
|
+
"raw": "boolean — show the Export CSV button"
|
|
3182
|
+
},
|
|
3183
|
+
"required": false,
|
|
3184
|
+
"description": "default true",
|
|
3185
|
+
"defaultValue": true
|
|
3186
|
+
},
|
|
3187
|
+
"onExport": {
|
|
3188
|
+
"type": {
|
|
3189
|
+
"name": "function",
|
|
3190
|
+
"raw": "(visibleRows: TData[]) => void — replaces the built-in CSV logic; receives the currently visible filtered rows"
|
|
3080
3191
|
},
|
|
3081
3192
|
"required": false
|
|
3082
3193
|
}
|
|
@@ -3090,6 +3201,10 @@
|
|
|
3090
3201
|
]
|
|
3091
3202
|
},
|
|
3092
3203
|
"docPath": "docs/components/ui/data-table-toolbar.md",
|
|
3204
|
+
"defaults": {
|
|
3205
|
+
"enableExport": true,
|
|
3206
|
+
"globalFilter": false
|
|
3207
|
+
},
|
|
3093
3208
|
"examples": [
|
|
3094
3209
|
"import { DataTableToolbar } from '@devalok/shilp-sutra/ui/data-table-toolbar'\n\n<DataTableToolbar\n table={table}\n globalFilter\n globalFilterValue={filterValue}\n onGlobalFilterChange={setFilterValue}\n density={density}\n onDensityChange={setDensity}\n enableExport\n/>"
|
|
3095
3210
|
],
|
|
@@ -3100,6 +3215,10 @@
|
|
|
3100
3215
|
"Prefer DataTable's `toolbar={true}` prop over rendering this directly"
|
|
3101
3216
|
],
|
|
3102
3217
|
"changes": [
|
|
3218
|
+
{
|
|
3219
|
+
"version": "0.57.0",
|
|
3220
|
+
"summary": "**Added** `onExport?: (visibleRows: TData[]) => void` — when provided, replaces the built-in CSV logic. Same signature as `DataTable`'s `onExport`, so the prop forwards straight through."
|
|
3221
|
+
},
|
|
3103
3222
|
{
|
|
3104
3223
|
"version": "0.5.0",
|
|
3105
3224
|
"summary": "**Changed** (BREAKING) Removed from `@devalok/shilp-sutra/ui` barrel export — must use `@devalok/shilp-sutra/ui/data-table-toolbar`"
|
|
@@ -3373,7 +3492,7 @@
|
|
|
3373
3492
|
"**`pulse` = \"live\".** Off by default (static status). Turn it on for active/attention states (recording, live, connecting) — a pulsing dot reads as \"happening now\", so leave it off for settled statuses.",
|
|
3374
3493
|
"**Powers the higher-level pieces.** `StatusBadge` composes `<Badge>` + `<Dot>`; use `Dot` directly anywhere you need a coloured indicator without a pill.",
|
|
3375
3494
|
"**Three treatments:** `filled` (active), `ring` (hollow outline), `off` (faint same-tone fill + light border — present but inactive/disabled).",
|
|
3376
|
-
"**`withBorder`** adds a contrast ring (`ring-2 ring-surface-
|
|
3495
|
+
"**`withBorder`** adds a contrast ring (`ring-2 ring-surface-panel`) so the dot reads on avatars, images, or coloured fills — the pattern Avatar's status dot uses.",
|
|
3377
3496
|
"**`pulseSpeed`** (slow/normal/fast) tunes the pulse tempo — fast for urgent (recording), slow for ambient (syncing)."
|
|
3378
3497
|
]
|
|
3379
3498
|
},
|
|
@@ -4934,6 +5053,7 @@
|
|
|
4934
5053
|
"Omit `value` (or pass `null`) for indeterminate.",
|
|
4935
5054
|
"Pass an explicit `color` to override `autoColor`.",
|
|
4936
5055
|
"Compound `Progress.Track` needs a name — an `aria-label`, or a `Progress.Label` whose `id` the Track's `aria-labelledby` points to. A Track with neither is an unnamed progressbar (axe will flag it).",
|
|
5056
|
+
"**`<Progress value={72} />` with no name warns in DEV.** `aria-valuenow` already carries the number, so an unnamed bar announces as \"progressbar, 72%\" — the reader learns the value but not *what* is progressing. Pass `label` (renders visible text and wires `aria-labelledby`) or `aria-label` when the bar must stay visually unlabelled. The component deliberately does **not** invent a default like \"Progress: 72%\": that would silence the audit while leaving the announcement equally uninformative, and only you know what the bar measures. Warns once per session, not per render.",
|
|
4937
5057
|
"`Progress.Indicator` / `Segment` / `Value` throw if rendered outside `Progress.Root`."
|
|
4938
5058
|
],
|
|
4939
5059
|
"changes": [
|
|
@@ -6980,7 +7100,7 @@
|
|
|
6980
7100
|
],
|
|
6981
7101
|
"gotchas": [
|
|
6982
7102
|
"**Edge OR elevation, never both.** Combining `bordered` with a shadowed elevation (raised/floating/overlay) is the double-edge anti-pattern and dev-warns. Use `elevation=\"flat\"` with `bordered`, or drop `bordered` and let the shadow be the edge.",
|
|
6983
|
-
"`flat` still uses `bg-surface-
|
|
7103
|
+
"`flat` still uses `bg-surface-panel` (a card without a shadow), not the page background — it is a surface, not a hole."
|
|
6984
7104
|
]
|
|
6985
7105
|
},
|
|
6986
7106
|
"switch": {
|
|
@@ -8454,10 +8574,10 @@
|
|
|
8454
8574
|
"borderColor": {
|
|
8455
8575
|
"type": {
|
|
8456
8576
|
"name": "union",
|
|
8457
|
-
"raw": "\"surface-base\" | \"surface-
|
|
8577
|
+
"raw": "\"surface-base\" | \"surface-panel\" (default: \"surface-panel\") — overlap border color"
|
|
8458
8578
|
},
|
|
8459
8579
|
"required": false,
|
|
8460
|
-
"defaultValue": "surface-
|
|
8580
|
+
"defaultValue": "surface-panel"
|
|
8461
8581
|
},
|
|
8462
8582
|
"onOverflowClick": {
|
|
8463
8583
|
"type": {
|
|
@@ -8495,7 +8615,7 @@
|
|
|
8495
8615
|
"**Built on ui/Avatar** — each slot is an Avatar with overlap + border + optional Tooltip.",
|
|
8496
8616
|
"**Wraps TooltipProvider internally** — don't add another.",
|
|
8497
8617
|
"**renderAvatar** escape hatch for custom shapes. Wrapper handles overlap/border positioning; your renderer sets size + shape.",
|
|
8498
|
-
"**borderColor** must match the surface the group sits on (`surface-
|
|
8618
|
+
"**borderColor** must match the surface the group sits on (`surface-panel` on Card, `surface-base` on page bg). Mismatch = visible seam.",
|
|
8499
8619
|
"**Overflow:** +N badge with optional `onOverflowClick` → pair with a Popover/Sheet for \"show all members\".",
|
|
8500
8620
|
"Per-user `ring` (lead/admin/client) surfaces Avatar's ring semantic at group level — use for role/presence hints."
|
|
8501
8621
|
]
|
|
@@ -8505,7 +8625,7 @@
|
|
|
8505
8625
|
"size": "md",
|
|
8506
8626
|
"max": 4,
|
|
8507
8627
|
"showTooltip": true,
|
|
8508
|
-
"borderColor": "surface-
|
|
8628
|
+
"borderColor": "surface-panel",
|
|
8509
8629
|
"expandDirection": "right",
|
|
8510
8630
|
"expandAmount": "default"
|
|
8511
8631
|
},
|
|
@@ -8517,7 +8637,7 @@
|
|
|
8517
8637
|
"Users beyond `max` are collapsed into a \"+N\" overflow badge",
|
|
8518
8638
|
"Missing `image` falls back to initials derived from `name`",
|
|
8519
8639
|
"Hover expand animation uses CSS `group-hover` — parent must not clip overflow",
|
|
8520
|
-
"`borderColor` should match the surface the group sits on (`surface-base` on page bg, `surface-
|
|
8640
|
+
"`borderColor` should match the surface the group sits on (`surface-base` on page bg, `surface-panel` on cards)",
|
|
8521
8641
|
"`renderAvatar` wrapper is positioning-only — pass `size` directly to your Avatar (do NOT use `className=\"h-full w-full\"`)"
|
|
8522
8642
|
],
|
|
8523
8643
|
"changes": [
|
|
@@ -9683,6 +9803,27 @@
|
|
|
9683
9803
|
"raw": "(hunk) => void (adds per-change Reject control)"
|
|
9684
9804
|
},
|
|
9685
9805
|
"required": false
|
|
9806
|
+
},
|
|
9807
|
+
"language": {
|
|
9808
|
+
"type": {
|
|
9809
|
+
"name": "string"
|
|
9810
|
+
},
|
|
9811
|
+
"required": false,
|
|
9812
|
+
"description": "syntax-highlight full lines as this language — inline/split, \"line\" granularity only; lazy-loads react-syntax-highlighter, one-dark theme, same pattern as MarkdownViewer"
|
|
9813
|
+
},
|
|
9814
|
+
"beforeParseError": {
|
|
9815
|
+
"type": {
|
|
9816
|
+
"name": "function",
|
|
9817
|
+
"raw": "(raw: string) => ReactNode (custom render when `before` fails to parse as JSON in fields mode; default is a plain message)"
|
|
9818
|
+
},
|
|
9819
|
+
"required": false
|
|
9820
|
+
},
|
|
9821
|
+
"afterParseError": {
|
|
9822
|
+
"type": {
|
|
9823
|
+
"name": "function",
|
|
9824
|
+
"raw": "(raw: string) => ReactNode (custom render when `after` fails to parse as JSON in fields mode; default is a plain message)"
|
|
9825
|
+
},
|
|
9826
|
+
"required": false
|
|
9686
9827
|
}
|
|
9687
9828
|
},
|
|
9688
9829
|
"composition": {
|
|
@@ -9710,10 +9851,13 @@
|
|
|
9710
9851
|
"<Diff before={committed} after={pending} mode=\"split\" />\n<Diff before={a} after={b} granularity=\"word\" /> // prose\n<Diff before={jsonA} after={jsonB} mode=\"fields\" /> // structured, diffs by key\n<Diff before={a} after={b} onAcceptHunk={fn} onRejectHunk={fn} /> // review flow\n\n// Composable — bring your own layout:\n<Diff.Root before={a} after={b} mode=\"split\">\n <header><Diff.ColumnLabels /><Diff.Summary /></header>\n <Diff.Body />\n</Diff.Root>"
|
|
9711
9852
|
],
|
|
9712
9853
|
"gotchas": [
|
|
9713
|
-
"`fields` mode requires valid JSON on both sides; it reports a clear message otherwise. For YAML, parse to an object and `JSON.stringify` before passing.",
|
|
9714
|
-
"`granularity=\"word\"` is for prose; it renders a flowing word-level diff, not line gutters.",
|
|
9854
|
+
"`fields` mode requires valid JSON on both sides; it reports a clear message per side otherwise (override with `beforeParseError`/`afterParseError`). For YAML, parse to an object and `JSON.stringify` before passing.",
|
|
9855
|
+
"`granularity=\"word\"` is for prose; it renders a flowing word-level diff, not line gutters. `language` has no effect in word granularity or `fields` mode.",
|
|
9715
9856
|
"Accept/Reject controls only appear when the matching handler is provided — the Diff itself doesn't mutate content; the consumer applies the decision.",
|
|
9716
9857
|
"Hunk = a contiguous run of added/removed lines; `onAcceptHunk`/`onRejectHunk` receive `{ index, before, after }`."
|
|
9858
|
+
],
|
|
9859
|
+
"peers": [
|
|
9860
|
+
"react-syntax-highlighter"
|
|
9717
9861
|
]
|
|
9718
9862
|
},
|
|
9719
9863
|
"emoji-picker": {
|
|
@@ -11699,8 +11843,19 @@
|
|
|
11699
11843
|
}
|
|
11700
11844
|
],
|
|
11701
11845
|
"peers": [
|
|
11846
|
+
"@tiptap/core",
|
|
11847
|
+
"@tiptap/extension-highlight",
|
|
11848
|
+
"@tiptap/extension-image",
|
|
11849
|
+
"@tiptap/extension-list",
|
|
11850
|
+
"@tiptap/extension-mention",
|
|
11851
|
+
"@tiptap/extension-text-align",
|
|
11852
|
+
"@tiptap/extensions",
|
|
11853
|
+
"@tiptap/markdown",
|
|
11702
11854
|
"@tiptap/pm",
|
|
11703
|
-
"@tiptap/react"
|
|
11855
|
+
"@tiptap/react",
|
|
11856
|
+
"@tiptap/starter-kit",
|
|
11857
|
+
"@tiptap/suggestion",
|
|
11858
|
+
"date-fns"
|
|
11704
11859
|
]
|
|
11705
11860
|
},
|
|
11706
11861
|
"rich-text-editor": {
|
|
@@ -11863,8 +12018,18 @@
|
|
|
11863
12018
|
}
|
|
11864
12019
|
],
|
|
11865
12020
|
"peers": [
|
|
12021
|
+
"@tiptap/core",
|
|
12022
|
+
"@tiptap/extension-highlight",
|
|
12023
|
+
"@tiptap/extension-image",
|
|
12024
|
+
"@tiptap/extension-list",
|
|
12025
|
+
"@tiptap/extension-mention",
|
|
12026
|
+
"@tiptap/extension-text-align",
|
|
12027
|
+
"@tiptap/extensions",
|
|
12028
|
+
"@tiptap/markdown",
|
|
11866
12029
|
"@tiptap/pm",
|
|
11867
|
-
"@tiptap/react"
|
|
12030
|
+
"@tiptap/react",
|
|
12031
|
+
"@tiptap/starter-kit",
|
|
12032
|
+
"@tiptap/suggestion"
|
|
11868
12033
|
]
|
|
11869
12034
|
},
|
|
11870
12035
|
"schedule-view": {
|
|
@@ -12333,6 +12498,100 @@
|
|
|
12333
12498
|
}
|
|
12334
12499
|
]
|
|
12335
12500
|
},
|
|
12501
|
+
"app-shell": {
|
|
12502
|
+
"displayName": "AppShell",
|
|
12503
|
+
"tier": "shell",
|
|
12504
|
+
"import": "@devalok/shilp-sutra/shell/app-shell",
|
|
12505
|
+
"serverSafe": false,
|
|
12506
|
+
"description": "",
|
|
12507
|
+
"props": {
|
|
12508
|
+
"variant": {
|
|
12509
|
+
"type": {
|
|
12510
|
+
"name": "enum",
|
|
12511
|
+
"value": [
|
|
12512
|
+
"flat",
|
|
12513
|
+
"inset"
|
|
12514
|
+
]
|
|
12515
|
+
},
|
|
12516
|
+
"required": false
|
|
12517
|
+
},
|
|
12518
|
+
"chrome": {
|
|
12519
|
+
"type": {
|
|
12520
|
+
"name": "enum",
|
|
12521
|
+
"value": [
|
|
12522
|
+
"dim",
|
|
12523
|
+
"bright"
|
|
12524
|
+
]
|
|
12525
|
+
},
|
|
12526
|
+
"required": false
|
|
12527
|
+
},
|
|
12528
|
+
"className": {
|
|
12529
|
+
"type": {
|
|
12530
|
+
"name": "string"
|
|
12531
|
+
},
|
|
12532
|
+
"required": false
|
|
12533
|
+
}
|
|
12534
|
+
},
|
|
12535
|
+
"composition": {},
|
|
12536
|
+
"docPath": "docs/components/shell/app-shell.md",
|
|
12537
|
+
"subComponents": {
|
|
12538
|
+
"AppShellBar": {
|
|
12539
|
+
"props": {
|
|
12540
|
+
"bordered": {
|
|
12541
|
+
"type": {
|
|
12542
|
+
"name": "boolean"
|
|
12543
|
+
},
|
|
12544
|
+
"required": false
|
|
12545
|
+
},
|
|
12546
|
+
"className": {
|
|
12547
|
+
"type": {
|
|
12548
|
+
"name": "string"
|
|
12549
|
+
},
|
|
12550
|
+
"required": false
|
|
12551
|
+
}
|
|
12552
|
+
}
|
|
12553
|
+
},
|
|
12554
|
+
"AppShellSidebar": {
|
|
12555
|
+
"props": {
|
|
12556
|
+
"collapsed": {
|
|
12557
|
+
"type": {
|
|
12558
|
+
"name": "boolean"
|
|
12559
|
+
},
|
|
12560
|
+
"required": false
|
|
12561
|
+
},
|
|
12562
|
+
"className": {
|
|
12563
|
+
"type": {
|
|
12564
|
+
"name": "string"
|
|
12565
|
+
},
|
|
12566
|
+
"required": false
|
|
12567
|
+
}
|
|
12568
|
+
}
|
|
12569
|
+
},
|
|
12570
|
+
"AppShellBody": {
|
|
12571
|
+
"props": {
|
|
12572
|
+
"className": {
|
|
12573
|
+
"type": {
|
|
12574
|
+
"name": "string"
|
|
12575
|
+
},
|
|
12576
|
+
"required": false
|
|
12577
|
+
}
|
|
12578
|
+
}
|
|
12579
|
+
},
|
|
12580
|
+
"AppShellCanvas": {
|
|
12581
|
+
"props": {
|
|
12582
|
+
"className": {
|
|
12583
|
+
"type": {
|
|
12584
|
+
"name": "string"
|
|
12585
|
+
},
|
|
12586
|
+
"required": false
|
|
12587
|
+
}
|
|
12588
|
+
}
|
|
12589
|
+
}
|
|
12590
|
+
},
|
|
12591
|
+
"examples": [
|
|
12592
|
+
"import {\n AppShell, AppShellBar, AppShellBody, AppShellCanvas, AppShellSidebar,\n} from '@devalok/shilp-sutra/shell/app-shell'\nimport { TopBar } from '@devalok/shilp-sutra/shell/top-bar'\n\nexport function Layout({ children }) {\n return (\n <AppShell variant=\"inset\" chrome=\"dim\">\n <AppShellBar>\n <TopBar>\n <TopBar.Left><TopBar.Title>Projects</TopBar.Title></TopBar.Left>\n <TopBar.Right><TopBar.UserMenu user={user} /></TopBar.Right>\n </TopBar>\n </AppShellBar>\n\n <AppShellBody>\n <AppShellSidebar>\n <Nav />\n </AppShellSidebar>\n <AppShellCanvas className=\"overflow-auto\">\n {children}\n </AppShellCanvas>\n </AppShellBody>\n </AppShell>\n )\n}"
|
|
12593
|
+
]
|
|
12594
|
+
},
|
|
12336
12595
|
"bottom-navbar": {
|
|
12337
12596
|
"displayName": "BottomNavbar",
|
|
12338
12597
|
"tier": "shell",
|
|
@@ -13664,27 +13923,39 @@
|
|
|
13664
13923
|
"value": "Canvas"
|
|
13665
13924
|
},
|
|
13666
13925
|
{
|
|
13667
|
-
"name": "--color-surface-
|
|
13926
|
+
"name": "--color-surface-panel",
|
|
13668
13927
|
"value": "Canvas"
|
|
13669
13928
|
},
|
|
13670
13929
|
{
|
|
13671
|
-
"name": "--color-surface-
|
|
13930
|
+
"name": "--color-surface-overlay",
|
|
13672
13931
|
"value": "Canvas"
|
|
13673
13932
|
},
|
|
13674
13933
|
{
|
|
13675
|
-
"name": "--color-surface-
|
|
13934
|
+
"name": "--color-surface-panel-hover",
|
|
13676
13935
|
"value": "Canvas"
|
|
13677
13936
|
},
|
|
13678
13937
|
{
|
|
13679
|
-
"name": "--color-surface-
|
|
13938
|
+
"name": "--color-surface-panel-active",
|
|
13680
13939
|
"value": "Canvas"
|
|
13681
13940
|
},
|
|
13682
13941
|
{
|
|
13683
|
-
"name": "--color-surface-
|
|
13942
|
+
"name": "--color-surface-sunken",
|
|
13943
|
+
"value": "Canvas"
|
|
13944
|
+
},
|
|
13945
|
+
{
|
|
13946
|
+
"name": "--color-surface-sunken-hover",
|
|
13947
|
+
"value": "Canvas"
|
|
13948
|
+
},
|
|
13949
|
+
{
|
|
13950
|
+
"name": "--color-surface-raised",
|
|
13951
|
+
"value": "Canvas"
|
|
13952
|
+
},
|
|
13953
|
+
{
|
|
13954
|
+
"name": "--color-surface-raised-hover",
|
|
13684
13955
|
"value": "Canvas"
|
|
13685
13956
|
},
|
|
13686
13957
|
{
|
|
13687
|
-
"name": "--color-surface-
|
|
13958
|
+
"name": "--color-surface-raised-active",
|
|
13688
13959
|
"value": "Canvas"
|
|
13689
13960
|
},
|
|
13690
13961
|
{
|
|
@@ -13715,6 +13986,10 @@
|
|
|
13715
13986
|
"name": "--color-surface-fg-subtle",
|
|
13716
13987
|
"value": "GrayText"
|
|
13717
13988
|
},
|
|
13989
|
+
{
|
|
13990
|
+
"name": "--color-surface-border-subtle",
|
|
13991
|
+
"value": "GrayText"
|
|
13992
|
+
},
|
|
13718
13993
|
{
|
|
13719
13994
|
"name": "--color-surface-border",
|
|
13720
13995
|
"value": "CanvasText"
|
|
@@ -13724,12 +13999,16 @@
|
|
|
13724
13999
|
"value": "CanvasText"
|
|
13725
14000
|
},
|
|
13726
14001
|
{
|
|
13727
|
-
"name": "--color-surface-border-
|
|
14002
|
+
"name": "--color-surface-border-card",
|
|
13728
14003
|
"value": "GrayText"
|
|
13729
14004
|
},
|
|
13730
14005
|
{
|
|
13731
|
-
"name": "--color-surface-border-
|
|
13732
|
-
"value": "
|
|
14006
|
+
"name": "--color-surface-border-interactive",
|
|
14007
|
+
"value": "CanvasText"
|
|
14008
|
+
},
|
|
14009
|
+
{
|
|
14010
|
+
"name": "--color-surface-border-interactive-strong",
|
|
14011
|
+
"value": "CanvasText"
|
|
13733
14012
|
},
|
|
13734
14013
|
{
|
|
13735
14014
|
"name": "--color-backdrop",
|
|
@@ -13923,10 +14202,22 @@
|
|
|
13923
14202
|
"name": "--color-link-visited",
|
|
13924
14203
|
"value": "VisitedText"
|
|
13925
14204
|
},
|
|
14205
|
+
{
|
|
14206
|
+
"name": "--color-category-fg",
|
|
14207
|
+
"value": "var(--neutral-1)"
|
|
14208
|
+
},
|
|
14209
|
+
{
|
|
14210
|
+
"name": "--color-category-teal-2",
|
|
14211
|
+
"value": "var(--teal-2)"
|
|
14212
|
+
},
|
|
13926
14213
|
{
|
|
13927
14214
|
"name": "--color-category-teal-3",
|
|
13928
14215
|
"value": "var(--teal-3)"
|
|
13929
14216
|
},
|
|
14217
|
+
{
|
|
14218
|
+
"name": "--color-category-teal-4",
|
|
14219
|
+
"value": "var(--teal-4)"
|
|
14220
|
+
},
|
|
13930
14221
|
{
|
|
13931
14222
|
"name": "--color-category-teal-7",
|
|
13932
14223
|
"value": "var(--teal-7)"
|
|
@@ -13939,10 +14230,18 @@
|
|
|
13939
14230
|
"name": "--color-category-teal-11",
|
|
13940
14231
|
"value": "var(--teal-11)"
|
|
13941
14232
|
},
|
|
14233
|
+
{
|
|
14234
|
+
"name": "--color-category-amber-2",
|
|
14235
|
+
"value": "var(--amber-2)"
|
|
14236
|
+
},
|
|
13942
14237
|
{
|
|
13943
14238
|
"name": "--color-category-amber-3",
|
|
13944
14239
|
"value": "var(--amber-3)"
|
|
13945
14240
|
},
|
|
14241
|
+
{
|
|
14242
|
+
"name": "--color-category-amber-4",
|
|
14243
|
+
"value": "var(--amber-4)"
|
|
14244
|
+
},
|
|
13946
14245
|
{
|
|
13947
14246
|
"name": "--color-category-amber-7",
|
|
13948
14247
|
"value": "var(--amber-7)"
|
|
@@ -13955,10 +14254,18 @@
|
|
|
13955
14254
|
"name": "--color-category-amber-11",
|
|
13956
14255
|
"value": "var(--amber-11)"
|
|
13957
14256
|
},
|
|
14257
|
+
{
|
|
14258
|
+
"name": "--color-category-slate-2",
|
|
14259
|
+
"value": "var(--slate-2)"
|
|
14260
|
+
},
|
|
13958
14261
|
{
|
|
13959
14262
|
"name": "--color-category-slate-3",
|
|
13960
14263
|
"value": "var(--slate-3)"
|
|
13961
14264
|
},
|
|
14265
|
+
{
|
|
14266
|
+
"name": "--color-category-slate-4",
|
|
14267
|
+
"value": "var(--slate-4)"
|
|
14268
|
+
},
|
|
13962
14269
|
{
|
|
13963
14270
|
"name": "--color-category-slate-7",
|
|
13964
14271
|
"value": "var(--slate-7)"
|
|
@@ -13971,10 +14278,18 @@
|
|
|
13971
14278
|
"name": "--color-category-slate-11",
|
|
13972
14279
|
"value": "var(--slate-11)"
|
|
13973
14280
|
},
|
|
14281
|
+
{
|
|
14282
|
+
"name": "--color-category-indigo-2",
|
|
14283
|
+
"value": "var(--indigo-2)"
|
|
14284
|
+
},
|
|
13974
14285
|
{
|
|
13975
14286
|
"name": "--color-category-indigo-3",
|
|
13976
14287
|
"value": "var(--indigo-3)"
|
|
13977
14288
|
},
|
|
14289
|
+
{
|
|
14290
|
+
"name": "--color-category-indigo-4",
|
|
14291
|
+
"value": "var(--indigo-4)"
|
|
14292
|
+
},
|
|
13978
14293
|
{
|
|
13979
14294
|
"name": "--color-category-indigo-7",
|
|
13980
14295
|
"value": "var(--indigo-7)"
|
|
@@ -13987,10 +14302,18 @@
|
|
|
13987
14302
|
"name": "--color-category-indigo-11",
|
|
13988
14303
|
"value": "var(--indigo-11)"
|
|
13989
14304
|
},
|
|
14305
|
+
{
|
|
14306
|
+
"name": "--color-category-cyan-2",
|
|
14307
|
+
"value": "var(--cyan-2)"
|
|
14308
|
+
},
|
|
13990
14309
|
{
|
|
13991
14310
|
"name": "--color-category-cyan-3",
|
|
13992
14311
|
"value": "var(--cyan-3)"
|
|
13993
14312
|
},
|
|
14313
|
+
{
|
|
14314
|
+
"name": "--color-category-cyan-4",
|
|
14315
|
+
"value": "var(--cyan-4)"
|
|
14316
|
+
},
|
|
13994
14317
|
{
|
|
13995
14318
|
"name": "--color-category-cyan-7",
|
|
13996
14319
|
"value": "var(--cyan-7)"
|
|
@@ -14003,10 +14326,18 @@
|
|
|
14003
14326
|
"name": "--color-category-cyan-11",
|
|
14004
14327
|
"value": "var(--cyan-11)"
|
|
14005
14328
|
},
|
|
14329
|
+
{
|
|
14330
|
+
"name": "--color-category-orange-2",
|
|
14331
|
+
"value": "var(--orange-2)"
|
|
14332
|
+
},
|
|
14006
14333
|
{
|
|
14007
14334
|
"name": "--color-category-orange-3",
|
|
14008
14335
|
"value": "var(--orange-3)"
|
|
14009
14336
|
},
|
|
14337
|
+
{
|
|
14338
|
+
"name": "--color-category-orange-4",
|
|
14339
|
+
"value": "var(--orange-4)"
|
|
14340
|
+
},
|
|
14010
14341
|
{
|
|
14011
14342
|
"name": "--color-category-orange-7",
|
|
14012
14343
|
"value": "var(--orange-7)"
|
|
@@ -14019,10 +14350,18 @@
|
|
|
14019
14350
|
"name": "--color-category-orange-11",
|
|
14020
14351
|
"value": "var(--orange-11)"
|
|
14021
14352
|
},
|
|
14353
|
+
{
|
|
14354
|
+
"name": "--color-category-emerald-2",
|
|
14355
|
+
"value": "var(--emerald-2)"
|
|
14356
|
+
},
|
|
14022
14357
|
{
|
|
14023
14358
|
"name": "--color-category-emerald-3",
|
|
14024
14359
|
"value": "var(--emerald-3)"
|
|
14025
14360
|
},
|
|
14361
|
+
{
|
|
14362
|
+
"name": "--color-category-emerald-4",
|
|
14363
|
+
"value": "var(--emerald-4)"
|
|
14364
|
+
},
|
|
14026
14365
|
{
|
|
14027
14366
|
"name": "--color-category-emerald-7",
|
|
14028
14367
|
"value": "var(--emerald-7)"
|