@keboola/design 2.0.0 → 2.1.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 (654) hide show
  1. package/README.md +57 -1
  2. package/dist/icon-names.d.cts +7 -0
  3. package/dist/icon-names.d.ts +7 -0
  4. package/dist/icons.cjs +12 -0
  5. package/dist/icons.d.cts +6 -0
  6. package/dist/icons.d.ts +6 -0
  7. package/dist/icons.js +1 -1
  8. package/dist/index.cjs +367 -135
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +10184 -0
  11. package/dist/index.d.ts +10184 -0
  12. package/dist/index.js +392 -173
  13. package/dist/index.js.map +1 -1
  14. package/dist/markdown-editor.cjs +69 -49
  15. package/dist/markdown-editor.cjs.map +1 -1
  16. package/dist/markdown-editor.d.cts +74 -0
  17. package/dist/markdown-editor.d.ts +74 -0
  18. package/dist/markdown-editor.js +69 -49
  19. package/dist/markdown-editor.js.map +1 -1
  20. package/dist/mermaid.cjs +50 -23
  21. package/dist/mermaid.cjs.map +1 -1
  22. package/dist/mermaid.d.cts +11 -0
  23. package/dist/mermaid.d.ts +11 -0
  24. package/dist/mermaid.js +50 -23
  25. package/dist/mermaid.js.map +1 -1
  26. package/dist/styles.css +1 -1
  27. package/package.json +83 -12
  28. package/src/blocks/AIKit/AnswerSummary.stories.tsx +0 -38
  29. package/src/blocks/AIKit/AnswerSummary.tsx +0 -63
  30. package/src/blocks/AIKit/CollapsibleStepHeader.stories.tsx +0 -53
  31. package/src/blocks/AIKit/CollapsibleStepHeader.tsx +0 -64
  32. package/src/blocks/AIKit/InlineStepDetail.stories.tsx +0 -25
  33. package/src/blocks/AIKit/InlineStepDetail.tsx +0 -13
  34. package/src/blocks/AIKit/InlineStepLabel.stories.tsx +0 -37
  35. package/src/blocks/AIKit/InlineStepLabel.tsx +0 -36
  36. package/src/blocks/AIKit/MessageBubble.stories.tsx +0 -145
  37. package/src/blocks/AIKit/MessageBubble.tsx +0 -68
  38. package/src/blocks/AIKit/PlanApproval.stories.tsx +0 -121
  39. package/src/blocks/AIKit/PlanApproval.test.tsx +0 -241
  40. package/src/blocks/AIKit/PlanApproval.tsx +0 -363
  41. package/src/blocks/AIKit/PlanRewritingIndicator.test.tsx +0 -17
  42. package/src/blocks/AIKit/PlanRewritingIndicator.tsx +0 -20
  43. package/src/blocks/AIKit/PromptInput.stories.tsx +0 -106
  44. package/src/blocks/AIKit/PromptInput.test.tsx +0 -53
  45. package/src/blocks/AIKit/PromptInput.tsx +0 -218
  46. package/src/blocks/AIKit/PromptInputAction.tsx +0 -18
  47. package/src/blocks/AIKit/PromptInputSubmit.tsx +0 -59
  48. package/src/blocks/AIKit/Question.stories.tsx +0 -235
  49. package/src/blocks/AIKit/Question.tsx +0 -350
  50. package/src/blocks/AIKit/QuestionBlock.stories.tsx +0 -99
  51. package/src/blocks/AIKit/QuestionBlock.tsx +0 -83
  52. package/src/blocks/AIKit/SuggestedPrompt.stories.tsx +0 -82
  53. package/src/blocks/AIKit/SuggestedPrompt.tsx +0 -42
  54. package/src/blocks/AIKit/ThinkingIndicator.stories.tsx +0 -21
  55. package/src/blocks/AIKit/ThinkingIndicator.tsx +0 -14
  56. package/src/blocks/AIKit/index.ts +0 -12
  57. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.stories.tsx +0 -78
  58. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +0 -103
  59. package/src/blocks/AutoSaveTextarea/index.ts +0 -1
  60. package/src/blocks/ClipboardButton/ClipboardButton.stories.tsx +0 -28
  61. package/src/blocks/ClipboardButton/ClipboardButton.tsx +0 -43
  62. package/src/blocks/ClipboardButton/ClipboardInline.tsx +0 -40
  63. package/src/blocks/ClipboardButton/index.ts +0 -2
  64. package/src/blocks/ColorInput/ColorInput.stories.tsx +0 -109
  65. package/src/blocks/ColorInput/ColorInput.test.tsx +0 -163
  66. package/src/blocks/ColorInput/ColorInput.tsx +0 -171
  67. package/src/blocks/ColorInput/ColorPicker.tsx +0 -42
  68. package/src/blocks/ColorInput/index.ts +0 -1
  69. package/src/blocks/ColorInput/utils.test.ts +0 -189
  70. package/src/blocks/ColorInput/utils.ts +0 -74
  71. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.stories.tsx +0 -30
  72. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.tsx +0 -20
  73. package/src/blocks/EmptyConfigurationActionCard/index.ts +0 -1
  74. package/src/blocks/EmptyState/EmptyState.stories.tsx +0 -93
  75. package/src/blocks/EmptyState/EmptyState.tsx +0 -146
  76. package/src/blocks/EmptyState/index.ts +0 -1
  77. package/src/blocks/ErrorState/ErrorState.stories.tsx +0 -125
  78. package/src/blocks/ErrorState/ErrorState.tsx +0 -147
  79. package/src/blocks/ErrorState/index.ts +0 -1
  80. package/src/blocks/Form/components/FormBody.tsx +0 -27
  81. package/src/blocks/Form/components/SubmitButton.tsx +0 -30
  82. package/src/blocks/Form/connectors/CheckboxField.tsx +0 -34
  83. package/src/blocks/Form/connectors/FieldShell.tsx +0 -46
  84. package/src/blocks/Form/connectors/NumberField.tsx +0 -36
  85. package/src/blocks/Form/connectors/PasswordField.tsx +0 -38
  86. package/src/blocks/Form/connectors/SelectField.tsx +0 -73
  87. package/src/blocks/Form/connectors/SwitchField.tsx +0 -34
  88. package/src/blocks/Form/connectors/TextAreaField.tsx +0 -36
  89. package/src/blocks/Form/connectors/TextField.tsx +0 -36
  90. package/src/blocks/Form/contexts.ts +0 -4
  91. package/src/blocks/Form/formHook.ts +0 -45
  92. package/src/blocks/Form/index.ts +0 -2
  93. package/src/blocks/Form/setServerFieldErrors.test.ts +0 -38
  94. package/src/blocks/Form/setServerFieldErrors.ts +0 -21
  95. package/src/blocks/MermaidDiagram/MermaidDiagram.stories.tsx +0 -87
  96. package/src/blocks/MermaidDiagram/MermaidDiagram.tsx +0 -266
  97. package/src/blocks/MermaidDiagram/index.ts +0 -1
  98. package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +0 -119
  99. package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +0 -41
  100. package/src/blocks/MultiActionButtonGroup/MultiActionButtonGroup.tsx +0 -16
  101. package/src/blocks/MultiActionButtonGroup/index.ts +0 -1
  102. package/src/blocks/MultiCombobox/MultiCombobox.stories.tsx +0 -324
  103. package/src/blocks/MultiCombobox/MultiCombobox.tsx +0 -257
  104. package/src/blocks/MultiCombobox/index.ts +0 -1
  105. package/src/blocks/NumberInput/NumberInput.stories.tsx +0 -112
  106. package/src/blocks/NumberInput/NumberInput.test.tsx +0 -148
  107. package/src/blocks/NumberInput/NumberInput.tsx +0 -89
  108. package/src/blocks/NumberInput/index.ts +0 -1
  109. package/src/blocks/PageHeader/AGENTS.md +0 -137
  110. package/src/blocks/PageHeader/PageHeader.stories.tsx +0 -371
  111. package/src/blocks/PageHeader/PageHeader.tsx +0 -22
  112. package/src/blocks/PageHeader/PageHeaderDetail.tsx +0 -84
  113. package/src/blocks/PageHeader/PageHeaderIndex.tsx +0 -75
  114. package/src/blocks/PageHeader/index.ts +0 -1
  115. package/src/blocks/PageHeader/styles.ts +0 -6
  116. package/src/blocks/PageLayout/AGENTS.md +0 -94
  117. package/src/blocks/PageLayout/PageLayout.stories.tsx +0 -146
  118. package/src/blocks/PageLayout/PageLayout.tsx +0 -139
  119. package/src/blocks/PageLayout/index.ts +0 -1
  120. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +0 -353
  121. package/src/blocks/PageToolbar/PageToolbar.tsx +0 -160
  122. package/src/blocks/PageToolbar/PageToolbarToken.tsx +0 -61
  123. package/src/blocks/PageToolbar/index.ts +0 -1
  124. package/src/blocks/PasswordInput/PasswordInput.stories.tsx +0 -114
  125. package/src/blocks/PasswordInput/PasswordInput.test.tsx +0 -219
  126. package/src/blocks/PasswordInput/PasswordInput.tsx +0 -180
  127. package/src/blocks/PasswordInput/index.ts +0 -1
  128. package/src/blocks/SearchInput/SearchInput.stories.tsx +0 -127
  129. package/src/blocks/SearchInput/SearchInput.test.tsx +0 -162
  130. package/src/blocks/SearchInput/SearchInput.tsx +0 -172
  131. package/src/blocks/SearchInput/index.ts +0 -1
  132. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.stories.tsx +0 -73
  133. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +0 -92
  134. package/src/blocks/SearchInputWithNavigation/index.ts +0 -1
  135. package/src/blocks/SplitButton/SplitButton.stories.tsx +0 -91
  136. package/src/blocks/SplitButton/SplitButton.tsx +0 -81
  137. package/src/blocks/SplitButton/index.ts +0 -1
  138. package/src/blocks/Tagger/TagItem.tsx +0 -32
  139. package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +0 -44
  140. package/src/blocks/Tagger/TagSelectPopover/TagSelectItem.tsx +0 -31
  141. package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +0 -67
  142. package/src/blocks/Tagger/TagSelectPopover/TagSelectPopover.tsx +0 -34
  143. package/src/blocks/Tagger/TagSelectPopover/TagSelectValue.tsx +0 -47
  144. package/src/blocks/Tagger/TagSelectPopover/index.ts +0 -1
  145. package/src/blocks/Tagger/Tagger.stories.tsx +0 -80
  146. package/src/blocks/Tagger/Tagger.tsx +0 -101
  147. package/src/blocks/Tagger/index.ts +0 -1
  148. package/src/blocks/Tagger/types.ts +0 -11
  149. package/src/blocks/Textarea/Textarea.stories.tsx +0 -47
  150. package/src/blocks/Textarea/Textarea.tsx +0 -50
  151. package/src/blocks/Textarea/index.ts +0 -1
  152. package/src/components/Alert/Alert.stories.tsx +0 -101
  153. package/src/components/Alert/Alert.tsx +0 -121
  154. package/src/components/Alert/AlertAction.tsx +0 -31
  155. package/src/components/Alert/AlertCollapsibleIcon.tsx +0 -25
  156. package/src/components/Alert/AlertDescription.tsx +0 -36
  157. package/src/components/Alert/AlertIcon.tsx +0 -40
  158. package/src/components/Alert/AlertRoot.tsx +0 -64
  159. package/src/components/Alert/AlertTitle.tsx +0 -25
  160. package/src/components/Alert/index.ts +0 -1
  161. package/src/components/Avatar.stories.tsx +0 -22
  162. package/src/components/Avatar.tsx +0 -88
  163. package/src/components/Badge/Badge.stories.tsx +0 -122
  164. package/src/components/Badge/Badge.tsx +0 -71
  165. package/src/components/Badge/BadgeAddon.tsx +0 -63
  166. package/src/components/Badge/BadgeButton.tsx +0 -40
  167. package/src/components/Badge/BadgeLabel.tsx +0 -37
  168. package/src/components/Badge/BadgeRoot.tsx +0 -21
  169. package/src/components/Badge/index.ts +0 -1
  170. package/src/components/Badge/styles.ts +0 -74
  171. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -135
  172. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -23
  173. package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +0 -43
  174. package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -9
  175. package/src/components/Breadcrumb/BreadcrumbLink.tsx +0 -48
  176. package/src/components/Breadcrumb/BreadcrumbList.tsx +0 -26
  177. package/src/components/Breadcrumb/BreadcrumbPage.tsx +0 -22
  178. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +0 -28
  179. package/src/components/Breadcrumb/index.ts +0 -1
  180. package/src/components/Button/Button.stories.tsx +0 -80
  181. package/src/components/Button/Button.tsx +0 -110
  182. package/src/components/Button/ButtonInline.stories.tsx +0 -54
  183. package/src/components/Button/ButtonInline.tsx +0 -77
  184. package/src/components/Button/index.ts +0 -3
  185. package/src/components/Button/styles.ts +0 -290
  186. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -140
  187. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -79
  188. package/src/components/ButtonGroup/index.ts +0 -1
  189. package/src/components/Calendar/Calendar.stories.tsx +0 -101
  190. package/src/components/Calendar/Calendar.tsx +0 -44
  191. package/src/components/Calendar/index.ts +0 -2
  192. package/src/components/Card/Card.stories.tsx +0 -60
  193. package/src/components/Card/Card.tsx +0 -42
  194. package/src/components/Card/CardContent.tsx +0 -5
  195. package/src/components/Card/CardHeader.tsx +0 -5
  196. package/src/components/Card/CardTitle.tsx +0 -13
  197. package/src/components/Card/index.ts +0 -1
  198. package/src/components/Card/styles.ts +0 -32
  199. package/src/components/Checkbox/Checkbox.stories.tsx +0 -210
  200. package/src/components/Checkbox/Checkbox.test.tsx +0 -140
  201. package/src/components/Checkbox/Checkbox.tsx +0 -83
  202. package/src/components/Checkbox/index.ts +0 -1
  203. package/src/components/Checkbox/styles.ts +0 -77
  204. package/src/components/Clipboard/Clipboard.stories.tsx +0 -44
  205. package/src/components/Clipboard/Clipboard.tsx +0 -89
  206. package/src/components/Clipboard/index.ts +0 -1
  207. package/src/components/CodeEditor/ButtonToolbar.tsx +0 -14
  208. package/src/components/CodeEditor/CodeEditor.tsx +0 -155
  209. package/src/components/CodeEditor/SqlEditor.stories.tsx +0 -76
  210. package/src/components/CodeEditor/SqlEditor.tsx +0 -206
  211. package/src/components/CodeEditor/ToggleComponentHelp.tsx +0 -7
  212. package/src/components/CodeEditor/activeQueryHighlight.test.ts +0 -178
  213. package/src/components/CodeEditor/activeQueryHighlight.ts +0 -245
  214. package/src/components/CodeEditor/helpers.ts +0 -100
  215. package/src/components/CodeEditor/highlighting.ts +0 -184
  216. package/src/components/CodeEditor/index.ts +0 -3
  217. package/src/components/CodeEditor/search.ts +0 -186
  218. package/src/components/Collapse.stories.tsx +0 -56
  219. package/src/components/Collapse.tsx +0 -61
  220. package/src/components/Collapsible/Collapsible.stories.tsx +0 -55
  221. package/src/components/Collapsible/Collapsible.tsx +0 -11
  222. package/src/components/Collapsible/CollapsibleContent.tsx +0 -25
  223. package/src/components/Collapsible/index.ts +0 -1
  224. package/src/components/CollapsiblePanel.stories.tsx +0 -25
  225. package/src/components/CollapsiblePanel.tsx +0 -127
  226. package/src/components/Combobox/Combobox.stories.tsx +0 -426
  227. package/src/components/Combobox/Combobox.test.tsx +0 -165
  228. package/src/components/Combobox/Combobox.tsx +0 -345
  229. package/src/components/Combobox/ComboboxChips.tsx +0 -68
  230. package/src/components/Combobox/ComboboxContent.tsx +0 -95
  231. package/src/components/Combobox/ComboboxEmpty.tsx +0 -30
  232. package/src/components/Combobox/ComboboxInput.tsx +0 -10
  233. package/src/components/Combobox/ComboboxInputGroup.tsx +0 -38
  234. package/src/components/Combobox/ComboboxItem.tsx +0 -70
  235. package/src/components/Combobox/ComboboxItemIndicator.tsx +0 -78
  236. package/src/components/Combobox/ComboboxList.tsx +0 -32
  237. package/src/components/Combobox/ComboboxRoot.tsx +0 -5
  238. package/src/components/Combobox/ComboboxSeparator.tsx +0 -20
  239. package/src/components/Combobox/Group/ComboboxCollection.tsx +0 -7
  240. package/src/components/Combobox/Group/ComboboxGroup.tsx +0 -23
  241. package/src/components/Combobox/Group/ComboboxGroupLabel.tsx +0 -38
  242. package/src/components/Combobox/Group/index.ts +0 -3
  243. package/src/components/Combobox/index.ts +0 -1
  244. package/src/components/Combobox/types.ts +0 -22
  245. package/src/components/Combobox/utils.test.ts +0 -95
  246. package/src/components/Combobox/utils.ts +0 -103
  247. package/src/components/Command/Command.stories.tsx +0 -367
  248. package/src/components/Command/Command.tsx +0 -37
  249. package/src/components/Command/CommandContent.tsx +0 -19
  250. package/src/components/Command/CommandEmpty.tsx +0 -6
  251. package/src/components/Command/CommandGroup.tsx +0 -26
  252. package/src/components/Command/CommandInput.tsx +0 -27
  253. package/src/components/Command/CommandItem/CheckIndicator.tsx +0 -86
  254. package/src/components/Command/CommandItem/CommandItem.tsx +0 -94
  255. package/src/components/Command/CommandItem/index.ts +0 -1
  256. package/src/components/Command/CommandList.tsx +0 -32
  257. package/src/components/Command/CommandSeparator.tsx +0 -13
  258. package/src/components/Command/index.ts +0 -6
  259. package/src/components/DatePicker/DatePicker.tsx +0 -37
  260. package/src/components/DatePicker/index.ts +0 -1
  261. package/src/components/DiffView/DiffView.stories.tsx +0 -80
  262. package/src/components/DiffView/DiffView.tsx +0 -131
  263. package/src/components/DiffView/DiffViewMark.tsx +0 -21
  264. package/src/components/DiffView/DiffViewTd.tsx +0 -84
  265. package/src/components/DiffView/DiffViewTh.tsx +0 -23
  266. package/src/components/DiffView/index.ts +0 -11
  267. package/src/components/DiffView/util.test.ts +0 -231
  268. package/src/components/DiffView/util.ts +0 -311
  269. package/src/components/DotsLoader.tsx +0 -22
  270. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -310
  271. package/src/components/DropdownMenu/DropdownMenu.tsx +0 -61
  272. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +0 -55
  273. package/src/components/DropdownMenu/DropdownMenuContent.tsx +0 -52
  274. package/src/components/DropdownMenu/DropdownMenuContext.tsx +0 -13
  275. package/src/components/DropdownMenu/DropdownMenuItem.tsx +0 -80
  276. package/src/components/DropdownMenu/DropdownMenuItemDescription.tsx +0 -42
  277. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +0 -104
  278. package/src/components/DropdownMenu/DropdownMenuLabel.tsx +0 -21
  279. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.tsx +0 -31
  280. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +0 -67
  281. package/src/components/DropdownMenu/DropdownMenuRadioGroup/index.ts +0 -2
  282. package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +0 -35
  283. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSub.tsx +0 -3
  284. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubContent.tsx +0 -21
  285. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +0 -17
  286. package/src/components/DropdownMenu/DropdownMenuSub/index.ts +0 -3
  287. package/src/components/DropdownMenu/DropdownMenuTrigger.tsx +0 -19
  288. package/src/components/DropdownMenu/ItemIcon.tsx +0 -30
  289. package/src/components/DropdownMenu/index.ts +0 -1
  290. package/src/components/DropdownMenu/styles.ts +0 -82
  291. package/src/components/EmptySearchContent.stories.tsx +0 -12
  292. package/src/components/EmptySearchContent.tsx +0 -13
  293. package/src/components/FieldBox/FieldBox.stories.tsx +0 -138
  294. package/src/components/FieldBox/FieldBox.tsx +0 -43
  295. package/src/components/FieldBox/FieldBoxDescription.tsx +0 -18
  296. package/src/components/FieldBox/FieldBoxTitle.tsx +0 -20
  297. package/src/components/FieldBox/index.ts +0 -1
  298. package/src/components/FieldBox/styles.ts +0 -37
  299. package/src/components/FormGroup/FormGroup.stories.tsx +0 -120
  300. package/src/components/FormGroup/FormGroup.tsx +0 -48
  301. package/src/components/FormGroup/FormGroupColorInput.tsx +0 -15
  302. package/src/components/FormGroup/FormGroupHelp.tsx +0 -17
  303. package/src/components/FormGroup/FormGroupNumberInput.tsx +0 -15
  304. package/src/components/FormGroup/FormGroupTextInput.tsx +0 -15
  305. package/src/components/FormGroup/FormGroupTextarea.tsx +0 -12
  306. package/src/components/FormGroup/context.ts +0 -11
  307. package/src/components/FormGroup/index.ts +0 -2
  308. package/src/components/FormGroup/types.ts +0 -5
  309. package/src/components/FullScreenModal/FullScreenModal.tsx +0 -8
  310. package/src/components/FullScreenModal/FullScreenModalBody.tsx +0 -16
  311. package/src/components/FullScreenModal/FullScreenModalHeader.tsx +0 -92
  312. package/src/components/FullScreenModal/FullScreenModalRoot.tsx +0 -79
  313. package/src/components/FullScreenModal/index.ts +0 -3
  314. package/src/components/HelpBlock/HelpBlock.stories.tsx +0 -28
  315. package/src/components/HelpBlock/HelpBlock.tsx +0 -31
  316. package/src/components/HelpBlock/index.ts +0 -1
  317. package/src/components/HoverCard/HoverCard.stories.tsx +0 -77
  318. package/src/components/HoverCard/HoverCard.tsx +0 -13
  319. package/src/components/HoverCard/HoverCardContent.tsx +0 -68
  320. package/src/components/HoverCard/index.ts +0 -1
  321. package/src/components/Icon/Icon.stories.tsx +0 -26
  322. package/src/components/Icon/Icon.tsx +0 -10
  323. package/src/components/Icon/Icons.mdx +0 -28
  324. package/src/components/Icon/constants.ts +0 -1
  325. package/src/components/Icon/index.ts +0 -27
  326. package/src/components/Input/DateInput/DateInput.stories.tsx +0 -58
  327. package/src/components/Input/DateInput/DateInput.tsx +0 -143
  328. package/src/components/Input/DateInput/helpers.test.ts +0 -102
  329. package/src/components/Input/DateInput/helpers.ts +0 -59
  330. package/src/components/Input/DateInput/index.ts +0 -1
  331. package/src/components/Input/DateRangeInput/DateRangeInput.stories.tsx +0 -66
  332. package/src/components/Input/DateRangeInput/DateRangeInput.tsx +0 -139
  333. package/src/components/Input/DateRangeInput/helpers.test.ts +0 -146
  334. package/src/components/Input/DateRangeInput/helpers.ts +0 -36
  335. package/src/components/Input/DateRangeInput/index.ts +0 -1
  336. package/src/components/Input/Input.stories.tsx +0 -93
  337. package/src/components/Input/Input.test.tsx +0 -112
  338. package/src/components/Input/Input.tsx +0 -163
  339. package/src/components/Input/TextInput/TextInput.stories.tsx +0 -68
  340. package/src/components/Input/TextInput/TextInput.test.tsx +0 -52
  341. package/src/components/Input/TextInput/TextInput.tsx +0 -73
  342. package/src/components/Input/TextInput/index.ts +0 -1
  343. package/src/components/Input/TimeInput/TimeInput.stories.tsx +0 -89
  344. package/src/components/Input/TimeInput/TimeInput.tsx +0 -106
  345. package/src/components/Input/TimeInput/index.ts +0 -1
  346. package/src/components/Input/index.ts +0 -4
  347. package/src/components/Input/utils.ts +0 -11
  348. package/src/components/InputGroup/InputGroup.stories.tsx +0 -215
  349. package/src/components/InputGroup/InputGroup.tsx +0 -228
  350. package/src/components/InputGroup/InputGroupAddon.tsx +0 -57
  351. package/src/components/InputGroup/InputGroupButton.tsx +0 -25
  352. package/src/components/InputGroup/InputGroupInput.tsx +0 -34
  353. package/src/components/InputGroup/InputGroupText.tsx +0 -21
  354. package/src/components/InputGroup/InputGroupTextArea.tsx +0 -78
  355. package/src/components/InputGroup/index.ts +0 -1
  356. package/src/components/Kbd/Kbd.stories.tsx +0 -82
  357. package/src/components/Kbd/Kbd.tsx +0 -17
  358. package/src/components/Kbd/KbdGroup.tsx +0 -35
  359. package/src/components/Kbd/KbdSeparator.tsx +0 -9
  360. package/src/components/Kbd/index.ts +0 -3
  361. package/src/components/Kbd/keyboardKeys.ts +0 -40
  362. package/src/components/Kbd/styles.ts +0 -39
  363. package/src/components/Label/Label.stories.tsx +0 -53
  364. package/src/components/Label/Label.tsx +0 -31
  365. package/src/components/Label/index.ts +0 -1
  366. package/src/components/Link.stories.tsx +0 -19
  367. package/src/components/Link.tsx +0 -37
  368. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +0 -182
  369. package/src/components/MarkdownEditor/MarkdownEditor.test.ts +0 -171
  370. package/src/components/MarkdownEditor/MarkdownEditor.tsx +0 -245
  371. package/src/components/MarkdownEditor/context.ts +0 -10
  372. package/src/components/MarkdownEditor/index.ts +0 -1
  373. package/src/components/MarkdownEditor/nodes/ImageNode.tsx +0 -115
  374. package/src/components/MarkdownEditor/nodes/ImageNodeComponent.tsx +0 -18
  375. package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +0 -72
  376. package/src/components/MarkdownEditor/nodes/MermaidNodeComponent.tsx +0 -35
  377. package/src/components/MarkdownEditor/plugins/ImagePastePlugin.tsx +0 -149
  378. package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +0 -81
  379. package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +0 -65
  380. package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +0 -284
  381. package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +0 -99
  382. package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +0 -142
  383. package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +0 -160
  384. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarButton.tsx +0 -36
  385. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarDivider.tsx +0 -1
  386. package/src/components/MarkdownEditor/theme.ts +0 -39
  387. package/src/components/MarkdownEditor/transformers.ts +0 -189
  388. package/src/components/MarkedText/MarkedText.stories.tsx +0 -46
  389. package/src/components/MarkedText/MarkedText.tsx +0 -36
  390. package/src/components/MarkedText/index.ts +0 -1
  391. package/src/components/MarkedText/utils.test.ts +0 -193
  392. package/src/components/MarkedText/utils.ts +0 -37
  393. package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +0 -25
  394. package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +0 -77
  395. package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +0 -38
  396. package/src/components/MergeEditor/MergeEditor.stories.tsx +0 -226
  397. package/src/components/MergeEditor/MergeEditor.tsx +0 -125
  398. package/src/components/MergeEditor/MergePane.tsx +0 -113
  399. package/src/components/MergeEditor/PaneHeader.tsx +0 -11
  400. package/src/components/MergeEditor/constants.ts +0 -48
  401. package/src/components/MergeEditor/decorations.ts +0 -126
  402. package/src/components/MergeEditor/helpers.test.ts +0 -172
  403. package/src/components/MergeEditor/helpers.ts +0 -118
  404. package/src/components/MergeEditor/index.ts +0 -5
  405. package/src/components/MergeEditor/useMergeDiff.ts +0 -573
  406. package/src/components/MergeEditor/useScrollSync.ts +0 -79
  407. package/src/components/Modal/Modal.stories.tsx +0 -680
  408. package/src/components/Modal/Modal.tsx +0 -49
  409. package/src/components/Modal/ModalBody.tsx +0 -33
  410. package/src/components/Modal/ModalCloseIcon.tsx +0 -31
  411. package/src/components/Modal/ModalContent.tsx +0 -95
  412. package/src/components/Modal/ModalDescription.tsx +0 -20
  413. package/src/components/Modal/ModalFooter.tsx +0 -20
  414. package/src/components/Modal/ModalHeader.tsx +0 -61
  415. package/src/components/Modal/ModalIcon.tsx +0 -109
  416. package/src/components/Modal/ModalOverlay.tsx +0 -42
  417. package/src/components/Modal/ModalTitle.tsx +0 -12
  418. package/src/components/Modal/index.ts +0 -1
  419. package/src/components/Navbar/Navbar.stories.tsx +0 -191
  420. package/src/components/Navbar/Navbar.tsx +0 -80
  421. package/src/components/Navbar/NavbarContent.tsx +0 -20
  422. package/src/components/Navbar/NavbarFooter.tsx +0 -11
  423. package/src/components/Navbar/NavbarHeader.tsx +0 -11
  424. package/src/components/Navbar/NavbarMenu.tsx +0 -30
  425. package/src/components/Navbar/NavbarMenuAvatar.tsx +0 -67
  426. package/src/components/Navbar/NavbarMenuButton.tsx +0 -135
  427. package/src/components/Navbar/NavbarMenuItem.tsx +0 -9
  428. package/src/components/Navbar/NavbarMenuItemAdornment.tsx +0 -65
  429. package/src/components/Navbar/index.ts +0 -1
  430. package/src/components/Pagination/Pagination.stories.tsx +0 -131
  431. package/src/components/Pagination/Pagination.tsx +0 -34
  432. package/src/components/Pagination/PaginationButton.tsx +0 -36
  433. package/src/components/Pagination/PaginationContent.tsx +0 -12
  434. package/src/components/Pagination/PaginationEllipsis.tsx +0 -26
  435. package/src/components/Pagination/PaginationItem.tsx +0 -9
  436. package/src/components/Pagination/PaginationNext.tsx +0 -20
  437. package/src/components/Pagination/PaginationPrevious.tsx +0 -14
  438. package/src/components/Pagination/index.ts +0 -1
  439. package/src/components/PanelWithDetails.stories.tsx +0 -28
  440. package/src/components/PanelWithDetails.tsx +0 -65
  441. package/src/components/Popconfirm/Popconfirm.stories.tsx +0 -373
  442. package/src/components/Popconfirm/Popconfirm.tsx +0 -82
  443. package/src/components/Popconfirm/PopconfirmBody.tsx +0 -5
  444. package/src/components/Popconfirm/PopconfirmCancel.tsx +0 -45
  445. package/src/components/Popconfirm/PopconfirmConfirm.tsx +0 -57
  446. package/src/components/Popconfirm/PopconfirmContent.tsx +0 -33
  447. package/src/components/Popconfirm/PopconfirmFooter.tsx +0 -9
  448. package/src/components/Popconfirm/PopconfirmTrigger.tsx +0 -22
  449. package/src/components/Popconfirm/context.ts +0 -19
  450. package/src/components/Popconfirm/index.ts +0 -1
  451. package/src/components/Popover/Popover.stories.tsx +0 -85
  452. package/src/components/Popover/Popover.tsx +0 -15
  453. package/src/components/Popover/PopoverContent.tsx +0 -103
  454. package/src/components/Popover/index.ts +0 -1
  455. package/src/components/Progress/Progress.stories.tsx +0 -67
  456. package/src/components/Progress/Progress.tsx +0 -45
  457. package/src/components/Progress/index.ts +0 -1
  458. package/src/components/RadioGroup/Radio.tsx +0 -61
  459. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -300
  460. package/src/components/RadioGroup/RadioGroup.tsx +0 -64
  461. package/src/components/RadioGroup/RadioGroupItem.tsx +0 -60
  462. package/src/components/RadioGroup/RadioGroupItemButton.tsx +0 -79
  463. package/src/components/RadioGroup/RadioGroupSeparator.tsx +0 -12
  464. package/src/components/RadioGroup/context.ts +0 -13
  465. package/src/components/RadioGroup/index.ts +0 -1
  466. package/src/components/Resizable/Resizable.stories.tsx +0 -50
  467. package/src/components/Resizable/ResizableHandle.tsx +0 -50
  468. package/src/components/Resizable/ResizablePanel.tsx +0 -12
  469. package/src/components/Resizable/ResizablePanelGroup.tsx +0 -19
  470. package/src/components/Resizable/index.ts +0 -3
  471. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -43
  472. package/src/components/ScrollArea/ScrollArea.tsx +0 -50
  473. package/src/components/ScrollArea/ScrollBar.tsx +0 -32
  474. package/src/components/ScrollArea/index.ts +0 -2
  475. package/src/components/Search/ClearButton.tsx +0 -42
  476. package/src/components/Search/Search.stories.tsx +0 -77
  477. package/src/components/Search/Search.test.tsx +0 -224
  478. package/src/components/Search/Search.tsx +0 -139
  479. package/src/components/Search/SearchForm.tsx +0 -37
  480. package/src/components/Search/index.ts +0 -2
  481. package/src/components/Search/styles.ts +0 -88
  482. package/src/components/Search/utils.ts +0 -11
  483. package/src/components/Select/Select.stories.tsx +0 -109
  484. package/src/components/Select/Select.tsx +0 -141
  485. package/src/components/Select/SelectContent.tsx +0 -110
  486. package/src/components/Select/SelectGroup.tsx +0 -10
  487. package/src/components/Select/SelectItem.tsx +0 -72
  488. package/src/components/Select/SelectLabel.tsx +0 -32
  489. package/src/components/Select/SelectRoot.tsx +0 -6
  490. package/src/components/Select/SelectSeparator.tsx +0 -13
  491. package/src/components/Select/SelectTrigger.tsx +0 -161
  492. package/src/components/Select/index.ts +0 -1
  493. package/src/components/Separator/Separator.stories.tsx +0 -60
  494. package/src/components/Separator/Separator.test.tsx +0 -39
  495. package/src/components/Separator/Separator.tsx +0 -115
  496. package/src/components/Separator/index.ts +0 -1
  497. package/src/components/Sheet/Sheet.stories.tsx +0 -63
  498. package/src/components/Sheet/Sheet.tsx +0 -21
  499. package/src/components/Sheet/SheetBody.tsx +0 -12
  500. package/src/components/Sheet/SheetContent.tsx +0 -131
  501. package/src/components/Sheet/SheetFooter.tsx +0 -9
  502. package/src/components/Sheet/SheetHeader.tsx +0 -39
  503. package/src/components/Sheet/SheetOverlay.tsx +0 -11
  504. package/src/components/Sheet/SheetTitle.tsx +0 -12
  505. package/src/components/Sheet/index.ts +0 -1
  506. package/src/components/Sidebar/Sidebar.stories.tsx +0 -849
  507. package/src/components/Sidebar/Sidebar.tsx +0 -225
  508. package/src/components/Sidebar/SidebarContent.tsx +0 -61
  509. package/src/components/Sidebar/SidebarFillTrigger.tsx +0 -25
  510. package/src/components/Sidebar/SidebarFooter.tsx +0 -13
  511. package/src/components/Sidebar/SidebarGroup/SidebarGroup.tsx +0 -23
  512. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +0 -53
  513. package/src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx +0 -20
  514. package/src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx +0 -76
  515. package/src/components/Sidebar/SidebarGroup/index.ts +0 -4
  516. package/src/components/Sidebar/SidebarHeader.tsx +0 -20
  517. package/src/components/Sidebar/SidebarInstanceContext.ts +0 -18
  518. package/src/components/Sidebar/SidebarMenu/SidebarMenu.tsx +0 -28
  519. package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +0 -69
  520. package/src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx +0 -56
  521. package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +0 -110
  522. package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +0 -108
  523. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +0 -30
  524. package/src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx +0 -9
  525. package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +0 -139
  526. package/src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx +0 -106
  527. package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +0 -88
  528. package/src/components/Sidebar/SidebarMenu/index.ts +0 -10
  529. package/src/components/Sidebar/SidebarProvider/SidebarProvider.tsx +0 -171
  530. package/src/components/Sidebar/SidebarProvider/context.ts +0 -35
  531. package/src/components/Sidebar/SidebarProvider/index.ts +0 -2
  532. package/src/components/Sidebar/SidebarProvider/useHoverTracking.test.ts +0 -199
  533. package/src/components/Sidebar/SidebarProvider/useHoverTracking.ts +0 -72
  534. package/src/components/Sidebar/SidebarProvider/useSidebarState.ts +0 -50
  535. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.test.ts +0 -179
  536. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.ts +0 -53
  537. package/src/components/Sidebar/SidebarResizeHandle.tsx +0 -28
  538. package/src/components/Sidebar/SidebarSeparator.tsx +0 -15
  539. package/src/components/Sidebar/SidebarTrigger.tsx +0 -40
  540. package/src/components/Sidebar/index.ts +0 -3
  541. package/src/components/Sidebar/types.ts +0 -6
  542. package/src/components/Sidebar/useResizeSidebar.ts +0 -112
  543. package/src/components/Sidebar/utils.test.ts +0 -178
  544. package/src/components/Sidebar/utils.ts +0 -70
  545. package/src/components/Skeleton/Skeleton.stories.tsx +0 -106
  546. package/src/components/Skeleton/Skeleton.tsx +0 -77
  547. package/src/components/Skeleton/SkeletonList.stories.tsx +0 -11
  548. package/src/components/Skeleton/SkeletonList.tsx +0 -65
  549. package/src/components/Slider/Slider.stories.tsx +0 -99
  550. package/src/components/Slider/Slider.tsx +0 -85
  551. package/src/components/Slider/SliderThumb.tsx +0 -57
  552. package/src/components/Slider/SliderTrack.tsx +0 -49
  553. package/src/components/Slider/index.ts +0 -1
  554. package/src/components/Slider/useInteracting.test.ts +0 -159
  555. package/src/components/Slider/useInteracting.ts +0 -64
  556. package/src/components/Switch/Switch.stories.tsx +0 -177
  557. package/src/components/Switch/Switch.tsx +0 -58
  558. package/src/components/Switch/index.ts +0 -1
  559. package/src/components/Switch/styles.ts +0 -173
  560. package/src/components/Table/Table.stories.tsx +0 -328
  561. package/src/components/Table/Table.tsx +0 -68
  562. package/src/components/Table/TableBody.tsx +0 -22
  563. package/src/components/Table/TableCell.tsx +0 -7
  564. package/src/components/Table/TableFooter.tsx +0 -15
  565. package/src/components/Table/TableHead.tsx +0 -15
  566. package/src/components/Table/TableHeader.tsx +0 -20
  567. package/src/components/Table/TableRow.tsx +0 -11
  568. package/src/components/Table/index.ts +0 -1
  569. package/src/components/Tabs.stories.tsx +0 -123
  570. package/src/components/Tabs.tsx +0 -134
  571. package/src/components/ThemeProvider/AIGradientSvg.tsx +0 -18
  572. package/src/components/ThemeProvider/ThemeProvider.tsx +0 -25
  573. package/src/components/ThemeProvider/index.ts +0 -1
  574. package/src/components/TimePicker/TimePicker.tsx +0 -95
  575. package/src/components/TimePicker/TimePickerButton.tsx +0 -39
  576. package/src/components/TimePicker/index.ts +0 -1
  577. package/src/components/TimePicker/utils.ts +0 -31
  578. package/src/components/Timeline/Timeline.stories.tsx +0 -246
  579. package/src/components/Timeline/Timeline.tsx +0 -35
  580. package/src/components/Timeline/TimelineConnector.tsx +0 -154
  581. package/src/components/Timeline/TimelineContent.tsx +0 -18
  582. package/src/components/Timeline/TimelineItem.tsx +0 -14
  583. package/src/components/Timeline/index.ts +0 -1
  584. package/src/components/Timeline/useLastLineHeight.ts +0 -36
  585. package/src/components/Toast/Toast.stories.tsx +0 -178
  586. package/src/components/Toast/ToastAction.tsx +0 -40
  587. package/src/components/Toast/ToastDescription.tsx +0 -28
  588. package/src/components/Toast/ToastDismiss.tsx +0 -36
  589. package/src/components/Toast/ToastDuration.tsx +0 -43
  590. package/src/components/Toast/ToastRoot.tsx +0 -135
  591. package/src/components/Toast/ToastTitle.tsx +0 -33
  592. package/src/components/Toast/Toaster.tsx +0 -25
  593. package/src/components/Toast/index.ts +0 -3
  594. package/src/components/Toast/toast.tsx +0 -94
  595. package/src/components/Toast/useNotification.tsx +0 -33
  596. package/src/components/Toggle/Toggle.stories.tsx +0 -67
  597. package/src/components/Toggle/Toggle.tsx +0 -202
  598. package/src/components/Toggle/index.ts +0 -1
  599. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -60
  600. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -99
  601. package/src/components/ToggleGroup/index.ts +0 -1
  602. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  603. package/src/components/Tooltip/Tooltip.tsx +0 -110
  604. package/src/components/Tooltip/TooltipContent.tsx +0 -90
  605. package/src/components/Tooltip/TooltipRoot.tsx +0 -12
  606. package/src/components/Tooltip/TooltipTrigger.tsx +0 -42
  607. package/src/components/Tooltip/index.ts +0 -1
  608. package/src/components/Truncated.stories.tsx +0 -72
  609. package/src/components/Truncated.tsx +0 -78
  610. package/src/components/ZoomableSvg/ZoomableSvg.stories.tsx +0 -53
  611. package/src/components/ZoomableSvg/ZoomableSvg.tsx +0 -200
  612. package/src/components/ZoomableSvg/index.ts +0 -1
  613. package/src/constants/keyCodes.ts +0 -5
  614. package/src/docs/Colors.mdx +0 -19
  615. package/src/docs/Spacing.mdx +0 -35
  616. package/src/docs/Typography.mdx +0 -63
  617. package/src/docs/components/Typeset.tsx +0 -35
  618. package/src/hooks/useAutosizeInput.stories.tsx +0 -142
  619. package/src/hooks/useAutosizeInput.test.tsx +0 -77
  620. package/src/hooks/useAutosizeInput.tsx +0 -107
  621. package/src/hooks/useElement.ts +0 -16
  622. package/src/hooks/useScrollbarPosition.ts +0 -68
  623. package/src/icon-names.ts +0 -20
  624. package/src/icons/Keboola.tsx +0 -28
  625. package/src/icons/icons.stories.tsx +0 -174
  626. package/src/icons/index.ts +0 -186
  627. package/src/index.ts +0 -89
  628. package/src/patterns/AlertWithAction.stories.tsx +0 -30
  629. package/src/patterns/CardWithEmptyState.stories.tsx +0 -66
  630. package/src/patterns/ConfirmDialog.stories.tsx +0 -72
  631. package/src/patterns/CreatableMultiCombobox.stories.tsx +0 -33
  632. package/src/patterns/DataCardWithSkeleton.stories.tsx +0 -48
  633. package/src/patterns/DisabledButtonTooltip.stories.tsx +0 -30
  634. package/src/patterns/FilterToolbar.stories.tsx +0 -275
  635. package/src/patterns/InfoTooltip.stories.tsx +0 -56
  636. package/src/patterns/ListDetail.stories.tsx +0 -65
  637. package/src/patterns/ModalForm.stories.tsx +0 -59
  638. package/src/patterns/PageHeaderTabs.stories.tsx +0 -48
  639. package/src/utils/classNames.test.ts +0 -16
  640. package/src/utils/classNames.ts +0 -27
  641. package/src/utils/copyToClipboard.ts +0 -3
  642. package/src/utils/createChangeInputEvent.ts +0 -28
  643. package/src/utils/createPrefixedString.ts +0 -2
  644. package/src/utils/debounce.test.ts +0 -63
  645. package/src/utils/debounce.ts +0 -17
  646. package/src/utils/decorators.tsx +0 -16
  647. package/src/utils/escapeStringRegexp.ts +0 -4
  648. package/src/utils/index.ts +0 -11
  649. package/src/utils/isMac.ts +0 -26
  650. package/src/utils/legacyIcon.tsx +0 -28
  651. package/src/utils/mergeRefs.ts +0 -23
  652. package/src/utils/noop.ts +0 -1
  653. package/src/utils/useSHA256.ts +0 -21
  654. package/src/vite-env.d.ts +0 -1
@@ -1,178 +0,0 @@
1
- import { ChangeSet, EditorState } from '@codemirror/state';
2
- import { EditorView } from '@codemirror/view';
3
-
4
- import {
5
- activeQueryHighlight,
6
- findActiveQueryRange,
7
- mapBoundariesThroughChanges,
8
- } from './activeQueryHighlight';
9
-
10
- describe('findActiveQueryRange', () => {
11
- it('returns null for empty boundaries', () => {
12
- expect(findActiveQueryRange('SELECT 1;', 0, [])).toBeNull();
13
- });
14
-
15
- it('finds single query', () => {
16
- const doc = 'SELECT 1;';
17
- const boundaries = [{ from: 0, to: 9 }];
18
- expect(findActiveQueryRange(doc, 4, boundaries)).toEqual({ from: 0, to: 9 });
19
- });
20
-
21
- it('finds first query when cursor is in it', () => {
22
- // splitSqlQueries returns segments that join back to the original doc
23
- const doc = 'SELECT 1;\nSELECT 2;';
24
- const boundaries = [
25
- { from: 0, to: 10 },
26
- { from: 10, to: 20 },
27
- ];
28
- expect(findActiveQueryRange(doc, 4, boundaries)).toEqual({ from: 0, to: 9 });
29
- });
30
-
31
- it('finds second query when cursor is in it', () => {
32
- const doc = 'SELECT 1;\nSELECT 2;';
33
- const boundaries = [
34
- { from: 0, to: 10 },
35
- { from: 10, to: 20 },
36
- ];
37
- expect(findActiveQueryRange(doc, 14, boundaries)).toEqual({ from: 10, to: 20 });
38
- });
39
-
40
- it('trims leading whitespace from query range', () => {
41
- const doc = 'SELECT 1;\n SELECT 2;';
42
- const boundaries = [
43
- { from: 0, to: 10 },
44
- { from: 10, to: 21 },
45
- ];
46
- expect(findActiveQueryRange(doc, 15, boundaries)).toEqual({ from: 12, to: 21 });
47
- });
48
-
49
- it('trims trailing whitespace from query range', () => {
50
- const doc = 'SELECT 1; \nSELECT 2;';
51
- const boundaries = [
52
- { from: 0, to: 12 },
53
- { from: 12, to: 22 },
54
- ];
55
- expect(findActiveQueryRange(doc, 4, boundaries)).toEqual({ from: 0, to: 9 });
56
- });
57
-
58
- it('uses last query when cursor is past all boundaries', () => {
59
- const doc = 'SELECT 1;\nSELECT 2;';
60
- const boundaries = [
61
- { from: 0, to: 10 },
62
- { from: 10, to: 20 },
63
- ];
64
- expect(findActiveQueryRange(doc, 25, boundaries)).toEqual({ from: 10, to: 20 });
65
- });
66
-
67
- it('returns null for whitespace-only query', () => {
68
- const doc = ' \n ';
69
- const boundaries = [{ from: 0, to: 6 }];
70
- expect(findActiveQueryRange(doc, 2, boundaries)).toBeNull();
71
- });
72
-
73
- it('handles cursor at query boundary (on semicolon)', () => {
74
- const doc = 'SELECT 1;\nSELECT 2;';
75
- const boundaries = [
76
- { from: 0, to: 10 },
77
- { from: 10, to: 20 },
78
- ];
79
- // Cursor at position 10 (the newline after first semicolon) — belongs to first query
80
- expect(findActiveQueryRange(doc, 10, boundaries)).toEqual({ from: 0, to: 9 });
81
- });
82
-
83
- it('handles cursor at position 0', () => {
84
- const doc = 'SELECT 1;';
85
- const boundaries = [{ from: 0, to: 9 }];
86
- expect(findActiveQueryRange(doc, 0, boundaries)).toEqual({ from: 0, to: 9 });
87
- });
88
-
89
- it('handles multi-line query', () => {
90
- const doc = 'SELECT\n *\nFROM\n users;';
91
- const boundaries = [{ from: 0, to: 24 }];
92
- expect(findActiveQueryRange(doc, 12, boundaries)).toEqual({ from: 0, to: 24 });
93
- });
94
- });
95
-
96
- describe('mapBoundariesThroughChanges', () => {
97
- it('maps boundaries through an insertion', () => {
98
- // doc: "SELECT 1;" (length 9) -> insert "A" at position 0 -> "ASELECT 1;" (length 10)
99
- const changes = ChangeSet.of({ from: 0, to: 0, insert: 'A' }, 9);
100
- const boundaries = [{ from: 0, to: 9 }];
101
- expect(mapBoundariesThroughChanges(boundaries, changes)).toEqual([{ from: 0, to: 10 }]);
102
- });
103
-
104
- it('maps boundaries through a deletion', () => {
105
- // doc: "SELECT 1;" (length 9) -> delete last char -> "SELECT 1" (length 8)
106
- const changes = ChangeSet.of({ from: 8, to: 9, insert: '' }, 9);
107
- const boundaries = [{ from: 0, to: 9 }];
108
- expect(mapBoundariesThroughChanges(boundaries, changes)).toEqual([{ from: 0, to: 8 }]);
109
- });
110
-
111
- it('clamps stale boundaries past changeset length (regression for RangeError)', () => {
112
- // Cached boundaries are based on a longer doc (length 20) than the changeset's
113
- // pre-change length (length 10). Without clamping, mapPos would throw RangeError.
114
- const changes = ChangeSet.of({ from: 9, to: 10, insert: '' }, 10);
115
- const staleBoundaries = [
116
- { from: 0, to: 10 },
117
- { from: 10, to: 20 },
118
- ];
119
- expect(() => mapBoundariesThroughChanges(staleBoundaries, changes)).not.toThrow();
120
- const mapped = mapBoundariesThroughChanges(staleBoundaries, changes);
121
- // The second boundary collapses (both ends clamp to prevLen and stay there).
122
- expect(mapped).toEqual([{ from: 0, to: 9 }]);
123
- });
124
-
125
- it('drops degenerate (empty) boundaries', () => {
126
- const changes = ChangeSet.of({ from: 0, to: 5, insert: '' }, 10);
127
- const boundaries = [
128
- { from: 0, to: 5 },
129
- { from: 5, to: 10 },
130
- ];
131
- // First boundary is fully deleted -> collapses to { 0, 0 } and is dropped.
132
- expect(mapBoundariesThroughChanges(boundaries, changes)).toEqual([{ from: 0, to: 5 }]);
133
- });
134
-
135
- it('handles empty boundaries list', () => {
136
- const changes = ChangeSet.of({ from: 0, to: 0, insert: 'A' }, 9);
137
- expect(mapBoundariesThroughChanges([], changes)).toEqual([]);
138
- });
139
- });
140
-
141
- describe('activeQueryHighlight plugin (integration)', () => {
142
- let container: HTMLDivElement;
143
-
144
- beforeEach(() => {
145
- container = document.createElement('div');
146
- document.body.appendChild(container);
147
- });
148
-
149
- afterEach(() => {
150
- container.remove();
151
- });
152
-
153
- it('clears decorations when all cached boundaries become degenerate after a change', async () => {
154
- const splitQueries = (sql: string) => Promise.resolve([sql]);
155
- const state = EditorState.create({
156
- doc: 'SELECT 1;SELECT 2;',
157
- extensions: [activeQueryHighlight(splitQueries)],
158
- });
159
- const view = new EditorView({ state, parent: container });
160
- view.focus();
161
- view.dispatch({ selection: { anchor: 5 } });
162
-
163
- // Wait for the 100ms debounced async parse to populate cachedBoundaries
164
- // and paint the initial `.cm-active-query` decorations.
165
- await new Promise((resolve) => setTimeout(resolve, 150));
166
- expect(container.querySelector('.cm-active-query')).toBeTruthy();
167
-
168
- // Delete the entire doc. Every cached boundary collapses to { 0, 0 } and is
169
- // dropped by mapBoundariesThroughChanges, so cachedBoundaries becomes []
170
- // synchronously. Prior to the fix, updateFromCache early-returned without
171
- // clearing decorations and the stale highlight persisted until the next
172
- // debounce tick (~100ms).
173
- view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: '' } });
174
- expect(container.querySelector('.cm-active-query')).toBeFalsy();
175
-
176
- view.destroy();
177
- });
178
- });
@@ -1,245 +0,0 @@
1
- import type { ChangeSet, Range } from '@codemirror/state';
2
- import { Decoration, EditorView, ViewPlugin, type ViewUpdate } from '@codemirror/view';
3
-
4
- import colors from '@keboola/tailwind-config/colors';
5
-
6
- const activeQueryFirstLine = Decoration.line({ class: 'cm-active-query cm-active-query-first' });
7
- const activeQueryMiddleLine = Decoration.line({ class: 'cm-active-query' });
8
- const activeQueryLastLine = Decoration.line({ class: 'cm-active-query cm-active-query-last' });
9
- const activeQuerySingleLine = Decoration.line({
10
- class: 'cm-active-query cm-active-query-first cm-active-query-last',
11
- });
12
-
13
- type QueryBoundary = { from: number; to: number };
14
-
15
- /**
16
- * Given pre-computed query boundaries and a cursor position, find which query
17
- * the cursor is in. Returns trimmed character offsets or null.
18
- */
19
- export const findActiveQueryRange = (
20
- doc: string,
21
- cursorPos: number,
22
- boundaries: QueryBoundary[],
23
- ): { from: number; to: number } | null => {
24
- if (boundaries.length === 0) return null;
25
-
26
- let match: QueryBoundary | undefined = boundaries[boundaries.length - 1];
27
- for (const boundary of boundaries) {
28
- if (cursorPos <= boundary.to) {
29
- match = boundary;
30
- break;
31
- }
32
- }
33
-
34
- if (!match) return null;
35
-
36
- // Trim leading/trailing whitespace from the query range for tighter boundaries
37
- const queryText = doc.slice(match.from, match.to);
38
- const leadingWhitespace = queryText.length - queryText.trimStart().length;
39
- const trailingWhitespace = queryText.length - queryText.trimEnd().length;
40
-
41
- const trimmedStart = match.from + leadingWhitespace;
42
- const trimmedEnd = match.to - trailingWhitespace;
43
-
44
- if (trimmedStart >= trimmedEnd) return null;
45
-
46
- return { from: trimmedStart, to: trimmedEnd };
47
- };
48
-
49
- /**
50
- * Convert splitSqlQueries result (array of query strings that join back to the
51
- * original doc) into character-offset boundaries.
52
- */
53
- const computeBoundaries = (queries: string[]): QueryBoundary[] => {
54
- const boundaries: QueryBoundary[] = [];
55
- let offset = 0;
56
- for (const query of queries) {
57
- boundaries.push({ from: offset, to: offset + query.length });
58
- offset += query.length;
59
- }
60
- return boundaries;
61
- };
62
-
63
- /**
64
- * Synchronously map cached boundaries through a changeset.
65
- *
66
- * Boundaries can outlive the document state they were computed from (the async
67
- * re-parse in `scheduleDocParse` is debounced, so several edits may land
68
- * before new boundaries are produced). When that happens a cached position
69
- * can exceed the changeset's pre-change length and `ChangeSet.mapPos` throws
70
- * `RangeError: Position X is out of range for changeset of length Y`.
71
- *
72
- * Clamp positions into the valid `[0, changes.length]` range before mapping
73
- * and drop degenerate boundaries so the mapping is safe even with stale cache.
74
- */
75
- export const mapBoundariesThroughChanges = (
76
- boundaries: QueryBoundary[],
77
- changes: ChangeSet,
78
- ): QueryBoundary[] => {
79
- const prevLen = changes.length;
80
- const mapped: QueryBoundary[] = [];
81
- for (const b of boundaries) {
82
- const from = changes.mapPos(Math.max(0, Math.min(b.from, prevLen)), -1);
83
- const to = changes.mapPos(Math.max(0, Math.min(b.to, prevLen)), 1);
84
- if (from < to) mapped.push({ from, to });
85
- }
86
- return mapped;
87
- };
88
-
89
- const buildDecorations = (view: EditorView, range: { from: number; to: number }) => {
90
- const startLine = view.state.doc.lineAt(range.from).number;
91
- const endLine = view.state.doc.lineAt(range.to).number;
92
-
93
- const decorations: Range<Decoration>[] = [];
94
- for (let lineNum = startLine; lineNum <= endLine; lineNum++) {
95
- const lineStart = view.state.doc.line(lineNum).from;
96
- if (startLine === endLine) {
97
- decorations.push(activeQuerySingleLine.range(lineStart));
98
- } else if (lineNum === startLine) {
99
- decorations.push(activeQueryFirstLine.range(lineStart));
100
- } else if (lineNum === endLine) {
101
- decorations.push(activeQueryLastLine.range(lineStart));
102
- } else {
103
- decorations.push(activeQueryMiddleLine.range(lineStart));
104
- }
105
- }
106
-
107
- return Decoration.set(decorations);
108
- };
109
-
110
- export const activeQueryHighlight = (splitQueries: (sql: string) => Promise<string[]>) => {
111
- return [
112
- ViewPlugin.fromClass(
113
- class {
114
- decorations = Decoration.none;
115
- private debounceTimer: ReturnType<typeof setTimeout> | null = null;
116
- private seq = 0;
117
- private cachedDoc = '';
118
- private cachedBoundaries: QueryBoundary[] = [];
119
- private destroyed = false;
120
-
121
- constructor(view: EditorView) {
122
- this.scheduleDocParse(view);
123
- }
124
-
125
- update(update: ViewUpdate) {
126
- if (update.focusChanged && !update.view.hasFocus) {
127
- this.decorations = Decoration.none;
128
- return;
129
- }
130
-
131
- if (update.docChanged) {
132
- // Synchronously map cached boundaries through document changes
133
- // so decorations update immediately without waiting for async re-parse.
134
- // Positions are clamped inside mapBoundariesThroughChanges because
135
- // the async re-parse is debounced and boundaries can be stale.
136
- if (this.cachedBoundaries.length > 0) {
137
- this.cachedBoundaries = mapBoundariesThroughChanges(
138
- this.cachedBoundaries,
139
- update.changes,
140
- );
141
- this.cachedDoc = update.state.doc.toString();
142
- this.updateFromCache(update.view);
143
- }
144
- // Still re-parse for accurate boundaries (handles structural changes like new semicolons)
145
- this.scheduleDocParse(update.view);
146
- } else if (update.selectionSet || (update.focusChanged && update.view.hasFocus)) {
147
- this.updateFromCache(update.view);
148
- }
149
- }
150
-
151
- destroy() {
152
- this.destroyed = true;
153
- if (this.debounceTimer) clearTimeout(this.debounceTimer);
154
- }
155
-
156
- /**
157
- * Update decorations using cached query boundaries.
158
- * Only mutates this.decorations — does NOT call view.dispatch().
159
- * When called from update() (sync), CodeMirror picks up the new
160
- * decorations via the accessor. When called from the async
161
- * scheduleDocParse callback, the caller must dispatch separately.
162
- */
163
- private updateFromCache(view: EditorView) {
164
- if (!view.hasFocus) {
165
- this.decorations = Decoration.none;
166
- return;
167
- }
168
-
169
- const { main } = view.state.selection;
170
-
171
- if (main.from !== main.to) {
172
- // User has text selected — hide highlight
173
- this.decorations = Decoration.none;
174
- return;
175
- }
176
-
177
- const doc = view.state.doc.toString();
178
- if (doc !== this.cachedDoc) return;
179
- if (this.cachedBoundaries.length === 0) {
180
- this.decorations = Decoration.none;
181
- return;
182
- }
183
-
184
- const range = findActiveQueryRange(doc, main.head, this.cachedBoundaries);
185
- this.decorations = range ? buildDecorations(view, range) : Decoration.none;
186
- }
187
-
188
- /** Parse queries async (debounced) and update decorations. */
189
- private scheduleDocParse(view: EditorView) {
190
- if (this.debounceTimer) clearTimeout(this.debounceTimer);
191
-
192
- this.debounceTimer = setTimeout(async () => {
193
- const seq = ++this.seq;
194
- const doc = view.state.doc.toString();
195
-
196
- if (!doc.trim()) {
197
- this.cachedDoc = doc;
198
- this.cachedBoundaries = [];
199
- if (this.decorations !== Decoration.none) {
200
- this.decorations = Decoration.none;
201
- if (!this.destroyed) view.dispatch();
202
- }
203
- return;
204
- }
205
-
206
- let queries: string[];
207
- try {
208
- queries = await splitQueries(doc);
209
- } catch {
210
- return;
211
- }
212
-
213
- // Discard stale results
214
- if (this.destroyed || seq !== this.seq) return;
215
-
216
- this.cachedDoc = doc;
217
- this.cachedBoundaries = computeBoundaries(queries);
218
-
219
- this.updateFromCache(view);
220
- if (!this.destroyed) view.dispatch();
221
- }, 100);
222
- }
223
- },
224
- { decorations: (v) => v.decorations },
225
- ),
226
- EditorView.baseTheme({
227
- '.cm-active-query': {
228
- boxShadow: `inset -1px 0 0 0 ${colors.secondary[300]}, inset 1px 0 0 0 ${colors.secondary[300]}`,
229
- marginRight: '8px',
230
- },
231
- '.cm-active-query-first': {
232
- boxShadow: `inset -1px 0 0 0 ${colors.secondary[300]}, inset 1px 0 0 0 ${colors.secondary[300]}, inset 0 1px 0 0 ${colors.secondary[300]}`,
233
- borderRadius: '4px 4px 0 0',
234
- },
235
- '.cm-active-query-last': {
236
- boxShadow: `inset -1px 0 0 0 ${colors.secondary[300]}, inset 1px 0 0 0 ${colors.secondary[300]}, inset 0 -1px 0 0 ${colors.secondary[300]}`,
237
- borderRadius: '0 0 4px 4px',
238
- },
239
- '.cm-active-query-first.cm-active-query-last': {
240
- boxShadow: `inset 0 0 0 1px ${colors.secondary[300]}`,
241
- borderRadius: '4px',
242
- },
243
- }),
244
- ];
245
- };
@@ -1,100 +0,0 @@
1
- import { javascript } from '@codemirror/lang-javascript';
2
- import { json } from '@codemirror/lang-json';
3
- import { python } from '@codemirror/lang-python';
4
- import { PLSQL, sql } from '@codemirror/lang-sql';
5
- import { StreamLanguage } from '@codemirror/language';
6
- import { r } from '@codemirror/legacy-modes/mode/r';
7
- import { shell } from '@codemirror/legacy-modes/mode/shell';
8
- import { githubLightInit } from '@uiw/codemirror-theme-github';
9
-
10
- import { sfsql } from '@keboola/codemirror-lang-sfsql';
11
- import colors from '@keboola/tailwind-config/colors';
12
-
13
- export type LANGUAGE_MODE =
14
- | 'application/json'
15
- | 'text/x-python'
16
- | 'text/x-sql'
17
- | 'text/x-sfsql'
18
- | 'text/x-plsql'
19
- | 'text/x-rsrc'
20
- | 'text/x-sh'
21
- | 'text/javascript'
22
- | 'text/typescript';
23
-
24
- export const baseThemeStyles = {
25
- '*': { lineHeight: '20px' },
26
- '*::selection': {
27
- backgroundColor: colors.secondary[500],
28
- color: `${colors.white} !important`,
29
- },
30
- '&.cm-editor:has(.cm-content[contenteditable="false"])': { backgroundColor: colors.neutral[150] },
31
- '&.cm-editor:has(.cm-content[contenteditable="false"]) .cm-gutters': {
32
- backgroundColor: colors.neutral[200],
33
- },
34
- '&.cm-editor .cm-scroller': { overflowAnchor: 'none' },
35
- '&.cm-editor, &.cm-editor .cm-scroller': {
36
- minHeight: '100%',
37
- flexGrow: 1,
38
- alignItems: 'stretch !important',
39
- outline: 'none',
40
- },
41
- '.cm-gutter.cm-foldGutter': { display: 'none !important' },
42
- '.cm-gutter.cm-lineNumbers': { paddingLeft: '20px', paddingRight: '6px' },
43
- '.cm-gutters': { height: 'auto' },
44
-
45
- // tokens overrides
46
- '.cm-line .tok-string': { color: colors.warning[700] },
47
-
48
- // merge (diff) view
49
- '&[class*="cm-merge-"] .cm-deletedLine': { backgroundColor: colors.error[100] },
50
- '&[class*="cm-merge-"] .cm-changedLine': { backgroundColor: colors.primary[100] },
51
- '&[class*="cm-merge-"] .cm-deletedLineGutter': { backgroundColor: colors.error[200] },
52
- '&[class*="cm-merge-"] .cm-changedLineGutter': { backgroundColor: colors.primary[200] },
53
- '&[class*="cm-merge-"] .cm-deletedText': { background: colors.error[200] },
54
- '&[class*="cm-merge-"] .cm-changedText': { background: colors.primary[200] },
55
- '&[class*="cm-merge-"]': {
56
- backgroundColor: `${colors.white} !important`,
57
- },
58
- '&[class*="cm-merge-"] .cm-gutters': {
59
- backgroundColor: `${colors.white} !important`,
60
- },
61
- '.cm-changeGutter': { position: 'absolute', zIndex: -1, width: '100%', paddingLeft: 0 },
62
- '&[class*="cm-merge-"] .cm-changedLine,&[class*="cm-merge-"] .cm-line, &[class*="cm-merge-"] .cm-deletedChunk':
63
- { paddingLeft: 0 },
64
- };
65
-
66
- export const BASIS_SETUP = { drawSelection: false };
67
-
68
- export const customTheme = githubLightInit({
69
- settings: {
70
- fontFamily: `'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New'`,
71
- background: colors.neutral[50],
72
- gutterBackground: colors.neutral[100],
73
- gutterBorder: 'transparent',
74
- lineHighlight: 'transparent',
75
- selection: colors.secondary[500],
76
- },
77
- });
78
-
79
- export const getLanguageMode = (mode?: LANGUAGE_MODE) => {
80
- switch (mode) {
81
- case 'text/x-python':
82
- return python();
83
- case 'text/x-sql':
84
- return sql({ upperCaseKeywords: true });
85
- case 'text/x-sfsql':
86
- return StreamLanguage.define(sfsql);
87
- case 'text/x-plsql':
88
- return sql({ upperCaseKeywords: true, dialect: PLSQL });
89
- case 'text/x-rsrc':
90
- return StreamLanguage.define(r);
91
- case 'text/x-sh':
92
- return StreamLanguage.define(shell);
93
- case 'text/javascript':
94
- return javascript({ jsx: true });
95
- case 'text/typescript':
96
- return javascript({ jsx: true, typescript: true });
97
- default:
98
- return json();
99
- }
100
- };