@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.
- package/dist/column.css +1 -1
- package/dist/layouts/containers/columns/column.d.ts +6 -0
- package/dist/layouts/containers/columns/column.d.ts.map +1 -0
- package/dist/layouts/containers/columns/column.js +20 -0
- package/dist/layouts/containers/columns/column.js.map +1 -0
- package/dist/layouts/containers/columns/columns.d.ts +6 -0
- package/dist/layouts/containers/columns/columns.d.ts.map +1 -0
- package/dist/layouts/containers/columns/columns.js +11 -0
- package/dist/layouts/containers/columns/columns.js.map +1 -0
- package/dist/layouts/index.d.ts +2 -2
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +23 -23
- package/dist/surfaces/pop_confirm/pop_confirm.js +2 -2
- package/dist/themes/themes/ergo/ergo_theme.css +1 -1
- package/dist/themes/themes/ergo/ergo_theme.js +27 -9
- package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
- package/package.json +1 -1
- package/src/layouts/__stories__/columns.stories.tsx +46 -0
- package/src/layouts/__stories__/rail.stories.tsx +4 -4
- package/src/layouts/__stories__/utils.tsx +4 -4
- package/src/layouts/containers/columns/column.module.css +14 -0
- package/src/layouts/containers/columns/column.tsx +22 -0
- package/src/layouts/containers/columns/columns.tsx +16 -0
- package/src/layouts/index.ts +2 -2
- package/src/surfaces/page/page.stories.tsx +32 -28
- package/src/surfaces/panel/__stories__/panel.stories.tsx +63 -0
- package/src/themes/themes/ergo/ergo_theme.css +27 -9
- package/dist/layouts/column/column.d.ts +0 -10
- package/dist/layouts/column/column.d.ts.map +0 -1
- package/dist/layouts/column/column.js +0 -52
- package/dist/layouts/column/column.js.map +0 -1
- package/dist/layouts/containers/side/side.d.ts +0 -6
- package/dist/layouts/containers/side/side.d.ts.map +0 -1
- package/dist/layouts/containers/side/side.js +0 -22
- package/dist/layouts/containers/side/side.js.map +0 -1
- package/dist/side.css +0 -1
- package/src/layouts/column/column.module.css +0 -35
- package/src/layouts/column/column.tsx +0 -57
- package/src/layouts/containers/side/side.module.css +0 -7
- 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
|
@@ -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 {
|
|
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
|
-
<
|
|
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
|
-
<
|
|
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
|
-
<
|
|
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 {
|
|
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
|
-
<
|
|
102
|
-
<span>
|
|
103
|
-
</
|
|
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
|
+
});
|
package/src/layouts/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
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 {
|
|
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 {
|
|
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
|
-
<
|
|
25
|
+
<Detail>
|
|
25
26
|
<BodyText>Page Content</BodyText>
|
|
26
|
-
</
|
|
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
|
|
38
|
+
export const WithColumns = () => {
|
|
38
39
|
return (
|
|
39
40
|
<ZStack height="100%" width="100%" minHeight="600px" minWidth="600px">
|
|
40
41
|
<Page>
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
<
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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']}>
|