@reforma/components 0.3.3 → 0.4.1

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 (91) hide show
  1. package/dist/Composer/parts.d.ts +1 -1
  2. package/dist/Composer/parts.d.ts.map +1 -1
  3. package/dist/Composer/parts.js +102 -98
  4. package/dist/Composer/parts.js.map +1 -1
  5. package/dist/Composer/reforma/Composer.module.css +1 -1
  6. package/dist/Composer/reforma/Composer.module.css.js +24 -22
  7. package/dist/Composer/reforma/Composer.module.css.js.map +1 -1
  8. package/dist/Composer/types.d.ts +1 -1
  9. package/dist/Composer/types.d.ts.map +1 -1
  10. package/dist/Modal/Modal.d.ts +2 -2
  11. package/dist/Modal/Modal.d.ts.map +1 -1
  12. package/dist/Modal/Modal.js +6 -3
  13. package/dist/Modal/Modal.js.map +1 -1
  14. package/dist/SettingsLayout/SettingsLayout.d.ts +1 -0
  15. package/dist/SettingsLayout/SettingsLayout.d.ts.map +1 -1
  16. package/dist/SettingsLayout/SettingsLayout.js +332 -292
  17. package/dist/SettingsLayout/SettingsLayout.js.map +1 -1
  18. package/dist/SettingsLayout/SettingsLayout.module.css +1 -1
  19. package/dist/SettingsLayout/SettingsLayout.module.css.js +20 -18
  20. package/dist/SettingsLayout/SettingsLayout.module.css.js.map +1 -1
  21. package/dist/chat/Attachment/Attachment.d.ts.map +1 -1
  22. package/dist/chat/Attachment/Attachment.js +14 -16
  23. package/dist/chat/Attachment/Attachment.js.map +1 -1
  24. package/dist/chat/Attachment/Attachment.module.css +1 -1
  25. package/dist/chat/Tool/Tool.d.ts.map +1 -1
  26. package/dist/chat/Tool/Tool.js +77 -75
  27. package/dist/chat/Tool/Tool.js.map +1 -1
  28. package/dist/chat/Tool/agent/AgentTool.d.ts.map +1 -1
  29. package/dist/chat/Tool/agent/AgentTool.js +18 -17
  30. package/dist/chat/Tool/agent/AgentTool.js.map +1 -1
  31. package/dist/chat/Tool/check-page/CheckPageTool.d.ts +4 -0
  32. package/dist/chat/Tool/check-page/CheckPageTool.d.ts.map +1 -0
  33. package/dist/chat/Tool/check-page/CheckPageTool.js +75 -0
  34. package/dist/chat/Tool/check-page/CheckPageTool.js.map +1 -0
  35. package/dist/chat/Tool/check-page/index.d.ts +2 -0
  36. package/dist/chat/Tool/check-page/index.d.ts.map +1 -0
  37. package/dist/chat/Tool/check-page/index.js +5 -0
  38. package/dist/chat/Tool/check-page/index.js.map +1 -0
  39. package/dist/index.js +156 -155
  40. package/dist/modals/ConfirmModal.d.ts +2 -0
  41. package/dist/modals/ConfirmModal.d.ts.map +1 -1
  42. package/dist/modals/ConfirmModal.js +88 -60
  43. package/dist/modals/ConfirmModal.js.map +1 -1
  44. package/dist/modals/index.d.ts +1 -1
  45. package/dist/modals/index.d.ts.map +1 -1
  46. package/dist/modals/index.js +2 -1
  47. package/dist/openui/functions/index.d.ts +59 -59
  48. package/dist/openui/functions/index.d.ts.map +1 -1
  49. package/package.json +3 -3
  50. package/dist/node_modules/clsx/dist/clsx.js +0 -18
  51. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  52. package/dist/node_modules/react-aria/dist/private/interactions/useFocusable.js +0 -17
  53. package/dist/node_modules/react-aria/dist/private/interactions/useFocusable.js.map +0 -1
  54. package/dist/node_modules/react-aria/dist/private/utils/useObjectRef.js +0 -34
  55. package/dist/node_modules/react-aria/dist/private/utils/useObjectRef.js.map +0 -1
  56. package/dist/node_modules/zod/v4/classic/errors.js +0 -38
  57. package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
  58. package/dist/node_modules/zod/v4/classic/parse.js +0 -21
  59. package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
  60. package/dist/node_modules/zod/v4/classic/schemas.js +0 -822
  61. package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
  62. package/dist/node_modules/zod/v4/core/api.js +0 -561
  63. package/dist/node_modules/zod/v4/core/api.js.map +0 -1
  64. package/dist/node_modules/zod/v4/core/checks.js +0 -262
  65. package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
  66. package/dist/node_modules/zod/v4/core/core.js +0 -97
  67. package/dist/node_modules/zod/v4/core/core.js.map +0 -1
  68. package/dist/node_modules/zod/v4/core/doc.js +0 -35
  69. package/dist/node_modules/zod/v4/core/doc.js.map +0 -1
  70. package/dist/node_modules/zod/v4/core/errors.js +0 -79
  71. package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
  72. package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -308
  73. package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +0 -1
  74. package/dist/node_modules/zod/v4/core/memoizer.js +0 -203
  75. package/dist/node_modules/zod/v4/core/memoizer.js.map +0 -1
  76. package/dist/node_modules/zod/v4/core/parse.js +0 -113
  77. package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
  78. package/dist/node_modules/zod/v4/core/regexes.js +0 -59
  79. package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
  80. package/dist/node_modules/zod/v4/core/registries.js +0 -41
  81. package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
  82. package/dist/node_modules/zod/v4/core/schemas.js +0 -1104
  83. package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
  84. package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -380
  85. package/dist/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  86. package/dist/node_modules/zod/v4/core/util.js +0 -465
  87. package/dist/node_modules/zod/v4/core/util.js.map +0 -1
  88. package/dist/node_modules/zod/v4/core/versions.js +0 -9
  89. package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
  90. package/dist/node_modules/zod/v4/locales/en.js +0 -97
  91. package/dist/node_modules/zod/v4/locales/en.js.map +0 -1
@@ -9,7 +9,7 @@ export declare function ComposerSurface({ className, children, onPointerDown, ..
9
9
  export declare function ComposerTools({ className, ...props }: ContainerProps): import("react").JSX.Element;
10
10
  export declare function ComposerToolbar({ className, children, ...props }: ContainerProps): import("react").JSX.Element;
11
11
  export declare function ComposerAttachments({ className, classNames: slots, ...props }: ContainerProps & {
12
- classNames?: Pick<ComposerClassNames, 'attachment' | 'attachmentPreview' | 'attachmentName' | 'attachmentStatus' | 'attachmentRetry' | 'attachmentRemove'>;
12
+ classNames?: Pick<ComposerClassNames, 'attachment' | 'attachmentPreview' | 'attachmentMeta' | 'attachmentName' | 'attachmentStatus' | 'attachmentRetry' | 'attachmentRemove'>;
13
13
  }): import("react").JSX.Element;
14
14
  export declare function ComposerFileButton({ className, children, ...props }: ActionProps): import("react").JSX.Element;
15
15
  export declare function ComposerPlan({ className, children, classNames: slots, ...props }: ActionProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../src/Composer/parts.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAMpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,KAAK,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACrD,KAAK,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;AAElG,wBAAgB,aAAa,CAAC,EAC1B,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,EACP,GAAG,KAAK,EACX,EAAE,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,aAAa,GAAG,WAAW,CAAC,CAAA;CAAE,+BA4CnG;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAqB/F;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAIpE;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAUhF;AAED,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,GAAG,KAAK,EACX,EAAE,cAAc,GAAG;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAChC,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,CAAC;CAC5H,+BAoDA;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAgBhF;AAED,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,UAAU,EAAE,KAAK,EACjB,GAAG,KAAK,EACX,EAAE,WAAW,GAAG;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;CAAE,+BA2BnF;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,KAAK,EACL,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACX,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG;IAClG,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;CACzD,+BAuCA;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAkB5E"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../src/Composer/parts.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAMpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,KAAK,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACrD,KAAK,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;AAElG,wBAAgB,aAAa,CAAC,EAC1B,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,EACP,GAAG,KAAK,EACX,EAAE,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,aAAa,GAAG,WAAW,CAAC,CAAA;CAAE,+BA4CnG;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAqB/F;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAIpE;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAUhF;AAED,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,GAAG,KAAK,EACX,EAAE,cAAc,GAAG;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAChC,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,CAAC;CAC/I,+BAuDA;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAgBhF;AAED,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,UAAU,EAAE,KAAK,EACjB,GAAG,KAAK,EACX,EAAE,WAAW,GAAG;IAAE,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;CAAE,+BAuBnF;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,SAAS,EACT,UAAU,EAAE,KAAK,EACjB,KAAK,EACL,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACX,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG;IAClG,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;CACzD,+BAuCA;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAkB5E"}
@@ -1,20 +1,20 @@
1
- import { Plus as P, Plan as D } from "@reforma/icons/14";
2
- import { SendBold as x } from "@reforma/icons/16";
3
- import { formatFileSize as S, cn as i } from "@reforma/lib";
1
+ import { Close as D, Plus as P, Plan as x } from "@reforma/icons/14";
2
+ import { SendBold as S } from "@reforma/icons/16";
3
+ import { cn as i } from "@reforma/lib";
4
4
  import "react";
5
5
  import { For as F } from "../For/For.js";
6
6
  import { Show as N } from "../Show/Show.js";
7
7
  import { useComposer as h } from "./context.js";
8
8
  import { jsx as a, jsxs as v, Fragment as k } from "react/jsx-runtime";
9
9
  function j({
10
- className: r,
10
+ className: s,
11
11
  classNames: t,
12
12
  children: o,
13
13
  onDragEnter: n,
14
- onDragLeave: c,
14
+ onDragLeave: d,
15
15
  onDragOver: p,
16
16
  onDrop: u,
17
- onPaste: s,
17
+ onPaste: r,
18
18
  ...e
19
19
  }) {
20
20
  const {
@@ -26,21 +26,21 @@ function j({
26
26
  ...e,
27
27
  "data-slot": "composer-frame",
28
28
  "data-drag-over": b || void 0,
29
- className: i(f.root, r),
30
- onDragEnter: (d) => {
31
- n?.(d), m.onDragEnter(d);
29
+ className: i(f.root, s),
30
+ onDragEnter: (c) => {
31
+ n?.(c), m.onDragEnter(c);
32
32
  },
33
- onDragLeave: (d) => {
34
- c?.(d), m.onDragLeave(d);
33
+ onDragLeave: (c) => {
34
+ d?.(c), m.onDragLeave(c);
35
35
  },
36
- onDragOver: (d) => {
37
- p?.(d), m.onDragOver(d);
36
+ onDragOver: (c) => {
37
+ p?.(c), m.onDragOver(c);
38
38
  },
39
- onDrop: (d) => {
40
- u?.(d), m.onDrop(d);
39
+ onDrop: (c) => {
40
+ u?.(c), m.onDrop(c);
41
41
  },
42
- onPaste: (d) => {
43
- s?.(d), m.onPaste(d);
42
+ onPaste: (c) => {
43
+ r?.(c), m.onPaste(c);
44
44
  },
45
45
  children: [/* @__PURE__ */ a(N, {
46
46
  when: b,
@@ -61,24 +61,24 @@ function j({
61
61
  });
62
62
  }
63
63
  function K({
64
- className: r,
64
+ className: s,
65
65
  children: t,
66
66
  onPointerDown: o,
67
67
  ...n
68
68
  }) {
69
69
  const {
70
- rows: c,
70
+ rows: d,
71
71
  value: p,
72
72
  focus: u,
73
- classNames: s
74
- } = h(), e = c != null || p.prompt.includes(`
73
+ classNames: r
74
+ } = h(), e = d != null || p.prompt.includes(`
75
75
  `) || p.prompt.length > 40;
76
76
  return /* @__PURE__ */ a("div", {
77
77
  ...n,
78
78
  "data-slot": "composer-surface",
79
- className: i(s.main, r),
79
+ className: i(r.main, s),
80
80
  "data-expanded": e || void 0,
81
- "data-min-rows": c != null || void 0,
81
+ "data-min-rows": d != null || void 0,
82
82
  onPointerDown: (m) => {
83
83
  o?.(m), !m.defaultPrevented && m.target === m.currentTarget && u();
84
84
  },
@@ -86,7 +86,7 @@ function K({
86
86
  });
87
87
  }
88
88
  function M({
89
- className: r,
89
+ className: s,
90
90
  ...t
91
91
  }) {
92
92
  const {
@@ -95,11 +95,11 @@ function M({
95
95
  return /* @__PURE__ */ a("div", {
96
96
  ...t,
97
97
  "data-slot": "composer-tools",
98
- className: i(o.addButton, r)
98
+ className: i(o.addButton, s)
99
99
  });
100
100
  }
101
- function z({
102
- className: r,
101
+ function W({
102
+ className: s,
103
103
  children: t,
104
104
  ...o
105
105
  }) {
@@ -111,22 +111,22 @@ function z({
111
111
  children: /* @__PURE__ */ a("div", {
112
112
  ...o,
113
113
  "data-slot": "composer-toolbar",
114
- className: i(n.toolbarEnd, r),
114
+ className: i(n.toolbarEnd, s),
115
115
  children: t
116
116
  })
117
117
  });
118
118
  }
119
- function W({
120
- className: r,
119
+ function U({
120
+ className: s,
121
121
  classNames: t,
122
122
  ...o
123
123
  }) {
124
124
  const {
125
125
  value: n,
126
- removeAttachment: c,
126
+ removeAttachment: d,
127
127
  retryAttachment: p,
128
128
  classNames: u
129
- } = h(), s = {
129
+ } = h(), r = {
130
130
  ...u,
131
131
  ...t
132
132
  };
@@ -135,56 +135,65 @@ function W({
135
135
  children: /* @__PURE__ */ a("div", {
136
136
  ...o,
137
137
  "data-slot": "composer-attachments",
138
- className: i(s.attachments, r),
138
+ className: i(r.attachments, s),
139
139
  children: /* @__PURE__ */ a(F, {
140
140
  each: n.attachments,
141
141
  children: (e) => /* @__PURE__ */ v("div", {
142
142
  "data-slot": "composer-attachment",
143
143
  "data-status": e.uploadStatus,
144
- className: s.attachment,
144
+ className: r.attachment,
145
145
  children: [/* @__PURE__ */ a(N, {
146
146
  when: e.mediaType?.startsWith("image/") && (e.url ?? e.preview),
147
147
  children: /* @__PURE__ */ a("img", {
148
148
  src: e.url ?? e.preview,
149
149
  alt: e.filename,
150
- className: s.attachmentPreview
151
- })
152
- }), /* @__PURE__ */ a("span", {
153
- className: s.attachmentName,
154
- children: e.filename
155
- }), /* @__PURE__ */ v("span", {
156
- className: s.attachmentStatus,
157
- role: "status",
158
- children: [e.uploadStatus === "uploading" && "Uploading…", e.uploadStatus === "error" && (e.uploadError || "Upload failed"), e.uploadStatus === "ready" && e.size != null && S(e.size)]
159
- }), /* @__PURE__ */ a(N, {
160
- when: e.uploadStatus === "error",
161
- children: /* @__PURE__ */ a("button", {
162
- type: "button",
163
- className: s.attachmentRetry,
164
- "aria-label": `Retry ${e.filename}`,
165
- onClick: () => p(e.clientId),
166
- children: "Retry"
150
+ className: r.attachmentPreview
167
151
  })
152
+ }), /* @__PURE__ */ v("div", {
153
+ className: r.attachmentMeta,
154
+ children: [/* @__PURE__ */ a("span", {
155
+ className: r.attachmentName,
156
+ children: e.filename
157
+ }), /* @__PURE__ */ a(N, {
158
+ when: e.uploadStatus !== "ready",
159
+ children: /* @__PURE__ */ a("span", {
160
+ className: r.attachmentStatus,
161
+ role: "status",
162
+ children: e.uploadStatus === "uploading" ? "Uploading…" : e.uploadError || "Upload failed"
163
+ })
164
+ }), /* @__PURE__ */ a(N, {
165
+ when: e.uploadStatus === "error",
166
+ children: /* @__PURE__ */ a("button", {
167
+ type: "button",
168
+ className: r.attachmentRetry,
169
+ "aria-label": `Retry ${e.filename}`,
170
+ onClick: () => p(e.clientId),
171
+ children: "Retry"
172
+ })
173
+ })]
168
174
  }), /* @__PURE__ */ a("button", {
169
175
  type: "button",
170
- className: s.attachmentRemove,
176
+ className: r.attachmentRemove,
171
177
  "aria-label": `Remove ${e.filename}`,
172
- onClick: () => c(e.clientId),
173
- children: "Remove"
178
+ title: "Remove",
179
+ onClick: () => d(e.clientId),
180
+ children: /* @__PURE__ */ a(D, {
181
+ fill: "currentColor"
182
+ })
174
183
  })]
175
184
  }, e.clientId)
176
185
  })
177
186
  })
178
187
  });
179
188
  }
180
- function U({
181
- className: r,
189
+ function $({
190
+ className: s,
182
191
  children: t,
183
192
  ...o
184
193
  }) {
185
194
  const {
186
195
  openFilePicker: n,
187
- classNames: c
196
+ classNames: d
188
197
  } = h();
189
198
  return /* @__PURE__ */ a("button", {
190
199
  "aria-label": "Add files",
@@ -192,109 +201,104 @@ function U({
192
201
  ...o,
193
202
  "data-slot": "composer-file-button",
194
203
  type: "button",
195
- className: i(c.fileButton, r),
204
+ className: i(d.fileButton, s),
196
205
  onClick: () => n(),
197
206
  children: t ?? /* @__PURE__ */ a(P, {
198
207
  fill: "currentColor"
199
208
  })
200
209
  });
201
210
  }
202
- function $({
203
- className: r,
211
+ function q({
212
+ className: s,
204
213
  children: t,
205
214
  classNames: o,
206
215
  ...n
207
216
  }) {
208
217
  const {
209
- value: c,
218
+ value: d,
210
219
  setPlanMode: p,
211
220
  focus: u,
212
- classNames: s
221
+ classNames: r
213
222
  } = h();
214
223
  return /* @__PURE__ */ a("button", {
215
- "aria-label": "Plan mode",
216
- title: "Plan mode",
217
224
  ...n,
218
225
  "data-slot": "composer-plan",
219
226
  type: "button",
220
- "aria-pressed": c.planMode,
221
- className: i(s.planButton, r),
227
+ "aria-pressed": d.planMode,
228
+ className: i(r.planButton, s),
222
229
  onClick: () => {
223
- p(!c.planMode), u();
230
+ p(!d.planMode), u();
224
231
  },
225
232
  children: t ?? /* @__PURE__ */ v(k, {
226
233
  children: [/* @__PURE__ */ a("span", {
227
- className: i(s.planIcon, o?.planIcon),
228
- children: /* @__PURE__ */ a(D, {
234
+ className: i(r.planIcon, o?.planIcon),
235
+ children: /* @__PURE__ */ a(x, {
229
236
  fill: "currentColor"
230
237
  })
231
- }), /* @__PURE__ */ a(N, {
232
- when: c.planMode,
233
- children: /* @__PURE__ */ a("span", {
234
- className: i(s.planLabel, o?.planLabel),
235
- children: "Plan mode"
236
- })
238
+ }), /* @__PURE__ */ a("span", {
239
+ className: i(r.planLabel, o?.planLabel),
240
+ children: "Plan mode"
237
241
  })]
238
242
  })
239
243
  });
240
244
  }
241
- function q({
242
- className: r,
245
+ function z({
246
+ className: s,
243
247
  classNames: t,
244
248
  style: o,
245
249
  onKeyDown: n,
246
- onPaste: c,
250
+ onPaste: d,
247
251
  ...p
248
252
  }) {
249
253
  const {
250
254
  value: u,
251
- setPrompt: s,
255
+ setPrompt: r,
252
256
  submit: e,
253
257
  placeholder: m,
254
258
  autoFocus: b,
255
259
  submitOnEnter: f,
256
- rows: d,
260
+ rows: c,
257
261
  focusRef: y,
258
262
  pasteTextAsFile: w,
259
- classNames: g
263
+ classNames: C
260
264
  } = h();
261
265
  return /* @__PURE__ */ a("div", {
262
266
  "data-slot": "composer-field-wrapper",
263
- className: i(g.textareaWrap, t?.textareaWrap),
267
+ className: i(C.textareaWrap, t?.textareaWrap),
264
268
  children: /* @__PURE__ */ a("textarea", {
265
269
  placeholder: m,
266
270
  "aria-label": m,
267
271
  autoFocus: b,
268
- rows: d || 1,
272
+ rows: c || 1,
269
273
  ...p,
270
274
  "data-slot": "composer-textarea",
271
275
  ref: (l) => {
272
276
  y.current = l;
273
277
  },
274
- className: i(g.textarea, g.plainField, r),
278
+ className: i(C.textarea, C.plainField, s),
275
279
  style: o,
276
280
  value: u.prompt,
277
- onChange: (l) => s(l.target.value),
281
+ onChange: (l) => r(l.target.value),
278
282
  onKeyDown: (l) => {
279
283
  if (n?.(l), l.defaultPrevented || l.nativeEvent.isComposing || l.key !== "Enter")
280
284
  return;
281
- const C = l.metaKey || l.ctrlKey;
282
- (f && !l.shiftKey && !C || C) && (l.preventDefault(), e());
285
+ const g = l.metaKey || l.ctrlKey;
286
+ (f && !l.shiftKey && !g || g) && (l.preventDefault(), e());
283
287
  },
284
288
  onPaste: (l) => {
285
- c?.(l), !l.defaultPrevented && w(l.clipboardData.getData("text/plain")) && l.preventDefault();
289
+ d?.(l), !l.defaultPrevented && w(l.clipboardData.getData("text/plain")) && l.preventDefault();
286
290
  }
287
291
  })
288
292
  });
289
293
  }
290
294
  function G({
291
- className: r,
295
+ className: s,
292
296
  children: t,
293
297
  ...o
294
298
  }) {
295
299
  const {
296
300
  submit: n,
297
- canSubmit: c,
301
+ canSubmit: d,
298
302
  busy: p,
299
303
  classNames: u
300
304
  } = h();
@@ -304,24 +308,24 @@ function G({
304
308
  ...o,
305
309
  "data-slot": "composer-submit",
306
310
  type: "button",
307
- className: i(u.sendButton, r),
308
- disabled: !c,
311
+ className: i(u.sendButton, s),
312
+ disabled: !d,
309
313
  "aria-busy": p,
310
314
  onClick: () => n(),
311
- children: t ?? /* @__PURE__ */ a(x, {
315
+ children: t ?? /* @__PURE__ */ a(S, {
312
316
  fill: "currentColor"
313
317
  })
314
318
  });
315
319
  }
316
320
  export {
317
- W as ComposerAttachments,
318
- U as ComposerFileButton,
321
+ U as ComposerAttachments,
322
+ $ as ComposerFileButton,
319
323
  j as ComposerFrame,
320
- $ as ComposerPlan,
324
+ q as ComposerPlan,
321
325
  G as ComposerSubmit,
322
326
  K as ComposerSurface,
323
- q as ComposerTextarea,
324
- z as ComposerToolbar,
327
+ z as ComposerTextarea,
328
+ W as ComposerToolbar,
325
329
  M as ComposerTools
326
330
  };
327
331
  //# sourceMappingURL=parts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parts.js","sources":["../../src/Composer/parts.tsx"],"sourcesContent":["'use client';\n\nimport { Plan, Plus } from '@reforma/icons/14';\nimport { SendBold } from '@reforma/icons/16';\nimport { cn, formatFileSize } from '@reforma/lib';\nimport { type ButtonHTMLAttributes, type HTMLAttributes, type TextareaHTMLAttributes } from 'react';\n\nimport { For } from '../For';\nimport { Show } from '../Show';\nimport { useComposer } from './context';\n\nimport type { ComposerClassNames } from './types';\n\ntype ContainerProps = HTMLAttributes<HTMLDivElement>;\ntype ActionProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'disabled' | 'type'>;\n\nexport function ComposerFrame({\n className,\n classNames: slots,\n children,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop,\n onPaste,\n ...props\n}: ContainerProps & { classNames?: Pick<ComposerClassNames, 'shell' | 'dropOverlay' | 'dropLabel'> }) {\n const { drag, fileDragOver, classNames } = useComposer();\n\n return (\n <div\n { ...props }\n data-slot=\"composer-frame\"\n data-drag-over={ fileDragOver || undefined }\n className={ cn(classNames.root, className) }\n onDragEnter={ (event) => {\n onDragEnter?.(event);\n drag.onDragEnter(event);\n } }\n onDragLeave={ (event) => {\n onDragLeave?.(event);\n drag.onDragLeave(event);\n } }\n onDragOver={ (event) => {\n onDragOver?.(event);\n drag.onDragOver(event);\n } }\n onDrop={ (event) => {\n onDrop?.(event);\n drag.onDrop(event);\n } }\n onPaste={ (event) => {\n onPaste?.(event);\n drag.onPaste(event);\n } }\n >\n <Show when={ fileDragOver }>\n <div\n data-slot=\"composer-drop-overlay\"\n className={ cn(classNames.dropOverlay, slots?.dropOverlay) }\n role=\"status\"\n >\n <span className={ cn(classNames.dropLabel, slots?.dropLabel) }>Drop files to attach</span>\n </div>\n </Show>\n <div data-slot=\"composer-shell\" className={ cn(classNames.shell, slots?.shell) }>\n { children }\n </div>\n </div>\n );\n}\n\nexport function ComposerSurface({ className, children, onPointerDown, ...props }: ContainerProps) {\n const { rows, value, focus, classNames } = useComposer();\n const expanded = rows != null || value.prompt.includes('\\n') || value.prompt.length > 40;\n\n return (\n <div\n { ...props }\n data-slot=\"composer-surface\"\n className={ cn(classNames.main, className) }\n data-expanded={ expanded || undefined }\n data-min-rows={ rows != null || undefined }\n onPointerDown={ (event) => {\n onPointerDown?.(event);\n if (!event.defaultPrevented && event.target === event.currentTarget) {\n focus();\n }\n } }\n >\n { children }\n </div>\n );\n}\n\nexport function ComposerTools({ className, ...props }: ContainerProps) {\n const { classNames } = useComposer();\n\n return <div { ...props } data-slot=\"composer-tools\" className={ cn(classNames.addButton, className) } />;\n}\n\nexport function ComposerToolbar({ className, children, ...props }: ContainerProps) {\n const { classNames } = useComposer();\n\n return (\n <Show when={ children }>\n <div { ...props } data-slot=\"composer-toolbar\" className={ cn(classNames.toolbarEnd, className) }>\n { children }\n </div>\n </Show>\n );\n}\n\nexport function ComposerAttachments({\n className,\n classNames: slots,\n ...props\n}: ContainerProps & {\n classNames?: Pick<ComposerClassNames,\n 'attachment' | 'attachmentPreview' | 'attachmentName' | 'attachmentStatus' | 'attachmentRetry' | 'attachmentRemove'>;\n}) {\n const { value, removeAttachment, retryAttachment, classNames: defaults } = useComposer();\n const classNames = { ...defaults, ...slots };\n\n return (\n <Show when={ value.attachments.length > 0 }>\n <div { ...props } data-slot=\"composer-attachments\" className={ cn(classNames.attachments, className) }>\n <For each={ value.attachments }>\n { item => (\n <div\n key={ item.clientId }\n data-slot=\"composer-attachment\"\n data-status={ item.uploadStatus }\n className={ classNames.attachment }\n >\n <Show when={ item.mediaType?.startsWith('image/') && (item.url ?? item.preview) }>\n <img\n src={ item.url ?? item.preview }\n alt={ item.filename }\n className={ classNames.attachmentPreview }\n />\n </Show>\n <span className={ classNames.attachmentName }>{ item.filename }</span>\n <span className={ classNames.attachmentStatus } role=\"status\">\n { item.uploadStatus === 'uploading' && 'Uploading…' }\n { item.uploadStatus === 'error' && (item.uploadError || 'Upload failed') }\n { item.uploadStatus === 'ready' && item.size != null && formatFileSize(item.size) }\n </span>\n <Show when={ item.uploadStatus === 'error' }>\n <button\n type=\"button\"\n className={ classNames.attachmentRetry }\n aria-label={ `Retry ${ item.filename }` }\n onClick={ () => retryAttachment(item.clientId) }\n >\n Retry\n </button>\n </Show>\n <button\n type=\"button\"\n className={ classNames.attachmentRemove }\n aria-label={ `Remove ${ item.filename }` }\n onClick={ () => removeAttachment(item.clientId) }\n >\n Remove\n </button>\n </div>\n ) }\n </For>\n </div>\n </Show>\n );\n}\n\nexport function ComposerFileButton({ className, children, ...props }: ActionProps) {\n const { openFilePicker, classNames } = useComposer();\n\n return (\n <button\n aria-label=\"Add files\"\n title=\"Add files\"\n { ...props }\n data-slot=\"composer-file-button\"\n type=\"button\"\n className={ cn(classNames.fileButton, className) }\n onClick={ () => openFilePicker() }\n >\n { children ?? <Plus fill=\"currentColor\" /> }\n </button>\n );\n}\n\nexport function ComposerPlan({\n className,\n children,\n classNames: slots,\n ...props\n}: ActionProps & { classNames?: Pick<ComposerClassNames, 'planIcon' | 'planLabel'> }) {\n const { value, setPlanMode, focus, classNames } = useComposer();\n\n return (\n <button\n aria-label=\"Plan mode\"\n title=\"Plan mode\"\n { ...props }\n data-slot=\"composer-plan\"\n type=\"button\"\n aria-pressed={ value.planMode }\n className={ cn(classNames.planButton, className) }\n onClick={ () => {\n setPlanMode(!value.planMode);\n focus();\n } }\n >\n { children ?? (\n <>\n <span className={ cn(classNames.planIcon, slots?.planIcon) }><Plan fill=\"currentColor\" /></span>\n <Show when={ value.planMode }>\n <span className={ cn(classNames.planLabel, slots?.planLabel) }>Plan mode</span>\n </Show>\n </>\n ) }\n </button>\n );\n}\n\nexport function ComposerTextarea({\n className,\n classNames: slots,\n style,\n onKeyDown,\n onPaste,\n ...props\n}: Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'defaultValue' | 'onChange' | 'ref'> & {\n classNames?: Pick<ComposerClassNames, 'textareaWrap'>;\n}) {\n const { value, setPrompt, submit, placeholder, autoFocus, submitOnEnter, rows, focusRef, pasteTextAsFile, classNames } = useComposer();\n\n return (\n <div data-slot=\"composer-field-wrapper\" className={ cn(classNames.textareaWrap, slots?.textareaWrap) }>\n <textarea\n placeholder={ placeholder }\n aria-label={ placeholder }\n autoFocus={ autoFocus }\n rows={ rows || 1 }\n { ...props }\n data-slot=\"composer-textarea\"\n ref={ (node) => {\n focusRef.current = node;\n } }\n className={ cn(classNames.textarea, classNames.plainField, className) }\n style={ style }\n value={ value.prompt }\n onChange={ event => setPrompt(event.target.value) }\n onKeyDown={ (event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || event.key !== 'Enter') {\n return;\n }\n const command = event.metaKey || event.ctrlKey;\n if ((submitOnEnter && !event.shiftKey && !command) || command) {\n event.preventDefault();\n submit();\n }\n } }\n onPaste={ (event) => {\n onPaste?.(event);\n if (!event.defaultPrevented && pasteTextAsFile(event.clipboardData.getData('text/plain'))) {\n event.preventDefault();\n }\n } }\n />\n </div>\n );\n}\n\nexport function ComposerSubmit({ className, children, ...props }: ActionProps) {\n const { submit, canSubmit, busy, classNames } = useComposer();\n\n return (\n <button\n aria-label=\"Create project\"\n title=\"Create project\"\n { ...props }\n data-slot=\"composer-submit\"\n type=\"button\"\n className={ cn(classNames.sendButton, className) }\n disabled={ !canSubmit }\n aria-busy={ busy }\n onClick={ () => submit() }\n >\n { children ?? <SendBold fill=\"currentColor\" /> }\n </button>\n );\n}\n"],"names":["ComposerFrame","className","slots","children","onDragEnter","onDragLeave","onDragOver","onDrop","onPaste","props","drag","fileDragOver","classNames","useComposer","cn","event","_jsx","Show","ComposerSurface","onPointerDown","rows","value","focus","expanded","ComposerTools","ComposerToolbar","ComposerAttachments","removeAttachment","retryAttachment","defaults","For","item","_jsxs","formatFileSize","ComposerFileButton","openFilePicker","Plus","ComposerPlan","setPlanMode","_Fragment","Plan","ComposerTextarea","style","onKeyDown","setPrompt","submit","placeholder","autoFocus","submitOnEnter","focusRef","pasteTextAsFile","node","command","ComposerSubmit","canSubmit","busy","SendBold"],"mappings":"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"}
1
+ {"version":3,"file":"parts.js","sources":["../../src/Composer/parts.tsx"],"sourcesContent":["'use client';\n\nimport { Close, Plan, Plus } from '@reforma/icons/14';\nimport { SendBold } from '@reforma/icons/16';\nimport { cn } from '@reforma/lib';\nimport { type ButtonHTMLAttributes, type HTMLAttributes, type TextareaHTMLAttributes } from 'react';\n\nimport { For } from '../For';\nimport { Show } from '../Show';\nimport { useComposer } from './context';\n\nimport type { ComposerClassNames } from './types';\n\ntype ContainerProps = HTMLAttributes<HTMLDivElement>;\ntype ActionProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'disabled' | 'type'>;\n\nexport function ComposerFrame({\n className,\n classNames: slots,\n children,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop,\n onPaste,\n ...props\n}: ContainerProps & { classNames?: Pick<ComposerClassNames, 'shell' | 'dropOverlay' | 'dropLabel'> }) {\n const { drag, fileDragOver, classNames } = useComposer();\n\n return (\n <div\n { ...props }\n data-slot=\"composer-frame\"\n data-drag-over={ fileDragOver || undefined }\n className={ cn(classNames.root, className) }\n onDragEnter={ (event) => {\n onDragEnter?.(event);\n drag.onDragEnter(event);\n } }\n onDragLeave={ (event) => {\n onDragLeave?.(event);\n drag.onDragLeave(event);\n } }\n onDragOver={ (event) => {\n onDragOver?.(event);\n drag.onDragOver(event);\n } }\n onDrop={ (event) => {\n onDrop?.(event);\n drag.onDrop(event);\n } }\n onPaste={ (event) => {\n onPaste?.(event);\n drag.onPaste(event);\n } }\n >\n <Show when={ fileDragOver }>\n <div\n data-slot=\"composer-drop-overlay\"\n className={ cn(classNames.dropOverlay, slots?.dropOverlay) }\n role=\"status\"\n >\n <span className={ cn(classNames.dropLabel, slots?.dropLabel) }>Drop files to attach</span>\n </div>\n </Show>\n <div data-slot=\"composer-shell\" className={ cn(classNames.shell, slots?.shell) }>\n { children }\n </div>\n </div>\n );\n}\n\nexport function ComposerSurface({ className, children, onPointerDown, ...props }: ContainerProps) {\n const { rows, value, focus, classNames } = useComposer();\n const expanded = rows != null || value.prompt.includes('\\n') || value.prompt.length > 40;\n\n return (\n <div\n { ...props }\n data-slot=\"composer-surface\"\n className={ cn(classNames.main, className) }\n data-expanded={ expanded || undefined }\n data-min-rows={ rows != null || undefined }\n onPointerDown={ (event) => {\n onPointerDown?.(event);\n if (!event.defaultPrevented && event.target === event.currentTarget) {\n focus();\n }\n } }\n >\n { children }\n </div>\n );\n}\n\nexport function ComposerTools({ className, ...props }: ContainerProps) {\n const { classNames } = useComposer();\n\n return <div { ...props } data-slot=\"composer-tools\" className={ cn(classNames.addButton, className) } />;\n}\n\nexport function ComposerToolbar({ className, children, ...props }: ContainerProps) {\n const { classNames } = useComposer();\n\n return (\n <Show when={ children }>\n <div { ...props } data-slot=\"composer-toolbar\" className={ cn(classNames.toolbarEnd, className) }>\n { children }\n </div>\n </Show>\n );\n}\n\nexport function ComposerAttachments({\n className,\n classNames: slots,\n ...props\n}: ContainerProps & {\n classNames?: Pick<ComposerClassNames,\n 'attachment' | 'attachmentPreview' | 'attachmentMeta' | 'attachmentName' | 'attachmentStatus' | 'attachmentRetry' | 'attachmentRemove'>;\n}) {\n const { value, removeAttachment, retryAttachment, classNames: defaults } = useComposer();\n const classNames = { ...defaults, ...slots };\n\n return (\n <Show when={ value.attachments.length > 0 }>\n <div { ...props } data-slot=\"composer-attachments\" className={ cn(classNames.attachments, className) }>\n <For each={ value.attachments }>\n { item => (\n <div\n key={ item.clientId }\n data-slot=\"composer-attachment\"\n data-status={ item.uploadStatus }\n className={ classNames.attachment }\n >\n <Show when={ item.mediaType?.startsWith('image/') && (item.url ?? item.preview) }>\n <img\n src={ item.url ?? item.preview }\n alt={ item.filename }\n className={ classNames.attachmentPreview }\n />\n </Show>\n <div className={ classNames.attachmentMeta }>\n <span className={ classNames.attachmentName }>{ item.filename }</span>\n <Show when={ item.uploadStatus !== 'ready' }>\n <span className={ classNames.attachmentStatus } role=\"status\">\n { item.uploadStatus === 'uploading' ? 'Uploading…' : item.uploadError || 'Upload failed' }\n </span>\n </Show>\n <Show when={ item.uploadStatus === 'error' }>\n <button\n type=\"button\"\n className={ classNames.attachmentRetry }\n aria-label={ `Retry ${ item.filename }` }\n onClick={ () => retryAttachment(item.clientId) }\n >\n Retry\n </button>\n </Show>\n </div>\n <button\n type=\"button\"\n className={ classNames.attachmentRemove }\n aria-label={ `Remove ${ item.filename }` }\n title=\"Remove\"\n onClick={ () => removeAttachment(item.clientId) }\n >\n <Close fill=\"currentColor\" />\n </button>\n </div>\n ) }\n </For>\n </div>\n </Show>\n );\n}\n\nexport function ComposerFileButton({ className, children, ...props }: ActionProps) {\n const { openFilePicker, classNames } = useComposer();\n\n return (\n <button\n aria-label=\"Add files\"\n title=\"Add files\"\n { ...props }\n data-slot=\"composer-file-button\"\n type=\"button\"\n className={ cn(classNames.fileButton, className) }\n onClick={ () => openFilePicker() }\n >\n { children ?? <Plus fill=\"currentColor\" /> }\n </button>\n );\n}\n\nexport function ComposerPlan({\n className,\n children,\n classNames: slots,\n ...props\n}: ActionProps & { classNames?: Pick<ComposerClassNames, 'planIcon' | 'planLabel'> }) {\n const { value, setPlanMode, focus, classNames } = useComposer();\n\n return (\n <button\n { ...props }\n data-slot=\"composer-plan\"\n type=\"button\"\n aria-pressed={ value.planMode }\n className={ cn(classNames.planButton, className) }\n onClick={ () => {\n setPlanMode(!value.planMode);\n focus();\n } }\n >\n { children ?? (\n <>\n <span className={ cn(classNames.planIcon, slots?.planIcon) }><Plan fill=\"currentColor\" /></span>\n <span className={ cn(classNames.planLabel, slots?.planLabel) }>Plan mode</span>\n </>\n ) }\n </button>\n );\n}\n\nexport function ComposerTextarea({\n className,\n classNames: slots,\n style,\n onKeyDown,\n onPaste,\n ...props\n}: Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'defaultValue' | 'onChange' | 'ref'> & {\n classNames?: Pick<ComposerClassNames, 'textareaWrap'>;\n}) {\n const { value, setPrompt, submit, placeholder, autoFocus, submitOnEnter, rows, focusRef, pasteTextAsFile, classNames } = useComposer();\n\n return (\n <div data-slot=\"composer-field-wrapper\" className={ cn(classNames.textareaWrap, slots?.textareaWrap) }>\n <textarea\n placeholder={ placeholder }\n aria-label={ placeholder }\n autoFocus={ autoFocus }\n rows={ rows || 1 }\n { ...props }\n data-slot=\"composer-textarea\"\n ref={ (node) => {\n focusRef.current = node;\n } }\n className={ cn(classNames.textarea, classNames.plainField, className) }\n style={ style }\n value={ value.prompt }\n onChange={ event => setPrompt(event.target.value) }\n onKeyDown={ (event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || event.nativeEvent.isComposing || event.key !== 'Enter') {\n return;\n }\n const command = event.metaKey || event.ctrlKey;\n if ((submitOnEnter && !event.shiftKey && !command) || command) {\n event.preventDefault();\n submit();\n }\n } }\n onPaste={ (event) => {\n onPaste?.(event);\n if (!event.defaultPrevented && pasteTextAsFile(event.clipboardData.getData('text/plain'))) {\n event.preventDefault();\n }\n } }\n />\n </div>\n );\n}\n\nexport function ComposerSubmit({ className, children, ...props }: ActionProps) {\n const { submit, canSubmit, busy, classNames } = useComposer();\n\n return (\n <button\n aria-label=\"Create project\"\n title=\"Create project\"\n { ...props }\n data-slot=\"composer-submit\"\n type=\"button\"\n className={ cn(classNames.sendButton, className) }\n disabled={ !canSubmit }\n aria-busy={ busy }\n onClick={ () => submit() }\n >\n { children ?? <SendBold fill=\"currentColor\" /> }\n </button>\n );\n}\n"],"names":["ComposerFrame","className","slots","children","onDragEnter","onDragLeave","onDragOver","onDrop","onPaste","props","drag","fileDragOver","classNames","useComposer","cn","event","_jsx","Show","ComposerSurface","onPointerDown","rows","value","focus","expanded","ComposerTools","ComposerToolbar","ComposerAttachments","removeAttachment","retryAttachment","defaults","For","item","_jsxs","Close","ComposerFileButton","openFilePicker","Plus","ComposerPlan","setPlanMode","_Fragment","Plan","ComposerTextarea","style","onKeyDown","setPrompt","submit","placeholder","autoFocus","submitOnEnter","focusRef","pasteTextAsFile","node","command","ComposerSubmit","canSubmit","busy","SendBold"],"mappings":"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"}
@@ -1 +1 @@
1
- @layer components{@property --border-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes Composer_create-composer-border-spin_Ik8TZ9{to{--border-angle: 360deg}}.Composer_root_oK5RXF{display:flex;flex-direction:column;gap:var(--spacing-xl);width:100%}.Composer_shell_z36OYt{display:flex;position:relative;flex-direction:column;z-index:1;border-radius:calc(var(--radius-xl) * var(--squircle-radius-factor));padding:var(--spacing-6);width:100%;font-weight:400;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0;corner-shape:superellipse(var(--squircle-value));--composer-border-coral: rgba(250, 136, 84, .16);--composer-border-blue: rgba(91, 141, 239, .28);--composer-border-pink: rgba(255, 161, 231, .26);transition:box-shadow var(--transition-duration) var(--ease-in-out);container-type:inline-size;background-color:var(--color-chat-composer);overflow:hidden;line-height:var(--spacing-20)}.dark .Composer_shell_z36OYt{--composer-border-coral: rgba(250, 136, 84, .15);--composer-border-blue: rgba(91, 141, 239, .2);--composer-border-pink: rgba(255, 161, 231, .18)}.Composer_shell_z36OYt:focus-within{box-shadow:0 0 var(--spacing-20) var(--spacing-1) var(--color-chat-shadow)}.Composer_shell_z36OYt:before{position:absolute;inset:0;border-radius:inherit;content:"";corner-shape:inherit;animation:Composer_create-composer-border-spin_Ik8TZ9 6s linear infinite;background-image:conic-gradient(from var(--border-angle),var(--composer-border-coral),var(--composer-border-blue) 50%,var(--composer-border-pink),var(--composer-border-coral));padding:2px;pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.Composer_attachments_YHiboy{display:flex;flex-wrap:wrap;gap:var(--spacing-4);padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xxs)}.Composer_main_Y2cZOO{display:flex;position:relative;flex:1;flex-direction:column;z-index:0;cursor:text;padding:var(--spacing-sm);min-width:0;min-height:0}.Composer_main_Y2cZOO[data-expanded] .Composer_textarea_ED0vo8{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-30);padding-inline:0}.Composer_main_Y2cZOO:not([data-expanded]){display:flex;align-items:center;min-height:var(--spacing-30)}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textareaWrap_20eG8b{display:flex;align-items:center;min-height:var(--spacing-30)}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textarea_ED0vo8{display:flex;flex:1;align-items:center;padding-right:var(--spacing-40);padding-left:var(--spacing-36);min-width:0;min-height:var(--spacing-30)!important}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textarea_ED0vo8 [contenteditable=true]{width:100%;min-height:0!important;overflow:hidden!important}.Composer_main_Y2cZOO[data-min-rows] .Composer_textarea_ED0vo8 [contenteditable=true]{width:100%}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_addButton_Gr6lpT,.Composer_main_Y2cZOO:not([data-expanded]) .Composer_sendButton_261s9p,.Composer_main_Y2cZOO:not([data-expanded]) .Composer_toolbarEnd_zlFlGo{top:0;bottom:0;margin-block:auto}.Composer_textareaWrap_20eG8b{position:relative;flex:1;z-index:1;min-width:0}.Composer_textarea_ED0vo8{position:relative;border:0;width:100%;min-height:var(--spacing-30)!important}.Composer_plainField_BSucqo{display:block;outline:none;background:transparent;padding:0;max-height:280px;overflow:auto;resize:none;color:inherit;font:inherit;line-height:inherit}.Composer_addButton_Gr6lpT,.Composer_toolbarEnd_zlFlGo,.Composer_sendButton_261s9p{position:absolute;bottom:var(--spacing-xs);z-index:2}.Composer_addButton_Gr6lpT{display:flex;left:var(--spacing-xs);align-items:center;gap:var(--spacing-xs)}.Composer_toolbarEnd_zlFlGo{display:flex;right:calc(var(--spacing-xs) + var(--spacing-30) + var(--spacing-xs));align-items:center;gap:0;max-width:calc(100% - var(--spacing-80))}.Composer_sendButton_261s9p{right:var(--spacing-xs)}}@layer components{.Composer_root_oK5RXF{position:relative}.Composer_fileButton_7fa3cD,.Composer_planButton_FfQMTx,.Composer_sendButton_261s9p,.Composer_attachmentRetry_dE4e9U,.Composer_attachmentRemove_UJ8Ypt{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;gap:var(--spacing-xs);cursor:pointer;border:0;background:transparent;color:inherit;font:inherit}.Composer_fileButton_7fa3cD,.Composer_planButton_FfQMTx,.Composer_sendButton_261s9p{border-radius:var(--radius-full);padding:var(--spacing-sm);min-width:var(--spacing-30);height:var(--spacing-30)}.Composer_fileButton_7fa3cD:hover,.Composer_planButton_FfQMTx:hover{background:var(--color-secondary-muted-light)}.Composer_planButton_FfQMTx[aria-pressed=true]{background:var(--color-success-muted-light);padding-inline:var(--spacing-md);height:var(--spacing-24);color:var(--color-success)}.Composer_planIcon_speGCQ{display:inline-flex}.Composer_planLabel_QqsYmJ{font-size:var(--text-sm)}.Composer_sendButton_261s9p{background:var(--color-primary);color:var(--color-primary-content)}.Composer_sendButton_261s9p:hover:enabled{background:var(--color-primary-light)}.Composer_sendButton_261s9p:disabled{opacity:var(--opacity-disabled);cursor:default}.Composer_sendButton_261s9p[aria-busy=true] svg{animation:Composer_create-composer-pending_hGy5Ys 1s ease-in-out infinite alternate}.Composer_attachment_ze2E44{display:flex;align-items:center;gap:var(--spacing-sm);border-radius:calc(var(--radius-sm) * var(--squircle-radius-factor));padding:var(--spacing-sm);corner-shape:superellipse(var(--squircle-value));background:var(--color-secondary-muted-light);min-width:0;max-width:100%;font-size:var(--text-sm)}.Composer_attachmentPreview_st6nef{width:var(--spacing-30);height:var(--spacing-30);-o-object-fit:cover;border-radius:var(--radius-sm);object-fit:cover}.Composer_attachmentName_zdUej2{overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.Composer_attachmentStatus_duB1GB{color:var(--color-secondary-muted-text)}.Composer_attachment_ze2E44[data-status=error] .Composer_attachmentStatus_duB1GB,.Composer_notice_4Qehyf{color:var(--color-danger)}.Composer_editor_L4tPFX{outline:none;min-height:var(--composer-min-height, 66px);max-height:280px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:break-word}.Composer_editor_L4tPFX p{margin:0}.Composer_editor_L4tPFX ul,.Composer_editor_L4tPFX ol{margin:0;padding-inline-start:1.5em}.Composer_editor_L4tPFX ul{list-style-type:disc}.Composer_editor_L4tPFX ol{list-style-type:decimal}.Composer_editor_L4tPFX .is-editor-empty:first-child:before{float:left;height:0;pointer-events:none;content:attr(data-placeholder);color:var(--color-secondary-muted-text)}.Composer_dropOverlay_GuFoRm{display:grid;position:absolute;place-items:center;z-index:3;inset:0;border:1px dashed var(--color-primary);border-radius:var(--radius-xl);background:var(--color-surface);pointer-events:none}.Composer_dropLabel_BgNwlz{color:var(--color-primary)}@keyframes Composer_create-composer-pending_hGy5Ys{to{opacity:.4}}}.Composer_editor_L4tPFX:focus,.Composer_editor_L4tPFX:focus-visible{outline:none;box-shadow:none;border:none}
1
+ @layer components{@property --border-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes Composer_create-composer-border-spin_Ik8TZ9{to{--border-angle: 360deg}}.Composer_root_oK5RXF{display:flex;flex-direction:column;gap:var(--spacing-xl);width:100%}.Composer_shell_z36OYt{display:flex;position:relative;flex-direction:column;z-index:1;border-radius:calc(var(--radius-xl) * var(--squircle-radius-factor));padding:var(--spacing-6);width:100%;font-weight:400;font-size:var(--text-md);line-height:var(--leading-md);font-family:Onest,sans-serif;letter-spacing:0;corner-shape:superellipse(var(--squircle-value));--composer-border-coral: rgba(250, 136, 84, .16);--composer-border-blue: rgba(91, 141, 239, .28);--composer-border-pink: rgba(255, 161, 231, .26);transition:box-shadow var(--transition-duration) var(--ease-in-out);container-type:inline-size;background-color:var(--color-chat-composer);overflow:hidden;line-height:var(--spacing-20)}.dark .Composer_shell_z36OYt{--composer-border-coral: rgba(250, 136, 84, .15);--composer-border-blue: rgba(91, 141, 239, .2);--composer-border-pink: rgba(255, 161, 231, .18)}.Composer_shell_z36OYt:focus-within{box-shadow:0 0 var(--spacing-20) var(--spacing-1) var(--color-chat-shadow)}.Composer_shell_z36OYt:before{position:absolute;inset:0;border-radius:inherit;content:"";corner-shape:inherit;animation:Composer_create-composer-border-spin_Ik8TZ9 6s linear infinite;background-image:conic-gradient(from var(--border-angle),var(--composer-border-coral),var(--composer-border-blue) 50%,var(--composer-border-pink),var(--composer-border-coral));padding:2px;pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.Composer_attachments_YHiboy{display:flex;flex-wrap:wrap;gap:var(--spacing-4);padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xxs)}.Composer_main_Y2cZOO{display:flex;position:relative;flex:1;flex-direction:column;z-index:0;cursor:text;padding:var(--spacing-sm);min-width:0;min-height:0}.Composer_main_Y2cZOO[data-expanded] .Composer_textarea_ED0vo8{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-30);padding-inline:0}.Composer_main_Y2cZOO:not([data-expanded]){display:flex;align-items:center;min-height:var(--spacing-30)}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textareaWrap_20eG8b{display:flex;align-items:center;min-height:var(--spacing-30)}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textarea_ED0vo8{display:flex;flex:1;align-items:center;padding-right:var(--spacing-40);padding-left:var(--spacing-36);min-width:0;min-height:var(--spacing-30)!important}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_textarea_ED0vo8 [contenteditable=true]{width:100%;min-height:0!important;overflow:hidden!important}.Composer_main_Y2cZOO[data-min-rows] .Composer_textarea_ED0vo8 [contenteditable=true]{width:100%}.Composer_main_Y2cZOO:not([data-expanded]) .Composer_addButton_Gr6lpT,.Composer_main_Y2cZOO:not([data-expanded]) .Composer_sendButton_261s9p,.Composer_main_Y2cZOO:not([data-expanded]) .Composer_toolbarEnd_zlFlGo{top:0;bottom:0;margin-block:auto}.Composer_textareaWrap_20eG8b{position:relative;flex:1;z-index:1;min-width:0}.Composer_textarea_ED0vo8{position:relative;border:0;width:100%;min-height:var(--spacing-30)!important}.Composer_plainField_BSucqo{display:block;outline:none;background:transparent;padding:0;max-height:280px;overflow:auto;resize:none;color:inherit;font:inherit;line-height:inherit}.Composer_addButton_Gr6lpT,.Composer_toolbarEnd_zlFlGo,.Composer_sendButton_261s9p{position:absolute;bottom:var(--spacing-xs);z-index:2}.Composer_addButton_Gr6lpT{display:flex;left:var(--spacing-xs);align-items:center;gap:var(--spacing-xs)}.Composer_toolbarEnd_zlFlGo{display:flex;right:calc(var(--spacing-xs) + var(--spacing-30) + var(--spacing-xs));align-items:center;gap:0;max-width:calc(100% - var(--spacing-80))}.Composer_sendButton_261s9p{right:var(--spacing-xs)}}@layer components{.Composer_root_oK5RXF{position:relative}.Composer_fileButton_7fa3cD,.Composer_planButton_FfQMTx,.Composer_sendButton_261s9p,.Composer_attachmentRetry_dE4e9U,.Composer_attachmentRemove_UJ8Ypt{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;gap:var(--spacing-xs);cursor:pointer;border:0;background:transparent;color:inherit;font:inherit}.Composer_fileButton_7fa3cD,.Composer_planButton_FfQMTx,.Composer_sendButton_261s9p{border-radius:var(--radius-full);padding:var(--spacing-sm);min-width:var(--spacing-30);height:var(--spacing-30)}.Composer_fileButton_7fa3cD:hover,.Composer_planButton_FfQMTx:hover{background:var(--color-secondary-muted-light)}.Composer_planButton_FfQMTx{padding-inline:var(--spacing-md)}.Composer_planButton_FfQMTx[aria-pressed=true]{background:var(--color-success-muted-light);color:var(--color-success)}.Composer_planIcon_speGCQ{display:inline-flex}.Composer_planLabel_QqsYmJ{font-size:var(--text-sm)}.Composer_sendButton_261s9p{background:var(--color-primary);color:var(--color-primary-content)}.Composer_sendButton_261s9p:hover:enabled{background:var(--color-primary-light)}.Composer_sendButton_261s9p:disabled{opacity:var(--opacity-disabled);cursor:default}.Composer_sendButton_261s9p[aria-busy=true] svg{animation:Composer_create-composer-pending_hGy5Ys 1s ease-in-out infinite alternate}.Composer_attachment_ze2E44{display:flex;align-items:center;gap:var(--spacing-sm);border:1px solid var(--color-secondary-muted-border);border-radius:calc(var(--radius-md) * var(--squircle-radius-factor));padding:var(--spacing-sm);corner-shape:superellipse(var(--squircle-value));min-width:0;max-width:100%;font-size:var(--text-sm)}.Composer_attachmentPreview_st6nef{flex-shrink:0;width:var(--spacing-40);height:var(--spacing-40);-o-object-fit:cover;border-radius:var(--radius-sm);object-fit:cover}.Composer_attachmentMeta_q8mSQz{display:flex;flex-wrap:wrap;align-items:baseline;-moz-column-gap:var(--spacing-sm);column-gap:var(--spacing-sm);min-width:0}.Composer_attachmentName_zdUej2{flex-basis:100%;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.Composer_attachmentStatus_duB1GB{color:var(--color-secondary-muted-text);font-size:var(--text-xs)}.Composer_attachmentRetry_dE4e9U{padding:0;color:var(--color-accent-text);font-size:var(--text-xs);text-decoration:underline}.Composer_attachmentRemove_UJ8Ypt{border-radius:var(--radius-sm);width:var(--spacing-30);height:var(--spacing-30);color:var(--color-text)}.Composer_attachmentRemove_UJ8Ypt:hover{background:var(--color-secondary-muted-light)}.Composer_notice_4Qehyf{color:var(--color-danger)}.Composer_editor_L4tPFX{outline:none;min-height:var(--composer-min-height, 66px);max-height:280px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:break-word}.Composer_editor_L4tPFX p{margin:0}.Composer_editor_L4tPFX ul,.Composer_editor_L4tPFX ol{margin:0;padding-inline-start:1.5em}.Composer_editor_L4tPFX ul{list-style-type:disc}.Composer_editor_L4tPFX ol{list-style-type:decimal}.Composer_editor_L4tPFX .is-editor-empty:first-child:before{float:left;height:0;pointer-events:none;content:attr(data-placeholder);color:var(--color-secondary-muted-text)}.Composer_dropOverlay_GuFoRm{display:grid;position:absolute;place-items:center;z-index:3;inset:0;border:1px dashed var(--color-primary);border-radius:var(--radius-xl);background:var(--color-surface);pointer-events:none}.Composer_dropLabel_BgNwlz{color:var(--color-primary)}@keyframes Composer_create-composer-pending_hGy5Ys{to{opacity:.4}}}.Composer_editor_L4tPFX:focus,.Composer_editor_L4tPFX:focus-visible{outline:none;box-shadow:none;border:none}
@@ -1,15 +1,15 @@
1
- const t = "Composer_root_oK5RXF", o = "Composer_shell_z36OYt", e = "Composer_create-composer-border-spin_Ik8TZ9", a = "Composer_attachments_YHiboy", n = "Composer_main_Y2cZOO", r = "Composer_textarea_ED0vo8", s = "Composer_textareaWrap_20eG8b", c = "Composer_addButton_Gr6lpT", p = "Composer_sendButton_261s9p", m = "Composer_toolbarEnd_zlFlGo", _ = "Composer_plainField_BSucqo", l = "Composer_fileButton_7fa3cD", d = "Composer_planButton_FfQMTx", C = "Composer_attachmentRetry_dE4e9U", i = "Composer_attachmentRemove_UJ8Ypt", h = "Composer_planIcon_speGCQ", u = "Composer_planLabel_QqsYmJ", B = "Composer_create-composer-pending_hGy5Ys", b = "Composer_attachment_ze2E44", y = "Composer_attachmentPreview_st6nef", v = "Composer_attachmentName_zdUej2", f = "Composer_attachmentStatus_duB1GB", x = "Composer_notice_4Qehyf", F = "Composer_editor_L4tPFX", G = "Composer_dropOverlay_GuFoRm", R = "Composer_dropLabel_BgNwlz", L = {
1
+ const t = "Composer_root_oK5RXF", e = "Composer_shell_z36OYt", o = "Composer_create-composer-border-spin_Ik8TZ9", a = "Composer_attachments_YHiboy", n = "Composer_main_Y2cZOO", r = "Composer_textarea_ED0vo8", s = "Composer_textareaWrap_20eG8b", c = "Composer_addButton_Gr6lpT", m = "Composer_sendButton_261s9p", p = "Composer_toolbarEnd_zlFlGo", _ = "Composer_plainField_BSucqo", l = "Composer_fileButton_7fa3cD", d = "Composer_planButton_FfQMTx", C = "Composer_attachmentRetry_dE4e9U", i = "Composer_attachmentRemove_UJ8Ypt", h = "Composer_planIcon_speGCQ", u = "Composer_planLabel_QqsYmJ", B = "Composer_create-composer-pending_hGy5Ys", b = "Composer_attachment_ze2E44", y = "Composer_attachmentPreview_st6nef", v = "Composer_attachmentMeta_q8mSQz", f = "Composer_attachmentName_zdUej2", x = "Composer_attachmentStatus_duB1GB", F = "Composer_notice_4Qehyf", G = "Composer_editor_L4tPFX", R = "Composer_dropOverlay_GuFoRm", L = "Composer_dropLabel_BgNwlz", S = {
2
2
  root: t,
3
- shell: o,
3
+ shell: e,
4
4
  "create-composer-border-spin": "Composer_create-composer-border-spin_Ik8TZ9",
5
- createComposerBorderSpin: e,
5
+ createComposerBorderSpin: o,
6
6
  attachments: a,
7
7
  main: n,
8
8
  textarea: r,
9
9
  textareaWrap: s,
10
10
  addButton: c,
11
- sendButton: p,
12
- toolbarEnd: m,
11
+ sendButton: m,
12
+ toolbarEnd: p,
13
13
  plainField: _,
14
14
  fileButton: l,
15
15
  planButton: d,
@@ -21,40 +21,42 @@ const t = "Composer_root_oK5RXF", o = "Composer_shell_z36OYt", e = "Composer_cre
21
21
  createComposerPending: B,
22
22
  attachment: b,
23
23
  attachmentPreview: y,
24
- attachmentName: v,
25
- attachmentStatus: f,
26
- notice: x,
27
- editor: F,
28
- dropOverlay: G,
29
- dropLabel: R
24
+ attachmentMeta: v,
25
+ attachmentName: f,
26
+ attachmentStatus: x,
27
+ notice: F,
28
+ editor: G,
29
+ dropOverlay: R,
30
+ dropLabel: L
30
31
  };
31
32
  export {
32
33
  c as addButton,
33
34
  b as attachment,
34
- v as attachmentName,
35
+ v as attachmentMeta,
36
+ f as attachmentName,
35
37
  y as attachmentPreview,
36
38
  i as attachmentRemove,
37
39
  C as attachmentRetry,
38
- f as attachmentStatus,
40
+ x as attachmentStatus,
39
41
  a as attachments,
40
- e as createComposerBorderSpin,
42
+ o as createComposerBorderSpin,
41
43
  B as createComposerPending,
42
- L as default,
43
- R as dropLabel,
44
- G as dropOverlay,
45
- F as editor,
44
+ S as default,
45
+ L as dropLabel,
46
+ R as dropOverlay,
47
+ G as editor,
46
48
  l as fileButton,
47
49
  n as main,
48
- x as notice,
50
+ F as notice,
49
51
  _ as plainField,
50
52
  d as planButton,
51
53
  h as planIcon,
52
54
  u as planLabel,
53
55
  t as root,
54
- p as sendButton,
55
- o as shell,
56
+ m as sendButton,
57
+ e as shell,
56
58
  r as textarea,
57
59
  s as textareaWrap,
58
- m as toolbarEnd
60
+ p as toolbarEnd
59
61
  };
60
62
  //# sourceMappingURL=Composer.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Composer.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}