@particle-academy/react-fancy 5.69.0 → 5.70.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 (132) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/autocomplete.cjs +3 -2
  3. package/dist/autocomplete.js +2 -1
  4. package/dist/chunk-2C64OVOZ.cjs +18 -0
  5. package/dist/chunk-2C64OVOZ.cjs.map +1 -0
  6. package/dist/{chunk-BX7EDTL4.js → chunk-37D5PYEF.js} +4 -3
  7. package/dist/chunk-37D5PYEF.js.map +1 -0
  8. package/dist/{chunk-UJRMY54A.cjs → chunk-3QCAOD2W.cjs} +4 -2
  9. package/dist/chunk-3QCAOD2W.cjs.map +1 -0
  10. package/dist/{chunk-KSU6RYWU.cjs → chunk-3T3LBIQA.cjs} +4 -2
  11. package/dist/chunk-3T3LBIQA.cjs.map +1 -0
  12. package/dist/{chunk-O4KZYGGC.cjs → chunk-5YRSYS2F.cjs} +10 -10
  13. package/dist/{chunk-O4KZYGGC.cjs.map → chunk-5YRSYS2F.cjs.map} +1 -1
  14. package/dist/{chunk-2PSHIUM7.cjs → chunk-6EA3DSPT.cjs} +14 -13
  15. package/dist/chunk-6EA3DSPT.cjs.map +1 -0
  16. package/dist/{chunk-4WIPWJYD.js → chunk-6PRXG7L6.js} +4 -3
  17. package/dist/chunk-6PRXG7L6.js.map +1 -0
  18. package/dist/{chunk-WKPBCB67.cjs → chunk-6QAF35AJ.cjs} +4 -2
  19. package/dist/chunk-6QAF35AJ.cjs.map +1 -0
  20. package/dist/chunk-6V44RRSB.cjs +11 -0
  21. package/dist/chunk-6V44RRSB.cjs.map +1 -0
  22. package/dist/chunk-AC3W3TIV.js +67 -0
  23. package/dist/chunk-AC3W3TIV.js.map +1 -0
  24. package/dist/{chunk-G35XN5WV.js → chunk-CDW7MFPG.js} +4 -2
  25. package/dist/chunk-CDW7MFPG.js.map +1 -0
  26. package/dist/{chunk-U4PWNLOH.js → chunk-EZL5DILH.js} +7 -6
  27. package/dist/chunk-EZL5DILH.js.map +1 -0
  28. package/dist/{chunk-ARO2DNGS.js → chunk-EZZKHMR4.js} +4 -2
  29. package/dist/chunk-EZZKHMR4.js.map +1 -0
  30. package/dist/{chunk-LLVYCACC.js → chunk-F4GMOMUT.js} +3 -3
  31. package/dist/{chunk-LLVYCACC.js.map → chunk-F4GMOMUT.js.map} +1 -1
  32. package/dist/{chunk-R6URPHEP.cjs → chunk-FHRVSYJU.cjs} +4 -3
  33. package/dist/chunk-FHRVSYJU.cjs.map +1 -0
  34. package/dist/{chunk-4UEIMGHZ.js → chunk-HN5J7TK6.js} +46 -11
  35. package/dist/chunk-HN5J7TK6.js.map +1 -0
  36. package/dist/{chunk-J5TFVYYM.cjs → chunk-HNJXBMHI.cjs} +6 -6
  37. package/dist/{chunk-J5TFVYYM.cjs.map → chunk-HNJXBMHI.cjs.map} +1 -1
  38. package/dist/chunk-I3LAFKJU.js +16 -0
  39. package/dist/chunk-I3LAFKJU.js.map +1 -0
  40. package/dist/{chunk-HRZDEZSE.js → chunk-J7S42MJP.js} +66 -13
  41. package/dist/chunk-J7S42MJP.js.map +1 -0
  42. package/dist/{chunk-YJETQ76J.cjs → chunk-KKYILQTG.cjs} +4 -3
  43. package/dist/chunk-KKYILQTG.cjs.map +1 -0
  44. package/dist/{chunk-FPFQBYKJ.cjs → chunk-LBSAWRFT.cjs} +52 -17
  45. package/dist/chunk-LBSAWRFT.cjs.map +1 -0
  46. package/dist/{chunk-FVI4JDLA.js → chunk-M6UAVA2I.js} +4 -2
  47. package/dist/chunk-M6UAVA2I.js.map +1 -0
  48. package/dist/{chunk-Z6RA37IC.js → chunk-NAYXNVNU.js} +3 -15
  49. package/dist/chunk-NAYXNVNU.js.map +1 -0
  50. package/dist/{chunk-G5DMYAWL.cjs → chunk-O5ORO2RX.cjs} +5 -2
  51. package/dist/chunk-O5ORO2RX.cjs.map +1 -0
  52. package/dist/{chunk-YEGFOMJB.js → chunk-PJNUGSKI.js} +3 -3
  53. package/dist/{chunk-YEGFOMJB.js.map → chunk-PJNUGSKI.js.map} +1 -1
  54. package/dist/{chunk-KGJ2ORY6.cjs → chunk-R3EJNGJV.cjs} +4 -16
  55. package/dist/chunk-R3EJNGJV.cjs.map +1 -0
  56. package/dist/chunk-S42OGG43.js +9 -0
  57. package/dist/chunk-S42OGG43.js.map +1 -0
  58. package/dist/{chunk-VZNBTCGA.js → chunk-TCMOD3WW.js} +4 -3
  59. package/dist/chunk-TCMOD3WW.js.map +1 -0
  60. package/dist/{chunk-6MXFZ3B5.cjs → chunk-UK6BGM74.cjs} +4 -3
  61. package/dist/chunk-UK6BGM74.cjs.map +1 -0
  62. package/dist/{chunk-XS3EIQFP.js → chunk-WZAKEJDL.js} +5 -2
  63. package/dist/chunk-WZAKEJDL.js.map +1 -0
  64. package/dist/{chunk-ISNS4GAW.cjs → chunk-XAKZ6VBP.cjs} +71 -18
  65. package/dist/chunk-XAKZ6VBP.cjs.map +1 -0
  66. package/dist/chunk-XNHAJQRF.cjs +69 -0
  67. package/dist/chunk-XNHAJQRF.cjs.map +1 -0
  68. package/dist/command.cjs +4 -3
  69. package/dist/command.js +2 -1
  70. package/dist/composer.cjs +7 -4
  71. package/dist/composer.d.cts +44 -2
  72. package/dist/composer.d.ts +44 -2
  73. package/dist/composer.js +5 -2
  74. package/dist/content-renderer.cjs +5 -4
  75. package/dist/content-renderer.js +2 -1
  76. package/dist/editor.cjs +5 -4
  77. package/dist/editor.js +3 -2
  78. package/dist/file-browser.cjs +6 -5
  79. package/dist/file-browser.js +2 -1
  80. package/dist/{index-BQi_n6eS.d.ts → index-BAtF94lw.d.ts} +48 -2
  81. package/dist/{index-n_4_OZK_.d.cts → index-xwL2MACB.d.cts} +48 -2
  82. package/dist/index.cjs +61 -58
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.cts +2 -1
  85. package/dist/index.d.ts +2 -1
  86. package/dist/index.js +16 -13
  87. package/dist/index.js.map +1 -1
  88. package/dist/input-tag.cjs +7 -6
  89. package/dist/input-tag.js +2 -1
  90. package/dist/input.cjs +4 -3
  91. package/dist/input.js +3 -2
  92. package/dist/inputs.cjs +6 -5
  93. package/dist/inputs.js +4 -3
  94. package/dist/json-editor.cjs +16 -15
  95. package/dist/json-editor.js +5 -4
  96. package/dist/paste-pills.cjs +15 -14
  97. package/dist/paste-pills.js +2 -1
  98. package/dist/pillbox.cjs +3 -2
  99. package/dist/pillbox.js +2 -1
  100. package/dist/prompt-input.cjs +8 -5
  101. package/dist/prompt-input.d.cts +2 -1
  102. package/dist/prompt-input.d.ts +2 -1
  103. package/dist/prompt-input.js +5 -2
  104. package/dist/select.cjs +3 -2
  105. package/dist/select.js +2 -1
  106. package/dist/use-acknowledged-submit-7nC0vSCP.d.cts +12 -0
  107. package/dist/use-acknowledged-submit-7nC0vSCP.d.ts +12 -0
  108. package/docs/Composer.md +62 -2
  109. package/docs/PromptInput.md +64 -4
  110. package/package.json +1 -1
  111. package/dist/chunk-2PSHIUM7.cjs.map +0 -1
  112. package/dist/chunk-4UEIMGHZ.js.map +0 -1
  113. package/dist/chunk-4WIPWJYD.js.map +0 -1
  114. package/dist/chunk-6MXFZ3B5.cjs.map +0 -1
  115. package/dist/chunk-ARO2DNGS.js.map +0 -1
  116. package/dist/chunk-BX7EDTL4.js.map +0 -1
  117. package/dist/chunk-FPFQBYKJ.cjs.map +0 -1
  118. package/dist/chunk-FVI4JDLA.js.map +0 -1
  119. package/dist/chunk-G35XN5WV.js.map +0 -1
  120. package/dist/chunk-G5DMYAWL.cjs.map +0 -1
  121. package/dist/chunk-HRZDEZSE.js.map +0 -1
  122. package/dist/chunk-ISNS4GAW.cjs.map +0 -1
  123. package/dist/chunk-KGJ2ORY6.cjs.map +0 -1
  124. package/dist/chunk-KSU6RYWU.cjs.map +0 -1
  125. package/dist/chunk-R6URPHEP.cjs.map +0 -1
  126. package/dist/chunk-U4PWNLOH.js.map +0 -1
  127. package/dist/chunk-UJRMY54A.cjs.map +0 -1
  128. package/dist/chunk-VZNBTCGA.js.map +0 -1
  129. package/dist/chunk-WKPBCB67.cjs.map +0 -1
  130. package/dist/chunk-XS3EIQFP.js.map +0 -1
  131. package/dist/chunk-YJETQ76J.cjs.map +0 -1
  132. package/dist/chunk-Z6RA37IC.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkG5DMYAWL_cjs = require('./chunk-G5DMYAWL.cjs');
3
+ var chunkO5ORO2RX_cjs = require('./chunk-O5ORO2RX.cjs');
4
+ require('./chunk-6V44RRSB.cjs');
4
5
  require('./chunk-SNHU2AI4.cjs');
5
6
  require('./chunk-ZU5Q77OT.cjs');
6
7
 
@@ -8,19 +9,19 @@ require('./chunk-ZU5Q77OT.cjs');
8
9
 
9
10
  Object.defineProperty(exports, "FileBrowser", {
10
11
  enumerable: true,
11
- get: function () { return chunkG5DMYAWL_cjs.FileBrowser; }
12
+ get: function () { return chunkO5ORO2RX_cjs.FileBrowser; }
12
13
  });
13
14
  Object.defineProperty(exports, "FileBrowserNewFolder", {
14
15
  enumerable: true,
15
- get: function () { return chunkG5DMYAWL_cjs.FileBrowserNewFolder; }
16
+ get: function () { return chunkO5ORO2RX_cjs.FileBrowserNewFolder; }
16
17
  });
17
18
  Object.defineProperty(exports, "useFileBrowser", {
18
19
  enumerable: true,
19
- get: function () { return chunkG5DMYAWL_cjs.useFileBrowser; }
20
+ get: function () { return chunkO5ORO2RX_cjs.useFileBrowser; }
20
21
  });
21
22
  Object.defineProperty(exports, "validateFolderName", {
22
23
  enumerable: true,
23
- get: function () { return chunkG5DMYAWL_cjs.validateFolderName; }
24
+ get: function () { return chunkO5ORO2RX_cjs.validateFolderName; }
24
25
  });
25
26
  //# sourceMappingURL=file-browser.cjs.map
26
27
  //# sourceMappingURL=file-browser.cjs.map
@@ -1,4 +1,5 @@
1
- export { FileBrowser, FileBrowserNewFolder, useFileBrowser, validateFolderName } from './chunk-XS3EIQFP.js';
1
+ export { FileBrowser, FileBrowserNewFolder, useFileBrowser, validateFolderName } from './chunk-WZAKEJDL.js';
2
+ import './chunk-S42OGG43.js';
2
3
  import './chunk-EDYAXGUM.js';
3
4
  import './chunk-MMW2JGKZ.js';
4
5
  //# sourceMappingURL=file-browser.js.map
@@ -1,5 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { HTMLAttributes, ReactNode } from 'react';
3
+ import { a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.js';
3
4
  import { C as ComposerPastePreview, a as ComposerPasteClassNames } from './PastePills.types-CpXzsuwJ.js';
4
5
 
5
6
  /**
@@ -293,8 +294,53 @@ interface PromptInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSubmi
293
294
  * true key gets named.
294
295
  */
295
296
  platform?: FancyPlatform;
296
- /** Called on ⌘/Ctrl+Enter or send button. */
297
- onSubmit: (text: string, attachments: PromptAttachment[]) => void;
297
+ /**
298
+ * Called on ⌘/Ctrl+Enter or send button.
299
+ *
300
+ * **Return nothing and the draft empties at once, as it always has.**
301
+ *
302
+ * Return a Promise to make the send acknowledged: the text, pills and
303
+ * attachments stay, the send button is disabled and `aria-busy`, and a second
304
+ * send is refused until it settles. The text stays editable meanwhile.
305
+ *
306
+ * - Resolves (to anything but `{ ok: false }`) → the draft empties in one
307
+ * commit, unless the person changed it while the send was in flight; their
308
+ * newer draft is kept.
309
+ * - Rejects, or resolves `{ ok: false, error? }` → the draft is kept,
310
+ * `onSubmitError` is called and the failure is announced to screen readers.
311
+ *
312
+ * With a controlled `value` or `draft` the reset reaches the host through
313
+ * `onChange("")` / `onDraftChange(empty)` like any other change, and the host
314
+ * decides whether to apply it.
315
+ */
316
+ onSubmit: (text: string, attachments: PromptAttachment[]) => void | Promise<SubmitResult>;
317
+ /**
318
+ * Called when a Promise from `onSubmit` rejects (with the reason) or resolves
319
+ * `{ ok: false }` (with its `error`, or `undefined`). The draft is kept.
320
+ */
321
+ onSubmitError?: (error: unknown) => void;
322
+ /** Disables the text, attaching, dropping and the send. */
323
+ disabled?: boolean;
324
+ /**
325
+ * Disables only the send: the text stays editable and attachable, and
326
+ * ⌘/Ctrl+Enter does not send. For "the agent is still answering, but you can
327
+ * write the next message".
328
+ */
329
+ sendDisabled?: boolean;
330
+ /**
331
+ * Form field name for the text. On the textarea itself; with inline pills on
332
+ * (`pasteThreshold` / `pasteImages`), on a hidden input carrying the expanded
333
+ * text, since a contenteditable is not a form field.
334
+ */
335
+ name?: string;
336
+ /**
337
+ * `id` of the text field (textarea or inline editor). `id` itself names the
338
+ * root, as it always has. It is the one handle that does not change when inline
339
+ * pills switch the field type. Without it the field is found by
340
+ * `data-react-fancy-prompt-input-textarea` or, with inline pills,
341
+ * `data-react-fancy-composer-input`.
342
+ */
343
+ inputId?: string;
298
344
  /**
299
345
  * Placeholder text. Defaults to a hint naming the modifier THIS platform
300
346
  * actually has, so leaving it unset is the better option — a hardcoded
@@ -1,5 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { HTMLAttributes, ReactNode } from 'react';
3
+ import { a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.cjs';
3
4
  import { C as ComposerPastePreview, a as ComposerPasteClassNames } from './PastePills.types-CpXzsuwJ.cjs';
4
5
 
5
6
  /**
@@ -293,8 +294,53 @@ interface PromptInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSubmi
293
294
  * true key gets named.
294
295
  */
295
296
  platform?: FancyPlatform;
296
- /** Called on ⌘/Ctrl+Enter or send button. */
297
- onSubmit: (text: string, attachments: PromptAttachment[]) => void;
297
+ /**
298
+ * Called on ⌘/Ctrl+Enter or send button.
299
+ *
300
+ * **Return nothing and the draft empties at once, as it always has.**
301
+ *
302
+ * Return a Promise to make the send acknowledged: the text, pills and
303
+ * attachments stay, the send button is disabled and `aria-busy`, and a second
304
+ * send is refused until it settles. The text stays editable meanwhile.
305
+ *
306
+ * - Resolves (to anything but `{ ok: false }`) → the draft empties in one
307
+ * commit, unless the person changed it while the send was in flight; their
308
+ * newer draft is kept.
309
+ * - Rejects, or resolves `{ ok: false, error? }` → the draft is kept,
310
+ * `onSubmitError` is called and the failure is announced to screen readers.
311
+ *
312
+ * With a controlled `value` or `draft` the reset reaches the host through
313
+ * `onChange("")` / `onDraftChange(empty)` like any other change, and the host
314
+ * decides whether to apply it.
315
+ */
316
+ onSubmit: (text: string, attachments: PromptAttachment[]) => void | Promise<SubmitResult>;
317
+ /**
318
+ * Called when a Promise from `onSubmit` rejects (with the reason) or resolves
319
+ * `{ ok: false }` (with its `error`, or `undefined`). The draft is kept.
320
+ */
321
+ onSubmitError?: (error: unknown) => void;
322
+ /** Disables the text, attaching, dropping and the send. */
323
+ disabled?: boolean;
324
+ /**
325
+ * Disables only the send: the text stays editable and attachable, and
326
+ * ⌘/Ctrl+Enter does not send. For "the agent is still answering, but you can
327
+ * write the next message".
328
+ */
329
+ sendDisabled?: boolean;
330
+ /**
331
+ * Form field name for the text. On the textarea itself; with inline pills on
332
+ * (`pasteThreshold` / `pasteImages`), on a hidden input carrying the expanded
333
+ * text, since a contenteditable is not a form field.
334
+ */
335
+ name?: string;
336
+ /**
337
+ * `id` of the text field (textarea or inline editor). `id` itself names the
338
+ * root, as it always has. It is the one handle that does not change when inline
339
+ * pills switch the field type. Without it the field is found by
340
+ * `data-react-fancy-prompt-input-textarea` or, with inline pills,
341
+ * `data-react-fancy-composer-input`.
342
+ */
343
+ inputId?: string;
298
344
  /**
299
345
  * Placeholder text. Defaults to a hint naming the modifier THIS platform
300
346
  * actually has, so leaving it unset is the better option — a hardcoded
package/dist/index.cjs CHANGED
@@ -33,10 +33,10 @@ var chunkCEFK54WP_cjs = require('./chunk-CEFK54WP.cjs');
33
33
  var chunk5P3PISAX_cjs = require('./chunk-5P3PISAX.cjs');
34
34
  var chunkY7RGUUTS_cjs = require('./chunk-Y7RGUUTS.cjs');
35
35
  var chunkEZA6GWZL_cjs = require('./chunk-EZA6GWZL.cjs');
36
- var chunkKSU6RYWU_cjs = require('./chunk-KSU6RYWU.cjs');
36
+ var chunk3T3LBIQA_cjs = require('./chunk-3T3LBIQA.cjs');
37
37
  var chunkK5MQZTDW_cjs = require('./chunk-K5MQZTDW.cjs');
38
38
  var chunkB4YV2V7G_cjs = require('./chunk-B4YV2V7G.cjs');
39
- var chunkISNS4GAW_cjs = require('./chunk-ISNS4GAW.cjs');
39
+ var chunkXAKZ6VBP_cjs = require('./chunk-XAKZ6VBP.cjs');
40
40
  var chunkOASSZI6M_cjs = require('./chunk-OASSZI6M.cjs');
41
41
  require('./chunk-I27K6NLX.cjs');
42
42
  var chunkAQ4DZT4Y_cjs = require('./chunk-AQ4DZT4Y.cjs');
@@ -51,12 +51,12 @@ var chunkWMANILKC_cjs = require('./chunk-WMANILKC.cjs');
51
51
  var chunkSSCW67KA_cjs = require('./chunk-SSCW67KA.cjs');
52
52
  var chunk7QENPLOP_cjs = require('./chunk-7QENPLOP.cjs');
53
53
  var chunkAYBKPAI2_cjs = require('./chunk-AYBKPAI2.cjs');
54
- var chunk6MXFZ3B5_cjs = require('./chunk-6MXFZ3B5.cjs');
55
- var chunk2PSHIUM7_cjs = require('./chunk-2PSHIUM7.cjs');
54
+ var chunkUK6BGM74_cjs = require('./chunk-UK6BGM74.cjs');
55
+ var chunk6EA3DSPT_cjs = require('./chunk-6EA3DSPT.cjs');
56
56
  var chunk2O5UXH5R_cjs = require('./chunk-2O5UXH5R.cjs');
57
57
  var chunkTLRFXSPA_cjs = require('./chunk-TLRFXSPA.cjs');
58
- var chunkJ5TFVYYM_cjs = require('./chunk-J5TFVYYM.cjs');
59
- var chunkWKPBCB67_cjs = require('./chunk-WKPBCB67.cjs');
58
+ var chunkHNJXBMHI_cjs = require('./chunk-HNJXBMHI.cjs');
59
+ var chunk6QAF35AJ_cjs = require('./chunk-6QAF35AJ.cjs');
60
60
  var chunkS4FXY3B4_cjs = require('./chunk-S4FXY3B4.cjs');
61
61
  var chunkL4JIBKFW_cjs = require('./chunk-L4JIBKFW.cjs');
62
62
  var chunkS3NB6LDV_cjs = require('./chunk-S3NB6LDV.cjs');
@@ -68,7 +68,7 @@ require('./chunk-O3F6DYWR.cjs');
68
68
  var chunkZVDW2VX5_cjs = require('./chunk-ZVDW2VX5.cjs');
69
69
  var chunkLIVC3WUU_cjs = require('./chunk-LIVC3WUU.cjs');
70
70
  var chunkM5SEYDSS_cjs = require('./chunk-M5SEYDSS.cjs');
71
- var chunkG5DMYAWL_cjs = require('./chunk-G5DMYAWL.cjs');
71
+ var chunkO5ORO2RX_cjs = require('./chunk-O5ORO2RX.cjs');
72
72
  var chunkAGO4AA3K_cjs = require('./chunk-AGO4AA3K.cjs');
73
73
  var chunkWVSHAJKI_cjs = require('./chunk-WVSHAJKI.cjs');
74
74
  var chunkOOZCJLEF_cjs = require('./chunk-OOZCJLEF.cjs');
@@ -78,12 +78,12 @@ require('./chunk-S3TRSECD.cjs');
78
78
  var chunkZ7SQMQTF_cjs = require('./chunk-Z7SQMQTF.cjs');
79
79
  var chunkAJPYGRLA_cjs = require('./chunk-AJPYGRLA.cjs');
80
80
  var chunkXZOBGKZL_cjs = require('./chunk-XZOBGKZL.cjs');
81
- var chunkO4KZYGGC_cjs = require('./chunk-O4KZYGGC.cjs');
81
+ var chunk5YRSYS2F_cjs = require('./chunk-5YRSYS2F.cjs');
82
82
  var chunkA2JUTNE6_cjs = require('./chunk-A2JUTNE6.cjs');
83
83
  var chunkT6YELZPJ_cjs = require('./chunk-T6YELZPJ.cjs');
84
84
  var chunkVQJ5LJJH_cjs = require('./chunk-VQJ5LJJH.cjs');
85
85
  var chunk4GOOSZEK_cjs = require('./chunk-4GOOSZEK.cjs');
86
- var chunkKGJ2ORY6_cjs = require('./chunk-KGJ2ORY6.cjs');
86
+ var chunkR3EJNGJV_cjs = require('./chunk-R3EJNGJV.cjs');
87
87
  var chunkAVU4JOYM_cjs = require('./chunk-AVU4JOYM.cjs');
88
88
  var chunkV5JTTLJP_cjs = require('./chunk-V5JTTLJP.cjs');
89
89
  var chunk4JT2QANA_cjs = require('./chunk-4JT2QANA.cjs');
@@ -96,16 +96,19 @@ require('./chunk-AIA5UNQ5.cjs');
96
96
  var chunkG7227RTY_cjs = require('./chunk-G7227RTY.cjs');
97
97
  require('./chunk-XFBLUPKF.cjs');
98
98
  var chunkGKLETY7D_cjs = require('./chunk-GKLETY7D.cjs');
99
- var chunkUJRMY54A_cjs = require('./chunk-UJRMY54A.cjs');
99
+ var chunk3QCAOD2W_cjs = require('./chunk-3QCAOD2W.cjs');
100
100
  var chunkTXTRTTG7_cjs = require('./chunk-TXTRTTG7.cjs');
101
101
  var chunkFQZE5N2N_cjs = require('./chunk-FQZE5N2N.cjs');
102
- var chunkFPFQBYKJ_cjs = require('./chunk-FPFQBYKJ.cjs');
103
- var chunkYJETQ76J_cjs = require('./chunk-YJETQ76J.cjs');
102
+ var chunkLBSAWRFT_cjs = require('./chunk-LBSAWRFT.cjs');
103
+ require('./chunk-XNHAJQRF.cjs');
104
+ var chunkKKYILQTG_cjs = require('./chunk-KKYILQTG.cjs');
104
105
  var chunkMKGWHSNV_cjs = require('./chunk-MKGWHSNV.cjs');
105
- var chunkR6URPHEP_cjs = require('./chunk-R6URPHEP.cjs');
106
+ require('./chunk-2C64OVOZ.cjs');
107
+ var chunkFHRVSYJU_cjs = require('./chunk-FHRVSYJU.cjs');
106
108
  require('./chunk-KJ22KE56.cjs');
107
109
  var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
108
110
  var chunkJ2DI6RMR_cjs = require('./chunk-J2DI6RMR.cjs');
111
+ require('./chunk-6V44RRSB.cjs');
109
112
  require('./chunk-MKHYENKR.cjs');
110
113
  var chunkTI7D4QDM_cjs = require('./chunk-TI7D4QDM.cjs');
111
114
  var chunkBJL3VDRK_cjs = require('./chunk-BJL3VDRK.cjs');
@@ -360,7 +363,7 @@ Object.defineProperty(exports, "useSidebar", {
360
363
  });
361
364
  Object.defineProperty(exports, "Pillbox", {
362
365
  enumerable: true,
363
- get: function () { return chunkKSU6RYWU_cjs.Pillbox; }
366
+ get: function () { return chunk3T3LBIQA_cjs.Pillbox; }
364
367
  });
365
368
  Object.defineProperty(exports, "Profile", {
366
369
  enumerable: true,
@@ -372,27 +375,27 @@ Object.defineProperty(exports, "Progress", {
372
375
  });
373
376
  Object.defineProperty(exports, "PromptInput", {
374
377
  enumerable: true,
375
- get: function () { return chunkISNS4GAW_cjs.PromptInput; }
378
+ get: function () { return chunkXAKZ6VBP_cjs.PromptInput; }
376
379
  });
377
380
  Object.defineProperty(exports, "browserPlatformHints", {
378
381
  enumerable: true,
379
- get: function () { return chunkISNS4GAW_cjs.browserPlatformHints; }
382
+ get: function () { return chunkXAKZ6VBP_cjs.browserPlatformHints; }
380
383
  });
381
384
  Object.defineProperty(exports, "detectPlatform", {
382
385
  enumerable: true,
383
- get: function () { return chunkISNS4GAW_cjs.detectPlatform; }
386
+ get: function () { return chunkXAKZ6VBP_cjs.detectPlatform; }
384
387
  });
385
388
  Object.defineProperty(exports, "modifierKeyLabel", {
386
389
  enumerable: true,
387
- get: function () { return chunkISNS4GAW_cjs.modifierKeyLabel; }
390
+ get: function () { return chunkXAKZ6VBP_cjs.modifierKeyLabel; }
388
391
  });
389
392
  Object.defineProperty(exports, "promptDataUrlToFile", {
390
393
  enumerable: true,
391
- get: function () { return chunkISNS4GAW_cjs.promptDataUrlToFile; }
394
+ get: function () { return chunkXAKZ6VBP_cjs.promptDataUrlToFile; }
392
395
  });
393
396
  Object.defineProperty(exports, "promptFileToDataUrl", {
394
397
  enumerable: true,
395
- get: function () { return chunkISNS4GAW_cjs.promptFileToDataUrl; }
398
+ get: function () { return chunkXAKZ6VBP_cjs.promptFileToDataUrl; }
396
399
  });
397
400
  Object.defineProperty(exports, "Tooltip", {
398
401
  enumerable: true,
@@ -468,71 +471,71 @@ Object.defineProperty(exports, "IndexList", {
468
471
  });
469
472
  Object.defineProperty(exports, "InputTag", {
470
473
  enumerable: true,
471
- get: function () { return chunk6MXFZ3B5_cjs.InputTag; }
474
+ get: function () { return chunkUK6BGM74_cjs.InputTag; }
472
475
  });
473
476
  Object.defineProperty(exports, "contentEditableAdapter", {
474
477
  enumerable: true,
475
- get: function () { return chunk6MXFZ3B5_cjs.contentEditableAdapter; }
478
+ get: function () { return chunkUK6BGM74_cjs.contentEditableAdapter; }
476
479
  });
477
480
  Object.defineProperty(exports, "controlledAdapter", {
478
481
  enumerable: true,
479
- get: function () { return chunk6MXFZ3B5_cjs.controlledAdapter; }
482
+ get: function () { return chunkUK6BGM74_cjs.controlledAdapter; }
480
483
  });
481
484
  Object.defineProperty(exports, "inputAdapter", {
482
485
  enumerable: true,
483
- get: function () { return chunk6MXFZ3B5_cjs.inputAdapter; }
486
+ get: function () { return chunkUK6BGM74_cjs.inputAdapter; }
484
487
  });
485
488
  Object.defineProperty(exports, "textareaAdapter", {
486
489
  enumerable: true,
487
- get: function () { return chunk6MXFZ3B5_cjs.textareaAdapter; }
490
+ get: function () { return chunkUK6BGM74_cjs.textareaAdapter; }
488
491
  });
489
492
  Object.defineProperty(exports, "JSON_FIELD_TYPES", {
490
493
  enumerable: true,
491
- get: function () { return chunk2PSHIUM7_cjs.JSON_FIELD_TYPES; }
494
+ get: function () { return chunk6EA3DSPT_cjs.JSON_FIELD_TYPES; }
492
495
  });
493
496
  Object.defineProperty(exports, "JsonEditor", {
494
497
  enumerable: true,
495
- get: function () { return chunk2PSHIUM7_cjs.JsonEditor; }
498
+ get: function () { return chunk6EA3DSPT_cjs.JsonEditor; }
496
499
  });
497
500
  Object.defineProperty(exports, "applyJsonEdit", {
498
501
  enumerable: true,
499
- get: function () { return chunk2PSHIUM7_cjs.applyJsonEdit; }
502
+ get: function () { return chunk6EA3DSPT_cjs.applyJsonEdit; }
500
503
  });
501
504
  Object.defineProperty(exports, "describeEdit", {
502
505
  enumerable: true,
503
- get: function () { return chunk2PSHIUM7_cjs.describeEdit; }
506
+ get: function () { return chunk6EA3DSPT_cjs.describeEdit; }
504
507
  });
505
508
  Object.defineProperty(exports, "findJsonConflicts", {
506
509
  enumerable: true,
507
- get: function () { return chunk2PSHIUM7_cjs.findJsonConflicts; }
510
+ get: function () { return chunk6EA3DSPT_cjs.findJsonConflicts; }
508
511
  });
509
512
  Object.defineProperty(exports, "getAtPath", {
510
513
  enumerable: true,
511
- get: function () { return chunk2PSHIUM7_cjs.getAtPath; }
514
+ get: function () { return chunk6EA3DSPT_cjs.getAtPath; }
512
515
  });
513
516
  Object.defineProperty(exports, "inferType", {
514
517
  enumerable: true,
515
- get: function () { return chunk2PSHIUM7_cjs.inferType; }
518
+ get: function () { return chunk6EA3DSPT_cjs.inferType; }
516
519
  });
517
520
  Object.defineProperty(exports, "parseKeyMap", {
518
521
  enumerable: true,
519
- get: function () { return chunk2PSHIUM7_cjs.parseKeyMap; }
522
+ get: function () { return chunk6EA3DSPT_cjs.parseKeyMap; }
520
523
  });
521
524
  Object.defineProperty(exports, "parsePath", {
522
525
  enumerable: true,
523
- get: function () { return chunk2PSHIUM7_cjs.parsePath; }
526
+ get: function () { return chunk6EA3DSPT_cjs.parsePath; }
524
527
  });
525
528
  Object.defineProperty(exports, "pathToString", {
526
529
  enumerable: true,
527
- get: function () { return chunk2PSHIUM7_cjs.pathToString; }
530
+ get: function () { return chunk6EA3DSPT_cjs.pathToString; }
528
531
  });
529
532
  Object.defineProperty(exports, "resolveKeyRule", {
530
533
  enumerable: true,
531
- get: function () { return chunk2PSHIUM7_cjs.resolveKeyRule; }
534
+ get: function () { return chunk6EA3DSPT_cjs.resolveKeyRule; }
532
535
  });
533
536
  Object.defineProperty(exports, "typeMatches", {
534
537
  enumerable: true,
535
- get: function () { return chunk2PSHIUM7_cjs.typeMatches; }
538
+ get: function () { return chunk6EA3DSPT_cjs.typeMatches; }
536
539
  });
537
540
  Object.defineProperty(exports, "Switch", {
538
541
  enumerable: true,
@@ -544,11 +547,11 @@ Object.defineProperty(exports, "DatePicker", {
544
547
  });
545
548
  Object.defineProperty(exports, "Input", {
546
549
  enumerable: true,
547
- get: function () { return chunkJ5TFVYYM_cjs.Input; }
550
+ get: function () { return chunkHNJXBMHI_cjs.Input; }
548
551
  });
549
552
  Object.defineProperty(exports, "Select", {
550
553
  enumerable: true,
551
- get: function () { return chunkWKPBCB67_cjs.Select; }
554
+ get: function () { return chunk6QAF35AJ_cjs.Select; }
552
555
  });
553
556
  Object.defineProperty(exports, "Kanban", {
554
557
  enumerable: true,
@@ -592,19 +595,19 @@ Object.defineProperty(exports, "FauxClient", {
592
595
  });
593
596
  Object.defineProperty(exports, "FileBrowser", {
594
597
  enumerable: true,
595
- get: function () { return chunkG5DMYAWL_cjs.FileBrowser; }
598
+ get: function () { return chunkO5ORO2RX_cjs.FileBrowser; }
596
599
  });
597
600
  Object.defineProperty(exports, "FileBrowserNewFolder", {
598
601
  enumerable: true,
599
- get: function () { return chunkG5DMYAWL_cjs.FileBrowserNewFolder; }
602
+ get: function () { return chunkO5ORO2RX_cjs.FileBrowserNewFolder; }
600
603
  });
601
604
  Object.defineProperty(exports, "useFileBrowser", {
602
605
  enumerable: true,
603
- get: function () { return chunkG5DMYAWL_cjs.useFileBrowser; }
606
+ get: function () { return chunkO5ORO2RX_cjs.useFileBrowser; }
604
607
  });
605
608
  Object.defineProperty(exports, "validateFolderName", {
606
609
  enumerable: true,
607
- get: function () { return chunkG5DMYAWL_cjs.validateFolderName; }
610
+ get: function () { return chunkO5ORO2RX_cjs.validateFolderName; }
608
611
  });
609
612
  Object.defineProperty(exports, "FileUpload", {
610
613
  enumerable: true,
@@ -652,11 +655,11 @@ Object.defineProperty(exports, "useDropdown", {
652
655
  });
653
656
  Object.defineProperty(exports, "Editor", {
654
657
  enumerable: true,
655
- get: function () { return chunkO4KZYGGC_cjs.Editor; }
658
+ get: function () { return chunk5YRSYS2F_cjs.Editor; }
656
659
  });
657
660
  Object.defineProperty(exports, "useEditor", {
658
661
  enumerable: true,
659
- get: function () { return chunkO4KZYGGC_cjs.useEditor; }
662
+ get: function () { return chunk5YRSYS2F_cjs.useEditor; }
660
663
  });
661
664
  Object.defineProperty(exports, "THEME_STORAGE_KEY", {
662
665
  enumerable: true,
@@ -720,19 +723,19 @@ Object.defineProperty(exports, "useFullScreen", {
720
723
  });
721
724
  Object.defineProperty(exports, "ContentRenderer", {
722
725
  enumerable: true,
723
- get: function () { return chunkKGJ2ORY6_cjs.ContentRenderer; }
726
+ get: function () { return chunkR3EJNGJV_cjs.ContentRenderer; }
724
727
  });
725
728
  Object.defineProperty(exports, "registerExtension", {
726
729
  enumerable: true,
727
- get: function () { return chunkKGJ2ORY6_cjs.registerExtension; }
730
+ get: function () { return chunkR3EJNGJV_cjs.registerExtension; }
728
731
  });
729
732
  Object.defineProperty(exports, "registerExtensions", {
730
733
  enumerable: true,
731
- get: function () { return chunkKGJ2ORY6_cjs.registerExtensions; }
734
+ get: function () { return chunkR3EJNGJV_cjs.registerExtensions; }
732
735
  });
733
736
  Object.defineProperty(exports, "renderMarkdown", {
734
737
  enumerable: true,
735
- get: function () { return chunkKGJ2ORY6_cjs.renderMarkdown; }
738
+ get: function () { return chunkR3EJNGJV_cjs.renderMarkdown; }
736
739
  });
737
740
  Object.defineProperty(exports, "Emoji", {
738
741
  enumerable: true,
@@ -780,11 +783,11 @@ Object.defineProperty(exports, "ColorPicker", {
780
783
  });
781
784
  Object.defineProperty(exports, "Command", {
782
785
  enumerable: true,
783
- get: function () { return chunkUJRMY54A_cjs.Command; }
786
+ get: function () { return chunk3QCAOD2W_cjs.Command; }
784
787
  });
785
788
  Object.defineProperty(exports, "useCommand", {
786
789
  enumerable: true,
787
- get: function () { return chunkUJRMY54A_cjs.useCommand; }
790
+ get: function () { return chunk3QCAOD2W_cjs.useCommand; }
788
791
  });
789
792
  Object.defineProperty(exports, "useFocusTrap", {
790
793
  enumerable: true,
@@ -796,27 +799,27 @@ Object.defineProperty(exports, "useAnimation", {
796
799
  });
797
800
  Object.defineProperty(exports, "Composer", {
798
801
  enumerable: true,
799
- get: function () { return chunkFPFQBYKJ_cjs.Composer; }
802
+ get: function () { return chunkLBSAWRFT_cjs.Composer; }
800
803
  });
801
804
  Object.defineProperty(exports, "InlinePasteEditor", {
802
805
  enumerable: true,
803
- get: function () { return chunkYJETQ76J_cjs.InlinePasteEditor; }
806
+ get: function () { return chunkKKYILQTG_cjs.InlinePasteEditor; }
804
807
  });
805
808
  Object.defineProperty(exports, "PastedFilesInput", {
806
809
  enumerable: true,
807
- get: function () { return chunkYJETQ76J_cjs.PastedFilesInput; }
810
+ get: function () { return chunkKKYILQTG_cjs.PastedFilesInput; }
808
811
  });
809
812
  Object.defineProperty(exports, "pasteMarker", {
810
813
  enumerable: true,
811
- get: function () { return chunkYJETQ76J_cjs.pasteMarker; }
814
+ get: function () { return chunkKKYILQTG_cjs.pasteMarker; }
812
815
  });
813
816
  Object.defineProperty(exports, "useInlinePaste", {
814
817
  enumerable: true,
815
- get: function () { return chunkYJETQ76J_cjs.useInlinePaste; }
818
+ get: function () { return chunkKKYILQTG_cjs.useInlinePaste; }
816
819
  });
817
820
  Object.defineProperty(exports, "usePastePills", {
818
821
  enumerable: true,
819
- get: function () { return chunkYJETQ76J_cjs.usePastePills; }
822
+ get: function () { return chunkKKYILQTG_cjs.usePastePills; }
820
823
  });
821
824
  Object.defineProperty(exports, "Popover", {
822
825
  enumerable: true,
@@ -828,7 +831,7 @@ Object.defineProperty(exports, "usePopover", {
828
831
  });
829
832
  Object.defineProperty(exports, "Autocomplete", {
830
833
  enumerable: true,
831
- get: function () { return chunkR6URPHEP_cjs.Autocomplete; }
834
+ get: function () { return chunkFHRVSYJU_cjs.Autocomplete; }
832
835
  });
833
836
  Object.defineProperty(exports, "FieldModeContext", {
834
837
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme-tokens.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Semantic theme tokens — the small set of colours the kit's DOM components\n * read, so a host can repaint the whole kit with its own palette WITHOUT\n * remapping Tailwind's `zinc` or `violet`.\n *\n * Each role is two CSS custom properties, one per mode:\n *\n * --fancy-surface the light value\n * --fancy-surface-dark the dark value\n *\n * Components read them through their var() FALLBACK, which is the colour the\n * component used before these existed:\n *\n * bg-[color:var(--fancy-surface,var(--color-white))]\n * dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\n *\n * So:\n * - **Set nothing and nothing changes.** An unset custom property resolves to\n * its fallback, which is the exact declaration the old `bg-white` produced.\n * - **Set one and every surface follows**, wherever the variable is in scope:\n * `:root`, `body`, or any wrapper element. No selector to match, no layer or\n * specificity to win — a custom property is inherited, not cascaded against.\n * - **Both modes are stated, not derived.** The dark value is a separate\n * variable rather than a flip under `.dark`, so which one applies is decided\n * by the host's own `dark:` variant — the same switch that drives every\n * other `dark:` utility in the kit. (See `dark-variant.css` for a variant\n * that follows `[data-theme=\"dark\"]` as well as `.dark`.)\n *\n * NOT covered, deliberately: colours that ENCODE DATA — chart series,\n * file-type marks, mood and confidence scales, event kinds. Repainting those\n * with a host's neutral palette would erase what they mean. A component's\n * explicit `color` prop (Badge, Button, Callout …) is also untouched: that is\n * the host choosing a hue, not the kit choosing one for it.\n *\n * `light` / `dark` are the defaults exactly as components write them in their\n * fallbacks. `tests/theme-tokens.test.tsx` fails if a component's fallback\n * disagrees with this table, so the table is the contract rather than a\n * description of it.\n */\nexport const THEME_TOKENS = {\n surface: {\n variable: \"--fancy-surface\",\n darkVariable: \"--fancy-surface-dark\",\n light: \"var(--color-white)\",\n dark: \"var(--color-zinc-900)\",\n description: \"Panels, cards, overlays (menus, modals, popovers, toasts), sidebars and navbars.\",\n },\n \"surface-muted\": {\n variable: \"--fancy-surface-muted\",\n darkVariable: \"--fancy-surface-muted-dark\",\n light: \"var(--color-zinc-100)\",\n dark: \"var(--color-zinc-800)\",\n description: \"Hovered and selected rows, chips, inset wells, toolbar buttons.\",\n },\n border: {\n variable: \"--fancy-border\",\n darkVariable: \"--fancy-border-dark\",\n light: \"var(--color-zinc-200)\",\n dark: \"var(--color-zinc-700)\",\n description: \"Outlines, dividers, separators and tracks (skeletons, progress, sliders).\",\n },\n \"border-strong\": {\n variable: \"--fancy-border-strong\",\n darkVariable: \"--fancy-border-strong-dark\",\n light: \"var(--color-zinc-300)\",\n dark: \"var(--color-zinc-700)\",\n description: \"The firmer outline on form controls (inputs, checkboxes, radios) and keycaps.\",\n },\n input: {\n variable: \"--fancy-input\",\n darkVariable: \"--fancy-input-dark\",\n light: \"var(--color-white)\",\n dark: \"#1e1e24\",\n description: \"The field surface of text inputs, checkboxes, radios, OTP cells and pickers.\",\n },\n text: {\n variable: \"--fancy-text\",\n darkVariable: \"--fancy-text-dark\",\n light: \"var(--color-zinc-900)\",\n dark: \"var(--color-zinc-100)\",\n description: \"Strongest foreground: headings, values, field text, active items.\",\n },\n \"text-soft\": {\n variable: \"--fancy-text-soft\",\n darkVariable: \"--fancy-text-soft-dark\",\n light: \"var(--color-zinc-700)\",\n dark: \"var(--color-zinc-300)\",\n description: \"Body copy and menu items: readable, one step back from text.\",\n },\n \"text-muted\": {\n variable: \"--fancy-text-muted\",\n darkVariable: \"--fancy-text-muted-dark\",\n light: \"var(--color-zinc-500)\",\n dark: \"var(--color-zinc-400)\",\n description: \"Descriptions, captions, secondary labels, axis labels.\",\n },\n \"text-faint\": {\n variable: \"--fancy-text-faint\",\n darkVariable: \"--fancy-text-faint-dark\",\n light: \"var(--color-zinc-400)\",\n dark: \"var(--color-zinc-500)\",\n description: \"Placeholders, disabled hints, decorative icons.\",\n },\n \"text-subtle\": {\n variable: \"--fancy-text-subtle\",\n darkVariable: \"--fancy-text-subtle-dark\",\n light: \"var(--color-zinc-600)\",\n dark: \"var(--color-zinc-400)\",\n description: \"Inactive nav labels (Sidebar, Menu, Navbar, MultiSwitch) and secondary prose. Added 5.53.1.\",\n },\n \"surface-hover\": {\n variable: \"--fancy-surface-hover\",\n darkVariable: \"--fancy-surface-hover-dark\",\n light: \"var(--color-zinc-50)\",\n // Tailwind's `bg-zinc-800/50`, written out so a host's value is used as-is.\n dark: \"color-mix(in oklab, var(--color-zinc-800) 50%, transparent)\",\n description: \"The hover fill on nav items, list options and table rows. Added 5.53.1.\",\n },\n focus: {\n variable: \"--fancy-focus\",\n darkVariable: \"--fancy-focus-dark\",\n light: \"var(--color-blue-500)\",\n dark: \"var(--color-blue-400)\",\n description: \"The focus border and ring on form controls.\",\n },\n} as const;\n\nexport type ThemeTokenRole = keyof typeof THEME_TOKENS;\n"]}
1
+ {"version":3,"sources":["../src/theme-tokens.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Semantic theme tokens — the small set of colours the kit's DOM components\n * read, so a host can repaint the whole kit with its own palette WITHOUT\n * remapping Tailwind's `zinc` or `violet`.\n *\n * Each role is two CSS custom properties, one per mode:\n *\n * --fancy-surface the light value\n * --fancy-surface-dark the dark value\n *\n * Components read them through their var() FALLBACK, which is the colour the\n * component used before these existed:\n *\n * bg-[color:var(--fancy-surface,var(--color-white))]\n * dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\n *\n * So:\n * - **Set nothing and nothing changes.** An unset custom property resolves to\n * its fallback, which is the exact declaration the old `bg-white` produced.\n * - **Set one and every surface follows**, wherever the variable is in scope:\n * `:root`, `body`, or any wrapper element. No selector to match, no layer or\n * specificity to win — a custom property is inherited, not cascaded against.\n * - **Both modes are stated, not derived.** The dark value is a separate\n * variable rather than a flip under `.dark`, so which one applies is decided\n * by the host's own `dark:` variant — the same switch that drives every\n * other `dark:` utility in the kit. (See `dark-variant.css` for a variant\n * that follows `[data-theme=\"dark\"]` as well as `.dark`.)\n *\n * NOT covered, deliberately: colours that ENCODE DATA — chart series,\n * file-type marks, mood and confidence scales, event kinds. Repainting those\n * with a host's neutral palette would erase what they mean. A component's\n * explicit `color` prop (Badge, Button, Callout …) is also untouched: that is\n * the host choosing a hue, not the kit choosing one for it.\n *\n * `light` / `dark` are the defaults exactly as components write them in their\n * fallbacks. `tests/theme-tokens.test.tsx` fails if a component's fallback\n * disagrees with this table, so the table is the contract rather than a\n * description of it.\n */\nexport const THEME_TOKENS = {\n surface: {\n variable: \"--fancy-surface\",\n darkVariable: \"--fancy-surface-dark\",\n light: \"var(--color-white)\",\n dark: \"var(--color-zinc-900)\",\n description: \"Panels, cards, overlays (menus, modals, popovers, toasts), sidebars and navbars.\",\n },\n \"surface-muted\": {\n variable: \"--fancy-surface-muted\",\n darkVariable: \"--fancy-surface-muted-dark\",\n light: \"var(--color-zinc-100)\",\n dark: \"var(--color-zinc-800)\",\n description: \"Hovered and selected rows, chips, inset wells, toolbar buttons.\",\n },\n border: {\n variable: \"--fancy-border\",\n darkVariable: \"--fancy-border-dark\",\n light: \"var(--color-zinc-200)\",\n dark: \"var(--color-zinc-700)\",\n description: \"Outlines, dividers, separators and tracks (skeletons, progress, sliders).\",\n },\n \"border-strong\": {\n variable: \"--fancy-border-strong\",\n darkVariable: \"--fancy-border-strong-dark\",\n light: \"var(--color-zinc-300)\",\n dark: \"var(--color-zinc-700)\",\n description: \"The firmer outline on form controls (inputs, checkboxes, radios) and keycaps.\",\n },\n input: {\n variable: \"--fancy-input\",\n darkVariable: \"--fancy-input-dark\",\n light: \"var(--color-white)\",\n dark: \"#1e1e24\",\n description: \"The field surface of text inputs, checkboxes, radios, OTP cells and pickers.\",\n },\n text: {\n variable: \"--fancy-text\",\n darkVariable: \"--fancy-text-dark\",\n light: \"var(--color-zinc-900)\",\n dark: \"var(--color-zinc-100)\",\n description: \"Strongest foreground: headings, values, field text, active items.\",\n },\n \"text-soft\": {\n variable: \"--fancy-text-soft\",\n darkVariable: \"--fancy-text-soft-dark\",\n light: \"var(--color-zinc-700)\",\n dark: \"var(--color-zinc-300)\",\n description: \"Body copy and menu items: readable, one step back from text.\",\n },\n \"text-muted\": {\n variable: \"--fancy-text-muted\",\n darkVariable: \"--fancy-text-muted-dark\",\n light: \"var(--color-zinc-500)\",\n dark: \"var(--color-zinc-400)\",\n description: \"Descriptions, captions, secondary labels, axis labels.\",\n },\n \"text-faint\": {\n variable: \"--fancy-text-faint\",\n darkVariable: \"--fancy-text-faint-dark\",\n light: \"var(--color-zinc-400)\",\n dark: \"var(--color-zinc-500)\",\n description: \"Placeholders, disabled hints, decorative icons.\",\n },\n \"text-subtle\": {\n variable: \"--fancy-text-subtle\",\n darkVariable: \"--fancy-text-subtle-dark\",\n light: \"var(--color-zinc-600)\",\n dark: \"var(--color-zinc-400)\",\n description: \"Inactive nav labels (Sidebar, Menu, Navbar, MultiSwitch) and secondary prose. Added 5.53.1.\",\n },\n \"surface-hover\": {\n variable: \"--fancy-surface-hover\",\n darkVariable: \"--fancy-surface-hover-dark\",\n light: \"var(--color-zinc-50)\",\n // Tailwind's `bg-zinc-800/50`, written out so a host's value is used as-is.\n dark: \"color-mix(in oklab, var(--color-zinc-800) 50%, transparent)\",\n description: \"The hover fill on nav items, list options and table rows. Added 5.53.1.\",\n },\n focus: {\n variable: \"--fancy-focus\",\n darkVariable: \"--fancy-focus-dark\",\n light: \"var(--color-blue-500)\",\n dark: \"var(--color-blue-400)\",\n description: \"The focus border and ring on form controls.\",\n },\n} as const;\n\nexport type ThemeTokenRole = keyof typeof THEME_TOKENS;\n"]}
package/dist/index.d.cts CHANGED
@@ -87,7 +87,7 @@ export { Kanban, KanbanCardMoveHandler, KanbanCardProps, KanbanColumnHandleProps
87
87
  export { DropPosition, TreeNav, TreeNavContextValue, TreeNavProps, TreeNodeData, TreeNodeProps, useTreeNav } from './tree-nav.cjs';
88
88
  export { FileBrowser, FileBrowserContextValue, FileBrowserNewFolder, FileBrowserNodeProps, FileBrowserPathBarProps, FileBrowserProps, FileBrowserProvider, FileBrowserRow, FileBrowserToolbarProps, FileBrowserTreeProps, FileEntry, FileKind, FileLoadStatus, FileSelectMode, FileSnapshotNode, FileSort, FileSortDirection, FileSortField, useFileBrowser, validateFolderName } from './file-browser.cjs';
89
89
  export { M as MediaKind, a as MediaViewer, b as MediaViewerProps, R as ResolveMediaTypeInput, r as resolveMediaType } from './index-WG8UdfiE.cjs';
90
- export { F as FancyPlatform, P as PlatformHints, a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptFocusOptions, g as PromptInput, h as PromptInputHandle, i as PromptInputProps, j as PromptMention, k as PromptSetDraftOptions, l as browserPlatformHints, m as detectPlatform, n as modifierKeyLabel, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-n_4_OZK_.cjs';
90
+ export { F as FancyPlatform, P as PlatformHints, a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptFocusOptions, g as PromptInput, h as PromptInputHandle, i as PromptInputProps, j as PromptMention, k as PromptSetDraftOptions, l as browserPlatformHints, m as detectPlatform, n as modifierKeyLabel, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-xwL2MACB.cjs';
91
91
  import { P as Placement } from './types-DJI492iY.cjs';
92
92
  export { A as ActionColor, B as ButtonColor, C as Color, S as Size, V as Variant } from './types-DJI492iY.cjs';
93
93
  import { RefObject } from 'react';
@@ -105,6 +105,7 @@ export { A as AudioViewerProps } from './AudioViewer.types-CyhmQVQd.cjs';
105
105
  export { PdfViewer } from './pdf-viewer.cjs';
106
106
  export { P as PdfPageErrorContext, a as PdfPageSource, b as PdfViewerPolicy, c as PdfViewerProps, d as PdfViewerWatermark } from './PdfViewer.types-BRtcZt-X.cjs';
107
107
  export { J as JSON_FIELD_TYPES, a as JsonArray, b as JsonEditor, c as JsonEditorActivity, d as JsonEditorEdit, e as JsonEditorIssue, f as JsonEditorNode, g as JsonEditorPendingEdit, h as JsonEditorProps, i as JsonFieldType, j as JsonKeyMapEntry, k as JsonKeyRule, l as JsonObject, m as JsonPath, n as JsonPrimitive, o as JsonValue, P as ParsedKeyMap, p as applyJsonEdit, q as describeEdit, r as findJsonConflicts, s as getAtPath, t as inferType, u as parseKeyMap, v as parsePath, w as pathToString, x as resolveKeyRule, y as typeMatches } from './index-CEb-loCl.cjs';
108
+ export { S as SubmitRejection, a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.cjs';
108
109
 
109
110
  /**
110
111
  * A class value: a string, a number, a conditional map, an array of any of
package/dist/index.d.ts CHANGED
@@ -87,7 +87,7 @@ export { Kanban, KanbanCardMoveHandler, KanbanCardProps, KanbanColumnHandleProps
87
87
  export { DropPosition, TreeNav, TreeNavContextValue, TreeNavProps, TreeNodeData, TreeNodeProps, useTreeNav } from './tree-nav.js';
88
88
  export { FileBrowser, FileBrowserContextValue, FileBrowserNewFolder, FileBrowserNodeProps, FileBrowserPathBarProps, FileBrowserProps, FileBrowserProvider, FileBrowserRow, FileBrowserToolbarProps, FileBrowserTreeProps, FileEntry, FileKind, FileLoadStatus, FileSelectMode, FileSnapshotNode, FileSort, FileSortDirection, FileSortField, useFileBrowser, validateFolderName } from './file-browser.js';
89
89
  export { M as MediaKind, a as MediaViewer, b as MediaViewerProps, R as ResolveMediaTypeInput, r as resolveMediaType } from './index-BiyyxWtb.js';
90
- export { F as FancyPlatform, P as PlatformHints, a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptFocusOptions, g as PromptInput, h as PromptInputHandle, i as PromptInputProps, j as PromptMention, k as PromptSetDraftOptions, l as browserPlatformHints, m as detectPlatform, n as modifierKeyLabel, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-BQi_n6eS.js';
90
+ export { F as FancyPlatform, P as PlatformHints, a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptFocusOptions, g as PromptInput, h as PromptInputHandle, i as PromptInputProps, j as PromptMention, k as PromptSetDraftOptions, l as browserPlatformHints, m as detectPlatform, n as modifierKeyLabel, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-BAtF94lw.js';
91
91
  import { P as Placement } from './types-DJI492iY.js';
92
92
  export { A as ActionColor, B as ButtonColor, C as Color, S as Size, V as Variant } from './types-DJI492iY.js';
93
93
  import { RefObject } from 'react';
@@ -105,6 +105,7 @@ export { A as AudioViewerProps } from './AudioViewer.types-CyhmQVQd.js';
105
105
  export { PdfViewer } from './pdf-viewer.js';
106
106
  export { P as PdfPageErrorContext, a as PdfPageSource, b as PdfViewerPolicy, c as PdfViewerProps, d as PdfViewerWatermark } from './PdfViewer.types-sM52m3OI.js';
107
107
  export { J as JSON_FIELD_TYPES, a as JsonArray, b as JsonEditor, c as JsonEditorActivity, d as JsonEditorEdit, e as JsonEditorIssue, f as JsonEditorNode, g as JsonEditorPendingEdit, h as JsonEditorProps, i as JsonFieldType, j as JsonKeyMapEntry, k as JsonKeyRule, l as JsonObject, m as JsonPath, n as JsonPrimitive, o as JsonValue, P as ParsedKeyMap, p as applyJsonEdit, q as describeEdit, r as findJsonConflicts, s as getAtPath, t as inferType, u as parseKeyMap, v as parsePath, w as pathToString, x as resolveKeyRule, y as typeMatches } from './index-DeAJbVOn.js';
108
+ export { S as SubmitRejection, a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.js';
108
109
 
109
110
  /**
110
111
  * A class value: a string, a number, a conditional map, an array of any of