@techsio/ui-kit 0.38.0 → 0.40.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.
Files changed (86) hide show
  1. package/dist/.storybook/manager.d.ts +2 -0
  2. package/dist/.storybook/manager.d.ts.map +1 -0
  3. package/dist/.storybook/preview.d.ts.map +1 -1
  4. package/dist/atoms/action-icon.figma.js +1 -1
  5. package/dist/atoms/badge.figma.js +1 -1
  6. package/dist/atoms/button.figma.js +1 -1
  7. package/dist/atoms/checkbox.figma.js +1 -1
  8. package/dist/atoms/icon.figma.js +1 -1
  9. package/dist/atoms/image.figma.js +1 -1
  10. package/dist/atoms/input.figma.js +1 -1
  11. package/dist/atoms/label.figma.js +1 -1
  12. package/dist/atoms/link-button.figma.js +1 -1
  13. package/dist/atoms/link.figma.js +1 -1
  14. package/dist/atoms/numeric-input.figma.js +1 -1
  15. package/dist/atoms/rating.figma.js +1 -1
  16. package/dist/atoms/skeleton.figma.js +3 -3
  17. package/dist/atoms/status-text.figma.js +1 -1
  18. package/dist/atoms/textarea.figma.js +1 -1
  19. package/dist/atoms/tooltip.figma.js +1 -1
  20. package/dist/molecules/accordion.figma.js +1 -1
  21. package/dist/molecules/breadcrumb.figma.js +1 -1
  22. package/dist/molecules/carousel.figma.js +1 -1
  23. package/dist/molecules/chart.js +393 -0
  24. package/dist/molecules/combobox.figma.js +1 -1
  25. package/dist/molecules/combobox.js +47 -32
  26. package/dist/molecules/dialog.figma.js +1 -1
  27. package/dist/molecules/form-checkbox.figma.js +1 -1
  28. package/dist/molecules/form-input.figma.js +1 -1
  29. package/dist/molecules/form-numeric-input.figma.js +1 -1
  30. package/dist/molecules/form-textarea.figma.js +1 -1
  31. package/dist/molecules/menu.figma.js +1 -1
  32. package/dist/molecules/menu.js +44 -38
  33. package/dist/molecules/pagination.figma.js +1 -1
  34. package/dist/molecules/phone-input.figma.js +1 -1
  35. package/dist/molecules/popover.figma.js +1 -1
  36. package/dist/molecules/product-card.figma.js +1 -1
  37. package/dist/molecules/radio-card.figma.js +1 -1
  38. package/dist/molecules/radio-group.figma.js +1 -1
  39. package/dist/molecules/search-form.figma.js +1 -1
  40. package/dist/molecules/select.figma.js +1 -1
  41. package/dist/molecules/select.js +24 -28
  42. package/dist/molecules/slider.figma.js +1 -1
  43. package/dist/molecules/steps.figma.js +1 -1
  44. package/dist/molecules/switch.figma.js +1 -1
  45. package/dist/molecules/tabs.figma.js +1 -1
  46. package/dist/molecules/toast.figma.js +1 -1
  47. package/dist/molecules/tree-view.figma.js +1 -1
  48. package/dist/organisms/footer.figma.js +1 -1
  49. package/dist/organisms/gallery.figma.js +1 -1
  50. package/dist/organisms/header.figma.js +1 -1
  51. package/dist/organisms/table.figma.js +1 -1
  52. package/dist/organisms/table.js +4 -1
  53. package/dist/src/molecules/chart.d.ts +64 -0
  54. package/dist/src/molecules/chart.d.ts.map +1 -0
  55. package/dist/src/molecules/combobox.d.ts +6 -18
  56. package/dist/src/molecules/combobox.d.ts.map +1 -1
  57. package/dist/src/molecules/menu.d.ts +12 -9
  58. package/dist/src/molecules/menu.d.ts.map +1 -1
  59. package/dist/src/molecules/select.d.ts +12 -12
  60. package/dist/src/molecules/select.d.ts.map +1 -1
  61. package/dist/src/organisms/table.d.ts +1 -1
  62. package/dist/src/organisms/table.d.ts.map +1 -1
  63. package/dist/src/templates/select.d.ts +1 -1
  64. package/dist/src/theme/theme-config.d.ts +5 -0
  65. package/dist/src/theme/theme-config.d.ts.map +1 -1
  66. package/dist/stories/changelog/changelog.stories.d.ts.map +1 -1
  67. package/dist/stories/molecules/chart.stories.d.ts +24 -0
  68. package/dist/stories/molecules/chart.stories.d.ts.map +1 -0
  69. package/dist/theme/theme-config.js +7 -0
  70. package/package.json +8 -1
  71. package/src/tokens/components/_popup-surface.css +163 -0
  72. package/src/tokens/components/components.css +2 -2
  73. package/src/tokens/components/molecules/_chart.css +98 -0
  74. package/src/tokens/components/molecules/_combobox.css +0 -12
  75. package/src/tokens/components/molecules/_menu.css +4 -0
  76. package/src/tokens/components/molecules/_select.css +0 -11
  77. package/src/tokens/components/organisms/_table.css +17 -0
  78. package/src/tokens/figma/brand-overrides.css +141 -19
  79. package/src/tokens/figma/business/variables.css +437 -0
  80. package/src/tokens/figma/dark/variables.css +100 -1455
  81. package/src/tokens/figma/light/variables.css +213 -179
  82. package/src/tokens/figma/neo/variables.css +87 -1442
  83. package/src/tokens/figma/neo-dark/variables.css +84 -1439
  84. package/src/tokens/figma/variables.css +217 -183
  85. package/src/tokens/components/_icon-button.css +0 -39
  86. package/src/tokens/components/molecules/_search-form.css +0 -12
@@ -0,0 +1,163 @@
1
+ /*
2
+ * Shared popup-surface foundation.
3
+ *
4
+ * Every floating list surface (Select, Combobox, Menu, and everything that
5
+ * composes them — PhoneInput's country picker, DataTable's column settings)
6
+ * draws its panel and its options from one set of tokens, so hover, radius,
7
+ * colour and keyboard/focus behaviour are identical across all of them.
8
+ *
9
+ * SOURCE OF TRUTH: the `popup-surface` collection in Figma. Its tokens
10
+ * (--color-popup-*, --radius-popup-*, --padding-popup-*, --spacing-popup-*,
11
+ * --shadow-popup, --size-popup-indicator, --border-width-popup) arrive via
12
+ * tokens/figma/variables.css and are NOT redeclared here. The component
13
+ * collections (select, menu, combobox) alias the same popup variables in
14
+ * Figma, so the two layers cannot drift.
15
+ *
16
+ * This file holds only what Figma has no concept of:
17
+ * - the @utility blocks that compose those tokens,
18
+ * - `--z-popup` layering (code-side, same precedent as `--z-content`),
19
+ * - the `--popup-item-*` runtime scale, set per size by popup-size-*.
20
+ */
21
+ @theme static {
22
+ /*
23
+ * Single layer for every popup. Nesting bumps --layer-index rather than
24
+ * hard-coding a bigger number, so a Select inside a Popover always wins.
25
+ */
26
+ --z-popup: 50;
27
+
28
+ /*
29
+ * Foreground for a row that is checked but painted on NO filled background
30
+ * — Menu's checkbox/radio rows. Distinct from
31
+ * --color-popup-item-fg-selected, which is white because Select/Combobox
32
+ * paint a solid --color-popup-item-bg-selected behind it.
33
+ *
34
+ * Only the LIGHT half is a fix. On a light panel that white landed on the
35
+ * hover tint at 1.42:1 (base) / 1.46:1 (neo) — invisible. primary-800
36
+ * clears it at 6.21:1 / 5.73:1; primary-700 was rejected because it fails
37
+ * neo at 4.41:1.
38
+ *
39
+ * The DARK half stays white deliberately. There the same white was already
40
+ * correct — 9.46:1 (base) / 8.34:1 (neo) against the dark hover tint — so
41
+ * changing it would alter a mode that was never broken. An earlier version
42
+ * of this fix used primary-200 for dark, which still passed but needlessly
43
+ * dropped contrast to 7.10 / 5.73.
44
+ *
45
+ * Named for the state it serves, not the colour: it is an accent in light
46
+ * and plain white in dark, so an appearance-based name would lie in one of
47
+ * the two modes.
48
+ *
49
+ * TEMPORARY BRIDGE: Figma has no popup-surface token for this yet, which is
50
+ * why this declaration survives (figma/variables.css is imported after this
51
+ * file and would otherwise win). Delete once Figma exports it.
52
+ */
53
+ --color-popup-item-fg-checked: light-dark(
54
+ var(--color-primary-800),
55
+ var(--color-white)
56
+ );
57
+ }
58
+
59
+ /*
60
+ * Panel foundation. Surface only — placement animation stays in the
61
+ * component's tv() slots because it differs per Zag machine.
62
+ *
63
+ * Height is capped at the space the positioner actually measured
64
+ * (--available-height, set by Zag/Floating UI) rather than a fixed height or
65
+ * a magic pixel value, so a 2-option list is short and a 50-option list
66
+ * scrolls instead of running off-screen.
67
+ */
68
+ @utility popup-surface-base {
69
+ background-color: var(--color-popup-bg);
70
+ border-width: var(--border-width-popup);
71
+ border-style: solid;
72
+ border-color: var(--color-popup-border);
73
+ border-radius: var(--radius-popup);
74
+ box-shadow: var(--shadow-popup);
75
+ padding: var(--padding-popup-viewport);
76
+ max-height: var(--available-height);
77
+ overflow-y: auto;
78
+ overscroll-behavior: contain;
79
+ z-index: calc(var(--z-popup) + var(--layer-index, 0));
80
+
81
+ /* The panel takes DOM focus for keyboard navigation, but that focus is
82
+ * never the thing the user should see — the highlighted option is. */
83
+ outline: none;
84
+
85
+ /* Scale from the trigger, whichever side the panel flipped to. */
86
+ transform-origin: var(--transform-origin);
87
+ }
88
+
89
+ /*
90
+ * Per-size scale. Applied to the panel so every option inside inherits it —
91
+ * this is what ties the open dropdown's proportions to the size of the
92
+ * control that opened it. Each size also matches the panel's corner radius to
93
+ * the trigger's radius at the same size.
94
+ */
95
+ @utility popup-size-xs {
96
+ --popup-item-x: var(--padding-popup-item-x-xs);
97
+ --popup-item-y: var(--padding-popup-item-y-xs);
98
+ --popup-item-gap: var(--spacing-popup-item-xs);
99
+
100
+ border-radius: var(--radius-popup-xs);
101
+ }
102
+
103
+ @utility popup-size-sm {
104
+ --popup-item-x: var(--padding-popup-item-x-sm);
105
+ --popup-item-y: var(--padding-popup-item-y-sm);
106
+ --popup-item-gap: var(--spacing-popup-item-sm);
107
+
108
+ border-radius: var(--radius-popup-sm);
109
+ }
110
+
111
+ @utility popup-size-md {
112
+ --popup-item-x: var(--padding-popup-item-x-md);
113
+ --popup-item-y: var(--padding-popup-item-y-md);
114
+ --popup-item-gap: var(--spacing-popup-item-md);
115
+
116
+ border-radius: var(--radius-popup-md);
117
+ }
118
+
119
+ @utility popup-size-lg {
120
+ --popup-item-x: var(--padding-popup-item-x-lg);
121
+ --popup-item-y: var(--padding-popup-item-y-lg);
122
+ --popup-item-gap: var(--spacing-popup-item-lg);
123
+
124
+ border-radius: var(--radius-popup-lg);
125
+ }
126
+
127
+ /*
128
+ * Option foundation.
129
+ *
130
+ * Two independent states, never conflated:
131
+ * - highlighted (pointer hover OR keyboard cursor) → background tint
132
+ * - checked (current selection) → indicator + accent fg
133
+ * They can co-occur, and the indicator means selection is never signalled by
134
+ * colour alone.
135
+ */
136
+ @utility popup-item-base {
137
+ position: relative;
138
+ display: flex;
139
+ align-items: center;
140
+ width: 100%;
141
+ border-radius: var(--radius-popup-item);
142
+ color: var(--color-popup-item-fg);
143
+
144
+ /* --popup-item-x/y/gap are set per size by the panel's popup-size-*;
145
+ * md is the fallback for a panel that declares no size. */
146
+ padding: var(--popup-item-y, var(--padding-popup-item-y-md))
147
+ var(--popup-item-x, var(--padding-popup-item-x-md));
148
+ gap: var(--popup-item-gap, var(--spacing-popup-item-md));
149
+
150
+ /* Permanent gutter for the selection indicator. */
151
+ padding-inline-end: calc(
152
+ var(--popup-item-x, var(--padding-popup-item-x-md)) +
153
+ var(--size-popup-indicator)
154
+ );
155
+
156
+ /* Every popup option is clickable — signal it like any other control. */
157
+ cursor: pointer;
158
+ user-select: none;
159
+
160
+ /* Highlight is the focus affordance; a second ring on top of it reads as
161
+ * two selected rows. */
162
+ outline: none;
163
+ }
@@ -1,5 +1,5 @@
1
1
  @import "./_form-control.css";
2
- @import "./_icon-button.css";
2
+ @import "./_popup-surface.css";
3
3
 
4
4
  @import "./atoms/_badge.css";
5
5
  @import "./atoms/_button.css";
@@ -19,6 +19,7 @@
19
19
  @import "./molecules/_accordion.css";
20
20
  @import "./molecules/_breadcrumb.css";
21
21
  @import "./molecules/_carousel.css";
22
+ @import "./molecules/_chart.css";
22
23
  @import "./molecules/_color-select.css";
23
24
  @import "./molecules/_combobox.css";
24
25
  @import "./molecules/_dialog.css";
@@ -30,7 +31,6 @@
30
31
  @import "./molecules/_tabs.css";
31
32
  @import "./molecules/_product-card.css";
32
33
  @import "./molecules/_slider.css";
33
- @import "./molecules/_search-form.css";
34
34
  @import "./molecules/_select.css";
35
35
  @import "./molecules/_phone-input.css";
36
36
  @import "./molecules/_steps.css";
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Chart — PROTOTYPE tokens (not yet exported from Figma; once the MVP look is
3
+ * signed off, mirror these into Figma via the figma-token-binding skill).
4
+ *
5
+ * Series palette: six fixed-order categorical hues for data identity. The
6
+ * exact primitive steps were chosen so the SAME values pass the dataviz
7
+ * six-checks validator (lightness band, chroma floor, adjacent-pair CVD
8
+ * separation, normal-vision floor, >=3:1 surface contrast) on BOTH the light
9
+ * (white) and dark (gray-950) chart surfaces — hence no light-dark() split.
10
+ *
11
+ * `--color-primary` (blue-300/sky-300) is deliberately NOT series-1: it sits
12
+ * outside the chart lightness band in light mode. Brand themes that want
13
+ * branded charts should override `--color-chart-series-*` with steps that
14
+ * re-pass the validator, not alias the brand accent directly.
15
+ */
16
+
17
+ @theme static {
18
+ /* Reference layer — series identity, assigned in fixed order. The palette is
19
+ * six entries and TanStack indexes it modulo its length (scales.js), so a 7th
20
+ * distinct series wraps back onto series-1 rather than erroring. Keep charts
21
+ * to <=6 series; Chart warns in dev when a dataset exceeds that.
22
+ *
23
+ * Note: `--color-blue-500` is re-declared by figma/variables.css, which is
24
+ * imported after this file — series-1 therefore resolves to the Figma step
25
+ * (chroma 0.188), not Tailwind's default (chroma 0.214). Series 2-6 have no
26
+ * Figma counterpart and resolve to Tailwind defaults. Re-run the dataviz
27
+ * validator against these *resolved* values before treating the set as
28
+ * signed off. */
29
+ --color-chart-series-1: var(--color-blue-500);
30
+ --color-chart-series-2: var(--color-orange-600);
31
+ --color-chart-series-3: var(--color-emerald-600);
32
+ --color-chart-series-4: var(--color-violet-500);
33
+ --color-chart-series-5: var(--color-rose-500);
34
+ --color-chart-series-6: var(--color-cyan-600);
35
+
36
+ /* Derived layer — chart chrome and tooltip surface. Axis/tick/legend text
37
+ * renders at small sizes inside the SVG, so it wears primary ink rather than
38
+ * the secondary tone.
39
+ *
40
+ * Caveat on the contrast math: TanStack composites this color before it
41
+ * paints — tick/legend labels at fillOpacity 0.68, axis lines at
42
+ * strokeOpacity 0.28 (scene.js). So the *rendered* label is fg-primary at 68%
43
+ * over the surface, not fg-primary itself, and it does not reach the repo's
44
+ * 90 Lc gold gate on its own. Fixing that properly means compensating for the
45
+ * library opacity (or overriding it), not swapping this token — tracked in
46
+ * https://github.com/TechsioCZ/new-engine/issues/608 rather than silently
47
+ * claimed as passing. */
48
+ --color-chart-fg: var(--color-fg-primary);
49
+ --color-chart-tooltip-bg: var(--color-tooltip-bg);
50
+ --color-chart-tooltip-fg: var(--color-tooltip-fg);
51
+ --color-chart-tooltip-border: var(--color-tooltip-border-outline);
52
+ --radius-chart-tooltip: var(--radius-tooltip);
53
+ --text-chart-tooltip: var(--text-tooltip-md);
54
+ --padding-chart-tooltip: var(--padding-tooltip-md);
55
+ --border-width-chart-tooltip: var(--border-width-tooltip);
56
+ --font-chart-tooltip: var(--font-body);
57
+ --font-weight-chart-tooltip: var(--font-weight-medium);
58
+ }
59
+
60
+ /*
61
+ * Bridge our series tokens into TanStack Charts' categorical palette
62
+ * variables (`--ts-chart-1..6`). Axis text, muted labels and grid lines
63
+ * inherit `currentColor`, so the host also carries `text-chart-fg`.
64
+ */
65
+ @utility chart-base {
66
+ --ts-chart-1: var(--color-chart-series-1);
67
+ --ts-chart-2: var(--color-chart-series-2);
68
+ --ts-chart-3: var(--color-chart-series-3);
69
+ --ts-chart-4: var(--color-chart-series-4);
70
+ --ts-chart-5: var(--color-chart-series-5);
71
+ --ts-chart-6: var(--color-chart-series-6);
72
+ }
73
+
74
+ /*
75
+ * Surface styling for the library's native HTML tooltip element.
76
+ *
77
+ * `!important` is load-bearing, not defensive: TanStack's `createTooltip()`
78
+ * writes background/color/border/border-radius/padding and a `font` shorthand
79
+ * directly onto `element.style`, then only *appends* this class. Inline styles
80
+ * beat class rules, so without `!important` every declaration below is dead and
81
+ * the tooltip renders in the system `Canvas`/`CanvasText` colors — visible as an
82
+ * unthemed tooltip under the neo/cyber brands and in dark mode. The `font`
83
+ * shorthand also resets font-size, so that too must win.
84
+ */
85
+ @utility chart-tooltip {
86
+ background: var(--color-chart-tooltip-bg) !important;
87
+ color: var(--color-chart-tooltip-fg) !important;
88
+ border: var(--border-width-chart-tooltip) solid
89
+ var(--color-chart-tooltip-border) !important;
90
+ border-radius: var(--radius-chart-tooltip) !important;
91
+ padding: var(--padding-chart-tooltip) !important;
92
+ /* The inline `font` shorthand sets family, weight, size and line-height in
93
+ * one go, so countering only the size would leave the chart tooltip in
94
+ * system-ui while every other tooltip in the library uses --font-body. */
95
+ font-family: var(--font-chart-tooltip) !important;
96
+ font-size: var(--text-chart-tooltip) !important;
97
+ font-weight: var(--font-weight-chart-tooltip) !important;
98
+ }
@@ -4,10 +4,7 @@
4
4
  * Kept here:
5
5
  * - `--padding-combobox-input-{size}` semantic aliases (Figma exports
6
6
  * the shared per-size spacing axis).
7
- * - `--padding-combobox-item-{size}` combined shorthands (Figma splits
8
- * the item padding into x + per-size y).
9
7
  * - `--padding-combobox-trigger` composite.
10
- * - `--z-combobox-content` layering (code-side).
11
8
  */
12
9
 
13
10
  @theme static {
@@ -15,16 +12,7 @@
15
12
  --padding-combobox-input-md: var(--spacing-combobox-md);
16
13
  --padding-combobox-input-lg: var(--spacing-combobox-lg);
17
14
 
18
- --padding-combobox-item-sm: var(--spacing-combobox-item-padding-y-sm)
19
- var(--spacing-combobox-item-padding-x);
20
- --padding-combobox-item-md: var(--spacing-combobox-item-padding-y-md)
21
- var(--spacing-combobox-item-padding-x);
22
- --padding-combobox-item-lg: var(--spacing-combobox-item-padding-y-lg)
23
- var(--spacing-combobox-item-padding-x);
24
-
25
15
  --padding-combobox-trigger: 0 var(--spacing-100);
26
-
27
- --z-combobox-content: 20;
28
16
  }
29
17
 
30
18
  /* Semantic tokens for combobox icons */
@@ -3,12 +3,16 @@
3
3
  *
4
4
  * Kept here:
5
5
  * - semantic glyph @utility aliases.
6
+ * - `--text-menu-xs` — Figma exports sm/md/lg for this component; xs was
7
+ * added code-side alongside DataTable's xs-sized column-settings menu.
6
8
  */
7
9
 
8
10
  @theme static {
9
11
  /* Tailwind's h- utility doesn't read the --size-* namespace; alias the
10
12
  * Figma token into --height-* so `h-menu-separator` keeps working. */
11
13
  --height-menu-separator: var(--size-menu-separator-height);
14
+
15
+ --text-menu-xs: var(--text-xs);
12
16
  }
13
17
 
14
18
  /* Semantic tokens for menu icons */
@@ -4,23 +4,12 @@
4
4
  * Kept here:
5
5
  * - `--color-select-danger` — helper-text color seed (Figma has only
6
6
  * border validation colors).
7
- * - `--padding-select-item` composite bridge (Figma splits x/y).
8
- * - `--spacing-content` — consumed as a raw var() inside calc() in the
9
- * TSX; aliases Figma's --spacing-select-content.
10
- * - `--z-content` layering (code-side).
11
7
  */
12
8
 
13
9
  @theme static {
14
10
  --color-select-danger: var(--color-danger);
15
-
16
- --padding-select-item: var(--padding-select-item-y) var(--padding-select-item-x);
17
-
18
- --spacing-content: var(--spacing-select-content);
19
-
20
- --z-content: 50;
21
11
  }
22
12
 
23
-
24
13
  /* === ICONS === */
25
14
  @utility token-icon-select-indicator {
26
15
  @apply token-icon-chevron-down;
@@ -14,4 +14,21 @@
14
14
  var(--padding-table-cell-md-x);
15
15
  --padding-table-cell-lg: var(--padding-table-cell-lg-y)
16
16
  var(--padding-table-cell-lg-x);
17
+
18
+ /*
19
+ * Foreground for a selected row. Figma exports
20
+ * --color-table-row-bg-selected but has no `fg` counterpart, so
21
+ * `text-table-row-fg-selected` in table.tsx generated no utility at all and
22
+ * selected rows silently kept their normal text colour on the filled brand
23
+ * background. Reported by review; this restores the intended pairing.
24
+ *
25
+ * White clears AA against every selected background the row can have:
26
+ * base light #155dfc 5.24:1, base dark #0069a8 5.86:1, neo #e60101 4.81:1
27
+ * in both modes. Mode-invariant, because the selected fill stays a solid
28
+ * brand colour in light and dark alike.
29
+ *
30
+ * TEMPORARY BRIDGE: delete once Figma exports color/table/row/fg/selected —
31
+ * figma/variables.css is imported after this file and would win.
32
+ */
33
+ --color-table-row-fg-selected: var(--color-white);
17
34
  }
@@ -9,17 +9,42 @@
9
9
  */
10
10
 
11
11
  [data-theme="neo"] {
12
- --color-badge-fg-primary: var(--color-fg-reverse);
12
+ --color-bg-danger-active: light-dark(oklch(0.584 0.191 22.13), oklch(0.881 0.063 18.416));
13
+ --color-bg-danger-hover: light-dark(oklch(0.624 0.19 22.474), oklch(0.855 0.079 18.827));
14
+ --color-bg-light-danger-active: light-dark(oklch(0.685 0.114 22.469), oklch(0.962 0.019 25.602));
15
+ --color-bg-light-danger-base: oklch(0.9 0.048 18.09);
16
+ --color-bg-light-danger-hover: light-dark(oklch(0.725 0.114 22.247), oklch(0.953 0.023 24.126));
13
17
  --color-bg-light-primary-active: var(--color-primary-300);
14
18
  --color-bg-light-primary-base: var(--color-primary-100);
15
19
  --color-bg-light-primary-hover: var(--color-primary-200);
20
+ --color-bg-light-secondary-active: light-dark(oklch(0.685 0.128 47.292), oklch(0.97 0.107 105.368));
21
+ --color-bg-light-secondary-base: oklch(0.893 0.063 56.696);
22
+ --color-bg-light-secondary-hover: light-dark(oklch(0.726 0.128 47.749), oklch(0.97 0.107 105.368));
23
+ --color-bg-light-tertiary-active: light-dark(oklch(0.802 0.073 346.374), oklch(0.884 0.064 6.283));
24
+ --color-bg-light-tertiary-base: oklch(0.941 0.034 344.058);
25
+ --color-bg-light-tertiary-hover: light-dark(oklch(0.842 0.072 346.249), oklch(0.857 0.079 9.107));
26
+ --color-bg-light-warning-active: light-dark(oklch(0.775 0.11 86.269), oklch(0.975 0.117 107.339));
27
+ --color-bg-light-warning-base: oklch(0.928 0.073 92.942);
28
+ --color-bg-light-warning-hover: light-dark(oklch(0.816 0.11 86.477), oklch(0.975 0.117 107.339));
16
29
  --color-bg-outlined-primary-active: var(--color-primary-200);
17
30
  --color-bg-outlined-primary-hover: var(--color-primary-100);
18
31
  --color-bg-primary-active: var(--color-primary-800);
19
32
  --color-bg-primary-base: var(--color-primary-600);
20
33
  --color-bg-primary-hover: var(--color-primary-700);
21
- --color-button-fg-primary: var(--color-fg-reverse);
34
+ --color-bg-tertiary-active: light-dark(oklch(0.704 0.119 346.312), oklch(0.769 0.142 7.776));
35
+ --color-bg-tertiary-hover: light-dark(oklch(0.743 0.12 345.839), oklch(0.747 0.158 9.988));
36
+ --color-bg-warning-active: light-dark(oklch(0.678 0.142 76.945), oklch(0.937 0.199 105.01));
37
+ --color-bg-warning-hover: light-dark(oklch(0.718 0.149 79.256), oklch(0.909 0.189 99.865));
38
+ --color-fg-accent-danger: oklch(0.452 0.066 4.881);
22
39
  --color-fg-accent-primary: var(--color-primary-600);
40
+ --color-fg-accent-secondary: oklch(0.447 0.076 49.767);
41
+ --color-fg-accent-success: light-dark(var(--color-success-500), var(--color-success-300));
42
+ --color-fg-accent-tertiary: oklch(0.511 0.054 323.997);
43
+ --color-fg-accent-warning: oklch(0.492 0.079 93.623);
44
+ --color-fg-on-primary-indicator: light-dark(var(--color-fg-reverse), var(--color-white));
45
+ --color-fg-on-primary-solid: light-dark(var(--color-fg-reverse), var(--color-white));
46
+ --color-fg-on-primary-solid-neo: light-dark(var(--color-fg-reverse), var(--color-white));
47
+ --color-fill-selected: var(--color-primary-600);
23
48
  --color-primary-100: oklch(0.936 0.032 17.738);
24
49
  --color-primary-200: oklch(0.883 0.062 18.386);
25
50
  --color-primary-300: oklch(0.805 0.111 19.782);
@@ -29,21 +54,118 @@
29
54
  --color-primary-700: light-dark(oklch(0.509 0.209 28.513), oklch(0.583 0.239 28.476));
30
55
  --color-primary-800: light-dark(oklch(0.445 0.177 26.787), oklch(0.509 0.209 28.513));
31
56
  --color-primary-900: light-dark(oklch(0.397 0.141 25.714), oklch(0.445 0.177 26.787));
32
- --color-primary-alpha-10: oklch(0.581 0.238 29.234 / 0.1);
33
- --color-product-card-button-cart-fg: var(--color-fg-reverse);
34
- --color-radio-card-addon-fg-solid-checked: var(--color-fg-reverse);
35
- --color-radio-card-item-description-fg-solid-checked: var(--color-fg-reverse);
36
- --color-radio-card-item-indicator-bg-solid-checked: var(--color-fg-reverse);
37
- --color-radio-card-item-indicator-border-solid-checked: var(--color-fg-reverse);
38
- --color-secondary-100: #fef3c7;
39
- --color-secondary-200: #fde68a;
40
- --color-secondary-300: #fcd34d;
41
- --color-secondary-400: #fbbf24;
42
- --color-secondary-500: #f59e0b;
43
- --color-secondary-600: #d97706;
44
- --color-secondary-700: #b45309;
45
- --color-secondary-800: #92400e;
46
- --color-secondary-900: #78350f;
47
- --color-steps-indicator-fg-solid: var(--color-fg-reverse);
48
- --color-tabs-trigger-fg-solid-selected: var(--color-fg-reverse);
57
+ --color-secondary-100: oklch(0.962 0.058 95.617);
58
+ --color-secondary-200: oklch(0.924 0.115 95.746);
59
+ --color-secondary-300: oklch(0.879 0.153 91.605);
60
+ --color-secondary-400: oklch(0.837 0.164 84.429);
61
+ --color-secondary-500: oklch(0.769 0.165 70.08);
62
+ --color-secondary-600: oklch(0.666 0.157 58.318);
63
+ --color-secondary-700: oklch(0.555 0.146 48.998);
64
+ --color-secondary-800: oklch(0.473 0.125 46.201);
65
+ --color-secondary-900: oklch(0.414 0.105 45.904);
66
+ }
67
+
68
+ [data-theme="business"] {
69
+ --color-base: var(--color-white);
70
+ --color-base-reverse: var(--color-gray-950);
71
+ --color-bg-badge-danger-solid: var(--color-danger-300);
72
+ --color-bg-badge-primary-solid: var(--color-primary-800);
73
+ --color-bg-badge-secondary-solid: var(--color-secondary-800);
74
+ --color-bg-danger-active: var(--color-danger-500);
75
+ --color-bg-danger-hover: var(--color-danger-400);
76
+ --color-bg-disabled: var(--color-neutral-100);
77
+ --color-bg-light-danger-active: var(--color-danger-300);
78
+ --color-bg-light-danger-base: var(--color-danger-100);
79
+ --color-bg-light-danger-hover: var(--color-danger-200);
80
+ --color-bg-light-primary-active: var(--color-primary-300);
81
+ --color-bg-light-primary-base: var(--color-primary-100);
82
+ --color-bg-light-primary-hover: var(--color-primary-200);
83
+ --color-bg-light-secondary-active: var(--color-secondary-300);
84
+ --color-bg-light-secondary-base: var(--color-secondary-100);
85
+ --color-bg-light-secondary-hover: var(--color-secondary-200);
86
+ --color-bg-light-tertiary-active: var(--color-tertiary-300);
87
+ --color-bg-light-tertiary-base: var(--color-tertiary-100);
88
+ --color-bg-light-tertiary-hover: var(--color-tertiary-200);
89
+ --color-bg-light-warning-active: var(--color-warning-300);
90
+ --color-bg-light-warning-base: var(--color-warning-100);
91
+ --color-bg-light-warning-hover: var(--color-warning-200);
92
+ --color-bg-outlined-danger-active: oklch(0.7 0.191 23.399 / 0.122);
93
+ --color-bg-outlined-danger-hover: oklch(0.702 0.19 23.327 / 0.161);
94
+ --color-bg-outlined-primary-active: var(--color-primary-200);
95
+ --color-bg-outlined-primary-hover: var(--color-primary-100);
96
+ --color-bg-outlined-secondary-active: var(--color-secondary-200);
97
+ --color-bg-outlined-secondary-hover: var(--color-secondary-100);
98
+ --color-bg-outlined-tertiary-active: oklch(0.816 0.114 343.311 / 0.122);
99
+ --color-bg-outlined-tertiary-hover: oklch(0.819 0.125 347.339 / 0.161);
100
+ --color-bg-outlined-warning-active: oklch(0.789 0.163 80.949 / 0.122);
101
+ --color-bg-outlined-warning-hover: oklch(0.788 0.162 82.711 / 0.161);
102
+ --color-bg-primary-active: var(--color-primary-700);
103
+ --color-bg-primary-base: var(--color-primary-500);
104
+ --color-bg-primary-hover: var(--color-primary-600);
105
+ --color-bg-scrim: oklch(0.129 0.041 264.695 / 0.1);
106
+ --color-bg-secondary-active: var(--color-secondary-700);
107
+ --color-bg-secondary-hover: var(--color-secondary-600);
108
+ --color-bg-success: var(--color-success-500);
109
+ --color-bg-switch-checked-hover: var(--color-success-600);
110
+ --color-bg-switch-hover: var(--color-neutral-300);
111
+ --color-bg-switch-invalid: var(--color-danger-400);
112
+ --color-bg-tertiary-active: var(--color-tertiary-500);
113
+ --color-bg-tertiary-hover: var(--color-tertiary-400);
114
+ --color-bg-warning-active: var(--color-warning-500);
115
+ --color-bg-warning-hover: var(--color-warning-400);
116
+ --color-border-danger-focus: var(--color-danger-400);
117
+ --color-border-danger-hover: var(--color-danger-500);
118
+ --color-border-disabled: var(--color-neutral-300);
119
+ --color-border-primary: var(--color-black-15);
120
+ --color-border-success-focus: var(--color-success-500);
121
+ --color-border-success-hover: var(--color-success-600);
122
+ --color-border-warning-focus: var(--color-warning-500);
123
+ --color-border-warning-hover: var(--color-warning-600);
124
+ --color-fg-accent-danger: var(--color-danger-600);
125
+ --color-fg-accent-primary: var(--color-primary-600);
126
+ --color-fg-accent-secondary: var(--color-secondary-700);
127
+ --color-fg-accent-success: var(--color-success-600);
128
+ --color-fg-accent-tertiary: var(--color-tertiary-600);
129
+ --color-fg-accent-warning: var(--color-warning-600);
130
+ --color-fg-badge-on-solid: var(--color-fg-reverse);
131
+ --color-fg-icon-tree: var(--color-fg-primary);
132
+ --color-fg-on-accent-solid: var(--color-fg-reverse);
133
+ --color-fg-on-primary-solid-neo: var(--color-fg-reverse);
134
+ --color-fg-primary: var(--color-slate-950);
135
+ --color-fg-reverse: var(--color-white);
136
+ --color-fg-status-error: var(--color-danger-400);
137
+ --color-fg-status-success: var(--color-success-500);
138
+ --color-fg-status-warning: var(--color-warning-500);
139
+ --color-fill-active: var(--color-black-15);
140
+ --color-fill-base: var(--color-black-5);
141
+ --color-fill-borderless-active: oklch(0 0 0 / 0);
142
+ --color-fill-borderless-base: oklch(0 0 0 / 0);
143
+ --color-fill-borderless-hover: oklch(0 0 0 / 0);
144
+ --color-fill-highlight: var(--color-neutral-300);
145
+ --color-fill-hover: var(--color-primary-200);
146
+ --color-fill-overlay: var(--color-neutral-200);
147
+ --color-fill-selected: var(--color-primary-600);
148
+ --color-fill-surface: var(--color-neutral-100);
149
+ --color-link: var(--color-blue-500);
150
+ --color-primary-100: oklch(0.952 0.016 253.903);
151
+ --color-primary-200: oklch(0.877 0.039 250.677);
152
+ --color-primary-300: oklch(0.774 0.066 247.294);
153
+ --color-primary-400: oklch(0.666 0.095 248.083);
154
+ --color-primary-500: oklch(0.522 0.117 253.551);
155
+ --color-primary-600: oklch(0.452 0.106 253.721);
156
+ --color-primary-700: oklch(0.391 0.097 256.616);
157
+ --color-primary-800: oklch(0.339 0.082 255.266);
158
+ --color-primary-900: oklch(0.287 0.065 255.034);
159
+ --color-ring-default: var(--color-black);
160
+ --color-secondary-100: oklch(0.957 0.017 183.538);
161
+ --color-secondary-200: oklch(0.886 0.041 181.135);
162
+ --color-secondary-300: oklch(0.78 0.072 181.145);
163
+ --color-secondary-400: oklch(0.679 0.094 181.719);
164
+ --color-secondary-500: oklch(0.593 0.097 179.623);
165
+ --color-secondary-600: oklch(0.509 0.082 181.568);
166
+ --color-secondary-700: oklch(0.445 0.073 178.22);
167
+ --color-secondary-800: oklch(0.381 0.06 182.018);
168
+ --color-secondary-900: oklch(0.327 0.051 180.942);
169
+ --color-success: var(--color-success-500);
170
+ --default-ring-color: oklch(0 0 0);
49
171
  }