@devalok/shilp-sutra 0.30.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 (43) 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/content-card.d.ts.map +1 -1
  5. package/dist/composed/lib/string-utils.d.ts.map +1 -1
  6. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  7. package/dist/composed/page-header.d.ts.map +1 -1
  8. package/dist/composed/page-skeletons.d.ts.map +1 -1
  9. package/dist/composed/priority-indicator.d.ts +1 -0
  10. package/dist/composed/priority-indicator.js +1 -0
  11. package/dist/tokens/typography.css +33 -4
  12. package/dist/ui/alert.d.ts +1 -0
  13. package/dist/ui/alert.d.ts.map +1 -1
  14. package/dist/ui/alert.js +42 -37
  15. package/dist/ui/badge.d.ts +6 -0
  16. package/dist/ui/badge.d.ts.map +1 -1
  17. package/dist/ui/card.d.ts +5 -1
  18. package/dist/ui/card.d.ts.map +1 -1
  19. package/dist/ui/card.js +111 -79
  20. package/dist/ui/code.d.ts.map +1 -1
  21. package/dist/ui/container.d.ts.map +1 -1
  22. package/dist/ui/lib/date-utils.d.ts.map +1 -1
  23. package/dist/ui/lib/motion.d.ts.map +1 -1
  24. package/dist/ui/lib/utils.d.ts.map +1 -1
  25. package/dist/ui/select.d.ts +3 -1
  26. package/dist/ui/select.d.ts.map +1 -1
  27. package/dist/ui/select.js +83 -71
  28. package/dist/ui/skeleton.d.ts.map +1 -1
  29. package/dist/ui/stack.d.ts.map +1 -1
  30. package/dist/ui/table.d.ts.map +1 -1
  31. package/dist/ui/tabs.d.ts +7 -0
  32. package/dist/ui/tabs.d.ts.map +1 -1
  33. package/dist/ui/tabs.js +103 -77
  34. package/dist/ui/text.d.ts.map +1 -1
  35. package/dist/ui/visually-hidden.d.ts.map +1 -1
  36. package/docs/components/ui/alert.md +3 -0
  37. package/docs/components/ui/badge.md +3 -0
  38. package/docs/components/ui/card.md +4 -0
  39. package/docs/components/ui/select.md +4 -0
  40. package/docs/components/ui/tabs.md +4 -0
  41. package/llms-full.txt +19 -1
  42. package/llms.txt +14 -1
  43. package/package.json +37 -2
package/README.md CHANGED
@@ -1,239 +1,82 @@
1
- # @devalok/shilp-sutra
2
-
3
- Devalok Design System -- tokens, components, and patterns for React & Next.js.
4
-
5
- [![npm](https://img.shields.io/npm/v/@devalok/shilp-sutra)](https://www.npmjs.com/package/@devalok/shilp-sutra)
6
- [![Storybook](https://img.shields.io/badge/Storybook-ff4785?logo=storybook&logoColor=white)](https://devalok-design.github.io/shilp-sutra/)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
8
-
9
- ---
10
-
11
- ## Quick Setup
12
-
13
- ### 1. Install
14
-
15
- ```bash
16
- pnpm add @devalok/shilp-sutra
17
- ```
18
-
19
- ### 2. Add Tailwind Preset
20
-
21
- ```ts
22
- // tailwind.config.ts
23
- import shilpSutra from '@devalok/shilp-sutra/tailwind'
24
-
25
- export default {
26
- presets: [shilpSutra],
27
- content: [
28
- './app/**/*.{ts,tsx}',
29
- './node_modules/@devalok/shilp-sutra/dist/**/*.js',
30
- ],
31
- }
32
- ```
33
-
34
- ### 3. Import Tokens
35
-
36
- ```tsx
37
- // app/layout.tsx (Next.js) or main entry point
38
- import '@devalok/shilp-sutra/tokens'
39
- import './globals.css'
40
- ```
41
-
42
- Done. Start using components.
43
-
44
- ---
45
-
46
- ## Import Patterns
47
-
48
- ### Per-component import (recommended)
49
-
50
- Best for tree-shaking, Server Components, and fast builds:
51
-
52
- ```tsx
53
- import { Button } from '@devalok/shilp-sutra/ui/button'
54
- import { Dialog } from '@devalok/shilp-sutra/ui/dialog'
55
- import { DatePicker } from '@devalok/shilp-sutra/composed/date-picker'
56
- import { TopBar } from '@devalok/shilp-sutra/shell/top-bar'
57
- ```
58
-
59
- ### Barrel import
60
-
61
- Convenient for client components that use many primitives:
62
-
63
- ```tsx
64
- import { Button, Dialog, Input, Badge } from '@devalok/shilp-sutra/ui'
65
- import { PageHeader, DatePicker } from '@devalok/shilp-sutra/composed'
66
- import { AppSidebar, TopBar } from '@devalok/shilp-sutra/shell'
67
- ```
68
-
69
- ### Root import
70
-
71
- Shorthand for UI components only:
72
-
73
- ```tsx
74
- import { Button, Input } from '@devalok/shilp-sutra'
75
- ```
76
-
77
- ---
78
-
79
- ## Mental Model
80
-
81
- The design system is organized into three tiers:
82
-
83
- | Layer | Import | What it contains |
84
- |-------|--------|------------------|
85
- | **ui** | `@devalok/shilp-sutra/ui` | 60+ atomic primitives -- buttons, inputs, dialogs, cards, tables, badges, charts, navigation menus |
86
- | **composed** | `@devalok/shilp-sutra/composed` | 14 multi-component patterns -- date picker, rich text editor, command palette, page header, skeletons |
87
- | **shell** | `@devalok/shilp-sutra/shell` | 7 app-level layout components -- sidebar, top bar, bottom navbar, notification center, command palette |
88
-
89
- Additional exports:
90
-
91
- | Import | Contents |
92
- |--------|----------|
93
- | `@devalok/shilp-sutra/tokens` | CSS custom properties (primitives, semantic, typography) |
94
- | `@devalok/shilp-sutra/tailwind` | Tailwind CSS preset with all design tokens |
95
- | `@devalok/shilp-sutra/hooks` | `useToast`, `useColorMode`, `useIsMobile` |
96
- | `@devalok/shilp-sutra/fonts/*` | Inter and Ranade variable fonts (WOFF2) |
97
-
98
- ---
99
-
100
- ## Peer Dependencies
101
-
102
- ### Required
103
-
104
- | Package | Version |
105
- |---------|---------|
106
- | `react` | `^18 \|\| ^19` |
107
- | `react-dom` | `^18 \|\| ^19` |
108
-
109
- ### Optional
110
-
111
- Install only what you use:
112
-
113
- | Feature | Packages |
114
- |---------|----------|
115
- | Charts (`./ui/charts`) | `d3-array`, `d3-axis`, `d3-format`, `d3-interpolate`, `d3-scale`, `d3-selection`, `d3-shape`, `d3-time-format`, `d3-transition` |
116
- | Rich Text Editor (`./composed/rich-text-editor`) | `@tiptap/react`, `@tiptap/starter-kit`, `@tiptap/extension-placeholder` |
117
- | DataTable (`./ui/data-table`) | `@tanstack/react-table`, `@tanstack/react-virtual` |
118
- | Icons (various components) | `@tabler/icons-react` |
119
- | Date components (`./composed/date-picker`) | `date-fns` |
120
- | OTP Input (`./ui/input-otp`) | `input-otp` |
121
- | Markdown rendering | `react-markdown` |
122
-
123
- Example -- install only charts deps:
124
-
125
- ```bash
126
- pnpm add d3-array d3-axis d3-format d3-interpolate d3-scale d3-selection d3-shape d3-time-format d3-transition
127
- ```
128
-
129
- ---
130
-
131
- ## Server-Safe Components
132
-
133
- These components work in React Server Components when imported via their per-component path. They do **not** include `"use client"` directives:
134
-
135
- ### ui
136
-
137
- | Component | Import |
138
- |-----------|--------|
139
- | Text | `@devalok/shilp-sutra/ui/text` |
140
- | Skeleton | `@devalok/shilp-sutra/ui/skeleton` |
141
- | Spinner | `@devalok/shilp-sutra/ui/spinner` |
142
- | Stack | `@devalok/shilp-sutra/ui/stack` |
143
- | Container | `@devalok/shilp-sutra/ui/container` |
144
- | Table | `@devalok/shilp-sutra/ui/table` |
145
- | Code | `@devalok/shilp-sutra/ui/code` |
146
- | VisuallyHidden | `@devalok/shilp-sutra/ui/visually-hidden` |
147
-
148
- ### composed
149
-
150
- | Component | Import |
151
- |-----------|--------|
152
- | ContentCard | `@devalok/shilp-sutra/composed/content-card` |
153
- | EmptyState | `@devalok/shilp-sutra/composed/empty-state` |
154
- | PageHeader | `@devalok/shilp-sutra/composed/page-header` |
155
- | LoadingSkeleton | `@devalok/shilp-sutra/composed/loading-skeleton` |
156
- | PageSkeletons | `@devalok/shilp-sutra/composed/page-skeletons` |
157
- | PriorityIndicator | `@devalok/shilp-sutra/composed/priority-indicator` |
158
- | StatusBadge | `@devalok/shilp-sutra/composed/status-badge` |
159
-
160
- All other components require client-side React and include `"use client"`.
161
-
162
- ---
163
-
164
- ## Dark Mode
165
-
166
- The design system uses CSS custom properties with a `.dark` class toggle. All semantic tokens have dark mode overrides built in.
167
-
168
- ### Setup
169
-
170
- Add the `.dark` class to your `<html>` or a parent element:
171
-
172
- ```html
173
- <html class="dark">
174
- ```
175
-
176
- ### Next.js with next-themes
177
-
178
- ```tsx
179
- // app/layout.tsx
180
- import { ThemeProvider } from 'next-themes'
181
-
182
- export default function RootLayout({ children }) {
183
- return (
184
- <html suppressHydrationWarning>
185
- <body>
186
- <ThemeProvider attribute="class" defaultTheme="system">
187
- {children}
188
- </ThemeProvider>
189
- </body>
190
- </html>
191
- )
192
- }
193
- ```
194
-
195
- ### Programmatic toggle
196
-
197
- ```tsx
198
- import { useColorMode } from '@devalok/shilp-sutra/hooks'
199
-
200
- function ThemeToggle() {
201
- const { mode, toggle } = useColorMode()
202
- return <button onClick={toggle}>{mode === 'dark' ? 'Light' : 'Dark'}</button>
203
- }
204
- ```
205
-
206
- ---
207
-
208
- ## TypeScript
209
-
210
- Full TypeScript support works out of the box. No special `tsconfig.json` settings required.
211
-
212
- All component props are exported as named types:
213
-
214
- ```tsx
215
- import { type ButtonProps } from '@devalok/shilp-sutra/ui/button'
216
- import { type DatePickerProps } from '@devalok/shilp-sutra/composed/date-picker'
217
- ```
218
-
219
- ---
220
-
221
- ## Token Architecture
222
-
223
- Three-tier CSS custom property system:
224
-
225
- 1. **Primitives** (`primitives.css`) -- Raw palette values (50-950 scales). Never used directly in components.
226
- 2. **Semantic** (`semantic.css`) -- Intent-based tokens (`--color-interactive`, `--color-text-primary`). Includes dark mode via `.dark` class.
227
- 3. **Typography** (`typography.css`) -- Font-face declarations, type scale (T1-T7, B1-B8, L1-L6, P1-P7).
228
-
229
- ---
230
-
231
- ## Links
232
-
233
- - [Storybook](https://devalok-design.github.io/shilp-sutra/) -- interactive component docs
234
- - [GitHub](https://github.com/devalok-design/shilp-sutra)
235
- - [Changelog](https://github.com/devalok-design/shilp-sutra/blob/main/CHANGELOG.md)
236
-
237
- ## License
238
-
239
- MIT -- Copyright 2026 Devalok Design & Strategy Studios
1
+ # @devalok/shilp-sutra
2
+
3
+ Devalok Design System -- tokens, components, and patterns for React & Next.js.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@devalok/shilp-sutra)](https://www.npmjs.com/package/@devalok/shilp-sutra)
6
+ [![Storybook](https://img.shields.io/badge/Storybook-ff4785?logo=storybook&logoColor=white)](https://devalok-design.github.io/shilp-sutra/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
8
+
9
+ For full documentation, setup guides, and architecture details, see the [monorepo README](https://github.com/devalok-design/shilp-sutra#readme).
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ pnpm add @devalok/shilp-sutra
15
+ ```
16
+
17
+ ## Quick Start
18
+
19
+ ```ts
20
+ // tailwind.config.ts
21
+ import shilpSutra from '@devalok/shilp-sutra/tailwind'
22
+
23
+ export default {
24
+ presets: [shilpSutra],
25
+ content: [
26
+ './app/**/*.{ts,tsx}',
27
+ './node_modules/@devalok/shilp-sutra/dist/**/*.js',
28
+ ],
29
+ }
30
+ ```
31
+
32
+ ```tsx
33
+ // app/layout.tsx
34
+ import '@devalok/shilp-sutra/tokens'
35
+ ```
36
+
37
+ ```tsx
38
+ // Any component
39
+ import { Button } from '@devalok/shilp-sutra/ui/button'
40
+ ```
41
+
42
+ ## Peer Dependencies
43
+
44
+ ### Required
45
+
46
+ | Package | Version |
47
+ |---------|---------|
48
+ | `react` | `^18 \|\| ^19` |
49
+ | `react-dom` | `^18 \|\| ^19` |
50
+
51
+ ### Optional
52
+
53
+ Install only what you use:
54
+
55
+ | Feature | Packages |
56
+ |---------|----------|
57
+ | Charts (`./ui/charts`) | `d3-array`, `d3-axis`, `d3-format`, `d3-interpolate`, `d3-scale`, `d3-selection`, `d3-shape`, `d3-time-format`, `d3-transition` |
58
+ | Rich Text Editor (`./composed/rich-text-editor`) | `@tiptap/react`, `@tiptap/starter-kit`, `@tiptap/extension-placeholder` |
59
+ | DataTable (`./ui/data-table`) | `@tanstack/react-table`, `@tanstack/react-virtual` |
60
+ | Icons | `@tabler/icons-react` |
61
+ | Date components (`./composed/date-picker`) | `date-fns` |
62
+ | OTP Input (`./ui/input-otp`) | `input-otp` |
63
+ | Markdown rendering | `react-markdown` |
64
+
65
+ ## Next.js
66
+
67
+ Add to `next.config.js`:
68
+
69
+ ```js
70
+ transpilePackages: ["@devalok/shilp-sutra", "@devalok/shilp-sutra-brand"]
71
+ ```
72
+
73
+ ## Links
74
+
75
+ - [Storybook](https://devalok-design.github.io/shilp-sutra/) -- interactive component docs
76
+ - [Monorepo README](https://github.com/devalok-design/shilp-sutra#readme) -- full docs, architecture, component list
77
+ - [Changelog](https://github.com/devalok-design/shilp-sutra/blob/main/CHANGELOG.md)
78
+ - [Migration Guide](https://github.com/devalok-design/shilp-sutra/blob/main/docs/MIGRATION.md)
79
+
80
+ ## License
81
+
82
+ MIT -- Copyright 2026 Devalok Design & Strategy Studios
@@ -2,14 +2,14 @@
2
2
  import { jsxs as p, jsx as a } from "react/jsx-runtime";
3
3
  import * as S from "react";
4
4
  import { cn as b } from "../ui/lib/utils.js";
5
- import { IconCheck as D, IconX as E } from "@tabler/icons-react";
6
- import { a as I } from "./vendor-utils.js";
7
- import { springs as O } from "../ui/lib/motion.js";
8
- import { S as T } from "./primitives.js";
5
+ import { IconCheck as E, IconX as I } from "@tabler/icons-react";
6
+ import { a as O } from "./vendor-utils.js";
7
+ import { springs as T } from "../ui/lib/motion.js";
8
+ import { S as q } from "./primitives.js";
9
9
  import { Icon as C } from "../ui/icon.js";
10
- import { BadgeIndicator as q } from "../ui/badge-indicator.js";
11
- import { A as M, m as w } from "./framer.js";
12
- const X = I(
10
+ import { BadgeIndicator as M } from "../ui/badge-indicator.js";
11
+ import { A as X, m as w } from "./framer.js";
12
+ const _ = O(
13
13
  "relative inline-flex items-center rounded-full font-sans font-medium overflow-hidden isolate transition-[color,background-color,border-color,padding] duration-fast-02 ease-productive-standard select-none [&>span:not([data-grain])]:relative [&>span:not([data-grain])]:z-[2]",
14
14
  {
15
15
  variants: {
@@ -116,12 +116,12 @@ const X = I(
116
116
  sm: "[&>svg]:h-3 [&>svg]:w-3",
117
117
  md: "[&>svg]:h-3 [&>svg]:w-3",
118
118
  lg: "[&>svg]:h-3.5 [&>svg]:w-3.5"
119
- }, _ = {
119
+ }, $ = {
120
120
  xs: "pl-1",
121
121
  sm: "pl-1.5",
122
122
  md: "pl-2",
123
123
  lg: "pl-2.5"
124
- }, $ = {
124
+ }, F = {
125
125
  xs: "pr-0.5",
126
126
  sm: "pr-1",
127
127
  md: "pr-1",
@@ -141,12 +141,13 @@ const X = I(
141
141
  selected: l,
142
142
  disabled: u,
143
143
  maxWidth: N,
144
- circle: A,
144
+ truncate: A,
145
+ circle: j,
145
146
  children: i,
146
- style: j,
147
+ style: G,
147
148
  ...h
148
- }, G) => {
149
- const d = v ?? "subtle", k = f ?? "default", g = y ?? "md", m = x ? T : r && e ? "div" : r ? "button" : "span", K = k === "custom" ? {
149
+ }, K) => {
150
+ const d = v ?? "subtle", k = f ?? "default", g = y ?? "md", m = x ? q : r && e ? "div" : r ? "button" : "span", V = k === "custom" ? {
150
151
  ...d === "subtle" && {
151
152
  backgroundColor: "color-mix(in oklch, var(--badge-color) 15%, transparent)",
152
153
  color: "var(--badge-color)",
@@ -167,38 +168,38 @@ const X = I(
167
168
  color: "var(--badge-color)",
168
169
  borderColor: "transparent"
169
170
  }
170
- } : void 0, V = r && e ? (s) => {
171
+ } : void 0, L = r && e ? (s) => {
171
172
  (s.key === "Enter" || s.key === " ") && (s.preventDefault(), u || r(s)), h.onKeyDown?.(s);
172
- } : h.onKeyDown, L = !!(n || t || r && l && !t && !n), P = !!(e || o);
173
+ } : h.onKeyDown, P = !!(n || t || r && l && !t && !n), D = !!(e || o);
173
174
  return /* @__PURE__ */ p(
174
175
  m,
175
176
  {
176
- ref: G,
177
+ ref: K,
177
178
  className: b(
178
- X({ variant: d, color: k, size: g }),
179
- L && _[g],
179
+ _({ variant: d, color: k, size: g }),
180
180
  P && $[g],
181
+ D && F[g],
181
182
  r && "cursor-pointer hover:brightness-[0.97] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-1 transition-[color,background-color,border-color,transform,filter] duration-moderate-01 ease-productive-exit hover:duration-fast-02 hover:ease-productive-entrance active:scale-[0.95] active:brightness-[0.92] active:duration-[0ms]",
182
183
  l && "ring-1 ring-current/20 transition-shadow duration-fast-02",
183
184
  u && "opacity-action-disabled pointer-events-none saturate-[0.3]",
184
- A && "justify-center px-0 aspect-square",
185
+ j && "justify-center px-0 aspect-square",
185
186
  c
186
187
  ),
187
- style: { ...j, ...K, ...N ? { maxWidth: N } : void 0 },
188
+ style: { ...G, ...V, ...N ? { maxWidth: N } : void 0 },
188
189
  onClick: u ? void 0 : r,
189
- onKeyDown: V,
190
+ onKeyDown: L,
190
191
  ...m === "button" && { type: "button" },
191
192
  ...m === "button" && u ? { disabled: !0 } : {},
192
193
  ...m === "div" && r ? { role: "button", tabIndex: 0 } : {},
193
194
  ...h,
194
195
  children: [
195
- /* @__PURE__ */ a(M, { children: n && /* @__PURE__ */ p(
196
+ /* @__PURE__ */ a(X, { children: n && /* @__PURE__ */ p(
196
197
  w.span,
197
198
  {
198
199
  initial: { scale: 0 },
199
200
  animate: { scale: 1 },
200
201
  exit: { scale: 0 },
201
- transition: O.snappy,
202
+ transition: T.snappy,
202
203
  className: "relative inline-flex h-1.5 w-1.5 shrink-0",
203
204
  "aria-hidden": "true",
204
205
  children: [
@@ -223,11 +224,11 @@ const X = I(
223
224
  transition: { type: "tween", duration: 0.15, ease: [0.2, 0, 0.38, 0.9] },
224
225
  className: "inline-flex shrink-0 overflow-hidden",
225
226
  "aria-hidden": !l,
226
- children: /* @__PURE__ */ a(C, { icon: D, size: "xs" })
227
+ children: /* @__PURE__ */ a(C, { icon: E, size: "xs" })
227
228
  }
228
229
  ),
229
230
  t && /* @__PURE__ */ a("span", { className: b("shrink-0", z[g]), children: t }),
230
- N ? /* @__PURE__ */ a(
231
+ A || N ? /* @__PURE__ */ a(
231
232
  "span",
232
233
  {
233
234
  className: "truncate",
@@ -248,7 +249,7 @@ const X = I(
248
249
  g === "xs" ? "p-0 -mr-0.5 min-w-[16px] min-h-[16px]" : "p-px"
249
250
  ),
250
251
  "aria-label": `Remove ${typeof i == "string" ? i : ""}`.trim() || "Remove",
251
- children: /* @__PURE__ */ a(C, { icon: E, size: "xs" })
252
+ children: /* @__PURE__ */ a(C, { icon: I, size: "xs" })
252
253
  }
253
254
  )
254
255
  ]
@@ -257,10 +258,10 @@ const X = I(
257
258
  }
258
259
  );
259
260
  B.displayName = "Badge";
260
- const F = Object.assign(B, {
261
- Indicator: q,
261
+ const H = Object.assign(B, {
262
+ Indicator: M,
262
263
  Group: R
263
- }), H = {
264
+ }), J = {
264
265
  tight: "gap-1",
265
266
  default: "gap-1.5",
266
267
  loose: "gap-2"
@@ -274,10 +275,10 @@ function R({
274
275
  children: t
275
276
  }) {
276
277
  const o = S.Children.toArray(t), n = o.length, e = c !== void 0 && n > c, r = e ? o.slice(0, c) : o, l = e ? n - c : 0;
277
- return /* @__PURE__ */ p("div", { className: b("flex flex-wrap items-center", H[v], x), children: [
278
+ return /* @__PURE__ */ p("div", { className: b("flex flex-wrap items-center", J[v], x), children: [
278
279
  r,
279
280
  e && /* @__PURE__ */ p(
280
- F,
281
+ H,
281
282
  {
282
283
  variant: "outline",
283
284
  color: "neutral",
@@ -293,7 +294,7 @@ function R({
293
294
  }
294
295
  R.displayName = "BadgeGroup";
295
296
  export {
296
- F as B,
297
+ H as B,
297
298
  R as a,
298
- X as b
299
+ _ as b
299
300
  };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+
@@ -1 +1 @@
1
- {"version":3,"file":"content-card.d.ts","sourceRoot":"","sources":["../../src/composed/content-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,mBAAmB;;;8EAwBxB,CAAA;AAkBD,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAED,QAAA,MAAM,WAAW,yFAqEhB,CAAA;AAGD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"content-card.d.ts","sourceRoot":"","sources":["../../src/composed/content-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,mBAAmB;;;8EAwBxB,CAAA;AAkBD,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB;AAED,QAAA,MAAM,WAAW,yFAqEhB,CAAA;AAGD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"string-utils.d.ts","sourceRoot":"","sources":["../../../src/composed/lib/string-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD"}
1
+ {"version":3,"file":"string-utils.d.ts","sourceRoot":"","sources":["../../../src/composed/lib/string-utils.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading-skeleton.d.ts","sourceRoot":"","sources":["../../src/composed/loading-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,YAAY,0FA2BjB,CAAA;AAID,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,QAAA,MAAM,aAAa,2FAqDlB,CAAA;AAID,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,aAAa,2FAiDlB,CAAA;AAID,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,QAAA,MAAM,YAAY,0FA+BjB,CAAA;AAID,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"loading-skeleton.d.ts","sourceRoot":"","sources":["../../src/composed/loading-skeleton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,YAAY,0FA2BjB,CAAA;AAID,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,QAAA,MAAM,aAAa,2FAqDlB,CAAA;AAID,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,aAAa,2FAiDlB,CAAA;AAID,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,QAAA,MAAM,YAAY,0FA+BjB,CAAA;AAID,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/composed/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,UAAU,wFAyFf,CAAA;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/composed/page-header.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,UAAU,wFAyFf,CAAA;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-skeletons.d.ts","sourceRoot":"","sources":["../../src/composed/page-skeletons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAExF,QAAA,MAAM,iBAAiB,+FAkDtB,CAAA;AAMD,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAE1F,QAAA,MAAM,mBAAmB,iGA2DxB,CAAA;AAMD,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAEzF,QAAA,MAAM,kBAAkB,gGA8CvB,CAAA;AAID,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
1
+ {"version":3,"file":"page-skeletons.d.ts","sourceRoot":"","sources":["../../src/composed/page-skeletons.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAExF,QAAA,MAAM,iBAAiB,+FAkDtB,CAAA;AAMD,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAE1F,QAAA,MAAM,mBAAmB,iGA2DxB,CAAA;AAMD,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAEzF,QAAA,MAAM,kBAAkB,gGA8CvB,CAAA;AAID,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { VariantProps } from 'class-variance-authority';
2
3
  import * as React from 'react';
3
4
  export type Priority = 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT' | 'low' | 'medium' | 'high' | 'urgent';
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as r, jsxs as g } from "react/jsx-runtime";
2
3
  import * as u from "react";
3
4
  import { a as b } from "../_chunks/vendor-utils.js";
@@ -39,7 +39,17 @@
39
39
  font-display: swap;
40
40
  }
41
41
 
42
- /* ── Title Scale (T1–T7) ───────────────────────────────────────── */
42
+ /* ── DEPRECATED Title Scale (T1–T7) ────────────────────────────────
43
+ * @deprecated Use typography-semantic.css tokens instead:
44
+ * T1-Reg → --typo-heading-2xl (60px)
45
+ * T2-Reg → --typo-heading-xl (48px)
46
+ * T3-Reg → --typo-heading-lg (36px)
47
+ * T4-Reg → --typo-heading-md (32px)
48
+ * T5-Reg → --typo-heading-sm (24px)
49
+ * T6-Reg → --typo-heading-xs (20px)
50
+ * T7-Reg → --typo-heading-xs (20px, tighter)
51
+ * These classes will be removed in v1.0.
52
+ * ──────────────────────────────────────────────────────────────── */
43
53
 
44
54
  .T1-Reg {
45
55
  font-family: inherit;
@@ -103,7 +113,15 @@
103
113
  letter-spacing: -0.48px;
104
114
  }
105
115
 
106
- /* ── Body Scale (B1–B8) ────────────────────────────────────────── */
116
+ /* ── DEPRECATED Body Scale (B1–B8) ─────────────────────────────────
117
+ * @deprecated Use typography-semantic.css tokens instead:
118
+ * B1-Reg → --typo-body-lg (16px)
119
+ * B2-Reg → --typo-body-md (14px)
120
+ * B3-Reg → --typo-body-sm (12px)
121
+ * B4-Reg → --typo-body-xs (10px)
122
+ * B5-B8 → Use body-lg/md/sm/xs with weight overrides
123
+ * These classes will be removed in v1.0.
124
+ * ──────────────────────────────────────────────────────────────── */
107
125
 
108
126
  .B1-Reg {
109
127
  font-family: inherit;
@@ -184,7 +202,15 @@
184
202
  letter-spacing: -0.32px;
185
203
  }
186
204
 
187
- /* ── Label Scale (L1–L6) ───────────────────────────────────────── */
205
+ /* ── DEPRECATED Label Scale (L1–L6) ────────────────────────────────
206
+ * @deprecated Use typography-semantic.css tokens instead:
207
+ * L1 → --typo-label-lg (16px)
208
+ * L2 → --typo-label-md (14px)
209
+ * L3 → --typo-label-sm (12px)
210
+ * L4 → --typo-label-xs (10px)
211
+ * L5-L6 → Use label-sm/xs with weight overrides
212
+ * These classes will be removed in v1.0.
213
+ * ──────────────────────────────────────────────────────────────── */
188
214
 
189
215
  .L1 {
190
216
  font-family: inherit;
@@ -236,7 +262,10 @@
236
262
  text-transform: uppercase;
237
263
  }
238
264
 
239
- /* ── Paragraph Scale (P1–P7) ───────────────────────────────────── */
265
+ /* ── DEPRECATED Paragraph Scale (P1–P7) ────────────────────────────
266
+ * @deprecated Use typography-semantic.css --typo-body-* tokens instead.
267
+ * These classes will be removed in v1.0.
268
+ * ──────────────────────────────────────────────────────────────── */
240
269
  /* NOTE: P2 (0.36px tracking) and B5-Reg (0.32px tracking) are near-identical
241
270
  at 16px/140%. P2 is for paragraph blocks, B5-Reg for inline body text. */
242
271
 
@@ -4,6 +4,7 @@ import * as React from 'react';
4
4
  declare const alertVariants: (props?: ({
5
5
  variant?: "outline" | "filled" | "subtle" | null | undefined;
6
6
  color?: "success" | "error" | "info" | "warning" | "neutral" | null | undefined;
7
+ size?: "sm" | "md" | "lg" | null | undefined;
7
8
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
9
  /**
9
10
  * Props for Alert — an inline message block with a colored icon, optional title, optional body,
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,aAAa;;;8EAuClB,CAAA;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,KAAK,mFA0CV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,aAAa;;;;8EA4ClB,CAAA;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,KAAK,mFA+CV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}