@particle-academy/react-fancy 5.68.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 (137) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/{PastedFilesInput-Bt3KSTVN.d.ts → PastedFilesInput-BT5y95sb.d.ts} +2 -1
  3. package/dist/{PastedFilesInput-CUQeOeOA.d.cts → PastedFilesInput-Cd4k6a38.d.cts} +2 -1
  4. package/dist/autocomplete.cjs +3 -2
  5. package/dist/autocomplete.js +2 -1
  6. package/dist/chunk-2C64OVOZ.cjs +18 -0
  7. package/dist/chunk-2C64OVOZ.cjs.map +1 -0
  8. package/dist/{chunk-BX7EDTL4.js → chunk-37D5PYEF.js} +4 -3
  9. package/dist/chunk-37D5PYEF.js.map +1 -0
  10. package/dist/{chunk-UJRMY54A.cjs → chunk-3QCAOD2W.cjs} +4 -2
  11. package/dist/chunk-3QCAOD2W.cjs.map +1 -0
  12. package/dist/{chunk-KSU6RYWU.cjs → chunk-3T3LBIQA.cjs} +4 -2
  13. package/dist/chunk-3T3LBIQA.cjs.map +1 -0
  14. package/dist/{chunk-E4DXICU3.cjs → chunk-5YRSYS2F.cjs} +10 -10
  15. package/dist/{chunk-E4DXICU3.cjs.map → chunk-5YRSYS2F.cjs.map} +1 -1
  16. package/dist/{chunk-U5LKNGHU.cjs → chunk-6EA3DSPT.cjs} +14 -13
  17. package/dist/chunk-6EA3DSPT.cjs.map +1 -0
  18. package/dist/{chunk-YIKXJWO4.js → chunk-6PRXG7L6.js} +7 -5
  19. package/dist/chunk-6PRXG7L6.js.map +1 -0
  20. package/dist/{chunk-WKPBCB67.cjs → chunk-6QAF35AJ.cjs} +4 -2
  21. package/dist/chunk-6QAF35AJ.cjs.map +1 -0
  22. package/dist/chunk-6V44RRSB.cjs +11 -0
  23. package/dist/chunk-6V44RRSB.cjs.map +1 -0
  24. package/dist/chunk-AC3W3TIV.js +67 -0
  25. package/dist/chunk-AC3W3TIV.js.map +1 -0
  26. package/dist/{chunk-G35XN5WV.js → chunk-CDW7MFPG.js} +4 -2
  27. package/dist/chunk-CDW7MFPG.js.map +1 -0
  28. package/dist/{chunk-DCAD2JPP.js → chunk-EZL5DILH.js} +7 -6
  29. package/dist/chunk-EZL5DILH.js.map +1 -0
  30. package/dist/{chunk-ARO2DNGS.js → chunk-EZZKHMR4.js} +4 -2
  31. package/dist/chunk-EZZKHMR4.js.map +1 -0
  32. package/dist/{chunk-TQ77ZWBD.js → chunk-F4GMOMUT.js} +3 -3
  33. package/dist/{chunk-TQ77ZWBD.js.map → chunk-F4GMOMUT.js.map} +1 -1
  34. package/dist/{chunk-R6URPHEP.cjs → chunk-FHRVSYJU.cjs} +4 -3
  35. package/dist/chunk-FHRVSYJU.cjs.map +1 -0
  36. package/dist/{chunk-QSGAFKK2.js → chunk-HN5J7TK6.js} +46 -11
  37. package/dist/chunk-HN5J7TK6.js.map +1 -0
  38. package/dist/{chunk-6CAXLP7D.cjs → chunk-HNJXBMHI.cjs} +6 -6
  39. package/dist/{chunk-6CAXLP7D.cjs.map → chunk-HNJXBMHI.cjs.map} +1 -1
  40. package/dist/chunk-I3LAFKJU.js +16 -0
  41. package/dist/chunk-I3LAFKJU.js.map +1 -0
  42. package/dist/{chunk-23AVEYUP.js → chunk-J7S42MJP.js} +87 -29
  43. package/dist/chunk-J7S42MJP.js.map +1 -0
  44. package/dist/{chunk-HFK5SBNM.cjs → chunk-KKYILQTG.cjs} +7 -5
  45. package/dist/chunk-KKYILQTG.cjs.map +1 -0
  46. package/dist/{chunk-7FYRFNPX.cjs → chunk-LBSAWRFT.cjs} +52 -17
  47. package/dist/chunk-LBSAWRFT.cjs.map +1 -0
  48. package/dist/{chunk-FVI4JDLA.js → chunk-M6UAVA2I.js} +4 -2
  49. package/dist/chunk-M6UAVA2I.js.map +1 -0
  50. package/dist/{chunk-2LQR4EAN.js → chunk-NAYXNVNU.js} +7 -3
  51. package/dist/chunk-NAYXNVNU.js.map +1 -0
  52. package/dist/{chunk-G5DMYAWL.cjs → chunk-O5ORO2RX.cjs} +5 -2
  53. package/dist/chunk-O5ORO2RX.cjs.map +1 -0
  54. package/dist/{chunk-B4LVQ4QI.js → chunk-PJNUGSKI.js} +3 -3
  55. package/dist/{chunk-B4LVQ4QI.js.map → chunk-PJNUGSKI.js.map} +1 -1
  56. package/dist/{chunk-464QSZ4A.cjs → chunk-R3EJNGJV.cjs} +7 -3
  57. package/dist/chunk-R3EJNGJV.cjs.map +1 -0
  58. package/dist/chunk-S42OGG43.js +9 -0
  59. package/dist/chunk-S42OGG43.js.map +1 -0
  60. package/dist/{chunk-VZNBTCGA.js → chunk-TCMOD3WW.js} +4 -3
  61. package/dist/chunk-TCMOD3WW.js.map +1 -0
  62. package/dist/{chunk-6MXFZ3B5.cjs → chunk-UK6BGM74.cjs} +4 -3
  63. package/dist/chunk-UK6BGM74.cjs.map +1 -0
  64. package/dist/{chunk-XS3EIQFP.js → chunk-WZAKEJDL.js} +5 -2
  65. package/dist/chunk-WZAKEJDL.js.map +1 -0
  66. package/dist/{chunk-SAG6DHQK.cjs → chunk-XAKZ6VBP.cjs} +92 -34
  67. package/dist/chunk-XAKZ6VBP.cjs.map +1 -0
  68. package/dist/chunk-XNHAJQRF.cjs +69 -0
  69. package/dist/chunk-XNHAJQRF.cjs.map +1 -0
  70. package/dist/command.cjs +4 -3
  71. package/dist/command.js +2 -1
  72. package/dist/composer.cjs +7 -4
  73. package/dist/composer.d.cts +44 -2
  74. package/dist/composer.d.ts +44 -2
  75. package/dist/composer.js +5 -2
  76. package/dist/content-renderer.cjs +5 -4
  77. package/dist/content-renderer.js +2 -1
  78. package/dist/editor.cjs +5 -4
  79. package/dist/editor.js +3 -2
  80. package/dist/file-browser.cjs +6 -5
  81. package/dist/file-browser.js +2 -1
  82. package/dist/{index-XR5t8bTq.d.ts → index-BAtF94lw.d.ts} +69 -5
  83. package/dist/{index-DWtSViJ3.d.cts → index-xwL2MACB.d.cts} +69 -5
  84. package/dist/index.cjs +61 -58
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.d.cts +3 -2
  87. package/dist/index.d.ts +3 -2
  88. package/dist/index.js +16 -13
  89. package/dist/index.js.map +1 -1
  90. package/dist/input-tag.cjs +7 -6
  91. package/dist/input-tag.js +2 -1
  92. package/dist/input.cjs +4 -3
  93. package/dist/input.js +3 -2
  94. package/dist/inputs.cjs +6 -5
  95. package/dist/inputs.js +4 -3
  96. package/dist/json-editor.cjs +16 -15
  97. package/dist/json-editor.js +5 -4
  98. package/dist/paste-pills.cjs +15 -14
  99. package/dist/paste-pills.d.cts +1 -1
  100. package/dist/paste-pills.d.ts +1 -1
  101. package/dist/paste-pills.js +2 -1
  102. package/dist/pillbox.cjs +3 -2
  103. package/dist/pillbox.js +2 -1
  104. package/dist/prompt-input.cjs +8 -5
  105. package/dist/prompt-input.d.cts +2 -1
  106. package/dist/prompt-input.d.ts +2 -1
  107. package/dist/prompt-input.js +5 -2
  108. package/dist/select.cjs +3 -2
  109. package/dist/select.js +2 -1
  110. package/dist/use-acknowledged-submit-7nC0vSCP.d.cts +12 -0
  111. package/dist/use-acknowledged-submit-7nC0vSCP.d.ts +12 -0
  112. package/docs/Composer.md +62 -2
  113. package/docs/ContentRenderer.md +4 -1
  114. package/docs/PromptInput.md +67 -6
  115. package/package.json +1 -1
  116. package/dist/chunk-23AVEYUP.js.map +0 -1
  117. package/dist/chunk-2LQR4EAN.js.map +0 -1
  118. package/dist/chunk-464QSZ4A.cjs.map +0 -1
  119. package/dist/chunk-6MXFZ3B5.cjs.map +0 -1
  120. package/dist/chunk-7FYRFNPX.cjs.map +0 -1
  121. package/dist/chunk-ARO2DNGS.js.map +0 -1
  122. package/dist/chunk-BX7EDTL4.js.map +0 -1
  123. package/dist/chunk-DCAD2JPP.js.map +0 -1
  124. package/dist/chunk-FVI4JDLA.js.map +0 -1
  125. package/dist/chunk-G35XN5WV.js.map +0 -1
  126. package/dist/chunk-G5DMYAWL.cjs.map +0 -1
  127. package/dist/chunk-HFK5SBNM.cjs.map +0 -1
  128. package/dist/chunk-KSU6RYWU.cjs.map +0 -1
  129. package/dist/chunk-QSGAFKK2.js.map +0 -1
  130. package/dist/chunk-R6URPHEP.cjs.map +0 -1
  131. package/dist/chunk-SAG6DHQK.cjs.map +0 -1
  132. package/dist/chunk-U5LKNGHU.cjs.map +0 -1
  133. package/dist/chunk-UJRMY54A.cjs.map +0 -1
  134. package/dist/chunk-VZNBTCGA.js.map +0 -1
  135. package/dist/chunk-WKPBCB67.cjs.map +0 -1
  136. package/dist/chunk-XS3EIQFP.js.map +0 -1
  137. package/dist/chunk-YIKXJWO4.js.map +0 -1
package/dist/input.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import './chunk-SHDSKHCC.js';
2
- export { Input } from './chunk-B4LVQ4QI.js';
2
+ export { Input } from './chunk-PJNUGSKI.js';
3
3
  import './chunk-KXYMMNNV.js';
4
4
  import './chunk-WX5XYDVN.js';
5
5
  import './chunk-5WQ6FPSP.js';
6
6
  import './chunk-USWQAMI3.js';
7
- import './chunk-YIKXJWO4.js';
7
+ import './chunk-6PRXG7L6.js';
8
8
  import './chunk-QTS4Q2NK.js';
9
9
  import './chunk-OL53XYHF.js';
10
10
  import './chunk-NRXK42LO.js';
11
11
  import './chunk-MQ6VGG62.js';
12
+ import './chunk-S42OGG43.js';
12
13
  import './chunk-5VMILVWD.js';
13
14
  import './chunk-RBCMKPBX.js';
14
15
  import './chunk-RGANGU7X.js';
package/dist/inputs.cjs CHANGED
@@ -15,18 +15,19 @@ require('./chunk-HXLSEBAL.cjs');
15
15
  require('./chunk-I27K6NLX.cjs');
16
16
  var chunk2O5UXH5R_cjs = require('./chunk-2O5UXH5R.cjs');
17
17
  var chunkTLRFXSPA_cjs = require('./chunk-TLRFXSPA.cjs');
18
- var chunk6CAXLP7D_cjs = require('./chunk-6CAXLP7D.cjs');
19
- var chunkWKPBCB67_cjs = require('./chunk-WKPBCB67.cjs');
18
+ var chunkHNJXBMHI_cjs = require('./chunk-HNJXBMHI.cjs');
19
+ var chunk6QAF35AJ_cjs = require('./chunk-6QAF35AJ.cjs');
20
20
  var chunkMAZEX4EZ_cjs = require('./chunk-MAZEX4EZ.cjs');
21
21
  require('./chunk-MRZXTL46.cjs');
22
22
  var chunkP53432AK_cjs = require('./chunk-P53432AK.cjs');
23
23
  var chunkQF7CD4JH_cjs = require('./chunk-QF7CD4JH.cjs');
24
24
  require('./chunk-O3F6DYWR.cjs');
25
- require('./chunk-HFK5SBNM.cjs');
25
+ require('./chunk-KKYILQTG.cjs');
26
26
  require('./chunk-MKGWHSNV.cjs');
27
27
  var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
28
28
  var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
29
29
  require('./chunk-J2DI6RMR.cjs');
30
+ require('./chunk-6V44RRSB.cjs');
30
31
  require('./chunk-MKHYENKR.cjs');
31
32
  require('./chunk-TI7D4QDM.cjs');
32
33
  require('./chunk-57FQGQJK.cjs');
@@ -74,11 +75,11 @@ Object.defineProperty(exports, "DatePicker", {
74
75
  });
75
76
  Object.defineProperty(exports, "Input", {
76
77
  enumerable: true,
77
- get: function () { return chunk6CAXLP7D_cjs.Input; }
78
+ get: function () { return chunkHNJXBMHI_cjs.Input; }
78
79
  });
79
80
  Object.defineProperty(exports, "Select", {
80
81
  enumerable: true,
81
- get: function () { return chunkWKPBCB67_cjs.Select; }
82
+ get: function () { return chunk6QAF35AJ_cjs.Select; }
82
83
  });
83
84
  Object.defineProperty(exports, "Textarea", {
84
85
  enumerable: true,
package/dist/inputs.js CHANGED
@@ -13,18 +13,19 @@ import './chunk-GNHQVPZP.js';
13
13
  import './chunk-SV5BW3IA.js';
14
14
  export { Switch } from './chunk-DXZCKDYS.js';
15
15
  export { DatePicker } from './chunk-2UTN3EFK.js';
16
- export { Input } from './chunk-B4LVQ4QI.js';
17
- export { Select } from './chunk-FVI4JDLA.js';
16
+ export { Input } from './chunk-PJNUGSKI.js';
17
+ export { Select } from './chunk-M6UAVA2I.js';
18
18
  export { Textarea } from './chunk-UVUBV4VZ.js';
19
19
  import './chunk-KXYMMNNV.js';
20
20
  export { DisplayValue } from './chunk-WX5XYDVN.js';
21
21
  export { Field } from './chunk-5WQ6FPSP.js';
22
22
  import './chunk-USWQAMI3.js';
23
- import './chunk-YIKXJWO4.js';
23
+ import './chunk-6PRXG7L6.js';
24
24
  import './chunk-QTS4Q2NK.js';
25
25
  export { useInlineEdit } from './chunk-OL53XYHF.js';
26
26
  export { FieldModeContext, useFieldMode } from './chunk-NRXK42LO.js';
27
27
  import './chunk-MQ6VGG62.js';
28
+ import './chunk-S42OGG43.js';
28
29
  import './chunk-5VMILVWD.js';
29
30
  import './chunk-RBCMKPBX.js';
30
31
  import './chunk-RGANGU7X.js';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkU5LKNGHU_cjs = require('./chunk-U5LKNGHU.cjs');
3
+ var chunk6EA3DSPT_cjs = require('./chunk-6EA3DSPT.cjs');
4
4
  require('./chunk-2O5UXH5R.cjs');
5
5
  require('./chunk-TLRFXSPA.cjs');
6
- require('./chunk-6CAXLP7D.cjs');
7
- require('./chunk-WKPBCB67.cjs');
6
+ require('./chunk-HNJXBMHI.cjs');
7
+ require('./chunk-6QAF35AJ.cjs');
8
8
  require('./chunk-MAZEX4EZ.cjs');
9
9
  require('./chunk-MRZXTL46.cjs');
10
10
  require('./chunk-P53432AK.cjs');
@@ -12,11 +12,12 @@ require('./chunk-QF7CD4JH.cjs');
12
12
  require('./chunk-O3F6DYWR.cjs');
13
13
  require('./chunk-4XMBXG4K.cjs');
14
14
  require('./chunk-GKLETY7D.cjs');
15
- require('./chunk-HFK5SBNM.cjs');
15
+ require('./chunk-KKYILQTG.cjs');
16
16
  require('./chunk-MKGWHSNV.cjs');
17
17
  require('./chunk-KJ22KE56.cjs');
18
18
  require('./chunk-L3V3BYVS.cjs');
19
19
  require('./chunk-J2DI6RMR.cjs');
20
+ require('./chunk-6V44RRSB.cjs');
20
21
  require('./chunk-MKHYENKR.cjs');
21
22
  require('./chunk-TI7D4QDM.cjs');
22
23
  require('./chunk-MOU6O324.cjs');
@@ -33,47 +34,47 @@ require('./chunk-ZU5Q77OT.cjs');
33
34
 
34
35
  Object.defineProperty(exports, "JsonEditor", {
35
36
  enumerable: true,
36
- get: function () { return chunkU5LKNGHU_cjs.JsonEditor; }
37
+ get: function () { return chunk6EA3DSPT_cjs.JsonEditor; }
37
38
  });
38
39
  Object.defineProperty(exports, "applyJsonEdit", {
39
40
  enumerable: true,
40
- get: function () { return chunkU5LKNGHU_cjs.applyJsonEdit; }
41
+ get: function () { return chunk6EA3DSPT_cjs.applyJsonEdit; }
41
42
  });
42
43
  Object.defineProperty(exports, "describeEdit", {
43
44
  enumerable: true,
44
- get: function () { return chunkU5LKNGHU_cjs.describeEdit; }
45
+ get: function () { return chunk6EA3DSPT_cjs.describeEdit; }
45
46
  });
46
47
  Object.defineProperty(exports, "findJsonConflicts", {
47
48
  enumerable: true,
48
- get: function () { return chunkU5LKNGHU_cjs.findJsonConflicts; }
49
+ get: function () { return chunk6EA3DSPT_cjs.findJsonConflicts; }
49
50
  });
50
51
  Object.defineProperty(exports, "getAtPath", {
51
52
  enumerable: true,
52
- get: function () { return chunkU5LKNGHU_cjs.getAtPath; }
53
+ get: function () { return chunk6EA3DSPT_cjs.getAtPath; }
53
54
  });
54
55
  Object.defineProperty(exports, "inferType", {
55
56
  enumerable: true,
56
- get: function () { return chunkU5LKNGHU_cjs.inferType; }
57
+ get: function () { return chunk6EA3DSPT_cjs.inferType; }
57
58
  });
58
59
  Object.defineProperty(exports, "parseKeyMap", {
59
60
  enumerable: true,
60
- get: function () { return chunkU5LKNGHU_cjs.parseKeyMap; }
61
+ get: function () { return chunk6EA3DSPT_cjs.parseKeyMap; }
61
62
  });
62
63
  Object.defineProperty(exports, "parsePath", {
63
64
  enumerable: true,
64
- get: function () { return chunkU5LKNGHU_cjs.parsePath; }
65
+ get: function () { return chunk6EA3DSPT_cjs.parsePath; }
65
66
  });
66
67
  Object.defineProperty(exports, "pathToString", {
67
68
  enumerable: true,
68
- get: function () { return chunkU5LKNGHU_cjs.pathToString; }
69
+ get: function () { return chunk6EA3DSPT_cjs.pathToString; }
69
70
  });
70
71
  Object.defineProperty(exports, "resolveKeyRule", {
71
72
  enumerable: true,
72
- get: function () { return chunkU5LKNGHU_cjs.resolveKeyRule; }
73
+ get: function () { return chunk6EA3DSPT_cjs.resolveKeyRule; }
73
74
  });
74
75
  Object.defineProperty(exports, "typeMatches", {
75
76
  enumerable: true,
76
- get: function () { return chunkU5LKNGHU_cjs.typeMatches; }
77
+ get: function () { return chunk6EA3DSPT_cjs.typeMatches; }
77
78
  });
78
79
  //# sourceMappingURL=json-editor.cjs.map
79
80
  //# sourceMappingURL=json-editor.cjs.map
@@ -1,8 +1,8 @@
1
- export { JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-DCAD2JPP.js';
1
+ export { JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-EZL5DILH.js';
2
2
  import './chunk-DXZCKDYS.js';
3
3
  import './chunk-2UTN3EFK.js';
4
- import './chunk-B4LVQ4QI.js';
5
- import './chunk-FVI4JDLA.js';
4
+ import './chunk-PJNUGSKI.js';
5
+ import './chunk-M6UAVA2I.js';
6
6
  import './chunk-UVUBV4VZ.js';
7
7
  import './chunk-KXYMMNNV.js';
8
8
  import './chunk-WX5XYDVN.js';
@@ -10,11 +10,12 @@ import './chunk-5WQ6FPSP.js';
10
10
  import './chunk-USWQAMI3.js';
11
11
  import './chunk-XM3V3RSU.js';
12
12
  import './chunk-SVSQXKFL.js';
13
- import './chunk-YIKXJWO4.js';
13
+ import './chunk-6PRXG7L6.js';
14
14
  import './chunk-QTS4Q2NK.js';
15
15
  import './chunk-OL53XYHF.js';
16
16
  import './chunk-NRXK42LO.js';
17
17
  import './chunk-MQ6VGG62.js';
18
+ import './chunk-S42OGG43.js';
18
19
  import './chunk-5VMILVWD.js';
19
20
  import './chunk-RBCMKPBX.js';
20
21
  import './chunk-6FCQD2KQ.js';
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkHFK5SBNM_cjs = require('./chunk-HFK5SBNM.cjs');
3
+ var chunkKKYILQTG_cjs = require('./chunk-KKYILQTG.cjs');
4
4
  require('./chunk-MKGWHSNV.cjs');
5
5
  require('./chunk-J2DI6RMR.cjs');
6
+ require('./chunk-6V44RRSB.cjs');
6
7
  require('./chunk-MKHYENKR.cjs');
7
8
  require('./chunk-TI7D4QDM.cjs');
8
9
  require('./chunk-57FQGQJK.cjs');
@@ -14,55 +15,55 @@ require('./chunk-ZU5Q77OT.cjs');
14
15
 
15
16
  Object.defineProperty(exports, "HOST_ATTR", {
16
17
  enumerable: true,
17
- get: function () { return chunkHFK5SBNM_cjs.HOST_ATTR; }
18
+ get: function () { return chunkKKYILQTG_cjs.HOST_ATTR; }
18
19
  });
19
20
  Object.defineProperty(exports, "InlinePasteEditor", {
20
21
  enumerable: true,
21
- get: function () { return chunkHFK5SBNM_cjs.InlinePasteEditor; }
22
+ get: function () { return chunkKKYILQTG_cjs.InlinePasteEditor; }
22
23
  });
23
24
  Object.defineProperty(exports, "InlinePill", {
24
25
  enumerable: true,
25
- get: function () { return chunkHFK5SBNM_cjs.InlinePill; }
26
+ get: function () { return chunkKKYILQTG_cjs.InlinePill; }
26
27
  });
27
28
  Object.defineProperty(exports, "PILL_MARK", {
28
29
  enumerable: true,
29
- get: function () { return chunkHFK5SBNM_cjs.PILL_MARK; }
30
+ get: function () { return chunkKKYILQTG_cjs.PILL_MARK; }
30
31
  });
31
32
  Object.defineProperty(exports, "PastedFilesInput", {
32
33
  enumerable: true,
33
- get: function () { return chunkHFK5SBNM_cjs.PastedFilesInput; }
34
+ get: function () { return chunkKKYILQTG_cjs.PastedFilesInput; }
34
35
  });
35
36
  Object.defineProperty(exports, "endsOf", {
36
37
  enumerable: true,
37
- get: function () { return chunkHFK5SBNM_cjs.endsOf; }
38
+ get: function () { return chunkKKYILQTG_cjs.endsOf; }
38
39
  });
39
40
  Object.defineProperty(exports, "expandMarkers", {
40
41
  enumerable: true,
41
- get: function () { return chunkHFK5SBNM_cjs.expandMarkers; }
42
+ get: function () { return chunkKKYILQTG_cjs.expandMarkers; }
42
43
  });
43
44
  Object.defineProperty(exports, "markedIds", {
44
45
  enumerable: true,
45
- get: function () { return chunkHFK5SBNM_cjs.markedIds; }
46
+ get: function () { return chunkKKYILQTG_cjs.markedIds; }
46
47
  });
47
48
  Object.defineProperty(exports, "pasteMarker", {
48
49
  enumerable: true,
49
- get: function () { return chunkHFK5SBNM_cjs.pasteMarker; }
50
+ get: function () { return chunkKKYILQTG_cjs.pasteMarker; }
50
51
  });
51
52
  Object.defineProperty(exports, "segmentValue", {
52
53
  enumerable: true,
53
- get: function () { return chunkHFK5SBNM_cjs.segmentValue; }
54
+ get: function () { return chunkKKYILQTG_cjs.segmentValue; }
54
55
  });
55
56
  Object.defineProperty(exports, "useInlinePaste", {
56
57
  enumerable: true,
57
- get: function () { return chunkHFK5SBNM_cjs.useInlinePaste; }
58
+ get: function () { return chunkKKYILQTG_cjs.useInlinePaste; }
58
59
  });
59
60
  Object.defineProperty(exports, "usePastePills", {
60
61
  enumerable: true,
61
- get: function () { return chunkHFK5SBNM_cjs.usePastePills; }
62
+ get: function () { return chunkKKYILQTG_cjs.usePastePills; }
62
63
  });
63
64
  Object.defineProperty(exports, "withSeparators", {
64
65
  enumerable: true,
65
- get: function () { return chunkHFK5SBNM_cjs.withSeparators; }
66
+ get: function () { return chunkKKYILQTG_cjs.withSeparators; }
66
67
  });
67
68
  //# sourceMappingURL=paste-pills.cjs.map
68
69
  //# sourceMappingURL=paste-pills.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { C as ComposerPastePreview, a as ComposerPasteClassNames } from './PastePills.types-CpXzsuwJ.cjs';
2
2
  export { H as HeldImage, b as HeldPaste, P as PILL_MARK, c as PasteClassNames, d as PasteEventLike, e as PastePreview, U as UsePastePillsOptions, f as UsePastePillsResult, V as ValueSegment, g as expandMarkers, m as markedIds, p as pasteMarker, s as segmentValue, u as usePastePills } from './PastePills.types-CpXzsuwJ.cjs';
3
- export { H as HOST_ATTR, I as InlinePasteEditor, a as InlinePasteEditorHandle, P as PastedFilesInput, b as PastedFilesInputProps, c as PillToInsert, U as UseInlinePasteOptions, u as useInlinePaste } from './PastedFilesInput-CUQeOeOA.cjs';
3
+ export { H as HOST_ATTR, I as InlinePasteEditor, a as InlinePasteEditorHandle, P as PastedFilesInput, b as PastedFilesInputProps, c as PillToInsert, U as UseInlinePasteOptions, u as useInlinePaste } from './PastedFilesInput-Cd4k6a38.cjs';
4
4
  import * as react from 'react';
5
5
  import { ReactNode } from 'react';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { C as ComposerPastePreview, a as ComposerPasteClassNames } from './PastePills.types-CpXzsuwJ.js';
2
2
  export { H as HeldImage, b as HeldPaste, P as PILL_MARK, c as PasteClassNames, d as PasteEventLike, e as PastePreview, U as UsePastePillsOptions, f as UsePastePillsResult, V as ValueSegment, g as expandMarkers, m as markedIds, p as pasteMarker, s as segmentValue, u as usePastePills } from './PastePills.types-CpXzsuwJ.js';
3
- export { H as HOST_ATTR, I as InlinePasteEditor, a as InlinePasteEditorHandle, P as PastedFilesInput, b as PastedFilesInputProps, c as PillToInsert, U as UseInlinePasteOptions, u as useInlinePaste } from './PastedFilesInput-Bt3KSTVN.js';
3
+ export { H as HOST_ATTR, I as InlinePasteEditor, a as InlinePasteEditorHandle, P as PastedFilesInput, b as PastedFilesInputProps, c as PillToInsert, U as UseInlinePasteOptions, u as useInlinePaste } from './PastedFilesInput-BT5y95sb.js';
4
4
  import * as react from 'react';
5
5
  import { ReactNode } from 'react';
6
6
 
@@ -1,6 +1,7 @@
1
- export { HOST_ATTR, InlinePasteEditor, InlinePill, PILL_MARK, PastedFilesInput, endsOf, expandMarkers, markedIds, pasteMarker, segmentValue, useInlinePaste, usePastePills, withSeparators } from './chunk-YIKXJWO4.js';
1
+ export { HOST_ATTR, InlinePasteEditor, InlinePill, PILL_MARK, PastedFilesInput, endsOf, expandMarkers, markedIds, pasteMarker, segmentValue, useInlinePaste, usePastePills, withSeparators } from './chunk-6PRXG7L6.js';
2
2
  import './chunk-QTS4Q2NK.js';
3
3
  import './chunk-MQ6VGG62.js';
4
+ import './chunk-S42OGG43.js';
4
5
  import './chunk-5VMILVWD.js';
5
6
  import './chunk-RBCMKPBX.js';
6
7
  import './chunk-RGANGU7X.js';
package/dist/pillbox.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkKSU6RYWU_cjs = require('./chunk-KSU6RYWU.cjs');
3
+ var chunk3T3LBIQA_cjs = require('./chunk-3T3LBIQA.cjs');
4
+ require('./chunk-6V44RRSB.cjs');
4
5
  require('./chunk-SNHU2AI4.cjs');
5
6
  require('./chunk-ZU5Q77OT.cjs');
6
7
 
@@ -8,7 +9,7 @@ require('./chunk-ZU5Q77OT.cjs');
8
9
 
9
10
  Object.defineProperty(exports, "Pillbox", {
10
11
  enumerable: true,
11
- get: function () { return chunkKSU6RYWU_cjs.Pillbox; }
12
+ get: function () { return chunk3T3LBIQA_cjs.Pillbox; }
12
13
  });
13
14
  //# sourceMappingURL=pillbox.cjs.map
14
15
  //# sourceMappingURL=pillbox.cjs.map
package/dist/pillbox.js CHANGED
@@ -1,4 +1,5 @@
1
- export { Pillbox } from './chunk-G35XN5WV.js';
1
+ export { Pillbox } from './chunk-CDW7MFPG.js';
2
+ import './chunk-S42OGG43.js';
2
3
  import './chunk-EDYAXGUM.js';
3
4
  import './chunk-MMW2JGKZ.js';
4
5
  //# sourceMappingURL=pillbox.js.map
@@ -1,12 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkSAG6DHQK_cjs = require('./chunk-SAG6DHQK.cjs');
3
+ var chunkXAKZ6VBP_cjs = require('./chunk-XAKZ6VBP.cjs');
4
4
  require('./chunk-OASSZI6M.cjs');
5
5
  require('./chunk-I27K6NLX.cjs');
6
6
  require('./chunk-AIA5UNQ5.cjs');
7
- require('./chunk-HFK5SBNM.cjs');
7
+ require('./chunk-XNHAJQRF.cjs');
8
+ require('./chunk-KKYILQTG.cjs');
8
9
  require('./chunk-MKGWHSNV.cjs');
10
+ require('./chunk-2C64OVOZ.cjs');
9
11
  require('./chunk-J2DI6RMR.cjs');
12
+ require('./chunk-6V44RRSB.cjs');
10
13
  require('./chunk-MKHYENKR.cjs');
11
14
  require('./chunk-TI7D4QDM.cjs');
12
15
  require('./chunk-57FQGQJK.cjs');
@@ -22,15 +25,15 @@ require('./chunk-ZU5Q77OT.cjs');
22
25
 
23
26
  Object.defineProperty(exports, "PromptInput", {
24
27
  enumerable: true,
25
- get: function () { return chunkSAG6DHQK_cjs.PromptInput; }
28
+ get: function () { return chunkXAKZ6VBP_cjs.PromptInput; }
26
29
  });
27
30
  Object.defineProperty(exports, "promptDataUrlToFile", {
28
31
  enumerable: true,
29
- get: function () { return chunkSAG6DHQK_cjs.promptDataUrlToFile; }
32
+ get: function () { return chunkXAKZ6VBP_cjs.promptDataUrlToFile; }
30
33
  });
31
34
  Object.defineProperty(exports, "promptFileToDataUrl", {
32
35
  enumerable: true,
33
- get: function () { return chunkSAG6DHQK_cjs.promptFileToDataUrl; }
36
+ get: function () { return chunkXAKZ6VBP_cjs.promptFileToDataUrl; }
34
37
  });
35
38
  //# sourceMappingURL=prompt-input.cjs.map
36
39
  //# sourceMappingURL=prompt-input.cjs.map
@@ -1,3 +1,4 @@
1
- export { a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptInput, g as PromptInputHandle, h as PromptInputProps, i as PromptMention, j as PromptSetDraftOptions, p as promptDataUrlToFile, n as promptFileToDataUrl } from './index-DWtSViJ3.cjs';
1
+ export { 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, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-xwL2MACB.cjs';
2
+ export { S as SubmitRejection, a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.cjs';
2
3
  import 'react';
3
4
  import './PastePills.types-CpXzsuwJ.cjs';
@@ -1,3 +1,4 @@
1
- export { a as PromptAttachment, b as PromptCmd, c as PromptDraft, d as PromptDraftFile, e as PromptDraftPill, f as PromptInput, g as PromptInputHandle, h as PromptInputProps, i as PromptMention, j as PromptSetDraftOptions, p as promptDataUrlToFile, n as promptFileToDataUrl } from './index-XR5t8bTq.js';
1
+ export { 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, p as promptDataUrlToFile, o as promptFileToDataUrl } from './index-BAtF94lw.js';
2
+ export { S as SubmitRejection, a as SubmitResult } from './use-acknowledged-submit-7nC0vSCP.js';
2
3
  import 'react';
3
4
  import './PastePills.types-CpXzsuwJ.js';
@@ -1,10 +1,13 @@
1
- export { PromptInput, promptDataUrlToFile, promptFileToDataUrl } from './chunk-23AVEYUP.js';
1
+ export { PromptInput, promptDataUrlToFile, promptFileToDataUrl } from './chunk-J7S42MJP.js';
2
2
  import './chunk-GR2WKBER.js';
3
3
  import './chunk-SV5BW3IA.js';
4
4
  import './chunk-TJ66S5K6.js';
5
- import './chunk-YIKXJWO4.js';
5
+ import './chunk-AC3W3TIV.js';
6
+ import './chunk-6PRXG7L6.js';
6
7
  import './chunk-QTS4Q2NK.js';
8
+ import './chunk-I3LAFKJU.js';
7
9
  import './chunk-MQ6VGG62.js';
10
+ import './chunk-S42OGG43.js';
8
11
  import './chunk-5VMILVWD.js';
9
12
  import './chunk-RBCMKPBX.js';
10
13
  import './chunk-RGANGU7X.js';
package/dist/select.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  require('./chunk-HXLSEBAL.cjs');
4
- var chunkWKPBCB67_cjs = require('./chunk-WKPBCB67.cjs');
4
+ var chunk6QAF35AJ_cjs = require('./chunk-6QAF35AJ.cjs');
5
5
  require('./chunk-MRZXTL46.cjs');
6
6
  require('./chunk-P53432AK.cjs');
7
7
  require('./chunk-QF7CD4JH.cjs');
@@ -9,6 +9,7 @@ require('./chunk-O3F6DYWR.cjs');
9
9
  require('./chunk-KJ22KE56.cjs');
10
10
  require('./chunk-L3V3BYVS.cjs');
11
11
  require('./chunk-J2DI6RMR.cjs');
12
+ require('./chunk-6V44RRSB.cjs');
12
13
  require('./chunk-MKHYENKR.cjs');
13
14
  require('./chunk-TI7D4QDM.cjs');
14
15
  require('./chunk-57FQGQJK.cjs');
@@ -19,7 +20,7 @@ require('./chunk-ZU5Q77OT.cjs');
19
20
 
20
21
  Object.defineProperty(exports, "Select", {
21
22
  enumerable: true,
22
- get: function () { return chunkWKPBCB67_cjs.Select; }
23
+ get: function () { return chunk6QAF35AJ_cjs.Select; }
23
24
  });
24
25
  //# sourceMappingURL=select.cjs.map
25
26
  //# sourceMappingURL=select.cjs.map
package/dist/select.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import './chunk-GNHQVPZP.js';
2
- export { Select } from './chunk-FVI4JDLA.js';
2
+ export { Select } from './chunk-M6UAVA2I.js';
3
3
  import './chunk-KXYMMNNV.js';
4
4
  import './chunk-WX5XYDVN.js';
5
5
  import './chunk-5WQ6FPSP.js';
@@ -7,6 +7,7 @@ import './chunk-USWQAMI3.js';
7
7
  import './chunk-OL53XYHF.js';
8
8
  import './chunk-NRXK42LO.js';
9
9
  import './chunk-MQ6VGG62.js';
10
+ import './chunk-S42OGG43.js';
10
11
  import './chunk-5VMILVWD.js';
11
12
  import './chunk-RBCMKPBX.js';
12
13
  import './chunk-RGANGU7X.js';
@@ -0,0 +1,12 @@
1
+ /** What an `onSubmit` Promise resolves to when the host refuses the send. */
2
+ type SubmitRejection = {
3
+ ok: false;
4
+ error?: string;
5
+ };
6
+ /**
7
+ * What an `onSubmit` Promise may resolve to. Anything other than a
8
+ * `SubmitRejection` (including `undefined`) means the send was accepted.
9
+ */
10
+ type SubmitResult = void | SubmitRejection;
11
+
12
+ export type { SubmitRejection as S, SubmitResult as a };
@@ -0,0 +1,12 @@
1
+ /** What an `onSubmit` Promise resolves to when the host refuses the send. */
2
+ type SubmitRejection = {
3
+ ok: false;
4
+ error?: string;
5
+ };
6
+ /**
7
+ * What an `onSubmit` Promise may resolve to. Anything other than a
8
+ * `SubmitRejection` (including `undefined`) means the send was accepted.
9
+ */
10
+ type SubmitResult = void | SubmitRejection;
11
+
12
+ export type { SubmitRejection as S, SubmitResult as a };
package/docs/Composer.md CHANGED
@@ -24,12 +24,72 @@ import { Composer } from "@particle-academy/react-fancy";
24
24
  | value | `string` | - | Controlled input value |
25
25
  | defaultValue | `string` | `""` | Default value (uncontrolled) |
26
26
  | onChange | `(value: string) => void` | - | Callback on input change |
27
- | onSubmit | `(value: string) => void` | - | Callback when Enter is pressed (without Shift) |
27
+ | onSubmit | `(value, extras) => void \| Promise<SubmitResult>` | - | Called on Enter (without Shift, and not while an IME composition is being confirmed) or the send button. Return a Promise to hold the message until the send is acknowledged; see [Acknowledged send](#acknowledged-send) |
28
+ | onSubmitError | `(error: unknown) => void` | - | Called when a Promise from `onSubmit` rejects (with the reason) or resolves `{ ok: false }` (with its `error`). The message is kept |
28
29
  | placeholder | `string` | `"Type a message..."` | Textarea placeholder |
29
30
  | actions | `ReactNode` | - | Custom action buttons rendered in the bottom toolbar |
30
- | disabled | `boolean` | `false` | Disable input and submit |
31
+ | disabled | `boolean` | `false` | Disable the text, the pills and the send |
32
+ | sendDisabled | `boolean` | `false` | Disable only the send. The text stays editable; Enter does not send |
33
+ | name | `string` | - | Form field name for the text. On the textarea; with `pastePlacement="inline"`, on a hidden input carrying the expanded text |
34
+ | inputId | `string` | - | `id` of the text field, in either placement |
31
35
  | className | `string` | - | Additional CSS classes |
32
36
 
37
+ ## Acknowledged send
38
+
39
+ Return a Promise from `onSubmit` and the message stays until the send is
40
+ acknowledged. While it is pending the send button is disabled and
41
+ `aria-busy`, a second send is refused, and the root carries
42
+ `data-submit-state="submitting"`. The text stays editable.
43
+
44
+ - **Resolves** (to anything but `{ ok: false }`): the message clears, exactly
45
+ as a void `onSubmit` clears it. If the person edited the message while the
46
+ send was in flight, their newer text is kept rather than discarded.
47
+ - **Rejects, or resolves `{ ok: false, error? }`**: the text and held pastes
48
+ are kept, `onSubmitError` is called, the root carries
49
+ `data-submit-state="error"`, and a visually hidden `role="alert"`
50
+ (`[data-react-fancy-composer-error]`) announces the failure. The next send
51
+ clears it.
52
+
53
+ ```tsx
54
+ <Composer
55
+ name="message"
56
+ inputId="chat-message"
57
+ sendDisabled={agentIsAnswering}
58
+ onSubmit={async (text) => {
59
+ const res = await fetch("/api/messages", {
60
+ method: "POST",
61
+ body: JSON.stringify({ text }),
62
+ });
63
+ if (!res.ok) return { ok: false, error: "The server did not accept it." };
64
+ }}
65
+ onSubmitError={(error) => toast.error(String(error ?? "Message not sent"))}
66
+ />
67
+ ```
68
+
69
+ A void `onSubmit` behaves exactly as it always has: the message clears at once.
70
+ An `onSubmit` that was ALREADY `async` now waits for its Promise before
71
+ clearing, and keeps the message if it rejects.
72
+
73
+ **Controlled `value`:** the clear is an `onChange("")` like any other, so the
74
+ host still decides. Clearing the value yourself inside `onSubmit` also still
75
+ works; with an async send, clear it after the `await` so a failure keeps it.
76
+
77
+ **Why the text stays editable while sending:** the person can start the next
78
+ message, and nothing they type is lost — only the draft that was sent is
79
+ cleared. Locking the field would buy nothing: the sent text is already in
80
+ flight, so editing it cannot change what was sent.
81
+
82
+ ## Stable handles
83
+
84
+ | Selector | What |
85
+ |----------|------|
86
+ | `[data-react-fancy-composer]` | Root. `data-submit-state` is `submitting` or `error` when not idle |
87
+ | `[data-react-fancy-composer-textarea]` | The text field, default placement |
88
+ | `[data-react-fancy-composer-input]` | The text field, `pastePlacement="inline"` (a contenteditable) |
89
+ | `#<inputId>` | The text field, either placement |
90
+ | `[data-react-fancy-composer-send]` | The send button |
91
+ | `[data-react-fancy-composer-error]` | The failure announcement, while there is one |
92
+
33
93
  ## With Actions
34
94
 
35
95
  ```tsx
@@ -43,7 +43,10 @@ Every code block and table gets a react-fancy `Button` (icon `copy`, then
43
43
  survives a paste into a spreadsheet.
44
44
 
45
45
  Each copy is announced as `Copied` or `Copy failed` through a polite
46
- `aria-live` region (`[data-react-fancy-content-renderer-live]`).
46
+ `aria-live` region (`[data-react-fancy-content-renderer-live]`). The region is
47
+ visually hidden with inline sr-only styles, so it needs nothing from your
48
+ Tailwind build. It is `position: absolute`, so the root is `position: relative`
49
+ unless your `className` already positions it.
47
50
 
48
51
  ```tsx
49
52
  <ContentRenderer value={reply} copyButtons={false} /> // none