@keboola/design 2.0.1 → 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 (663) 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 +4 -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 +127 -97
  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 +163 -133
  13. package/dist/index.js.map +1 -1
  14. package/dist/markdown-editor.cjs +30 -33
  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 +30 -33
  19. package/dist/markdown-editor.js.map +1 -1
  20. package/dist/mermaid.cjs +18 -14
  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 +18 -14
  25. package/dist/mermaid.js.map +1 -1
  26. package/dist/styles.css +1 -1
  27. package/package.json +79 -9
  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 -162
  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/InputOtp/InputOtp.stories.tsx +0 -214
  96. package/src/blocks/InputOtp/InputOtp.test.tsx +0 -162
  97. package/src/blocks/InputOtp/InputOtp.tsx +0 -62
  98. package/src/blocks/InputOtp/InputOtpGroup.tsx +0 -13
  99. package/src/blocks/InputOtp/InputOtpSeparator.tsx +0 -23
  100. package/src/blocks/InputOtp/InputOtpSlot.styles.ts +0 -52
  101. package/src/blocks/InputOtp/InputOtpSlot.tsx +0 -44
  102. package/src/blocks/InputOtp/context.ts +0 -23
  103. package/src/blocks/InputOtp/index.ts +0 -23
  104. package/src/blocks/MermaidDiagram/MermaidDiagram.stories.tsx +0 -87
  105. package/src/blocks/MermaidDiagram/MermaidDiagram.tsx +0 -266
  106. package/src/blocks/MermaidDiagram/index.ts +0 -1
  107. package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +0 -119
  108. package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +0 -41
  109. package/src/blocks/MultiActionButtonGroup/MultiActionButtonGroup.tsx +0 -16
  110. package/src/blocks/MultiActionButtonGroup/index.ts +0 -1
  111. package/src/blocks/MultiCombobox/MultiCombobox.stories.tsx +0 -324
  112. package/src/blocks/MultiCombobox/MultiCombobox.tsx +0 -257
  113. package/src/blocks/MultiCombobox/index.ts +0 -1
  114. package/src/blocks/NumberInput/NumberInput.stories.tsx +0 -112
  115. package/src/blocks/NumberInput/NumberInput.test.tsx +0 -148
  116. package/src/blocks/NumberInput/NumberInput.tsx +0 -89
  117. package/src/blocks/NumberInput/index.ts +0 -1
  118. package/src/blocks/PageHeader/AGENTS.md +0 -137
  119. package/src/blocks/PageHeader/PageHeader.stories.tsx +0 -371
  120. package/src/blocks/PageHeader/PageHeader.tsx +0 -22
  121. package/src/blocks/PageHeader/PageHeaderDetail.tsx +0 -84
  122. package/src/blocks/PageHeader/PageHeaderIndex.tsx +0 -75
  123. package/src/blocks/PageHeader/index.ts +0 -1
  124. package/src/blocks/PageHeader/styles.ts +0 -6
  125. package/src/blocks/PageLayout/AGENTS.md +0 -94
  126. package/src/blocks/PageLayout/PageLayout.stories.tsx +0 -146
  127. package/src/blocks/PageLayout/PageLayout.tsx +0 -139
  128. package/src/blocks/PageLayout/index.ts +0 -1
  129. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +0 -353
  130. package/src/blocks/PageToolbar/PageToolbar.tsx +0 -160
  131. package/src/blocks/PageToolbar/PageToolbarToken.tsx +0 -61
  132. package/src/blocks/PageToolbar/index.ts +0 -1
  133. package/src/blocks/PasswordInput/PasswordInput.stories.tsx +0 -114
  134. package/src/blocks/PasswordInput/PasswordInput.test.tsx +0 -219
  135. package/src/blocks/PasswordInput/PasswordInput.tsx +0 -180
  136. package/src/blocks/PasswordInput/index.ts +0 -1
  137. package/src/blocks/SearchInput/SearchInput.stories.tsx +0 -127
  138. package/src/blocks/SearchInput/SearchInput.test.tsx +0 -162
  139. package/src/blocks/SearchInput/SearchInput.tsx +0 -172
  140. package/src/blocks/SearchInput/index.ts +0 -1
  141. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.stories.tsx +0 -73
  142. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +0 -92
  143. package/src/blocks/SearchInputWithNavigation/index.ts +0 -1
  144. package/src/blocks/SplitButton/SplitButton.stories.tsx +0 -91
  145. package/src/blocks/SplitButton/SplitButton.tsx +0 -81
  146. package/src/blocks/SplitButton/index.ts +0 -1
  147. package/src/blocks/Tagger/TagItem.tsx +0 -32
  148. package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +0 -44
  149. package/src/blocks/Tagger/TagSelectPopover/TagSelectItem.tsx +0 -31
  150. package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +0 -67
  151. package/src/blocks/Tagger/TagSelectPopover/TagSelectPopover.tsx +0 -34
  152. package/src/blocks/Tagger/TagSelectPopover/TagSelectValue.tsx +0 -47
  153. package/src/blocks/Tagger/TagSelectPopover/index.ts +0 -1
  154. package/src/blocks/Tagger/Tagger.stories.tsx +0 -80
  155. package/src/blocks/Tagger/Tagger.tsx +0 -101
  156. package/src/blocks/Tagger/index.ts +0 -1
  157. package/src/blocks/Tagger/types.ts +0 -11
  158. package/src/blocks/Textarea/Textarea.stories.tsx +0 -47
  159. package/src/blocks/Textarea/Textarea.tsx +0 -50
  160. package/src/blocks/Textarea/index.ts +0 -1
  161. package/src/components/Alert/Alert.stories.tsx +0 -101
  162. package/src/components/Alert/Alert.tsx +0 -121
  163. package/src/components/Alert/AlertAction.tsx +0 -31
  164. package/src/components/Alert/AlertCollapsibleIcon.tsx +0 -25
  165. package/src/components/Alert/AlertDescription.tsx +0 -36
  166. package/src/components/Alert/AlertIcon.tsx +0 -40
  167. package/src/components/Alert/AlertRoot.tsx +0 -64
  168. package/src/components/Alert/AlertTitle.tsx +0 -25
  169. package/src/components/Alert/index.ts +0 -1
  170. package/src/components/Avatar.stories.tsx +0 -22
  171. package/src/components/Avatar.tsx +0 -88
  172. package/src/components/Badge/Badge.stories.tsx +0 -122
  173. package/src/components/Badge/Badge.tsx +0 -71
  174. package/src/components/Badge/BadgeAddon.tsx +0 -63
  175. package/src/components/Badge/BadgeButton.tsx +0 -40
  176. package/src/components/Badge/BadgeLabel.tsx +0 -37
  177. package/src/components/Badge/BadgeRoot.tsx +0 -21
  178. package/src/components/Badge/index.ts +0 -1
  179. package/src/components/Badge/styles.ts +0 -74
  180. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -135
  181. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -23
  182. package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +0 -43
  183. package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -9
  184. package/src/components/Breadcrumb/BreadcrumbLink.tsx +0 -48
  185. package/src/components/Breadcrumb/BreadcrumbList.tsx +0 -26
  186. package/src/components/Breadcrumb/BreadcrumbPage.tsx +0 -22
  187. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +0 -28
  188. package/src/components/Breadcrumb/index.ts +0 -1
  189. package/src/components/Button/Button.stories.tsx +0 -80
  190. package/src/components/Button/Button.tsx +0 -110
  191. package/src/components/Button/ButtonInline.stories.tsx +0 -54
  192. package/src/components/Button/ButtonInline.tsx +0 -77
  193. package/src/components/Button/index.ts +0 -3
  194. package/src/components/Button/styles.ts +0 -313
  195. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -140
  196. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -79
  197. package/src/components/ButtonGroup/index.ts +0 -1
  198. package/src/components/Calendar/Calendar.stories.tsx +0 -101
  199. package/src/components/Calendar/Calendar.tsx +0 -44
  200. package/src/components/Calendar/index.ts +0 -2
  201. package/src/components/Card/Card.stories.tsx +0 -60
  202. package/src/components/Card/Card.tsx +0 -42
  203. package/src/components/Card/CardContent.tsx +0 -5
  204. package/src/components/Card/CardHeader.tsx +0 -5
  205. package/src/components/Card/CardTitle.tsx +0 -13
  206. package/src/components/Card/index.ts +0 -1
  207. package/src/components/Card/styles.ts +0 -32
  208. package/src/components/Checkbox/Checkbox.stories.tsx +0 -210
  209. package/src/components/Checkbox/Checkbox.test.tsx +0 -140
  210. package/src/components/Checkbox/Checkbox.tsx +0 -83
  211. package/src/components/Checkbox/index.ts +0 -1
  212. package/src/components/Checkbox/styles.ts +0 -77
  213. package/src/components/Clipboard/Clipboard.stories.tsx +0 -44
  214. package/src/components/Clipboard/Clipboard.tsx +0 -89
  215. package/src/components/Clipboard/index.ts +0 -1
  216. package/src/components/CodeEditor/ButtonToolbar.tsx +0 -14
  217. package/src/components/CodeEditor/CodeEditor.tsx +0 -155
  218. package/src/components/CodeEditor/SqlEditor.stories.tsx +0 -76
  219. package/src/components/CodeEditor/SqlEditor.tsx +0 -206
  220. package/src/components/CodeEditor/ToggleComponentHelp.tsx +0 -7
  221. package/src/components/CodeEditor/activeQueryHighlight.test.ts +0 -178
  222. package/src/components/CodeEditor/activeQueryHighlight.ts +0 -245
  223. package/src/components/CodeEditor/helpers.ts +0 -100
  224. package/src/components/CodeEditor/highlighting.ts +0 -184
  225. package/src/components/CodeEditor/index.ts +0 -3
  226. package/src/components/CodeEditor/search.ts +0 -186
  227. package/src/components/Collapse.stories.tsx +0 -56
  228. package/src/components/Collapse.tsx +0 -61
  229. package/src/components/Collapsible/Collapsible.stories.tsx +0 -55
  230. package/src/components/Collapsible/Collapsible.tsx +0 -11
  231. package/src/components/Collapsible/CollapsibleContent.tsx +0 -25
  232. package/src/components/Collapsible/index.ts +0 -1
  233. package/src/components/CollapsiblePanel.stories.tsx +0 -25
  234. package/src/components/CollapsiblePanel.tsx +0 -127
  235. package/src/components/Combobox/Combobox.stories.tsx +0 -426
  236. package/src/components/Combobox/Combobox.test.tsx +0 -165
  237. package/src/components/Combobox/Combobox.tsx +0 -345
  238. package/src/components/Combobox/ComboboxChips.tsx +0 -68
  239. package/src/components/Combobox/ComboboxContent.tsx +0 -95
  240. package/src/components/Combobox/ComboboxEmpty.tsx +0 -30
  241. package/src/components/Combobox/ComboboxInput.tsx +0 -10
  242. package/src/components/Combobox/ComboboxInputGroup.tsx +0 -38
  243. package/src/components/Combobox/ComboboxItem.tsx +0 -70
  244. package/src/components/Combobox/ComboboxItemIndicator.tsx +0 -78
  245. package/src/components/Combobox/ComboboxList.tsx +0 -32
  246. package/src/components/Combobox/ComboboxRoot.tsx +0 -5
  247. package/src/components/Combobox/ComboboxSeparator.tsx +0 -20
  248. package/src/components/Combobox/Group/ComboboxCollection.tsx +0 -7
  249. package/src/components/Combobox/Group/ComboboxGroup.tsx +0 -23
  250. package/src/components/Combobox/Group/ComboboxGroupLabel.tsx +0 -38
  251. package/src/components/Combobox/Group/index.ts +0 -3
  252. package/src/components/Combobox/index.ts +0 -1
  253. package/src/components/Combobox/types.ts +0 -22
  254. package/src/components/Combobox/utils.test.ts +0 -95
  255. package/src/components/Combobox/utils.ts +0 -103
  256. package/src/components/Command/Command.stories.tsx +0 -367
  257. package/src/components/Command/Command.tsx +0 -37
  258. package/src/components/Command/CommandContent.tsx +0 -19
  259. package/src/components/Command/CommandEmpty.tsx +0 -6
  260. package/src/components/Command/CommandGroup.tsx +0 -26
  261. package/src/components/Command/CommandInput.tsx +0 -27
  262. package/src/components/Command/CommandItem/CheckIndicator.tsx +0 -86
  263. package/src/components/Command/CommandItem/CommandItem.tsx +0 -94
  264. package/src/components/Command/CommandItem/index.ts +0 -1
  265. package/src/components/Command/CommandList.tsx +0 -32
  266. package/src/components/Command/CommandSeparator.tsx +0 -13
  267. package/src/components/Command/index.ts +0 -6
  268. package/src/components/DatePicker/DatePicker.tsx +0 -37
  269. package/src/components/DatePicker/index.ts +0 -1
  270. package/src/components/DiffView/DiffView.stories.tsx +0 -80
  271. package/src/components/DiffView/DiffView.tsx +0 -131
  272. package/src/components/DiffView/DiffViewMark.tsx +0 -21
  273. package/src/components/DiffView/DiffViewTd.tsx +0 -84
  274. package/src/components/DiffView/DiffViewTh.tsx +0 -23
  275. package/src/components/DiffView/index.ts +0 -11
  276. package/src/components/DiffView/util.test.ts +0 -231
  277. package/src/components/DiffView/util.ts +0 -311
  278. package/src/components/DotsLoader.tsx +0 -22
  279. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -310
  280. package/src/components/DropdownMenu/DropdownMenu.tsx +0 -61
  281. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +0 -55
  282. package/src/components/DropdownMenu/DropdownMenuContent.tsx +0 -52
  283. package/src/components/DropdownMenu/DropdownMenuContext.tsx +0 -13
  284. package/src/components/DropdownMenu/DropdownMenuItem.tsx +0 -80
  285. package/src/components/DropdownMenu/DropdownMenuItemDescription.tsx +0 -42
  286. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +0 -104
  287. package/src/components/DropdownMenu/DropdownMenuLabel.tsx +0 -21
  288. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.tsx +0 -31
  289. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +0 -67
  290. package/src/components/DropdownMenu/DropdownMenuRadioGroup/index.ts +0 -2
  291. package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +0 -35
  292. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSub.tsx +0 -3
  293. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubContent.tsx +0 -21
  294. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +0 -17
  295. package/src/components/DropdownMenu/DropdownMenuSub/index.ts +0 -3
  296. package/src/components/DropdownMenu/DropdownMenuTrigger.tsx +0 -19
  297. package/src/components/DropdownMenu/ItemIcon.tsx +0 -30
  298. package/src/components/DropdownMenu/index.ts +0 -1
  299. package/src/components/DropdownMenu/styles.ts +0 -82
  300. package/src/components/EmptySearchContent.stories.tsx +0 -12
  301. package/src/components/EmptySearchContent.tsx +0 -13
  302. package/src/components/FieldBox/FieldBox.stories.tsx +0 -138
  303. package/src/components/FieldBox/FieldBox.tsx +0 -43
  304. package/src/components/FieldBox/FieldBoxDescription.tsx +0 -18
  305. package/src/components/FieldBox/FieldBoxTitle.tsx +0 -20
  306. package/src/components/FieldBox/index.ts +0 -1
  307. package/src/components/FieldBox/styles.ts +0 -37
  308. package/src/components/FormGroup/FormGroup.stories.tsx +0 -120
  309. package/src/components/FormGroup/FormGroup.tsx +0 -48
  310. package/src/components/FormGroup/FormGroupColorInput.tsx +0 -15
  311. package/src/components/FormGroup/FormGroupHelp.tsx +0 -17
  312. package/src/components/FormGroup/FormGroupNumberInput.tsx +0 -15
  313. package/src/components/FormGroup/FormGroupTextInput.tsx +0 -15
  314. package/src/components/FormGroup/FormGroupTextarea.tsx +0 -12
  315. package/src/components/FormGroup/context.ts +0 -11
  316. package/src/components/FormGroup/index.ts +0 -2
  317. package/src/components/FormGroup/types.ts +0 -5
  318. package/src/components/FullScreenModal/FullScreenModal.tsx +0 -8
  319. package/src/components/FullScreenModal/FullScreenModalBody.tsx +0 -16
  320. package/src/components/FullScreenModal/FullScreenModalHeader.tsx +0 -92
  321. package/src/components/FullScreenModal/FullScreenModalRoot.tsx +0 -79
  322. package/src/components/FullScreenModal/index.ts +0 -3
  323. package/src/components/HelpBlock/HelpBlock.stories.tsx +0 -28
  324. package/src/components/HelpBlock/HelpBlock.tsx +0 -31
  325. package/src/components/HelpBlock/index.ts +0 -1
  326. package/src/components/HoverCard/HoverCard.stories.tsx +0 -77
  327. package/src/components/HoverCard/HoverCard.tsx +0 -13
  328. package/src/components/HoverCard/HoverCardContent.tsx +0 -68
  329. package/src/components/HoverCard/index.ts +0 -1
  330. package/src/components/Icon/Icon.stories.tsx +0 -26
  331. package/src/components/Icon/Icon.tsx +0 -10
  332. package/src/components/Icon/Icons.mdx +0 -28
  333. package/src/components/Icon/constants.ts +0 -1
  334. package/src/components/Icon/index.ts +0 -27
  335. package/src/components/Input/DateInput/DateInput.stories.tsx +0 -58
  336. package/src/components/Input/DateInput/DateInput.tsx +0 -143
  337. package/src/components/Input/DateInput/helpers.test.ts +0 -102
  338. package/src/components/Input/DateInput/helpers.ts +0 -59
  339. package/src/components/Input/DateInput/index.ts +0 -1
  340. package/src/components/Input/DateRangeInput/DateRangeInput.stories.tsx +0 -66
  341. package/src/components/Input/DateRangeInput/DateRangeInput.tsx +0 -139
  342. package/src/components/Input/DateRangeInput/helpers.test.ts +0 -146
  343. package/src/components/Input/DateRangeInput/helpers.ts +0 -36
  344. package/src/components/Input/DateRangeInput/index.ts +0 -1
  345. package/src/components/Input/Input.stories.tsx +0 -93
  346. package/src/components/Input/Input.test.tsx +0 -112
  347. package/src/components/Input/Input.tsx +0 -163
  348. package/src/components/Input/TextInput/TextInput.stories.tsx +0 -68
  349. package/src/components/Input/TextInput/TextInput.test.tsx +0 -52
  350. package/src/components/Input/TextInput/TextInput.tsx +0 -73
  351. package/src/components/Input/TextInput/index.ts +0 -1
  352. package/src/components/Input/TimeInput/TimeInput.stories.tsx +0 -89
  353. package/src/components/Input/TimeInput/TimeInput.tsx +0 -106
  354. package/src/components/Input/TimeInput/index.ts +0 -1
  355. package/src/components/Input/index.ts +0 -4
  356. package/src/components/Input/utils.ts +0 -11
  357. package/src/components/InputGroup/InputGroup.stories.tsx +0 -215
  358. package/src/components/InputGroup/InputGroup.tsx +0 -228
  359. package/src/components/InputGroup/InputGroupAddon.tsx +0 -57
  360. package/src/components/InputGroup/InputGroupButton.tsx +0 -25
  361. package/src/components/InputGroup/InputGroupInput.tsx +0 -34
  362. package/src/components/InputGroup/InputGroupText.tsx +0 -21
  363. package/src/components/InputGroup/InputGroupTextArea.tsx +0 -78
  364. package/src/components/InputGroup/index.ts +0 -1
  365. package/src/components/Kbd/Kbd.stories.tsx +0 -82
  366. package/src/components/Kbd/Kbd.tsx +0 -17
  367. package/src/components/Kbd/KbdGroup.tsx +0 -35
  368. package/src/components/Kbd/KbdSeparator.tsx +0 -9
  369. package/src/components/Kbd/index.ts +0 -3
  370. package/src/components/Kbd/keyboardKeys.ts +0 -40
  371. package/src/components/Kbd/styles.ts +0 -39
  372. package/src/components/Label/Label.stories.tsx +0 -53
  373. package/src/components/Label/Label.tsx +0 -31
  374. package/src/components/Label/index.ts +0 -1
  375. package/src/components/Link.stories.tsx +0 -19
  376. package/src/components/Link.tsx +0 -37
  377. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +0 -182
  378. package/src/components/MarkdownEditor/MarkdownEditor.test.ts +0 -171
  379. package/src/components/MarkdownEditor/MarkdownEditor.tsx +0 -245
  380. package/src/components/MarkdownEditor/context.ts +0 -10
  381. package/src/components/MarkdownEditor/index.ts +0 -1
  382. package/src/components/MarkdownEditor/nodes/ImageNode.tsx +0 -115
  383. package/src/components/MarkdownEditor/nodes/ImageNodeComponent.tsx +0 -18
  384. package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +0 -72
  385. package/src/components/MarkdownEditor/nodes/MermaidNodeComponent.tsx +0 -35
  386. package/src/components/MarkdownEditor/plugins/ImagePastePlugin.tsx +0 -149
  387. package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +0 -81
  388. package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +0 -65
  389. package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +0 -284
  390. package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +0 -99
  391. package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +0 -142
  392. package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +0 -160
  393. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarButton.tsx +0 -36
  394. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarDivider.tsx +0 -1
  395. package/src/components/MarkdownEditor/theme.ts +0 -39
  396. package/src/components/MarkdownEditor/transformers.ts +0 -189
  397. package/src/components/MarkedText/MarkedText.stories.tsx +0 -46
  398. package/src/components/MarkedText/MarkedText.tsx +0 -36
  399. package/src/components/MarkedText/index.ts +0 -1
  400. package/src/components/MarkedText/utils.test.ts +0 -193
  401. package/src/components/MarkedText/utils.ts +0 -37
  402. package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +0 -25
  403. package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +0 -77
  404. package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +0 -38
  405. package/src/components/MergeEditor/MergeEditor.stories.tsx +0 -226
  406. package/src/components/MergeEditor/MergeEditor.tsx +0 -125
  407. package/src/components/MergeEditor/MergePane.tsx +0 -113
  408. package/src/components/MergeEditor/PaneHeader.tsx +0 -11
  409. package/src/components/MergeEditor/constants.ts +0 -48
  410. package/src/components/MergeEditor/decorations.ts +0 -126
  411. package/src/components/MergeEditor/helpers.test.ts +0 -172
  412. package/src/components/MergeEditor/helpers.ts +0 -118
  413. package/src/components/MergeEditor/index.ts +0 -5
  414. package/src/components/MergeEditor/useMergeDiff.ts +0 -573
  415. package/src/components/MergeEditor/useScrollSync.ts +0 -79
  416. package/src/components/Modal/Modal.stories.tsx +0 -680
  417. package/src/components/Modal/Modal.tsx +0 -49
  418. package/src/components/Modal/ModalBody.tsx +0 -33
  419. package/src/components/Modal/ModalCloseIcon.tsx +0 -31
  420. package/src/components/Modal/ModalContent.tsx +0 -95
  421. package/src/components/Modal/ModalDescription.tsx +0 -20
  422. package/src/components/Modal/ModalFooter.tsx +0 -20
  423. package/src/components/Modal/ModalHeader.tsx +0 -61
  424. package/src/components/Modal/ModalIcon.tsx +0 -109
  425. package/src/components/Modal/ModalOverlay.tsx +0 -42
  426. package/src/components/Modal/ModalTitle.tsx +0 -12
  427. package/src/components/Modal/index.ts +0 -1
  428. package/src/components/Navbar/Navbar.stories.tsx +0 -191
  429. package/src/components/Navbar/Navbar.tsx +0 -80
  430. package/src/components/Navbar/NavbarContent.tsx +0 -20
  431. package/src/components/Navbar/NavbarFooter.tsx +0 -11
  432. package/src/components/Navbar/NavbarHeader.tsx +0 -11
  433. package/src/components/Navbar/NavbarMenu.tsx +0 -30
  434. package/src/components/Navbar/NavbarMenuAvatar.tsx +0 -67
  435. package/src/components/Navbar/NavbarMenuButton.tsx +0 -135
  436. package/src/components/Navbar/NavbarMenuItem.tsx +0 -9
  437. package/src/components/Navbar/NavbarMenuItemAdornment.tsx +0 -65
  438. package/src/components/Navbar/index.ts +0 -1
  439. package/src/components/Pagination/Pagination.stories.tsx +0 -131
  440. package/src/components/Pagination/Pagination.tsx +0 -34
  441. package/src/components/Pagination/PaginationButton.tsx +0 -36
  442. package/src/components/Pagination/PaginationContent.tsx +0 -12
  443. package/src/components/Pagination/PaginationEllipsis.tsx +0 -26
  444. package/src/components/Pagination/PaginationItem.tsx +0 -9
  445. package/src/components/Pagination/PaginationNext.tsx +0 -20
  446. package/src/components/Pagination/PaginationPrevious.tsx +0 -14
  447. package/src/components/Pagination/index.ts +0 -1
  448. package/src/components/PanelWithDetails.stories.tsx +0 -28
  449. package/src/components/PanelWithDetails.tsx +0 -65
  450. package/src/components/Popconfirm/Popconfirm.stories.tsx +0 -373
  451. package/src/components/Popconfirm/Popconfirm.tsx +0 -82
  452. package/src/components/Popconfirm/PopconfirmBody.tsx +0 -5
  453. package/src/components/Popconfirm/PopconfirmCancel.tsx +0 -45
  454. package/src/components/Popconfirm/PopconfirmConfirm.tsx +0 -57
  455. package/src/components/Popconfirm/PopconfirmContent.tsx +0 -33
  456. package/src/components/Popconfirm/PopconfirmFooter.tsx +0 -9
  457. package/src/components/Popconfirm/PopconfirmTrigger.tsx +0 -22
  458. package/src/components/Popconfirm/context.ts +0 -19
  459. package/src/components/Popconfirm/index.ts +0 -1
  460. package/src/components/Popover/Popover.stories.tsx +0 -85
  461. package/src/components/Popover/Popover.tsx +0 -15
  462. package/src/components/Popover/PopoverContent.tsx +0 -103
  463. package/src/components/Popover/index.ts +0 -1
  464. package/src/components/Progress/Progress.stories.tsx +0 -67
  465. package/src/components/Progress/Progress.tsx +0 -45
  466. package/src/components/Progress/index.ts +0 -1
  467. package/src/components/RadioGroup/Radio.tsx +0 -61
  468. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -300
  469. package/src/components/RadioGroup/RadioGroup.tsx +0 -64
  470. package/src/components/RadioGroup/RadioGroupItem.tsx +0 -60
  471. package/src/components/RadioGroup/RadioGroupItemButton.tsx +0 -79
  472. package/src/components/RadioGroup/RadioGroupSeparator.tsx +0 -12
  473. package/src/components/RadioGroup/context.ts +0 -13
  474. package/src/components/RadioGroup/index.ts +0 -1
  475. package/src/components/Resizable/Resizable.stories.tsx +0 -50
  476. package/src/components/Resizable/ResizableHandle.tsx +0 -50
  477. package/src/components/Resizable/ResizablePanel.tsx +0 -12
  478. package/src/components/Resizable/ResizablePanelGroup.tsx +0 -19
  479. package/src/components/Resizable/index.ts +0 -3
  480. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -43
  481. package/src/components/ScrollArea/ScrollArea.tsx +0 -50
  482. package/src/components/ScrollArea/ScrollBar.tsx +0 -32
  483. package/src/components/ScrollArea/index.ts +0 -2
  484. package/src/components/Search/ClearButton.tsx +0 -42
  485. package/src/components/Search/Search.stories.tsx +0 -77
  486. package/src/components/Search/Search.test.tsx +0 -224
  487. package/src/components/Search/Search.tsx +0 -139
  488. package/src/components/Search/SearchForm.tsx +0 -37
  489. package/src/components/Search/index.ts +0 -2
  490. package/src/components/Search/styles.ts +0 -88
  491. package/src/components/Search/utils.ts +0 -11
  492. package/src/components/Select/Select.stories.tsx +0 -109
  493. package/src/components/Select/Select.tsx +0 -141
  494. package/src/components/Select/SelectContent.tsx +0 -110
  495. package/src/components/Select/SelectGroup.tsx +0 -10
  496. package/src/components/Select/SelectItem.tsx +0 -72
  497. package/src/components/Select/SelectLabel.tsx +0 -32
  498. package/src/components/Select/SelectRoot.tsx +0 -6
  499. package/src/components/Select/SelectSeparator.tsx +0 -13
  500. package/src/components/Select/SelectTrigger.tsx +0 -161
  501. package/src/components/Select/index.ts +0 -1
  502. package/src/components/Separator/Separator.stories.tsx +0 -60
  503. package/src/components/Separator/Separator.test.tsx +0 -39
  504. package/src/components/Separator/Separator.tsx +0 -115
  505. package/src/components/Separator/index.ts +0 -1
  506. package/src/components/Sheet/Sheet.stories.tsx +0 -63
  507. package/src/components/Sheet/Sheet.tsx +0 -21
  508. package/src/components/Sheet/SheetBody.tsx +0 -12
  509. package/src/components/Sheet/SheetContent.tsx +0 -131
  510. package/src/components/Sheet/SheetFooter.tsx +0 -9
  511. package/src/components/Sheet/SheetHeader.tsx +0 -39
  512. package/src/components/Sheet/SheetOverlay.tsx +0 -11
  513. package/src/components/Sheet/SheetTitle.tsx +0 -12
  514. package/src/components/Sheet/index.ts +0 -1
  515. package/src/components/Sidebar/Sidebar.stories.tsx +0 -849
  516. package/src/components/Sidebar/Sidebar.tsx +0 -225
  517. package/src/components/Sidebar/SidebarContent.tsx +0 -61
  518. package/src/components/Sidebar/SidebarFillTrigger.tsx +0 -25
  519. package/src/components/Sidebar/SidebarFooter.tsx +0 -13
  520. package/src/components/Sidebar/SidebarGroup/SidebarGroup.tsx +0 -23
  521. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +0 -53
  522. package/src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx +0 -20
  523. package/src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx +0 -76
  524. package/src/components/Sidebar/SidebarGroup/index.ts +0 -4
  525. package/src/components/Sidebar/SidebarHeader.tsx +0 -20
  526. package/src/components/Sidebar/SidebarInstanceContext.ts +0 -18
  527. package/src/components/Sidebar/SidebarMenu/SidebarMenu.tsx +0 -28
  528. package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +0 -69
  529. package/src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx +0 -56
  530. package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +0 -110
  531. package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +0 -108
  532. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +0 -30
  533. package/src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx +0 -9
  534. package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +0 -139
  535. package/src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx +0 -106
  536. package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +0 -88
  537. package/src/components/Sidebar/SidebarMenu/index.ts +0 -10
  538. package/src/components/Sidebar/SidebarProvider/SidebarProvider.tsx +0 -171
  539. package/src/components/Sidebar/SidebarProvider/context.ts +0 -35
  540. package/src/components/Sidebar/SidebarProvider/index.ts +0 -2
  541. package/src/components/Sidebar/SidebarProvider/useHoverTracking.test.ts +0 -199
  542. package/src/components/Sidebar/SidebarProvider/useHoverTracking.ts +0 -72
  543. package/src/components/Sidebar/SidebarProvider/useSidebarState.ts +0 -50
  544. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.test.ts +0 -179
  545. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.ts +0 -53
  546. package/src/components/Sidebar/SidebarResizeHandle.tsx +0 -28
  547. package/src/components/Sidebar/SidebarSeparator.tsx +0 -15
  548. package/src/components/Sidebar/SidebarTrigger.tsx +0 -40
  549. package/src/components/Sidebar/index.ts +0 -3
  550. package/src/components/Sidebar/types.ts +0 -6
  551. package/src/components/Sidebar/useResizeSidebar.ts +0 -112
  552. package/src/components/Sidebar/utils.test.ts +0 -178
  553. package/src/components/Sidebar/utils.ts +0 -70
  554. package/src/components/Skeleton/Skeleton.stories.tsx +0 -106
  555. package/src/components/Skeleton/Skeleton.tsx +0 -77
  556. package/src/components/Skeleton/SkeletonList.stories.tsx +0 -11
  557. package/src/components/Skeleton/SkeletonList.tsx +0 -65
  558. package/src/components/Slider/Slider.stories.tsx +0 -99
  559. package/src/components/Slider/Slider.tsx +0 -85
  560. package/src/components/Slider/SliderThumb.tsx +0 -57
  561. package/src/components/Slider/SliderTrack.tsx +0 -49
  562. package/src/components/Slider/index.ts +0 -1
  563. package/src/components/Slider/useInteracting.test.ts +0 -159
  564. package/src/components/Slider/useInteracting.ts +0 -64
  565. package/src/components/Switch/Switch.stories.tsx +0 -177
  566. package/src/components/Switch/Switch.tsx +0 -58
  567. package/src/components/Switch/index.ts +0 -1
  568. package/src/components/Switch/styles.ts +0 -173
  569. package/src/components/Table/Table.stories.tsx +0 -328
  570. package/src/components/Table/Table.tsx +0 -68
  571. package/src/components/Table/TableBody.tsx +0 -22
  572. package/src/components/Table/TableCell.tsx +0 -7
  573. package/src/components/Table/TableFooter.tsx +0 -15
  574. package/src/components/Table/TableHead.tsx +0 -15
  575. package/src/components/Table/TableHeader.tsx +0 -20
  576. package/src/components/Table/TableRow.tsx +0 -11
  577. package/src/components/Table/index.ts +0 -1
  578. package/src/components/Tabs.stories.tsx +0 -123
  579. package/src/components/Tabs.tsx +0 -134
  580. package/src/components/ThemeProvider/AIGradientSvg.tsx +0 -18
  581. package/src/components/ThemeProvider/ThemeProvider.tsx +0 -25
  582. package/src/components/ThemeProvider/index.ts +0 -1
  583. package/src/components/TimePicker/TimePicker.tsx +0 -95
  584. package/src/components/TimePicker/TimePickerButton.tsx +0 -39
  585. package/src/components/TimePicker/index.ts +0 -1
  586. package/src/components/TimePicker/utils.ts +0 -31
  587. package/src/components/Timeline/Timeline.stories.tsx +0 -246
  588. package/src/components/Timeline/Timeline.tsx +0 -35
  589. package/src/components/Timeline/TimelineConnector.tsx +0 -158
  590. package/src/components/Timeline/TimelineContent.tsx +0 -18
  591. package/src/components/Timeline/TimelineItem.tsx +0 -14
  592. package/src/components/Timeline/index.ts +0 -1
  593. package/src/components/Timeline/useLastLineHeight.ts +0 -36
  594. package/src/components/Toast/Toast.stories.tsx +0 -178
  595. package/src/components/Toast/ToastAction.tsx +0 -40
  596. package/src/components/Toast/ToastDescription.tsx +0 -28
  597. package/src/components/Toast/ToastDismiss.tsx +0 -36
  598. package/src/components/Toast/ToastDuration.tsx +0 -43
  599. package/src/components/Toast/ToastRoot.tsx +0 -135
  600. package/src/components/Toast/ToastTitle.tsx +0 -33
  601. package/src/components/Toast/Toaster.tsx +0 -25
  602. package/src/components/Toast/index.ts +0 -3
  603. package/src/components/Toast/toast.tsx +0 -94
  604. package/src/components/Toast/useNotification.tsx +0 -33
  605. package/src/components/Toggle/Toggle.stories.tsx +0 -67
  606. package/src/components/Toggle/Toggle.tsx +0 -202
  607. package/src/components/Toggle/index.ts +0 -1
  608. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -60
  609. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -99
  610. package/src/components/ToggleGroup/index.ts +0 -1
  611. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  612. package/src/components/Tooltip/Tooltip.tsx +0 -110
  613. package/src/components/Tooltip/TooltipContent.tsx +0 -90
  614. package/src/components/Tooltip/TooltipRoot.tsx +0 -12
  615. package/src/components/Tooltip/TooltipTrigger.tsx +0 -42
  616. package/src/components/Tooltip/index.ts +0 -1
  617. package/src/components/Truncated.stories.tsx +0 -72
  618. package/src/components/Truncated.tsx +0 -78
  619. package/src/components/ZoomableSvg/ZoomableSvg.stories.tsx +0 -53
  620. package/src/components/ZoomableSvg/ZoomableSvg.tsx +0 -200
  621. package/src/components/ZoomableSvg/index.ts +0 -1
  622. package/src/constants/keyCodes.ts +0 -5
  623. package/src/docs/Colors.mdx +0 -19
  624. package/src/docs/Spacing.mdx +0 -35
  625. package/src/docs/Typography.mdx +0 -63
  626. package/src/docs/components/Typeset.tsx +0 -35
  627. package/src/hooks/useAutosizeInput.stories.tsx +0 -142
  628. package/src/hooks/useAutosizeInput.test.tsx +0 -77
  629. package/src/hooks/useAutosizeInput.tsx +0 -107
  630. package/src/hooks/useElement.ts +0 -16
  631. package/src/hooks/useScrollbarPosition.ts +0 -68
  632. package/src/icon-names.ts +0 -20
  633. package/src/icons/Keboola.tsx +0 -28
  634. package/src/icons/icons.stories.tsx +0 -174
  635. package/src/icons/index.ts +0 -188
  636. package/src/index.ts +0 -90
  637. package/src/patterns/AlertWithAction.stories.tsx +0 -30
  638. package/src/patterns/CardWithEmptyState.stories.tsx +0 -66
  639. package/src/patterns/ConfirmDialog.stories.tsx +0 -72
  640. package/src/patterns/CreatableMultiCombobox.stories.tsx +0 -33
  641. package/src/patterns/DataCardWithSkeleton.stories.tsx +0 -48
  642. package/src/patterns/DisabledButtonTooltip.stories.tsx +0 -30
  643. package/src/patterns/FilterToolbar.stories.tsx +0 -275
  644. package/src/patterns/InfoTooltip.stories.tsx +0 -56
  645. package/src/patterns/ListDetail.stories.tsx +0 -65
  646. package/src/patterns/ModalForm.stories.tsx +0 -59
  647. package/src/patterns/PageHeaderTabs.stories.tsx +0 -48
  648. package/src/utils/classNames.test.ts +0 -16
  649. package/src/utils/classNames.ts +0 -27
  650. package/src/utils/copyToClipboard.ts +0 -3
  651. package/src/utils/createChangeInputEvent.ts +0 -28
  652. package/src/utils/createPrefixedString.ts +0 -2
  653. package/src/utils/debounce.test.ts +0 -63
  654. package/src/utils/debounce.ts +0 -17
  655. package/src/utils/decorators.tsx +0 -16
  656. package/src/utils/escapeStringRegexp.ts +0 -4
  657. package/src/utils/index.ts +0 -11
  658. package/src/utils/isMac.ts +0 -26
  659. package/src/utils/legacyIcon.tsx +0 -28
  660. package/src/utils/mergeRefs.ts +0 -23
  661. package/src/utils/noop.ts +0 -1
  662. package/src/utils/useSHA256.ts +0 -21
  663. package/src/vite-env.d.ts +0 -1
@@ -1,142 +0,0 @@
1
- import { useRef } from 'react';
2
- import { $createCodeNode } from '@lexical/code';
3
- import { INSERT_ORDERED_LIST_COMMAND, INSERT_UNORDERED_LIST_COMMAND } from '@lexical/list';
4
- import { $createHeadingNode, $createQuoteNode } from '@lexical/rich-text';
5
- import { $getNearestBlockElementAncestorOrThrow } from '@lexical/utils';
6
- import {
7
- $createParagraphNode,
8
- $getSelection,
9
- $isRangeSelection,
10
- $setSelection,
11
- type BaseSelection,
12
- type LexicalEditor,
13
- } from 'lexical';
14
-
15
- import {
16
- ChevronDown,
17
- Heading1,
18
- Heading2,
19
- Heading3,
20
- List as ListIcon,
21
- ListOrdered,
22
- type LucideIcon,
23
- Quote,
24
- SquareCode,
25
- Type,
26
- } from '../../../../icons';
27
- import { cn } from '../../../../utils';
28
- import { DropdownMenu } from '../../../DropdownMenu';
29
- import { Tooltip } from '../../../Tooltip';
30
-
31
- const BLOCK_TYPE_META = {
32
- paragraph: { label: 'Normal', icon: Type satisfies LucideIcon, selectable: true },
33
- h1: { label: 'Heading 1', icon: Heading1 satisfies LucideIcon, selectable: true },
34
- h2: { label: 'Heading 2', icon: Heading2 satisfies LucideIcon, selectable: true },
35
- h3: { label: 'Heading 3', icon: Heading3 satisfies LucideIcon, selectable: true },
36
- bullet: { label: 'Bullet List', icon: ListIcon satisfies LucideIcon, selectable: false },
37
- number: { label: 'Numbered List', icon: ListOrdered satisfies LucideIcon, selectable: false },
38
- quote: { label: 'Quote', icon: Quote satisfies LucideIcon, selectable: false },
39
- code: { label: 'Code Block', icon: SquareCode satisfies LucideIcon, selectable: false },
40
- } as const;
41
-
42
- type BlockType = keyof typeof BLOCK_TYPE_META;
43
-
44
- const BLOCK_TYPE_OPTIONS = (
45
- Object.entries(BLOCK_TYPE_META) as [BlockType, (typeof BLOCK_TYPE_META)[BlockType]][]
46
- )
47
- .filter(([, meta]) => meta.selectable)
48
- .map(([value, { label, icon }]) => ({ value, label, icon }));
49
-
50
- const isBlockType = (value: string): value is BlockType =>
51
- Object.prototype.hasOwnProperty.call(BLOCK_TYPE_META, value);
52
-
53
- export const BlockTypeDropdown = ({
54
- editor,
55
- blockType,
56
- }: {
57
- editor: LexicalEditor;
58
- blockType: string;
59
- }) => {
60
- const savedSelectionRef = useRef<BaseSelection | null>(null);
61
- const currentMeta = isBlockType(blockType) ? BLOCK_TYPE_META[blockType] : null;
62
- const CurrentBlockIcon = currentMeta?.icon ?? Type;
63
-
64
- const handleOpenChange = (open: boolean) => {
65
- if (open) {
66
- editor.getEditorState().read(() => {
67
- const selection = $getSelection();
68
- savedSelectionRef.current = selection ? selection.clone() : null;
69
- });
70
- }
71
- };
72
-
73
- const handleSelect = (type: BlockType) => {
74
- editor.update(() => {
75
- if (savedSelectionRef.current) {
76
- $setSelection(savedSelectionRef.current);
77
- }
78
-
79
- const selection = $getSelection();
80
- if (!$isRangeSelection(selection)) return;
81
-
82
- if (type === 'bullet') {
83
- editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);
84
- return;
85
- }
86
- if (type === 'number') {
87
- editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);
88
- return;
89
- }
90
-
91
- const anchorNode = selection.anchor.getNode();
92
- const element = $getNearestBlockElementAncestorOrThrow(anchorNode);
93
-
94
- const newNode =
95
- type === 'h1' || type === 'h2' || type === 'h3'
96
- ? $createHeadingNode(type)
97
- : type === 'quote'
98
- ? $createQuoteNode()
99
- : type === 'code'
100
- ? $createCodeNode()
101
- : $createParagraphNode();
102
-
103
- element.getChildren().forEach((child) => newNode.append(child));
104
- element.replace(newNode);
105
- });
106
- };
107
-
108
- return (
109
- <DropdownMenu onOpenChange={handleOpenChange}>
110
- <Tooltip tooltip="Change block type" placement="top" triggerAsChild>
111
- <DropdownMenu.Trigger asChild>
112
- <button
113
- type="button"
114
- className={cn(
115
- 'tw-flex tw-h-7 tw-cursor-pointer tw-items-center tw-gap-1.5 tw-rounded tw-border-0 tw-bg-transparent tw-px-1.5 tw-text-xs tw-text-neutral-600',
116
- 'hover:tw-bg-neutral-100',
117
- )}
118
- >
119
- <CurrentBlockIcon className="tw-size-4" />
120
- {currentMeta?.label ?? 'Normal'}
121
- <ChevronDown className="tw-size-3" />
122
- </button>
123
- </DropdownMenu.Trigger>
124
- </Tooltip>
125
- <DropdownMenu.Content align="start" className="tw-min-w-40">
126
- {BLOCK_TYPE_OPTIONS.map(({ value, label, icon: IconComp }) => (
127
- <DropdownMenu.Item
128
- key={value}
129
- onSelect={() => handleSelect(value)}
130
- className={cn(
131
- 'tw-flex tw-items-center tw-gap-2',
132
- blockType === value && 'tw-bg-secondary-50 tw-text-secondary-500',
133
- )}
134
- >
135
- <IconComp className="tw-size-4" />
136
- {label}
137
- </DropdownMenu.Item>
138
- ))}
139
- </DropdownMenu.Content>
140
- </DropdownMenu>
141
- );
142
- };
@@ -1,160 +0,0 @@
1
- import { useRef, useState } from 'react';
2
- import type { KeyboardEvent as ReactKeyboardEvent } from 'react';
3
- import { $createLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link';
4
- import {
5
- $createTextNode,
6
- $getSelection,
7
- $isRangeSelection,
8
- $setSelection,
9
- type BaseSelection,
10
- type LexicalEditor,
11
- } from 'lexical';
12
-
13
- import { Link as LinkIcon } from '../../../../icons';
14
- import { Button } from '../../../Button';
15
- import { ButtonGroup } from '../../../ButtonGroup';
16
- import { FormGroup } from '../../../FormGroup';
17
- import { TextInput } from '../../../Input';
18
- import { Label } from '../../../Label';
19
-
20
- import { ToolbarButton } from './ToolbarButton';
21
-
22
- const insertLink = (
23
- editor: LexicalEditor,
24
- url: string,
25
- label: string,
26
- savedSelection: BaseSelection | null,
27
- ) => {
28
- editor.update(() => {
29
- $setSelection(savedSelection);
30
- const selection = $getSelection();
31
-
32
- if ($isRangeSelection(selection)) {
33
- const selectedText = selection.getTextContent();
34
- if (selectedText && label === selectedText) {
35
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, url);
36
- return;
37
- }
38
- }
39
-
40
- const linkNode = $createLinkNode(url);
41
- const textNode = $createTextNode(label || url);
42
- linkNode.append(textNode);
43
-
44
- if ($isRangeSelection(selection)) {
45
- selection.insertNodes([linkNode]);
46
- }
47
- });
48
- };
49
-
50
- export const LinkPanel = ({ editor, isLink }: { editor: LexicalEditor; isLink: boolean }) => {
51
- const [open, setOpen] = useState(false);
52
- const [url, setUrl] = useState('');
53
- const [label, setLabel] = useState('');
54
- const savedSelectionRef = useRef<BaseSelection | null>(null);
55
- const panelRef = useRef<HTMLDivElement>(null);
56
-
57
- const handleOpen = () => {
58
- editor.getEditorState().read(() => {
59
- const selection = $getSelection();
60
- savedSelectionRef.current = selection ? selection.clone() : null;
61
-
62
- if ($isRangeSelection(selection)) {
63
- const text = selection.getTextContent();
64
- if (text) setLabel(text);
65
- }
66
- });
67
- setOpen(true);
68
- };
69
-
70
- const handleClose = () => {
71
- setOpen(false);
72
- setUrl('');
73
- setLabel('');
74
- savedSelectionRef.current = null;
75
- editor.focus();
76
- };
77
-
78
- const handleSubmit = () => {
79
- const trimmedUrl = url.trim();
80
- if (!trimmedUrl) return;
81
-
82
- insertLink(editor, trimmedUrl, label.trim(), savedSelectionRef.current);
83
- handleClose();
84
- };
85
-
86
- const handleKeyDown = (e: ReactKeyboardEvent) => {
87
- if (e.key === 'Enter') {
88
- e.preventDefault();
89
- handleSubmit();
90
- }
91
- if (e.key === 'Escape') {
92
- e.preventDefault();
93
- handleClose();
94
- }
95
- };
96
-
97
- if (isLink) {
98
- return (
99
- <ToolbarButton
100
- active
101
- onClick={() => editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)}
102
- tooltip="Remove Link"
103
- >
104
- <LinkIcon className="tw-size-4" />
105
- </ToolbarButton>
106
- );
107
- }
108
-
109
- return (
110
- <div className="tw-relative">
111
- <ToolbarButton active={open} onClick={handleOpen} tooltip="Insert Link">
112
- <LinkIcon className="tw-size-4" />
113
- </ToolbarButton>
114
- {open && (
115
- <div
116
- ref={panelRef}
117
- className="tw-absolute tw-left-0 tw-top-full tw-z-50 tw-mt-1 tw-w-80 tw-rounded-md tw-border tw-border-neutral-200 tw-bg-white tw-p-3 tw-shadow-lg"
118
- >
119
- <div className="tw-flex tw-flex-col tw-gap-2">
120
- <FormGroup>
121
- <Label htmlFor="link-label" className="tw-mb-1 tw-text-xs">
122
- Label
123
- </Label>
124
- <TextInput
125
- id="link-label"
126
- autoFocus
127
- placeholder="Link text"
128
- value={label}
129
- onValueChange={setLabel}
130
- onKeyDown={handleKeyDown}
131
- variant="secondary"
132
- />
133
- </FormGroup>
134
- <FormGroup>
135
- <Label htmlFor="link-url" className="tw-mb-1 tw-text-xs">
136
- URL
137
- </Label>
138
- <TextInput
139
- id="link-url"
140
- placeholder="https://…"
141
- value={url}
142
- onValueChange={setUrl}
143
- onKeyDown={handleKeyDown}
144
- variant="secondary"
145
- />
146
- </FormGroup>
147
- <ButtonGroup>
148
- <Button size="small" variant="outline" onClick={handleClose}>
149
- Cancel
150
- </Button>
151
- <Button size="small" onClick={handleSubmit} disabled={!url.trim()}>
152
- Add link
153
- </Button>
154
- </ButtonGroup>
155
- </div>
156
- </div>
157
- )}
158
- </div>
159
- );
160
- };
@@ -1,36 +0,0 @@
1
- import type { ReactNode } from 'react';
2
-
3
- import { cn } from '../../../../utils';
4
- import { Tooltip } from '../../../Tooltip';
5
-
6
- export const ToolbarButton = ({
7
- active,
8
- disabled,
9
- onClick,
10
- tooltip,
11
- children,
12
- className: extraClassName,
13
- }: {
14
- active?: boolean;
15
- disabled?: boolean;
16
- onClick: () => void;
17
- tooltip: ReactNode;
18
- children: ReactNode;
19
- className?: string;
20
- }) => (
21
- <Tooltip tooltip={tooltip} placement="top" triggerAsChild>
22
- <button
23
- type="button"
24
- disabled={disabled}
25
- onClick={onClick}
26
- className={cn(
27
- 'tw-flex tw-h-7 tw-min-w-7 tw-cursor-pointer tw-items-center tw-justify-center tw-rounded tw-border-0 tw-bg-transparent tw-px-1 tw-text-xs tw-text-neutral-600',
28
- 'hover:tw-bg-neutral-100 disabled:tw-cursor-not-allowed disabled:tw-opacity-30',
29
- active && 'tw-bg-secondary-100 tw-text-secondary-500',
30
- extraClassName,
31
- )}
32
- >
33
- {children}
34
- </button>
35
- </Tooltip>
36
- );
@@ -1 +0,0 @@
1
- export const ToolbarDivider = () => <div className="tw-mx-0.5 tw-h-5 tw-w-px tw-bg-neutral-200" />;
@@ -1,39 +0,0 @@
1
- import type { EditorThemeClasses } from 'lexical';
2
-
3
- /**
4
- * Lexical editor theme — maps node types to CSS classes.
5
- * The editor container uses `tw-prose` so semantic elements (headings, lists, blockquotes, etc.)
6
- * are styled by Tailwind Typography. We only need explicit classes for text formatting
7
- * (bold, italic, etc.) because Lexical renders those as `<span>` elements.
8
- */
9
- export const editorTheme: EditorThemeClasses = {
10
- link: 'tw-cursor-pointer !tw-text-secondary-500 tw-underline',
11
- text: {
12
- bold: 'tw-font-bold',
13
- italic: 'tw-italic',
14
- strikethrough: 'tw-line-through',
15
- underline: 'tw-underline',
16
- code: 'tw-rounded tw-bg-neutral-100 tw-px-1 tw-py-0.5 tw-font-mono tw-text-[0.85em]',
17
- },
18
- list: {
19
- ol: '!tw-list-decimal',
20
- ul: '!tw-list-disc',
21
- checklist: '!tw-list-none !tw-pl-0',
22
- listitemChecked: [
23
- 'tw-relative !tw-pl-6 tw-list-none tw-outline-none tw-line-through tw-text-neutral-400',
24
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
25
- 'before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid',
26
- 'before:tw-bg-secondary-500 before:tw-border-secondary-500 before:tw-cursor-pointer',
27
- 'after:tw-content-[""] after:tw-absolute after:tw-left-[5.5px] after:tw-top-[5.5px]',
28
- 'after:tw-w-1 after:tw-h-2 after:tw-border-white after:tw-border-solid',
29
- 'after:tw-border-r-[1.5px] after:tw-border-b-[1.5px] after:tw-border-t-0 after:tw-border-l-0',
30
- 'after:tw-rotate-45',
31
- ].join(' '),
32
- listitemUnchecked: [
33
- 'tw-relative !tw-pl-6 tw-list-none tw-outline-none',
34
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
35
- 'before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid',
36
- 'before:tw-border-neutral-200 before:tw-bg-white before:tw-cursor-pointer',
37
- ].join(' '),
38
- },
39
- };
@@ -1,189 +0,0 @@
1
- import type {
2
- ElementTransformer,
3
- MultilineElementTransformer,
4
- TextMatchTransformer,
5
- Transformer,
6
- } from '@lexical/markdown';
7
- import { CHECK_LIST, TRANSFORMERS } from '@lexical/markdown';
8
- import {
9
- $createHorizontalRuleNode,
10
- $isHorizontalRuleNode,
11
- HorizontalRuleNode,
12
- } from '@lexical/react/LexicalHorizontalRuleNode';
13
-
14
- import { $createImageNode, $isImageNode, ImageNode } from './nodes/ImageNode';
15
- import { $createMermaidNode, $isMermaidNode, MermaidNode } from './nodes/MermaidNode';
16
-
17
- /** Markdown image: `![alt](src)` */
18
- const IMAGE: TextMatchTransformer = {
19
- dependencies: [ImageNode],
20
- export: (node) => {
21
- if (!$isImageNode(node)) return null;
22
- return `![${node.getAlt()}](${node.getSrc()})`;
23
- },
24
- importRegExp: /!\[([^\]]*)\]\(([^)]+)\)/,
25
- regExp: /!\[([^\]]*)\]\(([^)]+)\)$/,
26
- replace: (textNode, match) => {
27
- const [, alt = '', src = ''] = match;
28
- const imageNode = $createImageNode(src, alt);
29
- textNode.replace(imageNode);
30
- },
31
- trigger: ')',
32
- type: 'text-match',
33
- };
34
-
35
- /** Horizontal rule: `---`, `***`, or `___` */
36
- const HORIZONTAL_RULE: ElementTransformer = {
37
- dependencies: [HorizontalRuleNode],
38
- export: (node) => {
39
- return $isHorizontalRuleNode(node) ? '---' : null;
40
- },
41
- regExp: /^(---|\*\*\*|___)$/,
42
- replace: (parentNode) => {
43
- const node = $createHorizontalRuleNode();
44
- parentNode.replace(node);
45
- },
46
- type: 'element',
47
- };
48
-
49
- /** Fenced mermaid block: ` ```mermaid ... ``` ` → MermaidNode (rendered as diagram) */
50
- const MERMAID: MultilineElementTransformer = {
51
- dependencies: [MermaidNode],
52
- export: (node) => {
53
- if (!$isMermaidNode(node)) return null;
54
- return '```mermaid\n' + node.getCode() + '\n```';
55
- },
56
- regExpStart: /^[ \t]*(`{3,})mermaid(?:\s.*)?$/,
57
- regExpEnd: {
58
- optional: true,
59
- regExp: /^[ \t]*`{3,}$/,
60
- },
61
- replace: (rootNode, _children, _startMatch, _endMatch, linesInBetween) => {
62
- if (!linesInBetween) return;
63
- const code = linesInBetween.join('\n').trim();
64
- if (code) {
65
- rootNode.append($createMermaidNode(code));
66
- }
67
- },
68
- handleImportAfterStartMatch: ({
69
- lines,
70
- rootNode,
71
- startLineIndex,
72
- startMatch,
73
- }): [boolean, number] => {
74
- const fence = startMatch[1];
75
- if (!fence) return [false, startLineIndex];
76
- const fenceLength = fence.trim().length;
77
- const endRegex = new RegExp(`^[ \\t]*\`{${fenceLength},}$`);
78
-
79
- for (let i = startLineIndex + 1; i < lines.length; i++) {
80
- if (endRegex.test(lines[i] ?? '')) {
81
- const code = lines
82
- .slice(startLineIndex + 1, i)
83
- .join('\n')
84
- .trim();
85
- if (code) {
86
- rootNode.append($createMermaidNode(code));
87
- }
88
- return [true, i];
89
- }
90
- }
91
-
92
- // No closing fence — consume remaining lines
93
- const code = lines
94
- .slice(startLineIndex + 1)
95
- .join('\n')
96
- .trim();
97
- if (code) {
98
- rootNode.append($createMermaidNode(code));
99
- }
100
- return [true, lines.length - 1];
101
- },
102
- type: 'multiline-element',
103
- };
104
-
105
- /**
106
- * Custom transformers = our additions + built-in Lexical transformers.
107
- * MERMAID is placed before TRANSFORMERS so it intercepts ` ```mermaid ``` ` before the generic CODE transformer.
108
- * IMAGE is placed before built-in LINK to prevent `![alt](url)` from being parsed as `!` + link.
109
- */
110
- export const CUSTOM_TRANSFORMERS: Transformer[] = [
111
- IMAGE,
112
- HORIZONTAL_RULE,
113
- CHECK_LIST,
114
- MERMAID,
115
- ...TRANSFORMERS,
116
- ];
117
-
118
- /**
119
- * Inline-only subset for `singleLine` mode: keeps text-format (bold/italic/code/strike)
120
- * and text-match (links) transformers; drops every element / multiline-element transformer
121
- * (headings, lists, HR, code blocks, mermaid). Used for inline-editable titles where the
122
- * caller doesn't want block-level markdown syntax to "promote" a line.
123
- */
124
- export const SINGLE_LINE_TRANSFORMERS: Transformer[] = CUSTOM_TRANSFORMERS.filter(
125
- (t) => t.type === 'text-format' || t.type === 'text-match',
126
- );
127
-
128
- // --- Table pre/post-processing ---
129
- // GFM tables can't round-trip through Lexical's markdown (no built-in table transformer).
130
- // We wrap them in fenced code blocks on import and unwrap on export to preserve them exactly.
131
-
132
- const TABLE_FENCE_LANG = '__kbc_table__';
133
-
134
- const isTableLine = (line: string): boolean => {
135
- const trimmed = line.trim();
136
- return trimmed.startsWith('|') && trimmed.endsWith('|');
137
- };
138
-
139
- const CODE_FENCE_REGEX = /^[ \t]*`{3,}/;
140
-
141
- /** Wrap GFM tables in code fences so they survive Lexical's markdown round-trip. */
142
- export const preprocessMarkdown = (markdown: string): string => {
143
- const lines = markdown.split('\n');
144
- const result: string[] = [];
145
- let tableLines: string[] = [];
146
- let insideCodeFence = false;
147
-
148
- const flushTable = () => {
149
- if (tableLines.length >= 2) {
150
- result.push(`\`\`\`${TABLE_FENCE_LANG}`);
151
- result.push(...tableLines);
152
- result.push('```');
153
- } else {
154
- // Single pipe line isn't a table — keep as-is
155
- result.push(...tableLines);
156
- }
157
- tableLines = [];
158
- };
159
-
160
- for (const line of lines) {
161
- if (CODE_FENCE_REGEX.test(line)) {
162
- if (tableLines.length > 0) flushTable();
163
- insideCodeFence = !insideCodeFence;
164
- result.push(line);
165
- continue;
166
- }
167
-
168
- if (insideCodeFence) {
169
- result.push(line);
170
- continue;
171
- }
172
-
173
- if (isTableLine(line)) {
174
- tableLines.push(line);
175
- } else {
176
- if (tableLines.length > 0) flushTable();
177
- result.push(line);
178
- }
179
- }
180
- if (tableLines.length > 0) flushTable();
181
-
182
- return result.join('\n');
183
- };
184
-
185
- /** Unwrap code-fenced tables back to raw GFM table markdown. */
186
- export const postprocessMarkdown = (markdown: string): string => {
187
- const regex = new RegExp(`\`\`\`${TABLE_FENCE_LANG}\\n([\\s\\S]*?)\\n\`\`\``, 'g');
188
- return markdown.replace(regex, '$1');
189
- };
@@ -1,46 +0,0 @@
1
- import { useState } from 'react';
2
- import type { ComponentProps } from 'react';
3
- import type { Meta, StoryObj } from '@storybook/react-vite';
4
-
5
- import { TextInput } from '../Input';
6
-
7
- import { MarkedText } from './MarkedText';
8
-
9
- export default {
10
- component: MarkedText,
11
- args: {
12
- source: 'This is a text with marked words.',
13
- mark: 'marked',
14
- },
15
- } satisfies Meta<typeof MarkedText>;
16
-
17
- type Story = StoryObj<typeof MarkedText>;
18
-
19
- export const Default: Story = {};
20
-
21
- const MarkedTextDemo = (props: ComponentProps<typeof MarkedText>) => {
22
- const [search, setSearch] = useState('');
23
- return (
24
- <div className="tw-flex tw-flex-col tw-gap-4">
25
- <TextInput
26
- value={search}
27
- placeholder="Search..."
28
- onValueChange={setSearch}
29
- variant="secondary"
30
- />
31
- <MarkedText {...props} mark={search} />
32
- </div>
33
- );
34
- };
35
-
36
- export const WithInput: Story = {
37
- args: {
38
- source:
39
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisi vel consectetur interdum, nisl nunc egestas nunc, vitae tincidunt nisl nunc euismod nunc. Sed euismod, nisi vel consectetur interdum, nisl nunc egestas nunc, vitae tincidunt nisl nunc euismod nunc.\n' +
40
- 'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi.\n' +
41
- 'Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Pellentesque in ipsum id orci porta dapibus. Cras ultricies ligula sed magna dictum porta. Nulla quis lorem ut libero malesuada feugiat. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a.\n' +
42
- 'Sed porttitor lectus nibh. Nulla porttitor accumsan tincidunt. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Curabitur aliquet quam id dui posuere blandit. Nulla quis lorem ut libero malesuada feugiat.\n' +
43
- 'Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Nulla porttitor accumsan tincidunt. Vivamus suscipit tortor eget felis porttitor volutpat.',
44
- },
45
- render: MarkedTextDemo,
46
- };
@@ -1,36 +0,0 @@
1
- import { useMemo } from 'react';
2
- import type { ComponentProps, ElementRef, Ref } from 'react';
3
-
4
- import { createMarkedParts } from './utils';
5
-
6
- type Props = {
7
- source: string;
8
- className?: string;
9
- mark?: string;
10
- isCaseSensitive?: boolean;
11
- } & ComponentProps<'span'>;
12
-
13
- export const MarkedText = ({
14
- ref,
15
- source,
16
- mark,
17
- isCaseSensitive = false,
18
- ...spanProps
19
- }: Props & { ref?: Ref<ElementRef<'span'>> }) => {
20
- const parts = useMemo(
21
- () =>
22
- createMarkedParts({
23
- mark,
24
- source,
25
- isCaseSensitive,
26
- }),
27
- [isCaseSensitive, mark, source],
28
- );
29
-
30
- return (
31
- <span {...spanProps} ref={ref}>
32
- {/* oxlint-disable-next-line react/no-array-index-key */}
33
- {parts.map(({ isMark, part }, index) => (isMark ? <mark key={index}>{part}</mark> : part))}
34
- </span>
35
- );
36
- };
@@ -1 +0,0 @@
1
- export { MarkedText } from './MarkedText';