@flanksource/clicky-ui 0.3.28 → 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 (852) hide show
  1. package/dist/comments/CommentAuthor.d.ts +1 -1
  2. package/dist/comments/CommentAuthor.d.ts.map +1 -1
  3. package/dist/comments/CommentCard.d.ts +2 -2
  4. package/dist/comments/CommentCard.d.ts.map +1 -1
  5. package/dist/comments/CommentComposer.d.ts +1 -1
  6. package/dist/comments/CommentComposer.d.ts.map +1 -1
  7. package/dist/comments/CommentFilterBar.d.ts +1 -1
  8. package/dist/comments/CommentFilterBar.d.ts.map +1 -1
  9. package/dist/comments/CommentMarkdown.d.ts +1 -1
  10. package/dist/comments/CommentMarkdown.d.ts.map +1 -1
  11. package/dist/comments/CommentProgress.d.ts +1 -1
  12. package/dist/comments/CommentProgress.d.ts.map +1 -1
  13. package/dist/comments/CommentProvider.d.ts +2 -2
  14. package/dist/comments/CommentProvider.d.ts.map +1 -1
  15. package/dist/comments/CommentSidePanel.d.ts +1 -1
  16. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  17. package/dist/comments/CommentThread.d.ts +2 -2
  18. package/dist/comments/CommentThread.d.ts.map +1 -1
  19. package/dist/comments/CommentThreadList.d.ts +2 -2
  20. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  21. package/dist/comments/GroupedComments.d.ts +1 -1
  22. package/dist/comments/GroupedComments.d.ts.map +1 -1
  23. package/dist/comments/MentionTextarea.d.ts +1 -1
  24. package/dist/comments/comment-context.d.ts +4 -4
  25. package/dist/comments/comment-fixtures.d.ts +1 -1
  26. package/dist/comments/comment-types.d.ts +1 -1
  27. package/dist/components/AccordionList.d.ts +2 -2
  28. package/dist/components/AccordionList.d.ts.map +1 -1
  29. package/dist/components/Combobox.cjs +6 -6
  30. package/dist/components/Combobox.cjs.map +1 -1
  31. package/dist/components/Combobox.d.ts +1 -1
  32. package/dist/components/Combobox.d.ts.map +1 -1
  33. package/dist/components/Combobox.js +2 -2
  34. package/dist/components/Combobox.js.map +1 -1
  35. package/dist/components/ComboboxActions.d.ts +1 -1
  36. package/dist/components/ComboboxActions.d.ts.map +1 -1
  37. package/dist/components/ComboboxControl.cjs +3 -2
  38. package/dist/components/ComboboxControl.cjs.map +1 -1
  39. package/dist/components/ComboboxControl.d.ts +5 -5
  40. package/dist/components/ComboboxControl.d.ts.map +1 -1
  41. package/dist/components/ComboboxControl.js +2 -1
  42. package/dist/components/ComboboxControl.js.map +1 -1
  43. package/dist/components/ComboboxMenu.cjs +154 -134
  44. package/dist/components/ComboboxMenu.cjs.map +1 -1
  45. package/dist/components/ComboboxMenu.d.ts +4 -4
  46. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  47. package/dist/components/ComboboxMenu.js +154 -134
  48. package/dist/components/ComboboxMenu.js.map +1 -1
  49. package/dist/components/ComboboxTags.d.ts +1 -1
  50. package/dist/components/ComboboxTags.d.ts.map +1 -1
  51. package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
  52. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -1
  53. package/dist/components/CopyButton.d.ts +1 -1
  54. package/dist/components/CopyButton.d.ts.map +1 -1
  55. package/dist/components/CountryFlag.d.ts +1 -1
  56. package/dist/components/CountryFlag.d.ts.map +1 -1
  57. package/dist/components/CountryPicker.d.ts +1 -1
  58. package/dist/components/CountryPicker.d.ts.map +1 -1
  59. package/dist/components/DaemonSetIcon.d.ts +1 -1
  60. package/dist/components/DaemonSetIcon.d.ts.map +1 -1
  61. package/dist/components/DateField.d.ts +3 -3
  62. package/dist/components/DatePicker.d.ts +3 -3
  63. package/dist/components/DateTimePicker.d.ts +3 -3
  64. package/dist/components/DimensionField.d.ts +1 -1
  65. package/dist/components/DimensionField.d.ts.map +1 -1
  66. package/dist/components/EndpointSelector.d.ts +1 -1
  67. package/dist/components/EndpointSelector.d.ts.map +1 -1
  68. package/dist/components/ErrorWrapper.d.ts +2 -2
  69. package/dist/components/Field.d.ts +2 -2
  70. package/dist/components/Field.d.ts.map +1 -1
  71. package/dist/components/FilterBar.cjs +100 -85
  72. package/dist/components/FilterBar.cjs.map +1 -1
  73. package/dist/components/FilterBar.d.ts +4 -4
  74. package/dist/components/FilterBar.d.ts.map +1 -1
  75. package/dist/components/FilterBar.js +101 -86
  76. package/dist/components/FilterBar.js.map +1 -1
  77. package/dist/components/FormLookupProvider.d.ts +2 -2
  78. package/dist/components/FormLookupProvider.d.ts.map +1 -1
  79. package/dist/components/FormatOptionsDropdown.d.ts +2 -2
  80. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  81. package/dist/components/IconButton.d.ts +3 -3
  82. package/dist/components/InputField.d.ts +2 -2
  83. package/dist/components/ItemActions.d.ts +2 -2
  84. package/dist/components/ItemActions.d.ts.map +1 -1
  85. package/dist/components/JSONPathField.d.ts +1 -1
  86. package/dist/components/JSONPathField.d.ts.map +1 -1
  87. package/dist/components/JSONPathPlayground.d.ts +1 -1
  88. package/dist/components/JSONPathPlayground.d.ts.map +1 -1
  89. package/dist/components/JsonSchemaForm.d.ts +1 -1
  90. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  91. package/dist/components/ListMenu.d.ts +6 -6
  92. package/dist/components/ListMenu.d.ts.map +1 -1
  93. package/dist/components/MdxEditorCallout.d.ts +2 -2
  94. package/dist/components/MdxEditorCallout.d.ts.map +1 -1
  95. package/dist/components/MdxEditorField.d.ts +1 -1
  96. package/dist/components/MdxEditorField.d.ts.map +1 -1
  97. package/dist/components/MdxEditorToolbar.d.ts +1 -1
  98. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  99. package/dist/components/MultiSelect.d.ts +2 -2
  100. package/dist/components/MultiSelect.d.ts.map +1 -1
  101. package/dist/components/NamespacePicker.d.ts +1 -1
  102. package/dist/components/NamespacePicker.d.ts.map +1 -1
  103. package/dist/components/OnePasswordSelector.d.ts +1 -1
  104. package/dist/components/OnePasswordSelector.d.ts.map +1 -1
  105. package/dist/components/RangeSlider.d.ts +1 -1
  106. package/dist/components/RangeSlider.d.ts.map +1 -1
  107. package/dist/components/SearchInput.d.ts +2 -2
  108. package/dist/components/SearchInput.d.ts.map +1 -1
  109. package/dist/components/SecretFormField.d.ts +1 -1
  110. package/dist/components/SecretFormField.d.ts.map +1 -1
  111. package/dist/components/SecretKeySelector.d.ts +1 -1
  112. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  113. package/dist/components/SegmentedControl.d.ts +2 -2
  114. package/dist/components/SegmentedControl.d.ts.map +1 -1
  115. package/dist/components/SplitButton.d.ts +2 -2
  116. package/dist/components/SplitButton.d.ts.map +1 -1
  117. package/dist/components/Switch.d.ts +2 -2
  118. package/dist/components/Switch.d.ts.map +1 -1
  119. package/dist/components/TimeRange.d.ts +1 -1
  120. package/dist/components/TimeRange.d.ts.map +1 -1
  121. package/dist/components/TreePickerField.d.ts +2 -2
  122. package/dist/components/TreePickerField.d.ts.map +1 -1
  123. package/dist/components/TriStateToggle.d.ts +1 -1
  124. package/dist/components/TriStateToggle.d.ts.map +1 -1
  125. package/dist/components/UnitStepControls.d.ts +2 -2
  126. package/dist/components/UnitStepControls.d.ts.map +1 -1
  127. package/dist/components/WorkloadPicker.d.ts +1 -1
  128. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  129. package/dist/components/button.d.ts +3 -3
  130. package/dist/components/combobox-types.d.ts +1 -1
  131. package/dist/components/density-switcher.d.ts +1 -1
  132. package/dist/components/filter-bar-context.d.ts +1 -1
  133. package/dist/components/filter-bar-field-utils.d.ts +2 -2
  134. package/dist/components/filter-bar-field-utils.js +1 -1
  135. package/dist/components/filter-bar-multi.d.ts +3 -3
  136. package/dist/components/filter-bar-multi.d.ts.map +1 -1
  137. package/dist/components/form-lookup-context.d.ts +1 -1
  138. package/dist/components/icon-menu-picker.cjs.map +1 -1
  139. package/dist/components/icon-menu-picker.d.ts +2 -2
  140. package/dist/components/icon-menu-picker.d.ts.map +1 -1
  141. package/dist/components/icon-menu-picker.js.map +1 -1
  142. package/dist/components/jotai-bindings.d.ts +2 -2
  143. package/dist/components/jotai-bindings.d.ts.map +1 -1
  144. package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
  145. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  146. package/dist/components/json-schema-form-array.d.ts +1 -1
  147. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  148. package/dist/components/json-schema-form-cards-array.d.ts +1 -1
  149. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  150. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  151. package/dist/components/json-schema-form-error-display.d.ts +3 -3
  152. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  153. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  154. package/dist/components/json-schema-form-fields.d.ts +12 -12
  155. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  156. package/dist/components/json-schema-form-grid.d.ts +1 -1
  157. package/dist/components/json-schema-form-grid.d.ts.map +1 -1
  158. package/dist/components/json-schema-form-item-row.d.ts +4 -4
  159. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  160. package/dist/components/json-schema-form-layout.d.ts +6 -6
  161. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  162. package/dist/components/json-schema-form-list-array.d.ts +1 -1
  163. package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
  164. package/dist/components/json-schema-form-lookup-tree.d.ts +1 -1
  165. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  166. package/dist/components/json-schema-form-object.d.ts +2 -2
  167. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  168. package/dist/components/json-schema-form-render.d.ts +1 -1
  169. package/dist/components/json-schema-form-table-array.d.ts +1 -1
  170. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  171. package/dist/components/json-schema-form-tags-combobox.cjs +2 -2
  172. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -1
  173. package/dist/components/json-schema-form-tags-combobox.d.ts +1 -1
  174. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -1
  175. package/dist/components/json-schema-form-tags-combobox.js +1 -1
  176. package/dist/components/json-schema-form-tags-combobox.js.map +1 -1
  177. package/dist/components/json-schema-form-template-menu.d.ts +2 -2
  178. package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
  179. package/dist/components/json-schema-form-template.d.ts +1 -1
  180. package/dist/components/json-schema-form-types.d.ts +1 -1
  181. package/dist/components/loading.d.ts +4 -4
  182. package/dist/components/mdx-editor-callout.d.ts +1 -1
  183. package/dist/components/mdx-editor-options.d.ts +1 -1
  184. package/dist/components/select.d.ts +3 -3
  185. package/dist/components/theme-switcher.d.ts +1 -1
  186. package/dist/components/use-list-menu-selection.d.ts +1 -1
  187. package/dist/components/useComboboxLayout.cjs +37 -27
  188. package/dist/components/useComboboxLayout.cjs.map +1 -1
  189. package/dist/components/useComboboxLayout.d.ts +4 -4
  190. package/dist/components/useComboboxLayout.d.ts.map +1 -1
  191. package/dist/components/useComboboxLayout.js +38 -28
  192. package/dist/components/useComboboxLayout.js.map +1 -1
  193. package/dist/components/workload-picker-utils.d.ts +1 -1
  194. package/dist/components.d.ts +1 -0
  195. package/dist/components.d.ts.map +1 -1
  196. package/dist/data/AnsiHtml.d.ts +1 -1
  197. package/dist/data/AnsiHtml.d.ts.map +1 -1
  198. package/dist/data/Avatar.d.ts +2 -2
  199. package/dist/data/Avatar.d.ts.map +1 -1
  200. package/dist/data/AvatarBadge.d.ts +2 -2
  201. package/dist/data/AvatarBadge.d.ts.map +1 -1
  202. package/dist/data/Badge.d.ts +2 -2
  203. package/dist/data/Badge.d.ts.map +1 -1
  204. package/dist/data/Callout.d.ts +2 -2
  205. package/dist/data/Callout.d.ts.map +1 -1
  206. package/dist/data/Clicky.d.ts +3 -3
  207. package/dist/data/Clicky.d.ts.map +1 -1
  208. package/dist/data/CodeBlock.cjs +1 -1
  209. package/dist/data/CodeBlock.cjs.map +1 -1
  210. package/dist/data/CodeBlock.d.ts +1 -1
  211. package/dist/data/CodeBlock.d.ts.map +1 -1
  212. package/dist/data/CodeBlock.js +1 -1
  213. package/dist/data/CodeBlock.js.map +1 -1
  214. package/dist/data/CodeDiff.d.ts +1 -1
  215. package/dist/data/CodeDiff.d.ts.map +1 -1
  216. package/dist/data/DataTable.cjs +63 -27
  217. package/dist/data/DataTable.cjs.map +1 -1
  218. package/dist/data/DataTable.d.ts +11 -2
  219. package/dist/data/DataTable.d.ts.map +1 -1
  220. package/dist/data/DataTable.grouping.d.ts +1 -1
  221. package/dist/data/DataTable.js +63 -27
  222. package/dist/data/DataTable.js.map +1 -1
  223. package/dist/data/DataTableGroupingControls.d.ts +1 -1
  224. package/dist/data/DataTableGroupingControls.d.ts.map +1 -1
  225. package/dist/data/ExecutionTree.d.ts +2 -2
  226. package/dist/data/ExecutionTree.d.ts.map +1 -1
  227. package/dist/data/FilterPill.d.ts +4 -4
  228. package/dist/data/FilterPill.d.ts.map +1 -1
  229. package/dist/data/FixtureEditor/FenceForm.d.ts +1 -1
  230. package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -1
  231. package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
  232. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  233. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +1 -1
  234. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -1
  235. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
  236. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -1
  237. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +2 -2
  238. package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -1
  239. package/dist/data/FixtureEditor/types.d.ts +1 -1
  240. package/dist/data/Gauge.d.ts +2 -2
  241. package/dist/data/Gauge.d.ts.map +1 -1
  242. package/dist/data/GaugeHoverCard.d.ts +2 -2
  243. package/dist/data/GaugeHoverCard.d.ts.map +1 -1
  244. package/dist/data/HighlightedTokens.d.ts +1 -1
  245. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  246. package/dist/data/Icon.cjs.map +1 -1
  247. package/dist/data/Icon.d.ts +3 -3
  248. package/dist/data/Icon.d.ts.map +1 -1
  249. package/dist/data/Icon.js.map +1 -1
  250. package/dist/data/JsonView.d.ts +1 -1
  251. package/dist/data/JsonView.d.ts.map +1 -1
  252. package/dist/data/KeyValueList.d.ts +2 -2
  253. package/dist/data/KeyValueList.d.ts.map +1 -1
  254. package/dist/data/LogDetails.d.ts +1 -1
  255. package/dist/data/LogDetails.d.ts.map +1 -1
  256. package/dist/data/LogViewer.d.ts +1 -1
  257. package/dist/data/LogViewer.d.ts.map +1 -1
  258. package/dist/data/LogsTable.d.ts +1 -1
  259. package/dist/data/LogsTable.d.ts.map +1 -1
  260. package/dist/data/Markdown.d.ts +1 -1
  261. package/dist/data/Markdown.d.ts.map +1 -1
  262. package/dist/data/MarkdownEditor.d.ts +2 -2
  263. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  264. package/dist/data/MatrixTable.d.ts +2 -2
  265. package/dist/data/MatrixTable.d.ts.map +1 -1
  266. package/dist/data/MethodBadge.d.ts +1 -1
  267. package/dist/data/MethodBadge.d.ts.map +1 -1
  268. package/dist/data/ObjectGraph.d.ts +2 -2
  269. package/dist/data/ObjectGraph.d.ts.map +1 -1
  270. package/dist/data/ProgressBar.d.ts +1 -1
  271. package/dist/data/ProgressBar.d.ts.map +1 -1
  272. package/dist/data/ProgressBars.d.ts +2 -2
  273. package/dist/data/ProgressBars.d.ts.map +1 -1
  274. package/dist/data/PromptBanner.d.ts +1 -1
  275. package/dist/data/PromptBanner.d.ts.map +1 -1
  276. package/dist/data/PromptDialog.d.ts +1 -1
  277. package/dist/data/PromptDialog.d.ts.map +1 -1
  278. package/dist/data/Properties.d.ts +2 -2
  279. package/dist/data/Properties.d.ts.map +1 -1
  280. package/dist/data/RadialGauge.d.ts +2 -2
  281. package/dist/data/RadialGauge.d.ts.map +1 -1
  282. package/dist/data/SchemaViewer.d.ts +4 -4
  283. package/dist/data/SchemaViewer.d.ts.map +1 -1
  284. package/dist/data/SelectionActionBar.cjs +7 -7
  285. package/dist/data/SelectionActionBar.cjs.map +1 -1
  286. package/dist/data/SelectionActionBar.d.ts +1 -1
  287. package/dist/data/SelectionActionBar.d.ts.map +1 -1
  288. package/dist/data/SelectionActionBar.js +7 -7
  289. package/dist/data/SelectionActionBar.js.map +1 -1
  290. package/dist/data/ServerTimingBadge.d.ts +1 -1
  291. package/dist/data/ServerTimingBadge.d.ts.map +1 -1
  292. package/dist/data/SignedDeltaBar.d.ts +1 -1
  293. package/dist/data/SignedDeltaBar.d.ts.map +1 -1
  294. package/dist/data/SortableHeader.d.ts +2 -2
  295. package/dist/data/SortableHeader.d.ts.map +1 -1
  296. package/dist/data/StatStrip.d.ts +2 -2
  297. package/dist/data/StatStrip.d.ts.map +1 -1
  298. package/dist/data/StatusBreakdown.d.ts +3 -3
  299. package/dist/data/StatusBreakdown.d.ts.map +1 -1
  300. package/dist/data/TabButton.d.ts +2 -2
  301. package/dist/data/TabButton.d.ts.map +1 -1
  302. package/dist/data/TaskExecDetails.d.ts +2 -2
  303. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  304. package/dist/data/TaskManager.d.ts +1 -1
  305. package/dist/data/TaskManager.d.ts.map +1 -1
  306. package/dist/data/TaskManagerButton.d.ts +1 -1
  307. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  308. package/dist/data/TaskProcessDetails.d.ts +1 -1
  309. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  310. package/dist/data/TaskProgress.d.ts +1 -1
  311. package/dist/data/TaskProgress.d.ts.map +1 -1
  312. package/dist/data/Timeline.d.ts +2 -2
  313. package/dist/data/Timeline.d.ts.map +1 -1
  314. package/dist/data/TimeseriesCoreBars.d.ts +1 -1
  315. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  316. package/dist/data/TimeseriesGauge.d.ts +1 -1
  317. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  318. package/dist/data/TimeseriesPanel.d.ts +1 -1
  319. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  320. package/dist/data/Tree.d.ts +2 -2
  321. package/dist/data/Tree.d.ts.map +1 -1
  322. package/dist/data/TreeGroupHeader.d.ts +2 -2
  323. package/dist/data/TreeGroupHeader.d.ts.map +1 -1
  324. package/dist/data/TreeNode.d.ts +2 -2
  325. package/dist/data/TreeNode.d.ts.map +1 -1
  326. package/dist/data/Version.d.ts +3 -3
  327. package/dist/data/WorkloadCard.d.ts +1 -1
  328. package/dist/data/WorkloadCard.d.ts.map +1 -1
  329. package/dist/data/ai/AdvancedChatConfig.d.ts +1 -1
  330. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
  331. package/dist/data/ai/AdvancedCostsPanel.d.ts +1 -1
  332. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -1
  333. package/dist/data/ai/ChatButton.d.ts +1 -1
  334. package/dist/data/ai/ChatButton.d.ts.map +1 -1
  335. package/dist/data/ai/ChatFab.d.ts +1 -1
  336. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  337. package/dist/data/ai/ChatWindow.d.ts +2 -2
  338. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  339. package/dist/data/ai/ChatWindow.test-utils.d.ts +1 -1
  340. package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
  341. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -1
  342. package/dist/data/ai/ChatWindow.types.d.ts +1 -1
  343. package/dist/data/ai/ChatWindowManager.d.ts +2 -2
  344. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  345. package/dist/data/ai/ContextBadges.d.ts +2 -2
  346. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  347. package/dist/data/ai/PolicyTree.d.ts +2 -2
  348. package/dist/data/ai/PolicyTree.d.ts.map +1 -1
  349. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +1 -1
  350. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -1
  351. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +1 -1
  352. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -1
  353. package/dist/data/ai/PromptCatalog/PromptPage.d.ts +1 -1
  354. package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -1
  355. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +1 -1
  356. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -1
  357. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +2 -2
  358. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -1
  359. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +1 -1
  360. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -1
  361. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +1 -1
  362. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -1
  363. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +1 -1
  364. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -1
  365. package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
  366. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +2 -2
  367. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  368. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
  369. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -1
  370. package/dist/data/ai/PromptRunEditor/index.d.ts +2 -2
  371. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  372. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  373. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  374. package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
  375. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -1
  376. package/dist/data/ai/SandboxCreateWizard.d.ts +1 -1
  377. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -1
  378. package/dist/data/ai/SessionChatComposer.d.ts +2 -2
  379. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
  380. package/dist/data/ai/SessionInspector.d.ts +2 -2
  381. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  382. package/dist/data/ai/SessionInspector.files.d.ts +1 -1
  383. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  384. package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
  385. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
  386. package/dist/data/ai/SessionInspector.panels.d.ts +1 -1
  387. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  388. package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
  389. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  390. package/dist/data/ai/SessionInspector.summary.d.ts +2 -2
  391. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  392. package/dist/data/ai/SessionInspector.transcript.d.ts +1 -1
  393. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  394. package/dist/data/ai/SessionInspector.turns.d.ts +2 -2
  395. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -1
  396. package/dist/data/ai/SessionViewer.d.ts +2 -2
  397. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  398. package/dist/data/ai/SessionViewer.header.d.ts +2 -2
  399. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
  400. package/dist/data/ai/SessionViewer.row-metadata.d.ts +3 -3
  401. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -1
  402. package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
  403. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  404. package/dist/data/ai/SessionViewer.tool-details.d.ts +5 -5
  405. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
  406. package/dist/data/ai/SessionViewer.tool-row.d.ts +1 -1
  407. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  408. package/dist/data/ai/SessionViewerMenu.d.ts +1 -1
  409. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  410. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +1 -1
  411. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -1
  412. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
  413. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  414. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
  415. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
  416. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +2 -2
  417. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -1
  418. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +1 -1
  419. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -1
  420. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +2 -2
  421. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  422. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +1 -1
  423. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -1
  424. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +1 -1
  425. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -1
  426. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +2 -2
  427. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
  428. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +1 -1
  429. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -1
  430. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +2 -2
  431. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  432. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +2 -2
  433. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -1
  434. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +1 -1
  435. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
  436. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +2 -2
  437. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
  438. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  439. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  440. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +1 -1
  441. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  442. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +12 -12
  443. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  444. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
  445. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  446. package/dist/data/ai/ThreadPicker.d.ts +1 -1
  447. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  448. package/dist/data/ai/ToolPreferences.d.ts +1 -1
  449. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  450. package/dist/data/ai/ToolPreferencesList.d.ts +2 -2
  451. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  452. package/dist/data/ai/ToolSchemaBrowser.d.ts +1 -1
  453. package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
  454. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +1 -1
  455. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -1
  456. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +1 -1
  457. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
  458. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +1 -1
  459. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -1
  460. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -1
  461. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
  462. package/dist/data/ai/chat-window-context.d.ts +1 -1
  463. package/dist/data/ai/use-session-scroll.d.ts +1 -1
  464. package/dist/data/cache-browser/CacheBrowser.d.ts +1 -1
  465. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  466. package/dist/data/cache-browser/CacheDetailPanel.d.ts +1 -1
  467. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
  468. package/dist/data/cache-browser/CacheStatsOverview.d.ts +1 -1
  469. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -1
  470. package/dist/data/cache-browser/CacheTree.d.ts +2 -2
  471. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -1
  472. package/dist/data/cache-browser/CacheValue.d.ts +1 -1
  473. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -1
  474. package/dist/data/cache-browser/adapter.d.ts +1 -1
  475. package/dist/data/cells/CellFilterActions.d.ts +2 -2
  476. package/dist/data/cells/CellFilterActions.d.ts.map +1 -1
  477. package/dist/data/cells/EntityCell.d.ts +2 -2
  478. package/dist/data/cells/EntityCell.d.ts.map +1 -1
  479. package/dist/data/cells/StatusDot.d.ts +1 -1
  480. package/dist/data/cells/StatusDot.d.ts.map +1 -1
  481. package/dist/data/cells/TagList.d.ts +3 -3
  482. package/dist/data/cells/TagList.d.ts.map +1 -1
  483. package/dist/data/cells/Timestamp.d.ts +1 -1
  484. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  485. package/dist/data/cells/tag-utils.d.ts +1 -1
  486. package/dist/data/chat/Attachment.d.ts +2 -2
  487. package/dist/data/chat/Attachment.d.ts.map +1 -1
  488. package/dist/data/chat/Chat.d.ts +1 -1
  489. package/dist/data/chat/Chat.d.ts.map +1 -1
  490. package/dist/data/chat/ChatRuntimeToolbar.d.ts +1 -1
  491. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
  492. package/dist/data/chat/ContextMeter.d.ts +1 -1
  493. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  494. package/dist/data/chat/Conversation.d.ts +1 -1
  495. package/dist/data/chat/Conversation.d.ts.map +1 -1
  496. package/dist/data/chat/Message.d.ts +1 -1
  497. package/dist/data/chat/Message.d.ts.map +1 -1
  498. package/dist/data/chat/MessageActions.d.ts +1 -1
  499. package/dist/data/chat/MessageActions.d.ts.map +1 -1
  500. package/dist/data/chat/ModelSelector.d.ts +5 -5
  501. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  502. package/dist/data/chat/PromptInput.d.ts +2 -2
  503. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  504. package/dist/data/chat/Reasoning.d.ts +1 -1
  505. package/dist/data/chat/Reasoning.d.ts.map +1 -1
  506. package/dist/data/chat/Suggestion.d.ts +1 -1
  507. package/dist/data/chat/Suggestion.d.ts.map +1 -1
  508. package/dist/data/chat/ToolCall.d.ts +1 -1
  509. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  510. package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
  511. package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
  512. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  513. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  514. package/dist/data/chat/tool-render/context.d.ts +1 -1
  515. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  516. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  517. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  518. package/dist/data/chat/types.d.ts +1 -1
  519. package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
  520. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -1
  521. package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
  522. package/dist/data/code-block-actions.d.ts +1 -1
  523. package/dist/data/code-block-actions.d.ts.map +1 -1
  524. package/dist/data/data-table-server-filters.d.ts +1 -1
  525. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +2 -2
  526. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  527. package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
  528. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
  529. package/dist/data/diagnostics/ErrorDetails.d.ts +4 -4
  530. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  531. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  532. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  533. package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
  534. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  535. package/dist/data/diagnostics/JvmStackTrace.d.ts +1 -1
  536. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  537. package/dist/data/diagnostics/RenderedStackTrace.d.ts +1 -1
  538. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  539. package/dist/data/diagnostics/StackFrameRow.d.ts +2 -2
  540. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
  541. package/dist/data/diagnostics/ThreadCard.d.ts +1 -1
  542. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  543. package/dist/data/git/GitChangeList.d.ts +5 -5
  544. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  545. package/dist/data/har/HarPanel.d.ts +1 -1
  546. package/dist/data/har/HarPanel.d.ts.map +1 -1
  547. package/dist/data/icon-fallback.d.ts +1 -1
  548. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  549. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  550. package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
  551. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
  552. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  553. package/dist/data/query-browser/QueryBrowserResults.d.ts +1 -1
  554. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  555. package/dist/data/runtime/ProviderStatusPanel.d.ts +1 -1
  556. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -1
  557. package/dist/data/runtime/RuntimeBar.d.ts +1 -1
  558. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  559. package/dist/data/runtime/RuntimeBarCombo.d.ts +1 -1
  560. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
  561. package/dist/data/runtime/RuntimeBarSegments.d.ts +1 -1
  562. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
  563. package/dist/data/test-runner/TestDetailPanel.d.ts +1 -1
  564. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  565. package/dist/data/test-runner/TestFailureDetail.d.ts +3 -3
  566. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  567. package/dist/data/test-runner/TestFilterBar.d.ts +1 -1
  568. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  569. package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
  570. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  571. package/dist/data/test-runner/TestRunner.d.ts +2 -2
  572. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  573. package/dist/data/test-runner/TestTree.d.ts +1 -1
  574. package/dist/data/test-runner/TestTree.d.ts.map +1 -1
  575. package/dist/data/test-runner/TestTreeNode.cjs +16 -11
  576. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  577. package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
  578. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  579. package/dist/data/test-runner/TestTreeNode.js +16 -11
  580. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  581. package/dist/data/test-runner/adapter.d.ts +1 -1
  582. package/dist/data/test-runner/context.d.ts +1 -1
  583. package/dist/data/version-info.cjs +3 -3
  584. package/dist/data/version-info.js +3 -3
  585. package/dist/devtools/DebugConsole.d.ts +1 -1
  586. package/dist/devtools/DebugConsole.d.ts.map +1 -1
  587. package/dist/devtools/DebugConsoleButton.d.ts +1 -1
  588. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -1
  589. package/dist/devtools/DebugConsoleDock.d.ts +1 -1
  590. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -1
  591. package/dist/devtools/ExecutionDetail.d.ts +1 -1
  592. package/dist/devtools/ExecutionDetail.d.ts.map +1 -1
  593. package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
  594. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -1
  595. package/dist/devtools/tabs/InspectionCaches.d.ts +1 -1
  596. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -1
  597. package/dist/devtools/tabs/InspectionTab.d.ts +1 -1
  598. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -1
  599. package/dist/devtools/tabs/NetworkTab.d.ts +1 -1
  600. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -1
  601. package/dist/devtools/tabs/QueriesTab.d.ts +1 -1
  602. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -1
  603. package/dist/hooks/density-provider.d.ts +3 -3
  604. package/dist/hooks/density-provider.d.ts.map +1 -1
  605. package/dist/hooks/theme-provider.d.ts +2 -2
  606. package/dist/hooks/theme-provider.d.ts.map +1 -1
  607. package/dist/hooks/use-density.d.ts +1 -1
  608. package/dist/hooks/use-theme.d.ts +1 -1
  609. package/dist/icons/registry.d.ts +1 -1
  610. package/dist/icons/types.d.ts +1 -1
  611. package/dist/layout/AppShell.cjs.map +1 -1
  612. package/dist/layout/AppShell.d.ts +10 -2
  613. package/dist/layout/AppShell.d.ts.map +1 -1
  614. package/dist/layout/AppShell.debug.d.ts +1 -1
  615. package/dist/layout/AppShell.debug.d.ts.map +1 -1
  616. package/dist/layout/AppShell.js.map +1 -1
  617. package/dist/layout/AppShell.nav.cjs +133 -76
  618. package/dist/layout/AppShell.nav.cjs.map +1 -1
  619. package/dist/layout/AppShell.nav.d.ts +1 -1
  620. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  621. package/dist/layout/AppShell.nav.drag.cjs +86 -0
  622. package/dist/layout/AppShell.nav.drag.cjs.map +1 -0
  623. package/dist/layout/AppShell.nav.drag.d.ts +52 -0
  624. package/dist/layout/AppShell.nav.drag.d.ts.map +1 -0
  625. package/dist/layout/AppShell.nav.drag.js +86 -0
  626. package/dist/layout/AppShell.nav.drag.js.map +1 -0
  627. package/dist/layout/AppShell.nav.js +133 -76
  628. package/dist/layout/AppShell.nav.js.map +1 -1
  629. package/dist/layout/AppSidebar.d.ts +3 -3
  630. package/dist/layout/AppSidebar.d.ts.map +1 -1
  631. package/dist/layout/Panel.d.ts +2 -2
  632. package/dist/layout/Panel.d.ts.map +1 -1
  633. package/dist/layout/PanelFrame.d.ts +2 -2
  634. package/dist/layout/PanelFrame.d.ts.map +1 -1
  635. package/dist/layout/Section.d.ts +3 -3
  636. package/dist/layout/Section.d.ts.map +1 -1
  637. package/dist/layout/SplitPane.d.ts +2 -2
  638. package/dist/layout/SplitPane.d.ts.map +1 -1
  639. package/dist/layout/Tabs.d.ts +2 -2
  640. package/dist/layout/Tabs.d.ts.map +1 -1
  641. package/dist/layout/Workspace.d.ts +2 -2
  642. package/dist/layout/Workspace.d.ts.map +1 -1
  643. package/dist/layout/Workspace.model.d.ts +1 -1
  644. package/dist/layout/Workspace.regions.d.ts +2 -2
  645. package/dist/layout/Workspace.regions.d.ts.map +1 -1
  646. package/dist/{components/combobox-utils.cjs → lib/combobox-values.cjs} +1 -5
  647. package/dist/lib/combobox-values.cjs.map +1 -0
  648. package/dist/{components/combobox-utils.d.ts → lib/combobox-values.d.ts} +3 -13
  649. package/dist/lib/combobox-values.d.ts.map +1 -0
  650. package/dist/{components/combobox-utils.js → lib/combobox-values.js} +1 -5
  651. package/dist/lib/combobox-values.js.map +1 -0
  652. package/dist/lib/combobox.cjs +93 -0
  653. package/dist/lib/combobox.cjs.map +1 -0
  654. package/dist/lib/combobox.d.ts +20 -0
  655. package/dist/lib/combobox.d.ts.map +1 -0
  656. package/dist/lib/combobox.js +93 -0
  657. package/dist/lib/combobox.js.map +1 -0
  658. package/dist/monaco/MonacoEditor.d.ts +1 -1
  659. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  660. package/dist/monaco/MonacoProvider.d.ts +1 -1
  661. package/dist/monaco/MonacoProvider.d.ts.map +1 -1
  662. package/dist/monaco/MonacoSchemaEditor.cjs +4 -4
  663. package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -1
  664. package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
  665. package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -1
  666. package/dist/monaco/MonacoSchemaEditor.js +4 -4
  667. package/dist/monaco/MonacoSchemaEditor.js.map +1 -1
  668. package/dist/monaco/types.d.ts +1 -1
  669. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  670. package/dist/overlay/CellActions.d.ts +3 -3
  671. package/dist/overlay/CellActions.d.ts.map +1 -1
  672. package/dist/overlay/CommandPalette.d.ts +2 -2
  673. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  674. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  675. package/dist/overlay/CommandPaletteList.d.ts +3 -3
  676. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  677. package/dist/overlay/CommandPaletteList.js.map +1 -1
  678. package/dist/overlay/CommandPaletteTrigger.d.ts +1 -1
  679. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -1
  680. package/dist/overlay/ContextMenu.d.ts +1 -1
  681. package/dist/overlay/ContextMenu.d.ts.map +1 -1
  682. package/dist/overlay/DropdownMenu.d.ts +2 -2
  683. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  684. package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
  685. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  686. package/dist/overlay/HoverCard.d.ts +2 -2
  687. package/dist/overlay/HoverCard.d.ts.map +1 -1
  688. package/dist/overlay/Modal.cjs +105 -18
  689. package/dist/overlay/Modal.cjs.map +1 -1
  690. package/dist/overlay/Modal.d.ts +2 -2
  691. package/dist/overlay/Modal.d.ts.map +1 -1
  692. package/dist/overlay/Modal.js +105 -18
  693. package/dist/overlay/Modal.js.map +1 -1
  694. package/dist/overlay/Toast.d.ts +2 -2
  695. package/dist/overlay/Toast.d.ts.map +1 -1
  696. package/dist/overlay/Tour.d.ts +1 -1
  697. package/dist/overlay/Tour.d.ts.map +1 -1
  698. package/dist/overlay/TourCard.d.ts +2 -2
  699. package/dist/overlay/TourCard.d.ts.map +1 -1
  700. package/dist/overlay/TourProvider.d.ts +2 -2
  701. package/dist/overlay/TourProvider.d.ts.map +1 -1
  702. package/dist/overlay/TourSpotlight.d.ts +1 -1
  703. package/dist/overlay/TourSpotlight.d.ts.map +1 -1
  704. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  705. package/dist/overlay/toast-context.d.ts +2 -2
  706. package/dist/overlay/tour-context.d.ts +1 -1
  707. package/dist/overlay/tour-types.d.ts +1 -1
  708. package/dist/profiles/cel/celEditor.d.ts +4 -4
  709. package/dist/profiles/cel/celEditor.d.ts.map +1 -1
  710. package/dist/profiles/connections/catalogTree.d.ts +1 -1
  711. package/dist/profiles/connections/catalogTree.d.ts.map +1 -1
  712. package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
  713. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +2 -2
  714. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  715. package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
  716. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -1
  717. package/dist/profiles/editor/profileBuilder.d.ts +3 -3
  718. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -1
  719. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +1 -1
  720. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  721. package/dist/profiles/editor/profileEditor.d.ts +1 -1
  722. package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
  723. package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
  724. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -1
  725. package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
  726. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
  727. package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
  728. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -1
  729. package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
  730. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
  731. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts +1 -1
  732. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -1
  733. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
  734. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  735. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  736. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +1 -1
  737. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -1
  738. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +1 -1
  739. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -1
  740. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +2 -2
  741. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -1
  742. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +1 -1
  743. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -1
  744. package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
  745. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -1
  746. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +1 -1
  747. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -1
  748. package/dist/profiles/elasticsearch/esValueCombobox.d.ts +2 -2
  749. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -1
  750. package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
  751. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -1
  752. package/dist/profiles/fields/profileFieldControls.d.ts +3 -3
  753. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
  754. package/dist/profiles/fields/profileFieldEditor.d.ts +3 -3
  755. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  756. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
  757. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  758. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  759. package/dist/profiles/fields/profileFieldList.d.ts +2 -2
  760. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
  761. package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
  762. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -1
  763. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  764. package/dist/profiles/processor/processorPipeline.d.ts +1 -1
  765. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
  766. package/dist/profiles/processor/processorPipelineEditor.d.ts +1 -1
  767. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -1
  768. package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
  769. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -1
  770. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  771. package/dist/profiles/query/jsonPathSampleRow.d.ts +2 -2
  772. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -1
  773. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
  774. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -1
  775. package/dist/profiles/query/prometheusResults.d.ts +2 -2
  776. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  777. package/dist/profiles/query/queryRowLimits.d.ts +1 -1
  778. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -1
  779. package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
  780. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  781. package/dist/profiles/wizard/profileWizard.d.ts +1 -1
  782. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  783. package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
  784. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  785. package/dist/profiles/wizard/profileWizardSteps.d.ts +4 -4
  786. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  787. package/dist/rpc/ChatLayer.d.ts +1 -1
  788. package/dist/rpc/ChatLayer.d.ts.map +1 -1
  789. package/dist/rpc/CommandForm.d.ts +1 -1
  790. package/dist/rpc/CommandForm.d.ts.map +1 -1
  791. package/dist/rpc/CommandOutput.d.ts +1 -1
  792. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  793. package/dist/rpc/EndpointList.d.ts +2 -2
  794. package/dist/rpc/EndpointList.d.ts.map +1 -1
  795. package/dist/rpc/EntityExplorerApp.d.ts +2 -2
  796. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  797. package/dist/rpc/ExecutionResult.d.ts +1 -1
  798. package/dist/rpc/ExecutionResult.d.ts.map +1 -1
  799. package/dist/rpc/FilterForm.d.ts +1 -1
  800. package/dist/rpc/FilterForm.d.ts.map +1 -1
  801. package/dist/rpc/FilterFormFields.d.ts +1 -1
  802. package/dist/rpc/FilterFormFields.d.ts.map +1 -1
  803. package/dist/rpc/InlineError.d.ts +1 -1
  804. package/dist/rpc/InlineError.d.ts.map +1 -1
  805. package/dist/rpc/OperationActionBar.cjs +17 -5
  806. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  807. package/dist/rpc/OperationActionBar.d.ts +3 -6
  808. package/dist/rpc/OperationActionBar.d.ts.map +1 -1
  809. package/dist/rpc/OperationActionBar.js +17 -5
  810. package/dist/rpc/OperationActionBar.js.map +1 -1
  811. package/dist/rpc/OperationActionDialog.d.ts +1 -1
  812. package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
  813. package/dist/rpc/OperationCatalog.cjs +65 -5
  814. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  815. package/dist/rpc/OperationCatalog.d.ts +4 -2
  816. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  817. package/dist/rpc/OperationCatalog.js +66 -6
  818. package/dist/rpc/OperationCatalog.js.map +1 -1
  819. package/dist/rpc/OperationCatalogActions.cjs +38 -7
  820. package/dist/rpc/OperationCatalogActions.cjs.map +1 -1
  821. package/dist/rpc/OperationCatalogActions.d.ts +6 -1
  822. package/dist/rpc/OperationCatalogActions.d.ts.map +1 -1
  823. package/dist/rpc/OperationCatalogActions.js +38 -7
  824. package/dist/rpc/OperationCatalogActions.js.map +1 -1
  825. package/dist/rpc/OperationCommandPage.d.ts +1 -1
  826. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  827. package/dist/rpc/OperationEntityContextPicker.d.ts +2 -2
  828. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  829. package/dist/rpc/OperationEntityPage.d.ts +2 -2
  830. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  831. package/dist/rpc/OperationResultView.d.ts +2 -2
  832. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  833. package/dist/rpc/RouterProvider.d.ts +2 -2
  834. package/dist/rpc/RouterProvider.d.ts.map +1 -1
  835. package/dist/rpc/SchemaActionForm.d.ts +2 -2
  836. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  837. package/dist/rpc/actionIconMap.cjs +11 -0
  838. package/dist/rpc/actionIconMap.cjs.map +1 -0
  839. package/dist/rpc/actionIconMap.d.ts +3 -0
  840. package/dist/rpc/actionIconMap.d.ts.map +1 -0
  841. package/dist/rpc/actionIconMap.js +11 -0
  842. package/dist/rpc/actionIconMap.js.map +1 -0
  843. package/dist/rpc/formMetadata.d.ts +1 -1
  844. package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
  845. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -1
  846. package/dist/rpc/router.d.ts +1 -1
  847. package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
  848. package/dist/styles.css +1 -1
  849. package/package.json +3 -3
  850. package/dist/components/combobox-utils.cjs.map +0 -1
  851. package/dist/components/combobox-utils.d.ts.map +0 -1
  852. package/dist/components/combobox-utils.js.map +0 -1
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const NAV_DRAG_TYPE = "application/x-clicky-nav";
5
+ const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
6
+ const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
7
+ function sameTarget(left, right) {
8
+ return left !== null && right !== void 0 && left.key === right.key && left.kind === right.kind;
9
+ }
10
+ function useNavDrag(drag) {
11
+ const sourceRef = react.useRef(null);
12
+ const [source, setSource] = react.useState(null);
13
+ const [over, setOver] = react.useState(null);
14
+ const reset = () => {
15
+ sourceRef.current = null;
16
+ setSource(null);
17
+ setOver(null);
18
+ };
19
+ const props = ({
20
+ drag: from,
21
+ drop: to
22
+ }) => {
23
+ var _a;
24
+ const identity = to ?? from;
25
+ if (!drag || !identity) return void 0;
26
+ const draggable = from !== void 0 && (((_a = drag.canDrag) == null ? void 0 : _a.call(drag, from)) ?? true);
27
+ const accepted = (target) => {
28
+ var _a2;
29
+ const dragged = sourceRef.current;
30
+ return dragged !== null && !sameTarget(dragged, target) && (((_a2 = drag.canDrop) == null ? void 0 : _a2.call(drag, dragged, target)) ?? true) ? dragged : null;
31
+ };
32
+ const enterOrOver = (target) => (event) => {
33
+ event.stopPropagation();
34
+ if (!accepted(target)) {
35
+ setOver(null);
36
+ return;
37
+ }
38
+ event.preventDefault();
39
+ event.dataTransfer.dropEffect = "move";
40
+ setOver(target);
41
+ };
42
+ return {
43
+ "data-nav-row": identity.kind,
44
+ ...draggable && from ? {
45
+ draggable: true,
46
+ "data-nav-drag": sameTarget(source, from) ? "source" : void 0,
47
+ onDragStart: (event) => {
48
+ event.stopPropagation();
49
+ event.dataTransfer.effectAllowed = "move";
50
+ event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);
51
+ event.dataTransfer.setData("text/plain", from.key);
52
+ sourceRef.current = from;
53
+ setSource(from);
54
+ },
55
+ onDragEnd: reset
56
+ } : {},
57
+ ...to !== void 0 ? {
58
+ "data-nav-drop": sameTarget(over, to) ? "over" : void 0,
59
+ // A drop target has to cancel dragenter AND dragover — cancelling
60
+ // only the latter leaves the row a drop target in Chrome but not
61
+ // for every drag source, so both run the same admission check.
62
+ onDragEnter: enterOrOver(to),
63
+ onDragOver: enterOrOver(to),
64
+ onDragLeave: (event) => {
65
+ const next = event.relatedTarget;
66
+ if (next instanceof Node && event.currentTarget.contains(next)) {
67
+ return;
68
+ }
69
+ setOver((current) => sameTarget(current, to) ? null : current);
70
+ },
71
+ onDrop: (event) => {
72
+ event.preventDefault();
73
+ event.stopPropagation();
74
+ const dragged = accepted(to);
75
+ if (dragged) drag.onDrop(dragged, to);
76
+ reset();
77
+ }
78
+ } : {}
79
+ };
80
+ };
81
+ return { props };
82
+ }
83
+ exports.NAV_DRAG_ROW_CLASS = NAV_DRAG_ROW_CLASS;
84
+ exports.NAV_DRAG_ZONE_CLASS = NAV_DRAG_ZONE_CLASS;
85
+ exports.useNavDrag = useNavDrag;
86
+ //# sourceMappingURL=AppShell.nav.drag.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppShell.nav.drag.cjs","sources":["../../src/layout/AppShell.nav.drag.tsx"],"sourcesContent":["import { useRef, useState, type DragEvent, type HTMLAttributes } from \"react\";\n\n// Drag-and-drop for the nav rail, kept structural: this module knows about rows,\n// folders and a section root, never about what a consumer moves between them.\n// Native HTML5 drag events are what a sidebar wants — a nav row is an <a>, which\n// the browser already makes draggable, so the alternative is fighting it.\n\n/** Which kind of nav row a drag endpoint is. */\nexport type AppShellNavDropKind = \"item\" | \"group\" | \"section\";\n\n/** One end of a drag: a row's `key` plus what that row is. */\nexport type AppShellNavDropTarget = {\n key: string;\n kind: AppShellNavDropKind;\n};\n\nexport type AppShellNavDrag = {\n /** Rows the user may pick up. Defaults to every row in the section. */\n canDrag?: (source: AppShellNavDropTarget) => boolean;\n /** Whether `source` may land on `target`. Defaults to any row but itself. */\n canDrop?: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => boolean;\n /** Commits the move. */\n onDrop: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => void;\n /**\n * Key reported for a drop on the section's own space (the heading and the\n * gaps around the rows) — the tree root in a tree-shaped section. Defaults\n * to the empty string.\n */\n rootKey?: string;\n};\n\n/**\n * Marks the payload as a nav drag so a row cannot be \"dropped\" from an\n * unrelated source; the key rides along for consumers that read the transfer.\n */\nconst NAV_DRAG_TYPE = \"application/x-clicky-nav\";\n\nexport type NavDragProps = HTMLAttributes<HTMLElement> & {\n /** What this row is — a stable hook for tests and consumer styling. */\n \"data-nav-row\": AppShellNavDropKind;\n // `| undefined` is deliberate — exactOptionalPropertyTypes forbids assigning\n // undefined to a plain optional, and both states are expressed by absence.\n \"data-nav-drag\"?: \"source\" | undefined;\n \"data-nav-drop\"?: \"over\" | undefined;\n};\n\nexport type NavDragEndpoints = {\n /** Identity this row hands over when dragged. Omit for a drop-only zone. */\n drag?: AppShellNavDropTarget;\n /** Identity this row accepts drops as. Omit for a drag-only row. */\n drop?: AppShellNavDropTarget;\n};\n\nexport type NavDragState = {\n /** Props for one row, or `undefined` when the section has no drag config. */\n props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;\n};\n\n/** Row styling for both drag states; spread beside the row's own classes. */\nexport const NAV_DRAG_ROW_CLASS =\n \"data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary\";\n\n/** Section styling: a dashed outline so the root reads as a drop zone. */\nexport const NAV_DRAG_ZONE_CLASS =\n \"data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary\";\n\nfunction sameTarget(\n left: AppShellNavDropTarget | null,\n right: AppShellNavDropTarget | undefined,\n): boolean {\n return (\n left !== null &&\n right !== undefined &&\n left.key === right.key &&\n left.kind === right.kind\n );\n}\n\n/**\n * Owns one section's drag state. Called once per section — the rail and the\n * mobile drawer each render their own, which is correct: a drag lives entirely\n * inside the rendering the pointer started in.\n *\n * There is no keyboard equivalent here: a move is a destructive-ish action, and\n * the row's context menu (right-click / Shift+F10) is the accessible path to it.\n */\nexport function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState {\n // The ref decides, the state only paints. A browser can fire the first\n // dragover in the same frame as dragstart, so a drop that waited for the\n // re-render carrying the new source would be refused for the first stretch\n // of a fast drag — and refusing a dragover means no drop event at all.\n const sourceRef = useRef<AppShellNavDropTarget | null>(null);\n const [source, setSource] = useState<AppShellNavDropTarget | null>(null);\n const [over, setOver] = useState<AppShellNavDropTarget | null>(null);\n\n const reset = () => {\n sourceRef.current = null;\n setSource(null);\n setOver(null);\n };\n\n const props = ({\n drag: from,\n drop: to,\n }: NavDragEndpoints): NavDragProps | undefined => {\n // No endpoints means the row neither moves nor receives — nothing to wire.\n const identity = to ?? from;\n if (!drag || !identity) return undefined;\n const draggable = from !== undefined && (drag.canDrag?.(from) ?? true);\n /** The row being dragged, if it may land here — read at event time. */\n const accepted = (target: AppShellNavDropTarget) => {\n const dragged = sourceRef.current;\n return dragged !== null &&\n !sameTarget(dragged, target) &&\n (drag.canDrop?.(dragged, target) ?? true)\n ? dragged\n : null;\n };\n const enterOrOver =\n (target: AppShellNavDropTarget) => (event: DragEvent<HTMLElement>) => {\n // stopPropagation runs even for a refused row: the row under the\n // pointer is the answer, so a \"no\" here must not bubble up and let an\n // ancestor zone (the section root) accept the drop behind it.\n // preventDefault is what actually arms a drop, so it only runs for a\n // row that accepts.\n event.stopPropagation();\n if (!accepted(target)) {\n setOver(null);\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setOver(target);\n };\n\n return {\n \"data-nav-row\": identity.kind,\n ...(draggable && from\n ? {\n draggable: true,\n \"data-nav-drag\": sameTarget(source, from) ? \"source\" : undefined,\n onDragStart: (event: DragEvent<HTMLElement>) => {\n // A nested row must not also start its ancestor folder's drag.\n event.stopPropagation();\n event.dataTransfer.effectAllowed = \"move\";\n // Overwrites the URL payload the browser puts on an anchor drag.\n event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);\n event.dataTransfer.setData(\"text/plain\", from.key);\n sourceRef.current = from;\n setSource(from);\n },\n onDragEnd: reset,\n }\n : {}),\n ...(to !== undefined\n ? {\n \"data-nav-drop\": sameTarget(over, to) ? \"over\" : undefined,\n // A drop target has to cancel dragenter AND dragover — cancelling\n // only the latter leaves the row a drop target in Chrome but not\n // for every drag source, so both run the same admission check.\n onDragEnter: enterOrOver(to),\n onDragOver: enterOrOver(to),\n onDragLeave: (event: DragEvent<HTMLElement>) => {\n // dragleave also fires when the pointer crosses into a child of\n // this row; only a leave that exits the row should clear it.\n const next = event.relatedTarget;\n if (next instanceof Node && event.currentTarget.contains(next)) {\n return;\n }\n setOver((current) => (sameTarget(current, to) ? null : current));\n },\n onDrop: (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const dragged = accepted(to);\n if (dragged) drag.onDrop(dragged, to);\n reset();\n },\n }\n : {}),\n };\n };\n\n return { props };\n}\n"],"names":["useRef","useState","_a"],"mappings":";;;AAyCA,MAAM,gBAAgB;AAwBf,MAAM,qBACX;AAGK,MAAM,sBACX;AAEF,SAAS,WACP,MACA,OACS;AACT,SACE,SAAS,QACT,UAAU,UACV,KAAK,QAAQ,MAAM,OACnB,KAAK,SAAS,MAAM;AAExB;AAUO,SAAS,WAAW,MAAiD;AAK1E,QAAM,YAAYA,MAAAA,OAAqC,IAAI;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAIC,MAAAA,SAAuC,IAAI;AACvE,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAuC,IAAI;AAEnE,QAAM,QAAQ,MAAM;AAClB,cAAU,UAAU;AACpB,cAAU,IAAI;AACd,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,QAAQ,CAAC;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,MAC0C;;AAEhD,UAAM,WAAW,MAAM;AACvB,QAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAC/B,UAAM,YAAY,SAAS,aAAc,UAAK,YAAL,8BAAe,UAAS;AAEjE,UAAM,WAAW,CAAC,WAAkC;;AAClD,YAAM,UAAU,UAAU;AAC1B,aAAO,YAAY,QACjB,CAAC,WAAW,SAAS,MAAM,QAC1BC,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe,SAAS,YAAW,QAClC,UACA;AAAA,IACN;AACA,UAAM,cACJ,CAAC,WAAkC,CAAC,UAAkC;AAMpE,YAAM,gBAAA;AACN,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,gBAAQ,IAAI;AACZ;AAAA,MACF;AACA,YAAM,eAAA;AACN,YAAM,aAAa,aAAa;AAChC,cAAQ,MAAM;AAAA,IAChB;AAEF,WAAO;AAAA,MACL,gBAAgB,SAAS;AAAA,MACzB,GAAI,aAAa,OACb;AAAA,QACE,WAAW;AAAA,QACX,iBAAiB,WAAW,QAAQ,IAAI,IAAI,WAAW;AAAA,QACvD,aAAa,CAAC,UAAkC;AAE9C,gBAAM,gBAAA;AACN,gBAAM,aAAa,gBAAgB;AAEnC,gBAAM,aAAa,QAAQ,eAAe,KAAK,GAAG;AAClD,gBAAM,aAAa,QAAQ,cAAc,KAAK,GAAG;AACjD,oBAAU,UAAU;AACpB,oBAAU,IAAI;AAAA,QAChB;AAAA,QACA,WAAW;AAAA,MAAA,IAEb,CAAA;AAAA,MACJ,GAAI,OAAO,SACP;AAAA,QACE,iBAAiB,WAAW,MAAM,EAAE,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,QAIjD,aAAa,YAAY,EAAE;AAAA,QAC3B,YAAY,YAAY,EAAE;AAAA,QAC1B,aAAa,CAAC,UAAkC;AAG9C,gBAAM,OAAO,MAAM;AACnB,cAAI,gBAAgB,QAAQ,MAAM,cAAc,SAAS,IAAI,GAAG;AAC9D;AAAA,UACF;AACA,kBAAQ,CAAC,YAAa,WAAW,SAAS,EAAE,IAAI,OAAO,OAAQ;AAAA,QACjE;AAAA,QACA,QAAQ,CAAC,UAAkC;AACzC,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN,gBAAM,UAAU,SAAS,EAAE;AAC3B,cAAI,QAAS,MAAK,OAAO,SAAS,EAAE;AACpC,gBAAA;AAAA,QACF;AAAA,MAAA,IAEF,CAAA;AAAA,IAAC;AAAA,EAET;AAEA,SAAO,EAAE,MAAA;AACX;;;;"}
@@ -0,0 +1,52 @@
1
+ import { HTMLAttributes } from '../../../../node_modules/@types/react/index.d.ts';
2
+ /** Which kind of nav row a drag endpoint is. */
3
+ export type AppShellNavDropKind = "item" | "group" | "section";
4
+ /** One end of a drag: a row's `key` plus what that row is. */
5
+ export type AppShellNavDropTarget = {
6
+ key: string;
7
+ kind: AppShellNavDropKind;
8
+ };
9
+ export type AppShellNavDrag = {
10
+ /** Rows the user may pick up. Defaults to every row in the section. */
11
+ canDrag?: (source: AppShellNavDropTarget) => boolean;
12
+ /** Whether `source` may land on `target`. Defaults to any row but itself. */
13
+ canDrop?: (source: AppShellNavDropTarget, target: AppShellNavDropTarget) => boolean;
14
+ /** Commits the move. */
15
+ onDrop: (source: AppShellNavDropTarget, target: AppShellNavDropTarget) => void;
16
+ /**
17
+ * Key reported for a drop on the section's own space (the heading and the
18
+ * gaps around the rows) — the tree root in a tree-shaped section. Defaults
19
+ * to the empty string.
20
+ */
21
+ rootKey?: string;
22
+ };
23
+ export type NavDragProps = HTMLAttributes<HTMLElement> & {
24
+ /** What this row is — a stable hook for tests and consumer styling. */
25
+ "data-nav-row": AppShellNavDropKind;
26
+ "data-nav-drag"?: "source" | undefined;
27
+ "data-nav-drop"?: "over" | undefined;
28
+ };
29
+ export type NavDragEndpoints = {
30
+ /** Identity this row hands over when dragged. Omit for a drop-only zone. */
31
+ drag?: AppShellNavDropTarget;
32
+ /** Identity this row accepts drops as. Omit for a drag-only row. */
33
+ drop?: AppShellNavDropTarget;
34
+ };
35
+ export type NavDragState = {
36
+ /** Props for one row, or `undefined` when the section has no drag config. */
37
+ props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;
38
+ };
39
+ /** Row styling for both drag states; spread beside the row's own classes. */
40
+ export declare const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
41
+ /** Section styling: a dashed outline so the root reads as a drop zone. */
42
+ export declare const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
43
+ /**
44
+ * Owns one section's drag state. Called once per section — the rail and the
45
+ * mobile drawer each render their own, which is correct: a drag lives entirely
46
+ * inside the rendering the pointer started in.
47
+ *
48
+ * There is no keyboard equivalent here: a move is a destructive-ish action, and
49
+ * the row's context menu (right-click / Shift+F10) is the accessible path to it.
50
+ */
51
+ export declare function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState;
52
+ //# sourceMappingURL=AppShell.nav.drag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppShell.nav.drag.d.ts","sourceRoot":"","sources":["../../src/layout/AppShell.nav.drag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAO9E,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC;IACrD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CACR,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC;IACb,wBAAwB;IACxB,MAAM,EAAE,CACN,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,KAC1B,IAAI,CAAC;IACV;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACvD,uEAAuE;IACvE,cAAc,EAAE,mBAAmB,CAAC;IAGpC,eAAe,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,6EAA6E;IAC7E,KAAK,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,YAAY,GAAG,SAAS,CAAC;CAClE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,mLACmJ,CAAC;AAEnL,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,oJACmH,CAAC;AAcpJ;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,CAkG1E"}
@@ -0,0 +1,86 @@
1
+ import { useRef, useState } from "react";
2
+ const NAV_DRAG_TYPE = "application/x-clicky-nav";
3
+ const NAV_DRAG_ROW_CLASS = "data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary";
4
+ const NAV_DRAG_ZONE_CLASS = "data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary";
5
+ function sameTarget(left, right) {
6
+ return left !== null && right !== void 0 && left.key === right.key && left.kind === right.kind;
7
+ }
8
+ function useNavDrag(drag) {
9
+ const sourceRef = useRef(null);
10
+ const [source, setSource] = useState(null);
11
+ const [over, setOver] = useState(null);
12
+ const reset = () => {
13
+ sourceRef.current = null;
14
+ setSource(null);
15
+ setOver(null);
16
+ };
17
+ const props = ({
18
+ drag: from,
19
+ drop: to
20
+ }) => {
21
+ var _a;
22
+ const identity = to ?? from;
23
+ if (!drag || !identity) return void 0;
24
+ const draggable = from !== void 0 && (((_a = drag.canDrag) == null ? void 0 : _a.call(drag, from)) ?? true);
25
+ const accepted = (target) => {
26
+ var _a2;
27
+ const dragged = sourceRef.current;
28
+ return dragged !== null && !sameTarget(dragged, target) && (((_a2 = drag.canDrop) == null ? void 0 : _a2.call(drag, dragged, target)) ?? true) ? dragged : null;
29
+ };
30
+ const enterOrOver = (target) => (event) => {
31
+ event.stopPropagation();
32
+ if (!accepted(target)) {
33
+ setOver(null);
34
+ return;
35
+ }
36
+ event.preventDefault();
37
+ event.dataTransfer.dropEffect = "move";
38
+ setOver(target);
39
+ };
40
+ return {
41
+ "data-nav-row": identity.kind,
42
+ ...draggable && from ? {
43
+ draggable: true,
44
+ "data-nav-drag": sameTarget(source, from) ? "source" : void 0,
45
+ onDragStart: (event) => {
46
+ event.stopPropagation();
47
+ event.dataTransfer.effectAllowed = "move";
48
+ event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);
49
+ event.dataTransfer.setData("text/plain", from.key);
50
+ sourceRef.current = from;
51
+ setSource(from);
52
+ },
53
+ onDragEnd: reset
54
+ } : {},
55
+ ...to !== void 0 ? {
56
+ "data-nav-drop": sameTarget(over, to) ? "over" : void 0,
57
+ // A drop target has to cancel dragenter AND dragover — cancelling
58
+ // only the latter leaves the row a drop target in Chrome but not
59
+ // for every drag source, so both run the same admission check.
60
+ onDragEnter: enterOrOver(to),
61
+ onDragOver: enterOrOver(to),
62
+ onDragLeave: (event) => {
63
+ const next = event.relatedTarget;
64
+ if (next instanceof Node && event.currentTarget.contains(next)) {
65
+ return;
66
+ }
67
+ setOver((current) => sameTarget(current, to) ? null : current);
68
+ },
69
+ onDrop: (event) => {
70
+ event.preventDefault();
71
+ event.stopPropagation();
72
+ const dragged = accepted(to);
73
+ if (dragged) drag.onDrop(dragged, to);
74
+ reset();
75
+ }
76
+ } : {}
77
+ };
78
+ };
79
+ return { props };
80
+ }
81
+ export {
82
+ NAV_DRAG_ROW_CLASS,
83
+ NAV_DRAG_ZONE_CLASS,
84
+ useNavDrag
85
+ };
86
+ //# sourceMappingURL=AppShell.nav.drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppShell.nav.drag.js","sources":["../../src/layout/AppShell.nav.drag.tsx"],"sourcesContent":["import { useRef, useState, type DragEvent, type HTMLAttributes } from \"react\";\n\n// Drag-and-drop for the nav rail, kept structural: this module knows about rows,\n// folders and a section root, never about what a consumer moves between them.\n// Native HTML5 drag events are what a sidebar wants — a nav row is an <a>, which\n// the browser already makes draggable, so the alternative is fighting it.\n\n/** Which kind of nav row a drag endpoint is. */\nexport type AppShellNavDropKind = \"item\" | \"group\" | \"section\";\n\n/** One end of a drag: a row's `key` plus what that row is. */\nexport type AppShellNavDropTarget = {\n key: string;\n kind: AppShellNavDropKind;\n};\n\nexport type AppShellNavDrag = {\n /** Rows the user may pick up. Defaults to every row in the section. */\n canDrag?: (source: AppShellNavDropTarget) => boolean;\n /** Whether `source` may land on `target`. Defaults to any row but itself. */\n canDrop?: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => boolean;\n /** Commits the move. */\n onDrop: (\n source: AppShellNavDropTarget,\n target: AppShellNavDropTarget,\n ) => void;\n /**\n * Key reported for a drop on the section's own space (the heading and the\n * gaps around the rows) — the tree root in a tree-shaped section. Defaults\n * to the empty string.\n */\n rootKey?: string;\n};\n\n/**\n * Marks the payload as a nav drag so a row cannot be \"dropped\" from an\n * unrelated source; the key rides along for consumers that read the transfer.\n */\nconst NAV_DRAG_TYPE = \"application/x-clicky-nav\";\n\nexport type NavDragProps = HTMLAttributes<HTMLElement> & {\n /** What this row is — a stable hook for tests and consumer styling. */\n \"data-nav-row\": AppShellNavDropKind;\n // `| undefined` is deliberate — exactOptionalPropertyTypes forbids assigning\n // undefined to a plain optional, and both states are expressed by absence.\n \"data-nav-drag\"?: \"source\" | undefined;\n \"data-nav-drop\"?: \"over\" | undefined;\n};\n\nexport type NavDragEndpoints = {\n /** Identity this row hands over when dragged. Omit for a drop-only zone. */\n drag?: AppShellNavDropTarget;\n /** Identity this row accepts drops as. Omit for a drag-only row. */\n drop?: AppShellNavDropTarget;\n};\n\nexport type NavDragState = {\n /** Props for one row, or `undefined` when the section has no drag config. */\n props: (endpoints: NavDragEndpoints) => NavDragProps | undefined;\n};\n\n/** Row styling for both drag states; spread beside the row's own classes. */\nexport const NAV_DRAG_ROW_CLASS =\n \"data-[nav-drag=source]:opacity-40 data-[nav-drop=over]:bg-sidebar-accent data-[nav-drop=over]:ring-1 data-[nav-drop=over]:ring-inset data-[nav-drop=over]:ring-sidebar-primary\";\n\n/** Section styling: a dashed outline so the root reads as a drop zone. */\nexport const NAV_DRAG_ZONE_CLASS =\n \"data-[nav-drop=over]:rounded-md data-[nav-drop=over]:outline-1 data-[nav-drop=over]:outline-dashed data-[nav-drop=over]:outline-sidebar-primary\";\n\nfunction sameTarget(\n left: AppShellNavDropTarget | null,\n right: AppShellNavDropTarget | undefined,\n): boolean {\n return (\n left !== null &&\n right !== undefined &&\n left.key === right.key &&\n left.kind === right.kind\n );\n}\n\n/**\n * Owns one section's drag state. Called once per section — the rail and the\n * mobile drawer each render their own, which is correct: a drag lives entirely\n * inside the rendering the pointer started in.\n *\n * There is no keyboard equivalent here: a move is a destructive-ish action, and\n * the row's context menu (right-click / Shift+F10) is the accessible path to it.\n */\nexport function useNavDrag(drag: AppShellNavDrag | undefined): NavDragState {\n // The ref decides, the state only paints. A browser can fire the first\n // dragover in the same frame as dragstart, so a drop that waited for the\n // re-render carrying the new source would be refused for the first stretch\n // of a fast drag — and refusing a dragover means no drop event at all.\n const sourceRef = useRef<AppShellNavDropTarget | null>(null);\n const [source, setSource] = useState<AppShellNavDropTarget | null>(null);\n const [over, setOver] = useState<AppShellNavDropTarget | null>(null);\n\n const reset = () => {\n sourceRef.current = null;\n setSource(null);\n setOver(null);\n };\n\n const props = ({\n drag: from,\n drop: to,\n }: NavDragEndpoints): NavDragProps | undefined => {\n // No endpoints means the row neither moves nor receives — nothing to wire.\n const identity = to ?? from;\n if (!drag || !identity) return undefined;\n const draggable = from !== undefined && (drag.canDrag?.(from) ?? true);\n /** The row being dragged, if it may land here — read at event time. */\n const accepted = (target: AppShellNavDropTarget) => {\n const dragged = sourceRef.current;\n return dragged !== null &&\n !sameTarget(dragged, target) &&\n (drag.canDrop?.(dragged, target) ?? true)\n ? dragged\n : null;\n };\n const enterOrOver =\n (target: AppShellNavDropTarget) => (event: DragEvent<HTMLElement>) => {\n // stopPropagation runs even for a refused row: the row under the\n // pointer is the answer, so a \"no\" here must not bubble up and let an\n // ancestor zone (the section root) accept the drop behind it.\n // preventDefault is what actually arms a drop, so it only runs for a\n // row that accepts.\n event.stopPropagation();\n if (!accepted(target)) {\n setOver(null);\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setOver(target);\n };\n\n return {\n \"data-nav-row\": identity.kind,\n ...(draggable && from\n ? {\n draggable: true,\n \"data-nav-drag\": sameTarget(source, from) ? \"source\" : undefined,\n onDragStart: (event: DragEvent<HTMLElement>) => {\n // A nested row must not also start its ancestor folder's drag.\n event.stopPropagation();\n event.dataTransfer.effectAllowed = \"move\";\n // Overwrites the URL payload the browser puts on an anchor drag.\n event.dataTransfer.setData(NAV_DRAG_TYPE, from.key);\n event.dataTransfer.setData(\"text/plain\", from.key);\n sourceRef.current = from;\n setSource(from);\n },\n onDragEnd: reset,\n }\n : {}),\n ...(to !== undefined\n ? {\n \"data-nav-drop\": sameTarget(over, to) ? \"over\" : undefined,\n // A drop target has to cancel dragenter AND dragover — cancelling\n // only the latter leaves the row a drop target in Chrome but not\n // for every drag source, so both run the same admission check.\n onDragEnter: enterOrOver(to),\n onDragOver: enterOrOver(to),\n onDragLeave: (event: DragEvent<HTMLElement>) => {\n // dragleave also fires when the pointer crosses into a child of\n // this row; only a leave that exits the row should clear it.\n const next = event.relatedTarget;\n if (next instanceof Node && event.currentTarget.contains(next)) {\n return;\n }\n setOver((current) => (sameTarget(current, to) ? null : current));\n },\n onDrop: (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const dragged = accepted(to);\n if (dragged) drag.onDrop(dragged, to);\n reset();\n },\n }\n : {}),\n };\n };\n\n return { props };\n}\n"],"names":["_a"],"mappings":";AAyCA,MAAM,gBAAgB;AAwBf,MAAM,qBACX;AAGK,MAAM,sBACX;AAEF,SAAS,WACP,MACA,OACS;AACT,SACE,SAAS,QACT,UAAU,UACV,KAAK,QAAQ,MAAM,OACnB,KAAK,SAAS,MAAM;AAExB;AAUO,SAAS,WAAW,MAAiD;AAK1E,QAAM,YAAY,OAAqC,IAAI;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAuC,IAAI;AACvE,QAAM,CAAC,MAAM,OAAO,IAAI,SAAuC,IAAI;AAEnE,QAAM,QAAQ,MAAM;AAClB,cAAU,UAAU;AACpB,cAAU,IAAI;AACd,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,QAAQ,CAAC;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,MAC0C;;AAEhD,UAAM,WAAW,MAAM;AACvB,QAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAC/B,UAAM,YAAY,SAAS,aAAc,UAAK,YAAL,8BAAe,UAAS;AAEjE,UAAM,WAAW,CAAC,WAAkC;;AAClD,YAAM,UAAU,UAAU;AAC1B,aAAO,YAAY,QACjB,CAAC,WAAW,SAAS,MAAM,QAC1BA,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe,SAAS,YAAW,QAClC,UACA;AAAA,IACN;AACA,UAAM,cACJ,CAAC,WAAkC,CAAC,UAAkC;AAMpE,YAAM,gBAAA;AACN,UAAI,CAAC,SAAS,MAAM,GAAG;AACrB,gBAAQ,IAAI;AACZ;AAAA,MACF;AACA,YAAM,eAAA;AACN,YAAM,aAAa,aAAa;AAChC,cAAQ,MAAM;AAAA,IAChB;AAEF,WAAO;AAAA,MACL,gBAAgB,SAAS;AAAA,MACzB,GAAI,aAAa,OACb;AAAA,QACE,WAAW;AAAA,QACX,iBAAiB,WAAW,QAAQ,IAAI,IAAI,WAAW;AAAA,QACvD,aAAa,CAAC,UAAkC;AAE9C,gBAAM,gBAAA;AACN,gBAAM,aAAa,gBAAgB;AAEnC,gBAAM,aAAa,QAAQ,eAAe,KAAK,GAAG;AAClD,gBAAM,aAAa,QAAQ,cAAc,KAAK,GAAG;AACjD,oBAAU,UAAU;AACpB,oBAAU,IAAI;AAAA,QAChB;AAAA,QACA,WAAW;AAAA,MAAA,IAEb,CAAA;AAAA,MACJ,GAAI,OAAO,SACP;AAAA,QACE,iBAAiB,WAAW,MAAM,EAAE,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,QAIjD,aAAa,YAAY,EAAE;AAAA,QAC3B,YAAY,YAAY,EAAE;AAAA,QAC1B,aAAa,CAAC,UAAkC;AAG9C,gBAAM,OAAO,MAAM;AACnB,cAAI,gBAAgB,QAAQ,MAAM,cAAc,SAAS,IAAI,GAAG;AAC9D;AAAA,UACF;AACA,kBAAQ,CAAC,YAAa,WAAW,SAAS,EAAE,IAAI,OAAO,OAAQ;AAAA,QACjE;AAAA,QACA,QAAQ,CAAC,UAAkC;AACzC,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN,gBAAM,UAAU,SAAS,EAAE;AAC3B,cAAI,QAAS,MAAK,OAAO,SAAS,EAAE;AACpC,gBAAA;AAAA,QACF;AAAA,MAAA,IAEF,CAAA;AAAA,IAAC;AAAA,EAET;AAEA,SAAO,EAAE,MAAA;AACX;"}
@@ -4,13 +4,13 @@ import { Icon } from "../data/Icon.js";
4
4
  import { cn } from "../lib/utils.js";
5
5
  import { ContextMenu } from "../overlay/ContextMenu.js";
6
6
  import { useRouter } from "../rpc/router.js";
7
+ import { useNavDrag, NAV_DRAG_ZONE_CLASS, NAV_DRAG_ROW_CLASS } from "./AppShell.nav.drag.js";
7
8
  function NavSections({
8
9
  sections,
9
10
  collapsed,
10
11
  groupState,
11
12
  onNavigate
12
13
  }) {
13
- const { renderLink } = useRouter();
14
14
  return /* @__PURE__ */ jsx(
15
15
  "nav",
16
16
  {
@@ -18,66 +18,90 @@ function NavSections({
18
18
  "flex flex-col gap-0.5",
19
19
  collapsed ? "px-2" : "px-density-2"
20
20
  ),
21
- children: sections.map((section, index) => {
22
- var _a, _b, _c;
23
- return /* @__PURE__ */ jsxs(
24
- "div",
21
+ children: sections.map((section, index) => /* @__PURE__ */ jsx(
22
+ NavSection,
23
+ {
24
+ section,
25
+ collapsed,
26
+ groupState,
27
+ ...onNavigate ? { onNavigate } : {}
28
+ },
29
+ section.label ?? `section-${index}`
30
+ ))
31
+ }
32
+ );
33
+ }
34
+ function NavSection({
35
+ section,
36
+ collapsed,
37
+ groupState,
38
+ onNavigate
39
+ }) {
40
+ var _a, _b, _c, _d;
41
+ const { renderLink } = useRouter();
42
+ const dragState = useNavDrag(collapsed ? void 0 : section.drag);
43
+ const rootDrop = dragState.props({
44
+ drop: { key: ((_a = section.drag) == null ? void 0 : _a.rootKey) ?? "", kind: "section" }
45
+ });
46
+ return /* @__PURE__ */ jsxs(
47
+ "div",
48
+ {
49
+ className: cn("flex flex-col", rootDrop && NAV_DRAG_ZONE_CLASS),
50
+ ...rootDrop,
51
+ children: [
52
+ section.label && (collapsed ? /* @__PURE__ */ jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
53
+ section.variant !== "tree" && ((_b = section.items) == null ? void 0 : _b.map((item) => /* @__PURE__ */ jsx(
54
+ NavItemRow,
25
55
  {
26
- className: "flex flex-col",
27
- children: [
28
- section.label && (collapsed ? /* @__PURE__ */ jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
29
- section.variant !== "tree" && ((_a = section.items) == null ? void 0 : _a.map((item) => /* @__PURE__ */ jsx(
30
- NavItemRow,
31
- {
32
- item,
33
- collapsed,
34
- renderLink,
35
- ...onNavigate ? { onNavigate } : {}
36
- },
37
- item.key
38
- ))),
39
- (_b = section.groups) == null ? void 0 : _b.map(
40
- (group) => (
41
- // A collapsed rail has no room for group headings, so the whole
42
- // subtree flattens into the icon strip rather than hiding behind
43
- // toggles the user cannot see.
44
- collapsed ? flattenGroup(group).map((item) => /* @__PURE__ */ jsx(
45
- NavItemRow,
46
- {
47
- item,
48
- collapsed: true,
49
- renderLink,
50
- ...onNavigate ? { onNavigate } : {}
51
- },
52
- item.key
53
- )) : /* @__PURE__ */ jsx(
54
- NavGroupRows,
55
- {
56
- group,
57
- variant: section.variant ?? "list",
58
- renderLink,
59
- groupState,
60
- ...onNavigate ? { onNavigate } : {}
61
- },
62
- group.key
63
- )
64
- )
65
- ),
66
- section.variant === "tree" && ((_c = section.items) == null ? void 0 : _c.map((item) => /* @__PURE__ */ jsx(
67
- NavItemRow,
68
- {
69
- item,
70
- collapsed,
71
- renderLink,
72
- ...onNavigate ? { onNavigate } : {}
73
- },
74
- item.key
75
- )))
76
- ]
56
+ item,
57
+ collapsed,
58
+ renderLink,
59
+ dragState,
60
+ ...onNavigate ? { onNavigate } : {}
77
61
  },
78
- section.label ?? `section-${index}`
79
- );
80
- })
62
+ item.key
63
+ ))),
64
+ (_c = section.groups) == null ? void 0 : _c.map(
65
+ (group) => (
66
+ // A collapsed rail has no room for group headings, so the whole
67
+ // subtree flattens into the icon strip rather than hiding behind
68
+ // toggles the user cannot see.
69
+ collapsed ? flattenGroup(group).map((item) => /* @__PURE__ */ jsx(
70
+ NavItemRow,
71
+ {
72
+ item,
73
+ collapsed: true,
74
+ renderLink,
75
+ dragState,
76
+ ...onNavigate ? { onNavigate } : {}
77
+ },
78
+ item.key
79
+ )) : /* @__PURE__ */ jsx(
80
+ NavGroupRows,
81
+ {
82
+ group,
83
+ variant: section.variant ?? "list",
84
+ renderLink,
85
+ groupState,
86
+ dragState,
87
+ ...onNavigate ? { onNavigate } : {}
88
+ },
89
+ group.key
90
+ )
91
+ )
92
+ ),
93
+ section.variant === "tree" && ((_d = section.items) == null ? void 0 : _d.map((item) => /* @__PURE__ */ jsx(
94
+ NavItemRow,
95
+ {
96
+ item,
97
+ collapsed,
98
+ renderLink,
99
+ dragState,
100
+ ...onNavigate ? { onNavigate } : {}
101
+ },
102
+ item.key
103
+ )))
104
+ ]
81
105
  }
82
106
  );
83
107
  }
@@ -93,11 +117,18 @@ function NavGroupRows({
93
117
  variant,
94
118
  renderLink,
95
119
  groupState,
120
+ dragState,
96
121
  onNavigate
97
122
  }) {
98
123
  var _a, _b;
99
124
  const [contextTarget, setContextTarget] = useState(null);
100
125
  const hasChildren = group.items.length > 0 || (((_a = group.groups) == null ? void 0 : _a.length) ?? 0) > 0;
126
+ const folder = { key: group.key, kind: "group" };
127
+ const folderDrag = dragState.props({ drag: folder, drop: folder });
128
+ const leafFolderDrag = group.item ? dragState.props({
129
+ drag: { key: group.item.key, kind: "item" },
130
+ drop: folder
131
+ }) : void 0;
101
132
  const fallback = group.defaultCollapsed ?? false;
102
133
  const collapsed = !group.forceExpanded && groupState.isCollapsed(group.key, fallback);
103
134
  const toggle = () => groupState.toggle(group.key, fallback);
@@ -114,7 +145,11 @@ function NavGroupRows({
114
145
  "div",
115
146
  {
116
147
  ref: setContextTarget,
117
- className: "flex items-center gap-2.5 rounded-md px-density-2 py-1.5 text-[13px] text-sidebar-foreground",
148
+ className: cn(
149
+ "flex items-center gap-2.5 rounded-md px-density-2 py-1.5 text-[13px] text-sidebar-foreground",
150
+ folderDrag && NAV_DRAG_ROW_CLASS
151
+ ),
152
+ ...folderDrag,
118
153
  children: [
119
154
  groupIcon,
120
155
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-left", children: group.label }),
@@ -140,6 +175,7 @@ function NavGroupRows({
140
175
  item: group.item,
141
176
  collapsed: false,
142
177
  renderLink,
178
+ dragState,
143
179
  ...onNavigate ? { onNavigate } : {}
144
180
  }
145
181
  ) }),
@@ -155,7 +191,11 @@ function NavGroupRows({
155
191
  "div",
156
192
  {
157
193
  ref: setContextTarget,
158
- className: "group/nav flex items-center gap-1",
194
+ className: cn(
195
+ "group/nav flex items-center gap-1",
196
+ leafFolderDrag && NAV_DRAG_ROW_CLASS
197
+ ),
198
+ ...leafFolderDrag,
159
199
  children: [
160
200
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(
161
201
  NavItemRow,
@@ -199,8 +239,10 @@ function NavGroupRows({
199
239
  "aria-expanded": !collapsed,
200
240
  className: cn(
201
241
  "flex items-center gap-2.5 rounded-md px-density-2 py-1.5 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
202
- variant === "tree" ? "text-[13px] text-sidebar-foreground" : "text-[11px] font-semibold uppercase tracking-[0.14em] text-sidebar-foreground/55"
242
+ variant === "tree" ? "text-[13px] text-sidebar-foreground" : "text-[11px] font-semibold uppercase tracking-[0.14em] text-sidebar-foreground/55",
243
+ folderDrag && NAV_DRAG_ROW_CLASS
203
244
  ),
245
+ ...folderDrag,
204
246
  children: [
205
247
  groupIcon,
206
248
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-left", children: group.label }),
@@ -225,6 +267,7 @@ function NavGroupRows({
225
267
  item,
226
268
  collapsed: false,
227
269
  renderLink,
270
+ dragState,
228
271
  ...onNavigate ? { onNavigate } : {}
229
272
  },
230
273
  item.key
@@ -236,6 +279,7 @@ function NavGroupRows({
236
279
  variant,
237
280
  renderLink,
238
281
  groupState,
282
+ dragState,
239
283
  ...onNavigate ? { onNavigate } : {}
240
284
  },
241
285
  child.key
@@ -246,6 +290,7 @@ function NavGroupRows({
246
290
  item,
247
291
  collapsed: false,
248
292
  renderLink,
293
+ dragState,
249
294
  ...onNavigate ? { onNavigate } : {}
250
295
  },
251
296
  item.key
@@ -257,9 +302,12 @@ function NavItemRow({
257
302
  item,
258
303
  collapsed,
259
304
  renderLink,
305
+ dragState,
260
306
  onNavigate
261
307
  }) {
262
308
  const [contextTarget, setContextTarget] = useState(null);
309
+ const target = { key: item.key, kind: "item" };
310
+ const dragProps = dragState == null ? void 0 : dragState.props({ drag: target, drop: target });
263
311
  const className = cn(
264
312
  "flex w-full items-center gap-2.5 rounded-md px-density-2 py-1.5 text-left text-[13px] text-sidebar-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
265
313
  collapsed && "justify-center px-0",
@@ -289,18 +337,26 @@ function NavItemRow({
289
337
  children
290
338
  }
291
339
  );
292
- if (!item.contextMenu) return externalLink;
293
- return /* @__PURE__ */ jsxs("div", { ref: setContextTarget, className: "w-full", children: [
294
- externalLink,
295
- /* @__PURE__ */ jsx(
296
- ContextMenu,
297
- {
298
- contextTarget,
299
- menuLabel: item.contextMenuLabel ?? `${String(item.label)} actions`,
300
- menuItems: item.contextMenu
301
- }
302
- )
303
- ] });
340
+ if (!item.contextMenu && !dragProps) return externalLink;
341
+ return /* @__PURE__ */ jsxs(
342
+ "div",
343
+ {
344
+ ref: setContextTarget,
345
+ className: cn("w-full", dragProps && NAV_DRAG_ROW_CLASS),
346
+ ...dragProps,
347
+ children: [
348
+ externalLink,
349
+ item.contextMenu && /* @__PURE__ */ jsx(
350
+ ContextMenu,
351
+ {
352
+ contextTarget,
353
+ menuLabel: item.contextMenuLabel ?? `${String(item.label)} actions`,
354
+ menuItems: item.contextMenu
355
+ }
356
+ )
357
+ ]
358
+ }
359
+ );
304
360
  }
305
361
  const link = renderLink({
306
362
  key: item.key,
@@ -309,13 +365,14 @@ function NavItemRow({
309
365
  children,
310
366
  ...title ? { title } : {}
311
367
  });
312
- if (!onNavigate && !item.contextMenu) return link;
368
+ if (!onNavigate && !item.contextMenu && !dragProps) return link;
313
369
  return /* @__PURE__ */ jsxs(
314
370
  "div",
315
371
  {
316
372
  ref: item.contextMenu ? setContextTarget : void 0,
317
- className: "w-full",
373
+ className: cn("w-full", dragProps && NAV_DRAG_ROW_CLASS),
318
374
  ...onNavigate ? { onClick: onNavigate } : {},
375
+ ...dragProps,
319
376
  children: [
320
377
  link,
321
378
  item.contextMenu && /* @__PURE__ */ jsx(