@keboola/design 11.0.0 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/AGENTS.md +16 -1
  2. package/CHANGELOG.md +2138 -0
  3. package/COMPONENT-API.md +40 -1
  4. package/dist/AIKit-DiS0CVOW.js +1320 -0
  5. package/dist/AIKit-DiS0CVOW.js.map +1 -0
  6. package/dist/Alert-DfZq9kGe.js +133 -0
  7. package/dist/Alert-DfZq9kGe.js.map +1 -0
  8. package/dist/AlertModal-Dp_XuJBW.js +219 -0
  9. package/dist/AlertModal-Dp_XuJBW.js.map +1 -0
  10. package/dist/AppShell-B5GQN6Zs.js +143 -0
  11. package/dist/AppShell-B5GQN6Zs.js.map +1 -0
  12. package/dist/AutoSaveTextarea-BeuWuszr.js +58 -0
  13. package/dist/{chunk-UGT6DKWM.js.map → AutoSaveTextarea-BeuWuszr.js.map} +1 -1
  14. package/dist/Badge-Ch26CXoP.js +195 -0
  15. package/dist/Badge-Ch26CXoP.js.map +1 -0
  16. package/dist/BrandEditor-DyzgfVkl.js +903 -0
  17. package/dist/BrandEditor-DyzgfVkl.js.map +1 -0
  18. package/dist/BrandLogo-CJkRd0F8.js +46 -0
  19. package/dist/BrandLogo-CJkRd0F8.js.map +1 -0
  20. package/dist/Breadcrumb-Frst8MTA.js +330 -0
  21. package/dist/Breadcrumb-Frst8MTA.js.map +1 -0
  22. package/dist/Button-6xBX0nNl.js +391 -0
  23. package/dist/Button-6xBX0nNl.js.map +1 -0
  24. package/dist/Calendar-cG5NIJ4O.js +6768 -0
  25. package/dist/Calendar-cG5NIJ4O.js.map +1 -0
  26. package/dist/Card-BAoZ35CV.js +105 -0
  27. package/dist/Card-BAoZ35CV.js.map +1 -0
  28. package/dist/Checkbox-GJ8-srt4.js +97 -0
  29. package/dist/Checkbox-GJ8-srt4.js.map +1 -0
  30. package/dist/Clipboard-CBJZiviP.js +58 -0
  31. package/dist/Clipboard-CBJZiviP.js.map +1 -0
  32. package/dist/ClipboardButton-ClcluT0C.js +43 -0
  33. package/dist/ClipboardButton-ClcluT0C.js.map +1 -0
  34. package/dist/CodeEditor-DyaN-Ij2.js +1000 -0
  35. package/dist/CodeEditor-DyaN-Ij2.js.map +1 -0
  36. package/dist/Collapsible-BQXWEOBC.js +34 -0
  37. package/dist/Collapsible-BQXWEOBC.js.map +1 -0
  38. package/dist/ColorInput-B8z4j4Y_.js +180 -0
  39. package/dist/ColorInput-B8z4j4Y_.js.map +1 -0
  40. package/dist/ColorModeSwitch-dZFZyqy1.js +77 -0
  41. package/dist/ColorModeSwitch-dZFZyqy1.js.map +1 -0
  42. package/dist/Combobox-Dgm6Z4ib.js +443 -0
  43. package/dist/Combobox-Dgm6Z4ib.js.map +1 -0
  44. package/dist/Command-C0aZfVTq.js +102 -0
  45. package/dist/Command-C0aZfVTq.js.map +1 -0
  46. package/dist/CopyField-BJ96zvXs.js +322 -0
  47. package/dist/CopyField-BJ96zvXs.js.map +1 -0
  48. package/dist/DateInput-B3UdzRfW.js +141 -0
  49. package/dist/DateInput-B3UdzRfW.js.map +1 -0
  50. package/dist/DatePicker-Dw3DpbUh.js +24 -0
  51. package/dist/DatePicker-Dw3DpbUh.js.map +1 -0
  52. package/dist/DateRangeInput-DTuySEiq.js +139 -0
  53. package/dist/DateRangeInput-DTuySEiq.js.map +1 -0
  54. package/dist/DateRangePicker-DCmMHg4s.js +159 -0
  55. package/dist/DateRangePicker-DCmMHg4s.js.map +1 -0
  56. package/dist/DiagramSkeleton-lwBS2YBa.js +11 -0
  57. package/dist/DiagramSkeleton-lwBS2YBa.js.map +1 -0
  58. package/dist/DiffView-ppTIzh2h.js +429 -0
  59. package/dist/DiffView-ppTIzh2h.js.map +1 -0
  60. package/dist/DropdownMenu-t90tVw6l.js +327 -0
  61. package/dist/DropdownMenu-t90tVw6l.js.map +1 -0
  62. package/dist/FieldBox-D7DYtX_m.js +70 -0
  63. package/dist/FieldBox-D7DYtX_m.js.map +1 -0
  64. package/dist/FieldItem-CAPj9lj3.d.ts +111 -0
  65. package/dist/FieldItem-D-h1NeBo.js +108 -0
  66. package/dist/FieldItem-D-h1NeBo.js.map +1 -0
  67. package/dist/FileUpload-BRv0TaZk.js +2527 -0
  68. package/dist/FileUpload-BRv0TaZk.js.map +1 -0
  69. package/dist/Form-DHvcFoEi.js +311 -0
  70. package/dist/Form-DHvcFoEi.js.map +1 -0
  71. package/dist/FormGroup-C41n65cE.js +124 -0
  72. package/dist/FormGroup-C41n65cE.js.map +1 -0
  73. package/dist/FullScreenModal-Cb3PGgh4.js +96 -0
  74. package/dist/FullScreenModal-Cb3PGgh4.js.map +1 -0
  75. package/dist/HoverCard-WfDkLK1s.js +31 -0
  76. package/dist/HoverCard-WfDkLK1s.js.map +1 -0
  77. package/dist/InputGroup-CdTq8H7c.js +292 -0
  78. package/dist/InputGroup-CdTq8H7c.js.map +1 -0
  79. package/dist/Kbd-CxHAo1oo.js +111 -0
  80. package/dist/Kbd-CxHAo1oo.js.map +1 -0
  81. package/dist/MarkedText-Ckbft5mw.js +44 -0
  82. package/dist/MarkedText-Ckbft5mw.js.map +1 -0
  83. package/dist/MermaidDiagram-ChL3WIQT.js +399 -0
  84. package/dist/MermaidDiagram-ChL3WIQT.js.map +1 -0
  85. package/dist/Modal-wqG8nJiK.js +185 -0
  86. package/dist/Modal-wqG8nJiK.js.map +1 -0
  87. package/dist/ModalTitle-C76ke2eo.js +28 -0
  88. package/dist/ModalTitle-C76ke2eo.js.map +1 -0
  89. package/dist/MultiActionButtonGroup-BiIIubiL.js +33 -0
  90. package/dist/MultiActionButtonGroup-BiIIubiL.js.map +1 -0
  91. package/dist/Navbar-BfaPeLUL.js +325 -0
  92. package/dist/Navbar-BfaPeLUL.js.map +1 -0
  93. package/dist/OtpInput-CbbymqYs.js +93 -0
  94. package/dist/OtpInput-CbbymqYs.js.map +1 -0
  95. package/dist/PageHeader-Q3IpCnQd.js +177 -0
  96. package/dist/PageHeader-Q3IpCnQd.js.map +1 -0
  97. package/dist/PageLayout-DSVM-ASz.js +176 -0
  98. package/dist/PageLayout-DSVM-ASz.js.map +1 -0
  99. package/dist/PageToolbar-OQg3mPF-.js +153 -0
  100. package/dist/PageToolbar-OQg3mPF-.js.map +1 -0
  101. package/dist/Pagination-Cjfda8KG.js +70 -0
  102. package/dist/Pagination-Cjfda8KG.js.map +1 -0
  103. package/dist/Popconfirm-D7_vfxFd.js +167 -0
  104. package/dist/Popconfirm-D7_vfxFd.js.map +1 -0
  105. package/dist/Popover-CzeHjvrB.js +85 -0
  106. package/dist/Popover-CzeHjvrB.js.map +1 -0
  107. package/dist/RadioGroup-sIveSsNa.js +233 -0
  108. package/dist/RadioGroup-sIveSsNa.js.map +1 -0
  109. package/dist/Resizable-D3vYToZH.js +52 -0
  110. package/dist/Resizable-D3vYToZH.js.map +1 -0
  111. package/dist/Search-3UiqNZRj.js +184 -0
  112. package/dist/Search-3UiqNZRj.js.map +1 -0
  113. package/dist/SearchInput-C7dF_Ir-.js +102 -0
  114. package/dist/SearchInput-C7dF_Ir-.js.map +1 -0
  115. package/dist/SectionNav-8NoTOKO8.js +276 -0
  116. package/dist/SectionNav-8NoTOKO8.js.map +1 -0
  117. package/dist/Select-Is0VkePH.js +181 -0
  118. package/dist/Select-Is0VkePH.js.map +1 -0
  119. package/dist/Sheet-Dw9BDvjI.js +169 -0
  120. package/dist/Sheet-Dw9BDvjI.js.map +1 -0
  121. package/dist/Sidebar-Dcb4rinA.js +799 -0
  122. package/dist/Sidebar-Dcb4rinA.js.map +1 -0
  123. package/dist/Slider-BOPfMOMm.js +127 -0
  124. package/dist/Slider-BOPfMOMm.js.map +1 -0
  125. package/dist/Stepper-C8sm9ZFM.js +325 -0
  126. package/dist/Stepper-C8sm9ZFM.js.map +1 -0
  127. package/dist/Switch-CX2A0v50.js +201 -0
  128. package/dist/Switch-CX2A0v50.js.map +1 -0
  129. package/dist/Table-CvYuTuNU.js +104 -0
  130. package/dist/Table-CvYuTuNU.js.map +1 -0
  131. package/dist/Tabs-UMQuDoW8.js +74 -0
  132. package/dist/Tabs-UMQuDoW8.js.map +1 -0
  133. package/dist/TextInput-CMuN1WfY.js +110 -0
  134. package/dist/TextInput-CMuN1WfY.js.map +1 -0
  135. package/dist/ThemeProvider-QncUrfJn.js +203 -0
  136. package/dist/ThemeProvider-QncUrfJn.js.map +1 -0
  137. package/dist/TimePicker-D9zktB8A.js +98 -0
  138. package/dist/TimePicker-D9zktB8A.js.map +1 -0
  139. package/dist/Timeline-6btyJl4D.js +154 -0
  140. package/dist/Timeline-6btyJl4D.js.map +1 -0
  141. package/dist/Toast-DQSbs3oA.js +49 -0
  142. package/dist/Toast-DQSbs3oA.js.map +1 -0
  143. package/dist/ToggleGroup-Cy_10Mvu.js +47 -0
  144. package/dist/ToggleGroup-Cy_10Mvu.js.map +1 -0
  145. package/dist/Workbench-BzE-Vvd9.js +293 -0
  146. package/dist/Workbench-BzE-Vvd9.js.map +1 -0
  147. package/dist/ZoomableSvg-CZEu6sAq.js +248 -0
  148. package/dist/ZoomableSvg-CZEu6sAq.js.map +1 -0
  149. package/dist/charts.d.ts +110 -103
  150. package/dist/charts.js +303 -254
  151. package/dist/charts.js.map +1 -1
  152. package/dist/classNames-BzrkDnOD.js +9 -0
  153. package/dist/classNames-BzrkDnOD.js.map +1 -0
  154. package/dist/context-KxxeMHbR.js +62 -0
  155. package/dist/context-KxxeMHbR.js.map +1 -0
  156. package/dist/editors.d.ts +244 -175
  157. package/dist/editors.js +802 -428
  158. package/dist/editors.js.map +1 -1
  159. package/dist/escapeStringRegexp-8MxP2knR.js +6 -0
  160. package/dist/escapeStringRegexp-8MxP2knR.js.map +1 -0
  161. package/dist/icons-Cek151jC.js +640 -0
  162. package/dist/icons-Cek151jC.js.map +1 -0
  163. package/dist/icons.d.ts +2 -41
  164. package/dist/icons.js +2 -9
  165. package/dist/index-m-kQEWiY.d.ts +54 -0
  166. package/dist/index.d.ts +6191 -9891
  167. package/dist/index.js +113 -124
  168. package/dist/internal/blocks/AIKit.js +2 -30
  169. package/dist/internal/blocks/AppShell.js +2 -11
  170. package/dist/internal/blocks/AutoSaveTextarea.js +2 -14
  171. package/dist/internal/blocks/BrandEditor.js +2 -23
  172. package/dist/internal/blocks/ChartPanel.js +45 -9
  173. package/dist/internal/blocks/ChartPanel.js.map +1 -1
  174. package/dist/internal/blocks/ClipboardButton.js +2 -12
  175. package/dist/internal/blocks/ColorInput.js +2 -13
  176. package/dist/internal/blocks/ColorModeSwitch.js +2 -13
  177. package/dist/internal/blocks/Command.js +2 -15
  178. package/dist/internal/blocks/CopyField.js +2 -11
  179. package/dist/internal/blocks/DashboardHero.js +58 -8
  180. package/dist/internal/blocks/DashboardHero.js.map +1 -1
  181. package/dist/internal/blocks/DateInput.js +2 -16
  182. package/dist/internal/blocks/DateRangeInput.js +2 -16
  183. package/dist/internal/blocks/EmptyConfigurationActionCard.js +15 -9
  184. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -1
  185. package/dist/internal/blocks/EmptyState.js +141 -3
  186. package/dist/internal/blocks/EmptyState.js.map +1 -1
  187. package/dist/internal/blocks/ErrorState.js +178 -4
  188. package/dist/internal/blocks/ErrorState.js.map +1 -1
  189. package/dist/internal/blocks/ExportMenu.js +40 -12
  190. package/dist/internal/blocks/ExportMenu.js.map +1 -1
  191. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +56 -0
  192. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js.map +1 -0
  193. package/dist/internal/blocks/Form.js +2 -29
  194. package/dist/internal/blocks/FormGroup.js +2 -18
  195. package/dist/internal/blocks/GoogleButton.js +94 -9
  196. package/dist/internal/blocks/GoogleButton.js.map +1 -1
  197. package/dist/internal/blocks/MicrosoftButton.js +63 -9
  198. package/dist/internal/blocks/MicrosoftButton.js.map +1 -1
  199. package/dist/internal/blocks/MultiActionButtonGroup.js +2 -12
  200. package/dist/internal/blocks/MultiCombobox.js +192 -13
  201. package/dist/internal/blocks/MultiCombobox.js.map +1 -1
  202. package/dist/internal/blocks/NumberInput.js +43 -11
  203. package/dist/internal/blocks/NumberInput.js.map +1 -1
  204. package/dist/internal/blocks/OtpInput.js +2 -10
  205. package/dist/internal/blocks/PageHeader.js +2 -9
  206. package/dist/internal/blocks/PageLayout.js +2 -9
  207. package/dist/internal/blocks/PageToolbar.js +2 -13
  208. package/dist/internal/blocks/PasswordInput.js +96 -12
  209. package/dist/internal/blocks/PasswordInput.js.map +1 -1
  210. package/dist/internal/blocks/SearchInput.js +2 -12
  211. package/dist/internal/blocks/SearchInputWithNavigation.js +64 -15
  212. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -1
  213. package/dist/internal/blocks/SectionNav.js +2 -15
  214. package/dist/internal/blocks/SplitButton.js +45 -13
  215. package/dist/internal/blocks/SplitButton.js.map +1 -1
  216. package/dist/internal/blocks/StatCard.js +96 -9
  217. package/dist/internal/blocks/StatCard.js.map +1 -1
  218. package/dist/internal/blocks/TextInput.js +2 -13
  219. package/dist/internal/blocks/Textarea.js +31 -12
  220. package/dist/internal/blocks/Textarea.js.map +1 -1
  221. package/dist/internal/blocks/TimeInput.js +76 -16
  222. package/dist/internal/blocks/TimeInput.js.map +1 -1
  223. package/dist/internal/components/Alert.js +2 -11
  224. package/dist/internal/components/AlertModal.js +2 -11
  225. package/dist/internal/components/Avatar.js +52 -8
  226. package/dist/internal/components/Avatar.js.map +1 -1
  227. package/dist/internal/components/Badge.js +2 -9
  228. package/dist/internal/components/BrandLogo.js +2 -11
  229. package/dist/internal/components/Breadcrumb.js +2 -14
  230. package/dist/internal/components/Button.js +2 -10
  231. package/dist/internal/components/ButtonGroup.js +65 -8
  232. package/dist/internal/components/ButtonGroup.js.map +1 -1
  233. package/dist/internal/components/Calendar.js +2 -9
  234. package/dist/internal/components/Card.js +2 -9
  235. package/dist/internal/components/Checkbox.js +2 -11
  236. package/dist/internal/components/Clipboard.js +2 -9
  237. package/dist/internal/components/Collapsible.js +2 -9
  238. package/dist/internal/components/CollapsiblePanel.js +86 -10
  239. package/dist/internal/components/CollapsiblePanel.js.map +1 -1
  240. package/dist/internal/components/Combobox.js +2 -13
  241. package/dist/internal/components/DatePicker.js +2 -11
  242. package/dist/internal/components/DateRangePicker.js +2 -17
  243. package/dist/internal/components/DiffView.js +2 -9
  244. package/dist/internal/components/DotsLoader.js +17 -4
  245. package/dist/internal/components/DotsLoader.js.map +1 -1
  246. package/dist/internal/components/DropdownMenu.js +2 -11
  247. package/dist/internal/components/EmptySearchContent.js +11 -3
  248. package/dist/internal/components/EmptySearchContent.js.map +1 -1
  249. package/dist/internal/components/FileUpload.js +2 -11
  250. package/dist/internal/components/FullScreenModal.js +2 -12
  251. package/dist/internal/components/HelpBlock.js +24 -3
  252. package/dist/internal/components/HelpBlock.js.map +1 -1
  253. package/dist/internal/components/HoverCard.js +2 -9
  254. package/dist/internal/components/InputGroup.js +2 -11
  255. package/dist/internal/components/Kbd.js +2 -9
  256. package/dist/internal/components/Label.js +38 -8
  257. package/dist/internal/components/Label.js.map +1 -1
  258. package/dist/internal/components/Link.js +21 -8
  259. package/dist/internal/components/Link.js.map +1 -1
  260. package/dist/internal/components/MarkedText.js +2 -5
  261. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +19 -9
  262. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -1
  263. package/dist/internal/components/MergeEditor/PaneHeader.js +12 -3
  264. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -1
  265. package/dist/internal/components/MergeEditor/constants.js +17 -3
  266. package/dist/internal/components/MergeEditor/constants.js.map +1 -1
  267. package/dist/internal/components/MergeEditor/useMergeDiff.js +2 -5
  268. package/dist/internal/components/Modal.js +2 -13
  269. package/dist/internal/components/Navbar.js +2 -14
  270. package/dist/internal/components/Pagination.js +2 -11
  271. package/dist/internal/components/PanelWithDetails.js +30 -10
  272. package/dist/internal/components/PanelWithDetails.js.map +1 -1
  273. package/dist/internal/components/Popconfirm.js +2 -12
  274. package/dist/internal/components/Popover.js +2 -9
  275. package/dist/internal/components/Progress.js +46 -8
  276. package/dist/internal/components/Progress.js.map +1 -1
  277. package/dist/internal/components/RadioGroup.js +2 -12
  278. package/dist/internal/components/Resizable.js +2 -9
  279. package/dist/internal/components/ScrollArea.js +41 -8
  280. package/dist/internal/components/ScrollArea.js.map +1 -1
  281. package/dist/internal/components/Search.js +2 -10
  282. package/dist/internal/components/Select.js +2 -12
  283. package/dist/internal/components/Separator.js +83 -8
  284. package/dist/internal/components/Separator.js.map +1 -1
  285. package/dist/internal/components/Sheet.js +2 -12
  286. package/dist/internal/components/Sidebar.js +2 -20
  287. package/dist/internal/components/Skeleton/Skeleton.js +38 -8
  288. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -1
  289. package/dist/internal/components/Skeleton/SkeletonList.js +40 -9
  290. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -1
  291. package/dist/internal/components/Slider.js +2 -11
  292. package/dist/internal/components/SpotlightBackdrop.js +131 -8
  293. package/dist/internal/components/SpotlightBackdrop.js.map +1 -1
  294. package/dist/internal/components/Stepper.js +2 -10
  295. package/dist/internal/components/Switch.js +2 -10
  296. package/dist/internal/components/Table.js +2 -10
  297. package/dist/internal/components/Tabs.js +2 -12
  298. package/dist/internal/components/ThemeProvider.js +3 -10
  299. package/dist/internal/components/TimePicker.js +2 -12
  300. package/dist/internal/components/Timeline.js +2 -10
  301. package/dist/internal/components/Toast.js +3 -11
  302. package/dist/internal/components/Toggle.js +168 -8
  303. package/dist/internal/components/Toggle.js.map +1 -1
  304. package/dist/internal/components/ToggleGroup.js +2 -9
  305. package/dist/internal/components/Tooltip.js +2 -8
  306. package/dist/internal/components/Truncated.js +44 -8
  307. package/dist/internal/components/Truncated.js.map +1 -1
  308. package/dist/internal/components/Workbench.js +2 -11
  309. package/dist/internal/components/ZoomableSvg.js +2 -13
  310. package/dist/internal/hooks/useAutosizeInput.js +76 -3
  311. package/dist/internal/hooks/useAutosizeInput.js.map +1 -1
  312. package/dist/internal/hooks/useScrollbarPosition.js +44 -4
  313. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -1
  314. package/dist/internal/hooks/useStableCallback.js +28 -3
  315. package/dist/internal/hooks/useStableCallback.js.map +1 -1
  316. package/dist/internal/utils/mergeRefs.js +19 -3
  317. package/dist/internal/utils/mergeRefs.js.map +1 -1
  318. package/dist/internal/utils.js +5 -8
  319. package/dist/markdown-editor.d.ts +72 -72
  320. package/dist/markdown-editor.js +1122 -1207
  321. package/dist/markdown-editor.js.map +1 -1
  322. package/dist/mermaid.d.ts +12 -12
  323. package/dist/mermaid.js +2 -18
  324. package/dist/rjsf.d.ts +45 -34
  325. package/dist/rjsf.js +1601 -1671
  326. package/dist/rjsf.js.map +1 -1
  327. package/dist/rolldown-runtime-Bdc48AWt.js +33 -0
  328. package/dist/styles-DSUP_-9Z.js +158 -0
  329. package/dist/styles-DSUP_-9Z.js.map +1 -0
  330. package/dist/styles.css +1 -1
  331. package/dist/testing.d.ts +8 -7
  332. package/dist/testing.js +36 -21
  333. package/dist/testing.js.map +1 -1
  334. package/dist/themeTokens-BNg98Mu9.js +85 -0
  335. package/dist/themeTokens-BNg98Mu9.js.map +1 -0
  336. package/dist/toast-CjkURw0M.js +184 -0
  337. package/dist/toast-CjkURw0M.js.map +1 -0
  338. package/dist/useColorSchemeState-CYqcUfSH.js +61 -0
  339. package/dist/useColorSchemeState-CYqcUfSH.js.map +1 -0
  340. package/dist/useControllableState-M6494mCT.js +31 -0
  341. package/dist/useControllableState-M6494mCT.js.map +1 -0
  342. package/dist/useElement-DkF6esWL.js +15 -0
  343. package/dist/useElement-DkF6esWL.js.map +1 -0
  344. package/dist/useMergeDiff-CvowEXJ1.js +465 -0
  345. package/dist/useMergeDiff-CvowEXJ1.js.map +1 -0
  346. package/dist/utils-D0c5VAyF.js +308 -0
  347. package/dist/utils-D0c5VAyF.js.map +1 -0
  348. package/package.json +11 -10
  349. package/dist/MermaidDiagram-ZU5KAVRT.js +0 -18
  350. package/dist/MermaidDiagram-ZU5KAVRT.js.map +0 -1
  351. package/dist/chunk-2YYJDKSP.js +0 -51
  352. package/dist/chunk-2YYJDKSP.js.map +0 -1
  353. package/dist/chunk-3P5UUCFI.js +0 -385
  354. package/dist/chunk-3P5UUCFI.js.map +0 -1
  355. package/dist/chunk-3QDFDDWZ.js +0 -99
  356. package/dist/chunk-3QDFDDWZ.js.map +0 -1
  357. package/dist/chunk-3W27OLK5.js +0 -15
  358. package/dist/chunk-3W27OLK5.js.map +0 -1
  359. package/dist/chunk-4FIZZONW.js +0 -40
  360. package/dist/chunk-4FIZZONW.js.map +0 -1
  361. package/dist/chunk-4GIAXOJG.js +0 -133
  362. package/dist/chunk-4GIAXOJG.js.map +0 -1
  363. package/dist/chunk-52NDNMK7.js +0 -99
  364. package/dist/chunk-52NDNMK7.js.map +0 -1
  365. package/dist/chunk-576G5OES.js +0 -201
  366. package/dist/chunk-576G5OES.js.map +0 -1
  367. package/dist/chunk-5AIE6SET.js +0 -659
  368. package/dist/chunk-5AIE6SET.js.map +0 -1
  369. package/dist/chunk-5FTNAZRW.js +0 -327
  370. package/dist/chunk-5FTNAZRW.js.map +0 -1
  371. package/dist/chunk-5IG2S7ZY.js +0 -70
  372. package/dist/chunk-5IG2S7ZY.js.map +0 -1
  373. package/dist/chunk-5QCXHNCW.js +0 -404
  374. package/dist/chunk-5QCXHNCW.js.map +0 -1
  375. package/dist/chunk-6DUMGC7Y.js +0 -105
  376. package/dist/chunk-6DUMGC7Y.js.map +0 -1
  377. package/dist/chunk-6J25CVST.js +0 -174
  378. package/dist/chunk-6J25CVST.js.map +0 -1
  379. package/dist/chunk-6NN35XOP.js +0 -120
  380. package/dist/chunk-6NN35XOP.js.map +0 -1
  381. package/dist/chunk-6NZBVA4T.js +0 -24
  382. package/dist/chunk-6NZBVA4T.js.map +0 -1
  383. package/dist/chunk-6W5BHRCL.js +0 -295
  384. package/dist/chunk-6W5BHRCL.js.map +0 -1
  385. package/dist/chunk-72BKRCEG.js +0 -409
  386. package/dist/chunk-72BKRCEG.js.map +0 -1
  387. package/dist/chunk-7GTI3PPI.js +0 -95
  388. package/dist/chunk-7GTI3PPI.js.map +0 -1
  389. package/dist/chunk-7P6PLZ4B.js +0 -74
  390. package/dist/chunk-7P6PLZ4B.js.map +0 -1
  391. package/dist/chunk-7WZWY5IA.js +0 -46
  392. package/dist/chunk-7WZWY5IA.js.map +0 -1
  393. package/dist/chunk-AIYO2632.js +0 -489
  394. package/dist/chunk-AIYO2632.js.map +0 -1
  395. package/dist/chunk-ANFZWPNE.js +0 -112
  396. package/dist/chunk-ANFZWPNE.js.map +0 -1
  397. package/dist/chunk-ANZTVAJU.js +0 -73
  398. package/dist/chunk-ANZTVAJU.js.map +0 -1
  399. package/dist/chunk-BD5BTJKX.js +0 -166
  400. package/dist/chunk-BD5BTJKX.js.map +0 -1
  401. package/dist/chunk-BHGIDSRJ.js +0 -140
  402. package/dist/chunk-BHGIDSRJ.js.map +0 -1
  403. package/dist/chunk-BSQWZITZ.js +0 -507
  404. package/dist/chunk-BSQWZITZ.js.map +0 -1
  405. package/dist/chunk-D3LAIK62.js +0 -23
  406. package/dist/chunk-D3LAIK62.js.map +0 -1
  407. package/dist/chunk-DODCR43C.js +0 -155
  408. package/dist/chunk-DODCR43C.js.map +0 -1
  409. package/dist/chunk-EEK5NGZF.js +0 -40
  410. package/dist/chunk-EEK5NGZF.js.map +0 -1
  411. package/dist/chunk-ENRG7TXA.js +0 -11
  412. package/dist/chunk-ENRG7TXA.js.map +0 -1
  413. package/dist/chunk-EQRMGIGY.js +0 -239
  414. package/dist/chunk-EQRMGIGY.js.map +0 -1
  415. package/dist/chunk-ERAHK5YQ.js +0 -495
  416. package/dist/chunk-ERAHK5YQ.js.map +0 -1
  417. package/dist/chunk-F3FOFY2P.js +0 -124
  418. package/dist/chunk-F3FOFY2P.js.map +0 -1
  419. package/dist/chunk-F6BTWFOC.js +0 -507
  420. package/dist/chunk-F6BTWFOC.js.map +0 -1
  421. package/dist/chunk-F6J6NNAL.js +0 -34
  422. package/dist/chunk-F6J6NNAL.js.map +0 -1
  423. package/dist/chunk-FCHJ7D5O.js +0 -59
  424. package/dist/chunk-FCHJ7D5O.js.map +0 -1
  425. package/dist/chunk-FFJTEQCC.js +0 -80
  426. package/dist/chunk-FFJTEQCC.js.map +0 -1
  427. package/dist/chunk-FUFMVW7O.js +0 -64
  428. package/dist/chunk-FUFMVW7O.js.map +0 -1
  429. package/dist/chunk-FVPGQ6UE.js +0 -25
  430. package/dist/chunk-FVPGQ6UE.js.map +0 -1
  431. package/dist/chunk-G3PMV62Z.js +0 -33
  432. package/dist/chunk-G3PMV62Z.js.map +0 -1
  433. package/dist/chunk-GACFOW3E.js +0 -51
  434. package/dist/chunk-GACFOW3E.js.map +0 -1
  435. package/dist/chunk-GDT6HQMK.js +0 -42
  436. package/dist/chunk-GDT6HQMK.js.map +0 -1
  437. package/dist/chunk-HLGU22C6.js +0 -2589
  438. package/dist/chunk-HLGU22C6.js.map +0 -1
  439. package/dist/chunk-HPMYYGP7.js +0 -134
  440. package/dist/chunk-HPMYYGP7.js.map +0 -1
  441. package/dist/chunk-I2UCOD45.js +0 -197
  442. package/dist/chunk-I2UCOD45.js.map +0 -1
  443. package/dist/chunk-IEGDZUVM.js +0 -75
  444. package/dist/chunk-IEGDZUVM.js.map +0 -1
  445. package/dist/chunk-IIS7INHF.js +0 -47
  446. package/dist/chunk-IIS7INHF.js.map +0 -1
  447. package/dist/chunk-ITELSEFU.js +0 -256
  448. package/dist/chunk-ITELSEFU.js.map +0 -1
  449. package/dist/chunk-IXAYNBOY.js +0 -407
  450. package/dist/chunk-IXAYNBOY.js.map +0 -1
  451. package/dist/chunk-JUW2ETEI.js +0 -191
  452. package/dist/chunk-JUW2ETEI.js.map +0 -1
  453. package/dist/chunk-K65C7CVE.js +0 -127
  454. package/dist/chunk-K65C7CVE.js.map +0 -1
  455. package/dist/chunk-KDI64MCY.js +0 -189
  456. package/dist/chunk-KDI64MCY.js.map +0 -1
  457. package/dist/chunk-KN4ASMH5.js +0 -160
  458. package/dist/chunk-KN4ASMH5.js.map +0 -1
  459. package/dist/chunk-KQW7QNTU.js +0 -1549
  460. package/dist/chunk-KQW7QNTU.js.map +0 -1
  461. package/dist/chunk-KR7NXXHC.js +0 -66
  462. package/dist/chunk-KR7NXXHC.js.map +0 -1
  463. package/dist/chunk-KRZKIVMA.js +0 -142
  464. package/dist/chunk-KRZKIVMA.js.map +0 -1
  465. package/dist/chunk-KTTLLKGQ.js +0 -185
  466. package/dist/chunk-KTTLLKGQ.js.map +0 -1
  467. package/dist/chunk-KWKSHPDP.js +0 -234
  468. package/dist/chunk-KWKSHPDP.js.map +0 -1
  469. package/dist/chunk-KZVC7OYG.js +0 -57
  470. package/dist/chunk-KZVC7OYG.js.map +0 -1
  471. package/dist/chunk-L5DHUN2V.js +0 -204
  472. package/dist/chunk-L5DHUN2V.js.map +0 -1
  473. package/dist/chunk-LCTGEH57.js +0 -1376
  474. package/dist/chunk-LCTGEH57.js.map +0 -1
  475. package/dist/chunk-LXLIQ2D6.js +0 -12
  476. package/dist/chunk-LXLIQ2D6.js.map +0 -1
  477. package/dist/chunk-M4CTURKX.js +0 -84
  478. package/dist/chunk-M4CTURKX.js.map +0 -1
  479. package/dist/chunk-M6LTUPVP.js +0 -301
  480. package/dist/chunk-M6LTUPVP.js.map +0 -1
  481. package/dist/chunk-MA6RRHDT.js +0 -291
  482. package/dist/chunk-MA6RRHDT.js.map +0 -1
  483. package/dist/chunk-MODE4QIA.js +0 -6
  484. package/dist/chunk-MODE4QIA.js.map +0 -1
  485. package/dist/chunk-MVILMVGG.js +0 -118
  486. package/dist/chunk-MVILMVGG.js.map +0 -1
  487. package/dist/chunk-MWS4VCLV.js +0 -17
  488. package/dist/chunk-MWS4VCLV.js.map +0 -1
  489. package/dist/chunk-NEUX74SO.js +0 -315
  490. package/dist/chunk-NEUX74SO.js.map +0 -1
  491. package/dist/chunk-NFHKYBRD.js +0 -156
  492. package/dist/chunk-NFHKYBRD.js.map +0 -1
  493. package/dist/chunk-NHJNNXD3.js +0 -89
  494. package/dist/chunk-NHJNNXD3.js.map +0 -1
  495. package/dist/chunk-O2BF3HZL.js +0 -33
  496. package/dist/chunk-O2BF3HZL.js.map +0 -1
  497. package/dist/chunk-OANXCZYD.js +0 -212
  498. package/dist/chunk-OANXCZYD.js.map +0 -1
  499. package/dist/chunk-ODJF7YIP.js +0 -230
  500. package/dist/chunk-ODJF7YIP.js.map +0 -1
  501. package/dist/chunk-ON4BJTHI.js +0 -101
  502. package/dist/chunk-ON4BJTHI.js.map +0 -1
  503. package/dist/chunk-OTL5WXIJ.js +0 -16
  504. package/dist/chunk-OTL5WXIJ.js.map +0 -1
  505. package/dist/chunk-PACNBKJV.js +0 -47
  506. package/dist/chunk-PACNBKJV.js.map +0 -1
  507. package/dist/chunk-PROCA7K7.js +0 -23
  508. package/dist/chunk-PROCA7K7.js.map +0 -1
  509. package/dist/chunk-QGMIPA67.js +0 -85
  510. package/dist/chunk-QGMIPA67.js.map +0 -1
  511. package/dist/chunk-QQA37LFB.js +0 -190
  512. package/dist/chunk-QQA37LFB.js.map +0 -1
  513. package/dist/chunk-QZAWRSEB.js +0 -61
  514. package/dist/chunk-QZAWRSEB.js.map +0 -1
  515. package/dist/chunk-R74KGWNS.js +0 -699
  516. package/dist/chunk-R74KGWNS.js.map +0 -1
  517. package/dist/chunk-RFDLHMKL.js +0 -110
  518. package/dist/chunk-RFDLHMKL.js.map +0 -1
  519. package/dist/chunk-RL64HN7S.js +0 -40
  520. package/dist/chunk-RL64HN7S.js.map +0 -1
  521. package/dist/chunk-RMRQKPL7.js +0 -115
  522. package/dist/chunk-RMRQKPL7.js.map +0 -1
  523. package/dist/chunk-RQVK4IYC.js +0 -606
  524. package/dist/chunk-RQVK4IYC.js.map +0 -1
  525. package/dist/chunk-RTW56PWZ.js +0 -59
  526. package/dist/chunk-RTW56PWZ.js.map +0 -1
  527. package/dist/chunk-RUTPQNLR.js +0 -266
  528. package/dist/chunk-RUTPQNLR.js.map +0 -1
  529. package/dist/chunk-S6TAF63G.js +0 -25
  530. package/dist/chunk-S6TAF63G.js.map +0 -1
  531. package/dist/chunk-SBGAUGXY.js +0 -224
  532. package/dist/chunk-SBGAUGXY.js.map +0 -1
  533. package/dist/chunk-SC275NHZ.js +0 -407
  534. package/dist/chunk-SC275NHZ.js.map +0 -1
  535. package/dist/chunk-SCQPU4UE.js +0 -97
  536. package/dist/chunk-SCQPU4UE.js.map +0 -1
  537. package/dist/chunk-SFFF2WQP.js +0 -8
  538. package/dist/chunk-SFFF2WQP.js.map +0 -1
  539. package/dist/chunk-SJYMHZKA.js +0 -36
  540. package/dist/chunk-SJYMHZKA.js.map +0 -1
  541. package/dist/chunk-SLCCUJVN.js +0 -125
  542. package/dist/chunk-SLCCUJVN.js.map +0 -1
  543. package/dist/chunk-SVBSNSD4.js +0 -259
  544. package/dist/chunk-SVBSNSD4.js.map +0 -1
  545. package/dist/chunk-SVPLTL35.js +0 -62
  546. package/dist/chunk-SVPLTL35.js.map +0 -1
  547. package/dist/chunk-SWQFYNYG.js +0 -338
  548. package/dist/chunk-SWQFYNYG.js.map +0 -1
  549. package/dist/chunk-THHB4EWS.js +0 -72
  550. package/dist/chunk-THHB4EWS.js.map +0 -1
  551. package/dist/chunk-TUCDD33E.js +0 -246
  552. package/dist/chunk-TUCDD33E.js.map +0 -1
  553. package/dist/chunk-TV4WAP2R.js +0 -14
  554. package/dist/chunk-TV4WAP2R.js.map +0 -1
  555. package/dist/chunk-U3A6YBTZ.js +0 -134
  556. package/dist/chunk-U3A6YBTZ.js.map +0 -1
  557. package/dist/chunk-UGT6DKWM.js +0 -95
  558. package/dist/chunk-VSERHUWD.js +0 -212
  559. package/dist/chunk-VSERHUWD.js.map +0 -1
  560. package/dist/chunk-VYG7BDXC.js +0 -49
  561. package/dist/chunk-VYG7BDXC.js.map +0 -1
  562. package/dist/chunk-WETKNYZX.js +0 -52
  563. package/dist/chunk-WETKNYZX.js.map +0 -1
  564. package/dist/chunk-WGG4AML3.js +0 -216
  565. package/dist/chunk-WGG4AML3.js.map +0 -1
  566. package/dist/chunk-WKAUEL6I.js +0 -30
  567. package/dist/chunk-WKAUEL6I.js.map +0 -1
  568. package/dist/chunk-WPOLA5CG.js +0 -81
  569. package/dist/chunk-WPOLA5CG.js.map +0 -1
  570. package/dist/chunk-WPVETCGJ.js +0 -254
  571. package/dist/chunk-WPVETCGJ.js.map +0 -1
  572. package/dist/chunk-WTSM3A7E.js +0 -13
  573. package/dist/chunk-WTSM3A7E.js.map +0 -1
  574. package/dist/chunk-WU3F2K3T.js +0 -148
  575. package/dist/chunk-WU3F2K3T.js.map +0 -1
  576. package/dist/chunk-WZZK2DTZ.js +0 -39
  577. package/dist/chunk-WZZK2DTZ.js.map +0 -1
  578. package/dist/chunk-X4IHLKRD.js +0 -42
  579. package/dist/chunk-X4IHLKRD.js.map +0 -1
  580. package/dist/chunk-XAHEXZJC.js +0 -80
  581. package/dist/chunk-XAHEXZJC.js.map +0 -1
  582. package/dist/chunk-XCYGJDUX.js +0 -31
  583. package/dist/chunk-XCYGJDUX.js.map +0 -1
  584. package/dist/chunk-Y4W3JORC.js +0 -104
  585. package/dist/chunk-Y4W3JORC.js.map +0 -1
  586. package/dist/chunk-YFZJ3ZLG.js +0 -1297
  587. package/dist/chunk-YFZJ3ZLG.js.map +0 -1
  588. package/dist/chunk-YI3WLXEN.js +0 -4387
  589. package/dist/chunk-YI3WLXEN.js.map +0 -1
  590. package/dist/chunk-ZBKFSPD3.js +0 -29
  591. package/dist/chunk-ZBKFSPD3.js.map +0 -1
  592. package/dist/chunk-ZOERRQ6A.js +0 -79
  593. package/dist/chunk-ZOERRQ6A.js.map +0 -1
  594. package/dist/chunk-ZSTGUKHU.js +0 -10
  595. package/dist/chunk-ZSTGUKHU.js.map +0 -1
  596. package/dist/chunk-ZUEHDL27.js +0 -65
  597. package/dist/chunk-ZUEHDL27.js.map +0 -1
  598. package/dist/constants-D3gaMY-W.d.ts +0 -39
  599. package/dist/icons.js.map +0 -1
  600. package/dist/index.js.map +0 -1
  601. package/dist/internal/blocks/AIKit.js.map +0 -1
  602. package/dist/internal/blocks/AppShell.js.map +0 -1
  603. package/dist/internal/blocks/AutoSaveTextarea.js.map +0 -1
  604. package/dist/internal/blocks/BrandEditor.js.map +0 -1
  605. package/dist/internal/blocks/ClipboardButton.js.map +0 -1
  606. package/dist/internal/blocks/ColorInput.js.map +0 -1
  607. package/dist/internal/blocks/ColorModeSwitch.js.map +0 -1
  608. package/dist/internal/blocks/Command.js.map +0 -1
  609. package/dist/internal/blocks/CopyField.js.map +0 -1
  610. package/dist/internal/blocks/DateInput.js.map +0 -1
  611. package/dist/internal/blocks/DateRangeInput.js.map +0 -1
  612. package/dist/internal/blocks/Form.js.map +0 -1
  613. package/dist/internal/blocks/FormGroup.js.map +0 -1
  614. package/dist/internal/blocks/MultiActionButtonGroup.js.map +0 -1
  615. package/dist/internal/blocks/OtpInput.js.map +0 -1
  616. package/dist/internal/blocks/PageHeader.js.map +0 -1
  617. package/dist/internal/blocks/PageLayout.js.map +0 -1
  618. package/dist/internal/blocks/PageToolbar.js.map +0 -1
  619. package/dist/internal/blocks/SearchInput.js.map +0 -1
  620. package/dist/internal/blocks/SectionNav.js.map +0 -1
  621. package/dist/internal/blocks/TextInput.js.map +0 -1
  622. package/dist/internal/components/Alert.js.map +0 -1
  623. package/dist/internal/components/AlertModal.js.map +0 -1
  624. package/dist/internal/components/Badge.js.map +0 -1
  625. package/dist/internal/components/BrandLogo.js.map +0 -1
  626. package/dist/internal/components/Breadcrumb.js.map +0 -1
  627. package/dist/internal/components/Button.js.map +0 -1
  628. package/dist/internal/components/Calendar.js.map +0 -1
  629. package/dist/internal/components/Card.js.map +0 -1
  630. package/dist/internal/components/Checkbox.js.map +0 -1
  631. package/dist/internal/components/Clipboard.js.map +0 -1
  632. package/dist/internal/components/Collapsible.js.map +0 -1
  633. package/dist/internal/components/Combobox.js.map +0 -1
  634. package/dist/internal/components/DatePicker.js.map +0 -1
  635. package/dist/internal/components/DateRangePicker.js.map +0 -1
  636. package/dist/internal/components/DiffView.js.map +0 -1
  637. package/dist/internal/components/DropdownMenu.js.map +0 -1
  638. package/dist/internal/components/FileUpload.js.map +0 -1
  639. package/dist/internal/components/FullScreenModal.js.map +0 -1
  640. package/dist/internal/components/HoverCard.js.map +0 -1
  641. package/dist/internal/components/InputGroup.js.map +0 -1
  642. package/dist/internal/components/Kbd.js.map +0 -1
  643. package/dist/internal/components/MarkedText.js.map +0 -1
  644. package/dist/internal/components/MergeEditor/useMergeDiff.js.map +0 -1
  645. package/dist/internal/components/Modal.js.map +0 -1
  646. package/dist/internal/components/Navbar.js.map +0 -1
  647. package/dist/internal/components/Pagination.js.map +0 -1
  648. package/dist/internal/components/Popconfirm.js.map +0 -1
  649. package/dist/internal/components/Popover.js.map +0 -1
  650. package/dist/internal/components/RadioGroup.js.map +0 -1
  651. package/dist/internal/components/Resizable.js.map +0 -1
  652. package/dist/internal/components/Search.js.map +0 -1
  653. package/dist/internal/components/Select.js.map +0 -1
  654. package/dist/internal/components/Sheet.js.map +0 -1
  655. package/dist/internal/components/Sidebar.js.map +0 -1
  656. package/dist/internal/components/Slider.js.map +0 -1
  657. package/dist/internal/components/Stepper.js.map +0 -1
  658. package/dist/internal/components/Switch.js.map +0 -1
  659. package/dist/internal/components/Table.js.map +0 -1
  660. package/dist/internal/components/Tabs.js.map +0 -1
  661. package/dist/internal/components/ThemeProvider.js.map +0 -1
  662. package/dist/internal/components/TimePicker.js.map +0 -1
  663. package/dist/internal/components/Timeline.js.map +0 -1
  664. package/dist/internal/components/Toast.js.map +0 -1
  665. package/dist/internal/components/ToggleGroup.js.map +0 -1
  666. package/dist/internal/components/Tooltip.js.map +0 -1
  667. package/dist/internal/components/Workbench.js.map +0 -1
  668. package/dist/internal/components/ZoomableSvg.js.map +0 -1
  669. package/dist/internal/utils.js.map +0 -1
  670. package/dist/mermaid.js.map +0 -1
@@ -1,1297 +0,0 @@
1
- import { useStableCallback } from './chunk-TV4WAP2R.js';
2
- import { Kbd } from './chunk-7GTI3PPI.js';
3
- import { useThemeAttributes, resolveToken } from './chunk-IIS7INHF.js';
4
- import { ClipboardButton } from './chunk-FUFMVW7O.js';
5
- import { HelpBlock } from './chunk-PROCA7K7.js';
6
- import { keyCodes, isMac } from './chunk-SWQFYNYG.js';
7
- import { escapeStringRegexp } from './chunk-MODE4QIA.js';
8
- import { useArgoDesign } from './chunk-WETKNYZX.js';
9
- import { cn } from './chunk-LXLIQ2D6.js';
10
- import { javascript } from '@codemirror/lang-javascript';
11
- import { jsonParseLinter, json } from '@codemirror/lang-json';
12
- import { python } from '@codemirror/lang-python';
13
- import { PLSQL, MSSQL, PostgreSQL, MySQL, StandardSQL } from '@codemirror/lang-sql';
14
- import { StreamLanguage } from '@codemirror/language';
15
- import { r } from '@codemirror/legacy-modes/mode/r';
16
- import { shell } from '@codemirror/legacy-modes/mode/shell';
17
- import { toml } from '@codemirror/legacy-modes/mode/toml';
18
- import { tags } from '@lezer/highlight';
19
- import { githubLightInit } from '@uiw/codemirror-theme-github';
20
- import { installExtensions, getSqlLanguageSupport } from '@keboola/codemirror-lang-sql';
21
- import colors from '@keboola/tailwind-config/colors';
22
- import { simpleMode } from '@codemirror/legacy-modes/mode/simple-mode';
23
- import { useRef, useEffect, useLayoutEffect, useMemo } from 'react';
24
- import { completeAnyWord, autocompletion } from '@codemirror/autocomplete';
25
- import { linter } from '@codemirror/lint';
26
- import { unifiedMergeView } from '@codemirror/merge';
27
- import { EditorView, Decoration, ViewPlugin, gutter, GutterMarker, keymap as keymap$1, placeholder, tooltips } from '@codemirror/view';
28
- import CodeMirror, { keymap, EditorState, EditorView as EditorView$1 } from '@uiw/react-codemirror';
29
- import { jsxs, jsx } from 'react/jsx-runtime';
30
- import { StateEffect, StateField, RangeSet, Compartment } from '@codemirror/state';
31
- import { defaultKeymap } from '@codemirror/commands';
32
-
33
- var COMMANDS = [
34
- "run-operation",
35
- "run",
36
- "test",
37
- "seed",
38
- "snapshot",
39
- "list",
40
- "ls",
41
- "compile",
42
- "build",
43
- "deps",
44
- "docs",
45
- "source"
46
- ];
47
- var SUBCOMMANDS = { docs: ["generate"], source: ["freshness"] };
48
- var ARGUMENTS = ["--select", "--exclude", "--selector", "--defer", "--resource-type", "-s"];
49
- var SELECTORS = ["--select", "--exclude", "-s"];
50
- var METHODS = [
51
- "path:",
52
- "source:",
53
- "tag:",
54
- "package:",
55
- "config:",
56
- "test_type:",
57
- "test_name:",
58
- "state:",
59
- "exposure:",
60
- "metric:",
61
- "result:",
62
- "source_status:",
63
- "column_name:"
64
- ];
65
- var FLAGS = [
66
- "--fail-fast",
67
- "--warn-error",
68
- "--favor-state",
69
- "--vars",
70
- "--models",
71
- "--threads",
72
- "--profiles-dir",
73
- "--profile",
74
- "--full-refresh"
75
- ];
76
- var COMMAND_PHRASES = COMMANDS.flatMap((command) => {
77
- const subcommands = SUBCOMMANDS[command];
78
- return subcommands ? subcommands.map((subcommand) => `${command} ${subcommand}`) : [command];
79
- });
80
- var alternation = (list) => [...list].sort((a, b) => b.length - a.length).join("|");
81
- var word = (list) => new RegExp(`^\\s+(?:${alternation(list)})\\b`, "i");
82
- var prefix = (list) => new RegExp(`^\\s+(?:${alternation(list)})`, "i");
83
- var WORD = /[\w:-]*$/;
84
- var asOptions = (list, type) => list.map((label) => ({ label, type }));
85
- var DBT = [{ label: "dbt", type: "keyword" }];
86
- var COMMAND_OPTIONS = asOptions(COMMANDS, "keyword");
87
- var SUBCOMMAND_OPTIONS = Object.fromEntries(
88
- Object.entries(SUBCOMMANDS).map(([command, subcommands]) => [
89
- command,
90
- asOptions(subcommands, "keyword")
91
- ])
92
- );
93
- var ARGUMENT_OPTIONS = asOptions(ARGUMENTS, "variable");
94
- var FLAG_OPTIONS = asOptions(FLAGS, "constant");
95
- var METHOD_OPTIONS = asOptions(METHODS, "property");
96
- var optionsAfter = (words) => {
97
- const [step, command, ...rest] = words;
98
- if (step === void 0) return DBT;
99
- if (step.toLowerCase() !== "dbt") return [];
100
- if (command === void 0) return COMMAND_OPTIONS;
101
- const subcommands = SUBCOMMAND_OPTIONS[command.toLowerCase()];
102
- if (subcommands && rest.length === 0) return subcommands;
103
- const lastArgument = rest.filter((it) => it.startsWith("-")).at(-1);
104
- const selecting = lastArgument !== void 0 && SELECTORS.includes(lastArgument.toLowerCase());
105
- return selecting ? [...ARGUMENT_OPTIONS, ...FLAG_OPTIONS, ...METHOD_OPTIONS] : [...ARGUMENT_OPTIONS, ...FLAG_OPTIONS];
106
- };
107
- var complete = (context) => {
108
- const typed = context.matchBefore(WORD);
109
- if (!typed?.text && !context.explicit) return null;
110
- const from = typed?.from ?? context.pos;
111
- const line = context.state.doc.lineAt(from);
112
- const options = optionsAfter(
113
- line.text.slice(0, from - line.from).split(/\s+/).filter(Boolean)
114
- );
115
- return options.length > 0 ? { from, options, validFor: WORD } : null;
116
- };
117
- var dbt = simpleMode({
118
- languageData: {
119
- // `toggleComment` is a no-op without these, so Mod-/ silently does nothing.
120
- commentTokens: { line: "--", block: { open: "/*", close: "*/" } },
121
- autocomplete: complete
122
- },
123
- start: [
124
- { regex: /"(?:[^\\]|\\.)*?(?:"|$)/, token: "string" },
125
- // Word-bounded, so `dbtX` is not a dbt step whose first word happens to
126
- // colour — the same thing the completion source asks of it.
127
- { regex: /dbt\b/, token: "keyword", sol: true },
128
- { regex: word(COMMAND_PHRASES), token: "keyword" },
129
- { regex: word(ARGUMENTS), token: "variableName" },
130
- { regex: prefix(METHODS), token: "propertyName" },
131
- { regex: prefix(FLAGS), token: "attributeName" },
132
- { regex: /(?:@|\*|,|\+\d+|\d+\+|\+)/, token: "operator" },
133
- { regex: /'.*'/, token: "string" },
134
- { regex: /true|false/, token: "atom" }
135
- ]
136
- });
137
-
138
- // src/components/CodeEditor/modes/jsonnet.ts
139
- var COMMENT_END = /^\*\//;
140
- var COMMENT_START = /^\/\/|^#/;
141
- var C_COMMENT_START = /^\/\*/;
142
- var TEXT_BLOCK = /^\|\|\|/;
143
- var TEXT_BLOCK_END = /^\s*\|\|\|/;
144
- var RAW_DOUBLE = /^""/;
145
- var RAW_SINGLE = /^''/;
146
- var CLOSE_DOUBLE = /^"/;
147
- var CLOSE_SINGLE = /^'/;
148
- var ESCAPE = /^\\[\\"'/bfnrt0]/;
149
- var UNICODE_ESCAPE = /^\\u[0-9a-fA-F]{4}/;
150
- var BACKSLASH = /^\\/;
151
- var IMPORT = /^import(?:str)?\s*(@?)(["'])/;
152
- var QUOTE = /^(@?)(["'])/;
153
- var ROOT = /^\$/;
154
- var NUMBER = /^(?:\.\d+|\d+\.?\d*)(?:e[-+]?\d+)?/i;
155
- var OPERATOR = /^[-+/*=<>!&~^|$%]+/;
156
- var IDENTIFIER = /^[a-zA-Z_][a-zA-Z0-9_]*/;
157
- var KEYWORDS = {
158
- local: "keyword",
159
- self: "keyword",
160
- super: "keyword",
161
- assert: "keyword",
162
- function: "keyword",
163
- if: "keyword",
164
- then: "keyword",
165
- else: "keyword",
166
- for: "keyword",
167
- in: "keyword",
168
- tailstrict: "keyword",
169
- error: "keyword",
170
- true: "atom",
171
- false: "atom",
172
- null: "atom"
173
- };
174
- var jsonnet = {
175
- name: "jsonnet",
176
- // `toggleComment` is a no-op without these, so Mod-/ silently does nothing.
177
- languageData: { commentTokens: { line: "//", block: { open: "/*", close: "*/" } } },
178
- startState: () => ({
179
- cComment: false,
180
- textBlock: false,
181
- textBlockIndent: null,
182
- string: false,
183
- importString: false,
184
- stringSingle: false,
185
- stringRaw: false
186
- }),
187
- token: (stream, state) => {
188
- if (state.cComment) {
189
- if (stream.match(COMMENT_END)) {
190
- state.cComment = false;
191
- return "comment";
192
- }
193
- stream.next();
194
- return "comment";
195
- }
196
- if (state.textBlock) {
197
- if (state.textBlockIndent == null) {
198
- if (stream.match(TEXT_BLOCK_END)) {
199
- state.textBlock = false;
200
- return "string";
201
- }
202
- state.textBlockIndent = stream.indentation();
203
- }
204
- if (stream.indentation() >= state.textBlockIndent) {
205
- stream.skipToEnd();
206
- return "string";
207
- }
208
- if (stream.match(TEXT_BLOCK_END)) {
209
- state.textBlock = false;
210
- return "string";
211
- }
212
- stream.next();
213
- return "invalid";
214
- }
215
- if (state.string || state.importString) {
216
- const style = state.string ? "string" : "meta";
217
- if (state.stringRaw) {
218
- if (stream.match(state.stringSingle ? RAW_SINGLE : RAW_DOUBLE)) return "escape";
219
- } else {
220
- if (stream.match(ESCAPE)) return "escape";
221
- if (stream.match(UNICODE_ESCAPE)) return "escape";
222
- if (stream.match(BACKSLASH)) return "invalid";
223
- }
224
- if (stream.match(state.stringSingle ? CLOSE_SINGLE : CLOSE_DOUBLE)) {
225
- state.string = false;
226
- state.importString = false;
227
- return style;
228
- }
229
- stream.next();
230
- return style;
231
- }
232
- if (stream.match(COMMENT_START)) {
233
- stream.skipToEnd();
234
- return "comment";
235
- }
236
- if (stream.match(C_COMMENT_START)) {
237
- state.cComment = true;
238
- return "comment";
239
- }
240
- const imported = stream.match(IMPORT);
241
- if (Array.isArray(imported)) {
242
- state.importString = true;
243
- state.stringRaw = imported[1] === "@";
244
- state.stringSingle = imported[2] === "'";
245
- return "meta";
246
- }
247
- const quoted = stream.match(QUOTE);
248
- if (Array.isArray(quoted)) {
249
- state.string = true;
250
- state.stringRaw = quoted[1] === "@";
251
- state.stringSingle = quoted[2] === "'";
252
- return "string";
253
- }
254
- if (stream.match(TEXT_BLOCK)) {
255
- state.textBlock = true;
256
- state.textBlockIndent = null;
257
- return "string";
258
- }
259
- if (stream.match(ROOT)) return "keyword";
260
- if (stream.match(NUMBER)) return "number";
261
- if (stream.match(OPERATOR)) return "operator";
262
- const identifier = stream.match(IDENTIFIER);
263
- if (Array.isArray(identifier)) return KEYWORDS[identifier[0]] ?? null;
264
- stream.next();
265
- return null;
266
- }
267
- };
268
-
269
- // src/components/CodeEditor/helpers.ts
270
- var LANGUAGE_MODES = [
271
- "application/json",
272
- "text/plain",
273
- "text/x-python",
274
- "text/x-sql",
275
- "text/x-mysql",
276
- "text/x-pgsql",
277
- "text/x-mssql",
278
- // Snowflake, under a historical name — these strings are a published prop contract.
279
- "text/x-sfsql",
280
- "text/x-bqsql",
281
- "text/x-plsql",
282
- "text/x-rsrc",
283
- "text/x-sh",
284
- "text/x-toml",
285
- "text/jsonnet",
286
- "text/x-dbt",
287
- "text/javascript",
288
- "text/typescript"
289
- ];
290
- var isLanguageMode = (mode) => LANGUAGE_MODES.includes(mode);
291
- var READ_ONLY_EDITOR = '&.cm-editor:has(.cm-content[contenteditable="false"])';
292
- var EDITABLE_EDITOR = '&.cm-editor:has(.cm-content[contenteditable="true"])';
293
- var buildBaseThemeStyles = () => ({
294
- "*": { lineHeight: "20px" },
295
- "*::selection": {
296
- backgroundColor: resolveToken("primary", "31 143 255"),
297
- color: `${resolveToken("primary-foreground", "255 255 255")} !important`
298
- },
299
- [READ_ONLY_EDITOR]: {
300
- backgroundColor: resolveToken("secondary", "226 232 240")
301
- },
302
- [`${READ_ONLY_EDITOR} .cm-gutters`]: {
303
- backgroundColor: resolveToken("border", "229 231 235")
304
- },
305
- "&.cm-editor .cm-scroller": { overflowAnchor: "none" },
306
- "&.cm-editor, &.cm-editor .cm-scroller": {
307
- minHeight: "100%",
308
- flexGrow: 1,
309
- alignItems: "stretch !important",
310
- outline: "none"
311
- },
312
- ".cm-gutter.cm-foldGutter": { display: "none !important" },
313
- ".cm-gutter.cm-lineNumbers": { paddingLeft: "20px", paddingRight: "6px" },
314
- ".cm-gutters": { height: "auto" },
315
- // merge (diff) view
316
- '&[class*="cm-merge-"] .cm-deletedLine': { backgroundColor: colors.error[100] },
317
- '&[class*="cm-merge-"] .cm-changedLine': { backgroundColor: colors.green[100] },
318
- '&[class*="cm-merge-"] .cm-deletedLineGutter': { backgroundColor: colors.error[200] },
319
- '&[class*="cm-merge-"] .cm-changedLineGutter': { backgroundColor: colors.green[200] },
320
- '&[class*="cm-merge-"] .cm-deletedText': { background: colors.error[200] },
321
- '&[class*="cm-merge-"] .cm-changedText': { background: colors.green[200] },
322
- '&[class*="cm-merge-"]': {
323
- backgroundColor: `${colors.white} !important`
324
- },
325
- '&[class*="cm-merge-"] .cm-gutters': {
326
- backgroundColor: `${colors.white} !important`
327
- },
328
- ".cm-changeGutter": { position: "absolute", zIndex: -1, width: "100%", paddingLeft: 0 },
329
- '&[class*="cm-merge-"] .cm-changedLine,&[class*="cm-merge-"] .cm-line, &[class*="cm-merge-"] .cm-deletedChunk': { paddingLeft: 0 }
330
- });
331
- var ALWAYS_OFF = {
332
- drawSelection: false,
333
- foldGutter: false,
334
- foldKeymap: false,
335
- highlightActiveLine: false,
336
- highlightActiveLineGutter: false
337
- };
338
- var buildBasicSetup = (readOnly) => ({
339
- ...ALWAYS_OFF,
340
- ...readOnly ? {
341
- closeBrackets: false,
342
- closeBracketsKeymap: false,
343
- lintKeymap: false,
344
- indentOnInput: false,
345
- rectangularSelection: false,
346
- dropCursor: false,
347
- highlightSelectionMatches: false
348
- } : null
349
- });
350
- var buildCustomTheme = () => {
351
- const foreground = resolveToken("foreground", "30 41 59");
352
- return githubLightInit({
353
- settings: {
354
- fontFamily: `'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New'`,
355
- background: resolveToken("background", "249 250 251"),
356
- foreground,
357
- gutterBackground: resolveToken("muted", "241 245 249"),
358
- gutterForeground: resolveToken("muted-foreground", "100 116 139"),
359
- gutterBorder: "transparent",
360
- lineHighlight: "transparent",
361
- selection: resolveToken("primary", "31 143 255")
362
- },
363
- styles: [
364
- { tag: [tags.name, tags.special(tags.string), tags.bracket], color: foreground },
365
- { tag: tags.standard(tags.name), color: colors.purple[600] },
366
- { tag: tags.special(tags.name), color: colors.cyan[700] },
367
- { tag: tags.string, color: colors.warning[700] }
368
- ]
369
- });
370
- };
371
- var getLanguageMode = (mode) => {
372
- switch (mode) {
373
- case void 0:
374
- case "application/json":
375
- return json();
376
- case "text/x-python":
377
- return python();
378
- case "text/x-sql":
379
- return getSqlLanguageSupport(StandardSQL);
380
- case "text/x-mysql":
381
- return getSqlLanguageSupport(MySQL);
382
- case "text/x-pgsql":
383
- return getSqlLanguageSupport(PostgreSQL);
384
- case "text/x-mssql":
385
- return getSqlLanguageSupport(MSSQL);
386
- case "text/x-sfsql":
387
- return getSqlLanguageSupport("snowflake");
388
- case "text/x-bqsql":
389
- return getSqlLanguageSupport("bigquery");
390
- case "text/x-plsql":
391
- return getSqlLanguageSupport(PLSQL);
392
- case "text/x-rsrc":
393
- return StreamLanguage.define(r);
394
- case "text/x-sh":
395
- return StreamLanguage.define(shell);
396
- case "text/x-toml":
397
- return StreamLanguage.define(toml);
398
- case "text/jsonnet":
399
- return StreamLanguage.define(jsonnet);
400
- case "text/x-dbt":
401
- return StreamLanguage.define(dbt);
402
- case "text/javascript":
403
- return javascript({ jsx: true });
404
- case "text/typescript":
405
- return javascript({ jsx: true, typescript: true });
406
- // No language — `text/plain` lands here, and so does any mode added to
407
- // LANGUAGE_MODES without an arm above. Unstyled text is the safe degradation;
408
- // a `json()` default would colour unrelated content as if it were JSON.
409
- default:
410
- return [];
411
- }
412
- };
413
- var shouldLintJson = (mode, readOnly) => mode === "application/json" && !readOnly;
414
- var ButtonToolbar = ({ value, children }) => {
415
- if (!value && !children) return null;
416
- return /* @__PURE__ */ jsxs("div", { className: "tw:absolute tw:right-3 tw:top-1 tw:z-10 tw:flex tw:gap-0.5 tw:overflow-visible tw:rounded tw:border tw:border-solid tw:border-border tw:!bg-background tw:p-px tw:shadow-sm", children: [
417
- !!value && /* @__PURE__ */ jsx(ClipboardButton, { size: "icon-xs", variant: "invisible", text: value }),
418
- children
419
- ] });
420
- };
421
- var buildInputChrome = (isArgo) => ({
422
- surface: isArgo ? resolveToken("muted", "241 245 249") : colors.neutral[100],
423
- borderColor: isArgo ? resolveToken("input", "203 213 225") : colors.neutral[100],
424
- readOnlySurface: isArgo ? resolveToken("muted", "241 245 249") : colors.neutral[150],
425
- readOnlyBorderColor: isArgo ? resolveToken("input", "203 213 225") : colors.neutral[150],
426
- hoverBorderColor: null,
427
- focusBorderColor: isArgo ? resolveToken("primary", "37 99 235") : resolveToken("ring", "31 143 255"),
428
- focusRing: `0 0 0 4px ${resolveToken("ring", "31 143 255", isArgo ? 0.5 : 0.3)}`,
429
- radius: isArgo ? "var(--radius-lg, 0.25rem)" : "0.25rem",
430
- // 2px border + 2×this + `.cm-content`'s own 4px + a 20px line, against the
431
- // height a one-line `TextInput` has: argo forces `sizing: 'medium'` (36px),
432
- // legacy leaves it at `default` (40px).
433
- paddingY: isArgo ? "3px" : "5px",
434
- // Tops `.cm-line`'s 6px/2px up to the 16px an input's text is inset by.
435
- paddingX: { left: "10px", right: "14px" }
436
- });
437
- var buildCanvasChrome = () => ({
438
- surface: resolveToken("card", "255 255 255"),
439
- borderColor: "transparent",
440
- readOnlySurface: resolveToken("muted", "241 245 249"),
441
- readOnlyBorderColor: "transparent",
442
- hoverBorderColor: resolveToken("ring", "31 143 255"),
443
- focusBorderColor: resolveToken("ring", "31 143 255"),
444
- focusRing: `0 0 0 4px ${resolveToken("ring", "31 143 255", 0.3)}`,
445
- radius: "8px",
446
- paddingY: "8px",
447
- paddingX: null
448
- });
449
- var buildChromeStyles = (chrome) => ({
450
- "&.cm-editor": {
451
- border: `solid 1px ${chrome.borderColor}`,
452
- borderRadius: chrome.radius,
453
- backgroundColor: chrome.surface,
454
- paddingTop: chrome.paddingY,
455
- paddingBottom: chrome.paddingY
456
- },
457
- "&.cm-editor :is(.cm-gutters,.cm-scroller)": { backgroundColor: chrome.surface },
458
- ...chrome.paddingX ? {
459
- // Only without a gutter: there the editor reads as a one-line input and
460
- // its text should start where a neighbouring `TextInput`'s does. With a
461
- // gutter, the gutter owns the left edge.
462
- "&.cm-editor:not(:has(.cm-gutters)) .cm-content": {
463
- paddingLeft: chrome.paddingX.left,
464
- paddingRight: chrome.paddingX.right
465
- }
466
- } : null,
467
- ...chrome.hoverBorderColor ? { [`${EDITABLE_EDITOR}:hover`]: { borderColor: chrome.hoverBorderColor } } : null,
468
- [`${EDITABLE_EDITOR}:focus-within`]: {
469
- borderColor: chrome.focusBorderColor,
470
- boxShadow: chrome.focusRing
471
- },
472
- [READ_ONLY_EDITOR]: {
473
- backgroundColor: chrome.readOnlySurface,
474
- borderColor: chrome.readOnlyBorderColor
475
- },
476
- [`${READ_ONLY_EDITOR} .cm-gutters`]: { backgroundColor: chrome.readOnlySurface },
477
- [`${READ_ONLY_EDITOR} .cm-scroller`]: { backgroundColor: chrome.readOnlySurface }
478
- });
479
- var setSearchEffect = StateEffect.define();
480
- function findMatches(doc, query) {
481
- if (!query) return [];
482
- const text = doc.toString();
483
- try {
484
- const regex = new RegExp(escapeStringRegexp(query), "gi");
485
- return Array.from(text.matchAll(regex)).map((match, index) => {
486
- const from = match.index;
487
- const to = from + match[0].length;
488
- return { from, to, text: match[0], localIndex: index };
489
- });
490
- } catch (e) {
491
- console.warn("Invalid search regex:", e);
492
- return [];
493
- }
494
- }
495
- function createDecorations(matches, selectedLocalIndex) {
496
- const decorations = matches.map((match) => {
497
- const isSelected = match.localIndex === selectedLocalIndex;
498
- const decoration = Decoration.mark({
499
- class: isSelected ? "cm-searchMatch-selected" : "cm-searchMatch"
500
- });
501
- return decoration.range(match.from, match.to);
502
- });
503
- return Decoration.set(decorations, true);
504
- }
505
- var searchField = StateField.define({
506
- create() {
507
- return {
508
- query: "",
509
- selectedMatchIndex: void 0,
510
- matches: [],
511
- decorations: Decoration.none
512
- };
513
- },
514
- update(state, tr) {
515
- let newState = state;
516
- for (const effect of tr.effects) {
517
- if (!effect.is(setSearchEffect)) {
518
- continue;
519
- }
520
- const { query, selectedMatchIndex } = effect.value;
521
- const matches = findMatches(tr.state.doc, query);
522
- const decorations = createDecorations(matches, selectedMatchIndex);
523
- newState = {
524
- query,
525
- selectedMatchIndex,
526
- matches,
527
- decorations
528
- };
529
- }
530
- if (tr.docChanged && newState.query) {
531
- const matches = findMatches(tr.state.doc, newState.query);
532
- const decorations = createDecorations(matches, newState.selectedMatchIndex);
533
- newState = {
534
- ...newState,
535
- matches,
536
- decorations
537
- };
538
- }
539
- return newState;
540
- },
541
- provide: (field) => EditorView.decorations.from(field, (state) => state.decorations)
542
- });
543
- var searchViewPlugin = ViewPlugin.fromClass(
544
- class {
545
- lastSelectedIndex;
546
- update(update) {
547
- const state = update.state.field(searchField);
548
- if (state.selectedMatchIndex !== void 0 && state.selectedMatchIndex !== this.lastSelectedIndex) {
549
- const match = state.matches[state.selectedMatchIndex];
550
- if (match) {
551
- requestAnimationFrame(() => {
552
- update.view.dispatch({
553
- effects: EditorView.scrollIntoView(match.from, { y: "center" })
554
- });
555
- });
556
- }
557
- this.lastSelectedIndex = state.selectedMatchIndex;
558
- }
559
- if (state.selectedMatchIndex === void 0) {
560
- this.lastSelectedIndex = void 0;
561
- }
562
- }
563
- }
564
- );
565
- var searchTheme = EditorView.baseTheme({
566
- ".cm-searchMatch": {
567
- backgroundColor: colors.blue[100]
568
- },
569
- ".cm-searchMatch > span": {
570
- color: `${colors.blue[600]} !important`
571
- },
572
- ".cm-searchMatch-selected": {
573
- backgroundColor: colors.blue[600]
574
- },
575
- ".cm-searchMatch-selected > span": {
576
- color: `${colors.white} !important`
577
- }
578
- });
579
- function searchExtension() {
580
- return [searchField, searchViewPlugin, searchTheme];
581
- }
582
- function updateSearch(view, query, selectedMatchIndex) {
583
- view.dispatch({ effects: setSearchEffect.of({ query, selectedMatchIndex }) });
584
- }
585
- var ToggleComponentHelp = () => /* @__PURE__ */ jsxs("div", { children: [
586
- "Use ",
587
- /* @__PURE__ */ jsx(Kbd, { children: isMac ? "Command+/" : "Ctrl+/" }),
588
- " to toggle comments."
589
- ] });
590
-
591
- // src/components/CodeEditor/tokenTheme.ts
592
- var themeCache = /* @__PURE__ */ new Map();
593
- var useThemedExtension = (cacheKey, build) => {
594
- const { scheme, cacheKey: themeKey } = useThemeAttributes();
595
- const key = `${themeKey} ${cacheKey}`;
596
- let cached = themeCache.get(key);
597
- if (!cached) {
598
- cached = build(scheme);
599
- themeCache.set(key, cached);
600
- }
601
- return cached;
602
- };
603
- var establishesFixedContainingBlock = (style) => style.transform !== "none" || style.translate !== "none" || style.rotate !== "none" || style.scale !== "none" || style.perspective !== "none" || style.filter !== "none" || style.backdropFilter !== "none" || /\b(paint|layout|strict|content)\b/.test(style.contain) || /\b(transform|perspective|filter|contain)\b/.test(style.willChange);
604
- var crops = (style) => style.overflowX !== "visible" || style.overflowY !== "visible" || style.maskImage !== "none" || style.contentVisibility !== "visible" || /\b(paint|strict|content)\b/.test(style.contain);
605
- var findTooltipHost = (from) => {
606
- let outermostCropper = null;
607
- for (let node = from.parentElement; node && node !== document.body; node = node.parentElement) {
608
- const style = getComputedStyle(node);
609
- if (crops(style)) {
610
- outermostCropper = node;
611
- } else if (establishesFixedContainingBlock(style)) {
612
- return outermostCropper?.parentElement ?? node;
613
- }
614
- }
615
- return outermostCropper?.parentElement ?? null;
616
- };
617
- var tooltipsExtension = () => {
618
- const layer = new Compartment();
619
- return [
620
- layer.of(tooltips()),
621
- ViewPlugin.define((view) => {
622
- const scheduled = setTimeout(() => {
623
- if (!view.dom.isConnected) return;
624
- const parent = findTooltipHost(view.dom);
625
- if (parent) view.dispatch({ effects: layer.reconfigure(tooltips({ parent })) });
626
- });
627
- return { destroy: () => clearTimeout(scheduled) };
628
- })
629
- ];
630
- };
631
- var useTooltipsExtension = () => useMemo(tooltipsExtension, []);
632
-
633
- // src/components/CodeEditor/variableCompletion.ts
634
- var BOOST = 2e3;
635
- var NAME = String.raw`[\w-]*`;
636
- var AT_CARET = new RegExp(String.raw`(?:\{{1,2} ?)?${NAME}$`);
637
- var NAME_AT_END = new RegExp(`${NAME}$`);
638
- var OPENING = /\{{1,2} ?$/;
639
- var CLOSING = /^ ?\}{1,2}/;
640
- var completeVariables = (variables = []) => {
641
- if (variables.length === 0) return () => null;
642
- const options = variables.map(({ name, value }) => ({
643
- // The bare name: `SqlEditor` filters prefix-only while `CodeEditor` filters
644
- // fuzzily, and this is the only spelling both accept whether or not the caret
645
- // has typed the braces. The braces are `displayLabel`, which is what renders.
646
- label: name,
647
- displayLabel: `{{${name}}}`,
648
- detail: value,
649
- type: "variable",
650
- boost: BOOST,
651
- apply: (view, completion, from, to) => {
652
- const { doc } = view.state;
653
- const line = doc.lineAt(from);
654
- const insert = `{{${completion.label}}}`;
655
- const opening = OPENING.exec(doc.sliceString(line.from, from));
656
- const closing = CLOSING.exec(doc.sliceString(to, line.to));
657
- const start = opening ? from - opening[0].length : from;
658
- const end = closing ? to + closing[0].length : to;
659
- view.dispatch({
660
- changes: { from: start, to: end, insert },
661
- selection: { anchor: start + insert.length }
662
- });
663
- }
664
- }));
665
- return (context) => {
666
- const match = context.matchBefore(AT_CARET);
667
- if (!match?.text) return null;
668
- const [name = ""] = NAME_AT_END.exec(match.text) ?? [];
669
- return { from: match.to - name.length, options };
670
- };
671
- };
672
- var useVariableCompletion = (variables = []) => useStableCallback(completeVariables(variables));
673
- var emptyObject = {};
674
- var CodeEditor = ({
675
- value,
676
- previousValue,
677
- onChange,
678
- variant = "plain",
679
- mode = "application/json",
680
- placeholder: placeholder$1 = "",
681
- ariaLabel,
682
- searchQuery,
683
- searchMatchIndex,
684
- readOnly = false,
685
- inputLocked = false,
686
- autocompletions,
687
- completionSource,
688
- variables,
689
- extraKeys = emptyObject,
690
- withToggleCommentHint = false,
691
- withAutofocus = false,
692
- withLineNumbers = true,
693
- withLineWrapping = true,
694
- withCollapseUnchanged = false,
695
- withCopyButton = false,
696
- completeAny = false,
697
- help = null,
698
- helpPostfix = null,
699
- renderAdditionalButtons,
700
- className
701
- }) => {
702
- const handleChange = useStableCallback((next) => onChange?.(next));
703
- const withSearch = searchQuery !== void 0;
704
- const editorRef = useRef(null);
705
- useEffect(() => {
706
- const view = editorRef.current?.view;
707
- if (view && withSearch) updateSearch(view, searchQuery, searchMatchIndex);
708
- }, [withSearch, searchQuery, searchMatchIndex]);
709
- const handleCreateEditor = useStableCallback((view) => {
710
- if (searchQuery) updateSearch(view, searchQuery, searchMatchIndex);
711
- });
712
- const extraKeysRef = useRef(extraKeys);
713
- useLayoutEffect(() => {
714
- extraKeysRef.current = extraKeys;
715
- });
716
- const boundKeysSignature = Object.keys(extraKeys).join("\n");
717
- const boundKeys = useMemo(
718
- () => boundKeysSignature.split("\n").filter(Boolean),
719
- [boundKeysSignature]
720
- );
721
- const tooltipLayer = useTooltipsExtension();
722
- const variableCompletion = useVariableCompletion(variables);
723
- const customTheme = useThemedExtension("editor:syntax", buildCustomTheme);
724
- const isArgo = useArgoDesign();
725
- const isField = variant === "field";
726
- const baseTheme = useThemedExtension(
727
- isField ? `code-editor:field:${isArgo ? "argo" : "legacy"}` : "code-editor:chrome",
728
- () => EditorView.theme({
729
- ...buildBaseThemeStyles(),
730
- ...isField ? buildChromeStyles(buildInputChrome(isArgo)) : null
731
- })
732
- );
733
- const commonExtensions = useMemo(() => {
734
- const callerCompletions = completionSource ?? (completeAny ? completeAnyWord : autocompletions?.length ? autocompletions : null);
735
- const completionEntries = [
736
- ...callerCompletions ? [{ autocomplete: callerCompletions }] : [],
737
- { autocomplete: variableCompletion }
738
- ];
739
- return [
740
- getLanguageMode(mode),
741
- shouldLintJson(mode, readOnly) ? linter(jsonParseLinter()) : [],
742
- withLineWrapping ? EditorView.lineWrapping : [],
743
- EditorState.languageData.of(() => completionEntries),
744
- keymap$1.of(
745
- boundKeys.map((key) => ({
746
- key,
747
- run: () => {
748
- extraKeysRef.current[key]?.();
749
- return true;
750
- }
751
- }))
752
- ),
753
- readOnly ? [] : [
754
- // CodeMirror's own default. Gating it on the props hid completions the
755
- // *language* supplies — dbt's vocabulary, Snowflake's keywords — behind
756
- // a shortcut, and macOS leaves no usable one. With nothing to offer, no
757
- // popup opens anyway.
758
- autocompletion()
759
- ],
760
- ariaLabel ? EditorView.contentAttributes.of({ "aria-label": ariaLabel }) : [],
761
- withSearch ? searchExtension() : [],
762
- tooltipLayer,
763
- baseTheme
764
- ];
765
- }, [
766
- autocompletions,
767
- completionSource,
768
- variableCompletion,
769
- completeAny,
770
- boundKeys,
771
- mode,
772
- readOnly,
773
- withLineWrapping,
774
- baseTheme,
775
- ariaLabel,
776
- withSearch,
777
- tooltipLayer
778
- ]);
779
- const extensions = useMemo(() => {
780
- return [
781
- ...commonExtensions,
782
- placeholder(placeholder$1),
783
- EditorView.editable.of(!readOnly),
784
- // The lock is this facet and nothing else. `contenteditable` is what the
785
- // read-only wash keys off, and `basicSetup` is what holds the undo history,
786
- // so leaving both alone is what makes the lock invisible.
787
- EditorState.readOnly.of(readOnly || inputLocked),
788
- previousValue ? unifiedMergeView({
789
- original: previousValue,
790
- mergeControls: false,
791
- highlightChanges: false,
792
- collapseUnchanged: withCollapseUnchanged ? {} : void 0
793
- }) : []
794
- ];
795
- }, [commonExtensions, placeholder$1, readOnly, inputLocked, previousValue, withCollapseUnchanged]);
796
- const config = useMemo(() => {
797
- return {
798
- ...buildBasicSetup(readOnly),
799
- lineNumbers: withLineNumbers,
800
- // Mod-f opens CodeMirror's own panel, which would run a second query and a
801
- // second match count over the same document beside the caller's input.
802
- ...withSearch ? { searchKeymap: false } : null
803
- };
804
- }, [withLineNumbers, readOnly, withSearch]);
805
- return (
806
- // oxlint-disable-next-line jsx-a11y/no-static-element-interactions
807
- /* @__PURE__ */ jsxs(
808
- "div",
809
- {
810
- "data-variant": variant,
811
- className: cn(
812
- // Scoped to the box CodeMirror renders into rather than to every child, so
813
- // the toolbar below does not have to undo all three in `!important`.
814
- "tw:relative tw:flex tw:min-h-0 tw:flex-col tw:[&_.cm-mergeViewEditor]:overflow-visible tw:[&_.cm-mergeViewEditors]:h-full tw:[&_.cm-mergeView]:h-full tw:[&_>.cm-theme]:h-full",
815
- // A field's `.cm-editor` is rounded, so the square box behind it would show
816
- // at the corners, and `overflow-auto` would crop the focus ring — a shadow
817
- // painted outside the editor's own box.
818
- isField ? "tw:[&_>.cm-theme]:overflow-visible tw:[&_>.cm-theme]:bg-transparent" : "tw:[&_>.cm-theme]:overflow-auto tw:[&_>.cm-theme]:bg-background",
819
- className
820
- ),
821
- onKeyDown: (event) => {
822
- if (event.key === keyCodes.ESCAPE) {
823
- event.stopPropagation();
824
- }
825
- },
826
- children: [
827
- /* @__PURE__ */ jsx(ButtonToolbar, { value: withCopyButton ? value : void 0, children: renderAdditionalButtons?.(value) }),
828
- /* @__PURE__ */ jsx(
829
- CodeMirror,
830
- {
831
- ref: editorRef,
832
- onCreateEditor: handleCreateEditor,
833
- theme: customTheme,
834
- value,
835
- onChange: handleChange,
836
- extensions,
837
- autoFocus: withAutofocus,
838
- basicSetup: config
839
- }
840
- ),
841
- !readOnly && (withToggleCommentHint || help || helpPostfix) && /* @__PURE__ */ jsxs(HelpBlock, { className: "tw:mt-2 tw:flex tw:flex-wrap tw:gap-1", children: [
842
- help,
843
- withToggleCommentHint ? /* @__PURE__ */ jsx(ToggleComponentHelp, {}) : null,
844
- helpPostfix
845
- ] })
846
- ]
847
- }
848
- )
849
- );
850
- };
851
- var activeQueryFirstLine = Decoration.line({ class: "cm-active-query cm-active-query-first" });
852
- var activeQueryMiddleLine = Decoration.line({ class: "cm-active-query" });
853
- var activeQueryLastLine = Decoration.line({ class: "cm-active-query cm-active-query-last" });
854
- var activeQuerySingleLine = Decoration.line({
855
- class: "cm-active-query cm-active-query-first cm-active-query-last"
856
- });
857
- var findActiveQueryRange = (doc, cursorPos, boundaries) => {
858
- if (boundaries.length === 0) return null;
859
- let match = boundaries[boundaries.length - 1];
860
- for (const boundary of boundaries) {
861
- if (cursorPos <= boundary.to) {
862
- match = boundary;
863
- break;
864
- }
865
- }
866
- if (!match) return null;
867
- const queryText = doc.slice(match.from, match.to);
868
- const leadingWhitespace = queryText.length - queryText.trimStart().length;
869
- const trailingWhitespace = queryText.length - queryText.trimEnd().length;
870
- const trimmedStart = match.from + leadingWhitespace;
871
- const trimmedEnd = match.to - trailingWhitespace;
872
- if (trimmedStart >= trimmedEnd) return null;
873
- return { from: trimmedStart, to: trimmedEnd };
874
- };
875
- var computeBoundaries = (queries) => {
876
- const boundaries = [];
877
- let offset = 0;
878
- for (const query of queries) {
879
- boundaries.push({ from: offset, to: offset + query.length });
880
- offset += query.length;
881
- }
882
- return boundaries;
883
- };
884
- var mapBoundariesThroughChanges = (boundaries, changes) => {
885
- const prevLen = changes.length;
886
- const mapped = [];
887
- for (const b of boundaries) {
888
- const from = changes.mapPos(Math.max(0, Math.min(b.from, prevLen)), -1);
889
- const to = changes.mapPos(Math.max(0, Math.min(b.to, prevLen)), 1);
890
- if (from < to) mapped.push({ from, to });
891
- }
892
- return mapped;
893
- };
894
- var buildDecorations = (view, range) => {
895
- const startLine = view.state.doc.lineAt(range.from).number;
896
- const endLine = view.state.doc.lineAt(range.to).number;
897
- const decorations = [];
898
- for (let lineNum = startLine; lineNum <= endLine; lineNum++) {
899
- const lineStart = view.state.doc.line(lineNum).from;
900
- if (startLine === endLine) {
901
- decorations.push(activeQuerySingleLine.range(lineStart));
902
- } else if (lineNum === startLine) {
903
- decorations.push(activeQueryFirstLine.range(lineStart));
904
- } else if (lineNum === endLine) {
905
- decorations.push(activeQueryLastLine.range(lineStart));
906
- } else {
907
- decorations.push(activeQueryMiddleLine.range(lineStart));
908
- }
909
- }
910
- return Decoration.set(decorations);
911
- };
912
- var activeQueryHighlight = (splitQueries) => {
913
- return [
914
- ViewPlugin.fromClass(
915
- class {
916
- decorations = Decoration.none;
917
- debounceTimer = null;
918
- seq = 0;
919
- cachedDoc = "";
920
- cachedBoundaries = [];
921
- destroyed = false;
922
- constructor(view) {
923
- this.scheduleDocParse(view);
924
- }
925
- update(update) {
926
- if (update.focusChanged && !update.view.hasFocus) {
927
- this.decorations = Decoration.none;
928
- return;
929
- }
930
- if (update.docChanged) {
931
- if (this.cachedBoundaries.length > 0) {
932
- this.cachedBoundaries = mapBoundariesThroughChanges(
933
- this.cachedBoundaries,
934
- update.changes
935
- );
936
- this.cachedDoc = update.state.doc.toString();
937
- this.updateFromCache(update.view);
938
- }
939
- this.scheduleDocParse(update.view);
940
- } else if (update.selectionSet || update.focusChanged && update.view.hasFocus) {
941
- this.updateFromCache(update.view);
942
- }
943
- }
944
- destroy() {
945
- this.destroyed = true;
946
- if (this.debounceTimer) clearTimeout(this.debounceTimer);
947
- }
948
- /**
949
- * Update decorations using cached query boundaries.
950
- * Only mutates this.decorations — does NOT call view.dispatch().
951
- * When called from update() (sync), CodeMirror picks up the new
952
- * decorations via the accessor. When called from the async
953
- * scheduleDocParse callback, the caller must dispatch separately.
954
- */
955
- updateFromCache(view) {
956
- if (!view.hasFocus) {
957
- this.decorations = Decoration.none;
958
- return;
959
- }
960
- const { main } = view.state.selection;
961
- if (main.from !== main.to) {
962
- this.decorations = Decoration.none;
963
- return;
964
- }
965
- const doc = view.state.doc.toString();
966
- if (doc !== this.cachedDoc) return;
967
- if (this.cachedBoundaries.length === 0) {
968
- this.decorations = Decoration.none;
969
- return;
970
- }
971
- const range = findActiveQueryRange(doc, main.head, this.cachedBoundaries);
972
- this.decorations = range ? buildDecorations(view, range) : Decoration.none;
973
- }
974
- /** Parse queries async (debounced) and update decorations. */
975
- scheduleDocParse(view) {
976
- if (this.debounceTimer) clearTimeout(this.debounceTimer);
977
- this.debounceTimer = setTimeout(async () => {
978
- const seq = ++this.seq;
979
- const doc = view.state.doc.toString();
980
- if (!doc.trim()) {
981
- this.cachedDoc = doc;
982
- this.cachedBoundaries = [];
983
- if (this.decorations !== Decoration.none) {
984
- this.decorations = Decoration.none;
985
- if (!this.destroyed) view.dispatch();
986
- }
987
- return;
988
- }
989
- let queries;
990
- try {
991
- queries = await splitQueries(doc);
992
- } catch {
993
- return;
994
- }
995
- if (this.destroyed || seq !== this.seq) return;
996
- this.cachedDoc = doc;
997
- this.cachedBoundaries = computeBoundaries(queries);
998
- this.updateFromCache(view);
999
- if (!this.destroyed) view.dispatch();
1000
- }, 100);
1001
- }
1002
- },
1003
- { decorations: (v) => v.decorations }
1004
- ),
1005
- EditorView.baseTheme({
1006
- ".cm-active-query": {
1007
- boxShadow: `inset -1px 0 0 0 ${colors.blue[300]}, inset 1px 0 0 0 ${colors.blue[300]}`,
1008
- marginRight: "8px"
1009
- },
1010
- ".cm-active-query-first": {
1011
- boxShadow: `inset -1px 0 0 0 ${colors.blue[300]}, inset 1px 0 0 0 ${colors.blue[300]}, inset 0 1px 0 0 ${colors.blue[300]}`,
1012
- borderRadius: "4px 4px 0 0"
1013
- },
1014
- ".cm-active-query-last": {
1015
- boxShadow: `inset -1px 0 0 0 ${colors.blue[300]}, inset 1px 0 0 0 ${colors.blue[300]}, inset 0 -1px 0 0 ${colors.blue[300]}`,
1016
- borderRadius: "0 0 4px 4px"
1017
- },
1018
- ".cm-active-query-first.cm-active-query-last": {
1019
- boxShadow: `inset 0 0 0 1px ${colors.blue[300]}`,
1020
- borderRadius: "4px"
1021
- }
1022
- })
1023
- ];
1024
- };
1025
- var HighlightMarker = class extends GutterMarker {
1026
- toDOM() {
1027
- const marker = document.createElement("div");
1028
- marker.className = "cm-highlight-marker";
1029
- return marker;
1030
- }
1031
- };
1032
- var highlightMarker = new HighlightMarker();
1033
- var forEachLineInRange = (doc, from, to, callback) => {
1034
- const results = [];
1035
- const fromLine = Math.max(1, from + 1);
1036
- const toLine = Math.min(doc.lines, to + 1);
1037
- for (let i = fromLine; i <= toLine; i++) {
1038
- const line = doc.line(i);
1039
- results.push(callback(line.from));
1040
- }
1041
- return results;
1042
- };
1043
- var setHighlightedLinesEffect = StateEffect.define();
1044
- var highlightedLinesField = StateField.define({
1045
- create() {
1046
- return null;
1047
- },
1048
- update(value, transaction) {
1049
- for (const effect of transaction.effects) {
1050
- if (effect.is(setHighlightedLinesEffect)) {
1051
- return effect.value;
1052
- }
1053
- }
1054
- return value;
1055
- }
1056
- });
1057
- var highlightGutter = gutter({
1058
- class: "cm-highlight-gutter",
1059
- markers: (view) => {
1060
- const highlightInfo = view.state.field(highlightedLinesField, false);
1061
- if (!highlightInfo) {
1062
- return RangeSet.empty;
1063
- }
1064
- const markers = forEachLineInRange(
1065
- view.state.doc,
1066
- highlightInfo.from,
1067
- highlightInfo.to,
1068
- (lineFrom) => highlightMarker.range(lineFrom)
1069
- );
1070
- return RangeSet.of(markers);
1071
- }
1072
- });
1073
- var errorLineDecorations = StateField.define({
1074
- create() {
1075
- return Decoration.none;
1076
- },
1077
- update(decorations, transaction) {
1078
- decorations = decorations.map(transaction.changes);
1079
- for (const effect of transaction.effects) {
1080
- if (!effect.is(setHighlightedLinesEffect)) {
1081
- continue;
1082
- }
1083
- if (!effect.value || !effect.value.error) {
1084
- return Decoration.none;
1085
- }
1086
- const decorationArray = forEachLineInRange(
1087
- transaction.state.doc,
1088
- effect.value.error.from,
1089
- effect.value.error.to,
1090
- (lineFrom) => Decoration.line({ class: "cm-error-line" }).range(lineFrom)
1091
- );
1092
- return Decoration.set(decorationArray);
1093
- }
1094
- return decorations;
1095
- },
1096
- provide: (f) => EditorView.decorations.from(f)
1097
- });
1098
- var processingLineDecorations = StateField.define({
1099
- create() {
1100
- return Decoration.none;
1101
- },
1102
- update(decorations, transaction) {
1103
- decorations = decorations.map(transaction.changes);
1104
- for (const effect of transaction.effects) {
1105
- if (!effect.is(setHighlightedLinesEffect)) {
1106
- continue;
1107
- }
1108
- if (!effect.value || !effect.value.processing) {
1109
- return Decoration.none;
1110
- }
1111
- const decorationArray = forEachLineInRange(
1112
- transaction.state.doc,
1113
- effect.value.processing.from,
1114
- effect.value.processing.to,
1115
- (lineFrom) => Decoration.line({ class: "cm-processing-line" }).range(lineFrom)
1116
- );
1117
- return Decoration.set(decorationArray);
1118
- }
1119
- return decorations;
1120
- },
1121
- provide: (f) => EditorView.decorations.from(f)
1122
- });
1123
- var highlightedLinesTheme = EditorView.baseTheme({
1124
- ".cm-highlight-gutter": {
1125
- width: "2px",
1126
- marginRight: "2px"
1127
- },
1128
- ".cm-highlight-marker": {
1129
- width: "2px",
1130
- height: "100%",
1131
- backgroundColor: colors.blue[500]
1132
- },
1133
- ".cm-error-line": {
1134
- backgroundColor: `${colors.error[100]} !important`
1135
- },
1136
- ".cm-processing-line": {
1137
- backgroundColor: `${colors.blue[100]} !important`
1138
- }
1139
- });
1140
- function highlightingExtension() {
1141
- return [
1142
- highlightedLinesField,
1143
- highlightGutter,
1144
- errorLineDecorations,
1145
- processingLineDecorations,
1146
- highlightedLinesTheme
1147
- ];
1148
- }
1149
- function updateHighlighting(view, lines) {
1150
- view.dispatch({ effects: setHighlightedLinesEffect.of(lines ?? null) });
1151
- }
1152
- var OWN_KEYMAPS = {
1153
- defaultKeymap: false,
1154
- completionKeymap: false,
1155
- searchKeymap: false
1156
- };
1157
- var CUSTOM_KEYMAP = [
1158
- {
1159
- key: "Escape",
1160
- stopPropagation: true,
1161
- run: (view) => {
1162
- view.contentDOM.blur();
1163
- return true;
1164
- }
1165
- }
1166
- ];
1167
- var OWN_KEYMAP_EXTENSION = keymap.of([...defaultKeymap, ...CUSTOM_KEYMAP]);
1168
- var buildTheme = () => ({
1169
- ...buildBaseThemeStyles(),
1170
- ...buildChromeStyles(buildCanvasChrome())
1171
- });
1172
- var SqlEditor = ({
1173
- value,
1174
- onChange,
1175
- onSelectionChange,
1176
- onCreateEditor,
1177
- onDestroyEditor,
1178
- onBlurEditor,
1179
- onFocusEditor,
1180
- placeholder = "",
1181
- searchQuery = "",
1182
- searchMatchIndex,
1183
- readOnly = false,
1184
- queryParser,
1185
- autoFocus = false,
1186
- lineNumbers = true,
1187
- className,
1188
- schema,
1189
- completionSource,
1190
- variables,
1191
- defaultDatabase,
1192
- defaultSchema,
1193
- highlightLines,
1194
- dialect
1195
- }) => {
1196
- const editorRef = useRef(null);
1197
- const handleChange = useStableCallback((next) => onChange?.(next));
1198
- const parseQueries = useStableCallback(async (sql) => await queryParser?.(sql) ?? []);
1199
- const handleBlur = useStableCallback((view) => onBlurEditor?.(view));
1200
- const handleFocus = useStableCallback((view) => onFocusEditor?.(view));
1201
- const handleUpdate = useStableCallback((update) => {
1202
- if (update.selectionSet) {
1203
- const { main } = update.state.selection;
1204
- onSelectionChange?.(update.state.sliceDoc(main.from, main.to));
1205
- }
1206
- });
1207
- const variableCompletion = useVariableCompletion(variables);
1208
- const withQueryParser = queryParser !== void 0;
1209
- const tooltipLayer = useTooltipsExtension();
1210
- const customTheme = useThemedExtension("editor:syntax", buildCustomTheme);
1211
- const themeExtension = useThemedExtension(
1212
- "sql-editor:chrome",
1213
- () => EditorView$1.theme(buildTheme())
1214
- );
1215
- const extensions = useMemo(() => {
1216
- return [
1217
- EditorView$1.lineWrapping,
1218
- OWN_KEYMAP_EXTENSION,
1219
- ...installExtensions({
1220
- schema,
1221
- defaultDatabase,
1222
- defaultSchema,
1223
- variableCompletion,
1224
- completionSource,
1225
- dialect
1226
- }),
1227
- searchExtension(),
1228
- highlightingExtension(),
1229
- withQueryParser ? activeQueryHighlight(parseQueries) : [],
1230
- tooltipLayer,
1231
- themeExtension,
1232
- EditorView$1.domEventHandlers({
1233
- blur: (_, view) => handleBlur(view),
1234
- focus: (_, view) => handleFocus(view)
1235
- })
1236
- ];
1237
- }, [
1238
- withQueryParser,
1239
- parseQueries,
1240
- schema,
1241
- completionSource,
1242
- defaultDatabase,
1243
- defaultSchema,
1244
- variableCompletion,
1245
- dialect,
1246
- handleBlur,
1247
- handleFocus,
1248
- themeExtension,
1249
- tooltipLayer
1250
- ]);
1251
- const defaultSetup = useMemo(() => {
1252
- return { ...buildBasicSetup(readOnly), ...OWN_KEYMAPS, lineNumbers };
1253
- }, [readOnly, lineNumbers]);
1254
- useEffect(() => {
1255
- if (editorRef.current?.view) {
1256
- updateHighlighting(editorRef.current.view, highlightLines);
1257
- }
1258
- }, [highlightLines]);
1259
- useEffect(() => {
1260
- if (editorRef.current?.view) {
1261
- updateSearch(editorRef.current.view, searchQuery, searchMatchIndex);
1262
- }
1263
- }, [searchQuery, searchMatchIndex]);
1264
- const handleDestroy = useStableCallback(() => onDestroyEditor?.());
1265
- useEffect(() => handleDestroy, [handleDestroy]);
1266
- const handleCreate = useStableCallback((view, state) => {
1267
- onCreateEditor?.(view, state);
1268
- if (highlightLines) {
1269
- updateHighlighting(view, highlightLines);
1270
- }
1271
- if (searchQuery) {
1272
- updateSearch(view, searchQuery, searchMatchIndex);
1273
- }
1274
- });
1275
- return /* @__PURE__ */ jsx(
1276
- CodeMirror,
1277
- {
1278
- ref: editorRef,
1279
- theme: customTheme,
1280
- extensions,
1281
- value,
1282
- onChange: handleChange,
1283
- onUpdate: handleUpdate,
1284
- onCreateEditor: handleCreate,
1285
- autoFocus,
1286
- placeholder,
1287
- className,
1288
- readOnly,
1289
- editable: !readOnly,
1290
- basicSetup: defaultSetup
1291
- }
1292
- );
1293
- };
1294
-
1295
- export { CodeEditor, LANGUAGE_MODES, SqlEditor, buildBasicSetup, isLanguageMode, useThemedExtension };
1296
- //# sourceMappingURL=chunk-YFZJ3ZLG.js.map
1297
- //# sourceMappingURL=chunk-YFZJ3ZLG.js.map