@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.
Files changed (70) hide show
  1. package/dist/cjs/components/Alert/Alert.css +12 -3
  2. package/dist/cjs/components/Alert/Alert.js +1 -1
  3. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  4. package/dist/cjs/components/Badge/Badge.css +27 -0
  5. package/dist/cjs/components/Badge/Badge.js +14 -5
  6. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  7. package/dist/cjs/components/ChatComposer/ChatComposer.css +121 -1
  8. package/dist/cjs/components/ChatComposer/ChatComposer.js +148 -21
  9. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  10. package/dist/cjs/components/ChatComposer/index.js.map +1 -1
  11. package/dist/cjs/components/PhotoUploader/PhotoUploader.css +6 -18
  12. package/dist/cjs/components/PhotoUploader/PhotoUploader.js +15 -16
  13. package/dist/cjs/components/PhotoUploader/PhotoUploader.js.map +1 -1
  14. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +26 -12
  15. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +49 -40
  16. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  17. package/dist/cjs/components/ProgressTracker/ProgressTracker.css +23 -5
  18. package/dist/cjs/components/ProgressTracker/ProgressTracker.js +8 -6
  19. package/dist/cjs/components/ProgressTracker/ProgressTracker.js.map +1 -1
  20. package/dist/cjs/components/index.js.map +1 -1
  21. package/dist/esm/components/Alert/Alert.css +12 -3
  22. package/dist/esm/components/Alert/Alert.js +1 -1
  23. package/dist/esm/components/Alert/Alert.js.map +1 -1
  24. package/dist/esm/components/Badge/Badge.css +27 -0
  25. package/dist/esm/components/Badge/Badge.js +14 -5
  26. package/dist/esm/components/Badge/Badge.js.map +1 -1
  27. package/dist/esm/components/ChatComposer/ChatComposer.css +121 -1
  28. package/dist/esm/components/ChatComposer/ChatComposer.js +150 -23
  29. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  30. package/dist/esm/components/ChatComposer/index.js +1 -1
  31. package/dist/esm/components/ChatComposer/index.js.map +1 -1
  32. package/dist/esm/components/PhotoUploader/PhotoUploader.css +6 -18
  33. package/dist/esm/components/PhotoUploader/PhotoUploader.js +15 -16
  34. package/dist/esm/components/PhotoUploader/PhotoUploader.js.map +1 -1
  35. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +26 -12
  36. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +49 -40
  37. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  38. package/dist/esm/components/ProgressTracker/ProgressTracker.css +23 -5
  39. package/dist/esm/components/ProgressTracker/ProgressTracker.js +8 -6
  40. package/dist/esm/components/ProgressTracker/ProgressTracker.js.map +1 -1
  41. package/dist/esm/components/index.js +1 -1
  42. package/dist/esm/components/index.js.map +1 -1
  43. package/dist/styles/components/Alert.css +12 -3
  44. package/dist/styles/components/Badge.css +27 -0
  45. package/dist/styles/components/ChatComposer.css +121 -1
  46. package/dist/styles/components/PhotoUploader.css +6 -18
  47. package/dist/styles/components/ProgressAccordeon.css +26 -12
  48. package/dist/styles/components/ProgressTracker.css +23 -5
  49. package/dist/styles/index.css +2743 -2567
  50. package/dist/styles/muka-dark.css +2743 -2567
  51. package/dist/styles/muka-light.css +2743 -2567
  52. package/dist/styles/wireframe-dark.css +2743 -2567
  53. package/dist/styles/wireframe-light.css +2743 -2567
  54. package/dist/types/components/Alert/Alert.d.ts +2 -2
  55. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  56. package/dist/types/components/Badge/Badge.d.ts +7 -5
  57. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  58. package/dist/types/components/ChatComposer/ChatComposer.d.ts +83 -12
  59. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  60. package/dist/types/components/ChatComposer/index.d.ts +1 -1
  61. package/dist/types/components/ChatComposer/index.d.ts.map +1 -1
  62. package/dist/types/components/PhotoUploader/PhotoUploader.d.ts +8 -8
  63. package/dist/types/components/PhotoUploader/PhotoUploader.d.ts.map +1 -1
  64. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts +36 -29
  65. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -1
  66. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts +10 -4
  67. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts.map +1 -1
  68. package/dist/types/components/index.d.ts +1 -1
  69. package/dist/types/components/index.d.ts.map +1 -1
  70. 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
- align-items: center;
165
- flex-shrink: 0;
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 })] }), 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" }) }))] }));
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;AAqC/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,IACjD,EAEL,MAAM,IAAI,gCAAK,SAAS,EAAC,oBAAoB,YAAE,MAAM,GAAO,EAE5D,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;AA9DW,QAAA,KAAK,SA8DhB;AAEF,kBAAe,aAAK,CAAC"}
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
- dot && 'muka-badge--has-dot',
22
- !dot && icon && 'muka-badge--has-icon',
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: [dot && (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__dot", "aria-hidden": "true" }), !dot && icon && (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__icon", "aria-hidden": "true", children: icon }), (0, jsx_runtime_1.jsx)("span", { className: "muka-badge__label", children: 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;AAyBrB;;;;;;;;;GASG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,IAAI,EACJ,GAAG,GAAG,KAAK,EACX,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,eAAe,OAAO,EAAE;QACxB,eAAe,IAAI,EAAE;QACrB,GAAG,IAAI,qBAAqB;QAC5B,CAAC,GAAG,IAAI,IAAI,IAAI,sBAAsB;QACtC,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,GAAG,IAAI,iCAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,GAAG,EAC9D,CAAC,GAAG,IAAI,IAAI,IAAI,iCAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAAE,IAAI,GAAQ,EACpF,iCAAM,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAQ,IAChD,CACR,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,KAAK,SA+BhB;AAEF,kBAAe,aAAK,CAAC"}
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
- * A horizontal row of `[leading button] · [input field] · [trailing button]`.
15
- * The trailing button toggles between a mic (empty field) and a send button
16
- * (text entered). Supports a voice-recording layout and a staged-attachments
17
- * strip. Submits on Enter (Shift+Enter for a newline). Designed to live in a
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 = 'Reply...', 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, className = '', }, forwardedRef) => {
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
- // `canSubmit` overrides the default "text is non-empty" rule when provided,
37
- // so a caption-less gallery send can be enabled from staged attachments.
38
- const textEnabled = canSubmitProp ?? value.trim().length > 0;
39
- const canSubmit = recording
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 && textEnabled;
42
- const handleSubmit = () => {
43
- if (!canSubmit)
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
- // Trailing button is a mic only when the field is empty, not recording, and
60
- // a record handler is supplied; otherwise it is the send button. When send
61
- // enablement is controlled (`canSubmit`), always show send so a caption-less
62
- // gallery can be sent from an empty field.
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.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: placeholder, disabled: disabled,
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,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,+CAAyC;AAAhC,wHAAA,OAAO,OAAA"}
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-body-base-regular-fontFamily);
83
- font-size: var(--text-body-base-regular-fontSize);
84
- font-weight: var(--text-body-base-regular-fontWeight);
85
- line-height: var(--text-body-base-regular-lineHeight);
86
- color: var(--color-text-subtle-default);
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 ────────────────────────────────────────── */