@nurix/etna 0.18.3 → 0.18.4

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "fingerprint": "4bbc31742cc4",
2
+ "fingerprint": "5be7cfbb369e",
3
3
  "harnesses": {
4
4
  "code": {
5
5
  "plugin": "code",
@@ -8,5 +8,5 @@
8
8
  ".prettierignore",
9
9
  ".vscode/settings.json"
10
10
  ],
11
- "digest": "0c459bd1301c"
11
+ "digest": "e0a34e10d625"
12
12
  }
@@ -10,51 +10,53 @@
10
10
 
11
11
  No alternatives. Just use these.
12
12
 
13
- | Package | Version | Use | Don't use |
14
- | --- | --- | --- | --- |
15
- | react | ^19.2.3 | UI components | - |
16
- | vite | ^8.0.0 | Build tool, dev server | webpack, CRA |
17
- | tailwindcss | ^4.1.18 | Styling | styled-components |
18
- | @vitejs/plugin-react-swc | ^4.2.2 | JSX compilation | @vitejs/plugin-react |
19
- | react-router-dom | ^7.11.0 | Routing | - |
20
- | @reduxjs/toolkit | ^2.11.2 | State management | zustand, jotai |
21
- | react-redux | ^9.2.0 | Redux React bindings | - |
22
- | axios | ^1.13.2 | HTTP requests | fetch |
23
- | date-fns | ^4.1.0 | Date formatting | moment, dayjs |
24
- | @dnd-kit/core | ^6.3.1 | Drag and drop | react-beautiful-dnd |
25
- | motion | ^12.23.26 | Animations | react-spring |
26
- | sonner | ^2.0.7 | Toast notifications | react-toastify |
27
- | react-window | ^2.2.3 | List virtualization | react-virtualized |
28
- | nanoid | ^5.1.6 | ID generation | uuid |
29
- | express | ^5.2.1 | HTTP server | fastify, koa |
30
- | drizzle-orm | latest | Database ORM | prisma, sequelize, typeorm |
31
- | drizzle-kit | latest | Schema tooling | - |
32
- | zod | ^4.2.1 | Schema validation | yup, joi |
33
- | jose | ^6.1.3 | JWT handling | jsonwebtoken |
34
- | microdiff | ^1.5.0 | JSON object diffing | deep-diff, just-diff |
35
- | react18-json-view | ^0.2.9 | JSON tree view | react-json-view |
36
- | @tiptap/react | ^3.11.1 | Rich text editor | slate, quill, draft-js |
37
- | shiki | ^3.22.0 | Syntax highlighting | prism, highlight.js |
38
- | lucide-react | ^0.562.0 | Icons | react-icons, heroicons |
39
- | @pdfme/generator | ^5.5.8 | PDF generation | jspdf, pdfkit |
40
- | cmdk | ^1.1.1 | Command palette | kbar, ninja-keys |
41
- | @monaco-editor/react | ^4.7.0 | Code editor | codemirror, ace |
42
- | localforage | ^1.10.0 | Client-side storage | idb, dexie |
43
- | react-markdown | ^10.1.0 | Markdown rendering | marked, markdown-it |
44
- | fast-deep-equal | ^3.1.3 | Deep equality checks | lodash.isEqual |
45
- | @ngneat/falso | latest | Fake data generation | @faker-js/faker, chance |
46
- | pino | ^10.1.0 | Logging | winston |
13
+ | Package | Version | Use | Don't use |
14
+ | ------------------------ | --------- | ---------------------- | -------------------------- |
15
+ | react | ^19.2.3 | UI components | - |
16
+ | vite | ^8.0.0 | Build tool, dev server | webpack, CRA |
17
+ | tailwindcss | ^4.1.18 | Styling | styled-components |
18
+ | @vitejs/plugin-react-swc | ^4.2.2 | JSX compilation | @vitejs/plugin-react |
19
+ | react-router-dom | ^7.11.0 | Routing | - |
20
+ | @reduxjs/toolkit | ^2.11.2 | State management | zustand, jotai |
21
+ | react-redux | ^9.2.0 | Redux React bindings | - |
22
+ | axios | ^1.13.2 | HTTP requests | fetch |
23
+ | date-fns | ^4.1.0 | Date formatting | moment, dayjs |
24
+ | @dnd-kit/core | ^6.3.1 | Drag and drop | react-beautiful-dnd |
25
+ | motion | ^12.23.26 | Animations | react-spring |
26
+ | sonner | ^2.0.7 | Toast notifications | react-toastify |
27
+ | react-window | ^2.2.3 | List virtualization | react-virtualized |
28
+ | nanoid | ^5.1.6 | ID generation | uuid |
29
+ | express | ^5.2.1 | HTTP server | fastify, koa |
30
+ | drizzle-orm | latest | Database ORM | prisma, sequelize, typeorm |
31
+ | drizzle-kit | latest | Schema tooling | - |
32
+ | zod | ^4.2.1 | Schema validation | yup, joi |
33
+ | jose | ^6.1.3 | JWT handling | jsonwebtoken |
34
+ | microdiff | ^1.5.0 | JSON object diffing | deep-diff, just-diff |
35
+ | react18-json-view | ^0.2.9 | JSON tree view | react-json-view |
36
+ | @tiptap/react | ^3.11.1 | Rich text editor | slate, quill, draft-js |
37
+ | shiki | ^3.22.0 | Syntax highlighting | prism, highlight.js |
38
+ | lucide-react | ^0.562.0 | Icons | react-icons, heroicons |
39
+ | @pdfme/generator | ^5.5.8 | PDF generation | jspdf, pdfkit |
40
+ | cmdk | ^1.1.1 | Command palette | kbar, ninja-keys |
41
+ | @monaco-editor/react | ^4.7.0 | Code editor | codemirror, ace |
42
+ | localforage | ^1.10.0 | Client-side storage | idb, dexie |
43
+ | react-markdown | ^10.1.0 | Markdown rendering | marked, markdown-it |
44
+ | fast-deep-equal | ^3.1.3 | Deep equality checks | lodash.isEqual |
45
+ | @ngneat/falso | latest | Fake data generation | @faker-js/faker, chance |
46
+ | pino | ^10.1.0 | Logging | winston |
47
47
 
48
48
  ## Frontend
49
49
 
50
50
  Tailwind v4 + shadcn-based UI; conventions below.
51
51
 
52
+ - **Build every UI through the `frontend-design` skill** — route the brief through it instead of hand-rolling layouts; it owns the archetype, personality tokens, and `@nurix/components` wiring.
53
+ - **Light mode is the default** — design for the light theme as the default; dark mode is opt-in, never the default.
52
54
  - **@nurix/components** — the UI component library (linked, pre-built); import by subpath, e.g. `@nurix/components/button`.
53
55
  - No components.json / shadcn CLI scaffold (.tsx, not .jsx) — consume the prebuilt library; never `npx shadcn add`.
54
56
  - Vite: `@tailwindcss/vite` + `@vitejs/plugin-react-swc`. Pin react / react-dom / react/jsx-runtime / react/jsx-dev-runtime to the app's single copy via `resolve.alias` (linked @nurix/\* ship nested react — keep one hook dispatcher).
55
57
  - Tailwind v4, CSS-only (no tailwind.config.js, no PostCSS): styling runs through the `@tailwindcss/vite` plugin.
56
58
  - CSS entry `globals.css`, imports in order — `@import "./personality.css"` (token source) → `@import "tailwindcss"` → the library's `styles.css` — then `@theme inline {…}` mapping vars to tokens.
57
- - Tokens: CSS vars in `:root, :root[data-theme="light"]` + the archetype selector `[data-style="…"]` (personality.css), consumed as semantic Tailwind tokens (bg-card, text-foreground). Honor the archetype's radius/theme decisions (e.g. re-assert `--radius-*` to 0 for a flat archetype; add `@custom-variant dark` only if the project supports dark mode). The library bundles class-variance-authority, clsx, tailwind-merge.
59
+ - Tokens: CSS vars in `:root, :root[data-theme="light"]` + the archetype selector `[data-style="…"]` (personality.css), consumed as semantic Tailwind tokens (bg-card, text-foreground). Honor the archetype's radius/theme decisions (e.g. re-assert `--radius-*` to 0 for a flat archetype; add `@custom-variant dark` only if the project opts into dark mode, and keep light as the default). The library bundles class-variance-authority, clsx, tailwind-merge.
58
60
  - Plus general styling rules (spacing in 2/4/6/8, object-cover, truncate, motion, color tokens — never hardcoded hex in components).
59
61
 
60
62
  ## Express 5.x
@@ -62,7 +64,7 @@ Tailwind v4 + shadcn-based UI; conventions below.
62
64
  ```javascript
63
65
  app.use(cors({ origin: process.env.FRONTEND_URL }));
64
66
  app.use(compression());
65
- app.use(express.json({ limit: "10mb" }));
67
+ app.use(express.json({ limit: '10mb' }));
66
68
  app.use(rateLimit({ windowMs: 15 * 60 * 1000, max: 100 }));
67
69
  ```
68
70
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/etna",
3
- "version": "0.18.3",
3
+ "version": "0.18.4",
4
4
  "description": "Bootstrap a project with a Nurix harness — copies the harness's CLAUDE.md, skills, agents, rules, and hooks directly into the project from a bundled payload (no marketplace fetch, no network).",
5
5
  "type": "module",
6
6
  "bin": {