@tcn/ui 0.15.0 → 0.16.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 (40) hide show
  1. package/dist/column.css +1 -1
  2. package/dist/layouts/containers/columns/column.d.ts +6 -0
  3. package/dist/layouts/containers/columns/column.d.ts.map +1 -0
  4. package/dist/layouts/containers/columns/column.js +20 -0
  5. package/dist/layouts/containers/columns/column.js.map +1 -0
  6. package/dist/layouts/containers/columns/columns.d.ts +6 -0
  7. package/dist/layouts/containers/columns/columns.d.ts.map +1 -0
  8. package/dist/layouts/containers/columns/columns.js +11 -0
  9. package/dist/layouts/containers/columns/columns.js.map +1 -0
  10. package/dist/layouts/index.d.ts +2 -2
  11. package/dist/layouts/index.d.ts.map +1 -1
  12. package/dist/layouts/index.js +23 -23
  13. package/dist/surfaces/pop_confirm/pop_confirm.js +2 -2
  14. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  15. package/dist/themes/themes/ergo/ergo_theme.js +27 -9
  16. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  17. package/package.json +1 -1
  18. package/src/layouts/__stories__/columns.stories.tsx +46 -0
  19. package/src/layouts/__stories__/rail.stories.tsx +4 -4
  20. package/src/layouts/__stories__/utils.tsx +4 -4
  21. package/src/layouts/containers/columns/column.module.css +14 -0
  22. package/src/layouts/containers/columns/column.tsx +22 -0
  23. package/src/layouts/containers/columns/columns.tsx +16 -0
  24. package/src/layouts/index.ts +2 -2
  25. package/src/surfaces/page/page.stories.tsx +32 -28
  26. package/src/surfaces/panel/__stories__/panel.stories.tsx +63 -0
  27. package/src/themes/themes/ergo/ergo_theme.css +27 -9
  28. package/dist/layouts/column/column.d.ts +0 -10
  29. package/dist/layouts/column/column.d.ts.map +0 -1
  30. package/dist/layouts/column/column.js +0 -52
  31. package/dist/layouts/column/column.js.map +0 -1
  32. package/dist/layouts/containers/side/side.d.ts +0 -6
  33. package/dist/layouts/containers/side/side.d.ts.map +0 -1
  34. package/dist/layouts/containers/side/side.js +0 -22
  35. package/dist/layouts/containers/side/side.js.map +0 -1
  36. package/dist/side.css +0 -1
  37. package/src/layouts/column/column.module.css +0 -35
  38. package/src/layouts/column/column.tsx +0 -57
  39. package/src/layouts/containers/side/side.module.css +0 -7
  40. package/src/layouts/containers/side/side.tsx +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"ergo_theme.js","sources":["../../../../src/themes/themes/ergo/tokens/theme_tokens.css?raw","../../../../src/themes/themes/ergo/tokens/system_tokens.css?raw","../../../../src/themes/themes/ergo/ergo_theme.css?raw","../../../../src/themes/themes/ergo/ergo_theme.ts"],"sourcesContent":["export default \"@layer tcn-theme {\\n :root {\\n /* ========== Ergo Palette ========== */\\n --ergo-white: #ffffff;\\n\\n --ergo-primary: #ce6b2b;\\n --ergo-primary-light: #fff7f0;\\n --ergo-primary-dark: #b86128;\\n\\n --ergo-secondary: #669eb4;\\n --ergo-secondary-light: #ecf4fb;\\n --ergo-secondary-dark: #497485;\\n\\n --ergo-tertiary: #dfd7cd;\\n --ergo-tertiary-light: #f9f4ed;\\n --ergo-tertiary-dark: #7e6c5d;\\n\\n --ergo-accent-blue: #395578;\\n --ergo-accent-blue-light: #f3f4f6;\\n --ergo-accent-blue-dark: #627083;\\n\\n --ergo-accent-green: #97bba3;\\n --ergo-accent-green-light: #eef8ef;\\n --ergo-accent-green-dark: #4f785c;\\n\\n --ergo-accent-yellow: #dbc97e;\\n --ergo-accent-yellow-light: #fef9e7;\\n --ergo-accent-yellow-dark: #82722b;\\n\\n --ergo-grey: #aaaaaa;\\n --ergo-grey-light: #d3d3d3;\\n --ergo-grey-dark: #808080;\\n\\n --ergo-status-red: #ff6565;\\n --ergo-status-red-dark: #c24848;\\n --ergo-status-red-light: #fff4f4;\\n\\n --ergo-status-yellow: #ffd439;\\n --ergo-status-yellow-dark: #dbb735;\\n --ergo-status-yellow-light: #ffeca9;\\n\\n --ergo-status-blue: var(--ergo-secondary);\\n --ergo-status-blue-dark: var(--ergo-secondary-dark);\\n --ergo-status-blue-light: var(--ergo-secondary-light);\\n\\n --ergo-status-green: #3fbc6a;\\n --ergo-status-green-dark: #2d904f;\\n --ergo-status-green-light: #87e8a8;\\n\\n --ergo-material-bg-primary: #ffffff;\\n --ergo-material-bg-secondary: #fafafa;\\n --ergo-material-bg-tertiary: #f1f1f1;\\n --ergo-material-bg-quaternary: #ffffff;\\n\\n --ergo-material-overlay: var(--ergo-secondary-dark);\\n --ergo-material-border: var(--ergo-grey);\\n --ergo-material-divider: var(--ergo-grey);\\n --ergo-material-disabled-outline: var(--ergo-grey-light);\\n --ergo-material-disabled-fill: var(--ergo-grey);\\n\\n /* ========== Ergo Text ========== */\\n --ergo-text-size-input: 12px;\\n --ergo-text-size-default: 12px;\\n --ergo-text-color-primary: var(--ergo-accent-blue);\\n --ergo-text-color-inverse: var(--ergo-white);\\n --ergo-text-color-disabled-outline: var(--ergo-grey);\\n --ergo-text-color-disabled-fill: var(--ergo-white);\\n\\n /* ========== Spacing ========== */\\n --ergo-spacing-xs: 2px;\\n --ergo-spacing-sm: 4px;\\n --ergo-spacing-md: 8px;\\n --ergo-spacing-lg: 16px;\\n --ergo-spacing-xl: 32px;\\n\\n /* ========== Sizing ========== */\\n --ergo-sizing-bar-xs: 16px;\\n --ergo-sizing-bar-sm: 24px;\\n --ergo-sizing-bar-md: 32px;\\n --ergo-sizing-bar-lg: 40px;\\n --ergo-sizing-bar-xl: 48px;\\n\\n --ergo-sizing-action-sm: 20px;\\n --ergo-sizing-action-md: 24px;\\n --ergo-sizing-action-lg: 32px;\\n\\n /* ========== Shape ========== */\\n --ergo-shape-radius-small: 2px;\\n --ergo-shape-radius-medium: 4px;\\n --ergo-shape-radius-large: 8px;\\n --ergo-shape-triangle-medium: 12px;\\n\\n /* Default Material - TODO: move to system once blackcat support material */\\n --action: var(--ergo-primary);\\n --on-action: var(--ergo-white);\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-accent-blue);\\n }\\n}\\n\"","export default \"@layer tcn-theme {\\n :root {\\n /* ========== Blackcat System Tokens ========== */\\n --scalar: 1;\\n --accent-color: var(--ergo-primary);\\n\\n /* Typography */\\n --font-color: var(--ergo-text-color-primary);\\n --font-family: \\\"Lato\\\", sans-serif;\\n --font-size: var(--ergo-text-size-default);\\n\\n /* Spacing */\\n --gap-small: var(--ergo-spacing-sm);\\n --gap-medium: var(--ergo-spacing-md);\\n --gap-large: var(--ergo-spacing-lg);\\n\\n --padding-small: var(--ergo-spacing-sm);\\n --padding-medium: var(--ergo-spacing-md);\\n --padding-large: var(--ergo-spacing-lg);\\n\\n /* Status Colors */\\n --status-color-disabled: var(--ergo-grey-light);\\n --status-color-info: var(--ergo-status-blue);\\n --status-color-warning: var(--ergo-status-yellow);\\n --status-color-positive: var(--ergo-status-green);\\n --status-color-error: var(--ergo-status-red);\\n\\n --async-color-initial: var(--ergo-grey);\\n --async-color-pending: var(--ergo-status-blue);\\n --async-color-success: var(--ergo-status-green);\\n --async-color-failed: var(--ergo-status-red);\\n\\n /* Action Severity */\\n --action-severity-dangerous: var(--ergo-status-red);\\n --action-severity-cautious: var(--ergo-status-yellow);\\n --action-severity-neutral: var(--ergo-primary);\\n --action-severity-suggested: var(--ergo-status-blue);\\n --action-severity-encouraged: var(--ergo-status-green);\\n\\n /* Palette */\\n --primary-color-faint: var(--ergo-grey-light);\\n --primary-color: var(--ergo-primary);\\n --primary-color-strong: var(--ergo-primary-dark);\\n\\n --secondary-color-faint: var(--ergo-secondary-light);\\n --secondary-color: var(--ergo-secondary);\\n --secondary-color-strong: var(--ergo-secondary-dark);\\n\\n --tertiary-color-faint: var(--ergo-tertiary-light);\\n --tertiary-color: var(--ergo-tertiary);\\n --tertiary-color-strong: var(--ergo-tertiary-dark);\\n\\n --quaternary-color-faint: var(--ergo-accent-blue-light);\\n --quaternary-color: var(--ergo-accent-blue);\\n --quaternary-color-strong: var(--ergo-accent-blue-dark);\\n\\n --background-color-primary: var(--ergo-material-bg-primary);\\n --background-color-secondary: var(--ergo-material-bg-secondary);\\n --background-color-tertiary: var(--ergo-material-bg-tertiary);\\n --background-color-quaternary: var(--ergo-material-bg-quaternary);\\n\\n /* Not sure what other text colors are needed */\\n --foreground-color-primary: var(--ergo-text-color-primary);\\n --foreground-color-secondary: var(--ergo-text-color-primary);\\n --foreground-color-tertiary: var(--ergo-text-color-primary);\\n --foreground-color-quaternary: var(--ergo-text-color-primary);\\n }\\n}\\n\"","export default \"@layer tcn-theme {\\n /* ===== CSS VARIABLES ===== */\\n\\n .tcn-theme-root {\\n font-family: var(--font-family);\\n color: var(--font-color);\\n /* TODO: move to system */\\n --action: var(--ergo-primary);\\n --on-action: var(--ergo-white);\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-accent-blue);\\n }\\n\\n /* ===== Actions ===== */\\n\\n .tcn-interactive {\\n cursor: pointer;\\n user-select: none;\\n transition:\\n transform 0.1s,\\n background 0.1s,\\n color 0.1s;\\n\\n --ink: var(--on-material);\\n --act: var(--action);\\n --mat: var(--material);\\n\\n --act-down: color-mix(in srgb, var(--mat), black 12%);\\n --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);\\n --act-focus: color-mix(in srgb, var(--mat), var(--act) 16%);\\n --act-drag: color-mix(in srgb, var(--mat), var(--act) 24%);\\n\\n background: var(--mat);\\n color: var(--ink);\\n transition:\\n background 0.1s,\\n color 0.1s;\\n\\n &:focus-visible,\\n &[data-focus-visible] {\\n background: var(--act-focus);\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n &:hover,\\n &[data-hover] {\\n background: var(--act-raised);\\n }\\n\\n &:active,\\n &[data-active] {\\n background: var(--act-down);\\n }\\n\\n &[data-is-disabled=\\\"true\\\"] {\\n pointer-events: none;\\n }\\n }\\n\\n /* ===== Base Button ===== \\n * Shared between Button and Toggle.\\n * Primarily manages button dimensions and sizing ratios.\\n */\\n .tcn-base-button {\\n --btn-size-base: 26px;\\n --btn-pad-base: 12px;\\n\\n --btn-pad-delta: 4px;\\n --btn-size-delta: 4px;\\n --btn-font-size-delta: 2px;\\n --btn-step: 1;\\n\\n /* Increase size and pad by 4px for each size \\\"step\\\" from medium */\\n --btn-pad: calc(var(--btn-pad-base) + var(--btn-pad-delta) * var(--btn-step));\\n --btn-size: calc(var(--btn-size-base) + var(--btn-size-delta) * var(--btn-step));\\n\\n border-radius: var(--ergo-shape-radius-medium);\\n min-height: var(--btn-size);\\n padding: var(--padding-small) var(--btn-pad);\\n\\n &[data-size=\\\"sm\\\"] {\\n --btn-step: -1;\\n }\\n &[data-size=\\\"md\\\"] {\\n --btn-step: 0;\\n }\\n &[data-size=\\\"lg\\\"] {\\n --btn-step: 1;\\n }\\n\\n &[data-is-utility=\\\"true\\\"] {\\n height: auto;\\n width: auto;\\n min-width: var(--btn-size);\\n padding: 0;\\n\\n /* Icon is 75% of the button size but minimum of 2px to account for border and 1px offset */\\n --util-ratio: 0.75;\\n --btn-size-base: 18px;\\n\\n font-size: calc(var(--font-size) + var(--btn-font-size-delta) * var(--btn-step));\\n .tcn-icon {\\n min-height: min(2px, calc(var(--btn-size) * var(--util-ratio)));\\n min-width: min(2px, calc(var(--btn-size) * var(--util-ratio)));\\n }\\n }\\n }\\n\\n /* ===== Button ===== \\n * Manages Hierarchy and Severity.\\n */\\n .tcn-button {\\n --btn-primary: var(--action);\\n --btn-on-primary: var(--on-action);\\n --btn-variant: var(--on-material);\\n\\n &[data-severity=\\\"dangerous\\\"] {\\n --btn-primary: var(--action-severity-dangerous);\\n --btn-variant: var(--ergo-status-red-dark);\\n }\\n &[data-severity=\\\"cautious\\\"] {\\n --btn-primary: var(--action-severity-cautious);\\n --btn-on-primary: var(--ergo-accent-blue);\\n --btn-variant: var(--ergo-status-yellow-dark);\\n }\\n &[data-severity=\\\"suggested\\\"] {\\n --btn-primary: var(--action-severity-suggested);\\n --btn-variant: var(--ergo-status-blue-dark);\\n }\\n &[data-severity=\\\"encouraged\\\"] {\\n --btn-primary: var(--action-severity-encouraged);\\n --btn-variant: var(--ergo-status-green-dark);\\n }\\n\\n &[data-hierarchy=\\\"primary\\\"] {\\n --act: var(--ergo-white);\\n --ink: var(--tcn-button-text-color, var(--btn-on-primary));\\n --mat: var(--tcn-button-color, var(--btn-primary));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-white);\\n --mat: var(--ergo-grey-light);\\n }\\n }\\n\\n &[data-hierarchy=\\\"secondary\\\"],\\n &[data-hierarchy=\\\"tertiary\\\"] {\\n --act: var(--tcn-button-color, var(--btn-variant));\\n --ink: var(--tcn-button-color, var(--btn-variant));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-grey-light);\\n }\\n }\\n\\n /* Decorations */\\n &[data-hierarchy=\\\"tertiary\\\"]:hover {\\n text-decoration: underline;\\n text-decoration-color: var(--ink);\\n text-decoration-thickness: 1px;\\n text-underline-offset: 4px;\\n }\\n\\n &[data-hierarchy=\\\"tertiary\\\"] {\\n border: 1px solid transparent;\\n }\\n\\n &[data-hierarchy=\\\"secondary\\\"] {\\n border: 1px solid var(--ink);\\n }\\n\\n &[data-hierarchy=\\\"primary\\\"] {\\n border: 1px solid var(--mat);\\n }\\n\\n transition:\\n box-shadow 0.1s,\\n transform 0.1s;\\n\\n &:hover,\\n &[data-hover] {\\n transform: translateY(-1px);\\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.12);\\n\\n /* Increases the clickable area by 2px on hover to avoid click events not firing due to the button transform y - or slight mouse wiggles */\\n :not(.tcn-select) {\\n &::before,\\n &::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n right: 0;\\n height: 4px;\\n }\\n\\n &::before {\\n top: -2px;\\n }\\n\\n &::after {\\n bottom: -2px;\\n }\\n }\\n }\\n\\n &:active,\\n &[data-active] {\\n transform: translateY(1px);\\n box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.12);\\n }\\n }\\n\\n /* @deprecated - use Button with utility prop instead */\\n .tcn-slim-button {\\n height: auto;\\n width: auto;\\n padding: 0;\\n\\n &[data-size=\\\"sm\\\"] {\\n min-height: 12px;\\n min-width: 12px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 10px;\\n min-width: 10px;\\n }\\n }\\n &[data-size=\\\"md\\\"] {\\n min-height: 18px;\\n min-width: 18px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 14px;\\n min-width: 14px;\\n }\\n }\\n\\n &[data-size=\\\"lg\\\"] {\\n min-height: 24px;\\n min-width: 24px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 20px;\\n min-width: 20px;\\n }\\n }\\n }\\n\\n .tcn-button[data-size].tcn-select {\\n padding-inline-end: 26px;\\n }\\n\\n /* Toggle */\\n .tcn-toggle {\\n --tgl-false: var(--ergo-accent-blue);\\n --tgl-true: var(--ergo-accent-blue);\\n --on-tgl-true: var(--ergo-white);\\n\\n --ink: var(--tcn-button-color, var(--tgl-false));\\n --act: var(--tcn-button-color, var(--tgl-false));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-grey-light);\\n }\\n &[data-is-selected=\\\"true\\\"] {\\n --mat: var(--tcn-button-color, var(--tgl-true));\\n --ink: var(--tcn-button-text-color, var(--ergo-white));\\n --act: var(--ergo-white);\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-white);\\n --mat: var(--ergo-grey-light);\\n }\\n }\\n }\\n\\n .tcn-fab {\\n border-radius: 50%;\\n }\\n\\n .tcn-mobile-button {\\n --btn-size-base: 44px;\\n --btn-pad-base: 16px;\\n --btn-size-delta: 8px;\\n --btn-pad-delta: 4px;\\n\\n font-size: calc(16px * var(--scalar, 1));\\n }\\n\\n .tcn-mobile-button[data-size=\\\"sm\\\"] {\\n --btn-size-base: 36px;\\n }\\n\\n .tcn-mobile-button[data-size=\\\"lg\\\"] {\\n --btn-size-base: 52px;\\n }\\n\\n .tcn-button-group .tcn-button-group-button.tcn-mobile-button {\\n --btn-size-base: 44px;\\n --btn-pad-base: 16px;\\n --btn-size-delta: 8px;\\n --btn-pad-delta: 4px;\\n\\n font-size: calc(16px * var(--scalar, 1));\\n }\\n\\n .tcn-button-group {\\n .tcn-button-group-button:hover,\\n .tcn-button-group-button:active {\\n transform: none;\\n }\\n\\n .tcn-button-group-button {\\n border-radius: 0;\\n }\\n .tcn-button-group-button:first-child {\\n border-start-start-radius: var(--ergo-shape-radius-medium);\\n border-end-start-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-button-group-button:last-child {\\n border-start-end-radius: var(--ergo-shape-radius-medium);\\n border-end-end-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"] {\\n border: 0;\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"]:not(:last-child) {\\n border-right: 1px solid var(--on-mat-faint);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"]:not(:first-child) {\\n border-left: 1px solid var(--on-mat-faint);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"primary\\\"]:not(:last-child) {\\n border-right: 1px solid var(--act-down);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"primary\\\"]:not(:first-child) {\\n border-left: 1px solid var(--act-down);\\n }\\n }\\n\\n .tcn-select-group {\\n .tcn-select-group-option:hover,\\n .tcn-select-group-option:active {\\n transform: none;\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"] {\\n color: var(--act);\\n border-color: var(--act);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"]:hover {\\n background: var(--act-faint);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"]:active {\\n background: var(--act-down);\\n color: var(--on-act);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"][data-is-disabled=\\\"true\\\"] {\\n color: var(--ergo-material-disabled-outline);\\n border: 1px solid var(--ergo-material-disabled-outline);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"primary\\\"][data-is-disabled=\\\"true\\\"] {\\n background: var(--ergo-material-disabled-outline);\\n color: white;\\n border: 1px solid var(--ergo-material-disabled-outline);\\n }\\n\\n .tcn-select-group-option {\\n border-radius: 0;\\n }\\n .tcn-select-group-option:first-child {\\n border-top-left-radius: var(--ergo-shape-radius-medium);\\n border-bottom-left-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-select-group-option:last-child {\\n border-top-right-radius: var(--ergo-shape-radius-medium);\\n border-bottom-right-radius: var(--ergo-shape-radius-medium);\\n }\\n }\\n\\n /* ===== Tabs ===== */\\n .tcn-tabs-bar {\\n .tcn-tabs-list {\\n .tcn-tab-item {\\n min-height: 24px;\\n padding: 0px var(--padding-medium);\\n text-decoration: none;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n }\\n }\\n }\\n\\n /* Default */\\n .tcn-tabs-bar[data-variant=\\\"default\\\"] {\\n .tcn-tabs-list {\\n .tcn-tab-item {\\n box-sizing: border-box;\\n border: none;\\n padding: 0px var(--padding-medium);\\n border-radius: 0;\\n }\\n .tcn-tab-item[data-is-selected=\\\"true\\\"] {\\n --mat: var(--tcn-button-color, var(--material));\\n --ink: var(--tcn-button-text-color, var(--ergo-primary));\\n --act: var(--ergo-primary);\\n }\\n\\n .tcn-tab-item:focus-visible {\\n z-index: 2;\\n }\\n /* Hover Indicator */\\n .tcn-tab-item[data-is-selected=\\\"false\\\"]:hover::after,\\n .tcn-tab-item[data-is-selected=\\\"false\\\"]:focus-visible::after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n left: 0;\\n right: 0;\\n bottom: 0px;\\n height: 1px;\\n background: var(--ergo-accent-blue);\\n pointer-events: none;\\n width: 100%;\\n z-index: 3;\\n }\\n\\n /* Indicator */\\n &::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: -1px;\\n left: 0;\\n min-height: 2px;\\n transform: translateX(var(--tabs-active-rectangle-position-x, 0));\\n width: var(--tabs-active-rectangle-width, 0);\\n background: var(--ergo-primary);\\n pointer-events: none;\\n border-bottom-left-radius: 2px;\\n border-bottom-right-radius: 2px;\\n transition:\\n transform 300ms ease-in-out,\\n width 300ms ease-in-out;\\n will-change: transform, width;\\n z-index: 2;\\n }\\n }\\n\\n /* Rail */\\n &::before {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 0px;\\n left: 0;\\n width: 100%;\\n height: 1px;\\n background: var(--ergo-material-divider);\\n pointer-events: none;\\n z-index: 1;\\n }\\n }\\n\\n /* Inline */\\n .tcn-tabs-bar[data-variant=\\\"inline\\\"] {\\n font-size: 12px;\\n min-width: min-content;\\n width: auto;\\n flex-grow: 0;\\n border-radius: 6px;\\n border: 1px solid var(--on-material);\\n padding: 2px;\\n\\n .tcn-tabs-list {\\n height: 20px;\\n gap: var(--ergo-spacing-xs);\\n .tcn-tab-item {\\n border-radius: var(--ergo-shape-radius-medium);\\n min-height: 20px;\\n }\\n }\\n }\\n\\n /* ===== MATERIAL ===== */\\n\\n .material {\\n background-color: var(--material);\\n color: var(--on-material);\\n }\\n\\n /* Divider: use material-line; emphasis variants for strong/faint */\\n .tcn-divider-line,\\n .tcn-divider-line[data-emphasis=\\\"normal\\\"] {\\n background: var(--material-line);\\n }\\n .tcn-divider-line[data-emphasis=\\\"strong\\\"] {\\n background: color-mix(in srgb, var(--material-line) 80%, black 20%);\\n }\\n .tcn-divider-line[data-emphasis=\\\"faint\\\"] {\\n background: color-mix(in srgb, var(--material-line) 80%, white 20%);\\n }\\n\\n /* ===== SURFACES ===== */\\n .tcn-draggable[data-is-draggable=\\\"true\\\"] {\\n .tcn-drag-handle {\\n cursor: move;\\n }\\n }\\n\\n .tcn-frame-dialog {\\n border: inherit;\\n }\\n\\n .tcn-tethered {\\n /* Managing offset of the indicator in relation for the tethered element\\n pad defaults to 0, but should be set depending on the surface */\\n\\n --tether-pad-x: 0px;\\n --tether-pad-y: 0px;\\n --indicator-pad-x: 0px;\\n --indicator-pad-y: 0px;\\n --tether-pad-size: 0px;\\n --tether-pad-pos: var(--tether-pad-size);\\n --tether-pad-neg: calc(-1 * var(--tether-pad-size));\\n left: calc(\\n var(--tether-pad-x, 0) -\\n var(--indicator-pad-x, 0) +\\n var(--tethered-left, 0)\\n );\\n top: calc(var(--tether-pad-y, 0) + var(--tethered-top, 0));\\n\\n :where(.tcn-tethered-origin-indicator) {\\n left: calc(var(--indicator-pad-x, 0) + var(--tethered-origin-delta-x, 0));\\n top: calc(var(--indicator-pad-y, 0) + var(--tethered-origin-delta-y, 0));\\n }\\n\\n &[data-h-anchor=\\\"start\\\"] {\\n --tether-pad-x: var(--tether-pad-pos);\\n }\\n\\n &[data-h-anchor=\\\"end\\\"] {\\n --tether-pad-x: var(--tether-pad-neg);\\n }\\n\\n &[data-h-origin=\\\"start\\\"] {\\n --indicator-pad-x: var(--tether-pad-pos);\\n }\\n\\n &[data-h-origin=\\\"end\\\"] {\\n --indicator-pad-x: var(--tether-pad-neg);\\n }\\n\\n &[data-v-origin=\\\"center\\\"] {\\n --indicator-pad-x: 0px;\\n --tether-pad-x: 0px;\\n &[data-v-anchor=\\\"top\\\"] {\\n --tether-pad-y: var(--tether-pad-pos);\\n }\\n\\n &[data-v-anchor=\\\"bottom\\\"] {\\n --tether-pad-y: var(--tether-pad-neg);\\n }\\n }\\n\\n &[data-anchor-direction=\\\"bottom\\\"] {\\n padding-bottom: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"top\\\"] {\\n padding-top: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"start\\\"] {\\n padding-left: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"end\\\"] {\\n padding-right: var(--ergo-shape-triangle-medium);\\n }\\n }\\n\\n .tcn-tooltip {\\n --tether-pad-size: 16px;\\n background: transparent;\\n --material: var(--ergo-secondary-dark);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n .tcn-tooltip-label {\\n box-shadow: 0px 4px 7px 0px rgba(65, 65, 65, 0.66);\\n color: var(--on-material);\\n background: var(--material);\\n border-radius: var(--ergo-shape-radius-medium);\\n padding: var(--padding-medium);\\n }\\n }\\n\\n .tcn-list {\\n gap: var(--gap-medium);\\n .tcn-item {\\n height: 24px;\\n padding: 0px var(--padding-medium);\\n border-radius: var(--ergo-shape-radius-medium);\\n }\\n }\\n /* Rail: */\\n .tcn-utility-strip {\\n min-width: var(--ergo-sizing-bar-md);\\n }\\n\\n .tcn-utility-strip,\\n .tcn-side {\\n padding-block: var(--padding-medium);\\n gap: var(--gap-medium);\\n }\\n\\n /* Scaffold: */\\n .tcn-footer,\\n .tcn-header,\\n .tcn-utility-bar {\\n padding-inline: var(--pad-inline, var(--padding-medium));\\n gap: var(--gap-medium);\\n }\\n\\n .tcn-utility-bar {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n .tcn-footer,\\n .tcn-header {\\n min-height: var(--ergo-sizing-bar-lg);\\n }\\n\\n .tcn-scaffold {\\n --scaffold-divide-footer: var(--divide-footer, 1);\\n --scaffold-divide-header: var(--divide-header, 1);\\n --pad-inline: var(--padding-large);\\n\\n /* Border appears on nested scaffold/rail when it follows header or utility-bar */\\n :where(.tcn-header) + :where(.tcn-scaffold),\\n :where(.tcn-header) + :where(.tcn-rail),\\n :where(.tcn-utility-bar) + :where(.tcn-scaffold),\\n :where(.tcn-utility-bar) + :where(.tcn-rail) {\\n border-top: calc(var(--scaffold-divide-header) * 1px) solid\\n var(--ergo-material-border);\\n }\\n\\n /* Border appears on footer when it follows scaffold/rail */\\n :where(.tcn-scaffold) + :where(.tcn-footer),\\n :where(.tcn-rail) + :where(.tcn-footer) {\\n border-top: calc(var(--scaffold-divide-footer) * 1px) solid\\n var(--ergo-material-border);\\n }\\n }\\n\\n .tcn-frame-veil[data-is-veil=\\\"true\\\"] {\\n background-color: rgba(0, 0, 0, 0.5);\\n }\\n\\n /* PAGE: */\\n .tcn-page {\\n --divide-header: 0;\\n --divide-footer: 0;\\n --material: var(--background-color-tertiary);\\n background-color: var(--material);\\n padding: var(--padding-medium);\\n }\\n\\n /* TODO: remove - shim to replicate Column at Page level */\\n .tcn-page > .tcn-scaffold-stack > .tcn-scaffold > .tcn-scaffold-stack,\\n .tcn-page > .tcn-scaffold-stack > .tcn-rail > .tcn-rail-stack {\\n gap: var(--gap-medium);\\n }\\n\\n /* MODAL: */\\n .tcn-modal {\\n --divide-header: 0;\\n box-shadow: 0px 4px 34px 0px #00000096;\\n border-radius: var(--ergo-shape-radius-medium);\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n border: 1px solid var(--ergo-material-border);\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n /* DRAWER: */\\n .tcn-drawer {\\n --divide-header: 0;\\n box-shadow: 0px 4px 34px 0px #00000096;\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n /* WINDOW: */\\n .tcn-window {\\n box-shadow: 0px 4px 34px 0px #00000096;\\n --divide-header: 0;\\n border-radius: var(--ergo-shape-radius-medium);\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n border: 2px solid white;\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n .tcn-pop-confirm {\\n --divide-header: 0;\\n --tether-pad-size: 16px;\\n --pad-inline: var(--padding-medium);\\n\\n .tcn-pop-confirm-scaffold > .tcn-scaffold-stack {\\n border-radius: var(--ergo-shape-radius-medium);\\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);\\n background-color: var(--background-color-primary);\\n }\\n\\n :where(.tcn-tethered-origin-indicator) {\\n --material: var(--ergo-white);\\n }\\n\\n /* Set the indicator to match the header color */\\n &[data-v-origin=\\\"top\\\"] {\\n :where(.tcn-tethered-origin-indicator) {\\n --material: var(--ergo-material-overlay);\\n }\\n }\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n .tcn-confirm {\\n --material: var(--background-color-primary);\\n background-color: var(--material);\\n }\\n\\n .tcn-bar {\\n gap: var(--gap-medium);\\n\\n /* Add a divider between groups unless there is a spacer after a group */\\n :where(.tcn-group:not(:last-child):not(:has(+ .tcn-spacer)))::after {\\n content: \\\"\\\";\\n display: block;\\n min-width: 2px;\\n height: 18px;\\n background: var(--ergo-grey);\\n border-radius: var(--ergo-shape-radius-small);\\n align-self: center;\\n }\\n }\\n\\n /* PANEL */\\n .tcn-panel {\\n --divide-header: 1;\\n --divide-footer: 1;\\n --material: var(--background-color-primary);\\n background-color: var(--material);\\n border-radius: var(--ergo-shape-radius-medium);\\n overflow: hidden;\\n\\n :where(.tcn-title) {\\n font-size: 18px;\\n }\\n }\\n\\n /* Aside */\\n .tcn-aside {\\n --divide-header: 1;\\n --divide-footer: 1;\\n\\n --material: var(--background-color-secondary);\\n background-color: var(--material);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n :where(.tcn-footer) {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n :where(.tcn-title) {\\n font-size: 16px;\\n }\\n }\\n\\n /* Card */\\n .tcn-card {\\n --divide-header: 0;\\n --divide-footer: 1;\\n --pad-inline: var(--padding-medium);\\n\\n background-color: var(--background-color-primary);\\n border-radius: var(--ergo-shape-radius-medium);\\n border: 1px solid var(--ergo-material-border);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n\\n --material: var(--ergo-secondary-light);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-secondary);\\n --on-action: var(--ergo-white);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n\\n :where(.tcn-utility-bar) {\\n min-height: var(--ergo-sizing-bar-sm);\\n }\\n\\n :where(.tcn-scaffold-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),\\n :where(.tcn-scaffold-stack) > :where(.tcn-rail) > :where(.tcn-rail-stack),\\n :where(.tcn-rail-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),\\n :where(.tcn-rail-stack) > :where(.tcn-rail) > :where(.tcn-rail-stack) {\\n padding-inline: var(--padding-medium);\\n }\\n }\\n\\n /* SECTION */\\n .tcn-section {\\n --max-section-depth: 4;\\n --section-tab-width: 4px;\\n --section-tab-start: var(--pad-inline, var(--padding-medium));\\n --section-tab-depth: 0;\\n --section-tab: calc(\\n var(--section-tab-start) +\\n (var(--section-tab-width) * var(--section-tab-depth))\\n );\\n --section-heading-height: var(--ergo-sizing-bar-md);\\n --section-action: var(--ergo-secondary);\\n --section-mat: var(--ergo-secondary-light);\\n --section-on-mat: var(--ergo-text-color-primary);\\n }\\n\\n .tcn-heading {\\n position: sticky;\\n background-color: var(--material);\\n padding-inline-start: var(--pad-inline, var(--padding-medium));\\n padding-inline-end: var(--pad-inline, var(--padding-medium));\\n height: var(--section-heading-height);\\n z-index: 5;\\n user-select: none;\\n }\\n\\n .tcn-section > .tcn-heading {\\n top: calc(var(--section-heading-height) * var(--section-tab-depth));\\n z-index: calc(var(--max-section-depth) - var(--section-tab-depth));\\n padding-inline-start: var(--section-tab);\\n --material: var(--section-mat);\\n --on-material: var(--section-on-mat);\\n --action: var(--section-action);\\n background-color: var(--material);\\n color: var(--on-material);\\n gap: var(--gap-small);\\n }\\n\\n .tcn-detail {\\n padding-block: var(--padding-medium);\\n gap: var(--padding-medium);\\n }\\n\\n .tcn-section > .tcn-detail {\\n padding-inline-start: var(--section-tab);\\n padding-inline-end: var(--pad-inline, var(--padding-medium));\\n }\\n\\n .tcn-scaffold-stack > .tcn-detail {\\n padding-inline: var(--pad-inline, var(--padding-medium));\\n }\\n\\n .tcn-section > .tcn-section {\\n --section-tab-depth: 1;\\n --section-mat: var(--ergo-accent-blue-light);\\n --section-action: var(--ergo-accent-blue);\\n }\\n\\n .tcn-section > .tcn-section > .tcn-section {\\n --section-tab-depth: 2;\\n --section-mat: var(--ergo-accent-green-light);\\n --section-action: var(--ergo-accent-green-dark);\\n }\\n\\n .tcn-section > .tcn-section > .tcn-section > .tcn-section {\\n --section-tab-depth: 3;\\n --section-mat: var(--ergo-tertiary-light);\\n --section-action: var(--ergo-tertiary-dark);\\n }\\n\\n .tcn-caret {\\n --caret-size: var(--ergo-shape-triangle-medium);\\n --caret-triangle-height: calc(var(--caret-size) / 2);\\n --caret-triangle-width: var(--caret-size);\\n --caret-triangle-base: var(--caret-triangle-height) solid transparent;\\n --caret-triangle-peak: var(--caret-triangle-width) solid var(--material);\\n\\n width: var(--caret-size);\\n height: var(--caret-size);\\n min-width: var(--caret-size);\\n min-height: var(--caret-size);\\n flex-grow: 0;\\n display: inline-block;\\n\\n &[data-direction=\\\"top\\\"] {\\n border-bottom: var(--caret-triangle-peak);\\n border-left: var(--caret-triangle-base);\\n border-right: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"bottom\\\"] {\\n border-top: var(--caret-triangle-peak);\\n border-left: var(--caret-triangle-base);\\n border-right: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"start\\\"] {\\n border-right: var(--caret-triangle-peak);\\n border-top: var(--caret-triangle-base);\\n border-bottom: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"end\\\"] {\\n border-left: var(--caret-triangle-peak);\\n border-top: var(--caret-triangle-base);\\n border-bottom: var(--caret-triangle-base);\\n }\\n }\\n\\n /* ===== TABLE ===== */\\n .tcn-table {\\n --table-pad-inline: var(--pad-inline, var(--padding-medium));\\n\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-text-color-primary);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n background-color: var(--material);\\n color: var(--on-material);\\n border-collapse: separate;\\n display: block;\\n }\\n\\n /* TODO: cleanup - this needs merged with ui-table sticky logic/styles */\\n .tcn-table[data-is-sticky=\\\"true\\\"] {\\n .tcn-tbody {\\n th:first-of-type {\\n border-right: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n\\n th:last-of-type {\\n border-left: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n }\\n .tcn-thead {\\n th:first-of-type {\\n border-right: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n\\n th:last-of-type {\\n border-left: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n }\\n }\\n\\n .tcn-td {\\n text-align: start;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n }\\n\\n .tcn-thead {\\n /* Border for header row */\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-md);\\n .tcn-th {\\n border-bottom: 1px solid var(--ergo-grey-light);\\n }\\n .tcn-th:not(:last-of-type):not(:nth-last-of-type(2)) {\\n border-right: 1px solid var(--ergo-grey);\\n }\\n .tcn-th:last-of-type {\\n border-left: 1px solid var(--ergo-grey);\\n }\\n }\\n }\\n\\n .tcn-tfoot {\\n font-weight: bold;\\n /* Border for footer row */\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-sm);\\n .tcn-th,\\n .tcn-td {\\n border-top: 1px solid var(--ergo-grey-light);\\n }\\n }\\n }\\n\\n /* Header and footer - both are light blue */\\n .tcn-thead,\\n .tcn-tfoot {\\n font-size: 14px;\\n --material: var(--ergo-secondary-light);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n\\n .tcn-tr .tcn-th:first-child {\\n padding-inline: var(--table-pad-inline);\\n }\\n }\\n\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-sm);\\n align-content: center;\\n }\\n\\n .tcn-td,\\n .tcn-th {\\n padding-inline: var(--padding-medium);\\n vertical-align: middle;\\n text-align: start;\\n background: var(--material);\\n }\\n\\n /* First column (header, body, footer): use context for pad inline or default 8px */\\n .tcn-table .tcn-tr > .tcn-th:first-child,\\n .tcn-table .tcn-tr > .tcn-td:first-child {\\n padding-inline-start: var(--table-pad-inline);\\n }\\n\\n /* Last column (header, body, footer): use context for pad inline or default 8px */\\n .tcn-table .tcn-tr > .tcn-th:last-child,\\n .tcn-table .tcn-tr > .tcn-td:last-child {\\n padding-inline-end: var(--table-pad-inline);\\n }\\n\\n .tcn-tbody {\\n font-size: 12px;\\n .tcn-tr:nth-of-type(even) {\\n --material: var(--ergo-accent-blue-light);\\n }\\n .tcn-tr:nth-of-type(odd) {\\n --material: var(--ergo-white);\\n }\\n .tcn-tr:hover {\\n --material: color-mix(in srgb, var(--ergo-accent-blue-light), var(--action) 12%);\\n }\\n .tcn-tr[data-is-selected=\\\"true\\\"] {\\n --material: var(--ergo-secondary);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-accent-blue);\\n }\\n\\n .tcn-tr {\\n --material: var(--bg-row);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n background-color: var(--material);\\n color: var(--on-material);\\n }\\n }\\n\\n /* ===== INPUTS ===== */\\n .tcn-entry,\\n .tcn-control {\\n --act: var(--action);\\n --mat: var(--material);\\n --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);\\n\\n font-size: var(--ergo-text-size-input);\\n border: 1px solid var(--ergo-grey);\\n box-sizing: border-box;\\n min-height: var(--ergo-sizing-action-md);\\n border-radius: var(--ergo-shape-radius-medium);\\n padding-inline: 4px;\\n }\\n\\n .tcn-radio-label,\\n .tcn-select-selected-label {\\n font-size: var(--ergo-text-size-input);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"false\\\"]:hover {\\n background: var(--act-raised);\\n }\\n\\n .tcn-control:focus-within {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n .tcn-control:focus {\\n border: 1px solid var(--act);\\n }\\n\\n .tcn-control::placeholder {\\n color: var(--ergo-grey);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n background: var(--ergo-material-disabled-outline);\\n color: var(--ergo-text-color-disabled-outline);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"true\\\"]::placeholder {\\n color: var(--ergo-text-color-disabled-outline);\\n }\\n\\n .tcn-control {\\n display: flex;\\n justify-content: center;\\n gap: var(--gap-small);\\n }\\n\\n .tcn-control-row {\\n min-height: 22px;\\n height: auto;\\n align-items: center;\\n gap: var(--gap-small);\\n padding-block: 2px;\\n }\\n\\n .tcn-control-row > .tcn-icon {\\n color: var(--ergo-grey);\\n }\\n\\n .tcn-control .tcn-entry {\\n border: none;\\n background: transparent;\\n padding: 0;\\n min-height: unset;\\n border-radius: 0;\\n height: 100%;\\n flex-grow: 1;\\n\\n &:hover,\\n &:active,\\n &:focus-visible,\\n &:focus {\\n outline: none;\\n border: none;\\n background: transparent;\\n }\\n }\\n\\n .tcn-input {\\n height: auto;\\n }\\n\\n .tcn-textarea,\\n .tcn-input {\\n cursor: text;\\n }\\n\\n .tcn-control-set {\\n border-radius: var(--ergo-shape-radius-medium);\\n\\n &:focus-within {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n .tcn-control-set-item {\\n z-index: 1;\\n border-radius: 0;\\n height: auto;\\n min-height: var(--ergo-sizing-action-md);\\n padding-block: 0;\\n &:focus,\\n &:focus-visible {\\n z-index: 3;\\n outline: none;\\n }\\n }\\n\\n .tcn-control-set-item:first-child {\\n border-top-left-radius: var(--ergo-shape-radius-medium);\\n border-bottom-left-radius: var(--ergo-shape-radius-medium);\\n }\\n\\n .tcn-control-set-item:not(:last-child) {\\n margin-right: -1px;\\n }\\n\\n .tcn-control-set-item:last-child {\\n border-top-right-radius: var(--ergo-shape-radius-medium);\\n border-bottom-right-radius: var(--ergo-shape-radius-medium);\\n }\\n\\n .tcn-select,\\n .tcn-button,\\n .tcn-button[data-hierarchy] {\\n border: 1px solid var(--ergo-grey);\\n height: auto;\\n min-height: var(--ergo-sizing-action-md);\\n min-width: var(--ergo-sizing-action-md);\\n box-sizing: border-box;\\n &:hover,\\n &[data-hover] {\\n transform: none;\\n }\\n }\\n\\n .tcn-button.tcn-select,\\n .tcn-button[data-hierarchy].tcn-select {\\n border-color: var(--ergo-grey);\\n }\\n\\n .tcn-select:focus-visible,\\n .tcn-button:focus-visible,\\n .tcn-button[data-hierarchy]:focus-visible {\\n border-color: var(--ergo-primary);\\n }\\n }\\n\\n .tcn-slider[data-is-disabled=\\\"true\\\"] {\\n &::-webkit-slider-runnable-track {\\n background: var(--ergo-grey-light);\\n }\\n\\n &::-webkit-slider-thumb {\\n background-color: var(--ergo-white);\\n border: 1px solid var(--ergo-grey-light);\\n }\\n }\\n\\n .tcn-checkbox {\\n --checkbox-color: var(--action, var(--ergo-primary));\\n\\n border-color: var(--checkbox-color);\\n\\n &:focus-visible,\\n &:focus {\\n outline: 2px solid var(--checkbox-color);\\n outline-offset: 2px;\\n }\\n\\n &[data-is-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n border-color: var(--ergo-material-disabled-outline);\\n }\\n\\n &[data-checked=\\\"true\\\"] {\\n background-color: var(--checkbox-color);\\n }\\n\\n &[data-checked=\\\"true\\\"][data-is-disabled=\\\"true\\\"] {\\n background-color: var(--ergo-grey-light);\\n }\\n\\n &[data-checked=\\\"false\\\"][data-is-disabled=\\\"true\\\"] {\\n background: var(--material);\\n border-color: var(--ergo-grey-light);\\n color: var(--ergo-grey-light);\\n }\\n\\n &[data-is-disabled=\\\"false\\\"]:active {\\n background-color: var(--checkbox-color);\\n }\\n }\\n\\n .tcn-switch-wrapper[data-focused=\\\"true\\\"][data-is-checked=\\\"false\\\"],\\n .tcn-switch-wrapper[data-focused=\\\"true\\\"][data-is-checked=\\\"true\\\"] {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n /* Quick fix to use some of the default module styles.*/\\n .tcn-input,\\n .tcn-select,\\n .tcn-slider,\\n .tcn-textarea,\\n .tcn-checkbox,\\n .tcn-switch-wrapper,\\n .tcn-date-picker,\\n .tcn-date-picker-year-selector,\\n .tcn-radio,\\n .tcn-date-picker-input,\\n .tcn-mobile-date-picker,\\n .tcn-mobile-date-picker-year-selector,\\n .tcn-suggestion-list-search-input,\\n .tcn-suggestion-list {\\n --accent-color: var(--ergo-primary);\\n }\\n\\n /* Datum/Tokens */\\n .tcn-chip {\\n --action: var(--ergo-primary);\\n --accent-color: var(--ergo-primary);\\n }\\n\\n .tcn-datum[data-emphasis=\\\"normal\\\"] {\\n --datum-font-color: var(--on-material);\\n }\\n\\n .tcn-datum[data-emphasis=\\\"strong\\\"] {\\n --datum-font-weight: 700;\\n }\\n\\n .tcn-datum[data-emphasis=\\\"faint\\\"] {\\n --datum-font-color: color-mix(in srgb, var(--on-material), transparent 12%);\\n }\\n\\n .tcn-datum[data-severity=\\\"dangerous\\\"] {\\n --datum-font-color: var(--ergo-status-red);\\n }\\n\\n .tcn-datum[data-severity=\\\"cautious\\\"] {\\n --datum-font-color: var(--ergo-status-yellow);\\n }\\n\\n .tcn-datum[data-severity=\\\"suggested\\\"] {\\n --datum-font-color: var(--ergo-status-blue);\\n }\\n\\n .tcn-datum[data-severity=\\\"encouraged\\\"] {\\n --datum-font-color: var(--ergo-status-green);\\n }\\n\\n .tcn-key {\\n --accent-color: var(--action);\\n font-size: 14px;\\n color: var(--datum-font-color);\\n font-weight: var(--datum-font-weight, 400);\\n }\\n\\n .tcn-value {\\n font-size: 12px;\\n\\n color: var(--datum-font-color);\\n font-weight: var(--datum-font-weight, 400);\\n }\\n\\n .tcn-term > .tcn-key,\\n .tcn-term > .tcn-value {\\n max-width: 50%;\\n }\\n\\n .tcn-value {\\n :where(.tcn-chip) {\\n --action: var(--ergo-accent-blue);\\n --accent-color: var(--ergo-accent-blue);\\n }\\n }\\n}\\n\"","import { buildStyleSheet } from '../../build_stylesheet';\nimport tokensCss from './tokens/theme_tokens.css?raw';\nimport systemTokensCss from './tokens/system_tokens.css?raw';\nimport css from './ergo_theme.css?raw';\nimport '@fontsource/lato';\n\nexport const ergoStyleSheet = buildStyleSheet([tokensCss, systemTokensCss, css]);\n"],"names":["tokensCss","systemTokensCss","css","ergoStyleSheet","buildStyleSheet"],"mappings":";;AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCMFC,IAAiBC,EAAgB,CAACJ,GAAWC,GAAiBC,CAAG,CAAC;"}
1
+ {"version":3,"file":"ergo_theme.js","sources":["../../../../src/themes/themes/ergo/tokens/theme_tokens.css?raw","../../../../src/themes/themes/ergo/tokens/system_tokens.css?raw","../../../../src/themes/themes/ergo/ergo_theme.css?raw","../../../../src/themes/themes/ergo/ergo_theme.ts"],"sourcesContent":["export default \"@layer tcn-theme {\\n :root {\\n /* ========== Ergo Palette ========== */\\n --ergo-white: #ffffff;\\n\\n --ergo-primary: #ce6b2b;\\n --ergo-primary-light: #fff7f0;\\n --ergo-primary-dark: #b86128;\\n\\n --ergo-secondary: #669eb4;\\n --ergo-secondary-light: #ecf4fb;\\n --ergo-secondary-dark: #497485;\\n\\n --ergo-tertiary: #dfd7cd;\\n --ergo-tertiary-light: #f9f4ed;\\n --ergo-tertiary-dark: #7e6c5d;\\n\\n --ergo-accent-blue: #395578;\\n --ergo-accent-blue-light: #f3f4f6;\\n --ergo-accent-blue-dark: #627083;\\n\\n --ergo-accent-green: #97bba3;\\n --ergo-accent-green-light: #eef8ef;\\n --ergo-accent-green-dark: #4f785c;\\n\\n --ergo-accent-yellow: #dbc97e;\\n --ergo-accent-yellow-light: #fef9e7;\\n --ergo-accent-yellow-dark: #82722b;\\n\\n --ergo-grey: #aaaaaa;\\n --ergo-grey-light: #d3d3d3;\\n --ergo-grey-dark: #808080;\\n\\n --ergo-status-red: #ff6565;\\n --ergo-status-red-dark: #c24848;\\n --ergo-status-red-light: #fff4f4;\\n\\n --ergo-status-yellow: #ffd439;\\n --ergo-status-yellow-dark: #dbb735;\\n --ergo-status-yellow-light: #ffeca9;\\n\\n --ergo-status-blue: var(--ergo-secondary);\\n --ergo-status-blue-dark: var(--ergo-secondary-dark);\\n --ergo-status-blue-light: var(--ergo-secondary-light);\\n\\n --ergo-status-green: #3fbc6a;\\n --ergo-status-green-dark: #2d904f;\\n --ergo-status-green-light: #87e8a8;\\n\\n --ergo-material-bg-primary: #ffffff;\\n --ergo-material-bg-secondary: #fafafa;\\n --ergo-material-bg-tertiary: #f1f1f1;\\n --ergo-material-bg-quaternary: #ffffff;\\n\\n --ergo-material-overlay: var(--ergo-secondary-dark);\\n --ergo-material-border: var(--ergo-grey);\\n --ergo-material-divider: var(--ergo-grey);\\n --ergo-material-disabled-outline: var(--ergo-grey-light);\\n --ergo-material-disabled-fill: var(--ergo-grey);\\n\\n /* ========== Ergo Text ========== */\\n --ergo-text-size-input: 12px;\\n --ergo-text-size-default: 12px;\\n --ergo-text-color-primary: var(--ergo-accent-blue);\\n --ergo-text-color-inverse: var(--ergo-white);\\n --ergo-text-color-disabled-outline: var(--ergo-grey);\\n --ergo-text-color-disabled-fill: var(--ergo-white);\\n\\n /* ========== Spacing ========== */\\n --ergo-spacing-xs: 2px;\\n --ergo-spacing-sm: 4px;\\n --ergo-spacing-md: 8px;\\n --ergo-spacing-lg: 16px;\\n --ergo-spacing-xl: 32px;\\n\\n /* ========== Sizing ========== */\\n --ergo-sizing-bar-xs: 16px;\\n --ergo-sizing-bar-sm: 24px;\\n --ergo-sizing-bar-md: 32px;\\n --ergo-sizing-bar-lg: 40px;\\n --ergo-sizing-bar-xl: 48px;\\n\\n --ergo-sizing-action-sm: 20px;\\n --ergo-sizing-action-md: 24px;\\n --ergo-sizing-action-lg: 32px;\\n\\n /* ========== Shape ========== */\\n --ergo-shape-radius-small: 2px;\\n --ergo-shape-radius-medium: 4px;\\n --ergo-shape-radius-large: 8px;\\n --ergo-shape-triangle-medium: 12px;\\n\\n /* Default Material - TODO: move to system once blackcat support material */\\n --action: var(--ergo-primary);\\n --on-action: var(--ergo-white);\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-accent-blue);\\n }\\n}\\n\"","export default \"@layer tcn-theme {\\n :root {\\n /* ========== Blackcat System Tokens ========== */\\n --scalar: 1;\\n --accent-color: var(--ergo-primary);\\n\\n /* Typography */\\n --font-color: var(--ergo-text-color-primary);\\n --font-family: \\\"Lato\\\", sans-serif;\\n --font-size: var(--ergo-text-size-default);\\n\\n /* Spacing */\\n --gap-small: var(--ergo-spacing-sm);\\n --gap-medium: var(--ergo-spacing-md);\\n --gap-large: var(--ergo-spacing-lg);\\n\\n --padding-small: var(--ergo-spacing-sm);\\n --padding-medium: var(--ergo-spacing-md);\\n --padding-large: var(--ergo-spacing-lg);\\n\\n /* Status Colors */\\n --status-color-disabled: var(--ergo-grey-light);\\n --status-color-info: var(--ergo-status-blue);\\n --status-color-warning: var(--ergo-status-yellow);\\n --status-color-positive: var(--ergo-status-green);\\n --status-color-error: var(--ergo-status-red);\\n\\n --async-color-initial: var(--ergo-grey);\\n --async-color-pending: var(--ergo-status-blue);\\n --async-color-success: var(--ergo-status-green);\\n --async-color-failed: var(--ergo-status-red);\\n\\n /* Action Severity */\\n --action-severity-dangerous: var(--ergo-status-red);\\n --action-severity-cautious: var(--ergo-status-yellow);\\n --action-severity-neutral: var(--ergo-primary);\\n --action-severity-suggested: var(--ergo-status-blue);\\n --action-severity-encouraged: var(--ergo-status-green);\\n\\n /* Palette */\\n --primary-color-faint: var(--ergo-grey-light);\\n --primary-color: var(--ergo-primary);\\n --primary-color-strong: var(--ergo-primary-dark);\\n\\n --secondary-color-faint: var(--ergo-secondary-light);\\n --secondary-color: var(--ergo-secondary);\\n --secondary-color-strong: var(--ergo-secondary-dark);\\n\\n --tertiary-color-faint: var(--ergo-tertiary-light);\\n --tertiary-color: var(--ergo-tertiary);\\n --tertiary-color-strong: var(--ergo-tertiary-dark);\\n\\n --quaternary-color-faint: var(--ergo-accent-blue-light);\\n --quaternary-color: var(--ergo-accent-blue);\\n --quaternary-color-strong: var(--ergo-accent-blue-dark);\\n\\n --background-color-primary: var(--ergo-material-bg-primary);\\n --background-color-secondary: var(--ergo-material-bg-secondary);\\n --background-color-tertiary: var(--ergo-material-bg-tertiary);\\n --background-color-quaternary: var(--ergo-material-bg-quaternary);\\n\\n /* Not sure what other text colors are needed */\\n --foreground-color-primary: var(--ergo-text-color-primary);\\n --foreground-color-secondary: var(--ergo-text-color-primary);\\n --foreground-color-tertiary: var(--ergo-text-color-primary);\\n --foreground-color-quaternary: var(--ergo-text-color-primary);\\n }\\n}\\n\"","export default \"@layer tcn-theme {\\n /* ===== CSS VARIABLES ===== */\\n\\n .tcn-theme-root {\\n font-family: var(--font-family);\\n color: var(--font-color);\\n /* TODO: move to system */\\n --action: var(--ergo-primary);\\n --on-action: var(--ergo-white);\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-accent-blue);\\n }\\n\\n /* ===== Actions ===== */\\n\\n .tcn-interactive {\\n cursor: pointer;\\n user-select: none;\\n transition:\\n transform 0.1s,\\n background 0.1s,\\n color 0.1s;\\n\\n --ink: var(--on-material);\\n --act: var(--action);\\n --mat: var(--material);\\n\\n --act-down: color-mix(in srgb, var(--mat), black 12%);\\n --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);\\n --act-focus: color-mix(in srgb, var(--mat), var(--act) 16%);\\n --act-drag: color-mix(in srgb, var(--mat), var(--act) 24%);\\n\\n background: var(--mat);\\n color: var(--ink);\\n transition:\\n background 0.1s,\\n color 0.1s;\\n\\n &:focus-visible,\\n &[data-focus-visible] {\\n background: var(--act-focus);\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n &:hover,\\n &[data-hover] {\\n background: var(--act-raised);\\n }\\n\\n &:active,\\n &[data-active] {\\n background: var(--act-down);\\n }\\n\\n &[data-is-disabled=\\\"true\\\"] {\\n pointer-events: none;\\n }\\n }\\n\\n /* ===== Base Button ===== \\n * Shared between Button and Toggle.\\n * Primarily manages button dimensions and sizing ratios.\\n */\\n .tcn-base-button {\\n --btn-size-base: 26px;\\n --btn-pad-base: 12px;\\n\\n --btn-pad-delta: 4px;\\n --btn-size-delta: 4px;\\n --btn-font-size-delta: 2px;\\n --btn-step: 1;\\n\\n /* Increase size and pad by 4px for each size \\\"step\\\" from medium */\\n --btn-pad: calc(var(--btn-pad-base) + var(--btn-pad-delta) * var(--btn-step));\\n --btn-size: calc(var(--btn-size-base) + var(--btn-size-delta) * var(--btn-step));\\n\\n border-radius: var(--ergo-shape-radius-medium);\\n min-height: var(--btn-size);\\n padding: var(--padding-small) var(--btn-pad);\\n\\n &[data-size=\\\"sm\\\"] {\\n --btn-step: -1;\\n }\\n &[data-size=\\\"md\\\"] {\\n --btn-step: 0;\\n }\\n &[data-size=\\\"lg\\\"] {\\n --btn-step: 1;\\n }\\n\\n &[data-is-utility=\\\"true\\\"] {\\n height: auto;\\n width: auto;\\n min-width: var(--btn-size);\\n padding: 0;\\n\\n /* Icon is 75% of the button size but minimum of 2px to account for border and 1px offset */\\n --util-ratio: 0.75;\\n --btn-size-base: 18px;\\n\\n font-size: calc(var(--font-size) + var(--btn-font-size-delta) * var(--btn-step));\\n .tcn-icon {\\n min-height: min(2px, calc(var(--btn-size) * var(--util-ratio)));\\n min-width: min(2px, calc(var(--btn-size) * var(--util-ratio)));\\n }\\n }\\n }\\n\\n /* ===== Button ===== \\n * Manages Hierarchy and Severity.\\n */\\n .tcn-button {\\n --btn-primary: var(--action);\\n --btn-on-primary: var(--on-action);\\n --btn-variant: var(--on-material);\\n\\n &[data-severity=\\\"dangerous\\\"] {\\n --btn-primary: var(--action-severity-dangerous);\\n --btn-variant: var(--ergo-status-red-dark);\\n }\\n &[data-severity=\\\"cautious\\\"] {\\n --btn-primary: var(--action-severity-cautious);\\n --btn-on-primary: var(--ergo-accent-blue);\\n --btn-variant: var(--ergo-status-yellow-dark);\\n }\\n &[data-severity=\\\"suggested\\\"] {\\n --btn-primary: var(--action-severity-suggested);\\n --btn-variant: var(--ergo-status-blue-dark);\\n }\\n &[data-severity=\\\"encouraged\\\"] {\\n --btn-primary: var(--action-severity-encouraged);\\n --btn-variant: var(--ergo-status-green-dark);\\n }\\n\\n &[data-hierarchy=\\\"primary\\\"] {\\n --act: var(--ergo-white);\\n --ink: var(--tcn-button-text-color, var(--btn-on-primary));\\n --mat: var(--tcn-button-color, var(--btn-primary));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-white);\\n --mat: var(--ergo-grey-light);\\n }\\n }\\n\\n &[data-hierarchy=\\\"secondary\\\"],\\n &[data-hierarchy=\\\"tertiary\\\"] {\\n --act: var(--tcn-button-color, var(--btn-variant));\\n --ink: var(--tcn-button-color, var(--btn-variant));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-grey-light);\\n }\\n }\\n\\n /* Decorations */\\n &[data-hierarchy=\\\"tertiary\\\"]:hover {\\n text-decoration: underline;\\n text-decoration-color: var(--ink);\\n text-decoration-thickness: 1px;\\n text-underline-offset: 4px;\\n }\\n\\n &[data-hierarchy=\\\"tertiary\\\"] {\\n border: 1px solid transparent;\\n }\\n\\n &[data-hierarchy=\\\"secondary\\\"] {\\n border: 1px solid var(--ink);\\n }\\n\\n &[data-hierarchy=\\\"primary\\\"] {\\n border: 1px solid var(--mat);\\n }\\n\\n transition:\\n box-shadow 0.1s,\\n transform 0.1s;\\n\\n &:hover,\\n &[data-hover] {\\n transform: translateY(-1px);\\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.12);\\n\\n /* Increases the clickable area by 2px on hover to avoid click events not firing due to the button transform y - or slight mouse wiggles */\\n :not(.tcn-select) {\\n &::before,\\n &::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n right: 0;\\n height: 4px;\\n }\\n\\n &::before {\\n top: -2px;\\n }\\n\\n &::after {\\n bottom: -2px;\\n }\\n }\\n }\\n\\n &:active,\\n &[data-active] {\\n transform: translateY(1px);\\n box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.12);\\n }\\n }\\n\\n /* @deprecated - use Button with utility prop instead */\\n .tcn-slim-button {\\n height: auto;\\n width: auto;\\n padding: 0;\\n\\n &[data-size=\\\"sm\\\"] {\\n min-height: 12px;\\n min-width: 12px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 10px;\\n min-width: 10px;\\n }\\n }\\n &[data-size=\\\"md\\\"] {\\n min-height: 18px;\\n min-width: 18px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 14px;\\n min-width: 14px;\\n }\\n }\\n\\n &[data-size=\\\"lg\\\"] {\\n min-height: 24px;\\n min-width: 24px;\\n padding: 0;\\n .tcn-icon {\\n min-height: 20px;\\n min-width: 20px;\\n }\\n }\\n }\\n\\n .tcn-button[data-size].tcn-select {\\n padding-inline-end: 26px;\\n }\\n\\n /* Toggle */\\n .tcn-toggle {\\n --tgl-false: var(--ergo-accent-blue);\\n --tgl-true: var(--ergo-accent-blue);\\n --on-tgl-true: var(--ergo-white);\\n\\n --ink: var(--tcn-button-color, var(--tgl-false));\\n --act: var(--tcn-button-color, var(--tgl-false));\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-grey-light);\\n }\\n &[data-is-selected=\\\"true\\\"] {\\n --mat: var(--tcn-button-color, var(--tgl-true));\\n --ink: var(--tcn-button-text-color, var(--ergo-white));\\n --act: var(--ergo-white);\\n &[data-is-disabled=\\\"true\\\"] {\\n --ink: var(--ergo-white);\\n --mat: var(--ergo-grey-light);\\n }\\n }\\n }\\n\\n .tcn-fab {\\n border-radius: 50%;\\n }\\n\\n .tcn-mobile-button {\\n --btn-size-base: 44px;\\n --btn-pad-base: 16px;\\n --btn-size-delta: 8px;\\n --btn-pad-delta: 4px;\\n\\n font-size: calc(16px * var(--scalar, 1));\\n }\\n\\n .tcn-mobile-button[data-size=\\\"sm\\\"] {\\n --btn-size-base: 36px;\\n }\\n\\n .tcn-mobile-button[data-size=\\\"lg\\\"] {\\n --btn-size-base: 52px;\\n }\\n\\n .tcn-button-group .tcn-button-group-button.tcn-mobile-button {\\n --btn-size-base: 44px;\\n --btn-pad-base: 16px;\\n --btn-size-delta: 8px;\\n --btn-pad-delta: 4px;\\n\\n font-size: calc(16px * var(--scalar, 1));\\n }\\n\\n .tcn-button-group {\\n .tcn-button-group-button:hover,\\n .tcn-button-group-button:active {\\n transform: none;\\n }\\n\\n .tcn-button-group-button {\\n border-radius: 0;\\n }\\n .tcn-button-group-button:first-child {\\n border-start-start-radius: var(--ergo-shape-radius-medium);\\n border-end-start-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-button-group-button:last-child {\\n border-start-end-radius: var(--ergo-shape-radius-medium);\\n border-end-end-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"] {\\n border: 0;\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"]:not(:last-child) {\\n border-right: 1px solid var(--on-mat-faint);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"tertiary\\\"]:not(:first-child) {\\n border-left: 1px solid var(--on-mat-faint);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"primary\\\"]:not(:last-child) {\\n border-right: 1px solid var(--act-down);\\n }\\n .tcn-button-group-button[data-hierarchy=\\\"primary\\\"]:not(:first-child) {\\n border-left: 1px solid var(--act-down);\\n }\\n }\\n\\n .tcn-select-group {\\n .tcn-select-group-option:hover,\\n .tcn-select-group-option:active {\\n transform: none;\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"] {\\n color: var(--act);\\n border-color: var(--act);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"]:hover {\\n background: var(--act-faint);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"]:active {\\n background: var(--act-down);\\n color: var(--on-act);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"secondary\\\"][data-is-disabled=\\\"true\\\"] {\\n color: var(--ergo-material-disabled-outline);\\n border: 1px solid var(--ergo-material-disabled-outline);\\n }\\n\\n .tcn-select-group-option[data-hierarchy=\\\"primary\\\"][data-is-disabled=\\\"true\\\"] {\\n background: var(--ergo-material-disabled-outline);\\n color: white;\\n border: 1px solid var(--ergo-material-disabled-outline);\\n }\\n\\n .tcn-select-group-option {\\n border-radius: 0;\\n }\\n .tcn-select-group-option:first-child {\\n border-top-left-radius: var(--ergo-shape-radius-medium);\\n border-bottom-left-radius: var(--ergo-shape-radius-medium);\\n }\\n .tcn-select-group-option:last-child {\\n border-top-right-radius: var(--ergo-shape-radius-medium);\\n border-bottom-right-radius: var(--ergo-shape-radius-medium);\\n }\\n }\\n\\n /* ===== Tabs ===== */\\n .tcn-tabs-bar {\\n .tcn-tabs-list {\\n .tcn-tab-item {\\n min-height: 24px;\\n padding: 0px var(--padding-medium);\\n text-decoration: none;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n }\\n }\\n }\\n\\n /* Default */\\n .tcn-tabs-bar[data-variant=\\\"default\\\"] {\\n .tcn-tabs-list {\\n .tcn-tab-item {\\n box-sizing: border-box;\\n border: none;\\n padding: 0px var(--padding-medium);\\n border-radius: 0;\\n }\\n .tcn-tab-item[data-is-selected=\\\"true\\\"] {\\n --mat: var(--tcn-button-color, var(--material));\\n --ink: var(--tcn-button-text-color, var(--ergo-primary));\\n --act: var(--ergo-primary);\\n }\\n\\n .tcn-tab-item:focus-visible {\\n z-index: 2;\\n }\\n /* Hover Indicator */\\n .tcn-tab-item[data-is-selected=\\\"false\\\"]:hover::after,\\n .tcn-tab-item[data-is-selected=\\\"false\\\"]:focus-visible::after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n left: 0;\\n right: 0;\\n bottom: 0px;\\n height: 1px;\\n background: var(--ergo-accent-blue);\\n pointer-events: none;\\n width: 100%;\\n z-index: 3;\\n }\\n\\n /* Indicator */\\n &::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: -1px;\\n left: 0;\\n min-height: 2px;\\n transform: translateX(var(--tabs-active-rectangle-position-x, 0));\\n width: var(--tabs-active-rectangle-width, 0);\\n background: var(--ergo-primary);\\n pointer-events: none;\\n border-bottom-left-radius: 2px;\\n border-bottom-right-radius: 2px;\\n transition:\\n transform 300ms ease-in-out,\\n width 300ms ease-in-out;\\n will-change: transform, width;\\n z-index: 2;\\n }\\n }\\n\\n /* Rail */\\n &::before {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 0px;\\n left: 0;\\n width: 100%;\\n height: 1px;\\n background: var(--ergo-material-divider);\\n pointer-events: none;\\n z-index: 1;\\n }\\n }\\n\\n /* Inline */\\n .tcn-tabs-bar[data-variant=\\\"inline\\\"] {\\n font-size: 12px;\\n min-width: min-content;\\n width: auto;\\n flex-grow: 0;\\n border-radius: 6px;\\n border: 1px solid var(--on-material);\\n padding: 2px;\\n\\n .tcn-tabs-list {\\n height: 20px;\\n gap: var(--ergo-spacing-xs);\\n .tcn-tab-item {\\n border-radius: var(--ergo-shape-radius-medium);\\n min-height: 20px;\\n }\\n }\\n }\\n\\n /* ===== MATERIAL ===== */\\n\\n .material {\\n background-color: var(--material);\\n color: var(--on-material);\\n }\\n\\n /* Divider: use material-line; emphasis variants for strong/faint */\\n .tcn-divider-line,\\n .tcn-divider-line[data-emphasis=\\\"normal\\\"] {\\n background: var(--material-line);\\n }\\n .tcn-divider-line[data-emphasis=\\\"strong\\\"] {\\n background: color-mix(in srgb, var(--material-line) 80%, black 20%);\\n }\\n .tcn-divider-line[data-emphasis=\\\"faint\\\"] {\\n background: color-mix(in srgb, var(--material-line) 80%, white 20%);\\n }\\n\\n /* ===== SURFACES ===== */\\n .tcn-draggable[data-is-draggable=\\\"true\\\"] {\\n .tcn-drag-handle {\\n cursor: move;\\n }\\n }\\n\\n .tcn-frame-dialog {\\n border: inherit;\\n }\\n\\n .tcn-tethered {\\n /* Managing offset of the indicator in relation for the tethered element\\n pad defaults to 0, but should be set depending on the surface */\\n\\n --tether-pad-x: 0px;\\n --tether-pad-y: 0px;\\n --indicator-pad-x: 0px;\\n --indicator-pad-y: 0px;\\n --tether-pad-size: 0px;\\n --tether-pad-pos: var(--tether-pad-size);\\n --tether-pad-neg: calc(-1 * var(--tether-pad-size));\\n left: calc(\\n var(--tether-pad-x, 0) -\\n var(--indicator-pad-x, 0) +\\n var(--tethered-left, 0)\\n );\\n top: calc(var(--tether-pad-y, 0) + var(--tethered-top, 0));\\n\\n :where(.tcn-tethered-origin-indicator) {\\n left: calc(var(--indicator-pad-x, 0) + var(--tethered-origin-delta-x, 0));\\n top: calc(var(--indicator-pad-y, 0) + var(--tethered-origin-delta-y, 0));\\n }\\n\\n &[data-h-anchor=\\\"start\\\"] {\\n --tether-pad-x: var(--tether-pad-pos);\\n }\\n\\n &[data-h-anchor=\\\"end\\\"] {\\n --tether-pad-x: var(--tether-pad-neg);\\n }\\n\\n &[data-h-origin=\\\"start\\\"] {\\n --indicator-pad-x: var(--tether-pad-pos);\\n }\\n\\n &[data-h-origin=\\\"end\\\"] {\\n --indicator-pad-x: var(--tether-pad-neg);\\n }\\n\\n &[data-v-origin=\\\"center\\\"] {\\n --indicator-pad-x: 0px;\\n --tether-pad-x: 0px;\\n &[data-v-anchor=\\\"top\\\"] {\\n --tether-pad-y: var(--tether-pad-pos);\\n }\\n\\n &[data-v-anchor=\\\"bottom\\\"] {\\n --tether-pad-y: var(--tether-pad-neg);\\n }\\n }\\n\\n &[data-anchor-direction=\\\"bottom\\\"] {\\n padding-bottom: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"top\\\"] {\\n padding-top: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"start\\\"] {\\n padding-left: var(--ergo-shape-triangle-medium);\\n }\\n\\n &[data-anchor-direction=\\\"end\\\"] {\\n padding-right: var(--ergo-shape-triangle-medium);\\n }\\n }\\n\\n .tcn-tooltip {\\n --tether-pad-size: 16px;\\n background: transparent;\\n --material: var(--ergo-secondary-dark);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n .tcn-tooltip-label {\\n box-shadow: 0px 4px 7px 0px rgba(65, 65, 65, 0.66);\\n color: var(--on-material);\\n background: var(--material);\\n border-radius: var(--ergo-shape-radius-medium);\\n padding: var(--padding-medium);\\n }\\n }\\n\\n .tcn-list {\\n gap: var(--gap-medium);\\n .tcn-item {\\n height: 24px;\\n padding: 0px var(--padding-medium);\\n border-radius: var(--ergo-shape-radius-medium);\\n }\\n }\\n /* Rail: */\\n .tcn-utility-strip {\\n min-width: var(--ergo-sizing-bar-md);\\n }\\n\\n .tcn-utility-strip {\\n padding-block: var(--padding-medium);\\n gap: var(--gap-medium);\\n }\\n\\n /* Scaffold: */\\n .tcn-footer,\\n .tcn-header,\\n .tcn-utility-bar {\\n padding-inline: var(--pad-inline, var(--padding-medium));\\n gap: var(--gap-medium);\\n }\\n\\n .tcn-utility-bar {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n .tcn-footer,\\n .tcn-header {\\n min-height: var(--ergo-sizing-bar-lg);\\n }\\n\\n .tcn-scaffold {\\n --scaffold-divide-footer: var(--divide-footer, 1);\\n --scaffold-divide-header: var(--divide-header, 1);\\n --pad-inline: var(--padding-large);\\n\\n /* Border appears on nested scaffold/rail when it follows header or utility-bar */\\n :where(.tcn-header) + :where(.tcn-scaffold),\\n :where(.tcn-header) + :where(.tcn-rail),\\n :where(.tcn-utility-bar) + :where(.tcn-scaffold),\\n :where(.tcn-utility-bar) + :where(.tcn-rail) {\\n border-top: calc(var(--scaffold-divide-header) * 1px) solid\\n var(--ergo-material-border);\\n }\\n\\n /* Border appears on footer when it follows scaffold/rail */\\n :where(.tcn-scaffold) + :where(.tcn-footer),\\n :where(.tcn-rail) + :where(.tcn-footer) {\\n border-top: calc(var(--scaffold-divide-footer) * 1px) solid\\n var(--ergo-material-border);\\n }\\n }\\n\\n .tcn-frame-veil[data-is-veil=\\\"true\\\"] {\\n background-color: rgba(0, 0, 0, 0.5);\\n }\\n\\n /* PAGE: */\\n .tcn-page {\\n --divide-header: 0;\\n --divide-footer: 0;\\n --material: var(--background-color-tertiary);\\n background-color: var(--material);\\n }\\n\\n /* MODAL: */\\n .tcn-modal {\\n --divide-header: 0;\\n box-shadow: 0px 4px 34px 0px #00000096;\\n border-radius: var(--ergo-shape-radius-medium);\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n border: 1px solid var(--ergo-material-border);\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n /* DRAWER: */\\n .tcn-drawer {\\n --divide-header: 0;\\n box-shadow: 0px 4px 34px 0px #00000096;\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n /* WINDOW: */\\n .tcn-window {\\n box-shadow: 0px 4px 34px 0px #00000096;\\n --divide-header: 0;\\n border-radius: var(--ergo-shape-radius-medium);\\n background-color: var(--background-color-primary);\\n overflow: hidden;\\n border: 2px solid white;\\n\\n :where(.tcn-header) {\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n .tcn-pop-confirm {\\n --divide-header: 0;\\n --tether-pad-size: 16px;\\n --pad-inline: var(--padding-medium);\\n\\n .tcn-pop-confirm-scaffold > .tcn-scaffold-stack {\\n border-radius: var(--ergo-shape-radius-medium);\\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);\\n background-color: var(--background-color-primary);\\n }\\n\\n :where(.tcn-tethered-origin-indicator) {\\n --material: var(--ergo-white);\\n }\\n\\n /* Set the indicator to match the header color */\\n &[data-v-origin=\\\"top\\\"] {\\n :where(.tcn-tethered-origin-indicator) {\\n --material: var(--ergo-material-overlay);\\n }\\n }\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n\\n --material: var(--ergo-material-overlay);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-secondary-dark);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n }\\n\\n .tcn-confirm {\\n --material: var(--background-color-primary);\\n background-color: var(--material);\\n }\\n\\n .tcn-bar {\\n gap: var(--gap-medium);\\n\\n /* Add a divider between groups unless there is a spacer after a group */\\n :where(.tcn-group:not(:last-child):not(:has(+ .tcn-spacer)))::after {\\n content: \\\"\\\";\\n display: block;\\n min-width: 2px;\\n height: 18px;\\n background: var(--ergo-grey);\\n border-radius: var(--ergo-shape-radius-small);\\n align-self: center;\\n }\\n }\\n\\n /* PANEL */\\n .tcn-panel {\\n --divide-header: 1;\\n --divide-footer: 1;\\n --material: var(--background-color-primary);\\n background-color: var(--material);\\n border-radius: var(--ergo-shape-radius-medium);\\n overflow: hidden;\\n\\n :where(.tcn-title) {\\n font-size: 18px;\\n }\\n }\\n\\n /* Aside */\\n .tcn-aside {\\n --divide-header: 1;\\n --divide-footer: 1;\\n\\n --material: var(--background-color-secondary);\\n background-color: var(--material);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n :where(.tcn-footer) {\\n min-height: var(--ergo-sizing-bar-md);\\n }\\n\\n :where(.tcn-title) {\\n font-size: 16px;\\n }\\n }\\n\\n /* Card */\\n .tcn-card {\\n --divide-header: 0;\\n --divide-footer: 1;\\n --pad-inline: var(--padding-medium);\\n\\n background-color: var(--background-color-primary);\\n border-radius: var(--ergo-shape-radius-medium);\\n border: 1px solid var(--ergo-material-border);\\n overflow: hidden;\\n\\n :where(.tcn-header) {\\n min-height: var(--ergo-sizing-bar-md);\\n\\n --material: var(--ergo-secondary-light);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-secondary);\\n --on-action: var(--ergo-white);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n :where(.tcn-typography) {\\n color: inherit;\\n }\\n }\\n\\n :where(.tcn-utility-bar) {\\n min-height: var(--ergo-sizing-bar-sm);\\n }\\n\\n :where(.tcn-scaffold-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),\\n :where(.tcn-scaffold-stack) > :where(.tcn-rail) > :where(.tcn-rail-stack),\\n :where(.tcn-rail-stack) > :where(.tcn-scaffold) > :where(.tcn-scaffold-stack),\\n :where(.tcn-rail-stack) > :where(.tcn-rail) > :where(.tcn-rail-stack) {\\n padding-inline: var(--padding-medium);\\n }\\n }\\n\\n /* Columns: */\\n .tcn-panel {\\n :where(.tcn-columns) {\\n padding: var(--padding-large);\\n\\n :where(.tcn-column) {\\n border-right: 1px solid var(--ergo-material-border);\\n padding-inline-end: var(--padding-medium);\\n }\\n\\n :where(.tcn-column):not(:first-child) {\\n padding-inline-start: var(--padding-medium);\\n }\\n }\\n }\\n\\n .tcn-page {\\n :where(.tcn-columns) {\\n padding: var(--padding-medium);\\n\\n :where(.tcn-column):not(:last-child) {\\n padding-inline-end: var(--padding-medium);\\n }\\n }\\n }\\n\\n /* SECTION */\\n .tcn-section {\\n --max-section-depth: 4;\\n --section-tab-width: 4px;\\n --section-tab-start: var(--pad-inline, var(--padding-medium));\\n --section-tab-depth: 0;\\n --section-tab: calc(\\n var(--section-tab-start) +\\n (var(--section-tab-width) * var(--section-tab-depth))\\n );\\n --section-heading-height: var(--ergo-sizing-bar-md);\\n --section-action: var(--ergo-secondary);\\n --section-mat: var(--ergo-secondary-light);\\n --section-on-mat: var(--ergo-text-color-primary);\\n }\\n\\n .tcn-heading {\\n position: sticky;\\n background-color: var(--material);\\n padding-inline-start: var(--pad-inline, var(--padding-medium));\\n padding-inline-end: var(--pad-inline, var(--padding-medium));\\n height: var(--section-heading-height);\\n z-index: 5;\\n user-select: none;\\n }\\n\\n .tcn-section > .tcn-heading {\\n top: calc(var(--section-heading-height) * var(--section-tab-depth));\\n z-index: calc(var(--max-section-depth) - var(--section-tab-depth));\\n padding-inline-start: var(--section-tab);\\n --material: var(--section-mat);\\n --on-material: var(--section-on-mat);\\n --action: var(--section-action);\\n background-color: var(--material);\\n color: var(--on-material);\\n gap: var(--gap-small);\\n }\\n\\n .tcn-detail {\\n padding-block: var(--padding-medium);\\n gap: var(--padding-medium);\\n }\\n\\n .tcn-section > .tcn-detail {\\n padding-inline-start: var(--section-tab);\\n padding-inline-end: var(--pad-inline, var(--padding-medium));\\n }\\n\\n .tcn-scaffold-stack > .tcn-detail {\\n padding-inline: var(--pad-inline, var(--padding-medium));\\n }\\n\\n .tcn-section > .tcn-section {\\n --section-tab-depth: 1;\\n --section-mat: var(--ergo-accent-blue-light);\\n --section-action: var(--ergo-accent-blue);\\n }\\n\\n .tcn-section > .tcn-section > .tcn-section {\\n --section-tab-depth: 2;\\n --section-mat: var(--ergo-accent-green-light);\\n --section-action: var(--ergo-accent-green-dark);\\n }\\n\\n .tcn-section > .tcn-section > .tcn-section > .tcn-section {\\n --section-tab-depth: 3;\\n --section-mat: var(--ergo-tertiary-light);\\n --section-action: var(--ergo-tertiary-dark);\\n }\\n\\n .tcn-caret {\\n --caret-size: var(--ergo-shape-triangle-medium);\\n --caret-triangle-height: calc(var(--caret-size) / 2);\\n --caret-triangle-width: var(--caret-size);\\n --caret-triangle-base: var(--caret-triangle-height) solid transparent;\\n --caret-triangle-peak: var(--caret-triangle-width) solid var(--material);\\n\\n width: var(--caret-size);\\n height: var(--caret-size);\\n min-width: var(--caret-size);\\n min-height: var(--caret-size);\\n flex-grow: 0;\\n display: inline-block;\\n\\n &[data-direction=\\\"top\\\"] {\\n border-bottom: var(--caret-triangle-peak);\\n border-left: var(--caret-triangle-base);\\n border-right: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"bottom\\\"] {\\n border-top: var(--caret-triangle-peak);\\n border-left: var(--caret-triangle-base);\\n border-right: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"start\\\"] {\\n border-right: var(--caret-triangle-peak);\\n border-top: var(--caret-triangle-base);\\n border-bottom: var(--caret-triangle-base);\\n }\\n\\n &[data-direction=\\\"end\\\"] {\\n border-left: var(--caret-triangle-peak);\\n border-top: var(--caret-triangle-base);\\n border-bottom: var(--caret-triangle-base);\\n }\\n }\\n\\n /* ===== TABLE ===== */\\n .tcn-table {\\n --table-pad-inline: var(--pad-inline, var(--padding-medium));\\n\\n --material: var(--ergo-white);\\n --on-material: var(--ergo-text-color-primary);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n background-color: var(--material);\\n color: var(--on-material);\\n border-collapse: separate;\\n display: block;\\n }\\n\\n /* TODO: cleanup - this needs merged with ui-table sticky logic/styles */\\n .tcn-table[data-is-sticky=\\\"true\\\"] {\\n .tcn-tbody {\\n th:first-of-type {\\n border-right: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n\\n th:last-of-type {\\n border-left: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n }\\n .tcn-thead {\\n th:first-of-type {\\n border-right: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n\\n th:last-of-type {\\n border-left: 1px solid color-mix(in srgb, var(--material) 80%, black);\\n }\\n }\\n }\\n\\n .tcn-td {\\n text-align: start;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n }\\n\\n .tcn-thead {\\n /* Border for header row */\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-md);\\n .tcn-th {\\n border-bottom: 1px solid var(--ergo-grey-light);\\n }\\n .tcn-th:not(:last-of-type):not(:nth-last-of-type(2)) {\\n border-right: 1px solid var(--ergo-grey);\\n }\\n .tcn-th:last-of-type {\\n border-left: 1px solid var(--ergo-grey);\\n }\\n }\\n }\\n\\n .tcn-tfoot {\\n font-weight: bold;\\n /* Border for footer row */\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-sm);\\n .tcn-th,\\n .tcn-td {\\n border-top: 1px solid var(--ergo-grey-light);\\n }\\n }\\n }\\n\\n /* Header and footer - both are light blue */\\n .tcn-thead,\\n .tcn-tfoot {\\n font-size: 14px;\\n --material: var(--ergo-secondary-light);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n\\n background-color: var(--material);\\n color: var(--on-material);\\n\\n .tcn-tr .tcn-th:first-child {\\n padding-inline: var(--table-pad-inline);\\n }\\n }\\n\\n .tcn-tr {\\n height: var(--ergo-sizing-bar-sm);\\n align-content: center;\\n }\\n\\n .tcn-td,\\n .tcn-th {\\n padding-inline: var(--padding-medium);\\n vertical-align: middle;\\n text-align: start;\\n background: var(--material);\\n }\\n\\n /* First column (header, body, footer): use context for pad inline or default 8px */\\n .tcn-table .tcn-tr > .tcn-th:first-child,\\n .tcn-table .tcn-tr > .tcn-td:first-child {\\n padding-inline-start: var(--table-pad-inline);\\n }\\n\\n /* Last column (header, body, footer): use context for pad inline or default 8px */\\n .tcn-table .tcn-tr > .tcn-th:last-child,\\n .tcn-table .tcn-tr > .tcn-td:last-child {\\n padding-inline-end: var(--table-pad-inline);\\n }\\n\\n .tcn-tbody {\\n font-size: 12px;\\n .tcn-tr:nth-of-type(even) {\\n --material: var(--ergo-accent-blue-light);\\n }\\n .tcn-tr:nth-of-type(odd) {\\n --material: var(--ergo-white);\\n }\\n .tcn-tr:hover {\\n --material: color-mix(in srgb, var(--ergo-accent-blue-light), var(--action) 12%);\\n }\\n .tcn-tr[data-is-selected=\\\"true\\\"] {\\n --material: var(--ergo-secondary);\\n --on-material: var(--ergo-white);\\n --action: var(--ergo-tertiary);\\n --on-action: var(--ergo-accent-blue);\\n }\\n\\n .tcn-tr {\\n --material: var(--bg-row);\\n --on-material: var(--ergo-accent-blue);\\n --action: var(--ergo-accent-blue);\\n --on-action: var(--ergo-white);\\n background-color: var(--material);\\n color: var(--on-material);\\n }\\n }\\n\\n /* ===== INPUTS ===== */\\n .tcn-entry,\\n .tcn-control {\\n --act: var(--action);\\n --mat: var(--material);\\n --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);\\n\\n font-size: var(--ergo-text-size-input);\\n border: 1px solid var(--ergo-grey);\\n box-sizing: border-box;\\n min-height: var(--ergo-sizing-action-md);\\n border-radius: var(--ergo-shape-radius-medium);\\n padding-inline: 4px;\\n }\\n\\n .tcn-radio-label,\\n .tcn-select-selected-label {\\n font-size: var(--ergo-text-size-input);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"false\\\"]:hover {\\n background: var(--act-raised);\\n }\\n\\n .tcn-control:focus-within {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n .tcn-control:focus {\\n border: 1px solid var(--act);\\n }\\n\\n .tcn-control::placeholder {\\n color: var(--ergo-grey);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n background: var(--ergo-material-disabled-outline);\\n color: var(--ergo-text-color-disabled-outline);\\n }\\n\\n .tcn-control[data-is-disabled=\\\"true\\\"]::placeholder {\\n color: var(--ergo-text-color-disabled-outline);\\n }\\n\\n .tcn-control {\\n display: flex;\\n justify-content: center;\\n gap: var(--gap-small);\\n }\\n\\n .tcn-control-row {\\n min-height: 22px;\\n height: auto;\\n align-items: center;\\n gap: var(--gap-small);\\n padding-block: 2px;\\n }\\n\\n .tcn-control-row > .tcn-icon {\\n color: var(--ergo-grey);\\n }\\n\\n .tcn-control .tcn-entry {\\n border: none;\\n background: transparent;\\n padding: 0;\\n min-height: unset;\\n border-radius: 0;\\n height: 100%;\\n flex-grow: 1;\\n\\n &:hover,\\n &:active,\\n &:focus-visible,\\n &:focus {\\n outline: none;\\n border: none;\\n background: transparent;\\n }\\n }\\n\\n .tcn-input {\\n height: auto;\\n }\\n\\n .tcn-textarea,\\n .tcn-input {\\n cursor: text;\\n }\\n\\n .tcn-control-set {\\n border-radius: var(--ergo-shape-radius-medium);\\n\\n &:focus-within {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n .tcn-control-set-item {\\n z-index: 1;\\n border-radius: 0;\\n height: auto;\\n min-height: var(--ergo-sizing-action-md);\\n padding-block: 0;\\n &:focus,\\n &:focus-visible {\\n z-index: 3;\\n outline: none;\\n }\\n }\\n\\n .tcn-control-set-item:first-child {\\n border-top-left-radius: var(--ergo-shape-radius-medium);\\n border-bottom-left-radius: var(--ergo-shape-radius-medium);\\n }\\n\\n .tcn-control-set-item:not(:last-child) {\\n margin-right: -1px;\\n }\\n\\n .tcn-control-set-item:last-child {\\n border-top-right-radius: var(--ergo-shape-radius-medium);\\n border-bottom-right-radius: var(--ergo-shape-radius-medium);\\n }\\n\\n .tcn-select,\\n .tcn-button,\\n .tcn-button[data-hierarchy] {\\n border: 1px solid var(--ergo-grey);\\n height: auto;\\n min-height: var(--ergo-sizing-action-md);\\n min-width: var(--ergo-sizing-action-md);\\n box-sizing: border-box;\\n &:hover,\\n &[data-hover] {\\n transform: none;\\n }\\n }\\n\\n .tcn-button.tcn-select,\\n .tcn-button[data-hierarchy].tcn-select {\\n border-color: var(--ergo-grey);\\n }\\n\\n .tcn-select:focus-visible,\\n .tcn-button:focus-visible,\\n .tcn-button[data-hierarchy]:focus-visible {\\n border-color: var(--ergo-primary);\\n }\\n }\\n\\n .tcn-slider[data-is-disabled=\\\"true\\\"] {\\n &::-webkit-slider-runnable-track {\\n background: var(--ergo-grey-light);\\n }\\n\\n &::-webkit-slider-thumb {\\n background-color: var(--ergo-white);\\n border: 1px solid var(--ergo-grey-light);\\n }\\n }\\n\\n .tcn-checkbox {\\n --checkbox-color: var(--action, var(--ergo-primary));\\n\\n border-color: var(--checkbox-color);\\n\\n &:focus-visible,\\n &:focus {\\n outline: 2px solid var(--checkbox-color);\\n outline-offset: 2px;\\n }\\n\\n &[data-is-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n border-color: var(--ergo-material-disabled-outline);\\n }\\n\\n &[data-checked=\\\"true\\\"] {\\n background-color: var(--checkbox-color);\\n }\\n\\n &[data-checked=\\\"true\\\"][data-is-disabled=\\\"true\\\"] {\\n background-color: var(--ergo-grey-light);\\n }\\n\\n &[data-checked=\\\"false\\\"][data-is-disabled=\\\"true\\\"] {\\n background: var(--material);\\n border-color: var(--ergo-grey-light);\\n color: var(--ergo-grey-light);\\n }\\n\\n &[data-is-disabled=\\\"false\\\"]:active {\\n background-color: var(--checkbox-color);\\n }\\n }\\n\\n .tcn-switch-wrapper[data-focused=\\\"true\\\"][data-is-checked=\\\"false\\\"],\\n .tcn-switch-wrapper[data-focused=\\\"true\\\"][data-is-checked=\\\"true\\\"] {\\n outline: 2px solid var(--ergo-primary);\\n outline-offset: 2px;\\n }\\n\\n /* Quick fix to use some of the default module styles.*/\\n .tcn-input,\\n .tcn-select,\\n .tcn-slider,\\n .tcn-textarea,\\n .tcn-checkbox,\\n .tcn-switch-wrapper,\\n .tcn-date-picker,\\n .tcn-date-picker-year-selector,\\n .tcn-radio,\\n .tcn-date-picker-input,\\n .tcn-mobile-date-picker,\\n .tcn-mobile-date-picker-year-selector,\\n .tcn-suggestion-list-search-input,\\n .tcn-suggestion-list {\\n --accent-color: var(--ergo-primary);\\n }\\n\\n /* Datum/Tokens */\\n .tcn-chip {\\n --action: var(--ergo-primary);\\n --accent-color: var(--ergo-primary);\\n }\\n\\n .tcn-datum[data-emphasis=\\\"normal\\\"] {\\n --datum-font-color: var(--on-material);\\n }\\n\\n .tcn-datum[data-emphasis=\\\"strong\\\"] {\\n --datum-font-weight: 700;\\n }\\n\\n .tcn-datum[data-emphasis=\\\"faint\\\"] {\\n --datum-font-color: color-mix(in srgb, var(--on-material), transparent 12%);\\n }\\n\\n .tcn-datum[data-severity=\\\"dangerous\\\"] {\\n --datum-font-color: var(--ergo-status-red);\\n }\\n\\n .tcn-datum[data-severity=\\\"cautious\\\"] {\\n --datum-font-color: var(--ergo-status-yellow);\\n }\\n\\n .tcn-datum[data-severity=\\\"suggested\\\"] {\\n --datum-font-color: var(--ergo-status-blue);\\n }\\n\\n .tcn-datum[data-severity=\\\"encouraged\\\"] {\\n --datum-font-color: var(--ergo-status-green);\\n }\\n\\n .tcn-key {\\n --accent-color: var(--action);\\n font-size: 14px;\\n color: var(--datum-font-color);\\n font-weight: var(--datum-font-weight, 400);\\n }\\n\\n .tcn-value {\\n font-size: 12px;\\n\\n color: var(--datum-font-color);\\n font-weight: var(--datum-font-weight, 400);\\n }\\n\\n .tcn-term > .tcn-key,\\n .tcn-term > .tcn-value {\\n max-width: 50%;\\n }\\n\\n .tcn-value {\\n :where(.tcn-chip) {\\n --action: var(--ergo-accent-blue);\\n --accent-color: var(--ergo-accent-blue);\\n }\\n }\\n}\\n\"","import { buildStyleSheet } from '../../build_stylesheet';\nimport tokensCss from './tokens/theme_tokens.css?raw';\nimport systemTokensCss from './tokens/system_tokens.css?raw';\nimport css from './ergo_theme.css?raw';\nimport '@fontsource/lato';\n\nexport const ergoStyleSheet = buildStyleSheet([tokensCss, systemTokensCss, css]);\n"],"names":["tokensCss","systemTokensCss","css","ergoStyleSheet","buildStyleSheet"],"mappings":";;AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAfC,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCMFC,IAAiBC,EAAgB,CAACJ,GAAWC,GAAiBC,CAAG,CAAC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tcn/ui",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "TCN",
@@ -0,0 +1,46 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+
3
+ import { LayoutStoryDecorator } from './utils/layout_theme_provider.js';
4
+ import { Column } from '../containers/columns/column.js';
5
+ import { Columns } from '../containers/columns/columns.js';
6
+ import { Detail, Section } from '../section/index.js';
7
+
8
+ const meta: Meta = {
9
+ title: 'Layouts/Columns',
10
+ component: () => <></>,
11
+ tags: ['autodocs'],
12
+ parameters: {
13
+ docs: {
14
+ description: {
15
+ component:
16
+ 'Horizontal container for fixed-width Column components. Theme controls column separation via the `.tcn-columns` context selector.',
17
+ },
18
+ },
19
+ },
20
+ };
21
+
22
+ export default meta;
23
+
24
+ type Story = StoryObj;
25
+
26
+ /**
27
+ * Simple example of two columns side by side.
28
+ */
29
+ export const PanelBody: Story = {
30
+ render: () => (
31
+ <LayoutStoryDecorator>
32
+ <Columns>
33
+ <Column minWidth="300px">
34
+ <Section>
35
+ <Detail>300px column</Detail>
36
+ </Section>
37
+ </Column>
38
+ <Column minWidth="300px">
39
+ <Section>
40
+ <Detail>400px column</Detail>
41
+ </Section>
42
+ </Column>
43
+ </Columns>
44
+ </LayoutStoryDecorator>
45
+ ),
46
+ };
@@ -3,7 +3,7 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
3
3
  import { LayoutStoryDecorator } from './utils/layout_theme_provider.js';
4
4
  import { SBLayoutContent } from './utils/content.js';
5
5
  import { Rail } from '../containers/rail.js';
6
- import { Side } from '../containers/side/side.js';
6
+ import { Column } from '../containers/columns/column.js';
7
7
  import { UtilityStrip } from '../containers/utility_strip/utility_strip.js';
8
8
  import { Title } from '../../typography/index.js';
9
9
  import { Scaffold } from '../containers/scaffold.js';
@@ -38,7 +38,7 @@ export const Baseline: Story = {
38
38
  <SBLayoutContent />
39
39
  <SBLayoutContent />
40
40
  </Rail>
41
- <Side width="200px">Side</Side>
41
+ <Column minWidth="200px">Column</Column>
42
42
  </Rail>
43
43
  </LayoutStoryDecorator>
44
44
  ),
@@ -57,7 +57,7 @@ export const HorizontalContent: Story = {
57
57
  <SBLayoutContent />
58
58
  <SBLayoutContent />
59
59
  </Rail>
60
- <Side width="200px">Side</Side>
60
+ <Column minWidth="200px">Column</Column>
61
61
  </Rail>
62
62
  </LayoutStoryDecorator>
63
63
  ),
@@ -76,7 +76,7 @@ export const VerticalContent: Story = {
76
76
  <SBLayoutContent />
77
77
  <SBLayoutContent />
78
78
  </Scaffold>
79
- <Side width="200px">Side</Side>
79
+ <Column minWidth="200px">Column</Column>
80
80
  </Rail>
81
81
  </LayoutStoryDecorator>
82
82
  ),
@@ -7,7 +7,7 @@ import { Footer } from '../footer/footer.js';
7
7
  import { UtilityBar } from '../utility_bar/utility_bar.js';
8
8
 
9
9
  import { Rail, type RailProps } from '../containers/rail.js';
10
- import { Side } from '../containers/side/side.js';
10
+ import { Column } from '../containers/columns/column.js';
11
11
  import { Box, Spacer } from '../../stacks/index.js';
12
12
  import { UtilityStrip } from '../containers/utility_strip/utility_strip.js';
13
13
  import { SearchIcon } from '@tcn/icons/search_icon.js';
@@ -98,9 +98,9 @@ export const SBNestedRail: React.FC<PropsWithChildren<SBNestedRailProps>> = ({
98
98
  )}
99
99
  {children}
100
100
  {side && (
101
- <Side className={clsx(styles.side, styles.secondary)} minWidth="200px">
102
- <span>Side/Column/WIP</span>
103
- </Side>
101
+ <Column className={clsx(styles.side, styles.secondary)} minWidth="200px">
102
+ <span>Column</span>
103
+ </Column>
104
104
  )}
105
105
  {scaffold && (
106
106
  <SBNestedScaffold
@@ -0,0 +1,14 @@
1
+ @layer tcn-system {
2
+ :where(.column) {
3
+ height: 100%;
4
+ min-height: 100%;
5
+ width: auto;
6
+ min-width: 0;
7
+ flex-grow: 0;
8
+ }
9
+
10
+ :where(.column[data-width="fill"]) {
11
+ flex-grow: 1;
12
+ width: 0; /* let flex-grow determine width, not content */
13
+ }
14
+ }
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { clsx } from 'clsx';
3
+ import { VStack, type VStackProps } from '../../../stacks/v_stack.js';
4
+ import styles from './column.module.css';
5
+
6
+ export interface ColumnProps extends Omit<VStackProps, 'as'> {}
7
+
8
+ export const Column = React.forwardRef<HTMLElement, ColumnProps>(function Column(
9
+ { children, className, ...props }: ColumnProps,
10
+ ref
11
+ ) {
12
+ return (
13
+ <VStack
14
+ ref={ref}
15
+ as="section"
16
+ className={clsx('tcn-column', styles['column'], className)}
17
+ {...props}
18
+ >
19
+ {children}
20
+ </VStack>
21
+ );
22
+ });
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { clsx } from 'clsx';
3
+ import { Rail, type RailProps } from '../rail.js';
4
+
5
+ export interface ColumnsProps extends Omit<RailProps, 'as'> {}
6
+
7
+ export const Columns = React.forwardRef<HTMLElement, ColumnsProps>(function Columns(
8
+ { children, className, ...props }: ColumnsProps,
9
+ ref
10
+ ) {
11
+ return (
12
+ <Rail ref={ref} className={clsx('tcn-columns', className)} {...props}>
13
+ {children}
14
+ </Rail>
15
+ );
16
+ });
@@ -1,4 +1,4 @@
1
- export * from './column/column.js';
1
+ export { Column, type ColumnProps } from './containers/columns/column.js';
2
2
  export * from './divider/divider.js';
3
3
  export * from './grid/grid.js';
4
4
  export * from './list/item.js';
@@ -20,7 +20,7 @@ export { Breakpoint, type BreakpointProps } from './responsive/breakpoint.js';
20
20
  export { TTable, THead, TBody, TFoot, TR, TH, TD } from './table/table.js';
21
21
 
22
22
  export { Rail, type RailProps } from './containers/rail.js';
23
- export { Side, type SideProps } from './containers/side/side.js';
23
+ export { Columns, type ColumnsProps } from './containers/columns/columns.js';
24
24
  export {
25
25
  UtilityStrip,
26
26
  type UtilityStripProps,
@@ -1,7 +1,8 @@
1
1
  import { Header } from '../../layouts/header/header.js';
2
- import { Footer, Rail, Scaffold } from '../../layouts/index.js';
2
+ import { Detail, Footer, Scaffold } from '../../layouts/index.js';
3
+ import { Column } from '../../layouts/containers/columns/column.js';
4
+ import { Columns } from '../../layouts/containers/columns/columns.js';
3
5
  import { BodyText } from '../../typography/body_text/body_text.js';
4
- import { Section } from '../../layouts/section/section.js';
5
6
  import { Title } from '../../typography/title/title.js';
6
7
  import { Page } from './page.js';
7
8
  import { ZStack } from '../../stacks/z_stack.js';
@@ -21,9 +22,9 @@ export const Baseline = () => {
21
22
  <Title>Page Header</Title>
22
23
  </Header>
23
24
  <Scaffold>
24
- <Section>
25
+ <Detail>
25
26
  <BodyText>Page Content</BodyText>
26
- </Section>
27
+ </Detail>
27
28
  </Scaffold>
28
29
 
29
30
  <Footer>
@@ -34,33 +35,36 @@ export const Baseline = () => {
34
35
  );
35
36
  };
36
37
 
37
- export const WithPanelBody = () => {
38
+ export const WithColumns = () => {
38
39
  return (
39
40
  <ZStack height="100%" width="100%" minHeight="600px" minWidth="600px">
40
41
  <Page>
41
- <Rail>
42
- <Panel>
43
- <Header>
44
- <Title>Primary</Title>
45
- </Header>
46
- <Scaffold>
47
- <Section>
48
- <BodyText>Page Content</BodyText>
49
- </Section>
50
- </Scaffold>
51
- </Panel>
52
-
53
- <Panel width="300px">
54
- <Header>
55
- <Title>Secondary</Title>
56
- </Header>
57
- <Scaffold>
58
- <Section>
59
- <BodyText>Supporting Content</BodyText>
60
- </Section>
61
- </Scaffold>
62
- </Panel>
63
- </Rail>
42
+ <Columns>
43
+ <Column minWidth="400px" width="fill">
44
+ <Panel>
45
+ <Header>
46
+ <Title>Left Panel</Title>
47
+ </Header>
48
+ <Scaffold>
49
+ <Detail>
50
+ <BodyText>Left panel content</BodyText>
51
+ </Detail>
52
+ </Scaffold>
53
+ </Panel>
54
+ </Column>
55
+ <Column minWidth="400px">
56
+ <Panel>
57
+ <Header>
58
+ <Title>Right Panel</Title>
59
+ </Header>
60
+ <Scaffold>
61
+ <Detail>
62
+ <BodyText>Right panel content</BodyText>
63
+ </Detail>
64
+ </Scaffold>
65
+ </Panel>
66
+ </Column>
67
+ </Columns>
64
68
  </Page>
65
69
  </ZStack>
66
70
  );
@@ -2,6 +2,8 @@ import { GridOneIcon } from '@tcn/icons/grid_one_icon.js';
2
2
  import { Button } from '../../../actions/button/button/button.js';
3
3
  import { Footer } from '../../../layouts/footer/footer.js';
4
4
  import { Header } from '../../../layouts/header/header.js';
5
+ import { Column } from '../../../layouts/containers/columns/column.js';
6
+ import { Columns } from '../../../layouts/containers/columns/columns.js';
5
7
  import { Detail, Heading, Scaffold, Section } from '../../../layouts/index.js';
6
8
  import { UtilityBar } from '../../../layouts/utility_bar/utility_bar.js';
7
9
  import { Box, HStack, Spacer } from '../../../stacks/index.js';
@@ -327,6 +329,67 @@ export const WithCards = () => {
327
329
  );
328
330
  };
329
331
 
332
+ export const WithColumns = () => {
333
+ return (
334
+ <Box className={styles['stories-container']}>
335
+ <Panel maxHeight="600px">
336
+ <Header>
337
+ <Title emphasis="strong">Panel With Columns</Title>
338
+ <Spacer />
339
+ <UtilGroupExample />
340
+ </Header>
341
+ <Scaffold>
342
+ <Columns>
343
+ <Column minWidth="300px">
344
+ <Section>
345
+ <Heading>General</Heading>
346
+ <Detail>
347
+ <Term>
348
+ <Key>Agent</Key>
349
+ <Value>John Doe</Value>
350
+ </Term>
351
+ <Term>
352
+ <Key>Queue</Key>
353
+ <Value>Support</Value>
354
+ </Term>
355
+ <Term>
356
+ <Key>Status</Key>
357
+ <Value>Active</Value>
358
+ </Term>
359
+ </Detail>
360
+ </Section>
361
+ </Column>
362
+ <Column minWidth="300px">
363
+ <Section>
364
+ <Heading>Contact</Heading>
365
+ <Detail>
366
+ <Term>
367
+ <Key>Email</Key>
368
+ <Value>john.doe@example.com</Value>
369
+ </Term>
370
+ <Term>
371
+ <Key>Phone</Key>
372
+ <Value>+1 555 000 1234</Value>
373
+ </Term>
374
+ <Term>
375
+ <Key>Start Date</Key>
376
+ <Value>05/27/2023</Value>
377
+ </Term>
378
+ </Detail>
379
+ </Section>
380
+ </Column>
381
+ </Columns>
382
+ </Scaffold>
383
+ <Footer>
384
+ <Spacer />
385
+ <Button hierarchy="secondary">Cancel</Button>
386
+ <Button hierarchy="primary">Save</Button>
387
+ </Footer>
388
+ </Panel>
389
+ </Box>
390
+ );
391
+ };
392
+
330
393
  export const WithDetailOnly = () => {
331
394
  return (
332
395
  <Box className={styles['stories-container']}>