@devalok/shilp-sutra 0.48.0 → 0.49.1
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 +32 -0
- package/MIGRATION.md +891 -881
- package/dist/_chunks/badge-group.js +52 -65
- package/dist/_chunks/badge-group.js.map +1 -1
- package/dist/_chunks/block-shell.js +1 -1
- package/dist/_chunks/chart-container.js +1 -1
- package/dist/_chunks/chat.js +4 -4
- package/dist/_chunks/chat.js.map +1 -1
- package/dist/_chunks/colors.js +2 -2
- package/dist/_chunks/document-preview.js +4 -4
- package/dist/_chunks/emoji-suggestion.js +5 -5
- package/dist/_chunks/emoji-suggestion.js.map +1 -1
- package/dist/_chunks/emoji.js +1 -1
- package/dist/_chunks/field-state.js +8 -0
- package/dist/_chunks/field-state.js.map +1 -0
- package/dist/_chunks/grid-lines.js +1 -1
- package/dist/_chunks/image-preview.js +7 -7
- package/dist/_chunks/keybinding.js +1 -1
- package/dist/_chunks/link-context.js +1 -1
- package/dist/_chunks/mention-suggestion.js +2 -2
- package/dist/_chunks/mention.js +1 -1
- package/dist/_chunks/motion-provider.js +1 -1
- package/dist/_chunks/normalize-icon.js +1 -1
- package/dist/_chunks/oauth-button.js +2 -2
- package/dist/_chunks/popover.js +55 -52
- package/dist/_chunks/popover.js.map +1 -1
- package/dist/_chunks/primitives.js +155 -155
- package/dist/_chunks/primitives.js.map +1 -1
- package/dist/_chunks/shared.js +5 -5
- package/dist/_chunks/success.js +4 -4
- package/dist/_chunks/tiptap.js +8 -8
- package/dist/_chunks/tooltip.js +1 -1
- package/dist/_chunks/tree-view.js +2 -2
- package/dist/_chunks/use-calendar.js +2 -2
- package/dist/_chunks/use-calendar.js.map +1 -1
- package/dist/_chunks/use-controllable-open.js +15 -0
- package/dist/_chunks/use-controllable-open.js.map +1 -0
- package/dist/_chunks/vendor-client.js +1 -1
- package/dist/_chunks/vendor-utils.js +1 -1
- package/dist/ai/block-renderer.js +7 -7
- package/dist/ai/blocks/error.js +1 -1
- package/dist/ai/blocks/index.js +2 -2
- package/dist/ai/blocks/text.js +1 -1
- package/dist/ai/command-bar.js +6 -6
- package/dist/ai/conversation.js +2 -2
- package/dist/ai/index.js +3 -3
- package/dist/composed/avatar-group.js +1 -1
- package/dist/composed/bulk-action-bar.js +1 -1
- package/dist/composed/command-palette.js +9 -9
- package/dist/composed/command-palette.js.map +1 -1
- package/dist/composed/confirm-dialog.js +3 -3
- package/dist/composed/confirm-dialog.js.map +1 -1
- package/dist/composed/content-card.js +1 -1
- package/dist/composed/date-picker/index.js +13 -13
- package/dist/composed/date-picker/index.js.map +1 -1
- package/dist/composed/emoji-picker.js +4 -4
- package/dist/composed/empty-state.js +1 -1
- package/dist/composed/error-boundary.js +1 -1
- package/dist/composed/error-boundary.js.map +1 -1
- package/dist/composed/extensions/emoji-node.js +1 -1
- package/dist/composed/extensions/emoji-suggestion.js +1 -1
- package/dist/composed/file-preview.js +14 -14
- package/dist/composed/filter-bar.js +1 -1
- package/dist/composed/index.d.ts +3 -1
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/index.js +4 -3
- package/dist/composed/loading-skeleton.js +15 -15
- package/dist/composed/loading-skeleton.js.map +1 -1
- package/dist/composed/multi-select-popover.js +3 -3
- package/dist/composed/page-header.d.ts.map +1 -1
- package/dist/composed/page-header.js +32 -45
- package/dist/composed/page-header.js.map +1 -1
- package/dist/composed/page-skeletons.js +19 -19
- package/dist/composed/page-skeletons.js.map +1 -1
- package/dist/composed/priority-indicator.js +1 -1
- package/dist/composed/responsive-modal.d.ts +39 -0
- package/dist/composed/responsive-modal.d.ts.map +1 -0
- package/dist/composed/responsive-modal.js +212 -0
- package/dist/composed/responsive-modal.js.map +1 -0
- package/dist/composed/rich-chat-input.js +445 -445
- package/dist/composed/rich-chat-input.js.map +1 -1
- package/dist/composed/rich-text-editor.js +29 -29
- package/dist/composed/rich-text-editor.js.map +1 -1
- package/dist/composed/schedule-view.d.ts +1 -1
- package/dist/composed/schedule-view.d.ts.map +1 -1
- package/dist/composed/schedule-view.js +48 -54
- package/dist/composed/schedule-view.js.map +1 -1
- package/dist/composed/status-badge.d.ts +13 -11
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js +54 -130
- package/dist/composed/status-badge.js.map +1 -1
- package/dist/motion/index.js +2 -2
- package/dist/shell/bottom-navbar.js +3 -3
- package/dist/shell/bottom-navbar.js.map +1 -1
- package/dist/shell/index.js +2 -2
- package/dist/shell/link-context.js +2 -2
- package/dist/shell/notification-center.js +3 -3
- package/dist/shell/sidebar.js +2 -2
- package/dist/shell/top-bar.js +2 -2
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/tokens/semantic.css +8 -1
- package/dist/ui/accordion.js +11 -11
- package/dist/ui/alert-dialog.js +34 -34
- package/dist/ui/alert.js +1 -1
- package/dist/ui/aspect-ratio.js +1 -1
- package/dist/ui/autocomplete.js +7 -7
- package/dist/ui/avatar.d.ts.map +1 -1
- package/dist/ui/avatar.js +84 -79
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge-group.js +1 -1
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +1 -1
- package/dist/ui/banner.js +1 -1
- package/dist/ui/breadcrumb.d.ts +0 -1
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +58 -35
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button.js +3 -3
- package/dist/ui/card.js +1 -1
- package/dist/ui/charts/area-chart.js +6 -6
- package/dist/ui/charts/bar-chart.js +6 -6
- package/dist/ui/charts/chart-container.js +1 -1
- package/dist/ui/charts/gauge-chart.js +2 -2
- package/dist/ui/charts/index.js +2 -2
- package/dist/ui/charts/line-chart.js +6 -6
- package/dist/ui/charts/pie-chart.js +5 -5
- package/dist/ui/charts/radar-chart.js +5 -5
- package/dist/ui/charts/sparkline.js +2 -2
- package/dist/ui/chat/index.js +2 -2
- package/dist/ui/checkbox.d.ts +4 -2
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +33 -28
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/collapsible.js +5 -5
- package/dist/ui/color-input.js +4 -4
- package/dist/ui/combobox.d.ts +3 -0
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +137 -132
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/context-menu.js +32 -32
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +49 -46
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dot.d.ts +38 -0
- package/dist/ui/dot.d.ts.map +1 -0
- package/dist/ui/dot.js +92 -0
- package/dist/ui/dot.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +81 -76
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/hover-card.js +6 -6
- package/dist/ui/icon-button.js +1 -1
- package/dist/ui/index.d.ts +3 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +67 -67
- package/dist/ui/index.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.d.ts +4 -2
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +39 -38
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/lib/field-state.d.ts +21 -0
- package/dist/ui/lib/field-state.d.ts.map +1 -0
- package/dist/ui/lib/use-controllable-open.d.ts +32 -0
- package/dist/ui/lib/use-controllable-open.d.ts.map +1 -0
- package/dist/ui/lib/utils.js +4 -4
- package/dist/ui/link.js +1 -1
- package/dist/ui/menubar.js +53 -53
- package/dist/ui/navigation-menu.js +27 -27
- package/dist/ui/number-input.d.ts +4 -2
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js +52 -51
- package/dist/ui/number-input.js.map +1 -1
- package/dist/ui/oauth-button/index.js +2 -2
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.d.ts +66 -42
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +144 -40
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/radio.d.ts +6 -2
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +44 -33
- package/dist/ui/radio.js.map +1 -1
- package/dist/ui/segmented-control.js +1 -1
- package/dist/ui/select.d.ts +1 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +56 -55
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.js +2 -2
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +56 -53
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/sidebar.js +6 -6
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.js +8 -8
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/split-button.js +3 -3
- package/dist/ui/stat-card.d.ts.map +1 -1
- package/dist/ui/stat-card.js +123 -126
- package/dist/ui/stat-card.js.map +1 -1
- package/dist/ui/stat-flash.js +1 -1
- package/dist/ui/stepper.js +1 -1
- package/dist/ui/surface.js +2 -2
- package/dist/ui/switch.d.ts +3 -1
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +32 -27
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table-row-link.js +1 -1
- package/dist/ui/tabs.js +13 -13
- package/dist/ui/text.js +1 -1
- package/dist/ui/textarea.d.ts +3 -3
- package/dist/ui/textarea.d.ts.map +1 -1
- package/dist/ui/textarea.js +19 -18
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/toast.js +2 -2
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toggle-group.js +1 -1
- package/dist/ui/toggle.js +2 -2
- package/dist/ui/tooltip.d.ts.map +1 -1
- package/dist/ui/tooltip.js +37 -34
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tree-view/index.js +2 -2
- package/docs/components/ai/ai-command-provider.md +46 -0
- package/docs/components/ai/block-renderer.md +59 -0
- package/docs/components/ai/command-bar.md +78 -0
- package/docs/components/ai/conversation.md +59 -0
- package/docs/components/ai/devadoot-icon.md +41 -0
- package/docs/components/composed/page-header.md +1 -1
- package/docs/components/composed/responsive-modal.md +66 -0
- package/docs/components/composed/schedule-view.md +6 -2
- package/docs/components/ui/breadcrumb.md +1 -1
- package/docs/components/ui/checkbox.md +4 -1
- package/docs/components/ui/combobox.md +4 -0
- package/docs/components/ui/dot.md +61 -0
- package/docs/components/ui/progress.md +54 -16
- package/docs/components/ui/radio.md +6 -2
- package/docs/components/ui/select.md +9 -5
- package/docs/components/ui/switch.md +4 -1
- package/docs/components/ui/table.md +2 -1
- package/llms.txt +11 -3
- package/make-kit/components/form.md +2 -2
- package/make-kit/components/icon.md +2 -2
- package/make-kit/components/overview.md +2 -2
- package/make-kit/components/select.md +1 -1
- package/make-kit/components/table.md +1 -1
- package/mcp-manifest.json +2656 -1068
- package/mcp-manifest.schema.json +18 -0
- package/package.json +11 -6
- package/skill/SKILL.md +1 -1
- package/skill/references/components.md +11 -3
- package/dist/ui/status-dot.d.ts +0 -27
- package/dist/ui/status-dot.d.ts.map +0 -1
- package/dist/ui/status-dot.js +0 -68
- package/dist/ui/status-dot.js.map +0 -1
- package/docs/components/ui/status-dot.md +0 -35
package/mcp-manifest.schema.json
CHANGED
|
@@ -70,6 +70,24 @@
|
|
|
70
70
|
"description": "Convenience mirror of each prop's defaultValue for props with defaults (from the doc's Defaults section).",
|
|
71
71
|
"additionalProperties": { "type": ["string", "number", "boolean"] }
|
|
72
72
|
},
|
|
73
|
+
"subComponents": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"description": "Props owned by compound subcomponents, parsed from `### Subpart` headings inside the doc's Props section. Keeps a child's props OFF the root entry: a `numeric` prop belonging to TableCell must not read as a prop of <Table>, or an agent writes `<Table numeric>` and hits TS2322 (#132). Keyed by subcomponent display name.",
|
|
76
|
+
"patternProperties": {
|
|
77
|
+
"^[A-Za-z][A-Za-z0-9.]*$": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"additionalProperties": false,
|
|
80
|
+
"properties": {
|
|
81
|
+
"note": { "type": "string", "description": "Parenthetical from the subpart heading — e.g. a separate import path for a subcomponent shipped under its own subpath export." },
|
|
82
|
+
"props": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": { "$ref": "#/$defs/prop" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"additionalProperties": false
|
|
90
|
+
},
|
|
73
91
|
"examples": {
|
|
74
92
|
"type": "array",
|
|
75
93
|
"items": { "type": "string" },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devalok/shilp-sutra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.1",
|
|
4
4
|
"description": "Devalok Design System — accessible React components, OKLCH design tokens, and Tailwind 4 CSS-first setup. Ships with AI-agent setup recipes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Devalok Design & Strategy Studios <shilp-sutra@devalok.in>",
|
|
@@ -204,6 +204,11 @@
|
|
|
204
204
|
"import": "./dist/ui/devalok-grain.js",
|
|
205
205
|
"default": "./dist/ui/devalok-grain.js"
|
|
206
206
|
},
|
|
207
|
+
"./ui/dot": {
|
|
208
|
+
"types": "./dist/ui/dot.d.ts",
|
|
209
|
+
"import": "./dist/ui/dot.js",
|
|
210
|
+
"default": "./dist/ui/dot.js"
|
|
211
|
+
},
|
|
207
212
|
"./ui/dropdown-menu": {
|
|
208
213
|
"types": "./dist/ui/dropdown-menu.d.ts",
|
|
209
214
|
"import": "./dist/ui/dropdown-menu.js",
|
|
@@ -369,11 +374,6 @@
|
|
|
369
374
|
"import": "./dist/ui/stat-card.js",
|
|
370
375
|
"default": "./dist/ui/stat-card.js"
|
|
371
376
|
},
|
|
372
|
-
"./ui/status-dot": {
|
|
373
|
-
"types": "./dist/ui/status-dot.d.ts",
|
|
374
|
-
"import": "./dist/ui/status-dot.js",
|
|
375
|
-
"default": "./dist/ui/status-dot.js"
|
|
376
|
-
},
|
|
377
377
|
"./ui/stepper": {
|
|
378
378
|
"types": "./dist/ui/stepper.d.ts",
|
|
379
379
|
"import": "./dist/ui/stepper.js",
|
|
@@ -639,6 +639,11 @@
|
|
|
639
639
|
"import": "./dist/composed/priority-indicator.js",
|
|
640
640
|
"default": "./dist/composed/priority-indicator.js"
|
|
641
641
|
},
|
|
642
|
+
"./composed/responsive-modal": {
|
|
643
|
+
"types": "./dist/composed/responsive-modal.d.ts",
|
|
644
|
+
"import": "./dist/composed/responsive-modal.js",
|
|
645
|
+
"default": "./dist/composed/responsive-modal.js"
|
|
646
|
+
},
|
|
642
647
|
"./composed/rich-text-editor": {
|
|
643
648
|
"types": "./dist/composed/rich-text-editor.d.ts",
|
|
644
649
|
"import": "./dist/composed/rich-text-editor.js",
|
package/skill/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: shilp-sutra
|
|
|
3
3
|
description: Add, configure, and use components from Devalok's shilp-sutra design system (@devalok/shilp-sutra) — a Tailwind 4 + React 19 + CVA library with 110+ accessible components, OKLCH design tokens, framer-motion animations, and per-component RSC-safe entry points. Use this skill whenever the user mentions shilp-sutra, Devalok, the @devalok npm scope, or asks to install/add/style/theme UI in any React project that already depends on the package — even if they don't name it explicitly. Use it instead of generic shadcn/ui, MUI, or Chakra knowledge when shilp-sutra is in the project. Covers Next.js (App + Pages), Vite, Astro, Remix, TanStack Start setup playbooks; component API and variant reference; brand token customization; Server Component import patterns; and a troubleshoot tree for the thirteen most common breakages.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.49.1"
|
|
7
7
|
author: Devalok Design & Strategy Studios
|
|
8
8
|
homepage: https://github.com/devalok-design/shilp-sutra
|
|
9
9
|
npm: https://www.npmjs.com/package/@devalok/shilp-sutra
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# @devalok/shilp-sutra
|
|
4
4
|
|
|
5
|
-
> Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.
|
|
5
|
+
> Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.49.1.
|
|
6
6
|
> Built on the same primitives as shadcn/ui but with DIFFERENT prop APIs — never guess from shadcn knowledge; verify every prop.
|
|
7
7
|
> This file is a ROUTER: it tells you what exists and where to get details. Do not look for prop tables here — fetch them per component (MCP tool or per-component doc file below).
|
|
8
8
|
|
|
@@ -67,6 +67,7 @@ Format: `[name](doc path): summary`. Import paths follow `@devalok/shilp-sutra/<
|
|
|
67
67
|
- [data-table-toolbar](docs/components/ui/data-table-toolbar.md)
|
|
68
68
|
- [devalok-grain](docs/components/ui/devalok-grain.md)
|
|
69
69
|
- [dialog](docs/components/ui/dialog.md)
|
|
70
|
+
- [dot](docs/components/ui/dot.md): A small semantic status/indicator dot — the low-level primitive behind status pills, presence indicators, legend swatches, and `StatusDot`
|
|
70
71
|
- [dropdown-menu](docs/components/ui/dropdown-menu.md)
|
|
71
72
|
- [file-upload](docs/components/ui/file-upload.md)
|
|
72
73
|
- [form](docs/components/ui/form.md)
|
|
@@ -85,7 +86,7 @@ Format: `[name](doc path): summary`. Import paths follow `@devalok/shilp-sutra/<
|
|
|
85
86
|
- [oauth-button](docs/components/ui/oauth-button.md)
|
|
86
87
|
- [pagination](docs/components/ui/pagination.md)
|
|
87
88
|
- [popover](docs/components/ui/popover.md)
|
|
88
|
-
- [progress](docs/components/ui/progress.md)
|
|
89
|
+
- [progress](docs/components/ui/progress.md): A linear progress bar
|
|
89
90
|
- [progress-ring](docs/components/ui/progress-ring.md)
|
|
90
91
|
- [radio](docs/components/ui/radio.md)
|
|
91
92
|
- [search-input](docs/components/ui/search-input.md)
|
|
@@ -100,7 +101,6 @@ Format: `[name](doc path): summary`. Import paths follow `@devalok/shilp-sutra/<
|
|
|
100
101
|
- [stack](docs/components/ui/stack.md)
|
|
101
102
|
- [stat-card](docs/components/ui/stat-card.md)
|
|
102
103
|
- [stat-flash](docs/components/ui/stat-flash.md)
|
|
103
|
-
- [status-dot](docs/components/ui/status-dot.md)
|
|
104
104
|
- [stepper](docs/components/ui/stepper.md)
|
|
105
105
|
- [surface](docs/components/ui/surface.md): The low-level elevated container primitive
|
|
106
106
|
- [switch](docs/components/ui/switch.md)
|
|
@@ -143,6 +143,7 @@ Format: `[name](doc path): summary`. Import paths follow `@devalok/shilp-sutra/<
|
|
|
143
143
|
- [page-header](docs/components/composed/page-header.md)
|
|
144
144
|
- [page-skeletons](docs/components/composed/page-skeletons.md): Exports: DashboardSkeleton, ProjectListSkeleton, TaskDetailSkeleton
|
|
145
145
|
- [priority-indicator](docs/components/composed/priority-indicator.md)
|
|
146
|
+
- [responsive-modal](docs/components/composed/responsive-modal.md)
|
|
146
147
|
- [rich-chat-input](docs/components/composed/rich-chat-input.md): Compact rich text chat input for unified human+AI workspaces
|
|
147
148
|
- [rich-text-editor](docs/components/composed/rich-text-editor.md): Exports: RichTextEditor, RichTextViewer
|
|
148
149
|
- [schedule-view](docs/components/composed/schedule-view.md)
|
|
@@ -159,6 +160,13 @@ Format: `[name](doc path): summary`. Import paths follow `@devalok/shilp-sutra/<
|
|
|
159
160
|
- [sidebar](docs/components/shell/sidebar.md)
|
|
160
161
|
- [top-bar](docs/components/shell/top-bar.md)
|
|
161
162
|
|
|
163
|
+
### ai
|
|
164
|
+
- [ai-command-provider](docs/components/ai/ai-command-provider.md): Context provider for the AI command system
|
|
165
|
+
- [block-renderer](docs/components/ai/block-renderer.md): Renders an ordered list of typed AI "blocks" — the structured chunks an assistant/ server emits instead of plain text
|
|
166
|
+
- [command-bar](docs/components/ai/command-bar.md): A unified AI command input with three layout variants
|
|
167
|
+
- [conversation](docs/components/ai/conversation.md): A scrollable AI conversation thread: user + assistant turns, streaming processing steps, an agent header, and structured content blocks (rendered via BlockRenderer) with confirm/cancel/undo action support
|
|
168
|
+
- [devadoot-icon](docs/components/ai/devadoot-icon.md): The animated Devalok chakra glyph — the visual identity for the AI command system
|
|
169
|
+
|
|
162
170
|
## Tokens
|
|
163
171
|
|
|
164
172
|
Categories: color, spacing (`ds-01`…), typography (`text-ds-*`), radius (`rounded-ds-*`), shadow (`shadow-raised`/`shadow-overlay`/…), motion, z-layers. Full reference: `get_tokens(category)` via MCP, or the `tokens` object in `mcp-manifest.json`.
|
package/dist/ui/status-dot.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
type Status = 'healthy' | 'warning' | 'critical' | 'neutral' | 'inactive';
|
|
4
|
-
/**
|
|
5
|
-
* A semantic health/presence indicator dot with optional pulse animation and inline label.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* <StatusDot status="healthy" />
|
|
9
|
-
* <StatusDot status="critical" label="Service down" pulse />
|
|
10
|
-
* <StatusDot status="warning" size="lg" label="Elevated load" />
|
|
11
|
-
*/
|
|
12
|
-
export interface StatusDotProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
13
|
-
status: Status;
|
|
14
|
-
/** @default 'md' */
|
|
15
|
-
size?: 'sm' | 'md' | 'lg';
|
|
16
|
-
/** @default 'filled' */
|
|
17
|
-
variant?: 'filled' | 'ring';
|
|
18
|
-
/** Pulse animation. Defaults to true for 'healthy', false for others. */
|
|
19
|
-
pulse?: boolean;
|
|
20
|
-
/** Inline label text rendered after the dot */
|
|
21
|
-
label?: string;
|
|
22
|
-
labelClassName?: string;
|
|
23
|
-
}
|
|
24
|
-
declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
|
|
25
|
-
export { StatusDot };
|
|
26
|
-
export type { Status as StatusDotStatus };
|
|
27
|
-
//# sourceMappingURL=status-dot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-dot.d.ts","sourceRoot":"","sources":["../../src/ui/status-dot.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAwCzE;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,wBAAwB;IACxB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC3B,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,SAAS,wFAmCd,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB,YAAY,EAAE,MAAM,IAAI,eAAe,EAAE,CAAA"}
|
package/dist/ui/status-dot.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn as e } from "./lib/utils.js";
|
|
3
|
-
import * as t from "react";
|
|
4
|
-
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
5
|
-
//#region src/ui/status-dot.tsx
|
|
6
|
-
var i = {
|
|
7
|
-
healthy: "bg-success-9",
|
|
8
|
-
warning: "bg-warning-9",
|
|
9
|
-
critical: "bg-error-9",
|
|
10
|
-
neutral: "bg-neutral-8",
|
|
11
|
-
inactive: "bg-neutral-6"
|
|
12
|
-
}, a = {
|
|
13
|
-
healthy: "text-success-11",
|
|
14
|
-
warning: "text-warning-11",
|
|
15
|
-
critical: "text-error-11",
|
|
16
|
-
neutral: "text-surface-fg-muted",
|
|
17
|
-
inactive: "text-surface-fg-subtle"
|
|
18
|
-
}, o = {
|
|
19
|
-
healthy: "border-success-9",
|
|
20
|
-
warning: "border-warning-9",
|
|
21
|
-
critical: "border-error-9",
|
|
22
|
-
neutral: "border-neutral-8",
|
|
23
|
-
inactive: "border-neutral-6"
|
|
24
|
-
}, s = {
|
|
25
|
-
healthy: "bg-success-9/40",
|
|
26
|
-
warning: "bg-warning-9/40",
|
|
27
|
-
critical: "bg-error-9/40",
|
|
28
|
-
neutral: "bg-neutral-8/40",
|
|
29
|
-
inactive: "bg-neutral-6/40"
|
|
30
|
-
}, c = {
|
|
31
|
-
sm: {
|
|
32
|
-
dot: "h-1.5 w-1.5",
|
|
33
|
-
pulse: "h-1.5 w-1.5",
|
|
34
|
-
text: "text-ds-xs"
|
|
35
|
-
},
|
|
36
|
-
md: {
|
|
37
|
-
dot: "h-2 w-2",
|
|
38
|
-
pulse: "h-2 w-2",
|
|
39
|
-
text: "text-ds-sm"
|
|
40
|
-
},
|
|
41
|
-
lg: {
|
|
42
|
-
dot: "h-2.5 w-2.5",
|
|
43
|
-
pulse: "h-2.5 w-2.5",
|
|
44
|
-
text: "text-ds-sm"
|
|
45
|
-
}
|
|
46
|
-
}, l = t.forwardRef(({ status: t, size: l = "md", variant: u = "filled", pulse: d, label: f, labelClassName: p, className: m, "aria-label": h, ...g }, _) => {
|
|
47
|
-
let v = d ?? t === "healthy", y = c[l], b = f ? `${f} \u2014 ${t}` : `Status: ${t}`, x = u === "ring" ? e("relative inline-flex rounded-pill border-[1.5px]", y.dot, o[t], "bg-transparent") : e("relative inline-flex rounded-pill", y.dot, i[t]);
|
|
48
|
-
return /* @__PURE__ */ r("span", {
|
|
49
|
-
ref: _,
|
|
50
|
-
role: "status",
|
|
51
|
-
"aria-label": h ?? b,
|
|
52
|
-
className: e("inline-flex items-center gap-ds-02", m),
|
|
53
|
-
...g,
|
|
54
|
-
children: [/* @__PURE__ */ r("span", {
|
|
55
|
-
className: "relative inline-flex shrink-0",
|
|
56
|
-
children: [v && /* @__PURE__ */ n("span", {
|
|
57
|
-
"data-pulse": "",
|
|
58
|
-
className: e("absolute inline-flex rounded-pill animate-ping motion-reduce:animate-none", y.pulse, s[t])
|
|
59
|
-
}), /* @__PURE__ */ n("span", { className: x })]
|
|
60
|
-
}), f && /* @__PURE__ */ n("span", {
|
|
61
|
-
className: e(y.text, a[t], "font-sans", p),
|
|
62
|
-
children: f
|
|
63
|
-
})]
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
l.displayName = "StatusDot";
|
|
67
|
-
//#endregion
|
|
68
|
-
export { l as StatusDot };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-dot.js","names":[],"sources":["../../src/ui/status-dot.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { cn } from './lib/utils'\n\ntype Status = 'healthy' | 'warning' | 'critical' | 'neutral' | 'inactive'\n\nconst dotColorMap: Record<Status, string> = {\n healthy: 'bg-success-9',\n warning: 'bg-warning-9',\n critical: 'bg-error-9',\n neutral: 'bg-neutral-8',\n inactive: 'bg-neutral-6',\n}\n\nconst textColorMap: Record<Status, string> = {\n healthy: 'text-success-11',\n warning: 'text-warning-11',\n critical: 'text-error-11',\n neutral: 'text-surface-fg-muted',\n inactive: 'text-surface-fg-subtle',\n}\n\nconst ringBorderColorMap: Record<Status, string> = {\n healthy: 'border-success-9',\n warning: 'border-warning-9',\n critical: 'border-error-9',\n neutral: 'border-neutral-8',\n inactive: 'border-neutral-6',\n}\n\nconst pulseColorMap: Record<Status, string> = {\n healthy: 'bg-success-9/40',\n warning: 'bg-warning-9/40',\n critical: 'bg-error-9/40',\n neutral: 'bg-neutral-8/40',\n inactive: 'bg-neutral-6/40',\n}\n\nconst sizeMap = {\n sm: { dot: 'h-1.5 w-1.5', pulse: 'h-1.5 w-1.5', text: 'text-ds-xs' },\n md: { dot: 'h-2 w-2', pulse: 'h-2 w-2', text: 'text-ds-sm' },\n lg: { dot: 'h-2.5 w-2.5', pulse: 'h-2.5 w-2.5', text: 'text-ds-sm' },\n} as const\n\n/**\n * A semantic health/presence indicator dot with optional pulse animation and inline label.\n *\n * @example\n * <StatusDot status=\"healthy\" />\n * <StatusDot status=\"critical\" label=\"Service down\" pulse />\n * <StatusDot status=\"warning\" size=\"lg\" label=\"Elevated load\" />\n */\nexport interface StatusDotProps extends React.HTMLAttributes<HTMLSpanElement> {\n status: Status\n /** @default 'md' */\n size?: 'sm' | 'md' | 'lg'\n /** @default 'filled' */\n variant?: 'filled' | 'ring'\n /** Pulse animation. Defaults to true for 'healthy', false for others. */\n pulse?: boolean\n /** Inline label text rendered after the dot */\n label?: string\n labelClassName?: string\n}\n\nconst StatusDot = React.forwardRef<HTMLSpanElement, StatusDotProps>(\n ({ status, size = 'md', variant = 'filled', pulse, label, labelClassName, className, 'aria-label': ariaLabelProp, ...props }, ref) => {\n const shouldPulse = pulse ?? status === 'healthy'\n const s = sizeMap[size]\n const autoAriaLabel = label ? `${label} \\u2014 ${status}` : `Status: ${status}`\n\n const dotClasses = variant === 'ring'\n ? cn('relative inline-flex rounded-pill border-[1.5px]', s.dot, ringBorderColorMap[status], 'bg-transparent')\n : cn('relative inline-flex rounded-pill', s.dot, dotColorMap[status])\n\n return (\n <span\n ref={ref}\n role=\"status\"\n aria-label={ariaLabelProp ?? autoAriaLabel}\n className={cn('inline-flex items-center gap-ds-02', className)}\n {...props}\n >\n <span className=\"relative inline-flex shrink-0\">\n {shouldPulse && (\n <span\n data-pulse=\"\"\n className={cn('absolute inline-flex rounded-pill animate-ping motion-reduce:animate-none', s.pulse, pulseColorMap[status])}\n />\n )}\n <span className={dotClasses} />\n </span>\n {label && (\n <span className={cn(s.text, textColorMap[status], 'font-sans', labelClassName)}>\n {label}\n </span>\n )}\n </span>\n )\n },\n)\nStatusDot.displayName = 'StatusDot'\n\nexport { StatusDot }\nexport type { Status as StatusDotStatus }\n"],"mappings":";;;;;AAQA,IAAM,IAAsC;CAC1C,SAAS;CACT,SAAS;CACT,UAAU;CACV,SAAS;CACT,UAAU;CACX,EAEK,IAAuC;CAC3C,SAAS;CACT,SAAS;CACT,UAAU;CACV,SAAS;CACT,UAAU;CACX,EAEK,IAA6C;CACjD,SAAS;CACT,SAAS;CACT,UAAU;CACV,SAAS;CACT,UAAU;CACX,EAEK,IAAwC;CAC5C,SAAS;CACT,SAAS;CACT,UAAU;CACV,SAAS;CACT,UAAU;CACX,EAEK,IAAU;CACd,IAAI;EAAE,KAAK;EAAe,OAAO;EAAe,MAAM;EAAc;CACpE,IAAI;EAAE,KAAK;EAAW,OAAO;EAAW,MAAM;EAAc;CAC5D,IAAI;EAAE,KAAK;EAAe,OAAO;EAAe,MAAM;EAAc;CACrE,EAuBK,IAAY,EAAM,YACrB,EAAE,WAAQ,UAAO,MAAM,aAAU,UAAU,UAAO,UAAO,mBAAgB,cAAW,cAAc,GAAe,GAAG,KAAS,MAAQ;CACpI,IAAM,IAAc,KAAS,MAAW,WAClC,IAAI,EAAQ,IACZ,IAAgB,IAAQ,GAAG,EAAM,UAAU,MAAW,WAAW,KAEjE,IAAa,MAAY,SAC3B,EAAG,oDAAoD,EAAE,KAAK,EAAmB,IAAS,iBAAiB,GAC3G,EAAG,qCAAqC,EAAE,KAAK,EAAY,GAAQ;AAEvE,QACE,kBAAC,QAAD;EACO;EACL,MAAK;EACL,cAAY,KAAiB;EAC7B,WAAW,EAAG,sCAAsC,EAAU;EAC9D,GAAI;YALN,CAOE,kBAAC,QAAD;GAAM,WAAU;aAAhB,CACG,KACC,kBAAC,QAAD;IACE,cAAW;IACX,WAAW,EAAG,6EAA6E,EAAE,OAAO,EAAc,GAAQ;IAC1H,CAAA,EAEJ,kBAAC,QAAD,EAAM,WAAW,GAAc,CAAA,CAC1B;MACN,KACC,kBAAC,QAAD;GAAM,WAAW,EAAG,EAAE,MAAM,EAAa,IAAS,aAAa,EAAe;aAC3E;GACI,CAAA,CAEJ;;EAGZ;AACD,EAAU,cAAc"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# StatusDot
|
|
2
|
-
|
|
3
|
-
- Import: @devalok/shilp-sutra/ui/status-dot
|
|
4
|
-
- Server-safe: Yes
|
|
5
|
-
- Category: ui
|
|
6
|
-
|
|
7
|
-
## Props
|
|
8
|
-
status: "healthy" | "warning" | "critical" | "neutral" | "inactive"
|
|
9
|
-
size: "sm" | "md" | "lg"
|
|
10
|
-
pulse: boolean (ping animation; defaults to true for "healthy", false for others)
|
|
11
|
-
label: string (inline text rendered after the dot)
|
|
12
|
-
labelClassName: string (extra classes on the label span)
|
|
13
|
-
|
|
14
|
-
## Defaults
|
|
15
|
-
size="md", pulse={status === "healthy"}
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
```jsx
|
|
19
|
-
<StatusDot status="healthy" />
|
|
20
|
-
<StatusDot status="critical" label="Service down" pulse />
|
|
21
|
-
<StatusDot status="warning" size="lg" label="Elevated load" />
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Composability
|
|
25
|
-
- **Server-safe presentational dot** — simple status indicator, pairs with inline text.
|
|
26
|
-
- **Status semantics map to color:** healthy=success, warning=warning, critical=error, neutral=muted surface, inactive=dimmed. The pulse animation calls attention to "healthy" by default (active presence); you can flip it for other statuses by setting pulse explicitly.
|
|
27
|
-
- **StatusDot vs BadgeIndicator vs StatusBadge:**
|
|
28
|
-
- StatusDot = tiny presence/status indicator with optional inline label (e.g. "Service online")
|
|
29
|
-
- BadgeIndicator = overlay on another element (notification dot on a bell icon)
|
|
30
|
-
- StatusBadge (composed) = full pill-style badge with colored bg and label text (e.g. ticket status)
|
|
31
|
-
- **Label composability:** If you pass `label`, it renders inline after the dot. Use `labelClassName` for custom typography (e.g. font-mono for status codes).
|
|
32
|
-
|
|
33
|
-
## Gotchas
|
|
34
|
-
- The `pulse` prop auto-enables for "healthy" status — pass `pulse={false}` to suppress
|
|
35
|
-
- Status type is exported as `StatusDotStatus` if you need it in consumer code
|