@godxjp/ui 19.3.1 → 19.4.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/dist/components/data-display/badge.d.ts +9 -1
- package/dist/components/data-display/badge.js +3 -2
- package/dist/components/data-display/index.d.ts +2 -0
- package/dist/components/data-display/index.js +2 -0
- package/dist/components/data-display/popover.d.ts +13 -1
- package/dist/components/data-display/popover.js +3 -1
- package/dist/components/data-display/table.d.ts +19 -2
- package/dist/components/data-display/table.js +4 -1
- package/dist/components/data-display/timeline-grid.d.ts +18 -0
- package/dist/components/data-display/timeline-grid.js +222 -0
- package/dist/components/data-entry/cascader.js +4 -6
- package/dist/components/data-entry/checkbox.js +1 -1
- package/dist/components/data-entry/search-select.js +5 -7
- package/dist/components/data-entry/select.js +32 -28
- package/dist/components/data-entry/tree-select.js +4 -6
- package/dist/components/general/inert-background.d.ts +5 -0
- package/dist/components/general/inert-background.js +48 -0
- package/dist/components/layout/auth-shell.d.ts +4 -2
- package/dist/components/layout/auth-shell.js +7 -1
- package/dist/components/layout/centered-shell.d.ts +2 -2
- package/dist/components/layout/flex.d.ts +1 -1
- package/dist/components/layout/flex.js +2 -1
- package/dist/components/layout/index.d.ts +3 -0
- package/dist/components/layout/index.js +2 -0
- package/dist/components/layout/mobile-shell.d.ts +21 -0
- package/dist/components/layout/mobile-shell.js +43 -0
- package/dist/components/layout/sidebar-link.d.ts +1 -1
- package/dist/components/navigation/context-menu.js +13 -9
- package/dist/components/navigation/dropdown-menu.js +17 -13
- package/dist/inertia/index.d.ts +1 -1
- package/dist/lib/variants.d.ts +3 -3
- package/dist/lib/variants.js +1 -0
- package/dist/props/components/data-display.prop.d.ts +65 -0
- package/dist/props/components/data-entry.prop.d.ts +1 -1
- package/dist/props/components/layout.prop.d.ts +93 -6
- package/dist/props/registry.d.ts +109 -2
- package/dist/props/registry.js +143 -0
- package/dist/props/vocabulary/data.prop.d.ts +6 -0
- package/dist/props/vocabulary/index.d.ts +3 -3
- package/dist/props/vocabulary/layout.prop.d.ts +17 -2
- package/dist/props/vocabulary/shared.prop.d.ts +7 -0
- package/dist/styles/control.css +18 -1
- package/dist/styles/data-display-layout.css +167 -0
- package/dist/styles/layout.css +7 -0
- package/dist/styles/shell-layout.css +148 -0
- package/dist/styles/table-layout.css +23 -4
- package/dist/tokens/components/control.css +1 -0
- package/dist/tokens/components/data-display.css +20 -0
- package/dist/tokens/components/shell.css +22 -0
- package/dist/tokens/components/table.css +2 -0
- package/docs/SPACING.md +19 -6
- package/docs/charts/compact-bar-trend.tsx +5 -6
- package/docs/data-display/avatar.tsx +7 -9
- package/docs/data-display/badge.tsx +1 -1
- package/docs/data-display/card/index.tsx +6 -4
- package/docs/data-display/data-table/examples/approval-queue.tsx +1 -1
- package/docs/data-display/data-table/index.tsx +1 -1
- package/docs/data-display/permission-matrix.tsx +2 -2
- package/docs/data-display/scroll-area.tsx +1 -1
- package/docs/data-display/table.tsx +1 -1
- package/docs/data-display/timeline-grid.tsx +119 -0
- package/docs/data-entry/branch-scope-picker.tsx +1 -1
- package/docs/data-entry/input-otp.tsx +1 -1
- package/docs/data-entry/textarea.tsx +1 -1
- package/docs/data-entry/toggle-count.tsx +1 -1
- package/docs/feedback/alert.tsx +1 -1
- package/docs/feedback/banner.tsx +1 -1
- package/docs/foundation/email-tokens.tsx +1 -1
- package/docs/general/activity.tsx +1 -1
- package/docs/layout/auth-account-summary.tsx +1 -1
- package/docs/layout/auth-recovery/examples/mobile-390.tsx +1 -1
- package/docs/layout/auth-recovery/examples/password-recovery.tsx +0 -2
- package/docs/layout/auth-shell-context.tsx +1 -1
- package/docs/layout/auth-shell-device.tsx +2 -2
- package/docs/layout/auth-shell-registration.tsx +1 -1
- package/docs/layout/auth-shell.tsx +1 -1
- package/docs/layout/master-detail.tsx +2 -2
- package/docs/layout/mobile-shell.tsx +101 -0
- package/docs/layout/page-container.tsx +6 -6
- package/docs/layout/responsive-grid.tsx +2 -2
- package/docs/layout/separator.tsx +2 -2
- package/docs/layout/service-role-panel.tsx +1 -1
- package/docs/layout/sidebar.tsx +6 -6
- package/docs/layout/split-pane.tsx +1 -1
- package/docs/layout/topbar.tsx +2 -8
- package/docs/navigation/filter-bar.tsx +2 -2
- package/docs/navigation/pagination.tsx +2 -2
- package/docs/navigation/steps.tsx +1 -1
- package/docs/navigation/tabs.tsx +1 -1
- package/docs/showcase/acme-portal.tsx +11 -12
- package/docs/showcase/acme-website.tsx +7 -7
- package/docs/showcase/case1-warehouse-dashboard.tsx +11 -12
- package/docs/showcase/case2-employee-me.tsx +10 -16
- package/docs/showcase/case4-login.tsx +144 -156
- package/docs/showcase/case5-shift-calendar.tsx +181 -280
- package/docs/showcase/case6-agency-handy.tsx +446 -443
- package/docs/showcase/futurelastic-web.tsx +9 -8
- package/docs/showcase/org-switcher.tsx +18 -11
- package/docs/showcase/permission-matrix.tsx +13 -13
- package/docs/showcase/public-landing.tsx +1 -1
- package/docs/showcase/settings-account-sections.tsx +2 -2
- package/docs/showcase/settings-security-mfa.tsx +3 -3
- package/docs/showcase/table-approval-queue.tsx +1 -1
- package/docs/showcase/table-bulk-actions.tsx +49 -52
- package/docs/showcase/table-conditional-format.tsx +1 -1
- package/docs/showcase/table-crud-list.tsx +1 -1
- package/docs/showcase/table-expandable-rows.tsx +101 -98
- package/docs/showcase/table-filter-chips.tsx +78 -66
- package/docs/showcase/table-footer-totals.tsx +23 -19
- package/docs/showcase/table-grouped-subtotals.tsx +7 -4
- package/docs/showcase/table-master-detail.tsx +12 -14
- package/docs/showcase/table-states.tsx +34 -29
- package/docs/showcase/table-sticky-columns.tsx +3 -2
- package/docs/showcase/table-tree-rows.tsx +22 -15
- package/docs/showcase/table-view-tabs.tsx +12 -14
- package/package.json +7 -6
|
@@ -191,10 +191,13 @@ function StateSection({
|
|
|
191
191
|
* the loading skeleton visibly preserves the table's column layout. */
|
|
192
192
|
function TableShell({
|
|
193
193
|
caption,
|
|
194
|
+
banner,
|
|
194
195
|
children,
|
|
195
196
|
}: {
|
|
196
197
|
caption: React.ReactNode;
|
|
197
|
-
|
|
198
|
+
/** Padded band between the header and the flush table body (an Alert). */
|
|
199
|
+
banner?: React.ReactNode;
|
|
200
|
+
children?: React.ReactNode;
|
|
198
201
|
}) {
|
|
199
202
|
return (
|
|
200
203
|
<Card>
|
|
@@ -206,7 +209,8 @@ function TableShell({
|
|
|
206
209
|
</Text>
|
|
207
210
|
</CardAction>
|
|
208
211
|
</CardHeader>
|
|
209
|
-
<CardContent
|
|
212
|
+
{banner ? <CardContent>{banner}</CardContent> : null}
|
|
213
|
+
{children ? <CardContent flush>{children}</CardContent> : null}
|
|
210
214
|
</Card>
|
|
211
215
|
);
|
|
212
216
|
}
|
|
@@ -288,8 +292,9 @@ export default function Demo() {
|
|
|
288
292
|
title="エラー"
|
|
289
293
|
note="エラーコード・リクエストID・再試行を明示する。"
|
|
290
294
|
>
|
|
291
|
-
<TableShell
|
|
292
|
-
|
|
295
|
+
<TableShell
|
|
296
|
+
caption="取得に失敗しました"
|
|
297
|
+
banner={
|
|
293
298
|
<Alert tone="destructive">
|
|
294
299
|
<AlertTitle>勤怠データを取得できませんでした</AlertTitle>
|
|
295
300
|
<AlertDescription>
|
|
@@ -307,8 +312,8 @@ export default function Demo() {
|
|
|
307
312
|
</Button>
|
|
308
313
|
</AlertActions>
|
|
309
314
|
</Alert>
|
|
310
|
-
|
|
311
|
-
|
|
315
|
+
}
|
|
316
|
+
/>
|
|
312
317
|
</StateSection>
|
|
313
318
|
|
|
314
319
|
{/* 4 ─ partial: some rows loaded, one segment failed / stale */}
|
|
@@ -317,29 +322,29 @@ export default function Demo() {
|
|
|
317
322
|
title="部分的"
|
|
318
323
|
note="一部のみ取得できた状態。失敗した区分だけを再取得できる。"
|
|
319
324
|
>
|
|
320
|
-
<TableShell
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
325
|
+
<TableShell
|
|
326
|
+
caption="4 / 5 部署を表示中"
|
|
327
|
+
banner={
|
|
328
|
+
<Alert tone="warning">
|
|
329
|
+
<AlertTitle>一部のデータを取得できませんでした</AlertTitle>
|
|
330
|
+
<AlertDescription>
|
|
331
|
+
「倉庫」部署の打刻が取得できなかったため、最新ではない可能性があります。
|
|
332
|
+
<br />
|
|
333
|
+
<Text tone="muted">
|
|
334
|
+
コード <code className="tabular-nums">ATTEND_PARTIAL_倉庫</code> ・ リクエストID{" "}
|
|
335
|
+
<code className="tabular-nums">req_7f3a91c0e8</code>
|
|
336
|
+
</Text>
|
|
337
|
+
</AlertDescription>
|
|
338
|
+
<AlertActions>
|
|
339
|
+
<Button variant="outline" size="sm">
|
|
340
|
+
<RefreshCw aria-hidden="true" />
|
|
341
|
+
倉庫を再取得
|
|
342
|
+
</Button>
|
|
343
|
+
</AlertActions>
|
|
344
|
+
</Alert>
|
|
345
|
+
}
|
|
346
|
+
>
|
|
347
|
+
<DataTable data={PARTIAL_ROWS} columns={COLUMNS} getRowId={(r) => r.id} />
|
|
343
348
|
</TableShell>
|
|
344
349
|
</StateSection>
|
|
345
350
|
|
|
@@ -241,12 +241,13 @@ export default function Demo() {
|
|
|
241
241
|
<TableHead className={`${PIN_LEFT} w-56 min-w-56`}>従業員</TableHead>
|
|
242
242
|
{DAYS.map((d) => (
|
|
243
243
|
<TableHead key={d.key} className="text-center">
|
|
244
|
-
|
|
244
|
+
{/* Weekday over its date reads as ONE label — no seam between the lines. */}
|
|
245
|
+
<Flex direction="col" gap="none" className="leading-tight">
|
|
245
246
|
<Text weight="medium">{d.label}</Text>
|
|
246
247
|
<Text size="2xs" tone="muted" tabular>
|
|
247
248
|
{d.date}
|
|
248
249
|
</Text>
|
|
249
|
-
</
|
|
250
|
+
</Flex>
|
|
250
251
|
</TableHead>
|
|
251
252
|
))}
|
|
252
253
|
<TableHead className="text-end tabular-nums">実働</TableHead>
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* row model ........ flatten an org tree to rows carrying { depth, hasChildren,
|
|
12
12
|
* expanded }, then derive `visibleRows` from the open set.
|
|
13
|
-
* tree column ...... ColumnDef.render
|
|
14
|
-
*
|
|
15
|
-
* (ghost icon-sm) that rotates 90° when
|
|
16
|
-
* ONLY on parent rows; leaves get an
|
|
13
|
+
* tree column ...... ColumnDef.render indents one --table-cell-indent-space-step
|
|
14
|
+
* per level (the token `<TableCell indent>` reads) + a twirl
|
|
15
|
+
* chevron Button (ghost icon-sm) that rotates 90° when
|
|
16
|
+
* expanded — rendered ONLY on parent rows; leaves get an
|
|
17
|
+
* aligning spacer.
|
|
17
18
|
* metrics .......... 出勤率 / 遅刻 / 残業 as tabular-nums columns; 承認状態 as Badge(tone).
|
|
18
19
|
* chrome ........... DataTable.Toolbar + DensityToggle + sticky header (built in).
|
|
19
20
|
*
|
|
@@ -242,9 +243,12 @@ const hours = new Intl.NumberFormat("ja-JP", {
|
|
|
242
243
|
});
|
|
243
244
|
|
|
244
245
|
// ── Tree name cell ───────────────────────────────────────────────────────────────
|
|
245
|
-
//
|
|
246
|
-
//
|
|
247
|
-
//
|
|
246
|
+
// One `--table-cell-indent-space-step` per level — the SAME token `<TableCell indent>`
|
|
247
|
+
// reads, so the tree and a hand-authored table indent on one contract and a service
|
|
248
|
+
// retunes the step in one place. DataTable owns the `<td>` here (the column `render`
|
|
249
|
+
// receives no cell), so the level is applied to the cell's content instead of the cell.
|
|
250
|
+
// Twirl chevron is rendered ONLY on parent rows; leaves get a spacer so names stay
|
|
251
|
+
// aligned at the same depth.
|
|
248
252
|
|
|
249
253
|
function TreeCell({
|
|
250
254
|
row,
|
|
@@ -256,9 +260,12 @@ function TreeCell({
|
|
|
256
260
|
onToggle: (id: string) => void;
|
|
257
261
|
}) {
|
|
258
262
|
return (
|
|
259
|
-
<
|
|
260
|
-
|
|
261
|
-
|
|
263
|
+
<Flex
|
|
264
|
+
align="center"
|
|
265
|
+
gap="xs"
|
|
266
|
+
style={{
|
|
267
|
+
paddingInlineStart: `calc(var(--table-cell-indent-space-step) * ${row.depth})`,
|
|
268
|
+
}}
|
|
262
269
|
>
|
|
263
270
|
{row.hasChildren ? (
|
|
264
271
|
<Button
|
|
@@ -284,15 +291,15 @@ function TreeCell({
|
|
|
284
291
|
className="inline-block size-[calc(var(--control-height)-0.5rem)] shrink-0"
|
|
285
292
|
/>
|
|
286
293
|
)}
|
|
287
|
-
<
|
|
294
|
+
<Flex align="center" gap="sm" className="min-w-0">
|
|
288
295
|
<Text weight={row.kind === "従業員" ? "regular" : "medium"} truncate>
|
|
289
296
|
{row.name}
|
|
290
297
|
</Text>
|
|
291
298
|
<Badge variant="outline" tone="neutral" className="shrink-0">
|
|
292
299
|
{row.kind}
|
|
293
300
|
</Badge>
|
|
294
|
-
</
|
|
295
|
-
</
|
|
301
|
+
</Flex>
|
|
302
|
+
</Flex>
|
|
296
303
|
);
|
|
297
304
|
}
|
|
298
305
|
|
|
@@ -391,7 +398,7 @@ function InteractiveTree() {
|
|
|
391
398
|
);
|
|
392
399
|
}
|
|
393
400
|
|
|
394
|
-
// ── Fully-expanded static tree (proves all depth levels + the
|
|
401
|
+
// ── Fully-expanded static tree (proves all depth levels + the per-level indent) ──
|
|
395
402
|
|
|
396
403
|
function ExpandedTree() {
|
|
397
404
|
const open = React.useMemo(() => allParentIds(TREE), []);
|
|
@@ -417,7 +424,7 @@ export default function Demo() {
|
|
|
417
424
|
return (
|
|
418
425
|
<PageContainer
|
|
419
426
|
title="ツリー行"
|
|
420
|
-
subtitle="階層行 (部署 → チーム → 従業員) ·
|
|
427
|
+
subtitle="階層行 (部署 → チーム → 従業員) · 階層ごとのインデント · 親行のみ開閉トグル · 勤怠ロールアップ"
|
|
421
428
|
density="compact"
|
|
422
429
|
>
|
|
423
430
|
<Flex direction="col" gap="lg">
|
|
@@ -367,22 +367,20 @@ const DOT_CLASS: Record<SavedView["dot"], string> = {
|
|
|
367
367
|
neutral: "bg-muted-foreground",
|
|
368
368
|
};
|
|
369
369
|
|
|
370
|
+
// TabsTrigger renders a <button>, whose content model is phrasing content only — so the row and
|
|
371
|
+
// the count chip take `as="span"`. Before Flex/Badge had that seam the only valid shape here was a
|
|
372
|
+
// raw `<span className="flex …">`, i.e. utility layout (gh#354).
|
|
370
373
|
function ViewTrigger({ view, count }: { view: SavedView; count: number }) {
|
|
371
374
|
return (
|
|
372
|
-
<span
|
|
375
|
+
<Flex as="span" align="center" gap="sm">
|
|
373
376
|
<span aria-hidden="true" className={`size-2 rounded-full ${DOT_CLASS[view.dot]}`} />
|
|
374
377
|
<span>{view.label}</span>
|
|
375
|
-
<
|
|
376
|
-
as="span"
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
className="bg-muted inline-flex min-w-5 items-center justify-center rounded-full px-1.5"
|
|
382
|
-
>
|
|
383
|
-
{count}
|
|
384
|
-
</Text>
|
|
385
|
-
</span>
|
|
378
|
+
<Badge as="span" tone="neutral" shape="pill">
|
|
379
|
+
<Text as="span" size="2xs" weight="medium" tabular>
|
|
380
|
+
{count}
|
|
381
|
+
</Text>
|
|
382
|
+
</Badge>
|
|
383
|
+
</Flex>
|
|
386
384
|
);
|
|
387
385
|
}
|
|
388
386
|
|
|
@@ -436,12 +434,12 @@ export default function Demo() {
|
|
|
436
434
|
<Flex direction="col" gap="md">
|
|
437
435
|
{/* Saved-view ribbon — controlled Tabs; switching swaps the preset below. */}
|
|
438
436
|
<Tabs value={view} onValueChange={(v) => setView(v as ViewId)}>
|
|
439
|
-
<TabsList variant="line" className="h-auto flex-wrap
|
|
437
|
+
<TabsList variant="line" className="h-auto w-full flex-wrap justify-start border-b">
|
|
440
438
|
{VIEWS.map((v) => (
|
|
441
439
|
<TabsTrigger
|
|
442
440
|
key={v.id}
|
|
443
441
|
value={v.id}
|
|
444
|
-
className="
|
|
442
|
+
className="rounded-[var(--tabs-trigger-line-radius)] px-[var(--tabs-trigger-line-padding-x)] py-[var(--tabs-trigger-line-padding-y)]"
|
|
445
443
|
>
|
|
446
444
|
<ViewTrigger view={v} count={counts[v.id]} />
|
|
447
445
|
</TabsTrigger>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@godxjp/ui",
|
|
3
|
-
"version": "19.
|
|
4
|
-
"godxUiMcp": "19.
|
|
3
|
+
"version": "19.4.0",
|
|
4
|
+
"godxUiMcp": "19.4.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -333,16 +333,17 @@
|
|
|
333
333
|
"check:frame-contracts": "pnpm check:component-api-manifest && pnpm audit:component-cases && pnpm check:frame-coverage && pnpm check:frame-coverage-ledger && pnpm check:screen-reader-evidence && pnpm check:data-entry-owner-source && pnpm check:display-runtime-evidence",
|
|
334
334
|
"check:final-touch-rtl": "node scripts/check-final-touch-rtl.mjs",
|
|
335
335
|
"check:frame-runtime": "pnpm check:data-entry-frame-runtime && pnpm check:data-entry-touch-aria && pnpm check:layout-nav-frames && pnpm check:provider-feedback-query-runtime && pnpm check:layout-nav-closure && pnpm check:final-touch-rtl && pnpm check:data-table-pagination-wrap && pnpm check:button-icon-xs",
|
|
336
|
-
"verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:no-external-assets && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:frame-coverage && pnpm test",
|
|
337
|
-
"verify:static": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm check:contrast && pnpm check:visual-audit && pnpm test",
|
|
338
|
-
"verify:ci": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm test",
|
|
339
|
-
"verify:ci:static": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:no-external-assets && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync",
|
|
336
|
+
"verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:no-external-assets && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-lockstep && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:frame-coverage && pnpm test",
|
|
337
|
+
"verify:static": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-lockstep && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm check:contrast && pnpm check:visual-audit && pnpm test",
|
|
338
|
+
"verify:ci": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-lockstep && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm test",
|
|
339
|
+
"verify:ci:static": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:no-external-assets && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-lockstep && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync",
|
|
340
340
|
"verify:browser": "pnpm check:contrast && pnpm check:visual-audit",
|
|
341
341
|
"verify:release": "pnpm verify:static && pnpm check:frame-contracts && pnpm check:frame-coverage && pnpm check:frame-axe",
|
|
342
342
|
"verify:publish-tree": "pnpm build && pnpm check:packed-public-contract && pnpm check:use-client && pnpm check:dist-tokens-resolve",
|
|
343
343
|
"check:release-plan": "node scripts/check-release-command-plan.mjs",
|
|
344
344
|
"check:packed-public-contract": "node scripts/check-packed-public-contract.mjs",
|
|
345
345
|
"check:mcp-pattern-imports": "node scripts/check-mcp-pattern-imports.mjs",
|
|
346
|
+
"check:mcp-lockstep": "node scripts/check-release-lockstep.mjs",
|
|
346
347
|
"check:mcp-sync": "node scripts/check-mcp-sync.mjs",
|
|
347
348
|
"check:mcp-catalog-coverage": "node scripts/check-mcp-catalog-coverage.mjs",
|
|
348
349
|
"check:mcp-orphans": "node scripts/check-mcp-orphans.mjs",
|