@revikornmann/muka-ui 0.28.1 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Alert/Alert.css +12 -3
- package/dist/cjs/components/Alert/Alert.js +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.css +27 -0
- package/dist/cjs/components/Badge/Badge.js +14 -5
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/ChatComposer/ChatComposer.css +121 -1
- package/dist/cjs/components/ChatComposer/ChatComposer.js +148 -21
- package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
- package/dist/cjs/components/ChatComposer/index.js.map +1 -1
- package/dist/cjs/components/PhotoUploader/PhotoUploader.css +6 -18
- package/dist/cjs/components/PhotoUploader/PhotoUploader.js +15 -16
- package/dist/cjs/components/PhotoUploader/PhotoUploader.js.map +1 -1
- package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +26 -12
- package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +49 -40
- package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
- package/dist/cjs/components/ProgressTracker/ProgressTracker.css +23 -5
- package/dist/cjs/components/ProgressTracker/ProgressTracker.js +8 -6
- package/dist/cjs/components/ProgressTracker/ProgressTracker.js.map +1 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/Alert/Alert.css +12 -3
- package/dist/esm/components/Alert/Alert.js +1 -1
- package/dist/esm/components/Alert/Alert.js.map +1 -1
- package/dist/esm/components/Badge/Badge.css +27 -0
- package/dist/esm/components/Badge/Badge.js +14 -5
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/ChatComposer/ChatComposer.css +121 -1
- package/dist/esm/components/ChatComposer/ChatComposer.js +150 -23
- package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
- package/dist/esm/components/ChatComposer/index.js +1 -1
- package/dist/esm/components/ChatComposer/index.js.map +1 -1
- package/dist/esm/components/PhotoUploader/PhotoUploader.css +6 -18
- package/dist/esm/components/PhotoUploader/PhotoUploader.js +15 -16
- package/dist/esm/components/PhotoUploader/PhotoUploader.js.map +1 -1
- package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +26 -12
- package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +49 -40
- package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
- package/dist/esm/components/ProgressTracker/ProgressTracker.css +23 -5
- package/dist/esm/components/ProgressTracker/ProgressTracker.js +8 -6
- package/dist/esm/components/ProgressTracker/ProgressTracker.js.map +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/styles/components/Alert.css +12 -3
- package/dist/styles/components/Badge.css +27 -0
- package/dist/styles/components/ChatComposer.css +121 -1
- package/dist/styles/components/PhotoUploader.css +6 -18
- package/dist/styles/components/ProgressAccordeon.css +26 -12
- package/dist/styles/components/ProgressTracker.css +23 -5
- package/dist/styles/index.css +2743 -2567
- package/dist/styles/muka-dark.css +2743 -2567
- package/dist/styles/muka-light.css +2743 -2567
- package/dist/styles/wireframe-dark.css +2743 -2567
- package/dist/styles/wireframe-light.css +2743 -2567
- package/dist/types/components/Alert/Alert.d.ts +2 -2
- package/dist/types/components/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts +7 -5
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/ChatComposer/ChatComposer.d.ts +83 -12
- package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
- package/dist/types/components/ChatComposer/index.d.ts +1 -1
- package/dist/types/components/ChatComposer/index.d.ts.map +1 -1
- package/dist/types/components/PhotoUploader/PhotoUploader.d.ts +8 -8
- package/dist/types/components/PhotoUploader/PhotoUploader.d.ts.map +1 -1
- package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts +36 -29
- package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -1
- package/dist/types/components/ProgressTracker/ProgressTracker.d.ts +10 -4
- package/dist/types/components/ProgressTracker/ProgressTracker.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -149,6 +149,14 @@
|
|
|
149
149
|
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
150
150
|
font-size: var(--text-body-sm-regular-fontSize);
|
|
151
151
|
line-height: var(--text-body-sm-regular-lineHeight);
|
|
152
|
+
/* Beat ambient docs/page text colors (e.g. Storybook sbdocs) so variant
|
|
153
|
+
foreground stays readable in light and dark themes. */
|
|
154
|
+
color: inherit;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.muka-alert .muka-alert__message,
|
|
158
|
+
.muka-alert .muka-alert__message * {
|
|
159
|
+
color: inherit;
|
|
152
160
|
}
|
|
153
161
|
|
|
154
162
|
.muka-alert--lg .muka-alert__message {
|
|
@@ -158,11 +166,12 @@
|
|
|
158
166
|
line-height: var(--text-body-base-regular-lineHeight);
|
|
159
167
|
}
|
|
160
168
|
|
|
161
|
-
/* Action slot */
|
|
169
|
+
/* Action slot — TextLink (or similar) below the message, matching Figma */
|
|
162
170
|
.muka-alert__action {
|
|
163
171
|
display: flex;
|
|
164
|
-
|
|
165
|
-
|
|
172
|
+
flex-direction: column;
|
|
173
|
+
align-items: flex-start;
|
|
174
|
+
padding-top: var(--spacing-1);
|
|
166
175
|
}
|
|
167
176
|
|
|
168
177
|
/* Dismiss button - uses accent color per variant, aligned with icon row */
|
|
@@ -38,7 +38,7 @@ const Alert = ({ children, variant = 'info', size = 'md', title, icon, hideIcon
|
|
|
38
38
|
const handleDismiss = () => {
|
|
39
39
|
onDismiss?.();
|
|
40
40
|
};
|
|
41
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: alertClasses, role: role === 'none' ? undefined : role, "aria-live": role === 'alert' ? 'assertive' : 'polite', ...props, children: [displayIcon && ((0, jsx_runtime_1.jsx)("span", { className: "muka-alert__icon", "aria-hidden": "true", children: displayIcon })), (0, jsx_runtime_1.jsxs)("div", { className: "muka-alert__content", children: [title && (0, jsx_runtime_1.jsx)("div", { className: "muka-alert__title", children: title }), (0, jsx_runtime_1.jsx)("div", { className: "muka-alert__message", children: children })
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: alertClasses, role: role === 'none' ? undefined : role, "aria-live": role === 'alert' ? 'assertive' : 'polite', ...props, children: [displayIcon && ((0, jsx_runtime_1.jsx)("span", { className: "muka-alert__icon", "aria-hidden": "true", children: displayIcon })), (0, jsx_runtime_1.jsxs)("div", { className: "muka-alert__content", children: [title && (0, jsx_runtime_1.jsx)("div", { className: "muka-alert__title", children: title }), (0, jsx_runtime_1.jsx)("div", { className: "muka-alert__message", children: children }), action && (0, jsx_runtime_1.jsx)("div", { className: "muka-alert__action", children: action })] }), dismissible && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-alert__dismiss", onClick: handleDismiss, "aria-label": "Dismiss alert", children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "close", variant: "line", size: "sm" }) }))] }));
|
|
42
42
|
};
|
|
43
43
|
exports.Alert = Alert;
|
|
44
44
|
exports.default = exports.Alert;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../../components/Alert/Alert.tsx"],"names":[],"mappings":";;;;AACA,uBAAqB;AACrB,kCAA+B;
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../../components/Alert/Alert.tsx"],"names":[],"mappings":";;;;AACA,uBAAqB;AACrB,kCAA+B;AAwC/B,oDAAoD;AACpD,MAAM,YAAY,GAAoC;IACpD,IAAI,EAAE,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC1D,OAAO,EAAE,uBAAC,WAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IACvD,OAAO,EAAE,uBAAC,WAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC/D,KAAK,EAAE,uBAAC,WAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;CAC9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,OAAO,GAAG,MAAM,EAChB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,MAAM,EACN,SAAS,GAAG,EAAE,EACd,IAAI,EAAE,QAAQ,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,eAAe,OAAO,EAAE;QACxB,eAAe,IAAI,EAAE;QACrB,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,qFAAqF;IACrF,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,SAAS,EAAE,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,iCACE,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAC7B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAChD,KAAK,aAER,WAAW,IAAI,CACd,iCAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAClD,WAAW,GACP,CACR,EAED,iCAAK,SAAS,EAAC,qBAAqB,aACjC,KAAK,IAAI,gCAAK,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAO,EAC1D,gCAAK,SAAS,EAAC,qBAAqB,YAAE,QAAQ,GAAO,EACpD,MAAM,IAAI,gCAAK,SAAS,EAAC,oBAAoB,YAAE,MAAM,GAAO,IACzD,EAEL,WAAW,IAAI,CACd,mCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,aAAa,gBACX,eAAe,YAE1B,uBAAC,WAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GACvC,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,KAAK,SA6DhB;AAEF,kBAAe,aAAK,CAAC"}
|
|
@@ -60,6 +60,33 @@
|
|
|
60
60
|
padding-left: var(--badge-padding-leading-lg);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
/* Icon-only — square, sized to the badge height (Figma: 24 / 32 / 40).
|
|
64
|
+
* Padding resets at size+icon-only specificity so `--has-icon` leading padding
|
|
65
|
+
* cannot win and shift the icon off-center. */
|
|
66
|
+
.muka-badge--icon-only {
|
|
67
|
+
justify-content: center;
|
|
68
|
+
align-items: center;
|
|
69
|
+
gap: 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.muka-badge--sm.muka-badge--icon-only,
|
|
73
|
+
.muka-badge--md.muka-badge--icon-only,
|
|
74
|
+
.muka-badge--lg.muka-badge--icon-only {
|
|
75
|
+
padding: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.muka-badge--sm.muka-badge--icon-only {
|
|
79
|
+
width: var(--badge-size-height-sm);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.muka-badge--md.muka-badge--icon-only {
|
|
83
|
+
width: var(--badge-size-height-md);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.muka-badge--lg.muka-badge--icon-only {
|
|
87
|
+
width: var(--badge-size-height-lg);
|
|
88
|
+
}
|
|
89
|
+
|
|
63
90
|
/* Leading icon slot — Figma icon sizes: sm 16, md 20, lg 24 (matches Chip) */
|
|
64
91
|
.muka-badge__icon {
|
|
65
92
|
display: inline-flex;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Badge = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const accessibility_1 = require("../../utils/accessibility");
|
|
5
6
|
require("./Badge.css");
|
|
6
7
|
/**
|
|
7
8
|
* Badge Component
|
|
@@ -11,18 +12,26 @@ require("./Badge.css");
|
|
|
11
12
|
*
|
|
12
13
|
* Variants: neutral, info, success, warning, error
|
|
13
14
|
* Sizes: sm, md, lg
|
|
14
|
-
* Features: optional leading icon or dot indicator
|
|
15
|
+
* Features: optional leading icon, icon-only, or dot indicator
|
|
15
16
|
*/
|
|
16
|
-
const Badge = ({ children, variant = 'neutral', size = 'md', icon, dot = false, className = '', 'aria-label': ariaLabel, ...props }) => {
|
|
17
|
+
const Badge = ({ children, variant = 'neutral', size = 'md', icon, iconOnly = false, dot = false, className = '', 'aria-label': ariaLabel, ...props }) => {
|
|
18
|
+
(0, accessibility_1.warnMissingA11yProp)('Badge', iconOnly && !ariaLabel, 'Icon-only badges require an aria-label for accessibility');
|
|
19
|
+
const showDot = !iconOnly && dot;
|
|
20
|
+
const showIcon = iconOnly ? Boolean(icon) : !dot && Boolean(icon);
|
|
21
|
+
const showLabel = !iconOnly && children != null && children !== false;
|
|
22
|
+
// `--has-icon` only exists to tighten leading padding for labelled badges;
|
|
23
|
+
// icon-only must stay square and centered, so skip that modifier.
|
|
24
|
+
const hasLeadingIcon = showIcon && !iconOnly;
|
|
17
25
|
const badgeClasses = [
|
|
18
26
|
'muka-badge',
|
|
19
27
|
`muka-badge--${variant}`,
|
|
20
28
|
`muka-badge--${size}`,
|
|
21
|
-
|
|
22
|
-
|
|
29
|
+
showDot && 'muka-badge--has-dot',
|
|
30
|
+
hasLeadingIcon && 'muka-badge--has-icon',
|
|
31
|
+
iconOnly && 'muka-badge--icon-only',
|
|
23
32
|
className,
|
|
24
33
|
].filter(Boolean).join(' ');
|
|
25
|
-
return ((0, jsx_runtime_1.jsxs)("span", { className: badgeClasses, role: "status", "aria-label": ariaLabel, ...props, children: [
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)("span", { className: badgeClasses, role: "status", "aria-label": ariaLabel, ...props, children: [showDot && (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__dot", "aria-hidden": "true" }), showIcon && (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__icon", "aria-hidden": "true", children: icon }), showLabel && (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__label", children: children })] }));
|
|
26
35
|
};
|
|
27
36
|
exports.Badge = Badge;
|
|
28
37
|
exports.default = exports.Badge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../../components/Badge/Badge.tsx"],"names":[],"mappings":";;;;AACA,uBAAqB;
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../../components/Badge/Badge.tsx"],"names":[],"mappings":";;;;AACA,6DAAgE;AAChE,uBAAqB;AA4BrB;;;;;;;;;GASG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,GAAG,GAAG,KAAK,EACX,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EAAE,EAAE;IACH,IAAA,mCAAmB,EACjB,OAAO,EACP,QAAQ,IAAI,CAAC,SAAS,EACtB,0DAA0D,CAC3D,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC;IACtE,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC;IAE7C,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,eAAe,OAAO,EAAE;QACxB,eAAe,IAAI,EAAE;QACrB,OAAO,IAAI,qBAAqB;QAChC,cAAc,IAAI,sBAAsB;QACxC,QAAQ,IAAI,uBAAuB;QACnC,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,CACL,kCACE,SAAS,EAAE,YAAY,EACvB,IAAI,EAAC,QAAQ,gBACD,SAAS,KACjB,KAAK,aAER,OAAO,IAAI,iCAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,GAAG,EAClE,QAAQ,IAAI,iCAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAAE,IAAI,GAAQ,EAC/E,SAAS,IAAI,iCAAM,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAQ,IAC9D,CACR,CAAC;AACJ,CAAC,CAAC;AA9CW,QAAA,KAAK,SA8ChB;AAEF,kBAAe,aAAK,CAAC"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
pointer-events: none;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
/* ─── Input row
|
|
20
|
+
/* ─── Input row (default layout) ───────────────────────── */
|
|
21
21
|
|
|
22
22
|
.muka-chat-composer__row {
|
|
23
23
|
display: flex;
|
|
@@ -43,6 +43,19 @@
|
|
|
43
43
|
transition: border-color 0.12s ease;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
.muka-chat-composer--options .muka-chat-composer__field {
|
|
47
|
+
flex: 1 1 auto;
|
|
48
|
+
width: auto;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Options input row: text field + mic / send beside it */
|
|
52
|
+
.muka-chat-composer__options-input {
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: flex-end;
|
|
55
|
+
gap: var(--spacing-3);
|
|
56
|
+
width: 100%;
|
|
57
|
+
}
|
|
58
|
+
|
|
46
59
|
.muka-chat-composer__field:focus-within {
|
|
47
60
|
border-color: var(--input-field-color-focus-border, var(--color-action-default));
|
|
48
61
|
}
|
|
@@ -116,6 +129,113 @@
|
|
|
116
129
|
transform: translateY(-50%);
|
|
117
130
|
}
|
|
118
131
|
|
|
132
|
+
/* ─── Options mode (Figma State=Options / State7 / State8) ─ */
|
|
133
|
+
|
|
134
|
+
.muka-chat-composer__prompt {
|
|
135
|
+
display: flex;
|
|
136
|
+
align-items: flex-start;
|
|
137
|
+
gap: var(--spacing-3);
|
|
138
|
+
width: 100%;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.muka-chat-composer__prompt-step {
|
|
142
|
+
flex-shrink: 0;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.muka-chat-composer__prompt-text {
|
|
146
|
+
display: flex;
|
|
147
|
+
flex-direction: column;
|
|
148
|
+
gap: var(--spacing-1);
|
|
149
|
+
min-width: 0;
|
|
150
|
+
flex: 1 1 auto;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.muka-chat-composer__prompt-heading {
|
|
154
|
+
color: var(--color-text-default-default);
|
|
155
|
+
font-family: var(--text-heading-sm-fontFamily);
|
|
156
|
+
font-weight: var(--text-heading-sm-fontWeight);
|
|
157
|
+
font-size: var(--text-heading-sm-fontSize);
|
|
158
|
+
line-height: var(--text-heading-sm-lineHeight);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.muka-chat-composer__prompt-description {
|
|
162
|
+
color: var(--color-text-subtle-default);
|
|
163
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
164
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
165
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
166
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.muka-chat-composer__choices {
|
|
170
|
+
width: 100%;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.muka-chat-composer__choices-card {
|
|
174
|
+
width: 100%;
|
|
175
|
+
overflow: hidden;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Choice rows: the ListItem is the interactive control; the Radio/Checkbox is
|
|
179
|
+
decorative for AT (aria-hidden) and sits in the leading slot. */
|
|
180
|
+
.muka-chat-composer__choice-control {
|
|
181
|
+
display: inline-flex;
|
|
182
|
+
align-items: center;
|
|
183
|
+
pointer-events: none;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.muka-chat-composer__choice-control .muka-radio,
|
|
187
|
+
.muka-chat-composer__choice-control .muka-checkbox {
|
|
188
|
+
pointer-events: none;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/*
|
|
192
|
+
* Multi-step footer (Figma Canned responses). Previous (muted) | centered
|
|
193
|
+
* progress | Next/Send (muted when not ready, primary when ready — never
|
|
194
|
+
* disabled for unreadiness).
|
|
195
|
+
*/
|
|
196
|
+
.muka-chat-composer__footer {
|
|
197
|
+
position: relative;
|
|
198
|
+
display: flex;
|
|
199
|
+
align-items: center;
|
|
200
|
+
justify-content: space-between;
|
|
201
|
+
gap: var(--spacing-2);
|
|
202
|
+
width: 100%;
|
|
203
|
+
min-height: var(--input-field-height-lg, 48px);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.muka-chat-composer__footer-spacer {
|
|
207
|
+
display: inline-block;
|
|
208
|
+
/* Approximate width of a Previous button so Next stays right-aligned when
|
|
209
|
+
there is no back control (step 1 of N). */
|
|
210
|
+
min-width: 7rem;
|
|
211
|
+
flex-shrink: 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.muka-chat-composer__footer-back {
|
|
215
|
+
flex-shrink: 0;
|
|
216
|
+
z-index: 1;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.muka-chat-composer__footer-action {
|
|
220
|
+
flex-shrink: 0;
|
|
221
|
+
margin-left: auto;
|
|
222
|
+
z-index: 1;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.muka-chat-composer__progress {
|
|
226
|
+
position: absolute;
|
|
227
|
+
left: 50%;
|
|
228
|
+
top: 50%;
|
|
229
|
+
transform: translate(-50%, -50%);
|
|
230
|
+
color: var(--color-text-subtle-default);
|
|
231
|
+
font-family: var(--text-label-lg-regular-fontFamily, var(--text-body-base-regular-fontFamily));
|
|
232
|
+
font-weight: var(--text-label-lg-regular-fontWeight, var(--text-body-base-regular-fontWeight));
|
|
233
|
+
font-size: var(--text-label-lg-regular-fontSize, var(--text-body-base-regular-fontSize));
|
|
234
|
+
line-height: var(--text-label-lg-regular-lineHeight, var(--text-body-base-regular-lineHeight));
|
|
235
|
+
white-space: nowrap;
|
|
236
|
+
pointer-events: none;
|
|
237
|
+
}
|
|
238
|
+
|
|
119
239
|
/* ─── Print ────────────────────────────────────────────── */
|
|
120
240
|
|
|
121
241
|
@media print {
|
|
@@ -4,22 +4,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.ChatComposer = void 0;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
+
const BadgeNumber_1 = require("../BadgeNumber");
|
|
7
8
|
const Button_1 = require("../Button");
|
|
9
|
+
const Card_1 = require("../Card");
|
|
10
|
+
const Checkbox_1 = require("../Checkbox");
|
|
8
11
|
const Icon_1 = require("../Icon");
|
|
12
|
+
const ListItem_1 = require("../ListItem");
|
|
13
|
+
const Radio_1 = require("../Radio");
|
|
9
14
|
const Spinner_1 = require("../Spinner");
|
|
10
15
|
require("./ChatComposer.css");
|
|
16
|
+
function hasChoiceSelection(type, selected) {
|
|
17
|
+
if (type === 'checkbox') {
|
|
18
|
+
return Array.isArray(selected) && selected.length > 0;
|
|
19
|
+
}
|
|
20
|
+
return typeof selected === 'string' && selected.length > 0;
|
|
21
|
+
}
|
|
11
22
|
/**
|
|
12
23
|
* ChatComposer — input affordance for chat conversations.
|
|
13
24
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* (
|
|
17
|
-
*
|
|
25
|
+
* Default layout: a horizontal row of
|
|
26
|
+
* `[leading button] · [input field] · [trailing button]`. The trailing button
|
|
27
|
+
* toggles between a mic (empty field) and a send button (text entered).
|
|
28
|
+
*
|
|
29
|
+
* Options layout (when `choices` is set): prompt + choice card + free-text
|
|
30
|
+
* field with mic/send, and an optional step footer (Previous / progress /
|
|
31
|
+
* Next or Send). Next/Send swap between `muted` and `primary` when ready —
|
|
32
|
+
* never `disabled` for unreadiness.
|
|
33
|
+
*
|
|
34
|
+
* Submits on Enter (Shift+Enter for a newline). Designed to live in a
|
|
18
35
|
* `BottomBar`.
|
|
19
36
|
*/
|
|
20
|
-
exports.ChatComposer = (0, react_1.forwardRef)(({ value, onChange, onSubmit, placeholder
|
|
37
|
+
exports.ChatComposer = (0, react_1.forwardRef)(({ value, onChange, onSubmit, placeholder, onLeadingClick, leadingIcon = 'add', leadingLabel = 'Add attachment', onEmoji, showEmoji = true, emojiLabel = 'Add emoji', onRecordStart, micLabel = 'Record voice message', sendLabel = 'Send message', canSubmit: canSubmitProp, recording = false, recordingSlot, onRecordPause, onRecordDiscard, pauseLabel = 'Pause recording', discardLabel = 'Discard recording', attachments, attachmentsOverflowLabel = 'Show more attachments', loading = false, disabled = false, maxLines = 10, autoFocus = false, choices, prompt, progressLabel, submitLabel = 'Send', nextLabel = 'Next', onBack, onForward, backLabel = 'Previous', className = '', }, forwardedRef) => {
|
|
21
38
|
const textareaRef = (0, react_1.useRef)(null);
|
|
22
39
|
const attachmentsRef = (0, react_1.useRef)(null);
|
|
40
|
+
const generatedId = (0, react_1.useId)();
|
|
41
|
+
const headingId = `${generatedId}-heading`;
|
|
42
|
+
const radioName = choices?.name ?? `${generatedId}-choices`;
|
|
43
|
+
const isOptionsMode = Boolean(choices);
|
|
44
|
+
const showStepFooter = isOptionsMode && Boolean(progressLabel);
|
|
45
|
+
const resolvedPlaceholder = placeholder ?? (isOptionsMode ? 'Or type something...' : 'Reply...');
|
|
46
|
+
const isCheckbox = choices?.type === 'checkbox';
|
|
47
|
+
const [uncontrolledSelection, setUncontrolledSelection] = (0, react_1.useState)(() => {
|
|
48
|
+
if (choices?.defaultValue !== undefined)
|
|
49
|
+
return choices.defaultValue;
|
|
50
|
+
return isCheckbox ? [] : '';
|
|
51
|
+
});
|
|
52
|
+
const selection = choices?.value !== undefined ? choices.value : uncontrolledSelection;
|
|
23
53
|
(0, react_1.useImperativeHandle)(forwardedRef, () => textareaRef.current);
|
|
24
54
|
// Auto-grow the textarea up to `maxLines`, then scroll.
|
|
25
55
|
(0, react_1.useEffect)(() => {
|
|
@@ -32,18 +62,62 @@ exports.ChatComposer = (0, react_1.forwardRef)(({ value, onChange, onSubmit, pla
|
|
|
32
62
|
const next = Math.min(el.scrollHeight, maxHeight);
|
|
33
63
|
el.style.height = `${next}px`;
|
|
34
64
|
el.style.overflowY = el.scrollHeight > maxHeight ? 'auto' : 'hidden';
|
|
35
|
-
}, [value, maxLines, recording]);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
65
|
+
}, [value, maxLines, recording, isOptionsMode]);
|
|
66
|
+
const choiceEnabled = isOptionsMode && choices
|
|
67
|
+
? hasChoiceSelection(choices.type, selection)
|
|
68
|
+
: false;
|
|
69
|
+
// `canSubmit` overrides the default readiness rule when provided.
|
|
70
|
+
const textEnabled = value.trim().length > 0;
|
|
71
|
+
const defaultEnabled = isOptionsMode
|
|
72
|
+
? textEnabled || choiceEnabled
|
|
73
|
+
: textEnabled;
|
|
74
|
+
const textOrChoiceEnabled = canSubmitProp ?? defaultEnabled;
|
|
75
|
+
// Options next/send stay clickable and swap muted↔primary; default-layout
|
|
76
|
+
// send still uses disabled when not ready.
|
|
77
|
+
const actionReady = recording
|
|
40
78
|
? !disabled && !loading
|
|
41
|
-
: !disabled && !loading &&
|
|
42
|
-
const
|
|
43
|
-
|
|
79
|
+
: !disabled && !loading && textOrChoiceEnabled;
|
|
80
|
+
const canSubmit = actionReady;
|
|
81
|
+
const setSelection = (next) => {
|
|
82
|
+
if (choices?.value === undefined) {
|
|
83
|
+
setUncontrolledSelection(next);
|
|
84
|
+
}
|
|
85
|
+
choices?.onChange?.(next);
|
|
86
|
+
};
|
|
87
|
+
const selectRadio = (itemValue) => {
|
|
88
|
+
if (disabled)
|
|
89
|
+
return;
|
|
90
|
+
setSelection(itemValue);
|
|
91
|
+
};
|
|
92
|
+
const toggleCheckbox = (itemValue) => {
|
|
93
|
+
if (disabled)
|
|
94
|
+
return;
|
|
95
|
+
const current = Array.isArray(selection) ? selection : [];
|
|
96
|
+
const next = current.indexOf(itemValue) !== -1
|
|
97
|
+
? current.filter((v) => v !== itemValue)
|
|
98
|
+
: [...current, itemValue];
|
|
99
|
+
setSelection(next);
|
|
100
|
+
};
|
|
101
|
+
const isItemSelected = (itemValue) => {
|
|
102
|
+
if (isCheckbox) {
|
|
103
|
+
return Array.isArray(selection) && selection.indexOf(itemValue) !== -1;
|
|
104
|
+
}
|
|
105
|
+
return selection === itemValue;
|
|
106
|
+
};
|
|
107
|
+
/** Multi-step Next vs final/single-step Send */
|
|
108
|
+
const isNextAction = showStepFooter && Boolean(onForward);
|
|
109
|
+
const handlePrimaryAction = () => {
|
|
110
|
+
if (!actionReady)
|
|
44
111
|
return;
|
|
112
|
+
if (isNextAction) {
|
|
113
|
+
onForward?.();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
45
116
|
onSubmit?.(value);
|
|
46
117
|
};
|
|
118
|
+
const handleSubmit = () => {
|
|
119
|
+
handlePrimaryAction();
|
|
120
|
+
};
|
|
47
121
|
const handleKeyDown = (e) => {
|
|
48
122
|
if (e.key === 'Enter' && !e.shiftKey) {
|
|
49
123
|
e.preventDefault();
|
|
@@ -56,28 +130,81 @@ exports.ChatComposer = (0, react_1.forwardRef)(({ value, onChange, onSubmit, pla
|
|
|
56
130
|
return;
|
|
57
131
|
el.scrollBy({ left: el.clientWidth * 0.8, behavior: 'smooth' });
|
|
58
132
|
};
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const showMic = !recording &&
|
|
133
|
+
// Default layout: mic when empty + onRecordStart. Options layout decides
|
|
134
|
+
// beside-field trailing separately (mic / icon send / labeled Send).
|
|
135
|
+
const showMic = !isOptionsMode &&
|
|
136
|
+
!recording &&
|
|
64
137
|
onRecordStart &&
|
|
65
138
|
canSubmitProp === undefined &&
|
|
66
139
|
value.trim().length === 0;
|
|
67
140
|
const classes = [
|
|
68
141
|
'muka-chat-composer',
|
|
69
142
|
recording && 'muka-chat-composer--recording',
|
|
143
|
+
isOptionsMode && 'muka-chat-composer--options',
|
|
70
144
|
disabled && 'muka-chat-composer--disabled',
|
|
71
145
|
className,
|
|
72
146
|
]
|
|
73
147
|
.filter(Boolean)
|
|
74
148
|
.join(' ');
|
|
149
|
+
const renderTextField = () => ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__field", children: [(0, jsx_runtime_1.jsx)("textarea", { ref: textareaRef, className: "muka-chat-composer__input", value: value, onChange: (e) => onChange(e.target.value), onKeyDown: handleKeyDown, placeholder: resolvedPlaceholder, disabled: disabled,
|
|
150
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
151
|
+
autoFocus: autoFocus, rows: 1, "aria-label": resolvedPlaceholder }), showEmoji && ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", className: "muka-chat-composer__emoji", variant: "ghost", size: "md", iconOnly: true, disabled: disabled, "aria-label": emojiLabel, onClick: onEmoji, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "emotion-happy", size: "sm" }) }))] }));
|
|
152
|
+
const renderChoices = () => {
|
|
153
|
+
if (!choices)
|
|
154
|
+
return null;
|
|
155
|
+
const groupRole = isCheckbox ? 'group' : 'radiogroup';
|
|
156
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__choices", role: groupRole, "aria-labelledby": prompt?.heading ? headingId : undefined, children: (0, jsx_runtime_1.jsx)(Card_1.Card, { padding: "none", className: "muka-chat-composer__choices-card", children: choices.items.map((item, index) => {
|
|
157
|
+
const selected = isItemSelected(item.value);
|
|
158
|
+
const itemDisabled = disabled || Boolean(item.disabled);
|
|
159
|
+
return ((0, jsx_runtime_1.jsx)(ListItem_1.ListItem, { as: "div", label: item.label, showChevron: false, showDivider: index < choices.items.length - 1, selected: selected, disabled: itemDisabled, className: "muka-chat-composer__choice", "aria-label": item.label, ...{
|
|
160
|
+
role: isCheckbox ? 'checkbox' : 'radio',
|
|
161
|
+
'aria-checked': selected,
|
|
162
|
+
}, onClick: () => {
|
|
163
|
+
if (itemDisabled)
|
|
164
|
+
return;
|
|
165
|
+
if (isCheckbox)
|
|
166
|
+
toggleCheckbox(item.value);
|
|
167
|
+
else
|
|
168
|
+
selectRadio(item.value);
|
|
169
|
+
}, leadingIcon: (0, jsx_runtime_1.jsx)("span", { className: "muka-chat-composer__choice-control", "aria-hidden": "true", children: isCheckbox ? ((0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: selected, disabled: itemDisabled, value: item.value, onChange: () => toggleCheckbox(item.value), ...{ tabIndex: -1 } })) : ((0, jsx_runtime_1.jsx)(Radio_1.Radio, { checked: selected, disabled: itemDisabled, name: radioName, value: item.value, onChange: () => selectRadio(item.value), ...{ tabIndex: -1 } })) }) }, item.value));
|
|
170
|
+
}) }) }));
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Trailing control beside the options text field:
|
|
174
|
+
* - multi-step / empty: mic (if onRecordStart)
|
|
175
|
+
* - has text: primary icon-only send
|
|
176
|
+
* - single-step + selection (no text): primary labeled Send
|
|
177
|
+
*/
|
|
178
|
+
const renderOptionsFieldTrailing = () => {
|
|
179
|
+
const showLabeledSend = !showStepFooter && choiceEnabled && !textEnabled && !loading;
|
|
180
|
+
if (showLabeledSend) {
|
|
181
|
+
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", variant: "primary", size: "lg", disabled: disabled, "aria-label": sendLabel, iconRight: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "send-plane2", size: "md" }), children: submitLabel }));
|
|
182
|
+
}
|
|
183
|
+
if (textEnabled || loading) {
|
|
184
|
+
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": sendLabel, children: loading ? ((0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: "sm", variant: "inverse" })) : ((0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "send-plane2", size: "md" })) }));
|
|
185
|
+
}
|
|
186
|
+
if (onRecordStart) {
|
|
187
|
+
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "mic", size: "md" }) }));
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
};
|
|
191
|
+
const renderOptionsInputRow = () => ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__options-input", children: [renderTextField(), renderOptionsFieldTrailing()] }));
|
|
192
|
+
/**
|
|
193
|
+
* Multi-step footer (when `progressLabel` is set). Next/Send use muted when
|
|
194
|
+
* not ready and primary when ready — never disabled for unreadiness.
|
|
195
|
+
*/
|
|
196
|
+
const renderOptionsFooter = () => {
|
|
197
|
+
if (!showStepFooter)
|
|
198
|
+
return null;
|
|
199
|
+
const actionLabel = isNextAction ? nextLabel : submitLabel;
|
|
200
|
+
const actionIcon = isNextAction ? 'arrow-right' : 'send-plane2';
|
|
201
|
+
const actionVariant = actionReady ? 'primary' : 'muted';
|
|
202
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__footer", children: [onBack ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "muted", size: "lg", disabled: disabled, "aria-label": backLabel, onClick: onBack, iconLeft: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-left", size: "md" }), className: "muka-chat-composer__footer-back", children: backLabel })) : ((0, jsx_runtime_1.jsx)("span", { className: "muka-chat-composer__footer-spacer", "aria-hidden": "true" })), (0, jsx_runtime_1.jsx)("span", { className: "muka-chat-composer__progress", children: progressLabel }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: actionVariant, size: "lg", disabled: disabled, "aria-label": actionLabel, onClick: handlePrimaryAction, iconRight: loading ? undefined : (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: actionIcon, size: "md" }), className: "muka-chat-composer__footer-action", children: loading ? (0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: "sm", variant: "inverse" }) : actionLabel })] }));
|
|
203
|
+
};
|
|
75
204
|
return ((0, jsx_runtime_1.jsxs)("form", { className: classes, onSubmit: (e) => {
|
|
76
205
|
e.preventDefault();
|
|
77
206
|
handleSubmit();
|
|
78
|
-
}, children: [attachments && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__attachments-strip", children: [(0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__attachments", ref: attachmentsRef, children: attachments }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", className: "muka-chat-composer__overflow", variant: "secondary", size: "sm", iconOnly: true, "aria-label": attachmentsOverflowLabel, onClick: scrollAttachments, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-right-s", size: "xs" }) })] })), (0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__row", children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": recording ? discardLabel : leadingLabel, onClick: recording ? onRecordDiscard : onLeadingClick, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: recording ? 'delete-bin' : leadingIcon, size: "md" }) }), recording ? ((0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__recording", children: recordingSlot })) : ((0, jsx_runtime_1.
|
|
79
|
-
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
80
|
-
autoFocus: autoFocus, rows: 1, "aria-label": placeholder }), showEmoji && ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", className: "muka-chat-composer__emoji", variant: "ghost", size: "md", iconOnly: true, disabled: disabled, "aria-label": emojiLabel, onClick: onEmoji, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "emotion-happy", size: "sm" }) }))] })), recording && ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": pauseLabel, onClick: onRecordPause, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "pause-circle", size: "md" }) })), showMic ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "mic", size: "md" }) })) : ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: !canSubmit, "aria-label": sendLabel, children: loading ? ((0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: "sm", variant: "inverse" })) : ((0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "send-plane2", size: "md" })) }))] })] }));
|
|
207
|
+
}, children: [attachments && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__attachments-strip", children: [(0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__attachments", ref: attachmentsRef, children: attachments }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", className: "muka-chat-composer__overflow", variant: "secondary", size: "sm", iconOnly: true, "aria-label": attachmentsOverflowLabel, onClick: scrollAttachments, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-right-s", size: "xs" }) })] })), isOptionsMode ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [prompt && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__prompt", children: [prompt.step != null && prompt.step !== false && ((0, jsx_runtime_1.jsx)(BadgeNumber_1.BadgeNumber, { variant: "neutral", size: "sm", className: "muka-chat-composer__prompt-step", children: prompt.step })), (0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__prompt-text", children: [(0, jsx_runtime_1.jsx)("div", { id: headingId, className: "muka-chat-composer__prompt-heading", children: prompt.heading }), prompt.description != null && prompt.description !== false && ((0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__prompt-description", children: prompt.description }))] })] })), renderChoices(), renderOptionsInputRow(), renderOptionsFooter()] })) : ((0, jsx_runtime_1.jsxs)("div", { className: "muka-chat-composer__row", children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": recording ? discardLabel : leadingLabel, onClick: recording ? onRecordDiscard : onLeadingClick, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: recording ? 'delete-bin' : leadingIcon, size: "md" }) }), recording ? ((0, jsx_runtime_1.jsx)("div", { className: "muka-chat-composer__recording", children: recordingSlot })) : (renderTextField()), recording && ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": pauseLabel, onClick: onRecordPause, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "pause-circle", size: "md" }) })), showMic ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "mic", size: "md" }) })) : ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: !canSubmit, "aria-label": sendLabel, children: loading ? ((0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: "sm", variant: "inverse" })) : ((0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "send-plane2", size: "md" })) }))] }))] }));
|
|
81
208
|
});
|
|
82
209
|
exports.ChatComposer.displayName = 'ChatComposer';
|
|
83
210
|
exports.default = exports.ChatComposer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComposer.js","sourceRoot":"","sources":["../../../../components/ChatComposer/ChatComposer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatComposer.js","sourceRoot":"","sources":["../../../../components/ChatComposer/ChatComposer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/ChatComposer/index.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/ChatComposer/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAMwB;AALtB,4GAAA,YAAY,OAAA;AAMd,+CAAyC;AAAhC,wHAAA,OAAO,OAAA"}
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
padding: 0;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
/* ─── Drop zone card
|
|
45
|
+
/* ─── Drop zone card (button + "or drop here") ────────── */
|
|
46
46
|
.muka-photo-uploader__dropzone {
|
|
47
47
|
display: flex;
|
|
48
48
|
flex-direction: column;
|
|
@@ -66,24 +66,12 @@
|
|
|
66
66
|
background-color: var(--color-surface-level1);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
.muka-photo-uploader__dropzone:focus-visible {
|
|
70
|
-
outline: 2px solid var(--color-border-focus);
|
|
71
|
-
outline-offset: 2px;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.muka-photo-uploader__dropzone-icon {
|
|
75
|
-
display: flex;
|
|
76
|
-
align-items: center;
|
|
77
|
-
justify-content: center;
|
|
78
|
-
color: var(--color-icon-subtle-default);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
69
|
.muka-photo-uploader__dropzone-text {
|
|
82
|
-
font-family: var(--text-
|
|
83
|
-
font-size: var(--text-
|
|
84
|
-
font-weight: var(--text-
|
|
85
|
-
line-height: var(--text-
|
|
86
|
-
color: var(--color-text-
|
|
70
|
+
font-family: var(--text-subheading-sm-fontFamily);
|
|
71
|
+
font-size: var(--text-subheading-sm-fontSize);
|
|
72
|
+
font-weight: var(--text-subheading-sm-fontWeight);
|
|
73
|
+
line-height: var(--text-subheading-sm-lineHeight);
|
|
74
|
+
color: var(--color-text-default-default);
|
|
87
75
|
}
|
|
88
76
|
|
|
89
77
|
/* ─── Disabled ────────────────────────────────────────── */
|