@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,680 +0,0 @@
1
- import { useReducer } from 'react';
2
- import type { ComponentProps, FormEventHandler } from 'react';
3
- import type { Meta, StoryObj } from '@storybook/react-vite';
4
- import { action } from 'storybook/actions';
5
-
6
- import { Rocket } from '@keboola/design/icons';
7
-
8
- import { Alert } from '../Alert';
9
- import { Button } from '../Button';
10
- import { ButtonGroup } from '../ButtonGroup';
11
- import { FormGroup } from '../FormGroup';
12
- import { Label } from '../Label';
13
- import { Tabs, TabsContent } from '../Tabs';
14
-
15
- import { Modal } from './Modal';
16
- import { ModalContent } from './ModalContent';
17
-
18
- const meta = {
19
- component: Modal,
20
- } satisfies Meta<typeof Modal>;
21
-
22
- export default meta;
23
-
24
- type Story = StoryObj<typeof meta>;
25
-
26
- const ModalDefault = (props: ComponentProps<typeof Modal>) => (
27
- <Modal {...props}>
28
- <Modal.Trigger asChild>
29
- <Button>Open Modal</Button>
30
- </Modal.Trigger>
31
-
32
- <Modal.Content>
33
- <Modal.Icon color="red" icon={<Rocket />} />
34
- <Modal.Header title="Default Modal" description="Opens default modal">
35
- <Alert variant="info">Additional Header stuff</Alert>
36
- </Modal.Header>
37
-
38
- <Modal.Body>
39
- <p>Some contents...</p>
40
- <p>Some contents...</p>
41
- <p>Some contents...</p>
42
- </Modal.Body>
43
-
44
- <Modal.Footer>
45
- <ButtonGroup variant="block">
46
- <Modal.Close asChild>
47
- <Button type="button" variant="secondary">
48
- Close
49
- </Button>
50
- </Modal.Close>
51
-
52
- <Button type="button">Ok</Button>
53
- </ButtonGroup>
54
- </Modal.Footer>
55
- </Modal.Content>
56
- </Modal>
57
- );
58
-
59
- /**
60
- * Default Modal component in uncontrolled mode __(Recommended)__
61
- */
62
- export const Default: Story = {
63
- render: ModalDefault,
64
- };
65
-
66
- const ModalLongContent = (props: ComponentProps<typeof Modal>) => (
67
- <Modal {...props}>
68
- <Modal.Trigger asChild>
69
- <Button>Open Modal</Button>
70
- </Modal.Trigger>
71
-
72
- <Modal.Content>
73
- <Modal.Icon color="red" icon={<Rocket />} />
74
- <Modal.Header title="Default Modal" description="Opens default modal">
75
- <Alert variant="info">Addiitonal Header staff</Alert>
76
- </Modal.Header>
77
-
78
- <Modal.Body>
79
- <p>
80
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris fringilla, risus ut
81
- imperdiet pellentesque, justo augue placerat dui, eget porta augue justo sed enim. Vivamus
82
- dui nulla, interdum vitae dolor vitae, condimentum sagittis odio. Sed sit amet nisi
83
- pulvinar, lacinia nibh at, pulvinar velit. Etiam arcu eros, consequat in volutpat nec,
84
- scelerisque at risus. Donec nibh ipsum, tristique ut nisi vitae, auctor vulputate erat.
85
- Fusce egestas augue eu nisl euismod, non mattis massa lacinia. Nulla facilisi. Mauris
86
- gravida tincidunt tristique. Morbi sollicitudin laoreet enim, at rutrum libero volutpat
87
- eu. Nunc accumsan viverra dolor, id dapibus tortor sodales sed. In sit amet viverra magna.
88
- Suspendisse eget quam vulputate, imperdiet massa ac, volutpat sem. Ut sit amet tortor
89
- mollis, imperdiet nisi vel, gravida urna. Mauris quis consectetur turpis. Phasellus vel
90
- tortor ornare, finibus velit sed, vestibulum mauris. Suspendisse efficitur nulla enim,
91
- eget congue urna iaculis ut. In hac habitasse platea dictumst. Mauris quis finibus sapien,
92
- in pretium justo. Etiam gravida orci eget tincidunt ornare. Suspendisse eget malesuada
93
- lorem. Fusce pretium orci tempor ante consectetur laoreet. Morbi placerat dignissim massa
94
- sed rhoncus. Duis eu leo ac justo egestas faucibus. Quisque risus justo, mattis sed
95
- lobortis et, fringilla eu nibh. Donec tempor arcu a est rhoncus, non tempor mauris tempor.
96
- Etiam auctor aliquet ipsum, vitae tincidunt mauris aliquam sit amet. In fermentum molestie
97
- felis, vel tincidunt mi sodales egestas. Fusce in nibh vitae tortor hendrerit mollis nec
98
- et enim. Donec euismod orci eu consectetur volutpat. Vivamus at mauris eget elit aliquet
99
- venenatis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
100
- cubilia curae; Cras lobortis, purus at dignissim viverra, tortor mauris lobortis urna,
101
- consequat facilisis dolor lacus imperdiet est. In sit amet viverra est. Vestibulum a diam
102
- a purus commodo gravida vitae eleifend dui. Pellentesque vitae eros ut libero sodales
103
- vulputate et sed risus. Mauris et sapien efficitur, sollicitudin ipsum quis, volutpat
104
- nisl. Mauris pellentesque, ipsum in accumsan laoreet, sem est mollis nibh, in dictum lacus
105
- diam lacinia tellus. Quisque sit amet ante vitae odio congue molestie. Lorem ipsum dolor
106
- sit amet, consectetur adipiscing elit. Phasellus ut quam ut nisl faucibus feugiat non id
107
- urna. Pellentesque rutrum justo at egestas egestas. In elementum purus dapibus, dapibus
108
- risus eget, viverra tortor. Pellentesque volutpat cursus faucibus. Vivamus laoreet, tellus
109
- id fringilla luctus, elit tellus convallis mauris, non finibus nisl magna a libero.
110
- Integer porta euismod pellentesque. Morbi porta accumsan nibh ut molestie. Proin mattis
111
- eros sed mauris fringilla ornare. Suspendisse ut rutrum ligula. Sed in laoreet tortor, eu
112
- congue elit. Morbi accumsan tincidunt arcu, vitae dapibus orci tincidunt sit amet. Duis
113
- efficitur ipsum nec cursus feugiat. Etiam lacinia felis ut ligula suscipit vehicula.
114
- Aliquam vitae luctus erat. Pellentesque lacinia ante et odio semper tincidunt. Quisque
115
- volutpat sem in nunc faucibus, eget pulvinar nisi molestie. Etiam nec placerat eros. Donec
116
- viverra eros porta imperdiet condimentum. Integer neque mauris, convallis in nisi at,
117
- vestibulum porta lacus. Pellentesque tristique dictum felis, scelerisque pulvinar sem
118
- semper sit amet. Sed sollicitudin maximus purus, sit amet lacinia enim aliquam
119
- condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris fringilla,
120
- risus ut imperdiet pellentesque, justo augue placerat dui, eget porta augue justo sed
121
- enim. Vivamus dui nulla, interdum vitae dolor vitae, condimentum sagittis odio. Sed sit
122
- amet nisi pulvinar, lacinia nibh at, pulvinar velit. Etiam arcu eros, consequat in
123
- volutpat nec, scelerisque at risus. Donec nibh ipsum, tristique ut nisi vitae, auctor
124
- vulputate erat. Fusce egestas augue eu nisl euismod, non mattis massa lacinia. Nulla
125
- facilisi. Mauris gravida tincidunt tristique. Morbi sollicitudin laoreet enim, at rutrum
126
- libero volutpat eu. Nunc accumsan viverra dolor, id dapibus tortor sodales sed. In sit
127
- amet viverra magna. Suspendisse eget quam vulputate, imperdiet massa ac, volutpat sem. Ut
128
- sit amet tortor mollis, imperdiet nisi vel, gravida urna. Mauris quis consectetur turpis.
129
- Phasellus vel tortor ornare, finibus velit sed, vestibulum mauris. Suspendisse efficitur
130
- nulla enim, eget congue urna iaculis ut. In hac habitasse platea dictumst. Mauris quis
131
- finibus sapien, in pretium justo. Etiam gravida orci eget tincidunt ornare. Suspendisse
132
- eget malesuada lorem. Fusce pretium orci tempor ante consectetur laoreet. Morbi placerat
133
- dignissim massa sed rhoncus. Duis eu leo ac justo egestas faucibus. Quisque risus justo,
134
- mattis sed lobortis et, fringilla eu nibh. Donec tempor arcu a est rhoncus, non tempor
135
- mauris tempor. Etiam auctor aliquet ipsum, vitae tincidunt mauris aliquam sit amet. In
136
- fermentum molestie felis, vel tincidunt mi sodales egestas. Fusce in nibh vitae tortor
137
- hendrerit mollis nec et enim. Donec euismod orci eu consectetur volutpat. Vivamus at
138
- mauris eget elit aliquet venenatis. Vestibulum ante ipsum primis in faucibus orci luctus
139
- et ultrices posuere cubilia curae; Cras lobortis, purus at dignissim viverra, tortor
140
- mauris lobortis urna, consequat facilisis dolor lacus imperdiet est. In sit amet viverra
141
- est. Vestibulum a diam a purus commodo gravida vitae eleifend dui. Pellentesque vitae eros
142
- ut libero sodales vulputate et sed risus. Mauris et sapien efficitur, sollicitudin ipsum
143
- quis, volutpat nisl. Mauris pellentesque, ipsum in accumsan laoreet, sem est mollis nibh,
144
- in dictum lacus diam lacinia tellus. Quisque sit amet ante vitae odio congue molestie.
145
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ut quam ut nisl
146
- faucibus feugiat non id urna. Pellentesque rutrum justo at egestas egestas. In elementum
147
- purus dapibus, dapibus risus eget, viverra tortor. Pellentesque volutpat cursus faucibus.
148
- Vivamus laoreet, tellus id fringilla luctus, elit tellus convallis mauris, non finibus
149
- nisl magna a libero. Integer porta euismod pellentesque. Morbi porta accumsan nibh ut
150
- molestie. Proin mattis eros sed mauris fringilla ornare. Suspendisse ut rutrum ligula. Sed
151
- in laoreet tortor, eu congue elit. Morbi accumsan tincidunt arcu, vitae dapibus orci
152
- tincidunt sit amet. Duis efficitur ipsum nec cursus feugiat. Etiam lacinia felis ut ligula
153
- suscipit vehicula. Aliquam vitae luctus erat. Pellentesque lacinia ante et odio semper
154
- tincidunt. Quisque volutpat sem in nunc faucibus, eget pulvinar nisi molestie. Etiam nec
155
- placerat eros. Donec viverra eros porta imperdiet condimentum. Integer neque mauris,
156
- convallis in nisi at, vestibulum porta lacus. Pellentesque tristique dictum felis,
157
- scelerisque pulvinar sem semper sit amet. Sed sollicitudin maximus purus, sit amet lacinia
158
- enim aliquam condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris
159
- fringilla, risus ut imperdiet pellentesque, justo augue placerat dui, eget porta augue
160
- justo sed enim. Vivamus dui nulla, interdum vitae dolor vitae, condimentum sagittis odio.
161
- Sed sit amet nisi pulvinar, lacinia nibh at, pulvinar velit. Etiam arcu eros, consequat in
162
- volutpat nec, scelerisque at risus. Donec nibh ipsum, tristique ut nisi vitae, auctor
163
- vulputate erat. Fusce egestas augue eu nisl euismod, non mattis massa lacinia. Nulla
164
- facilisi. Mauris gravida tincidunt tristique. Morbi sollicitudin laoreet enim, at rutrum
165
- libero volutpat eu. Nunc accumsan viverra dolor, id dapibus tortor sodales sed. In sit
166
- amet viverra magna. Suspendisse eget quam vulputate, imperdiet massa ac, volutpat sem. Ut
167
- sit amet tortor mollis, imperdiet nisi vel, gravida urna. Mauris quis consectetur turpis.
168
- Phasellus vel tortor ornare, finibus velit sed, vestibulum mauris. Suspendisse efficitur
169
- nulla enim, eget congue urna iaculis ut. In hac habitasse platea dictumst. Mauris quis
170
- finibus sapien, in pretium justo. Etiam gravida orci eget tincidunt ornare. Suspendisse
171
- eget malesuada lorem. Fusce pretium orci tempor ante consectetur laoreet. Morbi placerat
172
- dignissim massa sed rhoncus. Duis eu leo ac justo egestas faucibus. Quisque risus justo,
173
- mattis sed lobortis et, fringilla eu nibh. Donec tempor arcu a est rhoncus, non tempor
174
- mauris tempor. Etiam auctor aliquet ipsum, vitae tincidunt mauris aliquam sit amet. In
175
- fermentum molestie felis, vel tincidunt mi sodales egestas. Fusce in nibh vitae tortor
176
- hendrerit mollis nec et enim. Donec euismod orci eu consectetur volutpat. Vivamus at
177
- mauris eget elit aliquet venenatis. Vestibulum ante ipsum primis in faucibus orci luctus
178
- et ultrices posuere cubilia curae; Cras lobortis, purus at dignissim viverra, tortor
179
- mauris lobortis urna, consequat facilisis dolor lacus imperdiet est. In sit amet viverra
180
- est. Vestibulum a diam a purus commodo gravida vitae eleifend dui. Pellentesque vitae eros
181
- ut libero sodales vulputate et sed risus. Mauris et sapien efficitur, sollicitudin ipsum
182
- quis, volutpat nisl. Mauris pellentesque, ipsum in accumsan laoreet, sem est mollis nibh,
183
- in dictum lacus diam lacinia tellus. Quisque sit amet ante vitae odio congue molestie.
184
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ut quam ut nisl
185
- faucibus feugiat non id urna. Pellentesque rutrum justo at egestas egestas. In elementum
186
- purus dapibus, dapibus risus eget, viverra tortor. Pellentesque volutpat cursus faucibus.
187
- Vivamus laoreet, tellus id fringilla luctus, elit tellus convallis mauris, non finibus
188
- nisl magna a libero. Integer porta euismod pellentesque. Morbi porta accumsan nibh ut
189
- molestie. Proin mattis eros sed mauris fringilla ornare. Suspendisse ut rutrum ligula. Sed
190
- in laoreet tortor, eu congue elit. Morbi accumsan tincidunt arcu, vitae dapibus orci
191
- tincidunt sit amet. Duis efficitur ipsum nec cursus feugiat. Etiam lacinia felis ut ligula
192
- suscipit vehicula. Aliquam vitae luctus erat. Pellentesque lacinia ante et odio semper
193
- tincidunt. Quisque volutpat sem in nunc faucibus, eget pulvinar nisi molestie. Etiam nec
194
- placerat eros. Donec viverra eros porta imperdiet condimentum. Integer neque mauris,
195
- convallis in nisi at, vestibulum porta lacus. Pellentesque tristique dictum felis,
196
- scelerisque pulvinar sem semper sit amet. Sed sollicitudin maximus purus, sit amet lacinia
197
- enim aliquam condimentum.
198
- </p>
199
- </Modal.Body>
200
-
201
- <Modal.Footer>
202
- <ButtonGroup variant="block">
203
- <Modal.Close asChild>
204
- <Button type="button" variant="secondary">
205
- Close
206
- </Button>
207
- </Modal.Close>
208
-
209
- <Button type="button">Ok</Button>
210
- </ButtonGroup>
211
- </Modal.Footer>
212
- </Modal.Content>
213
- </Modal>
214
- );
215
-
216
- export const LongContent: Story = {
217
- render: ModalLongContent,
218
- };
219
-
220
- const FORM_NAME = 'user-form';
221
-
222
- const ModalRemoteFormSubmission = (props: ComponentProps<typeof Modal>) => {
223
- const handleSubmit: FormEventHandler<HTMLFormElement> = (event) => {
224
- event.preventDefault();
225
- const formData = new FormData(event.currentTarget);
226
- const formValues = Object.fromEntries(formData.entries());
227
- action('onSubmit')(formValues);
228
- };
229
-
230
- return (
231
- <Modal {...props}>
232
- <Modal.Trigger asChild>
233
- <Button>Create User</Button>
234
- </Modal.Trigger>
235
-
236
- <Modal.Content>
237
- <Modal.Icon color="red" icon={<Rocket />} />
238
-
239
- <Modal.Header title="Crate User" description="Opens modal with remote form submission" />
240
-
241
- <Modal.Body className="tw-flex tw-flex-col tw-gap-4">
242
- <form onSubmit={handleSubmit} id={FORM_NAME}>
243
- <FormGroup>
244
- <Label htmlFor="name">Name</Label>
245
- <FormGroup.TextInput name="name" id="name" variant="secondary" />
246
- </FormGroup>
247
- </form>
248
- </Modal.Body>
249
-
250
- <Modal.Footer>
251
- <ButtonGroup variant="block">
252
- <Modal.Close asChild>
253
- <Button type="button" variant="secondary">
254
- Close
255
- </Button>
256
- </Modal.Close>
257
-
258
- <Button form={FORM_NAME} type="submit">
259
- Save changes
260
- </Button>
261
- </ButtonGroup>
262
- </Modal.Footer>
263
- </Modal.Content>
264
- </Modal>
265
- );
266
- };
267
-
268
- /**
269
- * Modal with remote form submission
270
- * It is not recommended to wrap Modal.Body and Modal.Footer in a single form tag as it can break the styling, use remote a form submission.
271
- */
272
- export const RemoteFormSubmission: Story = {
273
- render: ModalRemoteFormSubmission,
274
- };
275
-
276
- const ModalReusableOwnContentComponent = () => (
277
- <>
278
- <Modal.Header title="Reusable Modal With Own Content Component" />
279
- <Modal.Body>Here defined reusable layout</Modal.Body>
280
- </>
281
- );
282
-
283
- const ModalReusableWithOwnContentComponent = (props: Record<string, unknown>) => (
284
- <Modal {...props}>
285
- <Modal.Trigger asChild>
286
- <Button>Open Modal</Button>
287
- </Modal.Trigger>
288
-
289
- <Modal.Content>
290
- <ModalReusableOwnContentComponent />
291
- </Modal.Content>
292
- </Modal>
293
- );
294
-
295
- export const ReusableModalWithOwnContentComponent: Story = {
296
- render: ModalReusableWithOwnContentComponent,
297
- };
298
-
299
- const ModalReusableTriggerAsChild = (props: ComponentProps<typeof Modal>) => (
300
- <Modal>
301
- <Modal.Trigger asChild>{props.children}</Modal.Trigger>
302
- <ModalContent>
303
- <Modal.Header title="Reusable Modal With Trigger as Child" />
304
- <Modal.Body>
305
- <p>Some contents...</p>
306
- <p>Some contents...</p>
307
- <p>Some contents...</p>
308
- </Modal.Body>
309
- </ModalContent>
310
- </Modal>
311
- );
312
-
313
- export const ReusableModalWithTriggerAsChild: Story = {
314
- render: (props) => (
315
- <ModalReusableTriggerAsChild {...props}>
316
- <Button>Open Modal</Button>
317
- </ModalReusableTriggerAsChild>
318
- ),
319
- };
320
-
321
- type StepProps = {
322
- id: string;
323
- onSubmit: FormEventHandler<HTMLFormElement>;
324
- defaultValues?: Record<string, string> | null;
325
- };
326
-
327
- // Steps are exclusive, we can safely use the same id for each step
328
- const WIZARD_FORM_NAME = 'WIZARD_FORM_NAME';
329
- const FIRST_NAME_FIELD_NAME = 'firstName';
330
- const USERNAME_FIELD_NAME = 'username';
331
- const FIRST_STEP = 1;
332
- const LAST_STEP = 3;
333
-
334
- const Step1 = ({ id, onSubmit, defaultValues }: StepProps) => (
335
- <form id={id} onSubmit={onSubmit}>
336
- <FormGroup>
337
- <Label htmlFor={FIRST_NAME_FIELD_NAME}>Fist Name</Label>
338
- <FormGroup.TextInput
339
- name={FIRST_NAME_FIELD_NAME}
340
- defaultValue={defaultValues?.[FIRST_NAME_FIELD_NAME]}
341
- placeholder="Enter your first name"
342
- />
343
- </FormGroup>
344
- </form>
345
- );
346
-
347
- const Step2 = ({ id, onSubmit, defaultValues }: StepProps) => (
348
- <form id={id} onSubmit={onSubmit}>
349
- <FormGroup>
350
- <Label htmlFor={USERNAME_FIELD_NAME}>Username</Label>
351
- <FormGroup.TextInput
352
- name={USERNAME_FIELD_NAME}
353
- defaultValue={defaultValues?.[USERNAME_FIELD_NAME]}
354
- placeholder="Enter your username"
355
- />
356
- </FormGroup>
357
- </form>
358
- );
359
-
360
- type StepperState = {
361
- step: number;
362
- values: Record<number, Record<string, string>>;
363
- };
364
-
365
- type Action =
366
- | {
367
- type: 'NEXT';
368
- values: Record<string, string>;
369
- }
370
- | {
371
- type: 'PREVIOUS';
372
- };
373
-
374
- const reducer = (state: StepperState, action: Action) => {
375
- switch (action.type) {
376
- case 'NEXT': {
377
- const currStep = state.step;
378
- return {
379
- ...state,
380
- step: Math.min(currStep + 1, LAST_STEP),
381
- values: {
382
- ...state.values,
383
- [currStep]: action.values,
384
- },
385
- };
386
- }
387
- case 'PREVIOUS': {
388
- return {
389
- ...state,
390
- step: Math.max(state.step - 1, FIRST_STEP),
391
- };
392
- }
393
- default:
394
- return state;
395
- }
396
- };
397
-
398
- const ModalMultiStepContent = () => {
399
- const [state, dispatch] = useReducer(reducer, {
400
- step: 1,
401
- values: {},
402
- });
403
- const isLastStep = state.step === LAST_STEP;
404
- const isFirstStep = state.step === FIRST_STEP;
405
-
406
- const handleSubmit: FormEventHandler<HTMLFormElement> = (event) => {
407
- event.preventDefault();
408
- const formData = new FormData(event.currentTarget);
409
- const formValues = Object.fromEntries(formData.entries()) as Record<string, string>;
410
- dispatch({ type: 'NEXT', values: formValues });
411
- };
412
-
413
- const handlePreviousClick = () => {
414
- dispatch({ type: 'PREVIOUS' });
415
- };
416
-
417
- const handleSubmitClick = () => {
418
- action('onSubmit')(state.values);
419
- };
420
-
421
- return (
422
- <>
423
- <Modal.Icon color="blue" icon={<Rocket />} />
424
- <Modal.Header title="Wizard Form" description="Opens modal with multi-step form" />
425
-
426
- <Modal.Body>
427
- {state.step === 1 && (
428
- <Step1
429
- id={WIZARD_FORM_NAME}
430
- onSubmit={handleSubmit}
431
- defaultValues={state.values?.[state.step]}
432
- />
433
- )}
434
- {state.step === 2 && (
435
- <Step2
436
- id={WIZARD_FORM_NAME}
437
- onSubmit={handleSubmit}
438
- defaultValues={state.values?.[state.step]}
439
- />
440
- )}
441
-
442
- {state.step === 3 && (
443
- <>
444
- <h3>Wizard is Done</h3>
445
- <pre>{JSON.stringify(state.values, null, 4)}</pre>
446
- </>
447
- )}
448
- </Modal.Body>
449
-
450
- <Modal.Footer>
451
- <ButtonGroup variant="block">
452
- <Button type="button" onClick={handlePreviousClick} disabled={isFirstStep}>
453
- Previous
454
- </Button>
455
-
456
- {isLastStep ? (
457
- <Button type="button" onClick={handleSubmitClick}>
458
- Submit
459
- </Button>
460
- ) : (
461
- <Button form={WIZARD_FORM_NAME} type="submit">
462
- Next
463
- </Button>
464
- )}
465
- </ButtonGroup>
466
- </Modal.Footer>
467
- </>
468
- );
469
- };
470
-
471
- /**
472
- * Example of a multi-step (wizard form) inside modal.
473
- * 1. State should be manged in a component inside Modal.Content, which is re-mounted on each open. No need to for state reset.
474
- * 2. If state reset is needed, you can use `<Modal.Content onEscapeKeyDown={} onPointerDownOutside={}/>` callbacks.
475
- */
476
- export const WizardFormInsideModal: Story = {
477
- render: (props) => (
478
- <Modal {...props}>
479
- <Modal.Trigger asChild>
480
- <Button>Open modal</Button>
481
- </Modal.Trigger>
482
-
483
- <Modal.Content>
484
- <ModalMultiStepContent />
485
- </Modal.Content>
486
- </Modal>
487
- ),
488
- };
489
-
490
- const ModalMediumSize = (props: ComponentProps<typeof Modal>) => (
491
- <Modal {...props}>
492
- <Modal.Trigger asChild>
493
- <Button>Open Modal</Button>
494
- </Modal.Trigger>
495
- <Modal.Content>
496
- <Modal.Header title="Medium Modal" description="This is a medium-sized modal (default)" />
497
- <Modal.Body>
498
- <p>This modal uses the default medium size (max-width: 672px / 42rem).</p>
499
- <p>Some contents...</p>
500
- <p>Some contents...</p>
501
- </Modal.Body>
502
- <Modal.Footer>
503
- <ButtonGroup variant="block">
504
- <Modal.Close asChild>
505
- <Button type="button" variant="secondary">
506
- Close
507
- </Button>
508
- </Modal.Close>
509
- <Button type="button">Ok</Button>
510
- </ButtonGroup>
511
- </Modal.Footer>
512
- </Modal.Content>
513
- </Modal>
514
- );
515
-
516
- /**
517
- * Modal with medium size (default)
518
- */
519
- export const MediumSize: Story = {
520
- render: ModalMediumSize,
521
- };
522
-
523
- const ModalLargeSize = (props: ComponentProps<typeof Modal>) => (
524
- <Modal {...props}>
525
- <Modal.Trigger asChild>
526
- <Button>Open Modal</Button>
527
- </Modal.Trigger>
528
- <Modal.Content size="large">
529
- <Modal.Header title="Large Modal" description="This is a large-sized modal" />
530
- <Modal.Body>
531
- <p>This modal uses the large size (max-width: 896px / 56rem).</p>
532
- <p>
533
- Large modals are useful for content that needs more horizontal space, such as wide forms,
534
- tables, or detailed information displays.
535
- </p>
536
- <p>Some contents...</p>
537
- </Modal.Body>
538
- <Modal.Footer>
539
- <ButtonGroup variant="block">
540
- <Modal.Close asChild>
541
- <Button type="button" variant="secondary">
542
- Close
543
- </Button>
544
- </Modal.Close>
545
- <Button type="button">Ok</Button>
546
- </ButtonGroup>
547
- </Modal.Footer>
548
- </Modal.Content>
549
- </Modal>
550
- );
551
-
552
- /**
553
- * Modal with large size
554
- */
555
- export const LargeSize: Story = {
556
- render: ModalLargeSize,
557
- };
558
-
559
- const ModalWithImageIcon = (props: ComponentProps<typeof Modal>) => (
560
- <Modal {...props}>
561
- <Modal.Trigger asChild>
562
- <Button>Open Modal</Button>
563
- </Modal.Trigger>
564
- <Modal.Content>
565
- <Modal.Icon
566
- iconUrl="https://ui.keboola-assets.com/developer-portal/icons/keboola.ex-db-snowflake/64/1576250365598.png"
567
- iconAlt="Snowflake extractor"
568
- />
569
- <Modal.Header
570
- title="Modal with Image Icon"
571
- description="This modal uses an image URL instead of a FontAwesome icon"
572
- />
573
- <Modal.Body>
574
- <p>The icon displays a custom image from a URL with a white background and shadow.</p>
575
- <p>You can optionally provide an iconAlt prop for accessibility.</p>
576
- </Modal.Body>
577
- <Modal.Footer>
578
- <ButtonGroup variant="block">
579
- <Modal.Close asChild>
580
- <Button type="button" variant="secondary">
581
- Close
582
- </Button>
583
- </Modal.Close>
584
- <Button type="button">Ok</Button>
585
- </ButtonGroup>
586
- </Modal.Footer>
587
- </Modal.Content>
588
- </Modal>
589
- );
590
-
591
- /**
592
- * Modal with an image icon (iconUrl) instead of a FontAwesome icon.
593
- * By default, the image icon has a white background with shadow.
594
- */
595
- export const WithImageIcon: Story = {
596
- render: ModalWithImageIcon,
597
- };
598
-
599
- const ModalWithImageIconError = (props: ComponentProps<typeof Modal>) => (
600
- <Modal {...props}>
601
- <Modal.Trigger asChild>
602
- <Button>Open Modal</Button>
603
- </Modal.Trigger>
604
- <Modal.Content>
605
- <Modal.Icon iconUrl="xxx" />
606
- <Modal.Header
607
- title="Modal with Failed Image"
608
- description="The icon is hidden because the image failed to load"
609
- />
610
- <Modal.Body>
611
- <p>When the image URL is invalid or fails to load, the icon is automatically hidden.</p>
612
- </Modal.Body>
613
- <Modal.Footer>
614
- <ButtonGroup variant="block">
615
- <Modal.Close asChild>
616
- <Button type="button" variant="secondary">
617
- Close
618
- </Button>
619
- </Modal.Close>
620
- <Button type="button">Ok</Button>
621
- </ButtonGroup>
622
- </Modal.Footer>
623
- </Modal.Content>
624
- </Modal>
625
- );
626
-
627
- /**
628
- * Modal with an image icon that fails to load.
629
- * The icon is hidden when the image cannot be loaded.
630
- */
631
- export const WithImageIconError: Story = {
632
- render: ModalWithImageIconError,
633
- };
634
-
635
- const ModalWithTabs = (props: ComponentProps<typeof Modal>) => (
636
- <Modal {...props}>
637
- <Modal.Trigger asChild>
638
- <Button>Open Modal</Button>
639
- </Modal.Trigger>
640
- <Modal.Content>
641
- <Modal.Header
642
- title="Modal With Tabs"
643
- description="Header border collapses automatically because Tabs render their own bottom border."
644
- />
645
- <Modal.Body>
646
- <Tabs
647
- triggers={[
648
- { value: 'first', title: 'First Tab' },
649
- { value: 'second', title: 'Second Tab' },
650
- ]}
651
- >
652
- <TabsContent value="first">
653
- <p>Content of the first tab.</p>
654
- </TabsContent>
655
- <TabsContent value="second">
656
- <p>Content of the second tab.</p>
657
- </TabsContent>
658
- </Tabs>
659
- </Modal.Body>
660
- <Modal.Footer>
661
- <ButtonGroup variant="block">
662
- <Modal.Close asChild>
663
- <Button type="button" variant="secondary">
664
- Close
665
- </Button>
666
- </Modal.Close>
667
- <Button type="button">Ok</Button>
668
- </ButtonGroup>
669
- </Modal.Footer>
670
- </Modal.Content>
671
- </Modal>
672
- );
673
-
674
- /**
675
- * Modal with Tabs inside the body — Modal.Header automatically drops its bottom border
676
- * and padding so the Tabs' own bottom border is the single visual separator.
677
- */
678
- export const WithTabs: Story = {
679
- render: ModalWithTabs,
680
- };