@revikornmann/muka-ui 0.15.0 → 0.17.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/BottomBar/BottomBar.css +19 -4
- package/dist/cjs/components/ChatComposer/ChatComposer.js +12 -4
- package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
- package/dist/cjs/components/ChatMessage/ChatMessage.css +7 -1
- package/dist/cjs/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/cjs/components/ChatMessageList/ChatMessageList.css +1 -1
- package/dist/cjs/components/Combobox/Combobox.css +59 -1
- package/dist/cjs/components/Combobox/Combobox.js +22 -3
- package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
- package/dist/cjs/components/EmojiPicker/EmojiPicker.css +19 -0
- package/dist/cjs/components/EmojiPicker/EmojiPicker.js +54 -0
- package/dist/cjs/components/EmojiPicker/EmojiPicker.js.map +1 -0
- package/dist/cjs/components/EmojiPicker/index.js +12 -0
- package/dist/cjs/components/EmojiPicker/index.js.map +1 -0
- package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
- package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js +36 -0
- package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
- package/dist/cjs/components/PhotoDraftStrip/index.js +11 -0
- package/dist/cjs/components/PhotoDraftStrip/index.js.map +1 -0
- package/dist/cjs/components/RecordingBar/RecordingBar.css +47 -0
- package/dist/cjs/components/RecordingBar/RecordingBar.js +22 -0
- package/dist/cjs/components/RecordingBar/RecordingBar.js.map +1 -0
- package/dist/cjs/components/RecordingBar/index.js +11 -0
- package/dist/cjs/components/RecordingBar/index.js.map +1 -0
- package/dist/cjs/components/SearchInput/SearchInput.js +7 -2
- package/dist/cjs/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/cjs/components/TextLink/TextLink.css +79 -0
- package/dist/cjs/components/TextLink/TextLink.js +28 -0
- package/dist/cjs/components/TextLink/TextLink.js.map +1 -0
- package/dist/cjs/components/TextLink/index.js +11 -0
- package/dist/cjs/components/TextLink/index.js.map +1 -0
- package/dist/cjs/components/VoiceMessage/VoiceMessage.css +29 -0
- package/dist/cjs/components/VoiceMessage/VoiceMessage.js +85 -0
- package/dist/cjs/components/VoiceMessage/VoiceMessage.js.map +1 -0
- package/dist/cjs/components/VoiceMessage/index.js +11 -0
- package/dist/cjs/components/VoiceMessage/index.js.map +1 -0
- package/dist/cjs/components/VoiceRecorder/audio.js +61 -0
- package/dist/cjs/components/VoiceRecorder/audio.js.map +1 -0
- package/dist/cjs/components/VoiceRecorder/index.js +16 -0
- package/dist/cjs/components/VoiceRecorder/index.js.map +1 -0
- package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js +213 -0
- package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/dist/cjs/components/Waveform/Waveform.css +23 -0
- package/dist/cjs/components/Waveform/Waveform.js +36 -0
- package/dist/cjs/components/Waveform/Waveform.js.map +1 -0
- package/dist/cjs/components/Waveform/index.js +11 -0
- package/dist/cjs/components/Waveform/index.js.map +1 -0
- package/dist/cjs/components/index.js +20 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/BottomBar/BottomBar.css +19 -4
- package/dist/esm/components/ChatComposer/ChatComposer.js +12 -4
- package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
- package/dist/esm/components/ChatMessage/ChatMessage.css +7 -1
- package/dist/esm/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/esm/components/ChatMessageList/ChatMessageList.css +1 -1
- package/dist/esm/components/Combobox/Combobox.css +59 -1
- package/dist/esm/components/Combobox/Combobox.js +23 -4
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/EmojiPicker/EmojiPicker.css +19 -0
- package/dist/esm/components/EmojiPicker/EmojiPicker.js +50 -0
- package/dist/esm/components/EmojiPicker/EmojiPicker.js.map +1 -0
- package/dist/esm/components/EmojiPicker/index.js +3 -0
- package/dist/esm/components/EmojiPicker/index.js.map +1 -0
- package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
- package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js +32 -0
- package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
- package/dist/esm/components/PhotoDraftStrip/index.js +3 -0
- package/dist/esm/components/PhotoDraftStrip/index.js.map +1 -0
- package/dist/esm/components/RecordingBar/RecordingBar.css +47 -0
- package/dist/esm/components/RecordingBar/RecordingBar.js +18 -0
- package/dist/esm/components/RecordingBar/RecordingBar.js.map +1 -0
- package/dist/esm/components/RecordingBar/index.js +3 -0
- package/dist/esm/components/RecordingBar/index.js.map +1 -0
- package/dist/esm/components/SearchInput/SearchInput.js +7 -2
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/TextLink/TextLink.css +79 -0
- package/dist/esm/components/TextLink/TextLink.js +24 -0
- package/dist/esm/components/TextLink/TextLink.js.map +1 -0
- package/dist/esm/components/TextLink/index.js +3 -0
- package/dist/esm/components/TextLink/index.js.map +1 -0
- package/dist/esm/components/VoiceMessage/VoiceMessage.css +29 -0
- package/dist/esm/components/VoiceMessage/VoiceMessage.js +81 -0
- package/dist/esm/components/VoiceMessage/VoiceMessage.js.map +1 -0
- package/dist/esm/components/VoiceMessage/index.js +3 -0
- package/dist/esm/components/VoiceMessage/index.js.map +1 -0
- package/dist/esm/components/VoiceRecorder/audio.js +55 -0
- package/dist/esm/components/VoiceRecorder/audio.js.map +1 -0
- package/dist/esm/components/VoiceRecorder/index.js +4 -0
- package/dist/esm/components/VoiceRecorder/index.js.map +1 -0
- package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js +210 -0
- package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/dist/esm/components/Waveform/Waveform.css +23 -0
- package/dist/esm/components/Waveform/Waveform.js +32 -0
- package/dist/esm/components/Waveform/Waveform.js.map +1 -0
- package/dist/esm/components/Waveform/index.js +3 -0
- package/dist/esm/components/Waveform/index.js.map +1 -0
- package/dist/esm/components/index.js +7 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/styles/components/BottomBar.css +19 -4
- package/dist/styles/components/ChatMessage.css +7 -1
- package/dist/styles/components/ChatMessageList.css +1 -1
- package/dist/styles/components/Combobox.css +59 -1
- package/dist/styles/components/EmojiPicker.css +19 -0
- package/dist/styles/components/PhotoDraftStrip.css +27 -0
- package/dist/styles/components/RecordingBar.css +47 -0
- package/dist/styles/components/TextLink.css +79 -0
- package/dist/styles/components/VoiceMessage.css +29 -0
- package/dist/styles/components/Waveform.css +23 -0
- package/dist/styles/index.css +373 -50
- package/dist/styles/muka-dark.css +373 -50
- package/dist/styles/muka-light.css +373 -50
- package/dist/styles/tokens-bouwplan-dark.css +4 -2
- package/dist/styles/tokens-bouwplan-light.css +4 -2
- package/dist/styles/tokens-fscl-dark.css +4 -2
- package/dist/styles/tokens-fscl-light.css +4 -2
- package/dist/styles/tokens-grip-dark.css +4 -2
- package/dist/styles/tokens-grip-light.css +4 -2
- package/dist/styles/tokens-muka-dark.css +4 -2
- package/dist/styles/tokens-muka-light.css +4 -2
- package/dist/styles/tokens-wireframe-dark.css +4 -2
- package/dist/styles/tokens-wireframe-light.css +4 -2
- package/dist/styles/wireframe-dark.css +373 -50
- package/dist/styles/wireframe-light.css +373 -50
- package/dist/types/components/ChatComposer/ChatComposer.d.ts +7 -0
- package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
- package/dist/types/components/ChatMessage/ChatMessage.d.ts +4 -1
- package/dist/types/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/dist/types/components/Combobox/Combobox.d.ts +7 -0
- package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/EmojiPicker/EmojiPicker.d.ts +28 -0
- package/dist/types/components/EmojiPicker/EmojiPicker.d.ts.map +1 -0
- package/dist/types/components/EmojiPicker/index.d.ts +3 -0
- package/dist/types/components/EmojiPicker/index.d.ts.map +1 -0
- package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts +51 -0
- package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts.map +1 -0
- package/dist/types/components/PhotoDraftStrip/index.d.ts +3 -0
- package/dist/types/components/PhotoDraftStrip/index.d.ts.map +1 -0
- package/dist/types/components/RecordingBar/RecordingBar.d.ts +22 -0
- package/dist/types/components/RecordingBar/RecordingBar.d.ts.map +1 -0
- package/dist/types/components/RecordingBar/index.d.ts +3 -0
- package/dist/types/components/RecordingBar/index.d.ts.map +1 -0
- package/dist/types/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/types/components/TextLink/TextLink.d.ts +30 -0
- package/dist/types/components/TextLink/TextLink.d.ts.map +1 -0
- package/dist/types/components/TextLink/index.d.ts +3 -0
- package/dist/types/components/TextLink/index.d.ts.map +1 -0
- package/dist/types/components/VoiceMessage/VoiceMessage.d.ts +34 -0
- package/dist/types/components/VoiceMessage/VoiceMessage.d.ts.map +1 -0
- package/dist/types/components/VoiceMessage/index.d.ts +3 -0
- package/dist/types/components/VoiceMessage/index.d.ts.map +1 -0
- package/dist/types/components/VoiceRecorder/audio.d.ts +20 -0
- package/dist/types/components/VoiceRecorder/audio.d.ts.map +1 -0
- package/dist/types/components/VoiceRecorder/index.d.ts +4 -0
- package/dist/types/components/VoiceRecorder/index.d.ts.map +1 -0
- package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts +48 -0
- package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts.map +1 -0
- package/dist/types/components/Waveform/Waveform.d.ts +31 -0
- package/dist/types/components/Waveform/Waveform.d.ts.map +1 -0
- package/dist/types/components/Waveform/index.d.ts +3 -0
- package/dist/types/components/Waveform/index.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +7 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/tokens/t4-components/bottombar.json +2 -1
- package/tokens/t4-components/chat.json +15 -0
- package/tokens/t4-components/chatbubble.json +7 -1
|
@@ -1693,7 +1693,9 @@ body {
|
|
|
1693
1693
|
--card-border-hover: 0.0625rem solid #4c4c57;
|
|
1694
1694
|
--card-border-pressed: 0.125rem solid #9eb1ff;
|
|
1695
1695
|
--card-border-selected: 0.125rem solid #9eb1ff;
|
|
1696
|
-
--
|
|
1696
|
+
--chat-column-max-width: 768px;
|
|
1697
|
+
--chatbubble-max-width: 37rem;
|
|
1698
|
+
--chatbubble-max-width-ratio: 77%;
|
|
1697
1699
|
--chatbubble-radius: 0.75rem;
|
|
1698
1700
|
--chatbubble-padding-block: 0.75rem;
|
|
1699
1701
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -2116,7 +2118,7 @@ body {
|
|
|
2116
2118
|
--bottombar-floating-backdrop-start: transparent;
|
|
2117
2119
|
--bottombar-floating-backdrop-end: rgba(0, 0, 0, 0.027);
|
|
2118
2120
|
--bottombar-floating-padding-top: 2rem;
|
|
2119
|
-
--bottombar-chat-max-width:
|
|
2121
|
+
--bottombar-chat-max-width: 768px;
|
|
2120
2122
|
--bottombar-chat-padding: 0.75rem;
|
|
2121
2123
|
--bottombar-tab-icon-size: 24px;
|
|
2122
2124
|
--bottombar-tab-gap: 0.25rem;
|
|
@@ -2388,6 +2390,64 @@ body {
|
|
|
2388
2390
|
|
|
2389
2391
|
|
|
2390
2392
|
/* ========== Component Styles ========== */
|
|
2393
|
+
/* Waveform */
|
|
2394
|
+
/* Waveform Component Styles */
|
|
2395
|
+
|
|
2396
|
+
/*
|
|
2397
|
+
* A row of amplitude bars. Muka ships no audio/waveform primitive; this is
|
|
2398
|
+
* drawn from color + spacing tokens only. Bar height (per-peak magnitude) and
|
|
2399
|
+
* the played/unplayed color split are data-driven, so they arrive as inline
|
|
2400
|
+
* styles from the component; everything else is tokenized here.
|
|
2401
|
+
*/
|
|
2402
|
+
.muka-waveform {
|
|
2403
|
+
display: flex;
|
|
2404
|
+
align-items: center;
|
|
2405
|
+
gap: var(--spacing-05, 2px);
|
|
2406
|
+
width: 100%;
|
|
2407
|
+
min-width: 0;
|
|
2408
|
+
}
|
|
2409
|
+
|
|
2410
|
+
.muka-waveform__bar {
|
|
2411
|
+
flex: 1 1 0;
|
|
2412
|
+
min-width: 2px;
|
|
2413
|
+
max-width: 4px;
|
|
2414
|
+
border-radius: var(--radius-full, 9999px);
|
|
2415
|
+
background: var(--color-border-contrast);
|
|
2416
|
+
}
|
|
2417
|
+
|
|
2418
|
+
|
|
2419
|
+
/* VoiceMessage */
|
|
2420
|
+
/* VoiceMessage Component Styles */
|
|
2421
|
+
|
|
2422
|
+
.muka-voice-message {
|
|
2423
|
+
display: flex;
|
|
2424
|
+
align-items: center;
|
|
2425
|
+
gap: var(--spacing-3);
|
|
2426
|
+
width: 100%;
|
|
2427
|
+
min-width: min(16rem, 60vw);
|
|
2428
|
+
}
|
|
2429
|
+
|
|
2430
|
+
.muka-voice-message__wave {
|
|
2431
|
+
flex: 1 1 auto;
|
|
2432
|
+
min-width: 0;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
.muka-voice-message__time {
|
|
2436
|
+
flex: 0 0 auto;
|
|
2437
|
+
white-space: nowrap;
|
|
2438
|
+
font-size: var(--text-label-sm-fontSize, 0.75rem);
|
|
2439
|
+
line-height: var(--text-label-sm-lineHeight, 1);
|
|
2440
|
+
font-variant-numeric: tabular-nums;
|
|
2441
|
+
color: var(--color-text-subtle-default);
|
|
2442
|
+
}
|
|
2443
|
+
|
|
2444
|
+
/* On the tinted own bubble the surface is the action color, so the timer flips
|
|
2445
|
+
* to the inverse text token for contrast. */
|
|
2446
|
+
.muka-voice-message--own .muka-voice-message__time {
|
|
2447
|
+
color: var(--color-text-default-inverse);
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
|
|
2391
2451
|
/* View */
|
|
2392
2452
|
/* View Component Styles */
|
|
2393
2453
|
|
|
@@ -3808,6 +3868,88 @@ body {
|
|
|
3808
3868
|
}
|
|
3809
3869
|
|
|
3810
3870
|
|
|
3871
|
+
/* TextLink */
|
|
3872
|
+
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
3873
|
+
|
|
3874
|
+
.muka-text-link {
|
|
3875
|
+
display: inline;
|
|
3876
|
+
cursor: pointer;
|
|
3877
|
+
text-decoration: underline;
|
|
3878
|
+
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
3879
|
+
text-underline-offset: 0.2em;
|
|
3880
|
+
text-decoration-thickness: from-font;
|
|
3881
|
+
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
3882
|
+
border-radius: var(--border-radius-sm);
|
|
3883
|
+
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
3884
|
+
}
|
|
3885
|
+
|
|
3886
|
+
/* ─── Sizes ───────────────────────────────────────────────
|
|
3887
|
+
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
3888
|
+
.muka-text-link--sm {
|
|
3889
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3890
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3891
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
3892
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3893
|
+
}
|
|
3894
|
+
|
|
3895
|
+
.muka-text-link--base {
|
|
3896
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3897
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3898
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3899
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3900
|
+
}
|
|
3901
|
+
|
|
3902
|
+
.muka-text-link--lg {
|
|
3903
|
+
font-family: var(--text-body-lg-regular-fontFamily);
|
|
3904
|
+
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
3905
|
+
font-size: var(--text-body-lg-regular-fontSize);
|
|
3906
|
+
line-height: var(--text-body-lg-regular-lineHeight);
|
|
3907
|
+
}
|
|
3908
|
+
|
|
3909
|
+
/* ─── Variant: default (accent) ───────────────────────────
|
|
3910
|
+
Visited repeats the default colour on purpose: the design treats visited and
|
|
3911
|
+
default the same, and pinning it stops the browser's purple from showing. */
|
|
3912
|
+
.muka-text-link--default,
|
|
3913
|
+
.muka-text-link--default:visited {
|
|
3914
|
+
color: var(--color-text-action-default);
|
|
3915
|
+
}
|
|
3916
|
+
|
|
3917
|
+
.muka-text-link--default:hover,
|
|
3918
|
+
.muka-text-link--default:focus-visible {
|
|
3919
|
+
color: var(--color-text-action-hover);
|
|
3920
|
+
}
|
|
3921
|
+
|
|
3922
|
+
.muka-text-link--default:active {
|
|
3923
|
+
color: var(--color-text-action-pressed);
|
|
3924
|
+
}
|
|
3925
|
+
|
|
3926
|
+
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
3927
|
+
Hover, focus and pressed all darken to the default text colour. */
|
|
3928
|
+
.muka-text-link--subtle,
|
|
3929
|
+
.muka-text-link--subtle:visited {
|
|
3930
|
+
color: var(--color-text-subtle-default);
|
|
3931
|
+
}
|
|
3932
|
+
|
|
3933
|
+
.muka-text-link--subtle:hover,
|
|
3934
|
+
.muka-text-link--subtle:focus-visible,
|
|
3935
|
+
.muka-text-link--subtle:active {
|
|
3936
|
+
color: var(--color-text-default-default);
|
|
3937
|
+
}
|
|
3938
|
+
|
|
3939
|
+
/* ─── Focus ───────────────────────────────────────────────
|
|
3940
|
+
Same ring as every other focusable Muka component. */
|
|
3941
|
+
.muka-text-link:focus-visible {
|
|
3942
|
+
outline: 2px solid var(--color-border-focus);
|
|
3943
|
+
outline-offset: 2px;
|
|
3944
|
+
}
|
|
3945
|
+
|
|
3946
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3947
|
+
.muka-text-link {
|
|
3948
|
+
transition: none;
|
|
3949
|
+
}
|
|
3950
|
+
}
|
|
3951
|
+
|
|
3952
|
+
|
|
3811
3953
|
/* Tabs */
|
|
3812
3954
|
/* Tabs Component Styles - Clean underline style tabs matching Figma */
|
|
3813
3955
|
|
|
@@ -5519,6 +5661,56 @@ body {
|
|
|
5519
5661
|
}
|
|
5520
5662
|
|
|
5521
5663
|
|
|
5664
|
+
/* RecordingBar */
|
|
5665
|
+
/* RecordingBar Component Styles */
|
|
5666
|
+
|
|
5667
|
+
.muka-recording-bar {
|
|
5668
|
+
display: flex;
|
|
5669
|
+
align-items: center;
|
|
5670
|
+
gap: var(--spacing-3);
|
|
5671
|
+
width: 100%;
|
|
5672
|
+
min-width: 0;
|
|
5673
|
+
}
|
|
5674
|
+
|
|
5675
|
+
.muka-recording-bar__dot {
|
|
5676
|
+
flex: 0 0 auto;
|
|
5677
|
+
width: 0.625rem;
|
|
5678
|
+
height: 0.625rem;
|
|
5679
|
+
border-radius: var(--radius-full, 9999px);
|
|
5680
|
+
background: var(--alert-color-error-accent, var(--color-text-default-default));
|
|
5681
|
+
animation: muka-recording-bar-pulse 1s ease-in-out infinite;
|
|
5682
|
+
}
|
|
5683
|
+
|
|
5684
|
+
.muka-recording-bar__time {
|
|
5685
|
+
flex: 0 0 auto;
|
|
5686
|
+
font-size: var(--text-label-sm-fontSize, 0.75rem);
|
|
5687
|
+
line-height: var(--text-label-sm-lineHeight, 1);
|
|
5688
|
+
font-variant-numeric: tabular-nums;
|
|
5689
|
+
color: var(--color-text-default-default);
|
|
5690
|
+
}
|
|
5691
|
+
|
|
5692
|
+
.muka-recording-bar__wave {
|
|
5693
|
+
flex: 1 1 auto;
|
|
5694
|
+
min-width: 0;
|
|
5695
|
+
}
|
|
5696
|
+
|
|
5697
|
+
@keyframes muka-recording-bar-pulse {
|
|
5698
|
+
0%,
|
|
5699
|
+
100% {
|
|
5700
|
+
opacity: 1;
|
|
5701
|
+
}
|
|
5702
|
+
50% {
|
|
5703
|
+
opacity: 0.3;
|
|
5704
|
+
}
|
|
5705
|
+
}
|
|
5706
|
+
|
|
5707
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5708
|
+
.muka-recording-bar__dot {
|
|
5709
|
+
animation: none;
|
|
5710
|
+
}
|
|
5711
|
+
}
|
|
5712
|
+
|
|
5713
|
+
|
|
5522
5714
|
/* RangeSlider */
|
|
5523
5715
|
/* RangeSlider Component Styles - Using Muka Design Tokens */
|
|
5524
5716
|
|
|
@@ -7071,33 +7263,33 @@ body {
|
|
|
7071
7263
|
}
|
|
7072
7264
|
|
|
7073
7265
|
|
|
7074
|
-
/*
|
|
7075
|
-
/*
|
|
7076
|
-
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7266
|
+
/* PhotoDraftStrip */
|
|
7267
|
+
/* PhotoDraftStrip Component Styles */
|
|
7077
7268
|
|
|
7078
|
-
.muka-
|
|
7079
|
-
display:
|
|
7269
|
+
.muka-photo-draft-strip {
|
|
7270
|
+
display: flex;
|
|
7080
7271
|
align-items: center;
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7084
|
-
font-size: var(--text-input-md-fontSize);
|
|
7085
|
-
line-height: var(--text-input-md-lineHeight);
|
|
7086
|
-
user-select: none;
|
|
7087
|
-
pointer-events: none;
|
|
7088
|
-
white-space: nowrap;
|
|
7272
|
+
gap: var(--spacing-3);
|
|
7273
|
+
width: 100%;
|
|
7274
|
+
padding: var(--spacing-2) 0;
|
|
7089
7275
|
}
|
|
7090
7276
|
|
|
7091
|
-
|
|
7092
|
-
|
|
7093
|
-
|
|
7094
|
-
|
|
7095
|
-
|
|
7277
|
+
.muka-photo-draft-strip__track {
|
|
7278
|
+
display: flex;
|
|
7279
|
+
gap: var(--spacing-2);
|
|
7280
|
+
flex: 1 1 auto;
|
|
7281
|
+
min-width: 0;
|
|
7282
|
+
overflow-x: auto;
|
|
7283
|
+
scroll-behavior: smooth;
|
|
7284
|
+
scrollbar-width: none;
|
|
7096
7285
|
}
|
|
7097
7286
|
|
|
7098
|
-
.muka-
|
|
7099
|
-
|
|
7100
|
-
|
|
7287
|
+
.muka-photo-draft-strip__track::-webkit-scrollbar {
|
|
7288
|
+
display: none;
|
|
7289
|
+
}
|
|
7290
|
+
|
|
7291
|
+
.muka-photo-draft-strip__item {
|
|
7292
|
+
flex: 0 0 auto;
|
|
7101
7293
|
}
|
|
7102
7294
|
|
|
7103
7295
|
|
|
@@ -7203,6 +7395,36 @@ body {
|
|
|
7203
7395
|
}
|
|
7204
7396
|
|
|
7205
7397
|
|
|
7398
|
+
/* NumberInput */
|
|
7399
|
+
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7400
|
+
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7401
|
+
|
|
7402
|
+
.muka-numberinput__addon {
|
|
7403
|
+
display: inline-flex;
|
|
7404
|
+
align-items: center;
|
|
7405
|
+
flex: none;
|
|
7406
|
+
color: var(--color-text-subtle-default);
|
|
7407
|
+
font-family: var(--text-input-md-fontFamily);
|
|
7408
|
+
font-size: var(--text-input-md-fontSize);
|
|
7409
|
+
line-height: var(--text-input-md-lineHeight);
|
|
7410
|
+
user-select: none;
|
|
7411
|
+
pointer-events: none;
|
|
7412
|
+
white-space: nowrap;
|
|
7413
|
+
}
|
|
7414
|
+
|
|
7415
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7416
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7417
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7418
|
+
-webkit-appearance: none;
|
|
7419
|
+
margin: 0;
|
|
7420
|
+
}
|
|
7421
|
+
|
|
7422
|
+
.muka-numberinput__field .muka-input__native {
|
|
7423
|
+
-moz-appearance: textfield;
|
|
7424
|
+
appearance: textfield;
|
|
7425
|
+
}
|
|
7426
|
+
|
|
7427
|
+
|
|
7206
7428
|
/* NavigationTransition */
|
|
7207
7429
|
/* NavigationTransition Component Styles */
|
|
7208
7430
|
|
|
@@ -8158,26 +8380,6 @@ li.muka-listitem {
|
|
|
8158
8380
|
}
|
|
8159
8381
|
|
|
8160
8382
|
|
|
8161
|
-
/* Form */
|
|
8162
|
-
.muka-form {
|
|
8163
|
-
display: flex;
|
|
8164
|
-
flex-direction: column;
|
|
8165
|
-
width: 100%;
|
|
8166
|
-
}
|
|
8167
|
-
|
|
8168
|
-
.muka-form--gap-sm {
|
|
8169
|
-
gap: var(--size-sm);
|
|
8170
|
-
}
|
|
8171
|
-
|
|
8172
|
-
.muka-form--gap-md {
|
|
8173
|
-
gap: var(--size-md);
|
|
8174
|
-
}
|
|
8175
|
-
|
|
8176
|
-
.muka-form--gap-lg {
|
|
8177
|
-
gap: var(--size-lg);
|
|
8178
|
-
}
|
|
8179
|
-
|
|
8180
|
-
|
|
8181
8383
|
/* Icon */
|
|
8182
8384
|
/* Icon Component Styles - Using Muka Design Tokens */
|
|
8183
8385
|
|
|
@@ -8232,6 +8434,26 @@ li.muka-listitem {
|
|
|
8232
8434
|
}
|
|
8233
8435
|
|
|
8234
8436
|
|
|
8437
|
+
/* Form */
|
|
8438
|
+
.muka-form {
|
|
8439
|
+
display: flex;
|
|
8440
|
+
flex-direction: column;
|
|
8441
|
+
width: 100%;
|
|
8442
|
+
}
|
|
8443
|
+
|
|
8444
|
+
.muka-form--gap-sm {
|
|
8445
|
+
gap: var(--size-sm);
|
|
8446
|
+
}
|
|
8447
|
+
|
|
8448
|
+
.muka-form--gap-md {
|
|
8449
|
+
gap: var(--size-md);
|
|
8450
|
+
}
|
|
8451
|
+
|
|
8452
|
+
.muka-form--gap-lg {
|
|
8453
|
+
gap: var(--size-lg);
|
|
8454
|
+
}
|
|
8455
|
+
|
|
8456
|
+
|
|
8235
8457
|
/* FileUpload */
|
|
8236
8458
|
/* FileUpload Component Styles */
|
|
8237
8459
|
|
|
@@ -8776,6 +8998,28 @@ li.muka-listitem {
|
|
|
8776
8998
|
}
|
|
8777
8999
|
|
|
8778
9000
|
|
|
9001
|
+
/* EmojiPicker */
|
|
9002
|
+
/* EmojiPicker Component Styles */
|
|
9003
|
+
|
|
9004
|
+
.muka-emoji-picker {
|
|
9005
|
+
display: grid;
|
|
9006
|
+
grid-template-columns: repeat(8, 1fr);
|
|
9007
|
+
gap: var(--spacing-1);
|
|
9008
|
+
padding: var(--spacing-2);
|
|
9009
|
+
max-height: 12rem;
|
|
9010
|
+
overflow-y: auto;
|
|
9011
|
+
background: var(--color-surface-level2);
|
|
9012
|
+
border: var(--border-width-regular, 1px) solid var(--color-border-default);
|
|
9013
|
+
border-radius: var(--radius-lg);
|
|
9014
|
+
box-shadow: var(--menu-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.12));
|
|
9015
|
+
}
|
|
9016
|
+
|
|
9017
|
+
.muka-emoji-picker__glyph {
|
|
9018
|
+
font-size: 1.25rem;
|
|
9019
|
+
line-height: 1;
|
|
9020
|
+
}
|
|
9021
|
+
|
|
9022
|
+
|
|
8779
9023
|
/* Drawer */
|
|
8780
9024
|
/* Drawer Component Styles */
|
|
8781
9025
|
|
|
@@ -10152,6 +10396,19 @@ li.muka-listitem {
|
|
|
10152
10396
|
/* Combobox */
|
|
10153
10397
|
/* Combobox Component Styles */
|
|
10154
10398
|
|
|
10399
|
+
/* ─── Trigger group (positioning context for the trailing controls) ── */
|
|
10400
|
+
|
|
10401
|
+
/*
|
|
10402
|
+
* The clear control is a sibling of the trigger, not a child (a <button> may
|
|
10403
|
+
* not contain interactive content), so it is overlaid on the trigger's trailing
|
|
10404
|
+
* padding. The trigger reserves that space with padding-right below.
|
|
10405
|
+
*/
|
|
10406
|
+
.muka-combobox__trigger-group {
|
|
10407
|
+
position: relative;
|
|
10408
|
+
display: block;
|
|
10409
|
+
width: 100%;
|
|
10410
|
+
}
|
|
10411
|
+
|
|
10155
10412
|
/* ─── Trigger (looks like an Input field, behaves like a button) ── */
|
|
10156
10413
|
|
|
10157
10414
|
.muka-combobox {
|
|
@@ -10159,7 +10416,7 @@ li.muka-listitem {
|
|
|
10159
10416
|
align-items: center;
|
|
10160
10417
|
gap: var(--spacing-2);
|
|
10161
10418
|
width: 100%;
|
|
10162
|
-
padding: 0 var(--input-field-padding-x);
|
|
10419
|
+
padding: 0 var(--muka-combobox-trailing-space) 0 var(--input-field-padding-x);
|
|
10163
10420
|
background-color: var(--input-field-color-default-background);
|
|
10164
10421
|
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
10165
10422
|
color: var(--color-text-default-default);
|
|
@@ -10171,6 +10428,19 @@ li.muka-listitem {
|
|
|
10171
10428
|
line-height: var(--text-body-md-regular-lineHeight);
|
|
10172
10429
|
-webkit-tap-highlight-color: transparent;
|
|
10173
10430
|
transition: border-color 0.12s ease;
|
|
10431
|
+
|
|
10432
|
+
/* Room for the chevron overlaid on the trailing edge. */
|
|
10433
|
+
--muka-combobox-trailing-space: calc(
|
|
10434
|
+
var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2)
|
|
10435
|
+
);
|
|
10436
|
+
}
|
|
10437
|
+
|
|
10438
|
+
/* …and for the clear button next to it, when one is rendered. */
|
|
10439
|
+
.muka-combobox--clearable {
|
|
10440
|
+
--muka-combobox-trailing-space: calc(
|
|
10441
|
+
var(--input-field-padding-x) + var(--icon-size-sm) + var(--spacing-2) +
|
|
10442
|
+
var(--icon-size-xs) + var(--spacing-1) * 2 + var(--spacing-2)
|
|
10443
|
+
);
|
|
10174
10444
|
}
|
|
10175
10445
|
|
|
10176
10446
|
.muka-combobox--sm {
|
|
@@ -10223,6 +10493,23 @@ li.muka-listitem {
|
|
|
10223
10493
|
text-overflow: ellipsis;
|
|
10224
10494
|
}
|
|
10225
10495
|
|
|
10496
|
+
/* ─── Trailing controls (clear + chevron) ─────────────── */
|
|
10497
|
+
|
|
10498
|
+
.muka-combobox__actions {
|
|
10499
|
+
position: absolute;
|
|
10500
|
+
top: 0;
|
|
10501
|
+
right: var(--input-field-padding-x);
|
|
10502
|
+
height: 100%;
|
|
10503
|
+
display: flex;
|
|
10504
|
+
align-items: center;
|
|
10505
|
+
gap: var(--spacing-2);
|
|
10506
|
+
/*
|
|
10507
|
+
* The strip sits on top of the trigger, so it must not swallow taps meant to
|
|
10508
|
+
* open the picker. Only the clear button takes pointer events back.
|
|
10509
|
+
*/
|
|
10510
|
+
pointer-events: none;
|
|
10511
|
+
}
|
|
10512
|
+
|
|
10226
10513
|
.muka-combobox__clear,
|
|
10227
10514
|
.muka-combobox__chevron {
|
|
10228
10515
|
display: inline-flex;
|
|
@@ -10233,9 +10520,13 @@ li.muka-listitem {
|
|
|
10233
10520
|
}
|
|
10234
10521
|
|
|
10235
10522
|
.muka-combobox__clear {
|
|
10523
|
+
pointer-events: auto;
|
|
10236
10524
|
cursor: pointer;
|
|
10237
10525
|
padding: var(--spacing-1);
|
|
10526
|
+
border: none;
|
|
10527
|
+
background: none;
|
|
10238
10528
|
border-radius: var(--radius-sm);
|
|
10529
|
+
-webkit-tap-highlight-color: transparent;
|
|
10239
10530
|
}
|
|
10240
10531
|
|
|
10241
10532
|
.muka-combobox__clear:hover {
|
|
@@ -10243,6 +10534,17 @@ li.muka-listitem {
|
|
|
10243
10534
|
background-color: var(--color-surface-level1);
|
|
10244
10535
|
}
|
|
10245
10536
|
|
|
10537
|
+
.muka-combobox__clear:focus-visible {
|
|
10538
|
+
outline: 2px solid var(--color-border-focus);
|
|
10539
|
+
outline-offset: 2px;
|
|
10540
|
+
color: var(--color-text-default-default);
|
|
10541
|
+
}
|
|
10542
|
+
|
|
10543
|
+
.muka-combobox--disabled ~ .muka-combobox__actions,
|
|
10544
|
+
.muka-combobox:disabled ~ .muka-combobox__actions {
|
|
10545
|
+
opacity: 0.5;
|
|
10546
|
+
}
|
|
10547
|
+
|
|
10246
10548
|
/* ─── Picker sheet body ───────────────────────────────── */
|
|
10247
10549
|
|
|
10248
10550
|
.muka-combobox__picker {
|
|
@@ -11052,7 +11354,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11052
11354
|
align-items: stretch;
|
|
11053
11355
|
gap: var(--spacing-8);
|
|
11054
11356
|
width: 100%;
|
|
11055
|
-
max-width: var(--
|
|
11357
|
+
max-width: var(--chat-column-max-width);
|
|
11056
11358
|
margin: 0 auto;
|
|
11057
11359
|
}
|
|
11058
11360
|
|
|
@@ -11138,7 +11440,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
11138
11440
|
* no length measuring needed (Figma `Text length` on 5355:44091).
|
|
11139
11441
|
*/
|
|
11140
11442
|
width: fit-content;
|
|
11141
|
-
|
|
11443
|
+
/*
|
|
11444
|
+
* Stops short of the far edge at every width: the fixed cap once the
|
|
11445
|
+
* conversation column reaches its own cap, the ratio below that, where the
|
|
11446
|
+
* column runs full-bleed. Without that gap a long `own` bubble spans the
|
|
11447
|
+
* column and reads no differently from a `peer` one.
|
|
11448
|
+
*/
|
|
11449
|
+
max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
|
|
11142
11450
|
position: relative;
|
|
11143
11451
|
display: flex;
|
|
11144
11452
|
flex-direction: column;
|
|
@@ -12261,19 +12569,34 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12261
12569
|
|
|
12262
12570
|
.muka-bottombar--chat .muka-bottombar__content {
|
|
12263
12571
|
flex-direction: row;
|
|
12264
|
-
max-width: var(--bottombar-chat-max-width);
|
|
12265
12572
|
width: 100%;
|
|
12266
12573
|
margin: 0 auto;
|
|
12267
12574
|
}
|
|
12268
12575
|
|
|
12269
|
-
/*
|
|
12576
|
+
/*
|
|
12577
|
+
* `--bottombar-chat-max-width` is the conversation column (it derives from
|
|
12578
|
+
* `chat.column.max-width`, the same token `ChatMessageList` caps its column
|
|
12579
|
+
* with). The cap here carries the padding on top of it, so it is the
|
|
12580
|
+
* composer's own edges — not the padding around it — that land on the column.
|
|
12581
|
+
*/
|
|
12582
|
+
|
|
12583
|
+
/*
|
|
12584
|
+
* Docked chat pads its content; the floating card supplies its own padding.
|
|
12585
|
+
* The inline half is the section gutter `ChatMessageList` pads its scroller
|
|
12586
|
+
* with, so below the cap — where the column runs full-bleed — the composer
|
|
12587
|
+
* keeps to the same gutters as the messages.
|
|
12588
|
+
*/
|
|
12270
12589
|
.muka-bottombar--chat:not(.muka-bottombar--floating) .muka-bottombar__content {
|
|
12271
|
-
padding: var(--bottombar-chat-padding)
|
|
12590
|
+
padding: var(--bottombar-chat-padding)
|
|
12591
|
+
var(--section-padding-horizontal-default, var(--spacing-4));
|
|
12592
|
+
max-width: calc(
|
|
12593
|
+
var(--bottombar-chat-max-width) + 2 * var(--section-padding-horizontal-default, var(--spacing-4))
|
|
12594
|
+
);
|
|
12272
12595
|
}
|
|
12273
12596
|
|
|
12274
12597
|
/* Floating chat card widens to the chat cap (overrides the md default below). */
|
|
12275
12598
|
.muka-bottombar--chat.muka-bottombar--floating .muka-bottombar__content {
|
|
12276
|
-
max-width: var(--bottombar-chat-max-width);
|
|
12599
|
+
max-width: calc(var(--bottombar-chat-max-width) + 2 * var(--bottombar-floating-padding));
|
|
12277
12600
|
}
|
|
12278
12601
|
|
|
12279
12602
|
/* ─── Tab item ────────────────────────────────────────── */
|