@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.
Files changed (57) hide show
  1. package/README.md +82 -239
  2. package/dist/_chunks/badge-group.js +34 -33
  3. package/dist/ai/types.js +2 -0
  4. package/dist/composed/avatar-group.d.ts.map +1 -1
  5. package/dist/composed/avatar-group.js +94 -79
  6. package/dist/composed/content-card.d.ts.map +1 -1
  7. package/dist/composed/index.d.ts +1 -1
  8. package/dist/composed/index.d.ts.map +1 -1
  9. package/dist/composed/lib/string-utils.d.ts.map +1 -1
  10. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  11. package/dist/composed/page-header.d.ts.map +1 -1
  12. package/dist/composed/page-header.js +36 -23
  13. package/dist/composed/page-skeletons.d.ts.map +1 -1
  14. package/dist/composed/priority-indicator.d.ts +1 -0
  15. package/dist/composed/priority-indicator.js +1 -0
  16. package/dist/composed/rich-text-editor.d.ts +3 -0
  17. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  18. package/dist/composed/rich-text-editor.js +243 -240
  19. package/dist/tokens/primitives.css +10 -0
  20. package/dist/tokens/semantic.css +6 -2
  21. package/dist/tokens/typography.css +33 -4
  22. package/dist/ui/alert.d.ts +1 -0
  23. package/dist/ui/alert.d.ts.map +1 -1
  24. package/dist/ui/alert.js +42 -37
  25. package/dist/ui/badge.d.ts +6 -0
  26. package/dist/ui/badge.d.ts.map +1 -1
  27. package/dist/ui/button-processing.d.ts +2 -1
  28. package/dist/ui/button-processing.d.ts.map +1 -1
  29. package/dist/ui/card.d.ts +5 -1
  30. package/dist/ui/card.d.ts.map +1 -1
  31. package/dist/ui/card.js +111 -79
  32. package/dist/ui/code.d.ts.map +1 -1
  33. package/dist/ui/container.d.ts.map +1 -1
  34. package/dist/ui/lib/date-utils.d.ts.map +1 -1
  35. package/dist/ui/lib/motion.d.ts.map +1 -1
  36. package/dist/ui/lib/utils.d.ts.map +1 -1
  37. package/dist/ui/lib/utils.js +3 -3
  38. package/dist/ui/select.d.ts +3 -1
  39. package/dist/ui/select.d.ts.map +1 -1
  40. package/dist/ui/select.js +83 -71
  41. package/dist/ui/skeleton.d.ts.map +1 -1
  42. package/dist/ui/stack.d.ts.map +1 -1
  43. package/dist/ui/table.d.ts.map +1 -1
  44. package/dist/ui/tabs.d.ts +7 -0
  45. package/dist/ui/tabs.d.ts.map +1 -1
  46. package/dist/ui/tabs.js +103 -77
  47. package/dist/ui/text.d.ts.map +1 -1
  48. package/dist/ui/visually-hidden.d.ts.map +1 -1
  49. package/docs/components/composed/rich-text-editor.md +6 -0
  50. package/docs/components/ui/alert.md +3 -0
  51. package/docs/components/ui/badge.md +3 -0
  52. package/docs/components/ui/card.md +4 -0
  53. package/docs/components/ui/select.md +4 -0
  54. package/docs/components/ui/tabs.md +4 -0
  55. package/llms-full.txt +25 -1
  56. package/llms.txt +23 -4
  57. 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.29.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 NO LONGER server-safe (they now use Framer Motion). Remove from RSC imports.
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, but karm consumers must install `framer-motion` as peer dep).
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-karm", "@devalok/shilp-sutra-brand"]
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.29.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 && pnpm build:tokens && node scripts/fix-dts-primitives.mjs && node scripts/inject-use-client.mjs && node scripts/build-tailwind-cjs.mjs && pnpm build:docs",
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",