@keboola/design 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/README.md +57 -1
  2. package/dist/icon-names.d.cts +7 -0
  3. package/dist/icon-names.d.ts +7 -0
  4. package/dist/icons.cjs +12 -0
  5. package/dist/icons.d.cts +6 -0
  6. package/dist/icons.d.ts +6 -0
  7. package/dist/icons.js +1 -1
  8. package/dist/index.cjs +367 -135
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +10184 -0
  11. package/dist/index.d.ts +10184 -0
  12. package/dist/index.js +392 -173
  13. package/dist/index.js.map +1 -1
  14. package/dist/markdown-editor.cjs +69 -49
  15. package/dist/markdown-editor.cjs.map +1 -1
  16. package/dist/markdown-editor.d.cts +74 -0
  17. package/dist/markdown-editor.d.ts +74 -0
  18. package/dist/markdown-editor.js +69 -49
  19. package/dist/markdown-editor.js.map +1 -1
  20. package/dist/mermaid.cjs +50 -23
  21. package/dist/mermaid.cjs.map +1 -1
  22. package/dist/mermaid.d.cts +11 -0
  23. package/dist/mermaid.d.ts +11 -0
  24. package/dist/mermaid.js +50 -23
  25. package/dist/mermaid.js.map +1 -1
  26. package/dist/styles.css +1 -1
  27. package/package.json +83 -12
  28. package/src/blocks/AIKit/AnswerSummary.stories.tsx +0 -38
  29. package/src/blocks/AIKit/AnswerSummary.tsx +0 -63
  30. package/src/blocks/AIKit/CollapsibleStepHeader.stories.tsx +0 -53
  31. package/src/blocks/AIKit/CollapsibleStepHeader.tsx +0 -64
  32. package/src/blocks/AIKit/InlineStepDetail.stories.tsx +0 -25
  33. package/src/blocks/AIKit/InlineStepDetail.tsx +0 -13
  34. package/src/blocks/AIKit/InlineStepLabel.stories.tsx +0 -37
  35. package/src/blocks/AIKit/InlineStepLabel.tsx +0 -36
  36. package/src/blocks/AIKit/MessageBubble.stories.tsx +0 -145
  37. package/src/blocks/AIKit/MessageBubble.tsx +0 -68
  38. package/src/blocks/AIKit/PlanApproval.stories.tsx +0 -121
  39. package/src/blocks/AIKit/PlanApproval.test.tsx +0 -241
  40. package/src/blocks/AIKit/PlanApproval.tsx +0 -363
  41. package/src/blocks/AIKit/PlanRewritingIndicator.test.tsx +0 -17
  42. package/src/blocks/AIKit/PlanRewritingIndicator.tsx +0 -20
  43. package/src/blocks/AIKit/PromptInput.stories.tsx +0 -106
  44. package/src/blocks/AIKit/PromptInput.test.tsx +0 -53
  45. package/src/blocks/AIKit/PromptInput.tsx +0 -218
  46. package/src/blocks/AIKit/PromptInputAction.tsx +0 -18
  47. package/src/blocks/AIKit/PromptInputSubmit.tsx +0 -59
  48. package/src/blocks/AIKit/Question.stories.tsx +0 -235
  49. package/src/blocks/AIKit/Question.tsx +0 -350
  50. package/src/blocks/AIKit/QuestionBlock.stories.tsx +0 -99
  51. package/src/blocks/AIKit/QuestionBlock.tsx +0 -83
  52. package/src/blocks/AIKit/SuggestedPrompt.stories.tsx +0 -82
  53. package/src/blocks/AIKit/SuggestedPrompt.tsx +0 -42
  54. package/src/blocks/AIKit/ThinkingIndicator.stories.tsx +0 -21
  55. package/src/blocks/AIKit/ThinkingIndicator.tsx +0 -14
  56. package/src/blocks/AIKit/index.ts +0 -12
  57. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.stories.tsx +0 -78
  58. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +0 -103
  59. package/src/blocks/AutoSaveTextarea/index.ts +0 -1
  60. package/src/blocks/ClipboardButton/ClipboardButton.stories.tsx +0 -28
  61. package/src/blocks/ClipboardButton/ClipboardButton.tsx +0 -43
  62. package/src/blocks/ClipboardButton/ClipboardInline.tsx +0 -40
  63. package/src/blocks/ClipboardButton/index.ts +0 -2
  64. package/src/blocks/ColorInput/ColorInput.stories.tsx +0 -109
  65. package/src/blocks/ColorInput/ColorInput.test.tsx +0 -163
  66. package/src/blocks/ColorInput/ColorInput.tsx +0 -171
  67. package/src/blocks/ColorInput/ColorPicker.tsx +0 -42
  68. package/src/blocks/ColorInput/index.ts +0 -1
  69. package/src/blocks/ColorInput/utils.test.ts +0 -189
  70. package/src/blocks/ColorInput/utils.ts +0 -74
  71. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.stories.tsx +0 -30
  72. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.tsx +0 -20
  73. package/src/blocks/EmptyConfigurationActionCard/index.ts +0 -1
  74. package/src/blocks/EmptyState/EmptyState.stories.tsx +0 -93
  75. package/src/blocks/EmptyState/EmptyState.tsx +0 -146
  76. package/src/blocks/EmptyState/index.ts +0 -1
  77. package/src/blocks/ErrorState/ErrorState.stories.tsx +0 -125
  78. package/src/blocks/ErrorState/ErrorState.tsx +0 -147
  79. package/src/blocks/ErrorState/index.ts +0 -1
  80. package/src/blocks/Form/components/FormBody.tsx +0 -27
  81. package/src/blocks/Form/components/SubmitButton.tsx +0 -30
  82. package/src/blocks/Form/connectors/CheckboxField.tsx +0 -34
  83. package/src/blocks/Form/connectors/FieldShell.tsx +0 -46
  84. package/src/blocks/Form/connectors/NumberField.tsx +0 -36
  85. package/src/blocks/Form/connectors/PasswordField.tsx +0 -38
  86. package/src/blocks/Form/connectors/SelectField.tsx +0 -73
  87. package/src/blocks/Form/connectors/SwitchField.tsx +0 -34
  88. package/src/blocks/Form/connectors/TextAreaField.tsx +0 -36
  89. package/src/blocks/Form/connectors/TextField.tsx +0 -36
  90. package/src/blocks/Form/contexts.ts +0 -4
  91. package/src/blocks/Form/formHook.ts +0 -45
  92. package/src/blocks/Form/index.ts +0 -2
  93. package/src/blocks/Form/setServerFieldErrors.test.ts +0 -38
  94. package/src/blocks/Form/setServerFieldErrors.ts +0 -21
  95. package/src/blocks/MermaidDiagram/MermaidDiagram.stories.tsx +0 -87
  96. package/src/blocks/MermaidDiagram/MermaidDiagram.tsx +0 -266
  97. package/src/blocks/MermaidDiagram/index.ts +0 -1
  98. package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +0 -119
  99. package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +0 -41
  100. package/src/blocks/MultiActionButtonGroup/MultiActionButtonGroup.tsx +0 -16
  101. package/src/blocks/MultiActionButtonGroup/index.ts +0 -1
  102. package/src/blocks/MultiCombobox/MultiCombobox.stories.tsx +0 -324
  103. package/src/blocks/MultiCombobox/MultiCombobox.tsx +0 -257
  104. package/src/blocks/MultiCombobox/index.ts +0 -1
  105. package/src/blocks/NumberInput/NumberInput.stories.tsx +0 -112
  106. package/src/blocks/NumberInput/NumberInput.test.tsx +0 -148
  107. package/src/blocks/NumberInput/NumberInput.tsx +0 -89
  108. package/src/blocks/NumberInput/index.ts +0 -1
  109. package/src/blocks/PageHeader/AGENTS.md +0 -137
  110. package/src/blocks/PageHeader/PageHeader.stories.tsx +0 -371
  111. package/src/blocks/PageHeader/PageHeader.tsx +0 -22
  112. package/src/blocks/PageHeader/PageHeaderDetail.tsx +0 -84
  113. package/src/blocks/PageHeader/PageHeaderIndex.tsx +0 -75
  114. package/src/blocks/PageHeader/index.ts +0 -1
  115. package/src/blocks/PageHeader/styles.ts +0 -6
  116. package/src/blocks/PageLayout/AGENTS.md +0 -94
  117. package/src/blocks/PageLayout/PageLayout.stories.tsx +0 -146
  118. package/src/blocks/PageLayout/PageLayout.tsx +0 -139
  119. package/src/blocks/PageLayout/index.ts +0 -1
  120. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +0 -353
  121. package/src/blocks/PageToolbar/PageToolbar.tsx +0 -160
  122. package/src/blocks/PageToolbar/PageToolbarToken.tsx +0 -61
  123. package/src/blocks/PageToolbar/index.ts +0 -1
  124. package/src/blocks/PasswordInput/PasswordInput.stories.tsx +0 -114
  125. package/src/blocks/PasswordInput/PasswordInput.test.tsx +0 -219
  126. package/src/blocks/PasswordInput/PasswordInput.tsx +0 -180
  127. package/src/blocks/PasswordInput/index.ts +0 -1
  128. package/src/blocks/SearchInput/SearchInput.stories.tsx +0 -127
  129. package/src/blocks/SearchInput/SearchInput.test.tsx +0 -162
  130. package/src/blocks/SearchInput/SearchInput.tsx +0 -172
  131. package/src/blocks/SearchInput/index.ts +0 -1
  132. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.stories.tsx +0 -73
  133. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +0 -92
  134. package/src/blocks/SearchInputWithNavigation/index.ts +0 -1
  135. package/src/blocks/SplitButton/SplitButton.stories.tsx +0 -91
  136. package/src/blocks/SplitButton/SplitButton.tsx +0 -81
  137. package/src/blocks/SplitButton/index.ts +0 -1
  138. package/src/blocks/Tagger/TagItem.tsx +0 -32
  139. package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +0 -44
  140. package/src/blocks/Tagger/TagSelectPopover/TagSelectItem.tsx +0 -31
  141. package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +0 -67
  142. package/src/blocks/Tagger/TagSelectPopover/TagSelectPopover.tsx +0 -34
  143. package/src/blocks/Tagger/TagSelectPopover/TagSelectValue.tsx +0 -47
  144. package/src/blocks/Tagger/TagSelectPopover/index.ts +0 -1
  145. package/src/blocks/Tagger/Tagger.stories.tsx +0 -80
  146. package/src/blocks/Tagger/Tagger.tsx +0 -101
  147. package/src/blocks/Tagger/index.ts +0 -1
  148. package/src/blocks/Tagger/types.ts +0 -11
  149. package/src/blocks/Textarea/Textarea.stories.tsx +0 -47
  150. package/src/blocks/Textarea/Textarea.tsx +0 -50
  151. package/src/blocks/Textarea/index.ts +0 -1
  152. package/src/components/Alert/Alert.stories.tsx +0 -101
  153. package/src/components/Alert/Alert.tsx +0 -121
  154. package/src/components/Alert/AlertAction.tsx +0 -31
  155. package/src/components/Alert/AlertCollapsibleIcon.tsx +0 -25
  156. package/src/components/Alert/AlertDescription.tsx +0 -36
  157. package/src/components/Alert/AlertIcon.tsx +0 -40
  158. package/src/components/Alert/AlertRoot.tsx +0 -64
  159. package/src/components/Alert/AlertTitle.tsx +0 -25
  160. package/src/components/Alert/index.ts +0 -1
  161. package/src/components/Avatar.stories.tsx +0 -22
  162. package/src/components/Avatar.tsx +0 -88
  163. package/src/components/Badge/Badge.stories.tsx +0 -122
  164. package/src/components/Badge/Badge.tsx +0 -71
  165. package/src/components/Badge/BadgeAddon.tsx +0 -63
  166. package/src/components/Badge/BadgeButton.tsx +0 -40
  167. package/src/components/Badge/BadgeLabel.tsx +0 -37
  168. package/src/components/Badge/BadgeRoot.tsx +0 -21
  169. package/src/components/Badge/index.ts +0 -1
  170. package/src/components/Badge/styles.ts +0 -74
  171. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -135
  172. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -23
  173. package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +0 -43
  174. package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -9
  175. package/src/components/Breadcrumb/BreadcrumbLink.tsx +0 -48
  176. package/src/components/Breadcrumb/BreadcrumbList.tsx +0 -26
  177. package/src/components/Breadcrumb/BreadcrumbPage.tsx +0 -22
  178. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +0 -28
  179. package/src/components/Breadcrumb/index.ts +0 -1
  180. package/src/components/Button/Button.stories.tsx +0 -80
  181. package/src/components/Button/Button.tsx +0 -110
  182. package/src/components/Button/ButtonInline.stories.tsx +0 -54
  183. package/src/components/Button/ButtonInline.tsx +0 -77
  184. package/src/components/Button/index.ts +0 -3
  185. package/src/components/Button/styles.ts +0 -290
  186. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -140
  187. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -79
  188. package/src/components/ButtonGroup/index.ts +0 -1
  189. package/src/components/Calendar/Calendar.stories.tsx +0 -101
  190. package/src/components/Calendar/Calendar.tsx +0 -44
  191. package/src/components/Calendar/index.ts +0 -2
  192. package/src/components/Card/Card.stories.tsx +0 -60
  193. package/src/components/Card/Card.tsx +0 -42
  194. package/src/components/Card/CardContent.tsx +0 -5
  195. package/src/components/Card/CardHeader.tsx +0 -5
  196. package/src/components/Card/CardTitle.tsx +0 -13
  197. package/src/components/Card/index.ts +0 -1
  198. package/src/components/Card/styles.ts +0 -32
  199. package/src/components/Checkbox/Checkbox.stories.tsx +0 -210
  200. package/src/components/Checkbox/Checkbox.test.tsx +0 -140
  201. package/src/components/Checkbox/Checkbox.tsx +0 -83
  202. package/src/components/Checkbox/index.ts +0 -1
  203. package/src/components/Checkbox/styles.ts +0 -77
  204. package/src/components/Clipboard/Clipboard.stories.tsx +0 -44
  205. package/src/components/Clipboard/Clipboard.tsx +0 -89
  206. package/src/components/Clipboard/index.ts +0 -1
  207. package/src/components/CodeEditor/ButtonToolbar.tsx +0 -14
  208. package/src/components/CodeEditor/CodeEditor.tsx +0 -155
  209. package/src/components/CodeEditor/SqlEditor.stories.tsx +0 -76
  210. package/src/components/CodeEditor/SqlEditor.tsx +0 -206
  211. package/src/components/CodeEditor/ToggleComponentHelp.tsx +0 -7
  212. package/src/components/CodeEditor/activeQueryHighlight.test.ts +0 -178
  213. package/src/components/CodeEditor/activeQueryHighlight.ts +0 -245
  214. package/src/components/CodeEditor/helpers.ts +0 -100
  215. package/src/components/CodeEditor/highlighting.ts +0 -184
  216. package/src/components/CodeEditor/index.ts +0 -3
  217. package/src/components/CodeEditor/search.ts +0 -186
  218. package/src/components/Collapse.stories.tsx +0 -56
  219. package/src/components/Collapse.tsx +0 -61
  220. package/src/components/Collapsible/Collapsible.stories.tsx +0 -55
  221. package/src/components/Collapsible/Collapsible.tsx +0 -11
  222. package/src/components/Collapsible/CollapsibleContent.tsx +0 -25
  223. package/src/components/Collapsible/index.ts +0 -1
  224. package/src/components/CollapsiblePanel.stories.tsx +0 -25
  225. package/src/components/CollapsiblePanel.tsx +0 -127
  226. package/src/components/Combobox/Combobox.stories.tsx +0 -426
  227. package/src/components/Combobox/Combobox.test.tsx +0 -165
  228. package/src/components/Combobox/Combobox.tsx +0 -345
  229. package/src/components/Combobox/ComboboxChips.tsx +0 -68
  230. package/src/components/Combobox/ComboboxContent.tsx +0 -95
  231. package/src/components/Combobox/ComboboxEmpty.tsx +0 -30
  232. package/src/components/Combobox/ComboboxInput.tsx +0 -10
  233. package/src/components/Combobox/ComboboxInputGroup.tsx +0 -38
  234. package/src/components/Combobox/ComboboxItem.tsx +0 -70
  235. package/src/components/Combobox/ComboboxItemIndicator.tsx +0 -78
  236. package/src/components/Combobox/ComboboxList.tsx +0 -32
  237. package/src/components/Combobox/ComboboxRoot.tsx +0 -5
  238. package/src/components/Combobox/ComboboxSeparator.tsx +0 -20
  239. package/src/components/Combobox/Group/ComboboxCollection.tsx +0 -7
  240. package/src/components/Combobox/Group/ComboboxGroup.tsx +0 -23
  241. package/src/components/Combobox/Group/ComboboxGroupLabel.tsx +0 -38
  242. package/src/components/Combobox/Group/index.ts +0 -3
  243. package/src/components/Combobox/index.ts +0 -1
  244. package/src/components/Combobox/types.ts +0 -22
  245. package/src/components/Combobox/utils.test.ts +0 -95
  246. package/src/components/Combobox/utils.ts +0 -103
  247. package/src/components/Command/Command.stories.tsx +0 -367
  248. package/src/components/Command/Command.tsx +0 -37
  249. package/src/components/Command/CommandContent.tsx +0 -19
  250. package/src/components/Command/CommandEmpty.tsx +0 -6
  251. package/src/components/Command/CommandGroup.tsx +0 -26
  252. package/src/components/Command/CommandInput.tsx +0 -27
  253. package/src/components/Command/CommandItem/CheckIndicator.tsx +0 -86
  254. package/src/components/Command/CommandItem/CommandItem.tsx +0 -94
  255. package/src/components/Command/CommandItem/index.ts +0 -1
  256. package/src/components/Command/CommandList.tsx +0 -32
  257. package/src/components/Command/CommandSeparator.tsx +0 -13
  258. package/src/components/Command/index.ts +0 -6
  259. package/src/components/DatePicker/DatePicker.tsx +0 -37
  260. package/src/components/DatePicker/index.ts +0 -1
  261. package/src/components/DiffView/DiffView.stories.tsx +0 -80
  262. package/src/components/DiffView/DiffView.tsx +0 -131
  263. package/src/components/DiffView/DiffViewMark.tsx +0 -21
  264. package/src/components/DiffView/DiffViewTd.tsx +0 -84
  265. package/src/components/DiffView/DiffViewTh.tsx +0 -23
  266. package/src/components/DiffView/index.ts +0 -11
  267. package/src/components/DiffView/util.test.ts +0 -231
  268. package/src/components/DiffView/util.ts +0 -311
  269. package/src/components/DotsLoader.tsx +0 -22
  270. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -310
  271. package/src/components/DropdownMenu/DropdownMenu.tsx +0 -61
  272. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +0 -55
  273. package/src/components/DropdownMenu/DropdownMenuContent.tsx +0 -52
  274. package/src/components/DropdownMenu/DropdownMenuContext.tsx +0 -13
  275. package/src/components/DropdownMenu/DropdownMenuItem.tsx +0 -80
  276. package/src/components/DropdownMenu/DropdownMenuItemDescription.tsx +0 -42
  277. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +0 -104
  278. package/src/components/DropdownMenu/DropdownMenuLabel.tsx +0 -21
  279. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.tsx +0 -31
  280. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +0 -67
  281. package/src/components/DropdownMenu/DropdownMenuRadioGroup/index.ts +0 -2
  282. package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +0 -35
  283. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSub.tsx +0 -3
  284. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubContent.tsx +0 -21
  285. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +0 -17
  286. package/src/components/DropdownMenu/DropdownMenuSub/index.ts +0 -3
  287. package/src/components/DropdownMenu/DropdownMenuTrigger.tsx +0 -19
  288. package/src/components/DropdownMenu/ItemIcon.tsx +0 -30
  289. package/src/components/DropdownMenu/index.ts +0 -1
  290. package/src/components/DropdownMenu/styles.ts +0 -82
  291. package/src/components/EmptySearchContent.stories.tsx +0 -12
  292. package/src/components/EmptySearchContent.tsx +0 -13
  293. package/src/components/FieldBox/FieldBox.stories.tsx +0 -138
  294. package/src/components/FieldBox/FieldBox.tsx +0 -43
  295. package/src/components/FieldBox/FieldBoxDescription.tsx +0 -18
  296. package/src/components/FieldBox/FieldBoxTitle.tsx +0 -20
  297. package/src/components/FieldBox/index.ts +0 -1
  298. package/src/components/FieldBox/styles.ts +0 -37
  299. package/src/components/FormGroup/FormGroup.stories.tsx +0 -120
  300. package/src/components/FormGroup/FormGroup.tsx +0 -48
  301. package/src/components/FormGroup/FormGroupColorInput.tsx +0 -15
  302. package/src/components/FormGroup/FormGroupHelp.tsx +0 -17
  303. package/src/components/FormGroup/FormGroupNumberInput.tsx +0 -15
  304. package/src/components/FormGroup/FormGroupTextInput.tsx +0 -15
  305. package/src/components/FormGroup/FormGroupTextarea.tsx +0 -12
  306. package/src/components/FormGroup/context.ts +0 -11
  307. package/src/components/FormGroup/index.ts +0 -2
  308. package/src/components/FormGroup/types.ts +0 -5
  309. package/src/components/FullScreenModal/FullScreenModal.tsx +0 -8
  310. package/src/components/FullScreenModal/FullScreenModalBody.tsx +0 -16
  311. package/src/components/FullScreenModal/FullScreenModalHeader.tsx +0 -92
  312. package/src/components/FullScreenModal/FullScreenModalRoot.tsx +0 -79
  313. package/src/components/FullScreenModal/index.ts +0 -3
  314. package/src/components/HelpBlock/HelpBlock.stories.tsx +0 -28
  315. package/src/components/HelpBlock/HelpBlock.tsx +0 -31
  316. package/src/components/HelpBlock/index.ts +0 -1
  317. package/src/components/HoverCard/HoverCard.stories.tsx +0 -77
  318. package/src/components/HoverCard/HoverCard.tsx +0 -13
  319. package/src/components/HoverCard/HoverCardContent.tsx +0 -68
  320. package/src/components/HoverCard/index.ts +0 -1
  321. package/src/components/Icon/Icon.stories.tsx +0 -26
  322. package/src/components/Icon/Icon.tsx +0 -10
  323. package/src/components/Icon/Icons.mdx +0 -28
  324. package/src/components/Icon/constants.ts +0 -1
  325. package/src/components/Icon/index.ts +0 -27
  326. package/src/components/Input/DateInput/DateInput.stories.tsx +0 -58
  327. package/src/components/Input/DateInput/DateInput.tsx +0 -143
  328. package/src/components/Input/DateInput/helpers.test.ts +0 -102
  329. package/src/components/Input/DateInput/helpers.ts +0 -59
  330. package/src/components/Input/DateInput/index.ts +0 -1
  331. package/src/components/Input/DateRangeInput/DateRangeInput.stories.tsx +0 -66
  332. package/src/components/Input/DateRangeInput/DateRangeInput.tsx +0 -139
  333. package/src/components/Input/DateRangeInput/helpers.test.ts +0 -146
  334. package/src/components/Input/DateRangeInput/helpers.ts +0 -36
  335. package/src/components/Input/DateRangeInput/index.ts +0 -1
  336. package/src/components/Input/Input.stories.tsx +0 -93
  337. package/src/components/Input/Input.test.tsx +0 -112
  338. package/src/components/Input/Input.tsx +0 -163
  339. package/src/components/Input/TextInput/TextInput.stories.tsx +0 -68
  340. package/src/components/Input/TextInput/TextInput.test.tsx +0 -52
  341. package/src/components/Input/TextInput/TextInput.tsx +0 -73
  342. package/src/components/Input/TextInput/index.ts +0 -1
  343. package/src/components/Input/TimeInput/TimeInput.stories.tsx +0 -89
  344. package/src/components/Input/TimeInput/TimeInput.tsx +0 -106
  345. package/src/components/Input/TimeInput/index.ts +0 -1
  346. package/src/components/Input/index.ts +0 -4
  347. package/src/components/Input/utils.ts +0 -11
  348. package/src/components/InputGroup/InputGroup.stories.tsx +0 -215
  349. package/src/components/InputGroup/InputGroup.tsx +0 -228
  350. package/src/components/InputGroup/InputGroupAddon.tsx +0 -57
  351. package/src/components/InputGroup/InputGroupButton.tsx +0 -25
  352. package/src/components/InputGroup/InputGroupInput.tsx +0 -34
  353. package/src/components/InputGroup/InputGroupText.tsx +0 -21
  354. package/src/components/InputGroup/InputGroupTextArea.tsx +0 -78
  355. package/src/components/InputGroup/index.ts +0 -1
  356. package/src/components/Kbd/Kbd.stories.tsx +0 -82
  357. package/src/components/Kbd/Kbd.tsx +0 -17
  358. package/src/components/Kbd/KbdGroup.tsx +0 -35
  359. package/src/components/Kbd/KbdSeparator.tsx +0 -9
  360. package/src/components/Kbd/index.ts +0 -3
  361. package/src/components/Kbd/keyboardKeys.ts +0 -40
  362. package/src/components/Kbd/styles.ts +0 -39
  363. package/src/components/Label/Label.stories.tsx +0 -53
  364. package/src/components/Label/Label.tsx +0 -31
  365. package/src/components/Label/index.ts +0 -1
  366. package/src/components/Link.stories.tsx +0 -19
  367. package/src/components/Link.tsx +0 -37
  368. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +0 -182
  369. package/src/components/MarkdownEditor/MarkdownEditor.test.ts +0 -171
  370. package/src/components/MarkdownEditor/MarkdownEditor.tsx +0 -245
  371. package/src/components/MarkdownEditor/context.ts +0 -10
  372. package/src/components/MarkdownEditor/index.ts +0 -1
  373. package/src/components/MarkdownEditor/nodes/ImageNode.tsx +0 -115
  374. package/src/components/MarkdownEditor/nodes/ImageNodeComponent.tsx +0 -18
  375. package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +0 -72
  376. package/src/components/MarkdownEditor/nodes/MermaidNodeComponent.tsx +0 -35
  377. package/src/components/MarkdownEditor/plugins/ImagePastePlugin.tsx +0 -149
  378. package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +0 -81
  379. package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +0 -65
  380. package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +0 -284
  381. package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +0 -99
  382. package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +0 -142
  383. package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +0 -160
  384. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarButton.tsx +0 -36
  385. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarDivider.tsx +0 -1
  386. package/src/components/MarkdownEditor/theme.ts +0 -39
  387. package/src/components/MarkdownEditor/transformers.ts +0 -189
  388. package/src/components/MarkedText/MarkedText.stories.tsx +0 -46
  389. package/src/components/MarkedText/MarkedText.tsx +0 -36
  390. package/src/components/MarkedText/index.ts +0 -1
  391. package/src/components/MarkedText/utils.test.ts +0 -193
  392. package/src/components/MarkedText/utils.ts +0 -37
  393. package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +0 -25
  394. package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +0 -77
  395. package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +0 -38
  396. package/src/components/MergeEditor/MergeEditor.stories.tsx +0 -226
  397. package/src/components/MergeEditor/MergeEditor.tsx +0 -125
  398. package/src/components/MergeEditor/MergePane.tsx +0 -113
  399. package/src/components/MergeEditor/PaneHeader.tsx +0 -11
  400. package/src/components/MergeEditor/constants.ts +0 -48
  401. package/src/components/MergeEditor/decorations.ts +0 -126
  402. package/src/components/MergeEditor/helpers.test.ts +0 -172
  403. package/src/components/MergeEditor/helpers.ts +0 -118
  404. package/src/components/MergeEditor/index.ts +0 -5
  405. package/src/components/MergeEditor/useMergeDiff.ts +0 -573
  406. package/src/components/MergeEditor/useScrollSync.ts +0 -79
  407. package/src/components/Modal/Modal.stories.tsx +0 -680
  408. package/src/components/Modal/Modal.tsx +0 -49
  409. package/src/components/Modal/ModalBody.tsx +0 -33
  410. package/src/components/Modal/ModalCloseIcon.tsx +0 -31
  411. package/src/components/Modal/ModalContent.tsx +0 -95
  412. package/src/components/Modal/ModalDescription.tsx +0 -20
  413. package/src/components/Modal/ModalFooter.tsx +0 -20
  414. package/src/components/Modal/ModalHeader.tsx +0 -61
  415. package/src/components/Modal/ModalIcon.tsx +0 -109
  416. package/src/components/Modal/ModalOverlay.tsx +0 -42
  417. package/src/components/Modal/ModalTitle.tsx +0 -12
  418. package/src/components/Modal/index.ts +0 -1
  419. package/src/components/Navbar/Navbar.stories.tsx +0 -191
  420. package/src/components/Navbar/Navbar.tsx +0 -80
  421. package/src/components/Navbar/NavbarContent.tsx +0 -20
  422. package/src/components/Navbar/NavbarFooter.tsx +0 -11
  423. package/src/components/Navbar/NavbarHeader.tsx +0 -11
  424. package/src/components/Navbar/NavbarMenu.tsx +0 -30
  425. package/src/components/Navbar/NavbarMenuAvatar.tsx +0 -67
  426. package/src/components/Navbar/NavbarMenuButton.tsx +0 -135
  427. package/src/components/Navbar/NavbarMenuItem.tsx +0 -9
  428. package/src/components/Navbar/NavbarMenuItemAdornment.tsx +0 -65
  429. package/src/components/Navbar/index.ts +0 -1
  430. package/src/components/Pagination/Pagination.stories.tsx +0 -131
  431. package/src/components/Pagination/Pagination.tsx +0 -34
  432. package/src/components/Pagination/PaginationButton.tsx +0 -36
  433. package/src/components/Pagination/PaginationContent.tsx +0 -12
  434. package/src/components/Pagination/PaginationEllipsis.tsx +0 -26
  435. package/src/components/Pagination/PaginationItem.tsx +0 -9
  436. package/src/components/Pagination/PaginationNext.tsx +0 -20
  437. package/src/components/Pagination/PaginationPrevious.tsx +0 -14
  438. package/src/components/Pagination/index.ts +0 -1
  439. package/src/components/PanelWithDetails.stories.tsx +0 -28
  440. package/src/components/PanelWithDetails.tsx +0 -65
  441. package/src/components/Popconfirm/Popconfirm.stories.tsx +0 -373
  442. package/src/components/Popconfirm/Popconfirm.tsx +0 -82
  443. package/src/components/Popconfirm/PopconfirmBody.tsx +0 -5
  444. package/src/components/Popconfirm/PopconfirmCancel.tsx +0 -45
  445. package/src/components/Popconfirm/PopconfirmConfirm.tsx +0 -57
  446. package/src/components/Popconfirm/PopconfirmContent.tsx +0 -33
  447. package/src/components/Popconfirm/PopconfirmFooter.tsx +0 -9
  448. package/src/components/Popconfirm/PopconfirmTrigger.tsx +0 -22
  449. package/src/components/Popconfirm/context.ts +0 -19
  450. package/src/components/Popconfirm/index.ts +0 -1
  451. package/src/components/Popover/Popover.stories.tsx +0 -85
  452. package/src/components/Popover/Popover.tsx +0 -15
  453. package/src/components/Popover/PopoverContent.tsx +0 -103
  454. package/src/components/Popover/index.ts +0 -1
  455. package/src/components/Progress/Progress.stories.tsx +0 -67
  456. package/src/components/Progress/Progress.tsx +0 -45
  457. package/src/components/Progress/index.ts +0 -1
  458. package/src/components/RadioGroup/Radio.tsx +0 -61
  459. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -300
  460. package/src/components/RadioGroup/RadioGroup.tsx +0 -64
  461. package/src/components/RadioGroup/RadioGroupItem.tsx +0 -60
  462. package/src/components/RadioGroup/RadioGroupItemButton.tsx +0 -79
  463. package/src/components/RadioGroup/RadioGroupSeparator.tsx +0 -12
  464. package/src/components/RadioGroup/context.ts +0 -13
  465. package/src/components/RadioGroup/index.ts +0 -1
  466. package/src/components/Resizable/Resizable.stories.tsx +0 -50
  467. package/src/components/Resizable/ResizableHandle.tsx +0 -50
  468. package/src/components/Resizable/ResizablePanel.tsx +0 -12
  469. package/src/components/Resizable/ResizablePanelGroup.tsx +0 -19
  470. package/src/components/Resizable/index.ts +0 -3
  471. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -43
  472. package/src/components/ScrollArea/ScrollArea.tsx +0 -50
  473. package/src/components/ScrollArea/ScrollBar.tsx +0 -32
  474. package/src/components/ScrollArea/index.ts +0 -2
  475. package/src/components/Search/ClearButton.tsx +0 -42
  476. package/src/components/Search/Search.stories.tsx +0 -77
  477. package/src/components/Search/Search.test.tsx +0 -224
  478. package/src/components/Search/Search.tsx +0 -139
  479. package/src/components/Search/SearchForm.tsx +0 -37
  480. package/src/components/Search/index.ts +0 -2
  481. package/src/components/Search/styles.ts +0 -88
  482. package/src/components/Search/utils.ts +0 -11
  483. package/src/components/Select/Select.stories.tsx +0 -109
  484. package/src/components/Select/Select.tsx +0 -141
  485. package/src/components/Select/SelectContent.tsx +0 -110
  486. package/src/components/Select/SelectGroup.tsx +0 -10
  487. package/src/components/Select/SelectItem.tsx +0 -72
  488. package/src/components/Select/SelectLabel.tsx +0 -32
  489. package/src/components/Select/SelectRoot.tsx +0 -6
  490. package/src/components/Select/SelectSeparator.tsx +0 -13
  491. package/src/components/Select/SelectTrigger.tsx +0 -161
  492. package/src/components/Select/index.ts +0 -1
  493. package/src/components/Separator/Separator.stories.tsx +0 -60
  494. package/src/components/Separator/Separator.test.tsx +0 -39
  495. package/src/components/Separator/Separator.tsx +0 -115
  496. package/src/components/Separator/index.ts +0 -1
  497. package/src/components/Sheet/Sheet.stories.tsx +0 -63
  498. package/src/components/Sheet/Sheet.tsx +0 -21
  499. package/src/components/Sheet/SheetBody.tsx +0 -12
  500. package/src/components/Sheet/SheetContent.tsx +0 -131
  501. package/src/components/Sheet/SheetFooter.tsx +0 -9
  502. package/src/components/Sheet/SheetHeader.tsx +0 -39
  503. package/src/components/Sheet/SheetOverlay.tsx +0 -11
  504. package/src/components/Sheet/SheetTitle.tsx +0 -12
  505. package/src/components/Sheet/index.ts +0 -1
  506. package/src/components/Sidebar/Sidebar.stories.tsx +0 -849
  507. package/src/components/Sidebar/Sidebar.tsx +0 -225
  508. package/src/components/Sidebar/SidebarContent.tsx +0 -61
  509. package/src/components/Sidebar/SidebarFillTrigger.tsx +0 -25
  510. package/src/components/Sidebar/SidebarFooter.tsx +0 -13
  511. package/src/components/Sidebar/SidebarGroup/SidebarGroup.tsx +0 -23
  512. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +0 -53
  513. package/src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx +0 -20
  514. package/src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx +0 -76
  515. package/src/components/Sidebar/SidebarGroup/index.ts +0 -4
  516. package/src/components/Sidebar/SidebarHeader.tsx +0 -20
  517. package/src/components/Sidebar/SidebarInstanceContext.ts +0 -18
  518. package/src/components/Sidebar/SidebarMenu/SidebarMenu.tsx +0 -28
  519. package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +0 -69
  520. package/src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx +0 -56
  521. package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +0 -110
  522. package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +0 -108
  523. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +0 -30
  524. package/src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx +0 -9
  525. package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +0 -139
  526. package/src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx +0 -106
  527. package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +0 -88
  528. package/src/components/Sidebar/SidebarMenu/index.ts +0 -10
  529. package/src/components/Sidebar/SidebarProvider/SidebarProvider.tsx +0 -171
  530. package/src/components/Sidebar/SidebarProvider/context.ts +0 -35
  531. package/src/components/Sidebar/SidebarProvider/index.ts +0 -2
  532. package/src/components/Sidebar/SidebarProvider/useHoverTracking.test.ts +0 -199
  533. package/src/components/Sidebar/SidebarProvider/useHoverTracking.ts +0 -72
  534. package/src/components/Sidebar/SidebarProvider/useSidebarState.ts +0 -50
  535. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.test.ts +0 -179
  536. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.ts +0 -53
  537. package/src/components/Sidebar/SidebarResizeHandle.tsx +0 -28
  538. package/src/components/Sidebar/SidebarSeparator.tsx +0 -15
  539. package/src/components/Sidebar/SidebarTrigger.tsx +0 -40
  540. package/src/components/Sidebar/index.ts +0 -3
  541. package/src/components/Sidebar/types.ts +0 -6
  542. package/src/components/Sidebar/useResizeSidebar.ts +0 -112
  543. package/src/components/Sidebar/utils.test.ts +0 -178
  544. package/src/components/Sidebar/utils.ts +0 -70
  545. package/src/components/Skeleton/Skeleton.stories.tsx +0 -106
  546. package/src/components/Skeleton/Skeleton.tsx +0 -77
  547. package/src/components/Skeleton/SkeletonList.stories.tsx +0 -11
  548. package/src/components/Skeleton/SkeletonList.tsx +0 -65
  549. package/src/components/Slider/Slider.stories.tsx +0 -99
  550. package/src/components/Slider/Slider.tsx +0 -85
  551. package/src/components/Slider/SliderThumb.tsx +0 -57
  552. package/src/components/Slider/SliderTrack.tsx +0 -49
  553. package/src/components/Slider/index.ts +0 -1
  554. package/src/components/Slider/useInteracting.test.ts +0 -159
  555. package/src/components/Slider/useInteracting.ts +0 -64
  556. package/src/components/Switch/Switch.stories.tsx +0 -177
  557. package/src/components/Switch/Switch.tsx +0 -58
  558. package/src/components/Switch/index.ts +0 -1
  559. package/src/components/Switch/styles.ts +0 -173
  560. package/src/components/Table/Table.stories.tsx +0 -328
  561. package/src/components/Table/Table.tsx +0 -68
  562. package/src/components/Table/TableBody.tsx +0 -22
  563. package/src/components/Table/TableCell.tsx +0 -7
  564. package/src/components/Table/TableFooter.tsx +0 -15
  565. package/src/components/Table/TableHead.tsx +0 -15
  566. package/src/components/Table/TableHeader.tsx +0 -20
  567. package/src/components/Table/TableRow.tsx +0 -11
  568. package/src/components/Table/index.ts +0 -1
  569. package/src/components/Tabs.stories.tsx +0 -123
  570. package/src/components/Tabs.tsx +0 -134
  571. package/src/components/ThemeProvider/AIGradientSvg.tsx +0 -18
  572. package/src/components/ThemeProvider/ThemeProvider.tsx +0 -25
  573. package/src/components/ThemeProvider/index.ts +0 -1
  574. package/src/components/TimePicker/TimePicker.tsx +0 -95
  575. package/src/components/TimePicker/TimePickerButton.tsx +0 -39
  576. package/src/components/TimePicker/index.ts +0 -1
  577. package/src/components/TimePicker/utils.ts +0 -31
  578. package/src/components/Timeline/Timeline.stories.tsx +0 -246
  579. package/src/components/Timeline/Timeline.tsx +0 -35
  580. package/src/components/Timeline/TimelineConnector.tsx +0 -154
  581. package/src/components/Timeline/TimelineContent.tsx +0 -18
  582. package/src/components/Timeline/TimelineItem.tsx +0 -14
  583. package/src/components/Timeline/index.ts +0 -1
  584. package/src/components/Timeline/useLastLineHeight.ts +0 -36
  585. package/src/components/Toast/Toast.stories.tsx +0 -178
  586. package/src/components/Toast/ToastAction.tsx +0 -40
  587. package/src/components/Toast/ToastDescription.tsx +0 -28
  588. package/src/components/Toast/ToastDismiss.tsx +0 -36
  589. package/src/components/Toast/ToastDuration.tsx +0 -43
  590. package/src/components/Toast/ToastRoot.tsx +0 -135
  591. package/src/components/Toast/ToastTitle.tsx +0 -33
  592. package/src/components/Toast/Toaster.tsx +0 -25
  593. package/src/components/Toast/index.ts +0 -3
  594. package/src/components/Toast/toast.tsx +0 -94
  595. package/src/components/Toast/useNotification.tsx +0 -33
  596. package/src/components/Toggle/Toggle.stories.tsx +0 -67
  597. package/src/components/Toggle/Toggle.tsx +0 -202
  598. package/src/components/Toggle/index.ts +0 -1
  599. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -60
  600. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -99
  601. package/src/components/ToggleGroup/index.ts +0 -1
  602. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  603. package/src/components/Tooltip/Tooltip.tsx +0 -110
  604. package/src/components/Tooltip/TooltipContent.tsx +0 -90
  605. package/src/components/Tooltip/TooltipRoot.tsx +0 -12
  606. package/src/components/Tooltip/TooltipTrigger.tsx +0 -42
  607. package/src/components/Tooltip/index.ts +0 -1
  608. package/src/components/Truncated.stories.tsx +0 -72
  609. package/src/components/Truncated.tsx +0 -78
  610. package/src/components/ZoomableSvg/ZoomableSvg.stories.tsx +0 -53
  611. package/src/components/ZoomableSvg/ZoomableSvg.tsx +0 -200
  612. package/src/components/ZoomableSvg/index.ts +0 -1
  613. package/src/constants/keyCodes.ts +0 -5
  614. package/src/docs/Colors.mdx +0 -19
  615. package/src/docs/Spacing.mdx +0 -35
  616. package/src/docs/Typography.mdx +0 -63
  617. package/src/docs/components/Typeset.tsx +0 -35
  618. package/src/hooks/useAutosizeInput.stories.tsx +0 -142
  619. package/src/hooks/useAutosizeInput.test.tsx +0 -77
  620. package/src/hooks/useAutosizeInput.tsx +0 -107
  621. package/src/hooks/useElement.ts +0 -16
  622. package/src/hooks/useScrollbarPosition.ts +0 -68
  623. package/src/icon-names.ts +0 -20
  624. package/src/icons/Keboola.tsx +0 -28
  625. package/src/icons/icons.stories.tsx +0 -174
  626. package/src/icons/index.ts +0 -186
  627. package/src/index.ts +0 -89
  628. package/src/patterns/AlertWithAction.stories.tsx +0 -30
  629. package/src/patterns/CardWithEmptyState.stories.tsx +0 -66
  630. package/src/patterns/ConfirmDialog.stories.tsx +0 -72
  631. package/src/patterns/CreatableMultiCombobox.stories.tsx +0 -33
  632. package/src/patterns/DataCardWithSkeleton.stories.tsx +0 -48
  633. package/src/patterns/DisabledButtonTooltip.stories.tsx +0 -30
  634. package/src/patterns/FilterToolbar.stories.tsx +0 -275
  635. package/src/patterns/InfoTooltip.stories.tsx +0 -56
  636. package/src/patterns/ListDetail.stories.tsx +0 -65
  637. package/src/patterns/ModalForm.stories.tsx +0 -59
  638. package/src/patterns/PageHeaderTabs.stories.tsx +0 -48
  639. package/src/utils/classNames.test.ts +0 -16
  640. package/src/utils/classNames.ts +0 -27
  641. package/src/utils/copyToClipboard.ts +0 -3
  642. package/src/utils/createChangeInputEvent.ts +0 -28
  643. package/src/utils/createPrefixedString.ts +0 -2
  644. package/src/utils/debounce.test.ts +0 -63
  645. package/src/utils/debounce.ts +0 -17
  646. package/src/utils/decorators.tsx +0 -16
  647. package/src/utils/escapeStringRegexp.ts +0 -4
  648. package/src/utils/index.ts +0 -11
  649. package/src/utils/isMac.ts +0 -26
  650. package/src/utils/legacyIcon.tsx +0 -28
  651. package/src/utils/mergeRefs.ts +0 -23
  652. package/src/utils/noop.ts +0 -1
  653. package/src/utils/useSHA256.ts +0 -21
  654. package/src/vite-env.d.ts +0 -1
@@ -1,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
- };