@revikornmann/muka-ui 0.12.0 → 0.13.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/build/manifest.json +10 -0
- package/dist/cjs/components/AgentTaskList/AgentTaskList.js +1 -1
- package/dist/cjs/components/BadgeNumber/BadgeNumber.css +105 -0
- package/dist/cjs/components/BadgeNumber/BadgeNumber.js +19 -0
- package/dist/cjs/components/BadgeNumber/BadgeNumber.js.map +1 -0
- package/dist/cjs/components/BadgeNumber/index.js +11 -0
- package/dist/cjs/components/BadgeNumber/index.js.map +1 -0
- package/dist/cjs/components/{ChatBubble/ChatBubble.css → ChatMessage/ChatMessage.css} +133 -105
- package/dist/cjs/components/ChatMessage/ChatMessage.js +141 -0
- package/dist/cjs/components/ChatMessage/ChatMessage.js.map +1 -0
- package/dist/cjs/components/ChatMessage/index.js +7 -0
- package/dist/cjs/components/ChatMessage/index.js.map +1 -0
- package/dist/cjs/components/ChatMessageList/ChatMessageList.js +1 -1
- package/dist/cjs/components/ChatMessageStack/ChatMessageStack.css +51 -0
- package/dist/cjs/components/ChatMessageStack/ChatMessageStack.js +49 -0
- package/dist/cjs/components/ChatMessageStack/ChatMessageStack.js.map +1 -0
- package/dist/cjs/components/ChatMessageStack/index.js +6 -0
- package/dist/cjs/components/ChatMessageStack/index.js.map +1 -0
- package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.css +8 -2
- package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.js +1 -1
- package/dist/cjs/components/Menu/Menu.js +5 -4
- package/dist/cjs/components/Menu/Menu.js.map +1 -1
- package/dist/cjs/components/index.js +9 -5
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/utils/useLongPress.js +71 -0
- package/dist/cjs/utils/useLongPress.js.map +1 -0
- package/dist/esm/components/AgentTaskList/AgentTaskList.js +1 -1
- package/dist/esm/components/BadgeNumber/BadgeNumber.css +105 -0
- package/dist/esm/components/BadgeNumber/BadgeNumber.js +15 -0
- package/dist/esm/components/BadgeNumber/BadgeNumber.js.map +1 -0
- package/dist/esm/components/BadgeNumber/index.js +3 -0
- package/dist/esm/components/BadgeNumber/index.js.map +1 -0
- package/dist/esm/components/{ChatBubble/ChatBubble.css → ChatMessage/ChatMessage.css} +133 -105
- package/dist/esm/components/ChatMessage/ChatMessage.js +137 -0
- package/dist/esm/components/ChatMessage/ChatMessage.js.map +1 -0
- package/dist/esm/components/ChatMessage/index.js +2 -0
- package/dist/esm/components/ChatMessage/index.js.map +1 -0
- package/dist/esm/components/ChatMessageList/ChatMessageList.js +1 -1
- package/dist/esm/components/ChatMessageStack/ChatMessageStack.css +51 -0
- package/dist/esm/components/ChatMessageStack/ChatMessageStack.js +42 -0
- package/dist/esm/components/ChatMessageStack/ChatMessageStack.js.map +1 -0
- package/dist/esm/components/ChatMessageStack/index.js +2 -0
- package/dist/esm/components/ChatMessageStack/index.js.map +1 -0
- package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.css +8 -2
- package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.js +1 -1
- package/dist/esm/components/Menu/Menu.js +5 -4
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/index.js +3 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/utils/useLongPress.js +68 -0
- package/dist/esm/utils/useLongPress.js.map +1 -0
- package/dist/styles/components/BadgeNumber.css +105 -0
- package/dist/styles/components/{ChatBubble.css → ChatMessage.css} +133 -105
- package/dist/styles/components/ChatMessageStack.css +51 -0
- package/dist/styles/components/ChatPhotoGrid.css +8 -2
- package/dist/styles/index.css +1672 -1449
- package/dist/styles/muka-dark.css +1672 -1449
- package/dist/styles/muka-light.css +1672 -1449
- package/dist/styles/tokens-bouwplan-dark.css +32 -5
- package/dist/styles/tokens-bouwplan-light.css +32 -5
- package/dist/styles/tokens-fscl-dark.css +32 -5
- package/dist/styles/tokens-fscl-light.css +32 -5
- package/dist/styles/tokens-grip-dark.css +32 -5
- package/dist/styles/tokens-grip-light.css +32 -5
- package/dist/styles/tokens-muka-dark.css +32 -5
- package/dist/styles/tokens-muka-light.css +32 -5
- package/dist/styles/tokens-wireframe-dark.css +31 -4
- package/dist/styles/tokens-wireframe-light.css +31 -4
- package/dist/styles/wireframe-dark.css +1671 -1448
- package/dist/styles/wireframe-light.css +1671 -1448
- package/dist/types/components/AgentTaskList/AgentTaskList.d.ts +1 -1
- package/dist/types/components/BadgeNumber/BadgeNumber.d.ts +17 -0
- package/dist/types/components/BadgeNumber/BadgeNumber.d.ts.map +1 -0
- package/dist/types/components/BadgeNumber/index.d.ts +3 -0
- package/dist/types/components/BadgeNumber/index.d.ts.map +1 -0
- package/dist/types/components/ChatMessage/ChatMessage.d.ts +130 -0
- package/dist/types/components/ChatMessage/ChatMessage.d.ts.map +1 -0
- package/dist/types/components/ChatMessage/index.d.ts +2 -0
- package/dist/types/components/ChatMessage/index.d.ts.map +1 -0
- package/dist/types/components/ChatMessageList/ChatMessageList.d.ts +2 -2
- package/dist/types/components/ChatMessageList/ChatMessageList.d.ts.map +1 -1
- package/dist/types/components/ChatMessageStack/ChatMessageStack.d.ts +46 -0
- package/dist/types/components/ChatMessageStack/ChatMessageStack.d.ts.map +1 -0
- package/dist/types/components/ChatMessageStack/index.d.ts +2 -0
- package/dist/types/components/ChatMessageStack/index.d.ts.map +1 -0
- package/dist/types/components/ChatPhotoGrid/ChatPhotoGrid.d.ts +1 -1
- package/dist/types/components/Menu/Menu.d.ts +12 -0
- package/dist/types/components/Menu/Menu.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +3 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/utils/useLongPress.d.ts +28 -0
- package/dist/types/utils/useLongPress.d.ts.map +1 -0
- package/package.json +1 -1
- package/tokens/t3-semantics/ui.json +29 -0
- package/tokens/t4-components/badge-number.json +48 -0
- package/tokens/t4-components/chatbubble.json +33 -7
- package/tokens/t4-components/chatphotogrid.json +2 -2
- package/dist/cjs/components/ChatBubble/ChatBubble.js +0 -37
- package/dist/cjs/components/ChatBubble/ChatBubble.js.map +0 -1
- package/dist/cjs/components/ChatBubble/index.js +0 -6
- package/dist/cjs/components/ChatBubble/index.js.map +0 -1
- package/dist/esm/components/ChatBubble/ChatBubble.js +0 -33
- package/dist/esm/components/ChatBubble/ChatBubble.js.map +0 -1
- package/dist/esm/components/ChatBubble/index.js +0 -2
- package/dist/esm/components/ChatBubble/index.js.map +0 -1
- package/dist/types/components/ChatBubble/ChatBubble.d.ts +0 -85
- package/dist/types/components/ChatBubble/ChatBubble.d.ts.map +0 -1
- package/dist/types/components/ChatBubble/index.d.ts +0 -2
- package/dist/types/components/ChatBubble/index.d.ts.map +0 -1
package/dist/styles/index.css
CHANGED
|
@@ -1415,6 +1415,18 @@ body {
|
|
|
1415
1415
|
--text-heading-overline-lineHeight: 1rem;
|
|
1416
1416
|
--text-heading-overline-letterSpacing: 0.025em;
|
|
1417
1417
|
--text-heading-overline-textCase: uppercase;
|
|
1418
|
+
--text-label-xs-regular-fontFamily: Funnel Sans;
|
|
1419
|
+
--text-label-xs-regular-fontWeight: 400;
|
|
1420
|
+
--text-label-xs-regular-fontSize: 0.75rem;
|
|
1421
|
+
--text-label-xs-regular-lineHeight: 0.75rem;
|
|
1422
|
+
--text-label-xs-semibold-fontFamily: Funnel Sans;
|
|
1423
|
+
--text-label-xs-semibold-fontWeight: 600;
|
|
1424
|
+
--text-label-xs-semibold-fontSize: 0.75rem;
|
|
1425
|
+
--text-label-xs-semibold-lineHeight: 0.75rem;
|
|
1426
|
+
--text-label-xs-bold-fontFamily: Funnel Sans;
|
|
1427
|
+
--text-label-xs-bold-fontWeight: 700;
|
|
1428
|
+
--text-label-xs-bold-fontSize: 0.75rem;
|
|
1429
|
+
--text-label-xs-bold-lineHeight: 0.75rem;
|
|
1418
1430
|
--text-label-sm-regular-fontFamily: Funnel Sans;
|
|
1419
1431
|
--text-label-sm-regular-fontWeight: 400;
|
|
1420
1432
|
--text-label-sm-regular-fontSize: 0.875rem;
|
|
@@ -1684,11 +1696,14 @@ body {
|
|
|
1684
1696
|
--card-border-selected: 0.125rem solid #3e63dd;
|
|
1685
1697
|
--chatbubble-max-width: 640px;
|
|
1686
1698
|
--chatbubble-radius: 0.75rem;
|
|
1687
|
-
--chatbubble-padding:
|
|
1699
|
+
--chatbubble-padding-block: 0.75rem;
|
|
1700
|
+
--chatbubble-padding-inline: 1rem;
|
|
1688
1701
|
--chatbubble-gap: 0.25rem;
|
|
1689
|
-
--chatbubble-body-gap: 1.5rem;
|
|
1690
1702
|
--chatbubble-row-gap: 0.75rem;
|
|
1703
|
+
--chatbubble-row-gap-compact: 0.5rem;
|
|
1704
|
+
--chatbubble-stack-gap: 0.75rem;
|
|
1691
1705
|
--chatbubble-avatar-size: 3rem;
|
|
1706
|
+
--chatbubble-avatar-size-compact: 2rem;
|
|
1692
1707
|
--chatbubble-color-own-background: #ddf9f2;
|
|
1693
1708
|
--chatbubble-color-own-border: #b3ecde;
|
|
1694
1709
|
--chatbubble-color-own-foreground: #211f26;
|
|
@@ -1699,7 +1714,9 @@ body {
|
|
|
1699
1714
|
--chatbubble-color-agent-border: #fbe577;
|
|
1700
1715
|
--chatbubble-color-agent-foreground: #211f26;
|
|
1701
1716
|
--chatbubble-color-timestamp: #65636d;
|
|
1702
|
-
--chatbubble-embed-padding: 0.75rem;
|
|
1717
|
+
--chatbubble-embed-padding-block: 0.75rem;
|
|
1718
|
+
--chatbubble-embed-padding-inline: 1rem;
|
|
1719
|
+
--chatbubble-embed-margin-block: 0.75rem;
|
|
1703
1720
|
--chatbubble-embed-gap: 0.5rem;
|
|
1704
1721
|
--chatbubble-embed-radius: 0.75rem;
|
|
1705
1722
|
--chatbubble-embed-color-own-background: #f2fbf9;
|
|
@@ -1712,8 +1729,8 @@ body {
|
|
|
1712
1729
|
--chatbubble-embed-color-agent-border: #fbe577;
|
|
1713
1730
|
--chatbubble-embed-color-agent-foreground: #211f26;
|
|
1714
1731
|
--chatbubble-action-stack-gap: 0.75rem;
|
|
1715
|
-
--chatphotogrid-gap: 0.
|
|
1716
|
-
--chatphotogrid-radius: 0.
|
|
1732
|
+
--chatphotogrid-gap: 0.25rem;
|
|
1733
|
+
--chatphotogrid-radius: 0.375rem;
|
|
1717
1734
|
--chatphotogrid-color-placeholder: #f2eff3;
|
|
1718
1735
|
--chatphotogrid-color-overflow-background: rgba(0, 0, 0, 0.565);
|
|
1719
1736
|
--chatphotogrid-color-overflow-foreground: #fdfcfd;
|
|
@@ -2127,6 +2144,16 @@ body {
|
|
|
2127
2144
|
--badge-padding-leading-sm: 0.5rem;
|
|
2128
2145
|
--badge-padding-leading-md: 0.75rem;
|
|
2129
2146
|
--badge-padding-leading-lg: 0.75rem;
|
|
2147
|
+
--badge-number-size-2xs: 1rem;
|
|
2148
|
+
--badge-number-size-xs: 1.25rem;
|
|
2149
|
+
--badge-number-size-sm: 1.5rem;
|
|
2150
|
+
--badge-number-size-md: 2rem;
|
|
2151
|
+
--badge-number-size-lg: 2.5rem;
|
|
2152
|
+
--badge-number-padding-2xs: 0.25rem;
|
|
2153
|
+
--badge-number-padding-xs: 0.375rem;
|
|
2154
|
+
--badge-number-padding-sm: 0.5rem;
|
|
2155
|
+
--badge-number-padding-md: 0.5rem;
|
|
2156
|
+
--badge-number-padding-lg: 0.75rem;
|
|
2130
2157
|
--table-cell-padding-x-sm: 0.5rem;
|
|
2131
2158
|
--table-cell-padding-x-md: 0.75rem;
|
|
2132
2159
|
--table-cell-padding-x-lg: 1rem;
|
|
@@ -2893,196 +2920,6 @@ body {
|
|
|
2893
2920
|
}
|
|
2894
2921
|
|
|
2895
2922
|
|
|
2896
|
-
/* Toast */
|
|
2897
|
-
/* Toast Component Styles - Using Muka Design Tokens */
|
|
2898
|
-
|
|
2899
|
-
.muka-toast {
|
|
2900
|
-
display: flex;
|
|
2901
|
-
align-items: flex-start;
|
|
2902
|
-
gap: var(--toast-gap);
|
|
2903
|
-
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
2904
|
-
border-radius: var(--toast-radius);
|
|
2905
|
-
box-shadow: var(--toast-shadow);
|
|
2906
|
-
min-width: var(--toast-width-min);
|
|
2907
|
-
max-width: var(--toast-width-max);
|
|
2908
|
-
pointer-events: auto;
|
|
2909
|
-
animation: muka-toast-slide-in 0.2s ease-out;
|
|
2910
|
-
}
|
|
2911
|
-
|
|
2912
|
-
/* Entry animation */
|
|
2913
|
-
@keyframes muka-toast-slide-in {
|
|
2914
|
-
from {
|
|
2915
|
-
opacity: 0;
|
|
2916
|
-
transform: translateY(8px);
|
|
2917
|
-
}
|
|
2918
|
-
to {
|
|
2919
|
-
opacity: 1;
|
|
2920
|
-
transform: translateY(0);
|
|
2921
|
-
}
|
|
2922
|
-
}
|
|
2923
|
-
|
|
2924
|
-
/* Position variants (for standalone use - typically managed by ToastProvider) */
|
|
2925
|
-
.muka-toast--top-right,
|
|
2926
|
-
.muka-toast--top-left,
|
|
2927
|
-
.muka-toast--top-center,
|
|
2928
|
-
.muka-toast--bottom-right,
|
|
2929
|
-
.muka-toast--bottom-left,
|
|
2930
|
-
.muka-toast--bottom-center {
|
|
2931
|
-
position: fixed;
|
|
2932
|
-
z-index: 9999;
|
|
2933
|
-
}
|
|
2934
|
-
|
|
2935
|
-
.muka-toast--top-right {
|
|
2936
|
-
top: var(--spacing-4);
|
|
2937
|
-
right: var(--spacing-4);
|
|
2938
|
-
}
|
|
2939
|
-
|
|
2940
|
-
.muka-toast--top-left {
|
|
2941
|
-
top: var(--spacing-4);
|
|
2942
|
-
left: var(--spacing-4);
|
|
2943
|
-
}
|
|
2944
|
-
|
|
2945
|
-
.muka-toast--top-center {
|
|
2946
|
-
top: var(--spacing-4);
|
|
2947
|
-
left: 50%;
|
|
2948
|
-
transform: translateX(-50%);
|
|
2949
|
-
}
|
|
2950
|
-
|
|
2951
|
-
.muka-toast--bottom-right {
|
|
2952
|
-
bottom: var(--spacing-4);
|
|
2953
|
-
right: var(--spacing-4);
|
|
2954
|
-
}
|
|
2955
|
-
|
|
2956
|
-
.muka-toast--bottom-left {
|
|
2957
|
-
bottom: var(--spacing-4);
|
|
2958
|
-
left: var(--spacing-4);
|
|
2959
|
-
}
|
|
2960
|
-
|
|
2961
|
-
.muka-toast--bottom-center {
|
|
2962
|
-
bottom: var(--spacing-4);
|
|
2963
|
-
left: 50%;
|
|
2964
|
-
transform: translateX(-50%);
|
|
2965
|
-
}
|
|
2966
|
-
|
|
2967
|
-
/* Variant: Info */
|
|
2968
|
-
.muka-toast--info {
|
|
2969
|
-
background-color: var(--toast-color-info-background);
|
|
2970
|
-
color: var(--toast-color-info-foreground);
|
|
2971
|
-
}
|
|
2972
|
-
|
|
2973
|
-
.muka-toast--info .muka-toast__icon {
|
|
2974
|
-
color: var(--toast-color-info-accent);
|
|
2975
|
-
}
|
|
2976
|
-
|
|
2977
|
-
/* Variant: Success */
|
|
2978
|
-
.muka-toast--success {
|
|
2979
|
-
background-color: var(--toast-color-success-background);
|
|
2980
|
-
color: var(--toast-color-success-foreground);
|
|
2981
|
-
}
|
|
2982
|
-
|
|
2983
|
-
.muka-toast--success .muka-toast__icon {
|
|
2984
|
-
color: var(--toast-color-success-accent);
|
|
2985
|
-
}
|
|
2986
|
-
|
|
2987
|
-
/* Variant: Warning */
|
|
2988
|
-
.muka-toast--warning {
|
|
2989
|
-
background-color: var(--toast-color-warning-background);
|
|
2990
|
-
color: var(--toast-color-warning-foreground);
|
|
2991
|
-
}
|
|
2992
|
-
|
|
2993
|
-
.muka-toast--warning .muka-toast__icon {
|
|
2994
|
-
color: var(--toast-color-warning-accent);
|
|
2995
|
-
}
|
|
2996
|
-
|
|
2997
|
-
/* Variant: Error */
|
|
2998
|
-
.muka-toast--error {
|
|
2999
|
-
background-color: var(--toast-color-error-background);
|
|
3000
|
-
color: var(--toast-color-error-foreground);
|
|
3001
|
-
}
|
|
3002
|
-
|
|
3003
|
-
.muka-toast--error .muka-toast__icon {
|
|
3004
|
-
color: var(--toast-color-error-accent);
|
|
3005
|
-
}
|
|
3006
|
-
|
|
3007
|
-
/* Icon */
|
|
3008
|
-
.muka-toast__icon {
|
|
3009
|
-
display: flex;
|
|
3010
|
-
align-items: center;
|
|
3011
|
-
justify-content: center;
|
|
3012
|
-
flex-shrink: 0;
|
|
3013
|
-
width: var(--toast-icon-size);
|
|
3014
|
-
height: var(--toast-icon-size);
|
|
3015
|
-
}
|
|
3016
|
-
|
|
3017
|
-
.muka-toast__icon svg {
|
|
3018
|
-
width: 100%;
|
|
3019
|
-
height: 100%;
|
|
3020
|
-
}
|
|
3021
|
-
|
|
3022
|
-
/* Content */
|
|
3023
|
-
.muka-toast__content {
|
|
3024
|
-
flex: 1;
|
|
3025
|
-
min-width: 0;
|
|
3026
|
-
}
|
|
3027
|
-
|
|
3028
|
-
.muka-toast__title {
|
|
3029
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3030
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3031
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
3032
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3033
|
-
margin-bottom: var(--spacing-1);
|
|
3034
|
-
}
|
|
3035
|
-
|
|
3036
|
-
.muka-toast__message {
|
|
3037
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3038
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3039
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3040
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3041
|
-
}
|
|
3042
|
-
|
|
3043
|
-
/* Action slot */
|
|
3044
|
-
.muka-toast__action {
|
|
3045
|
-
display: flex;
|
|
3046
|
-
align-items: center;
|
|
3047
|
-
flex-shrink: 0;
|
|
3048
|
-
}
|
|
3049
|
-
|
|
3050
|
-
/* Dismiss button */
|
|
3051
|
-
.muka-toast__dismiss {
|
|
3052
|
-
display: flex;
|
|
3053
|
-
align-items: center;
|
|
3054
|
-
justify-content: center;
|
|
3055
|
-
flex-shrink: 0;
|
|
3056
|
-
width: 24px;
|
|
3057
|
-
height: 24px;
|
|
3058
|
-
padding: 0;
|
|
3059
|
-
margin: -2px -4px -2px 0;
|
|
3060
|
-
border: none;
|
|
3061
|
-
background: transparent;
|
|
3062
|
-
color: inherit;
|
|
3063
|
-
opacity: 0.7;
|
|
3064
|
-
cursor: pointer;
|
|
3065
|
-
border-radius: var(--border-radius-sm);
|
|
3066
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3067
|
-
}
|
|
3068
|
-
|
|
3069
|
-
.muka-toast__dismiss:hover {
|
|
3070
|
-
opacity: 1;
|
|
3071
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
3072
|
-
}
|
|
3073
|
-
|
|
3074
|
-
.muka-toast__dismiss:focus-visible {
|
|
3075
|
-
outline: 2px solid var(--color-border-focus);
|
|
3076
|
-
outline-offset: 2px;
|
|
3077
|
-
opacity: 1;
|
|
3078
|
-
}
|
|
3079
|
-
|
|
3080
|
-
.muka-toast__dismiss svg {
|
|
3081
|
-
width: 16px;
|
|
3082
|
-
height: 16px;
|
|
3083
|
-
}
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
2923
|
/* Tile */
|
|
3087
2924
|
/* Tile Component Styles - Using Muka Design Tokens */
|
|
3088
2925
|
|
|
@@ -3444,45 +3281,235 @@ body {
|
|
|
3444
3281
|
}
|
|
3445
3282
|
|
|
3446
3283
|
|
|
3447
|
-
/*
|
|
3448
|
-
/*
|
|
3284
|
+
/* Toast */
|
|
3285
|
+
/* Toast Component Styles - Using Muka Design Tokens */
|
|
3449
3286
|
|
|
3450
|
-
.muka-
|
|
3451
|
-
|
|
3452
|
-
|
|
3287
|
+
.muka-toast {
|
|
3288
|
+
display: flex;
|
|
3289
|
+
align-items: flex-start;
|
|
3290
|
+
gap: var(--toast-gap);
|
|
3291
|
+
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
3292
|
+
border-radius: var(--toast-radius);
|
|
3293
|
+
box-shadow: var(--toast-shadow);
|
|
3294
|
+
min-width: var(--toast-width-min);
|
|
3295
|
+
max-width: var(--toast-width-max);
|
|
3296
|
+
pointer-events: auto;
|
|
3297
|
+
animation: muka-toast-slide-in 0.2s ease-out;
|
|
3453
3298
|
}
|
|
3454
3299
|
|
|
3455
|
-
/*
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3300
|
+
/* Entry animation */
|
|
3301
|
+
@keyframes muka-toast-slide-in {
|
|
3302
|
+
from {
|
|
3303
|
+
opacity: 0;
|
|
3304
|
+
transform: translateY(8px);
|
|
3305
|
+
}
|
|
3306
|
+
to {
|
|
3307
|
+
opacity: 1;
|
|
3308
|
+
transform: translateY(0);
|
|
3309
|
+
}
|
|
3465
3310
|
}
|
|
3466
3311
|
|
|
3467
|
-
/*
|
|
3468
|
-
.muka-
|
|
3469
|
-
|
|
3470
|
-
|
|
3312
|
+
/* Position variants (for standalone use - typically managed by ToastProvider) */
|
|
3313
|
+
.muka-toast--top-right,
|
|
3314
|
+
.muka-toast--top-left,
|
|
3315
|
+
.muka-toast--top-center,
|
|
3316
|
+
.muka-toast--bottom-right,
|
|
3317
|
+
.muka-toast--bottom-left,
|
|
3318
|
+
.muka-toast--bottom-center {
|
|
3319
|
+
position: fixed;
|
|
3320
|
+
z-index: 9999;
|
|
3471
3321
|
}
|
|
3472
3322
|
|
|
3473
|
-
.muka-
|
|
3474
|
-
|
|
3475
|
-
|
|
3323
|
+
.muka-toast--top-right {
|
|
3324
|
+
top: var(--spacing-4);
|
|
3325
|
+
right: var(--spacing-4);
|
|
3476
3326
|
}
|
|
3477
3327
|
|
|
3478
|
-
.muka-
|
|
3479
|
-
|
|
3480
|
-
|
|
3328
|
+
.muka-toast--top-left {
|
|
3329
|
+
top: var(--spacing-4);
|
|
3330
|
+
left: var(--spacing-4);
|
|
3481
3331
|
}
|
|
3482
3332
|
|
|
3483
|
-
.muka-
|
|
3484
|
-
|
|
3485
|
-
|
|
3333
|
+
.muka-toast--top-center {
|
|
3334
|
+
top: var(--spacing-4);
|
|
3335
|
+
left: 50%;
|
|
3336
|
+
transform: translateX(-50%);
|
|
3337
|
+
}
|
|
3338
|
+
|
|
3339
|
+
.muka-toast--bottom-right {
|
|
3340
|
+
bottom: var(--spacing-4);
|
|
3341
|
+
right: var(--spacing-4);
|
|
3342
|
+
}
|
|
3343
|
+
|
|
3344
|
+
.muka-toast--bottom-left {
|
|
3345
|
+
bottom: var(--spacing-4);
|
|
3346
|
+
left: var(--spacing-4);
|
|
3347
|
+
}
|
|
3348
|
+
|
|
3349
|
+
.muka-toast--bottom-center {
|
|
3350
|
+
bottom: var(--spacing-4);
|
|
3351
|
+
left: 50%;
|
|
3352
|
+
transform: translateX(-50%);
|
|
3353
|
+
}
|
|
3354
|
+
|
|
3355
|
+
/* Variant: Info */
|
|
3356
|
+
.muka-toast--info {
|
|
3357
|
+
background-color: var(--toast-color-info-background);
|
|
3358
|
+
color: var(--toast-color-info-foreground);
|
|
3359
|
+
}
|
|
3360
|
+
|
|
3361
|
+
.muka-toast--info .muka-toast__icon {
|
|
3362
|
+
color: var(--toast-color-info-accent);
|
|
3363
|
+
}
|
|
3364
|
+
|
|
3365
|
+
/* Variant: Success */
|
|
3366
|
+
.muka-toast--success {
|
|
3367
|
+
background-color: var(--toast-color-success-background);
|
|
3368
|
+
color: var(--toast-color-success-foreground);
|
|
3369
|
+
}
|
|
3370
|
+
|
|
3371
|
+
.muka-toast--success .muka-toast__icon {
|
|
3372
|
+
color: var(--toast-color-success-accent);
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
/* Variant: Warning */
|
|
3376
|
+
.muka-toast--warning {
|
|
3377
|
+
background-color: var(--toast-color-warning-background);
|
|
3378
|
+
color: var(--toast-color-warning-foreground);
|
|
3379
|
+
}
|
|
3380
|
+
|
|
3381
|
+
.muka-toast--warning .muka-toast__icon {
|
|
3382
|
+
color: var(--toast-color-warning-accent);
|
|
3383
|
+
}
|
|
3384
|
+
|
|
3385
|
+
/* Variant: Error */
|
|
3386
|
+
.muka-toast--error {
|
|
3387
|
+
background-color: var(--toast-color-error-background);
|
|
3388
|
+
color: var(--toast-color-error-foreground);
|
|
3389
|
+
}
|
|
3390
|
+
|
|
3391
|
+
.muka-toast--error .muka-toast__icon {
|
|
3392
|
+
color: var(--toast-color-error-accent);
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
/* Icon */
|
|
3396
|
+
.muka-toast__icon {
|
|
3397
|
+
display: flex;
|
|
3398
|
+
align-items: center;
|
|
3399
|
+
justify-content: center;
|
|
3400
|
+
flex-shrink: 0;
|
|
3401
|
+
width: var(--toast-icon-size);
|
|
3402
|
+
height: var(--toast-icon-size);
|
|
3403
|
+
}
|
|
3404
|
+
|
|
3405
|
+
.muka-toast__icon svg {
|
|
3406
|
+
width: 100%;
|
|
3407
|
+
height: 100%;
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
/* Content */
|
|
3411
|
+
.muka-toast__content {
|
|
3412
|
+
flex: 1;
|
|
3413
|
+
min-width: 0;
|
|
3414
|
+
}
|
|
3415
|
+
|
|
3416
|
+
.muka-toast__title {
|
|
3417
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3418
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3419
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
3420
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3421
|
+
margin-bottom: var(--spacing-1);
|
|
3422
|
+
}
|
|
3423
|
+
|
|
3424
|
+
.muka-toast__message {
|
|
3425
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3426
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3427
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
3428
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3429
|
+
}
|
|
3430
|
+
|
|
3431
|
+
/* Action slot */
|
|
3432
|
+
.muka-toast__action {
|
|
3433
|
+
display: flex;
|
|
3434
|
+
align-items: center;
|
|
3435
|
+
flex-shrink: 0;
|
|
3436
|
+
}
|
|
3437
|
+
|
|
3438
|
+
/* Dismiss button */
|
|
3439
|
+
.muka-toast__dismiss {
|
|
3440
|
+
display: flex;
|
|
3441
|
+
align-items: center;
|
|
3442
|
+
justify-content: center;
|
|
3443
|
+
flex-shrink: 0;
|
|
3444
|
+
width: 24px;
|
|
3445
|
+
height: 24px;
|
|
3446
|
+
padding: 0;
|
|
3447
|
+
margin: -2px -4px -2px 0;
|
|
3448
|
+
border: none;
|
|
3449
|
+
background: transparent;
|
|
3450
|
+
color: inherit;
|
|
3451
|
+
opacity: 0.7;
|
|
3452
|
+
cursor: pointer;
|
|
3453
|
+
border-radius: var(--border-radius-sm);
|
|
3454
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3455
|
+
}
|
|
3456
|
+
|
|
3457
|
+
.muka-toast__dismiss:hover {
|
|
3458
|
+
opacity: 1;
|
|
3459
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
3460
|
+
}
|
|
3461
|
+
|
|
3462
|
+
.muka-toast__dismiss:focus-visible {
|
|
3463
|
+
outline: 2px solid var(--color-border-focus);
|
|
3464
|
+
outline-offset: 2px;
|
|
3465
|
+
opacity: 1;
|
|
3466
|
+
}
|
|
3467
|
+
|
|
3468
|
+
.muka-toast__dismiss svg {
|
|
3469
|
+
width: 16px;
|
|
3470
|
+
height: 16px;
|
|
3471
|
+
}
|
|
3472
|
+
|
|
3473
|
+
|
|
3474
|
+
/* Thumbnail */
|
|
3475
|
+
/* Thumbnail Component Styles - Using Muka Design Tokens */
|
|
3476
|
+
|
|
3477
|
+
.muka-thumbnail {
|
|
3478
|
+
position: relative;
|
|
3479
|
+
flex-shrink: 0;
|
|
3480
|
+
}
|
|
3481
|
+
|
|
3482
|
+
/* The frame carries the border, background and shape clip. Keeping it separate
|
|
3483
|
+
from the root lets the remove (×) button sit outside the clip (needed for the
|
|
3484
|
+
circular/ellipse shape, whose corners would otherwise clip the button). */
|
|
3485
|
+
.muka-thumbnail__frame {
|
|
3486
|
+
position: absolute;
|
|
3487
|
+
inset: 0;
|
|
3488
|
+
overflow: hidden;
|
|
3489
|
+
border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
|
|
3490
|
+
border-radius: var(--border-radius-lg);
|
|
3491
|
+
background-color: var(--color-surface-level1);
|
|
3492
|
+
}
|
|
3493
|
+
|
|
3494
|
+
/* ─── Shapes ──────────────────────────────────────────── */
|
|
3495
|
+
.muka-thumbnail--4-3 {
|
|
3496
|
+
width: 160px;
|
|
3497
|
+
height: 120px;
|
|
3498
|
+
}
|
|
3499
|
+
|
|
3500
|
+
.muka-thumbnail--1-1 {
|
|
3501
|
+
width: 120px;
|
|
3502
|
+
height: 120px;
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
.muka-thumbnail--ellipse {
|
|
3506
|
+
width: 120px;
|
|
3507
|
+
height: 120px;
|
|
3508
|
+
}
|
|
3509
|
+
|
|
3510
|
+
.muka-thumbnail--ellipse .muka-thumbnail__frame {
|
|
3511
|
+
border-radius: var(--border-radius-full);
|
|
3512
|
+
}
|
|
3486
3513
|
|
|
3487
3514
|
/* Image fills the frame, cropped to cover. Sits at scale(1) by default so the
|
|
3488
3515
|
interactive hover zoom has a clean origin. */
|
|
@@ -7147,34 +7174,6 @@ body {
|
|
|
7147
7174
|
}
|
|
7148
7175
|
|
|
7149
7176
|
|
|
7150
|
-
/* NavigationTransition */
|
|
7151
|
-
/* NavigationTransition Component Styles */
|
|
7152
|
-
|
|
7153
|
-
/* ─── Wrapper ────────────────────────────────────────── */
|
|
7154
|
-
|
|
7155
|
-
.muka-nav-transition {
|
|
7156
|
-
position: relative;
|
|
7157
|
-
height: 100vh;
|
|
7158
|
-
overflow: hidden;
|
|
7159
|
-
}
|
|
7160
|
-
|
|
7161
|
-
/* Disable interaction during animation */
|
|
7162
|
-
.muka-nav-transition--active {
|
|
7163
|
-
pointer-events: none;
|
|
7164
|
-
}
|
|
7165
|
-
|
|
7166
|
-
/* ─── View slots ─────────────────────────────────────── */
|
|
7167
|
-
|
|
7168
|
-
.muka-nav-transition--active .muka-nav-transition__view {
|
|
7169
|
-
position: absolute;
|
|
7170
|
-
inset: 0;
|
|
7171
|
-
}
|
|
7172
|
-
|
|
7173
|
-
/* Z-index layering */
|
|
7174
|
-
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
7175
|
-
.muka-nav-transition__view--top { z-index: 2; }
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
7177
|
/* NumberInput */
|
|
7179
7178
|
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7180
7179
|
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
@@ -7205,6 +7204,34 @@ body {
|
|
|
7205
7204
|
}
|
|
7206
7205
|
|
|
7207
7206
|
|
|
7207
|
+
/* NavigationTransition */
|
|
7208
|
+
/* NavigationTransition Component Styles */
|
|
7209
|
+
|
|
7210
|
+
/* ─── Wrapper ────────────────────────────────────────── */
|
|
7211
|
+
|
|
7212
|
+
.muka-nav-transition {
|
|
7213
|
+
position: relative;
|
|
7214
|
+
height: 100vh;
|
|
7215
|
+
overflow: hidden;
|
|
7216
|
+
}
|
|
7217
|
+
|
|
7218
|
+
/* Disable interaction during animation */
|
|
7219
|
+
.muka-nav-transition--active {
|
|
7220
|
+
pointer-events: none;
|
|
7221
|
+
}
|
|
7222
|
+
|
|
7223
|
+
/* ─── View slots ─────────────────────────────────────── */
|
|
7224
|
+
|
|
7225
|
+
.muka-nav-transition--active .muka-nav-transition__view {
|
|
7226
|
+
position: absolute;
|
|
7227
|
+
inset: 0;
|
|
7228
|
+
}
|
|
7229
|
+
|
|
7230
|
+
/* Z-index layering */
|
|
7231
|
+
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
7232
|
+
.muka-nav-transition__view--top { z-index: 2; }
|
|
7233
|
+
|
|
7234
|
+
|
|
7208
7235
|
/* Menu */
|
|
7209
7236
|
/* Menu Component Styles */
|
|
7210
7237
|
|
|
@@ -8750,22 +8777,178 @@ li.muka-listitem {
|
|
|
8750
8777
|
}
|
|
8751
8778
|
|
|
8752
8779
|
|
|
8753
|
-
/*
|
|
8754
|
-
/*
|
|
8780
|
+
/* Drawer */
|
|
8781
|
+
/* Drawer Component Styles */
|
|
8755
8782
|
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
overflow: hidden;
|
|
8762
|
-
position: relative;
|
|
8783
|
+
/* Size tokens (local to Drawer) */
|
|
8784
|
+
.muka-drawer {
|
|
8785
|
+
--drawer-width-sm: 18rem;
|
|
8786
|
+
--drawer-width-md: 26rem;
|
|
8787
|
+
--drawer-width-lg: 36rem;
|
|
8763
8788
|
}
|
|
8764
8789
|
|
|
8765
|
-
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8790
|
+
/* Reset native dialog */
|
|
8791
|
+
.muka-drawer {
|
|
8792
|
+
border: none;
|
|
8793
|
+
padding: 0;
|
|
8794
|
+
max-width: none;
|
|
8795
|
+
max-height: none;
|
|
8796
|
+
background: transparent;
|
|
8797
|
+
overflow: visible;
|
|
8798
|
+
}
|
|
8799
|
+
|
|
8800
|
+
/* Backdrop */
|
|
8801
|
+
.muka-drawer::backdrop {
|
|
8802
|
+
background-color: var(--color-surface-backdrop);
|
|
8803
|
+
opacity: 0;
|
|
8804
|
+
transition: opacity 200ms ease;
|
|
8805
|
+
}
|
|
8806
|
+
|
|
8807
|
+
.muka-drawer--slide-in::backdrop {
|
|
8808
|
+
opacity: 1;
|
|
8809
|
+
}
|
|
8810
|
+
|
|
8811
|
+
/* Surface */
|
|
8812
|
+
.muka-drawer__surface {
|
|
8813
|
+
display: flex;
|
|
8814
|
+
flex-direction: column;
|
|
8815
|
+
background-color: var(--color-surface-level3);
|
|
8816
|
+
box-shadow: var(--shadow-level5);
|
|
8817
|
+
height: 100%;
|
|
8818
|
+
overflow: hidden;
|
|
8819
|
+
position: fixed;
|
|
8820
|
+
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
8821
|
+
}
|
|
8822
|
+
|
|
8823
|
+
/* Side positioning + initial transforms */
|
|
8824
|
+
.muka-drawer--right .muka-drawer__surface {
|
|
8825
|
+
top: 0;
|
|
8826
|
+
right: 0;
|
|
8827
|
+
bottom: 0;
|
|
8828
|
+
border-radius: var(--radius-lg) 0 0 var(--radius-lg);
|
|
8829
|
+
transform: translateX(100%);
|
|
8830
|
+
}
|
|
8831
|
+
|
|
8832
|
+
.muka-drawer--left .muka-drawer__surface {
|
|
8833
|
+
top: 0;
|
|
8834
|
+
left: 0;
|
|
8835
|
+
bottom: 0;
|
|
8836
|
+
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
8837
|
+
transform: translateX(-100%);
|
|
8838
|
+
}
|
|
8839
|
+
|
|
8840
|
+
.muka-drawer--bottom .muka-drawer__surface {
|
|
8841
|
+
left: 0;
|
|
8842
|
+
right: 0;
|
|
8843
|
+
bottom: 0;
|
|
8844
|
+
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
8845
|
+
transform: translateY(100%);
|
|
8846
|
+
}
|
|
8847
|
+
|
|
8848
|
+
.muka-drawer--top .muka-drawer__surface {
|
|
8849
|
+
left: 0;
|
|
8850
|
+
right: 0;
|
|
8851
|
+
top: 0;
|
|
8852
|
+
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
8853
|
+
transform: translateY(-100%);
|
|
8854
|
+
}
|
|
8855
|
+
|
|
8856
|
+
/* Slide-in state */
|
|
8857
|
+
.muka-drawer--slide-in .muka-drawer__surface {
|
|
8858
|
+
transform: translate(0, 0);
|
|
8859
|
+
}
|
|
8860
|
+
|
|
8861
|
+
/* Width sizes (left/right) */
|
|
8862
|
+
.muka-drawer--right .muka-drawer__surface,
|
|
8863
|
+
.muka-drawer--left .muka-drawer__surface {
|
|
8864
|
+
width: var(--drawer-width-md);
|
|
8865
|
+
}
|
|
8866
|
+
|
|
8867
|
+
.muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
|
|
8868
|
+
.muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
|
|
8869
|
+
width: var(--drawer-width-sm);
|
|
8870
|
+
}
|
|
8871
|
+
|
|
8872
|
+
.muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
|
|
8873
|
+
.muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
|
|
8874
|
+
width: var(--drawer-width-lg);
|
|
8875
|
+
}
|
|
8876
|
+
|
|
8877
|
+
.muka-drawer--full.muka-drawer--right .muka-drawer__surface,
|
|
8878
|
+
.muka-drawer--full.muka-drawer--left .muka-drawer__surface {
|
|
8879
|
+
width: 100%;
|
|
8880
|
+
}
|
|
8881
|
+
|
|
8882
|
+
/* Height sizes (top/bottom) */
|
|
8883
|
+
.muka-drawer--top .muka-drawer__surface,
|
|
8884
|
+
.muka-drawer--bottom .muka-drawer__surface {
|
|
8885
|
+
height: auto;
|
|
8886
|
+
max-height: 80vh;
|
|
8887
|
+
}
|
|
8888
|
+
|
|
8889
|
+
.muka-drawer--full.muka-drawer--top .muka-drawer__surface,
|
|
8890
|
+
.muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
|
|
8891
|
+
max-height: 100vh;
|
|
8892
|
+
}
|
|
8893
|
+
|
|
8894
|
+
/* Header */
|
|
8895
|
+
.muka-drawer__header {
|
|
8896
|
+
display: flex;
|
|
8897
|
+
align-items: center;
|
|
8898
|
+
gap: var(--spacing-3);
|
|
8899
|
+
padding: var(--spacing-4);
|
|
8900
|
+
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
8901
|
+
flex-shrink: 0;
|
|
8902
|
+
}
|
|
8903
|
+
|
|
8904
|
+
.muka-drawer__title {
|
|
8905
|
+
flex: 1;
|
|
8906
|
+
margin: 0;
|
|
8907
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
8908
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
8909
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
8910
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
8911
|
+
color: var(--color-text-default-default);
|
|
8912
|
+
}
|
|
8913
|
+
|
|
8914
|
+
.muka-drawer__leading,
|
|
8915
|
+
.muka-drawer__trailing {
|
|
8916
|
+
display: flex;
|
|
8917
|
+
align-items: center;
|
|
8918
|
+
flex-shrink: 0;
|
|
8919
|
+
}
|
|
8920
|
+
|
|
8921
|
+
/* Body */
|
|
8922
|
+
.muka-drawer__body {
|
|
8923
|
+
flex: 1;
|
|
8924
|
+
overflow-y: auto;
|
|
8925
|
+
padding: var(--spacing-4);
|
|
8926
|
+
}
|
|
8927
|
+
|
|
8928
|
+
/* Footer */
|
|
8929
|
+
.muka-drawer__footer {
|
|
8930
|
+
padding: var(--spacing-4);
|
|
8931
|
+
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
8932
|
+
flex-shrink: 0;
|
|
8933
|
+
}
|
|
8934
|
+
|
|
8935
|
+
|
|
8936
|
+
/* DocumentViewer */
|
|
8937
|
+
/* DocumentViewer Component Styles - Using Muka Design Tokens */
|
|
8938
|
+
|
|
8939
|
+
.muka-documentviewer {
|
|
8940
|
+
display: flex;
|
|
8941
|
+
flex-direction: column;
|
|
8942
|
+
background-color: var(--documentviewer-container-background);
|
|
8943
|
+
border-radius: var(--documentviewer-container-borderRadius);
|
|
8944
|
+
overflow: hidden;
|
|
8945
|
+
position: relative;
|
|
8946
|
+
}
|
|
8947
|
+
|
|
8948
|
+
.muka-documentviewer--fullscreen {
|
|
8949
|
+
position: fixed;
|
|
8950
|
+
top: 0;
|
|
8951
|
+
left: 0;
|
|
8769
8952
|
right: 0;
|
|
8770
8953
|
bottom: 0;
|
|
8771
8954
|
width: 100vw;
|
|
@@ -9029,212 +9212,83 @@ li.muka-listitem {
|
|
|
9029
9212
|
}
|
|
9030
9213
|
|
|
9031
9214
|
|
|
9032
|
-
/*
|
|
9033
|
-
/*
|
|
9215
|
+
/* Divider */
|
|
9216
|
+
/* Divider Component Styles - Using Muka Design Tokens */
|
|
9034
9217
|
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
--drawer-width-sm: 18rem;
|
|
9038
|
-
--drawer-width-md: 26rem;
|
|
9039
|
-
--drawer-width-lg: 36rem;
|
|
9218
|
+
.muka-divider {
|
|
9219
|
+
flex-shrink: 0;
|
|
9040
9220
|
}
|
|
9041
9221
|
|
|
9042
|
-
|
|
9043
|
-
|
|
9222
|
+
.muka-divider--horizontal {
|
|
9223
|
+
width: 100%;
|
|
9224
|
+
height: var(--separator-width);
|
|
9225
|
+
}
|
|
9226
|
+
|
|
9227
|
+
.muka-divider--vertical {
|
|
9228
|
+
height: 100%;
|
|
9229
|
+
width: var(--separator-width);
|
|
9230
|
+
align-self: stretch;
|
|
9231
|
+
}
|
|
9232
|
+
|
|
9233
|
+
.muka-divider--default {
|
|
9234
|
+
background-color: var(--separator-color-default);
|
|
9235
|
+
}
|
|
9236
|
+
|
|
9237
|
+
.muka-divider--contrast {
|
|
9238
|
+
background-color: var(--separator-color-contrast);
|
|
9239
|
+
}
|
|
9240
|
+
|
|
9241
|
+
|
|
9242
|
+
/* Dialog */
|
|
9243
|
+
/* Dialog Component Styles */
|
|
9244
|
+
|
|
9245
|
+
/* ─── Native dialog reset ─────────────────────────────── */
|
|
9246
|
+
|
|
9247
|
+
.muka-dialog {
|
|
9044
9248
|
border: none;
|
|
9045
9249
|
padding: 0;
|
|
9046
9250
|
max-width: none;
|
|
9047
9251
|
max-height: none;
|
|
9048
|
-
background: transparent;
|
|
9049
9252
|
overflow: visible;
|
|
9253
|
+
background: transparent;
|
|
9254
|
+
color: inherit;
|
|
9255
|
+
box-shadow: none;
|
|
9050
9256
|
}
|
|
9051
9257
|
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
background-color: var(--color-surface-backdrop);
|
|
9055
|
-
opacity: 0;
|
|
9056
|
-
transition: opacity 200ms ease;
|
|
9258
|
+
.muka-dialog:not([open]) {
|
|
9259
|
+
display: none;
|
|
9057
9260
|
}
|
|
9058
9261
|
|
|
9059
|
-
|
|
9060
|
-
|
|
9262
|
+
/* ─── Backdrop ────────────────────────────────────────── */
|
|
9263
|
+
|
|
9264
|
+
.muka-dialog::backdrop {
|
|
9265
|
+
background-color: var(--dialog-color-backdrop);
|
|
9061
9266
|
}
|
|
9062
9267
|
|
|
9063
|
-
/*
|
|
9064
|
-
|
|
9268
|
+
/* ─── Non-modal modifier ──────────────────────────────── */
|
|
9269
|
+
|
|
9270
|
+
.muka-dialog--non-modal::backdrop {
|
|
9271
|
+
pointer-events: auto;
|
|
9272
|
+
}
|
|
9273
|
+
|
|
9274
|
+
/* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
|
|
9275
|
+
|
|
9276
|
+
.muka-dialog--sm,
|
|
9277
|
+
.muka-dialog--md,
|
|
9278
|
+
.muka-dialog--lg {
|
|
9279
|
+
width: 100%;
|
|
9280
|
+
height: 100%;
|
|
9281
|
+
max-width: 100vw;
|
|
9282
|
+
max-height: 100vh;
|
|
9283
|
+
margin: 0;
|
|
9065
9284
|
display: flex;
|
|
9066
9285
|
flex-direction: column;
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
height: 100%;
|
|
9070
|
-
overflow: hidden;
|
|
9071
|
-
position: fixed;
|
|
9072
|
-
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
9286
|
+
justify-content: flex-end;
|
|
9287
|
+
align-items: stretch;
|
|
9073
9288
|
}
|
|
9074
9289
|
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
top: 0;
|
|
9078
|
-
right: 0;
|
|
9079
|
-
bottom: 0;
|
|
9080
|
-
border-radius: var(--radius-lg) 0 0 var(--radius-lg);
|
|
9081
|
-
transform: translateX(100%);
|
|
9082
|
-
}
|
|
9083
|
-
|
|
9084
|
-
.muka-drawer--left .muka-drawer__surface {
|
|
9085
|
-
top: 0;
|
|
9086
|
-
left: 0;
|
|
9087
|
-
bottom: 0;
|
|
9088
|
-
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
9089
|
-
transform: translateX(-100%);
|
|
9090
|
-
}
|
|
9091
|
-
|
|
9092
|
-
.muka-drawer--bottom .muka-drawer__surface {
|
|
9093
|
-
left: 0;
|
|
9094
|
-
right: 0;
|
|
9095
|
-
bottom: 0;
|
|
9096
|
-
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
9097
|
-
transform: translateY(100%);
|
|
9098
|
-
}
|
|
9099
|
-
|
|
9100
|
-
.muka-drawer--top .muka-drawer__surface {
|
|
9101
|
-
left: 0;
|
|
9102
|
-
right: 0;
|
|
9103
|
-
top: 0;
|
|
9104
|
-
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
9105
|
-
transform: translateY(-100%);
|
|
9106
|
-
}
|
|
9107
|
-
|
|
9108
|
-
/* Slide-in state */
|
|
9109
|
-
.muka-drawer--slide-in .muka-drawer__surface {
|
|
9110
|
-
transform: translate(0, 0);
|
|
9111
|
-
}
|
|
9112
|
-
|
|
9113
|
-
/* Width sizes (left/right) */
|
|
9114
|
-
.muka-drawer--right .muka-drawer__surface,
|
|
9115
|
-
.muka-drawer--left .muka-drawer__surface {
|
|
9116
|
-
width: var(--drawer-width-md);
|
|
9117
|
-
}
|
|
9118
|
-
|
|
9119
|
-
.muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
|
|
9120
|
-
.muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
|
|
9121
|
-
width: var(--drawer-width-sm);
|
|
9122
|
-
}
|
|
9123
|
-
|
|
9124
|
-
.muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
|
|
9125
|
-
.muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
|
|
9126
|
-
width: var(--drawer-width-lg);
|
|
9127
|
-
}
|
|
9128
|
-
|
|
9129
|
-
.muka-drawer--full.muka-drawer--right .muka-drawer__surface,
|
|
9130
|
-
.muka-drawer--full.muka-drawer--left .muka-drawer__surface {
|
|
9131
|
-
width: 100%;
|
|
9132
|
-
}
|
|
9133
|
-
|
|
9134
|
-
/* Height sizes (top/bottom) */
|
|
9135
|
-
.muka-drawer--top .muka-drawer__surface,
|
|
9136
|
-
.muka-drawer--bottom .muka-drawer__surface {
|
|
9137
|
-
height: auto;
|
|
9138
|
-
max-height: 80vh;
|
|
9139
|
-
}
|
|
9140
|
-
|
|
9141
|
-
.muka-drawer--full.muka-drawer--top .muka-drawer__surface,
|
|
9142
|
-
.muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
|
|
9143
|
-
max-height: 100vh;
|
|
9144
|
-
}
|
|
9145
|
-
|
|
9146
|
-
/* Header */
|
|
9147
|
-
.muka-drawer__header {
|
|
9148
|
-
display: flex;
|
|
9149
|
-
align-items: center;
|
|
9150
|
-
gap: var(--spacing-3);
|
|
9151
|
-
padding: var(--spacing-4);
|
|
9152
|
-
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
9153
|
-
flex-shrink: 0;
|
|
9154
|
-
}
|
|
9155
|
-
|
|
9156
|
-
.muka-drawer__title {
|
|
9157
|
-
flex: 1;
|
|
9158
|
-
margin: 0;
|
|
9159
|
-
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
9160
|
-
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
9161
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
9162
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
9163
|
-
color: var(--color-text-default-default);
|
|
9164
|
-
}
|
|
9165
|
-
|
|
9166
|
-
.muka-drawer__leading,
|
|
9167
|
-
.muka-drawer__trailing {
|
|
9168
|
-
display: flex;
|
|
9169
|
-
align-items: center;
|
|
9170
|
-
flex-shrink: 0;
|
|
9171
|
-
}
|
|
9172
|
-
|
|
9173
|
-
/* Body */
|
|
9174
|
-
.muka-drawer__body {
|
|
9175
|
-
flex: 1;
|
|
9176
|
-
overflow-y: auto;
|
|
9177
|
-
padding: var(--spacing-4);
|
|
9178
|
-
}
|
|
9179
|
-
|
|
9180
|
-
/* Footer */
|
|
9181
|
-
.muka-drawer__footer {
|
|
9182
|
-
padding: var(--spacing-4);
|
|
9183
|
-
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
9184
|
-
flex-shrink: 0;
|
|
9185
|
-
}
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
/* Dialog */
|
|
9189
|
-
/* Dialog Component Styles */
|
|
9190
|
-
|
|
9191
|
-
/* ─── Native dialog reset ─────────────────────────────── */
|
|
9192
|
-
|
|
9193
|
-
.muka-dialog {
|
|
9194
|
-
border: none;
|
|
9195
|
-
padding: 0;
|
|
9196
|
-
max-width: none;
|
|
9197
|
-
max-height: none;
|
|
9198
|
-
overflow: visible;
|
|
9199
|
-
background: transparent;
|
|
9200
|
-
color: inherit;
|
|
9201
|
-
box-shadow: none;
|
|
9202
|
-
}
|
|
9203
|
-
|
|
9204
|
-
.muka-dialog:not([open]) {
|
|
9205
|
-
display: none;
|
|
9206
|
-
}
|
|
9207
|
-
|
|
9208
|
-
/* ─── Backdrop ────────────────────────────────────────── */
|
|
9209
|
-
|
|
9210
|
-
.muka-dialog::backdrop {
|
|
9211
|
-
background-color: var(--dialog-color-backdrop);
|
|
9212
|
-
}
|
|
9213
|
-
|
|
9214
|
-
/* ─── Non-modal modifier ──────────────────────────────── */
|
|
9215
|
-
|
|
9216
|
-
.muka-dialog--non-modal::backdrop {
|
|
9217
|
-
pointer-events: auto;
|
|
9218
|
-
}
|
|
9219
|
-
|
|
9220
|
-
/* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
|
|
9221
|
-
|
|
9222
|
-
.muka-dialog--sm,
|
|
9223
|
-
.muka-dialog--md,
|
|
9224
|
-
.muka-dialog--lg {
|
|
9225
|
-
width: 100%;
|
|
9226
|
-
height: 100%;
|
|
9227
|
-
max-width: 100vw;
|
|
9228
|
-
max-height: 100vh;
|
|
9229
|
-
margin: 0;
|
|
9230
|
-
display: flex;
|
|
9231
|
-
flex-direction: column;
|
|
9232
|
-
justify-content: flex-end;
|
|
9233
|
-
align-items: stretch;
|
|
9234
|
-
}
|
|
9235
|
-
|
|
9236
|
-
.muka-dialog__surface:focus {
|
|
9237
|
-
outline: none;
|
|
9290
|
+
.muka-dialog__surface:focus {
|
|
9291
|
+
outline: none;
|
|
9238
9292
|
}
|
|
9239
9293
|
|
|
9240
9294
|
.muka-dialog--sm .muka-dialog__surface,
|
|
@@ -10476,33 +10530,6 @@ li.muka-listitem {
|
|
|
10476
10530
|
}
|
|
10477
10531
|
|
|
10478
10532
|
|
|
10479
|
-
/* Divider */
|
|
10480
|
-
/* Divider Component Styles - Using Muka Design Tokens */
|
|
10481
|
-
|
|
10482
|
-
.muka-divider {
|
|
10483
|
-
flex-shrink: 0;
|
|
10484
|
-
}
|
|
10485
|
-
|
|
10486
|
-
.muka-divider--horizontal {
|
|
10487
|
-
width: 100%;
|
|
10488
|
-
height: var(--separator-width);
|
|
10489
|
-
}
|
|
10490
|
-
|
|
10491
|
-
.muka-divider--vertical {
|
|
10492
|
-
height: 100%;
|
|
10493
|
-
width: var(--separator-width);
|
|
10494
|
-
align-self: stretch;
|
|
10495
|
-
}
|
|
10496
|
-
|
|
10497
|
-
.muka-divider--default {
|
|
10498
|
-
background-color: var(--separator-color-default);
|
|
10499
|
-
}
|
|
10500
|
-
|
|
10501
|
-
.muka-divider--contrast {
|
|
10502
|
-
background-color: var(--separator-color-contrast);
|
|
10503
|
-
}
|
|
10504
|
-
|
|
10505
|
-
|
|
10506
10533
|
/* CheckboxTile */
|
|
10507
10534
|
/* CheckboxTile Component Styles - Using Muka Design Tokens */
|
|
10508
10535
|
|
|
@@ -10831,11 +10858,17 @@ li.muka-listitem {
|
|
|
10831
10858
|
/* ChatPhotoGrid */
|
|
10832
10859
|
/* ChatPhotoGrid Component Styles */
|
|
10833
10860
|
|
|
10861
|
+
/*
|
|
10862
|
+
* The grid clips to its own radius and the tiles stay square, so only the four
|
|
10863
|
+
* outer corners round — matching the Figma "Wrapper" frame (5225:1394).
|
|
10864
|
+
*/
|
|
10834
10865
|
.muka-chat-photo-grid {
|
|
10835
10866
|
display: grid;
|
|
10836
10867
|
gap: var(--chatphotogrid-gap);
|
|
10837
10868
|
width: 100%;
|
|
10838
10869
|
min-width: 0;
|
|
10870
|
+
overflow: hidden;
|
|
10871
|
+
border-radius: var(--chatphotogrid-radius);
|
|
10839
10872
|
}
|
|
10840
10873
|
|
|
10841
10874
|
/* ─── Tiles ────────────────────────────────────────────── */
|
|
@@ -10848,7 +10881,6 @@ li.muka-listitem {
|
|
|
10848
10881
|
padding: 0;
|
|
10849
10882
|
margin: 0;
|
|
10850
10883
|
border: none;
|
|
10851
|
-
border-radius: var(--chatphotogrid-radius);
|
|
10852
10884
|
background-color: var(--chatphotogrid-color-placeholder);
|
|
10853
10885
|
aspect-ratio: 1 / 1;
|
|
10854
10886
|
}
|
|
@@ -10860,7 +10892,8 @@ button.muka-chat-photo-grid__tile {
|
|
|
10860
10892
|
|
|
10861
10893
|
button.muka-chat-photo-grid__tile:focus-visible {
|
|
10862
10894
|
outline: var(--border-width-bold) solid var(--color-border-focus);
|
|
10863
|
-
|
|
10895
|
+
/* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
|
|
10896
|
+
outline-offset: calc(-1 * var(--border-width-bold));
|
|
10864
10897
|
}
|
|
10865
10898
|
|
|
10866
10899
|
.muka-chat-photo-grid__image {
|
|
@@ -10944,6 +10977,60 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
10944
10977
|
}
|
|
10945
10978
|
|
|
10946
10979
|
|
|
10980
|
+
/* ChatMessageStack */
|
|
10981
|
+
/* ChatMessageStack Component Styles */
|
|
10982
|
+
|
|
10983
|
+
.muka-chat-message-stack {
|
|
10984
|
+
display: flex;
|
|
10985
|
+
flex-direction: column;
|
|
10986
|
+
gap: var(--chatbubble-stack-gap);
|
|
10987
|
+
width: 100%;
|
|
10988
|
+
max-width: 100%;
|
|
10989
|
+
}
|
|
10990
|
+
|
|
10991
|
+
.muka-chat-message-stack__messages {
|
|
10992
|
+
display: flex;
|
|
10993
|
+
flex-direction: column;
|
|
10994
|
+
gap: var(--chatbubble-stack-gap);
|
|
10995
|
+
width: 100%;
|
|
10996
|
+
}
|
|
10997
|
+
|
|
10998
|
+
/*
|
|
10999
|
+
* Reasoning sits above the stack, indented past the avatar rail so it lines up
|
|
11000
|
+
* with the bubbles rather than with the avatar (Figma 5379:47300).
|
|
11001
|
+
*/
|
|
11002
|
+
.muka-chat-message-stack__reasoning {
|
|
11003
|
+
min-width: 0;
|
|
11004
|
+
}
|
|
11005
|
+
|
|
11006
|
+
.muka-chat-message-stack--has-avatar .muka-chat-message-stack__reasoning {
|
|
11007
|
+
padding-left: calc(var(--chatbubble-avatar-size) + var(--chatbubble-row-gap));
|
|
11008
|
+
}
|
|
11009
|
+
|
|
11010
|
+
.muka-chat-message-stack--own.muka-chat-message-stack--has-avatar
|
|
11011
|
+
.muka-chat-message-stack__reasoning {
|
|
11012
|
+
padding-left: 0;
|
|
11013
|
+
padding-right: calc(var(--chatbubble-avatar-size) + var(--chatbubble-row-gap));
|
|
11014
|
+
}
|
|
11015
|
+
|
|
11016
|
+
/* Follow the message's compact rail and gap below the desktop breakpoint */
|
|
11017
|
+
@media (max-width: 1023px) {
|
|
11018
|
+
.muka-chat-message-stack--has-avatar .muka-chat-message-stack__reasoning {
|
|
11019
|
+
padding-left: calc(
|
|
11020
|
+
var(--chatbubble-avatar-size-compact) + var(--chatbubble-row-gap-compact)
|
|
11021
|
+
);
|
|
11022
|
+
}
|
|
11023
|
+
|
|
11024
|
+
.muka-chat-message-stack--own.muka-chat-message-stack--has-avatar
|
|
11025
|
+
.muka-chat-message-stack__reasoning {
|
|
11026
|
+
padding-left: 0;
|
|
11027
|
+
padding-right: calc(
|
|
11028
|
+
var(--chatbubble-avatar-size-compact) + var(--chatbubble-row-gap-compact)
|
|
11029
|
+
);
|
|
11030
|
+
}
|
|
11031
|
+
}
|
|
11032
|
+
|
|
11033
|
+
|
|
10947
11034
|
/* ChatMessageList */
|
|
10948
11035
|
/* ChatMessageList Component Styles */
|
|
10949
11036
|
|
|
@@ -10987,221 +11074,111 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
10987
11074
|
}
|
|
10988
11075
|
|
|
10989
11076
|
|
|
10990
|
-
/*
|
|
10991
|
-
/*
|
|
11077
|
+
/* ChatMessage */
|
|
11078
|
+
/* ChatMessage Component Styles */
|
|
10992
11079
|
|
|
10993
|
-
|
|
10994
|
-
* The composer is a bare, fill-width row: no padding, background, border or
|
|
10995
|
-
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
10996
|
-
* container — see BottomBar's `chat` variant.
|
|
10997
|
-
*/
|
|
10998
|
-
.muka-chat-composer {
|
|
11080
|
+
.muka-chat-message {
|
|
10999
11081
|
display: flex;
|
|
11000
11082
|
flex-direction: column;
|
|
11001
|
-
gap: var(--spacing-3);
|
|
11002
11083
|
width: 100%;
|
|
11084
|
+
max-width: 100%;
|
|
11003
11085
|
}
|
|
11004
11086
|
|
|
11005
|
-
|
|
11006
|
-
opacity: 0.6;
|
|
11007
|
-
pointer-events: none;
|
|
11008
|
-
}
|
|
11009
|
-
|
|
11010
|
-
/* ─── Input row ────────────────────────────────────────── */
|
|
11087
|
+
/* ─── Row: avatar rail + bubble ────────────────────────── */
|
|
11011
11088
|
|
|
11012
|
-
.muka-chat-
|
|
11013
|
-
display:
|
|
11089
|
+
.muka-chat-message__row {
|
|
11090
|
+
display: grid;
|
|
11091
|
+
grid-template-columns: minmax(0, 1fr);
|
|
11092
|
+
grid-template-areas: 'bubble';
|
|
11093
|
+
column-gap: var(--chatbubble-row-gap);
|
|
11014
11094
|
width: 100%;
|
|
11015
|
-
align-items: flex-end;
|
|
11016
|
-
gap: var(--spacing-3);
|
|
11017
11095
|
}
|
|
11018
11096
|
|
|
11019
|
-
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
display: flex;
|
|
11023
|
-
flex: 1 1 auto;
|
|
11024
|
-
min-width: 0;
|
|
11025
|
-
box-sizing: border-box;
|
|
11026
|
-
align-items: center;
|
|
11027
|
-
gap: var(--spacing-1);
|
|
11028
|
-
min-height: var(--input-field-height-lg, 48px);
|
|
11029
|
-
padding: 0 var(--spacing-2);
|
|
11030
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
11031
|
-
border-radius: var(--input-field-radius-lg);
|
|
11032
|
-
background-color: var(--input-field-color-default-background);
|
|
11033
|
-
transition: border-color 0.12s ease;
|
|
11097
|
+
.muka-chat-message--has-avatar .muka-chat-message__row {
|
|
11098
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
11099
|
+
grid-template-areas: 'rail bubble';
|
|
11034
11100
|
}
|
|
11035
11101
|
|
|
11036
|
-
.muka-chat-
|
|
11037
|
-
|
|
11102
|
+
.muka-chat-message--own.muka-chat-message--has-avatar .muka-chat-message__row {
|
|
11103
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
11104
|
+
grid-template-areas: 'bubble rail';
|
|
11038
11105
|
}
|
|
11039
11106
|
|
|
11040
|
-
.muka-chat-
|
|
11041
|
-
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
box-sizing: border-box;
|
|
11045
|
-
resize: none;
|
|
11046
|
-
border: none;
|
|
11047
|
-
background: transparent;
|
|
11048
|
-
outline: none;
|
|
11049
|
-
padding: 0 var(--spacing-1);
|
|
11050
|
-
color: var(--color-text-default-default);
|
|
11051
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
11052
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11053
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
11054
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
11055
|
-
appearance: none;
|
|
11056
|
-
-webkit-appearance: none;
|
|
11057
|
-
}
|
|
11058
|
-
|
|
11059
|
-
.muka-chat-composer__input::placeholder {
|
|
11060
|
-
color: var(--color-text-subtle-default);
|
|
11061
|
-
}
|
|
11062
|
-
|
|
11063
|
-
/* Keep the in-field emoji button flush to the bottom-right as the field grows */
|
|
11064
|
-
.muka-chat-composer__emoji {
|
|
11065
|
-
flex-shrink: 0;
|
|
11066
|
-
}
|
|
11067
|
-
|
|
11068
|
-
/* ─── Recording bar ────────────────────────────────────── */
|
|
11069
|
-
|
|
11070
|
-
.muka-chat-composer__recording {
|
|
11071
|
-
display: flex;
|
|
11072
|
-
flex: 1 1 auto;
|
|
11073
|
-
min-width: 0;
|
|
11074
|
-
box-sizing: border-box;
|
|
11075
|
-
align-items: center;
|
|
11076
|
-
min-height: var(--input-field-height-lg, 48px);
|
|
11077
|
-
padding: var(--card-padding-sm);
|
|
11078
|
-
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11079
|
-
border-radius: var(--radius-lg);
|
|
11080
|
-
background-color: var(--card-color-default-background);
|
|
11081
|
-
}
|
|
11082
|
-
|
|
11083
|
-
/* ─── Staged attachments strip ─────────────────────────── */
|
|
11084
|
-
|
|
11085
|
-
.muka-chat-composer__attachments-strip {
|
|
11086
|
-
position: relative;
|
|
11087
|
-
width: 100%;
|
|
11088
|
-
}
|
|
11089
|
-
|
|
11090
|
-
.muka-chat-composer__attachments {
|
|
11091
|
-
display: flex;
|
|
11092
|
-
gap: var(--spacing-3);
|
|
11093
|
-
overflow-x: auto;
|
|
11094
|
-
scroll-behavior: smooth;
|
|
11095
|
-
scrollbar-width: none;
|
|
11096
|
-
}
|
|
11097
|
-
|
|
11098
|
-
.muka-chat-composer__attachments::-webkit-scrollbar {
|
|
11099
|
-
display: none;
|
|
11100
|
-
}
|
|
11101
|
-
|
|
11102
|
-
.muka-chat-composer__overflow {
|
|
11103
|
-
position: absolute;
|
|
11104
|
-
top: 50%;
|
|
11105
|
-
right: var(--spacing-2);
|
|
11106
|
-
transform: translateY(-50%);
|
|
11107
|
-
}
|
|
11108
|
-
|
|
11109
|
-
/* ─── Print ────────────────────────────────────────────── */
|
|
11110
|
-
|
|
11111
|
-
@media print {
|
|
11112
|
-
.muka-chat-composer {
|
|
11113
|
-
display: none;
|
|
11114
|
-
}
|
|
11115
|
-
}
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
/* ChatBubble */
|
|
11119
|
-
/* ChatBubble Component Styles */
|
|
11120
|
-
|
|
11121
|
-
.muka-chat-bubble {
|
|
11107
|
+
.muka-chat-message__rail {
|
|
11108
|
+
grid-area: rail;
|
|
11109
|
+
/* Sits on the bubble's baseline (Figma 5355:44091) */
|
|
11110
|
+
align-self: end;
|
|
11122
11111
|
display: flex;
|
|
11123
|
-
|
|
11124
|
-
width:
|
|
11125
|
-
max-width: 100%;
|
|
11112
|
+
justify-content: center;
|
|
11113
|
+
min-width: var(--chatbubble-avatar-size);
|
|
11126
11114
|
}
|
|
11127
11115
|
|
|
11128
|
-
/*
|
|
11129
|
-
*
|
|
11130
|
-
*
|
|
11131
|
-
*
|
|
11116
|
+
/*
|
|
11117
|
+
* The Small size in Figma (5373:44702) halves the avatar to 32px and tightens
|
|
11118
|
+
* the gap to the bubble. Size the avatar itself, not just the rail, so the
|
|
11119
|
+
* bubbles keep their alignment. The header row keeps its own gap.
|
|
11132
11120
|
*/
|
|
11121
|
+
@media (max-width: 1023px) {
|
|
11122
|
+
.muka-chat-message__row {
|
|
11123
|
+
column-gap: var(--chatbubble-row-gap-compact);
|
|
11124
|
+
}
|
|
11133
11125
|
|
|
11134
|
-
.muka-chat-
|
|
11135
|
-
|
|
11136
|
-
|
|
11137
|
-
grid-template-areas:
|
|
11138
|
-
'bubble'
|
|
11139
|
-
'actions';
|
|
11140
|
-
column-gap: var(--chatbubble-row-gap);
|
|
11141
|
-
row-gap: var(--chatbubble-gap);
|
|
11142
|
-
width: 100%;
|
|
11143
|
-
}
|
|
11144
|
-
|
|
11145
|
-
.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
|
|
11146
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
11147
|
-
grid-template-areas:
|
|
11148
|
-
'rail bubble'
|
|
11149
|
-
'. actions';
|
|
11150
|
-
}
|
|
11151
|
-
|
|
11152
|
-
.muka-chat-bubble--own.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
|
|
11153
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
11154
|
-
grid-template-areas:
|
|
11155
|
-
'bubble rail'
|
|
11156
|
-
'actions .';
|
|
11157
|
-
}
|
|
11126
|
+
.muka-chat-message__rail {
|
|
11127
|
+
min-width: var(--chatbubble-avatar-size-compact);
|
|
11128
|
+
}
|
|
11158
11129
|
|
|
11159
|
-
|
|
11160
|
-
|
|
11161
|
-
|
|
11162
|
-
|
|
11163
|
-
|
|
11164
|
-
justify-content: center;
|
|
11165
|
-
min-width: var(--chatbubble-avatar-size);
|
|
11130
|
+
/* Outweighs the avatar's own size class, which sets width/height directly */
|
|
11131
|
+
.muka-chat-message .muka-chat-message__rail > * {
|
|
11132
|
+
width: var(--chatbubble-avatar-size-compact);
|
|
11133
|
+
height: var(--chatbubble-avatar-size-compact);
|
|
11134
|
+
}
|
|
11166
11135
|
}
|
|
11167
11136
|
|
|
11168
11137
|
/* ─── Bubble surface ───────────────────────────────────── */
|
|
11169
11138
|
|
|
11170
|
-
.muka-chat-
|
|
11139
|
+
.muka-chat-message__bubble {
|
|
11171
11140
|
grid-area: bubble;
|
|
11172
11141
|
max-width: var(--chatbubble-max-width);
|
|
11173
11142
|
position: relative;
|
|
11174
11143
|
display: flex;
|
|
11175
11144
|
flex-direction: column;
|
|
11176
11145
|
gap: var(--chatbubble-gap);
|
|
11177
|
-
|
|
11178
|
-
padding: var(--chatbubble-padding);
|
|
11146
|
+
padding: var(--chatbubble-padding-block) var(--chatbubble-padding-inline);
|
|
11179
11147
|
border-radius: var(--chatbubble-radius);
|
|
11180
11148
|
border: var(--border-width-regular) solid transparent;
|
|
11149
|
+
box-shadow: var(--shadow-level2);
|
|
11181
11150
|
word-break: break-word;
|
|
11182
11151
|
}
|
|
11183
11152
|
|
|
11184
|
-
|
|
11185
|
-
|
|
11153
|
+
/*
|
|
11154
|
+
* Length axis (Figma `Text length` on 5355:44091): short messages hug their
|
|
11155
|
+
* content, long ones fill the row up to the shared max width.
|
|
11156
|
+
*/
|
|
11157
|
+
.muka-chat-message--long .muka-chat-message__bubble {
|
|
11158
|
+
width: 100%;
|
|
11159
|
+
}
|
|
11160
|
+
|
|
11161
|
+
.muka-chat-message--short .muka-chat-message__bubble {
|
|
11162
|
+
width: fit-content;
|
|
11163
|
+
}
|
|
11164
|
+
|
|
11165
|
+
.muka-chat-message--own .muka-chat-message__bubble {
|
|
11186
11166
|
justify-self: end;
|
|
11187
11167
|
}
|
|
11188
11168
|
|
|
11189
|
-
.muka-chat-
|
|
11169
|
+
.muka-chat-message--own .muka-chat-message__bubble {
|
|
11190
11170
|
background-color: var(--chatbubble-color-own-background);
|
|
11191
11171
|
border-color: var(--chatbubble-color-own-border);
|
|
11192
11172
|
color: var(--chatbubble-color-own-foreground);
|
|
11193
|
-
/* Room for the inset timestamp in the bottom-right corner */
|
|
11194
|
-
padding-right: var(--spacing-6);
|
|
11195
11173
|
}
|
|
11196
11174
|
|
|
11197
|
-
.muka-chat-
|
|
11175
|
+
.muka-chat-message--peer .muka-chat-message__bubble {
|
|
11198
11176
|
background-color: var(--chatbubble-color-peer-background);
|
|
11199
11177
|
border-color: var(--chatbubble-color-peer-border);
|
|
11200
11178
|
color: var(--chatbubble-color-peer-foreground);
|
|
11201
|
-
box-shadow: var(--shadow-level2);
|
|
11202
11179
|
}
|
|
11203
11180
|
|
|
11204
|
-
.muka-chat-
|
|
11181
|
+
.muka-chat-message--agent .muka-chat-message__bubble {
|
|
11205
11182
|
background-color: var(--chatbubble-color-agent-background);
|
|
11206
11183
|
border-color: var(--chatbubble-color-agent-border);
|
|
11207
11184
|
color: var(--chatbubble-color-agent-foreground);
|
|
@@ -11209,21 +11186,21 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11209
11186
|
|
|
11210
11187
|
/* ─── Header row (author · meta · time · badge) ────────── */
|
|
11211
11188
|
|
|
11212
|
-
.muka-chat-
|
|
11189
|
+
.muka-chat-message__header {
|
|
11213
11190
|
display: flex;
|
|
11214
11191
|
flex-flow: row wrap;
|
|
11215
11192
|
align-items: center;
|
|
11216
11193
|
gap: var(--chatbubble-row-gap);
|
|
11217
11194
|
}
|
|
11218
11195
|
|
|
11219
|
-
.muka-chat-
|
|
11196
|
+
.muka-chat-message__author {
|
|
11220
11197
|
font-family: var(--text-body-base-bold-fontFamily);
|
|
11221
11198
|
font-weight: var(--text-body-base-bold-fontWeight);
|
|
11222
11199
|
font-size: var(--text-body-base-bold-fontSize);
|
|
11223
11200
|
line-height: var(--text-body-base-bold-lineHeight);
|
|
11224
11201
|
}
|
|
11225
11202
|
|
|
11226
|
-
.muka-chat-
|
|
11203
|
+
.muka-chat-message__author-meta {
|
|
11227
11204
|
/* Inherits the variant's body colour from the bubble */
|
|
11228
11205
|
color: inherit;
|
|
11229
11206
|
font-family: var(--text-body-base-regular-fontFamily);
|
|
@@ -11232,7 +11209,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11232
11209
|
line-height: var(--text-body-base-regular-lineHeight);
|
|
11233
11210
|
}
|
|
11234
11211
|
|
|
11235
|
-
.muka-chat-
|
|
11212
|
+
.muka-chat-message__badge {
|
|
11236
11213
|
display: inline-flex;
|
|
11237
11214
|
align-items: center;
|
|
11238
11215
|
}
|
|
@@ -11241,30 +11218,30 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11241
11218
|
* Keep the first line of content clear of the absolutely positioned menu
|
|
11242
11219
|
* button in the bubble's top-right corner.
|
|
11243
11220
|
*/
|
|
11244
|
-
.muka-chat-
|
|
11245
|
-
.muka-chat-
|
|
11246
|
-
padding-right: var(--spacing-
|
|
11221
|
+
.muka-chat-message--has-menu .muka-chat-message__header,
|
|
11222
|
+
.muka-chat-message--has-menu.muka-chat-message--no-header .muka-chat-message__message {
|
|
11223
|
+
padding-right: var(--spacing-10);
|
|
11224
|
+
}
|
|
11225
|
+
|
|
11226
|
+
/* …and the last line clear of the inset timestamp in the bottom-right corner */
|
|
11227
|
+
.muka-chat-message--has-timestamp .muka-chat-message__message {
|
|
11228
|
+
padding-right: var(--spacing-10);
|
|
11247
11229
|
}
|
|
11248
11230
|
|
|
11249
11231
|
/* ─── Body ─────────────────────────────────────────────── */
|
|
11250
11232
|
|
|
11251
|
-
.muka-chat-
|
|
11233
|
+
.muka-chat-message__body {
|
|
11252
11234
|
display: flex;
|
|
11253
11235
|
flex-direction: column;
|
|
11254
11236
|
gap: var(--chatbubble-gap);
|
|
11255
11237
|
min-width: 0;
|
|
11256
11238
|
}
|
|
11257
11239
|
|
|
11258
|
-
|
|
11259
|
-
.muka-chat-bubble--agent .muka-chat-bubble__body {
|
|
11260
|
-
gap: var(--chatbubble-body-gap);
|
|
11261
|
-
}
|
|
11262
|
-
|
|
11263
|
-
.muka-chat-bubble__media {
|
|
11240
|
+
.muka-chat-message__media {
|
|
11264
11241
|
min-width: 0;
|
|
11265
11242
|
}
|
|
11266
11243
|
|
|
11267
|
-
.muka-chat-
|
|
11244
|
+
.muka-chat-message__message {
|
|
11268
11245
|
font-family: var(--text-body-base-regular-fontFamily);
|
|
11269
11246
|
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11270
11247
|
font-size: var(--text-body-base-regular-fontSize);
|
|
@@ -11274,18 +11251,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11274
11251
|
}
|
|
11275
11252
|
|
|
11276
11253
|
/* Empty message block should not add a gap of its own */
|
|
11277
|
-
.muka-chat-
|
|
11254
|
+
.muka-chat-message__message:empty {
|
|
11278
11255
|
display: none;
|
|
11279
11256
|
}
|
|
11280
11257
|
|
|
11281
11258
|
/* ─── Embedded card ────────────────────────────────────── */
|
|
11282
11259
|
|
|
11283
|
-
.muka-chat-
|
|
11260
|
+
.muka-chat-message__embed {
|
|
11284
11261
|
position: relative;
|
|
11285
11262
|
display: flex;
|
|
11286
11263
|
flex-direction: column;
|
|
11287
11264
|
gap: var(--chatbubble-embed-gap);
|
|
11288
|
-
|
|
11265
|
+
/* The card is inset from the blocks above and below it (Figma 5289:40562) */
|
|
11266
|
+
margin-block: var(--chatbubble-embed-margin-block);
|
|
11267
|
+
padding: var(--chatbubble-embed-padding-block) var(--chatbubble-embed-padding-inline);
|
|
11289
11268
|
border-radius: var(--chatbubble-embed-radius);
|
|
11290
11269
|
border: var(--border-width-regular) solid transparent;
|
|
11291
11270
|
}
|
|
@@ -11294,127 +11273,135 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11294
11273
|
* The embed sits on the raised surface of its author's role, one step apart
|
|
11295
11274
|
* from the bubble it is nested in, and reuses that role's border colour.
|
|
11296
11275
|
*/
|
|
11297
|
-
.muka-chat-
|
|
11276
|
+
.muka-chat-message--own .muka-chat-message__embed {
|
|
11298
11277
|
background-color: var(--chatbubble-embed-color-own-background);
|
|
11299
11278
|
border-color: var(--chatbubble-embed-color-own-border);
|
|
11300
11279
|
color: var(--chatbubble-embed-color-own-foreground);
|
|
11301
11280
|
}
|
|
11302
11281
|
|
|
11303
|
-
.muka-chat-
|
|
11282
|
+
.muka-chat-message--peer .muka-chat-message__embed {
|
|
11304
11283
|
background-color: var(--chatbubble-embed-color-peer-background);
|
|
11305
11284
|
border-color: var(--chatbubble-embed-color-peer-border);
|
|
11306
11285
|
color: var(--chatbubble-embed-color-peer-foreground);
|
|
11307
11286
|
}
|
|
11308
11287
|
|
|
11309
|
-
.muka-chat-
|
|
11288
|
+
.muka-chat-message--agent .muka-chat-message__embed {
|
|
11310
11289
|
background-color: var(--chatbubble-embed-color-agent-background);
|
|
11311
11290
|
border-color: var(--chatbubble-embed-color-agent-border);
|
|
11312
11291
|
color: var(--chatbubble-embed-color-agent-foreground);
|
|
11313
11292
|
}
|
|
11314
11293
|
|
|
11315
|
-
.muka-chat-
|
|
11294
|
+
.muka-chat-message__embed-content {
|
|
11316
11295
|
display: flex;
|
|
11317
11296
|
flex-direction: column;
|
|
11318
11297
|
gap: var(--chatbubble-embed-gap);
|
|
11319
11298
|
min-width: 0;
|
|
11320
11299
|
}
|
|
11321
11300
|
|
|
11322
|
-
.muka-chat-
|
|
11301
|
+
.muka-chat-message__embed-copy {
|
|
11323
11302
|
position: absolute;
|
|
11324
|
-
top: var(--chatbubble-embed-padding);
|
|
11325
|
-
right: var(--chatbubble-embed-padding);
|
|
11303
|
+
top: var(--chatbubble-embed-padding-block);
|
|
11304
|
+
right: var(--chatbubble-embed-padding-inline);
|
|
11326
11305
|
}
|
|
11327
11306
|
|
|
11328
11307
|
/* ─── Stacked full-width action buttons ────────────────── */
|
|
11329
11308
|
|
|
11330
|
-
.muka-chat-
|
|
11309
|
+
.muka-chat-message__action-stack {
|
|
11331
11310
|
display: flex;
|
|
11332
11311
|
flex-direction: column;
|
|
11333
11312
|
gap: var(--chatbubble-action-stack-gap);
|
|
11334
11313
|
}
|
|
11335
11314
|
|
|
11336
|
-
/* ─── Inset timestamp
|
|
11315
|
+
/* ─── Inset timestamp ──────────────────────────────────── */
|
|
11316
|
+
|
|
11317
|
+
/*
|
|
11318
|
+
* Every author puts its timestamp in the bubble's bottom-right corner, below
|
|
11319
|
+
* the message — never in the header row (Figma 5355:44091).
|
|
11320
|
+
*/
|
|
11337
11321
|
|
|
11338
|
-
.muka-chat-
|
|
11322
|
+
.muka-chat-message__timestamp {
|
|
11339
11323
|
color: var(--chatbubble-color-timestamp);
|
|
11340
|
-
font-family: var(--text-body-
|
|
11341
|
-
font-weight: var(--text-body-
|
|
11342
|
-
font-size: var(--text-body-
|
|
11343
|
-
line-height: var(--text-body-
|
|
11324
|
+
font-family: var(--text-body-xs-regular-fontFamily);
|
|
11325
|
+
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
11326
|
+
font-size: var(--text-body-xs-regular-fontSize);
|
|
11327
|
+
line-height: var(--text-body-xs-regular-lineHeight);
|
|
11344
11328
|
white-space: nowrap;
|
|
11345
11329
|
}
|
|
11346
11330
|
|
|
11347
|
-
|
|
11348
|
-
|
|
11331
|
+
/*
|
|
11332
|
+
* Pinned to the corner rather than stacked below the message, so a one-line
|
|
11333
|
+
* message stays one line tall. The message reserves the width it needs.
|
|
11334
|
+
*/
|
|
11335
|
+
.muka-chat-message__timestamp--inset {
|
|
11336
|
+
position: absolute;
|
|
11337
|
+
right: var(--spacing-2);
|
|
11338
|
+
bottom: var(--spacing-1);
|
|
11339
|
+
}
|
|
11340
|
+
|
|
11341
|
+
/*
|
|
11342
|
+
* Media, an embed or an action stack run the full width of the bubble, so the
|
|
11343
|
+
* corner the timestamp sits in has to be cleared for it.
|
|
11344
|
+
*/
|
|
11345
|
+
.muka-chat-message--has-timestamp.muka-chat-message--has-blocks .muka-chat-message__body {
|
|
11346
|
+
padding-bottom: var(--text-body-xs-regular-lineHeight);
|
|
11349
11347
|
}
|
|
11350
11348
|
|
|
11351
11349
|
/* ─── Menu affordance ──────────────────────────────────── */
|
|
11352
11350
|
|
|
11353
|
-
|
|
11351
|
+
/*
|
|
11352
|
+
* Hidden at rest. Revealed on hover on pointer devices, on keyboard focus
|
|
11353
|
+
* everywhere, and pinned while its menu is open. On touch the equivalent
|
|
11354
|
+
* affordance is a long-press on the bubble, which opens an ActionSheet.
|
|
11355
|
+
*/
|
|
11356
|
+
.muka-chat-message__menu {
|
|
11354
11357
|
position: absolute;
|
|
11355
11358
|
top: var(--spacing-1);
|
|
11356
11359
|
right: var(--spacing-1);
|
|
11360
|
+
opacity: 0;
|
|
11361
|
+
pointer-events: none;
|
|
11357
11362
|
}
|
|
11358
11363
|
|
|
11359
|
-
|
|
11360
|
-
|
|
11361
|
-
|
|
11362
|
-
|
|
11363
|
-
max-width: var(--chatbubble-max-width);
|
|
11364
|
-
display: flex;
|
|
11365
|
-
align-items: center;
|
|
11366
|
-
gap: 0;
|
|
11367
|
-
}
|
|
11368
|
-
|
|
11369
|
-
.muka-chat-bubble--own .muka-chat-bubble__actions,
|
|
11370
|
-
.muka-chat-bubble--agent .muka-chat-bubble__actions {
|
|
11371
|
-
justify-content: flex-end;
|
|
11364
|
+
.muka-chat-message__menu:focus-within,
|
|
11365
|
+
.muka-chat-message--menu-open .muka-chat-message__menu {
|
|
11366
|
+
opacity: 1;
|
|
11367
|
+
pointer-events: auto;
|
|
11372
11368
|
}
|
|
11373
11369
|
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
position: relative;
|
|
11370
|
+
@media (hover: hover) and (pointer: fine) and (min-width: 1024px) {
|
|
11371
|
+
.muka-chat-message__bubble:hover .muka-chat-message__menu {
|
|
11372
|
+
opacity: 1;
|
|
11373
|
+
pointer-events: auto;
|
|
11374
|
+
}
|
|
11380
11375
|
}
|
|
11381
11376
|
|
|
11382
|
-
|
|
11383
|
-
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
width: 44px;
|
|
11388
|
-
height: 44px;
|
|
11389
|
-
transform: translate(-50%, -50%);
|
|
11377
|
+
/* Suppress iOS Safari's own callout so the long-press sheet can take over */
|
|
11378
|
+
@media (pointer: coarse) {
|
|
11379
|
+
.muka-chat-message--has-menu .muka-chat-message__bubble {
|
|
11380
|
+
-webkit-touch-callout: none;
|
|
11381
|
+
}
|
|
11390
11382
|
}
|
|
11391
11383
|
|
|
11392
11384
|
/* ─── Print ────────────────────────────────────────────── */
|
|
11393
11385
|
|
|
11394
11386
|
@media print {
|
|
11395
|
-
.muka-chat-
|
|
11387
|
+
.muka-chat-message__bubble {
|
|
11396
11388
|
box-shadow: none;
|
|
11397
11389
|
break-inside: avoid;
|
|
11398
11390
|
print-color-adjust: exact;
|
|
11399
11391
|
-webkit-print-color-adjust: exact;
|
|
11400
11392
|
}
|
|
11401
11393
|
|
|
11402
|
-
.muka-chat-
|
|
11394
|
+
.muka-chat-message__embed {
|
|
11403
11395
|
break-inside: avoid;
|
|
11404
11396
|
print-color-adjust: exact;
|
|
11405
11397
|
-webkit-print-color-adjust: exact;
|
|
11406
11398
|
}
|
|
11407
11399
|
|
|
11408
|
-
.muka-chat-
|
|
11409
|
-
.muka-chat-
|
|
11410
|
-
.muka-chat-
|
|
11411
|
-
.muka-chat-bubble__action-stack {
|
|
11400
|
+
.muka-chat-message__menu,
|
|
11401
|
+
.muka-chat-message__embed-copy,
|
|
11402
|
+
.muka-chat-message__action-stack {
|
|
11412
11403
|
display: none;
|
|
11413
11404
|
}
|
|
11414
|
-
|
|
11415
|
-
.muka-chat-bubble__column {
|
|
11416
|
-
max-width: 100%;
|
|
11417
|
-
}
|
|
11418
11405
|
}
|
|
11419
11406
|
|
|
11420
11407
|
|
|
@@ -11685,400 +11672,213 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11685
11672
|
}
|
|
11686
11673
|
|
|
11687
11674
|
|
|
11688
|
-
/*
|
|
11689
|
-
/*
|
|
11690
|
-
|
|
11691
|
-
/* Base button styles */
|
|
11692
|
-
.muka-button {
|
|
11693
|
-
/* Layout */
|
|
11694
|
-
display: inline-flex;
|
|
11695
|
-
align-items: center;
|
|
11696
|
-
justify-content: center;
|
|
11675
|
+
/* ChatComposer */
|
|
11676
|
+
/* ChatComposer Component Styles */
|
|
11697
11677
|
|
|
11698
|
-
|
|
11699
|
-
|
|
11700
|
-
|
|
11701
|
-
|
|
11702
|
-
|
|
11703
|
-
|
|
11704
|
-
|
|
11705
|
-
|
|
11706
|
-
|
|
11707
|
-
|
|
11708
|
-
|
|
11709
|
-
/* Accessibility */
|
|
11710
|
-
outline: none;
|
|
11711
|
-
position: relative;
|
|
11678
|
+
/*
|
|
11679
|
+
* The composer is a bare, fill-width row: no padding, background, border or
|
|
11680
|
+
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
11681
|
+
* container — see BottomBar's `chat` variant.
|
|
11682
|
+
*/
|
|
11683
|
+
.muka-chat-composer {
|
|
11684
|
+
display: flex;
|
|
11685
|
+
flex-direction: column;
|
|
11686
|
+
gap: var(--spacing-3);
|
|
11687
|
+
width: 100%;
|
|
11712
11688
|
}
|
|
11713
11689
|
|
|
11714
|
-
|
|
11715
|
-
|
|
11716
|
-
|
|
11717
|
-
outline-offset: 2px;
|
|
11690
|
+
.muka-chat-composer--disabled {
|
|
11691
|
+
opacity: 0.6;
|
|
11692
|
+
pointer-events: none;
|
|
11718
11693
|
}
|
|
11719
11694
|
|
|
11720
|
-
/*
|
|
11721
|
-
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
11722
|
-
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
11723
|
-
the button's padding is the outer container inset, and the label's own
|
|
11724
|
-
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
11725
|
-
.muka-button--sm {
|
|
11726
|
-
padding: 0 var(--button-padding-sm-x);
|
|
11727
|
-
border-radius: var(--button-radius-sm);
|
|
11728
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11729
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11730
|
-
min-height: 32px;
|
|
11731
|
-
}
|
|
11695
|
+
/* ─── Input row ────────────────────────────────────────── */
|
|
11732
11696
|
|
|
11733
|
-
.muka-
|
|
11734
|
-
|
|
11697
|
+
.muka-chat-composer__row {
|
|
11698
|
+
display: flex;
|
|
11699
|
+
width: 100%;
|
|
11700
|
+
align-items: flex-end;
|
|
11701
|
+
gap: var(--spacing-3);
|
|
11735
11702
|
}
|
|
11736
11703
|
|
|
11737
|
-
|
|
11738
|
-
padding: 0 var(--button-padding-md-x);
|
|
11739
|
-
border-radius: var(--button-radius-md);
|
|
11740
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11741
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11742
|
-
min-height: 40px;
|
|
11743
|
-
}
|
|
11704
|
+
/* ─── Text field ───────────────────────────────────────── */
|
|
11744
11705
|
|
|
11745
|
-
.muka-
|
|
11746
|
-
|
|
11706
|
+
.muka-chat-composer__field {
|
|
11707
|
+
display: flex;
|
|
11708
|
+
flex: 1 1 auto;
|
|
11709
|
+
min-width: 0;
|
|
11710
|
+
box-sizing: border-box;
|
|
11711
|
+
align-items: center;
|
|
11712
|
+
gap: var(--spacing-1);
|
|
11713
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11714
|
+
padding: 0 var(--spacing-2);
|
|
11715
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
11716
|
+
border-radius: var(--input-field-radius-lg);
|
|
11717
|
+
background-color: var(--input-field-color-default-background);
|
|
11718
|
+
transition: border-color 0.12s ease;
|
|
11747
11719
|
}
|
|
11748
11720
|
|
|
11749
|
-
.muka-
|
|
11750
|
-
|
|
11751
|
-
border-radius: var(--button-radius-lg);
|
|
11752
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
11753
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
11754
|
-
min-height: 48px;
|
|
11721
|
+
.muka-chat-composer__field:focus-within {
|
|
11722
|
+
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
11755
11723
|
}
|
|
11756
11724
|
|
|
11757
|
-
.muka-
|
|
11758
|
-
|
|
11725
|
+
.muka-chat-composer__input {
|
|
11726
|
+
flex: 1 1 auto;
|
|
11727
|
+
min-width: 0;
|
|
11728
|
+
width: 100%;
|
|
11729
|
+
box-sizing: border-box;
|
|
11730
|
+
resize: none;
|
|
11731
|
+
border: none;
|
|
11732
|
+
background: transparent;
|
|
11733
|
+
outline: none;
|
|
11734
|
+
padding: 0 var(--spacing-1);
|
|
11735
|
+
color: var(--color-text-default-default);
|
|
11736
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
11737
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11738
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
11739
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
11740
|
+
appearance: none;
|
|
11741
|
+
-webkit-appearance: none;
|
|
11759
11742
|
}
|
|
11760
11743
|
|
|
11761
|
-
.muka-
|
|
11762
|
-
|
|
11763
|
-
border-radius: var(--button-radius-xl);
|
|
11764
|
-
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
11765
|
-
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
11766
|
-
min-height: 64px;
|
|
11744
|
+
.muka-chat-composer__input::placeholder {
|
|
11745
|
+
color: var(--color-text-subtle-default);
|
|
11767
11746
|
}
|
|
11768
11747
|
|
|
11769
|
-
|
|
11770
|
-
|
|
11748
|
+
/* Keep the in-field emoji button flush to the bottom-right as the field grows */
|
|
11749
|
+
.muka-chat-composer__emoji {
|
|
11750
|
+
flex-shrink: 0;
|
|
11771
11751
|
}
|
|
11772
11752
|
|
|
11773
|
-
/*
|
|
11774
|
-
.muka-button--primary {
|
|
11775
|
-
background-color: var(--button-color-primary-background-default);
|
|
11776
|
-
color: var(--button-color-primary-foreground-default);
|
|
11777
|
-
box-shadow: var(--button-color-primary-shadow-default);
|
|
11778
|
-
}
|
|
11753
|
+
/* ─── Recording bar ────────────────────────────────────── */
|
|
11779
11754
|
|
|
11780
|
-
.muka-
|
|
11781
|
-
|
|
11782
|
-
|
|
11783
|
-
|
|
11755
|
+
.muka-chat-composer__recording {
|
|
11756
|
+
display: flex;
|
|
11757
|
+
flex: 1 1 auto;
|
|
11758
|
+
min-width: 0;
|
|
11759
|
+
box-sizing: border-box;
|
|
11760
|
+
align-items: center;
|
|
11761
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11762
|
+
padding: var(--card-padding-sm);
|
|
11763
|
+
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11764
|
+
border-radius: var(--radius-lg);
|
|
11765
|
+
background-color: var(--card-color-default-background);
|
|
11784
11766
|
}
|
|
11785
11767
|
|
|
11786
|
-
/*
|
|
11787
|
-
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
11788
|
-
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
11789
|
-
to sighted users by the accessibility tree alone. */
|
|
11790
|
-
.muka-button--primary:active:not(:disabled),
|
|
11791
|
-
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
11792
|
-
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
11793
|
-
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
11794
|
-
background-color: var(--button-color-primary-background-pressed);
|
|
11795
|
-
color: var(--button-color-primary-foreground-pressed);
|
|
11796
|
-
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
11797
|
-
}
|
|
11768
|
+
/* ─── Staged attachments strip ─────────────────────────── */
|
|
11798
11769
|
|
|
11799
|
-
.muka-
|
|
11800
|
-
|
|
11801
|
-
|
|
11802
|
-
box-shadow: var(--button-color-primary-shadow-disabled);
|
|
11803
|
-
cursor: not-allowed;
|
|
11804
|
-
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
11770
|
+
.muka-chat-composer__attachments-strip {
|
|
11771
|
+
position: relative;
|
|
11772
|
+
width: 100%;
|
|
11805
11773
|
}
|
|
11806
11774
|
|
|
11807
|
-
|
|
11808
|
-
|
|
11809
|
-
|
|
11810
|
-
|
|
11811
|
-
|
|
11775
|
+
.muka-chat-composer__attachments {
|
|
11776
|
+
display: flex;
|
|
11777
|
+
gap: var(--spacing-3);
|
|
11778
|
+
overflow-x: auto;
|
|
11779
|
+
scroll-behavior: smooth;
|
|
11780
|
+
scrollbar-width: none;
|
|
11812
11781
|
}
|
|
11813
11782
|
|
|
11814
|
-
.muka-
|
|
11815
|
-
|
|
11816
|
-
color: var(--button-color-secondary-foreground-hover);
|
|
11817
|
-
box-shadow: var(--button-color-secondary-shadow-hover);
|
|
11783
|
+
.muka-chat-composer__attachments::-webkit-scrollbar {
|
|
11784
|
+
display: none;
|
|
11818
11785
|
}
|
|
11819
11786
|
|
|
11820
|
-
.muka-
|
|
11821
|
-
|
|
11822
|
-
|
|
11823
|
-
|
|
11824
|
-
|
|
11825
|
-
color: var(--button-color-secondary-foreground-pressed);
|
|
11826
|
-
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
11787
|
+
.muka-chat-composer__overflow {
|
|
11788
|
+
position: absolute;
|
|
11789
|
+
top: 50%;
|
|
11790
|
+
right: var(--spacing-2);
|
|
11791
|
+
transform: translateY(-50%);
|
|
11827
11792
|
}
|
|
11828
11793
|
|
|
11829
|
-
|
|
11830
|
-
background-color: var(--button-color-secondary-background-disabled);
|
|
11831
|
-
color: var(--button-color-secondary-foreground-disabled);
|
|
11832
|
-
box-shadow: var(--button-color-secondary-shadow-disabled);
|
|
11833
|
-
cursor: not-allowed;
|
|
11834
|
-
opacity: 1;
|
|
11835
|
-
}
|
|
11794
|
+
/* ─── Print ────────────────────────────────────────────── */
|
|
11836
11795
|
|
|
11837
|
-
|
|
11838
|
-
.muka-
|
|
11839
|
-
|
|
11840
|
-
|
|
11841
|
-
border: 1px solid var(--button-color-tertiary-border-default);
|
|
11796
|
+
@media print {
|
|
11797
|
+
.muka-chat-composer {
|
|
11798
|
+
display: none;
|
|
11799
|
+
}
|
|
11842
11800
|
}
|
|
11843
11801
|
|
|
11844
|
-
.muka-button--tertiary:hover:not(:disabled) {
|
|
11845
|
-
background-color: var(--button-color-tertiary-background-hover);
|
|
11846
|
-
color: var(--button-color-tertiary-foreground-hover);
|
|
11847
|
-
border-color: var(--button-color-tertiary-border-hover);
|
|
11848
|
-
}
|
|
11849
11802
|
|
|
11850
|
-
|
|
11851
|
-
|
|
11852
|
-
|
|
11853
|
-
.muka-
|
|
11854
|
-
|
|
11855
|
-
|
|
11856
|
-
|
|
11803
|
+
/* Breadcrumb */
|
|
11804
|
+
/* Breadcrumb Component Styles */
|
|
11805
|
+
|
|
11806
|
+
.muka-breadcrumb__list {
|
|
11807
|
+
display: flex;
|
|
11808
|
+
align-items: center;
|
|
11809
|
+
flex-wrap: wrap;
|
|
11810
|
+
list-style: none;
|
|
11811
|
+
margin: 0;
|
|
11812
|
+
padding: 0;
|
|
11813
|
+
gap: var(--spacing-1);
|
|
11857
11814
|
}
|
|
11858
11815
|
|
|
11859
|
-
.muka-
|
|
11860
|
-
|
|
11861
|
-
|
|
11862
|
-
|
|
11863
|
-
cursor: not-allowed;
|
|
11864
|
-
opacity: 1;
|
|
11816
|
+
.muka-breadcrumb__item {
|
|
11817
|
+
display: inline-flex;
|
|
11818
|
+
align-items: center;
|
|
11819
|
+
gap: var(--spacing-1);
|
|
11865
11820
|
}
|
|
11866
11821
|
|
|
11867
|
-
|
|
11868
|
-
|
|
11869
|
-
|
|
11870
|
-
color: var(--
|
|
11871
|
-
border: 1px solid var(--button-color-ghost-border-default);
|
|
11822
|
+
.muka-breadcrumb__icon {
|
|
11823
|
+
display: inline-flex;
|
|
11824
|
+
align-items: center;
|
|
11825
|
+
color: var(--color-text-subtle-default);
|
|
11872
11826
|
}
|
|
11873
11827
|
|
|
11874
|
-
|
|
11875
|
-
|
|
11876
|
-
color: var(--
|
|
11877
|
-
|
|
11828
|
+
/* Link styles */
|
|
11829
|
+
.muka-breadcrumb__link {
|
|
11830
|
+
color: var(--color-text-subtle-default);
|
|
11831
|
+
text-decoration: none;
|
|
11832
|
+
border: none;
|
|
11833
|
+
background: none;
|
|
11834
|
+
padding: 0;
|
|
11835
|
+
cursor: pointer;
|
|
11836
|
+
font: inherit;
|
|
11837
|
+
transition: color 0.15s ease;
|
|
11878
11838
|
}
|
|
11879
11839
|
|
|
11880
|
-
.muka-
|
|
11881
|
-
|
|
11882
|
-
|
|
11883
|
-
.muka-button--ghost[aria-pressed="true"]:not(:disabled) {
|
|
11884
|
-
background-color: var(--button-color-ghost-background-pressed);
|
|
11885
|
-
color: var(--button-color-ghost-foreground-pressed);
|
|
11886
|
-
border-color: var(--button-color-ghost-border-pressed);
|
|
11840
|
+
.muka-breadcrumb__link:hover {
|
|
11841
|
+
color: var(--color-text-action-default);
|
|
11842
|
+
text-decoration: underline;
|
|
11887
11843
|
}
|
|
11888
11844
|
|
|
11889
|
-
|
|
11890
|
-
|
|
11891
|
-
color: var(--
|
|
11892
|
-
|
|
11893
|
-
cursor: not-allowed;
|
|
11894
|
-
opacity: 1;
|
|
11845
|
+
/* Current page (last item) */
|
|
11846
|
+
.muka-breadcrumb__current {
|
|
11847
|
+
color: var(--color-text-default-default);
|
|
11848
|
+
font-weight: 600;
|
|
11895
11849
|
}
|
|
11896
11850
|
|
|
11897
|
-
/*
|
|
11898
|
-
.muka-
|
|
11899
|
-
|
|
11900
|
-
|
|
11901
|
-
border: 1px solid var(--button-color-muted-border-default);
|
|
11851
|
+
/* Separator */
|
|
11852
|
+
.muka-breadcrumb__separator {
|
|
11853
|
+
color: var(--color-text-subtle-default);
|
|
11854
|
+
user-select: none;
|
|
11902
11855
|
}
|
|
11903
11856
|
|
|
11904
|
-
|
|
11905
|
-
|
|
11906
|
-
color: var(--
|
|
11907
|
-
border-color: var(--button-color-muted-border-hover);
|
|
11857
|
+
/* Ellipsis */
|
|
11858
|
+
.muka-breadcrumb__ellipsis {
|
|
11859
|
+
color: var(--color-text-subtle-default);
|
|
11908
11860
|
}
|
|
11909
11861
|
|
|
11910
|
-
|
|
11911
|
-
.muka-
|
|
11912
|
-
|
|
11913
|
-
|
|
11914
|
-
|
|
11915
|
-
|
|
11916
|
-
border-color: var(--button-color-muted-border-pressed);
|
|
11862
|
+
/* Size variants */
|
|
11863
|
+
.muka-breadcrumb--sm {
|
|
11864
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
11865
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
11866
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
11867
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
11917
11868
|
}
|
|
11918
11869
|
|
|
11919
|
-
.muka-
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
opacity: 1;
|
|
11870
|
+
.muka-breadcrumb--md {
|
|
11871
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
11872
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
11873
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
11874
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
11925
11875
|
}
|
|
11926
11876
|
|
|
11927
|
-
|
|
11928
|
-
|
|
11929
|
-
|
|
11930
|
-
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
/* Full width modifier */
|
|
11934
|
-
.muka-button--full-width {
|
|
11935
|
-
width: 100%;
|
|
11936
|
-
}
|
|
11937
|
-
|
|
11938
|
-
/* Icons - forced to the Figma per-size dimension regardless of the icon passed */
|
|
11939
|
-
.muka-button__icon {
|
|
11940
|
-
display: inline-flex;
|
|
11941
|
-
align-items: center;
|
|
11942
|
-
justify-content: center;
|
|
11943
|
-
flex-shrink: 0;
|
|
11944
|
-
}
|
|
11945
|
-
|
|
11946
|
-
/* Make the icon content (raw <svg> or a nested Icon span) fill the wrapper.
|
|
11947
|
-
Scoped under .muka-button to outrank Icon.css's own `.muka-icon--{size}`
|
|
11948
|
-
rule, so the button's size wins even when the icon hardcodes its own size. */
|
|
11949
|
-
.muka-button .muka-button__icon > *,
|
|
11950
|
-
.muka-button .muka-button__icon svg {
|
|
11951
|
-
width: 100%;
|
|
11952
|
-
height: 100%;
|
|
11953
|
-
display: block;
|
|
11954
|
-
}
|
|
11955
|
-
|
|
11956
|
-
.muka-button--sm .muka-button__icon {
|
|
11957
|
-
width: var(--button-icon-sm);
|
|
11958
|
-
height: var(--button-icon-sm);
|
|
11959
|
-
}
|
|
11960
|
-
|
|
11961
|
-
.muka-button--md .muka-button__icon {
|
|
11962
|
-
width: var(--button-icon-md);
|
|
11963
|
-
height: var(--button-icon-md);
|
|
11964
|
-
}
|
|
11965
|
-
|
|
11966
|
-
.muka-button--lg .muka-button__icon {
|
|
11967
|
-
width: var(--button-icon-lg);
|
|
11968
|
-
height: var(--button-icon-lg);
|
|
11969
|
-
}
|
|
11970
|
-
|
|
11971
|
-
.muka-button--xl .muka-button__icon {
|
|
11972
|
-
width: var(--button-icon-xl);
|
|
11973
|
-
height: var(--button-icon-xl);
|
|
11974
|
-
}
|
|
11975
|
-
|
|
11976
|
-
.muka-button__label {
|
|
11977
|
-
display: inline-flex;
|
|
11978
|
-
align-items: center;
|
|
11979
|
-
}
|
|
11980
|
-
|
|
11981
|
-
/* Icon-only buttons - square, sized to the button height per size */
|
|
11982
|
-
.muka-button--icon-only {
|
|
11983
|
-
padding: 0;
|
|
11984
|
-
}
|
|
11985
|
-
|
|
11986
|
-
.muka-button--icon-only.muka-button--sm {
|
|
11987
|
-
width: 32px;
|
|
11988
|
-
}
|
|
11989
|
-
|
|
11990
|
-
.muka-button--icon-only.muka-button--md {
|
|
11991
|
-
width: 40px;
|
|
11992
|
-
}
|
|
11993
|
-
|
|
11994
|
-
.muka-button--icon-only.muka-button--lg {
|
|
11995
|
-
width: 48px;
|
|
11996
|
-
}
|
|
11997
|
-
|
|
11998
|
-
.muka-button--icon-only.muka-button--xl {
|
|
11999
|
-
width: 64px;
|
|
12000
|
-
}
|
|
12001
|
-
|
|
12002
|
-
|
|
12003
|
-
/* Breadcrumb */
|
|
12004
|
-
/* Breadcrumb Component Styles */
|
|
12005
|
-
|
|
12006
|
-
.muka-breadcrumb__list {
|
|
12007
|
-
display: flex;
|
|
12008
|
-
align-items: center;
|
|
12009
|
-
flex-wrap: wrap;
|
|
12010
|
-
list-style: none;
|
|
12011
|
-
margin: 0;
|
|
12012
|
-
padding: 0;
|
|
12013
|
-
gap: var(--spacing-1);
|
|
12014
|
-
}
|
|
12015
|
-
|
|
12016
|
-
.muka-breadcrumb__item {
|
|
12017
|
-
display: inline-flex;
|
|
12018
|
-
align-items: center;
|
|
12019
|
-
gap: var(--spacing-1);
|
|
12020
|
-
}
|
|
12021
|
-
|
|
12022
|
-
.muka-breadcrumb__icon {
|
|
12023
|
-
display: inline-flex;
|
|
12024
|
-
align-items: center;
|
|
12025
|
-
color: var(--color-text-subtle-default);
|
|
12026
|
-
}
|
|
12027
|
-
|
|
12028
|
-
/* Link styles */
|
|
12029
|
-
.muka-breadcrumb__link {
|
|
12030
|
-
color: var(--color-text-subtle-default);
|
|
12031
|
-
text-decoration: none;
|
|
12032
|
-
border: none;
|
|
12033
|
-
background: none;
|
|
12034
|
-
padding: 0;
|
|
12035
|
-
cursor: pointer;
|
|
12036
|
-
font: inherit;
|
|
12037
|
-
transition: color 0.15s ease;
|
|
12038
|
-
}
|
|
12039
|
-
|
|
12040
|
-
.muka-breadcrumb__link:hover {
|
|
12041
|
-
color: var(--color-text-action-default);
|
|
12042
|
-
text-decoration: underline;
|
|
12043
|
-
}
|
|
12044
|
-
|
|
12045
|
-
/* Current page (last item) */
|
|
12046
|
-
.muka-breadcrumb__current {
|
|
12047
|
-
color: var(--color-text-default-default);
|
|
12048
|
-
font-weight: 600;
|
|
12049
|
-
}
|
|
12050
|
-
|
|
12051
|
-
/* Separator */
|
|
12052
|
-
.muka-breadcrumb__separator {
|
|
12053
|
-
color: var(--color-text-subtle-default);
|
|
12054
|
-
user-select: none;
|
|
12055
|
-
}
|
|
12056
|
-
|
|
12057
|
-
/* Ellipsis */
|
|
12058
|
-
.muka-breadcrumb__ellipsis {
|
|
12059
|
-
color: var(--color-text-subtle-default);
|
|
12060
|
-
}
|
|
12061
|
-
|
|
12062
|
-
/* Size variants */
|
|
12063
|
-
.muka-breadcrumb--sm {
|
|
12064
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
12065
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
12066
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
12067
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
12068
|
-
}
|
|
12069
|
-
|
|
12070
|
-
.muka-breadcrumb--md {
|
|
12071
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
12072
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
12073
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
12074
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
12075
|
-
}
|
|
12076
|
-
|
|
12077
|
-
.muka-breadcrumb--lg {
|
|
12078
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
12079
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
12080
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
12081
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
11877
|
+
.muka-breadcrumb--lg {
|
|
11878
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
11879
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
11880
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
11881
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
12082
11882
|
}
|
|
12083
11883
|
|
|
12084
11884
|
|
|
@@ -12386,12 +12186,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12386
12186
|
}
|
|
12387
12187
|
|
|
12388
12188
|
|
|
12389
|
-
/*
|
|
12390
|
-
/*
|
|
12189
|
+
/* BadgeNumber */
|
|
12190
|
+
/* BadgeNumber Component Styles - Using Muka Design Tokens */
|
|
12391
12191
|
|
|
12392
|
-
.muka-badge {
|
|
12192
|
+
.muka-badge-number {
|
|
12393
12193
|
display: inline-flex;
|
|
12394
12194
|
align-items: center;
|
|
12195
|
+
justify-content: center;
|
|
12395
12196
|
border-radius: var(--border-radius-full);
|
|
12396
12197
|
white-space: nowrap;
|
|
12397
12198
|
user-select: none;
|
|
@@ -12399,174 +12200,412 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12399
12200
|
}
|
|
12400
12201
|
|
|
12401
12202
|
/*
|
|
12402
|
-
* Sizes — height,
|
|
12403
|
-
*
|
|
12404
|
-
*
|
|
12405
|
-
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
12406
|
-
* --has-icon / --has-dot modifiers below.
|
|
12203
|
+
* Sizes — fixed height, matching min-width (so a single digit renders as a
|
|
12204
|
+
* circle), horizontal padding, and bold label typography. Vertical centering
|
|
12205
|
+
* is handled by the fixed height + align-items: center.
|
|
12407
12206
|
*/
|
|
12408
|
-
.muka-badge--
|
|
12409
|
-
height: var(--badge-size-
|
|
12410
|
-
|
|
12411
|
-
padding: 0 var(--badge-padding-
|
|
12412
|
-
font-family: var(--text-label-
|
|
12413
|
-
font-weight: var(--text-label-
|
|
12414
|
-
font-size: var(--text-label-
|
|
12415
|
-
line-height: var(--text-label-
|
|
12207
|
+
.muka-badge-number--2xs {
|
|
12208
|
+
height: var(--badge-number-size-2xs);
|
|
12209
|
+
min-width: var(--badge-number-size-2xs);
|
|
12210
|
+
padding: 0 var(--badge-number-padding-2xs);
|
|
12211
|
+
font-family: var(--text-label-xs-bold-fontFamily);
|
|
12212
|
+
font-weight: var(--text-label-xs-bold-fontWeight);
|
|
12213
|
+
font-size: var(--text-label-xs-bold-fontSize);
|
|
12214
|
+
line-height: var(--text-label-xs-bold-lineHeight);
|
|
12215
|
+
}
|
|
12216
|
+
|
|
12217
|
+
.muka-badge-number--xs {
|
|
12218
|
+
height: var(--badge-number-size-xs);
|
|
12219
|
+
min-width: var(--badge-number-size-xs);
|
|
12220
|
+
padding: 0 var(--badge-number-padding-xs);
|
|
12221
|
+
font-family: var(--text-label-sm-bold-fontFamily);
|
|
12222
|
+
font-weight: var(--text-label-sm-bold-fontWeight);
|
|
12223
|
+
font-size: var(--text-label-sm-bold-fontSize);
|
|
12224
|
+
line-height: var(--text-label-sm-bold-lineHeight);
|
|
12416
12225
|
}
|
|
12417
12226
|
|
|
12418
|
-
.muka-badge--
|
|
12419
|
-
height: var(--badge-size-
|
|
12420
|
-
|
|
12421
|
-
padding: 0 var(--badge-padding-
|
|
12422
|
-
font-family: var(--text-label-md-
|
|
12423
|
-
font-weight: var(--text-label-md-
|
|
12424
|
-
font-size: var(--text-label-md-
|
|
12425
|
-
line-height: var(--text-label-md-
|
|
12227
|
+
.muka-badge-number--sm {
|
|
12228
|
+
height: var(--badge-number-size-sm);
|
|
12229
|
+
min-width: var(--badge-number-size-sm);
|
|
12230
|
+
padding: 0 var(--badge-number-padding-sm);
|
|
12231
|
+
font-family: var(--text-label-md-bold-fontFamily);
|
|
12232
|
+
font-weight: var(--text-label-md-bold-fontWeight);
|
|
12233
|
+
font-size: var(--text-label-md-bold-fontSize);
|
|
12234
|
+
line-height: var(--text-label-md-bold-lineHeight);
|
|
12426
12235
|
}
|
|
12427
12236
|
|
|
12428
|
-
.muka-badge--
|
|
12429
|
-
height: var(--badge-size-
|
|
12430
|
-
|
|
12431
|
-
padding: 0 var(--badge-padding-
|
|
12432
|
-
font-family: var(--text-label-lg-
|
|
12433
|
-
font-weight: var(--text-label-lg-
|
|
12434
|
-
font-size: var(--text-label-lg-
|
|
12435
|
-
line-height: var(--text-label-lg-
|
|
12237
|
+
.muka-badge-number--md {
|
|
12238
|
+
height: var(--badge-number-size-md);
|
|
12239
|
+
min-width: var(--badge-number-size-md);
|
|
12240
|
+
padding: 0 var(--badge-number-padding-md);
|
|
12241
|
+
font-family: var(--text-label-lg-bold-fontFamily);
|
|
12242
|
+
font-weight: var(--text-label-lg-bold-fontWeight);
|
|
12243
|
+
font-size: var(--text-label-lg-bold-fontSize);
|
|
12244
|
+
line-height: var(--text-label-lg-bold-lineHeight);
|
|
12436
12245
|
}
|
|
12437
12246
|
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
padding
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
}
|
|
12447
|
-
.muka-badge--lg.muka-badge--has-icon,
|
|
12448
|
-
.muka-badge--lg.muka-badge--has-dot {
|
|
12449
|
-
padding-left: var(--badge-padding-leading-lg);
|
|
12247
|
+
.muka-badge-number--lg {
|
|
12248
|
+
height: var(--badge-number-size-lg);
|
|
12249
|
+
min-width: var(--badge-number-size-lg);
|
|
12250
|
+
padding: 0 var(--badge-number-padding-lg);
|
|
12251
|
+
font-family: var(--text-label-2xl-bold-fontFamily);
|
|
12252
|
+
font-weight: var(--text-label-2xl-bold-fontWeight);
|
|
12253
|
+
font-size: var(--text-label-2xl-bold-fontSize);
|
|
12254
|
+
line-height: var(--text-label-2xl-bold-lineHeight);
|
|
12450
12255
|
}
|
|
12451
12256
|
|
|
12452
|
-
|
|
12453
|
-
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12257
|
+
.muka-badge-number__label {
|
|
12258
|
+
/*
|
|
12259
|
+
* The badge sets a tight line-height for compact sizing, which would clip
|
|
12260
|
+
* glyph descenders; give the label a roomier line-height. Vertical centering
|
|
12261
|
+
* is unaffected because the badge height is fixed and content is centered.
|
|
12262
|
+
*/
|
|
12263
|
+
line-height: normal;
|
|
12458
12264
|
}
|
|
12459
12265
|
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
.muka-badge--md .muka-badge__icon {
|
|
12465
|
-
width: var(--icon-size-sm);
|
|
12466
|
-
height: var(--icon-size-sm);
|
|
12467
|
-
}
|
|
12468
|
-
.muka-badge--lg .muka-badge__icon {
|
|
12469
|
-
width: var(--icon-size-default);
|
|
12470
|
-
height: var(--icon-size-default);
|
|
12266
|
+
/* Neutral variant */
|
|
12267
|
+
.muka-badge-number--neutral {
|
|
12268
|
+
background-color: var(--color-surface-level1);
|
|
12269
|
+
color: var(--color-text-default-default);
|
|
12471
12270
|
}
|
|
12472
12271
|
|
|
12473
|
-
/*
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
.muka-badge__icon svg {
|
|
12478
|
-
width: 100%;
|
|
12479
|
-
height: 100%;
|
|
12272
|
+
/* Info variant */
|
|
12273
|
+
.muka-badge-number--info {
|
|
12274
|
+
background-color: var(--color-state-info-contrast);
|
|
12275
|
+
color: var(--color-text-default-inverse);
|
|
12480
12276
|
}
|
|
12481
12277
|
|
|
12482
|
-
/*
|
|
12483
|
-
.muka-badge
|
|
12484
|
-
color:
|
|
12278
|
+
/* Success variant */
|
|
12279
|
+
.muka-badge-number--success {
|
|
12280
|
+
background-color: var(--color-state-success-contrast);
|
|
12281
|
+
color: var(--color-text-default-inverse);
|
|
12485
12282
|
}
|
|
12486
12283
|
|
|
12487
|
-
/*
|
|
12488
|
-
.muka-
|
|
12489
|
-
|
|
12490
|
-
|
|
12284
|
+
/* Warning variant */
|
|
12285
|
+
.muka-badge-number--warning {
|
|
12286
|
+
background-color: var(--color-state-warning-contrast);
|
|
12287
|
+
color: var(--color-text-default-inverse);
|
|
12491
12288
|
}
|
|
12492
12289
|
|
|
12493
|
-
|
|
12494
|
-
|
|
12495
|
-
|
|
12290
|
+
/* Error variant */
|
|
12291
|
+
.muka-badge-number--error {
|
|
12292
|
+
background-color: var(--color-state-error-contrast);
|
|
12293
|
+
color: var(--color-text-default-inverse);
|
|
12496
12294
|
}
|
|
12497
12295
|
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12296
|
+
|
|
12297
|
+
/* Button */
|
|
12298
|
+
/* Button Component Styles - Using Muka Design Tokens */
|
|
12299
|
+
|
|
12300
|
+
/* Base button styles */
|
|
12301
|
+
.muka-button {
|
|
12302
|
+
/* Layout */
|
|
12303
|
+
display: inline-flex;
|
|
12304
|
+
align-items: center;
|
|
12305
|
+
justify-content: center;
|
|
12306
|
+
|
|
12307
|
+
/* Typography - using semantic tokens */
|
|
12308
|
+
font-family: var(--alias-font-brand-family);
|
|
12309
|
+
font-weight: var(--alias-font-brand-weight-semibold);
|
|
12310
|
+
text-decoration: none;
|
|
12311
|
+
|
|
12312
|
+
/* Interaction */
|
|
12313
|
+
border: none;
|
|
12314
|
+
cursor: pointer;
|
|
12315
|
+
user-select: none;
|
|
12316
|
+
transition: all 0.2s ease;
|
|
12317
|
+
|
|
12318
|
+
/* Accessibility */
|
|
12319
|
+
outline: none;
|
|
12320
|
+
position: relative;
|
|
12501
12321
|
}
|
|
12502
12322
|
|
|
12503
|
-
|
|
12504
|
-
|
|
12505
|
-
|
|
12323
|
+
/* Focus styles for accessibility */
|
|
12324
|
+
.muka-button:focus-visible {
|
|
12325
|
+
outline: 2px solid var(--color-border-focus);
|
|
12326
|
+
outline-offset: 2px;
|
|
12506
12327
|
}
|
|
12507
12328
|
|
|
12508
|
-
|
|
12509
|
-
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
|
|
12513
|
-
|
|
12514
|
-
|
|
12515
|
-
|
|
12516
|
-
|
|
12517
|
-
|
|
12518
|
-
|
|
12519
|
-
|
|
12329
|
+
/* Size variants
|
|
12330
|
+
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
12331
|
+
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
12332
|
+
the button's padding is the outer container inset, and the label's own
|
|
12333
|
+
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
12334
|
+
.muka-button--sm {
|
|
12335
|
+
padding: 0 var(--button-padding-sm-x);
|
|
12336
|
+
border-radius: var(--button-radius-sm);
|
|
12337
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12338
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12339
|
+
min-height: 32px;
|
|
12340
|
+
}
|
|
12341
|
+
|
|
12342
|
+
.muka-button--sm .muka-button__label {
|
|
12343
|
+
padding: 0 var(--button-gap-sm);
|
|
12344
|
+
}
|
|
12345
|
+
|
|
12346
|
+
.muka-button--md {
|
|
12347
|
+
padding: 0 var(--button-padding-md-x);
|
|
12348
|
+
border-radius: var(--button-radius-md);
|
|
12349
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12350
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12351
|
+
min-height: 40px;
|
|
12352
|
+
}
|
|
12353
|
+
|
|
12354
|
+
.muka-button--md .muka-button__label {
|
|
12355
|
+
padding: 0 var(--button-gap-md);
|
|
12356
|
+
}
|
|
12357
|
+
|
|
12358
|
+
.muka-button--lg {
|
|
12359
|
+
padding: 0 var(--button-padding-lg-x);
|
|
12360
|
+
border-radius: var(--button-radius-lg);
|
|
12361
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
12362
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
12363
|
+
min-height: 48px;
|
|
12364
|
+
}
|
|
12365
|
+
|
|
12366
|
+
.muka-button--lg .muka-button__label {
|
|
12367
|
+
padding: 0 var(--button-gap-lg);
|
|
12368
|
+
}
|
|
12369
|
+
|
|
12370
|
+
.muka-button--xl {
|
|
12371
|
+
padding: 0 var(--button-padding-xl-x);
|
|
12372
|
+
border-radius: var(--button-radius-xl);
|
|
12373
|
+
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
12374
|
+
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
12375
|
+
min-height: 64px;
|
|
12376
|
+
}
|
|
12377
|
+
|
|
12378
|
+
.muka-button--xl .muka-button__label {
|
|
12379
|
+
padding: 0 var(--button-gap-xl);
|
|
12380
|
+
}
|
|
12381
|
+
|
|
12382
|
+
/* Primary variant - your main CTA button */
|
|
12383
|
+
.muka-button--primary {
|
|
12384
|
+
background-color: var(--button-color-primary-background-default);
|
|
12385
|
+
color: var(--button-color-primary-foreground-default);
|
|
12386
|
+
box-shadow: var(--button-color-primary-shadow-default);
|
|
12387
|
+
}
|
|
12388
|
+
|
|
12389
|
+
.muka-button--primary:hover:not(:disabled) {
|
|
12390
|
+
background-color: var(--button-color-primary-background-hover);
|
|
12391
|
+
color: var(--button-color-primary-foreground-hover);
|
|
12392
|
+
box-shadow: var(--button-color-primary-shadow-hover);
|
|
12393
|
+
}
|
|
12394
|
+
|
|
12395
|
+
/* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
|
|
12396
|
+
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
12397
|
+
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
12398
|
+
to sighted users by the accessibility tree alone. */
|
|
12399
|
+
.muka-button--primary:active:not(:disabled),
|
|
12400
|
+
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
12401
|
+
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
12402
|
+
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
12403
|
+
background-color: var(--button-color-primary-background-pressed);
|
|
12404
|
+
color: var(--button-color-primary-foreground-pressed);
|
|
12405
|
+
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
12406
|
+
}
|
|
12407
|
+
|
|
12408
|
+
.muka-button--primary:disabled {
|
|
12409
|
+
background-color: var(--button-color-primary-background-disabled);
|
|
12410
|
+
color: var(--button-color-primary-foreground-disabled);
|
|
12411
|
+
box-shadow: var(--button-color-primary-shadow-disabled);
|
|
12412
|
+
cursor: not-allowed;
|
|
12413
|
+
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
12414
|
+
}
|
|
12415
|
+
|
|
12416
|
+
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
12417
|
+
.muka-button--secondary {
|
|
12418
|
+
background-color: var(--button-color-secondary-background-default);
|
|
12419
|
+
color: var(--button-color-secondary-foreground-default);
|
|
12420
|
+
box-shadow: var(--button-color-secondary-shadow-default);
|
|
12421
|
+
}
|
|
12422
|
+
|
|
12423
|
+
.muka-button--secondary:hover:not(:disabled) {
|
|
12424
|
+
background-color: var(--button-color-secondary-background-hover);
|
|
12425
|
+
color: var(--button-color-secondary-foreground-hover);
|
|
12426
|
+
box-shadow: var(--button-color-secondary-shadow-hover);
|
|
12427
|
+
}
|
|
12428
|
+
|
|
12429
|
+
.muka-button--secondary:active:not(:disabled),
|
|
12430
|
+
.muka-button--secondary.muka-button--pressed:not(:disabled),
|
|
12431
|
+
.muka-button--secondary[data-state="open"]:not(:disabled),
|
|
12432
|
+
.muka-button--secondary[aria-pressed="true"]:not(:disabled) {
|
|
12433
|
+
background-color: var(--button-color-secondary-background-pressed);
|
|
12434
|
+
color: var(--button-color-secondary-foreground-pressed);
|
|
12435
|
+
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
12436
|
+
}
|
|
12437
|
+
|
|
12438
|
+
.muka-button--secondary:disabled {
|
|
12439
|
+
background-color: var(--button-color-secondary-background-disabled);
|
|
12440
|
+
color: var(--button-color-secondary-foreground-disabled);
|
|
12441
|
+
box-shadow: var(--button-color-secondary-shadow-disabled);
|
|
12442
|
+
cursor: not-allowed;
|
|
12443
|
+
opacity: 1;
|
|
12444
|
+
}
|
|
12445
|
+
|
|
12446
|
+
/* Tertiary variant - tinted background with accent text and border */
|
|
12447
|
+
.muka-button--tertiary {
|
|
12448
|
+
background-color: var(--button-color-tertiary-background-default);
|
|
12449
|
+
color: var(--button-color-tertiary-foreground-default);
|
|
12450
|
+
border: 1px solid var(--button-color-tertiary-border-default);
|
|
12451
|
+
}
|
|
12452
|
+
|
|
12453
|
+
.muka-button--tertiary:hover:not(:disabled) {
|
|
12454
|
+
background-color: var(--button-color-tertiary-background-hover);
|
|
12455
|
+
color: var(--button-color-tertiary-foreground-hover);
|
|
12456
|
+
border-color: var(--button-color-tertiary-border-hover);
|
|
12457
|
+
}
|
|
12458
|
+
|
|
12459
|
+
.muka-button--tertiary:active:not(:disabled),
|
|
12460
|
+
.muka-button--tertiary.muka-button--pressed:not(:disabled),
|
|
12461
|
+
.muka-button--tertiary[data-state="open"]:not(:disabled),
|
|
12462
|
+
.muka-button--tertiary[aria-pressed="true"]:not(:disabled) {
|
|
12463
|
+
background-color: var(--button-color-tertiary-background-pressed);
|
|
12464
|
+
color: var(--button-color-tertiary-foreground-pressed);
|
|
12465
|
+
border-color: var(--button-color-tertiary-border-pressed);
|
|
12466
|
+
}
|
|
12467
|
+
|
|
12468
|
+
.muka-button--tertiary:disabled {
|
|
12469
|
+
background-color: var(--button-color-tertiary-background-disabled);
|
|
12470
|
+
color: var(--button-color-tertiary-foreground-disabled);
|
|
12471
|
+
border-color: var(--button-color-tertiary-border-disabled);
|
|
12472
|
+
cursor: not-allowed;
|
|
12473
|
+
opacity: 1;
|
|
12474
|
+
}
|
|
12475
|
+
|
|
12476
|
+
/* Ghost variant - minimal styling, border appears on hover */
|
|
12477
|
+
.muka-button--ghost {
|
|
12478
|
+
background-color: var(--button-color-ghost-background-default);
|
|
12479
|
+
color: var(--button-color-ghost-foreground-default);
|
|
12480
|
+
border: 1px solid var(--button-color-ghost-border-default);
|
|
12481
|
+
}
|
|
12482
|
+
|
|
12483
|
+
.muka-button--ghost:hover:not(:disabled) {
|
|
12484
|
+
background-color: var(--button-color-ghost-background-hover);
|
|
12485
|
+
color: var(--button-color-ghost-foreground-hover);
|
|
12486
|
+
border-color: var(--button-color-ghost-border-hover);
|
|
12487
|
+
}
|
|
12488
|
+
|
|
12489
|
+
.muka-button--ghost:active:not(:disabled),
|
|
12490
|
+
.muka-button--ghost.muka-button--pressed:not(:disabled),
|
|
12491
|
+
.muka-button--ghost[data-state="open"]:not(:disabled),
|
|
12492
|
+
.muka-button--ghost[aria-pressed="true"]:not(:disabled) {
|
|
12493
|
+
background-color: var(--button-color-ghost-background-pressed);
|
|
12494
|
+
color: var(--button-color-ghost-foreground-pressed);
|
|
12495
|
+
border-color: var(--button-color-ghost-border-pressed);
|
|
12496
|
+
}
|
|
12497
|
+
|
|
12498
|
+
.muka-button--ghost:disabled {
|
|
12499
|
+
background-color: var(--button-color-ghost-background-disabled);
|
|
12500
|
+
color: var(--button-color-ghost-foreground-disabled);
|
|
12501
|
+
border-color: var(--button-color-ghost-border-disabled);
|
|
12502
|
+
cursor: not-allowed;
|
|
12503
|
+
opacity: 1;
|
|
12504
|
+
}
|
|
12505
|
+
|
|
12506
|
+
/* Muted variant - same as ghost but resting foreground is subtle, darkens on interaction */
|
|
12507
|
+
.muka-button--muted {
|
|
12508
|
+
background-color: var(--button-color-muted-background-default);
|
|
12509
|
+
color: var(--button-color-muted-foreground-default);
|
|
12510
|
+
border: 1px solid var(--button-color-muted-border-default);
|
|
12511
|
+
}
|
|
12512
|
+
|
|
12513
|
+
.muka-button--muted:hover:not(:disabled) {
|
|
12514
|
+
background-color: var(--button-color-muted-background-hover);
|
|
12515
|
+
color: var(--button-color-muted-foreground-hover);
|
|
12516
|
+
border-color: var(--button-color-muted-border-hover);
|
|
12517
|
+
}
|
|
12518
|
+
|
|
12519
|
+
.muka-button--muted:active:not(:disabled),
|
|
12520
|
+
.muka-button--muted.muka-button--pressed:not(:disabled),
|
|
12521
|
+
.muka-button--muted[data-state="open"]:not(:disabled),
|
|
12522
|
+
.muka-button--muted[aria-pressed="true"]:not(:disabled) {
|
|
12523
|
+
background-color: var(--button-color-muted-background-pressed);
|
|
12524
|
+
color: var(--button-color-muted-foreground-pressed);
|
|
12525
|
+
border-color: var(--button-color-muted-border-pressed);
|
|
12526
|
+
}
|
|
12527
|
+
|
|
12528
|
+
.muka-button--muted:disabled {
|
|
12529
|
+
background-color: var(--button-color-muted-background-disabled);
|
|
12530
|
+
color: var(--button-color-muted-foreground-disabled);
|
|
12531
|
+
border-color: var(--button-color-muted-border-disabled);
|
|
12532
|
+
cursor: not-allowed;
|
|
12533
|
+
opacity: 1;
|
|
12534
|
+
}
|
|
12535
|
+
|
|
12536
|
+
/* General disabled state - fallback */
|
|
12537
|
+
.muka-button:disabled {
|
|
12538
|
+
cursor: not-allowed;
|
|
12539
|
+
pointer-events: none;
|
|
12540
|
+
}
|
|
12541
|
+
|
|
12542
|
+
/* Full width modifier */
|
|
12543
|
+
.muka-button--full-width {
|
|
12544
|
+
width: 100%;
|
|
12545
|
+
}
|
|
12546
|
+
|
|
12547
|
+
/* Icons - forced to the Figma per-size dimension regardless of the icon passed */
|
|
12548
|
+
.muka-button__icon {
|
|
12549
|
+
display: inline-flex;
|
|
12550
|
+
align-items: center;
|
|
12551
|
+
justify-content: center;
|
|
12552
|
+
flex-shrink: 0;
|
|
12553
|
+
}
|
|
12554
|
+
|
|
12555
|
+
/* Make the icon content (raw <svg> or a nested Icon span) fill the wrapper.
|
|
12556
|
+
Scoped under .muka-button to outrank Icon.css's own `.muka-icon--{size}`
|
|
12557
|
+
rule, so the button's size wins even when the icon hardcodes its own size. */
|
|
12558
|
+
.muka-button .muka-button__icon > *,
|
|
12559
|
+
.muka-button .muka-button__icon svg {
|
|
12560
|
+
width: 100%;
|
|
12561
|
+
height: 100%;
|
|
12562
|
+
display: block;
|
|
12520
12563
|
}
|
|
12521
12564
|
|
|
12522
|
-
|
|
12523
|
-
|
|
12524
|
-
|
|
12525
|
-
color: var(--color-text-default-default);
|
|
12565
|
+
.muka-button--sm .muka-button__icon {
|
|
12566
|
+
width: var(--button-icon-sm);
|
|
12567
|
+
height: var(--button-icon-sm);
|
|
12526
12568
|
}
|
|
12527
12569
|
|
|
12528
|
-
.muka-
|
|
12529
|
-
|
|
12570
|
+
.muka-button--md .muka-button__icon {
|
|
12571
|
+
width: var(--button-icon-md);
|
|
12572
|
+
height: var(--button-icon-md);
|
|
12530
12573
|
}
|
|
12531
12574
|
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
|
|
12535
|
-
color: var(--color-state-info-contrast);
|
|
12575
|
+
.muka-button--lg .muka-button__icon {
|
|
12576
|
+
width: var(--button-icon-lg);
|
|
12577
|
+
height: var(--button-icon-lg);
|
|
12536
12578
|
}
|
|
12537
12579
|
|
|
12538
|
-
.muka-
|
|
12539
|
-
|
|
12580
|
+
.muka-button--xl .muka-button__icon {
|
|
12581
|
+
width: var(--button-icon-xl);
|
|
12582
|
+
height: var(--button-icon-xl);
|
|
12540
12583
|
}
|
|
12541
12584
|
|
|
12542
|
-
|
|
12543
|
-
|
|
12544
|
-
|
|
12545
|
-
color: var(--color-state-success-contrast);
|
|
12585
|
+
.muka-button__label {
|
|
12586
|
+
display: inline-flex;
|
|
12587
|
+
align-items: center;
|
|
12546
12588
|
}
|
|
12547
12589
|
|
|
12548
|
-
|
|
12549
|
-
|
|
12590
|
+
/* Icon-only buttons - square, sized to the button height per size */
|
|
12591
|
+
.muka-button--icon-only {
|
|
12592
|
+
padding: 0;
|
|
12550
12593
|
}
|
|
12551
12594
|
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
background-color: var(--color-state-warning-background);
|
|
12555
|
-
color: var(--color-state-warning-contrast);
|
|
12595
|
+
.muka-button--icon-only.muka-button--sm {
|
|
12596
|
+
width: 32px;
|
|
12556
12597
|
}
|
|
12557
12598
|
|
|
12558
|
-
.muka-
|
|
12559
|
-
|
|
12599
|
+
.muka-button--icon-only.muka-button--md {
|
|
12600
|
+
width: 40px;
|
|
12560
12601
|
}
|
|
12561
12602
|
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
background-color: var(--color-state-error-background);
|
|
12565
|
-
color: var(--color-state-error-contrast);
|
|
12603
|
+
.muka-button--icon-only.muka-button--lg {
|
|
12604
|
+
width: 48px;
|
|
12566
12605
|
}
|
|
12567
12606
|
|
|
12568
|
-
.muka-
|
|
12569
|
-
|
|
12607
|
+
.muka-button--icon-only.muka-button--xl {
|
|
12608
|
+
width: 64px;
|
|
12570
12609
|
}
|
|
12571
12610
|
|
|
12572
12611
|
|
|
@@ -13042,98 +13081,282 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13042
13081
|
height: var(--alert-icon-size);
|
|
13043
13082
|
}
|
|
13044
13083
|
|
|
13045
|
-
.muka-alert__icon svg {
|
|
13046
|
-
width: 100%;
|
|
13047
|
-
height: 100%;
|
|
13084
|
+
.muka-alert__icon svg {
|
|
13085
|
+
width: 100%;
|
|
13086
|
+
height: 100%;
|
|
13087
|
+
}
|
|
13088
|
+
|
|
13089
|
+
/* The leading icon and the dismiss (×) icon inherit the variant accent set on
|
|
13090
|
+
their container, overriding the Icon component's default color. */
|
|
13091
|
+
.muka-alert__icon .muka-icon,
|
|
13092
|
+
.muka-alert__dismiss .muka-icon {
|
|
13093
|
+
color: inherit;
|
|
13094
|
+
}
|
|
13095
|
+
|
|
13096
|
+
/* Content */
|
|
13097
|
+
.muka-alert__content {
|
|
13098
|
+
flex: 1;
|
|
13099
|
+
min-width: 0;
|
|
13100
|
+
}
|
|
13101
|
+
|
|
13102
|
+
.muka-alert__title {
|
|
13103
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13104
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13105
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13106
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13107
|
+
margin-bottom: var(--spacing-1);
|
|
13108
|
+
}
|
|
13109
|
+
|
|
13110
|
+
.muka-alert--sm .muka-alert__title {
|
|
13111
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
13112
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
13113
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
13114
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
13115
|
+
}
|
|
13116
|
+
|
|
13117
|
+
.muka-alert--lg .muka-alert__title {
|
|
13118
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
13119
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
13120
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
13121
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
13122
|
+
}
|
|
13123
|
+
|
|
13124
|
+
.muka-alert__message {
|
|
13125
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13126
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13127
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
13128
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13129
|
+
}
|
|
13130
|
+
|
|
13131
|
+
.muka-alert--lg .muka-alert__message {
|
|
13132
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
13133
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
13134
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
13135
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
13136
|
+
}
|
|
13137
|
+
|
|
13138
|
+
/* Action slot */
|
|
13139
|
+
.muka-alert__action {
|
|
13140
|
+
display: flex;
|
|
13141
|
+
align-items: center;
|
|
13142
|
+
flex-shrink: 0;
|
|
13143
|
+
}
|
|
13144
|
+
|
|
13145
|
+
/* Dismiss button - uses accent color per variant, aligned with icon row */
|
|
13146
|
+
.muka-alert__dismiss {
|
|
13147
|
+
display: flex;
|
|
13148
|
+
align-items: center;
|
|
13149
|
+
justify-content: center;
|
|
13150
|
+
flex-shrink: 0;
|
|
13151
|
+
align-self: flex-start;
|
|
13152
|
+
width: 24px;
|
|
13153
|
+
height: 24px;
|
|
13154
|
+
padding: 0;
|
|
13155
|
+
margin: 0 0 0 auto;
|
|
13156
|
+
border: none;
|
|
13157
|
+
background: transparent;
|
|
13158
|
+
cursor: pointer;
|
|
13159
|
+
border-radius: var(--border-radius-sm);
|
|
13160
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13161
|
+
}
|
|
13162
|
+
|
|
13163
|
+
.muka-alert__dismiss:hover {
|
|
13164
|
+
opacity: 0.85;
|
|
13165
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
13166
|
+
}
|
|
13167
|
+
|
|
13168
|
+
.muka-alert__dismiss:focus-visible {
|
|
13169
|
+
outline: 2px solid var(--color-border-focus);
|
|
13170
|
+
outline-offset: 2px;
|
|
13171
|
+
}
|
|
13172
|
+
|
|
13173
|
+
.muka-alert__dismiss svg {
|
|
13174
|
+
width: 16px;
|
|
13175
|
+
height: 16px;
|
|
13176
|
+
}
|
|
13177
|
+
|
|
13178
|
+
|
|
13179
|
+
/* Badge */
|
|
13180
|
+
/* Badge Component Styles - Using Muka Design Tokens */
|
|
13181
|
+
|
|
13182
|
+
.muka-badge {
|
|
13183
|
+
display: inline-flex;
|
|
13184
|
+
align-items: center;
|
|
13185
|
+
border-radius: var(--border-radius-full);
|
|
13186
|
+
white-space: nowrap;
|
|
13187
|
+
user-select: none;
|
|
13188
|
+
box-sizing: border-box;
|
|
13189
|
+
}
|
|
13190
|
+
|
|
13191
|
+
/*
|
|
13192
|
+
* Sizes — height, gap, type, and default (label-edge) horizontal padding.
|
|
13193
|
+
* Mirrors Chip so the two components share sizing, fonts, and spacing.
|
|
13194
|
+
* Vertical centering is handled by the fixed height + align-items: center.
|
|
13195
|
+
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
13196
|
+
* --has-icon / --has-dot modifiers below.
|
|
13197
|
+
*/
|
|
13198
|
+
.muka-badge--sm {
|
|
13199
|
+
height: var(--badge-size-height-sm);
|
|
13200
|
+
gap: var(--badge-gap-sm);
|
|
13201
|
+
padding: 0 var(--badge-padding-label-sm);
|
|
13202
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
13203
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
13204
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
13205
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
13206
|
+
}
|
|
13207
|
+
|
|
13208
|
+
.muka-badge--md {
|
|
13209
|
+
height: var(--badge-size-height-md);
|
|
13210
|
+
gap: var(--badge-gap-md);
|
|
13211
|
+
padding: 0 var(--badge-padding-label-md);
|
|
13212
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
13213
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
13214
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
13215
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
13216
|
+
}
|
|
13217
|
+
|
|
13218
|
+
.muka-badge--lg {
|
|
13219
|
+
height: var(--badge-size-height-lg);
|
|
13220
|
+
gap: var(--badge-gap-lg);
|
|
13221
|
+
padding: 0 var(--badge-padding-label-lg);
|
|
13222
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
13223
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
13224
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
13225
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
13226
|
+
}
|
|
13227
|
+
|
|
13228
|
+
/* Tighter leading padding when a leading icon or dot is present */
|
|
13229
|
+
.muka-badge--sm.muka-badge--has-icon,
|
|
13230
|
+
.muka-badge--sm.muka-badge--has-dot {
|
|
13231
|
+
padding-left: var(--badge-padding-leading-sm);
|
|
13232
|
+
}
|
|
13233
|
+
.muka-badge--md.muka-badge--has-icon,
|
|
13234
|
+
.muka-badge--md.muka-badge--has-dot {
|
|
13235
|
+
padding-left: var(--badge-padding-leading-md);
|
|
13236
|
+
}
|
|
13237
|
+
.muka-badge--lg.muka-badge--has-icon,
|
|
13238
|
+
.muka-badge--lg.muka-badge--has-dot {
|
|
13239
|
+
padding-left: var(--badge-padding-leading-lg);
|
|
13240
|
+
}
|
|
13241
|
+
|
|
13242
|
+
/* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
|
|
13243
|
+
.muka-badge__icon {
|
|
13244
|
+
display: inline-flex;
|
|
13245
|
+
align-items: center;
|
|
13246
|
+
justify-content: center;
|
|
13247
|
+
flex-shrink: 0;
|
|
13248
|
+
}
|
|
13249
|
+
|
|
13250
|
+
.muka-badge--sm .muka-badge__icon {
|
|
13251
|
+
width: var(--icon-size-xs);
|
|
13252
|
+
height: var(--icon-size-xs);
|
|
13253
|
+
}
|
|
13254
|
+
.muka-badge--md .muka-badge__icon {
|
|
13255
|
+
width: var(--icon-size-sm);
|
|
13256
|
+
height: var(--icon-size-sm);
|
|
13257
|
+
}
|
|
13258
|
+
.muka-badge--lg .muka-badge__icon {
|
|
13259
|
+
width: var(--icon-size-default);
|
|
13260
|
+
height: var(--icon-size-default);
|
|
13261
|
+
}
|
|
13262
|
+
|
|
13263
|
+
/* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
|
|
13264
|
+
so callers don't have to size the icon to match each badge size. The
|
|
13265
|
+
.muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
|
|
13266
|
+
.muka-badge__icon .muka-icon,
|
|
13267
|
+
.muka-badge__icon svg {
|
|
13268
|
+
width: 100%;
|
|
13269
|
+
height: 100%;
|
|
13270
|
+
}
|
|
13271
|
+
|
|
13272
|
+
/* Icons inherit the badge's per-variant foreground color */
|
|
13273
|
+
.muka-badge .muka-icon {
|
|
13274
|
+
color: inherit;
|
|
13275
|
+
}
|
|
13276
|
+
|
|
13277
|
+
/* Dot indicator */
|
|
13278
|
+
.muka-badge__dot {
|
|
13279
|
+
flex-shrink: 0;
|
|
13280
|
+
border-radius: var(--border-radius-full);
|
|
13281
|
+
}
|
|
13282
|
+
|
|
13283
|
+
.muka-badge--sm .muka-badge__dot {
|
|
13284
|
+
width: var(--badge-size-dot-sm);
|
|
13285
|
+
height: var(--badge-size-dot-sm);
|
|
13286
|
+
}
|
|
13287
|
+
|
|
13288
|
+
.muka-badge--md .muka-badge__dot {
|
|
13289
|
+
width: var(--badge-size-dot-md);
|
|
13290
|
+
height: var(--badge-size-dot-md);
|
|
13048
13291
|
}
|
|
13049
13292
|
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
.muka-alert__dismiss .muka-icon {
|
|
13054
|
-
color: inherit;
|
|
13293
|
+
.muka-badge--lg .muka-badge__dot {
|
|
13294
|
+
width: var(--badge-size-dot-lg);
|
|
13295
|
+
height: var(--badge-size-dot-lg);
|
|
13055
13296
|
}
|
|
13056
13297
|
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
flex: 1;
|
|
13298
|
+
.muka-badge__label {
|
|
13299
|
+
flex: 0 1 auto;
|
|
13060
13300
|
min-width: 0;
|
|
13301
|
+
overflow: hidden;
|
|
13302
|
+
text-overflow: ellipsis;
|
|
13303
|
+
/*
|
|
13304
|
+
* The badge sets a tight line-height for compact sizing, but the label's
|
|
13305
|
+
* `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
|
|
13306
|
+
* label its own roomier line-height so descenders render; vertical centering is unaffected
|
|
13307
|
+
* because the badge height is fixed and content is centered via align-items: center.
|
|
13308
|
+
*/
|
|
13309
|
+
line-height: normal;
|
|
13061
13310
|
}
|
|
13062
13311
|
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13068
|
-
margin-bottom: var(--spacing-1);
|
|
13312
|
+
/* Neutral variant */
|
|
13313
|
+
.muka-badge--neutral {
|
|
13314
|
+
background-color: var(--color-surface-level1);
|
|
13315
|
+
color: var(--color-text-default-default);
|
|
13069
13316
|
}
|
|
13070
13317
|
|
|
13071
|
-
.muka-
|
|
13072
|
-
|
|
13073
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
13074
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
13075
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
13318
|
+
.muka-badge--neutral .muka-badge__dot {
|
|
13319
|
+
background-color: var(--color-text-subtle-default);
|
|
13076
13320
|
}
|
|
13077
13321
|
|
|
13078
|
-
|
|
13079
|
-
|
|
13080
|
-
|
|
13081
|
-
|
|
13082
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
13322
|
+
/* Info variant */
|
|
13323
|
+
.muka-badge--info {
|
|
13324
|
+
background-color: var(--color-state-info-background);
|
|
13325
|
+
color: var(--color-state-info-contrast);
|
|
13083
13326
|
}
|
|
13084
13327
|
|
|
13085
|
-
.muka-
|
|
13086
|
-
|
|
13087
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13088
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
13089
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13328
|
+
.muka-badge--info .muka-badge__dot {
|
|
13329
|
+
background-color: var(--color-state-info-default);
|
|
13090
13330
|
}
|
|
13091
13331
|
|
|
13092
|
-
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
13332
|
+
/* Success variant */
|
|
13333
|
+
.muka-badge--success {
|
|
13334
|
+
background-color: var(--color-state-success-background);
|
|
13335
|
+
color: var(--color-state-success-contrast);
|
|
13097
13336
|
}
|
|
13098
13337
|
|
|
13099
|
-
|
|
13100
|
-
|
|
13101
|
-
display: flex;
|
|
13102
|
-
align-items: center;
|
|
13103
|
-
flex-shrink: 0;
|
|
13338
|
+
.muka-badge--success .muka-badge__dot {
|
|
13339
|
+
background-color: var(--color-state-success-default);
|
|
13104
13340
|
}
|
|
13105
13341
|
|
|
13106
|
-
/*
|
|
13107
|
-
.muka-
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
justify-content: center;
|
|
13111
|
-
flex-shrink: 0;
|
|
13112
|
-
align-self: flex-start;
|
|
13113
|
-
width: 24px;
|
|
13114
|
-
height: 24px;
|
|
13115
|
-
padding: 0;
|
|
13116
|
-
margin: 0 0 0 auto;
|
|
13117
|
-
border: none;
|
|
13118
|
-
background: transparent;
|
|
13119
|
-
cursor: pointer;
|
|
13120
|
-
border-radius: var(--border-radius-sm);
|
|
13121
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13342
|
+
/* Warning variant */
|
|
13343
|
+
.muka-badge--warning {
|
|
13344
|
+
background-color: var(--color-state-warning-background);
|
|
13345
|
+
color: var(--color-state-warning-contrast);
|
|
13122
13346
|
}
|
|
13123
13347
|
|
|
13124
|
-
.muka-
|
|
13125
|
-
|
|
13126
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
13348
|
+
.muka-badge--warning .muka-badge__dot {
|
|
13349
|
+
background-color: var(--color-state-warning-default);
|
|
13127
13350
|
}
|
|
13128
13351
|
|
|
13129
|
-
|
|
13130
|
-
|
|
13131
|
-
|
|
13352
|
+
/* Error variant */
|
|
13353
|
+
.muka-badge--error {
|
|
13354
|
+
background-color: var(--color-state-error-background);
|
|
13355
|
+
color: var(--color-state-error-contrast);
|
|
13132
13356
|
}
|
|
13133
13357
|
|
|
13134
|
-
.muka-
|
|
13135
|
-
|
|
13136
|
-
height: 16px;
|
|
13358
|
+
.muka-badge--error .muka-badge__dot {
|
|
13359
|
+
background-color: var(--color-state-error-default);
|
|
13137
13360
|
}
|
|
13138
13361
|
|
|
13139
13362
|
|
|
@@ -13209,100 +13432,231 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13209
13432
|
|
|
13210
13433
|
/* ─── Single task row ──────────────────────────────────── */
|
|
13211
13434
|
|
|
13212
|
-
.muka-agent-task-list__task {
|
|
13213
|
-
display: flex;
|
|
13214
|
-
align-items: stretch;
|
|
13215
|
-
gap: var(--spacing-4);
|
|
13216
|
-
min-height: 32px;
|
|
13217
|
-
padding: 0;
|
|
13435
|
+
.muka-agent-task-list__task {
|
|
13436
|
+
display: flex;
|
|
13437
|
+
align-items: stretch;
|
|
13438
|
+
gap: var(--spacing-4);
|
|
13439
|
+
min-height: 32px;
|
|
13440
|
+
padding: 0;
|
|
13441
|
+
}
|
|
13442
|
+
|
|
13443
|
+
/* ─── Bullet column (icon + timeline connector) ────────── */
|
|
13444
|
+
|
|
13445
|
+
.muka-agent-task-list__bullet {
|
|
13446
|
+
position: relative;
|
|
13447
|
+
flex-shrink: 0;
|
|
13448
|
+
width: 16px;
|
|
13449
|
+
align-self: stretch;
|
|
13450
|
+
}
|
|
13451
|
+
|
|
13452
|
+
.muka-agent-task-list__line {
|
|
13453
|
+
position: absolute;
|
|
13454
|
+
left: 7px;
|
|
13455
|
+
width: 1px;
|
|
13456
|
+
background-color: var(--color-border-default);
|
|
13457
|
+
}
|
|
13458
|
+
|
|
13459
|
+
.muka-agent-task-list__line--top {
|
|
13460
|
+
top: 0;
|
|
13461
|
+
height: 6px;
|
|
13462
|
+
}
|
|
13463
|
+
|
|
13464
|
+
.muka-agent-task-list__line--bottom {
|
|
13465
|
+
top: 32px;
|
|
13466
|
+
bottom: 0;
|
|
13467
|
+
}
|
|
13468
|
+
|
|
13469
|
+
.muka-agent-task-list__task:first-child .muka-agent-task-list__line--top {
|
|
13470
|
+
display: none;
|
|
13471
|
+
}
|
|
13472
|
+
|
|
13473
|
+
.muka-agent-task-list__task:last-child .muka-agent-task-list__line--bottom {
|
|
13474
|
+
display: none;
|
|
13475
|
+
}
|
|
13476
|
+
|
|
13477
|
+
.muka-agent-task-list__icon {
|
|
13478
|
+
position: absolute;
|
|
13479
|
+
top: 8px;
|
|
13480
|
+
left: 0;
|
|
13481
|
+
width: 16px;
|
|
13482
|
+
height: 16px;
|
|
13483
|
+
display: inline-flex;
|
|
13484
|
+
align-items: center;
|
|
13485
|
+
justify-content: center;
|
|
13486
|
+
color: var(--color-text-subtle-default);
|
|
13487
|
+
z-index: 1;
|
|
13488
|
+
}
|
|
13489
|
+
|
|
13490
|
+
/* ─── State color treatments ───────────────────────────── */
|
|
13491
|
+
|
|
13492
|
+
.muka-agent-task-list__task[data-state='active'] .muka-agent-task-list__icon {
|
|
13493
|
+
color: var(--color-action-default);
|
|
13494
|
+
}
|
|
13495
|
+
|
|
13496
|
+
.muka-agent-task-list__task[data-state='done'] .muka-agent-task-list__icon {
|
|
13497
|
+
color: var(--color-text-subtle-default);
|
|
13498
|
+
}
|
|
13499
|
+
|
|
13500
|
+
.muka-agent-task-list__task[data-state='pending'] .muka-agent-task-list__icon {
|
|
13501
|
+
color: var(--color-text-muted-default, var(--color-text-subtle-default));
|
|
13502
|
+
opacity: 0.6;
|
|
13503
|
+
}
|
|
13504
|
+
|
|
13505
|
+
/* ─── Label ────────────────────────────────────────────── */
|
|
13506
|
+
|
|
13507
|
+
.muka-agent-task-list__label {
|
|
13508
|
+
flex: 1 1 0;
|
|
13509
|
+
min-width: 0;
|
|
13510
|
+
padding: var(--spacing-2) 0;
|
|
13511
|
+
color: var(--color-text-subtle-default);
|
|
13512
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13513
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13514
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
13515
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13516
|
+
word-break: break-word;
|
|
13517
|
+
}
|
|
13518
|
+
|
|
13519
|
+
/* ─── Print ────────────────────────────────────────────── */
|
|
13520
|
+
|
|
13521
|
+
@media print {
|
|
13522
|
+
.muka-agent-task-list {
|
|
13523
|
+
break-inside: avoid;
|
|
13524
|
+
}
|
|
13525
|
+
|
|
13526
|
+
.muka-agent-task-list__chevron {
|
|
13527
|
+
display: none;
|
|
13528
|
+
}
|
|
13529
|
+
}
|
|
13530
|
+
|
|
13531
|
+
|
|
13532
|
+
/* Accordion */
|
|
13533
|
+
/* Accordion Component Styles */
|
|
13534
|
+
|
|
13535
|
+
.muka-accordion {
|
|
13536
|
+
width: 100%;
|
|
13537
|
+
}
|
|
13538
|
+
|
|
13539
|
+
/* Item */
|
|
13540
|
+
.muka-accordion__item {
|
|
13541
|
+
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
13542
|
+
}
|
|
13543
|
+
|
|
13544
|
+
.muka-accordion__item:last-child {
|
|
13545
|
+
border-bottom: none;
|
|
13546
|
+
}
|
|
13547
|
+
|
|
13548
|
+
/* Header reset */
|
|
13549
|
+
.muka-accordion__header {
|
|
13550
|
+
margin: 0;
|
|
13551
|
+
}
|
|
13552
|
+
|
|
13553
|
+
/* Trigger */
|
|
13554
|
+
.muka-accordion__trigger {
|
|
13555
|
+
display: flex;
|
|
13556
|
+
align-items: center;
|
|
13557
|
+
justify-content: space-between;
|
|
13558
|
+
width: 100%;
|
|
13559
|
+
padding: var(--spacing-4);
|
|
13560
|
+
background: none;
|
|
13561
|
+
border: none;
|
|
13562
|
+
cursor: pointer;
|
|
13563
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13564
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13565
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13566
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13567
|
+
color: var(--color-text-default-default);
|
|
13568
|
+
text-align: left;
|
|
13569
|
+
gap: var(--spacing-3);
|
|
13570
|
+
transition: background-color 0.15s ease;
|
|
13571
|
+
}
|
|
13572
|
+
|
|
13573
|
+
.muka-accordion__trigger:hover {
|
|
13574
|
+
background-color: var(--color-surface-level1);
|
|
13218
13575
|
}
|
|
13219
13576
|
|
|
13220
|
-
|
|
13577
|
+
.muka-accordion__trigger[data-disabled] {
|
|
13578
|
+
cursor: not-allowed;
|
|
13579
|
+
opacity: 0.4;
|
|
13580
|
+
}
|
|
13221
13581
|
|
|
13222
|
-
.muka-
|
|
13223
|
-
|
|
13224
|
-
flex-shrink: 0;
|
|
13225
|
-
width: 16px;
|
|
13226
|
-
align-self: stretch;
|
|
13582
|
+
.muka-accordion__trigger-text {
|
|
13583
|
+
flex: 1;
|
|
13227
13584
|
}
|
|
13228
13585
|
|
|
13229
|
-
|
|
13230
|
-
|
|
13231
|
-
|
|
13232
|
-
|
|
13233
|
-
|
|
13586
|
+
/* Chevron rotation */
|
|
13587
|
+
.muka-accordion__chevron {
|
|
13588
|
+
display: inline-flex;
|
|
13589
|
+
align-items: center;
|
|
13590
|
+
color: var(--color-text-subtle-default);
|
|
13591
|
+
transition: transform 200ms ease;
|
|
13234
13592
|
}
|
|
13235
13593
|
|
|
13236
|
-
.muka-
|
|
13237
|
-
|
|
13238
|
-
height: 6px;
|
|
13594
|
+
.muka-accordion__trigger[data-state='open'] .muka-accordion__chevron {
|
|
13595
|
+
transform: rotate(180deg);
|
|
13239
13596
|
}
|
|
13240
13597
|
|
|
13241
|
-
|
|
13242
|
-
|
|
13243
|
-
|
|
13598
|
+
/* Content */
|
|
13599
|
+
.muka-accordion__content {
|
|
13600
|
+
overflow: hidden;
|
|
13244
13601
|
}
|
|
13245
13602
|
|
|
13246
|
-
.muka-
|
|
13247
|
-
|
|
13603
|
+
.muka-accordion__content[data-state='open'] {
|
|
13604
|
+
animation: muka-accordion-slideDown 200ms ease;
|
|
13248
13605
|
}
|
|
13249
13606
|
|
|
13250
|
-
.muka-
|
|
13251
|
-
|
|
13607
|
+
.muka-accordion__content[data-state='closed'] {
|
|
13608
|
+
animation: muka-accordion-slideUp 200ms ease;
|
|
13252
13609
|
}
|
|
13253
13610
|
|
|
13254
|
-
|
|
13255
|
-
|
|
13256
|
-
|
|
13257
|
-
|
|
13258
|
-
|
|
13259
|
-
|
|
13260
|
-
|
|
13261
|
-
align-items: center;
|
|
13262
|
-
justify-content: center;
|
|
13263
|
-
color: var(--color-text-subtle-default);
|
|
13264
|
-
z-index: 1;
|
|
13611
|
+
@keyframes muka-accordion-slideDown {
|
|
13612
|
+
from {
|
|
13613
|
+
height: 0;
|
|
13614
|
+
}
|
|
13615
|
+
to {
|
|
13616
|
+
height: var(--radix-accordion-content-height);
|
|
13617
|
+
}
|
|
13265
13618
|
}
|
|
13266
13619
|
|
|
13267
|
-
|
|
13620
|
+
@keyframes muka-accordion-slideUp {
|
|
13621
|
+
from {
|
|
13622
|
+
height: var(--radix-accordion-content-height);
|
|
13623
|
+
}
|
|
13624
|
+
to {
|
|
13625
|
+
height: 0;
|
|
13626
|
+
}
|
|
13627
|
+
}
|
|
13268
13628
|
|
|
13269
|
-
.muka-
|
|
13270
|
-
|
|
13629
|
+
.muka-accordion__content-inner {
|
|
13630
|
+
padding: 0 var(--spacing-4) var(--spacing-5);
|
|
13631
|
+
color: var(--color-text-default-default);
|
|
13271
13632
|
}
|
|
13272
13633
|
|
|
13273
|
-
|
|
13274
|
-
|
|
13634
|
+
/* ─── Variant: flush ────────────────────────────────────────────────────── */
|
|
13635
|
+
|
|
13636
|
+
.muka-accordion--flush .muka-accordion__trigger {
|
|
13637
|
+
padding-left: 0;
|
|
13638
|
+
padding-right: 0;
|
|
13275
13639
|
}
|
|
13276
13640
|
|
|
13277
|
-
.muka-
|
|
13278
|
-
|
|
13279
|
-
|
|
13641
|
+
.muka-accordion--flush .muka-accordion__content-inner {
|
|
13642
|
+
padding-left: 0;
|
|
13643
|
+
padding-right: 0;
|
|
13280
13644
|
}
|
|
13281
13645
|
|
|
13282
|
-
/* ───
|
|
13646
|
+
/* ─── Variant: contained ────────────────────────────────────────────────── */
|
|
13283
13647
|
|
|
13284
|
-
.muka-
|
|
13285
|
-
|
|
13286
|
-
|
|
13287
|
-
|
|
13288
|
-
color: var(--color-text-subtle-default);
|
|
13289
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13290
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13291
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
13292
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13293
|
-
word-break: break-word;
|
|
13648
|
+
.muka-accordion--contained {
|
|
13649
|
+
border: var(--border-width-regular) solid var(--color-border-default);
|
|
13650
|
+
border-radius: var(--radius-md);
|
|
13651
|
+
overflow: hidden;
|
|
13294
13652
|
}
|
|
13295
13653
|
|
|
13296
|
-
|
|
13297
|
-
|
|
13298
|
-
|
|
13299
|
-
.muka-agent-task-list {
|
|
13300
|
-
break-inside: avoid;
|
|
13301
|
-
}
|
|
13654
|
+
.muka-accordion--contained .muka-accordion__item {
|
|
13655
|
+
background-color: var(--color-surface-level3);
|
|
13656
|
+
}
|
|
13302
13657
|
|
|
13303
|
-
|
|
13304
|
-
|
|
13305
|
-
}
|
|
13658
|
+
.muka-accordion--contained .muka-accordion__item:last-child {
|
|
13659
|
+
border-bottom: none;
|
|
13306
13660
|
}
|
|
13307
13661
|
|
|
13308
13662
|
|
|
@@ -13447,134 +13801,3 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13447
13801
|
outline-offset: 2px;
|
|
13448
13802
|
}
|
|
13449
13803
|
|
|
13450
|
-
|
|
13451
|
-
/* Accordion */
|
|
13452
|
-
/* Accordion Component Styles */
|
|
13453
|
-
|
|
13454
|
-
.muka-accordion {
|
|
13455
|
-
width: 100%;
|
|
13456
|
-
}
|
|
13457
|
-
|
|
13458
|
-
/* Item */
|
|
13459
|
-
.muka-accordion__item {
|
|
13460
|
-
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
13461
|
-
}
|
|
13462
|
-
|
|
13463
|
-
.muka-accordion__item:last-child {
|
|
13464
|
-
border-bottom: none;
|
|
13465
|
-
}
|
|
13466
|
-
|
|
13467
|
-
/* Header reset */
|
|
13468
|
-
.muka-accordion__header {
|
|
13469
|
-
margin: 0;
|
|
13470
|
-
}
|
|
13471
|
-
|
|
13472
|
-
/* Trigger */
|
|
13473
|
-
.muka-accordion__trigger {
|
|
13474
|
-
display: flex;
|
|
13475
|
-
align-items: center;
|
|
13476
|
-
justify-content: space-between;
|
|
13477
|
-
width: 100%;
|
|
13478
|
-
padding: var(--spacing-4);
|
|
13479
|
-
background: none;
|
|
13480
|
-
border: none;
|
|
13481
|
-
cursor: pointer;
|
|
13482
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13483
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13484
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
13485
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13486
|
-
color: var(--color-text-default-default);
|
|
13487
|
-
text-align: left;
|
|
13488
|
-
gap: var(--spacing-3);
|
|
13489
|
-
transition: background-color 0.15s ease;
|
|
13490
|
-
}
|
|
13491
|
-
|
|
13492
|
-
.muka-accordion__trigger:hover {
|
|
13493
|
-
background-color: var(--color-surface-level1);
|
|
13494
|
-
}
|
|
13495
|
-
|
|
13496
|
-
.muka-accordion__trigger[data-disabled] {
|
|
13497
|
-
cursor: not-allowed;
|
|
13498
|
-
opacity: 0.4;
|
|
13499
|
-
}
|
|
13500
|
-
|
|
13501
|
-
.muka-accordion__trigger-text {
|
|
13502
|
-
flex: 1;
|
|
13503
|
-
}
|
|
13504
|
-
|
|
13505
|
-
/* Chevron rotation */
|
|
13506
|
-
.muka-accordion__chevron {
|
|
13507
|
-
display: inline-flex;
|
|
13508
|
-
align-items: center;
|
|
13509
|
-
color: var(--color-text-subtle-default);
|
|
13510
|
-
transition: transform 200ms ease;
|
|
13511
|
-
}
|
|
13512
|
-
|
|
13513
|
-
.muka-accordion__trigger[data-state='open'] .muka-accordion__chevron {
|
|
13514
|
-
transform: rotate(180deg);
|
|
13515
|
-
}
|
|
13516
|
-
|
|
13517
|
-
/* Content */
|
|
13518
|
-
.muka-accordion__content {
|
|
13519
|
-
overflow: hidden;
|
|
13520
|
-
}
|
|
13521
|
-
|
|
13522
|
-
.muka-accordion__content[data-state='open'] {
|
|
13523
|
-
animation: muka-accordion-slideDown 200ms ease;
|
|
13524
|
-
}
|
|
13525
|
-
|
|
13526
|
-
.muka-accordion__content[data-state='closed'] {
|
|
13527
|
-
animation: muka-accordion-slideUp 200ms ease;
|
|
13528
|
-
}
|
|
13529
|
-
|
|
13530
|
-
@keyframes muka-accordion-slideDown {
|
|
13531
|
-
from {
|
|
13532
|
-
height: 0;
|
|
13533
|
-
}
|
|
13534
|
-
to {
|
|
13535
|
-
height: var(--radix-accordion-content-height);
|
|
13536
|
-
}
|
|
13537
|
-
}
|
|
13538
|
-
|
|
13539
|
-
@keyframes muka-accordion-slideUp {
|
|
13540
|
-
from {
|
|
13541
|
-
height: var(--radix-accordion-content-height);
|
|
13542
|
-
}
|
|
13543
|
-
to {
|
|
13544
|
-
height: 0;
|
|
13545
|
-
}
|
|
13546
|
-
}
|
|
13547
|
-
|
|
13548
|
-
.muka-accordion__content-inner {
|
|
13549
|
-
padding: 0 var(--spacing-4) var(--spacing-5);
|
|
13550
|
-
color: var(--color-text-default-default);
|
|
13551
|
-
}
|
|
13552
|
-
|
|
13553
|
-
/* ─── Variant: flush ────────────────────────────────────────────────────── */
|
|
13554
|
-
|
|
13555
|
-
.muka-accordion--flush .muka-accordion__trigger {
|
|
13556
|
-
padding-left: 0;
|
|
13557
|
-
padding-right: 0;
|
|
13558
|
-
}
|
|
13559
|
-
|
|
13560
|
-
.muka-accordion--flush .muka-accordion__content-inner {
|
|
13561
|
-
padding-left: 0;
|
|
13562
|
-
padding-right: 0;
|
|
13563
|
-
}
|
|
13564
|
-
|
|
13565
|
-
/* ─── Variant: contained ────────────────────────────────────────────────── */
|
|
13566
|
-
|
|
13567
|
-
.muka-accordion--contained {
|
|
13568
|
-
border: var(--border-width-regular) solid var(--color-border-default);
|
|
13569
|
-
border-radius: var(--radius-md);
|
|
13570
|
-
overflow: hidden;
|
|
13571
|
-
}
|
|
13572
|
-
|
|
13573
|
-
.muka-accordion--contained .muka-accordion__item {
|
|
13574
|
-
background-color: var(--color-surface-level3);
|
|
13575
|
-
}
|
|
13576
|
-
|
|
13577
|
-
.muka-accordion--contained .muka-accordion__item:last-child {
|
|
13578
|
-
border-bottom: none;
|
|
13579
|
-
}
|
|
13580
|
-
|