@montytools/cli 0.5.6 → 0.5.8

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/lib/styleLint.mjs CHANGED
@@ -109,9 +109,15 @@ function* sourceFiles(dir, base = dir) {
109
109
  const p = join(dir, entry.name);
110
110
  const rel = relative(base, p);
111
111
  if (entry.isDirectory()) {
112
- // The vendored kit is template/registry-owned — its internals may
113
- // legitimately carry classes agents must not write.
114
- if (rel === join("components", "ui") || entry.name === "node_modules") continue;
112
+ // Vendored zones are template/registry-owned — their internals may
113
+ // legitimately carry classes agents must not write: the shadcn kit
114
+ // (components/ui) and the blessed component registries.
115
+ if (
116
+ rel === join("components", "ui") ||
117
+ rel === join("components", "kibo-ui") ||
118
+ rel === join("components", "diceui") ||
119
+ entry.name === "node_modules"
120
+ ) continue;
115
121
  yield* sourceFiles(p, base);
116
122
  } else if (/\.(?:tsx|jsx|ts)$/.test(entry.name)) {
117
123
  if (SKIP_FILES.has(entry.name) || entry.name.endsWith(".gen.ts")) continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@montytools/cli",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/TomasMonty/monty-v2.git",
@@ -82,6 +82,19 @@ Monty is dark-only; the tokens ship the shell palette (#101112 ground) and
82
82
  retheme, never hand-pick a dark color, and verify your page against the
83
83
  shell (`/apps/<slug>/…`), not the bare dev port.
84
84
 
85
+ ## Records: two shapes, always
86
+
87
+ People already know these two representations — never invent a third:
88
+
89
+ - **ONE record previews in the native popup** — `RecordProfile` from
90
+ `@montytools/sdk/react` (a `RecordPage` row opens it automatically; the
91
+ shell's own record pages open the same modal). Never a side drawer, never
92
+ a hand-built dialog.
93
+ - **MANY records — lists and one-to-many relations — render as columned
94
+ tables**, with the same columns the platform's record pages show
95
+ (`RecordPage`, or the `RecordTable*` parts). Never card lists, never
96
+ title-and-subtitle rows.
97
+
85
98
  ## Page anatomy
86
99
 
87
100
  Every page opens with the platform chrome from `@montytools/sdk/ui` — the
@@ -165,7 +178,8 @@ day-selector columns, status bars, top-deals table) and
165
178
  and avatars is the one exception) — surfaces and controls are stock
166
179
  components, sharp by policy.
167
180
  2. No text class outside the six ladder styles; no arbitrary values
168
- (`text-[…]`, `bg-[#…]`, `rounded-[…]`, `shadow-[…]`).
181
+ (`text-[…]`, `bg-[#…]`, `rounded-[…]`, `shadow-[…]`). `monty style`
182
+ verifies this — `monty save` refuses what it flags.
169
183
  3. No rounded corners on any chart mark; every bar/column sits on an axis.
170
184
  4. Dark: the page blends into the shell with no light seams.
171
185
  5. Values in tabular figures; status as dot + muted text, never a pill.
@@ -52,7 +52,8 @@ logic.** Everything below is the complete contract.
52
52
  for the next agent that fills them in (`description` on the field spec;
53
53
  enum options say WHEN they apply, not what the word means).
54
54
  5. **You are not done until the work is saved.** After every meaningful
55
- change verified in dev, run `monty save "<what changed>"` — it builds,
55
+ change verified in dev, run `monty save "<what changed>"` — it style-
56
+ lints (token vocabulary only — `monty style` checks on demand), builds,
56
57
  typechecks, and pushes the working copy to the cloud copy, like
57
58
  `git push main`. Unsaved work exists only on this machine.
58
59
 
@@ -213,8 +214,15 @@ Rules that matter:
213
214
  mode strips) and the Lyra table classes `SURFACE`/`THEAD`/`TH`/`ROW`/`CHIP`
214
215
  for record-like tables (`<div className={SURFACE}><table>…`), identical to
215
216
  the app's Configuration surfaces.
216
- - **Extend records before rebuilding them.** For a custom page that is still
217
- one table, use `RecordPage` from `@montytools/sdk/react`. Add behavior with
217
+ - **Extend records before rebuilding them records have exactly two
218
+ shapes.** ONE record previews in the native popup: `RecordProfile` from
219
+ `@montytools/sdk/react` (a `RecordPage` row opens it automatically) —
220
+ every field plus one related tab per table that refs this one, derived
221
+ from the schema with zero configuration; never a side drawer, never a
222
+ hand-built dialog. MANY records — lists and one-to-many relations —
223
+ render as columned tables with the platform's own columns (`RecordPage` /
224
+ the `RecordTable*` parts); never card lists. For a custom page that is
225
+ still one table, use `RecordPage`. Add behavior with
218
226
  its typed `headerActions`, `rowActions`, `selectionActions`, and
219
227
  `recordActions` callbacks. Use `RecordActionButton` and the lower-level
220
228
  `RecordPage*`/`RecordTable*` components from `@montytools/sdk/ui` when you
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@fontsource-variable/inter": "^5.3.0",
13
- "@montytools/sdk": "^0.2.6",
13
+ "@montytools/sdk": "^0.2.9",
14
14
  "@tanstack/react-router": "1.170.17",
15
15
  "class-variance-authority": "^0.7.1",
16
16
  "clsx": "^2.1.1",