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