@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
|
@@ -377,6 +377,8 @@ body {
|
|
|
377
377
|
--color-red-10: #dc3d43;
|
|
378
378
|
--color-red-11: #cd2b31;
|
|
379
379
|
--color-red-12: #381316;
|
|
380
|
+
--color-redStrong-1: #bd1524;
|
|
381
|
+
--color-redStrong-2: #ab001a;
|
|
380
382
|
--color-ruby-1: #fffcfd;
|
|
381
383
|
--color-ruby-2: #fff7f8;
|
|
382
384
|
--color-ruby-3: #ffeef1;
|
|
@@ -1175,6 +1177,9 @@ body {
|
|
|
1175
1177
|
--color-state-error-default: #e5484d;
|
|
1176
1178
|
--color-state-error-contrast: #cd2b31;
|
|
1177
1179
|
--color-state-error-background: #ffefef;
|
|
1180
|
+
--color-state-error-solid-default: #cd2b31;
|
|
1181
|
+
--color-state-error-solid-hover: #bd1524;
|
|
1182
|
+
--color-state-error-solid-pressed: #ab001a;
|
|
1178
1183
|
--color-state-info-default: #0091ff;
|
|
1179
1184
|
--color-state-info-contrast: #0d74ce;
|
|
1180
1185
|
--color-state-info-background: #edf6ff;
|
|
@@ -1275,6 +1280,9 @@ body {
|
|
|
1275
1280
|
--alias-color-state-error-contrast: #cd2b31;
|
|
1276
1281
|
--alias-color-state-error-default: #e5484d;
|
|
1277
1282
|
--alias-color-state-error-muted: #ffefef;
|
|
1283
|
+
--alias-color-state-error-solid-default: #cd2b31;
|
|
1284
|
+
--alias-color-state-error-solid-hover: #bd1524;
|
|
1285
|
+
--alias-color-state-error-solid-pressed: #ab001a;
|
|
1278
1286
|
--alias-color-state-error-surface-level0: #fff8f8;
|
|
1279
1287
|
--alias-color-state-error-surface-level1: #ffefef;
|
|
1280
1288
|
--alias-color-state-error-surface-level2: #ffe5e5;
|
|
@@ -1571,6 +1579,18 @@ body {
|
|
|
1571
1579
|
--button-color-primary-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1572
1580
|
--button-color-primary-shadow-pressed: none;
|
|
1573
1581
|
--button-color-primary-shadow-disabled: none;
|
|
1582
|
+
--button-color-destructive-background-default: #cd2b31;
|
|
1583
|
+
--button-color-destructive-background-hover: #bd1524;
|
|
1584
|
+
--button-color-destructive-background-pressed: #ab001a;
|
|
1585
|
+
--button-color-destructive-background-disabled: #e0e0e0;
|
|
1586
|
+
--button-color-destructive-foreground-default: #fcfcfc;
|
|
1587
|
+
--button-color-destructive-foreground-hover: #fcfcfc;
|
|
1588
|
+
--button-color-destructive-foreground-pressed: #fcfcfc;
|
|
1589
|
+
--button-color-destructive-foreground-disabled: #bbbbbb;
|
|
1590
|
+
--button-color-destructive-shadow-default: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1591
|
+
--button-color-destructive-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1592
|
+
--button-color-destructive-shadow-pressed: none;
|
|
1593
|
+
--button-color-destructive-shadow-disabled: none;
|
|
1574
1594
|
--button-color-secondary-background-default: #e8e8e8;
|
|
1575
1595
|
--button-color-secondary-background-hover: #e8e8e8;
|
|
1576
1596
|
--button-color-secondary-background-pressed: #e0e0e0;
|
|
@@ -1935,7 +1955,7 @@ body {
|
|
|
1935
1955
|
--contextmenu-trigger-outline-color: #113264;
|
|
1936
1956
|
--contextmenu-trigger-outline-offset: 0.25rem;
|
|
1937
1957
|
--tabs-trigger-color-default-background: #e8e8e8;
|
|
1938
|
-
--tabs-trigger-color-default-foreground: #
|
|
1958
|
+
--tabs-trigger-color-default-foreground: #838383;
|
|
1939
1959
|
--tabs-trigger-color-default-border: #bbbbbb;
|
|
1940
1960
|
--tabs-trigger-color-hover-background: #e8e8e8;
|
|
1941
1961
|
--tabs-trigger-color-hover-foreground: #202020;
|
|
@@ -1950,8 +1970,16 @@ body {
|
|
|
1950
1970
|
--tabs-trigger-padding-y: 0.5rem;
|
|
1951
1971
|
--tabs-trigger-height: 3rem;
|
|
1952
1972
|
--tabs-trigger-radius: 0px;
|
|
1973
|
+
--tabs-trigger-min-height-sm: 2.5rem;
|
|
1974
|
+
--tabs-trigger-min-height-md: 3.5rem;
|
|
1975
|
+
--tabs-trigger-min-height-lg: 5rem;
|
|
1953
1976
|
--tabs-panel-background: #fcfcfc;
|
|
1954
1977
|
--tabs-panel-border: #bbbbbb;
|
|
1978
|
+
--tabs-indicator-color: #113264;
|
|
1979
|
+
--tabs-indicator-height-sm: 2px;
|
|
1980
|
+
--tabs-indicator-height-md: 3px;
|
|
1981
|
+
--tabs-indicator-height-lg: 4px;
|
|
1982
|
+
--tabs-list-padding-x: 1rem;
|
|
1955
1983
|
--separator-color-default: #e0e0e0;
|
|
1956
1984
|
--separator-color-contrast: #bbbbbb;
|
|
1957
1985
|
--separator-width: 0.0625rem;
|
|
@@ -1984,6 +2012,9 @@ body {
|
|
|
1984
2012
|
--progress-size-circle-strokeWidth-sm: 0.25rem;
|
|
1985
2013
|
--progress-size-circle-strokeWidth-md: 0.5rem;
|
|
1986
2014
|
--progress-size-circle-strokeWidth-lg: 0.75rem;
|
|
2015
|
+
--avatar-size-4xs: 1rem;
|
|
2016
|
+
--avatar-size-3xs: 1.5rem;
|
|
2017
|
+
--avatar-size-2xs: 2rem;
|
|
1987
2018
|
--avatar-size-xs: 2.5rem;
|
|
1988
2019
|
--avatar-size-sm: 3rem;
|
|
1989
2020
|
--avatar-size-md: 4rem;
|
|
@@ -1993,26 +2024,38 @@ body {
|
|
|
1993
2024
|
--avatar-color-background-loading: #e0e0e0;
|
|
1994
2025
|
--avatar-color-foreground-default: #202020;
|
|
1995
2026
|
--avatar-color-foreground-muted: #bbbbbb;
|
|
1996
|
-
--avatar-color-border-default: #e0e0e0;
|
|
1997
2027
|
--avatar-color-status-online: #30a46c;
|
|
1998
2028
|
--avatar-color-status-offline: #bbbbbb;
|
|
1999
2029
|
--avatar-color-status-busy: #e5484d;
|
|
2000
2030
|
--avatar-color-status-away: #ffc53d;
|
|
2001
2031
|
--avatar-radius-circle: 999rem;
|
|
2002
2032
|
--avatar-radius-square: 0px;
|
|
2033
|
+
--avatar-radius-square-sm: 0px;
|
|
2034
|
+
--avatar-font-size-3xs: 0.75rem;
|
|
2035
|
+
--avatar-font-size-2xs: 0.75rem;
|
|
2003
2036
|
--avatar-font-size-xs: 0.75rem;
|
|
2004
2037
|
--avatar-font-size-sm: 0.875rem;
|
|
2005
2038
|
--avatar-font-size-md: 1.125rem;
|
|
2006
2039
|
--avatar-font-size-lg: 1.25rem;
|
|
2007
2040
|
--avatar-font-size-xl: 1.5rem;
|
|
2041
|
+
--avatar-status-size-3xs: 0.5rem;
|
|
2042
|
+
--avatar-status-size-2xs: 0.5rem;
|
|
2008
2043
|
--avatar-status-size-xs: 0.5rem;
|
|
2009
2044
|
--avatar-status-size-sm: 0.75rem;
|
|
2010
2045
|
--avatar-status-size-md: 1rem;
|
|
2011
2046
|
--avatar-status-size-lg: 1.25rem;
|
|
2012
2047
|
--avatar-status-size-xl: 1.5rem;
|
|
2013
|
-
--avatar-
|
|
2014
|
-
--avatar-group-
|
|
2015
|
-
--avatar-group-
|
|
2048
|
+
--avatar-group-ring-width: 0.125rem;
|
|
2049
|
+
--avatar-group-ring-color: #fcfcfc;
|
|
2050
|
+
--avatar-group-overlap-tight-sm: 2rem;
|
|
2051
|
+
--avatar-group-overlap-tight-2xs: 1.25rem;
|
|
2052
|
+
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2053
|
+
--avatar-group-overlap-compact-sm: 1.5rem;
|
|
2054
|
+
--avatar-group-overlap-compact-2xs: 1rem;
|
|
2055
|
+
--avatar-group-overlap-compact-3xs: 0.75rem;
|
|
2056
|
+
--avatar-group-overlap-spacious-sm: 1rem;
|
|
2057
|
+
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2058
|
+
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2016
2059
|
--toast-color-info-background: #202020;
|
|
2017
2060
|
--toast-color-info-foreground: #fcfcfc;
|
|
2018
2061
|
--toast-color-info-accent: #edf6ff;
|
|
@@ -2418,116 +2461,6 @@ body {
|
|
|
2418
2461
|
}
|
|
2419
2462
|
|
|
2420
2463
|
|
|
2421
|
-
/* View */
|
|
2422
|
-
/* View Component Styles */
|
|
2423
|
-
|
|
2424
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2425
|
-
|
|
2426
|
-
.muka-view {
|
|
2427
|
-
display: flex;
|
|
2428
|
-
flex-direction: column;
|
|
2429
|
-
height: 100dvh;
|
|
2430
|
-
background-color: var(--view-color-background);
|
|
2431
|
-
position: relative;
|
|
2432
|
-
isolation: isolate;
|
|
2433
|
-
box-sizing: border-box;
|
|
2434
|
-
|
|
2435
|
-
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2436
|
-
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2437
|
-
--view-sidebar-width: 240px;
|
|
2438
|
-
}
|
|
2439
|
-
|
|
2440
|
-
/* ─── Surface level variants ─────────────────────────── */
|
|
2441
|
-
|
|
2442
|
-
.muka-view--surface-3 {
|
|
2443
|
-
background-color: var(--color-surface-level3);
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
|
-
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2447
|
-
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2448
|
-
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2449
|
-
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2450
|
-
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2451
|
-
for a sidebar that hasn't rendered yet. */
|
|
2452
|
-
@media (min-width: 1024px) {
|
|
2453
|
-
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2454
|
-
padding-left: var(--view-sidebar-width);
|
|
2455
|
-
}
|
|
2456
|
-
}
|
|
2457
|
-
|
|
2458
|
-
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2459
|
-
|
|
2460
|
-
.muka-view .muka-topbar {
|
|
2461
|
-
flex-shrink: 0;
|
|
2462
|
-
z-index: 3;
|
|
2463
|
-
box-shadow: var(--shadow-level2);
|
|
2464
|
-
}
|
|
2465
|
-
|
|
2466
|
-
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2467
|
-
|
|
2468
|
-
.muka-view__body {
|
|
2469
|
-
flex: 1 1 0%;
|
|
2470
|
-
min-height: 0;
|
|
2471
|
-
overflow-y: auto;
|
|
2472
|
-
overflow-x: clip;
|
|
2473
|
-
z-index: 1;
|
|
2474
|
-
|
|
2475
|
-
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2476
|
-
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2477
|
-
reveal the content underneath. */
|
|
2478
|
-
display: flex;
|
|
2479
|
-
flex-direction: column;
|
|
2480
|
-
}
|
|
2481
|
-
|
|
2482
|
-
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2483
|
-
using the alias-layer section/container tokens, while the body scrolls full
|
|
2484
|
-
width. Full-bleed below large. */
|
|
2485
|
-
.muka-view__body-inner {
|
|
2486
|
-
width: 100%;
|
|
2487
|
-
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2488
|
-
than floating mid-screen. */
|
|
2489
|
-
flex: 1 0 auto;
|
|
2490
|
-
}
|
|
2491
|
-
|
|
2492
|
-
@media (min-width: 1024px) {
|
|
2493
|
-
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2494
|
-
max-width: var(--container-max-width-xl);
|
|
2495
|
-
margin-inline: auto;
|
|
2496
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2497
|
-
}
|
|
2498
|
-
}
|
|
2499
|
-
|
|
2500
|
-
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2501
|
-
max-width: var(--container-max-width-xl);
|
|
2502
|
-
margin-inline: auto;
|
|
2503
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2504
|
-
}
|
|
2505
|
-
|
|
2506
|
-
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2507
|
-
|
|
2508
|
-
.muka-view__footer {
|
|
2509
|
-
position: sticky;
|
|
2510
|
-
bottom: 0;
|
|
2511
|
-
flex-shrink: 0;
|
|
2512
|
-
z-index: 2;
|
|
2513
|
-
}
|
|
2514
|
-
|
|
2515
|
-
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2516
|
-
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2517
|
-
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2518
|
-
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2519
|
-
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2520
|
-
@media (min-width: 1024px) {
|
|
2521
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2522
|
-
display: none;
|
|
2523
|
-
}
|
|
2524
|
-
}
|
|
2525
|
-
|
|
2526
|
-
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2527
|
-
display: none;
|
|
2528
|
-
}
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
2464
|
/* Typography */
|
|
2532
2465
|
.muka-typography-catalog {
|
|
2533
2466
|
display: flex;
|
|
@@ -2878,166 +2811,113 @@ body {
|
|
|
2878
2811
|
}
|
|
2879
2812
|
|
|
2880
2813
|
|
|
2881
|
-
/*
|
|
2882
|
-
/*
|
|
2814
|
+
/* View */
|
|
2815
|
+
/* View Component Styles */
|
|
2883
2816
|
|
|
2884
|
-
/*
|
|
2885
|
-
|
|
2817
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2818
|
+
|
|
2819
|
+
.muka-view {
|
|
2886
2820
|
display: flex;
|
|
2887
|
-
|
|
2888
|
-
|
|
2821
|
+
flex-direction: column;
|
|
2822
|
+
height: 100dvh;
|
|
2823
|
+
background-color: var(--view-color-background);
|
|
2889
2824
|
position: relative;
|
|
2890
|
-
|
|
2825
|
+
isolation: isolate;
|
|
2826
|
+
box-sizing: border-box;
|
|
2827
|
+
|
|
2828
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2829
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2830
|
+
--view-sidebar-width: 240px;
|
|
2891
2831
|
}
|
|
2892
2832
|
|
|
2893
|
-
|
|
2894
|
-
|
|
2833
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2834
|
+
|
|
2835
|
+
.muka-view--surface-3 {
|
|
2836
|
+
background-color: var(--color-surface-level3);
|
|
2895
2837
|
}
|
|
2896
2838
|
|
|
2897
|
-
|
|
2898
|
-
|
|
2839
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2840
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2841
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2842
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2843
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2844
|
+
for a sidebar that hasn't rendered yet. */
|
|
2845
|
+
@media (min-width: 1024px) {
|
|
2846
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2847
|
+
padding-left: var(--view-sidebar-width);
|
|
2848
|
+
}
|
|
2899
2849
|
}
|
|
2900
2850
|
|
|
2901
|
-
/*
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
align-items: center;
|
|
2905
|
-
justify-content: center;
|
|
2851
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2852
|
+
|
|
2853
|
+
.muka-view .muka-topbar {
|
|
2906
2854
|
flex-shrink: 0;
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
color: var(--color-text-default-default);
|
|
2855
|
+
z-index: 3;
|
|
2856
|
+
box-shadow: var(--shadow-level2);
|
|
2910
2857
|
}
|
|
2911
2858
|
|
|
2912
|
-
|
|
2913
|
-
width: 100%;
|
|
2914
|
-
height: 100%;
|
|
2915
|
-
}
|
|
2859
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2916
2860
|
|
|
2917
|
-
|
|
2918
|
-
|
|
2861
|
+
.muka-view__body {
|
|
2862
|
+
flex: 1 1 0%;
|
|
2863
|
+
min-height: 0;
|
|
2864
|
+
overflow-y: auto;
|
|
2865
|
+
overflow-x: clip;
|
|
2866
|
+
z-index: 1;
|
|
2867
|
+
|
|
2868
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2869
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2870
|
+
reveal the content underneath. */
|
|
2919
2871
|
display: flex;
|
|
2920
2872
|
flex-direction: column;
|
|
2921
|
-
flex: 1;
|
|
2922
|
-
min-width: 0;
|
|
2923
|
-
gap: var(--spacing-1);
|
|
2924
2873
|
}
|
|
2925
2874
|
|
|
2926
|
-
/*
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2875
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2876
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2877
|
+
width. Full-bleed below large. */
|
|
2878
|
+
.muka-view__body-inner {
|
|
2879
|
+
width: 100%;
|
|
2880
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2881
|
+
than floating mid-screen. */
|
|
2882
|
+
flex: 1 0 auto;
|
|
2934
2883
|
}
|
|
2935
2884
|
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2885
|
+
@media (min-width: 1024px) {
|
|
2886
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2887
|
+
max-width: var(--container-max-width-xl);
|
|
2888
|
+
margin-inline: auto;
|
|
2889
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2890
|
+
}
|
|
2941
2891
|
}
|
|
2942
2892
|
|
|
2943
|
-
.muka-
|
|
2944
|
-
|
|
2945
|
-
|
|
2893
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2894
|
+
max-width: var(--container-max-width-xl);
|
|
2895
|
+
margin-inline: auto;
|
|
2896
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2946
2897
|
}
|
|
2947
2898
|
|
|
2948
|
-
/*
|
|
2949
|
-
.muka-toggle__caption {
|
|
2950
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
2951
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
2952
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
2953
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
2954
|
-
color: var(--color-text-subtle-default);
|
|
2955
|
-
}
|
|
2899
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2956
2900
|
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
display: inline-flex;
|
|
2901
|
+
.muka-view__footer {
|
|
2902
|
+
position: sticky;
|
|
2903
|
+
bottom: 0;
|
|
2961
2904
|
flex-shrink: 0;
|
|
2962
|
-
|
|
2905
|
+
z-index: 2;
|
|
2963
2906
|
}
|
|
2964
2907
|
|
|
2965
|
-
|
|
2966
|
-
|
|
2908
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2909
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2910
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2911
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2912
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2913
|
+
@media (min-width: 1024px) {
|
|
2914
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2915
|
+
display: none;
|
|
2916
|
+
}
|
|
2967
2917
|
}
|
|
2968
2918
|
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
position: absolute;
|
|
2972
|
-
width: 1px;
|
|
2973
|
-
height: 1px;
|
|
2974
|
-
padding: 0;
|
|
2975
|
-
margin: -1px;
|
|
2976
|
-
overflow: hidden;
|
|
2977
|
-
clip: rect(0, 0, 0, 0);
|
|
2978
|
-
white-space: nowrap;
|
|
2979
|
-
border: 0;
|
|
2980
|
-
}
|
|
2981
|
-
|
|
2982
|
-
/* Track (background pill) */
|
|
2983
|
-
.muka-toggle__track {
|
|
2984
|
-
display: flex;
|
|
2985
|
-
align-items: center;
|
|
2986
|
-
width: var(--toggle-track-width);
|
|
2987
|
-
height: var(--toggle-track-height);
|
|
2988
|
-
border-radius: var(--toggle-track-radius);
|
|
2989
|
-
background-color: var(--toggle-track-color-off);
|
|
2990
|
-
transition: background-color 0.2s ease;
|
|
2991
|
-
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
2992
|
-
position: relative;
|
|
2993
|
-
}
|
|
2994
|
-
|
|
2995
|
-
/* Knob (sliding circle) */
|
|
2996
|
-
.muka-toggle__knob {
|
|
2997
|
-
position: absolute;
|
|
2998
|
-
width: var(--toggle-knob-size);
|
|
2999
|
-
height: var(--toggle-knob-size);
|
|
3000
|
-
border-radius: var(--border-radius-full);
|
|
3001
|
-
background-color: var(--toggle-knob-color-default);
|
|
3002
|
-
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3003
|
-
left: var(--toggle-knob-offset);
|
|
3004
|
-
transition: left 0.2s ease, transform 0.2s ease;
|
|
3005
|
-
}
|
|
3006
|
-
|
|
3007
|
-
/* Focus state */
|
|
3008
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3009
|
-
outline: 2px solid var(--color-border-focus);
|
|
3010
|
-
outline-offset: 2px;
|
|
3011
|
-
}
|
|
3012
|
-
|
|
3013
|
-
/* Checked (on) state */
|
|
3014
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3015
|
-
background-color: var(--toggle-track-color-on);
|
|
3016
|
-
}
|
|
3017
|
-
|
|
3018
|
-
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3019
|
-
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3020
|
-
}
|
|
3021
|
-
|
|
3022
|
-
/* Disabled state */
|
|
3023
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3024
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3025
|
-
box-shadow: none;
|
|
3026
|
-
}
|
|
3027
|
-
|
|
3028
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3029
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3030
|
-
box-shadow: none;
|
|
3031
|
-
}
|
|
3032
|
-
|
|
3033
|
-
/* Divider */
|
|
3034
|
-
.muka-toggle__divider {
|
|
3035
|
-
position: absolute;
|
|
3036
|
-
bottom: 0;
|
|
3037
|
-
left: 0;
|
|
3038
|
-
right: 0;
|
|
3039
|
-
height: 1px;
|
|
3040
|
-
background-color: var(--color-border-muted);
|
|
2919
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2920
|
+
display: none;
|
|
3041
2921
|
}
|
|
3042
2922
|
|
|
3043
2923
|
|
|
@@ -3766,249 +3646,166 @@ body {
|
|
|
3766
3646
|
}
|
|
3767
3647
|
|
|
3768
3648
|
|
|
3769
|
-
/*
|
|
3770
|
-
/*
|
|
3649
|
+
/* Toggle */
|
|
3650
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3771
3651
|
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3652
|
+
/* Wrapper container */
|
|
3653
|
+
.muka-toggle {
|
|
3654
|
+
display: flex;
|
|
3655
|
+
align-items: center;
|
|
3775
3656
|
gap: var(--spacing-2);
|
|
3657
|
+
position: relative;
|
|
3658
|
+
padding: var(--spacing-4) 0;
|
|
3776
3659
|
}
|
|
3777
3660
|
|
|
3778
|
-
|
|
3779
|
-
|
|
3661
|
+
.muka-toggle--with-caption {
|
|
3662
|
+
padding: var(--spacing-5) 0;
|
|
3663
|
+
}
|
|
3664
|
+
|
|
3665
|
+
.muka-toggle--disabled {
|
|
3666
|
+
opacity: 0.6;
|
|
3667
|
+
}
|
|
3668
|
+
|
|
3669
|
+
/* Icon */
|
|
3670
|
+
.muka-toggle__icon {
|
|
3671
|
+
display: flex;
|
|
3672
|
+
align-items: center;
|
|
3673
|
+
justify-content: center;
|
|
3674
|
+
flex-shrink: 0;
|
|
3675
|
+
width: var(--icon-size-default);
|
|
3676
|
+
height: var(--icon-size-default);
|
|
3780
3677
|
color: var(--color-text-default-default);
|
|
3781
|
-
cursor: pointer;
|
|
3782
3678
|
}
|
|
3783
3679
|
|
|
3784
|
-
.muka-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
3788
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
3680
|
+
.muka-toggle__icon svg {
|
|
3681
|
+
width: 100%;
|
|
3682
|
+
height: 100%;
|
|
3789
3683
|
}
|
|
3790
3684
|
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3685
|
+
/* Content area (label + caption) */
|
|
3686
|
+
.muka-toggle__content {
|
|
3687
|
+
display: flex;
|
|
3688
|
+
flex-direction: column;
|
|
3689
|
+
flex: 1;
|
|
3690
|
+
min-width: 0;
|
|
3691
|
+
gap: var(--spacing-1);
|
|
3796
3692
|
}
|
|
3797
3693
|
|
|
3798
|
-
|
|
3694
|
+
/* Label */
|
|
3695
|
+
.muka-toggle__label {
|
|
3696
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3697
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3698
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
3699
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3700
|
+
color: var(--color-text-default-default);
|
|
3701
|
+
cursor: pointer;
|
|
3702
|
+
}
|
|
3703
|
+
|
|
3704
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
3799
3705
|
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3800
3706
|
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3801
3707
|
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3802
3708
|
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3803
3709
|
}
|
|
3804
3710
|
|
|
3805
|
-
.muka-
|
|
3806
|
-
color: var(--color-
|
|
3711
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
3712
|
+
color: var(--color-text-subtle-default);
|
|
3713
|
+
cursor: not-allowed;
|
|
3807
3714
|
}
|
|
3808
3715
|
|
|
3809
|
-
/*
|
|
3810
|
-
.muka-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
3817
|
-
box-sizing: border-box;
|
|
3716
|
+
/* Caption */
|
|
3717
|
+
.muka-toggle__caption {
|
|
3718
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3719
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3720
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3721
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3722
|
+
color: var(--color-text-subtle-default);
|
|
3818
3723
|
}
|
|
3819
3724
|
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3725
|
+
/* Switch container */
|
|
3726
|
+
.muka-toggle__switch {
|
|
3727
|
+
position: relative;
|
|
3728
|
+
display: inline-flex;
|
|
3729
|
+
flex-shrink: 0;
|
|
3730
|
+
cursor: pointer;
|
|
3823
3731
|
}
|
|
3824
3732
|
|
|
3825
|
-
.muka-
|
|
3826
|
-
|
|
3827
|
-
border-radius: var(--input-field-radius-md);
|
|
3733
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3734
|
+
cursor: not-allowed;
|
|
3828
3735
|
}
|
|
3829
3736
|
|
|
3830
|
-
|
|
3831
|
-
|
|
3832
|
-
|
|
3737
|
+
/* Hidden native input */
|
|
3738
|
+
.muka-toggle__input {
|
|
3739
|
+
position: absolute;
|
|
3740
|
+
width: 1px;
|
|
3741
|
+
height: 1px;
|
|
3742
|
+
padding: 0;
|
|
3743
|
+
margin: -1px;
|
|
3744
|
+
overflow: hidden;
|
|
3745
|
+
clip: rect(0, 0, 0, 0);
|
|
3746
|
+
white-space: nowrap;
|
|
3747
|
+
border: 0;
|
|
3833
3748
|
}
|
|
3834
3749
|
|
|
3835
|
-
/*
|
|
3836
|
-
.muka-
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3750
|
+
/* Track (background pill) */
|
|
3751
|
+
.muka-toggle__track {
|
|
3752
|
+
display: flex;
|
|
3753
|
+
align-items: center;
|
|
3754
|
+
width: var(--toggle-track-width);
|
|
3755
|
+
height: var(--toggle-track-height);
|
|
3756
|
+
border-radius: var(--toggle-track-radius);
|
|
3757
|
+
background-color: var(--toggle-track-color-off);
|
|
3758
|
+
transition: background-color 0.2s ease;
|
|
3759
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3760
|
+
position: relative;
|
|
3841
3761
|
}
|
|
3842
3762
|
|
|
3843
|
-
/*
|
|
3844
|
-
.muka-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3763
|
+
/* Knob (sliding circle) */
|
|
3764
|
+
.muka-toggle__knob {
|
|
3765
|
+
position: absolute;
|
|
3766
|
+
width: var(--toggle-knob-size);
|
|
3767
|
+
height: var(--toggle-knob-size);
|
|
3768
|
+
border-radius: var(--border-radius-full);
|
|
3769
|
+
background-color: var(--toggle-knob-color-default);
|
|
3770
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3771
|
+
left: var(--toggle-knob-offset);
|
|
3772
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
3849
3773
|
}
|
|
3850
3774
|
|
|
3851
|
-
/*
|
|
3852
|
-
.muka-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
cursor: not-allowed;
|
|
3775
|
+
/* Focus state */
|
|
3776
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3777
|
+
outline: 2px solid var(--color-border-focus);
|
|
3778
|
+
outline-offset: 2px;
|
|
3856
3779
|
}
|
|
3857
3780
|
|
|
3858
|
-
/*
|
|
3859
|
-
.muka-
|
|
3860
|
-
|
|
3861
|
-
border: none;
|
|
3862
|
-
outline: none;
|
|
3863
|
-
background: transparent;
|
|
3864
|
-
color: var(--input-field-color-default-foreground);
|
|
3865
|
-
font-family: var(--text-input-md-fontFamily);
|
|
3866
|
-
font-weight: var(--text-input-md-fontWeight);
|
|
3867
|
-
font-size: var(--text-input-md-fontSize);
|
|
3868
|
-
line-height: var(--text-input-md-lineHeight);
|
|
3869
|
-
padding: 0;
|
|
3870
|
-
width: 100%;
|
|
3871
|
-
min-width: 0;
|
|
3781
|
+
/* Checked (on) state */
|
|
3782
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3783
|
+
background-color: var(--toggle-track-color-on);
|
|
3872
3784
|
}
|
|
3873
3785
|
|
|
3874
|
-
.muka-
|
|
3875
|
-
|
|
3876
|
-
font-weight: var(--text-input-sm-fontWeight);
|
|
3877
|
-
font-size: var(--text-input-sm-fontSize);
|
|
3878
|
-
line-height: var(--text-input-sm-lineHeight);
|
|
3786
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3787
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3879
3788
|
}
|
|
3880
3789
|
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
line-height: var(--text-input-lg-lineHeight);
|
|
3790
|
+
/* Disabled state */
|
|
3791
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3792
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3793
|
+
box-shadow: none;
|
|
3886
3794
|
}
|
|
3887
3795
|
|
|
3888
|
-
.muka-
|
|
3889
|
-
color: var(--
|
|
3796
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3797
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3798
|
+
box-shadow: none;
|
|
3890
3799
|
}
|
|
3891
3800
|
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
justify-content: space-between;
|
|
3901
|
-
align-items: flex-start;
|
|
3902
|
-
gap: var(--spacing-2);
|
|
3903
|
-
}
|
|
3904
|
-
|
|
3905
|
-
.muka-textarea__helper {
|
|
3906
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3907
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3908
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3909
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3910
|
-
color: var(--color-text-subtle-default);
|
|
3911
|
-
margin: 0;
|
|
3912
|
-
}
|
|
3913
|
-
|
|
3914
|
-
.muka-textarea__error {
|
|
3915
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3916
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3917
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3918
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3919
|
-
color: var(--color-state-error-default);
|
|
3920
|
-
margin: 0;
|
|
3921
|
-
}
|
|
3922
|
-
|
|
3923
|
-
.muka-textarea__count {
|
|
3924
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3925
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3926
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3927
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3928
|
-
color: var(--color-text-subtle-default);
|
|
3929
|
-
margin-left: auto;
|
|
3930
|
-
}
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
/* TextLink */
|
|
3934
|
-
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
3935
|
-
|
|
3936
|
-
.muka-text-link {
|
|
3937
|
-
display: inline;
|
|
3938
|
-
cursor: pointer;
|
|
3939
|
-
text-decoration: underline;
|
|
3940
|
-
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
3941
|
-
text-underline-offset: 0.2em;
|
|
3942
|
-
text-decoration-thickness: from-font;
|
|
3943
|
-
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
3944
|
-
border-radius: var(--border-radius-sm);
|
|
3945
|
-
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
3946
|
-
}
|
|
3947
|
-
|
|
3948
|
-
/* ─── Sizes ───────────────────────────────────────────────
|
|
3949
|
-
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
3950
|
-
.muka-text-link--sm {
|
|
3951
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3952
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3953
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3954
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3955
|
-
}
|
|
3956
|
-
|
|
3957
|
-
.muka-text-link--base {
|
|
3958
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3959
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3960
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3961
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3962
|
-
}
|
|
3963
|
-
|
|
3964
|
-
.muka-text-link--lg {
|
|
3965
|
-
font-family: var(--text-body-lg-regular-fontFamily);
|
|
3966
|
-
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
3967
|
-
font-size: var(--text-body-lg-regular-fontSize);
|
|
3968
|
-
line-height: var(--text-body-lg-regular-lineHeight);
|
|
3969
|
-
}
|
|
3970
|
-
|
|
3971
|
-
/* ─── Variant: default (accent) ───────────────────────────
|
|
3972
|
-
Visited repeats the default colour on purpose: the design treats visited and
|
|
3973
|
-
default the same, and pinning it stops the browser's purple from showing. */
|
|
3974
|
-
.muka-text-link--default,
|
|
3975
|
-
.muka-text-link--default:visited {
|
|
3976
|
-
color: var(--color-text-action-default);
|
|
3977
|
-
}
|
|
3978
|
-
|
|
3979
|
-
.muka-text-link--default:hover,
|
|
3980
|
-
.muka-text-link--default:focus-visible {
|
|
3981
|
-
color: var(--color-text-action-hover);
|
|
3982
|
-
}
|
|
3983
|
-
|
|
3984
|
-
.muka-text-link--default:active {
|
|
3985
|
-
color: var(--color-text-action-pressed);
|
|
3986
|
-
}
|
|
3987
|
-
|
|
3988
|
-
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
3989
|
-
Hover, focus and pressed all darken to the default text colour. */
|
|
3990
|
-
.muka-text-link--subtle,
|
|
3991
|
-
.muka-text-link--subtle:visited {
|
|
3992
|
-
color: var(--color-text-subtle-default);
|
|
3993
|
-
}
|
|
3994
|
-
|
|
3995
|
-
.muka-text-link--subtle:hover,
|
|
3996
|
-
.muka-text-link--subtle:focus-visible,
|
|
3997
|
-
.muka-text-link--subtle:active {
|
|
3998
|
-
color: var(--color-text-default-default);
|
|
3999
|
-
}
|
|
4000
|
-
|
|
4001
|
-
/* ─── Focus ───────────────────────────────────────────────
|
|
4002
|
-
Same ring as every other focusable Muka component. */
|
|
4003
|
-
.muka-text-link:focus-visible {
|
|
4004
|
-
outline: 2px solid var(--color-border-focus);
|
|
4005
|
-
outline-offset: 2px;
|
|
4006
|
-
}
|
|
4007
|
-
|
|
4008
|
-
@media (prefers-reduced-motion: reduce) {
|
|
4009
|
-
.muka-text-link {
|
|
4010
|
-
transition: none;
|
|
4011
|
-
}
|
|
3801
|
+
/* Divider */
|
|
3802
|
+
.muka-toggle__divider {
|
|
3803
|
+
position: absolute;
|
|
3804
|
+
bottom: 0;
|
|
3805
|
+
left: 0;
|
|
3806
|
+
right: 0;
|
|
3807
|
+
height: 1px;
|
|
3808
|
+
background-color: var(--color-border-muted);
|
|
4012
3809
|
}
|
|
4013
3810
|
|
|
4014
3811
|
|
|
@@ -4043,12 +3840,17 @@ body {
|
|
|
4043
3840
|
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4044
3841
|
}
|
|
4045
3842
|
|
|
3843
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
3844
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
3845
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
3846
|
+
}
|
|
3847
|
+
|
|
4046
3848
|
/* Tab Trigger — clean underline style */
|
|
4047
3849
|
.muka-tabs__trigger {
|
|
4048
3850
|
display: inline-flex;
|
|
4049
3851
|
align-items: center;
|
|
4050
3852
|
justify-content: center;
|
|
4051
|
-
gap: var(--spacing-
|
|
3853
|
+
gap: var(--spacing-1);
|
|
4052
3854
|
background: transparent;
|
|
4053
3855
|
border: none;
|
|
4054
3856
|
cursor: pointer;
|
|
@@ -4061,8 +3863,8 @@ body {
|
|
|
4061
3863
|
color: var(--tabs-trigger-color-default-foreground);
|
|
4062
3864
|
|
|
4063
3865
|
/* Default MD size values */
|
|
4064
|
-
height:
|
|
4065
|
-
padding:
|
|
3866
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
3867
|
+
padding: var(--spacing-3);
|
|
4066
3868
|
font-family: var(--text-label-md-regular-fontFamily);
|
|
4067
3869
|
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4068
3870
|
font-size: var(--text-label-md-regular-fontSize);
|
|
@@ -4071,8 +3873,8 @@ body {
|
|
|
4071
3873
|
|
|
4072
3874
|
/* Size Variants */
|
|
4073
3875
|
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4074
|
-
height:
|
|
4075
|
-
padding: 0 var(--spacing-2
|
|
3876
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
3877
|
+
padding: 0 var(--spacing-2);
|
|
4076
3878
|
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4077
3879
|
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4078
3880
|
font-size: var(--text-label-sm-regular-fontSize);
|
|
@@ -4080,8 +3882,8 @@ body {
|
|
|
4080
3882
|
}
|
|
4081
3883
|
|
|
4082
3884
|
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4083
|
-
height:
|
|
4084
|
-
padding:
|
|
3885
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
3886
|
+
padding: var(--spacing-4);
|
|
4085
3887
|
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4086
3888
|
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4087
3889
|
font-size: var(--text-label-lg-regular-fontSize);
|
|
@@ -4105,8 +3907,8 @@ body {
|
|
|
4105
3907
|
bottom: -1px; /* Overlap the 1px border */
|
|
4106
3908
|
left: 0;
|
|
4107
3909
|
right: 0;
|
|
4108
|
-
height:
|
|
4109
|
-
background-color: var(--tabs-
|
|
3910
|
+
height: var(--tabs-indicator-height-md);
|
|
3911
|
+
background-color: var(--tabs-indicator-color);
|
|
4110
3912
|
border-bottom-left-radius: 1px;
|
|
4111
3913
|
border-bottom-right-radius: 1px;
|
|
4112
3914
|
border-top-left-radius: 3px;
|
|
@@ -4114,6 +3916,13 @@ body {
|
|
|
4114
3916
|
z-index: 3;
|
|
4115
3917
|
}
|
|
4116
3918
|
|
|
3919
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
3920
|
+
height: var(--tabs-indicator-height-sm);
|
|
3921
|
+
}
|
|
3922
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
3923
|
+
height: var(--tabs-indicator-height-lg);
|
|
3924
|
+
}
|
|
3925
|
+
|
|
4117
3926
|
.muka-tabs__trigger--disabled {
|
|
4118
3927
|
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4119
3928
|
cursor: not-allowed;
|
|
@@ -4124,18 +3933,29 @@ body {
|
|
|
4124
3933
|
outline-offset: -2px;
|
|
4125
3934
|
}
|
|
4126
3935
|
|
|
4127
|
-
/*
|
|
4128
|
-
|
|
3936
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
3937
|
+
item sits 12px from the text */
|
|
3938
|
+
.muka-tabs__label {
|
|
3939
|
+
padding: 0 var(--spacing-2);
|
|
3940
|
+
}
|
|
3941
|
+
|
|
3942
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
3943
|
+
.muka-tabs__leading {
|
|
4129
3944
|
display: flex;
|
|
4130
3945
|
align-items: center;
|
|
4131
3946
|
justify-content: center;
|
|
3947
|
+
flex-shrink: 0;
|
|
4132
3948
|
}
|
|
4133
3949
|
.muka-tabs__trigger .muka-icon {
|
|
4134
3950
|
color: inherit;
|
|
4135
3951
|
}
|
|
4136
|
-
|
|
4137
|
-
.muka-tabs--size-
|
|
4138
|
-
.muka-tabs--size-
|
|
3952
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
3953
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
3954
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
3955
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
3956
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
3957
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
3958
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4139
3959
|
|
|
4140
3960
|
/* Responsive Scroll behavior on small screens */
|
|
4141
3961
|
@media (max-width: 768px) {
|
|
@@ -4159,25 +3979,271 @@ body {
|
|
|
4159
3979
|
}
|
|
4160
3980
|
}
|
|
4161
3981
|
|
|
4162
|
-
/* Tab Panel — content area */
|
|
4163
|
-
.muka-tabs__panel {
|
|
4164
|
-
background-color: var(--tabs-panel-background);
|
|
4165
|
-
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
4166
|
-
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4167
|
-
padding: var(--spacing-4);
|
|
4168
|
-
position: relative;
|
|
4169
|
-
z-index: 1;
|
|
4170
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
4171
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4172
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4173
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3982
|
+
/* Tab Panel — content area */
|
|
3983
|
+
.muka-tabs__panel {
|
|
3984
|
+
background-color: var(--tabs-panel-background);
|
|
3985
|
+
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
3986
|
+
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
3987
|
+
padding: var(--spacing-4);
|
|
3988
|
+
position: relative;
|
|
3989
|
+
z-index: 1;
|
|
3990
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3991
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3992
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3993
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3994
|
+
}
|
|
3995
|
+
|
|
3996
|
+
.muka-tabs__panel:focus-visible {
|
|
3997
|
+
outline: 2px solid var(--color-border-focus);
|
|
3998
|
+
outline-offset: 2px;
|
|
3999
|
+
}
|
|
4000
|
+
|
|
4001
|
+
|
|
4002
|
+
/* Textarea */
|
|
4003
|
+
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
4004
|
+
|
|
4005
|
+
.muka-textarea {
|
|
4006
|
+
display: inline-flex;
|
|
4007
|
+
flex-direction: column;
|
|
4008
|
+
gap: var(--spacing-2);
|
|
4009
|
+
}
|
|
4010
|
+
|
|
4011
|
+
/* Label */
|
|
4012
|
+
.muka-textarea__label {
|
|
4013
|
+
color: var(--color-text-default-default);
|
|
4014
|
+
cursor: pointer;
|
|
4015
|
+
}
|
|
4016
|
+
|
|
4017
|
+
.muka-textarea__label--sm {
|
|
4018
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4019
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4020
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4021
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4022
|
+
}
|
|
4023
|
+
|
|
4024
|
+
.muka-textarea__label--md {
|
|
4025
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
4026
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
4027
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
4028
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
4029
|
+
}
|
|
4030
|
+
|
|
4031
|
+
.muka-textarea__label--lg {
|
|
4032
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
4033
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
4034
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
4035
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4038
|
+
.muka-textarea__required {
|
|
4039
|
+
color: var(--color-state-error-default);
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
/* Field container */
|
|
4043
|
+
.muka-textarea__field {
|
|
4044
|
+
display: flex;
|
|
4045
|
+
background-color: var(--input-field-color-default-background);
|
|
4046
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
4047
|
+
border-radius: var(--input-field-radius-md);
|
|
4048
|
+
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
4049
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
4050
|
+
box-sizing: border-box;
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
.muka-textarea__field--sm {
|
|
4054
|
+
min-height: var(--input-textarea-height-sm);
|
|
4055
|
+
border-radius: var(--input-field-radius-sm);
|
|
4056
|
+
}
|
|
4057
|
+
|
|
4058
|
+
.muka-textarea__field--md {
|
|
4059
|
+
min-height: var(--input-textarea-height-default);
|
|
4060
|
+
border-radius: var(--input-field-radius-md);
|
|
4061
|
+
}
|
|
4062
|
+
|
|
4063
|
+
.muka-textarea__field--lg {
|
|
4064
|
+
min-height: var(--input-textarea-height-lg);
|
|
4065
|
+
border-radius: var(--input-field-radius-lg);
|
|
4066
|
+
}
|
|
4067
|
+
|
|
4068
|
+
/* Focus state */
|
|
4069
|
+
.muka-textarea__field--focused:not(.muka-textarea__field--disabled) {
|
|
4070
|
+
border-width: var(--border-width-bold);
|
|
4071
|
+
border-color: var(--input-field-color-focus-border);
|
|
4072
|
+
background-color: var(--input-field-color-focus-background);
|
|
4073
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4074
|
+
}
|
|
4075
|
+
|
|
4076
|
+
/* Error state */
|
|
4077
|
+
.muka-textarea__field--error:not(.muka-textarea__field--disabled) {
|
|
4078
|
+
border-width: var(--border-width-bold);
|
|
4079
|
+
border-color: var(--input-field-color-error-border);
|
|
4080
|
+
background-color: var(--input-field-color-error-background);
|
|
4081
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4082
|
+
}
|
|
4083
|
+
|
|
4084
|
+
/* Disabled state */
|
|
4085
|
+
.muka-textarea__field--disabled {
|
|
4086
|
+
background-color: var(--input-field-color-disabled-background);
|
|
4087
|
+
border-color: var(--input-field-color-disabled-border);
|
|
4088
|
+
cursor: not-allowed;
|
|
4089
|
+
}
|
|
4090
|
+
|
|
4091
|
+
/* Native textarea */
|
|
4092
|
+
.muka-textarea__native {
|
|
4093
|
+
flex: 1;
|
|
4094
|
+
border: none;
|
|
4095
|
+
outline: none;
|
|
4096
|
+
background: transparent;
|
|
4097
|
+
color: var(--input-field-color-default-foreground);
|
|
4098
|
+
font-family: var(--text-input-md-fontFamily);
|
|
4099
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
4100
|
+
font-size: var(--text-input-md-fontSize);
|
|
4101
|
+
line-height: var(--text-input-md-lineHeight);
|
|
4102
|
+
padding: 0;
|
|
4103
|
+
width: 100%;
|
|
4104
|
+
min-width: 0;
|
|
4105
|
+
}
|
|
4106
|
+
|
|
4107
|
+
.muka-textarea__field--sm .muka-textarea__native {
|
|
4108
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
4109
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
4110
|
+
font-size: var(--text-input-sm-fontSize);
|
|
4111
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
4112
|
+
}
|
|
4113
|
+
|
|
4114
|
+
.muka-textarea__field--lg .muka-textarea__native {
|
|
4115
|
+
font-family: var(--text-input-lg-fontFamily);
|
|
4116
|
+
font-weight: var(--text-input-lg-fontWeight);
|
|
4117
|
+
font-size: var(--text-input-lg-fontSize);
|
|
4118
|
+
line-height: var(--text-input-lg-lineHeight);
|
|
4119
|
+
}
|
|
4120
|
+
|
|
4121
|
+
.muka-textarea__native::placeholder {
|
|
4122
|
+
color: var(--color-text-subtle-default);
|
|
4123
|
+
}
|
|
4124
|
+
|
|
4125
|
+
.muka-textarea__field--disabled .muka-textarea__native {
|
|
4126
|
+
color: var(--input-field-color-disabled-foreground);
|
|
4127
|
+
cursor: not-allowed;
|
|
4128
|
+
}
|
|
4129
|
+
|
|
4130
|
+
/* Footer (helper/error + count) */
|
|
4131
|
+
.muka-textarea__footer {
|
|
4132
|
+
display: flex;
|
|
4133
|
+
justify-content: space-between;
|
|
4134
|
+
align-items: flex-start;
|
|
4135
|
+
gap: var(--spacing-2);
|
|
4136
|
+
}
|
|
4137
|
+
|
|
4138
|
+
.muka-textarea__helper {
|
|
4139
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4140
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4141
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4142
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4143
|
+
color: var(--color-text-subtle-default);
|
|
4144
|
+
margin: 0;
|
|
4145
|
+
}
|
|
4146
|
+
|
|
4147
|
+
.muka-textarea__error {
|
|
4148
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4149
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4150
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4151
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4152
|
+
color: var(--color-state-error-default);
|
|
4153
|
+
margin: 0;
|
|
4154
|
+
}
|
|
4155
|
+
|
|
4156
|
+
.muka-textarea__count {
|
|
4157
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4158
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4159
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4160
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4161
|
+
color: var(--color-text-subtle-default);
|
|
4162
|
+
margin-left: auto;
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4165
|
+
|
|
4166
|
+
/* TextLink */
|
|
4167
|
+
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
4168
|
+
|
|
4169
|
+
.muka-text-link {
|
|
4170
|
+
display: inline;
|
|
4171
|
+
cursor: pointer;
|
|
4172
|
+
text-decoration: underline;
|
|
4173
|
+
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
4174
|
+
text-underline-offset: 0.2em;
|
|
4175
|
+
text-decoration-thickness: from-font;
|
|
4176
|
+
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
4177
|
+
border-radius: var(--border-radius-sm);
|
|
4178
|
+
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
4179
|
+
}
|
|
4180
|
+
|
|
4181
|
+
/* ─── Sizes ───────────────────────────────────────────────
|
|
4182
|
+
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
4183
|
+
.muka-text-link--sm {
|
|
4184
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4185
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4186
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4187
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4188
|
+
}
|
|
4189
|
+
|
|
4190
|
+
.muka-text-link--base {
|
|
4191
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4192
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4193
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4194
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4195
|
+
}
|
|
4196
|
+
|
|
4197
|
+
.muka-text-link--lg {
|
|
4198
|
+
font-family: var(--text-body-lg-regular-fontFamily);
|
|
4199
|
+
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
4200
|
+
font-size: var(--text-body-lg-regular-fontSize);
|
|
4201
|
+
line-height: var(--text-body-lg-regular-lineHeight);
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
/* ─── Variant: default (accent) ───────────────────────────
|
|
4205
|
+
Visited repeats the default colour on purpose: the design treats visited and
|
|
4206
|
+
default the same, and pinning it stops the browser's purple from showing. */
|
|
4207
|
+
.muka-text-link--default,
|
|
4208
|
+
.muka-text-link--default:visited {
|
|
4209
|
+
color: var(--color-text-action-default);
|
|
4210
|
+
}
|
|
4211
|
+
|
|
4212
|
+
.muka-text-link--default:hover,
|
|
4213
|
+
.muka-text-link--default:focus-visible {
|
|
4214
|
+
color: var(--color-text-action-hover);
|
|
4174
4215
|
}
|
|
4175
4216
|
|
|
4176
|
-
.muka-
|
|
4217
|
+
.muka-text-link--default:active {
|
|
4218
|
+
color: var(--color-text-action-pressed);
|
|
4219
|
+
}
|
|
4220
|
+
|
|
4221
|
+
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
4222
|
+
Hover, focus and pressed all darken to the default text colour. */
|
|
4223
|
+
.muka-text-link--subtle,
|
|
4224
|
+
.muka-text-link--subtle:visited {
|
|
4225
|
+
color: var(--color-text-subtle-default);
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
.muka-text-link--subtle:hover,
|
|
4229
|
+
.muka-text-link--subtle:focus-visible,
|
|
4230
|
+
.muka-text-link--subtle:active {
|
|
4231
|
+
color: var(--color-text-default-default);
|
|
4232
|
+
}
|
|
4233
|
+
|
|
4234
|
+
/* ─── Focus ───────────────────────────────────────────────
|
|
4235
|
+
Same ring as every other focusable Muka component. */
|
|
4236
|
+
.muka-text-link:focus-visible {
|
|
4177
4237
|
outline: 2px solid var(--color-border-focus);
|
|
4178
4238
|
outline-offset: 2px;
|
|
4179
4239
|
}
|
|
4180
4240
|
|
|
4241
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4242
|
+
.muka-text-link {
|
|
4243
|
+
transition: none;
|
|
4244
|
+
}
|
|
4245
|
+
}
|
|
4246
|
+
|
|
4181
4247
|
|
|
4182
4248
|
/* Table */
|
|
4183
4249
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
@@ -4531,114 +4597,6 @@ body {
|
|
|
4531
4597
|
}
|
|
4532
4598
|
|
|
4533
4599
|
|
|
4534
|
-
/* SwipeActions */
|
|
4535
|
-
/* SwipeActions Component Styles */
|
|
4536
|
-
|
|
4537
|
-
.muka-swipe-actions {
|
|
4538
|
-
position: relative;
|
|
4539
|
-
overflow: hidden;
|
|
4540
|
-
touch-action: pan-y;
|
|
4541
|
-
-webkit-user-select: none;
|
|
4542
|
-
user-select: none;
|
|
4543
|
-
background-color: var(--color-surface-level3);
|
|
4544
|
-
}
|
|
4545
|
-
|
|
4546
|
-
.muka-swipe-actions--disabled {
|
|
4547
|
-
touch-action: auto;
|
|
4548
|
-
}
|
|
4549
|
-
|
|
4550
|
-
/* ─── Row that holds the actual content ────────────────── */
|
|
4551
|
-
|
|
4552
|
-
.muka-swipe-actions__row {
|
|
4553
|
-
position: relative;
|
|
4554
|
-
z-index: 1;
|
|
4555
|
-
background-color: inherit;
|
|
4556
|
-
will-change: transform;
|
|
4557
|
-
}
|
|
4558
|
-
|
|
4559
|
-
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4560
|
-
|
|
4561
|
-
.muka-swipe-actions__panel {
|
|
4562
|
-
position: absolute;
|
|
4563
|
-
top: 0;
|
|
4564
|
-
bottom: 0;
|
|
4565
|
-
display: flex;
|
|
4566
|
-
align-items: stretch;
|
|
4567
|
-
z-index: 0;
|
|
4568
|
-
}
|
|
4569
|
-
|
|
4570
|
-
.muka-swipe-actions__panel--left {
|
|
4571
|
-
left: 0;
|
|
4572
|
-
}
|
|
4573
|
-
|
|
4574
|
-
.muka-swipe-actions__panel--right {
|
|
4575
|
-
right: 0;
|
|
4576
|
-
}
|
|
4577
|
-
|
|
4578
|
-
/* ─── Single action button ─────────────────────────────── */
|
|
4579
|
-
|
|
4580
|
-
.muka-swipe-actions__button {
|
|
4581
|
-
display: flex;
|
|
4582
|
-
flex-direction: column;
|
|
4583
|
-
align-items: center;
|
|
4584
|
-
justify-content: center;
|
|
4585
|
-
gap: var(--spacing-1);
|
|
4586
|
-
border: none;
|
|
4587
|
-
cursor: pointer;
|
|
4588
|
-
padding: var(--spacing-2);
|
|
4589
|
-
background-color: var(--color-surface-level2);
|
|
4590
|
-
color: var(--color-text-default-default);
|
|
4591
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4592
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4593
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4594
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4595
|
-
-webkit-tap-highlight-color: transparent;
|
|
4596
|
-
transition: filter 0.12s ease;
|
|
4597
|
-
}
|
|
4598
|
-
|
|
4599
|
-
.muka-swipe-actions__button:hover {
|
|
4600
|
-
filter: brightness(0.95);
|
|
4601
|
-
}
|
|
4602
|
-
|
|
4603
|
-
.muka-swipe-actions__button:focus-visible {
|
|
4604
|
-
outline: 2px solid var(--color-action-default);
|
|
4605
|
-
outline-offset: -2px;
|
|
4606
|
-
}
|
|
4607
|
-
|
|
4608
|
-
.muka-swipe-actions__button-icon {
|
|
4609
|
-
display: inline-flex;
|
|
4610
|
-
align-items: center;
|
|
4611
|
-
justify-content: center;
|
|
4612
|
-
}
|
|
4613
|
-
|
|
4614
|
-
/* ─── Color variants ───────────────────────────────────── */
|
|
4615
|
-
|
|
4616
|
-
.muka-swipe-actions__button--neutral {
|
|
4617
|
-
background-color: var(--color-surface-level2);
|
|
4618
|
-
color: var(--color-text-default-default);
|
|
4619
|
-
}
|
|
4620
|
-
|
|
4621
|
-
.muka-swipe-actions__button--primary {
|
|
4622
|
-
background-color: var(--color-action-default);
|
|
4623
|
-
color: var(--color-text-default-inverse);
|
|
4624
|
-
}
|
|
4625
|
-
|
|
4626
|
-
.muka-swipe-actions__button--success {
|
|
4627
|
-
background-color: var(--color-state-success-default);
|
|
4628
|
-
color: var(--color-text-default-inverse);
|
|
4629
|
-
}
|
|
4630
|
-
|
|
4631
|
-
.muka-swipe-actions__button--warning {
|
|
4632
|
-
background-color: var(--color-state-warning-default);
|
|
4633
|
-
color: var(--color-text-default-default);
|
|
4634
|
-
}
|
|
4635
|
-
|
|
4636
|
-
.muka-swipe-actions__button--destructive {
|
|
4637
|
-
background-color: var(--color-state-error-default);
|
|
4638
|
-
color: var(--color-text-default-inverse);
|
|
4639
|
-
}
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
4600
|
/* Spinner */
|
|
4643
4601
|
/* Spinner Component Styles */
|
|
4644
4602
|
|
|
@@ -4734,71 +4692,179 @@ body {
|
|
|
4734
4692
|
padding-bottom: var(--spacing-3);
|
|
4735
4693
|
}
|
|
4736
4694
|
|
|
4737
|
-
/* ─── Label ───────────────────────────────────────────── */
|
|
4695
|
+
/* ─── Label ───────────────────────────────────────────── */
|
|
4696
|
+
|
|
4697
|
+
.muka-spec-row__label {
|
|
4698
|
+
flex: 0 0 auto;
|
|
4699
|
+
margin: 0;
|
|
4700
|
+
color: var(--color-text-subtle-default);
|
|
4701
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4702
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4703
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4704
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4705
|
+
overflow: hidden;
|
|
4706
|
+
text-overflow: ellipsis;
|
|
4707
|
+
white-space: nowrap;
|
|
4708
|
+
}
|
|
4709
|
+
|
|
4710
|
+
/* ─── Value ───────────────────────────────────────────── */
|
|
4711
|
+
|
|
4712
|
+
.muka-spec-row__value {
|
|
4713
|
+
flex: 1 1 0;
|
|
4714
|
+
min-width: 0;
|
|
4715
|
+
margin: 0;
|
|
4716
|
+
display: flex;
|
|
4717
|
+
flex-direction: column;
|
|
4718
|
+
color: var(--color-text-default-default);
|
|
4719
|
+
}
|
|
4720
|
+
|
|
4721
|
+
.muka-spec-row__value-text {
|
|
4722
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4723
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4724
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4725
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4726
|
+
}
|
|
4727
|
+
|
|
4728
|
+
.muka-spec-row__hint {
|
|
4729
|
+
color: var(--color-text-subtle-default);
|
|
4730
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4731
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4732
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4733
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4734
|
+
}
|
|
4735
|
+
|
|
4736
|
+
/* ─── Label width (horizontal stacking) ───────────────── */
|
|
4737
|
+
|
|
4738
|
+
.muka-spec-list--label-small .muka-spec-row__label {
|
|
4739
|
+
width: 80px;
|
|
4740
|
+
}
|
|
4741
|
+
|
|
4742
|
+
.muka-spec-list--label-medium .muka-spec-row__label {
|
|
4743
|
+
width: 120px;
|
|
4744
|
+
}
|
|
4745
|
+
|
|
4746
|
+
.muka-spec-list--label-large .muka-spec-row__label {
|
|
4747
|
+
width: 160px;
|
|
4748
|
+
}
|
|
4749
|
+
|
|
4750
|
+
/* ─── Vertical stacking ───────────────────────────────── */
|
|
4751
|
+
|
|
4752
|
+
.muka-spec-list--vertical .muka-spec-row {
|
|
4753
|
+
flex-direction: column;
|
|
4754
|
+
gap: var(--spacing-1);
|
|
4755
|
+
}
|
|
4756
|
+
|
|
4757
|
+
.muka-spec-list--vertical .muka-spec-row__label {
|
|
4758
|
+
width: 100%;
|
|
4759
|
+
white-space: normal;
|
|
4760
|
+
}
|
|
4761
|
+
|
|
4762
|
+
|
|
4763
|
+
/* SwipeActions */
|
|
4764
|
+
/* SwipeActions Component Styles */
|
|
4765
|
+
|
|
4766
|
+
.muka-swipe-actions {
|
|
4767
|
+
position: relative;
|
|
4768
|
+
overflow: hidden;
|
|
4769
|
+
touch-action: pan-y;
|
|
4770
|
+
-webkit-user-select: none;
|
|
4771
|
+
user-select: none;
|
|
4772
|
+
background-color: var(--color-surface-level3);
|
|
4773
|
+
}
|
|
4774
|
+
|
|
4775
|
+
.muka-swipe-actions--disabled {
|
|
4776
|
+
touch-action: auto;
|
|
4777
|
+
}
|
|
4778
|
+
|
|
4779
|
+
/* ─── Row that holds the actual content ────────────────── */
|
|
4780
|
+
|
|
4781
|
+
.muka-swipe-actions__row {
|
|
4782
|
+
position: relative;
|
|
4783
|
+
z-index: 1;
|
|
4784
|
+
background-color: inherit;
|
|
4785
|
+
will-change: transform;
|
|
4786
|
+
}
|
|
4787
|
+
|
|
4788
|
+
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4789
|
+
|
|
4790
|
+
.muka-swipe-actions__panel {
|
|
4791
|
+
position: absolute;
|
|
4792
|
+
top: 0;
|
|
4793
|
+
bottom: 0;
|
|
4794
|
+
display: flex;
|
|
4795
|
+
align-items: stretch;
|
|
4796
|
+
z-index: 0;
|
|
4797
|
+
}
|
|
4798
|
+
|
|
4799
|
+
.muka-swipe-actions__panel--left {
|
|
4800
|
+
left: 0;
|
|
4801
|
+
}
|
|
4738
4802
|
|
|
4739
|
-
.muka-
|
|
4740
|
-
|
|
4741
|
-
margin: 0;
|
|
4742
|
-
color: var(--color-text-subtle-default);
|
|
4743
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
4744
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4745
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4746
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
4747
|
-
overflow: hidden;
|
|
4748
|
-
text-overflow: ellipsis;
|
|
4749
|
-
white-space: nowrap;
|
|
4803
|
+
.muka-swipe-actions__panel--right {
|
|
4804
|
+
right: 0;
|
|
4750
4805
|
}
|
|
4751
4806
|
|
|
4752
|
-
/* ───
|
|
4807
|
+
/* ─── Single action button ─────────────────────────────── */
|
|
4753
4808
|
|
|
4754
|
-
.muka-
|
|
4755
|
-
flex: 1 1 0;
|
|
4756
|
-
min-width: 0;
|
|
4757
|
-
margin: 0;
|
|
4809
|
+
.muka-swipe-actions__button {
|
|
4758
4810
|
display: flex;
|
|
4759
4811
|
flex-direction: column;
|
|
4812
|
+
align-items: center;
|
|
4813
|
+
justify-content: center;
|
|
4814
|
+
gap: var(--spacing-1);
|
|
4815
|
+
border: none;
|
|
4816
|
+
cursor: pointer;
|
|
4817
|
+
padding: var(--spacing-2);
|
|
4818
|
+
background-color: var(--color-surface-level2);
|
|
4760
4819
|
color: var(--color-text-default-default);
|
|
4820
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4821
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4822
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4823
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4824
|
+
-webkit-tap-highlight-color: transparent;
|
|
4825
|
+
transition: filter 0.12s ease;
|
|
4761
4826
|
}
|
|
4762
4827
|
|
|
4763
|
-
.muka-
|
|
4764
|
-
|
|
4765
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4766
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4767
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
4828
|
+
.muka-swipe-actions__button:hover {
|
|
4829
|
+
filter: brightness(0.95);
|
|
4768
4830
|
}
|
|
4769
4831
|
|
|
4770
|
-
.muka-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4774
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
4775
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4832
|
+
.muka-swipe-actions__button:focus-visible {
|
|
4833
|
+
outline: 2px solid var(--color-action-default);
|
|
4834
|
+
outline-offset: -2px;
|
|
4776
4835
|
}
|
|
4777
4836
|
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4837
|
+
.muka-swipe-actions__button-icon {
|
|
4838
|
+
display: inline-flex;
|
|
4839
|
+
align-items: center;
|
|
4840
|
+
justify-content: center;
|
|
4782
4841
|
}
|
|
4783
4842
|
|
|
4784
|
-
|
|
4785
|
-
|
|
4843
|
+
/* ─── Color variants ───────────────────────────────────── */
|
|
4844
|
+
|
|
4845
|
+
.muka-swipe-actions__button--neutral {
|
|
4846
|
+
background-color: var(--color-surface-level2);
|
|
4847
|
+
color: var(--color-text-default-default);
|
|
4786
4848
|
}
|
|
4787
4849
|
|
|
4788
|
-
.muka-
|
|
4789
|
-
|
|
4850
|
+
.muka-swipe-actions__button--primary {
|
|
4851
|
+
background-color: var(--color-action-default);
|
|
4852
|
+
color: var(--color-text-default-inverse);
|
|
4790
4853
|
}
|
|
4791
4854
|
|
|
4792
|
-
|
|
4855
|
+
.muka-swipe-actions__button--success {
|
|
4856
|
+
background-color: var(--color-state-success-default);
|
|
4857
|
+
color: var(--color-text-default-inverse);
|
|
4858
|
+
}
|
|
4793
4859
|
|
|
4794
|
-
.muka-
|
|
4795
|
-
|
|
4796
|
-
|
|
4860
|
+
.muka-swipe-actions__button--warning {
|
|
4861
|
+
background-color: var(--color-state-warning-default);
|
|
4862
|
+
color: var(--color-text-default-default);
|
|
4797
4863
|
}
|
|
4798
4864
|
|
|
4799
|
-
.muka-
|
|
4800
|
-
|
|
4801
|
-
|
|
4865
|
+
.muka-swipe-actions__button--destructive {
|
|
4866
|
+
background-color: var(--color-state-error-default);
|
|
4867
|
+
color: var(--color-text-default-inverse);
|
|
4802
4868
|
}
|
|
4803
4869
|
|
|
4804
4870
|
|
|
@@ -7433,6 +7499,77 @@ body {
|
|
|
7433
7499
|
}
|
|
7434
7500
|
|
|
7435
7501
|
|
|
7502
|
+
/* ProfileBadge */
|
|
7503
|
+
/* ProfileBadge Component Styles - Using Muka Design Tokens */
|
|
7504
|
+
|
|
7505
|
+
.muka-profile-badge {
|
|
7506
|
+
display: inline-flex;
|
|
7507
|
+
align-items: center;
|
|
7508
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
7509
|
+
}
|
|
7510
|
+
|
|
7511
|
+
/* Size variants */
|
|
7512
|
+
.muka-profile-badge--lg {
|
|
7513
|
+
gap: var(--spacing-4); /* 16px */
|
|
7514
|
+
}
|
|
7515
|
+
|
|
7516
|
+
.muka-profile-badge--md {
|
|
7517
|
+
gap: var(--spacing-3); /* 12px */
|
|
7518
|
+
}
|
|
7519
|
+
|
|
7520
|
+
.muka-profile-badge__avatar {
|
|
7521
|
+
flex-shrink: 0;
|
|
7522
|
+
}
|
|
7523
|
+
|
|
7524
|
+
/* Text stack */
|
|
7525
|
+
.muka-profile-badge__text {
|
|
7526
|
+
display: flex;
|
|
7527
|
+
flex-direction: column;
|
|
7528
|
+
align-items: flex-start;
|
|
7529
|
+
min-width: 0;
|
|
7530
|
+
}
|
|
7531
|
+
|
|
7532
|
+
.muka-profile-badge__name {
|
|
7533
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
7534
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
7535
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
7536
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
7537
|
+
color: var(--color-text-default-default);
|
|
7538
|
+
}
|
|
7539
|
+
|
|
7540
|
+
.muka-profile-badge__email {
|
|
7541
|
+
font-family: var(--text-body-xs-regular-fontFamily);
|
|
7542
|
+
font-size: var(--text-body-xs-regular-fontSize);
|
|
7543
|
+
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
7544
|
+
line-height: var(--text-body-xs-regular-lineHeight);
|
|
7545
|
+
color: var(--color-text-subtle-default);
|
|
7546
|
+
}
|
|
7547
|
+
|
|
7548
|
+
/* Clickable state */
|
|
7549
|
+
.muka-profile-badge--clickable {
|
|
7550
|
+
cursor: pointer;
|
|
7551
|
+
border: none;
|
|
7552
|
+
background: none;
|
|
7553
|
+
padding: 0;
|
|
7554
|
+
text-align: left;
|
|
7555
|
+
border-radius: var(--radius-md);
|
|
7556
|
+
transition: opacity 0.2s ease;
|
|
7557
|
+
}
|
|
7558
|
+
|
|
7559
|
+
.muka-profile-badge--clickable:hover {
|
|
7560
|
+
opacity: 0.9;
|
|
7561
|
+
}
|
|
7562
|
+
|
|
7563
|
+
.muka-profile-badge--clickable:active {
|
|
7564
|
+
opacity: 0.8;
|
|
7565
|
+
}
|
|
7566
|
+
|
|
7567
|
+
.muka-profile-badge--clickable:focus-visible {
|
|
7568
|
+
outline: 2px solid var(--color-border-focus);
|
|
7569
|
+
outline-offset: 2px;
|
|
7570
|
+
}
|
|
7571
|
+
|
|
7572
|
+
|
|
7436
7573
|
/* PriceTag */
|
|
7437
7574
|
/* PriceTag Component Styles - Using Muka Design Tokens */
|
|
7438
7575
|
|
|
@@ -7530,77 +7667,6 @@ body {
|
|
|
7530
7667
|
}
|
|
7531
7668
|
|
|
7532
7669
|
|
|
7533
|
-
/* ProfileBadge */
|
|
7534
|
-
/* ProfileBadge Component Styles - Using Muka Design Tokens */
|
|
7535
|
-
|
|
7536
|
-
.muka-profile-badge {
|
|
7537
|
-
display: inline-flex;
|
|
7538
|
-
align-items: center;
|
|
7539
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
7540
|
-
}
|
|
7541
|
-
|
|
7542
|
-
/* Size variants */
|
|
7543
|
-
.muka-profile-badge--lg {
|
|
7544
|
-
gap: var(--spacing-4); /* 16px */
|
|
7545
|
-
}
|
|
7546
|
-
|
|
7547
|
-
.muka-profile-badge--md {
|
|
7548
|
-
gap: var(--spacing-3); /* 12px */
|
|
7549
|
-
}
|
|
7550
|
-
|
|
7551
|
-
.muka-profile-badge__avatar {
|
|
7552
|
-
flex-shrink: 0;
|
|
7553
|
-
}
|
|
7554
|
-
|
|
7555
|
-
/* Text stack */
|
|
7556
|
-
.muka-profile-badge__text {
|
|
7557
|
-
display: flex;
|
|
7558
|
-
flex-direction: column;
|
|
7559
|
-
align-items: flex-start;
|
|
7560
|
-
min-width: 0;
|
|
7561
|
-
}
|
|
7562
|
-
|
|
7563
|
-
.muka-profile-badge__name {
|
|
7564
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
7565
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
7566
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
7567
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
7568
|
-
color: var(--color-text-default-default);
|
|
7569
|
-
}
|
|
7570
|
-
|
|
7571
|
-
.muka-profile-badge__email {
|
|
7572
|
-
font-family: var(--text-body-xs-regular-fontFamily);
|
|
7573
|
-
font-size: var(--text-body-xs-regular-fontSize);
|
|
7574
|
-
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
7575
|
-
line-height: var(--text-body-xs-regular-lineHeight);
|
|
7576
|
-
color: var(--color-text-subtle-default);
|
|
7577
|
-
}
|
|
7578
|
-
|
|
7579
|
-
/* Clickable state */
|
|
7580
|
-
.muka-profile-badge--clickable {
|
|
7581
|
-
cursor: pointer;
|
|
7582
|
-
border: none;
|
|
7583
|
-
background: none;
|
|
7584
|
-
padding: 0;
|
|
7585
|
-
text-align: left;
|
|
7586
|
-
border-radius: var(--radius-md);
|
|
7587
|
-
transition: opacity 0.2s ease;
|
|
7588
|
-
}
|
|
7589
|
-
|
|
7590
|
-
.muka-profile-badge--clickable:hover {
|
|
7591
|
-
opacity: 0.9;
|
|
7592
|
-
}
|
|
7593
|
-
|
|
7594
|
-
.muka-profile-badge--clickable:active {
|
|
7595
|
-
opacity: 0.8;
|
|
7596
|
-
}
|
|
7597
|
-
|
|
7598
|
-
.muka-profile-badge--clickable:focus-visible {
|
|
7599
|
-
outline: 2px solid var(--color-border-focus);
|
|
7600
|
-
outline-offset: 2px;
|
|
7601
|
-
}
|
|
7602
|
-
|
|
7603
|
-
|
|
7604
7670
|
/* Popover */
|
|
7605
7671
|
/* Popover Component Styles */
|
|
7606
7672
|
|
|
@@ -8006,18 +8072,46 @@ body {
|
|
|
8006
8072
|
white-space: nowrap;
|
|
8007
8073
|
}
|
|
8008
8074
|
|
|
8009
|
-
/* Hide the native number spinners — affixes/step API replace them. */
|
|
8010
|
-
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
8011
|
-
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
8012
|
-
-webkit-appearance: none;
|
|
8013
|
-
margin: 0;
|
|
8075
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
8076
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
8077
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
8078
|
+
-webkit-appearance: none;
|
|
8079
|
+
margin: 0;
|
|
8080
|
+
}
|
|
8081
|
+
|
|
8082
|
+
.muka-numberinput__field .muka-input__native {
|
|
8083
|
+
-moz-appearance: textfield;
|
|
8084
|
+
appearance: textfield;
|
|
8085
|
+
}
|
|
8086
|
+
|
|
8087
|
+
|
|
8088
|
+
/* NavigationTransition */
|
|
8089
|
+
/* NavigationTransition Component Styles */
|
|
8090
|
+
|
|
8091
|
+
/* ─── Wrapper ────────────────────────────────────────── */
|
|
8092
|
+
|
|
8093
|
+
.muka-nav-transition {
|
|
8094
|
+
position: relative;
|
|
8095
|
+
height: 100vh;
|
|
8096
|
+
overflow: hidden;
|
|
8097
|
+
}
|
|
8098
|
+
|
|
8099
|
+
/* Disable interaction during animation */
|
|
8100
|
+
.muka-nav-transition--active {
|
|
8101
|
+
pointer-events: none;
|
|
8014
8102
|
}
|
|
8015
8103
|
|
|
8016
|
-
|
|
8017
|
-
|
|
8018
|
-
|
|
8104
|
+
/* ─── View slots ─────────────────────────────────────── */
|
|
8105
|
+
|
|
8106
|
+
.muka-nav-transition--active .muka-nav-transition__view {
|
|
8107
|
+
position: absolute;
|
|
8108
|
+
inset: 0;
|
|
8019
8109
|
}
|
|
8020
8110
|
|
|
8111
|
+
/* Z-index layering */
|
|
8112
|
+
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
8113
|
+
.muka-nav-transition__view--top { z-index: 2; }
|
|
8114
|
+
|
|
8021
8115
|
|
|
8022
8116
|
/* Menu */
|
|
8023
8117
|
/* Menu Component Styles */
|
|
@@ -8498,34 +8592,6 @@ body {
|
|
|
8498
8592
|
}
|
|
8499
8593
|
|
|
8500
8594
|
|
|
8501
|
-
/* NavigationTransition */
|
|
8502
|
-
/* NavigationTransition Component Styles */
|
|
8503
|
-
|
|
8504
|
-
/* ─── Wrapper ────────────────────────────────────────── */
|
|
8505
|
-
|
|
8506
|
-
.muka-nav-transition {
|
|
8507
|
-
position: relative;
|
|
8508
|
-
height: 100vh;
|
|
8509
|
-
overflow: hidden;
|
|
8510
|
-
}
|
|
8511
|
-
|
|
8512
|
-
/* Disable interaction during animation */
|
|
8513
|
-
.muka-nav-transition--active {
|
|
8514
|
-
pointer-events: none;
|
|
8515
|
-
}
|
|
8516
|
-
|
|
8517
|
-
/* ─── View slots ─────────────────────────────────────── */
|
|
8518
|
-
|
|
8519
|
-
.muka-nav-transition--active .muka-nav-transition__view {
|
|
8520
|
-
position: absolute;
|
|
8521
|
-
inset: 0;
|
|
8522
|
-
}
|
|
8523
|
-
|
|
8524
|
-
/* Z-index layering */
|
|
8525
|
-
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
8526
|
-
.muka-nav-transition__view--top { z-index: 2; }
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
8595
|
/* ListItem */
|
|
8530
8596
|
/* ListItem Component Styles - Using Muka Design Tokens */
|
|
8531
8597
|
|
|
@@ -8954,6 +9020,184 @@ li.muka-listitem {
|
|
|
8954
9020
|
}
|
|
8955
9021
|
|
|
8956
9022
|
|
|
9023
|
+
/* InputCounter */
|
|
9024
|
+
/* InputCounter — numeric field + joined decrement/increment buttons.
|
|
9025
|
+
Label, helper and error text reuse Input.css (../Input/Input.css).
|
|
9026
|
+
Field and button group share one radius per size:
|
|
9027
|
+
sm/md → input.field.radius.md, lg → input.field.radius.lg. */
|
|
9028
|
+
|
|
9029
|
+
.muka-inputcounter {
|
|
9030
|
+
--muka-inputcounter-radius: var(--input-field-radius-md);
|
|
9031
|
+
--muka-inputcounter-height: var(--input-field-height-default);
|
|
9032
|
+
--muka-inputcounter-pad: calc(var(--spacing-2) + var(--spacing-1));
|
|
9033
|
+
--muka-inputcounter-min: var(--size-3xl);
|
|
9034
|
+
|
|
9035
|
+
display: inline-flex;
|
|
9036
|
+
flex-direction: column;
|
|
9037
|
+
gap: var(--spacing-2);
|
|
9038
|
+
}
|
|
9039
|
+
|
|
9040
|
+
.muka-inputcounter--sm {
|
|
9041
|
+
--muka-inputcounter-height: var(--input-field-height-sm);
|
|
9042
|
+
--muka-inputcounter-pad: calc(var(--spacing-1) + var(--spacing-1));
|
|
9043
|
+
--muka-inputcounter-min: var(--size-2xl);
|
|
9044
|
+
}
|
|
9045
|
+
|
|
9046
|
+
.muka-inputcounter--lg {
|
|
9047
|
+
--muka-inputcounter-radius: var(--input-field-radius-lg);
|
|
9048
|
+
--muka-inputcounter-height: var(--input-field-height-lg);
|
|
9049
|
+
}
|
|
9050
|
+
|
|
9051
|
+
/* Label row — label, info tooltip trigger, optional hint */
|
|
9052
|
+
.muka-inputcounter__label-row {
|
|
9053
|
+
display: flex;
|
|
9054
|
+
align-items: center;
|
|
9055
|
+
gap: var(--spacing-2);
|
|
9056
|
+
min-height: var(--size-xl);
|
|
9057
|
+
}
|
|
9058
|
+
|
|
9059
|
+
.muka-inputcounter__info {
|
|
9060
|
+
display: inline-flex;
|
|
9061
|
+
align-items: center;
|
|
9062
|
+
justify-content: center;
|
|
9063
|
+
padding: 0;
|
|
9064
|
+
border: none;
|
|
9065
|
+
border-radius: 50%;
|
|
9066
|
+
background: transparent;
|
|
9067
|
+
cursor: pointer;
|
|
9068
|
+
}
|
|
9069
|
+
|
|
9070
|
+
.muka-inputcounter__info .muka-icon {
|
|
9071
|
+
color: var(--color-action-default);
|
|
9072
|
+
}
|
|
9073
|
+
|
|
9074
|
+
.muka-inputcounter__info:focus-visible {
|
|
9075
|
+
outline: 2px solid var(--color-border-focus);
|
|
9076
|
+
outline-offset: 2px;
|
|
9077
|
+
}
|
|
9078
|
+
|
|
9079
|
+
.muka-inputcounter__optional {
|
|
9080
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
9081
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
9082
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
9083
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
9084
|
+
color: var(--color-text-subtle-default);
|
|
9085
|
+
}
|
|
9086
|
+
|
|
9087
|
+
/* Field + button group */
|
|
9088
|
+
.muka-inputcounter__row {
|
|
9089
|
+
display: flex;
|
|
9090
|
+
align-items: center;
|
|
9091
|
+
gap: var(--spacing-3);
|
|
9092
|
+
}
|
|
9093
|
+
|
|
9094
|
+
/* Field — grows with the value (in ch), never narrower than the Figma width.
|
|
9095
|
+
Padding sits on the native input so the 2px focus/error border doesn't
|
|
9096
|
+
need compensating: content is centred in a fixed box. */
|
|
9097
|
+
.muka-inputcounter__field {
|
|
9098
|
+
position: relative;
|
|
9099
|
+
display: flex;
|
|
9100
|
+
align-items: center;
|
|
9101
|
+
box-sizing: border-box;
|
|
9102
|
+
height: var(--muka-inputcounter-height);
|
|
9103
|
+
width: calc(
|
|
9104
|
+
max(var(--muka-inputcounter-min), calc(var(--muka-inputcounter-chars, 1) * 1ch)) +
|
|
9105
|
+
2 * var(--muka-inputcounter-pad) + 2 * var(--border-width-regular)
|
|
9106
|
+
);
|
|
9107
|
+
background-color: var(--input-field-color-default-background);
|
|
9108
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
9109
|
+
border-radius: var(--muka-inputcounter-radius);
|
|
9110
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
9111
|
+
}
|
|
9112
|
+
|
|
9113
|
+
.muka-inputcounter__field::after {
|
|
9114
|
+
content: '';
|
|
9115
|
+
position: absolute;
|
|
9116
|
+
inset: 0;
|
|
9117
|
+
border-radius: inherit;
|
|
9118
|
+
box-shadow: var(--shadow-sunken);
|
|
9119
|
+
pointer-events: none;
|
|
9120
|
+
}
|
|
9121
|
+
|
|
9122
|
+
.muka-inputcounter__field--focused:not(.muka-inputcounter__field--disabled) {
|
|
9123
|
+
border-width: var(--border-width-bold);
|
|
9124
|
+
border-color: var(--input-field-color-focus-border);
|
|
9125
|
+
background-color: var(--input-field-color-focus-background);
|
|
9126
|
+
}
|
|
9127
|
+
|
|
9128
|
+
.muka-inputcounter__field--error:not(.muka-inputcounter__field--disabled) {
|
|
9129
|
+
border-width: var(--border-width-bold);
|
|
9130
|
+
border-color: var(--input-field-color-error-border);
|
|
9131
|
+
background-color: var(--input-field-color-error-background);
|
|
9132
|
+
}
|
|
9133
|
+
|
|
9134
|
+
.muka-inputcounter__field--disabled {
|
|
9135
|
+
background-color: var(--input-field-color-disabled-background);
|
|
9136
|
+
border-color: var(--input-field-color-disabled-border);
|
|
9137
|
+
}
|
|
9138
|
+
|
|
9139
|
+
.muka-inputcounter__field--disabled::after {
|
|
9140
|
+
display: none;
|
|
9141
|
+
}
|
|
9142
|
+
|
|
9143
|
+
.muka-inputcounter__native {
|
|
9144
|
+
width: 100%;
|
|
9145
|
+
min-width: 0;
|
|
9146
|
+
height: 100%;
|
|
9147
|
+
box-sizing: border-box;
|
|
9148
|
+
padding: 0 calc(var(--muka-inputcounter-pad) - var(--border-width-regular));
|
|
9149
|
+
border: none;
|
|
9150
|
+
outline: none;
|
|
9151
|
+
background: transparent;
|
|
9152
|
+
text-align: center;
|
|
9153
|
+
font-variant-numeric: tabular-nums;
|
|
9154
|
+
color: var(--input-field-color-default-foreground);
|
|
9155
|
+
font-family: var(--text-input-md-fontFamily);
|
|
9156
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
9157
|
+
font-size: var(--text-input-md-fontSize);
|
|
9158
|
+
line-height: var(--text-input-md-lineHeight);
|
|
9159
|
+
}
|
|
9160
|
+
|
|
9161
|
+
.muka-inputcounter--sm .muka-inputcounter__native {
|
|
9162
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
9163
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
9164
|
+
font-size: var(--text-input-sm-fontSize);
|
|
9165
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
9166
|
+
}
|
|
9167
|
+
|
|
9168
|
+
.muka-inputcounter__field--disabled .muka-inputcounter__native {
|
|
9169
|
+
color: var(--input-field-color-disabled-foreground);
|
|
9170
|
+
cursor: not-allowed;
|
|
9171
|
+
}
|
|
9172
|
+
|
|
9173
|
+
/* Button group — secondary icon-only Buttons joined by a divider.
|
|
9174
|
+
Only the outer corners are rounded. */
|
|
9175
|
+
.muka-inputcounter__group {
|
|
9176
|
+
display: inline-flex;
|
|
9177
|
+
align-items: stretch;
|
|
9178
|
+
}
|
|
9179
|
+
|
|
9180
|
+
.muka-inputcounter__group .muka-button {
|
|
9181
|
+
border-radius: 0;
|
|
9182
|
+
}
|
|
9183
|
+
|
|
9184
|
+
.muka-inputcounter__group .muka-button:first-child {
|
|
9185
|
+
border-start-start-radius: var(--muka-inputcounter-radius);
|
|
9186
|
+
border-end-start-radius: var(--muka-inputcounter-radius);
|
|
9187
|
+
}
|
|
9188
|
+
|
|
9189
|
+
.muka-inputcounter__group .muka-button:last-child {
|
|
9190
|
+
border-start-end-radius: var(--muka-inputcounter-radius);
|
|
9191
|
+
border-end-end-radius: var(--muka-inputcounter-radius);
|
|
9192
|
+
}
|
|
9193
|
+
|
|
9194
|
+
.muka-inputcounter__divider {
|
|
9195
|
+
flex: none;
|
|
9196
|
+
width: var(--border-width-regular);
|
|
9197
|
+
background-color: var(--color-border-default);
|
|
9198
|
+
}
|
|
9199
|
+
|
|
9200
|
+
|
|
8957
9201
|
/* Input */
|
|
8958
9202
|
/* Input Component Styles - Using Muka Design Tokens */
|
|
8959
9203
|
|
|
@@ -13392,6 +13636,39 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13392
13636
|
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
13393
13637
|
}
|
|
13394
13638
|
|
|
13639
|
+
/* Destructive variant - primary's structure on the solid error fill, for
|
|
13640
|
+
irreversible actions. Hover and pressed step away from the label color, so
|
|
13641
|
+
contrast never drops (darker in light themes, lighter in dark themes).
|
|
13642
|
+
Disabled is neutral grey rather than primary's brand-tinted fill. */
|
|
13643
|
+
.muka-button--destructive {
|
|
13644
|
+
background-color: var(--button-color-destructive-background-default);
|
|
13645
|
+
color: var(--button-color-destructive-foreground-default);
|
|
13646
|
+
box-shadow: var(--button-color-destructive-shadow-default);
|
|
13647
|
+
}
|
|
13648
|
+
|
|
13649
|
+
.muka-button--destructive:hover:not(:disabled) {
|
|
13650
|
+
background-color: var(--button-color-destructive-background-hover);
|
|
13651
|
+
color: var(--button-color-destructive-foreground-hover);
|
|
13652
|
+
box-shadow: var(--button-color-destructive-shadow-hover);
|
|
13653
|
+
}
|
|
13654
|
+
|
|
13655
|
+
.muka-button--destructive:active:not(:disabled),
|
|
13656
|
+
.muka-button--destructive.muka-button--pressed:not(:disabled),
|
|
13657
|
+
.muka-button--destructive[data-state="open"]:not(:disabled),
|
|
13658
|
+
.muka-button--destructive[aria-pressed="true"]:not(:disabled) {
|
|
13659
|
+
background-color: var(--button-color-destructive-background-pressed);
|
|
13660
|
+
color: var(--button-color-destructive-foreground-pressed);
|
|
13661
|
+
box-shadow: var(--button-color-destructive-shadow-pressed);
|
|
13662
|
+
}
|
|
13663
|
+
|
|
13664
|
+
.muka-button--destructive:disabled {
|
|
13665
|
+
background-color: var(--button-color-destructive-background-disabled);
|
|
13666
|
+
color: var(--button-color-destructive-foreground-disabled);
|
|
13667
|
+
box-shadow: var(--button-color-destructive-shadow-disabled);
|
|
13668
|
+
cursor: not-allowed;
|
|
13669
|
+
opacity: 1;
|
|
13670
|
+
}
|
|
13671
|
+
|
|
13395
13672
|
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
13396
13673
|
.muka-button--secondary {
|
|
13397
13674
|
background-color: var(--button-color-secondary-background-default);
|
|
@@ -14325,12 +14602,29 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14325
14602
|
vertical-align: middle;
|
|
14326
14603
|
background-color: var(--avatar-color-background-default);
|
|
14327
14604
|
color: var(--avatar-color-foreground-default);
|
|
14328
|
-
border: var(--avatar-border-width) solid var(--avatar-color-border-default);
|
|
14329
14605
|
font-family: var(--alias-font-brand-family);
|
|
14330
14606
|
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14331
14607
|
}
|
|
14332
14608
|
|
|
14333
14609
|
/* Size variants */
|
|
14610
|
+
.muka-avatar--4xs {
|
|
14611
|
+
width: var(--avatar-size-4xs);
|
|
14612
|
+
height: var(--avatar-size-4xs);
|
|
14613
|
+
font-size: var(--avatar-font-size-3xs); /* only used by an AvatarGroup "+N" */
|
|
14614
|
+
}
|
|
14615
|
+
|
|
14616
|
+
.muka-avatar--3xs {
|
|
14617
|
+
width: var(--avatar-size-3xs);
|
|
14618
|
+
height: var(--avatar-size-3xs);
|
|
14619
|
+
font-size: var(--avatar-font-size-3xs);
|
|
14620
|
+
}
|
|
14621
|
+
|
|
14622
|
+
.muka-avatar--2xs {
|
|
14623
|
+
width: var(--avatar-size-2xs);
|
|
14624
|
+
height: var(--avatar-size-2xs);
|
|
14625
|
+
font-size: var(--avatar-font-size-2xs);
|
|
14626
|
+
}
|
|
14627
|
+
|
|
14334
14628
|
.muka-avatar--xs {
|
|
14335
14629
|
width: var(--avatar-size-xs);
|
|
14336
14630
|
height: var(--avatar-size-xs);
|
|
@@ -14370,6 +14664,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14370
14664
|
border-radius: var(--avatar-radius-square);
|
|
14371
14665
|
}
|
|
14372
14666
|
|
|
14667
|
+
.muka-avatar--square.muka-avatar--4xs,
|
|
14668
|
+
.muka-avatar--square.muka-avatar--3xs,
|
|
14669
|
+
.muka-avatar--square.muka-avatar--2xs {
|
|
14670
|
+
border-radius: var(--avatar-radius-square-sm);
|
|
14671
|
+
}
|
|
14672
|
+
|
|
14673
|
+
/* 4xs is too small for initials, the fallback icon or a status dot:
|
|
14674
|
+
it shows the picture, or the plain background */
|
|
14675
|
+
.muka-avatar--4xs .muka-avatar__initials,
|
|
14676
|
+
.muka-avatar--4xs .muka-avatar__fallback,
|
|
14677
|
+
.muka-avatar--4xs .muka-avatar__status {
|
|
14678
|
+
display: none;
|
|
14679
|
+
}
|
|
14680
|
+
|
|
14373
14681
|
/* Clickable state */
|
|
14374
14682
|
.muka-avatar--clickable {
|
|
14375
14683
|
cursor: pointer;
|
|
@@ -14473,6 +14781,16 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14473
14781
|
box-sizing: border-box;
|
|
14474
14782
|
}
|
|
14475
14783
|
|
|
14784
|
+
.muka-avatar--3xs .muka-avatar__status {
|
|
14785
|
+
width: var(--avatar-status-size-3xs);
|
|
14786
|
+
height: var(--avatar-status-size-3xs);
|
|
14787
|
+
}
|
|
14788
|
+
|
|
14789
|
+
.muka-avatar--2xs .muka-avatar__status {
|
|
14790
|
+
width: var(--avatar-status-size-2xs);
|
|
14791
|
+
height: var(--avatar-status-size-2xs);
|
|
14792
|
+
}
|
|
14793
|
+
|
|
14476
14794
|
.muka-avatar--xs .muka-avatar__status {
|
|
14477
14795
|
width: var(--avatar-status-size-xs);
|
|
14478
14796
|
height: var(--avatar-status-size-xs);
|
|
@@ -14526,56 +14844,130 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14526
14844
|
background-color: var(--avatar-color-status-away);
|
|
14527
14845
|
}
|
|
14528
14846
|
|
|
14529
|
-
/* Avatar Group */
|
|
14847
|
+
/* Avatar Group (Figma "Avatar Stack") */
|
|
14530
14848
|
.muka-avatar-group {
|
|
14531
14849
|
display: inline-flex;
|
|
14532
14850
|
align-items: center;
|
|
14533
14851
|
flex-direction: row;
|
|
14534
14852
|
}
|
|
14535
14853
|
|
|
14854
|
+
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
14536
14855
|
.muka-avatar-group__item {
|
|
14537
14856
|
position: relative;
|
|
14538
14857
|
display: inline-flex;
|
|
14539
|
-
|
|
14540
|
-
border-radius: inherit;
|
|
14858
|
+
z-index: 0;
|
|
14541
14859
|
}
|
|
14542
14860
|
|
|
14543
|
-
|
|
14544
|
-
|
|
14545
|
-
border-radius: var(--avatar-radius-circle);
|
|
14861
|
+
.muka-avatar-group__item:hover {
|
|
14862
|
+
z-index: 10;
|
|
14546
14863
|
}
|
|
14547
14864
|
|
|
14548
|
-
|
|
14549
|
-
|
|
14865
|
+
/* Grouped avatars get a ring outside their edge, drawn as a shadow so it
|
|
14866
|
+
does not change the avatar's size or the overlap */
|
|
14867
|
+
.muka-avatar-group__item .muka-avatar {
|
|
14868
|
+
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14869
|
+
}
|
|
14870
|
+
|
|
14871
|
+
/* Overlap. Figma specifies exact values for 48 / 32 / 24px avatars (sm / 2xs / 3xs);
|
|
14872
|
+
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14873
|
+
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14874
|
+
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
14875
|
+
.muka-avatar-group--2xs { --muka-avatar-group-size: var(--avatar-size-2xs); }
|
|
14876
|
+
.muka-avatar-group--xs { --muka-avatar-group-size: var(--avatar-size-xs); }
|
|
14877
|
+
.muka-avatar-group--sm { --muka-avatar-group-size: var(--avatar-size-sm); }
|
|
14878
|
+
.muka-avatar-group--md { --muka-avatar-group-size: var(--avatar-size-md); }
|
|
14879
|
+
.muka-avatar-group--lg { --muka-avatar-group-size: var(--avatar-size-lg); }
|
|
14880
|
+
.muka-avatar-group--xl { --muka-avatar-group-size: var(--avatar-size-xl); }
|
|
14881
|
+
|
|
14882
|
+
.muka-avatar-group--tight { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) * 2 / 3); }
|
|
14883
|
+
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14884
|
+
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14885
|
+
|
|
14886
|
+
.muka-avatar-group--tight.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-sm); }
|
|
14887
|
+
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14888
|
+
.muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
|
|
14889
|
+
.muka-avatar-group--compact.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-sm); }
|
|
14890
|
+
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14891
|
+
.muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
|
|
14892
|
+
.muka-avatar-group--spacious.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-sm); }
|
|
14893
|
+
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14894
|
+
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14895
|
+
|
|
14896
|
+
.muka-avatar-group__item:not(:first-child) {
|
|
14897
|
+
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14550
14898
|
}
|
|
14551
14899
|
|
|
14552
|
-
|
|
14900
|
+
/* Overflow avatar styling */
|
|
14901
|
+
.muka-avatar--overflow {
|
|
14902
|
+
background-color: var(--avatar-color-background-default);
|
|
14903
|
+
color: var(--avatar-color-foreground-default);
|
|
14904
|
+
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14905
|
+
}
|
|
14906
|
+
|
|
14907
|
+
|
|
14908
|
+
/* Autocomplete */
|
|
14909
|
+
/* Autocomplete — Figma Input Autocomplete (Input field + single-line suggestion Menu).
|
|
14910
|
+
The field reuses the Input styles (.muka-input*); only the menu wiring lives here. */
|
|
14911
|
+
|
|
14912
|
+
.muka-autocomplete {
|
|
14913
|
+
min-width: 200px;
|
|
14914
|
+
}
|
|
14915
|
+
|
|
14916
|
+
/* Covers the field's outer edge so the menu matches its full width. The menu
|
|
14917
|
+
is only open while focused, when the field has the bold border. */
|
|
14918
|
+
.muka-autocomplete__menu-anchor {
|
|
14919
|
+
position: absolute;
|
|
14920
|
+
inset: calc(-1 * var(--border-width-bold));
|
|
14921
|
+
z-index: 0;
|
|
14922
|
+
margin: 0;
|
|
14923
|
+
padding: 0;
|
|
14553
14924
|
border: none;
|
|
14925
|
+
background: transparent;
|
|
14926
|
+
pointer-events: none;
|
|
14927
|
+
opacity: 0;
|
|
14554
14928
|
}
|
|
14555
14929
|
|
|
14556
|
-
/*
|
|
14557
|
-
.muka-
|
|
14558
|
-
|
|
14930
|
+
/* Keep the field content above the invisible anchor. */
|
|
14931
|
+
.muka-autocomplete__field > :not(.muka-autocomplete__menu-anchor) {
|
|
14932
|
+
position: relative;
|
|
14933
|
+
z-index: 1;
|
|
14559
14934
|
}
|
|
14560
14935
|
|
|
14561
|
-
|
|
14562
|
-
|
|
14936
|
+
/* Figma: the menu is as wide as the field (never below the menu min-width token). */
|
|
14937
|
+
.muka-autocomplete__menu {
|
|
14938
|
+
width: var(--radix-dropdown-menu-trigger-width);
|
|
14939
|
+
max-width: calc(100vw - 2rem);
|
|
14563
14940
|
}
|
|
14564
14941
|
|
|
14565
|
-
/*
|
|
14566
|
-
.muka-
|
|
14567
|
-
|
|
14942
|
+
/* Suggestions are single-line; long labels truncate. */
|
|
14943
|
+
.muka-autocomplete__menu .muka-menu__item-label {
|
|
14944
|
+
overflow: hidden;
|
|
14945
|
+
text-overflow: ellipsis;
|
|
14568
14946
|
}
|
|
14569
14947
|
|
|
14570
|
-
|
|
14571
|
-
|
|
14948
|
+
/* Loading and empty rows: menu-row geometry, not selectable. */
|
|
14949
|
+
.muka-autocomplete__status {
|
|
14950
|
+
display: flex;
|
|
14951
|
+
align-items: center;
|
|
14952
|
+
gap: var(--menu-item-gap);
|
|
14953
|
+
min-height: var(--menu-item-height);
|
|
14954
|
+
padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
|
|
14955
|
+
color: var(--color-text-subtle-default);
|
|
14956
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
14957
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
14958
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
14959
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
14572
14960
|
}
|
|
14573
14961
|
|
|
14574
|
-
|
|
14575
|
-
|
|
14576
|
-
|
|
14577
|
-
|
|
14578
|
-
|
|
14962
|
+
.muka-autocomplete__footer {
|
|
14963
|
+
flex-shrink: 0;
|
|
14964
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
14965
|
+
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
14966
|
+
color: var(--color-text-subtle-default);
|
|
14967
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
14968
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
14969
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
14970
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
14579
14971
|
}
|
|
14580
14972
|
|
|
14581
14973
|
|