entangle-ui 0.9.0 → 0.11.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 (1053) hide show
  1. package/CHANGELOG.md +766 -0
  2. package/README.md +8 -6
  3. package/dist/esm/assets/src/components/controls/FileTree/FileTree.css.ts.vanilla-YmktPvnr.css +48 -0
  4. package/dist/esm/assets/src/components/controls/Select/{Select.css.ts.vanilla-oZnFUorL.css → Select.css.ts.vanilla-Cpu2BvWL.css} +3 -0
  5. package/dist/esm/assets/src/components/controls/TreeView/{TreeNode.css.ts.vanilla-B_f8pUb8.css → TreeNode.css.ts.vanilla-DXPJRWZZ.css} +31 -24
  6. package/dist/esm/assets/src/components/editor/AssetBrowser/AssetBrowser.css.ts.vanilla-B2S4cEiY.css +262 -0
  7. package/dist/esm/assets/src/components/editor/Minimap/Minimap.css.ts.vanilla--rNdWQwy.css +133 -0
  8. package/dist/esm/assets/src/components/editor/NodeGraph/NodeGraph.css.ts.vanilla-ClF4YZvl.css +401 -0
  9. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyPanel.css.ts.vanilla-RYv_XgOu.css → PropertyPanel.css.ts.vanilla-Dpr_k5I3.css} +4 -1
  10. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyRow.css.ts.vanilla-C3YZnnHb.css → PropertyRow.css.ts.vanilla-pq1Uhd2a.css} +15 -8
  11. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertySection.css.ts.vanilla-DK12opZc.css → PropertySection.css.ts.vanilla-6MWWAqyd.css} +50 -32
  12. package/dist/esm/assets/src/components/editor/Timeline/Timeline.css.ts.vanilla-DDX6Zalo.css +203 -0
  13. package/dist/esm/assets/src/components/feedback/LogView/LogView.css.ts.vanilla-nB5ENOpw.css +312 -0
  14. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-B5iVe5S2.css +88 -0
  15. package/dist/esm/assets/src/components/navigation/PathBar/PathBar.css.ts.vanilla-BIEzQQOf.css +10 -0
  16. package/dist/esm/assets/src/components/primitives/viewport/Viewport.css.ts.vanilla-CkFBJ7Vo.css +65 -0
  17. package/dist/esm/assets/src/components/shell/FloatingPanel/{FloatingPanel.css.ts.vanilla-1rIAXEFp.css → FloatingPanel.css.ts.vanilla-CRaeYJ2b.css} +20 -13
  18. package/dist/esm/assets/src/theme/{darkTheme.css.ts.vanilla-ab1WD4dr.css → darkTheme.css.ts.vanilla-BHZ3ecRn.css} +3 -3
  19. package/dist/esm/assets/src/theme/{lightTheme.css.ts.vanilla-OaRI_wIc.css → lightTheme.css.ts.vanilla-Ct6f9Iym.css} +3 -3
  20. package/dist/esm/components/Icons/AddIcon.js.map +1 -1
  21. package/dist/esm/components/Icons/AiChatIcon.js.map +1 -1
  22. package/dist/esm/components/Icons/AiSparklesIcon.js.map +1 -1
  23. package/dist/esm/components/Icons/ArchiveIcon.js.map +1 -1
  24. package/dist/esm/components/Icons/ArrowDownIcon.js.map +1 -1
  25. package/dist/esm/components/Icons/ArrowLeftIcon.js.map +1 -1
  26. package/dist/esm/components/Icons/ArrowRightIcon.js.map +1 -1
  27. package/dist/esm/components/Icons/ArrowUpIcon.js.map +1 -1
  28. package/dist/esm/components/Icons/BookmarkIcon.js.map +1 -1
  29. package/dist/esm/components/Icons/BugIcon.js.map +1 -1
  30. package/dist/esm/components/Icons/BuildingIcon.js.map +1 -1
  31. package/dist/esm/components/Icons/CalendarIcon.js.map +1 -1
  32. package/dist/esm/components/Icons/CameraIcon.js +31 -0
  33. package/dist/esm/components/Icons/CameraIcon.js.map +1 -0
  34. package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
  35. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
  36. package/dist/esm/components/Icons/ChevronLeftIcon.js.map +1 -1
  37. package/dist/esm/components/Icons/ChevronRightIcon.js.map +1 -1
  38. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
  39. package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
  40. package/dist/esm/components/Icons/ClockIcon.js.map +1 -1
  41. package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
  42. package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -1
  43. package/dist/esm/components/Icons/CodeIcon.js.map +1 -1
  44. package/dist/esm/components/Icons/CopyIcon.js.map +1 -1
  45. package/dist/esm/components/Icons/CubeIcon.js +31 -0
  46. package/dist/esm/components/Icons/CubeIcon.js.map +1 -0
  47. package/dist/esm/components/Icons/CutIcon.js.map +1 -1
  48. package/dist/esm/components/Icons/DotsHorizontalIcon.js.map +1 -1
  49. package/dist/esm/components/Icons/DotsVerticalIcon.js.map +1 -1
  50. package/dist/esm/components/Icons/DownloadIcon.js.map +1 -1
  51. package/dist/esm/components/Icons/EditIcon.js.map +1 -1
  52. package/dist/esm/components/Icons/ErrorIcon.js.map +1 -1
  53. package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -1
  54. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
  55. package/dist/esm/components/Icons/EyeIcon.js.map +1 -1
  56. package/dist/esm/components/Icons/FileTextIcon.js.map +1 -1
  57. package/dist/esm/components/Icons/FilterIcon.js.map +1 -1
  58. package/dist/esm/components/Icons/FirstIcon.js.map +1 -1
  59. package/dist/esm/components/Icons/FolderCogIcon.js.map +1 -1
  60. package/dist/esm/components/Icons/FolderIcon.js.map +1 -1
  61. package/dist/esm/components/Icons/FolderOpenIcon.js +2 -2
  62. package/dist/esm/components/Icons/FolderOpenIcon.js.map +1 -1
  63. package/dist/esm/components/Icons/FullscreenIcon.js.map +1 -1
  64. package/dist/esm/components/Icons/GitBranchIcon.js.map +1 -1
  65. package/dist/esm/components/Icons/GridIcon.js.map +1 -1
  66. package/dist/esm/components/Icons/HeartIcon.js.map +1 -1
  67. package/dist/esm/components/Icons/HelpIcon.js.map +1 -1
  68. package/dist/esm/components/Icons/HomeIcon.js.map +1 -1
  69. package/dist/esm/components/Icons/ImageIcon.js +31 -0
  70. package/dist/esm/components/Icons/ImageIcon.js.map +1 -0
  71. package/dist/esm/components/Icons/InfoIcon.js.map +1 -1
  72. package/dist/esm/components/Icons/LastIcon.js.map +1 -1
  73. package/dist/esm/components/Icons/LinkIcon.js.map +1 -1
  74. package/dist/esm/components/Icons/ListIcon.js.map +1 -1
  75. package/dist/esm/components/Icons/LockIcon.js.map +1 -1
  76. package/dist/esm/components/Icons/MaximizeIcon.js.map +1 -1
  77. package/dist/esm/components/Icons/MenuIcon.js.map +1 -1
  78. package/dist/esm/components/Icons/MinimizeIcon.js.map +1 -1
  79. package/dist/esm/components/Icons/MinusIcon.js.map +1 -1
  80. package/dist/esm/components/Icons/OrbitIcon.js +31 -0
  81. package/dist/esm/components/Icons/OrbitIcon.js.map +1 -0
  82. package/dist/esm/components/Icons/PasteIcon.js.map +1 -1
  83. package/dist/esm/components/Icons/PauseIcon.js +2 -2
  84. package/dist/esm/components/Icons/PauseIcon.js.map +1 -1
  85. package/dist/esm/components/Icons/PinIcon.js.map +1 -1
  86. package/dist/esm/components/Icons/PlayIcon.js.map +1 -1
  87. package/dist/esm/components/Icons/RedoIcon.js.map +1 -1
  88. package/dist/esm/components/Icons/RefreshIcon.js.map +1 -1
  89. package/dist/esm/components/Icons/RobotIcon.js.map +1 -1
  90. package/dist/esm/components/Icons/RotateIcon.js +32 -0
  91. package/dist/esm/components/Icons/RotateIcon.js.map +1 -0
  92. package/dist/esm/components/Icons/SaveIcon.js.map +1 -1
  93. package/dist/esm/components/Icons/SearchIcon.js.map +1 -1
  94. package/dist/esm/components/Icons/SendIcon.js.map +1 -1
  95. package/dist/esm/components/Icons/SettingsIcon.js.map +1 -1
  96. package/dist/esm/components/Icons/SortIcon.js.map +1 -1
  97. package/dist/esm/components/Icons/SpinIcon.js +32 -0
  98. package/dist/esm/components/Icons/SpinIcon.js.map +1 -0
  99. package/dist/esm/components/Icons/StarIcon.js.map +1 -1
  100. package/dist/esm/components/Icons/StopIcon.js.map +1 -1
  101. package/dist/esm/components/Icons/SuccessIcon.js.map +1 -1
  102. package/dist/esm/components/Icons/TagIcon.js.map +1 -1
  103. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
  104. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
  105. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
  106. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
  107. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
  108. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
  109. package/dist/esm/components/Icons/TerminalIcon.js.map +1 -1
  110. package/dist/esm/components/Icons/TrashIcon.js.map +1 -1
  111. package/dist/esm/components/Icons/UndoIcon.js.map +1 -1
  112. package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -1
  113. package/dist/esm/components/Icons/UnlockIcon.js.map +1 -1
  114. package/dist/esm/components/Icons/UploadIcon.js.map +1 -1
  115. package/dist/esm/components/Icons/UserIcon.js.map +1 -1
  116. package/dist/esm/components/Icons/UsersIcon.js.map +1 -1
  117. package/dist/esm/components/Icons/WarningIcon.js.map +1 -1
  118. package/dist/esm/components/Icons/ZoomFitIcon.js +32 -0
  119. package/dist/esm/components/Icons/ZoomFitIcon.js.map +1 -0
  120. package/dist/esm/components/Icons/ZoomInIcon.js.map +1 -1
  121. package/dist/esm/components/Icons/ZoomOutIcon.js.map +1 -1
  122. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +3 -3
  123. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -1
  124. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +7 -5
  125. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -1
  126. package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -1
  127. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
  128. package/dist/esm/components/controls/ColorPicker/ColorArea.js +2 -2
  129. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
  130. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +16 -2
  131. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
  132. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +3 -1
  133. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
  134. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +6 -6
  135. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
  136. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +3 -1
  137. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
  138. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
  139. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
  140. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
  141. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -1
  142. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -1
  143. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -1
  144. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -1
  145. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
  146. package/dist/esm/components/controls/Combobox/Combobox.js +46 -23
  147. package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -1
  148. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +11 -4
  149. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
  150. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +4 -4
  151. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
  152. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +7 -5
  153. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
  154. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
  155. package/dist/esm/components/controls/CurveEditor/curveUtils.js +13 -15
  156. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
  157. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +72 -50
  158. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
  159. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +11 -3
  160. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
  161. package/dist/esm/components/controls/FileTree/FileTree.css.js +9 -0
  162. package/dist/esm/components/controls/FileTree/FileTree.css.js.map +1 -0
  163. package/dist/esm/components/controls/FileTree/FileTree.js +252 -0
  164. package/dist/esm/components/controls/FileTree/FileTree.js.map +1 -0
  165. package/dist/esm/components/controls/FileTree/fileTreeIcons.js +129 -0
  166. package/dist/esm/components/controls/FileTree/fileTreeIcons.js.map +1 -0
  167. package/dist/esm/components/controls/FileTree/fileTreeLabels.js +8 -0
  168. package/dist/esm/components/controls/FileTree/fileTreeLabels.js.map +1 -0
  169. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js +115 -0
  170. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js.map +1 -0
  171. package/dist/esm/components/controls/FileUploader/FileUploader.js +3 -6
  172. package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -1
  173. package/dist/esm/components/controls/MultiSelect/MultiSelect.js +46 -15
  174. package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -1
  175. package/dist/esm/components/controls/NumberInput/NumberInput.js +11 -4
  176. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
  177. package/dist/esm/components/controls/NumberInput/useNumberInput.js +6 -2
  178. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
  179. package/dist/esm/components/controls/Select/Select.css.js +1 -1
  180. package/dist/esm/components/controls/Select/Select.js +44 -16
  181. package/dist/esm/components/controls/Select/Select.js.map +1 -1
  182. package/dist/esm/components/controls/Slider/Slider.js +6 -8
  183. package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
  184. package/dist/esm/components/controls/TagInput/TagInput.js +4 -2
  185. package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -1
  186. package/dist/esm/components/controls/TreeView/TreeNode.css.js +9 -8
  187. package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -1
  188. package/dist/esm/components/controls/TreeView/TreeNode.js +42 -7
  189. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
  190. package/dist/esm/components/controls/TreeView/TreeView.js +18 -6
  191. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
  192. package/dist/esm/components/controls/TreeView/useTreeState.js +2 -6
  193. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
  194. package/dist/esm/components/controls/VectorInput/VectorInput.js +13 -4
  195. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
  196. package/dist/esm/components/data/DataTable/DataTable.js +25 -8
  197. package/dist/esm/components/data/DataTable/DataTable.js.map +1 -1
  198. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js +46 -0
  199. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js.map +1 -0
  200. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js +254 -0
  201. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js.map +1 -0
  202. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js +17 -0
  203. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js.map +1 -0
  204. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js +25 -0
  205. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js.map +1 -0
  206. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js +140 -0
  207. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js.map +1 -0
  208. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js +81 -0
  209. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js.map +1 -0
  210. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js +123 -0
  211. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js.map +1 -0
  212. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js +136 -0
  213. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js.map +1 -0
  214. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js +137 -0
  215. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js.map +1 -0
  216. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js +226 -0
  217. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js.map +1 -0
  218. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js +189 -0
  219. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js.map +1 -0
  220. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js +63 -0
  221. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js.map +1 -0
  222. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js +19 -0
  223. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js.map +1 -0
  224. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js +24 -0
  225. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js.map +1 -0
  226. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js +176 -0
  227. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js.map +1 -0
  228. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js +120 -0
  229. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js.map +1 -0
  230. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js +134 -0
  231. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js.map +1 -0
  232. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js +90 -0
  233. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js.map +1 -0
  234. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js +32 -0
  235. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js.map +1 -0
  236. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js +70 -0
  237. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js.map +1 -0
  238. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js +62 -0
  239. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js.map +1 -0
  240. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js +52 -0
  241. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js.map +1 -0
  242. package/dist/esm/components/editor/AssetBrowser/slots.js +18 -0
  243. package/dist/esm/components/editor/AssetBrowser/slots.js.map +1 -0
  244. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js +19 -0
  245. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js.map +1 -0
  246. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js +70 -0
  247. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js.map +1 -0
  248. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js +108 -0
  249. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js.map +1 -0
  250. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js +192 -0
  251. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js.map +1 -0
  252. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js +91 -0
  253. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js.map +1 -0
  254. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js +91 -0
  255. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js.map +1 -0
  256. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js +128 -0
  257. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js.map +1 -0
  258. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js +72 -0
  259. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js.map +1 -0
  260. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js +141 -0
  261. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js.map +1 -0
  262. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js +113 -0
  263. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js.map +1 -0
  264. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js +174 -0
  265. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js.map +1 -0
  266. package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -1
  267. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +8 -2
  268. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -1
  269. package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -1
  270. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +20 -4
  271. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -1
  272. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +1 -1
  273. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -1
  274. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +3 -1
  275. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -1
  276. package/dist/esm/components/editor/ChatPanel/ChatIcons.js.map +1 -1
  277. package/dist/esm/components/editor/ChatPanel/ChatInput.js +10 -3
  278. package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
  279. package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -1
  280. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js +1 -1
  281. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js.map +1 -1
  282. package/dist/esm/components/editor/ChatPanel/ChatMessage.js +10 -3
  283. package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
  284. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +5 -3
  285. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
  286. package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -1
  287. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +1 -1
  288. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -1
  289. package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -1
  290. package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -1
  291. package/dist/esm/components/editor/ChatPanel/useChatMessages.js +7 -4
  292. package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -1
  293. package/dist/esm/components/editor/ChatPanel/useChatScroll.js +6 -1
  294. package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
  295. package/dist/esm/components/editor/Minimap/Minimap.css.js +18 -0
  296. package/dist/esm/components/editor/Minimap/Minimap.css.js.map +1 -0
  297. package/dist/esm/components/editor/Minimap/Minimap.js +257 -0
  298. package/dist/esm/components/editor/Minimap/Minimap.js.map +1 -0
  299. package/dist/esm/components/editor/Minimap/Minimap.types.js +11 -0
  300. package/dist/esm/components/editor/Minimap/Minimap.types.js.map +1 -0
  301. package/dist/esm/components/editor/Minimap/MinimapContext.js +48 -0
  302. package/dist/esm/components/editor/Minimap/MinimapContext.js.map +1 -0
  303. package/dist/esm/components/editor/Minimap/MinimapCorner.js +16 -0
  304. package/dist/esm/components/editor/Minimap/MinimapCorner.js.map +1 -0
  305. package/dist/esm/components/editor/Minimap/MinimapFooter.js +16 -0
  306. package/dist/esm/components/editor/Minimap/MinimapFooter.js.map +1 -0
  307. package/dist/esm/components/editor/Minimap/MinimapStore.js +166 -0
  308. package/dist/esm/components/editor/Minimap/MinimapStore.js.map +1 -0
  309. package/dist/esm/components/editor/Minimap/MinimapTitle.js +16 -0
  310. package/dist/esm/components/editor/Minimap/MinimapTitle.js.map +1 -0
  311. package/dist/esm/components/editor/Minimap/ViewportMinimap.js +69 -0
  312. package/dist/esm/components/editor/Minimap/ViewportMinimap.js.map +1 -0
  313. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js +65 -0
  314. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js.map +1 -0
  315. package/dist/esm/components/editor/Minimap/index.js +15 -0
  316. package/dist/esm/components/editor/Minimap/index.js.map +1 -0
  317. package/dist/esm/components/editor/Minimap/minimapCoords.js +105 -0
  318. package/dist/esm/components/editor/Minimap/minimapCoords.js.map +1 -0
  319. package/dist/esm/components/editor/Minimap/minimapDrawing.js +93 -0
  320. package/dist/esm/components/editor/Minimap/minimapDrawing.js.map +1 -0
  321. package/dist/esm/components/editor/Minimap/minimapHitTest.js +59 -0
  322. package/dist/esm/components/editor/Minimap/minimapHitTest.js.map +1 -0
  323. package/dist/esm/components/editor/Minimap/useMinimapGestures.js +299 -0
  324. package/dist/esm/components/editor/Minimap/useMinimapGestures.js.map +1 -0
  325. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js +36 -0
  326. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js.map +1 -0
  327. package/dist/esm/components/editor/NodeGraph/NodeGraph.js +627 -0
  328. package/dist/esm/components/editor/NodeGraph/NodeGraph.js.map +1 -0
  329. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js +10 -0
  330. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js.map +1 -0
  331. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js +54 -0
  332. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js.map +1 -0
  333. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js +137 -0
  334. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js.map +1 -0
  335. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js +211 -0
  336. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js.map +1 -0
  337. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js +122 -0
  338. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js.map +1 -0
  339. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js +170 -0
  340. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js.map +1 -0
  341. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js +21 -0
  342. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js.map +1 -0
  343. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js +56 -0
  344. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js.map +1 -0
  345. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js +59 -0
  346. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js.map +1 -0
  347. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js +17 -0
  348. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js.map +1 -0
  349. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js +35 -0
  350. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js.map +1 -0
  351. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js +191 -0
  352. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js.map +1 -0
  353. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js +46 -0
  354. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js.map +1 -0
  355. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js +50 -0
  356. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js.map +1 -0
  357. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js +70 -0
  358. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js.map +1 -0
  359. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js +543 -0
  360. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js.map +1 -0
  361. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js +100 -0
  362. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js.map +1 -0
  363. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js +37 -0
  364. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js.map +1 -0
  365. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js +53 -0
  366. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js.map +1 -0
  367. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js +461 -0
  368. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js.map +1 -0
  369. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js +31 -0
  370. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js.map +1 -0
  371. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js +350 -0
  372. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js.map +1 -0
  373. package/dist/esm/components/editor/NodeGraph/sortSlots.js +69 -0
  374. package/dist/esm/components/editor/NodeGraph/sortSlots.js.map +1 -0
  375. package/dist/esm/components/editor/NodeGraph/useDragGesture.js +63 -0
  376. package/dist/esm/components/editor/NodeGraph/useDragGesture.js.map +1 -0
  377. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js +207 -0
  378. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js.map +1 -0
  379. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js +334 -0
  380. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js.map +1 -0
  381. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js +137 -0
  382. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js.map +1 -0
  383. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js +392 -0
  384. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js.map +1 -0
  385. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js +164 -0
  386. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js.map +1 -0
  387. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js +234 -0
  388. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js.map +1 -0
  389. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js +49 -0
  390. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js.map +1 -0
  391. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +1 -1
  392. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
  393. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js +4 -3
  394. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js.map +1 -1
  395. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +12 -7
  396. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
  397. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js +7 -6
  398. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js.map +1 -1
  399. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +21 -5
  400. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
  401. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +11 -10
  402. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js.map +1 -1
  403. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +32 -11
  404. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
  405. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
  406. package/dist/esm/components/editor/Timeline/Timeline.css.js +23 -0
  407. package/dist/esm/components/editor/Timeline/Timeline.css.js.map +1 -0
  408. package/dist/esm/components/editor/Timeline/Timeline.js +450 -0
  409. package/dist/esm/components/editor/Timeline/Timeline.js.map +1 -0
  410. package/dist/esm/components/editor/Timeline/Timeline.types.js +10 -0
  411. package/dist/esm/components/editor/Timeline/Timeline.types.js.map +1 -0
  412. package/dist/esm/components/editor/Timeline/TimelineContext.js +69 -0
  413. package/dist/esm/components/editor/Timeline/TimelineContext.js.map +1 -0
  414. package/dist/esm/components/editor/Timeline/TimelineFooter.js +16 -0
  415. package/dist/esm/components/editor/Timeline/TimelineFooter.js.map +1 -0
  416. package/dist/esm/components/editor/Timeline/TimelineMinimap.js +280 -0
  417. package/dist/esm/components/editor/Timeline/TimelineMinimap.js.map +1 -0
  418. package/dist/esm/components/editor/Timeline/TimelineStore.js +289 -0
  419. package/dist/esm/components/editor/Timeline/TimelineStore.js.map +1 -0
  420. package/dist/esm/components/editor/Timeline/TimelineToolbar.js +15 -0
  421. package/dist/esm/components/editor/Timeline/TimelineToolbar.js.map +1 -0
  422. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js +142 -0
  423. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js.map +1 -0
  424. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js +18 -0
  425. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js.map +1 -0
  426. package/dist/esm/components/editor/Timeline/index.js +18 -0
  427. package/dist/esm/components/editor/Timeline/index.js.map +1 -0
  428. package/dist/esm/components/editor/Timeline/timelineCoords.js +118 -0
  429. package/dist/esm/components/editor/Timeline/timelineCoords.js.map +1 -0
  430. package/dist/esm/components/editor/Timeline/timelineDrawing.js +390 -0
  431. package/dist/esm/components/editor/Timeline/timelineDrawing.js.map +1 -0
  432. package/dist/esm/components/editor/Timeline/timelineEdits.js +323 -0
  433. package/dist/esm/components/editor/Timeline/timelineEdits.js.map +1 -0
  434. package/dist/esm/components/editor/Timeline/timelineHitTest.js +153 -0
  435. package/dist/esm/components/editor/Timeline/timelineHitTest.js.map +1 -0
  436. package/dist/esm/components/editor/Timeline/timelineLayout.js +39 -0
  437. package/dist/esm/components/editor/Timeline/timelineLayout.js.map +1 -0
  438. package/dist/esm/components/editor/Timeline/timelineSelection.js +0 -0
  439. package/dist/esm/components/editor/Timeline/timelineSelection.js.map +1 -0
  440. package/dist/esm/components/editor/Timeline/useTimelineDraw.js +156 -0
  441. package/dist/esm/components/editor/Timeline/useTimelineDraw.js.map +1 -0
  442. package/dist/esm/components/editor/Timeline/useTimelineGestures.js +587 -0
  443. package/dist/esm/components/editor/Timeline/useTimelineGestures.js.map +1 -0
  444. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js +85 -0
  445. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js.map +1 -0
  446. package/dist/esm/components/editor/TransformControl/TransformControl.js +4 -4
  447. package/dist/esm/components/editor/TransformControl/TransformControl.js.map +1 -1
  448. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +8 -4
  449. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -1
  450. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +6 -2
  451. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -1
  452. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +8 -6
  453. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -1
  454. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +1 -2
  455. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -1
  456. package/dist/esm/components/feedback/Alert/Alert.js +8 -8
  457. package/dist/esm/components/feedback/Alert/Alert.js.map +1 -1
  458. package/dist/esm/components/feedback/Alert/AlertActions.js.map +1 -1
  459. package/dist/esm/components/feedback/Alert/AlertDescription.js.map +1 -1
  460. package/dist/esm/components/feedback/Alert/AlertTitle.js.map +1 -1
  461. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +32 -22
  462. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -1
  463. package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js.map +1 -1
  464. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +3 -1
  465. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -1
  466. package/dist/esm/components/feedback/Dialog/Dialog.js +6 -3
  467. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
  468. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
  469. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
  470. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
  471. package/dist/esm/components/feedback/Dialog/DialogHeader.js +1 -1
  472. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
  473. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +10 -2
  474. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
  475. package/dist/esm/components/feedback/Drawer/Drawer.js +4 -1
  476. package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -1
  477. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +4 -0
  478. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -1
  479. package/dist/esm/components/feedback/EmptyState/EmptyState.js +1 -1
  480. package/dist/esm/components/feedback/EmptyState/EmptyState.js.map +1 -1
  481. package/dist/esm/components/feedback/LogView/LogView.css.js +35 -0
  482. package/dist/esm/components/feedback/LogView/LogView.css.js.map +1 -0
  483. package/dist/esm/components/feedback/LogView/LogView.js +297 -0
  484. package/dist/esm/components/feedback/LogView/LogView.js.map +1 -0
  485. package/dist/esm/components/feedback/LogView/LogViewBody.js +205 -0
  486. package/dist/esm/components/feedback/LogView/LogViewBody.js.map +1 -0
  487. package/dist/esm/components/feedback/LogView/LogViewContext.js +31 -0
  488. package/dist/esm/components/feedback/LogView/LogViewContext.js.map +1 -0
  489. package/dist/esm/components/feedback/LogView/LogViewParts.js +73 -0
  490. package/dist/esm/components/feedback/LogView/LogViewParts.js.map +1 -0
  491. package/dist/esm/components/feedback/LogView/LogViewStore.js +240 -0
  492. package/dist/esm/components/feedback/LogView/LogViewStore.js.map +1 -0
  493. package/dist/esm/components/feedback/LogView/logViewLabels.js +25 -0
  494. package/dist/esm/components/feedback/LogView/logViewLabels.js.map +1 -0
  495. package/dist/esm/components/feedback/LogView/logViewLevels.js +74 -0
  496. package/dist/esm/components/feedback/LogView/logViewLevels.js.map +1 -0
  497. package/dist/esm/components/feedback/LogView/logViewUtils.js +128 -0
  498. package/dist/esm/components/feedback/LogView/logViewUtils.js.map +1 -0
  499. package/dist/esm/components/feedback/LogView/useFollowTail.js +95 -0
  500. package/dist/esm/components/feedback/LogView/useFollowTail.js.map +1 -0
  501. package/dist/esm/components/feedback/LogView/useLogSelection.js +113 -0
  502. package/dist/esm/components/feedback/LogView/useLogSelection.js.map +1 -0
  503. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js +1 -1
  504. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js.map +1 -1
  505. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js +1 -1
  506. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js.map +1 -1
  507. package/dist/esm/components/feedback/Skeleton/Skeleton.js +1 -1
  508. package/dist/esm/components/feedback/Skeleton/Skeleton.js.map +1 -1
  509. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js +1 -1
  510. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js.map +1 -1
  511. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +1 -1
  512. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -1
  513. package/dist/esm/components/feedback/Spinner/Spinner.js +1 -1
  514. package/dist/esm/components/feedback/Spinner/Spinner.js.map +1 -1
  515. package/dist/esm/components/feedback/Stat/Stat.js.map +1 -1
  516. package/dist/esm/components/feedback/Toast/ToastContainer.js +1 -1
  517. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
  518. package/dist/esm/components/feedback/Toast/ToastItem.js +7 -3
  519. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
  520. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
  521. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
  522. package/dist/esm/components/form/FormHelperText.js.map +1 -1
  523. package/dist/esm/components/form/FormLabel.js.map +1 -1
  524. package/dist/esm/components/form/InputWrapper.js.map +1 -1
  525. package/dist/esm/components/layout/Accordion/Accordion.js +1 -1
  526. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
  527. package/dist/esm/components/layout/Accordion/AccordionContent.js +1 -1
  528. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
  529. package/dist/esm/components/layout/Accordion/AccordionItem.js +1 -1
  530. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
  531. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +7 -2
  532. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
  533. package/dist/esm/components/layout/Card/Card.js +2 -2
  534. package/dist/esm/components/layout/Card/Card.js.map +1 -1
  535. package/dist/esm/components/layout/Divider/Divider.js.map +1 -1
  536. package/dist/esm/components/layout/Flex/Flex.js +1 -1
  537. package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
  538. package/dist/esm/components/layout/Grid/Grid.js +1 -1
  539. package/dist/esm/components/layout/Grid/Grid.js.map +1 -1
  540. package/dist/esm/components/layout/ListItem/ListItem.js +1 -1
  541. package/dist/esm/components/layout/ListItem/ListItem.js.map +1 -1
  542. package/dist/esm/components/layout/PageHeader/PageHeader.js.map +1 -1
  543. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +3 -3
  544. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
  545. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +91 -23
  546. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
  547. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -1
  548. package/dist/esm/components/layout/SplitPane/SplitPane.js +29 -16
  549. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
  550. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
  551. package/dist/esm/components/layout/Stack/Stack.js +1 -1
  552. package/dist/esm/components/layout/Stack/Stack.js.map +1 -1
  553. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +4 -0
  554. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
  555. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +6 -2
  556. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  557. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js.map +1 -1
  558. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +13 -2
  559. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -1
  560. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -39
  561. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
  562. package/dist/esm/components/navigation/Menu/Menu.css.js +9 -12
  563. package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -1
  564. package/dist/esm/components/navigation/Menu/Menu.js +97 -63
  565. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
  566. package/dist/esm/components/navigation/Menu/MenuGapContext.js +19 -0
  567. package/dist/esm/components/navigation/Menu/MenuGapContext.js.map +1 -0
  568. package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -1
  569. package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -1
  570. package/dist/esm/components/navigation/PathBar/PathBar.css.js +6 -0
  571. package/dist/esm/components/navigation/PathBar/PathBar.css.js.map +1 -0
  572. package/dist/esm/components/navigation/PathBar/PathBar.js +184 -0
  573. package/dist/esm/components/navigation/PathBar/PathBar.js.map +1 -0
  574. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js +151 -0
  575. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js.map +1 -0
  576. package/dist/esm/components/navigation/PathBar/pathUtils.js +118 -0
  577. package/dist/esm/components/navigation/PathBar/pathUtils.js.map +1 -0
  578. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js +16 -6
  579. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js.map +1 -1
  580. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js +1 -1
  581. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js.map +1 -1
  582. package/dist/esm/components/navigation/Tabs/Tab.js +10 -3
  583. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
  584. package/dist/esm/components/navigation/Tabs/TabList.js +5 -2
  585. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
  586. package/dist/esm/components/navigation/Tabs/TabPanel.js +1 -1
  587. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
  588. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
  589. package/dist/esm/components/primitives/Avatar/Avatar.js +11 -4
  590. package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -1
  591. package/dist/esm/components/primitives/Avatar/AvatarGroup.js +2 -2
  592. package/dist/esm/components/primitives/Avatar/AvatarGroup.js.map +1 -1
  593. package/dist/esm/components/primitives/Badge/Badge.js +10 -3
  594. package/dist/esm/components/primitives/Badge/Badge.js.map +1 -1
  595. package/dist/esm/components/primitives/Button/Button.js.map +1 -1
  596. package/dist/esm/components/primitives/Checkbox/Checkbox.js +6 -4
  597. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
  598. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +2 -2
  599. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
  600. package/dist/esm/components/primitives/Code/Code.js.map +1 -1
  601. package/dist/esm/components/primitives/Collapsible/Collapsible.js +2 -2
  602. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
  603. package/dist/esm/components/primitives/HoverCard/HoverCard.js +5 -3
  604. package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -1
  605. package/dist/esm/components/primitives/Icon/Icon.js +1 -1
  606. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
  607. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
  608. package/dist/esm/components/primitives/Input/Input.js +1 -1
  609. package/dist/esm/components/primitives/Input/Input.js.map +1 -1
  610. package/dist/esm/components/primitives/Kbd/Kbd.js +1 -1
  611. package/dist/esm/components/primitives/Kbd/Kbd.js.map +1 -1
  612. package/dist/esm/components/primitives/Link/Link.js.map +1 -1
  613. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
  614. package/dist/esm/components/primitives/Popover/Popover.js +1 -1
  615. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -1
  616. package/dist/esm/components/primitives/Popover/PopoverClose.js +1 -1
  617. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
  618. package/dist/esm/components/primitives/Popover/PopoverContent.js +6 -4
  619. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
  620. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
  621. package/dist/esm/components/primitives/Radio/Radio.js +3 -3
  622. package/dist/esm/components/primitives/Radio/Radio.js.map +1 -1
  623. package/dist/esm/components/primitives/Radio/RadioGroup.js +2 -2
  624. package/dist/esm/components/primitives/Radio/RadioGroup.js.map +1 -1
  625. package/dist/esm/components/primitives/Switch/Switch.js +1 -1
  626. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
  627. package/dist/esm/components/primitives/Text/Text.js.map +1 -1
  628. package/dist/esm/components/primitives/TextArea/TextArea.js +3 -4
  629. package/dist/esm/components/primitives/TextArea/TextArea.js.map +1 -1
  630. package/dist/esm/components/primitives/Tooltip/Arrow.js +1 -1
  631. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
  632. package/dist/esm/components/primitives/Tooltip/Tooltip.js +9 -7
  633. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
  634. package/dist/esm/components/primitives/Tooltip/utils.js +1 -1
  635. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
  636. package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js.map +1 -1
  637. package/dist/esm/components/primitives/canvas/CanvasContainer.js +1 -1
  638. package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -1
  639. package/dist/esm/components/primitives/canvas/canvasCoords.js.map +1 -1
  640. package/dist/esm/components/primitives/canvas/canvasDrawing.js +1 -1
  641. package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -1
  642. package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -1
  643. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +8 -2
  644. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -1
  645. package/dist/esm/components/primitives/viewport/Viewport.css.js +12 -0
  646. package/dist/esm/components/primitives/viewport/Viewport.css.js.map +1 -0
  647. package/dist/esm/components/primitives/viewport/Viewport.js +189 -0
  648. package/dist/esm/components/primitives/viewport/Viewport.js.map +1 -0
  649. package/dist/esm/components/primitives/viewport/ViewportContext.js +47 -0
  650. package/dist/esm/components/primitives/viewport/ViewportContext.js.map +1 -0
  651. package/dist/esm/components/primitives/viewport/ViewportLayer.js +113 -0
  652. package/dist/esm/components/primitives/viewport/ViewportLayer.js.map +1 -0
  653. package/dist/esm/components/primitives/viewport/ViewportOverlay.js +47 -0
  654. package/dist/esm/components/primitives/viewport/ViewportOverlay.js.map +1 -0
  655. package/dist/esm/components/primitives/viewport/ViewportStore.js +210 -0
  656. package/dist/esm/components/primitives/viewport/ViewportStore.js.map +1 -0
  657. package/dist/esm/components/primitives/viewport/ViewportWorld.js +38 -0
  658. package/dist/esm/components/primitives/viewport/ViewportWorld.js.map +1 -0
  659. package/dist/esm/components/primitives/viewport/useViewportGestures.js +333 -0
  660. package/dist/esm/components/primitives/viewport/useViewportGestures.js.map +1 -0
  661. package/dist/esm/components/primitives/viewport/viewportCoords.js +37 -0
  662. package/dist/esm/components/primitives/viewport/viewportCoords.js.map +1 -0
  663. package/dist/esm/components/primitives/viewport/viewportMath.js +77 -0
  664. package/dist/esm/components/primitives/viewport/viewportMath.js.map +1 -0
  665. package/dist/esm/components/shell/AppShell/AppShell.js +1 -1
  666. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
  667. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +11 -10
  668. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -1
  669. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +60 -24
  670. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
  671. package/dist/esm/components/shell/MenuBar/MenuBar.js +23 -16
  672. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
  673. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
  674. package/dist/esm/components/shell/Toolbar/Toolbar.js +4 -3
  675. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
  676. package/dist/esm/context/KeyboardContext.js.map +1 -1
  677. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +1 -1
  678. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
  679. package/dist/esm/hooks/useClickOutside/useClickOutside.js +9 -9
  680. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  681. package/dist/esm/hooks/useClipboard/useClipboard.js +4 -0
  682. package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -1
  683. package/dist/esm/hooks/useControlledState/useControlledState.js.map +1 -1
  684. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js +11 -6
  685. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -1
  686. package/dist/esm/hooks/useDebounced/useDebouncedValue.js +16 -4
  687. package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -1
  688. package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -1
  689. package/dist/esm/hooks/useEventCallback/useEventCallback.js +49 -0
  690. package/dist/esm/hooks/useEventCallback/useEventCallback.js.map +1 -0
  691. package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  692. package/dist/esm/hooks/useHotkey/useHotkey.js +7 -12
  693. package/dist/esm/hooks/useHotkey/useHotkey.js.map +1 -1
  694. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -0
  695. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  696. package/dist/esm/hooks/useIsMounted/useIsMounted.js +43 -0
  697. package/dist/esm/hooks/useIsMounted/useIsMounted.js.map +1 -0
  698. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  699. package/dist/esm/hooks/useKeyboard/utils.js.map +1 -1
  700. package/dist/esm/hooks/useLatest/useLatest.js +31 -0
  701. package/dist/esm/hooks/useLatest/useLatest.js.map +1 -0
  702. package/dist/esm/hooks/useListboxNav/useListboxNav.js +29 -13
  703. package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -1
  704. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +7 -1
  705. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
  706. package/dist/esm/hooks/useMergedRef/useMergedRef.js +6 -1
  707. package/dist/esm/hooks/useMergedRef/useMergedRef.js.map +1 -1
  708. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js +146 -0
  709. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js.map +1 -0
  710. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +6 -8
  711. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  712. package/dist/esm/hooks/useTheme/useTheme.js +6 -3
  713. package/dist/esm/hooks/useTheme/useTheme.js.map +1 -1
  714. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js +9 -4
  715. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -1
  716. package/dist/esm/index.js +63 -4
  717. package/dist/esm/index.js.map +1 -1
  718. package/dist/esm/node_modules/tslib/tslib.es6.js +37 -0
  719. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  720. package/dist/esm/styles.js +3 -0
  721. package/dist/esm/styles.js.map +1 -0
  722. package/dist/esm/theme/ThemeProvider.js +6 -4
  723. package/dist/esm/theme/ThemeProvider.js.map +1 -1
  724. package/dist/esm/theme/VanillaThemeProvider.js.map +1 -1
  725. package/dist/esm/theme/breakpoints.js.map +1 -1
  726. package/dist/esm/theme/contract.css.js +1 -1
  727. package/dist/esm/theme/createCustomTheme.js +2 -2
  728. package/dist/esm/theme/createCustomTheme.js.map +1 -1
  729. package/dist/esm/theme/createLightTheme.js.map +1 -1
  730. package/dist/esm/theme/darkTheme.css.js +2 -2
  731. package/dist/esm/theme/darkThemeValues.js +1 -1
  732. package/dist/esm/theme/darkThemeValues.js.map +1 -1
  733. package/dist/esm/theme/lightTheme.css.js +1 -1
  734. package/dist/esm/theme/lightThemeValues.js +1 -1
  735. package/dist/esm/theme/lightThemeValues.js.map +1 -1
  736. package/dist/esm/theme/themeContractData.js +4 -4
  737. package/dist/esm/theme/themeContractData.js.map +1 -1
  738. package/dist/esm/utils/cx.js.map +1 -1
  739. package/dist/esm/utils/devWarn.js +1 -1
  740. package/dist/esm/utils/devWarn.js.map +1 -1
  741. package/dist/esm/utils/mathExpression.js +1 -1
  742. package/dist/esm/utils/mathExpression.js.map +1 -1
  743. package/dist/esm/utils/mathUtils.js.map +1 -1
  744. package/dist/esm/utils/objects.js.map +1 -1
  745. package/dist/esm/utils/platform.js.map +1 -1
  746. package/dist/tokens/tokens.dark.css +1 -1
  747. package/dist/tokens/tokens.json +1 -1
  748. package/dist/tokens/tokens.light.css +1 -1
  749. package/dist/types/components/Icons/AddIcon.d.ts +1 -1
  750. package/dist/types/components/Icons/AiChatIcon.d.ts +1 -1
  751. package/dist/types/components/Icons/AiSparklesIcon.d.ts +1 -1
  752. package/dist/types/components/Icons/ArchiveIcon.d.ts +1 -1
  753. package/dist/types/components/Icons/ArrowDownIcon.d.ts +1 -1
  754. package/dist/types/components/Icons/ArrowLeftIcon.d.ts +1 -1
  755. package/dist/types/components/Icons/ArrowRightIcon.d.ts +1 -1
  756. package/dist/types/components/Icons/ArrowUpIcon.d.ts +1 -1
  757. package/dist/types/components/Icons/BookmarkIcon.d.ts +1 -1
  758. package/dist/types/components/Icons/BugIcon.d.ts +1 -1
  759. package/dist/types/components/Icons/BuildingIcon.d.ts +1 -1
  760. package/dist/types/components/Icons/CalendarIcon.d.ts +1 -1
  761. package/dist/types/components/Icons/CameraIcon.d.ts +34 -0
  762. package/dist/types/components/Icons/CheckIcon.d.ts +1 -1
  763. package/dist/types/components/Icons/ChevronDownIcon.d.ts +1 -1
  764. package/dist/types/components/Icons/ChevronLeftIcon.d.ts +1 -1
  765. package/dist/types/components/Icons/ChevronRightIcon.d.ts +1 -1
  766. package/dist/types/components/Icons/ChevronUpIcon.d.ts +1 -1
  767. package/dist/types/components/Icons/CircleIcon.d.ts +1 -1
  768. package/dist/types/components/Icons/ClockIcon.d.ts +1 -1
  769. package/dist/types/components/Icons/CloseIcon.d.ts +1 -1
  770. package/dist/types/components/Icons/CloudUploadIcon.d.ts +1 -1
  771. package/dist/types/components/Icons/CodeIcon.d.ts +1 -1
  772. package/dist/types/components/Icons/CopyIcon.d.ts +1 -1
  773. package/dist/types/components/Icons/CubeIcon.d.ts +34 -0
  774. package/dist/types/components/Icons/CutIcon.d.ts +1 -1
  775. package/dist/types/components/Icons/DotsHorizontalIcon.d.ts +1 -1
  776. package/dist/types/components/Icons/DotsVerticalIcon.d.ts +1 -1
  777. package/dist/types/components/Icons/DownloadIcon.d.ts +1 -1
  778. package/dist/types/components/Icons/EditIcon.d.ts +1 -1
  779. package/dist/types/components/Icons/ErrorIcon.d.ts +1 -1
  780. package/dist/types/components/Icons/ExternalLinkIcon.d.ts +1 -1
  781. package/dist/types/components/Icons/EyeDropperIcon.d.ts +1 -1
  782. package/dist/types/components/Icons/EyeIcon.d.ts +1 -1
  783. package/dist/types/components/Icons/FileTextIcon.d.ts +1 -1
  784. package/dist/types/components/Icons/FilterIcon.d.ts +1 -1
  785. package/dist/types/components/Icons/FirstIcon.d.ts +1 -1
  786. package/dist/types/components/Icons/FolderCogIcon.d.ts +1 -1
  787. package/dist/types/components/Icons/FolderIcon.d.ts +1 -1
  788. package/dist/types/components/Icons/FolderOpenIcon.d.ts +1 -1
  789. package/dist/types/components/Icons/FullscreenIcon.d.ts +1 -1
  790. package/dist/types/components/Icons/GitBranchIcon.d.ts +1 -1
  791. package/dist/types/components/Icons/GridIcon.d.ts +1 -1
  792. package/dist/types/components/Icons/HeartIcon.d.ts +1 -1
  793. package/dist/types/components/Icons/HelpIcon.d.ts +1 -1
  794. package/dist/types/components/Icons/HomeIcon.d.ts +1 -1
  795. package/dist/types/components/Icons/ImageIcon.d.ts +34 -0
  796. package/dist/types/components/Icons/InfoIcon.d.ts +1 -1
  797. package/dist/types/components/Icons/LastIcon.d.ts +1 -1
  798. package/dist/types/components/Icons/LinkIcon.d.ts +1 -1
  799. package/dist/types/components/Icons/ListIcon.d.ts +1 -1
  800. package/dist/types/components/Icons/LockIcon.d.ts +1 -1
  801. package/dist/types/components/Icons/MaximizeIcon.d.ts +1 -1
  802. package/dist/types/components/Icons/MenuIcon.d.ts +1 -1
  803. package/dist/types/components/Icons/MinimizeIcon.d.ts +1 -1
  804. package/dist/types/components/Icons/MinusIcon.d.ts +1 -1
  805. package/dist/types/components/Icons/OrbitIcon.d.ts +34 -0
  806. package/dist/types/components/Icons/PasteIcon.d.ts +1 -1
  807. package/dist/types/components/Icons/PauseIcon.d.ts +1 -1
  808. package/dist/types/components/Icons/PinIcon.d.ts +1 -1
  809. package/dist/types/components/Icons/PlayIcon.d.ts +1 -1
  810. package/dist/types/components/Icons/RedoIcon.d.ts +1 -1
  811. package/dist/types/components/Icons/RefreshIcon.d.ts +1 -1
  812. package/dist/types/components/Icons/RobotIcon.d.ts +1 -1
  813. package/dist/types/components/Icons/RotateIcon.d.ts +35 -0
  814. package/dist/types/components/Icons/SaveIcon.d.ts +1 -1
  815. package/dist/types/components/Icons/SearchIcon.d.ts +1 -1
  816. package/dist/types/components/Icons/SendIcon.d.ts +1 -1
  817. package/dist/types/components/Icons/SettingsIcon.d.ts +1 -1
  818. package/dist/types/components/Icons/SortIcon.d.ts +1 -1
  819. package/dist/types/components/Icons/SpinIcon.d.ts +35 -0
  820. package/dist/types/components/Icons/StarIcon.d.ts +1 -1
  821. package/dist/types/components/Icons/StopIcon.d.ts +1 -1
  822. package/dist/types/components/Icons/SuccessIcon.d.ts +1 -1
  823. package/dist/types/components/Icons/TagIcon.d.ts +1 -1
  824. package/dist/types/components/Icons/TangentAlignedIcon.d.ts +1 -1
  825. package/dist/types/components/Icons/TangentAutoIcon.d.ts +1 -1
  826. package/dist/types/components/Icons/TangentFreeIcon.d.ts +1 -1
  827. package/dist/types/components/Icons/TangentLinearIcon.d.ts +1 -1
  828. package/dist/types/components/Icons/TangentMirroredIcon.d.ts +1 -1
  829. package/dist/types/components/Icons/TangentStepIcon.d.ts +1 -1
  830. package/dist/types/components/Icons/TerminalIcon.d.ts +1 -1
  831. package/dist/types/components/Icons/TrashIcon.d.ts +1 -1
  832. package/dist/types/components/Icons/UndoIcon.d.ts +1 -1
  833. package/dist/types/components/Icons/UnlinkIcon.d.ts +1 -1
  834. package/dist/types/components/Icons/UnlockIcon.d.ts +1 -1
  835. package/dist/types/components/Icons/UploadIcon.d.ts +1 -1
  836. package/dist/types/components/Icons/UserIcon.d.ts +1 -1
  837. package/dist/types/components/Icons/UsersIcon.d.ts +1 -1
  838. package/dist/types/components/Icons/WarningIcon.d.ts +1 -1
  839. package/dist/types/components/Icons/ZoomFitIcon.d.ts +35 -0
  840. package/dist/types/components/Icons/ZoomInIcon.d.ts +1 -1
  841. package/dist/types/components/Icons/ZoomOutIcon.d.ts +1 -1
  842. package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +3 -3
  843. package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +2 -2
  844. package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +1 -1
  845. package/dist/types/components/controls/Combobox/Combobox.types.d.ts +1 -1
  846. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +8 -58
  847. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +2 -1
  848. package/dist/types/components/controls/FileTree/FileTree.d.ts +34 -0
  849. package/dist/types/components/controls/FileTree/FileTree.types.d.ts +133 -0
  850. package/dist/types/components/controls/FileTree/fileTreeIcons.d.ts +29 -0
  851. package/dist/types/components/controls/FileTree/fileTreeLabels.d.ts +19 -0
  852. package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +2 -2
  853. package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +1 -1
  854. package/dist/types/components/controls/NumberInput/NumberInput.d.ts +2 -2
  855. package/dist/types/components/controls/Select/Select.d.ts +1 -1
  856. package/dist/types/components/controls/Select/Select.types.d.ts +45 -11
  857. package/dist/types/components/controls/Slider/Slider.d.ts +1 -1
  858. package/dist/types/components/controls/TagInput/TagInput.types.d.ts +2 -2
  859. package/dist/types/components/controls/TreeView/TreeView.d.ts +1 -1
  860. package/dist/types/components/controls/TreeView/TreeView.types.d.ts +24 -2
  861. package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +1 -1
  862. package/dist/types/components/data/DataTable/DataTable.types.d.ts +2 -2
  863. package/dist/types/components/editor/AssetBrowser/AssetBrowser.d.ts +13 -0
  864. package/dist/types/components/editor/AssetBrowser/AssetBrowser.types.d.ts +241 -0
  865. package/dist/types/components/editor/AssetBrowser/assetBrowserLabels.d.ts +70 -0
  866. package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.types.d.ts +1 -1
  867. package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +2 -2
  868. package/dist/types/components/editor/Minimap/Minimap.d.ts +26 -0
  869. package/dist/types/components/editor/Minimap/Minimap.types.d.ts +249 -0
  870. package/dist/types/components/editor/Minimap/MinimapContext.d.ts +27 -0
  871. package/dist/types/components/editor/Minimap/MinimapCorner.d.ts +8 -0
  872. package/dist/types/components/editor/Minimap/MinimapFooter.d.ts +8 -0
  873. package/dist/types/components/editor/Minimap/MinimapStore.d.ts +17 -0
  874. package/dist/types/components/editor/Minimap/MinimapTitle.d.ts +8 -0
  875. package/dist/types/components/editor/Minimap/ViewportMinimap.d.ts +52 -0
  876. package/dist/types/components/editor/Minimap/computeBoundsFromItems.d.ts +13 -0
  877. package/dist/types/components/editor/Minimap/index.d.ts +13 -0
  878. package/dist/types/components/editor/NodeGraph/NodeGraph.d.ts +63 -0
  879. package/dist/types/components/editor/NodeGraph/NodeGraph.types.d.ts +568 -0
  880. package/dist/types/components/editor/NodeGraph/NodeGraphContext.d.ts +30 -0
  881. package/dist/types/components/editor/NodeGraph/NodeGraphNodeParts.d.ts +86 -0
  882. package/dist/types/components/editor/NodeGraph/NodeGraphNodeSection.d.ts +47 -0
  883. package/dist/types/components/editor/NodeGraph/NodeGraphPin.d.ts +57 -0
  884. package/dist/types/components/editor/NodeGraph/NodeGraphPort.d.ts +30 -0
  885. package/dist/types/components/editor/NodeGraph/NodeGraphPortVisual.d.ts +46 -0
  886. package/dist/types/components/editor/NodeGraph/NodeGraphSlots.d.ts +16 -0
  887. package/dist/types/components/editor/NodeGraph/NodeGraphStore.d.ts +256 -0
  888. package/dist/types/components/editor/NodeGraph/NodeGraphToolbar.d.ts +54 -0
  889. package/dist/types/components/editor/NodeGraph/createTypeMatchValidator.d.ts +43 -0
  890. package/dist/types/components/editor/NodeGraph/nodeGraphActions.d.ts +39 -0
  891. package/dist/types/components/editor/NodeGraph/nodeGraphIds.d.ts +16 -0
  892. package/dist/types/components/editor/NodeGraph/useNodeGraph.d.ts +103 -0
  893. package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +51 -5
  894. package/dist/types/components/editor/Timeline/Timeline.d.ts +18 -0
  895. package/dist/types/components/editor/Timeline/Timeline.types.d.ts +348 -0
  896. package/dist/types/components/editor/Timeline/TimelineContext.d.ts +51 -0
  897. package/dist/types/components/editor/Timeline/TimelineFooter.d.ts +8 -0
  898. package/dist/types/components/editor/Timeline/TimelineMinimap.d.ts +21 -0
  899. package/dist/types/components/editor/Timeline/TimelineStore.d.ts +41 -0
  900. package/dist/types/components/editor/Timeline/TimelineToolbar.d.ts +8 -0
  901. package/dist/types/components/editor/Timeline/TimelineTrackScale.d.ts +8 -0
  902. package/dist/types/components/editor/Timeline/index.d.ts +15 -0
  903. package/dist/types/components/editor/Timeline/timelineCoords.d.ts +7 -0
  904. package/dist/types/components/editor/Timeline/timelineEdits.d.ts +18 -0
  905. package/dist/types/components/editor/TransformControl/TransformControl.types.d.ts +2 -2
  906. package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +1 -1
  907. package/dist/types/components/feedback/Alert/Alert.d.ts +2 -2
  908. package/dist/types/components/feedback/Alert/Alert.types.d.ts +5 -5
  909. package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +1 -3
  910. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +2 -2
  911. package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +1 -1
  912. package/dist/types/components/feedback/EmptyState/EmptyState.types.d.ts +2 -2
  913. package/dist/types/components/feedback/LogView/LogView.d.ts +58 -0
  914. package/dist/types/components/feedback/LogView/LogView.types.d.ts +333 -0
  915. package/dist/types/components/feedback/LogView/LogViewBody.d.ts +15 -0
  916. package/dist/types/components/feedback/LogView/LogViewContext.d.ts +9 -0
  917. package/dist/types/components/feedback/LogView/LogViewParts.d.ts +35 -0
  918. package/dist/types/components/feedback/LogView/LogViewStore.d.ts +4 -0
  919. package/dist/types/components/feedback/LogView/logViewLabels.d.ts +9 -0
  920. package/dist/types/components/feedback/LogView/logViewUtils.d.ts +41 -0
  921. package/dist/types/components/feedback/ProgressBar/ProgressBar.types.d.ts +3 -3
  922. package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +4 -4
  923. package/dist/types/components/feedback/Stat/Stat.types.d.ts +2 -2
  924. package/dist/types/components/feedback/Toast/Toast.types.d.ts +1 -1
  925. package/dist/types/components/form/FormHelperText.d.ts +2 -2
  926. package/dist/types/components/form/FormLabel.d.ts +1 -1
  927. package/dist/types/components/form/InputWrapper.d.ts +2 -2
  928. package/dist/types/components/layout/Accordion/Accordion.types.d.ts +2 -2
  929. package/dist/types/components/layout/Card/Card.types.d.ts +6 -6
  930. package/dist/types/components/layout/Divider/Divider.types.d.ts +2 -2
  931. package/dist/types/components/layout/Flex/Flex.d.ts +1 -1
  932. package/dist/types/components/layout/Grid/Grid.d.ts +1 -1
  933. package/dist/types/components/layout/ListItem/ListItem.types.d.ts +2 -2
  934. package/dist/types/components/layout/PageHeader/PageHeader.types.d.ts +1 -1
  935. package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +6 -6
  936. package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +2 -2
  937. package/dist/types/components/layout/Stack/Stack.d.ts +1 -1
  938. package/dist/types/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +1 -0
  939. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +7 -0
  940. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +18 -3
  941. package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +55 -63
  942. package/dist/types/components/navigation/Menu/Menu.d.ts +38 -35
  943. package/dist/types/components/navigation/Menu/Menu.types.d.ts +190 -71
  944. package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +1 -1
  945. package/dist/types/components/navigation/PathBar/PathBar.d.ts +31 -0
  946. package/dist/types/components/navigation/PathBar/PathBar.types.d.ts +79 -0
  947. package/dist/types/components/navigation/SegmentedControl/SegmentedControl.types.d.ts +3 -3
  948. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +2 -2
  949. package/dist/types/components/primitives/Avatar/Avatar.types.d.ts +2 -2
  950. package/dist/types/components/primitives/Badge/Badge.types.d.ts +1 -1
  951. package/dist/types/components/primitives/Button/Button.d.ts +2 -2
  952. package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +2 -2
  953. package/dist/types/components/primitives/Code/Code.types.d.ts +1 -1
  954. package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +2 -2
  955. package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +3 -3
  956. package/dist/types/components/primitives/Icon/Icon.d.ts +2 -2
  957. package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
  958. package/dist/types/components/primitives/Input/Input.d.ts +1 -1
  959. package/dist/types/components/primitives/Kbd/Kbd.types.d.ts +1 -1
  960. package/dist/types/components/primitives/Link/Link.types.d.ts +1 -1
  961. package/dist/types/components/primitives/Popover/Popover.types.d.ts +2 -2
  962. package/dist/types/components/primitives/Radio/Radio.types.d.ts +3 -3
  963. package/dist/types/components/primitives/Switch/Switch.d.ts +1 -1
  964. package/dist/types/components/primitives/TextArea/TextArea.types.d.ts +1 -1
  965. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +1 -1
  966. package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.types.d.ts +1 -1
  967. package/dist/types/components/primitives/canvas/canvas.types.d.ts +16 -1
  968. package/dist/types/components/primitives/viewport/Viewport.d.ts +38 -0
  969. package/dist/types/components/primitives/viewport/Viewport.types.d.ts +257 -0
  970. package/dist/types/components/primitives/viewport/ViewportContext.d.ts +23 -0
  971. package/dist/types/components/primitives/viewport/ViewportLayer.d.ts +26 -0
  972. package/dist/types/components/primitives/viewport/ViewportOverlay.d.ts +27 -0
  973. package/dist/types/components/primitives/viewport/ViewportWorld.d.ts +25 -0
  974. package/dist/types/components/primitives/viewport/viewportCoords.d.ts +25 -0
  975. package/dist/types/components/primitives/viewport/viewportMath.d.ts +35 -0
  976. package/dist/types/components/shell/AppShell/AppShell.types.d.ts +2 -2
  977. package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +2 -2
  978. package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +5 -5
  979. package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +3 -3
  980. package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +5 -5
  981. package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +13 -4
  982. package/dist/types/hooks/useEventCallback/useEventCallback.d.ts +32 -0
  983. package/dist/types/hooks/useIsMounted/useIsMounted.d.ts +28 -0
  984. package/dist/types/hooks/useKeyboard/types.d.ts +1 -1
  985. package/dist/types/hooks/useLatest/useLatest.d.ts +23 -0
  986. package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +3 -3
  987. package/dist/types/index.d.ts +71 -6
  988. package/dist/types/theme/ThemeProvider.d.ts +5 -3
  989. package/dist/types/theme/contract.css.d.ts +1 -1
  990. package/dist/types/theme/createCustomTheme.d.ts +1 -1
  991. package/dist/types/theme/darkThemeValues.d.ts +1 -1
  992. package/dist/types/theme/lightThemeValues.d.ts +1 -1
  993. package/dist/types/theme/themeContractData.d.ts +4 -4
  994. package/dist/types/theme-values.d.ts +1 -1
  995. package/dist/types/types/keyframe.d.ts +64 -0
  996. package/package.json +34 -18
  997. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  998. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  999. package/dist/esm/_virtual/cjs.js +0 -4
  1000. package/dist/esm/_virtual/cjs.js.map +0 -1
  1001. package/dist/esm/_virtual/cssesc.js +0 -8
  1002. package/dist/esm/_virtual/cssesc.js.map +0 -1
  1003. package/dist/esm/_virtual/picocolors.js +0 -8
  1004. package/dist/esm/_virtual/picocolors.js.map +0 -1
  1005. package/dist/esm/_virtual/picocolors2.js +0 -4
  1006. package/dist/esm/_virtual/picocolors2.js.map +0 -1
  1007. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +0 -67
  1008. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +0 -53
  1009. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +0 -1
  1010. package/dist/esm/components/navigation/Menu/Menu.helpers.js +0 -53
  1011. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +0 -1
  1012. package/dist/esm/components/navigation/Menu/useMenu.js +0 -88
  1013. package/dist/esm/components/navigation/Menu/useMenu.js.map +0 -1
  1014. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js +0 -56
  1015. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js.map +0 -1
  1016. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js +0 -46
  1017. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js.map +0 -1
  1018. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js +0 -13
  1019. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js.map +0 -1
  1020. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js +0 -962
  1021. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js.map +0 -1
  1022. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js +0 -309
  1023. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js.map +0 -1
  1024. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js +0 -18
  1025. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js.map +0 -1
  1026. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js +0 -23
  1027. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js.map +0 -1
  1028. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js +0 -1543
  1029. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js.map +0 -1
  1030. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js +0 -38
  1031. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js.map +0 -1
  1032. package/dist/esm/node_modules/css-what/lib/es/parse.js +0 -424
  1033. package/dist/esm/node_modules/css-what/lib/es/parse.js.map +0 -1
  1034. package/dist/esm/node_modules/css-what/lib/es/types.js +0 -29
  1035. package/dist/esm/node_modules/css-what/lib/es/types.js.map +0 -1
  1036. package/dist/esm/node_modules/cssesc/cssesc.js +0 -120
  1037. package/dist/esm/node_modules/cssesc/cssesc.js.map +0 -1
  1038. package/dist/esm/node_modules/dedent/dist/dedent.js +0 -100
  1039. package/dist/esm/node_modules/dedent/dist/dedent.js.map +0 -1
  1040. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js +0 -40
  1041. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js.map +0 -1
  1042. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js +0 -9
  1043. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js.map +0 -1
  1044. package/dist/esm/node_modules/deepmerge/dist/cjs.js +0 -143
  1045. package/dist/esm/node_modules/deepmerge/dist/cjs.js.map +0 -1
  1046. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js +0 -1386
  1047. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js.map +0 -1
  1048. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js +0 -102
  1049. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js.map +0 -1
  1050. package/dist/esm/node_modules/picocolors/picocolors.js +0 -87
  1051. package/dist/esm/node_modules/picocolors/picocolors.js.map +0 -1
  1052. package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +0 -5
  1053. package/dist/types/components/navigation/Menu/useMenu.d.ts +0 -16
@@ -1,1543 +0,0 @@
1
- /**
2
- * @module LRUCache
3
- */
4
- const perf = typeof performance === 'object' &&
5
- performance &&
6
- typeof performance.now === 'function'
7
- ? performance
8
- : Date;
9
- const warned = new Set();
10
- /* c8 ignore start */
11
- const PROCESS = (typeof process === 'object' && !!process ? process : {});
12
- /* c8 ignore start */
13
- const emitWarning = (msg, type, code, fn) => {
14
- typeof PROCESS.emitWarning === 'function'
15
- ? PROCESS.emitWarning(msg, type, code, fn)
16
- : console.error(`[${code}] ${type}: ${msg}`);
17
- };
18
- let AC = globalThis.AbortController;
19
- let AS = globalThis.AbortSignal;
20
- /* c8 ignore start */
21
- if (typeof AC === 'undefined') {
22
- //@ts-ignore
23
- AS = class AbortSignal {
24
- onabort;
25
- _onabort = [];
26
- reason;
27
- aborted = false;
28
- addEventListener(_, fn) {
29
- this._onabort.push(fn);
30
- }
31
- };
32
- //@ts-ignore
33
- AC = class AbortController {
34
- constructor() {
35
- warnACPolyfill();
36
- }
37
- signal = new AS();
38
- abort(reason) {
39
- if (this.signal.aborted)
40
- return;
41
- //@ts-ignore
42
- this.signal.reason = reason;
43
- //@ts-ignore
44
- this.signal.aborted = true;
45
- //@ts-ignore
46
- for (const fn of this.signal._onabort) {
47
- fn(reason);
48
- }
49
- this.signal.onabort?.(reason);
50
- }
51
- };
52
- let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';
53
- const warnACPolyfill = () => {
54
- if (!printACPolyfillWarning)
55
- return;
56
- printACPolyfillWarning = false;
57
- emitWarning('AbortController is not defined. If using lru-cache in ' +
58
- 'node 14, load an AbortController polyfill from the ' +
59
- '`node-abort-controller` package. A minimal polyfill is ' +
60
- 'provided for use by LRUCache.fetch(), but it should not be ' +
61
- 'relied upon in other contexts (eg, passing it to other APIs that ' +
62
- 'use AbortController/AbortSignal might have undesirable effects). ' +
63
- 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);
64
- };
65
- }
66
- /* c8 ignore stop */
67
- const shouldWarn = (code) => !warned.has(code);
68
- const isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
69
- /* c8 ignore start */
70
- // This is a little bit ridiculous, tbh.
71
- // The maximum array length is 2^32-1 or thereabouts on most JS impls.
72
- // And well before that point, you're caching the entire world, I mean,
73
- // that's ~32GB of just integers for the next/prev links, plus whatever
74
- // else to hold that many keys and values. Just filling the memory with
75
- // zeroes at init time is brutal when you get that big.
76
- // But why not be complete?
77
- // Maybe in the future, these limits will have expanded.
78
- const getUintArray = (max) => !isPosInt(max)
79
- ? null
80
- : max <= Math.pow(2, 8)
81
- ? Uint8Array
82
- : max <= Math.pow(2, 16)
83
- ? Uint16Array
84
- : max <= Math.pow(2, 32)
85
- ? Uint32Array
86
- : max <= Number.MAX_SAFE_INTEGER
87
- ? ZeroArray
88
- : null;
89
- /* c8 ignore stop */
90
- class ZeroArray extends Array {
91
- constructor(size) {
92
- super(size);
93
- this.fill(0);
94
- }
95
- }
96
- class Stack {
97
- heap;
98
- length;
99
- // private constructor
100
- static #constructing = false;
101
- static create(max) {
102
- const HeapCls = getUintArray(max);
103
- if (!HeapCls)
104
- return [];
105
- Stack.#constructing = true;
106
- const s = new Stack(max, HeapCls);
107
- Stack.#constructing = false;
108
- return s;
109
- }
110
- constructor(max, HeapCls) {
111
- /* c8 ignore start */
112
- if (!Stack.#constructing) {
113
- throw new TypeError('instantiate Stack using Stack.create(n)');
114
- }
115
- /* c8 ignore stop */
116
- this.heap = new HeapCls(max);
117
- this.length = 0;
118
- }
119
- push(n) {
120
- this.heap[this.length++] = n;
121
- }
122
- pop() {
123
- return this.heap[--this.length];
124
- }
125
- }
126
- /**
127
- * Default export, the thing you're using this module to get.
128
- *
129
- * The `K` and `V` types define the key and value types, respectively. The
130
- * optional `FC` type defines the type of the `context` object passed to
131
- * `cache.fetch()` and `cache.memo()`.
132
- *
133
- * Keys and values **must not** be `null` or `undefined`.
134
- *
135
- * All properties from the options object (with the exception of `max`,
136
- * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are
137
- * added as normal public members. (The listed options are read-only getters.)
138
- *
139
- * Changing any of these will alter the defaults for subsequent method calls.
140
- */
141
- class LRUCache {
142
- // options that cannot be changed without disaster
143
- #max;
144
- #maxSize;
145
- #dispose;
146
- #disposeAfter;
147
- #fetchMethod;
148
- #memoMethod;
149
- /**
150
- * {@link LRUCache.OptionsBase.ttl}
151
- */
152
- ttl;
153
- /**
154
- * {@link LRUCache.OptionsBase.ttlResolution}
155
- */
156
- ttlResolution;
157
- /**
158
- * {@link LRUCache.OptionsBase.ttlAutopurge}
159
- */
160
- ttlAutopurge;
161
- /**
162
- * {@link LRUCache.OptionsBase.updateAgeOnGet}
163
- */
164
- updateAgeOnGet;
165
- /**
166
- * {@link LRUCache.OptionsBase.updateAgeOnHas}
167
- */
168
- updateAgeOnHas;
169
- /**
170
- * {@link LRUCache.OptionsBase.allowStale}
171
- */
172
- allowStale;
173
- /**
174
- * {@link LRUCache.OptionsBase.noDisposeOnSet}
175
- */
176
- noDisposeOnSet;
177
- /**
178
- * {@link LRUCache.OptionsBase.noUpdateTTL}
179
- */
180
- noUpdateTTL;
181
- /**
182
- * {@link LRUCache.OptionsBase.maxEntrySize}
183
- */
184
- maxEntrySize;
185
- /**
186
- * {@link LRUCache.OptionsBase.sizeCalculation}
187
- */
188
- sizeCalculation;
189
- /**
190
- * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
191
- */
192
- noDeleteOnFetchRejection;
193
- /**
194
- * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
195
- */
196
- noDeleteOnStaleGet;
197
- /**
198
- * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
199
- */
200
- allowStaleOnFetchAbort;
201
- /**
202
- * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
203
- */
204
- allowStaleOnFetchRejection;
205
- /**
206
- * {@link LRUCache.OptionsBase.ignoreFetchAbort}
207
- */
208
- ignoreFetchAbort;
209
- // computed properties
210
- #size;
211
- #calculatedSize;
212
- #keyMap;
213
- #keyList;
214
- #valList;
215
- #next;
216
- #prev;
217
- #head;
218
- #tail;
219
- #free;
220
- #disposed;
221
- #sizes;
222
- #starts;
223
- #ttls;
224
- #hasDispose;
225
- #hasFetchMethod;
226
- #hasDisposeAfter;
227
- /**
228
- * Do not call this method unless you need to inspect the
229
- * inner workings of the cache. If anything returned by this
230
- * object is modified in any way, strange breakage may occur.
231
- *
232
- * These fields are private for a reason!
233
- *
234
- * @internal
235
- */
236
- static unsafeExposeInternals(c) {
237
- return {
238
- // properties
239
- starts: c.#starts,
240
- ttls: c.#ttls,
241
- sizes: c.#sizes,
242
- keyMap: c.#keyMap,
243
- keyList: c.#keyList,
244
- valList: c.#valList,
245
- next: c.#next,
246
- prev: c.#prev,
247
- get head() {
248
- return c.#head;
249
- },
250
- get tail() {
251
- return c.#tail;
252
- },
253
- free: c.#free,
254
- // methods
255
- isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
256
- backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),
257
- moveToTail: (index) => c.#moveToTail(index),
258
- indexes: (options) => c.#indexes(options),
259
- rindexes: (options) => c.#rindexes(options),
260
- isStale: (index) => c.#isStale(index),
261
- };
262
- }
263
- // Protected read-only members
264
- /**
265
- * {@link LRUCache.OptionsBase.max} (read-only)
266
- */
267
- get max() {
268
- return this.#max;
269
- }
270
- /**
271
- * {@link LRUCache.OptionsBase.maxSize} (read-only)
272
- */
273
- get maxSize() {
274
- return this.#maxSize;
275
- }
276
- /**
277
- * The total computed size of items in the cache (read-only)
278
- */
279
- get calculatedSize() {
280
- return this.#calculatedSize;
281
- }
282
- /**
283
- * The number of items stored in the cache (read-only)
284
- */
285
- get size() {
286
- return this.#size;
287
- }
288
- /**
289
- * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
290
- */
291
- get fetchMethod() {
292
- return this.#fetchMethod;
293
- }
294
- get memoMethod() {
295
- return this.#memoMethod;
296
- }
297
- /**
298
- * {@link LRUCache.OptionsBase.dispose} (read-only)
299
- */
300
- get dispose() {
301
- return this.#dispose;
302
- }
303
- /**
304
- * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
305
- */
306
- get disposeAfter() {
307
- return this.#disposeAfter;
308
- }
309
- constructor(options) {
310
- const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;
311
- if (max !== 0 && !isPosInt(max)) {
312
- throw new TypeError('max option must be a nonnegative integer');
313
- }
314
- const UintArray = max ? getUintArray(max) : Array;
315
- if (!UintArray) {
316
- throw new Error('invalid max value: ' + max);
317
- }
318
- this.#max = max;
319
- this.#maxSize = maxSize;
320
- this.maxEntrySize = maxEntrySize || this.#maxSize;
321
- this.sizeCalculation = sizeCalculation;
322
- if (this.sizeCalculation) {
323
- if (!this.#maxSize && !this.maxEntrySize) {
324
- throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');
325
- }
326
- if (typeof this.sizeCalculation !== 'function') {
327
- throw new TypeError('sizeCalculation set to non-function');
328
- }
329
- }
330
- if (memoMethod !== undefined &&
331
- typeof memoMethod !== 'function') {
332
- throw new TypeError('memoMethod must be a function if defined');
333
- }
334
- this.#memoMethod = memoMethod;
335
- if (fetchMethod !== undefined &&
336
- typeof fetchMethod !== 'function') {
337
- throw new TypeError('fetchMethod must be a function if specified');
338
- }
339
- this.#fetchMethod = fetchMethod;
340
- this.#hasFetchMethod = !!fetchMethod;
341
- this.#keyMap = new Map();
342
- this.#keyList = new Array(max).fill(undefined);
343
- this.#valList = new Array(max).fill(undefined);
344
- this.#next = new UintArray(max);
345
- this.#prev = new UintArray(max);
346
- this.#head = 0;
347
- this.#tail = 0;
348
- this.#free = Stack.create(max);
349
- this.#size = 0;
350
- this.#calculatedSize = 0;
351
- if (typeof dispose === 'function') {
352
- this.#dispose = dispose;
353
- }
354
- if (typeof disposeAfter === 'function') {
355
- this.#disposeAfter = disposeAfter;
356
- this.#disposed = [];
357
- }
358
- else {
359
- this.#disposeAfter = undefined;
360
- this.#disposed = undefined;
361
- }
362
- this.#hasDispose = !!this.#dispose;
363
- this.#hasDisposeAfter = !!this.#disposeAfter;
364
- this.noDisposeOnSet = !!noDisposeOnSet;
365
- this.noUpdateTTL = !!noUpdateTTL;
366
- this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
367
- this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
368
- this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
369
- this.ignoreFetchAbort = !!ignoreFetchAbort;
370
- // NB: maxEntrySize is set to maxSize if it's set
371
- if (this.maxEntrySize !== 0) {
372
- if (this.#maxSize !== 0) {
373
- if (!isPosInt(this.#maxSize)) {
374
- throw new TypeError('maxSize must be a positive integer if specified');
375
- }
376
- }
377
- if (!isPosInt(this.maxEntrySize)) {
378
- throw new TypeError('maxEntrySize must be a positive integer if specified');
379
- }
380
- this.#initializeSizeTracking();
381
- }
382
- this.allowStale = !!allowStale;
383
- this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
384
- this.updateAgeOnGet = !!updateAgeOnGet;
385
- this.updateAgeOnHas = !!updateAgeOnHas;
386
- this.ttlResolution =
387
- isPosInt(ttlResolution) || ttlResolution === 0
388
- ? ttlResolution
389
- : 1;
390
- this.ttlAutopurge = !!ttlAutopurge;
391
- this.ttl = ttl || 0;
392
- if (this.ttl) {
393
- if (!isPosInt(this.ttl)) {
394
- throw new TypeError('ttl must be a positive integer if specified');
395
- }
396
- this.#initializeTTLTracking();
397
- }
398
- // do not allow completely unbounded caches
399
- if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
400
- throw new TypeError('At least one of max, maxSize, or ttl is required');
401
- }
402
- if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
403
- const code = 'LRU_CACHE_UNBOUNDED';
404
- if (shouldWarn(code)) {
405
- warned.add(code);
406
- const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +
407
- 'result in unbounded memory consumption.';
408
- emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);
409
- }
410
- }
411
- }
412
- /**
413
- * Return the number of ms left in the item's TTL. If item is not in cache,
414
- * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.
415
- */
416
- getRemainingTTL(key) {
417
- return this.#keyMap.has(key) ? Infinity : 0;
418
- }
419
- #initializeTTLTracking() {
420
- const ttls = new ZeroArray(this.#max);
421
- const starts = new ZeroArray(this.#max);
422
- this.#ttls = ttls;
423
- this.#starts = starts;
424
- this.#setItemTTL = (index, ttl, start = perf.now()) => {
425
- starts[index] = ttl !== 0 ? start : 0;
426
- ttls[index] = ttl;
427
- if (ttl !== 0 && this.ttlAutopurge) {
428
- const t = setTimeout(() => {
429
- if (this.#isStale(index)) {
430
- this.#delete(this.#keyList[index], 'expire');
431
- }
432
- }, ttl + 1);
433
- // unref() not supported on all platforms
434
- /* c8 ignore start */
435
- if (t.unref) {
436
- t.unref();
437
- }
438
- /* c8 ignore stop */
439
- }
440
- };
441
- this.#updateItemAge = index => {
442
- starts[index] = ttls[index] !== 0 ? perf.now() : 0;
443
- };
444
- this.#statusTTL = (status, index) => {
445
- if (ttls[index]) {
446
- const ttl = ttls[index];
447
- const start = starts[index];
448
- /* c8 ignore next */
449
- if (!ttl || !start)
450
- return;
451
- status.ttl = ttl;
452
- status.start = start;
453
- status.now = cachedNow || getNow();
454
- const age = status.now - start;
455
- status.remainingTTL = ttl - age;
456
- }
457
- };
458
- // debounce calls to perf.now() to 1s so we're not hitting
459
- // that costly call repeatedly.
460
- let cachedNow = 0;
461
- const getNow = () => {
462
- const n = perf.now();
463
- if (this.ttlResolution > 0) {
464
- cachedNow = n;
465
- const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);
466
- // not available on all platforms
467
- /* c8 ignore start */
468
- if (t.unref) {
469
- t.unref();
470
- }
471
- /* c8 ignore stop */
472
- }
473
- return n;
474
- };
475
- this.getRemainingTTL = key => {
476
- const index = this.#keyMap.get(key);
477
- if (index === undefined) {
478
- return 0;
479
- }
480
- const ttl = ttls[index];
481
- const start = starts[index];
482
- if (!ttl || !start) {
483
- return Infinity;
484
- }
485
- const age = (cachedNow || getNow()) - start;
486
- return ttl - age;
487
- };
488
- this.#isStale = index => {
489
- const s = starts[index];
490
- const t = ttls[index];
491
- return !!t && !!s && (cachedNow || getNow()) - s > t;
492
- };
493
- }
494
- // conditionally set private methods related to TTL
495
- #updateItemAge = () => { };
496
- #statusTTL = () => { };
497
- #setItemTTL = () => { };
498
- /* c8 ignore stop */
499
- #isStale = () => false;
500
- #initializeSizeTracking() {
501
- const sizes = new ZeroArray(this.#max);
502
- this.#calculatedSize = 0;
503
- this.#sizes = sizes;
504
- this.#removeItemSize = index => {
505
- this.#calculatedSize -= sizes[index];
506
- sizes[index] = 0;
507
- };
508
- this.#requireSize = (k, v, size, sizeCalculation) => {
509
- // provisionally accept background fetches.
510
- // actual value size will be checked when they return.
511
- if (this.#isBackgroundFetch(v)) {
512
- return 0;
513
- }
514
- if (!isPosInt(size)) {
515
- if (sizeCalculation) {
516
- if (typeof sizeCalculation !== 'function') {
517
- throw new TypeError('sizeCalculation must be a function');
518
- }
519
- size = sizeCalculation(v, k);
520
- if (!isPosInt(size)) {
521
- throw new TypeError('sizeCalculation return invalid (expect positive integer)');
522
- }
523
- }
524
- else {
525
- throw new TypeError('invalid size value (must be positive integer). ' +
526
- 'When maxSize or maxEntrySize is used, sizeCalculation ' +
527
- 'or size must be set.');
528
- }
529
- }
530
- return size;
531
- };
532
- this.#addItemSize = (index, size, status) => {
533
- sizes[index] = size;
534
- if (this.#maxSize) {
535
- const maxSize = this.#maxSize - sizes[index];
536
- while (this.#calculatedSize > maxSize) {
537
- this.#evict(true);
538
- }
539
- }
540
- this.#calculatedSize += sizes[index];
541
- if (status) {
542
- status.entrySize = size;
543
- status.totalCalculatedSize = this.#calculatedSize;
544
- }
545
- };
546
- }
547
- #removeItemSize = _i => { };
548
- #addItemSize = (_i, _s, _st) => { };
549
- #requireSize = (_k, _v, size, sizeCalculation) => {
550
- if (size || sizeCalculation) {
551
- throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');
552
- }
553
- return 0;
554
- };
555
- *#indexes({ allowStale = this.allowStale } = {}) {
556
- if (this.#size) {
557
- for (let i = this.#tail; true;) {
558
- if (!this.#isValidIndex(i)) {
559
- break;
560
- }
561
- if (allowStale || !this.#isStale(i)) {
562
- yield i;
563
- }
564
- if (i === this.#head) {
565
- break;
566
- }
567
- else {
568
- i = this.#prev[i];
569
- }
570
- }
571
- }
572
- }
573
- *#rindexes({ allowStale = this.allowStale } = {}) {
574
- if (this.#size) {
575
- for (let i = this.#head; true;) {
576
- if (!this.#isValidIndex(i)) {
577
- break;
578
- }
579
- if (allowStale || !this.#isStale(i)) {
580
- yield i;
581
- }
582
- if (i === this.#tail) {
583
- break;
584
- }
585
- else {
586
- i = this.#next[i];
587
- }
588
- }
589
- }
590
- }
591
- #isValidIndex(index) {
592
- return (index !== undefined &&
593
- this.#keyMap.get(this.#keyList[index]) === index);
594
- }
595
- /**
596
- * Return a generator yielding `[key, value]` pairs,
597
- * in order from most recently used to least recently used.
598
- */
599
- *entries() {
600
- for (const i of this.#indexes()) {
601
- if (this.#valList[i] !== undefined &&
602
- this.#keyList[i] !== undefined &&
603
- !this.#isBackgroundFetch(this.#valList[i])) {
604
- yield [this.#keyList[i], this.#valList[i]];
605
- }
606
- }
607
- }
608
- /**
609
- * Inverse order version of {@link LRUCache.entries}
610
- *
611
- * Return a generator yielding `[key, value]` pairs,
612
- * in order from least recently used to most recently used.
613
- */
614
- *rentries() {
615
- for (const i of this.#rindexes()) {
616
- if (this.#valList[i] !== undefined &&
617
- this.#keyList[i] !== undefined &&
618
- !this.#isBackgroundFetch(this.#valList[i])) {
619
- yield [this.#keyList[i], this.#valList[i]];
620
- }
621
- }
622
- }
623
- /**
624
- * Return a generator yielding the keys in the cache,
625
- * in order from most recently used to least recently used.
626
- */
627
- *keys() {
628
- for (const i of this.#indexes()) {
629
- const k = this.#keyList[i];
630
- if (k !== undefined &&
631
- !this.#isBackgroundFetch(this.#valList[i])) {
632
- yield k;
633
- }
634
- }
635
- }
636
- /**
637
- * Inverse order version of {@link LRUCache.keys}
638
- *
639
- * Return a generator yielding the keys in the cache,
640
- * in order from least recently used to most recently used.
641
- */
642
- *rkeys() {
643
- for (const i of this.#rindexes()) {
644
- const k = this.#keyList[i];
645
- if (k !== undefined &&
646
- !this.#isBackgroundFetch(this.#valList[i])) {
647
- yield k;
648
- }
649
- }
650
- }
651
- /**
652
- * Return a generator yielding the values in the cache,
653
- * in order from most recently used to least recently used.
654
- */
655
- *values() {
656
- for (const i of this.#indexes()) {
657
- const v = this.#valList[i];
658
- if (v !== undefined &&
659
- !this.#isBackgroundFetch(this.#valList[i])) {
660
- yield this.#valList[i];
661
- }
662
- }
663
- }
664
- /**
665
- * Inverse order version of {@link LRUCache.values}
666
- *
667
- * Return a generator yielding the values in the cache,
668
- * in order from least recently used to most recently used.
669
- */
670
- *rvalues() {
671
- for (const i of this.#rindexes()) {
672
- const v = this.#valList[i];
673
- if (v !== undefined &&
674
- !this.#isBackgroundFetch(this.#valList[i])) {
675
- yield this.#valList[i];
676
- }
677
- }
678
- }
679
- /**
680
- * Iterating over the cache itself yields the same results as
681
- * {@link LRUCache.entries}
682
- */
683
- [Symbol.iterator]() {
684
- return this.entries();
685
- }
686
- /**
687
- * A String value that is used in the creation of the default string
688
- * description of an object. Called by the built-in method
689
- * `Object.prototype.toString`.
690
- */
691
- [Symbol.toStringTag] = 'LRUCache';
692
- /**
693
- * Find a value for which the supplied fn method returns a truthy value,
694
- * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.
695
- */
696
- find(fn, getOptions = {}) {
697
- for (const i of this.#indexes()) {
698
- const v = this.#valList[i];
699
- const value = this.#isBackgroundFetch(v)
700
- ? v.__staleWhileFetching
701
- : v;
702
- if (value === undefined)
703
- continue;
704
- if (fn(value, this.#keyList[i], this)) {
705
- return this.get(this.#keyList[i], getOptions);
706
- }
707
- }
708
- }
709
- /**
710
- * Call the supplied function on each item in the cache, in order from most
711
- * recently used to least recently used.
712
- *
713
- * `fn` is called as `fn(value, key, cache)`.
714
- *
715
- * If `thisp` is provided, function will be called in the `this`-context of
716
- * the provided object, or the cache if no `thisp` object is provided.
717
- *
718
- * Does not update age or recenty of use, or iterate over stale values.
719
- */
720
- forEach(fn, thisp = this) {
721
- for (const i of this.#indexes()) {
722
- const v = this.#valList[i];
723
- const value = this.#isBackgroundFetch(v)
724
- ? v.__staleWhileFetching
725
- : v;
726
- if (value === undefined)
727
- continue;
728
- fn.call(thisp, value, this.#keyList[i], this);
729
- }
730
- }
731
- /**
732
- * The same as {@link LRUCache.forEach} but items are iterated over in
733
- * reverse order. (ie, less recently used items are iterated over first.)
734
- */
735
- rforEach(fn, thisp = this) {
736
- for (const i of this.#rindexes()) {
737
- const v = this.#valList[i];
738
- const value = this.#isBackgroundFetch(v)
739
- ? v.__staleWhileFetching
740
- : v;
741
- if (value === undefined)
742
- continue;
743
- fn.call(thisp, value, this.#keyList[i], this);
744
- }
745
- }
746
- /**
747
- * Delete any stale entries. Returns true if anything was removed,
748
- * false otherwise.
749
- */
750
- purgeStale() {
751
- let deleted = false;
752
- for (const i of this.#rindexes({ allowStale: true })) {
753
- if (this.#isStale(i)) {
754
- this.#delete(this.#keyList[i], 'expire');
755
- deleted = true;
756
- }
757
- }
758
- return deleted;
759
- }
760
- /**
761
- * Get the extended info about a given entry, to get its value, size, and
762
- * TTL info simultaneously. Returns `undefined` if the key is not present.
763
- *
764
- * Unlike {@link LRUCache#dump}, which is designed to be portable and survive
765
- * serialization, the `start` value is always the current timestamp, and the
766
- * `ttl` is a calculated remaining time to live (negative if expired).
767
- *
768
- * Always returns stale values, if their info is found in the cache, so be
769
- * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})
770
- * if relevant.
771
- */
772
- info(key) {
773
- const i = this.#keyMap.get(key);
774
- if (i === undefined)
775
- return undefined;
776
- const v = this.#valList[i];
777
- const value = this.#isBackgroundFetch(v)
778
- ? v.__staleWhileFetching
779
- : v;
780
- if (value === undefined)
781
- return undefined;
782
- const entry = { value };
783
- if (this.#ttls && this.#starts) {
784
- const ttl = this.#ttls[i];
785
- const start = this.#starts[i];
786
- if (ttl && start) {
787
- const remain = ttl - (perf.now() - start);
788
- entry.ttl = remain;
789
- entry.start = Date.now();
790
- }
791
- }
792
- if (this.#sizes) {
793
- entry.size = this.#sizes[i];
794
- }
795
- return entry;
796
- }
797
- /**
798
- * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
799
- * passed to {@link LRLUCache#load}.
800
- *
801
- * The `start` fields are calculated relative to a portable `Date.now()`
802
- * timestamp, even if `performance.now()` is available.
803
- *
804
- * Stale entries are always included in the `dump`, even if
805
- * {@link LRUCache.OptionsBase.allowStale} is false.
806
- *
807
- * Note: this returns an actual array, not a generator, so it can be more
808
- * easily passed around.
809
- */
810
- dump() {
811
- const arr = [];
812
- for (const i of this.#indexes({ allowStale: true })) {
813
- const key = this.#keyList[i];
814
- const v = this.#valList[i];
815
- const value = this.#isBackgroundFetch(v)
816
- ? v.__staleWhileFetching
817
- : v;
818
- if (value === undefined || key === undefined)
819
- continue;
820
- const entry = { value };
821
- if (this.#ttls && this.#starts) {
822
- entry.ttl = this.#ttls[i];
823
- // always dump the start relative to a portable timestamp
824
- // it's ok for this to be a bit slow, it's a rare operation.
825
- const age = perf.now() - this.#starts[i];
826
- entry.start = Math.floor(Date.now() - age);
827
- }
828
- if (this.#sizes) {
829
- entry.size = this.#sizes[i];
830
- }
831
- arr.unshift([key, entry]);
832
- }
833
- return arr;
834
- }
835
- /**
836
- * Reset the cache and load in the items in entries in the order listed.
837
- *
838
- * The shape of the resulting cache may be different if the same options are
839
- * not used in both caches.
840
- *
841
- * The `start` fields are assumed to be calculated relative to a portable
842
- * `Date.now()` timestamp, even if `performance.now()` is available.
843
- */
844
- load(arr) {
845
- this.clear();
846
- for (const [key, entry] of arr) {
847
- if (entry.start) {
848
- // entry.start is a portable timestamp, but we may be using
849
- // node's performance.now(), so calculate the offset, so that
850
- // we get the intended remaining TTL, no matter how long it's
851
- // been on ice.
852
- //
853
- // it's ok for this to be a bit slow, it's a rare operation.
854
- const age = Date.now() - entry.start;
855
- entry.start = perf.now() - age;
856
- }
857
- this.set(key, entry.value, entry);
858
- }
859
- }
860
- /**
861
- * Add a value to the cache.
862
- *
863
- * Note: if `undefined` is specified as a value, this is an alias for
864
- * {@link LRUCache#delete}
865
- *
866
- * Fields on the {@link LRUCache.SetOptions} options param will override
867
- * their corresponding values in the constructor options for the scope
868
- * of this single `set()` operation.
869
- *
870
- * If `start` is provided, then that will set the effective start
871
- * time for the TTL calculation. Note that this must be a previous
872
- * value of `performance.now()` if supported, or a previous value of
873
- * `Date.now()` if not.
874
- *
875
- * Options object may also include `size`, which will prevent
876
- * calling the `sizeCalculation` function and just use the specified
877
- * number if it is a positive integer, and `noDisposeOnSet` which
878
- * will prevent calling a `dispose` function in the case of
879
- * overwrites.
880
- *
881
- * If the `size` (or return value of `sizeCalculation`) for a given
882
- * entry is greater than `maxEntrySize`, then the item will not be
883
- * added to the cache.
884
- *
885
- * Will update the recency of the entry.
886
- *
887
- * If the value is `undefined`, then this is an alias for
888
- * `cache.delete(key)`. `undefined` is never stored in the cache.
889
- */
890
- set(k, v, setOptions = {}) {
891
- if (v === undefined) {
892
- this.delete(k);
893
- return this;
894
- }
895
- const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;
896
- let { noUpdateTTL = this.noUpdateTTL } = setOptions;
897
- const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
898
- // if the item doesn't fit, don't do anything
899
- // NB: maxEntrySize set to maxSize by default
900
- if (this.maxEntrySize && size > this.maxEntrySize) {
901
- if (status) {
902
- status.set = 'miss';
903
- status.maxEntrySizeExceeded = true;
904
- }
905
- // have to delete, in case something is there already.
906
- this.#delete(k, 'set');
907
- return this;
908
- }
909
- let index = this.#size === 0 ? undefined : this.#keyMap.get(k);
910
- if (index === undefined) {
911
- // addition
912
- index = (this.#size === 0
913
- ? this.#tail
914
- : this.#free.length !== 0
915
- ? this.#free.pop()
916
- : this.#size === this.#max
917
- ? this.#evict(false)
918
- : this.#size);
919
- this.#keyList[index] = k;
920
- this.#valList[index] = v;
921
- this.#keyMap.set(k, index);
922
- this.#next[this.#tail] = index;
923
- this.#prev[index] = this.#tail;
924
- this.#tail = index;
925
- this.#size++;
926
- this.#addItemSize(index, size, status);
927
- if (status)
928
- status.set = 'add';
929
- noUpdateTTL = false;
930
- }
931
- else {
932
- // update
933
- this.#moveToTail(index);
934
- const oldVal = this.#valList[index];
935
- if (v !== oldVal) {
936
- if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
937
- oldVal.__abortController.abort(new Error('replaced'));
938
- const { __staleWhileFetching: s } = oldVal;
939
- if (s !== undefined && !noDisposeOnSet) {
940
- if (this.#hasDispose) {
941
- this.#dispose?.(s, k, 'set');
942
- }
943
- if (this.#hasDisposeAfter) {
944
- this.#disposed?.push([s, k, 'set']);
945
- }
946
- }
947
- }
948
- else if (!noDisposeOnSet) {
949
- if (this.#hasDispose) {
950
- this.#dispose?.(oldVal, k, 'set');
951
- }
952
- if (this.#hasDisposeAfter) {
953
- this.#disposed?.push([oldVal, k, 'set']);
954
- }
955
- }
956
- this.#removeItemSize(index);
957
- this.#addItemSize(index, size, status);
958
- this.#valList[index] = v;
959
- if (status) {
960
- status.set = 'replace';
961
- const oldValue = oldVal && this.#isBackgroundFetch(oldVal)
962
- ? oldVal.__staleWhileFetching
963
- : oldVal;
964
- if (oldValue !== undefined)
965
- status.oldValue = oldValue;
966
- }
967
- }
968
- else if (status) {
969
- status.set = 'update';
970
- }
971
- }
972
- if (ttl !== 0 && !this.#ttls) {
973
- this.#initializeTTLTracking();
974
- }
975
- if (this.#ttls) {
976
- if (!noUpdateTTL) {
977
- this.#setItemTTL(index, ttl, start);
978
- }
979
- if (status)
980
- this.#statusTTL(status, index);
981
- }
982
- if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
983
- const dt = this.#disposed;
984
- let task;
985
- while ((task = dt?.shift())) {
986
- this.#disposeAfter?.(...task);
987
- }
988
- }
989
- return this;
990
- }
991
- /**
992
- * Evict the least recently used item, returning its value or
993
- * `undefined` if cache is empty.
994
- */
995
- pop() {
996
- try {
997
- while (this.#size) {
998
- const val = this.#valList[this.#head];
999
- this.#evict(true);
1000
- if (this.#isBackgroundFetch(val)) {
1001
- if (val.__staleWhileFetching) {
1002
- return val.__staleWhileFetching;
1003
- }
1004
- }
1005
- else if (val !== undefined) {
1006
- return val;
1007
- }
1008
- }
1009
- }
1010
- finally {
1011
- if (this.#hasDisposeAfter && this.#disposed) {
1012
- const dt = this.#disposed;
1013
- let task;
1014
- while ((task = dt?.shift())) {
1015
- this.#disposeAfter?.(...task);
1016
- }
1017
- }
1018
- }
1019
- }
1020
- #evict(free) {
1021
- const head = this.#head;
1022
- const k = this.#keyList[head];
1023
- const v = this.#valList[head];
1024
- if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
1025
- v.__abortController.abort(new Error('evicted'));
1026
- }
1027
- else if (this.#hasDispose || this.#hasDisposeAfter) {
1028
- if (this.#hasDispose) {
1029
- this.#dispose?.(v, k, 'evict');
1030
- }
1031
- if (this.#hasDisposeAfter) {
1032
- this.#disposed?.push([v, k, 'evict']);
1033
- }
1034
- }
1035
- this.#removeItemSize(head);
1036
- // if we aren't about to use the index, then null these out
1037
- if (free) {
1038
- this.#keyList[head] = undefined;
1039
- this.#valList[head] = undefined;
1040
- this.#free.push(head);
1041
- }
1042
- if (this.#size === 1) {
1043
- this.#head = this.#tail = 0;
1044
- this.#free.length = 0;
1045
- }
1046
- else {
1047
- this.#head = this.#next[head];
1048
- }
1049
- this.#keyMap.delete(k);
1050
- this.#size--;
1051
- return head;
1052
- }
1053
- /**
1054
- * Check if a key is in the cache, without updating the recency of use.
1055
- * Will return false if the item is stale, even though it is technically
1056
- * in the cache.
1057
- *
1058
- * Check if a key is in the cache, without updating the recency of
1059
- * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set
1060
- * to `true` in either the options or the constructor.
1061
- *
1062
- * Will return `false` if the item is stale, even though it is technically in
1063
- * the cache. The difference can be determined (if it matters) by using a
1064
- * `status` argument, and inspecting the `has` field.
1065
- *
1066
- * Will not update item age unless
1067
- * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
1068
- */
1069
- has(k, hasOptions = {}) {
1070
- const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
1071
- const index = this.#keyMap.get(k);
1072
- if (index !== undefined) {
1073
- const v = this.#valList[index];
1074
- if (this.#isBackgroundFetch(v) &&
1075
- v.__staleWhileFetching === undefined) {
1076
- return false;
1077
- }
1078
- if (!this.#isStale(index)) {
1079
- if (updateAgeOnHas) {
1080
- this.#updateItemAge(index);
1081
- }
1082
- if (status) {
1083
- status.has = 'hit';
1084
- this.#statusTTL(status, index);
1085
- }
1086
- return true;
1087
- }
1088
- else if (status) {
1089
- status.has = 'stale';
1090
- this.#statusTTL(status, index);
1091
- }
1092
- }
1093
- else if (status) {
1094
- status.has = 'miss';
1095
- }
1096
- return false;
1097
- }
1098
- /**
1099
- * Like {@link LRUCache#get} but doesn't update recency or delete stale
1100
- * items.
1101
- *
1102
- * Returns `undefined` if the item is stale, unless
1103
- * {@link LRUCache.OptionsBase.allowStale} is set.
1104
- */
1105
- peek(k, peekOptions = {}) {
1106
- const { allowStale = this.allowStale } = peekOptions;
1107
- const index = this.#keyMap.get(k);
1108
- if (index === undefined ||
1109
- (!allowStale && this.#isStale(index))) {
1110
- return;
1111
- }
1112
- const v = this.#valList[index];
1113
- // either stale and allowed, or forcing a refresh of non-stale value
1114
- return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
1115
- }
1116
- #backgroundFetch(k, index, options, context) {
1117
- const v = index === undefined ? undefined : this.#valList[index];
1118
- if (this.#isBackgroundFetch(v)) {
1119
- return v;
1120
- }
1121
- const ac = new AC();
1122
- const { signal } = options;
1123
- // when/if our AC signals, then stop listening to theirs.
1124
- signal?.addEventListener('abort', () => ac.abort(signal.reason), {
1125
- signal: ac.signal,
1126
- });
1127
- const fetchOpts = {
1128
- signal: ac.signal,
1129
- options,
1130
- context,
1131
- };
1132
- const cb = (v, updateCache = false) => {
1133
- const { aborted } = ac.signal;
1134
- const ignoreAbort = options.ignoreFetchAbort && v !== undefined;
1135
- if (options.status) {
1136
- if (aborted && !updateCache) {
1137
- options.status.fetchAborted = true;
1138
- options.status.fetchError = ac.signal.reason;
1139
- if (ignoreAbort)
1140
- options.status.fetchAbortIgnored = true;
1141
- }
1142
- else {
1143
- options.status.fetchResolved = true;
1144
- }
1145
- }
1146
- if (aborted && !ignoreAbort && !updateCache) {
1147
- return fetchFail(ac.signal.reason);
1148
- }
1149
- // either we didn't abort, and are still here, or we did, and ignored
1150
- const bf = p;
1151
- if (this.#valList[index] === p) {
1152
- if (v === undefined) {
1153
- if (bf.__staleWhileFetching) {
1154
- this.#valList[index] = bf.__staleWhileFetching;
1155
- }
1156
- else {
1157
- this.#delete(k, 'fetch');
1158
- }
1159
- }
1160
- else {
1161
- if (options.status)
1162
- options.status.fetchUpdated = true;
1163
- this.set(k, v, fetchOpts.options);
1164
- }
1165
- }
1166
- return v;
1167
- };
1168
- const eb = (er) => {
1169
- if (options.status) {
1170
- options.status.fetchRejected = true;
1171
- options.status.fetchError = er;
1172
- }
1173
- return fetchFail(er);
1174
- };
1175
- const fetchFail = (er) => {
1176
- const { aborted } = ac.signal;
1177
- const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
1178
- const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
1179
- const noDelete = allowStale || options.noDeleteOnFetchRejection;
1180
- const bf = p;
1181
- if (this.#valList[index] === p) {
1182
- // if we allow stale on fetch rejections, then we need to ensure that
1183
- // the stale value is not removed from the cache when the fetch fails.
1184
- const del = !noDelete || bf.__staleWhileFetching === undefined;
1185
- if (del) {
1186
- this.#delete(k, 'fetch');
1187
- }
1188
- else if (!allowStaleAborted) {
1189
- // still replace the *promise* with the stale value,
1190
- // since we are done with the promise at this point.
1191
- // leave it untouched if we're still waiting for an
1192
- // aborted background fetch that hasn't yet returned.
1193
- this.#valList[index] = bf.__staleWhileFetching;
1194
- }
1195
- }
1196
- if (allowStale) {
1197
- if (options.status && bf.__staleWhileFetching !== undefined) {
1198
- options.status.returnedStale = true;
1199
- }
1200
- return bf.__staleWhileFetching;
1201
- }
1202
- else if (bf.__returned === bf) {
1203
- throw er;
1204
- }
1205
- };
1206
- const pcall = (res, rej) => {
1207
- const fmp = this.#fetchMethod?.(k, v, fetchOpts);
1208
- if (fmp && fmp instanceof Promise) {
1209
- fmp.then(v => res(v === undefined ? undefined : v), rej);
1210
- }
1211
- // ignored, we go until we finish, regardless.
1212
- // defer check until we are actually aborting,
1213
- // so fetchMethod can override.
1214
- ac.signal.addEventListener('abort', () => {
1215
- if (!options.ignoreFetchAbort ||
1216
- options.allowStaleOnFetchAbort) {
1217
- res(undefined);
1218
- // when it eventually resolves, update the cache.
1219
- if (options.allowStaleOnFetchAbort) {
1220
- res = v => cb(v, true);
1221
- }
1222
- }
1223
- });
1224
- };
1225
- if (options.status)
1226
- options.status.fetchDispatched = true;
1227
- const p = new Promise(pcall).then(cb, eb);
1228
- const bf = Object.assign(p, {
1229
- __abortController: ac,
1230
- __staleWhileFetching: v,
1231
- __returned: undefined,
1232
- });
1233
- if (index === undefined) {
1234
- // internal, don't expose status.
1235
- this.set(k, bf, { ...fetchOpts.options, status: undefined });
1236
- index = this.#keyMap.get(k);
1237
- }
1238
- else {
1239
- this.#valList[index] = bf;
1240
- }
1241
- return bf;
1242
- }
1243
- #isBackgroundFetch(p) {
1244
- if (!this.#hasFetchMethod)
1245
- return false;
1246
- const b = p;
1247
- return (!!b &&
1248
- b instanceof Promise &&
1249
- b.hasOwnProperty('__staleWhileFetching') &&
1250
- b.__abortController instanceof AC);
1251
- }
1252
- async fetch(k, fetchOptions = {}) {
1253
- const {
1254
- // get options
1255
- allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet,
1256
- // set options
1257
- ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL,
1258
- // fetch exclusive options
1259
- noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;
1260
- if (!this.#hasFetchMethod) {
1261
- if (status)
1262
- status.fetch = 'get';
1263
- return this.get(k, {
1264
- allowStale,
1265
- updateAgeOnGet,
1266
- noDeleteOnStaleGet,
1267
- status,
1268
- });
1269
- }
1270
- const options = {
1271
- allowStale,
1272
- updateAgeOnGet,
1273
- noDeleteOnStaleGet,
1274
- ttl,
1275
- noDisposeOnSet,
1276
- size,
1277
- sizeCalculation,
1278
- noUpdateTTL,
1279
- noDeleteOnFetchRejection,
1280
- allowStaleOnFetchRejection,
1281
- allowStaleOnFetchAbort,
1282
- ignoreFetchAbort,
1283
- status,
1284
- signal,
1285
- };
1286
- let index = this.#keyMap.get(k);
1287
- if (index === undefined) {
1288
- if (status)
1289
- status.fetch = 'miss';
1290
- const p = this.#backgroundFetch(k, index, options, context);
1291
- return (p.__returned = p);
1292
- }
1293
- else {
1294
- // in cache, maybe already fetching
1295
- const v = this.#valList[index];
1296
- if (this.#isBackgroundFetch(v)) {
1297
- const stale = allowStale && v.__staleWhileFetching !== undefined;
1298
- if (status) {
1299
- status.fetch = 'inflight';
1300
- if (stale)
1301
- status.returnedStale = true;
1302
- }
1303
- return stale ? v.__staleWhileFetching : (v.__returned = v);
1304
- }
1305
- // if we force a refresh, that means do NOT serve the cached value,
1306
- // unless we are already in the process of refreshing the cache.
1307
- const isStale = this.#isStale(index);
1308
- if (!forceRefresh && !isStale) {
1309
- if (status)
1310
- status.fetch = 'hit';
1311
- this.#moveToTail(index);
1312
- if (updateAgeOnGet) {
1313
- this.#updateItemAge(index);
1314
- }
1315
- if (status)
1316
- this.#statusTTL(status, index);
1317
- return v;
1318
- }
1319
- // ok, it is stale or a forced refresh, and not already fetching.
1320
- // refresh the cache.
1321
- const p = this.#backgroundFetch(k, index, options, context);
1322
- const hasStale = p.__staleWhileFetching !== undefined;
1323
- const staleVal = hasStale && allowStale;
1324
- if (status) {
1325
- status.fetch = isStale ? 'stale' : 'refresh';
1326
- if (staleVal && isStale)
1327
- status.returnedStale = true;
1328
- }
1329
- return staleVal ? p.__staleWhileFetching : (p.__returned = p);
1330
- }
1331
- }
1332
- async forceFetch(k, fetchOptions = {}) {
1333
- const v = await this.fetch(k, fetchOptions);
1334
- if (v === undefined)
1335
- throw new Error('fetch() returned undefined');
1336
- return v;
1337
- }
1338
- memo(k, memoOptions = {}) {
1339
- const memoMethod = this.#memoMethod;
1340
- if (!memoMethod) {
1341
- throw new Error('no memoMethod provided to constructor');
1342
- }
1343
- const { context, forceRefresh, ...options } = memoOptions;
1344
- const v = this.get(k, options);
1345
- if (!forceRefresh && v !== undefined)
1346
- return v;
1347
- const vv = memoMethod(k, v, {
1348
- options,
1349
- context,
1350
- });
1351
- this.set(k, vv, options);
1352
- return vv;
1353
- }
1354
- /**
1355
- * Return a value from the cache. Will update the recency of the cache
1356
- * entry found.
1357
- *
1358
- * If the key is not found, get() will return `undefined`.
1359
- */
1360
- get(k, getOptions = {}) {
1361
- const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;
1362
- const index = this.#keyMap.get(k);
1363
- if (index !== undefined) {
1364
- const value = this.#valList[index];
1365
- const fetching = this.#isBackgroundFetch(value);
1366
- if (status)
1367
- this.#statusTTL(status, index);
1368
- if (this.#isStale(index)) {
1369
- if (status)
1370
- status.get = 'stale';
1371
- // delete only if not an in-flight background fetch
1372
- if (!fetching) {
1373
- if (!noDeleteOnStaleGet) {
1374
- this.#delete(k, 'expire');
1375
- }
1376
- if (status && allowStale)
1377
- status.returnedStale = true;
1378
- return allowStale ? value : undefined;
1379
- }
1380
- else {
1381
- if (status &&
1382
- allowStale &&
1383
- value.__staleWhileFetching !== undefined) {
1384
- status.returnedStale = true;
1385
- }
1386
- return allowStale ? value.__staleWhileFetching : undefined;
1387
- }
1388
- }
1389
- else {
1390
- if (status)
1391
- status.get = 'hit';
1392
- // if we're currently fetching it, we don't actually have it yet
1393
- // it's not stale, which means this isn't a staleWhileRefetching.
1394
- // If it's not stale, and fetching, AND has a __staleWhileFetching
1395
- // value, then that means the user fetched with {forceRefresh:true},
1396
- // so it's safe to return that value.
1397
- if (fetching) {
1398
- return value.__staleWhileFetching;
1399
- }
1400
- this.#moveToTail(index);
1401
- if (updateAgeOnGet) {
1402
- this.#updateItemAge(index);
1403
- }
1404
- return value;
1405
- }
1406
- }
1407
- else if (status) {
1408
- status.get = 'miss';
1409
- }
1410
- }
1411
- #connect(p, n) {
1412
- this.#prev[n] = p;
1413
- this.#next[p] = n;
1414
- }
1415
- #moveToTail(index) {
1416
- // if tail already, nothing to do
1417
- // if head, move head to next[index]
1418
- // else
1419
- // move next[prev[index]] to next[index] (head has no prev)
1420
- // move prev[next[index]] to prev[index]
1421
- // prev[index] = tail
1422
- // next[tail] = index
1423
- // tail = index
1424
- if (index !== this.#tail) {
1425
- if (index === this.#head) {
1426
- this.#head = this.#next[index];
1427
- }
1428
- else {
1429
- this.#connect(this.#prev[index], this.#next[index]);
1430
- }
1431
- this.#connect(this.#tail, index);
1432
- this.#tail = index;
1433
- }
1434
- }
1435
- /**
1436
- * Deletes a key out of the cache.
1437
- *
1438
- * Returns true if the key was deleted, false otherwise.
1439
- */
1440
- delete(k) {
1441
- return this.#delete(k, 'delete');
1442
- }
1443
- #delete(k, reason) {
1444
- let deleted = false;
1445
- if (this.#size !== 0) {
1446
- const index = this.#keyMap.get(k);
1447
- if (index !== undefined) {
1448
- deleted = true;
1449
- if (this.#size === 1) {
1450
- this.#clear(reason);
1451
- }
1452
- else {
1453
- this.#removeItemSize(index);
1454
- const v = this.#valList[index];
1455
- if (this.#isBackgroundFetch(v)) {
1456
- v.__abortController.abort(new Error('deleted'));
1457
- }
1458
- else if (this.#hasDispose || this.#hasDisposeAfter) {
1459
- if (this.#hasDispose) {
1460
- this.#dispose?.(v, k, reason);
1461
- }
1462
- if (this.#hasDisposeAfter) {
1463
- this.#disposed?.push([v, k, reason]);
1464
- }
1465
- }
1466
- this.#keyMap.delete(k);
1467
- this.#keyList[index] = undefined;
1468
- this.#valList[index] = undefined;
1469
- if (index === this.#tail) {
1470
- this.#tail = this.#prev[index];
1471
- }
1472
- else if (index === this.#head) {
1473
- this.#head = this.#next[index];
1474
- }
1475
- else {
1476
- const pi = this.#prev[index];
1477
- this.#next[pi] = this.#next[index];
1478
- const ni = this.#next[index];
1479
- this.#prev[ni] = this.#prev[index];
1480
- }
1481
- this.#size--;
1482
- this.#free.push(index);
1483
- }
1484
- }
1485
- }
1486
- if (this.#hasDisposeAfter && this.#disposed?.length) {
1487
- const dt = this.#disposed;
1488
- let task;
1489
- while ((task = dt?.shift())) {
1490
- this.#disposeAfter?.(...task);
1491
- }
1492
- }
1493
- return deleted;
1494
- }
1495
- /**
1496
- * Clear the cache entirely, throwing away all values.
1497
- */
1498
- clear() {
1499
- return this.#clear('delete');
1500
- }
1501
- #clear(reason) {
1502
- for (const index of this.#rindexes({ allowStale: true })) {
1503
- const v = this.#valList[index];
1504
- if (this.#isBackgroundFetch(v)) {
1505
- v.__abortController.abort(new Error('deleted'));
1506
- }
1507
- else {
1508
- const k = this.#keyList[index];
1509
- if (this.#hasDispose) {
1510
- this.#dispose?.(v, k, reason);
1511
- }
1512
- if (this.#hasDisposeAfter) {
1513
- this.#disposed?.push([v, k, reason]);
1514
- }
1515
- }
1516
- }
1517
- this.#keyMap.clear();
1518
- this.#valList.fill(undefined);
1519
- this.#keyList.fill(undefined);
1520
- if (this.#ttls && this.#starts) {
1521
- this.#ttls.fill(0);
1522
- this.#starts.fill(0);
1523
- }
1524
- if (this.#sizes) {
1525
- this.#sizes.fill(0);
1526
- }
1527
- this.#head = 0;
1528
- this.#tail = 0;
1529
- this.#free.length = 0;
1530
- this.#calculatedSize = 0;
1531
- this.#size = 0;
1532
- if (this.#hasDisposeAfter && this.#disposed) {
1533
- const dt = this.#disposed;
1534
- let task;
1535
- while ((task = dt?.shift())) {
1536
- this.#disposeAfter?.(...task);
1537
- }
1538
- }
1539
- }
1540
- }
1541
-
1542
- export { LRUCache };
1543
- //# sourceMappingURL=index.js.map