@revikornmann/muka-ui 0.25.0 → 0.27.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/cjs/components/Autocomplete/Autocomplete.css +63 -0
- package/dist/cjs/components/Autocomplete/Autocomplete.js +190 -0
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -0
- package/dist/cjs/components/Autocomplete/index.js +6 -0
- package/dist/cjs/components/Autocomplete/index.js.map +1 -0
- package/dist/cjs/components/Avatar/Avatar.css +79 -30
- package/dist/cjs/components/Avatar/Avatar.js +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarGroup.js +4 -3
- package/dist/cjs/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/cjs/components/Button/Button.css +33 -0
- package/dist/cjs/components/Button/Button.js +2 -2
- package/dist/cjs/components/Combobox/Combobox.js +7 -23
- package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
- package/dist/cjs/components/ContextSelect/ContextSelect.js +2 -2
- package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -1
- package/dist/cjs/components/DataPieChart/DataPieChart.js +5 -2
- package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
- package/dist/cjs/components/DataPieChart/index.js.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.js +9 -1
- package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/DropdownSelect/DropdownSelect.js +2 -2
- package/dist/cjs/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/cjs/components/InputCounter/InputCounter.css +175 -0
- package/dist/cjs/components/InputCounter/InputCounter.js +196 -0
- package/dist/cjs/components/InputCounter/InputCounter.js.map +1 -0
- package/dist/cjs/components/InputCounter/index.js +11 -0
- package/dist/cjs/components/InputCounter/index.js.map +1 -0
- package/dist/cjs/components/Menu/Menu.js +26 -11
- package/dist/cjs/components/Menu/Menu.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.js +10 -8
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.css +37 -14
- package/dist/cjs/components/Tabs/Tabs.js +30 -10
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +7 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/index.js +7 -3
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/utils/suggestionList.js +27 -0
- package/dist/cjs/utils/suggestionList.js.map +1 -0
- package/dist/cjs/utils/usePortalContainer.js +33 -0
- package/dist/cjs/utils/usePortalContainer.js.map +1 -0
- package/dist/esm/components/Autocomplete/Autocomplete.css +63 -0
- package/dist/esm/components/Autocomplete/Autocomplete.js +187 -0
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -0
- package/dist/esm/components/Autocomplete/index.js +2 -0
- package/dist/esm/components/Autocomplete/index.js.map +1 -0
- package/dist/esm/components/Avatar/Avatar.css +79 -30
- package/dist/esm/components/Avatar/Avatar.js +1 -1
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Avatar/AvatarGroup.js +4 -3
- package/dist/esm/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/esm/components/Button/Button.css +33 -0
- package/dist/esm/components/Button/Button.js +2 -2
- package/dist/esm/components/Combobox/Combobox.js +5 -21
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/ContextSelect/ContextSelect.js +2 -2
- package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -1
- package/dist/esm/components/DataPieChart/DataPieChart.js +4 -1
- package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
- package/dist/esm/components/DataPieChart/index.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +9 -1
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/DropdownSelect/DropdownSelect.js +2 -2
- package/dist/esm/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/esm/components/InputCounter/InputCounter.css +175 -0
- package/dist/esm/components/InputCounter/InputCounter.js +160 -0
- package/dist/esm/components/InputCounter/InputCounter.js.map +1 -0
- package/dist/esm/components/InputCounter/index.js +3 -0
- package/dist/esm/components/InputCounter/index.js.map +1 -0
- package/dist/esm/components/Menu/Menu.js +26 -11
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Popover/Popover.js +10 -5
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.css +37 -14
- package/dist/esm/components/Tabs/Tabs.js +30 -10
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +7 -2
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/utils/suggestionList.js +22 -0
- package/dist/esm/utils/suggestionList.js.map +1 -0
- package/dist/esm/utils/usePortalContainer.js +29 -0
- package/dist/esm/utils/usePortalContainer.js.map +1 -0
- package/dist/styles/components/Autocomplete.css +63 -0
- package/dist/styles/components/Avatar.css +79 -30
- package/dist/styles/components/Button.css +33 -0
- package/dist/styles/components/InputCounter.css +175 -0
- package/dist/styles/components/Tabs.css +37 -14
- package/dist/styles/index.css +1150 -758
- package/dist/styles/muka-dark.css +1150 -758
- package/dist/styles/muka-light.css +1150 -758
- package/dist/styles/tokens-bouwplan-dark.css +48 -5
- package/dist/styles/tokens-bouwplan-light.css +48 -5
- package/dist/styles/tokens-fscl-dark.css +48 -5
- package/dist/styles/tokens-fscl-light.css +48 -5
- package/dist/styles/tokens-grip-dark.css +48 -5
- package/dist/styles/tokens-grip-light.css +48 -5
- package/dist/styles/tokens-muka-dark.css +48 -5
- package/dist/styles/tokens-muka-light.css +48 -5
- package/dist/styles/tokens-wireframe-dark.css +48 -5
- package/dist/styles/tokens-wireframe-light.css +48 -5
- package/dist/styles/wireframe-dark.css +1150 -758
- package/dist/styles/wireframe-light.css +1150 -758
- package/dist/types/components/Autocomplete/Autocomplete.d.ts +105 -0
- package/dist/types/components/Autocomplete/Autocomplete.d.ts.map +1 -0
- package/dist/types/components/Autocomplete/index.d.ts +2 -0
- package/dist/types/components/Autocomplete/index.d.ts.map +1 -0
- package/dist/types/components/Avatar/Avatar.d.ts +8 -3
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/AvatarGroup.d.ts +10 -5
- package/dist/types/components/Avatar/AvatarGroup.d.ts.map +1 -1
- package/dist/types/components/Avatar/index.d.ts +1 -1
- package/dist/types/components/Avatar/index.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Combobox/Combobox.d.ts +2 -2
- package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/ContextSelect/ContextSelect.d.ts +6 -0
- package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -1
- package/dist/types/components/DataPieChart/DataPieChart.d.ts +13 -2
- package/dist/types/components/DataPieChart/DataPieChart.d.ts.map +1 -1
- package/dist/types/components/DataPieChart/index.d.ts +1 -1
- package/dist/types/components/DataPieChart/index.d.ts.map +1 -1
- package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/components/DropdownSelect/DropdownSelect.d.ts +6 -0
- package/dist/types/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
- package/dist/types/components/InputCounter/InputCounter.d.ts +79 -0
- package/dist/types/components/InputCounter/InputCounter.d.ts.map +1 -0
- package/dist/types/components/InputCounter/index.d.ts +3 -0
- package/dist/types/components/InputCounter/index.d.ts.map +1 -0
- package/dist/types/components/Menu/Menu.d.ts +4 -4
- package/dist/types/components/Menu/Menu.d.ts.map +1 -1
- package/dist/types/components/Popover/Popover.d.ts +12 -0
- package/dist/types/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts +17 -2
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +6 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +4 -2
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/utils/suggestionList.d.ts +13 -0
- package/dist/types/utils/suggestionList.d.ts.map +1 -0
- package/dist/types/utils/usePortalContainer.d.ts +19 -0
- package/dist/types/utils/usePortalContainer.d.ts.map +1 -0
- package/docs/consumers/README.md +2 -2
- package/package.json +1 -1
- package/tokens/t1-primitives/color.json +10 -0
- package/tokens/t2-alias/base.json +14 -0
- package/tokens/t2-alias/brand/bouwplan/dark.json +5 -0
- package/tokens/t2-alias/brand/bouwplan/light.json +5 -0
- package/tokens/t2-alias/brand/fscl/dark.json +5 -0
- package/tokens/t2-alias/brand/fscl/light.json +5 -0
- package/tokens/t2-alias/brand/grip/dark.json +14 -0
- package/tokens/t2-alias/brand/grip/light.json +14 -0
- package/tokens/t2-alias/brand/muka/dark.json +14 -0
- package/tokens/t2-alias/brand/muka/light.json +14 -0
- package/tokens/t2-alias/brand/wireframe/dark.json +14 -0
- package/tokens/t2-alias/brand/wireframe/light.json +14 -0
- package/tokens/t3-semantics/ui.json +49 -2
- package/tokens/t4-components/avatar.json +82 -18
- package/tokens/t4-components/button.json +56 -0
- package/tokens/t4-components/tabs.json +41 -1
|
@@ -409,6 +409,8 @@ body {
|
|
|
409
409
|
--color-red-10: #dc3d43;
|
|
410
410
|
--color-red-11: #cd2b31;
|
|
411
411
|
--color-red-12: #381316;
|
|
412
|
+
--color-redStrong-1: #bd1524;
|
|
413
|
+
--color-redStrong-2: #ab001a;
|
|
412
414
|
--color-ruby-1: #fffcfd;
|
|
413
415
|
--color-ruby-2: #fff7f8;
|
|
414
416
|
--color-ruby-3: #ffeef1;
|
|
@@ -1207,6 +1209,9 @@ body {
|
|
|
1207
1209
|
--color-state-error-default: #e5484d;
|
|
1208
1210
|
--color-state-error-contrast: #cd2b31;
|
|
1209
1211
|
--color-state-error-background: #ffefef;
|
|
1212
|
+
--color-state-error-solid-default: #cd2b31;
|
|
1213
|
+
--color-state-error-solid-hover: #bd1524;
|
|
1214
|
+
--color-state-error-solid-pressed: #ab001a;
|
|
1210
1215
|
--color-state-info-default: #3e63dd;
|
|
1211
1216
|
--color-state-info-contrast: #3a5ccc;
|
|
1212
1217
|
--color-state-info-background: #edf2fe;
|
|
@@ -1307,6 +1312,9 @@ body {
|
|
|
1307
1312
|
--alias-color-state-error-contrast: #cd2b31;
|
|
1308
1313
|
--alias-color-state-error-default: #e5484d;
|
|
1309
1314
|
--alias-color-state-error-muted: #ffefef;
|
|
1315
|
+
--alias-color-state-error-solid-default: #cd2b31;
|
|
1316
|
+
--alias-color-state-error-solid-hover: #bd1524;
|
|
1317
|
+
--alias-color-state-error-solid-pressed: #ab001a;
|
|
1310
1318
|
--alias-color-state-error-surface-level0: #fff8f8;
|
|
1311
1319
|
--alias-color-state-error-surface-level1: #ffefef;
|
|
1312
1320
|
--alias-color-state-error-surface-level2: #ffe5e5;
|
|
@@ -1603,6 +1611,18 @@ body {
|
|
|
1603
1611
|
--button-color-primary-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1604
1612
|
--button-color-primary-shadow-pressed: none;
|
|
1605
1613
|
--button-color-primary-shadow-disabled: none;
|
|
1614
|
+
--button-color-destructive-background-default: #cd2b31;
|
|
1615
|
+
--button-color-destructive-background-hover: #bd1524;
|
|
1616
|
+
--button-color-destructive-background-pressed: #ab001a;
|
|
1617
|
+
--button-color-destructive-background-disabled: #eae7ec;
|
|
1618
|
+
--button-color-destructive-foreground-default: #fdfcfd;
|
|
1619
|
+
--button-color-destructive-foreground-hover: #fdfcfd;
|
|
1620
|
+
--button-color-destructive-foreground-pressed: #fdfcfd;
|
|
1621
|
+
--button-color-destructive-foreground-disabled: #d0cdd7;
|
|
1622
|
+
--button-color-destructive-shadow-default: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1623
|
+
--button-color-destructive-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1624
|
+
--button-color-destructive-shadow-pressed: none;
|
|
1625
|
+
--button-color-destructive-shadow-disabled: none;
|
|
1606
1626
|
--button-color-secondary-background-default: #f2eff3;
|
|
1607
1627
|
--button-color-secondary-background-hover: #f2eff3;
|
|
1608
1628
|
--button-color-secondary-background-pressed: #eae7ec;
|
|
@@ -1967,7 +1987,7 @@ body {
|
|
|
1967
1987
|
--contextmenu-trigger-outline-color: #3e63dd;
|
|
1968
1988
|
--contextmenu-trigger-outline-offset: 0.25rem;
|
|
1969
1989
|
--tabs-trigger-color-default-background: #f2eff3;
|
|
1970
|
-
--tabs-trigger-color-default-foreground: #
|
|
1990
|
+
--tabs-trigger-color-default-foreground: #8e8c99;
|
|
1971
1991
|
--tabs-trigger-color-default-border: #d0cdd7;
|
|
1972
1992
|
--tabs-trigger-color-hover-background: #f2eff3;
|
|
1973
1993
|
--tabs-trigger-color-hover-foreground: #211f26;
|
|
@@ -1982,8 +2002,16 @@ body {
|
|
|
1982
2002
|
--tabs-trigger-padding-y: 0.5rem;
|
|
1983
2003
|
--tabs-trigger-height: 3rem;
|
|
1984
2004
|
--tabs-trigger-radius: 0.75rem;
|
|
2005
|
+
--tabs-trigger-min-height-sm: 2.5rem;
|
|
2006
|
+
--tabs-trigger-min-height-md: 3.5rem;
|
|
2007
|
+
--tabs-trigger-min-height-lg: 5rem;
|
|
1985
2008
|
--tabs-panel-background: #fdfcfd;
|
|
1986
2009
|
--tabs-panel-border: #d0cdd7;
|
|
2010
|
+
--tabs-indicator-color: #3e63dd;
|
|
2011
|
+
--tabs-indicator-height-sm: 2px;
|
|
2012
|
+
--tabs-indicator-height-md: 3px;
|
|
2013
|
+
--tabs-indicator-height-lg: 4px;
|
|
2014
|
+
--tabs-list-padding-x: 1rem;
|
|
1987
2015
|
--separator-color-default: #eae7ec;
|
|
1988
2016
|
--separator-color-contrast: #d0cdd7;
|
|
1989
2017
|
--separator-width: 0.0625rem;
|
|
@@ -2016,6 +2044,9 @@ body {
|
|
|
2016
2044
|
--progress-size-circle-strokeWidth-sm: 0.25rem;
|
|
2017
2045
|
--progress-size-circle-strokeWidth-md: 0.5rem;
|
|
2018
2046
|
--progress-size-circle-strokeWidth-lg: 0.75rem;
|
|
2047
|
+
--avatar-size-4xs: 1rem;
|
|
2048
|
+
--avatar-size-3xs: 1.5rem;
|
|
2049
|
+
--avatar-size-2xs: 2rem;
|
|
2019
2050
|
--avatar-size-xs: 2.5rem;
|
|
2020
2051
|
--avatar-size-sm: 3rem;
|
|
2021
2052
|
--avatar-size-md: 4rem;
|
|
@@ -2025,26 +2056,38 @@ body {
|
|
|
2025
2056
|
--avatar-color-background-loading: #eae7ec;
|
|
2026
2057
|
--avatar-color-foreground-default: #211f26;
|
|
2027
2058
|
--avatar-color-foreground-muted: #d0cdd7;
|
|
2028
|
-
--avatar-color-border-default: #eae7ec;
|
|
2029
2059
|
--avatar-color-status-online: #027864;
|
|
2030
2060
|
--avatar-color-status-offline: #d0cdd7;
|
|
2031
2061
|
--avatar-color-status-busy: #e5484d;
|
|
2032
2062
|
--avatar-color-status-away: #ffc53d;
|
|
2033
2063
|
--avatar-radius-circle: 999rem;
|
|
2034
2064
|
--avatar-radius-square: 0.75rem;
|
|
2065
|
+
--avatar-radius-square-sm: 0.375rem;
|
|
2066
|
+
--avatar-font-size-3xs: 0.75rem;
|
|
2067
|
+
--avatar-font-size-2xs: 0.75rem;
|
|
2035
2068
|
--avatar-font-size-xs: 0.75rem;
|
|
2036
2069
|
--avatar-font-size-sm: 0.875rem;
|
|
2037
2070
|
--avatar-font-size-md: 1.125rem;
|
|
2038
2071
|
--avatar-font-size-lg: 1.25rem;
|
|
2039
2072
|
--avatar-font-size-xl: 1.5rem;
|
|
2073
|
+
--avatar-status-size-3xs: 0.5rem;
|
|
2074
|
+
--avatar-status-size-2xs: 0.5rem;
|
|
2040
2075
|
--avatar-status-size-xs: 0.5rem;
|
|
2041
2076
|
--avatar-status-size-sm: 0.75rem;
|
|
2042
2077
|
--avatar-status-size-md: 1rem;
|
|
2043
2078
|
--avatar-status-size-lg: 1.25rem;
|
|
2044
2079
|
--avatar-status-size-xl: 1.5rem;
|
|
2045
|
-
--avatar-
|
|
2046
|
-
--avatar-group-
|
|
2047
|
-
--avatar-group-
|
|
2080
|
+
--avatar-group-ring-width: 0.125rem;
|
|
2081
|
+
--avatar-group-ring-color: #fdfcfd;
|
|
2082
|
+
--avatar-group-overlap-tight-sm: 2rem;
|
|
2083
|
+
--avatar-group-overlap-tight-2xs: 1.25rem;
|
|
2084
|
+
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2085
|
+
--avatar-group-overlap-compact-sm: 1.5rem;
|
|
2086
|
+
--avatar-group-overlap-compact-2xs: 1rem;
|
|
2087
|
+
--avatar-group-overlap-compact-3xs: 0.75rem;
|
|
2088
|
+
--avatar-group-overlap-spacious-sm: 1rem;
|
|
2089
|
+
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2090
|
+
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2048
2091
|
--toast-color-info-background: #211f26;
|
|
2049
2092
|
--toast-color-info-foreground: #fdfcfd;
|
|
2050
2093
|
--toast-color-info-accent: #edf2fe;
|
|
@@ -2450,116 +2493,6 @@ body {
|
|
|
2450
2493
|
}
|
|
2451
2494
|
|
|
2452
2495
|
|
|
2453
|
-
/* View */
|
|
2454
|
-
/* View Component Styles */
|
|
2455
|
-
|
|
2456
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2457
|
-
|
|
2458
|
-
.muka-view {
|
|
2459
|
-
display: flex;
|
|
2460
|
-
flex-direction: column;
|
|
2461
|
-
height: 100dvh;
|
|
2462
|
-
background-color: var(--view-color-background);
|
|
2463
|
-
position: relative;
|
|
2464
|
-
isolation: isolate;
|
|
2465
|
-
box-sizing: border-box;
|
|
2466
|
-
|
|
2467
|
-
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2468
|
-
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2469
|
-
--view-sidebar-width: 240px;
|
|
2470
|
-
}
|
|
2471
|
-
|
|
2472
|
-
/* ─── Surface level variants ─────────────────────────── */
|
|
2473
|
-
|
|
2474
|
-
.muka-view--surface-3 {
|
|
2475
|
-
background-color: var(--color-surface-level3);
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2479
|
-
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2480
|
-
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2481
|
-
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2482
|
-
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2483
|
-
for a sidebar that hasn't rendered yet. */
|
|
2484
|
-
@media (min-width: 1024px) {
|
|
2485
|
-
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2486
|
-
padding-left: var(--view-sidebar-width);
|
|
2487
|
-
}
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2491
|
-
|
|
2492
|
-
.muka-view .muka-topbar {
|
|
2493
|
-
flex-shrink: 0;
|
|
2494
|
-
z-index: 3;
|
|
2495
|
-
box-shadow: var(--shadow-level2);
|
|
2496
|
-
}
|
|
2497
|
-
|
|
2498
|
-
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2499
|
-
|
|
2500
|
-
.muka-view__body {
|
|
2501
|
-
flex: 1 1 0%;
|
|
2502
|
-
min-height: 0;
|
|
2503
|
-
overflow-y: auto;
|
|
2504
|
-
overflow-x: clip;
|
|
2505
|
-
z-index: 1;
|
|
2506
|
-
|
|
2507
|
-
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2508
|
-
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2509
|
-
reveal the content underneath. */
|
|
2510
|
-
display: flex;
|
|
2511
|
-
flex-direction: column;
|
|
2512
|
-
}
|
|
2513
|
-
|
|
2514
|
-
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2515
|
-
using the alias-layer section/container tokens, while the body scrolls full
|
|
2516
|
-
width. Full-bleed below large. */
|
|
2517
|
-
.muka-view__body-inner {
|
|
2518
|
-
width: 100%;
|
|
2519
|
-
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2520
|
-
than floating mid-screen. */
|
|
2521
|
-
flex: 1 0 auto;
|
|
2522
|
-
}
|
|
2523
|
-
|
|
2524
|
-
@media (min-width: 1024px) {
|
|
2525
|
-
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2526
|
-
max-width: var(--container-max-width-xl);
|
|
2527
|
-
margin-inline: auto;
|
|
2528
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2529
|
-
}
|
|
2530
|
-
}
|
|
2531
|
-
|
|
2532
|
-
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2533
|
-
max-width: var(--container-max-width-xl);
|
|
2534
|
-
margin-inline: auto;
|
|
2535
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
|
-
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2539
|
-
|
|
2540
|
-
.muka-view__footer {
|
|
2541
|
-
position: sticky;
|
|
2542
|
-
bottom: 0;
|
|
2543
|
-
flex-shrink: 0;
|
|
2544
|
-
z-index: 2;
|
|
2545
|
-
}
|
|
2546
|
-
|
|
2547
|
-
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2548
|
-
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2549
|
-
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2550
|
-
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2551
|
-
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2552
|
-
@media (min-width: 1024px) {
|
|
2553
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2554
|
-
display: none;
|
|
2555
|
-
}
|
|
2556
|
-
}
|
|
2557
|
-
|
|
2558
|
-
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2559
|
-
display: none;
|
|
2560
|
-
}
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
2496
|
/* Typography */
|
|
2564
2497
|
.muka-typography-catalog {
|
|
2565
2498
|
display: flex;
|
|
@@ -2910,166 +2843,113 @@ body {
|
|
|
2910
2843
|
}
|
|
2911
2844
|
|
|
2912
2845
|
|
|
2913
|
-
/*
|
|
2914
|
-
/*
|
|
2846
|
+
/* View */
|
|
2847
|
+
/* View Component Styles */
|
|
2915
2848
|
|
|
2916
|
-
/*
|
|
2917
|
-
|
|
2849
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2850
|
+
|
|
2851
|
+
.muka-view {
|
|
2918
2852
|
display: flex;
|
|
2919
|
-
|
|
2920
|
-
|
|
2853
|
+
flex-direction: column;
|
|
2854
|
+
height: 100dvh;
|
|
2855
|
+
background-color: var(--view-color-background);
|
|
2921
2856
|
position: relative;
|
|
2922
|
-
|
|
2857
|
+
isolation: isolate;
|
|
2858
|
+
box-sizing: border-box;
|
|
2859
|
+
|
|
2860
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2861
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2862
|
+
--view-sidebar-width: 240px;
|
|
2923
2863
|
}
|
|
2924
2864
|
|
|
2925
|
-
|
|
2926
|
-
|
|
2865
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2866
|
+
|
|
2867
|
+
.muka-view--surface-3 {
|
|
2868
|
+
background-color: var(--color-surface-level3);
|
|
2927
2869
|
}
|
|
2928
2870
|
|
|
2929
|
-
|
|
2930
|
-
|
|
2871
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2872
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2873
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2874
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2875
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2876
|
+
for a sidebar that hasn't rendered yet. */
|
|
2877
|
+
@media (min-width: 1024px) {
|
|
2878
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2879
|
+
padding-left: var(--view-sidebar-width);
|
|
2880
|
+
}
|
|
2931
2881
|
}
|
|
2932
2882
|
|
|
2933
|
-
/*
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
align-items: center;
|
|
2937
|
-
justify-content: center;
|
|
2883
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2884
|
+
|
|
2885
|
+
.muka-view .muka-topbar {
|
|
2938
2886
|
flex-shrink: 0;
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
color: var(--color-text-default-default);
|
|
2887
|
+
z-index: 3;
|
|
2888
|
+
box-shadow: var(--shadow-level2);
|
|
2942
2889
|
}
|
|
2943
2890
|
|
|
2944
|
-
|
|
2945
|
-
width: 100%;
|
|
2946
|
-
height: 100%;
|
|
2947
|
-
}
|
|
2891
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2948
2892
|
|
|
2949
|
-
|
|
2950
|
-
|
|
2893
|
+
.muka-view__body {
|
|
2894
|
+
flex: 1 1 0%;
|
|
2895
|
+
min-height: 0;
|
|
2896
|
+
overflow-y: auto;
|
|
2897
|
+
overflow-x: clip;
|
|
2898
|
+
z-index: 1;
|
|
2899
|
+
|
|
2900
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2901
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2902
|
+
reveal the content underneath. */
|
|
2951
2903
|
display: flex;
|
|
2952
2904
|
flex-direction: column;
|
|
2953
|
-
flex: 1;
|
|
2954
|
-
min-width: 0;
|
|
2955
|
-
gap: var(--spacing-1);
|
|
2956
2905
|
}
|
|
2957
2906
|
|
|
2958
|
-
/*
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2907
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2908
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2909
|
+
width. Full-bleed below large. */
|
|
2910
|
+
.muka-view__body-inner {
|
|
2911
|
+
width: 100%;
|
|
2912
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2913
|
+
than floating mid-screen. */
|
|
2914
|
+
flex: 1 0 auto;
|
|
2966
2915
|
}
|
|
2967
2916
|
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2917
|
+
@media (min-width: 1024px) {
|
|
2918
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2919
|
+
max-width: var(--container-max-width-xl);
|
|
2920
|
+
margin-inline: auto;
|
|
2921
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2922
|
+
}
|
|
2973
2923
|
}
|
|
2974
2924
|
|
|
2975
|
-
.muka-
|
|
2976
|
-
|
|
2977
|
-
|
|
2925
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2926
|
+
max-width: var(--container-max-width-xl);
|
|
2927
|
+
margin-inline: auto;
|
|
2928
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2978
2929
|
}
|
|
2979
2930
|
|
|
2980
|
-
/*
|
|
2981
|
-
.muka-toggle__caption {
|
|
2982
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
2983
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
2984
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
2985
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
2986
|
-
color: var(--color-text-subtle-default);
|
|
2987
|
-
}
|
|
2931
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2988
2932
|
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
display: inline-flex;
|
|
2933
|
+
.muka-view__footer {
|
|
2934
|
+
position: sticky;
|
|
2935
|
+
bottom: 0;
|
|
2993
2936
|
flex-shrink: 0;
|
|
2994
|
-
|
|
2937
|
+
z-index: 2;
|
|
2995
2938
|
}
|
|
2996
2939
|
|
|
2997
|
-
|
|
2998
|
-
|
|
2940
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2941
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2942
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2943
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2944
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2945
|
+
@media (min-width: 1024px) {
|
|
2946
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2947
|
+
display: none;
|
|
2948
|
+
}
|
|
2999
2949
|
}
|
|
3000
2950
|
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
position: absolute;
|
|
3004
|
-
width: 1px;
|
|
3005
|
-
height: 1px;
|
|
3006
|
-
padding: 0;
|
|
3007
|
-
margin: -1px;
|
|
3008
|
-
overflow: hidden;
|
|
3009
|
-
clip: rect(0, 0, 0, 0);
|
|
3010
|
-
white-space: nowrap;
|
|
3011
|
-
border: 0;
|
|
3012
|
-
}
|
|
3013
|
-
|
|
3014
|
-
/* Track (background pill) */
|
|
3015
|
-
.muka-toggle__track {
|
|
3016
|
-
display: flex;
|
|
3017
|
-
align-items: center;
|
|
3018
|
-
width: var(--toggle-track-width);
|
|
3019
|
-
height: var(--toggle-track-height);
|
|
3020
|
-
border-radius: var(--toggle-track-radius);
|
|
3021
|
-
background-color: var(--toggle-track-color-off);
|
|
3022
|
-
transition: background-color 0.2s ease;
|
|
3023
|
-
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3024
|
-
position: relative;
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3027
|
-
/* Knob (sliding circle) */
|
|
3028
|
-
.muka-toggle__knob {
|
|
3029
|
-
position: absolute;
|
|
3030
|
-
width: var(--toggle-knob-size);
|
|
3031
|
-
height: var(--toggle-knob-size);
|
|
3032
|
-
border-radius: var(--border-radius-full);
|
|
3033
|
-
background-color: var(--toggle-knob-color-default);
|
|
3034
|
-
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3035
|
-
left: var(--toggle-knob-offset);
|
|
3036
|
-
transition: left 0.2s ease, transform 0.2s ease;
|
|
3037
|
-
}
|
|
3038
|
-
|
|
3039
|
-
/* Focus state */
|
|
3040
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3041
|
-
outline: 2px solid var(--color-border-focus);
|
|
3042
|
-
outline-offset: 2px;
|
|
3043
|
-
}
|
|
3044
|
-
|
|
3045
|
-
/* Checked (on) state */
|
|
3046
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3047
|
-
background-color: var(--toggle-track-color-on);
|
|
3048
|
-
}
|
|
3049
|
-
|
|
3050
|
-
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3051
|
-
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3052
|
-
}
|
|
3053
|
-
|
|
3054
|
-
/* Disabled state */
|
|
3055
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3056
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3057
|
-
box-shadow: none;
|
|
3058
|
-
}
|
|
3059
|
-
|
|
3060
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3061
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3062
|
-
box-shadow: none;
|
|
3063
|
-
}
|
|
3064
|
-
|
|
3065
|
-
/* Divider */
|
|
3066
|
-
.muka-toggle__divider {
|
|
3067
|
-
position: absolute;
|
|
3068
|
-
bottom: 0;
|
|
3069
|
-
left: 0;
|
|
3070
|
-
right: 0;
|
|
3071
|
-
height: 1px;
|
|
3072
|
-
background-color: var(--color-border-muted);
|
|
2951
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2952
|
+
display: none;
|
|
3073
2953
|
}
|
|
3074
2954
|
|
|
3075
2955
|
|
|
@@ -3798,249 +3678,166 @@ body {
|
|
|
3798
3678
|
}
|
|
3799
3679
|
|
|
3800
3680
|
|
|
3801
|
-
/*
|
|
3802
|
-
/*
|
|
3681
|
+
/* Toggle */
|
|
3682
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3803
3683
|
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3684
|
+
/* Wrapper container */
|
|
3685
|
+
.muka-toggle {
|
|
3686
|
+
display: flex;
|
|
3687
|
+
align-items: center;
|
|
3807
3688
|
gap: var(--spacing-2);
|
|
3689
|
+
position: relative;
|
|
3690
|
+
padding: var(--spacing-4) 0;
|
|
3808
3691
|
}
|
|
3809
3692
|
|
|
3810
|
-
|
|
3811
|
-
|
|
3693
|
+
.muka-toggle--with-caption {
|
|
3694
|
+
padding: var(--spacing-5) 0;
|
|
3695
|
+
}
|
|
3696
|
+
|
|
3697
|
+
.muka-toggle--disabled {
|
|
3698
|
+
opacity: 0.6;
|
|
3699
|
+
}
|
|
3700
|
+
|
|
3701
|
+
/* Icon */
|
|
3702
|
+
.muka-toggle__icon {
|
|
3703
|
+
display: flex;
|
|
3704
|
+
align-items: center;
|
|
3705
|
+
justify-content: center;
|
|
3706
|
+
flex-shrink: 0;
|
|
3707
|
+
width: var(--icon-size-default);
|
|
3708
|
+
height: var(--icon-size-default);
|
|
3812
3709
|
color: var(--color-text-default-default);
|
|
3813
|
-
cursor: pointer;
|
|
3814
3710
|
}
|
|
3815
3711
|
|
|
3816
|
-
.muka-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
3820
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
3712
|
+
.muka-toggle__icon svg {
|
|
3713
|
+
width: 100%;
|
|
3714
|
+
height: 100%;
|
|
3821
3715
|
}
|
|
3822
3716
|
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3717
|
+
/* Content area (label + caption) */
|
|
3718
|
+
.muka-toggle__content {
|
|
3719
|
+
display: flex;
|
|
3720
|
+
flex-direction: column;
|
|
3721
|
+
flex: 1;
|
|
3722
|
+
min-width: 0;
|
|
3723
|
+
gap: var(--spacing-1);
|
|
3828
3724
|
}
|
|
3829
3725
|
|
|
3830
|
-
|
|
3726
|
+
/* Label */
|
|
3727
|
+
.muka-toggle__label {
|
|
3728
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3729
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3730
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
3731
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3732
|
+
color: var(--color-text-default-default);
|
|
3733
|
+
cursor: pointer;
|
|
3734
|
+
}
|
|
3735
|
+
|
|
3736
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
3831
3737
|
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3832
3738
|
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3833
3739
|
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3834
3740
|
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3835
3741
|
}
|
|
3836
3742
|
|
|
3837
|
-
.muka-
|
|
3838
|
-
color: var(--color-
|
|
3743
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
3744
|
+
color: var(--color-text-subtle-default);
|
|
3745
|
+
cursor: not-allowed;
|
|
3839
3746
|
}
|
|
3840
3747
|
|
|
3841
|
-
/*
|
|
3842
|
-
.muka-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
3849
|
-
box-sizing: border-box;
|
|
3748
|
+
/* Caption */
|
|
3749
|
+
.muka-toggle__caption {
|
|
3750
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3751
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3752
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3753
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3754
|
+
color: var(--color-text-subtle-default);
|
|
3850
3755
|
}
|
|
3851
3756
|
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3757
|
+
/* Switch container */
|
|
3758
|
+
.muka-toggle__switch {
|
|
3759
|
+
position: relative;
|
|
3760
|
+
display: inline-flex;
|
|
3761
|
+
flex-shrink: 0;
|
|
3762
|
+
cursor: pointer;
|
|
3855
3763
|
}
|
|
3856
3764
|
|
|
3857
|
-
.muka-
|
|
3858
|
-
|
|
3859
|
-
border-radius: var(--input-field-radius-md);
|
|
3765
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3766
|
+
cursor: not-allowed;
|
|
3860
3767
|
}
|
|
3861
3768
|
|
|
3862
|
-
|
|
3863
|
-
|
|
3864
|
-
|
|
3769
|
+
/* Hidden native input */
|
|
3770
|
+
.muka-toggle__input {
|
|
3771
|
+
position: absolute;
|
|
3772
|
+
width: 1px;
|
|
3773
|
+
height: 1px;
|
|
3774
|
+
padding: 0;
|
|
3775
|
+
margin: -1px;
|
|
3776
|
+
overflow: hidden;
|
|
3777
|
+
clip: rect(0, 0, 0, 0);
|
|
3778
|
+
white-space: nowrap;
|
|
3779
|
+
border: 0;
|
|
3865
3780
|
}
|
|
3866
3781
|
|
|
3867
|
-
/*
|
|
3868
|
-
.muka-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3782
|
+
/* Track (background pill) */
|
|
3783
|
+
.muka-toggle__track {
|
|
3784
|
+
display: flex;
|
|
3785
|
+
align-items: center;
|
|
3786
|
+
width: var(--toggle-track-width);
|
|
3787
|
+
height: var(--toggle-track-height);
|
|
3788
|
+
border-radius: var(--toggle-track-radius);
|
|
3789
|
+
background-color: var(--toggle-track-color-off);
|
|
3790
|
+
transition: background-color 0.2s ease;
|
|
3791
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3792
|
+
position: relative;
|
|
3873
3793
|
}
|
|
3874
3794
|
|
|
3875
|
-
/*
|
|
3876
|
-
.muka-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3795
|
+
/* Knob (sliding circle) */
|
|
3796
|
+
.muka-toggle__knob {
|
|
3797
|
+
position: absolute;
|
|
3798
|
+
width: var(--toggle-knob-size);
|
|
3799
|
+
height: var(--toggle-knob-size);
|
|
3800
|
+
border-radius: var(--border-radius-full);
|
|
3801
|
+
background-color: var(--toggle-knob-color-default);
|
|
3802
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3803
|
+
left: var(--toggle-knob-offset);
|
|
3804
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
3881
3805
|
}
|
|
3882
3806
|
|
|
3883
|
-
/*
|
|
3884
|
-
.muka-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
cursor: not-allowed;
|
|
3807
|
+
/* Focus state */
|
|
3808
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3809
|
+
outline: 2px solid var(--color-border-focus);
|
|
3810
|
+
outline-offset: 2px;
|
|
3888
3811
|
}
|
|
3889
3812
|
|
|
3890
|
-
/*
|
|
3891
|
-
.muka-
|
|
3892
|
-
|
|
3893
|
-
border: none;
|
|
3894
|
-
outline: none;
|
|
3895
|
-
background: transparent;
|
|
3896
|
-
color: var(--input-field-color-default-foreground);
|
|
3897
|
-
font-family: var(--text-input-md-fontFamily);
|
|
3898
|
-
font-weight: var(--text-input-md-fontWeight);
|
|
3899
|
-
font-size: var(--text-input-md-fontSize);
|
|
3900
|
-
line-height: var(--text-input-md-lineHeight);
|
|
3901
|
-
padding: 0;
|
|
3902
|
-
width: 100%;
|
|
3903
|
-
min-width: 0;
|
|
3813
|
+
/* Checked (on) state */
|
|
3814
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3815
|
+
background-color: var(--toggle-track-color-on);
|
|
3904
3816
|
}
|
|
3905
3817
|
|
|
3906
|
-
.muka-
|
|
3907
|
-
|
|
3908
|
-
font-weight: var(--text-input-sm-fontWeight);
|
|
3909
|
-
font-size: var(--text-input-sm-fontSize);
|
|
3910
|
-
line-height: var(--text-input-sm-lineHeight);
|
|
3818
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3819
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3911
3820
|
}
|
|
3912
3821
|
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
line-height: var(--text-input-lg-lineHeight);
|
|
3822
|
+
/* Disabled state */
|
|
3823
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3824
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3825
|
+
box-shadow: none;
|
|
3918
3826
|
}
|
|
3919
3827
|
|
|
3920
|
-
.muka-
|
|
3921
|
-
color: var(--
|
|
3828
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3829
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3830
|
+
box-shadow: none;
|
|
3922
3831
|
}
|
|
3923
3832
|
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
justify-content: space-between;
|
|
3933
|
-
align-items: flex-start;
|
|
3934
|
-
gap: var(--spacing-2);
|
|
3935
|
-
}
|
|
3936
|
-
|
|
3937
|
-
.muka-textarea__helper {
|
|
3938
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3939
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3940
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3941
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3942
|
-
color: var(--color-text-subtle-default);
|
|
3943
|
-
margin: 0;
|
|
3944
|
-
}
|
|
3945
|
-
|
|
3946
|
-
.muka-textarea__error {
|
|
3947
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3948
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3949
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3950
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3951
|
-
color: var(--color-state-error-default);
|
|
3952
|
-
margin: 0;
|
|
3953
|
-
}
|
|
3954
|
-
|
|
3955
|
-
.muka-textarea__count {
|
|
3956
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3957
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3958
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3959
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3960
|
-
color: var(--color-text-subtle-default);
|
|
3961
|
-
margin-left: auto;
|
|
3962
|
-
}
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
/* TextLink */
|
|
3966
|
-
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
3967
|
-
|
|
3968
|
-
.muka-text-link {
|
|
3969
|
-
display: inline;
|
|
3970
|
-
cursor: pointer;
|
|
3971
|
-
text-decoration: underline;
|
|
3972
|
-
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
3973
|
-
text-underline-offset: 0.2em;
|
|
3974
|
-
text-decoration-thickness: from-font;
|
|
3975
|
-
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
3976
|
-
border-radius: var(--border-radius-sm);
|
|
3977
|
-
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
3978
|
-
}
|
|
3979
|
-
|
|
3980
|
-
/* ─── Sizes ───────────────────────────────────────────────
|
|
3981
|
-
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
3982
|
-
.muka-text-link--sm {
|
|
3983
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3984
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3985
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3986
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3987
|
-
}
|
|
3988
|
-
|
|
3989
|
-
.muka-text-link--base {
|
|
3990
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3991
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3992
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3993
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3994
|
-
}
|
|
3995
|
-
|
|
3996
|
-
.muka-text-link--lg {
|
|
3997
|
-
font-family: var(--text-body-lg-regular-fontFamily);
|
|
3998
|
-
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
3999
|
-
font-size: var(--text-body-lg-regular-fontSize);
|
|
4000
|
-
line-height: var(--text-body-lg-regular-lineHeight);
|
|
4001
|
-
}
|
|
4002
|
-
|
|
4003
|
-
/* ─── Variant: default (accent) ───────────────────────────
|
|
4004
|
-
Visited repeats the default colour on purpose: the design treats visited and
|
|
4005
|
-
default the same, and pinning it stops the browser's purple from showing. */
|
|
4006
|
-
.muka-text-link--default,
|
|
4007
|
-
.muka-text-link--default:visited {
|
|
4008
|
-
color: var(--color-text-action-default);
|
|
4009
|
-
}
|
|
4010
|
-
|
|
4011
|
-
.muka-text-link--default:hover,
|
|
4012
|
-
.muka-text-link--default:focus-visible {
|
|
4013
|
-
color: var(--color-text-action-hover);
|
|
4014
|
-
}
|
|
4015
|
-
|
|
4016
|
-
.muka-text-link--default:active {
|
|
4017
|
-
color: var(--color-text-action-pressed);
|
|
4018
|
-
}
|
|
4019
|
-
|
|
4020
|
-
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
4021
|
-
Hover, focus and pressed all darken to the default text colour. */
|
|
4022
|
-
.muka-text-link--subtle,
|
|
4023
|
-
.muka-text-link--subtle:visited {
|
|
4024
|
-
color: var(--color-text-subtle-default);
|
|
4025
|
-
}
|
|
4026
|
-
|
|
4027
|
-
.muka-text-link--subtle:hover,
|
|
4028
|
-
.muka-text-link--subtle:focus-visible,
|
|
4029
|
-
.muka-text-link--subtle:active {
|
|
4030
|
-
color: var(--color-text-default-default);
|
|
4031
|
-
}
|
|
4032
|
-
|
|
4033
|
-
/* ─── Focus ───────────────────────────────────────────────
|
|
4034
|
-
Same ring as every other focusable Muka component. */
|
|
4035
|
-
.muka-text-link:focus-visible {
|
|
4036
|
-
outline: 2px solid var(--color-border-focus);
|
|
4037
|
-
outline-offset: 2px;
|
|
4038
|
-
}
|
|
4039
|
-
|
|
4040
|
-
@media (prefers-reduced-motion: reduce) {
|
|
4041
|
-
.muka-text-link {
|
|
4042
|
-
transition: none;
|
|
4043
|
-
}
|
|
3833
|
+
/* Divider */
|
|
3834
|
+
.muka-toggle__divider {
|
|
3835
|
+
position: absolute;
|
|
3836
|
+
bottom: 0;
|
|
3837
|
+
left: 0;
|
|
3838
|
+
right: 0;
|
|
3839
|
+
height: 1px;
|
|
3840
|
+
background-color: var(--color-border-muted);
|
|
4044
3841
|
}
|
|
4045
3842
|
|
|
4046
3843
|
|
|
@@ -4075,12 +3872,17 @@ body {
|
|
|
4075
3872
|
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4076
3873
|
}
|
|
4077
3874
|
|
|
3875
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
3876
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
3877
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
3878
|
+
}
|
|
3879
|
+
|
|
4078
3880
|
/* Tab Trigger — clean underline style */
|
|
4079
3881
|
.muka-tabs__trigger {
|
|
4080
3882
|
display: inline-flex;
|
|
4081
3883
|
align-items: center;
|
|
4082
3884
|
justify-content: center;
|
|
4083
|
-
gap: var(--spacing-
|
|
3885
|
+
gap: var(--spacing-1);
|
|
4084
3886
|
background: transparent;
|
|
4085
3887
|
border: none;
|
|
4086
3888
|
cursor: pointer;
|
|
@@ -4093,8 +3895,8 @@ body {
|
|
|
4093
3895
|
color: var(--tabs-trigger-color-default-foreground);
|
|
4094
3896
|
|
|
4095
3897
|
/* Default MD size values */
|
|
4096
|
-
height:
|
|
4097
|
-
padding:
|
|
3898
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
3899
|
+
padding: var(--spacing-3);
|
|
4098
3900
|
font-family: var(--text-label-md-regular-fontFamily);
|
|
4099
3901
|
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4100
3902
|
font-size: var(--text-label-md-regular-fontSize);
|
|
@@ -4103,8 +3905,8 @@ body {
|
|
|
4103
3905
|
|
|
4104
3906
|
/* Size Variants */
|
|
4105
3907
|
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4106
|
-
height:
|
|
4107
|
-
padding: 0 var(--spacing-2
|
|
3908
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
3909
|
+
padding: 0 var(--spacing-2);
|
|
4108
3910
|
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4109
3911
|
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4110
3912
|
font-size: var(--text-label-sm-regular-fontSize);
|
|
@@ -4112,8 +3914,8 @@ body {
|
|
|
4112
3914
|
}
|
|
4113
3915
|
|
|
4114
3916
|
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4115
|
-
height:
|
|
4116
|
-
padding:
|
|
3917
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
3918
|
+
padding: var(--spacing-4);
|
|
4117
3919
|
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4118
3920
|
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4119
3921
|
font-size: var(--text-label-lg-regular-fontSize);
|
|
@@ -4137,8 +3939,8 @@ body {
|
|
|
4137
3939
|
bottom: -1px; /* Overlap the 1px border */
|
|
4138
3940
|
left: 0;
|
|
4139
3941
|
right: 0;
|
|
4140
|
-
height:
|
|
4141
|
-
background-color: var(--tabs-
|
|
3942
|
+
height: var(--tabs-indicator-height-md);
|
|
3943
|
+
background-color: var(--tabs-indicator-color);
|
|
4142
3944
|
border-bottom-left-radius: 1px;
|
|
4143
3945
|
border-bottom-right-radius: 1px;
|
|
4144
3946
|
border-top-left-radius: 3px;
|
|
@@ -4146,6 +3948,13 @@ body {
|
|
|
4146
3948
|
z-index: 3;
|
|
4147
3949
|
}
|
|
4148
3950
|
|
|
3951
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
3952
|
+
height: var(--tabs-indicator-height-sm);
|
|
3953
|
+
}
|
|
3954
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
3955
|
+
height: var(--tabs-indicator-height-lg);
|
|
3956
|
+
}
|
|
3957
|
+
|
|
4149
3958
|
.muka-tabs__trigger--disabled {
|
|
4150
3959
|
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4151
3960
|
cursor: not-allowed;
|
|
@@ -4156,18 +3965,29 @@ body {
|
|
|
4156
3965
|
outline-offset: -2px;
|
|
4157
3966
|
}
|
|
4158
3967
|
|
|
4159
|
-
/*
|
|
4160
|
-
|
|
3968
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
3969
|
+
item sits 12px from the text */
|
|
3970
|
+
.muka-tabs__label {
|
|
3971
|
+
padding: 0 var(--spacing-2);
|
|
3972
|
+
}
|
|
3973
|
+
|
|
3974
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
3975
|
+
.muka-tabs__leading {
|
|
4161
3976
|
display: flex;
|
|
4162
3977
|
align-items: center;
|
|
4163
3978
|
justify-content: center;
|
|
3979
|
+
flex-shrink: 0;
|
|
4164
3980
|
}
|
|
4165
3981
|
.muka-tabs__trigger .muka-icon {
|
|
4166
3982
|
color: inherit;
|
|
4167
3983
|
}
|
|
4168
|
-
|
|
4169
|
-
.muka-tabs--size-
|
|
4170
|
-
.muka-tabs--size-
|
|
3984
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
3985
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
3986
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
3987
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
3988
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
3989
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
3990
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4171
3991
|
|
|
4172
3992
|
/* Responsive Scroll behavior on small screens */
|
|
4173
3993
|
@media (max-width: 768px) {
|
|
@@ -4191,25 +4011,271 @@ body {
|
|
|
4191
4011
|
}
|
|
4192
4012
|
}
|
|
4193
4013
|
|
|
4194
|
-
/* Tab Panel — content area */
|
|
4195
|
-
.muka-tabs__panel {
|
|
4196
|
-
background-color: var(--tabs-panel-background);
|
|
4197
|
-
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
4198
|
-
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4199
|
-
padding: var(--spacing-4);
|
|
4200
|
-
position: relative;
|
|
4201
|
-
z-index: 1;
|
|
4202
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
4203
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4204
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4205
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
4014
|
+
/* Tab Panel — content area */
|
|
4015
|
+
.muka-tabs__panel {
|
|
4016
|
+
background-color: var(--tabs-panel-background);
|
|
4017
|
+
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
4018
|
+
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4019
|
+
padding: var(--spacing-4);
|
|
4020
|
+
position: relative;
|
|
4021
|
+
z-index: 1;
|
|
4022
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4023
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4024
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4025
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4026
|
+
}
|
|
4027
|
+
|
|
4028
|
+
.muka-tabs__panel:focus-visible {
|
|
4029
|
+
outline: 2px solid var(--color-border-focus);
|
|
4030
|
+
outline-offset: 2px;
|
|
4031
|
+
}
|
|
4032
|
+
|
|
4033
|
+
|
|
4034
|
+
/* Textarea */
|
|
4035
|
+
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
4036
|
+
|
|
4037
|
+
.muka-textarea {
|
|
4038
|
+
display: inline-flex;
|
|
4039
|
+
flex-direction: column;
|
|
4040
|
+
gap: var(--spacing-2);
|
|
4041
|
+
}
|
|
4042
|
+
|
|
4043
|
+
/* Label */
|
|
4044
|
+
.muka-textarea__label {
|
|
4045
|
+
color: var(--color-text-default-default);
|
|
4046
|
+
cursor: pointer;
|
|
4047
|
+
}
|
|
4048
|
+
|
|
4049
|
+
.muka-textarea__label--sm {
|
|
4050
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4051
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4052
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4053
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4054
|
+
}
|
|
4055
|
+
|
|
4056
|
+
.muka-textarea__label--md {
|
|
4057
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
4058
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
4059
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
4060
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
4061
|
+
}
|
|
4062
|
+
|
|
4063
|
+
.muka-textarea__label--lg {
|
|
4064
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
4065
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
4066
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
4067
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
4068
|
+
}
|
|
4069
|
+
|
|
4070
|
+
.muka-textarea__required {
|
|
4071
|
+
color: var(--color-state-error-default);
|
|
4072
|
+
}
|
|
4073
|
+
|
|
4074
|
+
/* Field container */
|
|
4075
|
+
.muka-textarea__field {
|
|
4076
|
+
display: flex;
|
|
4077
|
+
background-color: var(--input-field-color-default-background);
|
|
4078
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
4079
|
+
border-radius: var(--input-field-radius-md);
|
|
4080
|
+
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
4081
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
4082
|
+
box-sizing: border-box;
|
|
4083
|
+
}
|
|
4084
|
+
|
|
4085
|
+
.muka-textarea__field--sm {
|
|
4086
|
+
min-height: var(--input-textarea-height-sm);
|
|
4087
|
+
border-radius: var(--input-field-radius-sm);
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
.muka-textarea__field--md {
|
|
4091
|
+
min-height: var(--input-textarea-height-default);
|
|
4092
|
+
border-radius: var(--input-field-radius-md);
|
|
4093
|
+
}
|
|
4094
|
+
|
|
4095
|
+
.muka-textarea__field--lg {
|
|
4096
|
+
min-height: var(--input-textarea-height-lg);
|
|
4097
|
+
border-radius: var(--input-field-radius-lg);
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4100
|
+
/* Focus state */
|
|
4101
|
+
.muka-textarea__field--focused:not(.muka-textarea__field--disabled) {
|
|
4102
|
+
border-width: var(--border-width-bold);
|
|
4103
|
+
border-color: var(--input-field-color-focus-border);
|
|
4104
|
+
background-color: var(--input-field-color-focus-background);
|
|
4105
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
/* Error state */
|
|
4109
|
+
.muka-textarea__field--error:not(.muka-textarea__field--disabled) {
|
|
4110
|
+
border-width: var(--border-width-bold);
|
|
4111
|
+
border-color: var(--input-field-color-error-border);
|
|
4112
|
+
background-color: var(--input-field-color-error-background);
|
|
4113
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4114
|
+
}
|
|
4115
|
+
|
|
4116
|
+
/* Disabled state */
|
|
4117
|
+
.muka-textarea__field--disabled {
|
|
4118
|
+
background-color: var(--input-field-color-disabled-background);
|
|
4119
|
+
border-color: var(--input-field-color-disabled-border);
|
|
4120
|
+
cursor: not-allowed;
|
|
4121
|
+
}
|
|
4122
|
+
|
|
4123
|
+
/* Native textarea */
|
|
4124
|
+
.muka-textarea__native {
|
|
4125
|
+
flex: 1;
|
|
4126
|
+
border: none;
|
|
4127
|
+
outline: none;
|
|
4128
|
+
background: transparent;
|
|
4129
|
+
color: var(--input-field-color-default-foreground);
|
|
4130
|
+
font-family: var(--text-input-md-fontFamily);
|
|
4131
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
4132
|
+
font-size: var(--text-input-md-fontSize);
|
|
4133
|
+
line-height: var(--text-input-md-lineHeight);
|
|
4134
|
+
padding: 0;
|
|
4135
|
+
width: 100%;
|
|
4136
|
+
min-width: 0;
|
|
4137
|
+
}
|
|
4138
|
+
|
|
4139
|
+
.muka-textarea__field--sm .muka-textarea__native {
|
|
4140
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
4141
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
4142
|
+
font-size: var(--text-input-sm-fontSize);
|
|
4143
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
4144
|
+
}
|
|
4145
|
+
|
|
4146
|
+
.muka-textarea__field--lg .muka-textarea__native {
|
|
4147
|
+
font-family: var(--text-input-lg-fontFamily);
|
|
4148
|
+
font-weight: var(--text-input-lg-fontWeight);
|
|
4149
|
+
font-size: var(--text-input-lg-fontSize);
|
|
4150
|
+
line-height: var(--text-input-lg-lineHeight);
|
|
4151
|
+
}
|
|
4152
|
+
|
|
4153
|
+
.muka-textarea__native::placeholder {
|
|
4154
|
+
color: var(--color-text-subtle-default);
|
|
4155
|
+
}
|
|
4156
|
+
|
|
4157
|
+
.muka-textarea__field--disabled .muka-textarea__native {
|
|
4158
|
+
color: var(--input-field-color-disabled-foreground);
|
|
4159
|
+
cursor: not-allowed;
|
|
4160
|
+
}
|
|
4161
|
+
|
|
4162
|
+
/* Footer (helper/error + count) */
|
|
4163
|
+
.muka-textarea__footer {
|
|
4164
|
+
display: flex;
|
|
4165
|
+
justify-content: space-between;
|
|
4166
|
+
align-items: flex-start;
|
|
4167
|
+
gap: var(--spacing-2);
|
|
4168
|
+
}
|
|
4169
|
+
|
|
4170
|
+
.muka-textarea__helper {
|
|
4171
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4172
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4173
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4174
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4175
|
+
color: var(--color-text-subtle-default);
|
|
4176
|
+
margin: 0;
|
|
4177
|
+
}
|
|
4178
|
+
|
|
4179
|
+
.muka-textarea__error {
|
|
4180
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4181
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4182
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4183
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4184
|
+
color: var(--color-state-error-default);
|
|
4185
|
+
margin: 0;
|
|
4186
|
+
}
|
|
4187
|
+
|
|
4188
|
+
.muka-textarea__count {
|
|
4189
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4190
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4191
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4192
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4193
|
+
color: var(--color-text-subtle-default);
|
|
4194
|
+
margin-left: auto;
|
|
4195
|
+
}
|
|
4196
|
+
|
|
4197
|
+
|
|
4198
|
+
/* TextLink */
|
|
4199
|
+
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
4200
|
+
|
|
4201
|
+
.muka-text-link {
|
|
4202
|
+
display: inline;
|
|
4203
|
+
cursor: pointer;
|
|
4204
|
+
text-decoration: underline;
|
|
4205
|
+
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
4206
|
+
text-underline-offset: 0.2em;
|
|
4207
|
+
text-decoration-thickness: from-font;
|
|
4208
|
+
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
4209
|
+
border-radius: var(--border-radius-sm);
|
|
4210
|
+
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
4211
|
+
}
|
|
4212
|
+
|
|
4213
|
+
/* ─── Sizes ───────────────────────────────────────────────
|
|
4214
|
+
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
4215
|
+
.muka-text-link--sm {
|
|
4216
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4217
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4218
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4219
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4222
|
+
.muka-text-link--base {
|
|
4223
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4224
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4225
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4226
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4227
|
+
}
|
|
4228
|
+
|
|
4229
|
+
.muka-text-link--lg {
|
|
4230
|
+
font-family: var(--text-body-lg-regular-fontFamily);
|
|
4231
|
+
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
4232
|
+
font-size: var(--text-body-lg-regular-fontSize);
|
|
4233
|
+
line-height: var(--text-body-lg-regular-lineHeight);
|
|
4234
|
+
}
|
|
4235
|
+
|
|
4236
|
+
/* ─── Variant: default (accent) ───────────────────────────
|
|
4237
|
+
Visited repeats the default colour on purpose: the design treats visited and
|
|
4238
|
+
default the same, and pinning it stops the browser's purple from showing. */
|
|
4239
|
+
.muka-text-link--default,
|
|
4240
|
+
.muka-text-link--default:visited {
|
|
4241
|
+
color: var(--color-text-action-default);
|
|
4242
|
+
}
|
|
4243
|
+
|
|
4244
|
+
.muka-text-link--default:hover,
|
|
4245
|
+
.muka-text-link--default:focus-visible {
|
|
4246
|
+
color: var(--color-text-action-hover);
|
|
4206
4247
|
}
|
|
4207
4248
|
|
|
4208
|
-
.muka-
|
|
4249
|
+
.muka-text-link--default:active {
|
|
4250
|
+
color: var(--color-text-action-pressed);
|
|
4251
|
+
}
|
|
4252
|
+
|
|
4253
|
+
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
4254
|
+
Hover, focus and pressed all darken to the default text colour. */
|
|
4255
|
+
.muka-text-link--subtle,
|
|
4256
|
+
.muka-text-link--subtle:visited {
|
|
4257
|
+
color: var(--color-text-subtle-default);
|
|
4258
|
+
}
|
|
4259
|
+
|
|
4260
|
+
.muka-text-link--subtle:hover,
|
|
4261
|
+
.muka-text-link--subtle:focus-visible,
|
|
4262
|
+
.muka-text-link--subtle:active {
|
|
4263
|
+
color: var(--color-text-default-default);
|
|
4264
|
+
}
|
|
4265
|
+
|
|
4266
|
+
/* ─── Focus ───────────────────────────────────────────────
|
|
4267
|
+
Same ring as every other focusable Muka component. */
|
|
4268
|
+
.muka-text-link:focus-visible {
|
|
4209
4269
|
outline: 2px solid var(--color-border-focus);
|
|
4210
4270
|
outline-offset: 2px;
|
|
4211
4271
|
}
|
|
4212
4272
|
|
|
4273
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4274
|
+
.muka-text-link {
|
|
4275
|
+
transition: none;
|
|
4276
|
+
}
|
|
4277
|
+
}
|
|
4278
|
+
|
|
4213
4279
|
|
|
4214
4280
|
/* Table */
|
|
4215
4281
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
@@ -4563,114 +4629,6 @@ body {
|
|
|
4563
4629
|
}
|
|
4564
4630
|
|
|
4565
4631
|
|
|
4566
|
-
/* SwipeActions */
|
|
4567
|
-
/* SwipeActions Component Styles */
|
|
4568
|
-
|
|
4569
|
-
.muka-swipe-actions {
|
|
4570
|
-
position: relative;
|
|
4571
|
-
overflow: hidden;
|
|
4572
|
-
touch-action: pan-y;
|
|
4573
|
-
-webkit-user-select: none;
|
|
4574
|
-
user-select: none;
|
|
4575
|
-
background-color: var(--color-surface-level3);
|
|
4576
|
-
}
|
|
4577
|
-
|
|
4578
|
-
.muka-swipe-actions--disabled {
|
|
4579
|
-
touch-action: auto;
|
|
4580
|
-
}
|
|
4581
|
-
|
|
4582
|
-
/* ─── Row that holds the actual content ────────────────── */
|
|
4583
|
-
|
|
4584
|
-
.muka-swipe-actions__row {
|
|
4585
|
-
position: relative;
|
|
4586
|
-
z-index: 1;
|
|
4587
|
-
background-color: inherit;
|
|
4588
|
-
will-change: transform;
|
|
4589
|
-
}
|
|
4590
|
-
|
|
4591
|
-
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4592
|
-
|
|
4593
|
-
.muka-swipe-actions__panel {
|
|
4594
|
-
position: absolute;
|
|
4595
|
-
top: 0;
|
|
4596
|
-
bottom: 0;
|
|
4597
|
-
display: flex;
|
|
4598
|
-
align-items: stretch;
|
|
4599
|
-
z-index: 0;
|
|
4600
|
-
}
|
|
4601
|
-
|
|
4602
|
-
.muka-swipe-actions__panel--left {
|
|
4603
|
-
left: 0;
|
|
4604
|
-
}
|
|
4605
|
-
|
|
4606
|
-
.muka-swipe-actions__panel--right {
|
|
4607
|
-
right: 0;
|
|
4608
|
-
}
|
|
4609
|
-
|
|
4610
|
-
/* ─── Single action button ─────────────────────────────── */
|
|
4611
|
-
|
|
4612
|
-
.muka-swipe-actions__button {
|
|
4613
|
-
display: flex;
|
|
4614
|
-
flex-direction: column;
|
|
4615
|
-
align-items: center;
|
|
4616
|
-
justify-content: center;
|
|
4617
|
-
gap: var(--spacing-1);
|
|
4618
|
-
border: none;
|
|
4619
|
-
cursor: pointer;
|
|
4620
|
-
padding: var(--spacing-2);
|
|
4621
|
-
background-color: var(--color-surface-level2);
|
|
4622
|
-
color: var(--color-text-default-default);
|
|
4623
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4624
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4625
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4626
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4627
|
-
-webkit-tap-highlight-color: transparent;
|
|
4628
|
-
transition: filter 0.12s ease;
|
|
4629
|
-
}
|
|
4630
|
-
|
|
4631
|
-
.muka-swipe-actions__button:hover {
|
|
4632
|
-
filter: brightness(0.95);
|
|
4633
|
-
}
|
|
4634
|
-
|
|
4635
|
-
.muka-swipe-actions__button:focus-visible {
|
|
4636
|
-
outline: 2px solid var(--color-action-default);
|
|
4637
|
-
outline-offset: -2px;
|
|
4638
|
-
}
|
|
4639
|
-
|
|
4640
|
-
.muka-swipe-actions__button-icon {
|
|
4641
|
-
display: inline-flex;
|
|
4642
|
-
align-items: center;
|
|
4643
|
-
justify-content: center;
|
|
4644
|
-
}
|
|
4645
|
-
|
|
4646
|
-
/* ─── Color variants ───────────────────────────────────── */
|
|
4647
|
-
|
|
4648
|
-
.muka-swipe-actions__button--neutral {
|
|
4649
|
-
background-color: var(--color-surface-level2);
|
|
4650
|
-
color: var(--color-text-default-default);
|
|
4651
|
-
}
|
|
4652
|
-
|
|
4653
|
-
.muka-swipe-actions__button--primary {
|
|
4654
|
-
background-color: var(--color-action-default);
|
|
4655
|
-
color: var(--color-text-default-inverse);
|
|
4656
|
-
}
|
|
4657
|
-
|
|
4658
|
-
.muka-swipe-actions__button--success {
|
|
4659
|
-
background-color: var(--color-state-success-default);
|
|
4660
|
-
color: var(--color-text-default-inverse);
|
|
4661
|
-
}
|
|
4662
|
-
|
|
4663
|
-
.muka-swipe-actions__button--warning {
|
|
4664
|
-
background-color: var(--color-state-warning-default);
|
|
4665
|
-
color: var(--color-text-default-default);
|
|
4666
|
-
}
|
|
4667
|
-
|
|
4668
|
-
.muka-swipe-actions__button--destructive {
|
|
4669
|
-
background-color: var(--color-state-error-default);
|
|
4670
|
-
color: var(--color-text-default-inverse);
|
|
4671
|
-
}
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
4632
|
/* Spinner */
|
|
4675
4633
|
/* Spinner Component Styles */
|
|
4676
4634
|
|
|
@@ -4766,71 +4724,179 @@ body {
|
|
|
4766
4724
|
padding-bottom: var(--spacing-3);
|
|
4767
4725
|
}
|
|
4768
4726
|
|
|
4769
|
-
/* ─── Label ───────────────────────────────────────────── */
|
|
4727
|
+
/* ─── Label ───────────────────────────────────────────── */
|
|
4728
|
+
|
|
4729
|
+
.muka-spec-row__label {
|
|
4730
|
+
flex: 0 0 auto;
|
|
4731
|
+
margin: 0;
|
|
4732
|
+
color: var(--color-text-subtle-default);
|
|
4733
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4734
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4735
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4736
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4737
|
+
overflow: hidden;
|
|
4738
|
+
text-overflow: ellipsis;
|
|
4739
|
+
white-space: nowrap;
|
|
4740
|
+
}
|
|
4741
|
+
|
|
4742
|
+
/* ─── Value ───────────────────────────────────────────── */
|
|
4743
|
+
|
|
4744
|
+
.muka-spec-row__value {
|
|
4745
|
+
flex: 1 1 0;
|
|
4746
|
+
min-width: 0;
|
|
4747
|
+
margin: 0;
|
|
4748
|
+
display: flex;
|
|
4749
|
+
flex-direction: column;
|
|
4750
|
+
color: var(--color-text-default-default);
|
|
4751
|
+
}
|
|
4752
|
+
|
|
4753
|
+
.muka-spec-row__value-text {
|
|
4754
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4755
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4756
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4757
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4758
|
+
}
|
|
4759
|
+
|
|
4760
|
+
.muka-spec-row__hint {
|
|
4761
|
+
color: var(--color-text-subtle-default);
|
|
4762
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4763
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4764
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4765
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4766
|
+
}
|
|
4767
|
+
|
|
4768
|
+
/* ─── Label width (horizontal stacking) ───────────────── */
|
|
4769
|
+
|
|
4770
|
+
.muka-spec-list--label-small .muka-spec-row__label {
|
|
4771
|
+
width: 80px;
|
|
4772
|
+
}
|
|
4773
|
+
|
|
4774
|
+
.muka-spec-list--label-medium .muka-spec-row__label {
|
|
4775
|
+
width: 120px;
|
|
4776
|
+
}
|
|
4777
|
+
|
|
4778
|
+
.muka-spec-list--label-large .muka-spec-row__label {
|
|
4779
|
+
width: 160px;
|
|
4780
|
+
}
|
|
4781
|
+
|
|
4782
|
+
/* ─── Vertical stacking ───────────────────────────────── */
|
|
4783
|
+
|
|
4784
|
+
.muka-spec-list--vertical .muka-spec-row {
|
|
4785
|
+
flex-direction: column;
|
|
4786
|
+
gap: var(--spacing-1);
|
|
4787
|
+
}
|
|
4788
|
+
|
|
4789
|
+
.muka-spec-list--vertical .muka-spec-row__label {
|
|
4790
|
+
width: 100%;
|
|
4791
|
+
white-space: normal;
|
|
4792
|
+
}
|
|
4793
|
+
|
|
4794
|
+
|
|
4795
|
+
/* SwipeActions */
|
|
4796
|
+
/* SwipeActions Component Styles */
|
|
4797
|
+
|
|
4798
|
+
.muka-swipe-actions {
|
|
4799
|
+
position: relative;
|
|
4800
|
+
overflow: hidden;
|
|
4801
|
+
touch-action: pan-y;
|
|
4802
|
+
-webkit-user-select: none;
|
|
4803
|
+
user-select: none;
|
|
4804
|
+
background-color: var(--color-surface-level3);
|
|
4805
|
+
}
|
|
4806
|
+
|
|
4807
|
+
.muka-swipe-actions--disabled {
|
|
4808
|
+
touch-action: auto;
|
|
4809
|
+
}
|
|
4810
|
+
|
|
4811
|
+
/* ─── Row that holds the actual content ────────────────── */
|
|
4812
|
+
|
|
4813
|
+
.muka-swipe-actions__row {
|
|
4814
|
+
position: relative;
|
|
4815
|
+
z-index: 1;
|
|
4816
|
+
background-color: inherit;
|
|
4817
|
+
will-change: transform;
|
|
4818
|
+
}
|
|
4819
|
+
|
|
4820
|
+
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4821
|
+
|
|
4822
|
+
.muka-swipe-actions__panel {
|
|
4823
|
+
position: absolute;
|
|
4824
|
+
top: 0;
|
|
4825
|
+
bottom: 0;
|
|
4826
|
+
display: flex;
|
|
4827
|
+
align-items: stretch;
|
|
4828
|
+
z-index: 0;
|
|
4829
|
+
}
|
|
4830
|
+
|
|
4831
|
+
.muka-swipe-actions__panel--left {
|
|
4832
|
+
left: 0;
|
|
4833
|
+
}
|
|
4770
4834
|
|
|
4771
|
-
.muka-
|
|
4772
|
-
|
|
4773
|
-
margin: 0;
|
|
4774
|
-
color: var(--color-text-subtle-default);
|
|
4775
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
4776
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4777
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4778
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
4779
|
-
overflow: hidden;
|
|
4780
|
-
text-overflow: ellipsis;
|
|
4781
|
-
white-space: nowrap;
|
|
4835
|
+
.muka-swipe-actions__panel--right {
|
|
4836
|
+
right: 0;
|
|
4782
4837
|
}
|
|
4783
4838
|
|
|
4784
|
-
/* ───
|
|
4839
|
+
/* ─── Single action button ─────────────────────────────── */
|
|
4785
4840
|
|
|
4786
|
-
.muka-
|
|
4787
|
-
flex: 1 1 0;
|
|
4788
|
-
min-width: 0;
|
|
4789
|
-
margin: 0;
|
|
4841
|
+
.muka-swipe-actions__button {
|
|
4790
4842
|
display: flex;
|
|
4791
4843
|
flex-direction: column;
|
|
4844
|
+
align-items: center;
|
|
4845
|
+
justify-content: center;
|
|
4846
|
+
gap: var(--spacing-1);
|
|
4847
|
+
border: none;
|
|
4848
|
+
cursor: pointer;
|
|
4849
|
+
padding: var(--spacing-2);
|
|
4850
|
+
background-color: var(--color-surface-level2);
|
|
4792
4851
|
color: var(--color-text-default-default);
|
|
4852
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4853
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4854
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4855
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4856
|
+
-webkit-tap-highlight-color: transparent;
|
|
4857
|
+
transition: filter 0.12s ease;
|
|
4793
4858
|
}
|
|
4794
4859
|
|
|
4795
|
-
.muka-
|
|
4796
|
-
|
|
4797
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4798
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4799
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
4860
|
+
.muka-swipe-actions__button:hover {
|
|
4861
|
+
filter: brightness(0.95);
|
|
4800
4862
|
}
|
|
4801
4863
|
|
|
4802
|
-
.muka-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4806
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
4807
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4864
|
+
.muka-swipe-actions__button:focus-visible {
|
|
4865
|
+
outline: 2px solid var(--color-action-default);
|
|
4866
|
+
outline-offset: -2px;
|
|
4808
4867
|
}
|
|
4809
4868
|
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4869
|
+
.muka-swipe-actions__button-icon {
|
|
4870
|
+
display: inline-flex;
|
|
4871
|
+
align-items: center;
|
|
4872
|
+
justify-content: center;
|
|
4814
4873
|
}
|
|
4815
4874
|
|
|
4816
|
-
|
|
4817
|
-
|
|
4875
|
+
/* ─── Color variants ───────────────────────────────────── */
|
|
4876
|
+
|
|
4877
|
+
.muka-swipe-actions__button--neutral {
|
|
4878
|
+
background-color: var(--color-surface-level2);
|
|
4879
|
+
color: var(--color-text-default-default);
|
|
4818
4880
|
}
|
|
4819
4881
|
|
|
4820
|
-
.muka-
|
|
4821
|
-
|
|
4882
|
+
.muka-swipe-actions__button--primary {
|
|
4883
|
+
background-color: var(--color-action-default);
|
|
4884
|
+
color: var(--color-text-default-inverse);
|
|
4822
4885
|
}
|
|
4823
4886
|
|
|
4824
|
-
|
|
4887
|
+
.muka-swipe-actions__button--success {
|
|
4888
|
+
background-color: var(--color-state-success-default);
|
|
4889
|
+
color: var(--color-text-default-inverse);
|
|
4890
|
+
}
|
|
4825
4891
|
|
|
4826
|
-
.muka-
|
|
4827
|
-
|
|
4828
|
-
|
|
4892
|
+
.muka-swipe-actions__button--warning {
|
|
4893
|
+
background-color: var(--color-state-warning-default);
|
|
4894
|
+
color: var(--color-text-default-default);
|
|
4829
4895
|
}
|
|
4830
4896
|
|
|
4831
|
-
.muka-
|
|
4832
|
-
|
|
4833
|
-
|
|
4897
|
+
.muka-swipe-actions__button--destructive {
|
|
4898
|
+
background-color: var(--color-state-error-default);
|
|
4899
|
+
color: var(--color-text-default-inverse);
|
|
4834
4900
|
}
|
|
4835
4901
|
|
|
4836
4902
|
|
|
@@ -7465,6 +7531,77 @@ body {
|
|
|
7465
7531
|
}
|
|
7466
7532
|
|
|
7467
7533
|
|
|
7534
|
+
/* ProfileBadge */
|
|
7535
|
+
/* ProfileBadge Component Styles - Using Muka Design Tokens */
|
|
7536
|
+
|
|
7537
|
+
.muka-profile-badge {
|
|
7538
|
+
display: inline-flex;
|
|
7539
|
+
align-items: center;
|
|
7540
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
7541
|
+
}
|
|
7542
|
+
|
|
7543
|
+
/* Size variants */
|
|
7544
|
+
.muka-profile-badge--lg {
|
|
7545
|
+
gap: var(--spacing-4); /* 16px */
|
|
7546
|
+
}
|
|
7547
|
+
|
|
7548
|
+
.muka-profile-badge--md {
|
|
7549
|
+
gap: var(--spacing-3); /* 12px */
|
|
7550
|
+
}
|
|
7551
|
+
|
|
7552
|
+
.muka-profile-badge__avatar {
|
|
7553
|
+
flex-shrink: 0;
|
|
7554
|
+
}
|
|
7555
|
+
|
|
7556
|
+
/* Text stack */
|
|
7557
|
+
.muka-profile-badge__text {
|
|
7558
|
+
display: flex;
|
|
7559
|
+
flex-direction: column;
|
|
7560
|
+
align-items: flex-start;
|
|
7561
|
+
min-width: 0;
|
|
7562
|
+
}
|
|
7563
|
+
|
|
7564
|
+
.muka-profile-badge__name {
|
|
7565
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
7566
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
7567
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
7568
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
7569
|
+
color: var(--color-text-default-default);
|
|
7570
|
+
}
|
|
7571
|
+
|
|
7572
|
+
.muka-profile-badge__email {
|
|
7573
|
+
font-family: var(--text-body-xs-regular-fontFamily);
|
|
7574
|
+
font-size: var(--text-body-xs-regular-fontSize);
|
|
7575
|
+
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
7576
|
+
line-height: var(--text-body-xs-regular-lineHeight);
|
|
7577
|
+
color: var(--color-text-subtle-default);
|
|
7578
|
+
}
|
|
7579
|
+
|
|
7580
|
+
/* Clickable state */
|
|
7581
|
+
.muka-profile-badge--clickable {
|
|
7582
|
+
cursor: pointer;
|
|
7583
|
+
border: none;
|
|
7584
|
+
background: none;
|
|
7585
|
+
padding: 0;
|
|
7586
|
+
text-align: left;
|
|
7587
|
+
border-radius: var(--radius-md);
|
|
7588
|
+
transition: opacity 0.2s ease;
|
|
7589
|
+
}
|
|
7590
|
+
|
|
7591
|
+
.muka-profile-badge--clickable:hover {
|
|
7592
|
+
opacity: 0.9;
|
|
7593
|
+
}
|
|
7594
|
+
|
|
7595
|
+
.muka-profile-badge--clickable:active {
|
|
7596
|
+
opacity: 0.8;
|
|
7597
|
+
}
|
|
7598
|
+
|
|
7599
|
+
.muka-profile-badge--clickable:focus-visible {
|
|
7600
|
+
outline: 2px solid var(--color-border-focus);
|
|
7601
|
+
outline-offset: 2px;
|
|
7602
|
+
}
|
|
7603
|
+
|
|
7604
|
+
|
|
7468
7605
|
/* PriceTag */
|
|
7469
7606
|
/* PriceTag Component Styles - Using Muka Design Tokens */
|
|
7470
7607
|
|
|
@@ -7562,77 +7699,6 @@ body {
|
|
|
7562
7699
|
}
|
|
7563
7700
|
|
|
7564
7701
|
|
|
7565
|
-
/* ProfileBadge */
|
|
7566
|
-
/* ProfileBadge Component Styles - Using Muka Design Tokens */
|
|
7567
|
-
|
|
7568
|
-
.muka-profile-badge {
|
|
7569
|
-
display: inline-flex;
|
|
7570
|
-
align-items: center;
|
|
7571
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
7572
|
-
}
|
|
7573
|
-
|
|
7574
|
-
/* Size variants */
|
|
7575
|
-
.muka-profile-badge--lg {
|
|
7576
|
-
gap: var(--spacing-4); /* 16px */
|
|
7577
|
-
}
|
|
7578
|
-
|
|
7579
|
-
.muka-profile-badge--md {
|
|
7580
|
-
gap: var(--spacing-3); /* 12px */
|
|
7581
|
-
}
|
|
7582
|
-
|
|
7583
|
-
.muka-profile-badge__avatar {
|
|
7584
|
-
flex-shrink: 0;
|
|
7585
|
-
}
|
|
7586
|
-
|
|
7587
|
-
/* Text stack */
|
|
7588
|
-
.muka-profile-badge__text {
|
|
7589
|
-
display: flex;
|
|
7590
|
-
flex-direction: column;
|
|
7591
|
-
align-items: flex-start;
|
|
7592
|
-
min-width: 0;
|
|
7593
|
-
}
|
|
7594
|
-
|
|
7595
|
-
.muka-profile-badge__name {
|
|
7596
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
7597
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
7598
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
7599
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
7600
|
-
color: var(--color-text-default-default);
|
|
7601
|
-
}
|
|
7602
|
-
|
|
7603
|
-
.muka-profile-badge__email {
|
|
7604
|
-
font-family: var(--text-body-xs-regular-fontFamily);
|
|
7605
|
-
font-size: var(--text-body-xs-regular-fontSize);
|
|
7606
|
-
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
7607
|
-
line-height: var(--text-body-xs-regular-lineHeight);
|
|
7608
|
-
color: var(--color-text-subtle-default);
|
|
7609
|
-
}
|
|
7610
|
-
|
|
7611
|
-
/* Clickable state */
|
|
7612
|
-
.muka-profile-badge--clickable {
|
|
7613
|
-
cursor: pointer;
|
|
7614
|
-
border: none;
|
|
7615
|
-
background: none;
|
|
7616
|
-
padding: 0;
|
|
7617
|
-
text-align: left;
|
|
7618
|
-
border-radius: var(--radius-md);
|
|
7619
|
-
transition: opacity 0.2s ease;
|
|
7620
|
-
}
|
|
7621
|
-
|
|
7622
|
-
.muka-profile-badge--clickable:hover {
|
|
7623
|
-
opacity: 0.9;
|
|
7624
|
-
}
|
|
7625
|
-
|
|
7626
|
-
.muka-profile-badge--clickable:active {
|
|
7627
|
-
opacity: 0.8;
|
|
7628
|
-
}
|
|
7629
|
-
|
|
7630
|
-
.muka-profile-badge--clickable:focus-visible {
|
|
7631
|
-
outline: 2px solid var(--color-border-focus);
|
|
7632
|
-
outline-offset: 2px;
|
|
7633
|
-
}
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
7702
|
/* Popover */
|
|
7637
7703
|
/* Popover Component Styles */
|
|
7638
7704
|
|
|
@@ -8038,18 +8104,46 @@ body {
|
|
|
8038
8104
|
white-space: nowrap;
|
|
8039
8105
|
}
|
|
8040
8106
|
|
|
8041
|
-
/* Hide the native number spinners — affixes/step API replace them. */
|
|
8042
|
-
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
8043
|
-
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
8044
|
-
-webkit-appearance: none;
|
|
8045
|
-
margin: 0;
|
|
8107
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
8108
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
8109
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
8110
|
+
-webkit-appearance: none;
|
|
8111
|
+
margin: 0;
|
|
8112
|
+
}
|
|
8113
|
+
|
|
8114
|
+
.muka-numberinput__field .muka-input__native {
|
|
8115
|
+
-moz-appearance: textfield;
|
|
8116
|
+
appearance: textfield;
|
|
8117
|
+
}
|
|
8118
|
+
|
|
8119
|
+
|
|
8120
|
+
/* NavigationTransition */
|
|
8121
|
+
/* NavigationTransition Component Styles */
|
|
8122
|
+
|
|
8123
|
+
/* ─── Wrapper ────────────────────────────────────────── */
|
|
8124
|
+
|
|
8125
|
+
.muka-nav-transition {
|
|
8126
|
+
position: relative;
|
|
8127
|
+
height: 100vh;
|
|
8128
|
+
overflow: hidden;
|
|
8129
|
+
}
|
|
8130
|
+
|
|
8131
|
+
/* Disable interaction during animation */
|
|
8132
|
+
.muka-nav-transition--active {
|
|
8133
|
+
pointer-events: none;
|
|
8046
8134
|
}
|
|
8047
8135
|
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8136
|
+
/* ─── View slots ─────────────────────────────────────── */
|
|
8137
|
+
|
|
8138
|
+
.muka-nav-transition--active .muka-nav-transition__view {
|
|
8139
|
+
position: absolute;
|
|
8140
|
+
inset: 0;
|
|
8051
8141
|
}
|
|
8052
8142
|
|
|
8143
|
+
/* Z-index layering */
|
|
8144
|
+
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
8145
|
+
.muka-nav-transition__view--top { z-index: 2; }
|
|
8146
|
+
|
|
8053
8147
|
|
|
8054
8148
|
/* Menu */
|
|
8055
8149
|
/* Menu Component Styles */
|
|
@@ -8530,34 +8624,6 @@ body {
|
|
|
8530
8624
|
}
|
|
8531
8625
|
|
|
8532
8626
|
|
|
8533
|
-
/* NavigationTransition */
|
|
8534
|
-
/* NavigationTransition Component Styles */
|
|
8535
|
-
|
|
8536
|
-
/* ─── Wrapper ────────────────────────────────────────── */
|
|
8537
|
-
|
|
8538
|
-
.muka-nav-transition {
|
|
8539
|
-
position: relative;
|
|
8540
|
-
height: 100vh;
|
|
8541
|
-
overflow: hidden;
|
|
8542
|
-
}
|
|
8543
|
-
|
|
8544
|
-
/* Disable interaction during animation */
|
|
8545
|
-
.muka-nav-transition--active {
|
|
8546
|
-
pointer-events: none;
|
|
8547
|
-
}
|
|
8548
|
-
|
|
8549
|
-
/* ─── View slots ─────────────────────────────────────── */
|
|
8550
|
-
|
|
8551
|
-
.muka-nav-transition--active .muka-nav-transition__view {
|
|
8552
|
-
position: absolute;
|
|
8553
|
-
inset: 0;
|
|
8554
|
-
}
|
|
8555
|
-
|
|
8556
|
-
/* Z-index layering */
|
|
8557
|
-
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
8558
|
-
.muka-nav-transition__view--top { z-index: 2; }
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
8627
|
/* ListItem */
|
|
8562
8628
|
/* ListItem Component Styles - Using Muka Design Tokens */
|
|
8563
8629
|
|
|
@@ -8986,6 +9052,184 @@ li.muka-listitem {
|
|
|
8986
9052
|
}
|
|
8987
9053
|
|
|
8988
9054
|
|
|
9055
|
+
/* InputCounter */
|
|
9056
|
+
/* InputCounter — numeric field + joined decrement/increment buttons.
|
|
9057
|
+
Label, helper and error text reuse Input.css (../Input/Input.css).
|
|
9058
|
+
Field and button group share one radius per size:
|
|
9059
|
+
sm/md → input.field.radius.md, lg → input.field.radius.lg. */
|
|
9060
|
+
|
|
9061
|
+
.muka-inputcounter {
|
|
9062
|
+
--muka-inputcounter-radius: var(--input-field-radius-md);
|
|
9063
|
+
--muka-inputcounter-height: var(--input-field-height-default);
|
|
9064
|
+
--muka-inputcounter-pad: calc(var(--spacing-2) + var(--spacing-1));
|
|
9065
|
+
--muka-inputcounter-min: var(--size-3xl);
|
|
9066
|
+
|
|
9067
|
+
display: inline-flex;
|
|
9068
|
+
flex-direction: column;
|
|
9069
|
+
gap: var(--spacing-2);
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
.muka-inputcounter--sm {
|
|
9073
|
+
--muka-inputcounter-height: var(--input-field-height-sm);
|
|
9074
|
+
--muka-inputcounter-pad: calc(var(--spacing-1) + var(--spacing-1));
|
|
9075
|
+
--muka-inputcounter-min: var(--size-2xl);
|
|
9076
|
+
}
|
|
9077
|
+
|
|
9078
|
+
.muka-inputcounter--lg {
|
|
9079
|
+
--muka-inputcounter-radius: var(--input-field-radius-lg);
|
|
9080
|
+
--muka-inputcounter-height: var(--input-field-height-lg);
|
|
9081
|
+
}
|
|
9082
|
+
|
|
9083
|
+
/* Label row — label, info tooltip trigger, optional hint */
|
|
9084
|
+
.muka-inputcounter__label-row {
|
|
9085
|
+
display: flex;
|
|
9086
|
+
align-items: center;
|
|
9087
|
+
gap: var(--spacing-2);
|
|
9088
|
+
min-height: var(--size-xl);
|
|
9089
|
+
}
|
|
9090
|
+
|
|
9091
|
+
.muka-inputcounter__info {
|
|
9092
|
+
display: inline-flex;
|
|
9093
|
+
align-items: center;
|
|
9094
|
+
justify-content: center;
|
|
9095
|
+
padding: 0;
|
|
9096
|
+
border: none;
|
|
9097
|
+
border-radius: 50%;
|
|
9098
|
+
background: transparent;
|
|
9099
|
+
cursor: pointer;
|
|
9100
|
+
}
|
|
9101
|
+
|
|
9102
|
+
.muka-inputcounter__info .muka-icon {
|
|
9103
|
+
color: var(--color-action-default);
|
|
9104
|
+
}
|
|
9105
|
+
|
|
9106
|
+
.muka-inputcounter__info:focus-visible {
|
|
9107
|
+
outline: 2px solid var(--color-border-focus);
|
|
9108
|
+
outline-offset: 2px;
|
|
9109
|
+
}
|
|
9110
|
+
|
|
9111
|
+
.muka-inputcounter__optional {
|
|
9112
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
9113
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
9114
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
9115
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
9116
|
+
color: var(--color-text-subtle-default);
|
|
9117
|
+
}
|
|
9118
|
+
|
|
9119
|
+
/* Field + button group */
|
|
9120
|
+
.muka-inputcounter__row {
|
|
9121
|
+
display: flex;
|
|
9122
|
+
align-items: center;
|
|
9123
|
+
gap: var(--spacing-3);
|
|
9124
|
+
}
|
|
9125
|
+
|
|
9126
|
+
/* Field — grows with the value (in ch), never narrower than the Figma width.
|
|
9127
|
+
Padding sits on the native input so the 2px focus/error border doesn't
|
|
9128
|
+
need compensating: content is centred in a fixed box. */
|
|
9129
|
+
.muka-inputcounter__field {
|
|
9130
|
+
position: relative;
|
|
9131
|
+
display: flex;
|
|
9132
|
+
align-items: center;
|
|
9133
|
+
box-sizing: border-box;
|
|
9134
|
+
height: var(--muka-inputcounter-height);
|
|
9135
|
+
width: calc(
|
|
9136
|
+
max(var(--muka-inputcounter-min), calc(var(--muka-inputcounter-chars, 1) * 1ch)) +
|
|
9137
|
+
2 * var(--muka-inputcounter-pad) + 2 * var(--border-width-regular)
|
|
9138
|
+
);
|
|
9139
|
+
background-color: var(--input-field-color-default-background);
|
|
9140
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
9141
|
+
border-radius: var(--muka-inputcounter-radius);
|
|
9142
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
9143
|
+
}
|
|
9144
|
+
|
|
9145
|
+
.muka-inputcounter__field::after {
|
|
9146
|
+
content: '';
|
|
9147
|
+
position: absolute;
|
|
9148
|
+
inset: 0;
|
|
9149
|
+
border-radius: inherit;
|
|
9150
|
+
box-shadow: var(--shadow-sunken);
|
|
9151
|
+
pointer-events: none;
|
|
9152
|
+
}
|
|
9153
|
+
|
|
9154
|
+
.muka-inputcounter__field--focused:not(.muka-inputcounter__field--disabled) {
|
|
9155
|
+
border-width: var(--border-width-bold);
|
|
9156
|
+
border-color: var(--input-field-color-focus-border);
|
|
9157
|
+
background-color: var(--input-field-color-focus-background);
|
|
9158
|
+
}
|
|
9159
|
+
|
|
9160
|
+
.muka-inputcounter__field--error:not(.muka-inputcounter__field--disabled) {
|
|
9161
|
+
border-width: var(--border-width-bold);
|
|
9162
|
+
border-color: var(--input-field-color-error-border);
|
|
9163
|
+
background-color: var(--input-field-color-error-background);
|
|
9164
|
+
}
|
|
9165
|
+
|
|
9166
|
+
.muka-inputcounter__field--disabled {
|
|
9167
|
+
background-color: var(--input-field-color-disabled-background);
|
|
9168
|
+
border-color: var(--input-field-color-disabled-border);
|
|
9169
|
+
}
|
|
9170
|
+
|
|
9171
|
+
.muka-inputcounter__field--disabled::after {
|
|
9172
|
+
display: none;
|
|
9173
|
+
}
|
|
9174
|
+
|
|
9175
|
+
.muka-inputcounter__native {
|
|
9176
|
+
width: 100%;
|
|
9177
|
+
min-width: 0;
|
|
9178
|
+
height: 100%;
|
|
9179
|
+
box-sizing: border-box;
|
|
9180
|
+
padding: 0 calc(var(--muka-inputcounter-pad) - var(--border-width-regular));
|
|
9181
|
+
border: none;
|
|
9182
|
+
outline: none;
|
|
9183
|
+
background: transparent;
|
|
9184
|
+
text-align: center;
|
|
9185
|
+
font-variant-numeric: tabular-nums;
|
|
9186
|
+
color: var(--input-field-color-default-foreground);
|
|
9187
|
+
font-family: var(--text-input-md-fontFamily);
|
|
9188
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
9189
|
+
font-size: var(--text-input-md-fontSize);
|
|
9190
|
+
line-height: var(--text-input-md-lineHeight);
|
|
9191
|
+
}
|
|
9192
|
+
|
|
9193
|
+
.muka-inputcounter--sm .muka-inputcounter__native {
|
|
9194
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
9195
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
9196
|
+
font-size: var(--text-input-sm-fontSize);
|
|
9197
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
9198
|
+
}
|
|
9199
|
+
|
|
9200
|
+
.muka-inputcounter__field--disabled .muka-inputcounter__native {
|
|
9201
|
+
color: var(--input-field-color-disabled-foreground);
|
|
9202
|
+
cursor: not-allowed;
|
|
9203
|
+
}
|
|
9204
|
+
|
|
9205
|
+
/* Button group — secondary icon-only Buttons joined by a divider.
|
|
9206
|
+
Only the outer corners are rounded. */
|
|
9207
|
+
.muka-inputcounter__group {
|
|
9208
|
+
display: inline-flex;
|
|
9209
|
+
align-items: stretch;
|
|
9210
|
+
}
|
|
9211
|
+
|
|
9212
|
+
.muka-inputcounter__group .muka-button {
|
|
9213
|
+
border-radius: 0;
|
|
9214
|
+
}
|
|
9215
|
+
|
|
9216
|
+
.muka-inputcounter__group .muka-button:first-child {
|
|
9217
|
+
border-start-start-radius: var(--muka-inputcounter-radius);
|
|
9218
|
+
border-end-start-radius: var(--muka-inputcounter-radius);
|
|
9219
|
+
}
|
|
9220
|
+
|
|
9221
|
+
.muka-inputcounter__group .muka-button:last-child {
|
|
9222
|
+
border-start-end-radius: var(--muka-inputcounter-radius);
|
|
9223
|
+
border-end-end-radius: var(--muka-inputcounter-radius);
|
|
9224
|
+
}
|
|
9225
|
+
|
|
9226
|
+
.muka-inputcounter__divider {
|
|
9227
|
+
flex: none;
|
|
9228
|
+
width: var(--border-width-regular);
|
|
9229
|
+
background-color: var(--color-border-default);
|
|
9230
|
+
}
|
|
9231
|
+
|
|
9232
|
+
|
|
8989
9233
|
/* Input */
|
|
8990
9234
|
/* Input Component Styles - Using Muka Design Tokens */
|
|
8991
9235
|
|
|
@@ -13424,6 +13668,39 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13424
13668
|
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
13425
13669
|
}
|
|
13426
13670
|
|
|
13671
|
+
/* Destructive variant - primary's structure on the solid error fill, for
|
|
13672
|
+
irreversible actions. Hover and pressed step away from the label color, so
|
|
13673
|
+
contrast never drops (darker in light themes, lighter in dark themes).
|
|
13674
|
+
Disabled is neutral grey rather than primary's brand-tinted fill. */
|
|
13675
|
+
.muka-button--destructive {
|
|
13676
|
+
background-color: var(--button-color-destructive-background-default);
|
|
13677
|
+
color: var(--button-color-destructive-foreground-default);
|
|
13678
|
+
box-shadow: var(--button-color-destructive-shadow-default);
|
|
13679
|
+
}
|
|
13680
|
+
|
|
13681
|
+
.muka-button--destructive:hover:not(:disabled) {
|
|
13682
|
+
background-color: var(--button-color-destructive-background-hover);
|
|
13683
|
+
color: var(--button-color-destructive-foreground-hover);
|
|
13684
|
+
box-shadow: var(--button-color-destructive-shadow-hover);
|
|
13685
|
+
}
|
|
13686
|
+
|
|
13687
|
+
.muka-button--destructive:active:not(:disabled),
|
|
13688
|
+
.muka-button--destructive.muka-button--pressed:not(:disabled),
|
|
13689
|
+
.muka-button--destructive[data-state="open"]:not(:disabled),
|
|
13690
|
+
.muka-button--destructive[aria-pressed="true"]:not(:disabled) {
|
|
13691
|
+
background-color: var(--button-color-destructive-background-pressed);
|
|
13692
|
+
color: var(--button-color-destructive-foreground-pressed);
|
|
13693
|
+
box-shadow: var(--button-color-destructive-shadow-pressed);
|
|
13694
|
+
}
|
|
13695
|
+
|
|
13696
|
+
.muka-button--destructive:disabled {
|
|
13697
|
+
background-color: var(--button-color-destructive-background-disabled);
|
|
13698
|
+
color: var(--button-color-destructive-foreground-disabled);
|
|
13699
|
+
box-shadow: var(--button-color-destructive-shadow-disabled);
|
|
13700
|
+
cursor: not-allowed;
|
|
13701
|
+
opacity: 1;
|
|
13702
|
+
}
|
|
13703
|
+
|
|
13427
13704
|
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
13428
13705
|
.muka-button--secondary {
|
|
13429
13706
|
background-color: var(--button-color-secondary-background-default);
|
|
@@ -14357,12 +14634,29 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14357
14634
|
vertical-align: middle;
|
|
14358
14635
|
background-color: var(--avatar-color-background-default);
|
|
14359
14636
|
color: var(--avatar-color-foreground-default);
|
|
14360
|
-
border: var(--avatar-border-width) solid var(--avatar-color-border-default);
|
|
14361
14637
|
font-family: var(--alias-font-brand-family);
|
|
14362
14638
|
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14363
14639
|
}
|
|
14364
14640
|
|
|
14365
14641
|
/* Size variants */
|
|
14642
|
+
.muka-avatar--4xs {
|
|
14643
|
+
width: var(--avatar-size-4xs);
|
|
14644
|
+
height: var(--avatar-size-4xs);
|
|
14645
|
+
font-size: var(--avatar-font-size-3xs); /* only used by an AvatarGroup "+N" */
|
|
14646
|
+
}
|
|
14647
|
+
|
|
14648
|
+
.muka-avatar--3xs {
|
|
14649
|
+
width: var(--avatar-size-3xs);
|
|
14650
|
+
height: var(--avatar-size-3xs);
|
|
14651
|
+
font-size: var(--avatar-font-size-3xs);
|
|
14652
|
+
}
|
|
14653
|
+
|
|
14654
|
+
.muka-avatar--2xs {
|
|
14655
|
+
width: var(--avatar-size-2xs);
|
|
14656
|
+
height: var(--avatar-size-2xs);
|
|
14657
|
+
font-size: var(--avatar-font-size-2xs);
|
|
14658
|
+
}
|
|
14659
|
+
|
|
14366
14660
|
.muka-avatar--xs {
|
|
14367
14661
|
width: var(--avatar-size-xs);
|
|
14368
14662
|
height: var(--avatar-size-xs);
|
|
@@ -14402,6 +14696,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14402
14696
|
border-radius: var(--avatar-radius-square);
|
|
14403
14697
|
}
|
|
14404
14698
|
|
|
14699
|
+
.muka-avatar--square.muka-avatar--4xs,
|
|
14700
|
+
.muka-avatar--square.muka-avatar--3xs,
|
|
14701
|
+
.muka-avatar--square.muka-avatar--2xs {
|
|
14702
|
+
border-radius: var(--avatar-radius-square-sm);
|
|
14703
|
+
}
|
|
14704
|
+
|
|
14705
|
+
/* 4xs is too small for initials, the fallback icon or a status dot:
|
|
14706
|
+
it shows the picture, or the plain background */
|
|
14707
|
+
.muka-avatar--4xs .muka-avatar__initials,
|
|
14708
|
+
.muka-avatar--4xs .muka-avatar__fallback,
|
|
14709
|
+
.muka-avatar--4xs .muka-avatar__status {
|
|
14710
|
+
display: none;
|
|
14711
|
+
}
|
|
14712
|
+
|
|
14405
14713
|
/* Clickable state */
|
|
14406
14714
|
.muka-avatar--clickable {
|
|
14407
14715
|
cursor: pointer;
|
|
@@ -14505,6 +14813,16 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14505
14813
|
box-sizing: border-box;
|
|
14506
14814
|
}
|
|
14507
14815
|
|
|
14816
|
+
.muka-avatar--3xs .muka-avatar__status {
|
|
14817
|
+
width: var(--avatar-status-size-3xs);
|
|
14818
|
+
height: var(--avatar-status-size-3xs);
|
|
14819
|
+
}
|
|
14820
|
+
|
|
14821
|
+
.muka-avatar--2xs .muka-avatar__status {
|
|
14822
|
+
width: var(--avatar-status-size-2xs);
|
|
14823
|
+
height: var(--avatar-status-size-2xs);
|
|
14824
|
+
}
|
|
14825
|
+
|
|
14508
14826
|
.muka-avatar--xs .muka-avatar__status {
|
|
14509
14827
|
width: var(--avatar-status-size-xs);
|
|
14510
14828
|
height: var(--avatar-status-size-xs);
|
|
@@ -14558,56 +14876,130 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14558
14876
|
background-color: var(--avatar-color-status-away);
|
|
14559
14877
|
}
|
|
14560
14878
|
|
|
14561
|
-
/* Avatar Group */
|
|
14879
|
+
/* Avatar Group (Figma "Avatar Stack") */
|
|
14562
14880
|
.muka-avatar-group {
|
|
14563
14881
|
display: inline-flex;
|
|
14564
14882
|
align-items: center;
|
|
14565
14883
|
flex-direction: row;
|
|
14566
14884
|
}
|
|
14567
14885
|
|
|
14886
|
+
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
14568
14887
|
.muka-avatar-group__item {
|
|
14569
14888
|
position: relative;
|
|
14570
14889
|
display: inline-flex;
|
|
14571
|
-
|
|
14572
|
-
border-radius: inherit;
|
|
14890
|
+
z-index: 0;
|
|
14573
14891
|
}
|
|
14574
14892
|
|
|
14575
|
-
|
|
14576
|
-
|
|
14577
|
-
border-radius: var(--avatar-radius-circle);
|
|
14893
|
+
.muka-avatar-group__item:hover {
|
|
14894
|
+
z-index: 10;
|
|
14578
14895
|
}
|
|
14579
14896
|
|
|
14580
|
-
|
|
14581
|
-
|
|
14897
|
+
/* Grouped avatars get a ring outside their edge, drawn as a shadow so it
|
|
14898
|
+
does not change the avatar's size or the overlap */
|
|
14899
|
+
.muka-avatar-group__item .muka-avatar {
|
|
14900
|
+
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14901
|
+
}
|
|
14902
|
+
|
|
14903
|
+
/* Overlap. Figma specifies exact values for 48 / 32 / 24px avatars (sm / 2xs / 3xs);
|
|
14904
|
+
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14905
|
+
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14906
|
+
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
14907
|
+
.muka-avatar-group--2xs { --muka-avatar-group-size: var(--avatar-size-2xs); }
|
|
14908
|
+
.muka-avatar-group--xs { --muka-avatar-group-size: var(--avatar-size-xs); }
|
|
14909
|
+
.muka-avatar-group--sm { --muka-avatar-group-size: var(--avatar-size-sm); }
|
|
14910
|
+
.muka-avatar-group--md { --muka-avatar-group-size: var(--avatar-size-md); }
|
|
14911
|
+
.muka-avatar-group--lg { --muka-avatar-group-size: var(--avatar-size-lg); }
|
|
14912
|
+
.muka-avatar-group--xl { --muka-avatar-group-size: var(--avatar-size-xl); }
|
|
14913
|
+
|
|
14914
|
+
.muka-avatar-group--tight { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) * 2 / 3); }
|
|
14915
|
+
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14916
|
+
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14917
|
+
|
|
14918
|
+
.muka-avatar-group--tight.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-sm); }
|
|
14919
|
+
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14920
|
+
.muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
|
|
14921
|
+
.muka-avatar-group--compact.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-sm); }
|
|
14922
|
+
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14923
|
+
.muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
|
|
14924
|
+
.muka-avatar-group--spacious.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-sm); }
|
|
14925
|
+
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14926
|
+
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14927
|
+
|
|
14928
|
+
.muka-avatar-group__item:not(:first-child) {
|
|
14929
|
+
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14582
14930
|
}
|
|
14583
14931
|
|
|
14584
|
-
|
|
14932
|
+
/* Overflow avatar styling */
|
|
14933
|
+
.muka-avatar--overflow {
|
|
14934
|
+
background-color: var(--avatar-color-background-default);
|
|
14935
|
+
color: var(--avatar-color-foreground-default);
|
|
14936
|
+
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14937
|
+
}
|
|
14938
|
+
|
|
14939
|
+
|
|
14940
|
+
/* Autocomplete */
|
|
14941
|
+
/* Autocomplete — Figma Input Autocomplete (Input field + single-line suggestion Menu).
|
|
14942
|
+
The field reuses the Input styles (.muka-input*); only the menu wiring lives here. */
|
|
14943
|
+
|
|
14944
|
+
.muka-autocomplete {
|
|
14945
|
+
min-width: 200px;
|
|
14946
|
+
}
|
|
14947
|
+
|
|
14948
|
+
/* Covers the field's outer edge so the menu matches its full width. The menu
|
|
14949
|
+
is only open while focused, when the field has the bold border. */
|
|
14950
|
+
.muka-autocomplete__menu-anchor {
|
|
14951
|
+
position: absolute;
|
|
14952
|
+
inset: calc(-1 * var(--border-width-bold));
|
|
14953
|
+
z-index: 0;
|
|
14954
|
+
margin: 0;
|
|
14955
|
+
padding: 0;
|
|
14585
14956
|
border: none;
|
|
14957
|
+
background: transparent;
|
|
14958
|
+
pointer-events: none;
|
|
14959
|
+
opacity: 0;
|
|
14586
14960
|
}
|
|
14587
14961
|
|
|
14588
|
-
/*
|
|
14589
|
-
.muka-
|
|
14590
|
-
|
|
14962
|
+
/* Keep the field content above the invisible anchor. */
|
|
14963
|
+
.muka-autocomplete__field > :not(.muka-autocomplete__menu-anchor) {
|
|
14964
|
+
position: relative;
|
|
14965
|
+
z-index: 1;
|
|
14591
14966
|
}
|
|
14592
14967
|
|
|
14593
|
-
|
|
14594
|
-
|
|
14968
|
+
/* Figma: the menu is as wide as the field (never below the menu min-width token). */
|
|
14969
|
+
.muka-autocomplete__menu {
|
|
14970
|
+
width: var(--radix-dropdown-menu-trigger-width);
|
|
14971
|
+
max-width: calc(100vw - 2rem);
|
|
14595
14972
|
}
|
|
14596
14973
|
|
|
14597
|
-
/*
|
|
14598
|
-
.muka-
|
|
14599
|
-
|
|
14974
|
+
/* Suggestions are single-line; long labels truncate. */
|
|
14975
|
+
.muka-autocomplete__menu .muka-menu__item-label {
|
|
14976
|
+
overflow: hidden;
|
|
14977
|
+
text-overflow: ellipsis;
|
|
14600
14978
|
}
|
|
14601
14979
|
|
|
14602
|
-
|
|
14603
|
-
|
|
14980
|
+
/* Loading and empty rows: menu-row geometry, not selectable. */
|
|
14981
|
+
.muka-autocomplete__status {
|
|
14982
|
+
display: flex;
|
|
14983
|
+
align-items: center;
|
|
14984
|
+
gap: var(--menu-item-gap);
|
|
14985
|
+
min-height: var(--menu-item-height);
|
|
14986
|
+
padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
|
|
14987
|
+
color: var(--color-text-subtle-default);
|
|
14988
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
14989
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
14990
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
14991
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
14604
14992
|
}
|
|
14605
14993
|
|
|
14606
|
-
|
|
14607
|
-
|
|
14608
|
-
|
|
14609
|
-
|
|
14610
|
-
|
|
14994
|
+
.muka-autocomplete__footer {
|
|
14995
|
+
flex-shrink: 0;
|
|
14996
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
14997
|
+
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
14998
|
+
color: var(--color-text-subtle-default);
|
|
14999
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
15000
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
15001
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
15002
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
14611
15003
|
}
|
|
14612
15004
|
|
|
14613
15005
|
|