@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
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../../components/Alert/Alert.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAqC/B,oDAAoD;AACpD,MAAM,YAAY,GAAoC;IACpD,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC1D,OAAO,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IACvD,OAAO,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC/D,KAAK,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;CAC9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,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,eACE,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,eAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAClD,WAAW,GACP,CACR,EAED,eAAK,SAAS,EAAC,qBAAqB,aACjC,KAAK,IAAI,cAAK,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAO,EAC1D,cAAK,SAAS,EAAC,qBAAqB,YAAE,QAAQ,GAAO,IACjD,EAEL,MAAM,IAAI,cAAK,SAAS,EAAC,oBAAoB,YAAE,MAAM,GAAO,EAE5D,WAAW,IAAI,CACd,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,aAAa,gBACX,eAAe,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GACvC,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../../components/Alert/Alert.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAwC/B,oDAAoD;AACpD,MAAM,YAAY,GAAoC;IACpD,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC1D,OAAO,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IACvD,OAAO,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;IAC/D,KAAK,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG;CAC9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,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,eACE,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,eAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAClD,WAAW,GACP,CACR,EAED,eAAK,SAAS,EAAC,qBAAqB,aACjC,KAAK,IAAI,cAAK,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAO,EAC1D,cAAK,SAAS,EAAC,qBAAqB,YAAE,QAAQ,GAAO,EACpD,MAAM,IAAI,cAAK,SAAS,EAAC,oBAAoB,YAAE,MAAM,GAAO,IACzD,EAEL,WAAW,IAAI,CACd,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,aAAa,gBACX,eAAe,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GACvC,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,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;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { warnMissingA11yProp } from '../../utils/accessibility';
2
3
  import './Badge.css';
3
4
  /**
4
5
  * Badge Component
@@ -8,18 +9,26 @@ import './Badge.css';
8
9
  *
9
10
  * Variants: neutral, info, success, warning, error
10
11
  * Sizes: sm, md, lg
11
- * Features: optional leading icon or dot indicator
12
+ * Features: optional leading icon, icon-only, or dot indicator
12
13
  */
13
- export const Badge = ({ children, variant = 'neutral', size = 'md', icon, dot = false, className = '', 'aria-label': ariaLabel, ...props }) => {
14
+ export const Badge = ({ children, variant = 'neutral', size = 'md', icon, iconOnly = false, dot = false, className = '', 'aria-label': ariaLabel, ...props }) => {
15
+ warnMissingA11yProp('Badge', iconOnly && !ariaLabel, 'Icon-only badges require an aria-label for accessibility');
16
+ const showDot = !iconOnly && dot;
17
+ const showIcon = iconOnly ? Boolean(icon) : !dot && Boolean(icon);
18
+ const showLabel = !iconOnly && children != null && children !== false;
19
+ // `--has-icon` only exists to tighten leading padding for labelled badges;
20
+ // icon-only must stay square and centered, so skip that modifier.
21
+ const hasLeadingIcon = showIcon && !iconOnly;
14
22
  const badgeClasses = [
15
23
  'muka-badge',
16
24
  `muka-badge--${variant}`,
17
25
  `muka-badge--${size}`,
18
- dot && 'muka-badge--has-dot',
19
- !dot && icon && 'muka-badge--has-icon',
26
+ showDot && 'muka-badge--has-dot',
27
+ hasLeadingIcon && 'muka-badge--has-icon',
28
+ iconOnly && 'muka-badge--icon-only',
20
29
  className,
21
30
  ].filter(Boolean).join(' ');
22
- return (_jsxs("span", { className: badgeClasses, role: "status", "aria-label": ariaLabel, ...props, children: [dot && _jsx("span", { className: "muka-badge__dot", "aria-hidden": "true" }), !dot && icon && _jsx("span", { className: "muka-badge__icon", "aria-hidden": "true", children: icon }), _jsx("span", { className: "muka-badge__label", children: children })] }));
31
+ return (_jsxs("span", { className: badgeClasses, role: "status", "aria-label": ariaLabel, ...props, children: [showDot && _jsx("span", { className: "muka-badge__dot", "aria-hidden": "true" }), showIcon && _jsx("span", { className: "muka-badge__icon", "aria-hidden": "true", children: icon }), showLabel && _jsx("span", { className: "muka-badge__label", children: children })] }));
23
32
  };
24
33
  export default Badge;
25
34
  //# sourceMappingURL=Badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../../components/Badge/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,CAAC;AAyBrB;;;;;;;;;GASG;AACH,MAAM,CAAC,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,gBACE,SAAS,EAAE,YAAY,EACvB,IAAI,EAAC,QAAQ,gBACD,SAAS,KACjB,KAAK,aAER,GAAG,IAAI,eAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,GAAG,EAC9D,CAAC,GAAG,IAAI,IAAI,IAAI,eAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAAE,IAAI,GAAQ,EACpF,eAAM,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAQ,IAChD,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../../components/Badge/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,aAAa,CAAC;AA4BrB;;;;;;;;;GASG;AACH,MAAM,CAAC,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,mBAAmB,CACjB,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,gBACE,SAAS,EAAE,YAAY,EACvB,IAAI,EAAC,QAAQ,gBACD,SAAS,KACjB,KAAK,aAER,OAAO,IAAI,eAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,GAAG,EAClE,QAAQ,IAAI,eAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAAE,IAAI,GAAQ,EAC/E,SAAS,IAAI,eAAM,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAQ,IAC9D,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,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 {
@@ -1,22 +1,52 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { forwardRef, useEffect, useImperativeHandle, useRef, } from 'react';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { forwardRef, useEffect, useId, useImperativeHandle, useRef, useState, } from 'react';
4
+ import { BadgeNumber } from '../BadgeNumber';
4
5
  import { Button } from '../Button';
6
+ import { Card } from '../Card';
7
+ import { Checkbox } from '../Checkbox';
5
8
  import { Icon } from '../Icon';
9
+ import { ListItem } from '../ListItem';
10
+ import { Radio } from '../Radio';
6
11
  import { Spinner } from '../Spinner';
7
12
  import './ChatComposer.css';
13
+ function hasChoiceSelection(type, selected) {
14
+ if (type === 'checkbox') {
15
+ return Array.isArray(selected) && selected.length > 0;
16
+ }
17
+ return typeof selected === 'string' && selected.length > 0;
18
+ }
8
19
  /**
9
20
  * ChatComposer — input affordance for chat conversations.
10
21
  *
11
- * A horizontal row of `[leading button] · [input field] · [trailing button]`.
12
- * The trailing button toggles between a mic (empty field) and a send button
13
- * (text entered). Supports a voice-recording layout and a staged-attachments
14
- * strip. Submits on Enter (Shift+Enter for a newline). Designed to live in a
22
+ * Default layout: a horizontal row of
23
+ * `[leading button] · [input field] · [trailing button]`. The trailing button
24
+ * toggles between a mic (empty field) and a send button (text entered).
25
+ *
26
+ * Options layout (when `choices` is set): prompt + choice card + free-text
27
+ * field with mic/send, and an optional step footer (Previous / progress /
28
+ * Next or Send). Next/Send swap between `muted` and `primary` when ready —
29
+ * never `disabled` for unreadiness.
30
+ *
31
+ * Submits on Enter (Shift+Enter for a newline). Designed to live in a
15
32
  * `BottomBar`.
16
33
  */
17
- export const ChatComposer = 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) => {
34
+ export const ChatComposer = 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) => {
18
35
  const textareaRef = useRef(null);
19
36
  const attachmentsRef = useRef(null);
37
+ const generatedId = useId();
38
+ const headingId = `${generatedId}-heading`;
39
+ const radioName = choices?.name ?? `${generatedId}-choices`;
40
+ const isOptionsMode = Boolean(choices);
41
+ const showStepFooter = isOptionsMode && Boolean(progressLabel);
42
+ const resolvedPlaceholder = placeholder ?? (isOptionsMode ? 'Or type something...' : 'Reply...');
43
+ const isCheckbox = choices?.type === 'checkbox';
44
+ const [uncontrolledSelection, setUncontrolledSelection] = useState(() => {
45
+ if (choices?.defaultValue !== undefined)
46
+ return choices.defaultValue;
47
+ return isCheckbox ? [] : '';
48
+ });
49
+ const selection = choices?.value !== undefined ? choices.value : uncontrolledSelection;
20
50
  useImperativeHandle(forwardedRef, () => textareaRef.current);
21
51
  // Auto-grow the textarea up to `maxLines`, then scroll.
22
52
  useEffect(() => {
@@ -29,18 +59,62 @@ export const ChatComposer = forwardRef(({ value, onChange, onSubmit, placeholder
29
59
  const next = Math.min(el.scrollHeight, maxHeight);
30
60
  el.style.height = `${next}px`;
31
61
  el.style.overflowY = el.scrollHeight > maxHeight ? 'auto' : 'hidden';
32
- }, [value, maxLines, recording]);
33
- // `canSubmit` overrides the default "text is non-empty" rule when provided,
34
- // so a caption-less gallery send can be enabled from staged attachments.
35
- const textEnabled = canSubmitProp ?? value.trim().length > 0;
36
- const canSubmit = recording
62
+ }, [value, maxLines, recording, isOptionsMode]);
63
+ const choiceEnabled = isOptionsMode && choices
64
+ ? hasChoiceSelection(choices.type, selection)
65
+ : false;
66
+ // `canSubmit` overrides the default readiness rule when provided.
67
+ const textEnabled = value.trim().length > 0;
68
+ const defaultEnabled = isOptionsMode
69
+ ? textEnabled || choiceEnabled
70
+ : textEnabled;
71
+ const textOrChoiceEnabled = canSubmitProp ?? defaultEnabled;
72
+ // Options next/send stay clickable and swap muted↔primary; default-layout
73
+ // send still uses disabled when not ready.
74
+ const actionReady = recording
37
75
  ? !disabled && !loading
38
- : !disabled && !loading && textEnabled;
39
- const handleSubmit = () => {
40
- if (!canSubmit)
76
+ : !disabled && !loading && textOrChoiceEnabled;
77
+ const canSubmit = actionReady;
78
+ const setSelection = (next) => {
79
+ if (choices?.value === undefined) {
80
+ setUncontrolledSelection(next);
81
+ }
82
+ choices?.onChange?.(next);
83
+ };
84
+ const selectRadio = (itemValue) => {
85
+ if (disabled)
86
+ return;
87
+ setSelection(itemValue);
88
+ };
89
+ const toggleCheckbox = (itemValue) => {
90
+ if (disabled)
91
+ return;
92
+ const current = Array.isArray(selection) ? selection : [];
93
+ const next = current.indexOf(itemValue) !== -1
94
+ ? current.filter((v) => v !== itemValue)
95
+ : [...current, itemValue];
96
+ setSelection(next);
97
+ };
98
+ const isItemSelected = (itemValue) => {
99
+ if (isCheckbox) {
100
+ return Array.isArray(selection) && selection.indexOf(itemValue) !== -1;
101
+ }
102
+ return selection === itemValue;
103
+ };
104
+ /** Multi-step Next vs final/single-step Send */
105
+ const isNextAction = showStepFooter && Boolean(onForward);
106
+ const handlePrimaryAction = () => {
107
+ if (!actionReady)
41
108
  return;
109
+ if (isNextAction) {
110
+ onForward?.();
111
+ return;
112
+ }
42
113
  onSubmit?.(value);
43
114
  };
115
+ const handleSubmit = () => {
116
+ handlePrimaryAction();
117
+ };
44
118
  const handleKeyDown = (e) => {
45
119
  if (e.key === 'Enter' && !e.shiftKey) {
46
120
  e.preventDefault();
@@ -53,28 +127,81 @@ export const ChatComposer = forwardRef(({ value, onChange, onSubmit, placeholder
53
127
  return;
54
128
  el.scrollBy({ left: el.clientWidth * 0.8, behavior: 'smooth' });
55
129
  };
56
- // Trailing button is a mic only when the field is empty, not recording, and
57
- // a record handler is supplied; otherwise it is the send button. When send
58
- // enablement is controlled (`canSubmit`), always show send so a caption-less
59
- // gallery can be sent from an empty field.
60
- const showMic = !recording &&
130
+ // Default layout: mic when empty + onRecordStart. Options layout decides
131
+ // beside-field trailing separately (mic / icon send / labeled Send).
132
+ const showMic = !isOptionsMode &&
133
+ !recording &&
61
134
  onRecordStart &&
62
135
  canSubmitProp === undefined &&
63
136
  value.trim().length === 0;
64
137
  const classes = [
65
138
  'muka-chat-composer',
66
139
  recording && 'muka-chat-composer--recording',
140
+ isOptionsMode && 'muka-chat-composer--options',
67
141
  disabled && 'muka-chat-composer--disabled',
68
142
  className,
69
143
  ]
70
144
  .filter(Boolean)
71
145
  .join(' ');
146
+ const renderTextField = () => (_jsxs("div", { className: "muka-chat-composer__field", children: [_jsx("textarea", { ref: textareaRef, className: "muka-chat-composer__input", value: value, onChange: (e) => onChange(e.target.value), onKeyDown: handleKeyDown, placeholder: resolvedPlaceholder, disabled: disabled,
147
+ // eslint-disable-next-line jsx-a11y/no-autofocus
148
+ autoFocus: autoFocus, rows: 1, "aria-label": resolvedPlaceholder }), showEmoji && (_jsx(Button, { type: "button", className: "muka-chat-composer__emoji", variant: "ghost", size: "md", iconOnly: true, disabled: disabled, "aria-label": emojiLabel, onClick: onEmoji, children: _jsx(Icon, { name: "emotion-happy", size: "sm" }) }))] }));
149
+ const renderChoices = () => {
150
+ if (!choices)
151
+ return null;
152
+ const groupRole = isCheckbox ? 'group' : 'radiogroup';
153
+ return (_jsx("div", { className: "muka-chat-composer__choices", role: groupRole, "aria-labelledby": prompt?.heading ? headingId : undefined, children: _jsx(Card, { padding: "none", className: "muka-chat-composer__choices-card", children: choices.items.map((item, index) => {
154
+ const selected = isItemSelected(item.value);
155
+ const itemDisabled = disabled || Boolean(item.disabled);
156
+ return (_jsx(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, ...{
157
+ role: isCheckbox ? 'checkbox' : 'radio',
158
+ 'aria-checked': selected,
159
+ }, onClick: () => {
160
+ if (itemDisabled)
161
+ return;
162
+ if (isCheckbox)
163
+ toggleCheckbox(item.value);
164
+ else
165
+ selectRadio(item.value);
166
+ }, leadingIcon: _jsx("span", { className: "muka-chat-composer__choice-control", "aria-hidden": "true", children: isCheckbox ? (_jsx(Checkbox, { checked: selected, disabled: itemDisabled, value: item.value, onChange: () => toggleCheckbox(item.value), ...{ tabIndex: -1 } })) : (_jsx(Radio, { checked: selected, disabled: itemDisabled, name: radioName, value: item.value, onChange: () => selectRadio(item.value), ...{ tabIndex: -1 } })) }) }, item.value));
167
+ }) }) }));
168
+ };
169
+ /**
170
+ * Trailing control beside the options text field:
171
+ * - multi-step / empty: mic (if onRecordStart)
172
+ * - has text: primary icon-only send
173
+ * - single-step + selection (no text): primary labeled Send
174
+ */
175
+ const renderOptionsFieldTrailing = () => {
176
+ const showLabeledSend = !showStepFooter && choiceEnabled && !textEnabled && !loading;
177
+ if (showLabeledSend) {
178
+ return (_jsx(Button, { type: "submit", variant: "primary", size: "lg", disabled: disabled, "aria-label": sendLabel, iconRight: _jsx(Icon, { name: "send-plane2", size: "md" }), children: submitLabel }));
179
+ }
180
+ if (textEnabled || loading) {
181
+ return (_jsx(Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": sendLabel, children: loading ? (_jsx(Spinner, { size: "sm", variant: "inverse" })) : (_jsx(Icon, { name: "send-plane2", size: "md" })) }));
182
+ }
183
+ if (onRecordStart) {
184
+ return (_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: _jsx(Icon, { name: "mic", size: "md" }) }));
185
+ }
186
+ return null;
187
+ };
188
+ const renderOptionsInputRow = () => (_jsxs("div", { className: "muka-chat-composer__options-input", children: [renderTextField(), renderOptionsFieldTrailing()] }));
189
+ /**
190
+ * Multi-step footer (when `progressLabel` is set). Next/Send use muted when
191
+ * not ready and primary when ready — never disabled for unreadiness.
192
+ */
193
+ const renderOptionsFooter = () => {
194
+ if (!showStepFooter)
195
+ return null;
196
+ const actionLabel = isNextAction ? nextLabel : submitLabel;
197
+ const actionIcon = isNextAction ? 'arrow-right' : 'send-plane2';
198
+ const actionVariant = actionReady ? 'primary' : 'muted';
199
+ return (_jsxs("div", { className: "muka-chat-composer__footer", children: [onBack ? (_jsx(Button, { type: "button", variant: "muted", size: "lg", disabled: disabled, "aria-label": backLabel, onClick: onBack, iconLeft: _jsx(Icon, { name: "arrow-left", size: "md" }), className: "muka-chat-composer__footer-back", children: backLabel })) : (_jsx("span", { className: "muka-chat-composer__footer-spacer", "aria-hidden": "true" })), _jsx("span", { className: "muka-chat-composer__progress", children: progressLabel }), _jsx(Button, { type: "button", variant: actionVariant, size: "lg", disabled: disabled, "aria-label": actionLabel, onClick: handlePrimaryAction, iconRight: loading ? undefined : _jsx(Icon, { name: actionIcon, size: "md" }), className: "muka-chat-composer__footer-action", children: loading ? _jsx(Spinner, { size: "sm", variant: "inverse" }) : actionLabel })] }));
200
+ };
72
201
  return (_jsxs("form", { className: classes, onSubmit: (e) => {
73
202
  e.preventDefault();
74
203
  handleSubmit();
75
- }, children: [attachments && (_jsxs("div", { className: "muka-chat-composer__attachments-strip", children: [_jsx("div", { className: "muka-chat-composer__attachments", ref: attachmentsRef, children: attachments }), _jsx(Button, { type: "button", className: "muka-chat-composer__overflow", variant: "secondary", size: "sm", iconOnly: true, "aria-label": attachmentsOverflowLabel, onClick: scrollAttachments, children: _jsx(Icon, { name: "arrow-right-s", size: "xs" }) })] })), _jsxs("div", { className: "muka-chat-composer__row", children: [_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": recording ? discardLabel : leadingLabel, onClick: recording ? onRecordDiscard : onLeadingClick, children: _jsx(Icon, { name: recording ? 'delete-bin' : leadingIcon, size: "md" }) }), recording ? (_jsx("div", { className: "muka-chat-composer__recording", children: recordingSlot })) : (_jsxs("div", { className: "muka-chat-composer__field", children: [_jsx("textarea", { ref: textareaRef, className: "muka-chat-composer__input", value: value, onChange: (e) => onChange(e.target.value), onKeyDown: handleKeyDown, placeholder: placeholder, disabled: disabled,
76
- // eslint-disable-next-line jsx-a11y/no-autofocus
77
- autoFocus: autoFocus, rows: 1, "aria-label": placeholder }), showEmoji && (_jsx(Button, { type: "button", className: "muka-chat-composer__emoji", variant: "ghost", size: "md", iconOnly: true, disabled: disabled, "aria-label": emojiLabel, onClick: onEmoji, children: _jsx(Icon, { name: "emotion-happy", size: "sm" }) }))] })), recording && (_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": pauseLabel, onClick: onRecordPause, children: _jsx(Icon, { name: "pause-circle", size: "md" }) })), showMic ? (_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: _jsx(Icon, { name: "mic", size: "md" }) })) : (_jsx(Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: !canSubmit, "aria-label": sendLabel, children: loading ? (_jsx(Spinner, { size: "sm", variant: "inverse" })) : (_jsx(Icon, { name: "send-plane2", size: "md" })) }))] })] }));
204
+ }, children: [attachments && (_jsxs("div", { className: "muka-chat-composer__attachments-strip", children: [_jsx("div", { className: "muka-chat-composer__attachments", ref: attachmentsRef, children: attachments }), _jsx(Button, { type: "button", className: "muka-chat-composer__overflow", variant: "secondary", size: "sm", iconOnly: true, "aria-label": attachmentsOverflowLabel, onClick: scrollAttachments, children: _jsx(Icon, { name: "arrow-right-s", size: "xs" }) })] })), isOptionsMode ? (_jsxs(_Fragment, { children: [prompt && (_jsxs("div", { className: "muka-chat-composer__prompt", children: [prompt.step != null && prompt.step !== false && (_jsx(BadgeNumber, { variant: "neutral", size: "sm", className: "muka-chat-composer__prompt-step", children: prompt.step })), _jsxs("div", { className: "muka-chat-composer__prompt-text", children: [_jsx("div", { id: headingId, className: "muka-chat-composer__prompt-heading", children: prompt.heading }), prompt.description != null && prompt.description !== false && (_jsx("div", { className: "muka-chat-composer__prompt-description", children: prompt.description }))] })] })), renderChoices(), renderOptionsInputRow(), renderOptionsFooter()] })) : (_jsxs("div", { className: "muka-chat-composer__row", children: [_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": recording ? discardLabel : leadingLabel, onClick: recording ? onRecordDiscard : onLeadingClick, children: _jsx(Icon, { name: recording ? 'delete-bin' : leadingIcon, size: "md" }) }), recording ? (_jsx("div", { className: "muka-chat-composer__recording", children: recordingSlot })) : (renderTextField()), recording && (_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": pauseLabel, onClick: onRecordPause, children: _jsx(Icon, { name: "pause-circle", size: "md" }) })), showMic ? (_jsx(Button, { type: "button", variant: "secondary", size: "lg", iconOnly: true, disabled: disabled, "aria-label": micLabel, onClick: onRecordStart, children: _jsx(Icon, { name: "mic", size: "md" }) })) : (_jsx(Button, { type: "submit", variant: "primary", size: "lg", iconOnly: true, disabled: !canSubmit, "aria-label": sendLabel, children: loading ? (_jsx(Spinner, { size: "sm", variant: "inverse" })) : (_jsx(Icon, { name: "send-plane2", size: "md" })) }))] }))] }));
78
205
  });
79
206
  ChatComposer.displayName = 'ChatComposer';
80
207
  export default 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,3 +1,3 @@
1
- export { ChatComposer } from './ChatComposer';
1
+ export { ChatComposer, } from './ChatComposer';
2
2
  export { default } from './ChatComposer';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/ChatComposer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/ChatComposer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAKb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
@@ -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 ────────────────────────────────────────── */