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