@particle-academy/react-fancy 5.32.0 → 5.34.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 (85) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/LICENSE +21 -0
  3. package/dist/activity-light.cjs +13 -0
  4. package/dist/activity-light.cjs.map +1 -0
  5. package/dist/activity-light.d.cts +64 -0
  6. package/dist/activity-light.d.ts +64 -0
  7. package/dist/activity-light.js +4 -0
  8. package/dist/activity-light.js.map +1 -0
  9. package/dist/button.cjs +4 -4
  10. package/dist/button.js +2 -2
  11. package/dist/{chunk-WRQBV7GU.cjs → chunk-23FTDEGR.cjs} +2 -2
  12. package/dist/chunk-23FTDEGR.cjs.map +1 -0
  13. package/dist/{chunk-ZYVWKYPO.js → chunk-2OMB3OOR.js} +3 -3
  14. package/dist/{chunk-ZYVWKYPO.js.map → chunk-2OMB3OOR.js.map} +1 -1
  15. package/dist/{chunk-WHOVPDC5.js → chunk-2XAVAPDA.js} +2 -2
  16. package/dist/chunk-2XAVAPDA.js.map +1 -0
  17. package/dist/{chunk-G6VMNSCM.js → chunk-46IPQEUP.js} +3 -3
  18. package/dist/{chunk-G6VMNSCM.js.map → chunk-46IPQEUP.js.map} +1 -1
  19. package/dist/{chunk-H6PXIB35.cjs → chunk-5Q7EQQTT.cjs} +4 -4
  20. package/dist/{chunk-H6PXIB35.cjs.map → chunk-5Q7EQQTT.cjs.map} +1 -1
  21. package/dist/{chunk-BQ77ZWFM.js → chunk-6ASZUE4T.js} +4 -4
  22. package/dist/{chunk-BQ77ZWFM.js.map → chunk-6ASZUE4T.js.map} +1 -1
  23. package/dist/{chunk-WEKQD4BQ.js → chunk-DCDW3LW6.js} +3 -3
  24. package/dist/{chunk-WEKQD4BQ.js.map → chunk-DCDW3LW6.js.map} +1 -1
  25. package/dist/{chunk-YMU3SS6D.cjs → chunk-E2SZBIAV.cjs} +16 -16
  26. package/dist/{chunk-YMU3SS6D.cjs.map → chunk-E2SZBIAV.cjs.map} +1 -1
  27. package/dist/chunk-EHNMKQ4O.cjs +71 -0
  28. package/dist/chunk-EHNMKQ4O.cjs.map +1 -0
  29. package/dist/chunk-IR6JSQ4O.cjs +233 -0
  30. package/dist/chunk-IR6JSQ4O.cjs.map +1 -0
  31. package/dist/{chunk-VRJTPXJ7.cjs → chunk-J2KYNK63.cjs} +5 -5
  32. package/dist/{chunk-VRJTPXJ7.cjs.map → chunk-J2KYNK63.cjs.map} +1 -1
  33. package/dist/{chunk-B4PFNSX7.js → chunk-KM4R4XWB.js} +3 -3
  34. package/dist/{chunk-B4PFNSX7.js.map → chunk-KM4R4XWB.js.map} +1 -1
  35. package/dist/{chunk-5TUZENNJ.cjs → chunk-MTUH2X3W.cjs} +4 -4
  36. package/dist/{chunk-5TUZENNJ.cjs.map → chunk-MTUH2X3W.cjs.map} +1 -1
  37. package/dist/chunk-PZTA6NCD.js +69 -0
  38. package/dist/chunk-PZTA6NCD.js.map +1 -0
  39. package/dist/{chunk-UWL6U3L7.cjs → chunk-RMJGF7MN.cjs} +3 -3
  40. package/dist/{chunk-UWL6U3L7.cjs.map → chunk-RMJGF7MN.cjs.map} +1 -1
  41. package/dist/{chunk-EIUS2K72.js → chunk-TX6VUYBC.js} +3 -3
  42. package/dist/{chunk-EIUS2K72.js.map → chunk-TX6VUYBC.js.map} +1 -1
  43. package/dist/{chunk-LAQGBLIU.cjs → chunk-VKXNCYLE.cjs} +14 -5
  44. package/dist/chunk-VKXNCYLE.cjs.map +1 -0
  45. package/dist/{chunk-32HCJ5GD.js → chunk-W6RDAZJC.js} +14 -5
  46. package/dist/chunk-W6RDAZJC.js.map +1 -0
  47. package/dist/{chunk-LQFQ2UKU.cjs → chunk-WWUKTXPX.cjs} +3 -3
  48. package/dist/{chunk-LQFQ2UKU.cjs.map → chunk-WWUKTXPX.cjs.map} +1 -1
  49. package/dist/chunk-Z4CW3U6C.js +231 -0
  50. package/dist/chunk-Z4CW3U6C.js.map +1 -0
  51. package/dist/composer.cjs +2 -2
  52. package/dist/composer.d.cts +1 -1
  53. package/dist/composer.d.ts +1 -1
  54. package/dist/composer.js +1 -1
  55. package/dist/editor.cjs +4 -4
  56. package/dist/editor.js +2 -2
  57. package/dist/file-upload.cjs +3 -3
  58. package/dist/file-upload.js +1 -1
  59. package/dist/{index-CDo7LyIB.d.ts → index-C8PKWA_5.d.cts} +21 -0
  60. package/dist/{index-CDo7LyIB.d.cts → index-C8PKWA_5.d.ts} +21 -0
  61. package/dist/index.cjs +154 -144
  62. package/dist/index.d.cts +3 -1
  63. package/dist/index.d.ts +3 -1
  64. package/dist/index.js +29 -27
  65. package/dist/inputs.cjs +9 -9
  66. package/dist/inputs.js +3 -3
  67. package/dist/json-editor.cjs +15 -15
  68. package/dist/json-editor.js +4 -4
  69. package/dist/magic-wand.cjs +4 -4
  70. package/dist/magic-wand.js +3 -3
  71. package/dist/prompt-input.cjs +4 -4
  72. package/dist/prompt-input.js +3 -3
  73. package/dist/reason-tag.cjs +4 -4
  74. package/dist/reason-tag.js +3 -3
  75. package/dist/virtual-list.cjs +13 -0
  76. package/dist/virtual-list.cjs.map +1 -0
  77. package/dist/virtual-list.d.cts +125 -0
  78. package/dist/virtual-list.d.ts +125 -0
  79. package/dist/virtual-list.js +4 -0
  80. package/dist/virtual-list.js.map +1 -0
  81. package/package.json +23 -2
  82. package/dist/chunk-32HCJ5GD.js.map +0 -1
  83. package/dist/chunk-LAQGBLIU.cjs.map +0 -1
  84. package/dist/chunk-WHOVPDC5.js.map +0 -1
  85. package/dist/chunk-WRQBV7GU.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,9 +1,7 @@
1
- export { TimeGrid } from './chunk-7CN7IHES.js';
2
- export { TimePicker } from './chunk-OTCLBINT.js';
3
- export { Timeline } from './chunk-7JDVCQXD.js';
4
- export { Toast, useToast } from './chunk-JICO4LTT.js';
5
- export { TreeNav, useTreeNav } from './chunk-NUPQJ5SJ.js';
1
+ export { VirtualList } from './chunk-Z4CW3U6C.js';
6
2
  import './chunk-VXHFR5MV.js';
3
+ export { RadioGroup } from './chunk-LBU3T2LF.js';
4
+ import './chunk-GNHQVPZP.js';
7
5
  export { Slider } from './chunk-G73TVXDQ.js';
8
6
  import './chunk-NW3GJWJ7.js';
9
7
  import './chunk-ORCXPDDG.js';
@@ -13,8 +11,13 @@ export { CheckboxGroup } from './chunk-FNJDMGJ3.js';
13
11
  import './chunk-V4EARA4F.js';
14
12
  import './chunk-SHDSKHCC.js';
15
13
  export { MultiSwitch } from './chunk-NE3Z4AWP.js';
16
- export { RadioGroup } from './chunk-LBU3T2LF.js';
17
- import './chunk-GNHQVPZP.js';
14
+ import './chunk-TMR56BBE.js';
15
+ export { TimeGrid } from './chunk-7CN7IHES.js';
16
+ export { TimePicker } from './chunk-OTCLBINT.js';
17
+ export { Timeline } from './chunk-7JDVCQXD.js';
18
+ export { Toast, useToast } from './chunk-JICO4LTT.js';
19
+ export { TreeNav, useTreeNav } from './chunk-NUPQJ5SJ.js';
20
+ export { Separator } from './chunk-ZLWCZV7R.js';
18
21
  export { Sidebar, useSidebar } from './chunk-YD4SXA6K.js';
19
22
  export { Skeleton } from './chunk-TB35HNBE.js';
20
23
  export { Stat, StatBand } from './chunk-OFHO5SXA.js';
@@ -22,30 +25,30 @@ export { StatList } from './chunk-ZKFFHIEW.js';
22
25
  export { StickyNote } from './chunk-CCG2L5EH.js';
23
26
  export { Table } from './chunk-P7Q2YIIS.js';
24
27
  export { Tabs, useTabs } from './chunk-FNEPZ33A.js';
25
- import './chunk-TMR56BBE.js';
26
28
  export { Profile } from './chunk-KQQA7JBC.js';
27
29
  export { Progress } from './chunk-P7PKK5BO.js';
28
- export { PromptInput } from './chunk-B4PFNSX7.js';
30
+ export { PromptInput } from './chunk-KM4R4XWB.js';
29
31
  export { Tooltip } from './chunk-35EN5AYE.js';
30
32
  export { PullQuote } from './chunk-NDUEPDNS.js';
31
- export { ReasonTag } from './chunk-WEKQD4BQ.js';
33
+ export { ReasonTag } from './chunk-DCDW3LW6.js';
34
+ export { Popover, usePopover } from './chunk-6KXAFP2T.js';
32
35
  export { Section } from './chunk-SLJD25VV.js';
33
- export { Separator } from './chunk-ZLWCZV7R.js';
36
+ export { MobileMenu, useMobileMenu } from './chunk-P7F32HIH.js';
34
37
  export { Modal, useModal } from './chunk-NYDR2VSA.js';
35
38
  export { MoodMeter } from './chunk-32AJIHBZ.js';
36
39
  export { Navbar, useNavbar } from './chunk-IWXP2YUP.js';
37
40
  export { OtpInput } from './chunk-XDJSFGXW.js';
38
41
  export { Pagination } from './chunk-YF2EHBTV.js';
39
42
  export { Pillbox } from './chunk-FSRPZYZZ.js';
40
- export { Popover, usePopover } from './chunk-6KXAFP2T.js';
41
- export { JSON_FIELD_TYPES, JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-BQ77ZWFM.js';
43
+ export { InputTag, contentEditableAdapter, controlledAdapter, inputAdapter, textareaAdapter } from './chunk-Q7O5TLVU.js';
44
+ export { JSON_FIELD_TYPES, JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-6ASZUE4T.js';
45
+ export { Select } from './chunk-ZH3SPBVB.js';
42
46
  export { Switch } from './chunk-NBAHXZHJ.js';
43
47
  export { DatePicker } from './chunk-OC75GWX5.js';
44
48
  export { Input } from './chunk-2VIDYJUG.js';
45
- export { Select } from './chunk-ZH3SPBVB.js';
46
49
  export { Kanban, useKanban } from './chunk-O6E2WC3J.js';
47
50
  export { Kbd } from './chunk-TJJ63UJV.js';
48
- export { MagicWand } from './chunk-ZYVWKYPO.js';
51
+ export { MagicWand } from './chunk-2OMB3OOR.js';
49
52
  export { Textarea } from './chunk-DEFGT75G.js';
50
53
  import './chunk-PWEZCMIY.js';
51
54
  export { DisplayValue } from './chunk-KKWNKBKR.js';
@@ -56,24 +59,25 @@ export { MediaViewer, resolveMediaType } from './chunk-KO2HLNBB.js';
56
59
  export { VideoViewer } from './chunk-VOGI7GX3.js';
57
60
  export { PdfViewer } from './chunk-SOYORSLZ.js';
58
61
  export { Menu, useMenu } from './chunk-RA2VOQ46.js';
59
- export { MobileMenu, useMobileMenu } from './chunk-P7F32HIH.js';
62
+ export { FauxClient } from './chunk-FA4IG5RB.js';
60
63
  export { FileBrowser, FileBrowserNewFolder, useFileBrowser, validateFolderName } from './chunk-2KAJ4L7C.js';
61
- export { FileUpload, useFileUpload } from './chunk-32HCJ5GD.js';
64
+ export { FileUpload, useFileUpload } from './chunk-W6RDAZJC.js';
62
65
  export { Grid } from './chunk-TM3RTWKI.js';
63
66
  import './chunk-CFH6CJQG.js';
64
67
  export { ImageViewer } from './chunk-MUCXXYDN.js';
65
68
  export { IndexList } from './chunk-UKUNWGL5.js';
66
- export { InputTag, contentEditableAdapter, controlledAdapter, inputAdapter, textareaAdapter } from './chunk-Q7O5TLVU.js';
69
+ import './chunk-AUTW5O4W.js';
67
70
  export { ContextMenu, useContextMenu } from './chunk-SWBF2BXA.js';
68
71
  export { Drawer, useDrawer } from './chunk-VFIVF5YO.js';
69
72
  export { Dropdown, useDropdown } from './chunk-YQJWD53X.js';
70
- export { Editor, useEditor } from './chunk-EIUS2K72.js';
73
+ export { Editor, useEditor } from './chunk-TX6VUYBC.js';
71
74
  export { THEME_STORAGE_KEY, getThemePreference, initTheme, resolveTheme, setThemePreference, subscribeTheme, useId, useNodeRegistry, useTheme } from './chunk-FWCREAIT.js';
72
75
  export { usePanZoom } from './chunk-CPY7NHXM.js';
76
+ export { ContentRenderer, registerExtension, registerExtensions } from './chunk-25ZOOUFG.js';
73
77
  export { Emoji } from './chunk-YTMQ2K64.js';
74
78
  export { EmojiSelect } from './chunk-VYHZEQIG.js';
75
79
  export { Eyebrow } from './chunk-Y4UPKJN5.js';
76
- export { FauxClient } from './chunk-FA4IG5RB.js';
80
+ export { Carousel, useCarousel } from './chunk-BMTTSBHF.js';
77
81
  export { Chart } from './chunk-CK6LRROH.js';
78
82
  export { ChatDrawer } from './chunk-ZI7JP3TN.js';
79
83
  import './chunk-TJ66S5K6.js';
@@ -83,28 +87,27 @@ export { ColorPicker } from './chunk-F2GAZZVS.js';
83
87
  export { Command, useCommand } from './chunk-YCV43A7D.js';
84
88
  export { useFocusTrap } from './chunk-5U2DZ7AV.js';
85
89
  export { useAnimation } from './chunk-CHADHN6M.js';
86
- export { Composer, usePastePills } from './chunk-WHOVPDC5.js';
90
+ export { Composer, usePastePills } from './chunk-2XAVAPDA.js';
87
91
  export { Container } from './chunk-VKMPVFQK.js';
88
- import './chunk-AUTW5O4W.js';
89
- export { ContentRenderer, registerExtension, registerExtensions } from './chunk-25ZOOUFG.js';
92
+ export { Avatar } from './chunk-CRR3AMJ4.js';
90
93
  import './chunk-IQ4KQJAO.js';
91
94
  export { Badge } from './chunk-6FCQD2KQ.js';
92
95
  export { Brand, BrandMark } from './chunk-FCSR2WVS.js';
93
96
  export { Breadcrumbs } from './chunk-TDDWWAM5.js';
94
97
  import './chunk-LQ4ICCN2.js';
95
- export { Action, Button } from './chunk-G6VMNSCM.js';
98
+ export { Action, Button } from './chunk-46IPQEUP.js';
99
+ export { sanitizeHref, sanitizeHtml } from './chunk-XJXQG34J.js';
96
100
  export { EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, SKIN_TONES, applyTone, find, hasSkinTones, resolve, search, skinTones } from './chunk-45BBNJQD.js';
97
101
  export { Icon, configureIcons, registerIconAddendum, registerIconSet, registerIcons } from './chunk-IVRYSSM7.js';
98
- export { sanitizeHref, sanitizeHtml } from './chunk-XJXQG34J.js';
99
102
  export { Calendar } from './chunk-NTMHP7FS.js';
100
103
  import './chunk-NMXCQOHV.js';
101
104
  export { Callout } from './chunk-ZXZJYVWP.js';
102
105
  export { Card } from './chunk-CF2U25LM.js';
103
106
  export { Text } from './chunk-5RLP77KK.js';
104
107
  export { Heading } from './chunk-CESGP5AF.js';
105
- export { Carousel, useCarousel } from './chunk-BMTTSBHF.js';
106
108
  export { Accordion, useAccordion } from './chunk-LYHQ4VBR.js';
107
109
  export { AccordionPanel, AccordionPanelContent, AccordionPanelSection, AccordionPanelTrigger, useAccordionPanel, useAccordionSection } from './chunk-RUSRAKKA.js';
110
+ export { ActivityLight } from './chunk-PZTA6NCD.js';
108
111
  export { AudioViewer } from './chunk-UIJR26YW.js';
109
112
  export { Autocomplete } from './chunk-O2ZHORSC.js';
110
113
  export { useFloatingPosition } from './chunk-MQ6VGG62.js';
@@ -114,7 +117,6 @@ export { Portal } from './chunk-WHEXTDPV.js';
114
117
  export { useOutsideClick } from './chunk-RGANGU7X.js';
115
118
  export { useEscapeKey } from './chunk-JXE5XID6.js';
116
119
  export { useControllableState } from './chunk-EDYAXGUM.js';
117
- export { Avatar } from './chunk-CRR3AMJ4.js';
118
120
  export { cn } from './chunk-MMW2JGKZ.js';
119
121
  //# sourceMappingURL=index.js.map
120
122
  //# sourceMappingURL=index.js.map
package/dist/inputs.cjs CHANGED
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('./chunk-O5IO7TCO.cjs');
4
+ var chunkFPZYPD3N_cjs = require('./chunk-FPZYPD3N.cjs');
5
+ require('./chunk-HXLSEBAL.cjs');
4
6
  var chunkFVTCPERB_cjs = require('./chunk-FVTCPERB.cjs');
5
7
  require('./chunk-OYZDSMNP.cjs');
6
8
  require('./chunk-5FV6GMFP.cjs');
@@ -10,12 +12,10 @@ var chunkBZDXX6E3_cjs = require('./chunk-BZDXX6E3.cjs');
10
12
  require('./chunk-URTLYNZI.cjs');
11
13
  require('./chunk-QGPMVFZJ.cjs');
12
14
  var chunkZUQUL53P_cjs = require('./chunk-ZUQUL53P.cjs');
13
- var chunkFPZYPD3N_cjs = require('./chunk-FPZYPD3N.cjs');
14
- require('./chunk-HXLSEBAL.cjs');
15
+ var chunkFXP4JLGU_cjs = require('./chunk-FXP4JLGU.cjs');
15
16
  var chunkY52NXM73_cjs = require('./chunk-Y52NXM73.cjs');
16
17
  var chunkBZZDHDMK_cjs = require('./chunk-BZZDHDMK.cjs');
17
18
  var chunkIPNJMHJ3_cjs = require('./chunk-IPNJMHJ3.cjs');
18
- var chunkFXP4JLGU_cjs = require('./chunk-FXP4JLGU.cjs');
19
19
  var chunkV6VFSX6V_cjs = require('./chunk-V6VFSX6V.cjs');
20
20
  require('./chunk-7EZBMGEE.cjs');
21
21
  var chunkXKDW6B7X_cjs = require('./chunk-XKDW6B7X.cjs');
@@ -32,6 +32,10 @@ require('./chunk-ZU5Q77OT.cjs');
32
32
 
33
33
 
34
34
 
35
+ Object.defineProperty(exports, "RadioGroup", {
36
+ enumerable: true,
37
+ get: function () { return chunkFPZYPD3N_cjs.RadioGroup; }
38
+ });
35
39
  Object.defineProperty(exports, "Slider", {
36
40
  enumerable: true,
37
41
  get: function () { return chunkFVTCPERB_cjs.Slider; }
@@ -56,9 +60,9 @@ Object.defineProperty(exports, "MultiSwitch", {
56
60
  enumerable: true,
57
61
  get: function () { return chunkZUQUL53P_cjs.MultiSwitch; }
58
62
  });
59
- Object.defineProperty(exports, "RadioGroup", {
63
+ Object.defineProperty(exports, "Select", {
60
64
  enumerable: true,
61
- get: function () { return chunkFPZYPD3N_cjs.RadioGroup; }
65
+ get: function () { return chunkFXP4JLGU_cjs.Select; }
62
66
  });
63
67
  Object.defineProperty(exports, "Switch", {
64
68
  enumerable: true,
@@ -72,10 +76,6 @@ Object.defineProperty(exports, "Input", {
72
76
  enumerable: true,
73
77
  get: function () { return chunkIPNJMHJ3_cjs.Input; }
74
78
  });
75
- Object.defineProperty(exports, "Select", {
76
- enumerable: true,
77
- get: function () { return chunkFXP4JLGU_cjs.Select; }
78
- });
79
79
  Object.defineProperty(exports, "Textarea", {
80
80
  enumerable: true,
81
81
  get: function () { return chunkV6VFSX6V_cjs.Textarea; }
package/dist/inputs.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import './chunk-VXHFR5MV.js';
2
+ export { RadioGroup } from './chunk-LBU3T2LF.js';
3
+ import './chunk-GNHQVPZP.js';
2
4
  export { Slider } from './chunk-G73TVXDQ.js';
3
5
  import './chunk-NW3GJWJ7.js';
4
6
  import './chunk-ORCXPDDG.js';
@@ -8,12 +10,10 @@ export { CheckboxGroup } from './chunk-FNJDMGJ3.js';
8
10
  import './chunk-V4EARA4F.js';
9
11
  import './chunk-SHDSKHCC.js';
10
12
  export { MultiSwitch } from './chunk-NE3Z4AWP.js';
11
- export { RadioGroup } from './chunk-LBU3T2LF.js';
12
- import './chunk-GNHQVPZP.js';
13
+ export { Select } from './chunk-ZH3SPBVB.js';
13
14
  export { Switch } from './chunk-NBAHXZHJ.js';
14
15
  export { DatePicker } from './chunk-OC75GWX5.js';
15
16
  export { Input } from './chunk-2VIDYJUG.js';
16
- export { Select } from './chunk-ZH3SPBVB.js';
17
17
  export { Textarea } from './chunk-DEFGT75G.js';
18
18
  import './chunk-PWEZCMIY.js';
19
19
  export { DisplayValue } from './chunk-KKWNKBKR.js';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkYMU3SS6D_cjs = require('./chunk-YMU3SS6D.cjs');
3
+ var chunkE2SZBIAV_cjs = require('./chunk-E2SZBIAV.cjs');
4
+ require('./chunk-FXP4JLGU.cjs');
4
5
  require('./chunk-Y52NXM73.cjs');
5
6
  require('./chunk-BZZDHDMK.cjs');
6
7
  require('./chunk-IPNJMHJ3.cjs');
7
- require('./chunk-FXP4JLGU.cjs');
8
8
  require('./chunk-V6VFSX6V.cjs');
9
9
  require('./chunk-7EZBMGEE.cjs');
10
10
  require('./chunk-XKDW6B7X.cjs');
@@ -12,10 +12,10 @@ require('./chunk-BBOIFV27.cjs');
12
12
  require('./chunk-YLGTDBB2.cjs');
13
13
  require('./chunk-BVRPDMB7.cjs');
14
14
  require('./chunk-MOU6O324.cjs');
15
- require('./chunk-UWL6U3L7.cjs');
15
+ require('./chunk-RMJGF7MN.cjs');
16
+ require('./chunk-BFKCVSNK.cjs');
16
17
  require('./chunk-XCZZVRBY.cjs');
17
18
  require('./chunk-QKFOJKVE.cjs');
18
- require('./chunk-BFKCVSNK.cjs');
19
19
  require('./chunk-LCNHEYIM.cjs');
20
20
  require('./chunk-XLFGWNW4.cjs');
21
21
  require('./chunk-J2DI6RMR.cjs');
@@ -31,47 +31,47 @@ require('./chunk-ZU5Q77OT.cjs');
31
31
 
32
32
  Object.defineProperty(exports, "JsonEditor", {
33
33
  enumerable: true,
34
- get: function () { return chunkYMU3SS6D_cjs.JsonEditor; }
34
+ get: function () { return chunkE2SZBIAV_cjs.JsonEditor; }
35
35
  });
36
36
  Object.defineProperty(exports, "applyJsonEdit", {
37
37
  enumerable: true,
38
- get: function () { return chunkYMU3SS6D_cjs.applyJsonEdit; }
38
+ get: function () { return chunkE2SZBIAV_cjs.applyJsonEdit; }
39
39
  });
40
40
  Object.defineProperty(exports, "describeEdit", {
41
41
  enumerable: true,
42
- get: function () { return chunkYMU3SS6D_cjs.describeEdit; }
42
+ get: function () { return chunkE2SZBIAV_cjs.describeEdit; }
43
43
  });
44
44
  Object.defineProperty(exports, "findJsonConflicts", {
45
45
  enumerable: true,
46
- get: function () { return chunkYMU3SS6D_cjs.findJsonConflicts; }
46
+ get: function () { return chunkE2SZBIAV_cjs.findJsonConflicts; }
47
47
  });
48
48
  Object.defineProperty(exports, "getAtPath", {
49
49
  enumerable: true,
50
- get: function () { return chunkYMU3SS6D_cjs.getAtPath; }
50
+ get: function () { return chunkE2SZBIAV_cjs.getAtPath; }
51
51
  });
52
52
  Object.defineProperty(exports, "inferType", {
53
53
  enumerable: true,
54
- get: function () { return chunkYMU3SS6D_cjs.inferType; }
54
+ get: function () { return chunkE2SZBIAV_cjs.inferType; }
55
55
  });
56
56
  Object.defineProperty(exports, "parseKeyMap", {
57
57
  enumerable: true,
58
- get: function () { return chunkYMU3SS6D_cjs.parseKeyMap; }
58
+ get: function () { return chunkE2SZBIAV_cjs.parseKeyMap; }
59
59
  });
60
60
  Object.defineProperty(exports, "parsePath", {
61
61
  enumerable: true,
62
- get: function () { return chunkYMU3SS6D_cjs.parsePath; }
62
+ get: function () { return chunkE2SZBIAV_cjs.parsePath; }
63
63
  });
64
64
  Object.defineProperty(exports, "pathToString", {
65
65
  enumerable: true,
66
- get: function () { return chunkYMU3SS6D_cjs.pathToString; }
66
+ get: function () { return chunkE2SZBIAV_cjs.pathToString; }
67
67
  });
68
68
  Object.defineProperty(exports, "resolveKeyRule", {
69
69
  enumerable: true,
70
- get: function () { return chunkYMU3SS6D_cjs.resolveKeyRule; }
70
+ get: function () { return chunkE2SZBIAV_cjs.resolveKeyRule; }
71
71
  });
72
72
  Object.defineProperty(exports, "typeMatches", {
73
73
  enumerable: true,
74
- get: function () { return chunkYMU3SS6D_cjs.typeMatches; }
74
+ get: function () { return chunkE2SZBIAV_cjs.typeMatches; }
75
75
  });
76
76
  //# sourceMappingURL=json-editor.cjs.map
77
77
  //# sourceMappingURL=json-editor.cjs.map
@@ -1,8 +1,8 @@
1
- export { JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-BQ77ZWFM.js';
1
+ export { JsonEditor, applyJsonEdit, describeEdit, findJsonConflicts, getAtPath, inferType, parseKeyMap, parsePath, pathToString, resolveKeyRule, typeMatches } from './chunk-6ASZUE4T.js';
2
+ import './chunk-ZH3SPBVB.js';
2
3
  import './chunk-NBAHXZHJ.js';
3
4
  import './chunk-OC75GWX5.js';
4
5
  import './chunk-2VIDYJUG.js';
5
- import './chunk-ZH3SPBVB.js';
6
6
  import './chunk-DEFGT75G.js';
7
7
  import './chunk-PWEZCMIY.js';
8
8
  import './chunk-KKWNKBKR.js';
@@ -10,10 +10,10 @@ import './chunk-5MU6X3KO.js';
10
10
  import './chunk-GFYSELJF.js';
11
11
  import './chunk-F2GAZZVS.js';
12
12
  import './chunk-6FCQD2KQ.js';
13
- import './chunk-G6VMNSCM.js';
13
+ import './chunk-46IPQEUP.js';
14
+ import './chunk-XJXQG34J.js';
14
15
  import './chunk-45BBNJQD.js';
15
16
  import './chunk-IVRYSSM7.js';
16
- import './chunk-XJXQG34J.js';
17
17
  import './chunk-ZXZJYVWP.js';
18
18
  import './chunk-5RLP77KK.js';
19
19
  import './chunk-MQ6VGG62.js';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkH6PXIB35_cjs = require('./chunk-H6PXIB35.cjs');
3
+ var chunk5Q7EQQTT_cjs = require('./chunk-5Q7EQQTT.cjs');
4
4
  require('./chunk-V6VFSX6V.cjs');
5
5
  require('./chunk-7EZBMGEE.cjs');
6
6
  require('./chunk-XKDW6B7X.cjs');
@@ -9,10 +9,10 @@ require('./chunk-YLGTDBB2.cjs');
9
9
  require('./chunk-VBWRH4UW.cjs');
10
10
  require('./chunk-MOU6O324.cjs');
11
11
  require('./chunk-M5MUGSON.cjs');
12
- require('./chunk-UWL6U3L7.cjs');
12
+ require('./chunk-RMJGF7MN.cjs');
13
+ require('./chunk-BFKCVSNK.cjs');
13
14
  require('./chunk-XCZZVRBY.cjs');
14
15
  require('./chunk-QKFOJKVE.cjs');
15
- require('./chunk-BFKCVSNK.cjs');
16
16
  require('./chunk-KJ22KE56.cjs');
17
17
  require('./chunk-L3V3BYVS.cjs');
18
18
  require('./chunk-ZU5Q77OT.cjs');
@@ -21,7 +21,7 @@ require('./chunk-ZU5Q77OT.cjs');
21
21
 
22
22
  Object.defineProperty(exports, "MagicWand", {
23
23
  enumerable: true,
24
- get: function () { return chunkH6PXIB35_cjs.MagicWand; }
24
+ get: function () { return chunk5Q7EQQTT_cjs.MagicWand; }
25
25
  });
26
26
  //# sourceMappingURL=magic-wand.cjs.map
27
27
  //# sourceMappingURL=magic-wand.cjs.map
@@ -1,4 +1,4 @@
1
- export { MagicWand } from './chunk-ZYVWKYPO.js';
1
+ export { MagicWand } from './chunk-2OMB3OOR.js';
2
2
  import './chunk-DEFGT75G.js';
3
3
  import './chunk-PWEZCMIY.js';
4
4
  import './chunk-KKWNKBKR.js';
@@ -7,10 +7,10 @@ import './chunk-GFYSELJF.js';
7
7
  import './chunk-IQ4KQJAO.js';
8
8
  import './chunk-6FCQD2KQ.js';
9
9
  import './chunk-LQ4ICCN2.js';
10
- import './chunk-G6VMNSCM.js';
10
+ import './chunk-46IPQEUP.js';
11
+ import './chunk-XJXQG34J.js';
11
12
  import './chunk-45BBNJQD.js';
12
13
  import './chunk-IVRYSSM7.js';
13
- import './chunk-XJXQG34J.js';
14
14
  import './chunk-OL53XYHF.js';
15
15
  import './chunk-NRXK42LO.js';
16
16
  import './chunk-MMW2JGKZ.js';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkVRJTPXJ7_cjs = require('./chunk-VRJTPXJ7.cjs');
3
+ var chunkJ2KYNK63_cjs = require('./chunk-J2KYNK63.cjs');
4
4
  require('./chunk-ISPCXIJZ.cjs');
5
5
  require('./chunk-M5MUGSON.cjs');
6
- require('./chunk-UWL6U3L7.cjs');
6
+ require('./chunk-RMJGF7MN.cjs');
7
+ require('./chunk-BFKCVSNK.cjs');
7
8
  require('./chunk-XCZZVRBY.cjs');
8
9
  require('./chunk-QKFOJKVE.cjs');
9
- require('./chunk-BFKCVSNK.cjs');
10
10
  require('./chunk-J2DI6RMR.cjs');
11
11
  require('./chunk-NBZC6LOB.cjs');
12
12
  require('./chunk-ZU5Q77OT.cjs');
@@ -15,7 +15,7 @@ require('./chunk-ZU5Q77OT.cjs');
15
15
 
16
16
  Object.defineProperty(exports, "PromptInput", {
17
17
  enumerable: true,
18
- get: function () { return chunkVRJTPXJ7_cjs.PromptInput; }
18
+ get: function () { return chunkJ2KYNK63_cjs.PromptInput; }
19
19
  });
20
20
  //# sourceMappingURL=prompt-input.cjs.map
21
21
  //# sourceMappingURL=prompt-input.cjs.map
@@ -1,10 +1,10 @@
1
- export { PromptInput } from './chunk-B4PFNSX7.js';
1
+ export { PromptInput } from './chunk-KM4R4XWB.js';
2
2
  import './chunk-35EN5AYE.js';
3
3
  import './chunk-LQ4ICCN2.js';
4
- import './chunk-G6VMNSCM.js';
4
+ import './chunk-46IPQEUP.js';
5
+ import './chunk-XJXQG34J.js';
5
6
  import './chunk-45BBNJQD.js';
6
7
  import './chunk-IVRYSSM7.js';
7
- import './chunk-XJXQG34J.js';
8
8
  import './chunk-MQ6VGG62.js';
9
9
  import './chunk-WHEXTDPV.js';
10
10
  import './chunk-MMW2JGKZ.js';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunk5TUZENNJ_cjs = require('./chunk-5TUZENNJ.cjs');
3
+ var chunkMTUH2X3W_cjs = require('./chunk-MTUH2X3W.cjs');
4
4
  require('./chunk-WKNVZUWZ.cjs');
5
5
  require('./chunk-M5MUGSON.cjs');
6
- require('./chunk-UWL6U3L7.cjs');
6
+ require('./chunk-RMJGF7MN.cjs');
7
+ require('./chunk-BFKCVSNK.cjs');
7
8
  require('./chunk-XCZZVRBY.cjs');
8
9
  require('./chunk-QKFOJKVE.cjs');
9
- require('./chunk-BFKCVSNK.cjs');
10
10
  require('./chunk-J2DI6RMR.cjs');
11
11
  require('./chunk-NBZC6LOB.cjs');
12
12
  require('./chunk-57FQGQJK.cjs');
@@ -17,7 +17,7 @@ require('./chunk-ZU5Q77OT.cjs');
17
17
 
18
18
  Object.defineProperty(exports, "ReasonTag", {
19
19
  enumerable: true,
20
- get: function () { return chunk5TUZENNJ_cjs.ReasonTag; }
20
+ get: function () { return chunkMTUH2X3W_cjs.ReasonTag; }
21
21
  });
22
22
  //# sourceMappingURL=reason-tag.cjs.map
23
23
  //# sourceMappingURL=reason-tag.cjs.map
@@ -1,10 +1,10 @@
1
- export { ReasonTag } from './chunk-WEKQD4BQ.js';
1
+ export { ReasonTag } from './chunk-DCDW3LW6.js';
2
2
  import './chunk-6KXAFP2T.js';
3
3
  import './chunk-LQ4ICCN2.js';
4
- import './chunk-G6VMNSCM.js';
4
+ import './chunk-46IPQEUP.js';
5
+ import './chunk-XJXQG34J.js';
5
6
  import './chunk-45BBNJQD.js';
6
7
  import './chunk-IVRYSSM7.js';
7
- import './chunk-XJXQG34J.js';
8
8
  import './chunk-MQ6VGG62.js';
9
9
  import './chunk-WHEXTDPV.js';
10
10
  import './chunk-RGANGU7X.js';
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var chunkIR6JSQ4O_cjs = require('./chunk-IR6JSQ4O.cjs');
4
+ require('./chunk-ZU5Q77OT.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "VirtualList", {
9
+ enumerable: true,
10
+ get: function () { return chunkIR6JSQ4O_cjs.VirtualList; }
11
+ });
12
+ //# sourceMappingURL=virtual-list.cjs.map
13
+ //# sourceMappingURL=virtual-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"virtual-list.cjs"}
@@ -0,0 +1,125 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode, Ref } from 'react';
3
+
4
+ /**
5
+ * The one thing `VirtualList` requires of a row: a stable id.
6
+ *
7
+ * It is required rather than derived from the array index because every feature
8
+ * here outlives a reindex — `scrollToId` resolves a deep link after rows have
9
+ * been prepended, and a measured height must follow its row rather than its
10
+ * position.
11
+ */
12
+ interface VirtualListRow {
13
+ id: string;
14
+ }
15
+ interface VirtualListProps<T extends VirtualListRow> extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "onScroll"> {
16
+ /** The full list. Only the visible window is ever rendered. */
17
+ items: readonly T[];
18
+ /** Render one row. Called only for rows inside the window. */
19
+ renderRow: (item: T, index: number) => ReactNode;
20
+ /**
21
+ * Height of the scroll viewport. A number is also used as the viewport height
22
+ * for windowing before the element has been measured, so prefer one when you
23
+ * know it — `"100%"` works, it just renders a conservative first window.
24
+ */
25
+ height?: number | string;
26
+ /**
27
+ * Seed height for rows that have not been measured yet. Only affects rows
28
+ * never rendered: a row's real height replaces it the moment it is on screen.
29
+ * Pick the common case, not the average.
30
+ */
31
+ estimateRowHeight?: number;
32
+ /** Rows to render beyond each edge of the viewport. */
33
+ overscan?: number;
34
+ /**
35
+ * Stick to the bottom as rows arrive. **Controlled** — this component never
36
+ * flips it on its own, so an agent can read and write the follow state
37
+ * through a bridge. Pair it with {@link onFollowChange}.
38
+ */
39
+ followTail?: boolean;
40
+ /**
41
+ * The list asking to change {@link followTail}: `false` the instant the human
42
+ * scrolls up, `true` when they return to the bottom. Honour it by updating
43
+ * your own state — until you do, nothing changes.
44
+ */
45
+ onFollowChange?: (following: boolean) => void;
46
+ /**
47
+ * How many rows have arrived since tail-following stopped. Drives a
48
+ * `↓ n new` pill, which is yours to render. Always `0` while following.
49
+ */
50
+ onUnseenChange?: (count: number) => void;
51
+ /**
52
+ * Put the row with this id at the top of the viewport — the `?at=<rowId>`
53
+ * deep link. Resolution is not instant for a row far down an unmeasured list:
54
+ * the target settles as the rows above it are measured. See
55
+ * {@link onScrollToIdResolved}.
56
+ */
57
+ scrollToId?: string | null;
58
+ /**
59
+ * Fired once the component has stopped moving for a given `scrollToId`.
60
+ * `landed` is `false` when the id is not in `items` — a deep link to a pruned
61
+ * row, which must be distinguishable from a successful scroll to the top.
62
+ */
63
+ onScrollToIdResolved?: (id: string, landed: boolean) => void;
64
+ /** The scroll viewport element. */
65
+ ref?: Ref<HTMLDivElement>;
66
+ }
67
+
68
+ /**
69
+ * A windowed list for ledgers that run to tens of thousands of rows — only the
70
+ * visible slice is in the DOM, with **measured** variable row heights, deep
71
+ * links by row id, and sticky-bottom tail-following.
72
+ *
73
+ * Built for an agent event stream, where every one of those three is load
74
+ * bearing at once: message rows wrap and event rows do not, a link carries
75
+ * `?at=<rowId>` to the exact row under discussion, and new rows arrive while
76
+ * the human is reading older ones.
77
+ *
78
+ * ## Heights are measured, never predicted
79
+ *
80
+ * `estimateRowHeight` only seeds rows that have never been on screen. The
81
+ * moment a row renders, its real height is measured and replaces the estimate,
82
+ * and every offset after it moves. The alternative — a `rowHeight(item)`
83
+ * callback — is a prediction about text wrapping, font loading and container
84
+ * width, and when it is wrong the error accumulates down the list: rows draw in
85
+ * the wrong place and `scrollToId` lands on a neighbour. Measuring is slower to
86
+ * settle and correct when it does.
87
+ *
88
+ * ## Tail-follow breaks on INTENT, not on position
89
+ *
90
+ * Any upward gesture — wheel, drag, PageUp, Home — stops following
91
+ * immediately, even when the list is still pinned to the bottom and
92
+ * `scrollTop` has not changed yet. Position cannot tell "the human scrolled
93
+ * up" from "content grew downward", so a position-only implementation keeps
94
+ * following through a wheel-up and yanks the reader back on the next append.
95
+ *
96
+ * ## It is controlled
97
+ *
98
+ * `followTail` is the consumer's state. This component only ever *asks* via
99
+ * `onFollowChange`, so the follow state is readable and writable by an agent
100
+ * over a bridge, as the Human+ component contract requires. The `↓ n new` pill
101
+ * is the consumer's to render, from `onUnseenChange`.
102
+ *
103
+ * @example
104
+ * ```tsx
105
+ * const [following, setFollowing] = useState(true);
106
+ * const [unseen, setUnseen] = useState(0);
107
+ *
108
+ * <VirtualList
109
+ * items={events}
110
+ * renderRow={(e) => <StreamRow event={e} />}
111
+ * height="100%"
112
+ * estimateRowHeight={28}
113
+ * followTail={following}
114
+ * onFollowChange={setFollowing}
115
+ * onUnseenChange={setUnseen}
116
+ * scrollToId={params.at}
117
+ * />
118
+ * {!following && unseen > 0 && (
119
+ * <Button onClick={() => setFollowing(true)}>↓ {unseen} new</Button>
120
+ * )}
121
+ * ```
122
+ */
123
+ declare function VirtualList<T extends VirtualListRow>({ items, renderRow, height, estimateRowHeight, overscan, followTail, onFollowChange, onUnseenChange, scrollToId, onScrollToIdResolved, className, ref, ...props }: VirtualListProps<T>): react.JSX.Element;
124
+
125
+ export { VirtualList, type VirtualListProps, type VirtualListRow };