@tollerud/ui 3.1.1 → 4.0.2

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 CHANGED
@@ -293,7 +293,7 @@ Severity scale: `critical` · `high` · `medium` · `low` · `info`
293
293
  The monogram must always appear left of the project name with `gap-2`. Never show the name without the monogram or the monogram alone in a nav context.
294
294
 
295
295
  ```tsx
296
- import logo from '@tollerud/ui/tollerud-logo.svg'
296
+ import logo from '@tollerud/ui/brand/tollerud-logo.svg'
297
297
 
298
298
  // Top bar
299
299
  <nav className="tollerud-glass fixed top-0 inset-x-0 z-50 h-14 flex items-center px-6 gap-6">
@@ -399,6 +399,19 @@ When asked to add components, fix bugs, or cut a release:
399
399
  npm run validate # typecheck + lint + test + build
400
400
  ```
401
401
 
402
+ ### 1b. `package-lock.json` must match CI npm
403
+
404
+ GitHub Actions uses **Node 24 + npm 11** (`packageManager` in `package.json` pins `npm@11.16.0`). Regenerating the lockfile with a different npm major can produce entries that **`npm ci` rejects on CI**.
405
+
406
+ When you change dependencies or bump the package version:
407
+
408
+ ```bash
409
+ npx npm@11.16.0 install # refresh lockfile — use the pinned npm, not an arbitrary local version
410
+ rm -rf node_modules && npx npm@11.16.0 ci # verify before push
411
+ ```
412
+
413
+ Never use `npm install --package-lock-only` alone for version bumps — it can desync optional peer entries. Commit `package-lock.json` in the same commit as `package.json` changes.
414
+
402
415
  ### 2. Every new component needs all four of these
403
416
 
404
417
  | What | Where |
@@ -418,8 +431,9 @@ npm run validate # typecheck + lint + test + build
418
431
 
419
432
  Edit `package.json` version, then update these to match:
420
433
  - `COMPLETENESS_ROADMAP.md` — header line `### npm package (components/*.tsx) — vX.X.X`
421
- - `registry.json` — top-level `"version"` field
422
- - `docs/app.jsx` — sidebar brand line `user interface · vX.X.X`
434
+ - `registry.json` — top-level `"version"` field (or run `npm run sync:registry`)
435
+
436
+ The docs sidebar version reads live from `package.json` via `PACKAGE_VERSION` in `docs-app/lib/docs-stats.js` — no manual edit.
423
437
 
424
438
  ### 4. Always update these files in the same commit
425
439
 
package/CHANGELOG.md CHANGED
@@ -7,6 +7,113 @@
7
7
  • Never write bold mid-paragraph as a heading substitute — it merges into surrounding text
8
8
  -->
9
9
 
10
+ ## 4.0.2 — 2026-06-10 — Repo layout and publish surface cleanup
11
+
12
+ Patch release: consolidates docs and CI fixtures, stops shipping internal manifests, and clarifies docs copy after the npm-only pivot.
13
+
14
+ ### Changed
15
+
16
+ - Tarball smoke test moved to `fixtures/consumer/` (was `examples/consumer/`)
17
+ - Docs chrome consolidated under `docs-app/styles/docs.css` (removed top-level `docs/`)
18
+ - `registry.json` kept in the repo for `npm run test:drift` — no longer published in the npm tarball
19
+ - Docs copy: semantic tokens described without shadcn install-path framing
20
+
21
+ ### Removed
22
+
23
+ - `components.json` — unused after copy-via-shadcn removal
24
+
25
+ ---
26
+
27
+ ## 4.0.1 — 2026-06-10 — npm-only install path
28
+
29
+ Patch release: drops copy-via-shadcn registry tooling. Install from the package — barrel or subpath imports.
30
+
31
+ ### Removed
32
+
33
+ - `npm run test:registry-cli`, `npm run build:registry`, and `examples/registry-consumer/`
34
+ - `registry-dist/` build output (never shipped to npm in v4.0.0)
35
+ - Public shadcn `npx shadcn add` install docs — no consumers use copy-into-repo flow
36
+
37
+ ### Docs
38
+
39
+ - Getting started leads with `npm install @tollerud/ui` and subpath imports (`@tollerud/ui/button`)
40
+ - `registry.json` remains for internal drift checks (`npm run test:drift`) only
41
+
42
+ ### Migration
43
+
44
+ Use the package directly:
45
+
46
+ ```tsx
47
+ import { Button } from '@tollerud/ui'
48
+ // or tree-shake:
49
+ import { Button } from '@tollerud/ui/button'
50
+ ```
51
+
52
+ Do not copy component source via shadcn CLI — that path is unsupported.
53
+
54
+ ---
55
+
56
+ ## 4.0.0 — 2026-06-10 — Ecosystem hardening and globals-v4 removal
57
+
58
+ Major release: completes the post-v3 roadmap (light gallery, registry CLI, footer lockstep), reorganizes brand assets, and drops deprecated CSS entrypoints.
59
+
60
+ ### Breaking changes
61
+
62
+ - Removed `@tollerud/ui/globals-v4.css` — it was an alias for `globals.css`. Tailwind v4 projects should import `@tollerud/ui/globals.css` only.
63
+ - Brand assets moved under `@tollerud/ui/brand/*` — e.g. `@tollerud/ui/brand/tollerud-logo.svg` (not package-root paths).
64
+
65
+ ### Ecosystem
66
+
67
+ - `@tollerud/footer` — `packages/footer/` synced from `components/Footer.tsx` via `npm run sync:footer`; `npm run verify:footer-sync` in `validate`
68
+ - Changesets linked `@tollerud/ui` and `@tollerud/footer` for joint version bumps
69
+ - Registry drift checks via `registry.json` (`npm run test:drift`) — internal manifest, not a public shadcn install path
70
+
71
+ ### Docs site
72
+
73
+ - Light-mode gallery parity — docs-only Tailwind preset maps `tollerud-*` utilities to CSS variables so npm previews flip in `data-theme="light"`
74
+ - Docs icons migrated to `lucide-react` (custom GitHub mark retained)
75
+ - Playwright coverage — forms page, command palette, theme toggle, light-mode card surfaces
76
+ - Brand assets canonical in `brand/`; synced to docs via `scripts/sync-brand-assets.mjs`
77
+ - Homepage and live docs URL → `https://design.tollerud.dev/`
78
+
79
+ ### Tooling
80
+
81
+ - CI and dev tooling on Node 24 + npm 11.16.0 (`.nvmrc`, lockfile guardrails)
82
+ - Dependabot for `docs-app/` and `fixtures/consumer/` (moved from `examples/consumer/` in v4.0.2)
83
+ - Removed legacy `preview.html`, completed planning docs, and stale docs artifacts
84
+ - Consumer smoke test auto-syncs tarball version in `fixtures/consumer/package.json` (path at release: `examples/consumer/`)
85
+
86
+ ### Migration
87
+
88
+ **globals-v4.css** — replace:
89
+
90
+ ```css
91
+ @import "@tollerud/ui/globals-v4.css";
92
+ ```
93
+
94
+ with:
95
+
96
+ ```css
97
+ @import "@tollerud/ui/globals.css";
98
+ @source "../node_modules/@tollerud/ui/dist";
99
+ ```
100
+
101
+ **Brand assets** — replace root imports:
102
+
103
+ ```ts
104
+ import logo from '@tollerud/ui/tollerud-logo.svg'
105
+ ```
106
+
107
+ with:
108
+
109
+ ```ts
110
+ import logo from '@tollerud/ui/brand/tollerud-logo.svg'
111
+ ```
112
+
113
+ No component API changes. `@tollerud/ui` barrel and subpath imports unchanged.
114
+
115
+ ---
116
+
10
117
  ## 3.1.1 — 2026-06-09 — Display shimmer, form indicators, and button fixes
11
118
 
12
119
  Patch release: ships hero text shimmer for consumer apps, fixes secondary/checkbox/radio styling, and polishes docs layout components.
@@ -79,71 +79,13 @@ Import individual components without pulling the full barrel:
79
79
 
80
80
  ```tsx
81
81
  import { Button } from '@tollerud/ui/button'
82
- import { Dialog, DialogContent } from '@tollerud/ui/dialog'
83
82
  import { cn } from '@tollerud/ui/utils'
84
83
  ```
85
84
 
86
- Every component in the catalog has a matching subpath (kebab-case filename). The main `@tollerud/ui` entry still works for convenience.
87
-
88
- ---
89
-
90
- ## Toaster (optional)
91
-
92
- Mount the `Toaster` once near your app root to enable `sonner` toast notifications:
93
-
94
- ```tsx
95
- // app/layout.tsx
96
- import { Toaster } from '@tollerud/ui'
97
-
98
- export default function RootLayout({ children }) {
99
- return (
100
- <html>
101
- <body>
102
- {children}
103
- <Toaster />
104
- </body>
105
- </html>
106
- )
107
- }
108
- ```
109
-
110
- ---
111
-
112
- ## Import Components
113
-
114
- All 61 components are named exports from `@tollerud/ui`:
115
-
116
- ```tsx
117
- // Basics
118
- import { Button, Card, Badge, StatusDot, Kbd, Input, Textarea } from '@tollerud/ui'
119
-
120
- // Overlays
121
- import { Dialog, DialogContent, Tooltip, TooltipProvider, Sheet } from '@tollerud/ui'
122
-
123
- // Data & infra
124
- import { DataTable, HostCard, LogViewer, CommandMenu } from '@tollerud/ui'
125
- ```
126
-
127
85
  See [COMPONENTS.md](COMPONENTS.md) for the full prop reference.
128
86
 
129
87
  ---
130
88
 
131
- ## shadcn / registry
132
-
133
- Install individual components via the registry:
134
-
135
- ```bash
136
- npx shadcn@latest add https://unpkg.com/@tollerud/ui@latest/registry.json
137
- ```
138
-
139
- Or add a single component:
140
-
141
- ```bash
142
- npx shadcn@latest add button --registry https://unpkg.com/@tollerud/ui@latest/registry.json
143
- ```
144
-
145
- ---
146
-
147
89
  ## Server Components
148
90
 
149
91
  `@tollerud/ui` ships client bundles with `'use client'`. Importing components (or `cn`, `buttonVariants`) from a Server Component file is safe — the import does not force your file to become a Client Component.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A complete, browsable UI library built around **monochrome + yellow accent**. Noir aesthetic meets modern utility.
4
4
 
5
- **[Live docs →](https://tollerud.github.io/design-system/)** — browse every token, component, and pattern live with copy-paste code.
5
+ **[Live docs →](https://design.tollerud.dev/)** — browse every token, component, and pattern live with copy-paste code.
6
6
 
7
7
  **Requirements:** React ≥ 18 · TypeScript supported (types included) · Tailwind CSS v4 (v3 supported via `globals-v3.css`)
8
8
 
@@ -21,7 +21,7 @@ A complete, browsable UI library built around **monochrome + yellow accent**. No
21
21
 
22
22
  > Clean lines. Sharp contrast. Yellow where it counts.
23
23
 
24
- Tollerud DS is minimal but not cold. It uses a near-black foundation with warm yellow accents for interaction points. Every element has purpose — nothing decorative for its own sake. The cross-hatching spirit lives in the sharp borders, the thin lines, the deliberate whitespace.
24
+ Tollerud UI is minimal but not cold. It uses a near-black foundation with warm yellow accents for interaction points. Every element has purpose — nothing decorative for its own sake. The cross-hatching spirit lives in the sharp borders, the thin lines, the deliberate whitespace.
25
25
 
26
26
  ## Quick Start
27
27
 
@@ -141,7 +141,7 @@ Include `tokens.css` or `globals.css` for CSS custom properties and utility clas
141
141
 
142
142
  ### Brand Mascot
143
143
 
144
- The design system includes `tollerud-avatar.svg` a full cel-shaded monochrome illustration of Tia in her black gakuran, available in `design-system/` for use in headers, landing pages, branding, or anywhere the Tia identity appears.
144
+ The design system ships brand assets under `brand/` — import via `@tollerud/ui/brand/tollerud-avatar.svg` (and `.png` / full-figure variants) for headers, landing pages, and agent identity moments. Prefer `<Monogram />` for nav lockups.
145
145
 
146
146
  ## Palette Summary
147
147
 
@@ -204,74 +204,45 @@ The design system includes `tollerud-avatar.svg` — a full cel-shaded monochrom
204
204
  4. **Sharp when it counts** — Radius is subtle. Full round only for pills. Sharp corners for the noir feel.
205
205
  5. **Glow with purpose** — Yellow glow only on hover/active states. Never decorative.
206
206
 
207
- ## shadcn Registry
207
+ ## Install
208
208
 
209
209
  ```bash
210
- # Add via shadcn CLI — registry ships with the npm package
211
- npx shadcn@latest add button --registry https://unpkg.com/@tollerud/ui/registry.json
210
+ npm install @tollerud/ui clsx tailwind-merge tailwindcss
211
+ ```
212
212
 
213
- # Or copy source manually
214
- cp -r components/ src/components/ui
215
- cp globals.css src/app/
216
- cp tollerud-preset.js .
213
+ ```tsx
214
+ import { Button, Card } from '@tollerud/ui'
215
+ // or tree-shake:
216
+ import { Button } from '@tollerud/ui/button'
217
217
  ```
218
218
 
219
- See [GETTING_STARTED.md](GETTING_STARTED.md) for the full setup guide.
219
+ See [GETTING_STARTED.md](GETTING_STARTED.md) for Tailwind setup and peer dependencies.
220
220
 
221
221
  ## File Structure
222
222
 
223
223
  ```
224
224
  design-system/
225
- ├── package.json # NPM package metadata
226
- ├── README.md # This file
227
- ├── CHANGELOG.md # Version history
228
- ├── ACCESSIBILITY.md # Contrast, focus, reduced motion
229
- ├── BACKGROUNDS.md # NoirGlowBackground usage + fallback docs
230
- ├── COMPONENTS.md # Full component reference + state matrix
231
- ├── KEYBOARD.md # Keyboard contract and shortcut reference
232
- ├── VOICE.md # Copy guidelines and tone
233
- ├── COMPLETENESS_ROADMAP.md # Research and future plans
234
- ├── SKILL.md # Verified component catalog & gotchas for AI agents
235
- ├── tollerud-preset.js # 🏆 Drop-in Tailwind preset
236
- ├── tailwind.config.js # (backward compat standalone config)
237
- ├── globals.css # 🏆 Tailwind v4 entry (tokens + component layers)
238
- ├── globals-v3.css # Tailwind v3 legacy (@tailwind + layers)
225
+ ├── .nvmrc # Node 24 for local dev / CI parity
226
+ ├── package.json # @tollerud/ui — version, exports, scripts
227
+ ├── registry.json # Repo-only drift manifest (`test:drift`; not in npm tarball)
228
+ ├── CHANGELOG.md # Version history (synced to docs on build)
229
+ ├── SKILL.md # AI agent catalog source of truth for exports
230
+ ├── COMPONENTS.md # Human prop reference
231
+ ├── AGENTS.md # Contributor / release guide
232
+ ├── brand/ # Logo + Tia avatars (npm: @tollerud/ui/brand/*)
233
+ ├── components/ # React components (*.tsx) + index.ts barrel
234
+ ├── globals.css # Tailwind v4 entry (tokens + component layers)
235
+ ├── globals-v3.css # Tailwind v3 legacy
239
236
  ├── globals-layers.css # Shared component CSS layers
240
- ├── globals-v4.css # Alias → globals.css
241
- ├── tokens.css # (backward compat CSS vars only)
242
- ├── preview.html # Visual reference
243
- ├── tollerud-avatar.svg # Brand mascot
244
- ├── components/
245
- │ ├── index.ts # Barrel exports
246
- │ ├── Button.tsx # 5 variants, 3 sizes
247
- ├── Card.tsx # Surface cards with optional accent
248
- │ ├── Badge.tsx # 6 variants
249
- │ ├── StatusDot.tsx # Online/offline/warning/idle
250
- │ ├── Input.tsx # With label + error state
251
- │ ├── CodeBlock.tsx # Terminal/code display
252
- │ ├── StatCard.tsx # Dashboard stat card
253
- │ ├── NoirGlowBackground.tsx # Tollerud.no shader background primitive
254
- │ ├── Kbd.tsx # Keyboard shortcut chip (⌘K style)
255
- │ ├── ActionRow.tsx # Command/action item row
256
- │ ├── CommandMenu.tsx # Raycast-style command palette
257
- │ ├── ServiceHealthCard.tsx # Service status card
258
- │ ├── HostCard.tsx # Server/VM card
259
- │ ├── DockerStackCard.tsx # Docker Compose stack card
260
- │ ├── IncidentCard.tsx # Severity-graded incident card
261
- │ ├── ApprovalCard.tsx # Approve/reject card
262
- │ ├── ActionDiff.tsx # Unified diff viewer
263
- │ ├── RollbackPlan.tsx # Rollback step list
264
- │ ├── LogViewer.tsx # Terminal-style log viewer
265
- │ ├── AlertInbox.tsx # Alert feed with acknowledge
266
- │ ├── Timeline.tsx # Vertical activity timeline
267
- │ ├── BackupStatusPanel.tsx # Backup job overview
268
- │ └── Container.tsx # Layout width constraint
269
- ├── docs-app/ # Next.js docs site (static export → _site/ for GitHub Pages)
270
- │ ├── app/ # App Router entry
271
- │ ├── components/ # Page demos (primitives, charts, marketing)
272
- │ └── lib/ # ui-merged.js + docs-adapters.jsx (npm-backed)
273
- └── docs/
274
- └── docs.css # Shared docs chrome styles (imported by docs-app)
237
+ ├── tokens.css # Design tokens
238
+ ├── tollerud-preset.js # Tailwind preset
239
+ ├── scripts/ # Build, validate, docs, and release helpers
240
+ ├── docs-app/ # Next.js docs site (static export → _site/)
241
+ ├── app/ # App Router + globals.css
242
+ │ ├── components/ # Page demos + docs shell
243
+ │ ├── styles/docs.css # Docs chrome + light theme
244
+ └── public/CNAME # design.tollerud.dev
245
+ └── fixtures/consumer/ # npm tarball install smoke test (CI)
275
246
  ```
276
247
 
277
248
  ## Graphify-inspired Components
package/SKILL.md CHANGED
@@ -20,7 +20,7 @@ npm install @tollerud/ui clsx tailwind-merge tailwindcss@4 \
20
20
  npm install @paper-design/shaders-react
21
21
  ```
22
22
 
23
- As of **v3.1.1**, `.tollerud-display-shimmer` ships in `globals.css` for animated hero accent text. As of **v3.1.0**, `Monogram` ships as an inline SVG component (`color`: `yellow` | `black` | `white`). As of **v3.0.0**, the package is **ESM-only** (no CJS `require` entry). As of **v2.0.0**, Radix, Lucide, Framer Motion, and Sonner are **required peers** (not bundled).
23
+ As of **v4.0.1**, install is **npm-only** — `import { Button } from '@tollerud/ui'` or subpaths like `@tollerud/ui/button`. Copy-via-shadcn registry CLI is unsupported. As of **v4.0.0**, `@tollerud/ui/globals-v4.css` is removed — use `globals.css` only. Brand assets live at `@tollerud/ui/brand/*`. As of **v3.1.1**, `.tollerud-display-shimmer` ships in `globals.css` for animated hero accent text. As of **v3.1.0**, `Monogram` ships as an inline SVG component (`color`: `yellow` | `black` | `white`). As of **v3.0.0**, the package is **ESM-only** (no CJS `require` entry). As of **v2.0.0**, Radix, Lucide, Framer Motion, and Sonner are **required peers** (not bundled).
24
24
 
25
25
  Apply the Tailwind preset when you need extra utilities from `tollerud-preset.js` — `globals.css` already includes tokens and component layers for v4:
26
26
 
@@ -458,7 +458,7 @@ The monogram must always sit left of the project name with `gap-2`. Never show t
458
458
  </div>
459
459
  ```
460
460
 
461
- **Monogram** — `color?: 'yellow' | 'black' | 'white'` (default `yellow`), `size?: number`, `title?: string` (default `'Tollerud'`). Brand avatars: `@tollerud/ui/tollerud-avatar.svg`, `tollerud-avatar-full.svg` (+ `.png` variants).
461
+ **Monogram** — `color?: 'yellow' | 'black' | 'white'` (default `yellow`), `size?: number`, `title?: string` (default `'Tollerud'`). Brand avatars: `@tollerud/ui/brand/tollerud-avatar.svg`, `brand/tollerud-avatar-full.svg` (+ `.png` variants).
462
462
  Monogram sizing: top bar/sidebar expanded → `h-5`, collapsed → `h-6`, footer → `h-4` (handled automatically by `<Footer />`).
463
463
 
464
464
  ---
@@ -504,7 +504,7 @@ Shadow scale: `--shadow-sm` `--shadow-md` `--shadow-lg` `--shadow-xl` `--shadow-
504
504
  | Recolor or add glow to the monogram | Yellow-on-dark branding is non-negotiable; glow is for interactive UI only |
505
505
  | Introduce non-system chromatic colors (blue, green, purple) for decoration | Only the yellow accent + monochrome grays (status semantics are the lone exception) |
506
506
  | Nest `<a>`/`<Link>` inside `<Button>` (or vice versa) | Invalid HTML — use `asChild` or `buttonVariants()` instead |
507
- | Import a component name you saw in older docs without checking it exists | Some legacy docs list aspirational or since-shipped components. As of **1.0.9** all 19 previously "missing" components (`Divider`, `Pill`, `Avatar`, `AvatarGroup`, `Breadcrumb`, `Pagination`, `Segmented`, `Stepper`, `Panel`, `Meter`, `FormRow`, `Accordion`, `Slider`, `PasswordInput`, `Combobox`, `DatePicker`, `FileUpload`, `TagInput`, `PricingCard`) are exported. Components still **not** in the package: charts, marketing blocks (`HeroBlock`, `FeatureCard`, `CTABand`), `Drawer`, `EmptyState` (use `Empty`), `Toast` (use `Toaster` + `sonner`'s `toast()`) |
507
+ | Import a component name you saw in older docs without checking it exists | Verify against this catalog or `components/index.ts`. Common renames: `EmptyState` `Empty`, `Toast` `Toaster` + `sonner`'s `toast()`, `Drawer` `Sheet`. Charts (`BarChart`, `AreaChart`, `Donut`, `Sparkline`) and marketing blocks (`HeroBlock`, `FeatureCard`, `CTABand`) ship since **v1.4.0**. Brand assets: `@tollerud/ui/brand/*` (not repo root). |
508
508
 
509
509
  ---
510
510
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tollerud/ui",
3
- "version": "3.1.1",
3
+ "version": "4.0.2",
4
4
  "description": "Tollerud User Interface — dark, monochrome + yellow accent. Noir aesthetic meets modern utility.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -8,14 +8,15 @@
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/Tollerud/ui.git"
10
10
  },
11
- "homepage": "https://tollerud.github.io/design-system/",
11
+ "homepage": "https://design.tollerud.dev/",
12
12
  "bugs": {
13
13
  "url": "https://github.com/Tollerud/ui/issues"
14
14
  },
15
15
  "license": "MIT",
16
16
  "author": "Mathias Tollerud <mathias.tollerud@gmail.com>",
17
+ "packageManager": "npm@11.16.0",
17
18
  "engines": {
18
- "node": ">=18"
19
+ "node": ">=20"
19
20
  },
20
21
  "sideEffects": [
21
22
  "*.css"
@@ -32,17 +33,15 @@
32
33
  },
33
34
  "./globals.css": "./globals.css",
34
35
  "./globals-v3.css": "./globals-v3.css",
35
- "./globals-v4.css": "./globals-v4.css",
36
36
  "./globals-layers.css": "./globals-layers.css",
37
37
  "./tailwind.css": "./tailwind.css",
38
38
  "./tokens.css": "./tokens.css",
39
39
  "./preset": "./tollerud-preset.js",
40
- "./tollerud-logo.svg": "./tollerud-logo.svg",
41
- "./tollerud-avatar.svg": "./tollerud-avatar.svg",
42
- "./tollerud-avatar.png": "./tollerud-avatar.png",
43
- "./tollerud-avatar-full.svg": "./tollerud-avatar-full.svg",
44
- "./tollerud-avatar-full.png": "./tollerud-avatar-full.png",
45
- "./registry.json": "./registry.json",
40
+ "./brand/tollerud-logo.svg": "./brand/tollerud-logo.svg",
41
+ "./brand/tollerud-avatar.svg": "./brand/tollerud-avatar.svg",
42
+ "./brand/tollerud-avatar.png": "./brand/tollerud-avatar.png",
43
+ "./brand/tollerud-avatar-full.svg": "./brand/tollerud-avatar-full.svg",
44
+ "./brand/tollerud-avatar-full.png": "./brand/tollerud-avatar-full.png",
46
45
  "./*": {
47
46
  "import": {
48
47
  "types": "./dist/*.d.ts",
@@ -54,21 +53,14 @@
54
53
  "dist",
55
54
  "globals.css",
56
55
  "globals-v3.css",
57
- "globals-v4.css",
58
56
  "globals-layers.css",
59
57
  "tailwind.css",
60
58
  "tokens.css",
61
59
  "tollerud-preset.js",
62
- "registry.json",
63
- "components.json",
64
60
  "GETTING_STARTED.md",
65
61
  "COMPONENTS.md",
66
62
  "CHANGELOG.md",
67
- "tollerud-logo.svg",
68
- "tollerud-avatar.svg",
69
- "tollerud-avatar.png",
70
- "tollerud-avatar-full.svg",
71
- "tollerud-avatar-full.png",
63
+ "brand",
72
64
  "AGENTS.md",
73
65
  "SKILL.md"
74
66
  ],
@@ -83,19 +75,20 @@
83
75
  "test:subpath": "node scripts/verify-subpath-exports.mjs",
84
76
  "test:drift": "node scripts/verify-registry-drift.mjs",
85
77
  "test:consumer": "node scripts/test-consumer.mjs",
78
+ "sync:footer": "node scripts/sync-footer-package.mjs",
79
+ "verify:footer-sync": "node scripts/verify-footer-sync.mjs",
86
80
  "test:package": "node scripts/test-package.mjs",
87
81
  "test:size": "node scripts/test-size.mjs",
88
82
  "sync:registry": "node scripts/sync-registry-version.mjs",
89
83
  "changelog:draft": "node scripts/changelog-draft.mjs",
90
84
  "changeset": "changeset",
91
- "version:release": "changeset version && npm run sync:registry",
85
+ "version:release": "changeset version && npm run sync:registry && npm run sync:footer",
92
86
  "docs:props": "node scripts/generate-props.mjs",
93
87
  "test:props": "node scripts/verify-props-drift.mjs",
94
- "validate": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run build:docs && npm run test:consumer",
88
+ "validate": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run verify:footer-sync && npm run build:docs && npm run test:consumer",
95
89
  "prepublishOnly": "npm run sync:registry && npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props",
96
90
  "build:docs": "node scripts/build-docs.mjs",
97
- "preview:docs": "npx --yes serve _site -l 4173",
98
- "preview": "open preview.html"
91
+ "preview:docs": "npx --yes serve _site -l 4173"
99
92
  },
100
93
  "peerDependencies": {
101
94
  "@paper-design/shaders-react": "^0.0.76",
@@ -129,7 +122,7 @@
129
122
  "@radix-ui/react-dropdown-menu": "^2.1.17",
130
123
  "@radix-ui/react-progress": "^1.1.9",
131
124
  "@radix-ui/react-slot": "^1.2.5",
132
- "@radix-ui/react-tabs": "^1.1.13",
125
+ "@radix-ui/react-tabs": "^1.1.14",
133
126
  "@radix-ui/react-tooltip": "^1.2.9",
134
127
  "@eslint/js": "^9.39.4",
135
128
  "@playwright/test": "^1.60.0",
package/components.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "$schema": "https://ui.shadcn.com/schema.json",
3
- "name": "Tollerud User Interface",
4
- "style": "default",
5
- "rsc": true,
6
- "tsx": true,
7
- "tailwind": {
8
- "config": "tailwind.config.ts",
9
- "css": "globals.css",
10
- "baseColor": "stone",
11
- "cssVariables": true,
12
- "prefix": ""
13
- },
14
- "aliases": {
15
- "components": "@/components/ui",
16
- "utils": "@/lib/utils"
17
- }
18
- }
package/globals-v4.css DELETED
@@ -1,2 +0,0 @@
1
- /* @tollerud/ui/globals-v4.css — alias for globals.css (Tailwind v4). Prefer globals.css. */
2
- @import "./globals.css";