@devalok/shilp-sutra 0.40.1 → 0.42.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/AGENTS.md +23 -1
- package/BREAKING.json +66 -0
- package/BREAKING.schema.json +184 -0
- package/MIGRATION.md +16 -0
- package/docs/recipes/install-next-app-router.md +54 -14
- package/docs/recipes/upgrading.md +19 -0
- package/llms-full.txt +1 -1
- package/llms-quick.txt +3 -1
- package/llms.txt +1 -0
- package/make-kit/Guidelines.md +71 -0
- package/make-kit/components/badge.md +162 -0
- package/make-kit/components/button.md +125 -0
- package/make-kit/components/card.md +147 -0
- package/make-kit/components/dialog.md +167 -0
- package/make-kit/components/dropdown-menu.md +205 -0
- package/make-kit/components/form.md +189 -0
- package/make-kit/components/icon.md +152 -0
- package/make-kit/components/input.md +154 -0
- package/make-kit/components/overview.md +308 -0
- package/make-kit/components/popover.md +201 -0
- package/make-kit/components/select.md +148 -0
- package/make-kit/components/stack.md +165 -0
- package/make-kit/components/table.md +215 -0
- package/make-kit/components/tabs.md +162 -0
- package/make-kit/components/text.md +139 -0
- package/make-kit/components/toast.md +193 -0
- package/make-kit/foundations/color.md +128 -0
- package/make-kit/foundations/dark-mode.md +81 -0
- package/make-kit/foundations/icons.md +107 -0
- package/make-kit/foundations/motion.md +134 -0
- package/make-kit/foundations/radius.md +78 -0
- package/make-kit/foundations/spacing.md +110 -0
- package/make-kit/foundations/surfaces.md +121 -0
- package/make-kit/foundations/typography.md +120 -0
- package/make-kit/setup.md +130 -0
- package/package.json +9 -2
- package/skill/SKILL.md +3 -3
- package/skill/references/components-full.md +1 -1
- package/skill/references/components.md +1 -0
- package/skill/references/setup-next-app-router.md +54 -14
- package/skill/references/upgrading.md +19 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devalok/shilp-sutra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.42.0",
|
|
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>",
|
|
@@ -65,6 +65,8 @@
|
|
|
65
65
|
},
|
|
66
66
|
"./css": "./dist/tokens/shilp-sutra.css",
|
|
67
67
|
"./tokens": "./dist/tokens/index.css",
|
|
68
|
+
"./BREAKING.json": "./BREAKING.json",
|
|
69
|
+
"./BREAKING.schema.json": "./BREAKING.schema.json",
|
|
68
70
|
"./ui": {
|
|
69
71
|
"types": "./dist/ui/index.d.ts",
|
|
70
72
|
"import": "./dist/ui/index.js",
|
|
@@ -791,7 +793,9 @@
|
|
|
791
793
|
"import": "./dist/ai/types.js",
|
|
792
794
|
"default": "./dist/ai/types.js"
|
|
793
795
|
},
|
|
794
|
-
"./docs/*": "./docs/components/*"
|
|
796
|
+
"./docs/*": "./docs/components/*",
|
|
797
|
+
"./make-kit": "./make-kit/Guidelines.md",
|
|
798
|
+
"./make-kit/*": "./make-kit/*"
|
|
795
799
|
},
|
|
796
800
|
"files": [
|
|
797
801
|
"dist",
|
|
@@ -799,9 +803,12 @@
|
|
|
799
803
|
"docs/recipes",
|
|
800
804
|
"docs/rollback.md",
|
|
801
805
|
"fonts",
|
|
806
|
+
"make-kit",
|
|
802
807
|
"skill",
|
|
803
808
|
"scripts/welcome.mjs",
|
|
804
809
|
"AGENTS.md",
|
|
810
|
+
"BREAKING.json",
|
|
811
|
+
"BREAKING.schema.json",
|
|
805
812
|
"MIGRATION.md",
|
|
806
813
|
"README.md",
|
|
807
814
|
"llms.txt",
|
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.42.0"
|
|
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
|
|
@@ -64,8 +64,8 @@ These are non-negotiable. Violating any of them produces runtime errors that loo
|
|
|
64
64
|
```
|
|
65
65
|
2. **`framer-motion@^12` is a required peer dep.** The consumer must install it. Module-scoped contexts (`MotionConfig`, `LayoutGroup`, `AnimatePresence`) silently break if two copies of framer-motion resolve. Configure pnpm/yarn to dedupe.
|
|
66
66
|
3. **`sonner@^2` is an optional peer dep.** Install only when rendering `<Toaster />`.
|
|
67
|
-
4. **
|
|
68
|
-
5. **Spacing
|
|
67
|
+
4. **Prefer per-component imports — they keep RSC bundles small and avoid peer-dep cliffs.** `@devalok/shilp-sutra/ui/text` is server-safe and pulls only its own peers. The barrel `@devalok/shilp-sutra/ui` re-exports every component (including ones with hard peer deps like `input-otp`), so it forces those peers to install even when unused. With all peers installed the barrel also works in RSC (per-component `"use client"` is honoured), but the client bundle is larger. Prefer per-component for new code; existing barrel usage is not an emergency. See `references/server-components.md`.
|
|
68
|
+
5. **Spacing uses the `--spacing-ds-*` namespace** (`p-ds-04`, `gap-ds-03`); typography uses `text-ds-body-md`. These **coexist with** Tailwind 4's numeric scale (`p-4`, `gap-2`) by design — both valid. Pick `p-ds-*` for values that should track DS theme changes, `p-N` for one-off layout. Do NOT mass-codemod `p-4` → `p-ds-04`. **Cadence when building layouts:** pick a 3-tier scale, not every adjacent token — `ds-03` (related: label↔field), `ds-05` (grouped: between field-groups), `ds-07` (section: between blocks), optional `ds-08`+ (hero). 3-4 distinct gaps per surface; 5+ reads muddy. Anti-pattern: `ds-02` + `ds-04` as different signals on one surface — they collapse. The squint test must still reveal grouping.
|
|
69
69
|
6. **Bare `shadow` does not exist in Tailwind 4.** Use `shadow-raised`, `shadow-overlay`, `shadow-floating`. Bare `rounded` is fine (maps to `--radius`); `rounded-ds-lg` etc. for sized variants.
|
|
70
70
|
7. **Do not invent variant names.** CVA source files at `node_modules/@devalok/shilp-sutra/dist/ui/*.d.ts` (or `packages/core/src/ui/*.tsx` in the DS repo) are authoritative. When in doubt, check `references/components-full.md` for the enumerated list. If you guess a variant that doesn't exist, the prop is silently dropped and the default applies.
|
|
71
71
|
8. **Default `variant="soft"` over `variant="outline"` for non-primary Button actions.** Soft (tinted bg + tinted text, no border) reads warmer in data-dense UIs. Use outline only when soft would disappear on a colored background or when a primary/secondary hierarchy needs a visible border.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
> All variant values and props verified from source CVA definitions.
|
|
8
8
|
>
|
|
9
9
|
> Package: @devalok/shilp-sutra
|
|
10
|
-
> Version: 0.
|
|
10
|
+
> Version: 0.42.0
|
|
11
11
|
>
|
|
12
12
|
> **If you are an AI agent reading this file top-to-bottom:** the Setup
|
|
13
13
|
> section below is authoritative. If any later per-component doc or a
|
|
@@ -51,6 +51,7 @@ The repo URL for these files is `https://github.com/devalok-design/shilp-sutra/t
|
|
|
51
51
|
- **Agent-friendly install experience.** `AGENTS.md` now ships in the tarball (`node_modules/@devalok/shilp-sutra/AGENTS.md`), discoverable by 25+ agent tools. `package.json` declares an `agents` field (npm-agentskills convention) so `pnpm dlx @codemcp/agentskills export` auto-installs the bundled skill. New postinstall welcome banner (silent in CI / non-TTY / `SHILP_SUTRA_NO_WELCOME=1`). `troubleshoot.md` gained peer-cliff symptom entries.
|
|
52
52
|
- **`llms-quick.txt`.** New ≤15K-token fast-path summary in the tarball — fits in one Read on any agent. Read order is now `llms-quick.txt` → `llms.txt` → `llms-full.txt`.
|
|
53
53
|
- **Companion package `@devalok/eslint-plugin-shilp-sutra`** (first release). 12 rules — deprecated-API catches, peer-cliff barrel-import detection, TW3→TW4 classname autofixes. `pnpm add -D @devalok/eslint-plugin-shilp-sutra`, then `shilpSutra.configs['flat/recommended']`. Three presets: `recommended`, `strict`, `migration` (one-shot codemod).
|
|
54
|
+
- **Machine-readable `BREAKING.json` manifest** (v0.40.2+). Structured record of every breaking change per version (moves, narrowings, removals, renames). At `node_modules/@devalok/shilp-sutra/BREAKING.json` after install; subpath export `@devalok/shilp-sutra/BREAKING.json`. AI agents and migration tooling read this instead of parsing CHANGELOG prose. Schema at `BREAKING.schema.json`. Pre-publish-audit gate enforces a manifest entry for every release with a breaking CHANGELOG signal.
|
|
54
55
|
|
|
55
56
|
## BREAKING CHANGES (v0.40.0)
|
|
56
57
|
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
> Setup recipe for adding `@devalok/shilp-sutra` to a Next.js 13+ App Router project.
|
|
6
6
|
|
|
7
|
+
> **Tested cold-install on:** Next 16.2.6 + React 19.2 + Turbopack + pnpm 10.30 + Node 22 + Windows 11 (2026-05-25). Earlier versions of Next 13/14/15 are still supported on this recipe; deltas called out inline.
|
|
8
|
+
|
|
7
9
|
## 1. Detect the framework
|
|
8
10
|
|
|
9
11
|
You are in this recipe if **all** of these are true:
|
|
@@ -61,27 +63,35 @@ Some components depend on third-party libraries that ship as optional peers. **I
|
|
|
61
63
|
|
|
62
64
|
## 3. Configure PostCSS
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
**Next 14+ scaffolds this for you.** Verify `postcss.config.mjs` (or `.js` / `.cjs` / `.json`) at the project root contains:
|
|
65
67
|
|
|
66
68
|
```js
|
|
67
|
-
|
|
69
|
+
const config = {
|
|
68
70
|
plugins: {
|
|
69
71
|
"@tailwindcss/postcss": {},
|
|
70
72
|
},
|
|
71
73
|
};
|
|
74
|
+
|
|
75
|
+
export default config;
|
|
72
76
|
```
|
|
73
77
|
|
|
74
|
-
If
|
|
78
|
+
If the file is missing, create it with the contents above. If another PostCSS file exists with different plugins, merge `@tailwindcss/postcss` in — do not delete the existing file.
|
|
75
79
|
|
|
76
80
|
## 4. Wire Tailwind 4 + design tokens
|
|
77
81
|
|
|
78
|
-
Locate the global CSS file
|
|
82
|
+
### 4a. Locate the global CSS file
|
|
83
|
+
|
|
84
|
+
Next 13+ default location depends on the `--src-dir` choice at scaffold time:
|
|
85
|
+
|
|
86
|
+
- `src/app/globals.css` — default since Next 14 when scaffolded without `--src-dir false`. **Most common in Next 16+ defaults.**
|
|
87
|
+
- `app/globals.css` — when scaffolded with `--src-dir false` (no `src/`).
|
|
88
|
+
- `app/global.css` — older Next 13 scaffolds.
|
|
79
89
|
|
|
80
|
-
|
|
81
|
-
- `src/app/globals.css`
|
|
82
|
-
- `app/global.css`
|
|
90
|
+
If none exists, create at whichever path matches the project's existing `app/` location.
|
|
83
91
|
|
|
84
|
-
|
|
92
|
+
### 4b. Replace the scaffold's CSS with the shilp-sutra setup
|
|
93
|
+
|
|
94
|
+
A fresh `create-next-app` scaffold writes a `globals.css` with `:root` color vars, an `@theme inline` block linked to Geist font vars, a `prefers-color-scheme` dark override, and a `body { font-family: Arial }` block. **Replace the entire file** with the shilp-sutra setup unless you have a specific reason to keep scaffold styles:
|
|
85
95
|
|
|
86
96
|
```css
|
|
87
97
|
@import "tailwindcss";
|
|
@@ -90,7 +100,11 @@ If none exists, create `app/globals.css`. Set the file contents to (or merge int
|
|
|
90
100
|
|
|
91
101
|
**Order matters.** `tailwindcss` MUST come first. The shilp-sutra `/css` entry registers `@theme` blocks that the Tailwind import must process.
|
|
92
102
|
|
|
93
|
-
If the
|
|
103
|
+
If you want to keep the scaffold's color/font vars alongside shilp-sutra tokens (rare — usually you want one or the other), put scaffold's `@theme inline` / `:root` / `body` blocks AFTER the shilp-sutra import. Otherwise the scaffold's `body { font-family: Arial }` will compete with shilp-sutra's font setup.
|
|
104
|
+
|
|
105
|
+
### 4c. Optional: add your own theme overrides
|
|
106
|
+
|
|
107
|
+
Place after both imports:
|
|
94
108
|
|
|
95
109
|
```css
|
|
96
110
|
@import "tailwindcss";
|
|
@@ -101,12 +115,16 @@ If the project has its own theme overrides, place them AFTER both imports:
|
|
|
101
115
|
}
|
|
102
116
|
```
|
|
103
117
|
|
|
104
|
-
|
|
118
|
+
### 4d. Ensure CSS is imported from the layout
|
|
119
|
+
|
|
120
|
+
The CSS import in `app/layout.tsx` (or `src/app/layout.tsx`) should already exist in a fresh scaffold:
|
|
105
121
|
|
|
106
122
|
```tsx
|
|
107
123
|
import "./globals.css";
|
|
108
124
|
```
|
|
109
125
|
|
|
126
|
+
If you removed the Geist-font import from layout.tsx (see § 6), keep this CSS import line.
|
|
127
|
+
|
|
110
128
|
## 5. Configure `transpilePackages`
|
|
111
129
|
|
|
112
130
|
Edit `next.config.{ts,js,mjs}`. Add the `transpilePackages` field:
|
|
@@ -125,6 +143,8 @@ If a `transpilePackages` array already exists, append to it. Do not replace.
|
|
|
125
143
|
|
|
126
144
|
Without `transpilePackages`, Next will refuse to load our pre-built `dist/*.js` because it ships native ESM that does not match Next's CJS-leaning loader for `node_modules`.
|
|
127
145
|
|
|
146
|
+
**Turbopack:** as of Next 16, Turbopack is the default bundler (`next dev` and `next build`). `transpilePackages` is respected by both Turbopack and the Webpack backend. Tested on Turbopack 16.2 cold-install (2026-05-25); no extra config needed.
|
|
147
|
+
|
|
128
148
|
## 6. Scaffold the Providers wrapper
|
|
129
149
|
|
|
130
150
|
Create `app/providers.tsx`:
|
|
@@ -151,13 +171,21 @@ export function Providers({ children }: { children: ReactNode }) {
|
|
|
151
171
|
- Drop the `Toaster` import and its JSX usage
|
|
152
172
|
- Skip installing `sonner`
|
|
153
173
|
|
|
154
|
-
Mount `<Providers>` from `app/layout.tsx
|
|
174
|
+
Mount `<Providers>` from `app/layout.tsx` (or `src/app/layout.tsx`). **Replace the scaffold's layout** with the version below — the scaffold imports `next/font/google` (Geist) and applies font-variable classes to `<html>`, which you don't need when shilp-sutra ships its own fonts:
|
|
155
175
|
|
|
156
176
|
```tsx
|
|
177
|
+
import type { Metadata } from "next";
|
|
157
178
|
import "./globals.css";
|
|
158
179
|
import { Providers } from "./providers";
|
|
159
180
|
|
|
160
|
-
export
|
|
181
|
+
export const metadata: Metadata = {
|
|
182
|
+
title: "Your app",
|
|
183
|
+
description: "Built with shilp-sutra",
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export default function RootLayout({
|
|
187
|
+
children,
|
|
188
|
+
}: Readonly<{ children: React.ReactNode }>) {
|
|
161
189
|
return (
|
|
162
190
|
<html lang="en" suppressHydrationWarning>
|
|
163
191
|
<body>
|
|
@@ -168,11 +196,20 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
168
196
|
}
|
|
169
197
|
```
|
|
170
198
|
|
|
199
|
+
Specifically, **remove these scaffold lines**:
|
|
200
|
+
|
|
201
|
+
- `import { Geist, Geist_Mono } from "next/font/google";`
|
|
202
|
+
- The `const geistSans = Geist({...})` and `const geistMono = Geist_Mono({...})` blocks
|
|
203
|
+
- The `className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}` on `<html>`
|
|
204
|
+
- The `className="min-h-full flex flex-col"` on `<body>`
|
|
205
|
+
|
|
206
|
+
If you want to keep Geist alongside shilp-sutra's fonts, leave the `Geist` imports — but know that shilp-sutra's `font-sans` token resolves to Inter (body) and Ranade (display), not to the scaffold's `--font-geist-sans`. Loading both is wasted bytes.
|
|
207
|
+
|
|
171
208
|
`suppressHydrationWarning` on `<html>` is required because `next-themes` writes the `class` attribute before React hydrates. Without it, every page logs a hydration warning.
|
|
172
209
|
|
|
173
210
|
## 7. Verify the install
|
|
174
211
|
|
|
175
|
-
Replace the contents of `app/page.tsx
|
|
212
|
+
Replace the contents of `app/page.tsx` (or `src/app/page.tsx`). The scaffold's `page.tsx` imports `next/image` and renders the Vercel marketing layout — replace the whole file:
|
|
176
213
|
|
|
177
214
|
```tsx
|
|
178
215
|
import { Button } from "@devalok/shilp-sutra/ui/button";
|
|
@@ -211,6 +248,7 @@ If anything is off, see [troubleshoot.md](./troubleshoot.md).
|
|
|
211
248
|
## 8. Common gotchas
|
|
212
249
|
|
|
213
250
|
- **CSS import order.** `tailwindcss` BEFORE `@devalok/shilp-sutra/css`. Reversing the order silently produces a build with no design-system utilities.
|
|
251
|
+
- **Scaffold's `body { font-family: Arial }` overrides shilp-sutra fonts.** The `create-next-app` `globals.css` template sets `font-family: Arial, Helvetica, sans-serif` on `<body>`. If you kept the scaffold's body styles, they win the cascade over shilp-sutra's `font-sans`. § 4b says to replace the whole file — follow it.
|
|
214
252
|
- **Multiple `framer-motion` copies.** Run `pnpm why framer-motion`. If it shows more than one resolved version, contexts (`MotionConfig`, `LayoutGroup`, `AnimatePresence`) silently break. Fix:
|
|
215
253
|
```jsonc
|
|
216
254
|
// package.json
|
|
@@ -224,7 +262,9 @@ If anything is off, see [troubleshoot.md](./troubleshoot.md).
|
|
|
224
262
|
```
|
|
225
263
|
For npm/yarn/bun equivalents, see [troubleshoot.md](./troubleshoot.md).
|
|
226
264
|
- **Per-component imports keep RSC fast AND avoid peer-dep cliffs.** Inside Server Components, prefer `@devalok/shilp-sutra/ui/text`, `…/composed/page-header`, etc. The barrel `@devalok/shilp-sutra/ui` re-exports many client components — including some with hard peer-dep imports (e.g. `input-otp`) — so it both inflates the client bundle and forces those peers to be installed even when you never render those components. See [server-components.md](./server-components.md) for the full RSC-safety matrix.
|
|
227
|
-
- **`p-3` vs `p-ds-03` — both are valid.** DS spacing uses the `--spacing-ds-*` namespace (`p-ds-04`, `gap-ds-03`); Tailwind 4's default numeric scale (`p-4`, `gap-2`) coexists by design. Pick `p-ds-*` for values that should track DS theme changes (card padding, form gaps); pick `p-N` for one-off layout values (section breathing room). Do NOT mass-codemod `p-4` → `p-ds-04` — that is not what the package intends.
|
|
265
|
+
- **`p-3` vs `p-ds-03` — both are valid.** DS spacing uses the `--spacing-ds-*` namespace (`p-ds-04`, `gap-ds-03`); Tailwind 4's default numeric scale (`p-4`, `gap-2`) coexists by design. Pick `p-ds-*` for values that should track DS theme changes (card padding, form gaps); pick `p-N` for one-off layout values (section breathing room). Do NOT mass-codemod `p-4` → `p-ds-04` — that is not what the package intends. For layout rhythm, pick a 3-tier cadence (`ds-03` related / `ds-05` grouped / `ds-07` section), not every adjacent token.
|
|
266
|
+
- **Auto-generated `pnpm-workspace.yaml`.** `pnpm 10+` writes a `pnpm-workspace.yaml` at the project root on first install with `ignoredBuiltDependencies` entries. This is harmless for a standalone app, but if you're nesting this project inside a larger monorepo, delete this file and use the parent monorepo's workspace config instead.
|
|
267
|
+
- **Auto-generated `AGENTS.md`.** `create-next-app` writes an `AGENTS.md` with managed `<!-- BEGIN:nextjs-agent-rules -->` / `<!-- END:nextjs-agent-rules -->` markers. Shilp Sutra's agent rules use `<!-- BEGIN:shilp-sutra-agent-rules -->` markers — they coexist cleanly. If you install the shilp-sutra Agent Skill (see the repo root `AGENTS.md` for the one-liner), it adds its block alongside Next's, not over it.
|
|
228
268
|
- **Bare `shadow` is dead.** Tailwind 4 has no `--shadow-DEFAULT`. Use `shadow-raised`, `shadow-overlay`, or `shadow-floating`.
|
|
229
269
|
|
|
230
270
|
## 9. What you should NOT do
|
|
@@ -18,6 +18,25 @@ A version bump is **not** safe-by-default. Breaking changes in this design syste
|
|
|
18
18
|
|
|
19
19
|
## Step 2 — find affected call sites in your code
|
|
20
20
|
|
|
21
|
+
**Fastest path — read the machine-readable manifest:**
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Lists every break per version as structured data (moves, narrowings, removals)
|
|
25
|
+
cat node_modules/@devalok/shilp-sutra/BREAKING.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or programmatically:
|
|
29
|
+
|
|
30
|
+
```js
|
|
31
|
+
import manifest from '@devalok/shilp-sutra/BREAKING.json'
|
|
32
|
+
// manifest.versions["0.40.0"].moved → [{ symbol, from, to, peer, eslintRule }, …]
|
|
33
|
+
// manifest.versions["0.40.0"].narrowed → [{ prop, components, from, to, fix }, …]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Schema: `@devalok/shilp-sutra/BREAKING.schema.json`. AI agents should prefer this over prose-parsing CHANGELOG.
|
|
37
|
+
|
|
38
|
+
**Or grep manually:**
|
|
39
|
+
|
|
21
40
|
```bash
|
|
22
41
|
# Symbols moved out of barrels (0.40.0 peer-cliff cleanup example):
|
|
23
42
|
grep -rn "from '@devalok/shilp-sutra/ui'" src/ | grep -E "Toaster|toast|InputOTP"
|