@devalok/shilp-sutra 0.29.0 → 0.31.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/README.md +82 -239
- package/dist/_chunks/badge-group.js +34 -33
- package/dist/ai/types.js +2 -0
- package/dist/composed/avatar-group.d.ts.map +1 -1
- package/dist/composed/avatar-group.js +94 -79
- package/dist/composed/content-card.d.ts.map +1 -1
- package/dist/composed/index.d.ts +1 -1
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/lib/string-utils.d.ts.map +1 -1
- package/dist/composed/loading-skeleton.d.ts.map +1 -1
- package/dist/composed/page-header.d.ts.map +1 -1
- package/dist/composed/page-header.js +36 -23
- package/dist/composed/page-skeletons.d.ts.map +1 -1
- package/dist/composed/priority-indicator.d.ts +1 -0
- package/dist/composed/priority-indicator.js +1 -0
- package/dist/composed/rich-text-editor.d.ts +3 -0
- package/dist/composed/rich-text-editor.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js +243 -240
- package/dist/tokens/primitives.css +10 -0
- package/dist/tokens/semantic.css +6 -2
- package/dist/tokens/typography.css +33 -4
- package/dist/ui/alert.d.ts +1 -0
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +42 -37
- package/dist/ui/badge.d.ts +6 -0
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/button-processing.d.ts +2 -1
- package/dist/ui/button-processing.d.ts.map +1 -1
- package/dist/ui/card.d.ts +5 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +111 -79
- package/dist/ui/code.d.ts.map +1 -1
- package/dist/ui/container.d.ts.map +1 -1
- package/dist/ui/lib/date-utils.d.ts.map +1 -1
- package/dist/ui/lib/motion.d.ts.map +1 -1
- package/dist/ui/lib/utils.d.ts.map +1 -1
- package/dist/ui/lib/utils.js +3 -3
- package/dist/ui/select.d.ts +3 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +83 -71
- package/dist/ui/skeleton.d.ts.map +1 -1
- package/dist/ui/stack.d.ts.map +1 -1
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/tabs.d.ts +7 -0
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +103 -77
- package/dist/ui/text.d.ts.map +1 -1
- package/dist/ui/visually-hidden.d.ts.map +1 -1
- package/docs/components/composed/rich-text-editor.md +6 -0
- package/docs/components/ui/alert.md +3 -0
- package/docs/components/ui/badge.md +3 -0
- package/docs/components/ui/card.md +4 -0
- package/docs/components/ui/select.md +4 -0
- package/docs/components/ui/tabs.md +4 -0
- package/llms-full.txt +25 -1
- package/llms.txt +23 -4
- package/package.json +37 -2
package/llms-full.txt
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> All variant values and props verified from source CVA definitions.
|
|
6
6
|
>
|
|
7
7
|
> Package: @devalok/shilp-sutra
|
|
8
|
-
> Version: 0.
|
|
8
|
+
> Version: 0.31.0
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -173,6 +173,9 @@ Note: getFormFieldA11y() was removed in favor of useFormField() hook.
|
|
|
173
173
|
- Icon is auto-selected by color (info=circle, success=check, warning=triangle, error=alert)
|
|
174
174
|
|
|
175
175
|
## Changes
|
|
176
|
+
### v0.31.0
|
|
177
|
+
- **Added** `size` prop: `sm | md | lg`. Default `md` (non-breaking).
|
|
178
|
+
|
|
176
179
|
### v0.18.0
|
|
177
180
|
- **Changed** Exit animation migrated to Framer Motion
|
|
178
181
|
- **Fixed** `onDismiss` JSDoc documenting it fires after exit animation completes
|
|
@@ -421,6 +424,9 @@ Note: getFormFieldA11y() was removed in favor of useFormField() hook.
|
|
|
421
424
|
- `color="custom"` requires `--badge-color` CSS variable (and optionally `--badge-fg-color` for solid variant)
|
|
422
425
|
|
|
423
426
|
## Changes
|
|
427
|
+
### v0.31.0
|
|
428
|
+
- **Added** `truncate` prop — enables ellipsis truncation without requiring maxWidth
|
|
429
|
+
|
|
424
430
|
### v0.29.0
|
|
425
431
|
- **Changed** (BREAKING) v2 rewrite — Badge is now a full interactive component
|
|
426
432
|
- **Added** `soft` variant (tinted bg, no border — completes the 4-variant set: subtle/solid/outline/soft)
|
|
@@ -784,6 +790,10 @@ See `Button` docs for the public API.
|
|
|
784
790
|
- Use `interactive` prop for clickable cards — adds hover lift and pointer cursor
|
|
785
791
|
|
|
786
792
|
## Changes
|
|
793
|
+
### v0.31.0
|
|
794
|
+
- **Added** `color` prop: semantic border color (accent, error, success, warning, info, neutral)
|
|
795
|
+
- **Added** `size` prop: `sm | md | lg` — padding propagated to sub-components via React context
|
|
796
|
+
|
|
787
797
|
### v0.18.0
|
|
788
798
|
- **Changed** Interactive card hover lift animation migrated to Framer Motion
|
|
789
799
|
|
|
@@ -2650,6 +2660,10 @@ const { size, stroke } = useIconContext()
|
|
|
2650
2660
|
- `<Select size="lg">` is silently ignored (no TypeScript error)
|
|
2651
2661
|
|
|
2652
2662
|
## Changes
|
|
2663
|
+
### v0.31.0
|
|
2664
|
+
- **Added** `variant` prop on SelectTrigger: `default | outline | ghost`
|
|
2665
|
+
- **Added** `color` prop on SelectTrigger: `default | error | success | warning`. Sets `aria-invalid` when error.
|
|
2666
|
+
|
|
2653
2667
|
### v0.15.0
|
|
2654
2668
|
- **Changed** `lg` size font changed from `text-ds-lg` (18px) to `text-ds-md` (14px) — all input sizes now use 14px for consistency
|
|
2655
2669
|
|
|
@@ -3286,6 +3300,10 @@ const { size, stroke } = useIconContext()
|
|
|
3286
3300
|
- Normally omit `variant` on TabsTrigger — it inherits from TabsList via context. You CAN set it per-trigger to override.
|
|
3287
3301
|
|
|
3288
3302
|
## Changes
|
|
3303
|
+
### v0.31.0
|
|
3304
|
+
- **Added** `size` prop on TabsList: `sm | md | lg`. Scales height and trigger padding.
|
|
3305
|
+
- **Added** `color` prop on TabsList: `accent | neutral`. Affects line variant indicator.
|
|
3306
|
+
|
|
3289
3307
|
### v0.18.0
|
|
3290
3308
|
- **Fixed** Wrapped TabsList context provider value in `useMemo` for performance
|
|
3291
3309
|
|
|
@@ -4838,8 +4856,11 @@ Exports: RichTextEditor, RichTextViewer
|
|
|
4838
4856
|
onFileUpload?: (file: File) => Promise<{ url: string; name: string; size: number }> — enables file attachments
|
|
4839
4857
|
mentions?: MentionItem[] — static list for @mention autocomplete
|
|
4840
4858
|
onMentionSearch?: (query: string) => Promise<MentionItem[]> — async search, takes precedence over static mentions
|
|
4859
|
+
toolbar?: ToolbarItem[] — whitelist of toolbar items to show. Omit to show all.
|
|
4841
4860
|
onMentionSelect?: (item: MentionItem) => void — called when a mention is selected
|
|
4842
4861
|
|
|
4862
|
+
ToolbarItem: 'bold' | 'italic' | 'underline' | 'strike' | 'highlight' | 'h2' | 'h3' | 'blockquote' | 'bulletList' | 'orderedList' | 'taskList' | 'codeBlock' | 'link' | 'image' | 'file' | 'hr' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'emoji' | 'undo' | 'redo'
|
|
4863
|
+
|
|
4843
4864
|
MentionItem: { id: string; label: string; avatar?: string }
|
|
4844
4865
|
|
|
4845
4866
|
### RichTextViewer
|
|
@@ -4872,6 +4893,9 @@ MentionItem: { id: string; label: string; avatar?: string }
|
|
|
4872
4893
|
- Features: bold, italic, underline, strikethrough, highlight, headings, blockquote, lists, task lists, code, links, images, file attachments, mentions, emoji, text alignment, horizontal rule
|
|
4873
4894
|
|
|
4874
4895
|
## Changes
|
|
4896
|
+
### v0.30.0
|
|
4897
|
+
- **Added** `toolbar` prop — whitelist of `ToolbarItem` names to control which toolbar buttons appear. Dividers render only between groups that have visible items. `ToolbarItem` type exported from barrel.
|
|
4898
|
+
|
|
4875
4899
|
### v0.18.0
|
|
4876
4900
|
- **Fixed** Use ref to track internal changes, prevent update loop
|
|
4877
4901
|
|
package/llms.txt
CHANGED
|
@@ -4,6 +4,26 @@
|
|
|
4
4
|
> Built on the same primitives as shadcn/ui but with key API differences.
|
|
5
5
|
> Read this file BEFORE writing any UI code. Do NOT guess from shadcn/ui knowledge.
|
|
6
6
|
|
|
7
|
+
## CHANGES (v0.31.0)
|
|
8
|
+
- **Alert `size` prop** — `sm | md (default) | lg`. Scales padding, gap, icon, text.
|
|
9
|
+
- **Card `color` prop** — `default | accent | error | success | warning | info | neutral`. Semantic border color.
|
|
10
|
+
- **Card `size` prop** — `sm | md (default) | lg`. Propagated to sub-components via context.
|
|
11
|
+
- **Select `variant` prop** — `default | outline | ghost` on SelectTrigger.
|
|
12
|
+
- **Select `color` prop** — `default | error | success | warning` on SelectTrigger. Sets `aria-invalid` when error.
|
|
13
|
+
- **Tabs `color` prop** — `accent (default) | neutral`. Affects line variant indicator.
|
|
14
|
+
- **Tabs `size` prop** — `sm | md (default) | lg`. Scales height and padding.
|
|
15
|
+
- **Badge `truncate` prop** — Enables ellipsis truncation. Combine with fixed width or `maxWidth`.
|
|
16
|
+
- **New subpath exports** — `./ui/icon`, `./ui/icon-context`, `./ui/icon-group`, `./ui/badge-group`, `./ui/badge-indicator`, `./ui/devalok-grain`, `./ai/types`.
|
|
17
|
+
- **Server-safe fix** — `empty-state`, `priority-indicator`, `status-badge` now correctly get `"use client"` (were incorrectly omitted).
|
|
18
|
+
- **Server-safe detection** — Hardcoded allowlist replaced with `// @server-safe` source annotations.
|
|
19
|
+
|
|
20
|
+
## CHANGES (v0.30.0)
|
|
21
|
+
- **RichTextEditor `toolbar` prop** — `toolbar?: ToolbarItem[]` whitelist of toolbar items to display. Omit to show all (default). `ToolbarItem` type exported.
|
|
22
|
+
- **`@devalok/shilp-sutra-karm` removed** — Domain components moved to Karm app repo. npm package deprecated.
|
|
23
|
+
- **Warning dark mode fixed** — `warning-*` tokens now have proper dark mode values (higher chroma than category amber).
|
|
24
|
+
- **tailwind-merge fix** — All `text-ds-*` sizes now correctly registered. `cn('text-ds-lg', 'text-accent-11')` no longer strips the color.
|
|
25
|
+
- **AvatarGroup fixes** — Overflow badge text matches avatar size, indicator dots scale with size, aria-labels added.
|
|
26
|
+
|
|
7
27
|
## BREAKING CHANGES (v0.27.0 — Externalized Dependencies)
|
|
8
28
|
|
|
9
29
|
FilePreview and MarkdownViewer dependencies are now **external** (not bundled).
|
|
@@ -99,14 +119,13 @@ Same pattern for `border-surface-*`, `text-surface-*`, `ring-surface-*`.
|
|
|
99
119
|
|
|
100
120
|
**Button `onClickAsync`:** New prop `onClickAsync?: (e) => Promise<void>` — auto-manages loading → success/error → idle states. `asyncFeedbackDuration?: number` (default 1500ms).
|
|
101
121
|
|
|
102
|
-
**Server safety changes:** EmptyState, StatusBadge, Spinner are
|
|
122
|
+
**Server safety changes:** EmptyState, StatusBadge, PriorityIndicator, Spinner are NOT server-safe (they use Framer Motion). Do NOT import from RSC.
|
|
103
123
|
|
|
104
|
-
**Build:** `framer-motion` and `sonner` moved from `dependencies` to `devDependencies` (bundled at build time — no consumer install needed for core
|
|
124
|
+
**Build:** `framer-motion` and `sonner` moved from `dependencies` to `devDependencies` (bundled at build time — no consumer install needed for core).
|
|
105
125
|
|
|
106
126
|
**New APIs in v0.18.0:**
|
|
107
127
|
- Combobox: `accessibleLabel?: string` — custom aria-label for trigger (falls back to placeholder)
|
|
108
128
|
- Slider: multi-thumb support — pass array `defaultValue={[25, 75]}` for range sliders
|
|
109
|
-
- StreamingText (karm): `isComplete?: boolean` — debounces aria-live, announces only on completion
|
|
110
129
|
|
|
111
130
|
## CHANGES (v0.16.0)
|
|
112
131
|
- **DataTable server-side features**: `onSort` callback (manual sorting), `pagination` prop (server-side pagination with page/total/onPageChange), `selectedIds` + `selectableFilter` (controlled selection), `loading` shimmer, `emptyState` ReactNode, `singleExpand`, `stickyHeader`, `onRowClick`, `bulkActions` floating bar
|
|
@@ -243,7 +262,7 @@ pnpm add @devalok/shilp-sutra
|
|
|
243
262
|
|
|
244
263
|
Add to next.config.js:
|
|
245
264
|
```js
|
|
246
|
-
transpilePackages: ["@devalok/shilp-sutra", "@devalok/shilp-sutra-
|
|
265
|
+
transpilePackages: ["@devalok/shilp-sutra", "@devalok/shilp-sutra-brand"]
|
|
247
266
|
```
|
|
248
267
|
|
|
249
268
|
// Import components (barrel):
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devalok/shilp-sutra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "Devalok Design System — tokens, components, and patterns for Next.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -58,6 +58,16 @@
|
|
|
58
58
|
"default": "./dist/ui/badge.js",
|
|
59
59
|
"types": "./dist/ui/badge.d.ts"
|
|
60
60
|
},
|
|
61
|
+
"./ui/badge-group": {
|
|
62
|
+
"import": "./dist/ui/badge-group.js",
|
|
63
|
+
"default": "./dist/ui/badge-group.js",
|
|
64
|
+
"types": "./dist/ui/badge-group.d.ts"
|
|
65
|
+
},
|
|
66
|
+
"./ui/badge-indicator": {
|
|
67
|
+
"import": "./dist/ui/badge-indicator.js",
|
|
68
|
+
"default": "./dist/ui/badge-indicator.js",
|
|
69
|
+
"types": "./dist/ui/badge-indicator.d.ts"
|
|
70
|
+
},
|
|
61
71
|
"./ui/banner": {
|
|
62
72
|
"import": "./dist/ui/banner.js",
|
|
63
73
|
"default": "./dist/ui/banner.js",
|
|
@@ -143,6 +153,11 @@
|
|
|
143
153
|
"default": "./dist/ui/dialog.js",
|
|
144
154
|
"types": "./dist/ui/dialog.d.ts"
|
|
145
155
|
},
|
|
156
|
+
"./ui/devalok-grain": {
|
|
157
|
+
"import": "./dist/ui/devalok-grain.js",
|
|
158
|
+
"default": "./dist/ui/devalok-grain.js",
|
|
159
|
+
"types": "./dist/ui/devalok-grain.d.ts"
|
|
160
|
+
},
|
|
146
161
|
"./ui/dropdown-menu": {
|
|
147
162
|
"import": "./dist/ui/dropdown-menu.js",
|
|
148
163
|
"default": "./dist/ui/dropdown-menu.js",
|
|
@@ -163,11 +178,26 @@
|
|
|
163
178
|
"default": "./dist/ui/hover-card.js",
|
|
164
179
|
"types": "./dist/ui/hover-card.d.ts"
|
|
165
180
|
},
|
|
181
|
+
"./ui/icon": {
|
|
182
|
+
"import": "./dist/ui/icon.js",
|
|
183
|
+
"default": "./dist/ui/icon.js",
|
|
184
|
+
"types": "./dist/ui/icon.d.ts"
|
|
185
|
+
},
|
|
166
186
|
"./ui/icon-button": {
|
|
167
187
|
"import": "./dist/ui/icon-button.js",
|
|
168
188
|
"default": "./dist/ui/icon-button.js",
|
|
169
189
|
"types": "./dist/ui/icon-button.d.ts"
|
|
170
190
|
},
|
|
191
|
+
"./ui/icon-context": {
|
|
192
|
+
"import": "./dist/ui/icon-context.js",
|
|
193
|
+
"default": "./dist/ui/icon-context.js",
|
|
194
|
+
"types": "./dist/ui/icon-context.d.ts"
|
|
195
|
+
},
|
|
196
|
+
"./ui/icon-group": {
|
|
197
|
+
"import": "./dist/ui/icon-group.js",
|
|
198
|
+
"default": "./dist/ui/icon-group.js",
|
|
199
|
+
"types": "./dist/ui/icon-group.d.ts"
|
|
200
|
+
},
|
|
171
201
|
"./ui/input": {
|
|
172
202
|
"import": "./dist/ui/input.js",
|
|
173
203
|
"default": "./dist/ui/input.js",
|
|
@@ -661,6 +691,11 @@
|
|
|
661
691
|
"default": "./dist/ai/blocks/index.js",
|
|
662
692
|
"types": "./dist/ai/blocks/index.d.ts"
|
|
663
693
|
},
|
|
694
|
+
"./ai/types": {
|
|
695
|
+
"import": "./dist/ai/types.js",
|
|
696
|
+
"default": "./dist/ai/types.js",
|
|
697
|
+
"types": "./dist/ai/types.d.ts"
|
|
698
|
+
},
|
|
664
699
|
"./docs/*": "./docs/components/*"
|
|
665
700
|
},
|
|
666
701
|
"files": [
|
|
@@ -672,7 +707,7 @@
|
|
|
672
707
|
"llms-full.txt"
|
|
673
708
|
],
|
|
674
709
|
"scripts": {
|
|
675
|
-
"build": "vite build &&
|
|
710
|
+
"build": "vite build && node scripts/post-build.mjs",
|
|
676
711
|
"build:tokens": "node scripts/copy-tokens.mjs",
|
|
677
712
|
"build:docs": "node scripts/build-component-docs.mjs",
|
|
678
713
|
"build:docs:check": "node scripts/build-component-docs.mjs --check",
|