@flanksource/clicky-ui 0.3.27 → 0.3.29

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 (1438) hide show
  1. package/NOTICE.md +14 -0
  2. package/dist/ai.cjs +52 -6
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +53 -7
  5. package/dist/ai.js.map +1 -1
  6. package/dist/comments/CommentAuthor.d.ts +1 -1
  7. package/dist/comments/CommentAuthor.d.ts.map +1 -1
  8. package/dist/comments/CommentCard.cjs +24 -39
  9. package/dist/comments/CommentCard.cjs.map +1 -1
  10. package/dist/comments/CommentCard.d.ts +11 -4
  11. package/dist/comments/CommentCard.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.js +24 -39
  13. package/dist/comments/CommentCard.js.map +1 -1
  14. package/dist/comments/CommentComposer.d.ts +1 -1
  15. package/dist/comments/CommentComposer.d.ts.map +1 -1
  16. package/dist/comments/CommentFilterBar.d.ts +1 -1
  17. package/dist/comments/CommentFilterBar.d.ts.map +1 -1
  18. package/dist/comments/CommentMarkdown.d.ts +1 -1
  19. package/dist/comments/CommentMarkdown.d.ts.map +1 -1
  20. package/dist/comments/CommentProgress.d.ts +1 -1
  21. package/dist/comments/CommentProgress.d.ts.map +1 -1
  22. package/dist/comments/CommentProvider.cjs +4 -3
  23. package/dist/comments/CommentProvider.cjs.map +1 -1
  24. package/dist/comments/CommentProvider.d.ts +7 -2
  25. package/dist/comments/CommentProvider.d.ts.map +1 -1
  26. package/dist/comments/CommentProvider.js +4 -3
  27. package/dist/comments/CommentProvider.js.map +1 -1
  28. package/dist/comments/CommentSidePanel.cjs +65 -52
  29. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  30. package/dist/comments/CommentSidePanel.d.ts +1 -1
  31. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  32. package/dist/comments/CommentSidePanel.js +67 -54
  33. package/dist/comments/CommentSidePanel.js.map +1 -1
  34. package/dist/comments/CommentThread.cjs +2 -2
  35. package/dist/comments/CommentThread.cjs.map +1 -1
  36. package/dist/comments/CommentThread.d.ts +4 -4
  37. package/dist/comments/CommentThread.d.ts.map +1 -1
  38. package/dist/comments/CommentThread.js +2 -2
  39. package/dist/comments/CommentThread.js.map +1 -1
  40. package/dist/comments/CommentThreadList.cjs +85 -37
  41. package/dist/comments/CommentThreadList.cjs.map +1 -1
  42. package/dist/comments/CommentThreadList.d.ts +4 -4
  43. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  44. package/dist/comments/CommentThreadList.js +86 -38
  45. package/dist/comments/CommentThreadList.js.map +1 -1
  46. package/dist/comments/GroupedComments.d.ts +1 -1
  47. package/dist/comments/GroupedComments.d.ts.map +1 -1
  48. package/dist/comments/MentionTextarea.d.ts +1 -1
  49. package/dist/comments/comment-context.d.ts +4 -4
  50. package/dist/comments/comment-fixtures.d.ts +1 -1
  51. package/dist/comments/comment-types.d.ts +1 -1
  52. package/dist/comments/comment-utils.cjs +26 -0
  53. package/dist/comments/comment-utils.cjs.map +1 -1
  54. package/dist/comments/comment-utils.d.ts +11 -0
  55. package/dist/comments/comment-utils.d.ts.map +1 -1
  56. package/dist/comments/comment-utils.js +26 -0
  57. package/dist/comments/comment-utils.js.map +1 -1
  58. package/dist/comments.cjs +2 -0
  59. package/dist/comments.cjs.map +1 -1
  60. package/dist/comments.js +3 -1
  61. package/dist/components/AccordionList.cjs +3 -0
  62. package/dist/components/AccordionList.cjs.map +1 -1
  63. package/dist/components/AccordionList.d.ts +4 -2
  64. package/dist/components/AccordionList.d.ts.map +1 -1
  65. package/dist/components/AccordionList.js +3 -0
  66. package/dist/components/AccordionList.js.map +1 -1
  67. package/dist/components/Combobox.cjs +6 -6
  68. package/dist/components/Combobox.cjs.map +1 -1
  69. package/dist/components/Combobox.d.ts +1 -1
  70. package/dist/components/Combobox.d.ts.map +1 -1
  71. package/dist/components/Combobox.js +2 -2
  72. package/dist/components/Combobox.js.map +1 -1
  73. package/dist/components/ComboboxActions.d.ts +1 -1
  74. package/dist/components/ComboboxActions.d.ts.map +1 -1
  75. package/dist/components/ComboboxControl.cjs +3 -2
  76. package/dist/components/ComboboxControl.cjs.map +1 -1
  77. package/dist/components/ComboboxControl.d.ts +5 -5
  78. package/dist/components/ComboboxControl.d.ts.map +1 -1
  79. package/dist/components/ComboboxControl.js +2 -1
  80. package/dist/components/ComboboxControl.js.map +1 -1
  81. package/dist/components/ComboboxMenu.cjs +154 -134
  82. package/dist/components/ComboboxMenu.cjs.map +1 -1
  83. package/dist/components/ComboboxMenu.d.ts +4 -4
  84. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  85. package/dist/components/ComboboxMenu.js +154 -134
  86. package/dist/components/ComboboxMenu.js.map +1 -1
  87. package/dist/components/ComboboxTags.d.ts +1 -1
  88. package/dist/components/ComboboxTags.d.ts.map +1 -1
  89. package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
  90. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -1
  91. package/dist/components/CopyButton.cjs +35 -0
  92. package/dist/components/CopyButton.cjs.map +1 -0
  93. package/dist/components/CopyButton.d.ts +20 -0
  94. package/dist/components/CopyButton.d.ts.map +1 -0
  95. package/dist/components/CopyButton.js +35 -0
  96. package/dist/components/CopyButton.js.map +1 -0
  97. package/dist/components/CountryFlag.d.ts +1 -1
  98. package/dist/components/CountryFlag.d.ts.map +1 -1
  99. package/dist/components/CountryPicker.d.ts +1 -1
  100. package/dist/components/CountryPicker.d.ts.map +1 -1
  101. package/dist/components/DaemonSetIcon.d.ts +1 -1
  102. package/dist/components/DaemonSetIcon.d.ts.map +1 -1
  103. package/dist/components/DateField.d.ts +3 -3
  104. package/dist/components/DatePicker.d.ts +3 -3
  105. package/dist/components/DateTimePicker.d.ts +3 -3
  106. package/dist/components/DimensionField.d.ts +1 -1
  107. package/dist/components/DimensionField.d.ts.map +1 -1
  108. package/dist/components/EndpointSelector.d.ts +1 -1
  109. package/dist/components/EndpointSelector.d.ts.map +1 -1
  110. package/dist/components/ErrorWrapper.d.ts +2 -2
  111. package/dist/components/Field.d.ts +2 -2
  112. package/dist/components/Field.d.ts.map +1 -1
  113. package/dist/components/FilterBar.cjs +129 -91
  114. package/dist/components/FilterBar.cjs.map +1 -1
  115. package/dist/components/FilterBar.d.ts +13 -4
  116. package/dist/components/FilterBar.d.ts.map +1 -1
  117. package/dist/components/FilterBar.js +130 -92
  118. package/dist/components/FilterBar.js.map +1 -1
  119. package/dist/components/FormLookupProvider.d.ts +2 -2
  120. package/dist/components/FormLookupProvider.d.ts.map +1 -1
  121. package/dist/components/FormatOptionsDropdown.d.ts +2 -2
  122. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  123. package/dist/components/IconButton.d.ts +3 -3
  124. package/dist/components/InputField.d.ts +2 -2
  125. package/dist/components/ItemActions.d.ts +2 -2
  126. package/dist/components/ItemActions.d.ts.map +1 -1
  127. package/dist/components/JSONPathField.d.ts +1 -1
  128. package/dist/components/JSONPathField.d.ts.map +1 -1
  129. package/dist/components/JSONPathPlayground.d.ts +1 -1
  130. package/dist/components/JSONPathPlayground.d.ts.map +1 -1
  131. package/dist/components/JsonSchemaForm.d.ts +1 -1
  132. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  133. package/dist/components/ListMenu.cjs +4 -1
  134. package/dist/components/ListMenu.cjs.map +1 -1
  135. package/dist/components/ListMenu.d.ts +10 -6
  136. package/dist/components/ListMenu.d.ts.map +1 -1
  137. package/dist/components/ListMenu.js +4 -1
  138. package/dist/components/ListMenu.js.map +1 -1
  139. package/dist/components/MdxEditorCallout.d.ts +2 -2
  140. package/dist/components/MdxEditorCallout.d.ts.map +1 -1
  141. package/dist/components/MdxEditorField.d.ts +1 -1
  142. package/dist/components/MdxEditorField.d.ts.map +1 -1
  143. package/dist/components/MdxEditorToolbar.d.ts +1 -1
  144. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  145. package/dist/components/MultiSelect.d.ts +2 -2
  146. package/dist/components/MultiSelect.d.ts.map +1 -1
  147. package/dist/components/NamespacePicker.d.ts +1 -1
  148. package/dist/components/NamespacePicker.d.ts.map +1 -1
  149. package/dist/components/OnePasswordSelector.d.ts +1 -1
  150. package/dist/components/OnePasswordSelector.d.ts.map +1 -1
  151. package/dist/components/RangeSlider.d.ts +1 -1
  152. package/dist/components/RangeSlider.d.ts.map +1 -1
  153. package/dist/components/SearchInput.d.ts +2 -2
  154. package/dist/components/SearchInput.d.ts.map +1 -1
  155. package/dist/components/SecretFormField.d.ts +1 -1
  156. package/dist/components/SecretFormField.d.ts.map +1 -1
  157. package/dist/components/SecretKeySelector.d.ts +1 -1
  158. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  159. package/dist/components/SegmentedControl.cjs +4 -2
  160. package/dist/components/SegmentedControl.cjs.map +1 -1
  161. package/dist/components/SegmentedControl.d.ts +6 -2
  162. package/dist/components/SegmentedControl.d.ts.map +1 -1
  163. package/dist/components/SegmentedControl.js +4 -2
  164. package/dist/components/SegmentedControl.js.map +1 -1
  165. package/dist/components/SplitButton.d.ts +2 -2
  166. package/dist/components/SplitButton.d.ts.map +1 -1
  167. package/dist/components/Switch.d.ts +2 -2
  168. package/dist/components/Switch.d.ts.map +1 -1
  169. package/dist/components/TimeRange.d.ts +1 -1
  170. package/dist/components/TimeRange.d.ts.map +1 -1
  171. package/dist/components/TreePickerField.d.ts +2 -2
  172. package/dist/components/TreePickerField.d.ts.map +1 -1
  173. package/dist/components/TriStateToggle.d.ts +1 -1
  174. package/dist/components/TriStateToggle.d.ts.map +1 -1
  175. package/dist/components/UnitStepControls.d.ts +2 -2
  176. package/dist/components/UnitStepControls.d.ts.map +1 -1
  177. package/dist/components/WorkloadPicker.d.ts +1 -1
  178. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  179. package/dist/components/button.d.ts +3 -3
  180. package/dist/components/clipboard.cjs +60 -0
  181. package/dist/components/clipboard.cjs.map +1 -0
  182. package/dist/components/clipboard.d.ts +13 -0
  183. package/dist/components/clipboard.d.ts.map +1 -0
  184. package/dist/components/clipboard.js +60 -0
  185. package/dist/components/clipboard.js.map +1 -0
  186. package/dist/components/combobox-types.d.ts +1 -1
  187. package/dist/components/density-switcher.d.ts +1 -1
  188. package/dist/components/filter-bar-context.d.ts +1 -1
  189. package/dist/components/filter-bar-field-utils.d.ts +2 -2
  190. package/dist/components/filter-bar-field-utils.js +1 -1
  191. package/dist/components/filter-bar-multi.d.ts +3 -3
  192. package/dist/components/filter-bar-multi.d.ts.map +1 -1
  193. package/dist/components/form-lookup-context.d.ts +1 -1
  194. package/dist/components/icon-menu-picker.cjs.map +1 -1
  195. package/dist/components/icon-menu-picker.d.ts +2 -2
  196. package/dist/components/icon-menu-picker.d.ts.map +1 -1
  197. package/dist/components/icon-menu-picker.js.map +1 -1
  198. package/dist/components/jotai-bindings.d.ts +2 -2
  199. package/dist/components/jotai-bindings.d.ts.map +1 -1
  200. package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
  201. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  202. package/dist/components/json-schema-form-array.cjs +15 -1
  203. package/dist/components/json-schema-form-array.cjs.map +1 -1
  204. package/dist/components/json-schema-form-array.d.ts +1 -1
  205. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  206. package/dist/components/json-schema-form-array.js +15 -1
  207. package/dist/components/json-schema-form-array.js.map +1 -1
  208. package/dist/components/json-schema-form-cards-array.d.ts +1 -1
  209. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  210. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  211. package/dist/components/json-schema-form-error-display.d.ts +3 -3
  212. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  213. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  214. package/dist/components/json-schema-form-fields.d.ts +12 -12
  215. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  216. package/dist/components/json-schema-form-grid.d.ts +1 -1
  217. package/dist/components/json-schema-form-grid.d.ts.map +1 -1
  218. package/dist/components/json-schema-form-item-row.d.ts +4 -4
  219. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  220. package/dist/components/json-schema-form-layout.d.ts +6 -6
  221. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  222. package/dist/components/json-schema-form-list-array.cjs +113 -0
  223. package/dist/components/json-schema-form-list-array.cjs.map +1 -0
  224. package/dist/components/json-schema-form-list-array.d.ts +7 -0
  225. package/dist/components/json-schema-form-list-array.d.ts.map +1 -0
  226. package/dist/components/json-schema-form-list-array.js +113 -0
  227. package/dist/components/json-schema-form-list-array.js.map +1 -0
  228. package/dist/components/json-schema-form-lookup-tree.d.ts +1 -1
  229. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  230. package/dist/components/json-schema-form-object.d.ts +2 -2
  231. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  232. package/dist/components/json-schema-form-render.d.ts +1 -1
  233. package/dist/components/json-schema-form-resolve.cjs +1 -1
  234. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  235. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  236. package/dist/components/json-schema-form-resolve.js +1 -1
  237. package/dist/components/json-schema-form-resolve.js.map +1 -1
  238. package/dist/components/json-schema-form-table-array.d.ts +1 -1
  239. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  240. package/dist/components/json-schema-form-tags-combobox.cjs +2 -2
  241. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -1
  242. package/dist/components/json-schema-form-tags-combobox.d.ts +1 -1
  243. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -1
  244. package/dist/components/json-schema-form-tags-combobox.js +1 -1
  245. package/dist/components/json-schema-form-tags-combobox.js.map +1 -1
  246. package/dist/components/json-schema-form-template-menu.d.ts +2 -2
  247. package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
  248. package/dist/components/json-schema-form-template.d.ts +1 -1
  249. package/dist/components/json-schema-form-types.d.ts +2 -2
  250. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  251. package/dist/components/loading.d.ts +4 -4
  252. package/dist/components/mdx-editor-callout.d.ts +1 -1
  253. package/dist/components/mdx-editor-options.d.ts +1 -1
  254. package/dist/components/select.d.ts +3 -3
  255. package/dist/components/theme-switcher.d.ts +1 -1
  256. package/dist/components/use-list-menu-selection.d.ts +1 -1
  257. package/dist/components/useComboboxLayout.cjs +37 -27
  258. package/dist/components/useComboboxLayout.cjs.map +1 -1
  259. package/dist/components/useComboboxLayout.d.ts +4 -4
  260. package/dist/components/useComboboxLayout.d.ts.map +1 -1
  261. package/dist/components/useComboboxLayout.js +38 -28
  262. package/dist/components/useComboboxLayout.js.map +1 -1
  263. package/dist/components/workload-picker-utils.d.ts +1 -1
  264. package/dist/components.cjs +5 -0
  265. package/dist/components.cjs.map +1 -1
  266. package/dist/components.d.ts +3 -0
  267. package/dist/components.d.ts.map +1 -1
  268. package/dist/components.js +5 -0
  269. package/dist/components.js.map +1 -1
  270. package/dist/data/AnsiHtml.d.ts +1 -1
  271. package/dist/data/AnsiHtml.d.ts.map +1 -1
  272. package/dist/data/Avatar.d.ts +2 -2
  273. package/dist/data/Avatar.d.ts.map +1 -1
  274. package/dist/data/AvatarBadge.d.ts +2 -2
  275. package/dist/data/AvatarBadge.d.ts.map +1 -1
  276. package/dist/data/Badge.d.ts +2 -2
  277. package/dist/data/Badge.d.ts.map +1 -1
  278. package/dist/data/Callout.d.ts +2 -2
  279. package/dist/data/Callout.d.ts.map +1 -1
  280. package/dist/data/Clicky.cjs +4 -1
  281. package/dist/data/Clicky.cjs.map +1 -1
  282. package/dist/data/Clicky.d.ts +3 -3
  283. package/dist/data/Clicky.d.ts.map +1 -1
  284. package/dist/data/Clicky.js +4 -1
  285. package/dist/data/Clicky.js.map +1 -1
  286. package/dist/data/CodeBlock.cjs +1 -1
  287. package/dist/data/CodeBlock.cjs.map +1 -1
  288. package/dist/data/CodeBlock.d.ts +1 -1
  289. package/dist/data/CodeBlock.d.ts.map +1 -1
  290. package/dist/data/CodeBlock.js +1 -1
  291. package/dist/data/CodeBlock.js.map +1 -1
  292. package/dist/data/CodeDiff.d.ts +1 -1
  293. package/dist/data/CodeDiff.d.ts.map +1 -1
  294. package/dist/data/DataTable.cjs +256 -58
  295. package/dist/data/DataTable.cjs.map +1 -1
  296. package/dist/data/DataTable.d.ts +174 -5
  297. package/dist/data/DataTable.d.ts.map +1 -1
  298. package/dist/data/DataTable.grouping.d.ts +1 -1
  299. package/dist/data/DataTable.js +256 -58
  300. package/dist/data/DataTable.js.map +1 -1
  301. package/dist/data/DataTableGroupingControls.d.ts +1 -1
  302. package/dist/data/DataTableGroupingControls.d.ts.map +1 -1
  303. package/dist/data/ExecutionTree.d.ts +2 -2
  304. package/dist/data/ExecutionTree.d.ts.map +1 -1
  305. package/dist/data/FilterPill.d.ts +4 -4
  306. package/dist/data/FilterPill.d.ts.map +1 -1
  307. package/dist/data/FixtureEditor/FenceForm.d.ts +1 -1
  308. package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -1
  309. package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
  310. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  311. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +1 -1
  312. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -1
  313. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs +1 -1
  314. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs.map +1 -1
  315. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
  316. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -1
  317. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js +1 -1
  318. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js.map +1 -1
  319. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +2 -2
  320. package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -1
  321. package/dist/data/FixtureEditor/fixture-frontmatter.cjs +8 -10
  322. package/dist/data/FixtureEditor/fixture-frontmatter.cjs.map +1 -1
  323. package/dist/data/FixtureEditor/fixture-frontmatter.d.ts.map +1 -1
  324. package/dist/data/FixtureEditor/fixture-frontmatter.js +8 -10
  325. package/dist/data/FixtureEditor/fixture-frontmatter.js.map +1 -1
  326. package/dist/data/FixtureEditor/types.d.ts +1 -1
  327. package/dist/data/Gauge.d.ts +2 -2
  328. package/dist/data/Gauge.d.ts.map +1 -1
  329. package/dist/data/GaugeHoverCard.d.ts +2 -2
  330. package/dist/data/GaugeHoverCard.d.ts.map +1 -1
  331. package/dist/data/HighlightedTokens.d.ts +1 -1
  332. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  333. package/dist/data/Icon.cjs.map +1 -1
  334. package/dist/data/Icon.d.ts +3 -3
  335. package/dist/data/Icon.d.ts.map +1 -1
  336. package/dist/data/Icon.js.map +1 -1
  337. package/dist/data/JsonView.d.ts +1 -1
  338. package/dist/data/JsonView.d.ts.map +1 -1
  339. package/dist/data/KeyValueList.d.ts +2 -2
  340. package/dist/data/KeyValueList.d.ts.map +1 -1
  341. package/dist/data/LogDetails.d.ts +1 -1
  342. package/dist/data/LogDetails.d.ts.map +1 -1
  343. package/dist/data/LogViewer.d.ts +1 -1
  344. package/dist/data/LogViewer.d.ts.map +1 -1
  345. package/dist/data/LogsTable.d.ts +1 -1
  346. package/dist/data/LogsTable.d.ts.map +1 -1
  347. package/dist/data/Markdown.d.ts +1 -1
  348. package/dist/data/Markdown.d.ts.map +1 -1
  349. package/dist/data/MarkdownEditor.d.ts +2 -2
  350. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  351. package/dist/data/MatrixTable.d.ts +2 -2
  352. package/dist/data/MatrixTable.d.ts.map +1 -1
  353. package/dist/data/MethodBadge.d.ts +1 -1
  354. package/dist/data/MethodBadge.d.ts.map +1 -1
  355. package/dist/data/ObjectGraph.d.ts +2 -2
  356. package/dist/data/ObjectGraph.d.ts.map +1 -1
  357. package/dist/data/ProgressBar.d.ts +1 -1
  358. package/dist/data/ProgressBar.d.ts.map +1 -1
  359. package/dist/data/ProgressBars.d.ts +2 -2
  360. package/dist/data/ProgressBars.d.ts.map +1 -1
  361. package/dist/data/PromptBanner.d.ts +1 -1
  362. package/dist/data/PromptBanner.d.ts.map +1 -1
  363. package/dist/data/PromptDialog.d.ts +1 -1
  364. package/dist/data/PromptDialog.d.ts.map +1 -1
  365. package/dist/data/Properties.d.ts +2 -2
  366. package/dist/data/Properties.d.ts.map +1 -1
  367. package/dist/data/RadialGauge.d.ts +2 -2
  368. package/dist/data/RadialGauge.d.ts.map +1 -1
  369. package/dist/data/SchemaViewer.d.ts +4 -4
  370. package/dist/data/SchemaViewer.d.ts.map +1 -1
  371. package/dist/data/SelectionActionBar.cjs +242 -0
  372. package/dist/data/SelectionActionBar.cjs.map +1 -0
  373. package/dist/data/SelectionActionBar.d.ts +28 -0
  374. package/dist/data/SelectionActionBar.d.ts.map +1 -0
  375. package/dist/data/SelectionActionBar.js +242 -0
  376. package/dist/data/SelectionActionBar.js.map +1 -0
  377. package/dist/data/ServerTimingBadge.d.ts +1 -1
  378. package/dist/data/ServerTimingBadge.d.ts.map +1 -1
  379. package/dist/data/SignedDeltaBar.d.ts +1 -1
  380. package/dist/data/SignedDeltaBar.d.ts.map +1 -1
  381. package/dist/data/SortableHeader.d.ts +2 -2
  382. package/dist/data/SortableHeader.d.ts.map +1 -1
  383. package/dist/data/StatStrip.d.ts +2 -2
  384. package/dist/data/StatStrip.d.ts.map +1 -1
  385. package/dist/data/StatusBreakdown.d.ts +3 -3
  386. package/dist/data/StatusBreakdown.d.ts.map +1 -1
  387. package/dist/data/TabButton.d.ts +2 -2
  388. package/dist/data/TabButton.d.ts.map +1 -1
  389. package/dist/data/TaskExecDetails.d.ts +2 -2
  390. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  391. package/dist/data/TaskManager.cjs +34 -12
  392. package/dist/data/TaskManager.cjs.map +1 -1
  393. package/dist/data/TaskManager.d.ts +1 -1
  394. package/dist/data/TaskManager.d.ts.map +1 -1
  395. package/dist/data/TaskManager.js +34 -12
  396. package/dist/data/TaskManager.js.map +1 -1
  397. package/dist/data/TaskManagerButton.cjs +11 -7
  398. package/dist/data/TaskManagerButton.cjs.map +1 -1
  399. package/dist/data/TaskManagerButton.d.ts +1 -1
  400. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  401. package/dist/data/TaskManagerButton.js +11 -7
  402. package/dist/data/TaskManagerButton.js.map +1 -1
  403. package/dist/data/TaskProcessDetails.d.ts +1 -1
  404. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  405. package/dist/data/TaskProgress.cjs +55 -11
  406. package/dist/data/TaskProgress.cjs.map +1 -1
  407. package/dist/data/TaskProgress.d.ts +1 -1
  408. package/dist/data/TaskProgress.d.ts.map +1 -1
  409. package/dist/data/TaskProgress.js +53 -9
  410. package/dist/data/TaskProgress.js.map +1 -1
  411. package/dist/data/Timeline.d.ts +2 -2
  412. package/dist/data/Timeline.d.ts.map +1 -1
  413. package/dist/data/TimeseriesCoreBars.d.ts +1 -1
  414. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  415. package/dist/data/TimeseriesGauge.d.ts +1 -1
  416. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  417. package/dist/data/TimeseriesPanel.d.ts +1 -1
  418. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  419. package/dist/data/Tree.d.ts +2 -2
  420. package/dist/data/Tree.d.ts.map +1 -1
  421. package/dist/data/TreeGroupHeader.d.ts +2 -2
  422. package/dist/data/TreeGroupHeader.d.ts.map +1 -1
  423. package/dist/data/TreeNode.d.ts +2 -2
  424. package/dist/data/TreeNode.d.ts.map +1 -1
  425. package/dist/data/Version.d.ts +3 -3
  426. package/dist/data/WorkloadCard.d.ts +1 -1
  427. package/dist/data/WorkloadCard.d.ts.map +1 -1
  428. package/dist/data/ai/AdvancedChatConfig.d.ts +1 -1
  429. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
  430. package/dist/data/ai/AdvancedCostsPanel.d.ts +1 -1
  431. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -1
  432. package/dist/data/ai/ChatButton.d.ts +1 -1
  433. package/dist/data/ai/ChatButton.d.ts.map +1 -1
  434. package/dist/data/ai/ChatFab.d.ts +1 -1
  435. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  436. package/dist/data/ai/ChatWindow.cjs +2 -4
  437. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  438. package/dist/data/ai/ChatWindow.d.ts +2 -2
  439. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  440. package/dist/data/ai/ChatWindow.js +2 -4
  441. package/dist/data/ai/ChatWindow.js.map +1 -1
  442. package/dist/data/ai/ChatWindow.runtime.cjs +1 -2
  443. package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
  444. package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
  445. package/dist/data/ai/ChatWindow.runtime.js +1 -2
  446. package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
  447. package/dist/data/ai/ChatWindow.test-utils.d.ts +1 -1
  448. package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
  449. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -1
  450. package/dist/data/ai/ChatWindow.types.d.ts +1 -1
  451. package/dist/data/ai/ChatWindowManager.d.ts +2 -2
  452. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  453. package/dist/data/ai/ContextBadges.d.ts +2 -2
  454. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  455. package/dist/data/ai/PolicyTree.d.ts +2 -2
  456. package/dist/data/ai/PolicyTree.d.ts.map +1 -1
  457. package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs +262 -0
  458. package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs.map +1 -0
  459. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +16 -0
  460. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -0
  461. package/dist/data/ai/PromptCatalog/PromptCatalogTable.js +262 -0
  462. package/dist/data/ai/PromptCatalog/PromptCatalogTable.js.map +1 -0
  463. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs +77 -0
  464. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs.map +1 -0
  465. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +8 -0
  466. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -0
  467. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js +77 -0
  468. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js.map +1 -0
  469. package/dist/data/ai/PromptCatalog/PromptPage.cjs +332 -0
  470. package/dist/data/ai/PromptCatalog/PromptPage.cjs.map +1 -0
  471. package/dist/data/ai/PromptCatalog/PromptPage.d.ts +17 -0
  472. package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -0
  473. package/dist/data/ai/PromptCatalog/PromptPage.js +332 -0
  474. package/dist/data/ai/PromptCatalog/PromptPage.js.map +1 -0
  475. package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs +102 -0
  476. package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs.map +1 -0
  477. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +16 -0
  478. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -0
  479. package/dist/data/ai/PromptCatalog/PromptPageEditor.js +102 -0
  480. package/dist/data/ai/PromptCatalog/PromptPageEditor.js.map +1 -0
  481. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs +102 -0
  482. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs.map +1 -0
  483. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +10 -0
  484. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -0
  485. package/dist/data/ai/PromptCatalog/PromptPageHeader.js +102 -0
  486. package/dist/data/ai/PromptCatalog/PromptPageHeader.js.map +1 -0
  487. package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs +90 -0
  488. package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs.map +1 -0
  489. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +8 -0
  490. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -0
  491. package/dist/data/ai/PromptCatalog/PromptPagePreview.js +90 -0
  492. package/dist/data/ai/PromptCatalog/PromptPagePreview.js.map +1 -0
  493. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs +168 -0
  494. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs.map +1 -0
  495. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +17 -0
  496. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -0
  497. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js +168 -0
  498. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js.map +1 -0
  499. package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs +36 -0
  500. package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs.map +1 -0
  501. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +7 -0
  502. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -0
  503. package/dist/data/ai/PromptCatalog/PromptSourceBadge.js +36 -0
  504. package/dist/data/ai/PromptCatalog/PromptSourceBadge.js.map +1 -0
  505. package/dist/data/ai/PromptCatalog/index.d.ts +9 -0
  506. package/dist/data/ai/PromptCatalog/index.d.ts.map +1 -0
  507. package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs +137 -0
  508. package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs.map +1 -0
  509. package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts +28 -0
  510. package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts.map +1 -0
  511. package/dist/data/ai/PromptCatalog/prompt-catalog-model.js +137 -0
  512. package/dist/data/ai/PromptCatalog/prompt-catalog-model.js.map +1 -0
  513. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs +114 -0
  514. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs.map +1 -0
  515. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +45 -0
  516. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts.map +1 -0
  517. package/dist/data/ai/PromptCatalog/prompt-page-model.js +114 -0
  518. package/dist/data/ai/PromptCatalog/prompt-page-model.js.map +1 -0
  519. package/dist/data/ai/PromptCatalog/types.d.ts +70 -0
  520. package/dist/data/ai/PromptCatalog/types.d.ts.map +1 -0
  521. package/dist/data/ai/PromptPicker/PromptPicker.cjs +9 -12
  522. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  523. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +2 -2
  524. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  525. package/dist/data/ai/PromptPicker/PromptPicker.js +9 -12
  526. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  527. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
  528. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -1
  529. package/dist/data/ai/PromptPicker/index.d.ts +1 -1
  530. package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
  531. package/dist/data/ai/PromptPicker/types.cjs.map +1 -1
  532. package/dist/data/ai/PromptPicker/types.d.ts +9 -0
  533. package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
  534. package/dist/data/ai/PromptPicker/types.js.map +1 -1
  535. package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
  536. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  537. package/dist/data/ai/PromptRunEditor/index.d.ts +2 -2
  538. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  539. package/dist/data/ai/PromptRunEditor/index.js +3 -3
  540. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  541. package/dist/data/ai/PromptRunEditor/model.cjs +0 -1
  542. package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -1
  543. package/dist/data/ai/PromptRunEditor/model.d.ts +1 -1
  544. package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -1
  545. package/dist/data/ai/PromptRunEditor/model.js +0 -1
  546. package/dist/data/ai/PromptRunEditor/model.js.map +1 -1
  547. package/dist/data/ai/RuntimeModePicker.cjs +15 -6
  548. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
  549. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  550. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  551. package/dist/data/ai/RuntimeModePicker.js +17 -8
  552. package/dist/data/ai/RuntimeModePicker.js.map +1 -1
  553. package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
  554. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -1
  555. package/dist/data/ai/SandboxCreateWizard.d.ts +1 -1
  556. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -1
  557. package/dist/data/ai/SessionChatComposer.d.ts +2 -2
  558. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
  559. package/dist/data/ai/SessionInspector.collection-types.d.ts +1 -1
  560. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
  561. package/dist/data/ai/SessionInspector.collection.cjs +3 -3
  562. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
  563. package/dist/data/ai/SessionInspector.collection.js +3 -3
  564. package/dist/data/ai/SessionInspector.collection.js.map +1 -1
  565. package/dist/data/ai/SessionInspector.d.ts +2 -2
  566. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  567. package/dist/data/ai/SessionInspector.files.d.ts +1 -1
  568. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  569. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  570. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  571. package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
  572. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
  573. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  574. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  575. package/dist/data/ai/SessionInspector.model.cjs +3 -3
  576. package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
  577. package/dist/data/ai/SessionInspector.model.d.ts +1 -1
  578. package/dist/data/ai/SessionInspector.model.d.ts.map +1 -1
  579. package/dist/data/ai/SessionInspector.model.js +3 -3
  580. package/dist/data/ai/SessionInspector.model.js.map +1 -1
  581. package/dist/data/ai/SessionInspector.panels.cjs +1 -1
  582. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
  583. package/dist/data/ai/SessionInspector.panels.d.ts +1 -1
  584. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  585. package/dist/data/ai/SessionInspector.panels.js +1 -1
  586. package/dist/data/ai/SessionInspector.panels.js.map +1 -1
  587. package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
  588. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  589. package/dist/data/ai/SessionInspector.summary.cjs +3 -3
  590. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  591. package/dist/data/ai/SessionInspector.summary.d.ts +2 -2
  592. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  593. package/dist/data/ai/SessionInspector.summary.js +3 -3
  594. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  595. package/dist/data/ai/SessionInspector.transcript.d.ts +1 -1
  596. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  597. package/dist/data/ai/SessionInspector.turns.d.ts +2 -2
  598. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -1
  599. package/dist/data/ai/SessionViewer.d.ts +2 -2
  600. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  601. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
  602. package/dist/data/ai/SessionViewer.header.d.ts +2 -2
  603. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
  604. package/dist/data/ai/SessionViewer.row-metadata.d.ts +3 -3
  605. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -1
  606. package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
  607. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  608. package/dist/data/ai/SessionViewer.tool-details.d.ts +5 -5
  609. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
  610. package/dist/data/ai/SessionViewer.tool-row.d.ts +1 -1
  611. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  612. package/dist/data/ai/SessionViewer.unified.d.ts +3 -2
  613. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  614. package/dist/data/ai/SessionViewerMenu.d.ts +1 -1
  615. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  616. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +1 -1
  617. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -1
  618. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +18 -30
  619. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  620. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
  621. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  622. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +19 -31
  623. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  624. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs +71 -86
  625. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs.map +1 -1
  626. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
  627. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
  628. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js +72 -87
  629. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js.map +1 -1
  630. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +2 -2
  631. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -1
  632. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs +99 -0
  633. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs.map +1 -0
  634. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +13 -0
  635. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -0
  636. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js +99 -0
  637. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js.map +1 -0
  638. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +34 -23
  639. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  640. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +8 -4
  641. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  642. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +35 -24
  643. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  644. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs +114 -0
  645. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs.map +1 -0
  646. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +10 -0
  647. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -0
  648. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js +114 -0
  649. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js.map +1 -0
  650. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs +160 -0
  651. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs.map +1 -0
  652. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +9 -0
  653. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -0
  654. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js +160 -0
  655. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js.map +1 -0
  656. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +27 -241
  657. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
  658. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +6 -7
  659. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
  660. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +25 -239
  661. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
  662. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +1 -1
  663. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -1
  664. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +21 -8
  665. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  666. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +6 -3
  667. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  668. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +22 -9
  669. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  670. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +2 -2
  671. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -1
  672. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +207 -164
  673. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -1
  674. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +5 -4
  675. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
  676. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +210 -167
  677. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -1
  678. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +15 -15
  679. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -1
  680. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +2 -2
  681. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
  682. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +15 -15
  683. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -1
  684. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  685. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  686. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +120 -42
  687. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
  688. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +5 -2
  689. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  690. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +123 -45
  691. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
  692. package/dist/data/ai/SpecRuntimeEditor/env-model.cjs.map +1 -1
  693. package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts.map +1 -1
  694. package/dist/data/ai/SpecRuntimeEditor/env-model.js.map +1 -1
  695. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +12 -12
  696. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  697. package/dist/data/ai/SpecRuntimeEditor/index.cjs +136 -48
  698. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  699. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +14 -4
  700. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  701. package/dist/data/ai/SpecRuntimeEditor/index.js +137 -49
  702. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  703. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +93 -0
  704. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs.map +1 -0
  705. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts +6 -0
  706. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts.map +1 -0
  707. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +93 -0
  708. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js.map +1 -0
  709. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs +35 -0
  710. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs.map +1 -0
  711. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts +5 -0
  712. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts.map +1 -0
  713. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js +35 -0
  714. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js.map +1 -0
  715. package/dist/data/ai/SpecRuntimeEditor/presets.cjs +2 -9
  716. package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +1 -1
  717. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +1 -2
  718. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +1 -1
  719. package/dist/data/ai/SpecRuntimeEditor/presets.js +2 -9
  720. package/dist/data/ai/SpecRuntimeEditor/presets.js.map +1 -1
  721. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  722. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +1 -1
  723. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  724. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  725. package/dist/data/ai/SpecRuntimeEditor/types.cjs +2 -7
  726. package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
  727. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +0 -1
  728. package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
  729. package/dist/data/ai/SpecRuntimeEditor/types.js +3 -8
  730. package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
  731. package/dist/data/ai/SpecRuntimeEditor/update.cjs +43 -33
  732. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  733. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +7 -13
  734. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  735. package/dist/data/ai/SpecRuntimeEditor/update.js +43 -33
  736. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  737. package/dist/data/ai/SpecRuntimeEditor.model.cjs +33 -49
  738. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  739. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +52 -29
  740. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  741. package/dist/data/ai/SpecRuntimeEditor.model.js +33 -48
  742. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  743. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs +276 -0
  744. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs.map +1 -0
  745. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts +58 -0
  746. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts.map +1 -0
  747. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js +276 -0
  748. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js.map +1 -0
  749. package/dist/data/ai/ThreadPicker.cjs +55 -42
  750. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  751. package/dist/data/ai/ThreadPicker.d.ts +1 -1
  752. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  753. package/dist/data/ai/ThreadPicker.js +56 -43
  754. package/dist/data/ai/ThreadPicker.js.map +1 -1
  755. package/dist/data/ai/ToolPreferences.cjs +9 -1
  756. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  757. package/dist/data/ai/ToolPreferences.d.ts +1 -1
  758. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  759. package/dist/data/ai/ToolPreferences.js +9 -1
  760. package/dist/data/ai/ToolPreferences.js.map +1 -1
  761. package/dist/data/ai/ToolPreferencesList.d.ts +2 -2
  762. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  763. package/dist/data/ai/ToolSchemaBrowser.cjs +41 -487
  764. package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
  765. package/dist/data/ai/ToolSchemaBrowser.d.ts +7 -2
  766. package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
  767. package/dist/data/ai/ToolSchemaBrowser.detail.cjs +238 -0
  768. package/dist/data/ai/ToolSchemaBrowser.detail.cjs.map +1 -0
  769. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +8 -0
  770. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -0
  771. package/dist/data/ai/ToolSchemaBrowser.detail.js +238 -0
  772. package/dist/data/ai/ToolSchemaBrowser.detail.js.map +1 -0
  773. package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +57 -0
  774. package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -0
  775. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +9 -0
  776. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -0
  777. package/dist/data/ai/ToolSchemaBrowser.directory-header.js +57 -0
  778. package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -0
  779. package/dist/data/ai/ToolSchemaBrowser.js +42 -488
  780. package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
  781. package/dist/data/ai/ToolSchemaBrowser.model.cjs +130 -0
  782. package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -0
  783. package/dist/data/ai/ToolSchemaBrowser.model.d.ts +35 -0
  784. package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -0
  785. package/dist/data/ai/ToolSchemaBrowser.model.js +130 -0
  786. package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -0
  787. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +57 -0
  788. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +1 -0
  789. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +7 -0
  790. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -0
  791. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +57 -0
  792. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +1 -0
  793. package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +389 -0
  794. package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -0
  795. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +23 -0
  796. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -0
  797. package/dist/data/ai/ToolSchemaBrowser.sidebar.js +389 -0
  798. package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -0
  799. package/dist/data/ai/agent-action-icons.cjs +14 -6
  800. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  801. package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
  802. package/dist/data/ai/agent-action-icons.js +14 -6
  803. package/dist/data/ai/agent-action-icons.js.map +1 -1
  804. package/dist/data/ai/chat-window-context.d.ts +1 -1
  805. package/dist/data/ai/examples/sessions/claude-complete.cjs +17 -9
  806. package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -1
  807. package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -1
  808. package/dist/data/ai/examples/sessions/claude-complete.js +17 -9
  809. package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -1
  810. package/dist/data/ai/examples/sessions/claude.cjs +7 -4
  811. package/dist/data/ai/examples/sessions/claude.cjs.map +1 -1
  812. package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -1
  813. package/dist/data/ai/examples/sessions/claude.js +7 -4
  814. package/dist/data/ai/examples/sessions/claude.js.map +1 -1
  815. package/dist/data/ai/examples/sessions/codex-complete.cjs +17 -10
  816. package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -1
  817. package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -1
  818. package/dist/data/ai/examples/sessions/codex-complete.js +17 -10
  819. package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -1
  820. package/dist/data/ai/examples/sessions/codex.cjs +7 -4
  821. package/dist/data/ai/examples/sessions/codex.cjs.map +1 -1
  822. package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -1
  823. package/dist/data/ai/examples/sessions/codex.js +7 -4
  824. package/dist/data/ai/examples/sessions/codex.js.map +1 -1
  825. package/dist/data/ai/index.d.ts +6 -3
  826. package/dist/data/ai/index.d.ts.map +1 -1
  827. package/dist/data/ai/runtime-profile.cjs +93 -0
  828. package/dist/data/ai/runtime-profile.cjs.map +1 -0
  829. package/dist/data/ai/runtime-profile.d.ts +73 -0
  830. package/dist/data/ai/runtime-profile.d.ts.map +1 -0
  831. package/dist/data/ai/runtime-profile.js +93 -0
  832. package/dist/data/ai/runtime-profile.js.map +1 -0
  833. package/dist/data/ai/sandbox-kind-meta.cjs +38 -4
  834. package/dist/data/ai/sandbox-kind-meta.cjs.map +1 -1
  835. package/dist/data/ai/sandbox-kind-meta.d.ts +3 -0
  836. package/dist/data/ai/sandbox-kind-meta.d.ts.map +1 -1
  837. package/dist/data/ai/sandbox-kind-meta.js +38 -4
  838. package/dist/data/ai/sandbox-kind-meta.js.map +1 -1
  839. package/dist/data/ai/use-session-scroll.d.ts +1 -1
  840. package/dist/data/cache-browser/CacheBrowser.d.ts +1 -1
  841. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  842. package/dist/data/cache-browser/CacheDetailPanel.d.ts +1 -1
  843. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
  844. package/dist/data/cache-browser/CacheStatsOverview.d.ts +1 -1
  845. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -1
  846. package/dist/data/cache-browser/CacheTree.d.ts +2 -2
  847. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -1
  848. package/dist/data/cache-browser/CacheValue.d.ts +1 -1
  849. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -1
  850. package/dist/data/cache-browser/adapter.d.ts +1 -1
  851. package/dist/data/cells/CellFilterActions.d.ts +2 -2
  852. package/dist/data/cells/CellFilterActions.d.ts.map +1 -1
  853. package/dist/data/cells/EntityCell.d.ts +2 -2
  854. package/dist/data/cells/EntityCell.d.ts.map +1 -1
  855. package/dist/data/cells/StatusDot.d.ts +1 -1
  856. package/dist/data/cells/StatusDot.d.ts.map +1 -1
  857. package/dist/data/cells/TagList.d.ts +3 -3
  858. package/dist/data/cells/TagList.d.ts.map +1 -1
  859. package/dist/data/cells/Timestamp.d.ts +1 -1
  860. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  861. package/dist/data/cells/tag-utils.d.ts +1 -1
  862. package/dist/data/chat/Attachment.d.ts +2 -2
  863. package/dist/data/chat/Attachment.d.ts.map +1 -1
  864. package/dist/data/chat/Chat.cjs +13 -3
  865. package/dist/data/chat/Chat.cjs.map +1 -1
  866. package/dist/data/chat/Chat.d.ts +1 -1
  867. package/dist/data/chat/Chat.d.ts.map +1 -1
  868. package/dist/data/chat/Chat.fixtures.cjs +3 -3
  869. package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
  870. package/dist/data/chat/Chat.fixtures.js +3 -3
  871. package/dist/data/chat/Chat.fixtures.js.map +1 -1
  872. package/dist/data/chat/Chat.js +14 -4
  873. package/dist/data/chat/Chat.js.map +1 -1
  874. package/dist/data/chat/Chat.runtime.cjs +4 -9
  875. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  876. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  877. package/dist/data/chat/Chat.runtime.js +4 -9
  878. package/dist/data/chat/Chat.runtime.js.map +1 -1
  879. package/dist/data/chat/ChatRuntimeToolbar.cjs +5 -5
  880. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
  881. package/dist/data/chat/ChatRuntimeToolbar.d.ts +1 -1
  882. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
  883. package/dist/data/chat/ChatRuntimeToolbar.js +5 -5
  884. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
  885. package/dist/data/chat/ContextMeter.cjs +3 -3
  886. package/dist/data/chat/ContextMeter.cjs.map +1 -1
  887. package/dist/data/chat/ContextMeter.d.ts +3 -3
  888. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  889. package/dist/data/chat/ContextMeter.js +3 -3
  890. package/dist/data/chat/ContextMeter.js.map +1 -1
  891. package/dist/data/chat/Conversation.d.ts +1 -1
  892. package/dist/data/chat/Conversation.d.ts.map +1 -1
  893. package/dist/data/chat/Message.d.ts +1 -1
  894. package/dist/data/chat/Message.d.ts.map +1 -1
  895. package/dist/data/chat/MessageActions.d.ts +1 -1
  896. package/dist/data/chat/MessageActions.d.ts.map +1 -1
  897. package/dist/data/chat/ModelSelector.d.ts +5 -5
  898. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  899. package/dist/data/chat/PromptInput.d.ts +2 -2
  900. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  901. package/dist/data/chat/Reasoning.d.ts +1 -1
  902. package/dist/data/chat/Reasoning.d.ts.map +1 -1
  903. package/dist/data/chat/Suggestion.d.ts +1 -1
  904. package/dist/data/chat/Suggestion.d.ts.map +1 -1
  905. package/dist/data/chat/ToolCall.d.ts +1 -1
  906. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  907. package/dist/data/chat/approval.cjs.map +1 -1
  908. package/dist/data/chat/approval.d.ts +21 -1
  909. package/dist/data/chat/approval.d.ts.map +1 -1
  910. package/dist/data/chat/approval.js.map +1 -1
  911. package/dist/data/chat/clickyOperationsToTools.cjs +5 -0
  912. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  913. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  914. package/dist/data/chat/clickyOperationsToTools.js +5 -0
  915. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  916. package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
  917. package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
  918. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  919. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  920. package/dist/data/chat/tool-render/context.d.ts +1 -1
  921. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  922. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  923. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  924. package/dist/data/chat/types.cjs.map +1 -1
  925. package/dist/data/chat/types.d.ts +8 -6
  926. package/dist/data/chat/types.d.ts.map +1 -1
  927. package/dist/data/chat/types.js.map +1 -1
  928. package/dist/data/chat/usage-snapshot.cjs +21 -1
  929. package/dist/data/chat/usage-snapshot.cjs.map +1 -1
  930. package/dist/data/chat/usage-snapshot.d.ts +2 -0
  931. package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
  932. package/dist/data/chat/usage-snapshot.js +22 -2
  933. package/dist/data/chat/usage-snapshot.js.map +1 -1
  934. package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
  935. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -1
  936. package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
  937. package/dist/data/code-block-actions.d.ts +1 -1
  938. package/dist/data/code-block-actions.d.ts.map +1 -1
  939. package/dist/data/data-table-server-filters.d.ts +1 -1
  940. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +2 -2
  941. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  942. package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
  943. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
  944. package/dist/data/diagnostics/ErrorDetails.d.ts +4 -4
  945. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  946. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  947. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  948. package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
  949. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  950. package/dist/data/diagnostics/JvmStackTrace.d.ts +1 -1
  951. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  952. package/dist/data/diagnostics/RenderedStackTrace.d.ts +1 -1
  953. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  954. package/dist/data/diagnostics/StackFrameRow.d.ts +2 -2
  955. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
  956. package/dist/data/diagnostics/ThreadCard.d.ts +1 -1
  957. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  958. package/dist/data/git/GitChangeList.d.ts +5 -5
  959. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  960. package/dist/data/har/HarPanel.d.ts +1 -1
  961. package/dist/data/har/HarPanel.d.ts.map +1 -1
  962. package/dist/data/icon-fallback.d.ts +1 -1
  963. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  964. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  965. package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
  966. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
  967. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  968. package/dist/data/query-browser/QueryBrowserResults.d.ts +1 -1
  969. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  970. package/dist/data/runtime/ProviderStatusPanel.d.ts +1 -1
  971. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -1
  972. package/dist/data/runtime/RuntimeBar.cjs +29 -16
  973. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  974. package/dist/data/runtime/RuntimeBar.d.ts +10 -2
  975. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  976. package/dist/data/runtime/RuntimeBar.js +31 -18
  977. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  978. package/dist/data/runtime/RuntimeBar.model.cjs +10 -20
  979. package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -1
  980. package/dist/data/runtime/RuntimeBar.model.d.ts +2 -2
  981. package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -1
  982. package/dist/data/runtime/RuntimeBar.model.js +11 -21
  983. package/dist/data/runtime/RuntimeBar.model.js.map +1 -1
  984. package/dist/data/runtime/RuntimeBarCombo.cjs +11 -6
  985. package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -1
  986. package/dist/data/runtime/RuntimeBarCombo.d.ts +3 -1
  987. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
  988. package/dist/data/runtime/RuntimeBarCombo.js +11 -6
  989. package/dist/data/runtime/RuntimeBarCombo.js.map +1 -1
  990. package/dist/data/runtime/RuntimeBarSegments.cjs +7 -5
  991. package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -1
  992. package/dist/data/runtime/RuntimeBarSegments.d.ts +4 -2
  993. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
  994. package/dist/data/runtime/RuntimeBarSegments.js +7 -5
  995. package/dist/data/runtime/RuntimeBarSegments.js.map +1 -1
  996. package/dist/data/runtime/model-capabilities.cjs +0 -3
  997. package/dist/data/runtime/model-capabilities.cjs.map +1 -1
  998. package/dist/data/runtime/model-capabilities.d.ts +0 -1
  999. package/dist/data/runtime/model-capabilities.d.ts.map +1 -1
  1000. package/dist/data/runtime/model-capabilities.js +0 -3
  1001. package/dist/data/runtime/model-capabilities.js.map +1 -1
  1002. package/dist/data/runtime/provider-status.cjs +1 -1
  1003. package/dist/data/runtime/provider-status.cjs.map +1 -1
  1004. package/dist/data/runtime/provider-status.js +1 -1
  1005. package/dist/data/runtime/provider-status.js.map +1 -1
  1006. package/dist/data/runtime/runtime-field-support.cjs +63 -0
  1007. package/dist/data/runtime/runtime-field-support.cjs.map +1 -0
  1008. package/dist/data/runtime/runtime-field-support.d.ts +13 -0
  1009. package/dist/data/runtime/runtime-field-support.d.ts.map +1 -0
  1010. package/dist/data/runtime/runtime-field-support.js +63 -0
  1011. package/dist/data/runtime/runtime-field-support.js.map +1 -0
  1012. package/dist/data/runtime/runtime-mode.cjs +158 -116
  1013. package/dist/data/runtime/runtime-mode.cjs.map +1 -1
  1014. package/dist/data/runtime/runtime-mode.d.ts +57 -19
  1015. package/dist/data/runtime/runtime-mode.d.ts.map +1 -1
  1016. package/dist/data/runtime/runtime-mode.js +158 -116
  1017. package/dist/data/runtime/runtime-mode.js.map +1 -1
  1018. package/dist/data/selectionActionSplit.cjs +33 -0
  1019. package/dist/data/selectionActionSplit.cjs.map +1 -0
  1020. package/dist/data/selectionActionSplit.d.ts +36 -0
  1021. package/dist/data/selectionActionSplit.d.ts.map +1 -0
  1022. package/dist/data/selectionActionSplit.js +33 -0
  1023. package/dist/data/selectionActionSplit.js.map +1 -0
  1024. package/dist/data/task-copy.cjs +76 -0
  1025. package/dist/data/task-copy.cjs.map +1 -0
  1026. package/dist/data/task-copy.d.ts +12 -0
  1027. package/dist/data/task-copy.d.ts.map +1 -0
  1028. package/dist/data/task-copy.js +76 -0
  1029. package/dist/data/task-copy.js.map +1 -0
  1030. package/dist/data/test-runner/TestDetailPanel.d.ts +1 -1
  1031. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  1032. package/dist/data/test-runner/TestFailureDetail.d.ts +3 -3
  1033. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  1034. package/dist/data/test-runner/TestFilterBar.d.ts +1 -1
  1035. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  1036. package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
  1037. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  1038. package/dist/data/test-runner/TestRunner.d.ts +2 -2
  1039. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  1040. package/dist/data/test-runner/TestTree.d.ts +1 -1
  1041. package/dist/data/test-runner/TestTree.d.ts.map +1 -1
  1042. package/dist/data/test-runner/TestTreeNode.cjs +16 -11
  1043. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  1044. package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
  1045. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  1046. package/dist/data/test-runner/TestTreeNode.js +16 -11
  1047. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  1048. package/dist/data/test-runner/adapter.d.ts +1 -1
  1049. package/dist/data/test-runner/context.d.ts +1 -1
  1050. package/dist/data/version-info.cjs +3 -3
  1051. package/dist/data/version-info.js +3 -3
  1052. package/dist/data.cjs +34 -0
  1053. package/dist/data.cjs.map +1 -1
  1054. package/dist/data.d.ts +4 -1
  1055. package/dist/data.d.ts.map +1 -1
  1056. package/dist/data.js +34 -0
  1057. package/dist/data.js.map +1 -1
  1058. package/dist/devtools/DebugConsole.d.ts +1 -1
  1059. package/dist/devtools/DebugConsole.d.ts.map +1 -1
  1060. package/dist/devtools/DebugConsoleButton.d.ts +1 -1
  1061. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -1
  1062. package/dist/devtools/DebugConsoleDock.d.ts +1 -1
  1063. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -1
  1064. package/dist/devtools/ExecutionDetail.d.ts +1 -1
  1065. package/dist/devtools/ExecutionDetail.d.ts.map +1 -1
  1066. package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
  1067. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -1
  1068. package/dist/devtools/tabs/InspectionCaches.d.ts +1 -1
  1069. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -1
  1070. package/dist/devtools/tabs/InspectionTab.d.ts +1 -1
  1071. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -1
  1072. package/dist/devtools/tabs/NetworkTab.d.ts +1 -1
  1073. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -1
  1074. package/dist/devtools/tabs/QueriesTab.d.ts +1 -1
  1075. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -1
  1076. package/dist/hooks/density-provider.d.ts +3 -3
  1077. package/dist/hooks/density-provider.d.ts.map +1 -1
  1078. package/dist/hooks/theme-provider.d.ts +2 -2
  1079. package/dist/hooks/theme-provider.d.ts.map +1 -1
  1080. package/dist/hooks/use-density.d.ts +1 -1
  1081. package/dist/hooks/use-task-run.cjs +24 -17
  1082. package/dist/hooks/use-task-run.cjs.map +1 -1
  1083. package/dist/hooks/use-task-run.d.ts +3 -1
  1084. package/dist/hooks/use-task-run.d.ts.map +1 -1
  1085. package/dist/hooks/use-task-run.js +25 -18
  1086. package/dist/hooks/use-task-run.js.map +1 -1
  1087. package/dist/hooks/use-theme.d.ts +1 -1
  1088. package/dist/icons/components/UiCalendarCheck.cjs +15 -0
  1089. package/dist/icons/components/UiCalendarCheck.cjs.map +1 -0
  1090. package/dist/icons/components/UiCalendarCheck.d.ts +15 -0
  1091. package/dist/icons/components/UiCalendarCheck.d.ts.map +1 -0
  1092. package/dist/icons/components/UiCalendarCheck.js +15 -0
  1093. package/dist/icons/components/UiCalendarCheck.js.map +1 -0
  1094. package/dist/icons/components/UiChartLineUp.cjs +15 -0
  1095. package/dist/icons/components/UiChartLineUp.cjs.map +1 -0
  1096. package/dist/icons/components/UiChartLineUp.d.ts +15 -0
  1097. package/dist/icons/components/UiChartLineUp.d.ts.map +1 -0
  1098. package/dist/icons/components/UiChartLineUp.js +15 -0
  1099. package/dist/icons/components/UiChartLineUp.js.map +1 -0
  1100. package/dist/icons/components/UiClockCountdown.cjs +15 -0
  1101. package/dist/icons/components/UiClockCountdown.cjs.map +1 -0
  1102. package/dist/icons/components/UiClockCountdown.d.ts +15 -0
  1103. package/dist/icons/components/UiClockCountdown.d.ts.map +1 -0
  1104. package/dist/icons/components/UiClockCountdown.js +15 -0
  1105. package/dist/icons/components/UiClockCountdown.js.map +1 -0
  1106. package/dist/icons/components/UiFactory.cjs +15 -0
  1107. package/dist/icons/components/UiFactory.cjs.map +1 -0
  1108. package/dist/icons/components/UiFactory.d.ts +15 -0
  1109. package/dist/icons/components/UiFactory.d.ts.map +1 -0
  1110. package/dist/icons/components/UiFactory.js +15 -0
  1111. package/dist/icons/components/UiFactory.js.map +1 -0
  1112. package/dist/icons/components/UiHandCoins.cjs +15 -0
  1113. package/dist/icons/components/UiHandCoins.cjs.map +1 -0
  1114. package/dist/icons/components/UiHandCoins.d.ts +15 -0
  1115. package/dist/icons/components/UiHandCoins.d.ts.map +1 -0
  1116. package/dist/icons/components/UiHandCoins.js +15 -0
  1117. package/dist/icons/components/UiHandCoins.js.map +1 -0
  1118. package/dist/icons/components/UiInvoice.cjs +15 -0
  1119. package/dist/icons/components/UiInvoice.cjs.map +1 -0
  1120. package/dist/icons/components/UiInvoice.d.ts +15 -0
  1121. package/dist/icons/components/UiInvoice.d.ts.map +1 -0
  1122. package/dist/icons/components/UiInvoice.js +15 -0
  1123. package/dist/icons/components/UiInvoice.js.map +1 -0
  1124. package/dist/icons/components/UiTax.cjs +15 -0
  1125. package/dist/icons/components/UiTax.cjs.map +1 -0
  1126. package/dist/icons/components/UiTax.d.ts +15 -0
  1127. package/dist/icons/components/UiTax.d.ts.map +1 -0
  1128. package/dist/icons/components/UiTax.js +15 -0
  1129. package/dist/icons/components/UiTax.js.map +1 -0
  1130. package/dist/icons/index.d.ts +14 -0
  1131. package/dist/icons/index.d.ts.map +1 -1
  1132. package/dist/icons/registry.cjs +14 -0
  1133. package/dist/icons/registry.cjs.map +1 -1
  1134. package/dist/icons/registry.d.ts +1 -1
  1135. package/dist/icons/registry.d.ts.map +1 -1
  1136. package/dist/icons/registry.js +14 -0
  1137. package/dist/icons/registry.js.map +1 -1
  1138. package/dist/icons/types.d.ts +1 -1
  1139. package/dist/icons.cjs +21 -0
  1140. package/dist/icons.cjs.map +1 -1
  1141. package/dist/icons.js +21 -0
  1142. package/dist/icons.js.map +1 -1
  1143. package/dist/index.cjs +43 -0
  1144. package/dist/index.cjs.map +1 -1
  1145. package/dist/index.js +44 -1
  1146. package/dist/index.js.map +1 -1
  1147. package/dist/layout/AppShell.cjs +17 -3
  1148. package/dist/layout/AppShell.cjs.map +1 -1
  1149. package/dist/layout/AppShell.d.ts +10 -2
  1150. package/dist/layout/AppShell.d.ts.map +1 -1
  1151. package/dist/layout/AppShell.debug.d.ts +1 -1
  1152. package/dist/layout/AppShell.debug.d.ts.map +1 -1
  1153. package/dist/layout/AppShell.js +17 -3
  1154. package/dist/layout/AppShell.js.map +1 -1
  1155. package/dist/layout/AppShell.nav.cjs +133 -76
  1156. package/dist/layout/AppShell.nav.cjs.map +1 -1
  1157. package/dist/layout/AppShell.nav.d.ts +1 -1
  1158. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  1159. package/dist/layout/AppShell.nav.drag.cjs +86 -0
  1160. package/dist/layout/AppShell.nav.drag.cjs.map +1 -0
  1161. package/dist/layout/AppShell.nav.drag.d.ts +52 -0
  1162. package/dist/layout/AppShell.nav.drag.d.ts.map +1 -0
  1163. package/dist/layout/AppShell.nav.drag.js +86 -0
  1164. package/dist/layout/AppShell.nav.drag.js.map +1 -0
  1165. package/dist/layout/AppShell.nav.js +133 -76
  1166. package/dist/layout/AppShell.nav.js.map +1 -1
  1167. package/dist/layout/AppSidebar.d.ts +3 -3
  1168. package/dist/layout/AppSidebar.d.ts.map +1 -1
  1169. package/dist/layout/Panel.d.ts +2 -2
  1170. package/dist/layout/Panel.d.ts.map +1 -1
  1171. package/dist/layout/PanelFrame.d.ts +2 -2
  1172. package/dist/layout/PanelFrame.d.ts.map +1 -1
  1173. package/dist/layout/Section.d.ts +3 -3
  1174. package/dist/layout/Section.d.ts.map +1 -1
  1175. package/dist/layout/SplitPane.d.ts +2 -2
  1176. package/dist/layout/SplitPane.d.ts.map +1 -1
  1177. package/dist/layout/Tabs.d.ts +2 -2
  1178. package/dist/layout/Tabs.d.ts.map +1 -1
  1179. package/dist/layout/Workspace.d.ts +2 -2
  1180. package/dist/layout/Workspace.d.ts.map +1 -1
  1181. package/dist/layout/Workspace.model.d.ts +1 -1
  1182. package/dist/layout/Workspace.regions.d.ts +2 -2
  1183. package/dist/layout/Workspace.regions.d.ts.map +1 -1
  1184. package/dist/{components/combobox-utils.cjs → lib/combobox-values.cjs} +1 -5
  1185. package/dist/lib/combobox-values.cjs.map +1 -0
  1186. package/dist/{components/combobox-utils.d.ts → lib/combobox-values.d.ts} +3 -13
  1187. package/dist/lib/combobox-values.d.ts.map +1 -0
  1188. package/dist/{components/combobox-utils.js → lib/combobox-values.js} +1 -5
  1189. package/dist/lib/combobox-values.js.map +1 -0
  1190. package/dist/lib/combobox.cjs +93 -0
  1191. package/dist/lib/combobox.cjs.map +1 -0
  1192. package/dist/lib/combobox.d.ts +20 -0
  1193. package/dist/lib/combobox.d.ts.map +1 -0
  1194. package/dist/lib/combobox.js +93 -0
  1195. package/dist/lib/combobox.js.map +1 -0
  1196. package/dist/monaco/MonacoEditor.d.ts +1 -1
  1197. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  1198. package/dist/monaco/MonacoProvider.d.ts +1 -1
  1199. package/dist/monaco/MonacoProvider.d.ts.map +1 -1
  1200. package/dist/monaco/MonacoSchemaEditor.cjs +4 -4
  1201. package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -1
  1202. package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
  1203. package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -1
  1204. package/dist/monaco/MonacoSchemaEditor.js +4 -4
  1205. package/dist/monaco/MonacoSchemaEditor.js.map +1 -1
  1206. package/dist/monaco/types.d.ts +1 -1
  1207. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  1208. package/dist/overlay/CellActions.d.ts +3 -3
  1209. package/dist/overlay/CellActions.d.ts.map +1 -1
  1210. package/dist/overlay/CommandPalette.d.ts +2 -2
  1211. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  1212. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  1213. package/dist/overlay/CommandPaletteList.d.ts +3 -3
  1214. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  1215. package/dist/overlay/CommandPaletteList.js.map +1 -1
  1216. package/dist/overlay/CommandPaletteTrigger.d.ts +1 -1
  1217. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -1
  1218. package/dist/overlay/ContextMenu.d.ts +1 -1
  1219. package/dist/overlay/ContextMenu.d.ts.map +1 -1
  1220. package/dist/overlay/DropdownMenu.cjs +46 -35
  1221. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  1222. package/dist/overlay/DropdownMenu.d.ts +2 -2
  1223. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  1224. package/dist/overlay/DropdownMenu.js +46 -35
  1225. package/dist/overlay/DropdownMenu.js.map +1 -1
  1226. package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
  1227. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  1228. package/dist/overlay/HoverCard.d.ts +2 -2
  1229. package/dist/overlay/HoverCard.d.ts.map +1 -1
  1230. package/dist/overlay/Modal.cjs +105 -18
  1231. package/dist/overlay/Modal.cjs.map +1 -1
  1232. package/dist/overlay/Modal.d.ts +2 -2
  1233. package/dist/overlay/Modal.d.ts.map +1 -1
  1234. package/dist/overlay/Modal.js +105 -18
  1235. package/dist/overlay/Modal.js.map +1 -1
  1236. package/dist/overlay/Toast.d.ts +2 -2
  1237. package/dist/overlay/Toast.d.ts.map +1 -1
  1238. package/dist/overlay/Tour.d.ts +1 -1
  1239. package/dist/overlay/Tour.d.ts.map +1 -1
  1240. package/dist/overlay/TourCard.d.ts +2 -2
  1241. package/dist/overlay/TourCard.d.ts.map +1 -1
  1242. package/dist/overlay/TourProvider.d.ts +2 -2
  1243. package/dist/overlay/TourProvider.d.ts.map +1 -1
  1244. package/dist/overlay/TourSpotlight.d.ts +1 -1
  1245. package/dist/overlay/TourSpotlight.d.ts.map +1 -1
  1246. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  1247. package/dist/overlay/toast-context.d.ts +2 -2
  1248. package/dist/overlay/tour-context.d.ts +1 -1
  1249. package/dist/overlay/tour-types.d.ts +1 -1
  1250. package/dist/profiles/cel/celEditor.d.ts +4 -4
  1251. package/dist/profiles/cel/celEditor.d.ts.map +1 -1
  1252. package/dist/profiles/connections/catalogTree.d.ts +1 -1
  1253. package/dist/profiles/connections/catalogTree.d.ts.map +1 -1
  1254. package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
  1255. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +2 -2
  1256. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  1257. package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
  1258. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -1
  1259. package/dist/profiles/editor/profileBuilder.d.ts +3 -3
  1260. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -1
  1261. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +1 -1
  1262. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  1263. package/dist/profiles/editor/profileEditor.d.ts +1 -1
  1264. package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
  1265. package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
  1266. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -1
  1267. package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
  1268. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
  1269. package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
  1270. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -1
  1271. package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
  1272. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
  1273. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts +1 -1
  1274. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -1
  1275. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
  1276. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  1277. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  1278. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +1 -1
  1279. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -1
  1280. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +1 -1
  1281. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -1
  1282. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +2 -2
  1283. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -1
  1284. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +1 -1
  1285. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -1
  1286. package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
  1287. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -1
  1288. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +1 -1
  1289. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -1
  1290. package/dist/profiles/elasticsearch/esValueCombobox.d.ts +2 -2
  1291. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -1
  1292. package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
  1293. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -1
  1294. package/dist/profiles/fields/profileFieldControls.d.ts +3 -3
  1295. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
  1296. package/dist/profiles/fields/profileFieldEditor.d.ts +3 -3
  1297. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  1298. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
  1299. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  1300. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  1301. package/dist/profiles/fields/profileFieldList.d.ts +2 -2
  1302. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
  1303. package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
  1304. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -1
  1305. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  1306. package/dist/profiles/processor/processorPipeline.d.ts +1 -1
  1307. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
  1308. package/dist/profiles/processor/processorPipelineEditor.d.ts +1 -1
  1309. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -1
  1310. package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
  1311. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -1
  1312. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  1313. package/dist/profiles/query/jsonPathSampleRow.d.ts +2 -2
  1314. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -1
  1315. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
  1316. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -1
  1317. package/dist/profiles/query/prometheusResults.d.ts +2 -2
  1318. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  1319. package/dist/profiles/query/queryRowLimits.d.ts +1 -1
  1320. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -1
  1321. package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
  1322. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  1323. package/dist/profiles/wizard/profileWizard.d.ts +1 -1
  1324. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  1325. package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
  1326. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  1327. package/dist/profiles/wizard/profileWizardSteps.d.ts +4 -4
  1328. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  1329. package/dist/rpc/ChatLayer.d.ts +1 -1
  1330. package/dist/rpc/ChatLayer.d.ts.map +1 -1
  1331. package/dist/rpc/CommandForm.d.ts +1 -1
  1332. package/dist/rpc/CommandForm.d.ts.map +1 -1
  1333. package/dist/rpc/CommandOutput.d.ts +1 -1
  1334. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  1335. package/dist/rpc/EndpointList.d.ts +2 -2
  1336. package/dist/rpc/EndpointList.d.ts.map +1 -1
  1337. package/dist/rpc/EntityExplorerApp.d.ts +2 -2
  1338. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1339. package/dist/rpc/ExecutionResult.d.ts +1 -1
  1340. package/dist/rpc/ExecutionResult.d.ts.map +1 -1
  1341. package/dist/rpc/FilterForm.cjs +26 -11
  1342. package/dist/rpc/FilterForm.cjs.map +1 -1
  1343. package/dist/rpc/FilterForm.d.ts +4 -1
  1344. package/dist/rpc/FilterForm.d.ts.map +1 -1
  1345. package/dist/rpc/FilterForm.js +26 -11
  1346. package/dist/rpc/FilterForm.js.map +1 -1
  1347. package/dist/rpc/FilterFormFields.cjs +3 -2
  1348. package/dist/rpc/FilterFormFields.cjs.map +1 -1
  1349. package/dist/rpc/FilterFormFields.d.ts +2 -1
  1350. package/dist/rpc/FilterFormFields.d.ts.map +1 -1
  1351. package/dist/rpc/FilterFormFields.js +3 -2
  1352. package/dist/rpc/FilterFormFields.js.map +1 -1
  1353. package/dist/rpc/InlineError.d.ts +1 -1
  1354. package/dist/rpc/InlineError.d.ts.map +1 -1
  1355. package/dist/rpc/OperationActionBar.cjs +81 -17
  1356. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  1357. package/dist/rpc/OperationActionBar.d.ts +8 -3
  1358. package/dist/rpc/OperationActionBar.d.ts.map +1 -1
  1359. package/dist/rpc/OperationActionBar.js +82 -18
  1360. package/dist/rpc/OperationActionBar.js.map +1 -1
  1361. package/dist/rpc/OperationActionDialog.d.ts +1 -1
  1362. package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
  1363. package/dist/rpc/OperationCatalog.cjs +129 -76
  1364. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1365. package/dist/rpc/OperationCatalog.d.ts +6 -2
  1366. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1367. package/dist/rpc/OperationCatalog.js +130 -77
  1368. package/dist/rpc/OperationCatalog.js.map +1 -1
  1369. package/dist/rpc/OperationCatalogActions.cjs +100 -0
  1370. package/dist/rpc/OperationCatalogActions.cjs.map +1 -0
  1371. package/dist/rpc/OperationCatalogActions.d.ts +22 -0
  1372. package/dist/rpc/OperationCatalogActions.d.ts.map +1 -0
  1373. package/dist/rpc/OperationCatalogActions.js +100 -0
  1374. package/dist/rpc/OperationCatalogActions.js.map +1 -0
  1375. package/dist/rpc/OperationCommandPage.d.ts +1 -1
  1376. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1377. package/dist/rpc/OperationEntityContextPicker.cjs +129 -116
  1378. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  1379. package/dist/rpc/OperationEntityContextPicker.d.ts +18 -1
  1380. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  1381. package/dist/rpc/OperationEntityContextPicker.js +130 -117
  1382. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  1383. package/dist/rpc/OperationEntityPage.d.ts +2 -2
  1384. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1385. package/dist/rpc/OperationResultView.cjs +7 -4
  1386. package/dist/rpc/OperationResultView.cjs.map +1 -1
  1387. package/dist/rpc/OperationResultView.d.ts +5 -3
  1388. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1389. package/dist/rpc/OperationResultView.js +7 -4
  1390. package/dist/rpc/OperationResultView.js.map +1 -1
  1391. package/dist/rpc/RouterProvider.d.ts +2 -2
  1392. package/dist/rpc/RouterProvider.d.ts.map +1 -1
  1393. package/dist/rpc/SchemaActionForm.d.ts +2 -2
  1394. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  1395. package/dist/rpc/actionIconMap.cjs +11 -0
  1396. package/dist/rpc/actionIconMap.cjs.map +1 -0
  1397. package/dist/rpc/actionIconMap.d.ts +3 -0
  1398. package/dist/rpc/actionIconMap.d.ts.map +1 -0
  1399. package/dist/rpc/actionIconMap.js +11 -0
  1400. package/dist/rpc/actionIconMap.js.map +1 -0
  1401. package/dist/rpc/formMetadata.d.ts +1 -1
  1402. package/dist/rpc/operationCatalogUrl.cjs +28 -0
  1403. package/dist/rpc/operationCatalogUrl.cjs.map +1 -0
  1404. package/dist/rpc/operationCatalogUrl.d.ts +3 -0
  1405. package/dist/rpc/operationCatalogUrl.d.ts.map +1 -0
  1406. package/dist/rpc/operationCatalogUrl.js +28 -0
  1407. package/dist/rpc/operationCatalogUrl.js.map +1 -0
  1408. package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
  1409. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -1
  1410. package/dist/rpc/router.d.ts +1 -1
  1411. package/dist/rpc/rowNavigation.cjs +4 -3
  1412. package/dist/rpc/rowNavigation.cjs.map +1 -1
  1413. package/dist/rpc/rowNavigation.d.ts +1 -1
  1414. package/dist/rpc/rowNavigation.d.ts.map +1 -1
  1415. package/dist/rpc/rowNavigation.js +4 -3
  1416. package/dist/rpc/rowNavigation.js.map +1 -1
  1417. package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
  1418. package/dist/rpc/types.cjs.map +1 -1
  1419. package/dist/rpc/types.d.ts +2 -2
  1420. package/dist/rpc/types.d.ts.map +1 -1
  1421. package/dist/rpc/types.js.map +1 -1
  1422. package/dist/rpc.cjs +2 -0
  1423. package/dist/rpc.cjs.map +1 -1
  1424. package/dist/rpc.d.ts +2 -1
  1425. package/dist/rpc.d.ts.map +1 -1
  1426. package/dist/rpc.js +2 -0
  1427. package/dist/rpc.js.map +1 -1
  1428. package/dist/runtime-profile.cjs +7 -0
  1429. package/dist/runtime-profile.cjs.map +1 -0
  1430. package/dist/runtime-profile.d.ts +2 -0
  1431. package/dist/runtime-profile.d.ts.map +1 -0
  1432. package/dist/runtime-profile.js +7 -0
  1433. package/dist/runtime-profile.js.map +1 -0
  1434. package/dist/styles.css +1 -1
  1435. package/package.json +8 -3
  1436. package/dist/components/combobox-utils.cjs.map +0 -1
  1437. package/dist/components/combobox-utils.d.ts.map +0 -1
  1438. package/dist/components/combobox-utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.cjs","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false} closeOnFocusOut={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":["FloatingTree","jsx","useState","useFloatingZIndex","useFloatingTree","useFloatingNodeId","useRef","useEffect","useFloating","autoUpdate","offset","flip","shift","useClick","useDismiss","useRole","useListNavigation","useInteractions","useEscapeLayer","FloatingNode","jsxs","cn","Button","Icon","UiChevronDown","FloatingPortal","FloatingFocusManager","MENU_POPOVER_CLASS","MenuContext","FloatingList","MenuItemList"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.cjs","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [click, dismiss, role, listNav],\n );\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement)\n refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && (\n <Icon\n {...(typeof icon === \"string\" ? { name: icon } : { icon })}\n />\n )}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n closeOnFocusOut={false}\n >\n <div\n ref={refs.setFloating}\n {...getFloatingProps()}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">\n {header}\n </div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">\n {footer}\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":["FloatingTree","jsx","useState","useFloatingZIndex","useFloatingTree","useFloatingNodeId","useRef","useEffect","useFloating","autoUpdate","offset","flip","shift","useClick","useDismiss","useRole","useListNavigation","useInteractions","useEscapeLayer","FloatingNode","jsxs","cn","Button","Icon","UiChevronDown","FloatingPortal","FloatingFocusManager","MENU_POPOVER_CLASS","MenuContext","FloatingList","MenuItemList"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  import { ButtonProps } from '../components/button';
3
3
  import { StaticIconComponent } from '../data/Icon';
4
4
  export type DropdownMenuItem = {
@@ -66,5 +66,5 @@ export type DropdownMenuProps = {
66
66
  * `children` opens a flyout submenu. The FloatingTree lets every level cooperate
67
67
  * on focus and dismissal, so selecting any leaf closes the whole menu.
68
68
  */
69
- export declare function DropdownMenu(props: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
69
+ export declare function DropdownMenu(props: DropdownMenuProps): import("react").JSX.Element;
70
70
  //# sourceMappingURL=DropdownMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBpE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAM9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,oDAAoD;IACpD,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAChD,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAMpD"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBpE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAM9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,oDAAoD;IACpD,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAChD,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAMpD"}
@@ -62,15 +62,13 @@ function DropdownMenuRoot({
62
62
  onNavigate: setActiveIndex,
63
63
  loop: true
64
64
  });
65
- const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([
66
- click,
67
- dismiss,
68
- role,
69
- listNav
70
- ]);
65
+ const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(
66
+ [click, dismiss, role, listNav]
67
+ );
71
68
  const closeMenu = () => {
72
69
  setOpen(false);
73
- if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();
70
+ if (refs.domReference.current instanceof HTMLElement)
71
+ refs.domReference.current.focus();
74
72
  };
75
73
  useEscapeLayer(open, closeMenu);
76
74
  const closeMenuRef = useRef(closeMenu);
@@ -103,41 +101,54 @@ function DropdownMenuRoot({
103
101
  "aria-expanded": open,
104
102
  ...getReferenceProps(),
105
103
  children: [
106
- icon && /* @__PURE__ */ jsx(Icon, { ...typeof icon === "string" ? { name: icon } : { icon } }),
104
+ icon && /* @__PURE__ */ jsx(
105
+ Icon,
106
+ {
107
+ ...typeof icon === "string" ? { name: icon } : { icon }
108
+ }
109
+ ),
107
110
  label,
108
111
  !hideChevron && /* @__PURE__ */ jsx(Icon, { icon: UiChevronDown })
109
112
  ]
110
113
  }
111
114
  ),
112
- open && /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(FloatingFocusManager, { context, modal: false, closeOnFocusOut: false, children: /* @__PURE__ */ jsxs(
113
- "div",
115
+ open && /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(
116
+ FloatingFocusManager,
114
117
  {
115
- ref: refs.setFloating,
116
- role: "menu",
117
- "aria-label": menuLabel,
118
- style: { ...floatingStyles, zIndex: floatingZ },
119
- className: cn(MENU_POPOVER_CLASS, menuClassName),
120
- ...getFloatingProps(),
121
- children: [
122
- header != null && /* @__PURE__ */ jsx("div", { className: "border-b border-border px-3 py-1.5", children: header }),
123
- children ? children(closeMenu) : /* @__PURE__ */ jsx(
124
- MenuContext.Provider,
125
- {
126
- value: {
127
- getItemProps,
128
- activeIndex,
129
- setActiveIndex,
130
- setHasFocusInside: () => {
131
- },
132
- isOpen: open
133
- },
134
- children: /* @__PURE__ */ jsx(FloatingList, { elementsRef, children: /* @__PURE__ */ jsx(MenuItemList, { items: items ?? [] }) })
135
- }
136
- ),
137
- footer != null && /* @__PURE__ */ jsx("div", { className: "border-t border-border px-3 py-1.5", children: footer })
138
- ]
118
+ context,
119
+ modal: false,
120
+ closeOnFocusOut: false,
121
+ children: /* @__PURE__ */ jsxs(
122
+ "div",
123
+ {
124
+ ref: refs.setFloating,
125
+ ...getFloatingProps(),
126
+ role: "menu",
127
+ "aria-label": menuLabel,
128
+ style: { ...floatingStyles, zIndex: floatingZ },
129
+ className: cn(MENU_POPOVER_CLASS, menuClassName),
130
+ children: [
131
+ header != null && /* @__PURE__ */ jsx("div", { className: "border-b border-border px-3 py-1.5", children: header }),
132
+ children ? children(closeMenu) : /* @__PURE__ */ jsx(
133
+ MenuContext.Provider,
134
+ {
135
+ value: {
136
+ getItemProps,
137
+ activeIndex,
138
+ setActiveIndex,
139
+ setHasFocusInside: () => {
140
+ },
141
+ isOpen: open
142
+ },
143
+ children: /* @__PURE__ */ jsx(FloatingList, { elementsRef, children: /* @__PURE__ */ jsx(MenuItemList, { items: items ?? [] }) })
144
+ }
145
+ ),
146
+ footer != null && /* @__PURE__ */ jsx("div", { className: "border-t border-border px-3 py-1.5", children: footer })
147
+ ]
148
+ }
149
+ )
139
150
  }
140
- ) }) })
151
+ ) })
141
152
  ] }) });
142
153
  }
143
154
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([\n click,\n dismiss,\n role,\n listNav,\n ]);\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement) refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false} closeOnFocusOut={false}>\n <div\n ref={refs.setFloating}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n {...getFloatingProps()}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">{header}</div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">{footer}</div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.js","sources":["../../src/overlay/DropdownMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingTree,\n useInteractions,\n useListNavigation,\n useRole,\n} from \"@floating-ui/react\";\nimport { cn } from \"../lib/utils\";\nimport { Button, type ButtonProps } from \"../components/button\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiChevronDown } from \"../icons\";\nimport { MENU_POPOVER_CLASS, MenuContext } from \"./dropdownMenuContext\";\nimport { MenuItemList } from \"./DropdownMenuSubmenu\";\nimport { useEscapeLayer, useFloatingZIndex } from \"./modalStack\";\n\nexport type DropdownMenuItem = {\n /** Visible label. */\n label: ReactNode;\n /** Called when the item is chosen. Ignored when the item has `children`. */\n onSelect: () => void;\n /** Iconify name or imported icon component rendered before the label. */\n icon?: string | StaticIconComponent;\n /** CSS colour applied to this item's icon (the glyph fills `currentColor`). */\n iconColor?: string;\n /**\n * Section header. A non-interactive header renders above the first item of\n * each contiguous group — provide items pre-sorted by `group`. Items without\n * a `group` render no header.\n */\n group?: string;\n /** Browser tooltip for the item. */\n title?: string;\n /** Disable selection. */\n disabled?: boolean;\n /**\n * Nested submenu items. When present the item becomes a submenu trigger: it\n * opens a flyout of `children` (recursively) on hover / click / ArrowRight\n * instead of firing `onSelect`.\n */\n children?: DropdownMenuItem[];\n};\n\nexport type DropdownMenuProps = {\n /** Trigger label. Ignored when `trigger` is provided. */\n label?: ReactNode;\n /** Icon shown before the trigger label. Ignored when `trigger` is provided. */\n icon?: string | StaticIconComponent;\n /** Hide the trailing chevron on the default trigger. */\n hideChevron?: boolean;\n /** Variant forwarded to the default Button trigger. */\n variant?: ButtonProps[\"variant\"];\n /** Size forwarded to the default Button trigger. */\n size?: ButtonProps[\"size\"];\n /** Fully custom trigger. Receives no props; the menu wraps it with open state. */\n trigger?: ReactNode;\n /** Declarative menu items. Provide this or `children`, not both. */\n items?: DropdownMenuItem[];\n /** Custom menu content. Use `closeMenu` to dismiss after a selection. */\n children?: (closeMenu: () => void) => ReactNode;\n /** Rendered at the top of the menu, above the items/children. */\n header?: ReactNode;\n /** Rendered at the bottom of the menu, below the items/children (e.g. a \"Show more…\" link). */\n footer?: ReactNode;\n /** Horizontal alignment of the menu relative to the trigger. */\n align?: \"left\" | \"right\";\n /** Notified whenever the menu opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Browser tooltip / accessible label for the default trigger. */\n title?: string;\n /** Accessible label (`aria-label`) for the floating menu element itself. */\n menuLabel?: string;\n /** Classes applied to the wrapper. */\n className?: string;\n /** Classes applied to the floating menu. */\n menuClassName?: string;\n};\n\n/**\n * A trigger + floating menu. Flat `items` render as a single list; an item with\n * `children` opens a flyout submenu. The FloatingTree lets every level cooperate\n * on focus and dismissal, so selecting any leaf closes the whole menu.\n */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return (\n <FloatingTree>\n <DropdownMenuRoot {...props} />\n </FloatingTree>\n );\n}\n\nfunction DropdownMenuRoot({\n label,\n icon,\n hideChevron = false,\n variant = \"outline\",\n size = \"sm\",\n trigger,\n items,\n children,\n header,\n footer,\n align = \"right\",\n onOpenChange,\n title,\n menuLabel,\n className,\n menuClassName,\n}: DropdownMenuProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const floatingZ = useFloatingZIndex();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const elementsRef = useRef<Array<HTMLElement | null>>([]);\n\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n useEffect(() => {\n onOpenChangeRef.current?.(open);\n }, [open]);\n\n const { refs, floatingStyles, context } = useFloating<HTMLDivElement>({\n // nodeId is always defined inside the FloatingTree; guard for the type only.\n ...(nodeId ? { nodeId } : {}),\n open,\n onOpenChange: setOpen,\n // bottom-end / bottom-start reproduce the previous right/left alignment.\n placement: align === \"right\" ? \"bottom-end\" : \"bottom-start\",\n whileElementsMounted: autoUpdate,\n // offset(4) ≈ the previous mt-1; flip opens upward at the bottom edge and\n // shift slides the menu back on-screen at the horizontal edges.\n middleware: [offset(4), flip({ padding: 8 }), shift({ padding: 8 })],\n });\n\n const click = useClick(context);\n // useDismiss is React-tree aware: a press inside anything rendered through the\n // menu's `children` render-prop — including a Modal that portals to\n // document.body — propagates via React's synthetic events to the floating\n // element and counts as \"inside\", so it won't dismiss the menu (which would\n // unmount that child Modal). A Modal owned by a sibling/parent instead of this\n // menu correctly does dismiss the menu, which is harmless since closing the\n // menu does not unmount a Modal it doesn't own.\n const dismiss = useDismiss(context, { escapeKey: false });\n const role = useRole(context, { role: \"menu\" });\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n onNavigate: setActiveIndex,\n loop: true,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [click, dismiss, role, listNav],\n );\n\n const closeMenu = () => {\n setOpen(false);\n if (refs.domReference.current instanceof HTMLElement)\n refs.domReference.current.focus();\n };\n useEscapeLayer(open, closeMenu);\n\n // Selecting any leaf (at any depth) emits a tree-wide \"click\"; the root closes\n // and restores focus to the trigger.\n const closeMenuRef = useRef(closeMenu);\n closeMenuRef.current = closeMenu;\n useEffect(() => {\n if (!tree) return;\n const onTreeClick = () => closeMenuRef.current();\n tree.events.on(\"click\", onTreeClick);\n return () => tree.events.off(\"click\", onTreeClick);\n }, [tree]);\n\n return (\n <FloatingNode id={nodeId}>\n <div className={cn(\"relative inline-flex\", className)}>\n {trigger ? (\n <span\n ref={refs.setReference}\n className=\"inline-flex\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {trigger}\n </span>\n ) : (\n <Button\n ref={refs.setReference as React.Ref<HTMLButtonElement>}\n variant={variant}\n size={size}\n title={title}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n {...getReferenceProps()}\n >\n {icon && (\n <Icon\n {...(typeof icon === \"string\" ? { name: icon } : { icon })}\n />\n )}\n {label}\n {!hideChevron && <Icon icon={UiChevronDown} />}\n </Button>\n )}\n {open && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n closeOnFocusOut={false}\n >\n <div\n ref={refs.setFloating}\n {...getFloatingProps()}\n role=\"menu\"\n aria-label={menuLabel}\n style={{ ...floatingStyles, zIndex: floatingZ }}\n className={cn(MENU_POPOVER_CLASS, menuClassName)}\n >\n {header != null && (\n <div className=\"border-b border-border px-3 py-1.5\">\n {header}\n </div>\n )}\n {children ? (\n children(closeMenu)\n ) : (\n <MenuContext.Provider\n value={{\n getItemProps,\n activeIndex,\n setActiveIndex,\n setHasFocusInside: () => {},\n isOpen: open,\n }}\n >\n <FloatingList elementsRef={elementsRef}>\n <MenuItemList items={items ?? []} />\n </FloatingList>\n </MenuContext.Provider>\n )}\n {footer != null && (\n <div className=\"border-t border-border px-3 py-1.5\">\n {footer}\n </div>\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n </FloatingNode>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ import { DropdownMenuItem } from './DropdownMenu';
8
8
  */
9
9
  export declare function MenuItemList({ items }: {
10
10
  items: DropdownMenuItem[];
11
- }): import("react/jsx-runtime").JSX.Element;
11
+ }): import("react").JSX.Element;
12
12
  //# sourceMappingURL=DropdownMenuSubmenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenuSubmenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenuSubmenu.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA4NvD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE,2CAwBpE"}
1
+ {"version":3,"file":"DropdownMenuSubmenu.d.ts","sourceRoot":"","sources":["../../src/overlay/DropdownMenuSubmenu.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA4NvD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE,+BAwBpE"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  export type HoverCardPlacement = "top" | "bottom" | "left" | "right";
3
3
  export type HoverCardProps = {
4
4
  /** Trigger content that opens the card on hover/focus. */
@@ -16,5 +16,5 @@ export type HoverCardProps = {
16
16
  /** Classes applied to the floating card. */
17
17
  cardClassName?: string | undefined;
18
18
  };
19
- export declare function HoverCard({ trigger, children, placement, delay, arrow, className, cardClassName, }: HoverCardProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function HoverCard({ trigger, children, placement, delay, arrow, className, cardClassName, }: HoverCardProps): import("react").JSX.Element;
20
20
  //# sourceMappingURL=HoverCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HoverCard.d.ts","sourceRoot":"","sources":["../../src/overlay/HoverCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG;IAC3B,0DAA0D;IAC1D,OAAO,EAAE,SAAS,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAUF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,SAAiB,EACjB,KAAS,EACT,KAAY,EACZ,SAAS,EACT,aAAa,GACd,EAAE,cAAc,2CAgIhB"}
1
+ {"version":3,"file":"HoverCard.d.ts","sourceRoot":"","sources":["../../src/overlay/HoverCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG;IAC3B,0DAA0D;IAC1D,OAAO,EAAE,SAAS,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAUF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,SAAiB,EACjB,KAAS,EACT,KAAY,EACZ,SAAS,EACT,aAAa,GACd,EAAE,cAAc,+BAgIhB"}
@@ -8,6 +8,7 @@ const Icon = require("../data/Icon.cjs");
8
8
  const button = require("../components/button.cjs");
9
9
  const modalStack = require("./modalStack.cjs");
10
10
  const zIndex = require("./zIndex.cjs");
11
+ const UiArrowLeft = require("../icons/components/UiArrowLeft.cjs");
11
12
  const UiFullscreen = require("../icons/components/UiFullscreen.cjs");
12
13
  const UiClose = require("../icons/components/UiClose.cjs");
13
14
  const sizeClass = {
@@ -24,6 +25,25 @@ const DEFAULT_CONFIRM = {
24
25
  confirmLabel: "Discard",
25
26
  cancelLabel: "Keep editing"
26
27
  };
28
+ const MOBILE_QUERY = "(max-width: 639px)";
29
+ const REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
30
+ const MOBILE_TRANSITION_MS = 200;
31
+ const FOCUSABLE_SELECTOR = [
32
+ "a[href]",
33
+ "button:not([disabled])",
34
+ "input:not([disabled])",
35
+ "select:not([disabled])",
36
+ "textarea:not([disabled])",
37
+ "[tabindex]:not([tabindex='-1'])"
38
+ ].join(",");
39
+ function visibleFocusableElements(container) {
40
+ return Array.from(
41
+ container.querySelectorAll(FOCUSABLE_SELECTOR)
42
+ ).filter((element) => {
43
+ const style = window.getComputedStyle(element);
44
+ return !element.hidden && style.display !== "none" && style.visibility !== "hidden";
45
+ });
46
+ }
27
47
  function Modal({
28
48
  open,
29
49
  onClose,
@@ -42,13 +62,46 @@ function Modal({
42
62
  children
43
63
  }) {
44
64
  const dialogRef = react.useRef(null);
45
- const { depth } = modalStack.useModalStack(open);
65
+ const closeTimerRef = react.useRef(void 0);
66
+ const openFrameRef = react.useRef(void 0);
67
+ const [present, setPresent] = react.useState(open);
68
+ const [mobileVisible, setMobileVisible] = react.useState(false);
69
+ const { depth } = modalStack.useModalStack(present);
46
70
  const [expanded, setExpanded] = react.useState(false);
47
71
  const [confirming, setConfirming] = react.useState(false);
48
72
  const requestClose = () => {
49
73
  if (confirmClose) setConfirming(true);
50
74
  else onClose();
51
75
  };
76
+ react.useEffect(() => {
77
+ window.clearTimeout(closeTimerRef.current);
78
+ window.cancelAnimationFrame(openFrameRef.current ?? 0);
79
+ const animateMobile = window.matchMedia(MOBILE_QUERY).matches && !window.matchMedia(REDUCED_MOTION_QUERY).matches;
80
+ if (open) {
81
+ setPresent(true);
82
+ if (animateMobile) {
83
+ setMobileVisible(false);
84
+ openFrameRef.current = window.requestAnimationFrame(() => {
85
+ setMobileVisible(true);
86
+ });
87
+ } else {
88
+ setMobileVisible(true);
89
+ }
90
+ } else if (animateMobile) {
91
+ setMobileVisible(false);
92
+ closeTimerRef.current = window.setTimeout(
93
+ () => setPresent(false),
94
+ MOBILE_TRANSITION_MS
95
+ );
96
+ } else {
97
+ setMobileVisible(false);
98
+ setPresent(false);
99
+ }
100
+ return () => {
101
+ window.clearTimeout(closeTimerRef.current);
102
+ window.cancelAnimationFrame(openFrameRef.current ?? 0);
103
+ };
104
+ }, [open]);
52
105
  react.useEffect(() => {
53
106
  if (!open) {
54
107
  setExpanded(false);
@@ -58,14 +111,11 @@ function Modal({
58
111
  react.useEffect(() => {
59
112
  if (!confirmClose) setConfirming(false);
60
113
  }, [confirmClose]);
61
- modalStack.useEscapeLayer(
62
- open,
63
- () => {
64
- if (confirming) setConfirming(false);
65
- else requestClose();
66
- },
67
- closeOnEsc
68
- );
114
+ modalStack.useEscapeLayer(present, () => {
115
+ if (!open || !closeOnEsc) return;
116
+ if (confirming) setConfirming(false);
117
+ else requestClose();
118
+ });
69
119
  react.useEffect(() => {
70
120
  var _a;
71
121
  if (!open) return;
@@ -76,12 +126,12 @@ function Modal({
76
126
  return (_a2 = prev == null ? void 0 : prev.focus) == null ? void 0 : _a2.call(prev);
77
127
  };
78
128
  }, [open]);
79
- if (!open) return null;
129
+ if (!present) return null;
80
130
  const overlay = /* @__PURE__ */ jsxRuntime.jsx(
81
131
  "div",
82
132
  {
83
133
  className: utils.cn(
84
- "fixed inset-0 flex items-center justify-center p-density-2 sm:p-density-4",
134
+ "fixed inset-0 flex items-center justify-center p-density-2 sm:p-density-4 max-sm:items-stretch max-sm:justify-end max-sm:p-0 max-sm:!bg-transparent",
85
135
  // Nested modals dim less so the dialog they opened over stays visible.
86
136
  depth === 0 ? "bg-black/40" : "bg-black/20"
87
137
  ),
@@ -96,8 +146,12 @@ function Modal({
96
146
  role: "dialog",
97
147
  "aria-modal": "true",
98
148
  "aria-label": typeof title === "string" ? title : void 0,
149
+ "data-state": mobileVisible ? "open" : "closed",
99
150
  className: utils.cn(
100
151
  "relative flex w-full flex-col overflow-hidden rounded-lg border border-border bg-background shadow-xl",
152
+ "max-sm:!h-dvh max-sm:!max-h-dvh max-sm:!max-w-none max-sm:!rounded-none max-sm:!border-0 max-sm:shadow-none",
153
+ "max-sm:transition-transform max-sm:duration-200 max-sm:ease-out max-sm:motion-reduce:transition-none",
154
+ "max-sm:data-[state=closed]:translate-x-full max-sm:data-[state=open]:translate-x-0",
101
155
  expanded ? sizeClass.full : sizeClass[size],
102
156
  className
103
157
  ),
@@ -106,10 +160,43 @@ function Modal({
106
160
  ...expanded ? { height: "calc(100dvh - 2rem)" } : {}
107
161
  },
108
162
  onClick: (e) => e.stopPropagation(),
163
+ onKeyDown: (event) => {
164
+ var _a;
165
+ if (event.key !== "Tab") return;
166
+ const scope = confirming ? (_a = dialogRef.current) == null ? void 0 : _a.querySelector(
167
+ "[role='alertdialog']"
168
+ ) : dialogRef.current;
169
+ if (!scope) return;
170
+ const focusable = visibleFocusableElements(scope);
171
+ const first = focusable[0];
172
+ const last = focusable[focusable.length - 1];
173
+ if (!first || !last) {
174
+ event.preventDefault();
175
+ scope.focus();
176
+ } else if (event.shiftKey && document.activeElement === first) {
177
+ event.preventDefault();
178
+ last.focus();
179
+ } else if (!event.shiftKey && document.activeElement === last) {
180
+ event.preventDefault();
181
+ first.focus();
182
+ }
183
+ },
109
184
  children: [
110
- (title || subtitle || headerSlot || expandable || !hideClose) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 px-density-4 py-density-3 border-b border-border", children: [
185
+ (title || subtitle || headerSlot || expandable || !hideClose) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 px-density-4 py-density-3 border-b border-border max-sm:min-h-14 max-sm:bg-background", children: [
111
186
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-density-2", children: [
112
- title ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold flex-1", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1" }),
187
+ !hideClose && /* @__PURE__ */ jsxRuntime.jsx(
188
+ button.Button,
189
+ {
190
+ type: "button",
191
+ onClick: requestClose,
192
+ variant: "ghost",
193
+ size: "icon",
194
+ "aria-label": "Back",
195
+ className: "-ml-2 text-foreground sm:hidden",
196
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiArrowLeft.UiArrowLeft })
197
+ }
198
+ ),
199
+ title ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold flex-1 max-sm:text-base max-sm:leading-6", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1" }),
113
200
  headerSlot,
114
201
  expandable && /* @__PURE__ */ jsxRuntime.jsx(
115
202
  "button",
@@ -117,7 +204,7 @@ function Modal({
117
204
  type: "button",
118
205
  onClick: () => setExpanded((v) => !v),
119
206
  "aria-label": expanded ? "Restore size" : "Expand to fullscreen",
120
- className: "text-muted-foreground hover:text-foreground",
207
+ className: "text-muted-foreground hover:text-foreground max-sm:hidden",
121
208
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: expanded ? UiFullscreen.UiFullscreenFilled : UiFullscreen.UiFullscreen })
122
209
  }
123
210
  ),
@@ -127,7 +214,7 @@ function Modal({
127
214
  type: "button",
128
215
  onClick: requestClose,
129
216
  "aria-label": "Close",
130
- className: "text-muted-foreground hover:text-foreground",
217
+ className: "text-muted-foreground hover:text-foreground max-sm:hidden",
131
218
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiClose.UiClose })
132
219
  }
133
220
  )
@@ -139,7 +226,7 @@ function Modal({
139
226
  {
140
227
  "data-slot": "modal-body",
141
228
  className: utils.cn(
142
- "min-h-0 flex-1 px-density-4 py-density-3",
229
+ "min-h-0 flex-1 px-density-4 py-density-3 max-sm:py-density-4",
143
230
  scrollBody ? "overflow-auto" : "flex flex-col overflow-hidden"
144
231
  ),
145
232
  children
@@ -149,7 +236,7 @@ function Modal({
149
236
  "div",
150
237
  {
151
238
  "data-slot": "modal-footer",
152
- className: "shrink-0 px-density-4 py-density-3 border-t border-border",
239
+ className: "shrink-0 px-density-4 py-density-3 border-t border-border max-sm:py-density-4",
153
240
  children: footer
154
241
  }
155
242
  ),
@@ -179,7 +266,7 @@ function ConfirmClosePrompt({
179
266
  return /* @__PURE__ */ jsxRuntime.jsx(
180
267
  "div",
181
268
  {
182
- className: "absolute inset-0 z-10 flex items-center justify-center rounded-lg bg-background/80 p-density-4",
269
+ className: "absolute inset-0 z-10 flex items-center justify-center rounded-lg bg-background/80 p-density-4 max-sm:rounded-none",
183
270
  role: "alertdialog",
184
271
  "aria-modal": "true",
185
272
  "aria-label": typeof options.title === "string" ? options.title : "Confirm close",
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.cjs","sources":["../../src/overlay/Modal.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport { Button } from \"../components/button\";\nimport { UiClose, UiFullscreen, UiFullscreenFilled } from \"../icons\";\nimport { useEscapeLayer, useModalStack } from \"./modalStack\";\nimport { zIndex } from \"./zIndex\";\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\n/** Copy for the discard-confirmation prompt shown before a guarded close. */\nexport type ConfirmCloseOptions = {\n /** Heading of the confirmation prompt. */\n title?: ReactNode;\n /** Body explaining what is lost on close. */\n message?: ReactNode;\n /** Label of the button that proceeds with closing. */\n confirmLabel?: string;\n /** Label of the button that dismisses the prompt and keeps the modal open. */\n cancelLabel?: string;\n};\n\nexport type ModalProps = {\n /** Controls whether the modal is mounted. */\n open: boolean;\n /** Called when the modal requests to close. */\n onClose: () => void;\n /**\n * Guard every close path (close button, Escape, backdrop) behind a discard\n * confirmation. `true` uses the default copy; pass options to customise it.\n * `onClose` only fires once the user confirms. Set this while the modal holds\n * unsaved edits and clear it (or pass `false`) once there is nothing to lose.\n */\n confirmClose?: boolean | ConfirmCloseOptions;\n /** Header title and accessible dialog label when it is a string. */\n title?: ReactNode;\n /**\n * Secondary header content rendered on its own row directly beneath the title.\n * The title stays a single row alongside the expand/close buttons, so a tall\n * subtitle (e.g. a tab switcher) never pushes those buttons down.\n */\n subtitle?: ReactNode;\n /** Width/height preset for the dialog. */\n size?: ModalSize;\n /** Close when the backdrop is clicked. Off by default; close via Escape or the close button. */\n closeOnBackdrop?: boolean;\n /** Close when Escape is pressed. */\n closeOnEsc?: boolean;\n /** Hide the close button. */\n hideClose?: boolean;\n /** Show an expand/restore button. */\n expandable?: boolean;\n /** Classes applied to the dialog panel. */\n className?: string;\n /** Extra header content rendered before the expand/close buttons. */\n headerSlot?: ReactNode;\n /** Footer content pinned below the scrollable body. */\n footer?: ReactNode;\n /**\n * Whether the body scrolls its overflow. Default `true`. Set `false` when the\n * body owns a single fill-height child that scrolls internally (e.g. a\n * DataTable with a sticky header): the body becomes a non-scrolling flex\n * column, so only that child's own scroll region moves.\n */\n scrollBody?: boolean;\n /** Modal body content. */\n children: ReactNode;\n};\n\nconst sizeClass: Record<ModalSize, string> = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n \"2xl\": \"max-w-6xl\",\n full: \"max-w-[95vw]\",\n};\n\nconst DEFAULT_CONFIRM: Required<ConfirmCloseOptions> = {\n title: \"Discard changes?\",\n message: \"You have unsaved changes. Closing now will discard them.\",\n confirmLabel: \"Discard\",\n cancelLabel: \"Keep editing\",\n};\n\nexport function Modal({\n open,\n onClose,\n confirmClose = false,\n title,\n subtitle,\n size = \"md\",\n closeOnBackdrop = false,\n closeOnEsc = true,\n hideClose = false,\n expandable = true,\n className,\n headerSlot,\n footer,\n scrollBody = true,\n children,\n}: ModalProps) {\n const dialogRef = useRef<HTMLDivElement>(null);\n const { depth } = useModalStack(open);\n const [expanded, setExpanded] = useState(false);\n // When confirmClose is active, a close request opens this prompt instead of\n // closing outright; onClose only fires once the user confirms the discard.\n const [confirming, setConfirming] = useState(false);\n\n // requestClose is the single entry point for every close affordance. With the\n // guard on, it surfaces the confirmation; otherwise it closes immediately.\n const requestClose = () => {\n if (confirmClose) setConfirming(true);\n else onClose();\n };\n\n useEffect(() => {\n if (!open) {\n setExpanded(false);\n setConfirming(false);\n }\n }, [open]);\n\n // A close guard that disappears mid-prompt (changes saved/reverted) should\n // not leave a stale confirmation dialog up.\n useEffect(() => {\n if (!confirmClose) setConfirming(false);\n }, [confirmClose]);\n\n useEscapeLayer(\n open,\n () => {\n // While the prompt is up, Escape dismisses the prompt rather than the modal.\n if (confirming) setConfirming(false);\n else requestClose();\n },\n closeOnEsc,\n );\n\n useEffect(() => {\n if (!open) return;\n const prev = document.activeElement as HTMLElement | null;\n dialogRef.current?.focus();\n return () => prev?.focus?.();\n }, [open]);\n\n if (!open) return null;\n\n const overlay = (\n <div\n className={cn(\n \"fixed inset-0 flex items-center justify-center p-density-2 sm:p-density-4\",\n // Nested modals dim less so the dialog they opened over stays visible.\n depth === 0 ? \"bg-black/40\" : \"bg-black/20\",\n )}\n // Sits in the modal band of the centralized z-index scale; +depth keeps\n // nested modals above their parent. Floating content (dropdowns, tooltips)\n // computes its z relative to this via useFloatingZIndex so it clears the\n // modal instead of rendering behind it.\n style={{ zIndex: zIndex.modal + depth * zIndex.modalStep }}\n onClick={closeOnBackdrop ? requestClose : undefined}\n role=\"presentation\"\n >\n <div\n ref={dialogRef}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof title === \"string\" ? title : undefined}\n className={cn(\n \"relative flex w-full flex-col overflow-hidden rounded-lg border border-border bg-background shadow-xl\",\n expanded ? sizeClass.full : sizeClass[size],\n className,\n )}\n // Inline maxHeight (not an arbitrary Tailwind class) so the panel stays\n // viewport-bounded even when a consumer's Tailwind build can't generate\n // the dvh utility — e.g. www aliases clicky-ui to source but scans the\n // published dist. When expanded, fill the viewport.\n style={{\n maxHeight: \"calc(100dvh - 2rem)\",\n ...(expanded ? { height: \"calc(100dvh - 2rem)\" } : {}),\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {(title || subtitle || headerSlot || expandable || !hideClose) && (\n <div className=\"shrink-0 px-density-4 py-density-3 border-b border-border\">\n <div className=\"flex items-center gap-density-2\">\n {title ? (\n <h2 className=\"text-sm font-semibold flex-1\">{title}</h2>\n ) : (\n <span className=\"flex-1\" />\n )}\n {headerSlot}\n {expandable && (\n <button\n type=\"button\"\n onClick={() => setExpanded((v) => !v)}\n aria-label={\n expanded ? \"Restore size\" : \"Expand to fullscreen\"\n }\n className=\"text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={expanded ? UiFullscreenFilled : UiFullscreen} />\n </button>\n )}\n {!hideClose && (\n <button\n type=\"button\"\n onClick={requestClose}\n aria-label=\"Close\"\n className=\"text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={UiClose} />\n </button>\n )}\n </div>\n {subtitle ? <div className=\"mt-density-2\">{subtitle}</div> : null}\n </div>\n )}\n <div\n data-slot=\"modal-body\"\n className={cn(\n \"min-h-0 flex-1 px-density-4 py-density-3\",\n scrollBody\n ? \"overflow-auto\"\n : \"flex flex-col overflow-hidden\",\n )}\n >\n {children}\n </div>\n {footer && (\n <div\n data-slot=\"modal-footer\"\n className=\"shrink-0 px-density-4 py-density-3 border-t border-border\"\n >\n {footer}\n </div>\n )}\n {confirming && (\n <ConfirmClosePrompt\n options={\n confirmClose === true\n ? DEFAULT_CONFIRM\n : { ...DEFAULT_CONFIRM, ...confirmClose }\n }\n onConfirm={() => {\n setConfirming(false);\n onClose();\n }}\n onCancel={() => setConfirming(false)}\n />\n )}\n </div>\n </div>\n );\n\n // Render into document.body so the fixed-position overlay escapes any ancestor\n // transform/overflow (e.g. a dropdown menu positioned via a CSS transform),\n // which would otherwise trap position:fixed inside that ancestor's box and clip\n // the modal to it.\n return typeof document !== \"undefined\"\n ? createPortal(overlay, document.body)\n : null;\n}\n\nfunction ConfirmClosePrompt({\n options,\n onConfirm,\n onCancel,\n}: {\n options: Required<ConfirmCloseOptions>;\n onConfirm: () => void;\n onCancel: () => void;\n}) {\n return (\n <div\n className=\"absolute inset-0 z-10 flex items-center justify-center rounded-lg bg-background/80 p-density-4\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-label={\n typeof options.title === \"string\" ? options.title : \"Confirm close\"\n }\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"w-full max-w-sm rounded-lg border border-border bg-background p-density-4 shadow-xl\">\n <h3 className=\"text-sm font-semibold\">{options.title}</h3>\n <p className=\"mt-density-2 text-sm text-muted-foreground\">\n {options.message}\n </p>\n <div className=\"mt-density-4 flex justify-end gap-density-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={onCancel}>\n {options.cancelLabel}\n </Button>\n <Button variant=\"destructive\" size=\"sm\" onClick={onConfirm}>\n {options.confirmLabel}\n </Button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["useRef","useModalStack","useState","useEffect","useEscapeLayer","_a","jsx","cn","zIndex","jsxs","Icon","UiFullscreenFilled","UiFullscreen","UiClose","createPortal","Button"],"mappings":";;;;;;;;;;;;AAsEA,MAAM,YAAuC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AACR;AAEA,MAAM,kBAAiD;AAAA,EACrD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AACf;AAEO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,GAAe;AACb,QAAM,YAAYA,MAAAA,OAAuB,IAAI;AAC7C,QAAM,EAAE,MAAA,IAAUC,WAAAA,cAAc,IAAI;AACpC,QAAM,CAAC,UAAU,WAAW,IAAIC,MAAAA,SAAS,KAAK;AAG9C,QAAM,CAAC,YAAY,aAAa,IAAIA,MAAAA,SAAS,KAAK;AAIlD,QAAM,eAAe,MAAM;AACzB,QAAI,4BAA4B,IAAI;AAAA,QAC/B,SAAA;AAAA,EACP;AAEAC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,MAAM;AACT,kBAAY,KAAK;AACjB,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAITA,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,aAAc,eAAc,KAAK;AAAA,EACxC,GAAG,CAAC,YAAY,CAAC;AAEjBC,aAAAA;AAAAA,IACE;AAAA,IACA,MAAM;AAEJ,UAAI,0BAA0B,KAAK;AAAA,UAC9B,cAAA;AAAA,IACP;AAAA,IACA;AAAA,EAAA;AAGFD,QAAAA,UAAU,MAAM;;AACd,QAAI,CAAC,KAAM;AACX,UAAM,OAAO,SAAS;AACtB,oBAAU,YAAV,mBAAmB;AACnB,WAAO,MAAA;;AAAM,cAAAE,MAAA,6BAAM,UAAN,gBAAAA,IAAA;AAAA;AAAA,EACf,GAAG,CAAC,IAAI,CAAC;AAET,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,UACJC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,MAAAA;AAAAA,QACT;AAAA;AAAA,QAEA,UAAU,IAAI,gBAAgB;AAAA,MAAA;AAAA,MAMhC,OAAO,EAAE,QAAQC,OAAAA,OAAO,QAAQ,QAAQA,OAAAA,OAAO,UAAA;AAAA,MAC/C,SAAS,kBAAkB,eAAe;AAAA,MAC1C,MAAK;AAAA,MAEL,UAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK;AAAA,UACL,UAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAW;AAAA,UACX,cAAY,OAAO,UAAU,WAAW,QAAQ;AAAA,UAChD,WAAWF,MAAAA;AAAAA,YACT;AAAA,YACA,WAAW,UAAU,OAAO,UAAU,IAAI;AAAA,YAC1C;AAAA,UAAA;AAAA,UAMF,OAAO;AAAA,YACL,WAAW;AAAA,YACX,GAAI,WAAW,EAAE,QAAQ,0BAA0B,CAAA;AAAA,UAAC;AAAA,UAEtD,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,UAEhB,UAAA;AAAA,aAAA,SAAS,YAAY,cAAc,cAAc,CAAC,cAClDE,2BAAAA,KAAC,OAAA,EAAI,WAAU,6DACb,UAAA;AAAA,cAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,mCACZ,UAAA;AAAA,gBAAA,QACCH,2BAAAA,IAAC,QAAG,WAAU,gCAAgC,iBAAM,IAEpDA,2BAAAA,IAAC,QAAA,EAAK,WAAU,SAAA,CAAS;AAAA,gBAE1B;AAAA,gBACA,cACCA,2BAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;AAAA,oBACpC,cACE,WAAW,iBAAiB;AAAA,oBAE9B,WAAU;AAAA,oBAEV,UAAAA,2BAAAA,IAACI,WAAA,EAAK,MAAM,WAAWC,aAAAA,qBAAqBC,0BAAA,CAAc;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAG7D,CAAC,aACAN,2BAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,SAAS;AAAA,oBACT,cAAW;AAAA,oBACX,WAAU;AAAA,oBAEV,UAAAA,2BAAAA,IAACI,KAAAA,MAAA,EAAK,MAAMG,QAAAA,QAAA,CAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACvB,GAEJ;AAAA,cACC,WAAWP,2BAAAA,IAAC,OAAA,EAAI,WAAU,gBAAgB,oBAAS,IAAS;AAAA,YAAA,GAC/D;AAAA,YAEFA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,aAAU;AAAA,gBACV,WAAWC,MAAAA;AAAAA,kBACT;AAAA,kBACA,aACI,kBACA;AAAA,gBAAA;AAAA,gBAGL;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,UACCD,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,aAAU;AAAA,gBACV,WAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJ,cACCA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SACE,iBAAiB,OACb,kBACA,EAAE,GAAG,iBAAiB,GAAG,aAAA;AAAA,gBAE/B,WAAW,MAAM;AACf,gCAAc,KAAK;AACnB,0BAAA;AAAA,gBACF;AAAA,gBACA,UAAU,MAAM,cAAc,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UACrC;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAQJ,SAAO,OAAO,aAAa,cACvBQ,SAAAA,aAAa,SAAS,SAAS,IAAI,IACnC;AACN;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACER,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,cAAW;AAAA,MACX,cACE,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ;AAAA,MAEtD,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,MAElB,UAAAG,2BAAAA,KAAC,OAAA,EAAI,WAAU,uFACb,UAAA;AAAA,QAAAH,2BAAAA,IAAC,MAAA,EAAG,WAAU,yBAAyB,UAAA,QAAQ,OAAM;AAAA,QACrDA,2BAAAA,IAAC,KAAA,EAAE,WAAU,8CACV,kBAAQ,SACX;AAAA,QACAG,2BAAAA,KAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,UAAAH,2BAAAA,IAACS,OAAAA,QAAA,EAAO,SAAQ,SAAQ,MAAK,MAAK,SAAS,UACxC,kBAAQ,YAAA,CACX;AAAA,UACAT,2BAAAA,IAACS,OAAAA,UAAO,SAAQ,eAAc,MAAK,MAAK,SAAS,WAC9C,UAAA,QAAQ,aAAA,CACX;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"Modal.cjs","sources":["../../src/overlay/Modal.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport { Button } from \"../components/button\";\nimport {\n UiArrowLeft,\n UiClose,\n UiFullscreen,\n UiFullscreenFilled,\n} from \"../icons\";\nimport { useEscapeLayer, useModalStack } from \"./modalStack\";\nimport { zIndex } from \"./zIndex\";\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\n/** Copy for the discard-confirmation prompt shown before a guarded close. */\nexport type ConfirmCloseOptions = {\n /** Heading of the confirmation prompt. */\n title?: ReactNode;\n /** Body explaining what is lost on close. */\n message?: ReactNode;\n /** Label of the button that proceeds with closing. */\n confirmLabel?: string;\n /** Label of the button that dismisses the prompt and keeps the modal open. */\n cancelLabel?: string;\n};\n\nexport type ModalProps = {\n /** Controls whether the modal is mounted. */\n open: boolean;\n /** Called when the modal requests to close. */\n onClose: () => void;\n /**\n * Guard every close path (close button, Escape, backdrop) behind a discard\n * confirmation. `true` uses the default copy; pass options to customise it.\n * `onClose` only fires once the user confirms. Set this while the modal holds\n * unsaved edits and clear it (or pass `false`) once there is nothing to lose.\n */\n confirmClose?: boolean | ConfirmCloseOptions;\n /** Header title and accessible dialog label when it is a string. */\n title?: ReactNode;\n /**\n * Secondary header content rendered on its own row directly beneath the title.\n * The title stays a single row alongside the expand/close buttons, so a tall\n * subtitle (e.g. a tab switcher) never pushes those buttons down.\n */\n subtitle?: ReactNode;\n /** Width/height preset for the dialog. */\n size?: ModalSize;\n /** Close when the backdrop is clicked. Off by default; close via Escape or the close button. */\n closeOnBackdrop?: boolean;\n /** Close when Escape is pressed. */\n closeOnEsc?: boolean;\n /** Hide the close button. */\n hideClose?: boolean;\n /** Show an expand/restore button. */\n expandable?: boolean;\n /** Classes applied to the dialog panel. */\n className?: string;\n /** Extra header content rendered before the expand/close buttons. */\n headerSlot?: ReactNode;\n /** Footer content pinned below the scrollable body. */\n footer?: ReactNode;\n /**\n * Whether the body scrolls its overflow. Default `true`. Set `false` when the\n * body owns a single fill-height child that scrolls internally (e.g. a\n * DataTable with a sticky header): the body becomes a non-scrolling flex\n * column, so only that child's own scroll region moves.\n */\n scrollBody?: boolean;\n /** Modal body content. */\n children: ReactNode;\n};\n\nconst sizeClass: Record<ModalSize, string> = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n \"2xl\": \"max-w-6xl\",\n full: \"max-w-[95vw]\",\n};\n\nconst DEFAULT_CONFIRM: Required<ConfirmCloseOptions> = {\n title: \"Discard changes?\",\n message: \"You have unsaved changes. Closing now will discard them.\",\n confirmLabel: \"Discard\",\n cancelLabel: \"Keep editing\",\n};\n\nconst MOBILE_QUERY = \"(max-width: 639px)\";\nconst REDUCED_MOTION_QUERY = \"(prefers-reduced-motion: reduce)\";\nconst MOBILE_TRANSITION_MS = 200;\nconst FOCUSABLE_SELECTOR = [\n \"a[href]\",\n \"button:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n].join(\",\");\n\nfunction visibleFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(\n container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => {\n const style = window.getComputedStyle(element);\n return (\n !element.hidden &&\n style.display !== \"none\" &&\n style.visibility !== \"hidden\"\n );\n });\n}\n\nexport function Modal({\n open,\n onClose,\n confirmClose = false,\n title,\n subtitle,\n size = \"md\",\n closeOnBackdrop = false,\n closeOnEsc = true,\n hideClose = false,\n expandable = true,\n className,\n headerSlot,\n footer,\n scrollBody = true,\n children,\n}: ModalProps) {\n const dialogRef = useRef<HTMLDivElement>(null);\n const closeTimerRef = useRef<number | undefined>(undefined);\n const openFrameRef = useRef<number | undefined>(undefined);\n const [present, setPresent] = useState(open);\n const [mobileVisible, setMobileVisible] = useState(false);\n const { depth } = useModalStack(present);\n const [expanded, setExpanded] = useState(false);\n // When confirmClose is active, a close request opens this prompt instead of\n // closing outright; onClose only fires once the user confirms the discard.\n const [confirming, setConfirming] = useState(false);\n\n // requestClose is the single entry point for every close affordance. With the\n // guard on, it surfaces the confirmation; otherwise it closes immediately.\n const requestClose = () => {\n if (confirmClose) setConfirming(true);\n else onClose();\n };\n\n useEffect(() => {\n window.clearTimeout(closeTimerRef.current);\n window.cancelAnimationFrame(openFrameRef.current ?? 0);\n const animateMobile =\n window.matchMedia(MOBILE_QUERY).matches &&\n !window.matchMedia(REDUCED_MOTION_QUERY).matches;\n\n if (open) {\n setPresent(true);\n if (animateMobile) {\n setMobileVisible(false);\n openFrameRef.current = window.requestAnimationFrame(() => {\n setMobileVisible(true);\n });\n } else {\n setMobileVisible(true);\n }\n } else if (animateMobile) {\n setMobileVisible(false);\n closeTimerRef.current = window.setTimeout(\n () => setPresent(false),\n MOBILE_TRANSITION_MS,\n );\n } else {\n setMobileVisible(false);\n setPresent(false);\n }\n\n return () => {\n window.clearTimeout(closeTimerRef.current);\n window.cancelAnimationFrame(openFrameRef.current ?? 0);\n };\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n setExpanded(false);\n setConfirming(false);\n }\n }, [open]);\n\n // A close guard that disappears mid-prompt (changes saved/reverted) should\n // not leave a stale confirmation dialog up.\n useEffect(() => {\n if (!confirmClose) setConfirming(false);\n }, [confirmClose]);\n\n useEscapeLayer(present, () => {\n if (!open || !closeOnEsc) return;\n // While the prompt is up, Escape dismisses the prompt rather than the modal.\n if (confirming) setConfirming(false);\n else requestClose();\n });\n\n useEffect(() => {\n if (!open) return;\n const prev = document.activeElement as HTMLElement | null;\n dialogRef.current?.focus();\n return () => prev?.focus?.();\n }, [open]);\n\n if (!present) return null;\n\n const overlay = (\n <div\n className={cn(\n \"fixed inset-0 flex items-center justify-center p-density-2 sm:p-density-4 max-sm:items-stretch max-sm:justify-end max-sm:p-0 max-sm:!bg-transparent\",\n // Nested modals dim less so the dialog they opened over stays visible.\n depth === 0 ? \"bg-black/40\" : \"bg-black/20\",\n )}\n // Sits in the modal band of the centralized z-index scale; +depth keeps\n // nested modals above their parent. Floating content (dropdowns, tooltips)\n // computes its z relative to this via useFloatingZIndex so it clears the\n // modal instead of rendering behind it.\n style={{ zIndex: zIndex.modal + depth * zIndex.modalStep }}\n onClick={closeOnBackdrop ? requestClose : undefined}\n role=\"presentation\"\n >\n <div\n ref={dialogRef}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof title === \"string\" ? title : undefined}\n data-state={mobileVisible ? \"open\" : \"closed\"}\n className={cn(\n \"relative flex w-full flex-col overflow-hidden rounded-lg border border-border bg-background shadow-xl\",\n \"max-sm:!h-dvh max-sm:!max-h-dvh max-sm:!max-w-none max-sm:!rounded-none max-sm:!border-0 max-sm:shadow-none\",\n \"max-sm:transition-transform max-sm:duration-200 max-sm:ease-out max-sm:motion-reduce:transition-none\",\n \"max-sm:data-[state=closed]:translate-x-full max-sm:data-[state=open]:translate-x-0\",\n expanded ? sizeClass.full : sizeClass[size],\n className,\n )}\n // Inline maxHeight (not an arbitrary Tailwind class) so the panel stays\n // viewport-bounded even when a consumer's Tailwind build can't generate\n // the dvh utility — e.g. www aliases clicky-ui to source but scans the\n // published dist. When expanded, fill the viewport.\n style={{\n maxHeight: \"calc(100dvh - 2rem)\",\n ...(expanded ? { height: \"calc(100dvh - 2rem)\" } : {}),\n }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(event) => {\n if (event.key !== \"Tab\") return;\n const scope = confirming\n ? dialogRef.current?.querySelector<HTMLElement>(\n \"[role='alertdialog']\",\n )\n : dialogRef.current;\n if (!scope) return;\n const focusable = visibleFocusableElements(scope);\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (!first || !last) {\n event.preventDefault();\n scope.focus();\n } else if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first.focus();\n }\n }}\n >\n {(title || subtitle || headerSlot || expandable || !hideClose) && (\n <div className=\"shrink-0 px-density-4 py-density-3 border-b border-border max-sm:min-h-14 max-sm:bg-background\">\n <div className=\"flex items-center gap-density-2\">\n {!hideClose && (\n <Button\n type=\"button\"\n onClick={requestClose}\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Back\"\n className=\"-ml-2 text-foreground sm:hidden\"\n >\n <Icon icon={UiArrowLeft} />\n </Button>\n )}\n {title ? (\n <h2 className=\"text-sm font-semibold flex-1 max-sm:text-base max-sm:leading-6\">\n {title}\n </h2>\n ) : (\n <span className=\"flex-1\" />\n )}\n {headerSlot}\n {expandable && (\n <button\n type=\"button\"\n onClick={() => setExpanded((v) => !v)}\n aria-label={\n expanded ? \"Restore size\" : \"Expand to fullscreen\"\n }\n className=\"text-muted-foreground hover:text-foreground max-sm:hidden\"\n >\n <Icon icon={expanded ? UiFullscreenFilled : UiFullscreen} />\n </button>\n )}\n {!hideClose && (\n <button\n type=\"button\"\n onClick={requestClose}\n aria-label=\"Close\"\n className=\"text-muted-foreground hover:text-foreground max-sm:hidden\"\n >\n <Icon icon={UiClose} />\n </button>\n )}\n </div>\n {subtitle ? <div className=\"mt-density-2\">{subtitle}</div> : null}\n </div>\n )}\n <div\n data-slot=\"modal-body\"\n className={cn(\n \"min-h-0 flex-1 px-density-4 py-density-3 max-sm:py-density-4\",\n scrollBody ? \"overflow-auto\" : \"flex flex-col overflow-hidden\",\n )}\n >\n {children}\n </div>\n {footer && (\n <div\n data-slot=\"modal-footer\"\n className=\"shrink-0 px-density-4 py-density-3 border-t border-border max-sm:py-density-4\"\n >\n {footer}\n </div>\n )}\n {confirming && (\n <ConfirmClosePrompt\n options={\n confirmClose === true\n ? DEFAULT_CONFIRM\n : { ...DEFAULT_CONFIRM, ...confirmClose }\n }\n onConfirm={() => {\n setConfirming(false);\n onClose();\n }}\n onCancel={() => setConfirming(false)}\n />\n )}\n </div>\n </div>\n );\n\n // Render into document.body so the fixed-position overlay escapes any ancestor\n // transform/overflow (e.g. a dropdown menu positioned via a CSS transform),\n // which would otherwise trap position:fixed inside that ancestor's box and clip\n // the modal to it.\n return typeof document !== \"undefined\"\n ? createPortal(overlay, document.body)\n : null;\n}\n\nfunction ConfirmClosePrompt({\n options,\n onConfirm,\n onCancel,\n}: {\n options: Required<ConfirmCloseOptions>;\n onConfirm: () => void;\n onCancel: () => void;\n}) {\n return (\n <div\n className=\"absolute inset-0 z-10 flex items-center justify-center rounded-lg bg-background/80 p-density-4 max-sm:rounded-none\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-label={\n typeof options.title === \"string\" ? options.title : \"Confirm close\"\n }\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"w-full max-w-sm rounded-lg border border-border bg-background p-density-4 shadow-xl\">\n <h3 className=\"text-sm font-semibold\">{options.title}</h3>\n <p className=\"mt-density-2 text-sm text-muted-foreground\">\n {options.message}\n </p>\n <div className=\"mt-density-4 flex justify-end gap-density-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={onCancel}>\n {options.cancelLabel}\n </Button>\n <Button variant=\"destructive\" size=\"sm\" onClick={onConfirm}>\n {options.confirmLabel}\n </Button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["useRef","useState","useModalStack","useEffect","useEscapeLayer","_a","jsx","cn","zIndex","jsxs","Button","Icon","UiArrowLeft","UiFullscreenFilled","UiFullscreen","UiClose","createPortal"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../../node_modules/@types/react/index.d.ts';
2
2
  export type ModalSize = "sm" | "md" | "lg" | "xl" | "2xl" | "full";
3
3
  /** Copy for the discard-confirmation prompt shown before a guarded close. */
4
4
  export type ConfirmCloseOptions = {
@@ -57,5 +57,5 @@ export type ModalProps = {
57
57
  /** Modal body content. */
58
58
  children: ReactNode;
59
59
  };
60
- export declare function Modal({ open, onClose, confirmClose, title, subtitle, size, closeOnBackdrop, closeOnEsc, hideClose, expandable, className, headerSlot, footer, scrollBody, children, }: ModalProps): import('react').ReactPortal | null;
60
+ export declare function Modal({ open, onClose, confirmClose, title, subtitle, size, closeOnBackdrop, closeOnEsc, hideClose, expandable, className, headerSlot, footer, scrollBody, children, }: ModalProps): import('../../../../node_modules/@types/react/index.d.ts').ReactPortal | null;
61
61
  //# sourceMappingURL=Modal.d.ts.map