@loworbitstudio/visor-theme-engine 0.17.1 → 0.19.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/adapters/index.d.ts +16 -2
- package/dist/adapters/index.js +85 -3
- package/dist/{chunk-BUWBBUFG.js → chunk-32DC5DAR.js} +490 -0
- package/dist/index.d.ts +141 -2
- package/dist/index.js +160 -3
- package/dist/{types-Cvm7vFwe.d.ts → types-DF5StphJ.d.ts} +164 -1
- package/package.json +1 -1
- package/src/visor-theme.schema.json +133 -0
|
@@ -451,6 +451,125 @@
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
},
|
|
454
|
+
"components": {
|
|
455
|
+
"type": "object",
|
|
456
|
+
"description": "Component-scoped theme bindings for the admin-UI families (VI-625). Keyed by family, then by token key; the value is a string (both modes) or { light, dark }. Every token falls back to its Tier-1 expression, so omitting this block renders exactly as before. Key names are validated against the contract in component-tokens.ts.",
|
|
457
|
+
"additionalProperties": false,
|
|
458
|
+
"properties": {
|
|
459
|
+
"table": {
|
|
460
|
+
"type": "object",
|
|
461
|
+
"description": "Table head, row and cell treatment. The retro measured the same header cell rendered four ways across one admin app; binding this family pins it once. Keys: font-size, text-color, head-height, head-padding-x, head-font-family, head-font-size, head-font-weight, head-letter-spacing, head-text-transform, head-color, head-bg, row-border, row-hover-bg, row-selected-bg, cell-padding, cell-font-size, cell-color, cell-bg, cell-border-top, footer-bg, caption-color.",
|
|
462
|
+
"additionalProperties": {
|
|
463
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
"data-table": {
|
|
467
|
+
"type": "object",
|
|
468
|
+
"description": "The admin-ui Tier-2 data-table surface stack (D3). Shared between the Table primitive and the DataTable shell so a list page and its table read as one surface. Keys: header-bg, row-bg, container-radius, container-shadow, row-py, cell-px, header-font-size.",
|
|
469
|
+
"additionalProperties": {
|
|
470
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"chip": {
|
|
474
|
+
"type": "object",
|
|
475
|
+
"description": "Chip / filter-pill treatment. The retro found the same mono status chip at 8.5 / 9 / 9.5 / 10 / 11px with tracking .03–.14em across nine implementations; this family is the single dial. Keys: radius, border, bg, text-color, font-family, font-weight, letter-spacing, text-transform, sm-height, sm-padding-x, sm-font-size, md-height, md-padding-x, md-font-size, lg-height, lg-padding-x, lg-font-size, selected-bg, selected-border-color, selected-text-color.",
|
|
476
|
+
"additionalProperties": {
|
|
477
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"badge": {
|
|
481
|
+
"type": "object",
|
|
482
|
+
"description": "Badge treatment — the D3 Tier-2 `--badge-text-transform` / `-letter-spacing` / `-font-size` / `-font-weight` set, promoted from the admin-ui audit to a bindable contract. Keys: radius, border, font-family, font-weight, text-transform, letter-spacing, font-size, md-padding, md-gap.",
|
|
483
|
+
"additionalProperties": {
|
|
484
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
"status-badge": {
|
|
488
|
+
"type": "object",
|
|
489
|
+
"description": "Status-badge indicator dot and the mono readout label. Chrome is inherited from the Badge family. Keys: dot-size, dot-radius, mono-font-family, mono-font-size, mono-letter-spacing.",
|
|
490
|
+
"additionalProperties": {
|
|
491
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
492
|
+
}
|
|
493
|
+
},
|
|
494
|
+
"filter-bar": {
|
|
495
|
+
"type": "object",
|
|
496
|
+
"description": "The operator's named case: \"the filter bar above the table in many admin pages was pretty different from one to the next; that should be streamlined.\" Keys: bg, border, radius, padding, gap, text-color, dense-padding, dense-gap, control-radius, results-font-size, results-color.",
|
|
497
|
+
"additionalProperties": {
|
|
498
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
"page-header": {
|
|
502
|
+
"type": "object",
|
|
503
|
+
"description": "Page-header lockup. The retro found the page title rendered five ways across one app. Keys: gap, text-color, leading-gap, eyebrow-font-size, eyebrow-font-weight, eyebrow-letter-spacing, eyebrow-text-transform, eyebrow-color, title-family, title-size, title-leading, title-font-size, title-font-weight, title-letter-spacing, title-color, description-font-size, description-color, actions-gap.",
|
|
504
|
+
"additionalProperties": {
|
|
505
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
"empty-state": {
|
|
509
|
+
"type": "object",
|
|
510
|
+
"description": "Empty-state placard — surface, icon chip and copy scale. Keys: radius, text-color, gap, padding, bg, border, icon-size, icon-radius, icon-bg, icon-color, heading-font-family, heading-font-size, heading-font-weight, heading-color, description-font-size, description-color, actions-gap.",
|
|
511
|
+
"additionalProperties": {
|
|
512
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
"banner": {
|
|
516
|
+
"type": "object",
|
|
517
|
+
"description": "Full-width notice bar. The retro found six separate banner systems across ~180 instances in one app; binding this family collapses them to one. Keys: padding, gap, font-size, radius, border-width, shadow, title-font-weight, description-font-size, info-bg, info-text-color, info-border-color, warning-bg, warning-text-color, warning-border-color, error-bg, error-text-color, error-border-color, success-bg, success-text-color, success-border-color.",
|
|
518
|
+
"additionalProperties": {
|
|
519
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
"sidebar": {
|
|
523
|
+
"type": "object",
|
|
524
|
+
"description": "Sidebar chrome and nav-item treatment. The palette roles (`bg`, `text`, `border`, `accent-*`) already ship defaults from visor-core's `visor-semantic` layer and are read bare; the structural roles below are new in VI-625. Keys: bg, text, text-muted, border, accent-bg, accent-text, header-padding, footer-padding, content-padding, menu-gap, group-label-height, group-label-font-size, group-label-font-weight, group-label-letter-spacing, group-label-text-transform, item-radius, item-gap, item-font-size, item-font-weight, item-letter-spacing, item-text-transform, item-height, item-padding, item-active-font-weight.",
|
|
525
|
+
"additionalProperties": {
|
|
526
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"tabs": {
|
|
530
|
+
"type": "object",
|
|
531
|
+
"description": "Tab rail and trigger treatment, for both the segmented (`default`) and underlined (`line`) variants. Keys: list-radius, list-height, list-padding, list-color, list-bg, line-border-bottom, trigger-radius, trigger-padding, trigger-font-size, trigger-font-weight, trigger-letter-spacing, trigger-text-transform, trigger-color, trigger-active-bg, trigger-active-color, trigger-active-shadow, indicator-height, indicator-color.",
|
|
532
|
+
"additionalProperties": {
|
|
533
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"skeleton": {
|
|
537
|
+
"type": "object",
|
|
538
|
+
"description": "Loading-placeholder shimmer and the content-shape geometry the admin list/table/detail skeletons use. Keys: from, to, radius, duration, logo-width, logo-height, pill-width, pill-height, line-h1-height, line-heading-height, line-body-height, avatar-size, avatar-lg-size, badge-width, badge-height, row-gap, row-padding, row-border-bottom.",
|
|
539
|
+
"additionalProperties": {
|
|
540
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"spinner": {
|
|
544
|
+
"type": "object",
|
|
545
|
+
"description": "Inline loading ring — track, leading edge, per-size geometry and cycle length. Keys: track-color, edge-color, primary-edge-color, radius, duration, xs-size, xs-border-width, sm-size, sm-border-width, md-size, md-border-width.",
|
|
546
|
+
"additionalProperties": {
|
|
547
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
"checkbox": {
|
|
551
|
+
"type": "object",
|
|
552
|
+
"description": "Control sizing — the D3 Tier-2 `--checkbox-size` / `-radius` / `-bg` / `-border` set, promoted from the admin-ui audit to a bindable contract. Keys: size, radius, bg, border, bg-checked, border-checked.",
|
|
553
|
+
"additionalProperties": {
|
|
554
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
"surface": {
|
|
558
|
+
"type": "object",
|
|
559
|
+
"description": "The D3 Tier-2 surface-scale extremes. `elev` is the elevated control tier the chip family already reads; `screen` is the deepest chrome tier consumed by admin pattern shells (`design-prototypes/admin-ui/tokens.css`) rather than by a Visor component. Keys: elev, screen.",
|
|
560
|
+
"additionalProperties": {
|
|
561
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"admin-ui": {
|
|
565
|
+
"type": "object",
|
|
566
|
+
"description": "Structural roles the admin-ui pattern owns. `marquee-family` is the display face for KPI hero figures and marquee page titles — the role the admin-ui portability audit named as the one piece of ENTR brand coupling a new theme must rebind. Keys: marquee-family.",
|
|
567
|
+
"additionalProperties": {
|
|
568
|
+
"$ref": "#/$defs/componentTokenBinding"
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
},
|
|
454
573
|
"migrate": {
|
|
455
574
|
"type": "object",
|
|
456
575
|
"description": "Migration metadata consumed by `visor migrate` commands. Does not affect CSS generation or theme application.",
|
|
@@ -465,6 +584,20 @@
|
|
|
465
584
|
}
|
|
466
585
|
},
|
|
467
586
|
"$defs": {
|
|
587
|
+
"componentTokenBinding": {
|
|
588
|
+
"description": "A component-token binding: one string for both modes, or per-mode values.",
|
|
589
|
+
"oneOf": [
|
|
590
|
+
{ "type": "string" },
|
|
591
|
+
{
|
|
592
|
+
"type": "object",
|
|
593
|
+
"additionalProperties": false,
|
|
594
|
+
"properties": {
|
|
595
|
+
"light": { "type": "string" },
|
|
596
|
+
"dark": { "type": "string" }
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
]
|
|
600
|
+
},
|
|
468
601
|
"cssColor": {
|
|
469
602
|
"type": "string",
|
|
470
603
|
"description": "CSS color value. Accepts hex (#RGB, #RRGGBB, #RRGGBBAA), rgb()/rgba(), hsl()/hsla(), or oklch() formats.",
|