origam 2.18.15 → 2.18.17

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.
Files changed (42) hide show
  1. package/dist/src/assets/css/main.css +1 -1
  2. package/dist/src/assets/css/tokens/dark.css +374 -26
  3. package/dist/src/assets/css/tokens/light.css +187 -13
  4. package/dist/src/assets/scss/tokens/_dark.scss +374 -26
  5. package/dist/src/assets/scss/tokens/_light.scss +187 -13
  6. package/dist/src/components/Bracket/OrigamBracket.vue +15 -0
  7. package/dist/src/components/Bracket/OrigamBracketMatch.vue +22 -1
  8. package/dist/src/components/Btn/OrigamBtn.vue +39 -2
  9. package/dist/src/components/Btn/OrigamBtnGroup.vue +5 -0
  10. package/dist/src/components/Card/OrigamCard.vue +42 -35
  11. package/dist/src/components/Chart/OrigamChartAxis.vue +10 -0
  12. package/dist/src/components/Chart/OrigamChartBoxPlot.vue +3 -3
  13. package/dist/src/components/Chart/OrigamChartCandlestick.vue +2 -2
  14. package/dist/src/components/Chart/OrigamChartCartesian.vue +1 -1
  15. package/dist/src/components/DataTable/OrigamDataTable.vue +1 -1
  16. package/dist/src/components/DataTable/OrigamDataTableColumnCell.vue +3 -3
  17. package/dist/src/components/DataTable/OrigamDataTableGroupHeaderRow.vue +11 -4
  18. package/dist/src/components/DataTable/OrigamDataTableHeaderCell.vue +1 -1
  19. package/dist/src/components/DataTable/OrigamDataTableRow.vue +6 -1
  20. package/dist/src/components/DataTable/OrigamDataTableRows.vue +3 -3
  21. package/dist/src/components/Grid/OrigamGrid.vue +19 -0
  22. package/dist/src/components/List/OrigamListItem.vue +7 -0
  23. package/dist/src/components/List/OrigamListSubheader.vue +5 -0
  24. package/dist/src/composables/Commons/defaults.composable.d.ts +51 -0
  25. package/dist/src/composables/DataTable/headers.composable.d.ts +4 -4
  26. package/dist/src/consts/EmptyState/empty-state.const.d.ts +2 -16
  27. package/dist/src/interfaces/Commons/installed-theme.interface.cjs +1 -0
  28. package/dist/src/interfaces/Commons/installed-theme.interface.d.ts +26 -0
  29. package/dist/src/interfaces/Commons/installed-theme.interface.js +0 -0
  30. package/dist/src/interfaces/Commons/semantic-tree.interface.cjs +1 -0
  31. package/dist/src/interfaces/Commons/semantic-tree.interface.d.ts +30 -0
  32. package/dist/src/interfaces/Commons/semantic-tree.interface.js +0 -0
  33. package/dist/src/interfaces/Commons/theme.interface.d.ts +1 -1
  34. package/dist/src/interfaces/EmptyState/empty-state.interface.d.ts +13 -0
  35. package/dist/src/interfaces/index.cjs +22 -0
  36. package/dist/src/interfaces/index.d.ts +2 -0
  37. package/dist/src/interfaces/index.js +2 -0
  38. package/dist/src/types/Commons/installed-theme.type.d.ts +2 -27
  39. package/dist/src/types/Commons/semantic-tree.type.d.ts +0 -29
  40. package/dist/src/types/tokens.type.d.ts +1 -1
  41. package/dist/src/utils/Commons/apply-theme.util.d.ts +1 -1
  42. package/package.json +1 -1
@@ -139,6 +139,55 @@
139
139
  --origam-bracket-match--final---background-color: var(--origam-color__surface---raised);
140
140
  --origam-bracket-match--final---border-color: var(--origam-color__action--primary---bg);
141
141
  --origam-bracket-match--final---box-shadow: 0 2px 8px color-mix(in srgb, var(--origam-color__action--primary---bg) 24%, transparent);
142
+ /* Bracket — #592. Each value is the literal (or token reference) the
143
+ component SCSS already fell back to, so nothing moves on screen; what was
144
+ a component-local default becomes a real, per-mode, typed token channel.
145
+ DELIBERATELY ABSENT — the per-side border longhands
146
+ (---border-{top,right,bottom,left}-{width,color}, ---border-{block,inline}-width,
147
+ the four corner radii) and ---bracket-connector---stroke-color{,-winner}:
148
+ each falls back to the general knob declared here, and declaring a rung
149
+ would freeze that cascade at its root value. Measured in Chromium: setting
150
+ only ---border-width moves all four sides. See the notes at the read sites. */
151
+ --origam-bracket---background-color: transparent;
152
+ --origam-bracket---color: currentColor;
153
+ --origam-bracket-connector---stroke-dasharray: none;
154
+ --origam-bracket-connector---stroke-linecap: butt;
155
+ --origam-bracket-double---section-gap: 40px;
156
+ --origam-bracket-double-label---color: var(--origam-color__text---primary);
157
+ --origam-bracket-double-label---font-size: 0.75rem;
158
+ --origam-bracket-double-label---font-weight: 700;
159
+ --origam-bracket-double-label---letter-spacing: 0.08em;
160
+ --origam-bracket-double-label---margin-block-end: 12px;
161
+ --origam-bracket-double-label---text-transform: uppercase;
162
+ --origam-bracket-match---background-color: var(--origam-color__surface---default);
163
+ --origam-bracket-match---border-color: var(--origam-color__border---subtle);
164
+ --origam-bracket-match---border-width: 1px;
165
+ --origam-bracket-match---box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
166
+ --origam-bracket-match--hover---border-color: var(--origam-color__border---default);
167
+ --origam-bracket-round-robin---cell-background: var(--origam-color__surface---default);
168
+ --origam-bracket-round-robin---cell-size: 56px;
169
+ --origam-bracket-round-robin---header-color: var(--origam-color__text---secondary);
170
+ --origam-bracket-round---match-gap: 24px;
171
+ --origam-bracket-round-title---color: var(--origam-color__text---secondary);
172
+ --origam-bracket-competitor---background-color: transparent;
173
+ --origam-bracket-competitor---color: currentColor;
174
+ --origam-bracket-competitor--forfeit---color: var(--origam-color__text---secondary);
175
+ --origam-bracket-competitor--hover---background-color: rgba(0, 0, 0, 0.04);
176
+ --origam-bracket-competitor--loser---color: var(--origam-color__text---secondary);
177
+ --origam-bracket-competitor--pending---color: var(--origam-color__text---secondary);
178
+ --origam-bracket-competitor--pending---font-style: italic;
179
+ --origam-bracket-competitor--winner---background-color: rgba(25, 118, 210, 0.08);
180
+ --origam-bracket-competitor--winner---color: currentColor;
181
+ --origam-bracket-competitor--winner---font-weight: 600;
182
+ --origam-bracket-seed---color: var(--origam-color__text---secondary);
183
+ --origam-bracket-score---color: currentColor;
184
+ --origam-bracket-advantage---background-color: var(--origam-color__action--primary---bg);
185
+ --origam-bracket-advantage---border-radius: 9999px;
186
+ --origam-bracket-advantage---color: var(--origam-color__action--primary---fg);
187
+ --origam-bracket-advantage---font-size: 0.6875rem;
188
+ --origam-bracket-advantage---font-weight: 700;
189
+ --origam-bracket-advantage---padding-block: 1px;
190
+ --origam-bracket-advantage---padding-inline: 6px;
142
191
  --origam-btn---background-color: var(--origam-color__action--secondary---bg);
143
192
  --origam-btn---color: var(--origam-color__action--secondary---fg);
144
193
  --origam-btn---background-color-hover: var(--origam-color__action--secondary---bgHover);
@@ -177,6 +226,13 @@
177
226
  --origam-btn---opacity-disabled: var(--origam-opacity---50);
178
227
  --origam-btn---opacity-plain: var(--origam-opacity---70);
179
228
  --origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
229
+ --origam-btn---overlay-opacity-active: 0.2;
230
+ --origam-btn---overlay-opacity-active-hover: 0.28;
231
+ --origam-btn--loader-skeleton---min-width: 96px;
232
+ --origam-btn--loader-skeleton---min-height: 36px;
233
+ --origam-btn__progress---linear-height: 3px;
234
+ --origam-btn__progress---linear-position: 0px;
235
+ --origam-btn__progress---linear-position-top: auto;
180
236
  --origam-btn---box-shadow-elevated: var(--origam-shadow---md);
181
237
  --origam-btn---background-color-tonal: var(--origam-color__surface---overlay);
182
238
  --origam-btn---background-color-tonal-active: var(--origam-color__surface---raised);
@@ -259,6 +315,21 @@
259
315
  --origam-card__overlay---transition-duration: var(--origam-motion__duration---medium);
260
316
  --origam-card__overlay---transition-timing-function: var(--origam-motion__easing---standard);
261
317
  --origam-card__underlay---position: absolute;
318
+ /* Card — #593. Each value is the literal the component SCSS already fell back
319
+ to, so nothing moves on screen. --origam-card--loading---min-{width,height}
320
+ replace the ungrammatical flat --origam-card---loading-min-* the SCSS used
321
+ to read ("--loading" is a state modifier, so the grammar is the
322
+ --state---property form, not a flat suffix).
323
+ --origam-card__loader---overlay-background stays undeclared on purpose —
324
+ see the comment at its read site in OrigamCard.vue. */
325
+ --origam-card--loading---min-width: 240px;
326
+ --origam-card--loading---min-height: 120px;
327
+ --origam-card__asset---aspect-ratio: 16 / 9;
328
+ --origam-card__loader---min-height: 4px;
329
+ --origam-card__loader---min-height-skeleton: 200px;
330
+ --origam-card__loader---z-index: 3;
331
+ --origam-card__progress---linear-height: 4px;
332
+ --origam-card__progress---circular-margin: 24px auto;
262
333
  --origam-card__before---border-radius: inherit;
263
334
  --origam-card__before---bottom: var(--origam-space---0);
264
335
  --origam-card__before---content: "";
@@ -1564,7 +1635,7 @@
1564
1635
  --origam-data-table---width: 100%;
1565
1636
  --origam-data-table---border-collapse: separate;
1566
1637
  --origam-data-table---border-spacing: 0;
1567
- --origam-data-table__loading---opacity: var(--origam-opacity---50);
1638
+ --origam-data-table--loading---opacity: var(--origam-opacity---50);
1568
1639
  --origam-data-table__header---background-color: var(--origam-color__surface---raised);
1569
1640
  --origam-data-table__header---color: var(--origam-color__text---primary);
1570
1641
  --origam-data-table__header---sort-icon-color: var(--origam-color__text---primary);
@@ -1588,11 +1659,11 @@
1588
1659
  --origam-data-table__row---transition-easing: var(--origam-motion__easing---standard);
1589
1660
  --origam-data-table__row---column-title-font-weight: var(--origam-font__weight---medium);
1590
1661
  --origam-data-table__row---mobile-column-min-height: 52px;
1591
- --origam-data-table__cell---fixed-background-color: var(--origam-color__surface---raised);
1592
- --origam-data-table__cell---fixed-z-index: 1;
1593
- --origam-data-table__cell---last-fixed-border-right-color: var(--origam-color__border---subtle);
1594
- --origam-data-table__cell---last-fixed-border-right-width: var(--origam-border__width---thin);
1595
1662
  --origam-data-table__cell---last-fixed-border-right-style: solid;
1663
+ --origam-data-table-cell--fixed---background: var(--origam-color__surface---raised);
1664
+ --origam-data-table-cell--fixed---z-index: 1;
1665
+ --origam-data-table-cell--last-fixed---border-right-color: var(--origam-color__border---subtle);
1666
+ --origam-data-table-cell--last-fixed---border-right-width: var(--origam-border__width---thin);
1596
1667
  --origam-data-table__footer---background-color: var(--origam-color__surface---default);
1597
1668
  --origam-data-table__footer---color: var(--origam-color__text---primary);
1598
1669
  --origam-data-table__footer---padding-block: var(--origam-space---2);
@@ -1607,14 +1678,15 @@
1607
1678
  --origam-data-table__footer--info---padding-inline: var(--origam-space---4);
1608
1679
  --origam-data-table__footer--info---justify-content: flex-end;
1609
1680
  --origam-data-table__footer---pagination-margin-inline-start: var(--origam-space---4);
1610
- --origam-data-table---group-header-row-background-color: var(--origam-color__surface---overlay);
1611
- --origam-data-table---group-header-row-color: var(--origam-color__text---primary);
1612
- --origam-data-table---group-header-row-font-weight: var(--origam-font__weight---medium);
1613
- --origam-data-table---group-header-row-column-padding-inline-start-factor: var(--origam-space---4);
1614
- --origam-data-table__empty---color: var(--origam-color__text---secondary);
1615
- --origam-data-table__empty---text-align: center;
1616
- --origam-data-table---loading-row-color: var(--origam-color__text---secondary);
1617
- --origam-data-table__sortable---cursor: pointer;
1681
+ --origam-data-table-group-header-row---background-color: var(--origam-color__surface---overlay);
1682
+ --origam-data-table-group-header-row---color: var(--origam-color__text---primary);
1683
+ --origam-data-table-group-header-row---font-weight: var(--origam-font__weight---medium);
1684
+ --origam-data-table-group-header-row__column---padding-inline-start-factor: var(--origam-space---4);
1685
+ --origam-data-table-rows--no-data---text-align: center;
1686
+ --origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
1687
+ --origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
1688
+ --origam-data-table-rows--skeleton---cell-padding: 4px 8px;
1689
+ --origam-data-table-header-cell--sortable---cursor: pointer;
1618
1690
  --origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
1619
1691
  --origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
1620
1692
  --origam-list---background: var(--origam-color__surface---default);
@@ -2258,6 +2330,16 @@
2258
2330
  --origam-grid---gap: var(--origam-grid---gap-md);
2259
2331
  --origam-grid---gap-lg: var(--origam-space---6);
2260
2332
  --origam-grid---gap-xl: var(--origam-space---8);
2333
+ --origam-grid---template-columns: none;
2334
+ --origam-grid---template-rows: none;
2335
+ --origam-grid---template-areas: none;
2336
+ --origam-grid---auto-flow: row;
2337
+ --origam-grid---auto-columns: auto;
2338
+ --origam-grid---auto-rows: auto;
2339
+ --origam-grid---align-items: stretch;
2340
+ --origam-grid---justify-items: stretch;
2341
+ --origam-grid---align-content: normal;
2342
+ --origam-grid---justify-content: normal;
2261
2343
  --origam-skeleton---background-color: var(--origam-color__surface---overlay);
2262
2344
  --origam-skeleton---border-radius: var(--origam-radius---sm);
2263
2345
  --origam-skeleton---border-radius-circular: var(--origam-radius---full);
@@ -2787,6 +2869,98 @@
2787
2869
  --origam-chart-streamgraph__ribbon---opacity: 0.82;
2788
2870
  --origam-chart-streamgraph__axis-label---font-size: 0.6875rem;
2789
2871
  --origam-chart-streamgraph__axis-label---fill: #6b7280;
2872
+ --origam-chart__annotation---font-size: 0.6875rem;
2873
+ --origam-chart__annotation---font-weight: 600;
2874
+ --origam-chart__annotation-callout---color: #ffffff;
2875
+ --origam-chart__annotation-callout---font-size: 0.6875rem;
2876
+ --origam-chart__annotation-callout---font-weight: 600;
2877
+ --origam-chart__axis---stroke-width: 1;
2878
+ --origam-chart__axis-line---color: var(--origam-color__border---subtle);
2879
+ --origam-chart__body---min-width: 200px;
2880
+ --origam-chart__box---fill-opacity: 0.25;
2881
+ --origam-chart__box---stroke-width: 1.5;
2882
+ --origam-chart__box-cap---stroke-width: 2;
2883
+ --origam-chart__box-median---stroke-color: var(--origam-color__surface---default);
2884
+ --origam-chart__box-median---stroke-width: 2;
2885
+ --origam-chart__box-outlier---fill-opacity: 0.7;
2886
+ --origam-chart__box-whisker---stroke-width: 1.5;
2887
+ --origam-chart__breadcrumb---color: var(--origam-color__text---secondary);
2888
+ --origam-chart__breadcrumb---font-size: 0.8125rem;
2889
+ --origam-chart__breadcrumb---gap: 8px;
2890
+ --origam-chart__breadcrumb-back---background-color: transparent;
2891
+ --origam-chart__breadcrumb-back---border-color: var(--origam-color__border---default);
2892
+ --origam-chart__breadcrumb-back---border-radius: 4px;
2893
+ --origam-chart__breadcrumb-back---color: currentColor;
2894
+ --origam-chart__breadcrumb-back---hover-background-color: rgba(0, 0, 0, 0.05);
2895
+ --origam-chart__breadcrumb-current---color: currentColor;
2896
+ --origam-chart__breadcrumb-current---font-weight: 600;
2897
+ --origam-chart__breadcrumb-link---color: var(--origam-color__action--ghost---fg);
2898
+ --origam-chart__bullet-range---opacity: 0.55;
2899
+ --origam-chart__bullet-target---stroke-width: 3;
2900
+ --origam-chart__gauge-label---color: var(--origam-color__text---primary);
2901
+ --origam-chart__gauge-label---font-size: 1.5rem;
2902
+ --origam-chart__gauge-label---font-weight: 700;
2903
+ --origam-chart__gauge-track---color: var(--origam-color__border---subtle);
2904
+ --origam-chart__heatmap---stroke-color: var(--origam-color__surface---default);
2905
+ --origam-chart__heatmap---stroke-width: 0.5;
2906
+ --origam-chart__heatmap-axis-label---color: var(--origam-color__text---secondary);
2907
+ --origam-chart__heatmap-axis-label---font-size: 0.625rem;
2908
+ --origam-chart__heatmap-label---color: #ffffff;
2909
+ --origam-chart__heatmap-label---font-size: 0.5625rem;
2910
+ --origam-chart__heatmap-label---font-weight: 600;
2911
+ --origam-chart__heatmap-legend-label---color: var(--origam-color__text---secondary);
2912
+ --origam-chart__heatmap-legend-label---font-size: 0.625rem;
2913
+ --origam-chart__honeycomb---stroke-color: var(--origam-color__surface---default);
2914
+ --origam-chart__honeycomb---stroke-width: 2;
2915
+ --origam-chart__honeycomb-label---color: #ffffff;
2916
+ --origam-chart__honeycomb-label---font-size: 0.625rem;
2917
+ --origam-chart__honeycomb-label---font-weight: 600;
2918
+ --origam-chart__legend---side-gap: 8px;
2919
+ --origam-chart__map---stroke-width: 1;
2920
+ --origam-chart__map-legend-label---color: var(--origam-color__text---secondary);
2921
+ --origam-chart__map-legend-label---font-size: 0.625rem;
2922
+ --origam-chart-pictorial__axis---color: var(--origam-color__text---secondary);
2923
+ --origam-chart-pictorial__axis---font-size: 0.6875rem;
2924
+ --origam-chart-pictorial__label---color: var(--origam-color__text---primary);
2925
+ --origam-chart-pictorial__label---font-size: 0.6875rem;
2926
+ --origam-chart-pictorial__label---font-weight: 600;
2927
+ --origam-chart__plot-band-label---font-size: 0.6875rem;
2928
+ --origam-chart__plot-band-label---font-weight: 600;
2929
+ --origam-chart__plot-line-label---font-size: 0.6875rem;
2930
+ --origam-chart__plot-line-label---font-weight: 600;
2931
+ --origam-chart__polar-bar---stroke-color: var(--origam-color__surface---default);
2932
+ --origam-chart__polar-bar---stroke-width: 1.5;
2933
+ --origam-chart__polar-bar-label---color: var(--origam-color__text---primary);
2934
+ --origam-chart__polar-bar-label---font-size: 0.6875rem;
2935
+ --origam-chart__polar-bar-label---font-weight: 500;
2936
+ --origam-chart__polar-bar-value-label---color: #ffffff;
2937
+ --origam-chart__polar-bar-value-label---font-size: 0.625rem;
2938
+ --origam-chart__polar-bar-value-label---font-weight: 600;
2939
+ --origam-chart__pyramid---stroke-color: var(--origam-color__surface---default);
2940
+ --origam-chart__pyramid---stroke-width: 2;
2941
+ --origam-chart__pyramid-label---font-size: 0.75rem;
2942
+ --origam-chart__pyramid-label---font-weight: 500;
2943
+ --origam-chart__pyramid-label--inside---color: #ffffff;
2944
+ --origam-chart__pyramid-label--outside---color: var(--origam-color__text---primary);
2945
+ --origam-chart__sankey-label---color: var(--origam-color__text---primary);
2946
+ --origam-chart__sankey-label---font-size: 0.6875rem;
2947
+ --origam-chart__sankey-label---font-weight: 500;
2948
+ --origam-chart__sunburst---stroke-color: var(--origam-color__surface---default);
2949
+ --origam-chart__sunburst---stroke-width: 1.5;
2950
+ --origam-chart__sunburst-label---color: #ffffff;
2951
+ --origam-chart__sunburst-label---font-size: 0.625rem;
2952
+ --origam-chart__sunburst-label---font-weight: 500;
2953
+ --origam-chart__sunburst-label--leader---color: var(--origam-color__text---primary);
2954
+ --origam-chart__sunburst-leader-line---color: var(--origam-color__text---secondary);
2955
+ --origam-chart__sunburst-leader-line---width: 1;
2956
+ --origam-chart__treemap---stroke-color: var(--origam-color__surface---default);
2957
+ --origam-chart__treemap---stroke-width: 2;
2958
+ --origam-chart__treemap-label---color: #ffffff;
2959
+ --origam-chart__treemap-label---font-size: 0.6875rem;
2960
+ --origam-chart__treemap-label---font-weight: 600;
2961
+ --origam-chart__treemap-label--value---color: rgba(255, 255, 255, 0.85);
2962
+ --origam-chart__treemap-label--value---font-size: 0.625rem;
2963
+ --origam-chart__treemap-label--value---font-weight: 400;
2790
2964
  --origam-data-table-header-cell---color: var(--origam-color__text---primary);
2791
2965
  --origam-data-table-header-cell---background: var(--origam-color__surface---raised);
2792
2966
  --origam-data-table-header-cell__content---gap: var(--origam-space---1);
@@ -821,6 +821,12 @@ defineExpose({
821
821
  }
822
822
 
823
823
  &__connector {
824
+ // ⛔ `---stroke-color` and `---stroke-color-winner` LEFT UNDECLARED (#592):
825
+ // both fall back to `--origam-bracket-match---border-color`, which #592
826
+ // declared, so the connector tracks the match box's border by default.
827
+ // Declaring the stroke tokens at `:root` would substitute that reference
828
+ // once at root and freeze the link — same mechanism as the long note in
829
+ // OrigamBracketMatch.vue's border block.
824
830
  stroke: var(--origam-bracket-connector---stroke-color, var(--origam-bracket-match---border-color, var(--origam-color__border---subtle, rgba(0, 0, 0, 0.12))));
825
831
  stroke-width: var(--origam-bracket-connector---stroke-width, var(--origam-bracket-match---border-width, 1px));
826
832
  stroke-dasharray: var(--origam-bracket-connector---stroke-dasharray, none);
@@ -848,6 +854,15 @@ defineExpose({
848
854
  gap: 1px;
849
855
  }
850
856
 
857
+ // ⛔ `--origam-bracket-round-robin---header-background` and
858
+ // `---cell-background-diag` LEFT UNDECLARED (#592): both fall back to
859
+ // `--origam-color__surface---subtle`, a name no token sheet declares (the DS
860
+ // has `sunken`, not `subtle`), so the literal `#f5f5f5` is what paints — in
861
+ // dark mode too. Choosing the replacement is a design decision, not a
862
+ // rename; see the note in OrigamBracketMatch.vue.
863
+ //
864
+ // NOTE also: no Variant of any Bracket story renders the round-robin layout,
865
+ // so these two channels have never been exercised by a spec either.
851
866
  &__rr-corner {
852
867
  background: var(--origam-bracket-round-robin---header-background, var(--origam-color__surface---subtle, #f5f5f5));
853
868
  }
@@ -319,6 +319,19 @@ defineExpose({
319
319
  border-color: var(--origam-bracket-match---border-color, var(--origam-color__border---subtle, rgba(0, 0, 0, 0.12)));
320
320
  border-radius: var(--origam-bracket-match---border-radius, 6px);
321
321
 
322
+ // ⛔ THE 14 PER-SIDE LONGHANDS BELOW ARE LEFT UNDECLARED ON PURPOSE (#592).
323
+ // Each falls back to the general knob above it (`---border-width`,
324
+ // `---border-color`, `---border-radius`), which #592 DID declare in the
325
+ // token sheets. That cascade is the feature: a theme sets the general
326
+ // token once and all four sides follow — measured in Chromium, setting
327
+ // only `---border-width: 5px` gives 5px on all four sides.
328
+ //
329
+ // Declaring a longhand would destroy it. A custom property is substituted
330
+ // ON THE ELEMENT THAT DECLARES IT, so a `:root` declaration of
331
+ // `---border-top-width: var(---border-block-width, var(---border-width, 1px))`
332
+ // resolves to `1px` AT ROOT and every descendant inherits that literal.
333
+ // A consumer then setting `---border-width: 3px` on a wrapper would move
334
+ // the shorthand and nothing else — the four sides would stay pinned at 1px.
322
335
  border-block-width: var(--origam-bracket-match---border-block-width, var(--origam-bracket-match---border-width, 1px));
323
336
  border-inline-width: var(--origam-bracket-match---border-inline-width, var(--origam-bracket-match---border-width, 1px));
324
337
 
@@ -421,7 +434,15 @@ defineExpose({
421
434
  cursor: pointer;
422
435
 
423
436
  &:hover {
424
- background-color: var(--origam-bracket-match--hover---background-color, var(--origam-color__surface---elevated, #fafafa));
437
+ // ⛔ LEFT UNDECLARED (#592). Its fallback names
438
+ // `--origam-color__surface---elevated`, which NO token sheet declares —
439
+ // the DS vocabulary has `raised` and `sunken`, not `elevated`. So the
440
+ // literal `#fafafa` is what paints, in dark mode too. Declaring this
441
+ // token means choosing a semantic token on the strength of a name, which
442
+ // is the mistake #550 recorded on OrigamBottomNav. Pending the
443
+ // arbitration on the missing `surface---elevated` / `surface---subtle` /
444
+ // `text---tertiary` names — 13 such reads repo-wide, 5 in this family.
445
+ background-color: var(--origam-bracket-match--hover---background-color, var(--origam-color__surface---elevated, #fafafa));
425
446
  border-color: var(--origam-bracket-match--hover---border-color, var(--origam-color__border---default, rgba(0, 0, 0, 0.24)));
426
447
  }
427
448
  }
@@ -479,6 +479,13 @@ defineExpose({
479
479
  min-width: calc(var(--origam-btn---min-width, 64px) + var(--origam-btn---density, 0px));
480
480
  max-width: var(--origam-btn---max-width, 100%);
481
481
  height: calc(var(--origam-btn---height, 36px) + var(--origam-btn---density, 0px));
482
+ // ⛔ C2 (#597) — `--origam-btn---min-height` reste NON DECLARE, a dessein.
483
+ // Son repli est `calc(height + density)`, deux vars reglees PAR INSTANCE
484
+ // (`&--size-*` / `&--density-*` plus bas dans ce bloc). Une custom property
485
+ // est substituee SUR L'ELEMENT QUI LA DECLARE : une declaration `:root`
486
+ // figerait la hauteur minimale a la taille/densite racine et les props
487
+ // `size` / `density` cesseraient d'agir sur elle. Faux positif de la garde,
488
+ // qui compare des noms et non des chaines de repli.
482
489
  min-height: var(--origam-btn---min-height, calc(var(--origam-btn---height, 36px) + var(--origam-btn---density, 0px)));
483
490
  max-height: var(--origam-btn---max-height, 100%);
484
491
 
@@ -800,6 +807,15 @@ defineExpose({
800
807
  // no longer forced to share one token. Themes that don't
801
808
  // declare it fall straight through to the existing behaviour
802
809
  // (their own `-background-color`), so this is additive only.
810
+ //
811
+ // ⛔ C2 (#597) — `--origam-btn---background-color-active` reste NON
812
+ // DECLARE, a dessein. Son repli est le bouton general
813
+ // `--origam-btn---background-color`, lui DECLARE dans les feuilles et
814
+ // surcharge par intention / variante sur l'element. Le declarer a
815
+ // `:root` y substituerait la couleur RACINE une fois pour toutes :
816
+ // l'etat actif d'un bouton `primary` repeindrait le gris secondaire.
817
+ // Non declare, le repli est evalue sur l'element et suit la couleur
818
+ // reelle du bouton — c'est une cascade voulue, pas un oubli.
803
819
  &#{$this}--active {
804
820
  background-color: var(--origam-btn---background-color-active, var(--origam-btn---background-color)) !important;
805
821
  color: var(--origam-btn---color);
@@ -818,6 +834,27 @@ defineExpose({
818
834
  }
819
835
  }
820
836
 
837
+ // ⛔ C2 (#597) — les 5 tokens `ghost` lus ici restent NON DECLARES, a
838
+ // dessein, pour DEUX raisons independantes :
839
+ //
840
+ // 1. chaque repli est un `color-mix()` relatif a `currentColor` (ou a
841
+ // `white`) : il doit etre evalue SUR LE BOUTON, dont la couleur
842
+ // depend de l'intention. Une declaration `:root` le figerait a la
843
+ // teinte racine et le verre prendrait la meme nuance partout.
844
+ // 2. `--origam-btn---background-color-ghost` est lu DEUX FOIS avec DEUX
845
+ // replis differents (12 % ici, 18 % dans la branche
846
+ // `@supports not (backdrop-filter)` plus bas). Le declarer
847
+ // imposerait une seule valeur aux deux branches : c'est un choix de
848
+ // design a arbitrer, pas une correction mecanique.
849
+ //
850
+ // Les jumeaux `--origam-btn--ghost---{background-color,color,
851
+ // background-color-hover}` existent bien dans les feuilles, mais ils ne
852
+ // portent PAS un voile relatif : `--origam-color__action--ghost---bg` vaut
853
+ // `rgba(0, 0, 0, 0)` (mesure, light.css:108) et `---bgHover` un neutre
854
+ // OPAQUE (`neutral---100`, light.css:109). Les cabler ici supprimerait donc
855
+ // le voile a 12 % au repos et le remplacerait par un aplat neutre au
856
+ // survol : changement de rendu, pas correction. Ils restent dormants —
857
+ // meme arbitrage.
821
858
  &--variant-ghost {
822
859
  background-color: var(
823
860
  --origam-btn---background-color-ghost,
@@ -943,8 +980,8 @@ defineExpose({
943
980
  // the skeleton's natural size unless we give it a sensible
944
981
  // min-width / min-height.
945
982
  &--loader-skeleton {
946
- min-width: var(--origam-btn---loader-skeleton-min-width, 96px);
947
- min-height: var(--origam-btn---loader-skeleton-min-height, 36px);
983
+ min-width: var(--origam-btn--loader-skeleton---min-width, 96px);
984
+ min-height: var(--origam-btn--loader-skeleton---min-height, 36px);
948
985
 
949
986
  :deep(.origam-skeleton--rectangular) {
950
987
  position: absolute;
@@ -337,6 +337,11 @@ defineExpose({
337
337
  box-shadow: none;
338
338
  }
339
339
 
340
+ // ⛔ C2 (#597) — les 3 tokens `ghost` lus ici restent NON DECLARES, pour
341
+ // la meme raison que dans `OrigamBtn.vue` (voir le commentaire detaille
342
+ // devant son propre `&--variant-ghost`) : leurs replis sont des
343
+ // `color-mix()` relatifs a `currentColor`, qui doivent etre evalues sur
344
+ // l'element et non figes a `:root`.
340
345
  &--variant-ghost {
341
346
  background-color: var(
342
347
  --origam-btn---background-color-ghost,
@@ -461,20 +461,20 @@ defineExpose({
461
461
  &__overlay {
462
462
  background-color: var(--origam-card__overlay---background-color, var(--origam-color__overlay---scrim));
463
463
  border-radius: var(--origam-card__overlay---border-radius, inherit);
464
- opacity: var(--origam-card__overlay---opacity, var(--origam-card---overlay-opacity, 0));
464
+ opacity: var(--origam-card__overlay---opacity, 0);
465
465
  pointer-events: var(--origam-card__overlay---pointer-events, none);
466
466
  position: var(--origam-card__overlay---position, absolute);
467
- bottom: var(--origam-card__overlay---position-bottom, var(--origam-card---overlay-position-bottom, 0));
468
- left: var(--origam-card__overlay---position-left, var(--origam-card---overlay-position-left, 0));
469
- right: var(--origam-card__overlay---position-right, var(--origam-card---overlay-position-right, 0));
470
- top: var(--origam-card__overlay---position-top, var(--origam-card---overlay-position-top, 0));
471
- transition-property: var(--origam-card__overlay---transition-property, var(--origam-card---overlay-transition-property, opacity));
472
- transition-duration: var(--origam-card__overlay---transition-duration, var(--origam-card---overlay-transition-duration, 0.2s));
473
- transition-timing-function: var(--origam-card__overlay---transition-timing-function, var(--origam-card---overlay-transition-timing-function, ease-in-out));
467
+ bottom: var(--origam-card__overlay---position-bottom, 0);
468
+ left: var(--origam-card__overlay---position-left, 0);
469
+ right: var(--origam-card__overlay---position-right, 0);
470
+ top: var(--origam-card__overlay---position-top, 0);
471
+ transition-property: var(--origam-card__overlay---transition-property, opacity);
472
+ transition-duration: var(--origam-card__overlay---transition-duration, 0.2s);
473
+ transition-timing-function: var(--origam-card__overlay---transition-timing-function, ease-in-out);
474
474
  }
475
475
 
476
476
  &__underlay {
477
- position: var(--origam-card__underlay---position, var(--origam-card---underlay-position, absolute));
477
+ position: var(--origam-card__underlay---position, absolute);
478
478
  }
479
479
 
480
480
  > * {
@@ -524,8 +524,8 @@ defineExpose({
524
524
  }
525
525
 
526
526
  &--loading {
527
- min-width: var(--origam-card---loading-min-width, 240px);
528
- min-height: var(--origam-card---loading-min-height, 120px);
527
+ min-width: var(--origam-card--loading---min-width, 240px);
528
+ min-height: var(--origam-card--loading---min-height, 120px);
529
529
  }
530
530
 
531
531
  &__loader {
@@ -565,6 +565,13 @@ defineExpose({
565
565
  z-index: var(--origam-card__loader---z-index, 3);
566
566
  min-height: 0;
567
567
  border-radius: inherit;
568
+ // ⛔ LEFT UNDECLARED ON PURPOSE (#593). Declaring this token in the token
569
+ // sheets would substitute the `color-mix()` at `:root`, where
570
+ // `--origam-card---background` holds the root default — freezing the
571
+ // scrim to that one colour. Undeclared, the fallback is evaluated on THIS
572
+ // element, so the mix follows whatever background the card actually
573
+ // carries. Wiring it would cost that and buy a channel that
574
+ // `--origam-card---background` already covers.
568
575
  background-color: var(--origam-card__loader---overlay-background, color-mix(in srgb, var(--origam-card---background) 62%, transparent));
569
576
 
570
577
  :deep(.origam-progress--circular) {
@@ -650,34 +657,34 @@ defineExpose({
650
657
  --origam-card---cursor: pointer;
651
658
 
652
659
  &:before {
653
- border-radius: var(--origam-card__before---border-radius, var(--origam-card---before-border-radius, inherit));
654
- bottom: var(--origam-card__before---bottom, var(--origam-card---before-bottom, 0));
655
- content: var(--origam-card__before---content, var(--origam-card---before-content, ""));
656
- display: var(--origam-card__before---display, var(--origam-card---before-display, block));
657
- left: var(--origam-card__before---left, var(--origam-card---before-left, 0));
658
- pointer-events: var(--origam-card__before---pointer-events, var(--origam-card---before-pointer-events, none));
659
- position: var(--origam-card__before---position, var(--origam-card---before-position, absolute));
660
- right: var(--origam-card__before---right, var(--origam-card---before-right, 0));
661
- top: var(--origam-card__before---top, var(--origam-card---before-top, 0));
662
- transition: var(--origam-card__before---transition, var(--origam-card---before-transition, inherit));
663
- opacity: var(--origam-card__before---opacity, var(--origam-card---before-opacity, 1));
664
- z-index: var(--origam-card__before---z-index, var(--origam-card---before-z-index, -1));
660
+ border-radius: var(--origam-card__before---border-radius, inherit);
661
+ bottom: var(--origam-card__before---bottom, 0);
662
+ content: var(--origam-card__before---content, "");
663
+ display: var(--origam-card__before---display, block);
664
+ left: var(--origam-card__before---left, 0);
665
+ pointer-events: var(--origam-card__before---pointer-events, none);
666
+ position: var(--origam-card__before---position, absolute);
667
+ right: var(--origam-card__before---right, 0);
668
+ top: var(--origam-card__before---top, 0);
669
+ transition: var(--origam-card__before---transition, inherit);
670
+ opacity: var(--origam-card__before---opacity, 1);
671
+ z-index: var(--origam-card__before---z-index, -1);
665
672
  box-shadow: var(--origam-card__before---box-shadow, var(--origam-card---before-box-shadow));
666
673
  }
667
674
 
668
675
  &:after {
669
- border-radius: var(--origam-card__after---border-radius, var(--origam-card---after-border-radius, inherit));
670
- bottom: var(--origam-card__after---bottom, var(--origam-card---after-bottom, 0));
671
- content: var(--origam-card__after---content, var(--origam-card---after-content, ""));
672
- display: var(--origam-card__after---display, var(--origam-card---after-display, block));
673
- left: var(--origam-card__after---left, var(--origam-card---after-left, 0));
674
- pointer-events: var(--origam-card__after---pointer-events, var(--origam-card---after-pointer-events, none));
675
- position: var(--origam-card__after---position, var(--origam-card---after-position, absolute));
676
- right: var(--origam-card__after---right, var(--origam-card---after-right, 0));
677
- top: var(--origam-card__after---top, var(--origam-card---after-top, 0));
678
- transition: var(--origam-card__after---transition, var(--origam-card---after-transition, inherit));
679
- z-index: var(--origam-card__after---z-index, var(--origam-card---after-z-index, 1));
680
- opacity: var(--origam-card__after---opacity, var(--origam-card---after-opacity, 0));
676
+ border-radius: var(--origam-card__after---border-radius, inherit);
677
+ bottom: var(--origam-card__after---bottom, 0);
678
+ content: var(--origam-card__after---content, "");
679
+ display: var(--origam-card__after---display, block);
680
+ left: var(--origam-card__after---left, 0);
681
+ pointer-events: var(--origam-card__after---pointer-events, none);
682
+ position: var(--origam-card__after---position, absolute);
683
+ right: var(--origam-card__after---right, 0);
684
+ top: var(--origam-card__after---top, 0);
685
+ transition: var(--origam-card__after---transition, inherit);
686
+ z-index: var(--origam-card__after---z-index, 1);
687
+ opacity: var(--origam-card__after---opacity, 0);
681
688
  box-shadow: var(--origam-card__after---box-shadow, var(--origam-card---after-box-shadow));
682
689
  }
683
690
 
@@ -137,6 +137,16 @@ const formatSecondaryY = (value) => {
137
137
  stroke-width: var(--origam-chart__axis---stroke-width, 1);
138
138
  }
139
139
 
140
+ /*
141
+ * ⛔ `--origam-chart__axis-label---font-size` reste NON DECLARE dans les
142
+ * feuilles (#591), volontairement : les huit lectures de la famille Chart
143
+ * ne s'accordent pas sur leur repli — 0.75rem ici, dans Bullet (echelle
144
+ * principale), Cartesian, Gauge et Radar ; 0.6875rem dans BoxPlot,
145
+ * Candlestick et la seconde echelle de Bullet. Une declaration unique
146
+ * changerait donc le rendu de l'un des deux camps. Trancher demande un
147
+ * choix de design (valeur commune, ou second token pour l'echelle
148
+ * secondaire) : remonte a l'utilisateur, pas cable en silence.
149
+ */
140
150
  .origam-chart__axis-label {
141
151
  fill: var(--origam-chart__axis-label---color, var(--origam-color__text---secondary, #6b7280));
142
152
  font-size: var(--origam-chart__axis-label---font-size, 0.75rem);
@@ -726,19 +726,19 @@ const onSeriesToggle = (series, nextVisible) => {
726
726
  }
727
727
 
728
728
  .origam-chart__grid-line {
729
- stroke: var(--origam-chart__grid---stroke-color, var(--origam-color__border---subtle, #e5e7eb));
729
+ stroke: var(--origam-chart__grid---color, var(--origam-color__border---subtle, #e5e7eb));
730
730
  stroke-width: 1;
731
731
  stroke-dasharray: 4 4;
732
732
  }
733
733
 
734
734
  .origam-chart__axis-line {
735
- stroke: var(--origam-chart__axis---stroke-color, var(--origam-color__border---default, #d1d5db));
735
+ stroke: var(--origam-chart__axis---color, var(--origam-color__border---default, #d1d5db));
736
736
  stroke-width: 1;
737
737
  }
738
738
 
739
739
  .origam-chart__axis-label {
740
740
  font-size: var(--origam-chart__axis-label---font-size, 0.6875rem);
741
- fill: var(--origam-chart__axis-label---fill, var(--origam-color__text---secondary, #6b7280));
741
+ fill: var(--origam-chart__axis-label---color, var(--origam-color__text---secondary, #6b7280));
742
742
  }
743
743
 
744
744
  .origam-chart__box-rect {
@@ -611,14 +611,14 @@ const onSeriesToggle = (series, nextVisible) => {
611
611
  }
612
612
 
613
613
  &__grid-line {
614
- stroke: var(--origam-chart__grid---stroke-color, var(--origam-color__border---subtle, #e5e7eb));
614
+ stroke: var(--origam-chart__grid---color, var(--origam-color__border---subtle, #e5e7eb));
615
615
  stroke-width: var(--origam-chart__grid---stroke-width, 1);
616
616
  fill: none;
617
617
  }
618
618
 
619
619
  &__axis-label {
620
620
  font-size: var(--origam-chart__axis-label---font-size, 0.6875rem);
621
- fill: var(--origam-chart__axis-label---fill, var(--origam-color__text---secondary, #6b7280));
621
+ fill: var(--origam-chart__axis-label---color, var(--origam-color__text---secondary, #6b7280));
622
622
  user-select: none;
623
623
  pointer-events: none;
624
624
  }
@@ -1475,7 +1475,7 @@ const pointAriaLabel = (path) => {
1475
1475
  }
1476
1476
 
1477
1477
  .origam-chart__annotation-callout-text {
1478
- fill: var(--origam-chart__annotation-callout---text-color, #ffffff);
1478
+ fill: var(--origam-chart__annotation-callout---color, #ffffff);
1479
1479
  font-size: var(--origam-chart__annotation-callout---font-size, 0.6875rem);
1480
1480
  font-weight: var(--origam-chart__annotation-callout---font-weight, 600);
1481
1481
  pointer-events: none;
@@ -440,7 +440,7 @@ defineExpose({
440
440
  * et un voile a 0.82 n'est plus un voile.
441
441
  ********************************************************/
442
442
  &:deep(.origam-data-table-cell:not(.origam-data-table-header-cell)) {
443
- opacity: var(--origam-data-table--loading---opacity, var(--origam-data-table__loading---opacity, 0.5));
443
+ opacity: var(--origam-data-table--loading---opacity, 0.5);
444
444
  }
445
445
  }
446
446
  }
@@ -115,13 +115,13 @@ defineExpose({
115
115
 
116
116
  &--fixed {
117
117
  position: sticky;
118
- background: var(--origam-data-table-cell--fixed---background, var(--origam-data-table__cell---fixed-background-color, var(--origam-color__surface---raised)));
118
+ background: var(--origam-data-table-cell--fixed---background, var(--origam-color__surface---raised));
119
119
  left: 0;
120
- z-index: var(--origam-data-table-cell--fixed---z-index, var(--origam-data-table__cell---fixed-z-index, 1))
120
+ z-index: var(--origam-data-table-cell--fixed---z-index, 1)
121
121
  }
122
122
 
123
123
  &--last-fixed {
124
- border-right: var(--origam-data-table-cell--last-fixed---border-right-width, var(--origam-data-table__cell---last-fixed-border-right-width, 1px)) var(--origam-data-table__cell---last-fixed-border-right-style, solid) var(--origam-data-table-cell--last-fixed---border-right-color, var(--origam-data-table__cell---last-fixed-border-right-color, var(--origam-color__border---subtle)));
124
+ border-right: var(--origam-data-table-cell--last-fixed---border-right-width, 1px) var(--origam-data-table__cell---last-fixed-border-right-style, solid) var(--origam-data-table-cell--last-fixed---border-right-color, var(--origam-color__border---subtle));
125
125
  }
126
126
  }
127
127
  </style>
@@ -142,12 +142,19 @@ defineExpose({
142
142
 
143
143
  <style lang="scss" scoped>
144
144
  .origam-data-table-group-header-row {
145
- background-color: var(--origam-data-table-group-header-row---background-color, var(--origam-data-table---group-header-row-background-color, var(--origam-color__surface---overlay)));
146
- color: var(--origam-data-table-group-header-row---color, var(--origam-data-table---group-header-row-color, var(--origam-color__text---primary)));
147
- font-weight: var(--origam-data-table-group-header-row---font-weight, var(--origam-data-table---group-header-row-font-weight, 500));
145
+ background-color: var(--origam-data-table-group-header-row---background-color, var(--origam-color__surface---overlay));
146
+ color: var(--origam-data-table-group-header-row---color, var(--origam-color__text---primary));
147
+ font-weight: var(--origam-data-table-group-header-row---font-weight, 500);
148
148
 
149
149
  &__column {
150
- padding-inline-start: calc(var(--origam-data-table-group-header-row--depth, 0) * var(--origam-data-table-group-header-row__column---padding-inline-start-factor, var(--origam-data-table---group-header-row-column-padding-inline-start-factor, 16px)));
150
+ // ⛔ C2 (#597) — `--origam-data-table-group-header-row--depth` reste NON
151
+ // DECLARE, a dessein : ce n'est PAS un token de theme mais une DONNEE
152
+ // d'instance, ecrite en style inline par ce composant
153
+ // (`dataTableGroupHeaderRowStyles`, `props.item.depth`). La declarer
154
+ // dans les feuilles exposerait la profondeur d'un noeud comme un
155
+ // reglage de theme, et son repli `0` doit rester SANS UNITE : c'est un
156
+ // multiplicateur de `calc()`, `0px * 16px` serait invalide (#568).
157
+ padding-inline-start: calc(var(--origam-data-table-group-header-row--depth, 0) * var(--origam-data-table-group-header-row__column---padding-inline-start-factor, 16px));
151
158
  }
152
159
  }
153
160
  </style>