@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
|
@@ -1382,6 +1382,18 @@ body {
|
|
|
1382
1382
|
--text-heading-overline-lineHeight: 1rem;
|
|
1383
1383
|
--text-heading-overline-letterSpacing: 0.025em;
|
|
1384
1384
|
--text-heading-overline-textCase: uppercase;
|
|
1385
|
+
--text-label-xs-regular-fontFamily: Helvetica;
|
|
1386
|
+
--text-label-xs-regular-fontWeight: 400;
|
|
1387
|
+
--text-label-xs-regular-fontSize: 0.75rem;
|
|
1388
|
+
--text-label-xs-regular-lineHeight: 0.75rem;
|
|
1389
|
+
--text-label-xs-semibold-fontFamily: Helvetica;
|
|
1390
|
+
--text-label-xs-semibold-fontWeight: 600;
|
|
1391
|
+
--text-label-xs-semibold-fontSize: 0.75rem;
|
|
1392
|
+
--text-label-xs-semibold-lineHeight: 0.75rem;
|
|
1393
|
+
--text-label-xs-bold-fontFamily: Helvetica;
|
|
1394
|
+
--text-label-xs-bold-fontWeight: 700;
|
|
1395
|
+
--text-label-xs-bold-fontSize: 0.75rem;
|
|
1396
|
+
--text-label-xs-bold-lineHeight: 0.75rem;
|
|
1385
1397
|
--text-label-sm-regular-fontFamily: Helvetica;
|
|
1386
1398
|
--text-label-sm-regular-fontWeight: 400;
|
|
1387
1399
|
--text-label-sm-regular-fontSize: 0.875rem;
|
|
@@ -1651,11 +1663,14 @@ body {
|
|
|
1651
1663
|
--card-border-selected: 0.125rem solid #113264;
|
|
1652
1664
|
--chatbubble-max-width: 640px;
|
|
1653
1665
|
--chatbubble-radius: 0px;
|
|
1654
|
-
--chatbubble-padding:
|
|
1666
|
+
--chatbubble-padding-block: 0.75rem;
|
|
1667
|
+
--chatbubble-padding-inline: 1rem;
|
|
1655
1668
|
--chatbubble-gap: 0.25rem;
|
|
1656
|
-
--chatbubble-body-gap: 1.5rem;
|
|
1657
1669
|
--chatbubble-row-gap: 0.75rem;
|
|
1670
|
+
--chatbubble-row-gap-compact: 0.5rem;
|
|
1671
|
+
--chatbubble-stack-gap: 0.75rem;
|
|
1658
1672
|
--chatbubble-avatar-size: 3rem;
|
|
1673
|
+
--chatbubble-avatar-size-compact: 2rem;
|
|
1659
1674
|
--chatbubble-color-own-background: #e9f6ec;
|
|
1660
1675
|
--chatbubble-color-own-border: #ccebd1;
|
|
1661
1676
|
--chatbubble-color-own-foreground: #202020;
|
|
@@ -1666,7 +1681,9 @@ body {
|
|
|
1666
1681
|
--chatbubble-color-agent-border: #fbe577;
|
|
1667
1682
|
--chatbubble-color-agent-foreground: #202020;
|
|
1668
1683
|
--chatbubble-color-timestamp: #202020;
|
|
1669
|
-
--chatbubble-embed-padding: 0.75rem;
|
|
1684
|
+
--chatbubble-embed-padding-block: 0.75rem;
|
|
1685
|
+
--chatbubble-embed-padding-inline: 1rem;
|
|
1686
|
+
--chatbubble-embed-margin-block: 0.75rem;
|
|
1670
1687
|
--chatbubble-embed-gap: 0.5rem;
|
|
1671
1688
|
--chatbubble-embed-radius: 0px;
|
|
1672
1689
|
--chatbubble-embed-color-own-background: #f2fcf4;
|
|
@@ -1679,7 +1696,7 @@ body {
|
|
|
1679
1696
|
--chatbubble-embed-color-agent-border: #fbe577;
|
|
1680
1697
|
--chatbubble-embed-color-agent-foreground: #202020;
|
|
1681
1698
|
--chatbubble-action-stack-gap: 0.75rem;
|
|
1682
|
-
--chatphotogrid-gap: 0.
|
|
1699
|
+
--chatphotogrid-gap: 0.25rem;
|
|
1683
1700
|
--chatphotogrid-radius: 0px;
|
|
1684
1701
|
--chatphotogrid-color-placeholder: #e8e8e8;
|
|
1685
1702
|
--chatphotogrid-color-overflow-background: rgba(0, 0, 0, 0.565);
|
|
@@ -2094,6 +2111,16 @@ body {
|
|
|
2094
2111
|
--badge-padding-leading-sm: 0.5rem;
|
|
2095
2112
|
--badge-padding-leading-md: 0.75rem;
|
|
2096
2113
|
--badge-padding-leading-lg: 0.75rem;
|
|
2114
|
+
--badge-number-size-2xs: 1rem;
|
|
2115
|
+
--badge-number-size-xs: 1.25rem;
|
|
2116
|
+
--badge-number-size-sm: 1.5rem;
|
|
2117
|
+
--badge-number-size-md: 2rem;
|
|
2118
|
+
--badge-number-size-lg: 2.5rem;
|
|
2119
|
+
--badge-number-padding-2xs: 0.25rem;
|
|
2120
|
+
--badge-number-padding-xs: 0.375rem;
|
|
2121
|
+
--badge-number-padding-sm: 0.5rem;
|
|
2122
|
+
--badge-number-padding-md: 0.5rem;
|
|
2123
|
+
--badge-number-padding-lg: 0.75rem;
|
|
2097
2124
|
--table-cell-padding-x-sm: 0.5rem;
|
|
2098
2125
|
--table-cell-padding-x-md: 0.75rem;
|
|
2099
2126
|
--table-cell-padding-x-lg: 1rem;
|
|
@@ -2860,196 +2887,6 @@ body {
|
|
|
2860
2887
|
}
|
|
2861
2888
|
|
|
2862
2889
|
|
|
2863
|
-
/* Toast */
|
|
2864
|
-
/* Toast Component Styles - Using Muka Design Tokens */
|
|
2865
|
-
|
|
2866
|
-
.muka-toast {
|
|
2867
|
-
display: flex;
|
|
2868
|
-
align-items: flex-start;
|
|
2869
|
-
gap: var(--toast-gap);
|
|
2870
|
-
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
2871
|
-
border-radius: var(--toast-radius);
|
|
2872
|
-
box-shadow: var(--toast-shadow);
|
|
2873
|
-
min-width: var(--toast-width-min);
|
|
2874
|
-
max-width: var(--toast-width-max);
|
|
2875
|
-
pointer-events: auto;
|
|
2876
|
-
animation: muka-toast-slide-in 0.2s ease-out;
|
|
2877
|
-
}
|
|
2878
|
-
|
|
2879
|
-
/* Entry animation */
|
|
2880
|
-
@keyframes muka-toast-slide-in {
|
|
2881
|
-
from {
|
|
2882
|
-
opacity: 0;
|
|
2883
|
-
transform: translateY(8px);
|
|
2884
|
-
}
|
|
2885
|
-
to {
|
|
2886
|
-
opacity: 1;
|
|
2887
|
-
transform: translateY(0);
|
|
2888
|
-
}
|
|
2889
|
-
}
|
|
2890
|
-
|
|
2891
|
-
/* Position variants (for standalone use - typically managed by ToastProvider) */
|
|
2892
|
-
.muka-toast--top-right,
|
|
2893
|
-
.muka-toast--top-left,
|
|
2894
|
-
.muka-toast--top-center,
|
|
2895
|
-
.muka-toast--bottom-right,
|
|
2896
|
-
.muka-toast--bottom-left,
|
|
2897
|
-
.muka-toast--bottom-center {
|
|
2898
|
-
position: fixed;
|
|
2899
|
-
z-index: 9999;
|
|
2900
|
-
}
|
|
2901
|
-
|
|
2902
|
-
.muka-toast--top-right {
|
|
2903
|
-
top: var(--spacing-4);
|
|
2904
|
-
right: var(--spacing-4);
|
|
2905
|
-
}
|
|
2906
|
-
|
|
2907
|
-
.muka-toast--top-left {
|
|
2908
|
-
top: var(--spacing-4);
|
|
2909
|
-
left: var(--spacing-4);
|
|
2910
|
-
}
|
|
2911
|
-
|
|
2912
|
-
.muka-toast--top-center {
|
|
2913
|
-
top: var(--spacing-4);
|
|
2914
|
-
left: 50%;
|
|
2915
|
-
transform: translateX(-50%);
|
|
2916
|
-
}
|
|
2917
|
-
|
|
2918
|
-
.muka-toast--bottom-right {
|
|
2919
|
-
bottom: var(--spacing-4);
|
|
2920
|
-
right: var(--spacing-4);
|
|
2921
|
-
}
|
|
2922
|
-
|
|
2923
|
-
.muka-toast--bottom-left {
|
|
2924
|
-
bottom: var(--spacing-4);
|
|
2925
|
-
left: var(--spacing-4);
|
|
2926
|
-
}
|
|
2927
|
-
|
|
2928
|
-
.muka-toast--bottom-center {
|
|
2929
|
-
bottom: var(--spacing-4);
|
|
2930
|
-
left: 50%;
|
|
2931
|
-
transform: translateX(-50%);
|
|
2932
|
-
}
|
|
2933
|
-
|
|
2934
|
-
/* Variant: Info */
|
|
2935
|
-
.muka-toast--info {
|
|
2936
|
-
background-color: var(--toast-color-info-background);
|
|
2937
|
-
color: var(--toast-color-info-foreground);
|
|
2938
|
-
}
|
|
2939
|
-
|
|
2940
|
-
.muka-toast--info .muka-toast__icon {
|
|
2941
|
-
color: var(--toast-color-info-accent);
|
|
2942
|
-
}
|
|
2943
|
-
|
|
2944
|
-
/* Variant: Success */
|
|
2945
|
-
.muka-toast--success {
|
|
2946
|
-
background-color: var(--toast-color-success-background);
|
|
2947
|
-
color: var(--toast-color-success-foreground);
|
|
2948
|
-
}
|
|
2949
|
-
|
|
2950
|
-
.muka-toast--success .muka-toast__icon {
|
|
2951
|
-
color: var(--toast-color-success-accent);
|
|
2952
|
-
}
|
|
2953
|
-
|
|
2954
|
-
/* Variant: Warning */
|
|
2955
|
-
.muka-toast--warning {
|
|
2956
|
-
background-color: var(--toast-color-warning-background);
|
|
2957
|
-
color: var(--toast-color-warning-foreground);
|
|
2958
|
-
}
|
|
2959
|
-
|
|
2960
|
-
.muka-toast--warning .muka-toast__icon {
|
|
2961
|
-
color: var(--toast-color-warning-accent);
|
|
2962
|
-
}
|
|
2963
|
-
|
|
2964
|
-
/* Variant: Error */
|
|
2965
|
-
.muka-toast--error {
|
|
2966
|
-
background-color: var(--toast-color-error-background);
|
|
2967
|
-
color: var(--toast-color-error-foreground);
|
|
2968
|
-
}
|
|
2969
|
-
|
|
2970
|
-
.muka-toast--error .muka-toast__icon {
|
|
2971
|
-
color: var(--toast-color-error-accent);
|
|
2972
|
-
}
|
|
2973
|
-
|
|
2974
|
-
/* Icon */
|
|
2975
|
-
.muka-toast__icon {
|
|
2976
|
-
display: flex;
|
|
2977
|
-
align-items: center;
|
|
2978
|
-
justify-content: center;
|
|
2979
|
-
flex-shrink: 0;
|
|
2980
|
-
width: var(--toast-icon-size);
|
|
2981
|
-
height: var(--toast-icon-size);
|
|
2982
|
-
}
|
|
2983
|
-
|
|
2984
|
-
.muka-toast__icon svg {
|
|
2985
|
-
width: 100%;
|
|
2986
|
-
height: 100%;
|
|
2987
|
-
}
|
|
2988
|
-
|
|
2989
|
-
/* Content */
|
|
2990
|
-
.muka-toast__content {
|
|
2991
|
-
flex: 1;
|
|
2992
|
-
min-width: 0;
|
|
2993
|
-
}
|
|
2994
|
-
|
|
2995
|
-
.muka-toast__title {
|
|
2996
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
2997
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
2998
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
2999
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3000
|
-
margin-bottom: var(--spacing-1);
|
|
3001
|
-
}
|
|
3002
|
-
|
|
3003
|
-
.muka-toast__message {
|
|
3004
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3005
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3006
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3007
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3008
|
-
}
|
|
3009
|
-
|
|
3010
|
-
/* Action slot */
|
|
3011
|
-
.muka-toast__action {
|
|
3012
|
-
display: flex;
|
|
3013
|
-
align-items: center;
|
|
3014
|
-
flex-shrink: 0;
|
|
3015
|
-
}
|
|
3016
|
-
|
|
3017
|
-
/* Dismiss button */
|
|
3018
|
-
.muka-toast__dismiss {
|
|
3019
|
-
display: flex;
|
|
3020
|
-
align-items: center;
|
|
3021
|
-
justify-content: center;
|
|
3022
|
-
flex-shrink: 0;
|
|
3023
|
-
width: 24px;
|
|
3024
|
-
height: 24px;
|
|
3025
|
-
padding: 0;
|
|
3026
|
-
margin: -2px -4px -2px 0;
|
|
3027
|
-
border: none;
|
|
3028
|
-
background: transparent;
|
|
3029
|
-
color: inherit;
|
|
3030
|
-
opacity: 0.7;
|
|
3031
|
-
cursor: pointer;
|
|
3032
|
-
border-radius: var(--border-radius-sm);
|
|
3033
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3034
|
-
}
|
|
3035
|
-
|
|
3036
|
-
.muka-toast__dismiss:hover {
|
|
3037
|
-
opacity: 1;
|
|
3038
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
3039
|
-
}
|
|
3040
|
-
|
|
3041
|
-
.muka-toast__dismiss:focus-visible {
|
|
3042
|
-
outline: 2px solid var(--color-border-focus);
|
|
3043
|
-
outline-offset: 2px;
|
|
3044
|
-
opacity: 1;
|
|
3045
|
-
}
|
|
3046
|
-
|
|
3047
|
-
.muka-toast__dismiss svg {
|
|
3048
|
-
width: 16px;
|
|
3049
|
-
height: 16px;
|
|
3050
|
-
}
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
2890
|
/* Tile */
|
|
3054
2891
|
/* Tile Component Styles - Using Muka Design Tokens */
|
|
3055
2892
|
|
|
@@ -3411,45 +3248,235 @@ body {
|
|
|
3411
3248
|
}
|
|
3412
3249
|
|
|
3413
3250
|
|
|
3414
|
-
/*
|
|
3415
|
-
/*
|
|
3251
|
+
/* Toast */
|
|
3252
|
+
/* Toast Component Styles - Using Muka Design Tokens */
|
|
3416
3253
|
|
|
3417
|
-
.muka-
|
|
3418
|
-
|
|
3419
|
-
|
|
3254
|
+
.muka-toast {
|
|
3255
|
+
display: flex;
|
|
3256
|
+
align-items: flex-start;
|
|
3257
|
+
gap: var(--toast-gap);
|
|
3258
|
+
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
3259
|
+
border-radius: var(--toast-radius);
|
|
3260
|
+
box-shadow: var(--toast-shadow);
|
|
3261
|
+
min-width: var(--toast-width-min);
|
|
3262
|
+
max-width: var(--toast-width-max);
|
|
3263
|
+
pointer-events: auto;
|
|
3264
|
+
animation: muka-toast-slide-in 0.2s ease-out;
|
|
3420
3265
|
}
|
|
3421
3266
|
|
|
3422
|
-
/*
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3267
|
+
/* Entry animation */
|
|
3268
|
+
@keyframes muka-toast-slide-in {
|
|
3269
|
+
from {
|
|
3270
|
+
opacity: 0;
|
|
3271
|
+
transform: translateY(8px);
|
|
3272
|
+
}
|
|
3273
|
+
to {
|
|
3274
|
+
opacity: 1;
|
|
3275
|
+
transform: translateY(0);
|
|
3276
|
+
}
|
|
3432
3277
|
}
|
|
3433
3278
|
|
|
3434
|
-
/*
|
|
3435
|
-
.muka-
|
|
3436
|
-
|
|
3437
|
-
|
|
3279
|
+
/* Position variants (for standalone use - typically managed by ToastProvider) */
|
|
3280
|
+
.muka-toast--top-right,
|
|
3281
|
+
.muka-toast--top-left,
|
|
3282
|
+
.muka-toast--top-center,
|
|
3283
|
+
.muka-toast--bottom-right,
|
|
3284
|
+
.muka-toast--bottom-left,
|
|
3285
|
+
.muka-toast--bottom-center {
|
|
3286
|
+
position: fixed;
|
|
3287
|
+
z-index: 9999;
|
|
3438
3288
|
}
|
|
3439
3289
|
|
|
3440
|
-
.muka-
|
|
3441
|
-
|
|
3442
|
-
|
|
3290
|
+
.muka-toast--top-right {
|
|
3291
|
+
top: var(--spacing-4);
|
|
3292
|
+
right: var(--spacing-4);
|
|
3443
3293
|
}
|
|
3444
3294
|
|
|
3445
|
-
.muka-
|
|
3446
|
-
|
|
3447
|
-
|
|
3295
|
+
.muka-toast--top-left {
|
|
3296
|
+
top: var(--spacing-4);
|
|
3297
|
+
left: var(--spacing-4);
|
|
3448
3298
|
}
|
|
3449
3299
|
|
|
3450
|
-
.muka-
|
|
3451
|
-
|
|
3452
|
-
|
|
3300
|
+
.muka-toast--top-center {
|
|
3301
|
+
top: var(--spacing-4);
|
|
3302
|
+
left: 50%;
|
|
3303
|
+
transform: translateX(-50%);
|
|
3304
|
+
}
|
|
3305
|
+
|
|
3306
|
+
.muka-toast--bottom-right {
|
|
3307
|
+
bottom: var(--spacing-4);
|
|
3308
|
+
right: var(--spacing-4);
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
.muka-toast--bottom-left {
|
|
3312
|
+
bottom: var(--spacing-4);
|
|
3313
|
+
left: var(--spacing-4);
|
|
3314
|
+
}
|
|
3315
|
+
|
|
3316
|
+
.muka-toast--bottom-center {
|
|
3317
|
+
bottom: var(--spacing-4);
|
|
3318
|
+
left: 50%;
|
|
3319
|
+
transform: translateX(-50%);
|
|
3320
|
+
}
|
|
3321
|
+
|
|
3322
|
+
/* Variant: Info */
|
|
3323
|
+
.muka-toast--info {
|
|
3324
|
+
background-color: var(--toast-color-info-background);
|
|
3325
|
+
color: var(--toast-color-info-foreground);
|
|
3326
|
+
}
|
|
3327
|
+
|
|
3328
|
+
.muka-toast--info .muka-toast__icon {
|
|
3329
|
+
color: var(--toast-color-info-accent);
|
|
3330
|
+
}
|
|
3331
|
+
|
|
3332
|
+
/* Variant: Success */
|
|
3333
|
+
.muka-toast--success {
|
|
3334
|
+
background-color: var(--toast-color-success-background);
|
|
3335
|
+
color: var(--toast-color-success-foreground);
|
|
3336
|
+
}
|
|
3337
|
+
|
|
3338
|
+
.muka-toast--success .muka-toast__icon {
|
|
3339
|
+
color: var(--toast-color-success-accent);
|
|
3340
|
+
}
|
|
3341
|
+
|
|
3342
|
+
/* Variant: Warning */
|
|
3343
|
+
.muka-toast--warning {
|
|
3344
|
+
background-color: var(--toast-color-warning-background);
|
|
3345
|
+
color: var(--toast-color-warning-foreground);
|
|
3346
|
+
}
|
|
3347
|
+
|
|
3348
|
+
.muka-toast--warning .muka-toast__icon {
|
|
3349
|
+
color: var(--toast-color-warning-accent);
|
|
3350
|
+
}
|
|
3351
|
+
|
|
3352
|
+
/* Variant: Error */
|
|
3353
|
+
.muka-toast--error {
|
|
3354
|
+
background-color: var(--toast-color-error-background);
|
|
3355
|
+
color: var(--toast-color-error-foreground);
|
|
3356
|
+
}
|
|
3357
|
+
|
|
3358
|
+
.muka-toast--error .muka-toast__icon {
|
|
3359
|
+
color: var(--toast-color-error-accent);
|
|
3360
|
+
}
|
|
3361
|
+
|
|
3362
|
+
/* Icon */
|
|
3363
|
+
.muka-toast__icon {
|
|
3364
|
+
display: flex;
|
|
3365
|
+
align-items: center;
|
|
3366
|
+
justify-content: center;
|
|
3367
|
+
flex-shrink: 0;
|
|
3368
|
+
width: var(--toast-icon-size);
|
|
3369
|
+
height: var(--toast-icon-size);
|
|
3370
|
+
}
|
|
3371
|
+
|
|
3372
|
+
.muka-toast__icon svg {
|
|
3373
|
+
width: 100%;
|
|
3374
|
+
height: 100%;
|
|
3375
|
+
}
|
|
3376
|
+
|
|
3377
|
+
/* Content */
|
|
3378
|
+
.muka-toast__content {
|
|
3379
|
+
flex: 1;
|
|
3380
|
+
min-width: 0;
|
|
3381
|
+
}
|
|
3382
|
+
|
|
3383
|
+
.muka-toast__title {
|
|
3384
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3385
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3386
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
3387
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3388
|
+
margin-bottom: var(--spacing-1);
|
|
3389
|
+
}
|
|
3390
|
+
|
|
3391
|
+
.muka-toast__message {
|
|
3392
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3393
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3394
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
3395
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3396
|
+
}
|
|
3397
|
+
|
|
3398
|
+
/* Action slot */
|
|
3399
|
+
.muka-toast__action {
|
|
3400
|
+
display: flex;
|
|
3401
|
+
align-items: center;
|
|
3402
|
+
flex-shrink: 0;
|
|
3403
|
+
}
|
|
3404
|
+
|
|
3405
|
+
/* Dismiss button */
|
|
3406
|
+
.muka-toast__dismiss {
|
|
3407
|
+
display: flex;
|
|
3408
|
+
align-items: center;
|
|
3409
|
+
justify-content: center;
|
|
3410
|
+
flex-shrink: 0;
|
|
3411
|
+
width: 24px;
|
|
3412
|
+
height: 24px;
|
|
3413
|
+
padding: 0;
|
|
3414
|
+
margin: -2px -4px -2px 0;
|
|
3415
|
+
border: none;
|
|
3416
|
+
background: transparent;
|
|
3417
|
+
color: inherit;
|
|
3418
|
+
opacity: 0.7;
|
|
3419
|
+
cursor: pointer;
|
|
3420
|
+
border-radius: var(--border-radius-sm);
|
|
3421
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
3422
|
+
}
|
|
3423
|
+
|
|
3424
|
+
.muka-toast__dismiss:hover {
|
|
3425
|
+
opacity: 1;
|
|
3426
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
3427
|
+
}
|
|
3428
|
+
|
|
3429
|
+
.muka-toast__dismiss:focus-visible {
|
|
3430
|
+
outline: 2px solid var(--color-border-focus);
|
|
3431
|
+
outline-offset: 2px;
|
|
3432
|
+
opacity: 1;
|
|
3433
|
+
}
|
|
3434
|
+
|
|
3435
|
+
.muka-toast__dismiss svg {
|
|
3436
|
+
width: 16px;
|
|
3437
|
+
height: 16px;
|
|
3438
|
+
}
|
|
3439
|
+
|
|
3440
|
+
|
|
3441
|
+
/* Thumbnail */
|
|
3442
|
+
/* Thumbnail Component Styles - Using Muka Design Tokens */
|
|
3443
|
+
|
|
3444
|
+
.muka-thumbnail {
|
|
3445
|
+
position: relative;
|
|
3446
|
+
flex-shrink: 0;
|
|
3447
|
+
}
|
|
3448
|
+
|
|
3449
|
+
/* The frame carries the border, background and shape clip. Keeping it separate
|
|
3450
|
+
from the root lets the remove (×) button sit outside the clip (needed for the
|
|
3451
|
+
circular/ellipse shape, whose corners would otherwise clip the button). */
|
|
3452
|
+
.muka-thumbnail__frame {
|
|
3453
|
+
position: absolute;
|
|
3454
|
+
inset: 0;
|
|
3455
|
+
overflow: hidden;
|
|
3456
|
+
border: var(--border-width-regular, 1px) solid var(--color-black-alpha-3);
|
|
3457
|
+
border-radius: var(--border-radius-lg);
|
|
3458
|
+
background-color: var(--color-surface-level1);
|
|
3459
|
+
}
|
|
3460
|
+
|
|
3461
|
+
/* ─── Shapes ──────────────────────────────────────────── */
|
|
3462
|
+
.muka-thumbnail--4-3 {
|
|
3463
|
+
width: 160px;
|
|
3464
|
+
height: 120px;
|
|
3465
|
+
}
|
|
3466
|
+
|
|
3467
|
+
.muka-thumbnail--1-1 {
|
|
3468
|
+
width: 120px;
|
|
3469
|
+
height: 120px;
|
|
3470
|
+
}
|
|
3471
|
+
|
|
3472
|
+
.muka-thumbnail--ellipse {
|
|
3473
|
+
width: 120px;
|
|
3474
|
+
height: 120px;
|
|
3475
|
+
}
|
|
3476
|
+
|
|
3477
|
+
.muka-thumbnail--ellipse .muka-thumbnail__frame {
|
|
3478
|
+
border-radius: var(--border-radius-full);
|
|
3479
|
+
}
|
|
3453
3480
|
|
|
3454
3481
|
/* Image fills the frame, cropped to cover. Sits at scale(1) by default so the
|
|
3455
3482
|
interactive hover zoom has a clean origin. */
|
|
@@ -7114,34 +7141,6 @@ body {
|
|
|
7114
7141
|
}
|
|
7115
7142
|
|
|
7116
7143
|
|
|
7117
|
-
/* NavigationTransition */
|
|
7118
|
-
/* NavigationTransition Component Styles */
|
|
7119
|
-
|
|
7120
|
-
/* ─── Wrapper ────────────────────────────────────────── */
|
|
7121
|
-
|
|
7122
|
-
.muka-nav-transition {
|
|
7123
|
-
position: relative;
|
|
7124
|
-
height: 100vh;
|
|
7125
|
-
overflow: hidden;
|
|
7126
|
-
}
|
|
7127
|
-
|
|
7128
|
-
/* Disable interaction during animation */
|
|
7129
|
-
.muka-nav-transition--active {
|
|
7130
|
-
pointer-events: none;
|
|
7131
|
-
}
|
|
7132
|
-
|
|
7133
|
-
/* ─── View slots ─────────────────────────────────────── */
|
|
7134
|
-
|
|
7135
|
-
.muka-nav-transition--active .muka-nav-transition__view {
|
|
7136
|
-
position: absolute;
|
|
7137
|
-
inset: 0;
|
|
7138
|
-
}
|
|
7139
|
-
|
|
7140
|
-
/* Z-index layering */
|
|
7141
|
-
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
7142
|
-
.muka-nav-transition__view--top { z-index: 2; }
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
7144
|
/* NumberInput */
|
|
7146
7145
|
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7147
7146
|
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
@@ -7172,6 +7171,34 @@ body {
|
|
|
7172
7171
|
}
|
|
7173
7172
|
|
|
7174
7173
|
|
|
7174
|
+
/* NavigationTransition */
|
|
7175
|
+
/* NavigationTransition Component Styles */
|
|
7176
|
+
|
|
7177
|
+
/* ─── Wrapper ────────────────────────────────────────── */
|
|
7178
|
+
|
|
7179
|
+
.muka-nav-transition {
|
|
7180
|
+
position: relative;
|
|
7181
|
+
height: 100vh;
|
|
7182
|
+
overflow: hidden;
|
|
7183
|
+
}
|
|
7184
|
+
|
|
7185
|
+
/* Disable interaction during animation */
|
|
7186
|
+
.muka-nav-transition--active {
|
|
7187
|
+
pointer-events: none;
|
|
7188
|
+
}
|
|
7189
|
+
|
|
7190
|
+
/* ─── View slots ─────────────────────────────────────── */
|
|
7191
|
+
|
|
7192
|
+
.muka-nav-transition--active .muka-nav-transition__view {
|
|
7193
|
+
position: absolute;
|
|
7194
|
+
inset: 0;
|
|
7195
|
+
}
|
|
7196
|
+
|
|
7197
|
+
/* Z-index layering */
|
|
7198
|
+
.muka-nav-transition__view--bottom { z-index: 1; }
|
|
7199
|
+
.muka-nav-transition__view--top { z-index: 2; }
|
|
7200
|
+
|
|
7201
|
+
|
|
7175
7202
|
/* Menu */
|
|
7176
7203
|
/* Menu Component Styles */
|
|
7177
7204
|
|
|
@@ -8717,22 +8744,178 @@ li.muka-listitem {
|
|
|
8717
8744
|
}
|
|
8718
8745
|
|
|
8719
8746
|
|
|
8720
|
-
/*
|
|
8721
|
-
/*
|
|
8747
|
+
/* Drawer */
|
|
8748
|
+
/* Drawer Component Styles */
|
|
8722
8749
|
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
overflow: hidden;
|
|
8729
|
-
position: relative;
|
|
8750
|
+
/* Size tokens (local to Drawer) */
|
|
8751
|
+
.muka-drawer {
|
|
8752
|
+
--drawer-width-sm: 18rem;
|
|
8753
|
+
--drawer-width-md: 26rem;
|
|
8754
|
+
--drawer-width-lg: 36rem;
|
|
8730
8755
|
}
|
|
8731
8756
|
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8757
|
+
/* Reset native dialog */
|
|
8758
|
+
.muka-drawer {
|
|
8759
|
+
border: none;
|
|
8760
|
+
padding: 0;
|
|
8761
|
+
max-width: none;
|
|
8762
|
+
max-height: none;
|
|
8763
|
+
background: transparent;
|
|
8764
|
+
overflow: visible;
|
|
8765
|
+
}
|
|
8766
|
+
|
|
8767
|
+
/* Backdrop */
|
|
8768
|
+
.muka-drawer::backdrop {
|
|
8769
|
+
background-color: var(--color-surface-backdrop);
|
|
8770
|
+
opacity: 0;
|
|
8771
|
+
transition: opacity 200ms ease;
|
|
8772
|
+
}
|
|
8773
|
+
|
|
8774
|
+
.muka-drawer--slide-in::backdrop {
|
|
8775
|
+
opacity: 1;
|
|
8776
|
+
}
|
|
8777
|
+
|
|
8778
|
+
/* Surface */
|
|
8779
|
+
.muka-drawer__surface {
|
|
8780
|
+
display: flex;
|
|
8781
|
+
flex-direction: column;
|
|
8782
|
+
background-color: var(--color-surface-level3);
|
|
8783
|
+
box-shadow: var(--shadow-level5);
|
|
8784
|
+
height: 100%;
|
|
8785
|
+
overflow: hidden;
|
|
8786
|
+
position: fixed;
|
|
8787
|
+
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
8788
|
+
}
|
|
8789
|
+
|
|
8790
|
+
/* Side positioning + initial transforms */
|
|
8791
|
+
.muka-drawer--right .muka-drawer__surface {
|
|
8792
|
+
top: 0;
|
|
8793
|
+
right: 0;
|
|
8794
|
+
bottom: 0;
|
|
8795
|
+
border-radius: var(--radius-lg) 0 0 var(--radius-lg);
|
|
8796
|
+
transform: translateX(100%);
|
|
8797
|
+
}
|
|
8798
|
+
|
|
8799
|
+
.muka-drawer--left .muka-drawer__surface {
|
|
8800
|
+
top: 0;
|
|
8801
|
+
left: 0;
|
|
8802
|
+
bottom: 0;
|
|
8803
|
+
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
8804
|
+
transform: translateX(-100%);
|
|
8805
|
+
}
|
|
8806
|
+
|
|
8807
|
+
.muka-drawer--bottom .muka-drawer__surface {
|
|
8808
|
+
left: 0;
|
|
8809
|
+
right: 0;
|
|
8810
|
+
bottom: 0;
|
|
8811
|
+
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
8812
|
+
transform: translateY(100%);
|
|
8813
|
+
}
|
|
8814
|
+
|
|
8815
|
+
.muka-drawer--top .muka-drawer__surface {
|
|
8816
|
+
left: 0;
|
|
8817
|
+
right: 0;
|
|
8818
|
+
top: 0;
|
|
8819
|
+
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
8820
|
+
transform: translateY(-100%);
|
|
8821
|
+
}
|
|
8822
|
+
|
|
8823
|
+
/* Slide-in state */
|
|
8824
|
+
.muka-drawer--slide-in .muka-drawer__surface {
|
|
8825
|
+
transform: translate(0, 0);
|
|
8826
|
+
}
|
|
8827
|
+
|
|
8828
|
+
/* Width sizes (left/right) */
|
|
8829
|
+
.muka-drawer--right .muka-drawer__surface,
|
|
8830
|
+
.muka-drawer--left .muka-drawer__surface {
|
|
8831
|
+
width: var(--drawer-width-md);
|
|
8832
|
+
}
|
|
8833
|
+
|
|
8834
|
+
.muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
|
|
8835
|
+
.muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
|
|
8836
|
+
width: var(--drawer-width-sm);
|
|
8837
|
+
}
|
|
8838
|
+
|
|
8839
|
+
.muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
|
|
8840
|
+
.muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
|
|
8841
|
+
width: var(--drawer-width-lg);
|
|
8842
|
+
}
|
|
8843
|
+
|
|
8844
|
+
.muka-drawer--full.muka-drawer--right .muka-drawer__surface,
|
|
8845
|
+
.muka-drawer--full.muka-drawer--left .muka-drawer__surface {
|
|
8846
|
+
width: 100%;
|
|
8847
|
+
}
|
|
8848
|
+
|
|
8849
|
+
/* Height sizes (top/bottom) */
|
|
8850
|
+
.muka-drawer--top .muka-drawer__surface,
|
|
8851
|
+
.muka-drawer--bottom .muka-drawer__surface {
|
|
8852
|
+
height: auto;
|
|
8853
|
+
max-height: 80vh;
|
|
8854
|
+
}
|
|
8855
|
+
|
|
8856
|
+
.muka-drawer--full.muka-drawer--top .muka-drawer__surface,
|
|
8857
|
+
.muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
|
|
8858
|
+
max-height: 100vh;
|
|
8859
|
+
}
|
|
8860
|
+
|
|
8861
|
+
/* Header */
|
|
8862
|
+
.muka-drawer__header {
|
|
8863
|
+
display: flex;
|
|
8864
|
+
align-items: center;
|
|
8865
|
+
gap: var(--spacing-3);
|
|
8866
|
+
padding: var(--spacing-4);
|
|
8867
|
+
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
8868
|
+
flex-shrink: 0;
|
|
8869
|
+
}
|
|
8870
|
+
|
|
8871
|
+
.muka-drawer__title {
|
|
8872
|
+
flex: 1;
|
|
8873
|
+
margin: 0;
|
|
8874
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
8875
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
8876
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
8877
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
8878
|
+
color: var(--color-text-default-default);
|
|
8879
|
+
}
|
|
8880
|
+
|
|
8881
|
+
.muka-drawer__leading,
|
|
8882
|
+
.muka-drawer__trailing {
|
|
8883
|
+
display: flex;
|
|
8884
|
+
align-items: center;
|
|
8885
|
+
flex-shrink: 0;
|
|
8886
|
+
}
|
|
8887
|
+
|
|
8888
|
+
/* Body */
|
|
8889
|
+
.muka-drawer__body {
|
|
8890
|
+
flex: 1;
|
|
8891
|
+
overflow-y: auto;
|
|
8892
|
+
padding: var(--spacing-4);
|
|
8893
|
+
}
|
|
8894
|
+
|
|
8895
|
+
/* Footer */
|
|
8896
|
+
.muka-drawer__footer {
|
|
8897
|
+
padding: var(--spacing-4);
|
|
8898
|
+
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
8899
|
+
flex-shrink: 0;
|
|
8900
|
+
}
|
|
8901
|
+
|
|
8902
|
+
|
|
8903
|
+
/* DocumentViewer */
|
|
8904
|
+
/* DocumentViewer Component Styles - Using Muka Design Tokens */
|
|
8905
|
+
|
|
8906
|
+
.muka-documentviewer {
|
|
8907
|
+
display: flex;
|
|
8908
|
+
flex-direction: column;
|
|
8909
|
+
background-color: var(--documentviewer-container-background);
|
|
8910
|
+
border-radius: var(--documentviewer-container-borderRadius);
|
|
8911
|
+
overflow: hidden;
|
|
8912
|
+
position: relative;
|
|
8913
|
+
}
|
|
8914
|
+
|
|
8915
|
+
.muka-documentviewer--fullscreen {
|
|
8916
|
+
position: fixed;
|
|
8917
|
+
top: 0;
|
|
8918
|
+
left: 0;
|
|
8736
8919
|
right: 0;
|
|
8737
8920
|
bottom: 0;
|
|
8738
8921
|
width: 100vw;
|
|
@@ -8996,212 +9179,83 @@ li.muka-listitem {
|
|
|
8996
9179
|
}
|
|
8997
9180
|
|
|
8998
9181
|
|
|
8999
|
-
/*
|
|
9000
|
-
/*
|
|
9182
|
+
/* Divider */
|
|
9183
|
+
/* Divider Component Styles - Using Muka Design Tokens */
|
|
9001
9184
|
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
--drawer-width-sm: 18rem;
|
|
9005
|
-
--drawer-width-md: 26rem;
|
|
9006
|
-
--drawer-width-lg: 36rem;
|
|
9185
|
+
.muka-divider {
|
|
9186
|
+
flex-shrink: 0;
|
|
9007
9187
|
}
|
|
9008
9188
|
|
|
9009
|
-
|
|
9010
|
-
|
|
9189
|
+
.muka-divider--horizontal {
|
|
9190
|
+
width: 100%;
|
|
9191
|
+
height: var(--separator-width);
|
|
9192
|
+
}
|
|
9193
|
+
|
|
9194
|
+
.muka-divider--vertical {
|
|
9195
|
+
height: 100%;
|
|
9196
|
+
width: var(--separator-width);
|
|
9197
|
+
align-self: stretch;
|
|
9198
|
+
}
|
|
9199
|
+
|
|
9200
|
+
.muka-divider--default {
|
|
9201
|
+
background-color: var(--separator-color-default);
|
|
9202
|
+
}
|
|
9203
|
+
|
|
9204
|
+
.muka-divider--contrast {
|
|
9205
|
+
background-color: var(--separator-color-contrast);
|
|
9206
|
+
}
|
|
9207
|
+
|
|
9208
|
+
|
|
9209
|
+
/* Dialog */
|
|
9210
|
+
/* Dialog Component Styles */
|
|
9211
|
+
|
|
9212
|
+
/* ─── Native dialog reset ─────────────────────────────── */
|
|
9213
|
+
|
|
9214
|
+
.muka-dialog {
|
|
9011
9215
|
border: none;
|
|
9012
9216
|
padding: 0;
|
|
9013
9217
|
max-width: none;
|
|
9014
9218
|
max-height: none;
|
|
9015
|
-
background: transparent;
|
|
9016
9219
|
overflow: visible;
|
|
9220
|
+
background: transparent;
|
|
9221
|
+
color: inherit;
|
|
9222
|
+
box-shadow: none;
|
|
9017
9223
|
}
|
|
9018
9224
|
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
background-color: var(--color-surface-backdrop);
|
|
9022
|
-
opacity: 0;
|
|
9023
|
-
transition: opacity 200ms ease;
|
|
9225
|
+
.muka-dialog:not([open]) {
|
|
9226
|
+
display: none;
|
|
9024
9227
|
}
|
|
9025
9228
|
|
|
9026
|
-
|
|
9027
|
-
|
|
9229
|
+
/* ─── Backdrop ────────────────────────────────────────── */
|
|
9230
|
+
|
|
9231
|
+
.muka-dialog::backdrop {
|
|
9232
|
+
background-color: var(--dialog-color-backdrop);
|
|
9028
9233
|
}
|
|
9029
9234
|
|
|
9030
|
-
/*
|
|
9031
|
-
|
|
9235
|
+
/* ─── Non-modal modifier ──────────────────────────────── */
|
|
9236
|
+
|
|
9237
|
+
.muka-dialog--non-modal::backdrop {
|
|
9238
|
+
pointer-events: auto;
|
|
9239
|
+
}
|
|
9240
|
+
|
|
9241
|
+
/* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
|
|
9242
|
+
|
|
9243
|
+
.muka-dialog--sm,
|
|
9244
|
+
.muka-dialog--md,
|
|
9245
|
+
.muka-dialog--lg {
|
|
9246
|
+
width: 100%;
|
|
9247
|
+
height: 100%;
|
|
9248
|
+
max-width: 100vw;
|
|
9249
|
+
max-height: 100vh;
|
|
9250
|
+
margin: 0;
|
|
9032
9251
|
display: flex;
|
|
9033
9252
|
flex-direction: column;
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
height: 100%;
|
|
9037
|
-
overflow: hidden;
|
|
9038
|
-
position: fixed;
|
|
9039
|
-
transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
9253
|
+
justify-content: flex-end;
|
|
9254
|
+
align-items: stretch;
|
|
9040
9255
|
}
|
|
9041
9256
|
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
top: 0;
|
|
9045
|
-
right: 0;
|
|
9046
|
-
bottom: 0;
|
|
9047
|
-
border-radius: var(--radius-lg) 0 0 var(--radius-lg);
|
|
9048
|
-
transform: translateX(100%);
|
|
9049
|
-
}
|
|
9050
|
-
|
|
9051
|
-
.muka-drawer--left .muka-drawer__surface {
|
|
9052
|
-
top: 0;
|
|
9053
|
-
left: 0;
|
|
9054
|
-
bottom: 0;
|
|
9055
|
-
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
9056
|
-
transform: translateX(-100%);
|
|
9057
|
-
}
|
|
9058
|
-
|
|
9059
|
-
.muka-drawer--bottom .muka-drawer__surface {
|
|
9060
|
-
left: 0;
|
|
9061
|
-
right: 0;
|
|
9062
|
-
bottom: 0;
|
|
9063
|
-
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
9064
|
-
transform: translateY(100%);
|
|
9065
|
-
}
|
|
9066
|
-
|
|
9067
|
-
.muka-drawer--top .muka-drawer__surface {
|
|
9068
|
-
left: 0;
|
|
9069
|
-
right: 0;
|
|
9070
|
-
top: 0;
|
|
9071
|
-
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
9072
|
-
transform: translateY(-100%);
|
|
9073
|
-
}
|
|
9074
|
-
|
|
9075
|
-
/* Slide-in state */
|
|
9076
|
-
.muka-drawer--slide-in .muka-drawer__surface {
|
|
9077
|
-
transform: translate(0, 0);
|
|
9078
|
-
}
|
|
9079
|
-
|
|
9080
|
-
/* Width sizes (left/right) */
|
|
9081
|
-
.muka-drawer--right .muka-drawer__surface,
|
|
9082
|
-
.muka-drawer--left .muka-drawer__surface {
|
|
9083
|
-
width: var(--drawer-width-md);
|
|
9084
|
-
}
|
|
9085
|
-
|
|
9086
|
-
.muka-drawer--sm.muka-drawer--right .muka-drawer__surface,
|
|
9087
|
-
.muka-drawer--sm.muka-drawer--left .muka-drawer__surface {
|
|
9088
|
-
width: var(--drawer-width-sm);
|
|
9089
|
-
}
|
|
9090
|
-
|
|
9091
|
-
.muka-drawer--lg.muka-drawer--right .muka-drawer__surface,
|
|
9092
|
-
.muka-drawer--lg.muka-drawer--left .muka-drawer__surface {
|
|
9093
|
-
width: var(--drawer-width-lg);
|
|
9094
|
-
}
|
|
9095
|
-
|
|
9096
|
-
.muka-drawer--full.muka-drawer--right .muka-drawer__surface,
|
|
9097
|
-
.muka-drawer--full.muka-drawer--left .muka-drawer__surface {
|
|
9098
|
-
width: 100%;
|
|
9099
|
-
}
|
|
9100
|
-
|
|
9101
|
-
/* Height sizes (top/bottom) */
|
|
9102
|
-
.muka-drawer--top .muka-drawer__surface,
|
|
9103
|
-
.muka-drawer--bottom .muka-drawer__surface {
|
|
9104
|
-
height: auto;
|
|
9105
|
-
max-height: 80vh;
|
|
9106
|
-
}
|
|
9107
|
-
|
|
9108
|
-
.muka-drawer--full.muka-drawer--top .muka-drawer__surface,
|
|
9109
|
-
.muka-drawer--full.muka-drawer--bottom .muka-drawer__surface {
|
|
9110
|
-
max-height: 100vh;
|
|
9111
|
-
}
|
|
9112
|
-
|
|
9113
|
-
/* Header */
|
|
9114
|
-
.muka-drawer__header {
|
|
9115
|
-
display: flex;
|
|
9116
|
-
align-items: center;
|
|
9117
|
-
gap: var(--spacing-3);
|
|
9118
|
-
padding: var(--spacing-4);
|
|
9119
|
-
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
9120
|
-
flex-shrink: 0;
|
|
9121
|
-
}
|
|
9122
|
-
|
|
9123
|
-
.muka-drawer__title {
|
|
9124
|
-
flex: 1;
|
|
9125
|
-
margin: 0;
|
|
9126
|
-
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
9127
|
-
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
9128
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
9129
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
9130
|
-
color: var(--color-text-default-default);
|
|
9131
|
-
}
|
|
9132
|
-
|
|
9133
|
-
.muka-drawer__leading,
|
|
9134
|
-
.muka-drawer__trailing {
|
|
9135
|
-
display: flex;
|
|
9136
|
-
align-items: center;
|
|
9137
|
-
flex-shrink: 0;
|
|
9138
|
-
}
|
|
9139
|
-
|
|
9140
|
-
/* Body */
|
|
9141
|
-
.muka-drawer__body {
|
|
9142
|
-
flex: 1;
|
|
9143
|
-
overflow-y: auto;
|
|
9144
|
-
padding: var(--spacing-4);
|
|
9145
|
-
}
|
|
9146
|
-
|
|
9147
|
-
/* Footer */
|
|
9148
|
-
.muka-drawer__footer {
|
|
9149
|
-
padding: var(--spacing-4);
|
|
9150
|
-
border-top: var(--border-width-regular) solid var(--color-border-default);
|
|
9151
|
-
flex-shrink: 0;
|
|
9152
|
-
}
|
|
9153
|
-
|
|
9154
|
-
|
|
9155
|
-
/* Dialog */
|
|
9156
|
-
/* Dialog Component Styles */
|
|
9157
|
-
|
|
9158
|
-
/* ─── Native dialog reset ─────────────────────────────── */
|
|
9159
|
-
|
|
9160
|
-
.muka-dialog {
|
|
9161
|
-
border: none;
|
|
9162
|
-
padding: 0;
|
|
9163
|
-
max-width: none;
|
|
9164
|
-
max-height: none;
|
|
9165
|
-
overflow: visible;
|
|
9166
|
-
background: transparent;
|
|
9167
|
-
color: inherit;
|
|
9168
|
-
box-shadow: none;
|
|
9169
|
-
}
|
|
9170
|
-
|
|
9171
|
-
.muka-dialog:not([open]) {
|
|
9172
|
-
display: none;
|
|
9173
|
-
}
|
|
9174
|
-
|
|
9175
|
-
/* ─── Backdrop ────────────────────────────────────────── */
|
|
9176
|
-
|
|
9177
|
-
.muka-dialog::backdrop {
|
|
9178
|
-
background-color: var(--dialog-color-backdrop);
|
|
9179
|
-
}
|
|
9180
|
-
|
|
9181
|
-
/* ─── Non-modal modifier ──────────────────────────────── */
|
|
9182
|
-
|
|
9183
|
-
.muka-dialog--non-modal::backdrop {
|
|
9184
|
-
pointer-events: auto;
|
|
9185
|
-
}
|
|
9186
|
-
|
|
9187
|
-
/* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
|
|
9188
|
-
|
|
9189
|
-
.muka-dialog--sm,
|
|
9190
|
-
.muka-dialog--md,
|
|
9191
|
-
.muka-dialog--lg {
|
|
9192
|
-
width: 100%;
|
|
9193
|
-
height: 100%;
|
|
9194
|
-
max-width: 100vw;
|
|
9195
|
-
max-height: 100vh;
|
|
9196
|
-
margin: 0;
|
|
9197
|
-
display: flex;
|
|
9198
|
-
flex-direction: column;
|
|
9199
|
-
justify-content: flex-end;
|
|
9200
|
-
align-items: stretch;
|
|
9201
|
-
}
|
|
9202
|
-
|
|
9203
|
-
.muka-dialog__surface:focus {
|
|
9204
|
-
outline: none;
|
|
9257
|
+
.muka-dialog__surface:focus {
|
|
9258
|
+
outline: none;
|
|
9205
9259
|
}
|
|
9206
9260
|
|
|
9207
9261
|
.muka-dialog--sm .muka-dialog__surface,
|
|
@@ -10443,33 +10497,6 @@ li.muka-listitem {
|
|
|
10443
10497
|
}
|
|
10444
10498
|
|
|
10445
10499
|
|
|
10446
|
-
/* Divider */
|
|
10447
|
-
/* Divider Component Styles - Using Muka Design Tokens */
|
|
10448
|
-
|
|
10449
|
-
.muka-divider {
|
|
10450
|
-
flex-shrink: 0;
|
|
10451
|
-
}
|
|
10452
|
-
|
|
10453
|
-
.muka-divider--horizontal {
|
|
10454
|
-
width: 100%;
|
|
10455
|
-
height: var(--separator-width);
|
|
10456
|
-
}
|
|
10457
|
-
|
|
10458
|
-
.muka-divider--vertical {
|
|
10459
|
-
height: 100%;
|
|
10460
|
-
width: var(--separator-width);
|
|
10461
|
-
align-self: stretch;
|
|
10462
|
-
}
|
|
10463
|
-
|
|
10464
|
-
.muka-divider--default {
|
|
10465
|
-
background-color: var(--separator-color-default);
|
|
10466
|
-
}
|
|
10467
|
-
|
|
10468
|
-
.muka-divider--contrast {
|
|
10469
|
-
background-color: var(--separator-color-contrast);
|
|
10470
|
-
}
|
|
10471
|
-
|
|
10472
|
-
|
|
10473
10500
|
/* CheckboxTile */
|
|
10474
10501
|
/* CheckboxTile Component Styles - Using Muka Design Tokens */
|
|
10475
10502
|
|
|
@@ -10798,11 +10825,17 @@ li.muka-listitem {
|
|
|
10798
10825
|
/* ChatPhotoGrid */
|
|
10799
10826
|
/* ChatPhotoGrid Component Styles */
|
|
10800
10827
|
|
|
10828
|
+
/*
|
|
10829
|
+
* The grid clips to its own radius and the tiles stay square, so only the four
|
|
10830
|
+
* outer corners round — matching the Figma "Wrapper" frame (5225:1394).
|
|
10831
|
+
*/
|
|
10801
10832
|
.muka-chat-photo-grid {
|
|
10802
10833
|
display: grid;
|
|
10803
10834
|
gap: var(--chatphotogrid-gap);
|
|
10804
10835
|
width: 100%;
|
|
10805
10836
|
min-width: 0;
|
|
10837
|
+
overflow: hidden;
|
|
10838
|
+
border-radius: var(--chatphotogrid-radius);
|
|
10806
10839
|
}
|
|
10807
10840
|
|
|
10808
10841
|
/* ─── Tiles ────────────────────────────────────────────── */
|
|
@@ -10815,7 +10848,6 @@ li.muka-listitem {
|
|
|
10815
10848
|
padding: 0;
|
|
10816
10849
|
margin: 0;
|
|
10817
10850
|
border: none;
|
|
10818
|
-
border-radius: var(--chatphotogrid-radius);
|
|
10819
10851
|
background-color: var(--chatphotogrid-color-placeholder);
|
|
10820
10852
|
aspect-ratio: 1 / 1;
|
|
10821
10853
|
}
|
|
@@ -10827,7 +10859,8 @@ button.muka-chat-photo-grid__tile {
|
|
|
10827
10859
|
|
|
10828
10860
|
button.muka-chat-photo-grid__tile:focus-visible {
|
|
10829
10861
|
outline: var(--border-width-bold) solid var(--color-border-focus);
|
|
10830
|
-
|
|
10862
|
+
/* Inset, so the grid's overflow clip cannot cut the ring off on corner tiles */
|
|
10863
|
+
outline-offset: calc(-1 * var(--border-width-bold));
|
|
10831
10864
|
}
|
|
10832
10865
|
|
|
10833
10866
|
.muka-chat-photo-grid__image {
|
|
@@ -10911,6 +10944,60 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
10911
10944
|
}
|
|
10912
10945
|
|
|
10913
10946
|
|
|
10947
|
+
/* ChatMessageStack */
|
|
10948
|
+
/* ChatMessageStack Component Styles */
|
|
10949
|
+
|
|
10950
|
+
.muka-chat-message-stack {
|
|
10951
|
+
display: flex;
|
|
10952
|
+
flex-direction: column;
|
|
10953
|
+
gap: var(--chatbubble-stack-gap);
|
|
10954
|
+
width: 100%;
|
|
10955
|
+
max-width: 100%;
|
|
10956
|
+
}
|
|
10957
|
+
|
|
10958
|
+
.muka-chat-message-stack__messages {
|
|
10959
|
+
display: flex;
|
|
10960
|
+
flex-direction: column;
|
|
10961
|
+
gap: var(--chatbubble-stack-gap);
|
|
10962
|
+
width: 100%;
|
|
10963
|
+
}
|
|
10964
|
+
|
|
10965
|
+
/*
|
|
10966
|
+
* Reasoning sits above the stack, indented past the avatar rail so it lines up
|
|
10967
|
+
* with the bubbles rather than with the avatar (Figma 5379:47300).
|
|
10968
|
+
*/
|
|
10969
|
+
.muka-chat-message-stack__reasoning {
|
|
10970
|
+
min-width: 0;
|
|
10971
|
+
}
|
|
10972
|
+
|
|
10973
|
+
.muka-chat-message-stack--has-avatar .muka-chat-message-stack__reasoning {
|
|
10974
|
+
padding-left: calc(var(--chatbubble-avatar-size) + var(--chatbubble-row-gap));
|
|
10975
|
+
}
|
|
10976
|
+
|
|
10977
|
+
.muka-chat-message-stack--own.muka-chat-message-stack--has-avatar
|
|
10978
|
+
.muka-chat-message-stack__reasoning {
|
|
10979
|
+
padding-left: 0;
|
|
10980
|
+
padding-right: calc(var(--chatbubble-avatar-size) + var(--chatbubble-row-gap));
|
|
10981
|
+
}
|
|
10982
|
+
|
|
10983
|
+
/* Follow the message's compact rail and gap below the desktop breakpoint */
|
|
10984
|
+
@media (max-width: 1023px) {
|
|
10985
|
+
.muka-chat-message-stack--has-avatar .muka-chat-message-stack__reasoning {
|
|
10986
|
+
padding-left: calc(
|
|
10987
|
+
var(--chatbubble-avatar-size-compact) + var(--chatbubble-row-gap-compact)
|
|
10988
|
+
);
|
|
10989
|
+
}
|
|
10990
|
+
|
|
10991
|
+
.muka-chat-message-stack--own.muka-chat-message-stack--has-avatar
|
|
10992
|
+
.muka-chat-message-stack__reasoning {
|
|
10993
|
+
padding-left: 0;
|
|
10994
|
+
padding-right: calc(
|
|
10995
|
+
var(--chatbubble-avatar-size-compact) + var(--chatbubble-row-gap-compact)
|
|
10996
|
+
);
|
|
10997
|
+
}
|
|
10998
|
+
}
|
|
10999
|
+
|
|
11000
|
+
|
|
10914
11001
|
/* ChatMessageList */
|
|
10915
11002
|
/* ChatMessageList Component Styles */
|
|
10916
11003
|
|
|
@@ -10954,221 +11041,111 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
10954
11041
|
}
|
|
10955
11042
|
|
|
10956
11043
|
|
|
10957
|
-
/*
|
|
10958
|
-
/*
|
|
11044
|
+
/* ChatMessage */
|
|
11045
|
+
/* ChatMessage Component Styles */
|
|
10959
11046
|
|
|
10960
|
-
|
|
10961
|
-
* The composer is a bare, fill-width row: no padding, background, border or
|
|
10962
|
-
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
10963
|
-
* container — see BottomBar's `chat` variant.
|
|
10964
|
-
*/
|
|
10965
|
-
.muka-chat-composer {
|
|
11047
|
+
.muka-chat-message {
|
|
10966
11048
|
display: flex;
|
|
10967
11049
|
flex-direction: column;
|
|
10968
|
-
gap: var(--spacing-3);
|
|
10969
11050
|
width: 100%;
|
|
11051
|
+
max-width: 100%;
|
|
10970
11052
|
}
|
|
10971
11053
|
|
|
10972
|
-
|
|
10973
|
-
opacity: 0.6;
|
|
10974
|
-
pointer-events: none;
|
|
10975
|
-
}
|
|
10976
|
-
|
|
10977
|
-
/* ─── Input row ────────────────────────────────────────── */
|
|
11054
|
+
/* ─── Row: avatar rail + bubble ────────────────────────── */
|
|
10978
11055
|
|
|
10979
|
-
.muka-chat-
|
|
10980
|
-
display:
|
|
11056
|
+
.muka-chat-message__row {
|
|
11057
|
+
display: grid;
|
|
11058
|
+
grid-template-columns: minmax(0, 1fr);
|
|
11059
|
+
grid-template-areas: 'bubble';
|
|
11060
|
+
column-gap: var(--chatbubble-row-gap);
|
|
10981
11061
|
width: 100%;
|
|
10982
|
-
align-items: flex-end;
|
|
10983
|
-
gap: var(--spacing-3);
|
|
10984
11062
|
}
|
|
10985
11063
|
|
|
10986
|
-
|
|
10987
|
-
|
|
10988
|
-
|
|
10989
|
-
display: flex;
|
|
10990
|
-
flex: 1 1 auto;
|
|
10991
|
-
min-width: 0;
|
|
10992
|
-
box-sizing: border-box;
|
|
10993
|
-
align-items: center;
|
|
10994
|
-
gap: var(--spacing-1);
|
|
10995
|
-
min-height: var(--input-field-height-lg, 48px);
|
|
10996
|
-
padding: 0 var(--spacing-2);
|
|
10997
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
10998
|
-
border-radius: var(--input-field-radius-lg);
|
|
10999
|
-
background-color: var(--input-field-color-default-background);
|
|
11000
|
-
transition: border-color 0.12s ease;
|
|
11064
|
+
.muka-chat-message--has-avatar .muka-chat-message__row {
|
|
11065
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
11066
|
+
grid-template-areas: 'rail bubble';
|
|
11001
11067
|
}
|
|
11002
11068
|
|
|
11003
|
-
.muka-chat-
|
|
11004
|
-
|
|
11069
|
+
.muka-chat-message--own.muka-chat-message--has-avatar .muka-chat-message__row {
|
|
11070
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
11071
|
+
grid-template-areas: 'bubble rail';
|
|
11005
11072
|
}
|
|
11006
11073
|
|
|
11007
|
-
.muka-chat-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
box-sizing: border-box;
|
|
11012
|
-
resize: none;
|
|
11013
|
-
border: none;
|
|
11014
|
-
background: transparent;
|
|
11015
|
-
outline: none;
|
|
11016
|
-
padding: 0 var(--spacing-1);
|
|
11017
|
-
color: var(--color-text-default-default);
|
|
11018
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
11019
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11020
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
11021
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
11022
|
-
appearance: none;
|
|
11023
|
-
-webkit-appearance: none;
|
|
11024
|
-
}
|
|
11025
|
-
|
|
11026
|
-
.muka-chat-composer__input::placeholder {
|
|
11027
|
-
color: var(--color-text-subtle-default);
|
|
11028
|
-
}
|
|
11029
|
-
|
|
11030
|
-
/* Keep the in-field emoji button flush to the bottom-right as the field grows */
|
|
11031
|
-
.muka-chat-composer__emoji {
|
|
11032
|
-
flex-shrink: 0;
|
|
11033
|
-
}
|
|
11034
|
-
|
|
11035
|
-
/* ─── Recording bar ────────────────────────────────────── */
|
|
11036
|
-
|
|
11037
|
-
.muka-chat-composer__recording {
|
|
11038
|
-
display: flex;
|
|
11039
|
-
flex: 1 1 auto;
|
|
11040
|
-
min-width: 0;
|
|
11041
|
-
box-sizing: border-box;
|
|
11042
|
-
align-items: center;
|
|
11043
|
-
min-height: var(--input-field-height-lg, 48px);
|
|
11044
|
-
padding: var(--card-padding-sm);
|
|
11045
|
-
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11046
|
-
border-radius: var(--radius-lg);
|
|
11047
|
-
background-color: var(--card-color-default-background);
|
|
11048
|
-
}
|
|
11049
|
-
|
|
11050
|
-
/* ─── Staged attachments strip ─────────────────────────── */
|
|
11051
|
-
|
|
11052
|
-
.muka-chat-composer__attachments-strip {
|
|
11053
|
-
position: relative;
|
|
11054
|
-
width: 100%;
|
|
11055
|
-
}
|
|
11056
|
-
|
|
11057
|
-
.muka-chat-composer__attachments {
|
|
11058
|
-
display: flex;
|
|
11059
|
-
gap: var(--spacing-3);
|
|
11060
|
-
overflow-x: auto;
|
|
11061
|
-
scroll-behavior: smooth;
|
|
11062
|
-
scrollbar-width: none;
|
|
11063
|
-
}
|
|
11064
|
-
|
|
11065
|
-
.muka-chat-composer__attachments::-webkit-scrollbar {
|
|
11066
|
-
display: none;
|
|
11067
|
-
}
|
|
11068
|
-
|
|
11069
|
-
.muka-chat-composer__overflow {
|
|
11070
|
-
position: absolute;
|
|
11071
|
-
top: 50%;
|
|
11072
|
-
right: var(--spacing-2);
|
|
11073
|
-
transform: translateY(-50%);
|
|
11074
|
-
}
|
|
11075
|
-
|
|
11076
|
-
/* ─── Print ────────────────────────────────────────────── */
|
|
11077
|
-
|
|
11078
|
-
@media print {
|
|
11079
|
-
.muka-chat-composer {
|
|
11080
|
-
display: none;
|
|
11081
|
-
}
|
|
11082
|
-
}
|
|
11083
|
-
|
|
11084
|
-
|
|
11085
|
-
/* ChatBubble */
|
|
11086
|
-
/* ChatBubble Component Styles */
|
|
11087
|
-
|
|
11088
|
-
.muka-chat-bubble {
|
|
11074
|
+
.muka-chat-message__rail {
|
|
11075
|
+
grid-area: rail;
|
|
11076
|
+
/* Sits on the bubble's baseline (Figma 5355:44091) */
|
|
11077
|
+
align-self: end;
|
|
11089
11078
|
display: flex;
|
|
11090
|
-
|
|
11091
|
-
width:
|
|
11092
|
-
max-width: 100%;
|
|
11079
|
+
justify-content: center;
|
|
11080
|
+
min-width: var(--chatbubble-avatar-size);
|
|
11093
11081
|
}
|
|
11094
11082
|
|
|
11095
|
-
/*
|
|
11096
|
-
*
|
|
11097
|
-
*
|
|
11098
|
-
*
|
|
11083
|
+
/*
|
|
11084
|
+
* The Small size in Figma (5373:44702) halves the avatar to 32px and tightens
|
|
11085
|
+
* the gap to the bubble. Size the avatar itself, not just the rail, so the
|
|
11086
|
+
* bubbles keep their alignment. The header row keeps its own gap.
|
|
11099
11087
|
*/
|
|
11088
|
+
@media (max-width: 1023px) {
|
|
11089
|
+
.muka-chat-message__row {
|
|
11090
|
+
column-gap: var(--chatbubble-row-gap-compact);
|
|
11091
|
+
}
|
|
11100
11092
|
|
|
11101
|
-
.muka-chat-
|
|
11102
|
-
|
|
11103
|
-
|
|
11104
|
-
grid-template-areas:
|
|
11105
|
-
'bubble'
|
|
11106
|
-
'actions';
|
|
11107
|
-
column-gap: var(--chatbubble-row-gap);
|
|
11108
|
-
row-gap: var(--chatbubble-gap);
|
|
11109
|
-
width: 100%;
|
|
11110
|
-
}
|
|
11111
|
-
|
|
11112
|
-
.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
|
|
11113
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
11114
|
-
grid-template-areas:
|
|
11115
|
-
'rail bubble'
|
|
11116
|
-
'. actions';
|
|
11117
|
-
}
|
|
11118
|
-
|
|
11119
|
-
.muka-chat-bubble--own.muka-chat-bubble--has-avatar .muka-chat-bubble__row {
|
|
11120
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
11121
|
-
grid-template-areas:
|
|
11122
|
-
'bubble rail'
|
|
11123
|
-
'actions .';
|
|
11124
|
-
}
|
|
11093
|
+
.muka-chat-message__rail {
|
|
11094
|
+
min-width: var(--chatbubble-avatar-size-compact);
|
|
11095
|
+
}
|
|
11125
11096
|
|
|
11126
|
-
|
|
11127
|
-
|
|
11128
|
-
|
|
11129
|
-
|
|
11130
|
-
|
|
11131
|
-
justify-content: center;
|
|
11132
|
-
min-width: var(--chatbubble-avatar-size);
|
|
11097
|
+
/* Outweighs the avatar's own size class, which sets width/height directly */
|
|
11098
|
+
.muka-chat-message .muka-chat-message__rail > * {
|
|
11099
|
+
width: var(--chatbubble-avatar-size-compact);
|
|
11100
|
+
height: var(--chatbubble-avatar-size-compact);
|
|
11101
|
+
}
|
|
11133
11102
|
}
|
|
11134
11103
|
|
|
11135
11104
|
/* ─── Bubble surface ───────────────────────────────────── */
|
|
11136
11105
|
|
|
11137
|
-
.muka-chat-
|
|
11106
|
+
.muka-chat-message__bubble {
|
|
11138
11107
|
grid-area: bubble;
|
|
11139
11108
|
max-width: var(--chatbubble-max-width);
|
|
11140
11109
|
position: relative;
|
|
11141
11110
|
display: flex;
|
|
11142
11111
|
flex-direction: column;
|
|
11143
11112
|
gap: var(--chatbubble-gap);
|
|
11144
|
-
|
|
11145
|
-
padding: var(--chatbubble-padding);
|
|
11113
|
+
padding: var(--chatbubble-padding-block) var(--chatbubble-padding-inline);
|
|
11146
11114
|
border-radius: var(--chatbubble-radius);
|
|
11147
11115
|
border: var(--border-width-regular) solid transparent;
|
|
11116
|
+
box-shadow: var(--shadow-level2);
|
|
11148
11117
|
word-break: break-word;
|
|
11149
11118
|
}
|
|
11150
11119
|
|
|
11151
|
-
|
|
11152
|
-
|
|
11120
|
+
/*
|
|
11121
|
+
* Length axis (Figma `Text length` on 5355:44091): short messages hug their
|
|
11122
|
+
* content, long ones fill the row up to the shared max width.
|
|
11123
|
+
*/
|
|
11124
|
+
.muka-chat-message--long .muka-chat-message__bubble {
|
|
11125
|
+
width: 100%;
|
|
11126
|
+
}
|
|
11127
|
+
|
|
11128
|
+
.muka-chat-message--short .muka-chat-message__bubble {
|
|
11129
|
+
width: fit-content;
|
|
11130
|
+
}
|
|
11131
|
+
|
|
11132
|
+
.muka-chat-message--own .muka-chat-message__bubble {
|
|
11153
11133
|
justify-self: end;
|
|
11154
11134
|
}
|
|
11155
11135
|
|
|
11156
|
-
.muka-chat-
|
|
11136
|
+
.muka-chat-message--own .muka-chat-message__bubble {
|
|
11157
11137
|
background-color: var(--chatbubble-color-own-background);
|
|
11158
11138
|
border-color: var(--chatbubble-color-own-border);
|
|
11159
11139
|
color: var(--chatbubble-color-own-foreground);
|
|
11160
|
-
/* Room for the inset timestamp in the bottom-right corner */
|
|
11161
|
-
padding-right: var(--spacing-6);
|
|
11162
11140
|
}
|
|
11163
11141
|
|
|
11164
|
-
.muka-chat-
|
|
11142
|
+
.muka-chat-message--peer .muka-chat-message__bubble {
|
|
11165
11143
|
background-color: var(--chatbubble-color-peer-background);
|
|
11166
11144
|
border-color: var(--chatbubble-color-peer-border);
|
|
11167
11145
|
color: var(--chatbubble-color-peer-foreground);
|
|
11168
|
-
box-shadow: var(--shadow-level2);
|
|
11169
11146
|
}
|
|
11170
11147
|
|
|
11171
|
-
.muka-chat-
|
|
11148
|
+
.muka-chat-message--agent .muka-chat-message__bubble {
|
|
11172
11149
|
background-color: var(--chatbubble-color-agent-background);
|
|
11173
11150
|
border-color: var(--chatbubble-color-agent-border);
|
|
11174
11151
|
color: var(--chatbubble-color-agent-foreground);
|
|
@@ -11176,21 +11153,21 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11176
11153
|
|
|
11177
11154
|
/* ─── Header row (author · meta · time · badge) ────────── */
|
|
11178
11155
|
|
|
11179
|
-
.muka-chat-
|
|
11156
|
+
.muka-chat-message__header {
|
|
11180
11157
|
display: flex;
|
|
11181
11158
|
flex-flow: row wrap;
|
|
11182
11159
|
align-items: center;
|
|
11183
11160
|
gap: var(--chatbubble-row-gap);
|
|
11184
11161
|
}
|
|
11185
11162
|
|
|
11186
|
-
.muka-chat-
|
|
11163
|
+
.muka-chat-message__author {
|
|
11187
11164
|
font-family: var(--text-body-base-bold-fontFamily);
|
|
11188
11165
|
font-weight: var(--text-body-base-bold-fontWeight);
|
|
11189
11166
|
font-size: var(--text-body-base-bold-fontSize);
|
|
11190
11167
|
line-height: var(--text-body-base-bold-lineHeight);
|
|
11191
11168
|
}
|
|
11192
11169
|
|
|
11193
|
-
.muka-chat-
|
|
11170
|
+
.muka-chat-message__author-meta {
|
|
11194
11171
|
/* Inherits the variant's body colour from the bubble */
|
|
11195
11172
|
color: inherit;
|
|
11196
11173
|
font-family: var(--text-body-base-regular-fontFamily);
|
|
@@ -11199,7 +11176,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11199
11176
|
line-height: var(--text-body-base-regular-lineHeight);
|
|
11200
11177
|
}
|
|
11201
11178
|
|
|
11202
|
-
.muka-chat-
|
|
11179
|
+
.muka-chat-message__badge {
|
|
11203
11180
|
display: inline-flex;
|
|
11204
11181
|
align-items: center;
|
|
11205
11182
|
}
|
|
@@ -11208,30 +11185,30 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11208
11185
|
* Keep the first line of content clear of the absolutely positioned menu
|
|
11209
11186
|
* button in the bubble's top-right corner.
|
|
11210
11187
|
*/
|
|
11211
|
-
.muka-chat-
|
|
11212
|
-
.muka-chat-
|
|
11213
|
-
padding-right: var(--spacing-
|
|
11188
|
+
.muka-chat-message--has-menu .muka-chat-message__header,
|
|
11189
|
+
.muka-chat-message--has-menu.muka-chat-message--no-header .muka-chat-message__message {
|
|
11190
|
+
padding-right: var(--spacing-10);
|
|
11191
|
+
}
|
|
11192
|
+
|
|
11193
|
+
/* …and the last line clear of the inset timestamp in the bottom-right corner */
|
|
11194
|
+
.muka-chat-message--has-timestamp .muka-chat-message__message {
|
|
11195
|
+
padding-right: var(--spacing-10);
|
|
11214
11196
|
}
|
|
11215
11197
|
|
|
11216
11198
|
/* ─── Body ─────────────────────────────────────────────── */
|
|
11217
11199
|
|
|
11218
|
-
.muka-chat-
|
|
11200
|
+
.muka-chat-message__body {
|
|
11219
11201
|
display: flex;
|
|
11220
11202
|
flex-direction: column;
|
|
11221
11203
|
gap: var(--chatbubble-gap);
|
|
11222
11204
|
min-width: 0;
|
|
11223
11205
|
}
|
|
11224
11206
|
|
|
11225
|
-
|
|
11226
|
-
.muka-chat-bubble--agent .muka-chat-bubble__body {
|
|
11227
|
-
gap: var(--chatbubble-body-gap);
|
|
11228
|
-
}
|
|
11229
|
-
|
|
11230
|
-
.muka-chat-bubble__media {
|
|
11207
|
+
.muka-chat-message__media {
|
|
11231
11208
|
min-width: 0;
|
|
11232
11209
|
}
|
|
11233
11210
|
|
|
11234
|
-
.muka-chat-
|
|
11211
|
+
.muka-chat-message__message {
|
|
11235
11212
|
font-family: var(--text-body-base-regular-fontFamily);
|
|
11236
11213
|
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11237
11214
|
font-size: var(--text-body-base-regular-fontSize);
|
|
@@ -11241,18 +11218,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11241
11218
|
}
|
|
11242
11219
|
|
|
11243
11220
|
/* Empty message block should not add a gap of its own */
|
|
11244
|
-
.muka-chat-
|
|
11221
|
+
.muka-chat-message__message:empty {
|
|
11245
11222
|
display: none;
|
|
11246
11223
|
}
|
|
11247
11224
|
|
|
11248
11225
|
/* ─── Embedded card ────────────────────────────────────── */
|
|
11249
11226
|
|
|
11250
|
-
.muka-chat-
|
|
11227
|
+
.muka-chat-message__embed {
|
|
11251
11228
|
position: relative;
|
|
11252
11229
|
display: flex;
|
|
11253
11230
|
flex-direction: column;
|
|
11254
11231
|
gap: var(--chatbubble-embed-gap);
|
|
11255
|
-
|
|
11232
|
+
/* The card is inset from the blocks above and below it (Figma 5289:40562) */
|
|
11233
|
+
margin-block: var(--chatbubble-embed-margin-block);
|
|
11234
|
+
padding: var(--chatbubble-embed-padding-block) var(--chatbubble-embed-padding-inline);
|
|
11256
11235
|
border-radius: var(--chatbubble-embed-radius);
|
|
11257
11236
|
border: var(--border-width-regular) solid transparent;
|
|
11258
11237
|
}
|
|
@@ -11261,127 +11240,135 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11261
11240
|
* The embed sits on the raised surface of its author's role, one step apart
|
|
11262
11241
|
* from the bubble it is nested in, and reuses that role's border colour.
|
|
11263
11242
|
*/
|
|
11264
|
-
.muka-chat-
|
|
11243
|
+
.muka-chat-message--own .muka-chat-message__embed {
|
|
11265
11244
|
background-color: var(--chatbubble-embed-color-own-background);
|
|
11266
11245
|
border-color: var(--chatbubble-embed-color-own-border);
|
|
11267
11246
|
color: var(--chatbubble-embed-color-own-foreground);
|
|
11268
11247
|
}
|
|
11269
11248
|
|
|
11270
|
-
.muka-chat-
|
|
11249
|
+
.muka-chat-message--peer .muka-chat-message__embed {
|
|
11271
11250
|
background-color: var(--chatbubble-embed-color-peer-background);
|
|
11272
11251
|
border-color: var(--chatbubble-embed-color-peer-border);
|
|
11273
11252
|
color: var(--chatbubble-embed-color-peer-foreground);
|
|
11274
11253
|
}
|
|
11275
11254
|
|
|
11276
|
-
.muka-chat-
|
|
11255
|
+
.muka-chat-message--agent .muka-chat-message__embed {
|
|
11277
11256
|
background-color: var(--chatbubble-embed-color-agent-background);
|
|
11278
11257
|
border-color: var(--chatbubble-embed-color-agent-border);
|
|
11279
11258
|
color: var(--chatbubble-embed-color-agent-foreground);
|
|
11280
11259
|
}
|
|
11281
11260
|
|
|
11282
|
-
.muka-chat-
|
|
11261
|
+
.muka-chat-message__embed-content {
|
|
11283
11262
|
display: flex;
|
|
11284
11263
|
flex-direction: column;
|
|
11285
11264
|
gap: var(--chatbubble-embed-gap);
|
|
11286
11265
|
min-width: 0;
|
|
11287
11266
|
}
|
|
11288
11267
|
|
|
11289
|
-
.muka-chat-
|
|
11268
|
+
.muka-chat-message__embed-copy {
|
|
11290
11269
|
position: absolute;
|
|
11291
|
-
top: var(--chatbubble-embed-padding);
|
|
11292
|
-
right: var(--chatbubble-embed-padding);
|
|
11270
|
+
top: var(--chatbubble-embed-padding-block);
|
|
11271
|
+
right: var(--chatbubble-embed-padding-inline);
|
|
11293
11272
|
}
|
|
11294
11273
|
|
|
11295
11274
|
/* ─── Stacked full-width action buttons ────────────────── */
|
|
11296
11275
|
|
|
11297
|
-
.muka-chat-
|
|
11276
|
+
.muka-chat-message__action-stack {
|
|
11298
11277
|
display: flex;
|
|
11299
11278
|
flex-direction: column;
|
|
11300
11279
|
gap: var(--chatbubble-action-stack-gap);
|
|
11301
11280
|
}
|
|
11302
11281
|
|
|
11303
|
-
/* ─── Inset timestamp
|
|
11282
|
+
/* ─── Inset timestamp ──────────────────────────────────── */
|
|
11283
|
+
|
|
11284
|
+
/*
|
|
11285
|
+
* Every author puts its timestamp in the bubble's bottom-right corner, below
|
|
11286
|
+
* the message — never in the header row (Figma 5355:44091).
|
|
11287
|
+
*/
|
|
11304
11288
|
|
|
11305
|
-
.muka-chat-
|
|
11289
|
+
.muka-chat-message__timestamp {
|
|
11306
11290
|
color: var(--chatbubble-color-timestamp);
|
|
11307
|
-
font-family: var(--text-body-
|
|
11308
|
-
font-weight: var(--text-body-
|
|
11309
|
-
font-size: var(--text-body-
|
|
11310
|
-
line-height: var(--text-body-
|
|
11291
|
+
font-family: var(--text-body-xs-regular-fontFamily);
|
|
11292
|
+
font-weight: var(--text-body-xs-regular-fontWeight);
|
|
11293
|
+
font-size: var(--text-body-xs-regular-fontSize);
|
|
11294
|
+
line-height: var(--text-body-xs-regular-lineHeight);
|
|
11311
11295
|
white-space: nowrap;
|
|
11312
11296
|
}
|
|
11313
11297
|
|
|
11314
|
-
|
|
11315
|
-
|
|
11298
|
+
/*
|
|
11299
|
+
* Pinned to the corner rather than stacked below the message, so a one-line
|
|
11300
|
+
* message stays one line tall. The message reserves the width it needs.
|
|
11301
|
+
*/
|
|
11302
|
+
.muka-chat-message__timestamp--inset {
|
|
11303
|
+
position: absolute;
|
|
11304
|
+
right: var(--spacing-2);
|
|
11305
|
+
bottom: var(--spacing-1);
|
|
11306
|
+
}
|
|
11307
|
+
|
|
11308
|
+
/*
|
|
11309
|
+
* Media, an embed or an action stack run the full width of the bubble, so the
|
|
11310
|
+
* corner the timestamp sits in has to be cleared for it.
|
|
11311
|
+
*/
|
|
11312
|
+
.muka-chat-message--has-timestamp.muka-chat-message--has-blocks .muka-chat-message__body {
|
|
11313
|
+
padding-bottom: var(--text-body-xs-regular-lineHeight);
|
|
11316
11314
|
}
|
|
11317
11315
|
|
|
11318
11316
|
/* ─── Menu affordance ──────────────────────────────────── */
|
|
11319
11317
|
|
|
11320
|
-
|
|
11318
|
+
/*
|
|
11319
|
+
* Hidden at rest. Revealed on hover on pointer devices, on keyboard focus
|
|
11320
|
+
* everywhere, and pinned while its menu is open. On touch the equivalent
|
|
11321
|
+
* affordance is a long-press on the bubble, which opens an ActionSheet.
|
|
11322
|
+
*/
|
|
11323
|
+
.muka-chat-message__menu {
|
|
11321
11324
|
position: absolute;
|
|
11322
11325
|
top: var(--spacing-1);
|
|
11323
11326
|
right: var(--spacing-1);
|
|
11327
|
+
opacity: 0;
|
|
11328
|
+
pointer-events: none;
|
|
11324
11329
|
}
|
|
11325
11330
|
|
|
11326
|
-
|
|
11327
|
-
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
max-width: var(--chatbubble-max-width);
|
|
11331
|
-
display: flex;
|
|
11332
|
-
align-items: center;
|
|
11333
|
-
gap: 0;
|
|
11334
|
-
}
|
|
11335
|
-
|
|
11336
|
-
.muka-chat-bubble--own .muka-chat-bubble__actions,
|
|
11337
|
-
.muka-chat-bubble--agent .muka-chat-bubble__actions {
|
|
11338
|
-
justify-content: flex-end;
|
|
11331
|
+
.muka-chat-message__menu:focus-within,
|
|
11332
|
+
.muka-chat-message--menu-open .muka-chat-message__menu {
|
|
11333
|
+
opacity: 1;
|
|
11334
|
+
pointer-events: auto;
|
|
11339
11335
|
}
|
|
11340
11336
|
|
|
11341
|
-
|
|
11342
|
-
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
position: relative;
|
|
11337
|
+
@media (hover: hover) and (pointer: fine) and (min-width: 1024px) {
|
|
11338
|
+
.muka-chat-message__bubble:hover .muka-chat-message__menu {
|
|
11339
|
+
opacity: 1;
|
|
11340
|
+
pointer-events: auto;
|
|
11341
|
+
}
|
|
11347
11342
|
}
|
|
11348
11343
|
|
|
11349
|
-
|
|
11350
|
-
|
|
11351
|
-
|
|
11352
|
-
|
|
11353
|
-
|
|
11354
|
-
width: 44px;
|
|
11355
|
-
height: 44px;
|
|
11356
|
-
transform: translate(-50%, -50%);
|
|
11344
|
+
/* Suppress iOS Safari's own callout so the long-press sheet can take over */
|
|
11345
|
+
@media (pointer: coarse) {
|
|
11346
|
+
.muka-chat-message--has-menu .muka-chat-message__bubble {
|
|
11347
|
+
-webkit-touch-callout: none;
|
|
11348
|
+
}
|
|
11357
11349
|
}
|
|
11358
11350
|
|
|
11359
11351
|
/* ─── Print ────────────────────────────────────────────── */
|
|
11360
11352
|
|
|
11361
11353
|
@media print {
|
|
11362
|
-
.muka-chat-
|
|
11354
|
+
.muka-chat-message__bubble {
|
|
11363
11355
|
box-shadow: none;
|
|
11364
11356
|
break-inside: avoid;
|
|
11365
11357
|
print-color-adjust: exact;
|
|
11366
11358
|
-webkit-print-color-adjust: exact;
|
|
11367
11359
|
}
|
|
11368
11360
|
|
|
11369
|
-
.muka-chat-
|
|
11361
|
+
.muka-chat-message__embed {
|
|
11370
11362
|
break-inside: avoid;
|
|
11371
11363
|
print-color-adjust: exact;
|
|
11372
11364
|
-webkit-print-color-adjust: exact;
|
|
11373
11365
|
}
|
|
11374
11366
|
|
|
11375
|
-
.muka-chat-
|
|
11376
|
-
.muka-chat-
|
|
11377
|
-
.muka-chat-
|
|
11378
|
-
.muka-chat-bubble__action-stack {
|
|
11367
|
+
.muka-chat-message__menu,
|
|
11368
|
+
.muka-chat-message__embed-copy,
|
|
11369
|
+
.muka-chat-message__action-stack {
|
|
11379
11370
|
display: none;
|
|
11380
11371
|
}
|
|
11381
|
-
|
|
11382
|
-
.muka-chat-bubble__column {
|
|
11383
|
-
max-width: 100%;
|
|
11384
|
-
}
|
|
11385
11372
|
}
|
|
11386
11373
|
|
|
11387
11374
|
|
|
@@ -11652,400 +11639,213 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11652
11639
|
}
|
|
11653
11640
|
|
|
11654
11641
|
|
|
11655
|
-
/*
|
|
11656
|
-
/*
|
|
11657
|
-
|
|
11658
|
-
/* Base button styles */
|
|
11659
|
-
.muka-button {
|
|
11660
|
-
/* Layout */
|
|
11661
|
-
display: inline-flex;
|
|
11662
|
-
align-items: center;
|
|
11663
|
-
justify-content: center;
|
|
11642
|
+
/* ChatComposer */
|
|
11643
|
+
/* ChatComposer Component Styles */
|
|
11664
11644
|
|
|
11665
|
-
|
|
11666
|
-
|
|
11667
|
-
|
|
11668
|
-
|
|
11669
|
-
|
|
11670
|
-
|
|
11671
|
-
|
|
11672
|
-
|
|
11673
|
-
|
|
11674
|
-
|
|
11675
|
-
|
|
11676
|
-
/* Accessibility */
|
|
11677
|
-
outline: none;
|
|
11678
|
-
position: relative;
|
|
11645
|
+
/*
|
|
11646
|
+
* The composer is a bare, fill-width row: no padding, background, border or
|
|
11647
|
+
* max-width of its own (Figma 5243:14141). Whatever hosts it owns the
|
|
11648
|
+
* container — see BottomBar's `chat` variant.
|
|
11649
|
+
*/
|
|
11650
|
+
.muka-chat-composer {
|
|
11651
|
+
display: flex;
|
|
11652
|
+
flex-direction: column;
|
|
11653
|
+
gap: var(--spacing-3);
|
|
11654
|
+
width: 100%;
|
|
11679
11655
|
}
|
|
11680
11656
|
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
outline-offset: 2px;
|
|
11657
|
+
.muka-chat-composer--disabled {
|
|
11658
|
+
opacity: 0.6;
|
|
11659
|
+
pointer-events: none;
|
|
11685
11660
|
}
|
|
11686
11661
|
|
|
11687
|
-
/*
|
|
11688
|
-
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
11689
|
-
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
11690
|
-
the button's padding is the outer container inset, and the label's own
|
|
11691
|
-
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
11692
|
-
.muka-button--sm {
|
|
11693
|
-
padding: 0 var(--button-padding-sm-x);
|
|
11694
|
-
border-radius: var(--button-radius-sm);
|
|
11695
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11696
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11697
|
-
min-height: 32px;
|
|
11698
|
-
}
|
|
11662
|
+
/* ─── Input row ────────────────────────────────────────── */
|
|
11699
11663
|
|
|
11700
|
-
.muka-
|
|
11701
|
-
|
|
11664
|
+
.muka-chat-composer__row {
|
|
11665
|
+
display: flex;
|
|
11666
|
+
width: 100%;
|
|
11667
|
+
align-items: flex-end;
|
|
11668
|
+
gap: var(--spacing-3);
|
|
11702
11669
|
}
|
|
11703
11670
|
|
|
11704
|
-
|
|
11705
|
-
padding: 0 var(--button-padding-md-x);
|
|
11706
|
-
border-radius: var(--button-radius-md);
|
|
11707
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
11708
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
11709
|
-
min-height: 40px;
|
|
11710
|
-
}
|
|
11671
|
+
/* ─── Text field ───────────────────────────────────────── */
|
|
11711
11672
|
|
|
11712
|
-
.muka-
|
|
11713
|
-
|
|
11673
|
+
.muka-chat-composer__field {
|
|
11674
|
+
display: flex;
|
|
11675
|
+
flex: 1 1 auto;
|
|
11676
|
+
min-width: 0;
|
|
11677
|
+
box-sizing: border-box;
|
|
11678
|
+
align-items: center;
|
|
11679
|
+
gap: var(--spacing-1);
|
|
11680
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11681
|
+
padding: 0 var(--spacing-2);
|
|
11682
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
11683
|
+
border-radius: var(--input-field-radius-lg);
|
|
11684
|
+
background-color: var(--input-field-color-default-background);
|
|
11685
|
+
transition: border-color 0.12s ease;
|
|
11714
11686
|
}
|
|
11715
11687
|
|
|
11716
|
-
.muka-
|
|
11717
|
-
|
|
11718
|
-
border-radius: var(--button-radius-lg);
|
|
11719
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
11720
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
11721
|
-
min-height: 48px;
|
|
11688
|
+
.muka-chat-composer__field:focus-within {
|
|
11689
|
+
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
11722
11690
|
}
|
|
11723
11691
|
|
|
11724
|
-
.muka-
|
|
11725
|
-
|
|
11692
|
+
.muka-chat-composer__input {
|
|
11693
|
+
flex: 1 1 auto;
|
|
11694
|
+
min-width: 0;
|
|
11695
|
+
width: 100%;
|
|
11696
|
+
box-sizing: border-box;
|
|
11697
|
+
resize: none;
|
|
11698
|
+
border: none;
|
|
11699
|
+
background: transparent;
|
|
11700
|
+
outline: none;
|
|
11701
|
+
padding: 0 var(--spacing-1);
|
|
11702
|
+
color: var(--color-text-default-default);
|
|
11703
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
11704
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
11705
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
11706
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
11707
|
+
appearance: none;
|
|
11708
|
+
-webkit-appearance: none;
|
|
11726
11709
|
}
|
|
11727
11710
|
|
|
11728
|
-
.muka-
|
|
11729
|
-
|
|
11730
|
-
border-radius: var(--button-radius-xl);
|
|
11731
|
-
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
11732
|
-
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
11733
|
-
min-height: 64px;
|
|
11711
|
+
.muka-chat-composer__input::placeholder {
|
|
11712
|
+
color: var(--color-text-subtle-default);
|
|
11734
11713
|
}
|
|
11735
11714
|
|
|
11736
|
-
|
|
11737
|
-
|
|
11715
|
+
/* Keep the in-field emoji button flush to the bottom-right as the field grows */
|
|
11716
|
+
.muka-chat-composer__emoji {
|
|
11717
|
+
flex-shrink: 0;
|
|
11738
11718
|
}
|
|
11739
11719
|
|
|
11740
|
-
/*
|
|
11741
|
-
.muka-button--primary {
|
|
11742
|
-
background-color: var(--button-color-primary-background-default);
|
|
11743
|
-
color: var(--button-color-primary-foreground-default);
|
|
11744
|
-
box-shadow: var(--button-color-primary-shadow-default);
|
|
11745
|
-
}
|
|
11720
|
+
/* ─── Recording bar ────────────────────────────────────── */
|
|
11746
11721
|
|
|
11747
|
-
.muka-
|
|
11748
|
-
|
|
11749
|
-
|
|
11750
|
-
|
|
11722
|
+
.muka-chat-composer__recording {
|
|
11723
|
+
display: flex;
|
|
11724
|
+
flex: 1 1 auto;
|
|
11725
|
+
min-width: 0;
|
|
11726
|
+
box-sizing: border-box;
|
|
11727
|
+
align-items: center;
|
|
11728
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
11729
|
+
padding: var(--card-padding-sm);
|
|
11730
|
+
border: var(--border-width-regular) solid var(--card-color-default-border);
|
|
11731
|
+
border-radius: var(--radius-lg);
|
|
11732
|
+
background-color: var(--card-color-default-background);
|
|
11751
11733
|
}
|
|
11752
11734
|
|
|
11753
|
-
/*
|
|
11754
|
-
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
11755
|
-
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
11756
|
-
to sighted users by the accessibility tree alone. */
|
|
11757
|
-
.muka-button--primary:active:not(:disabled),
|
|
11758
|
-
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
11759
|
-
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
11760
|
-
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
11761
|
-
background-color: var(--button-color-primary-background-pressed);
|
|
11762
|
-
color: var(--button-color-primary-foreground-pressed);
|
|
11763
|
-
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
11764
|
-
}
|
|
11735
|
+
/* ─── Staged attachments strip ─────────────────────────── */
|
|
11765
11736
|
|
|
11766
|
-
.muka-
|
|
11767
|
-
|
|
11768
|
-
|
|
11769
|
-
box-shadow: var(--button-color-primary-shadow-disabled);
|
|
11770
|
-
cursor: not-allowed;
|
|
11771
|
-
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
11737
|
+
.muka-chat-composer__attachments-strip {
|
|
11738
|
+
position: relative;
|
|
11739
|
+
width: 100%;
|
|
11772
11740
|
}
|
|
11773
11741
|
|
|
11774
|
-
|
|
11775
|
-
|
|
11776
|
-
|
|
11777
|
-
|
|
11778
|
-
|
|
11742
|
+
.muka-chat-composer__attachments {
|
|
11743
|
+
display: flex;
|
|
11744
|
+
gap: var(--spacing-3);
|
|
11745
|
+
overflow-x: auto;
|
|
11746
|
+
scroll-behavior: smooth;
|
|
11747
|
+
scrollbar-width: none;
|
|
11779
11748
|
}
|
|
11780
11749
|
|
|
11781
|
-
.muka-
|
|
11782
|
-
|
|
11783
|
-
color: var(--button-color-secondary-foreground-hover);
|
|
11784
|
-
box-shadow: var(--button-color-secondary-shadow-hover);
|
|
11750
|
+
.muka-chat-composer__attachments::-webkit-scrollbar {
|
|
11751
|
+
display: none;
|
|
11785
11752
|
}
|
|
11786
11753
|
|
|
11787
|
-
.muka-
|
|
11788
|
-
|
|
11789
|
-
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
color: var(--button-color-secondary-foreground-pressed);
|
|
11793
|
-
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
11754
|
+
.muka-chat-composer__overflow {
|
|
11755
|
+
position: absolute;
|
|
11756
|
+
top: 50%;
|
|
11757
|
+
right: var(--spacing-2);
|
|
11758
|
+
transform: translateY(-50%);
|
|
11794
11759
|
}
|
|
11795
11760
|
|
|
11796
|
-
|
|
11797
|
-
background-color: var(--button-color-secondary-background-disabled);
|
|
11798
|
-
color: var(--button-color-secondary-foreground-disabled);
|
|
11799
|
-
box-shadow: var(--button-color-secondary-shadow-disabled);
|
|
11800
|
-
cursor: not-allowed;
|
|
11801
|
-
opacity: 1;
|
|
11802
|
-
}
|
|
11761
|
+
/* ─── Print ────────────────────────────────────────────── */
|
|
11803
11762
|
|
|
11804
|
-
|
|
11805
|
-
.muka-
|
|
11806
|
-
|
|
11807
|
-
|
|
11808
|
-
border: 1px solid var(--button-color-tertiary-border-default);
|
|
11763
|
+
@media print {
|
|
11764
|
+
.muka-chat-composer {
|
|
11765
|
+
display: none;
|
|
11766
|
+
}
|
|
11809
11767
|
}
|
|
11810
11768
|
|
|
11811
|
-
.muka-button--tertiary:hover:not(:disabled) {
|
|
11812
|
-
background-color: var(--button-color-tertiary-background-hover);
|
|
11813
|
-
color: var(--button-color-tertiary-foreground-hover);
|
|
11814
|
-
border-color: var(--button-color-tertiary-border-hover);
|
|
11815
|
-
}
|
|
11816
11769
|
|
|
11817
|
-
|
|
11818
|
-
|
|
11819
|
-
|
|
11820
|
-
.muka-
|
|
11821
|
-
|
|
11822
|
-
|
|
11823
|
-
|
|
11770
|
+
/* Breadcrumb */
|
|
11771
|
+
/* Breadcrumb Component Styles */
|
|
11772
|
+
|
|
11773
|
+
.muka-breadcrumb__list {
|
|
11774
|
+
display: flex;
|
|
11775
|
+
align-items: center;
|
|
11776
|
+
flex-wrap: wrap;
|
|
11777
|
+
list-style: none;
|
|
11778
|
+
margin: 0;
|
|
11779
|
+
padding: 0;
|
|
11780
|
+
gap: var(--spacing-1);
|
|
11824
11781
|
}
|
|
11825
11782
|
|
|
11826
|
-
.muka-
|
|
11827
|
-
|
|
11828
|
-
|
|
11829
|
-
|
|
11830
|
-
cursor: not-allowed;
|
|
11831
|
-
opacity: 1;
|
|
11783
|
+
.muka-breadcrumb__item {
|
|
11784
|
+
display: inline-flex;
|
|
11785
|
+
align-items: center;
|
|
11786
|
+
gap: var(--spacing-1);
|
|
11832
11787
|
}
|
|
11833
11788
|
|
|
11834
|
-
|
|
11835
|
-
|
|
11836
|
-
|
|
11837
|
-
color: var(--
|
|
11838
|
-
border: 1px solid var(--button-color-ghost-border-default);
|
|
11789
|
+
.muka-breadcrumb__icon {
|
|
11790
|
+
display: inline-flex;
|
|
11791
|
+
align-items: center;
|
|
11792
|
+
color: var(--color-text-subtle-default);
|
|
11839
11793
|
}
|
|
11840
11794
|
|
|
11841
|
-
|
|
11842
|
-
|
|
11843
|
-
color: var(--
|
|
11844
|
-
|
|
11795
|
+
/* Link styles */
|
|
11796
|
+
.muka-breadcrumb__link {
|
|
11797
|
+
color: var(--color-text-subtle-default);
|
|
11798
|
+
text-decoration: none;
|
|
11799
|
+
border: none;
|
|
11800
|
+
background: none;
|
|
11801
|
+
padding: 0;
|
|
11802
|
+
cursor: pointer;
|
|
11803
|
+
font: inherit;
|
|
11804
|
+
transition: color 0.15s ease;
|
|
11845
11805
|
}
|
|
11846
11806
|
|
|
11847
|
-
.muka-
|
|
11848
|
-
|
|
11849
|
-
|
|
11850
|
-
.muka-button--ghost[aria-pressed="true"]:not(:disabled) {
|
|
11851
|
-
background-color: var(--button-color-ghost-background-pressed);
|
|
11852
|
-
color: var(--button-color-ghost-foreground-pressed);
|
|
11853
|
-
border-color: var(--button-color-ghost-border-pressed);
|
|
11807
|
+
.muka-breadcrumb__link:hover {
|
|
11808
|
+
color: var(--color-text-action-default);
|
|
11809
|
+
text-decoration: underline;
|
|
11854
11810
|
}
|
|
11855
11811
|
|
|
11856
|
-
|
|
11857
|
-
|
|
11858
|
-
color: var(--
|
|
11859
|
-
|
|
11860
|
-
cursor: not-allowed;
|
|
11861
|
-
opacity: 1;
|
|
11812
|
+
/* Current page (last item) */
|
|
11813
|
+
.muka-breadcrumb__current {
|
|
11814
|
+
color: var(--color-text-default-default);
|
|
11815
|
+
font-weight: 600;
|
|
11862
11816
|
}
|
|
11863
11817
|
|
|
11864
|
-
/*
|
|
11865
|
-
.muka-
|
|
11866
|
-
|
|
11867
|
-
|
|
11868
|
-
border: 1px solid var(--button-color-muted-border-default);
|
|
11818
|
+
/* Separator */
|
|
11819
|
+
.muka-breadcrumb__separator {
|
|
11820
|
+
color: var(--color-text-subtle-default);
|
|
11821
|
+
user-select: none;
|
|
11869
11822
|
}
|
|
11870
11823
|
|
|
11871
|
-
|
|
11872
|
-
|
|
11873
|
-
color: var(--
|
|
11874
|
-
border-color: var(--button-color-muted-border-hover);
|
|
11824
|
+
/* Ellipsis */
|
|
11825
|
+
.muka-breadcrumb__ellipsis {
|
|
11826
|
+
color: var(--color-text-subtle-default);
|
|
11875
11827
|
}
|
|
11876
11828
|
|
|
11877
|
-
|
|
11878
|
-
.muka-
|
|
11879
|
-
|
|
11880
|
-
|
|
11881
|
-
|
|
11882
|
-
|
|
11883
|
-
border-color: var(--button-color-muted-border-pressed);
|
|
11829
|
+
/* Size variants */
|
|
11830
|
+
.muka-breadcrumb--sm {
|
|
11831
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
11832
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
11833
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
11834
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
11884
11835
|
}
|
|
11885
11836
|
|
|
11886
|
-
.muka-
|
|
11887
|
-
|
|
11888
|
-
|
|
11889
|
-
|
|
11890
|
-
|
|
11891
|
-
opacity: 1;
|
|
11837
|
+
.muka-breadcrumb--md {
|
|
11838
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
11839
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
11840
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
11841
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
11892
11842
|
}
|
|
11893
11843
|
|
|
11894
|
-
|
|
11895
|
-
|
|
11896
|
-
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11900
|
-
/* Full width modifier */
|
|
11901
|
-
.muka-button--full-width {
|
|
11902
|
-
width: 100%;
|
|
11903
|
-
}
|
|
11904
|
-
|
|
11905
|
-
/* Icons - forced to the Figma per-size dimension regardless of the icon passed */
|
|
11906
|
-
.muka-button__icon {
|
|
11907
|
-
display: inline-flex;
|
|
11908
|
-
align-items: center;
|
|
11909
|
-
justify-content: center;
|
|
11910
|
-
flex-shrink: 0;
|
|
11911
|
-
}
|
|
11912
|
-
|
|
11913
|
-
/* Make the icon content (raw <svg> or a nested Icon span) fill the wrapper.
|
|
11914
|
-
Scoped under .muka-button to outrank Icon.css's own `.muka-icon--{size}`
|
|
11915
|
-
rule, so the button's size wins even when the icon hardcodes its own size. */
|
|
11916
|
-
.muka-button .muka-button__icon > *,
|
|
11917
|
-
.muka-button .muka-button__icon svg {
|
|
11918
|
-
width: 100%;
|
|
11919
|
-
height: 100%;
|
|
11920
|
-
display: block;
|
|
11921
|
-
}
|
|
11922
|
-
|
|
11923
|
-
.muka-button--sm .muka-button__icon {
|
|
11924
|
-
width: var(--button-icon-sm);
|
|
11925
|
-
height: var(--button-icon-sm);
|
|
11926
|
-
}
|
|
11927
|
-
|
|
11928
|
-
.muka-button--md .muka-button__icon {
|
|
11929
|
-
width: var(--button-icon-md);
|
|
11930
|
-
height: var(--button-icon-md);
|
|
11931
|
-
}
|
|
11932
|
-
|
|
11933
|
-
.muka-button--lg .muka-button__icon {
|
|
11934
|
-
width: var(--button-icon-lg);
|
|
11935
|
-
height: var(--button-icon-lg);
|
|
11936
|
-
}
|
|
11937
|
-
|
|
11938
|
-
.muka-button--xl .muka-button__icon {
|
|
11939
|
-
width: var(--button-icon-xl);
|
|
11940
|
-
height: var(--button-icon-xl);
|
|
11941
|
-
}
|
|
11942
|
-
|
|
11943
|
-
.muka-button__label {
|
|
11944
|
-
display: inline-flex;
|
|
11945
|
-
align-items: center;
|
|
11946
|
-
}
|
|
11947
|
-
|
|
11948
|
-
/* Icon-only buttons - square, sized to the button height per size */
|
|
11949
|
-
.muka-button--icon-only {
|
|
11950
|
-
padding: 0;
|
|
11951
|
-
}
|
|
11952
|
-
|
|
11953
|
-
.muka-button--icon-only.muka-button--sm {
|
|
11954
|
-
width: 32px;
|
|
11955
|
-
}
|
|
11956
|
-
|
|
11957
|
-
.muka-button--icon-only.muka-button--md {
|
|
11958
|
-
width: 40px;
|
|
11959
|
-
}
|
|
11960
|
-
|
|
11961
|
-
.muka-button--icon-only.muka-button--lg {
|
|
11962
|
-
width: 48px;
|
|
11963
|
-
}
|
|
11964
|
-
|
|
11965
|
-
.muka-button--icon-only.muka-button--xl {
|
|
11966
|
-
width: 64px;
|
|
11967
|
-
}
|
|
11968
|
-
|
|
11969
|
-
|
|
11970
|
-
/* Breadcrumb */
|
|
11971
|
-
/* Breadcrumb Component Styles */
|
|
11972
|
-
|
|
11973
|
-
.muka-breadcrumb__list {
|
|
11974
|
-
display: flex;
|
|
11975
|
-
align-items: center;
|
|
11976
|
-
flex-wrap: wrap;
|
|
11977
|
-
list-style: none;
|
|
11978
|
-
margin: 0;
|
|
11979
|
-
padding: 0;
|
|
11980
|
-
gap: var(--spacing-1);
|
|
11981
|
-
}
|
|
11982
|
-
|
|
11983
|
-
.muka-breadcrumb__item {
|
|
11984
|
-
display: inline-flex;
|
|
11985
|
-
align-items: center;
|
|
11986
|
-
gap: var(--spacing-1);
|
|
11987
|
-
}
|
|
11988
|
-
|
|
11989
|
-
.muka-breadcrumb__icon {
|
|
11990
|
-
display: inline-flex;
|
|
11991
|
-
align-items: center;
|
|
11992
|
-
color: var(--color-text-subtle-default);
|
|
11993
|
-
}
|
|
11994
|
-
|
|
11995
|
-
/* Link styles */
|
|
11996
|
-
.muka-breadcrumb__link {
|
|
11997
|
-
color: var(--color-text-subtle-default);
|
|
11998
|
-
text-decoration: none;
|
|
11999
|
-
border: none;
|
|
12000
|
-
background: none;
|
|
12001
|
-
padding: 0;
|
|
12002
|
-
cursor: pointer;
|
|
12003
|
-
font: inherit;
|
|
12004
|
-
transition: color 0.15s ease;
|
|
12005
|
-
}
|
|
12006
|
-
|
|
12007
|
-
.muka-breadcrumb__link:hover {
|
|
12008
|
-
color: var(--color-text-action-default);
|
|
12009
|
-
text-decoration: underline;
|
|
12010
|
-
}
|
|
12011
|
-
|
|
12012
|
-
/* Current page (last item) */
|
|
12013
|
-
.muka-breadcrumb__current {
|
|
12014
|
-
color: var(--color-text-default-default);
|
|
12015
|
-
font-weight: 600;
|
|
12016
|
-
}
|
|
12017
|
-
|
|
12018
|
-
/* Separator */
|
|
12019
|
-
.muka-breadcrumb__separator {
|
|
12020
|
-
color: var(--color-text-subtle-default);
|
|
12021
|
-
user-select: none;
|
|
12022
|
-
}
|
|
12023
|
-
|
|
12024
|
-
/* Ellipsis */
|
|
12025
|
-
.muka-breadcrumb__ellipsis {
|
|
12026
|
-
color: var(--color-text-subtle-default);
|
|
12027
|
-
}
|
|
12028
|
-
|
|
12029
|
-
/* Size variants */
|
|
12030
|
-
.muka-breadcrumb--sm {
|
|
12031
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
12032
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
12033
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
12034
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
12035
|
-
}
|
|
12036
|
-
|
|
12037
|
-
.muka-breadcrumb--md {
|
|
12038
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
12039
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
12040
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
12041
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
12042
|
-
}
|
|
12043
|
-
|
|
12044
|
-
.muka-breadcrumb--lg {
|
|
12045
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
12046
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
12047
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
12048
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
11844
|
+
.muka-breadcrumb--lg {
|
|
11845
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
11846
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
11847
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
11848
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
12049
11849
|
}
|
|
12050
11850
|
|
|
12051
11851
|
|
|
@@ -12353,12 +12153,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12353
12153
|
}
|
|
12354
12154
|
|
|
12355
12155
|
|
|
12356
|
-
/*
|
|
12357
|
-
/*
|
|
12156
|
+
/* BadgeNumber */
|
|
12157
|
+
/* BadgeNumber Component Styles - Using Muka Design Tokens */
|
|
12358
12158
|
|
|
12359
|
-
.muka-badge {
|
|
12159
|
+
.muka-badge-number {
|
|
12360
12160
|
display: inline-flex;
|
|
12361
12161
|
align-items: center;
|
|
12162
|
+
justify-content: center;
|
|
12362
12163
|
border-radius: var(--border-radius-full);
|
|
12363
12164
|
white-space: nowrap;
|
|
12364
12165
|
user-select: none;
|
|
@@ -12366,174 +12167,412 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12366
12167
|
}
|
|
12367
12168
|
|
|
12368
12169
|
/*
|
|
12369
|
-
* Sizes — height,
|
|
12370
|
-
*
|
|
12371
|
-
*
|
|
12372
|
-
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
12373
|
-
* --has-icon / --has-dot modifiers below.
|
|
12170
|
+
* Sizes — fixed height, matching min-width (so a single digit renders as a
|
|
12171
|
+
* circle), horizontal padding, and bold label typography. Vertical centering
|
|
12172
|
+
* is handled by the fixed height + align-items: center.
|
|
12374
12173
|
*/
|
|
12375
|
-
.muka-badge--
|
|
12376
|
-
height: var(--badge-size-
|
|
12377
|
-
|
|
12378
|
-
padding: 0 var(--badge-padding-
|
|
12379
|
-
font-family: var(--text-label-
|
|
12380
|
-
font-weight: var(--text-label-
|
|
12381
|
-
font-size: var(--text-label-
|
|
12382
|
-
line-height: var(--text-label-
|
|
12174
|
+
.muka-badge-number--2xs {
|
|
12175
|
+
height: var(--badge-number-size-2xs);
|
|
12176
|
+
min-width: var(--badge-number-size-2xs);
|
|
12177
|
+
padding: 0 var(--badge-number-padding-2xs);
|
|
12178
|
+
font-family: var(--text-label-xs-bold-fontFamily);
|
|
12179
|
+
font-weight: var(--text-label-xs-bold-fontWeight);
|
|
12180
|
+
font-size: var(--text-label-xs-bold-fontSize);
|
|
12181
|
+
line-height: var(--text-label-xs-bold-lineHeight);
|
|
12182
|
+
}
|
|
12183
|
+
|
|
12184
|
+
.muka-badge-number--xs {
|
|
12185
|
+
height: var(--badge-number-size-xs);
|
|
12186
|
+
min-width: var(--badge-number-size-xs);
|
|
12187
|
+
padding: 0 var(--badge-number-padding-xs);
|
|
12188
|
+
font-family: var(--text-label-sm-bold-fontFamily);
|
|
12189
|
+
font-weight: var(--text-label-sm-bold-fontWeight);
|
|
12190
|
+
font-size: var(--text-label-sm-bold-fontSize);
|
|
12191
|
+
line-height: var(--text-label-sm-bold-lineHeight);
|
|
12383
12192
|
}
|
|
12384
12193
|
|
|
12385
|
-
.muka-badge--
|
|
12386
|
-
height: var(--badge-size-
|
|
12387
|
-
|
|
12388
|
-
padding: 0 var(--badge-padding-
|
|
12389
|
-
font-family: var(--text-label-md-
|
|
12390
|
-
font-weight: var(--text-label-md-
|
|
12391
|
-
font-size: var(--text-label-md-
|
|
12392
|
-
line-height: var(--text-label-md-
|
|
12194
|
+
.muka-badge-number--sm {
|
|
12195
|
+
height: var(--badge-number-size-sm);
|
|
12196
|
+
min-width: var(--badge-number-size-sm);
|
|
12197
|
+
padding: 0 var(--badge-number-padding-sm);
|
|
12198
|
+
font-family: var(--text-label-md-bold-fontFamily);
|
|
12199
|
+
font-weight: var(--text-label-md-bold-fontWeight);
|
|
12200
|
+
font-size: var(--text-label-md-bold-fontSize);
|
|
12201
|
+
line-height: var(--text-label-md-bold-lineHeight);
|
|
12393
12202
|
}
|
|
12394
12203
|
|
|
12395
|
-
.muka-badge--
|
|
12396
|
-
height: var(--badge-size-
|
|
12397
|
-
|
|
12398
|
-
padding: 0 var(--badge-padding-
|
|
12399
|
-
font-family: var(--text-label-lg-
|
|
12400
|
-
font-weight: var(--text-label-lg-
|
|
12401
|
-
font-size: var(--text-label-lg-
|
|
12402
|
-
line-height: var(--text-label-lg-
|
|
12204
|
+
.muka-badge-number--md {
|
|
12205
|
+
height: var(--badge-number-size-md);
|
|
12206
|
+
min-width: var(--badge-number-size-md);
|
|
12207
|
+
padding: 0 var(--badge-number-padding-md);
|
|
12208
|
+
font-family: var(--text-label-lg-bold-fontFamily);
|
|
12209
|
+
font-weight: var(--text-label-lg-bold-fontWeight);
|
|
12210
|
+
font-size: var(--text-label-lg-bold-fontSize);
|
|
12211
|
+
line-height: var(--text-label-lg-bold-lineHeight);
|
|
12403
12212
|
}
|
|
12404
12213
|
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
padding
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
}
|
|
12414
|
-
.muka-badge--lg.muka-badge--has-icon,
|
|
12415
|
-
.muka-badge--lg.muka-badge--has-dot {
|
|
12416
|
-
padding-left: var(--badge-padding-leading-lg);
|
|
12214
|
+
.muka-badge-number--lg {
|
|
12215
|
+
height: var(--badge-number-size-lg);
|
|
12216
|
+
min-width: var(--badge-number-size-lg);
|
|
12217
|
+
padding: 0 var(--badge-number-padding-lg);
|
|
12218
|
+
font-family: var(--text-label-2xl-bold-fontFamily);
|
|
12219
|
+
font-weight: var(--text-label-2xl-bold-fontWeight);
|
|
12220
|
+
font-size: var(--text-label-2xl-bold-fontSize);
|
|
12221
|
+
line-height: var(--text-label-2xl-bold-lineHeight);
|
|
12417
12222
|
}
|
|
12418
12223
|
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12224
|
+
.muka-badge-number__label {
|
|
12225
|
+
/*
|
|
12226
|
+
* The badge sets a tight line-height for compact sizing, which would clip
|
|
12227
|
+
* glyph descenders; give the label a roomier line-height. Vertical centering
|
|
12228
|
+
* is unaffected because the badge height is fixed and content is centered.
|
|
12229
|
+
*/
|
|
12230
|
+
line-height: normal;
|
|
12425
12231
|
}
|
|
12426
12232
|
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
.muka-badge--md .muka-badge__icon {
|
|
12432
|
-
width: var(--icon-size-sm);
|
|
12433
|
-
height: var(--icon-size-sm);
|
|
12434
|
-
}
|
|
12435
|
-
.muka-badge--lg .muka-badge__icon {
|
|
12436
|
-
width: var(--icon-size-default);
|
|
12437
|
-
height: var(--icon-size-default);
|
|
12233
|
+
/* Neutral variant */
|
|
12234
|
+
.muka-badge-number--neutral {
|
|
12235
|
+
background-color: var(--color-surface-level1);
|
|
12236
|
+
color: var(--color-text-default-default);
|
|
12438
12237
|
}
|
|
12439
12238
|
|
|
12440
|
-
/*
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
.muka-badge__icon svg {
|
|
12445
|
-
width: 100%;
|
|
12446
|
-
height: 100%;
|
|
12239
|
+
/* Info variant */
|
|
12240
|
+
.muka-badge-number--info {
|
|
12241
|
+
background-color: var(--color-state-info-contrast);
|
|
12242
|
+
color: var(--color-text-default-inverse);
|
|
12447
12243
|
}
|
|
12448
12244
|
|
|
12449
|
-
/*
|
|
12450
|
-
.muka-badge
|
|
12451
|
-
color:
|
|
12245
|
+
/* Success variant */
|
|
12246
|
+
.muka-badge-number--success {
|
|
12247
|
+
background-color: var(--color-state-success-contrast);
|
|
12248
|
+
color: var(--color-text-default-inverse);
|
|
12452
12249
|
}
|
|
12453
12250
|
|
|
12454
|
-
/*
|
|
12455
|
-
.muka-
|
|
12456
|
-
|
|
12457
|
-
|
|
12251
|
+
/* Warning variant */
|
|
12252
|
+
.muka-badge-number--warning {
|
|
12253
|
+
background-color: var(--color-state-warning-contrast);
|
|
12254
|
+
color: var(--color-text-default-inverse);
|
|
12458
12255
|
}
|
|
12459
12256
|
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12257
|
+
/* Error variant */
|
|
12258
|
+
.muka-badge-number--error {
|
|
12259
|
+
background-color: var(--color-state-error-contrast);
|
|
12260
|
+
color: var(--color-text-default-inverse);
|
|
12463
12261
|
}
|
|
12464
12262
|
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12263
|
+
|
|
12264
|
+
/* Button */
|
|
12265
|
+
/* Button Component Styles - Using Muka Design Tokens */
|
|
12266
|
+
|
|
12267
|
+
/* Base button styles */
|
|
12268
|
+
.muka-button {
|
|
12269
|
+
/* Layout */
|
|
12270
|
+
display: inline-flex;
|
|
12271
|
+
align-items: center;
|
|
12272
|
+
justify-content: center;
|
|
12273
|
+
|
|
12274
|
+
/* Typography - using semantic tokens */
|
|
12275
|
+
font-family: var(--alias-font-brand-family);
|
|
12276
|
+
font-weight: var(--alias-font-brand-weight-semibold);
|
|
12277
|
+
text-decoration: none;
|
|
12278
|
+
|
|
12279
|
+
/* Interaction */
|
|
12280
|
+
border: none;
|
|
12281
|
+
cursor: pointer;
|
|
12282
|
+
user-select: none;
|
|
12283
|
+
transition: all 0.2s ease;
|
|
12284
|
+
|
|
12285
|
+
/* Accessibility */
|
|
12286
|
+
outline: none;
|
|
12287
|
+
position: relative;
|
|
12468
12288
|
}
|
|
12469
12289
|
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12290
|
+
/* Focus styles for accessibility */
|
|
12291
|
+
.muka-button:focus-visible {
|
|
12292
|
+
outline: 2px solid var(--color-border-focus);
|
|
12293
|
+
outline-offset: 2px;
|
|
12473
12294
|
}
|
|
12474
12295
|
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
|
|
12482
|
-
|
|
12483
|
-
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12296
|
+
/* Size variants
|
|
12297
|
+
Height is driven by min-height; vertical padding is 0 and the label carries
|
|
12298
|
+
tight (Figma) line-height. Horizontal spacing matches Figma's nested model:
|
|
12299
|
+
the button's padding is the outer container inset, and the label's own
|
|
12300
|
+
padding is the icon-to-text gap (so text-only buttons keep both insets). */
|
|
12301
|
+
.muka-button--sm {
|
|
12302
|
+
padding: 0 var(--button-padding-sm-x);
|
|
12303
|
+
border-radius: var(--button-radius-sm);
|
|
12304
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12305
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12306
|
+
min-height: 32px;
|
|
12307
|
+
}
|
|
12308
|
+
|
|
12309
|
+
.muka-button--sm .muka-button__label {
|
|
12310
|
+
padding: 0 var(--button-gap-sm);
|
|
12311
|
+
}
|
|
12312
|
+
|
|
12313
|
+
.muka-button--md {
|
|
12314
|
+
padding: 0 var(--button-padding-md-x);
|
|
12315
|
+
border-radius: var(--button-radius-md);
|
|
12316
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
12317
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
12318
|
+
min-height: 40px;
|
|
12319
|
+
}
|
|
12320
|
+
|
|
12321
|
+
.muka-button--md .muka-button__label {
|
|
12322
|
+
padding: 0 var(--button-gap-md);
|
|
12323
|
+
}
|
|
12324
|
+
|
|
12325
|
+
.muka-button--lg {
|
|
12326
|
+
padding: 0 var(--button-padding-lg-x);
|
|
12327
|
+
border-radius: var(--button-radius-lg);
|
|
12328
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
12329
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
12330
|
+
min-height: 48px;
|
|
12331
|
+
}
|
|
12332
|
+
|
|
12333
|
+
.muka-button--lg .muka-button__label {
|
|
12334
|
+
padding: 0 var(--button-gap-lg);
|
|
12335
|
+
}
|
|
12336
|
+
|
|
12337
|
+
.muka-button--xl {
|
|
12338
|
+
padding: 0 var(--button-padding-xl-x);
|
|
12339
|
+
border-radius: var(--button-radius-xl);
|
|
12340
|
+
font-size: var(--text-label-2xl-semibold-fontSize);
|
|
12341
|
+
line-height: var(--text-label-2xl-semibold-lineHeight);
|
|
12342
|
+
min-height: 64px;
|
|
12343
|
+
}
|
|
12344
|
+
|
|
12345
|
+
.muka-button--xl .muka-button__label {
|
|
12346
|
+
padding: 0 var(--button-gap-xl);
|
|
12347
|
+
}
|
|
12348
|
+
|
|
12349
|
+
/* Primary variant - your main CTA button */
|
|
12350
|
+
.muka-button--primary {
|
|
12351
|
+
background-color: var(--button-color-primary-background-default);
|
|
12352
|
+
color: var(--button-color-primary-foreground-default);
|
|
12353
|
+
box-shadow: var(--button-color-primary-shadow-default);
|
|
12354
|
+
}
|
|
12355
|
+
|
|
12356
|
+
.muka-button--primary:hover:not(:disabled) {
|
|
12357
|
+
background-color: var(--button-color-primary-background-hover);
|
|
12358
|
+
color: var(--button-color-primary-foreground-hover);
|
|
12359
|
+
box-shadow: var(--button-color-primary-shadow-hover);
|
|
12360
|
+
}
|
|
12361
|
+
|
|
12362
|
+
/* `[data-state="open"]` keeps a Button pressed while it's an open disclosure
|
|
12363
|
+
trigger (Radix Menu/Popover set this on the trigger). `[aria-pressed="true"]`
|
|
12364
|
+
gives toggle buttons a visible selected state, so the toggle is not conveyed
|
|
12365
|
+
to sighted users by the accessibility tree alone. */
|
|
12366
|
+
.muka-button--primary:active:not(:disabled),
|
|
12367
|
+
.muka-button--primary.muka-button--pressed:not(:disabled),
|
|
12368
|
+
.muka-button--primary[data-state="open"]:not(:disabled),
|
|
12369
|
+
.muka-button--primary[aria-pressed="true"]:not(:disabled) {
|
|
12370
|
+
background-color: var(--button-color-primary-background-pressed);
|
|
12371
|
+
color: var(--button-color-primary-foreground-pressed);
|
|
12372
|
+
box-shadow: var(--button-color-primary-shadow-pressed);
|
|
12373
|
+
}
|
|
12374
|
+
|
|
12375
|
+
.muka-button--primary:disabled {
|
|
12376
|
+
background-color: var(--button-color-primary-background-disabled);
|
|
12377
|
+
color: var(--button-color-primary-foreground-disabled);
|
|
12378
|
+
box-shadow: var(--button-color-primary-shadow-disabled);
|
|
12379
|
+
cursor: not-allowed;
|
|
12380
|
+
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
12381
|
+
}
|
|
12382
|
+
|
|
12383
|
+
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
12384
|
+
.muka-button--secondary {
|
|
12385
|
+
background-color: var(--button-color-secondary-background-default);
|
|
12386
|
+
color: var(--button-color-secondary-foreground-default);
|
|
12387
|
+
box-shadow: var(--button-color-secondary-shadow-default);
|
|
12388
|
+
}
|
|
12389
|
+
|
|
12390
|
+
.muka-button--secondary:hover:not(:disabled) {
|
|
12391
|
+
background-color: var(--button-color-secondary-background-hover);
|
|
12392
|
+
color: var(--button-color-secondary-foreground-hover);
|
|
12393
|
+
box-shadow: var(--button-color-secondary-shadow-hover);
|
|
12394
|
+
}
|
|
12395
|
+
|
|
12396
|
+
.muka-button--secondary:active:not(:disabled),
|
|
12397
|
+
.muka-button--secondary.muka-button--pressed:not(:disabled),
|
|
12398
|
+
.muka-button--secondary[data-state="open"]:not(:disabled),
|
|
12399
|
+
.muka-button--secondary[aria-pressed="true"]:not(:disabled) {
|
|
12400
|
+
background-color: var(--button-color-secondary-background-pressed);
|
|
12401
|
+
color: var(--button-color-secondary-foreground-pressed);
|
|
12402
|
+
box-shadow: var(--button-color-secondary-shadow-pressed);
|
|
12403
|
+
}
|
|
12404
|
+
|
|
12405
|
+
.muka-button--secondary:disabled {
|
|
12406
|
+
background-color: var(--button-color-secondary-background-disabled);
|
|
12407
|
+
color: var(--button-color-secondary-foreground-disabled);
|
|
12408
|
+
box-shadow: var(--button-color-secondary-shadow-disabled);
|
|
12409
|
+
cursor: not-allowed;
|
|
12410
|
+
opacity: 1;
|
|
12411
|
+
}
|
|
12412
|
+
|
|
12413
|
+
/* Tertiary variant - tinted background with accent text and border */
|
|
12414
|
+
.muka-button--tertiary {
|
|
12415
|
+
background-color: var(--button-color-tertiary-background-default);
|
|
12416
|
+
color: var(--button-color-tertiary-foreground-default);
|
|
12417
|
+
border: 1px solid var(--button-color-tertiary-border-default);
|
|
12418
|
+
}
|
|
12419
|
+
|
|
12420
|
+
.muka-button--tertiary:hover:not(:disabled) {
|
|
12421
|
+
background-color: var(--button-color-tertiary-background-hover);
|
|
12422
|
+
color: var(--button-color-tertiary-foreground-hover);
|
|
12423
|
+
border-color: var(--button-color-tertiary-border-hover);
|
|
12424
|
+
}
|
|
12425
|
+
|
|
12426
|
+
.muka-button--tertiary:active:not(:disabled),
|
|
12427
|
+
.muka-button--tertiary.muka-button--pressed:not(:disabled),
|
|
12428
|
+
.muka-button--tertiary[data-state="open"]:not(:disabled),
|
|
12429
|
+
.muka-button--tertiary[aria-pressed="true"]:not(:disabled) {
|
|
12430
|
+
background-color: var(--button-color-tertiary-background-pressed);
|
|
12431
|
+
color: var(--button-color-tertiary-foreground-pressed);
|
|
12432
|
+
border-color: var(--button-color-tertiary-border-pressed);
|
|
12433
|
+
}
|
|
12434
|
+
|
|
12435
|
+
.muka-button--tertiary:disabled {
|
|
12436
|
+
background-color: var(--button-color-tertiary-background-disabled);
|
|
12437
|
+
color: var(--button-color-tertiary-foreground-disabled);
|
|
12438
|
+
border-color: var(--button-color-tertiary-border-disabled);
|
|
12439
|
+
cursor: not-allowed;
|
|
12440
|
+
opacity: 1;
|
|
12441
|
+
}
|
|
12442
|
+
|
|
12443
|
+
/* Ghost variant - minimal styling, border appears on hover */
|
|
12444
|
+
.muka-button--ghost {
|
|
12445
|
+
background-color: var(--button-color-ghost-background-default);
|
|
12446
|
+
color: var(--button-color-ghost-foreground-default);
|
|
12447
|
+
border: 1px solid var(--button-color-ghost-border-default);
|
|
12448
|
+
}
|
|
12449
|
+
|
|
12450
|
+
.muka-button--ghost:hover:not(:disabled) {
|
|
12451
|
+
background-color: var(--button-color-ghost-background-hover);
|
|
12452
|
+
color: var(--button-color-ghost-foreground-hover);
|
|
12453
|
+
border-color: var(--button-color-ghost-border-hover);
|
|
12454
|
+
}
|
|
12455
|
+
|
|
12456
|
+
.muka-button--ghost:active:not(:disabled),
|
|
12457
|
+
.muka-button--ghost.muka-button--pressed:not(:disabled),
|
|
12458
|
+
.muka-button--ghost[data-state="open"]:not(:disabled),
|
|
12459
|
+
.muka-button--ghost[aria-pressed="true"]:not(:disabled) {
|
|
12460
|
+
background-color: var(--button-color-ghost-background-pressed);
|
|
12461
|
+
color: var(--button-color-ghost-foreground-pressed);
|
|
12462
|
+
border-color: var(--button-color-ghost-border-pressed);
|
|
12463
|
+
}
|
|
12464
|
+
|
|
12465
|
+
.muka-button--ghost:disabled {
|
|
12466
|
+
background-color: var(--button-color-ghost-background-disabled);
|
|
12467
|
+
color: var(--button-color-ghost-foreground-disabled);
|
|
12468
|
+
border-color: var(--button-color-ghost-border-disabled);
|
|
12469
|
+
cursor: not-allowed;
|
|
12470
|
+
opacity: 1;
|
|
12471
|
+
}
|
|
12472
|
+
|
|
12473
|
+
/* Muted variant - same as ghost but resting foreground is subtle, darkens on interaction */
|
|
12474
|
+
.muka-button--muted {
|
|
12475
|
+
background-color: var(--button-color-muted-background-default);
|
|
12476
|
+
color: var(--button-color-muted-foreground-default);
|
|
12477
|
+
border: 1px solid var(--button-color-muted-border-default);
|
|
12478
|
+
}
|
|
12479
|
+
|
|
12480
|
+
.muka-button--muted:hover:not(:disabled) {
|
|
12481
|
+
background-color: var(--button-color-muted-background-hover);
|
|
12482
|
+
color: var(--button-color-muted-foreground-hover);
|
|
12483
|
+
border-color: var(--button-color-muted-border-hover);
|
|
12484
|
+
}
|
|
12485
|
+
|
|
12486
|
+
.muka-button--muted:active:not(:disabled),
|
|
12487
|
+
.muka-button--muted.muka-button--pressed:not(:disabled),
|
|
12488
|
+
.muka-button--muted[data-state="open"]:not(:disabled),
|
|
12489
|
+
.muka-button--muted[aria-pressed="true"]:not(:disabled) {
|
|
12490
|
+
background-color: var(--button-color-muted-background-pressed);
|
|
12491
|
+
color: var(--button-color-muted-foreground-pressed);
|
|
12492
|
+
border-color: var(--button-color-muted-border-pressed);
|
|
12493
|
+
}
|
|
12494
|
+
|
|
12495
|
+
.muka-button--muted:disabled {
|
|
12496
|
+
background-color: var(--button-color-muted-background-disabled);
|
|
12497
|
+
color: var(--button-color-muted-foreground-disabled);
|
|
12498
|
+
border-color: var(--button-color-muted-border-disabled);
|
|
12499
|
+
cursor: not-allowed;
|
|
12500
|
+
opacity: 1;
|
|
12501
|
+
}
|
|
12502
|
+
|
|
12503
|
+
/* General disabled state - fallback */
|
|
12504
|
+
.muka-button:disabled {
|
|
12505
|
+
cursor: not-allowed;
|
|
12506
|
+
pointer-events: none;
|
|
12507
|
+
}
|
|
12508
|
+
|
|
12509
|
+
/* Full width modifier */
|
|
12510
|
+
.muka-button--full-width {
|
|
12511
|
+
width: 100%;
|
|
12512
|
+
}
|
|
12513
|
+
|
|
12514
|
+
/* Icons - forced to the Figma per-size dimension regardless of the icon passed */
|
|
12515
|
+
.muka-button__icon {
|
|
12516
|
+
display: inline-flex;
|
|
12517
|
+
align-items: center;
|
|
12518
|
+
justify-content: center;
|
|
12519
|
+
flex-shrink: 0;
|
|
12520
|
+
}
|
|
12521
|
+
|
|
12522
|
+
/* Make the icon content (raw <svg> or a nested Icon span) fill the wrapper.
|
|
12523
|
+
Scoped under .muka-button to outrank Icon.css's own `.muka-icon--{size}`
|
|
12524
|
+
rule, so the button's size wins even when the icon hardcodes its own size. */
|
|
12525
|
+
.muka-button .muka-button__icon > *,
|
|
12526
|
+
.muka-button .muka-button__icon svg {
|
|
12527
|
+
width: 100%;
|
|
12528
|
+
height: 100%;
|
|
12529
|
+
display: block;
|
|
12487
12530
|
}
|
|
12488
12531
|
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12492
|
-
color: var(--color-text-default-default);
|
|
12532
|
+
.muka-button--sm .muka-button__icon {
|
|
12533
|
+
width: var(--button-icon-sm);
|
|
12534
|
+
height: var(--button-icon-sm);
|
|
12493
12535
|
}
|
|
12494
12536
|
|
|
12495
|
-
.muka-
|
|
12496
|
-
|
|
12537
|
+
.muka-button--md .muka-button__icon {
|
|
12538
|
+
width: var(--button-icon-md);
|
|
12539
|
+
height: var(--button-icon-md);
|
|
12497
12540
|
}
|
|
12498
12541
|
|
|
12499
|
-
|
|
12500
|
-
|
|
12501
|
-
|
|
12502
|
-
color: var(--color-state-info-contrast);
|
|
12542
|
+
.muka-button--lg .muka-button__icon {
|
|
12543
|
+
width: var(--button-icon-lg);
|
|
12544
|
+
height: var(--button-icon-lg);
|
|
12503
12545
|
}
|
|
12504
12546
|
|
|
12505
|
-
.muka-
|
|
12506
|
-
|
|
12547
|
+
.muka-button--xl .muka-button__icon {
|
|
12548
|
+
width: var(--button-icon-xl);
|
|
12549
|
+
height: var(--button-icon-xl);
|
|
12507
12550
|
}
|
|
12508
12551
|
|
|
12509
|
-
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
color: var(--color-state-success-contrast);
|
|
12552
|
+
.muka-button__label {
|
|
12553
|
+
display: inline-flex;
|
|
12554
|
+
align-items: center;
|
|
12513
12555
|
}
|
|
12514
12556
|
|
|
12515
|
-
|
|
12516
|
-
|
|
12557
|
+
/* Icon-only buttons - square, sized to the button height per size */
|
|
12558
|
+
.muka-button--icon-only {
|
|
12559
|
+
padding: 0;
|
|
12517
12560
|
}
|
|
12518
12561
|
|
|
12519
|
-
|
|
12520
|
-
|
|
12521
|
-
background-color: var(--color-state-warning-background);
|
|
12522
|
-
color: var(--color-state-warning-contrast);
|
|
12562
|
+
.muka-button--icon-only.muka-button--sm {
|
|
12563
|
+
width: 32px;
|
|
12523
12564
|
}
|
|
12524
12565
|
|
|
12525
|
-
.muka-
|
|
12526
|
-
|
|
12566
|
+
.muka-button--icon-only.muka-button--md {
|
|
12567
|
+
width: 40px;
|
|
12527
12568
|
}
|
|
12528
12569
|
|
|
12529
|
-
|
|
12530
|
-
|
|
12531
|
-
background-color: var(--color-state-error-background);
|
|
12532
|
-
color: var(--color-state-error-contrast);
|
|
12570
|
+
.muka-button--icon-only.muka-button--lg {
|
|
12571
|
+
width: 48px;
|
|
12533
12572
|
}
|
|
12534
12573
|
|
|
12535
|
-
.muka-
|
|
12536
|
-
|
|
12574
|
+
.muka-button--icon-only.muka-button--xl {
|
|
12575
|
+
width: 64px;
|
|
12537
12576
|
}
|
|
12538
12577
|
|
|
12539
12578
|
|
|
@@ -13009,98 +13048,282 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13009
13048
|
height: var(--alert-icon-size);
|
|
13010
13049
|
}
|
|
13011
13050
|
|
|
13012
|
-
.muka-alert__icon svg {
|
|
13013
|
-
width: 100%;
|
|
13014
|
-
height: 100%;
|
|
13051
|
+
.muka-alert__icon svg {
|
|
13052
|
+
width: 100%;
|
|
13053
|
+
height: 100%;
|
|
13054
|
+
}
|
|
13055
|
+
|
|
13056
|
+
/* The leading icon and the dismiss (×) icon inherit the variant accent set on
|
|
13057
|
+
their container, overriding the Icon component's default color. */
|
|
13058
|
+
.muka-alert__icon .muka-icon,
|
|
13059
|
+
.muka-alert__dismiss .muka-icon {
|
|
13060
|
+
color: inherit;
|
|
13061
|
+
}
|
|
13062
|
+
|
|
13063
|
+
/* Content */
|
|
13064
|
+
.muka-alert__content {
|
|
13065
|
+
flex: 1;
|
|
13066
|
+
min-width: 0;
|
|
13067
|
+
}
|
|
13068
|
+
|
|
13069
|
+
.muka-alert__title {
|
|
13070
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13071
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13072
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13073
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13074
|
+
margin-bottom: var(--spacing-1);
|
|
13075
|
+
}
|
|
13076
|
+
|
|
13077
|
+
.muka-alert--sm .muka-alert__title {
|
|
13078
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
13079
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
13080
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
13081
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
13082
|
+
}
|
|
13083
|
+
|
|
13084
|
+
.muka-alert--lg .muka-alert__title {
|
|
13085
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
13086
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
13087
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
13088
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
13089
|
+
}
|
|
13090
|
+
|
|
13091
|
+
.muka-alert__message {
|
|
13092
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13093
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13094
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
13095
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13096
|
+
}
|
|
13097
|
+
|
|
13098
|
+
.muka-alert--lg .muka-alert__message {
|
|
13099
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
13100
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
13101
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
13102
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
13103
|
+
}
|
|
13104
|
+
|
|
13105
|
+
/* Action slot */
|
|
13106
|
+
.muka-alert__action {
|
|
13107
|
+
display: flex;
|
|
13108
|
+
align-items: center;
|
|
13109
|
+
flex-shrink: 0;
|
|
13110
|
+
}
|
|
13111
|
+
|
|
13112
|
+
/* Dismiss button - uses accent color per variant, aligned with icon row */
|
|
13113
|
+
.muka-alert__dismiss {
|
|
13114
|
+
display: flex;
|
|
13115
|
+
align-items: center;
|
|
13116
|
+
justify-content: center;
|
|
13117
|
+
flex-shrink: 0;
|
|
13118
|
+
align-self: flex-start;
|
|
13119
|
+
width: 24px;
|
|
13120
|
+
height: 24px;
|
|
13121
|
+
padding: 0;
|
|
13122
|
+
margin: 0 0 0 auto;
|
|
13123
|
+
border: none;
|
|
13124
|
+
background: transparent;
|
|
13125
|
+
cursor: pointer;
|
|
13126
|
+
border-radius: var(--border-radius-sm);
|
|
13127
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13128
|
+
}
|
|
13129
|
+
|
|
13130
|
+
.muka-alert__dismiss:hover {
|
|
13131
|
+
opacity: 0.85;
|
|
13132
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
13133
|
+
}
|
|
13134
|
+
|
|
13135
|
+
.muka-alert__dismiss:focus-visible {
|
|
13136
|
+
outline: 2px solid var(--color-border-focus);
|
|
13137
|
+
outline-offset: 2px;
|
|
13138
|
+
}
|
|
13139
|
+
|
|
13140
|
+
.muka-alert__dismiss svg {
|
|
13141
|
+
width: 16px;
|
|
13142
|
+
height: 16px;
|
|
13143
|
+
}
|
|
13144
|
+
|
|
13145
|
+
|
|
13146
|
+
/* Badge */
|
|
13147
|
+
/* Badge Component Styles - Using Muka Design Tokens */
|
|
13148
|
+
|
|
13149
|
+
.muka-badge {
|
|
13150
|
+
display: inline-flex;
|
|
13151
|
+
align-items: center;
|
|
13152
|
+
border-radius: var(--border-radius-full);
|
|
13153
|
+
white-space: nowrap;
|
|
13154
|
+
user-select: none;
|
|
13155
|
+
box-sizing: border-box;
|
|
13156
|
+
}
|
|
13157
|
+
|
|
13158
|
+
/*
|
|
13159
|
+
* Sizes — height, gap, type, and default (label-edge) horizontal padding.
|
|
13160
|
+
* Mirrors Chip so the two components share sizing, fonts, and spacing.
|
|
13161
|
+
* Vertical centering is handled by the fixed height + align-items: center.
|
|
13162
|
+
* The leading side gets a tighter padding when an icon/dot is present, via the
|
|
13163
|
+
* --has-icon / --has-dot modifiers below.
|
|
13164
|
+
*/
|
|
13165
|
+
.muka-badge--sm {
|
|
13166
|
+
height: var(--badge-size-height-sm);
|
|
13167
|
+
gap: var(--badge-gap-sm);
|
|
13168
|
+
padding: 0 var(--badge-padding-label-sm);
|
|
13169
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
13170
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
13171
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
13172
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
13173
|
+
}
|
|
13174
|
+
|
|
13175
|
+
.muka-badge--md {
|
|
13176
|
+
height: var(--badge-size-height-md);
|
|
13177
|
+
gap: var(--badge-gap-md);
|
|
13178
|
+
padding: 0 var(--badge-padding-label-md);
|
|
13179
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
13180
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
13181
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
13182
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
13183
|
+
}
|
|
13184
|
+
|
|
13185
|
+
.muka-badge--lg {
|
|
13186
|
+
height: var(--badge-size-height-lg);
|
|
13187
|
+
gap: var(--badge-gap-lg);
|
|
13188
|
+
padding: 0 var(--badge-padding-label-lg);
|
|
13189
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
13190
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
13191
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
13192
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
13193
|
+
}
|
|
13194
|
+
|
|
13195
|
+
/* Tighter leading padding when a leading icon or dot is present */
|
|
13196
|
+
.muka-badge--sm.muka-badge--has-icon,
|
|
13197
|
+
.muka-badge--sm.muka-badge--has-dot {
|
|
13198
|
+
padding-left: var(--badge-padding-leading-sm);
|
|
13199
|
+
}
|
|
13200
|
+
.muka-badge--md.muka-badge--has-icon,
|
|
13201
|
+
.muka-badge--md.muka-badge--has-dot {
|
|
13202
|
+
padding-left: var(--badge-padding-leading-md);
|
|
13203
|
+
}
|
|
13204
|
+
.muka-badge--lg.muka-badge--has-icon,
|
|
13205
|
+
.muka-badge--lg.muka-badge--has-dot {
|
|
13206
|
+
padding-left: var(--badge-padding-leading-lg);
|
|
13207
|
+
}
|
|
13208
|
+
|
|
13209
|
+
/* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
|
|
13210
|
+
.muka-badge__icon {
|
|
13211
|
+
display: inline-flex;
|
|
13212
|
+
align-items: center;
|
|
13213
|
+
justify-content: center;
|
|
13214
|
+
flex-shrink: 0;
|
|
13215
|
+
}
|
|
13216
|
+
|
|
13217
|
+
.muka-badge--sm .muka-badge__icon {
|
|
13218
|
+
width: var(--icon-size-xs);
|
|
13219
|
+
height: var(--icon-size-xs);
|
|
13220
|
+
}
|
|
13221
|
+
.muka-badge--md .muka-badge__icon {
|
|
13222
|
+
width: var(--icon-size-sm);
|
|
13223
|
+
height: var(--icon-size-sm);
|
|
13224
|
+
}
|
|
13225
|
+
.muka-badge--lg .muka-badge__icon {
|
|
13226
|
+
width: var(--icon-size-default);
|
|
13227
|
+
height: var(--icon-size-default);
|
|
13228
|
+
}
|
|
13229
|
+
|
|
13230
|
+
/* Force the passed content (raw <svg> or an <Icon> wrapper) to the slot size,
|
|
13231
|
+
so callers don't have to size the icon to match each badge size. The
|
|
13232
|
+
.muka-icon selector is intentionally 2 classes deep to override .muka-icon--md. */
|
|
13233
|
+
.muka-badge__icon .muka-icon,
|
|
13234
|
+
.muka-badge__icon svg {
|
|
13235
|
+
width: 100%;
|
|
13236
|
+
height: 100%;
|
|
13237
|
+
}
|
|
13238
|
+
|
|
13239
|
+
/* Icons inherit the badge's per-variant foreground color */
|
|
13240
|
+
.muka-badge .muka-icon {
|
|
13241
|
+
color: inherit;
|
|
13242
|
+
}
|
|
13243
|
+
|
|
13244
|
+
/* Dot indicator */
|
|
13245
|
+
.muka-badge__dot {
|
|
13246
|
+
flex-shrink: 0;
|
|
13247
|
+
border-radius: var(--border-radius-full);
|
|
13248
|
+
}
|
|
13249
|
+
|
|
13250
|
+
.muka-badge--sm .muka-badge__dot {
|
|
13251
|
+
width: var(--badge-size-dot-sm);
|
|
13252
|
+
height: var(--badge-size-dot-sm);
|
|
13253
|
+
}
|
|
13254
|
+
|
|
13255
|
+
.muka-badge--md .muka-badge__dot {
|
|
13256
|
+
width: var(--badge-size-dot-md);
|
|
13257
|
+
height: var(--badge-size-dot-md);
|
|
13015
13258
|
}
|
|
13016
13259
|
|
|
13017
|
-
|
|
13018
|
-
|
|
13019
|
-
|
|
13020
|
-
.muka-alert__dismiss .muka-icon {
|
|
13021
|
-
color: inherit;
|
|
13260
|
+
.muka-badge--lg .muka-badge__dot {
|
|
13261
|
+
width: var(--badge-size-dot-lg);
|
|
13262
|
+
height: var(--badge-size-dot-lg);
|
|
13022
13263
|
}
|
|
13023
13264
|
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
flex: 1;
|
|
13265
|
+
.muka-badge__label {
|
|
13266
|
+
flex: 0 1 auto;
|
|
13027
13267
|
min-width: 0;
|
|
13268
|
+
overflow: hidden;
|
|
13269
|
+
text-overflow: ellipsis;
|
|
13270
|
+
/*
|
|
13271
|
+
* The badge sets a tight line-height for compact sizing, but the label's
|
|
13272
|
+
* `overflow: hidden` (needed for ellipsis) then clips glyph descenders (g, y, p). Give the
|
|
13273
|
+
* label its own roomier line-height so descenders render; vertical centering is unaffected
|
|
13274
|
+
* because the badge height is fixed and content is centered via align-items: center.
|
|
13275
|
+
*/
|
|
13276
|
+
line-height: normal;
|
|
13028
13277
|
}
|
|
13029
13278
|
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13035
|
-
margin-bottom: var(--spacing-1);
|
|
13279
|
+
/* Neutral variant */
|
|
13280
|
+
.muka-badge--neutral {
|
|
13281
|
+
background-color: var(--color-surface-level1);
|
|
13282
|
+
color: var(--color-text-default-default);
|
|
13036
13283
|
}
|
|
13037
13284
|
|
|
13038
|
-
.muka-
|
|
13039
|
-
|
|
13040
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
13041
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
13042
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
13285
|
+
.muka-badge--neutral .muka-badge__dot {
|
|
13286
|
+
background-color: var(--color-text-subtle-default);
|
|
13043
13287
|
}
|
|
13044
13288
|
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
13289
|
+
/* Info variant */
|
|
13290
|
+
.muka-badge--info {
|
|
13291
|
+
background-color: var(--color-state-info-background);
|
|
13292
|
+
color: var(--color-state-info-contrast);
|
|
13050
13293
|
}
|
|
13051
13294
|
|
|
13052
|
-
.muka-
|
|
13053
|
-
|
|
13054
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13055
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
13056
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13295
|
+
.muka-badge--info .muka-badge__dot {
|
|
13296
|
+
background-color: var(--color-state-info-default);
|
|
13057
13297
|
}
|
|
13058
13298
|
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
13299
|
+
/* Success variant */
|
|
13300
|
+
.muka-badge--success {
|
|
13301
|
+
background-color: var(--color-state-success-background);
|
|
13302
|
+
color: var(--color-state-success-contrast);
|
|
13064
13303
|
}
|
|
13065
13304
|
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
display: flex;
|
|
13069
|
-
align-items: center;
|
|
13070
|
-
flex-shrink: 0;
|
|
13305
|
+
.muka-badge--success .muka-badge__dot {
|
|
13306
|
+
background-color: var(--color-state-success-default);
|
|
13071
13307
|
}
|
|
13072
13308
|
|
|
13073
|
-
/*
|
|
13074
|
-
.muka-
|
|
13075
|
-
|
|
13076
|
-
|
|
13077
|
-
justify-content: center;
|
|
13078
|
-
flex-shrink: 0;
|
|
13079
|
-
align-self: flex-start;
|
|
13080
|
-
width: 24px;
|
|
13081
|
-
height: 24px;
|
|
13082
|
-
padding: 0;
|
|
13083
|
-
margin: 0 0 0 auto;
|
|
13084
|
-
border: none;
|
|
13085
|
-
background: transparent;
|
|
13086
|
-
cursor: pointer;
|
|
13087
|
-
border-radius: var(--border-radius-sm);
|
|
13088
|
-
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
13309
|
+
/* Warning variant */
|
|
13310
|
+
.muka-badge--warning {
|
|
13311
|
+
background-color: var(--color-state-warning-background);
|
|
13312
|
+
color: var(--color-state-warning-contrast);
|
|
13089
13313
|
}
|
|
13090
13314
|
|
|
13091
|
-
.muka-
|
|
13092
|
-
|
|
13093
|
-
background-color: rgba(0, 0, 0, 0.05);
|
|
13315
|
+
.muka-badge--warning .muka-badge__dot {
|
|
13316
|
+
background-color: var(--color-state-warning-default);
|
|
13094
13317
|
}
|
|
13095
13318
|
|
|
13096
|
-
|
|
13097
|
-
|
|
13098
|
-
|
|
13319
|
+
/* Error variant */
|
|
13320
|
+
.muka-badge--error {
|
|
13321
|
+
background-color: var(--color-state-error-background);
|
|
13322
|
+
color: var(--color-state-error-contrast);
|
|
13099
13323
|
}
|
|
13100
13324
|
|
|
13101
|
-
.muka-
|
|
13102
|
-
|
|
13103
|
-
height: 16px;
|
|
13325
|
+
.muka-badge--error .muka-badge__dot {
|
|
13326
|
+
background-color: var(--color-state-error-default);
|
|
13104
13327
|
}
|
|
13105
13328
|
|
|
13106
13329
|
|
|
@@ -13176,100 +13399,231 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13176
13399
|
|
|
13177
13400
|
/* ─── Single task row ──────────────────────────────────── */
|
|
13178
13401
|
|
|
13179
|
-
.muka-agent-task-list__task {
|
|
13180
|
-
display: flex;
|
|
13181
|
-
align-items: stretch;
|
|
13182
|
-
gap: var(--spacing-4);
|
|
13183
|
-
min-height: 32px;
|
|
13184
|
-
padding: 0;
|
|
13402
|
+
.muka-agent-task-list__task {
|
|
13403
|
+
display: flex;
|
|
13404
|
+
align-items: stretch;
|
|
13405
|
+
gap: var(--spacing-4);
|
|
13406
|
+
min-height: 32px;
|
|
13407
|
+
padding: 0;
|
|
13408
|
+
}
|
|
13409
|
+
|
|
13410
|
+
/* ─── Bullet column (icon + timeline connector) ────────── */
|
|
13411
|
+
|
|
13412
|
+
.muka-agent-task-list__bullet {
|
|
13413
|
+
position: relative;
|
|
13414
|
+
flex-shrink: 0;
|
|
13415
|
+
width: 16px;
|
|
13416
|
+
align-self: stretch;
|
|
13417
|
+
}
|
|
13418
|
+
|
|
13419
|
+
.muka-agent-task-list__line {
|
|
13420
|
+
position: absolute;
|
|
13421
|
+
left: 7px;
|
|
13422
|
+
width: 1px;
|
|
13423
|
+
background-color: var(--color-border-default);
|
|
13424
|
+
}
|
|
13425
|
+
|
|
13426
|
+
.muka-agent-task-list__line--top {
|
|
13427
|
+
top: 0;
|
|
13428
|
+
height: 6px;
|
|
13429
|
+
}
|
|
13430
|
+
|
|
13431
|
+
.muka-agent-task-list__line--bottom {
|
|
13432
|
+
top: 32px;
|
|
13433
|
+
bottom: 0;
|
|
13434
|
+
}
|
|
13435
|
+
|
|
13436
|
+
.muka-agent-task-list__task:first-child .muka-agent-task-list__line--top {
|
|
13437
|
+
display: none;
|
|
13438
|
+
}
|
|
13439
|
+
|
|
13440
|
+
.muka-agent-task-list__task:last-child .muka-agent-task-list__line--bottom {
|
|
13441
|
+
display: none;
|
|
13442
|
+
}
|
|
13443
|
+
|
|
13444
|
+
.muka-agent-task-list__icon {
|
|
13445
|
+
position: absolute;
|
|
13446
|
+
top: 8px;
|
|
13447
|
+
left: 0;
|
|
13448
|
+
width: 16px;
|
|
13449
|
+
height: 16px;
|
|
13450
|
+
display: inline-flex;
|
|
13451
|
+
align-items: center;
|
|
13452
|
+
justify-content: center;
|
|
13453
|
+
color: var(--color-text-subtle-default);
|
|
13454
|
+
z-index: 1;
|
|
13455
|
+
}
|
|
13456
|
+
|
|
13457
|
+
/* ─── State color treatments ───────────────────────────── */
|
|
13458
|
+
|
|
13459
|
+
.muka-agent-task-list__task[data-state='active'] .muka-agent-task-list__icon {
|
|
13460
|
+
color: var(--color-action-default);
|
|
13461
|
+
}
|
|
13462
|
+
|
|
13463
|
+
.muka-agent-task-list__task[data-state='done'] .muka-agent-task-list__icon {
|
|
13464
|
+
color: var(--color-text-subtle-default);
|
|
13465
|
+
}
|
|
13466
|
+
|
|
13467
|
+
.muka-agent-task-list__task[data-state='pending'] .muka-agent-task-list__icon {
|
|
13468
|
+
color: var(--color-text-muted-default, var(--color-text-subtle-default));
|
|
13469
|
+
opacity: 0.6;
|
|
13470
|
+
}
|
|
13471
|
+
|
|
13472
|
+
/* ─── Label ────────────────────────────────────────────── */
|
|
13473
|
+
|
|
13474
|
+
.muka-agent-task-list__label {
|
|
13475
|
+
flex: 1 1 0;
|
|
13476
|
+
min-width: 0;
|
|
13477
|
+
padding: var(--spacing-2) 0;
|
|
13478
|
+
color: var(--color-text-subtle-default);
|
|
13479
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13480
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13481
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
13482
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13483
|
+
word-break: break-word;
|
|
13484
|
+
}
|
|
13485
|
+
|
|
13486
|
+
/* ─── Print ────────────────────────────────────────────── */
|
|
13487
|
+
|
|
13488
|
+
@media print {
|
|
13489
|
+
.muka-agent-task-list {
|
|
13490
|
+
break-inside: avoid;
|
|
13491
|
+
}
|
|
13492
|
+
|
|
13493
|
+
.muka-agent-task-list__chevron {
|
|
13494
|
+
display: none;
|
|
13495
|
+
}
|
|
13496
|
+
}
|
|
13497
|
+
|
|
13498
|
+
|
|
13499
|
+
/* Accordion */
|
|
13500
|
+
/* Accordion Component Styles */
|
|
13501
|
+
|
|
13502
|
+
.muka-accordion {
|
|
13503
|
+
width: 100%;
|
|
13504
|
+
}
|
|
13505
|
+
|
|
13506
|
+
/* Item */
|
|
13507
|
+
.muka-accordion__item {
|
|
13508
|
+
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
13509
|
+
}
|
|
13510
|
+
|
|
13511
|
+
.muka-accordion__item:last-child {
|
|
13512
|
+
border-bottom: none;
|
|
13513
|
+
}
|
|
13514
|
+
|
|
13515
|
+
/* Header reset */
|
|
13516
|
+
.muka-accordion__header {
|
|
13517
|
+
margin: 0;
|
|
13518
|
+
}
|
|
13519
|
+
|
|
13520
|
+
/* Trigger */
|
|
13521
|
+
.muka-accordion__trigger {
|
|
13522
|
+
display: flex;
|
|
13523
|
+
align-items: center;
|
|
13524
|
+
justify-content: space-between;
|
|
13525
|
+
width: 100%;
|
|
13526
|
+
padding: var(--spacing-4);
|
|
13527
|
+
background: none;
|
|
13528
|
+
border: none;
|
|
13529
|
+
cursor: pointer;
|
|
13530
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13531
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13532
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
13533
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13534
|
+
color: var(--color-text-default-default);
|
|
13535
|
+
text-align: left;
|
|
13536
|
+
gap: var(--spacing-3);
|
|
13537
|
+
transition: background-color 0.15s ease;
|
|
13538
|
+
}
|
|
13539
|
+
|
|
13540
|
+
.muka-accordion__trigger:hover {
|
|
13541
|
+
background-color: var(--color-surface-level1);
|
|
13185
13542
|
}
|
|
13186
13543
|
|
|
13187
|
-
|
|
13544
|
+
.muka-accordion__trigger[data-disabled] {
|
|
13545
|
+
cursor: not-allowed;
|
|
13546
|
+
opacity: 0.4;
|
|
13547
|
+
}
|
|
13188
13548
|
|
|
13189
|
-
.muka-
|
|
13190
|
-
|
|
13191
|
-
flex-shrink: 0;
|
|
13192
|
-
width: 16px;
|
|
13193
|
-
align-self: stretch;
|
|
13549
|
+
.muka-accordion__trigger-text {
|
|
13550
|
+
flex: 1;
|
|
13194
13551
|
}
|
|
13195
13552
|
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
|
|
13199
|
-
|
|
13200
|
-
|
|
13553
|
+
/* Chevron rotation */
|
|
13554
|
+
.muka-accordion__chevron {
|
|
13555
|
+
display: inline-flex;
|
|
13556
|
+
align-items: center;
|
|
13557
|
+
color: var(--color-text-subtle-default);
|
|
13558
|
+
transition: transform 200ms ease;
|
|
13201
13559
|
}
|
|
13202
13560
|
|
|
13203
|
-
.muka-
|
|
13204
|
-
|
|
13205
|
-
height: 6px;
|
|
13561
|
+
.muka-accordion__trigger[data-state='open'] .muka-accordion__chevron {
|
|
13562
|
+
transform: rotate(180deg);
|
|
13206
13563
|
}
|
|
13207
13564
|
|
|
13208
|
-
|
|
13209
|
-
|
|
13210
|
-
|
|
13565
|
+
/* Content */
|
|
13566
|
+
.muka-accordion__content {
|
|
13567
|
+
overflow: hidden;
|
|
13211
13568
|
}
|
|
13212
13569
|
|
|
13213
|
-
.muka-
|
|
13214
|
-
|
|
13570
|
+
.muka-accordion__content[data-state='open'] {
|
|
13571
|
+
animation: muka-accordion-slideDown 200ms ease;
|
|
13215
13572
|
}
|
|
13216
13573
|
|
|
13217
|
-
.muka-
|
|
13218
|
-
|
|
13574
|
+
.muka-accordion__content[data-state='closed'] {
|
|
13575
|
+
animation: muka-accordion-slideUp 200ms ease;
|
|
13219
13576
|
}
|
|
13220
13577
|
|
|
13221
|
-
|
|
13222
|
-
|
|
13223
|
-
|
|
13224
|
-
|
|
13225
|
-
|
|
13226
|
-
|
|
13227
|
-
|
|
13228
|
-
align-items: center;
|
|
13229
|
-
justify-content: center;
|
|
13230
|
-
color: var(--color-text-subtle-default);
|
|
13231
|
-
z-index: 1;
|
|
13578
|
+
@keyframes muka-accordion-slideDown {
|
|
13579
|
+
from {
|
|
13580
|
+
height: 0;
|
|
13581
|
+
}
|
|
13582
|
+
to {
|
|
13583
|
+
height: var(--radix-accordion-content-height);
|
|
13584
|
+
}
|
|
13232
13585
|
}
|
|
13233
13586
|
|
|
13234
|
-
|
|
13587
|
+
@keyframes muka-accordion-slideUp {
|
|
13588
|
+
from {
|
|
13589
|
+
height: var(--radix-accordion-content-height);
|
|
13590
|
+
}
|
|
13591
|
+
to {
|
|
13592
|
+
height: 0;
|
|
13593
|
+
}
|
|
13594
|
+
}
|
|
13235
13595
|
|
|
13236
|
-
.muka-
|
|
13237
|
-
|
|
13596
|
+
.muka-accordion__content-inner {
|
|
13597
|
+
padding: 0 var(--spacing-4) var(--spacing-5);
|
|
13598
|
+
color: var(--color-text-default-default);
|
|
13238
13599
|
}
|
|
13239
13600
|
|
|
13240
|
-
|
|
13241
|
-
|
|
13601
|
+
/* ─── Variant: flush ────────────────────────────────────────────────────── */
|
|
13602
|
+
|
|
13603
|
+
.muka-accordion--flush .muka-accordion__trigger {
|
|
13604
|
+
padding-left: 0;
|
|
13605
|
+
padding-right: 0;
|
|
13242
13606
|
}
|
|
13243
13607
|
|
|
13244
|
-
.muka-
|
|
13245
|
-
|
|
13246
|
-
|
|
13608
|
+
.muka-accordion--flush .muka-accordion__content-inner {
|
|
13609
|
+
padding-left: 0;
|
|
13610
|
+
padding-right: 0;
|
|
13247
13611
|
}
|
|
13248
13612
|
|
|
13249
|
-
/* ───
|
|
13613
|
+
/* ─── Variant: contained ────────────────────────────────────────────────── */
|
|
13250
13614
|
|
|
13251
|
-
.muka-
|
|
13252
|
-
|
|
13253
|
-
|
|
13254
|
-
|
|
13255
|
-
color: var(--color-text-subtle-default);
|
|
13256
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
13257
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
13258
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
13259
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
13260
|
-
word-break: break-word;
|
|
13615
|
+
.muka-accordion--contained {
|
|
13616
|
+
border: var(--border-width-regular) solid var(--color-border-default);
|
|
13617
|
+
border-radius: var(--radius-md);
|
|
13618
|
+
overflow: hidden;
|
|
13261
13619
|
}
|
|
13262
13620
|
|
|
13263
|
-
|
|
13264
|
-
|
|
13265
|
-
|
|
13266
|
-
.muka-agent-task-list {
|
|
13267
|
-
break-inside: avoid;
|
|
13268
|
-
}
|
|
13621
|
+
.muka-accordion--contained .muka-accordion__item {
|
|
13622
|
+
background-color: var(--color-surface-level3);
|
|
13623
|
+
}
|
|
13269
13624
|
|
|
13270
|
-
|
|
13271
|
-
|
|
13272
|
-
}
|
|
13625
|
+
.muka-accordion--contained .muka-accordion__item:last-child {
|
|
13626
|
+
border-bottom: none;
|
|
13273
13627
|
}
|
|
13274
13628
|
|
|
13275
13629
|
|
|
@@ -13414,134 +13768,3 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13414
13768
|
outline-offset: 2px;
|
|
13415
13769
|
}
|
|
13416
13770
|
|
|
13417
|
-
|
|
13418
|
-
/* Accordion */
|
|
13419
|
-
/* Accordion Component Styles */
|
|
13420
|
-
|
|
13421
|
-
.muka-accordion {
|
|
13422
|
-
width: 100%;
|
|
13423
|
-
}
|
|
13424
|
-
|
|
13425
|
-
/* Item */
|
|
13426
|
-
.muka-accordion__item {
|
|
13427
|
-
border-bottom: var(--border-width-regular) solid var(--color-border-default);
|
|
13428
|
-
}
|
|
13429
|
-
|
|
13430
|
-
.muka-accordion__item:last-child {
|
|
13431
|
-
border-bottom: none;
|
|
13432
|
-
}
|
|
13433
|
-
|
|
13434
|
-
/* Header reset */
|
|
13435
|
-
.muka-accordion__header {
|
|
13436
|
-
margin: 0;
|
|
13437
|
-
}
|
|
13438
|
-
|
|
13439
|
-
/* Trigger */
|
|
13440
|
-
.muka-accordion__trigger {
|
|
13441
|
-
display: flex;
|
|
13442
|
-
align-items: center;
|
|
13443
|
-
justify-content: space-between;
|
|
13444
|
-
width: 100%;
|
|
13445
|
-
padding: var(--spacing-4);
|
|
13446
|
-
background: none;
|
|
13447
|
-
border: none;
|
|
13448
|
-
cursor: pointer;
|
|
13449
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
13450
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
13451
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
13452
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
13453
|
-
color: var(--color-text-default-default);
|
|
13454
|
-
text-align: left;
|
|
13455
|
-
gap: var(--spacing-3);
|
|
13456
|
-
transition: background-color 0.15s ease;
|
|
13457
|
-
}
|
|
13458
|
-
|
|
13459
|
-
.muka-accordion__trigger:hover {
|
|
13460
|
-
background-color: var(--color-surface-level1);
|
|
13461
|
-
}
|
|
13462
|
-
|
|
13463
|
-
.muka-accordion__trigger[data-disabled] {
|
|
13464
|
-
cursor: not-allowed;
|
|
13465
|
-
opacity: 0.4;
|
|
13466
|
-
}
|
|
13467
|
-
|
|
13468
|
-
.muka-accordion__trigger-text {
|
|
13469
|
-
flex: 1;
|
|
13470
|
-
}
|
|
13471
|
-
|
|
13472
|
-
/* Chevron rotation */
|
|
13473
|
-
.muka-accordion__chevron {
|
|
13474
|
-
display: inline-flex;
|
|
13475
|
-
align-items: center;
|
|
13476
|
-
color: var(--color-text-subtle-default);
|
|
13477
|
-
transition: transform 200ms ease;
|
|
13478
|
-
}
|
|
13479
|
-
|
|
13480
|
-
.muka-accordion__trigger[data-state='open'] .muka-accordion__chevron {
|
|
13481
|
-
transform: rotate(180deg);
|
|
13482
|
-
}
|
|
13483
|
-
|
|
13484
|
-
/* Content */
|
|
13485
|
-
.muka-accordion__content {
|
|
13486
|
-
overflow: hidden;
|
|
13487
|
-
}
|
|
13488
|
-
|
|
13489
|
-
.muka-accordion__content[data-state='open'] {
|
|
13490
|
-
animation: muka-accordion-slideDown 200ms ease;
|
|
13491
|
-
}
|
|
13492
|
-
|
|
13493
|
-
.muka-accordion__content[data-state='closed'] {
|
|
13494
|
-
animation: muka-accordion-slideUp 200ms ease;
|
|
13495
|
-
}
|
|
13496
|
-
|
|
13497
|
-
@keyframes muka-accordion-slideDown {
|
|
13498
|
-
from {
|
|
13499
|
-
height: 0;
|
|
13500
|
-
}
|
|
13501
|
-
to {
|
|
13502
|
-
height: var(--radix-accordion-content-height);
|
|
13503
|
-
}
|
|
13504
|
-
}
|
|
13505
|
-
|
|
13506
|
-
@keyframes muka-accordion-slideUp {
|
|
13507
|
-
from {
|
|
13508
|
-
height: var(--radix-accordion-content-height);
|
|
13509
|
-
}
|
|
13510
|
-
to {
|
|
13511
|
-
height: 0;
|
|
13512
|
-
}
|
|
13513
|
-
}
|
|
13514
|
-
|
|
13515
|
-
.muka-accordion__content-inner {
|
|
13516
|
-
padding: 0 var(--spacing-4) var(--spacing-5);
|
|
13517
|
-
color: var(--color-text-default-default);
|
|
13518
|
-
}
|
|
13519
|
-
|
|
13520
|
-
/* ─── Variant: flush ────────────────────────────────────────────────────── */
|
|
13521
|
-
|
|
13522
|
-
.muka-accordion--flush .muka-accordion__trigger {
|
|
13523
|
-
padding-left: 0;
|
|
13524
|
-
padding-right: 0;
|
|
13525
|
-
}
|
|
13526
|
-
|
|
13527
|
-
.muka-accordion--flush .muka-accordion__content-inner {
|
|
13528
|
-
padding-left: 0;
|
|
13529
|
-
padding-right: 0;
|
|
13530
|
-
}
|
|
13531
|
-
|
|
13532
|
-
/* ─── Variant: contained ────────────────────────────────────────────────── */
|
|
13533
|
-
|
|
13534
|
-
.muka-accordion--contained {
|
|
13535
|
-
border: var(--border-width-regular) solid var(--color-border-default);
|
|
13536
|
-
border-radius: var(--radius-md);
|
|
13537
|
-
overflow: hidden;
|
|
13538
|
-
}
|
|
13539
|
-
|
|
13540
|
-
.muka-accordion--contained .muka-accordion__item {
|
|
13541
|
-
background-color: var(--color-surface-level3);
|
|
13542
|
-
}
|
|
13543
|
-
|
|
13544
|
-
.muka-accordion--contained .muka-accordion__item:last-child {
|
|
13545
|
-
border-bottom: none;
|
|
13546
|
-
}
|
|
13547
|
-
|