@keboola/design 2.0.1 → 3.0.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 (673) hide show
  1. package/README.md +64 -5
  2. package/dist/icons.cjs +13 -733
  3. package/dist/icons.cjs.map +1 -1
  4. package/dist/icons.d.cts +7 -0
  5. package/dist/icons.d.ts +7 -0
  6. package/dist/icons.js +8 -2
  7. package/dist/icons.js.map +1 -1
  8. package/dist/index.cjs +13605 -12713
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +10462 -0
  11. package/dist/index.d.ts +10462 -0
  12. package/dist/index.js +13437 -12576
  13. package/dist/index.js.map +1 -1
  14. package/dist/markdown-editor.cjs +146 -82
  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 +146 -83
  19. package/dist/markdown-editor.js.map +1 -1
  20. package/dist/mermaid.cjs +85 -19
  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 +68 -21
  25. package/dist/mermaid.js.map +1 -1
  26. package/dist/styles.css +1 -1
  27. package/dist/testing.cjs +106 -0
  28. package/dist/testing.cjs.map +1 -0
  29. package/dist/testing.d.cts +19 -0
  30. package/dist/testing.d.ts +19 -0
  31. package/dist/testing.js +104 -0
  32. package/dist/testing.js.map +1 -0
  33. package/package.json +94 -15
  34. package/dist/icon-names.cjs +0 -18
  35. package/dist/icon-names.cjs.map +0 -1
  36. package/dist/icon-names.js +0 -16
  37. package/dist/icon-names.js.map +0 -1
  38. package/src/blocks/AIKit/AnswerSummary.stories.tsx +0 -38
  39. package/src/blocks/AIKit/AnswerSummary.tsx +0 -63
  40. package/src/blocks/AIKit/CollapsibleStepHeader.stories.tsx +0 -53
  41. package/src/blocks/AIKit/CollapsibleStepHeader.tsx +0 -64
  42. package/src/blocks/AIKit/InlineStepDetail.stories.tsx +0 -25
  43. package/src/blocks/AIKit/InlineStepDetail.tsx +0 -13
  44. package/src/blocks/AIKit/InlineStepLabel.stories.tsx +0 -37
  45. package/src/blocks/AIKit/InlineStepLabel.tsx +0 -36
  46. package/src/blocks/AIKit/MessageBubble.stories.tsx +0 -145
  47. package/src/blocks/AIKit/MessageBubble.tsx +0 -68
  48. package/src/blocks/AIKit/PlanApproval.stories.tsx +0 -121
  49. package/src/blocks/AIKit/PlanApproval.test.tsx +0 -241
  50. package/src/blocks/AIKit/PlanApproval.tsx +0 -363
  51. package/src/blocks/AIKit/PlanRewritingIndicator.test.tsx +0 -17
  52. package/src/blocks/AIKit/PlanRewritingIndicator.tsx +0 -20
  53. package/src/blocks/AIKit/PromptInput.stories.tsx +0 -106
  54. package/src/blocks/AIKit/PromptInput.test.tsx +0 -53
  55. package/src/blocks/AIKit/PromptInput.tsx +0 -218
  56. package/src/blocks/AIKit/PromptInputAction.tsx +0 -18
  57. package/src/blocks/AIKit/PromptInputSubmit.tsx +0 -59
  58. package/src/blocks/AIKit/Question.stories.tsx +0 -235
  59. package/src/blocks/AIKit/Question.tsx +0 -350
  60. package/src/blocks/AIKit/QuestionBlock.stories.tsx +0 -99
  61. package/src/blocks/AIKit/QuestionBlock.tsx +0 -83
  62. package/src/blocks/AIKit/SuggestedPrompt.stories.tsx +0 -82
  63. package/src/blocks/AIKit/SuggestedPrompt.tsx +0 -42
  64. package/src/blocks/AIKit/ThinkingIndicator.stories.tsx +0 -21
  65. package/src/blocks/AIKit/ThinkingIndicator.tsx +0 -14
  66. package/src/blocks/AIKit/index.ts +0 -12
  67. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.stories.tsx +0 -78
  68. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +0 -103
  69. package/src/blocks/AutoSaveTextarea/index.ts +0 -1
  70. package/src/blocks/ClipboardButton/ClipboardButton.stories.tsx +0 -28
  71. package/src/blocks/ClipboardButton/ClipboardButton.tsx +0 -43
  72. package/src/blocks/ClipboardButton/ClipboardInline.tsx +0 -40
  73. package/src/blocks/ClipboardButton/index.ts +0 -2
  74. package/src/blocks/ColorInput/ColorInput.stories.tsx +0 -109
  75. package/src/blocks/ColorInput/ColorInput.test.tsx +0 -163
  76. package/src/blocks/ColorInput/ColorInput.tsx +0 -171
  77. package/src/blocks/ColorInput/ColorPicker.tsx +0 -42
  78. package/src/blocks/ColorInput/index.ts +0 -1
  79. package/src/blocks/ColorInput/utils.test.ts +0 -189
  80. package/src/blocks/ColorInput/utils.ts +0 -74
  81. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.stories.tsx +0 -30
  82. package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.tsx +0 -20
  83. package/src/blocks/EmptyConfigurationActionCard/index.ts +0 -1
  84. package/src/blocks/EmptyState/EmptyState.stories.tsx +0 -93
  85. package/src/blocks/EmptyState/EmptyState.tsx +0 -146
  86. package/src/blocks/EmptyState/index.ts +0 -1
  87. package/src/blocks/ErrorState/ErrorState.stories.tsx +0 -125
  88. package/src/blocks/ErrorState/ErrorState.tsx +0 -162
  89. package/src/blocks/ErrorState/index.ts +0 -1
  90. package/src/blocks/Form/components/FormBody.tsx +0 -27
  91. package/src/blocks/Form/components/SubmitButton.tsx +0 -30
  92. package/src/blocks/Form/connectors/CheckboxField.tsx +0 -34
  93. package/src/blocks/Form/connectors/FieldShell.tsx +0 -46
  94. package/src/blocks/Form/connectors/NumberField.tsx +0 -36
  95. package/src/blocks/Form/connectors/PasswordField.tsx +0 -38
  96. package/src/blocks/Form/connectors/SelectField.tsx +0 -73
  97. package/src/blocks/Form/connectors/SwitchField.tsx +0 -34
  98. package/src/blocks/Form/connectors/TextAreaField.tsx +0 -36
  99. package/src/blocks/Form/connectors/TextField.tsx +0 -36
  100. package/src/blocks/Form/contexts.ts +0 -4
  101. package/src/blocks/Form/formHook.ts +0 -45
  102. package/src/blocks/Form/index.ts +0 -2
  103. package/src/blocks/Form/setServerFieldErrors.test.ts +0 -38
  104. package/src/blocks/Form/setServerFieldErrors.ts +0 -21
  105. package/src/blocks/InputOtp/InputOtp.stories.tsx +0 -214
  106. package/src/blocks/InputOtp/InputOtp.test.tsx +0 -162
  107. package/src/blocks/InputOtp/InputOtp.tsx +0 -62
  108. package/src/blocks/InputOtp/InputOtpGroup.tsx +0 -13
  109. package/src/blocks/InputOtp/InputOtpSeparator.tsx +0 -23
  110. package/src/blocks/InputOtp/InputOtpSlot.styles.ts +0 -52
  111. package/src/blocks/InputOtp/InputOtpSlot.tsx +0 -44
  112. package/src/blocks/InputOtp/context.ts +0 -23
  113. package/src/blocks/InputOtp/index.ts +0 -23
  114. package/src/blocks/MermaidDiagram/MermaidDiagram.stories.tsx +0 -87
  115. package/src/blocks/MermaidDiagram/MermaidDiagram.tsx +0 -266
  116. package/src/blocks/MermaidDiagram/index.ts +0 -1
  117. package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +0 -119
  118. package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +0 -41
  119. package/src/blocks/MultiActionButtonGroup/MultiActionButtonGroup.tsx +0 -16
  120. package/src/blocks/MultiActionButtonGroup/index.ts +0 -1
  121. package/src/blocks/MultiCombobox/MultiCombobox.stories.tsx +0 -324
  122. package/src/blocks/MultiCombobox/MultiCombobox.tsx +0 -257
  123. package/src/blocks/MultiCombobox/index.ts +0 -1
  124. package/src/blocks/NumberInput/NumberInput.stories.tsx +0 -112
  125. package/src/blocks/NumberInput/NumberInput.test.tsx +0 -148
  126. package/src/blocks/NumberInput/NumberInput.tsx +0 -89
  127. package/src/blocks/NumberInput/index.ts +0 -1
  128. package/src/blocks/PageHeader/AGENTS.md +0 -137
  129. package/src/blocks/PageHeader/PageHeader.stories.tsx +0 -371
  130. package/src/blocks/PageHeader/PageHeader.tsx +0 -22
  131. package/src/blocks/PageHeader/PageHeaderDetail.tsx +0 -84
  132. package/src/blocks/PageHeader/PageHeaderIndex.tsx +0 -75
  133. package/src/blocks/PageHeader/index.ts +0 -1
  134. package/src/blocks/PageHeader/styles.ts +0 -6
  135. package/src/blocks/PageLayout/AGENTS.md +0 -94
  136. package/src/blocks/PageLayout/PageLayout.stories.tsx +0 -146
  137. package/src/blocks/PageLayout/PageLayout.tsx +0 -139
  138. package/src/blocks/PageLayout/index.ts +0 -1
  139. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +0 -353
  140. package/src/blocks/PageToolbar/PageToolbar.tsx +0 -160
  141. package/src/blocks/PageToolbar/PageToolbarToken.tsx +0 -61
  142. package/src/blocks/PageToolbar/index.ts +0 -1
  143. package/src/blocks/PasswordInput/PasswordInput.stories.tsx +0 -114
  144. package/src/blocks/PasswordInput/PasswordInput.test.tsx +0 -219
  145. package/src/blocks/PasswordInput/PasswordInput.tsx +0 -180
  146. package/src/blocks/PasswordInput/index.ts +0 -1
  147. package/src/blocks/SearchInput/SearchInput.stories.tsx +0 -127
  148. package/src/blocks/SearchInput/SearchInput.test.tsx +0 -162
  149. package/src/blocks/SearchInput/SearchInput.tsx +0 -172
  150. package/src/blocks/SearchInput/index.ts +0 -1
  151. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.stories.tsx +0 -73
  152. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +0 -92
  153. package/src/blocks/SearchInputWithNavigation/index.ts +0 -1
  154. package/src/blocks/SplitButton/SplitButton.stories.tsx +0 -91
  155. package/src/blocks/SplitButton/SplitButton.tsx +0 -81
  156. package/src/blocks/SplitButton/index.ts +0 -1
  157. package/src/blocks/Tagger/TagItem.tsx +0 -32
  158. package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +0 -44
  159. package/src/blocks/Tagger/TagSelectPopover/TagSelectItem.tsx +0 -31
  160. package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +0 -67
  161. package/src/blocks/Tagger/TagSelectPopover/TagSelectPopover.tsx +0 -34
  162. package/src/blocks/Tagger/TagSelectPopover/TagSelectValue.tsx +0 -47
  163. package/src/blocks/Tagger/TagSelectPopover/index.ts +0 -1
  164. package/src/blocks/Tagger/Tagger.stories.tsx +0 -80
  165. package/src/blocks/Tagger/Tagger.tsx +0 -101
  166. package/src/blocks/Tagger/index.ts +0 -1
  167. package/src/blocks/Tagger/types.ts +0 -11
  168. package/src/blocks/Textarea/Textarea.stories.tsx +0 -47
  169. package/src/blocks/Textarea/Textarea.tsx +0 -50
  170. package/src/blocks/Textarea/index.ts +0 -1
  171. package/src/components/Alert/Alert.stories.tsx +0 -101
  172. package/src/components/Alert/Alert.tsx +0 -121
  173. package/src/components/Alert/AlertAction.tsx +0 -31
  174. package/src/components/Alert/AlertCollapsibleIcon.tsx +0 -25
  175. package/src/components/Alert/AlertDescription.tsx +0 -36
  176. package/src/components/Alert/AlertIcon.tsx +0 -40
  177. package/src/components/Alert/AlertRoot.tsx +0 -64
  178. package/src/components/Alert/AlertTitle.tsx +0 -25
  179. package/src/components/Alert/index.ts +0 -1
  180. package/src/components/Avatar.stories.tsx +0 -22
  181. package/src/components/Avatar.tsx +0 -88
  182. package/src/components/Badge/Badge.stories.tsx +0 -122
  183. package/src/components/Badge/Badge.tsx +0 -71
  184. package/src/components/Badge/BadgeAddon.tsx +0 -63
  185. package/src/components/Badge/BadgeButton.tsx +0 -40
  186. package/src/components/Badge/BadgeLabel.tsx +0 -37
  187. package/src/components/Badge/BadgeRoot.tsx +0 -21
  188. package/src/components/Badge/index.ts +0 -1
  189. package/src/components/Badge/styles.ts +0 -74
  190. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -135
  191. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -23
  192. package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +0 -43
  193. package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -9
  194. package/src/components/Breadcrumb/BreadcrumbLink.tsx +0 -48
  195. package/src/components/Breadcrumb/BreadcrumbList.tsx +0 -26
  196. package/src/components/Breadcrumb/BreadcrumbPage.tsx +0 -22
  197. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +0 -28
  198. package/src/components/Breadcrumb/index.ts +0 -1
  199. package/src/components/Button/Button.stories.tsx +0 -80
  200. package/src/components/Button/Button.tsx +0 -110
  201. package/src/components/Button/ButtonInline.stories.tsx +0 -54
  202. package/src/components/Button/ButtonInline.tsx +0 -77
  203. package/src/components/Button/index.ts +0 -3
  204. package/src/components/Button/styles.ts +0 -313
  205. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -140
  206. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -79
  207. package/src/components/ButtonGroup/index.ts +0 -1
  208. package/src/components/Calendar/Calendar.stories.tsx +0 -101
  209. package/src/components/Calendar/Calendar.tsx +0 -44
  210. package/src/components/Calendar/index.ts +0 -2
  211. package/src/components/Card/Card.stories.tsx +0 -60
  212. package/src/components/Card/Card.tsx +0 -42
  213. package/src/components/Card/CardContent.tsx +0 -5
  214. package/src/components/Card/CardHeader.tsx +0 -5
  215. package/src/components/Card/CardTitle.tsx +0 -13
  216. package/src/components/Card/index.ts +0 -1
  217. package/src/components/Card/styles.ts +0 -32
  218. package/src/components/Checkbox/Checkbox.stories.tsx +0 -210
  219. package/src/components/Checkbox/Checkbox.test.tsx +0 -140
  220. package/src/components/Checkbox/Checkbox.tsx +0 -83
  221. package/src/components/Checkbox/index.ts +0 -1
  222. package/src/components/Checkbox/styles.ts +0 -77
  223. package/src/components/Clipboard/Clipboard.stories.tsx +0 -44
  224. package/src/components/Clipboard/Clipboard.tsx +0 -89
  225. package/src/components/Clipboard/index.ts +0 -1
  226. package/src/components/CodeEditor/ButtonToolbar.tsx +0 -14
  227. package/src/components/CodeEditor/CodeEditor.tsx +0 -155
  228. package/src/components/CodeEditor/SqlEditor.stories.tsx +0 -76
  229. package/src/components/CodeEditor/SqlEditor.tsx +0 -206
  230. package/src/components/CodeEditor/ToggleComponentHelp.tsx +0 -7
  231. package/src/components/CodeEditor/activeQueryHighlight.test.ts +0 -178
  232. package/src/components/CodeEditor/activeQueryHighlight.ts +0 -245
  233. package/src/components/CodeEditor/helpers.ts +0 -100
  234. package/src/components/CodeEditor/highlighting.ts +0 -184
  235. package/src/components/CodeEditor/index.ts +0 -3
  236. package/src/components/CodeEditor/search.ts +0 -186
  237. package/src/components/Collapse.stories.tsx +0 -56
  238. package/src/components/Collapse.tsx +0 -61
  239. package/src/components/Collapsible/Collapsible.stories.tsx +0 -55
  240. package/src/components/Collapsible/Collapsible.tsx +0 -11
  241. package/src/components/Collapsible/CollapsibleContent.tsx +0 -25
  242. package/src/components/Collapsible/index.ts +0 -1
  243. package/src/components/CollapsiblePanel.stories.tsx +0 -25
  244. package/src/components/CollapsiblePanel.tsx +0 -127
  245. package/src/components/Combobox/Combobox.stories.tsx +0 -426
  246. package/src/components/Combobox/Combobox.test.tsx +0 -165
  247. package/src/components/Combobox/Combobox.tsx +0 -345
  248. package/src/components/Combobox/ComboboxChips.tsx +0 -68
  249. package/src/components/Combobox/ComboboxContent.tsx +0 -95
  250. package/src/components/Combobox/ComboboxEmpty.tsx +0 -30
  251. package/src/components/Combobox/ComboboxInput.tsx +0 -10
  252. package/src/components/Combobox/ComboboxInputGroup.tsx +0 -38
  253. package/src/components/Combobox/ComboboxItem.tsx +0 -70
  254. package/src/components/Combobox/ComboboxItemIndicator.tsx +0 -78
  255. package/src/components/Combobox/ComboboxList.tsx +0 -32
  256. package/src/components/Combobox/ComboboxRoot.tsx +0 -5
  257. package/src/components/Combobox/ComboboxSeparator.tsx +0 -20
  258. package/src/components/Combobox/Group/ComboboxCollection.tsx +0 -7
  259. package/src/components/Combobox/Group/ComboboxGroup.tsx +0 -23
  260. package/src/components/Combobox/Group/ComboboxGroupLabel.tsx +0 -38
  261. package/src/components/Combobox/Group/index.ts +0 -3
  262. package/src/components/Combobox/index.ts +0 -1
  263. package/src/components/Combobox/types.ts +0 -22
  264. package/src/components/Combobox/utils.test.ts +0 -95
  265. package/src/components/Combobox/utils.ts +0 -103
  266. package/src/components/Command/Command.stories.tsx +0 -367
  267. package/src/components/Command/Command.tsx +0 -37
  268. package/src/components/Command/CommandContent.tsx +0 -19
  269. package/src/components/Command/CommandEmpty.tsx +0 -6
  270. package/src/components/Command/CommandGroup.tsx +0 -26
  271. package/src/components/Command/CommandInput.tsx +0 -27
  272. package/src/components/Command/CommandItem/CheckIndicator.tsx +0 -86
  273. package/src/components/Command/CommandItem/CommandItem.tsx +0 -94
  274. package/src/components/Command/CommandItem/index.ts +0 -1
  275. package/src/components/Command/CommandList.tsx +0 -32
  276. package/src/components/Command/CommandSeparator.tsx +0 -13
  277. package/src/components/Command/index.ts +0 -6
  278. package/src/components/DatePicker/DatePicker.tsx +0 -37
  279. package/src/components/DatePicker/index.ts +0 -1
  280. package/src/components/DiffView/DiffView.stories.tsx +0 -80
  281. package/src/components/DiffView/DiffView.tsx +0 -131
  282. package/src/components/DiffView/DiffViewMark.tsx +0 -21
  283. package/src/components/DiffView/DiffViewTd.tsx +0 -84
  284. package/src/components/DiffView/DiffViewTh.tsx +0 -23
  285. package/src/components/DiffView/index.ts +0 -11
  286. package/src/components/DiffView/util.test.ts +0 -231
  287. package/src/components/DiffView/util.ts +0 -311
  288. package/src/components/DotsLoader.tsx +0 -22
  289. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -310
  290. package/src/components/DropdownMenu/DropdownMenu.tsx +0 -61
  291. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +0 -55
  292. package/src/components/DropdownMenu/DropdownMenuContent.tsx +0 -52
  293. package/src/components/DropdownMenu/DropdownMenuContext.tsx +0 -13
  294. package/src/components/DropdownMenu/DropdownMenuItem.tsx +0 -80
  295. package/src/components/DropdownMenu/DropdownMenuItemDescription.tsx +0 -42
  296. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +0 -104
  297. package/src/components/DropdownMenu/DropdownMenuLabel.tsx +0 -21
  298. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.tsx +0 -31
  299. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +0 -67
  300. package/src/components/DropdownMenu/DropdownMenuRadioGroup/index.ts +0 -2
  301. package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +0 -35
  302. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSub.tsx +0 -3
  303. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubContent.tsx +0 -21
  304. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +0 -17
  305. package/src/components/DropdownMenu/DropdownMenuSub/index.ts +0 -3
  306. package/src/components/DropdownMenu/DropdownMenuTrigger.tsx +0 -19
  307. package/src/components/DropdownMenu/ItemIcon.tsx +0 -30
  308. package/src/components/DropdownMenu/index.ts +0 -1
  309. package/src/components/DropdownMenu/styles.ts +0 -82
  310. package/src/components/EmptySearchContent.stories.tsx +0 -12
  311. package/src/components/EmptySearchContent.tsx +0 -13
  312. package/src/components/FieldBox/FieldBox.stories.tsx +0 -138
  313. package/src/components/FieldBox/FieldBox.tsx +0 -43
  314. package/src/components/FieldBox/FieldBoxDescription.tsx +0 -18
  315. package/src/components/FieldBox/FieldBoxTitle.tsx +0 -20
  316. package/src/components/FieldBox/index.ts +0 -1
  317. package/src/components/FieldBox/styles.ts +0 -37
  318. package/src/components/FormGroup/FormGroup.stories.tsx +0 -120
  319. package/src/components/FormGroup/FormGroup.tsx +0 -48
  320. package/src/components/FormGroup/FormGroupColorInput.tsx +0 -15
  321. package/src/components/FormGroup/FormGroupHelp.tsx +0 -17
  322. package/src/components/FormGroup/FormGroupNumberInput.tsx +0 -15
  323. package/src/components/FormGroup/FormGroupTextInput.tsx +0 -15
  324. package/src/components/FormGroup/FormGroupTextarea.tsx +0 -12
  325. package/src/components/FormGroup/context.ts +0 -11
  326. package/src/components/FormGroup/index.ts +0 -2
  327. package/src/components/FormGroup/types.ts +0 -5
  328. package/src/components/FullScreenModal/FullScreenModal.tsx +0 -8
  329. package/src/components/FullScreenModal/FullScreenModalBody.tsx +0 -16
  330. package/src/components/FullScreenModal/FullScreenModalHeader.tsx +0 -92
  331. package/src/components/FullScreenModal/FullScreenModalRoot.tsx +0 -79
  332. package/src/components/FullScreenModal/index.ts +0 -3
  333. package/src/components/HelpBlock/HelpBlock.stories.tsx +0 -28
  334. package/src/components/HelpBlock/HelpBlock.tsx +0 -31
  335. package/src/components/HelpBlock/index.ts +0 -1
  336. package/src/components/HoverCard/HoverCard.stories.tsx +0 -77
  337. package/src/components/HoverCard/HoverCard.tsx +0 -13
  338. package/src/components/HoverCard/HoverCardContent.tsx +0 -68
  339. package/src/components/HoverCard/index.ts +0 -1
  340. package/src/components/Icon/Icon.stories.tsx +0 -26
  341. package/src/components/Icon/Icon.tsx +0 -10
  342. package/src/components/Icon/Icons.mdx +0 -28
  343. package/src/components/Icon/constants.ts +0 -1
  344. package/src/components/Icon/index.ts +0 -27
  345. package/src/components/Input/DateInput/DateInput.stories.tsx +0 -58
  346. package/src/components/Input/DateInput/DateInput.tsx +0 -143
  347. package/src/components/Input/DateInput/helpers.test.ts +0 -102
  348. package/src/components/Input/DateInput/helpers.ts +0 -59
  349. package/src/components/Input/DateInput/index.ts +0 -1
  350. package/src/components/Input/DateRangeInput/DateRangeInput.stories.tsx +0 -66
  351. package/src/components/Input/DateRangeInput/DateRangeInput.tsx +0 -139
  352. package/src/components/Input/DateRangeInput/helpers.test.ts +0 -146
  353. package/src/components/Input/DateRangeInput/helpers.ts +0 -36
  354. package/src/components/Input/DateRangeInput/index.ts +0 -1
  355. package/src/components/Input/Input.stories.tsx +0 -93
  356. package/src/components/Input/Input.test.tsx +0 -112
  357. package/src/components/Input/Input.tsx +0 -163
  358. package/src/components/Input/TextInput/TextInput.stories.tsx +0 -68
  359. package/src/components/Input/TextInput/TextInput.test.tsx +0 -52
  360. package/src/components/Input/TextInput/TextInput.tsx +0 -73
  361. package/src/components/Input/TextInput/index.ts +0 -1
  362. package/src/components/Input/TimeInput/TimeInput.stories.tsx +0 -89
  363. package/src/components/Input/TimeInput/TimeInput.tsx +0 -106
  364. package/src/components/Input/TimeInput/index.ts +0 -1
  365. package/src/components/Input/index.ts +0 -4
  366. package/src/components/Input/utils.ts +0 -11
  367. package/src/components/InputGroup/InputGroup.stories.tsx +0 -215
  368. package/src/components/InputGroup/InputGroup.tsx +0 -228
  369. package/src/components/InputGroup/InputGroupAddon.tsx +0 -57
  370. package/src/components/InputGroup/InputGroupButton.tsx +0 -25
  371. package/src/components/InputGroup/InputGroupInput.tsx +0 -34
  372. package/src/components/InputGroup/InputGroupText.tsx +0 -21
  373. package/src/components/InputGroup/InputGroupTextArea.tsx +0 -78
  374. package/src/components/InputGroup/index.ts +0 -1
  375. package/src/components/Kbd/Kbd.stories.tsx +0 -82
  376. package/src/components/Kbd/Kbd.tsx +0 -17
  377. package/src/components/Kbd/KbdGroup.tsx +0 -35
  378. package/src/components/Kbd/KbdSeparator.tsx +0 -9
  379. package/src/components/Kbd/index.ts +0 -3
  380. package/src/components/Kbd/keyboardKeys.ts +0 -40
  381. package/src/components/Kbd/styles.ts +0 -39
  382. package/src/components/Label/Label.stories.tsx +0 -53
  383. package/src/components/Label/Label.tsx +0 -31
  384. package/src/components/Label/index.ts +0 -1
  385. package/src/components/Link.stories.tsx +0 -19
  386. package/src/components/Link.tsx +0 -37
  387. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +0 -182
  388. package/src/components/MarkdownEditor/MarkdownEditor.test.ts +0 -171
  389. package/src/components/MarkdownEditor/MarkdownEditor.tsx +0 -245
  390. package/src/components/MarkdownEditor/context.ts +0 -10
  391. package/src/components/MarkdownEditor/index.ts +0 -1
  392. package/src/components/MarkdownEditor/nodes/ImageNode.tsx +0 -115
  393. package/src/components/MarkdownEditor/nodes/ImageNodeComponent.tsx +0 -18
  394. package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +0 -72
  395. package/src/components/MarkdownEditor/nodes/MermaidNodeComponent.tsx +0 -35
  396. package/src/components/MarkdownEditor/plugins/ImagePastePlugin.tsx +0 -149
  397. package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +0 -81
  398. package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +0 -65
  399. package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +0 -284
  400. package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +0 -99
  401. package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +0 -142
  402. package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +0 -160
  403. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarButton.tsx +0 -36
  404. package/src/components/MarkdownEditor/plugins/toolbar/ToolbarDivider.tsx +0 -1
  405. package/src/components/MarkdownEditor/theme.ts +0 -39
  406. package/src/components/MarkdownEditor/transformers.ts +0 -189
  407. package/src/components/MarkedText/MarkedText.stories.tsx +0 -46
  408. package/src/components/MarkedText/MarkedText.tsx +0 -36
  409. package/src/components/MarkedText/index.ts +0 -1
  410. package/src/components/MarkedText/utils.test.ts +0 -193
  411. package/src/components/MarkedText/utils.ts +0 -37
  412. package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +0 -25
  413. package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +0 -77
  414. package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +0 -38
  415. package/src/components/MergeEditor/MergeEditor.stories.tsx +0 -226
  416. package/src/components/MergeEditor/MergeEditor.tsx +0 -125
  417. package/src/components/MergeEditor/MergePane.tsx +0 -113
  418. package/src/components/MergeEditor/PaneHeader.tsx +0 -11
  419. package/src/components/MergeEditor/constants.ts +0 -48
  420. package/src/components/MergeEditor/decorations.ts +0 -126
  421. package/src/components/MergeEditor/helpers.test.ts +0 -172
  422. package/src/components/MergeEditor/helpers.ts +0 -118
  423. package/src/components/MergeEditor/index.ts +0 -5
  424. package/src/components/MergeEditor/useMergeDiff.ts +0 -573
  425. package/src/components/MergeEditor/useScrollSync.ts +0 -79
  426. package/src/components/Modal/Modal.stories.tsx +0 -680
  427. package/src/components/Modal/Modal.tsx +0 -49
  428. package/src/components/Modal/ModalBody.tsx +0 -33
  429. package/src/components/Modal/ModalCloseIcon.tsx +0 -31
  430. package/src/components/Modal/ModalContent.tsx +0 -95
  431. package/src/components/Modal/ModalDescription.tsx +0 -20
  432. package/src/components/Modal/ModalFooter.tsx +0 -20
  433. package/src/components/Modal/ModalHeader.tsx +0 -61
  434. package/src/components/Modal/ModalIcon.tsx +0 -109
  435. package/src/components/Modal/ModalOverlay.tsx +0 -42
  436. package/src/components/Modal/ModalTitle.tsx +0 -12
  437. package/src/components/Modal/index.ts +0 -1
  438. package/src/components/Navbar/Navbar.stories.tsx +0 -191
  439. package/src/components/Navbar/Navbar.tsx +0 -80
  440. package/src/components/Navbar/NavbarContent.tsx +0 -20
  441. package/src/components/Navbar/NavbarFooter.tsx +0 -11
  442. package/src/components/Navbar/NavbarHeader.tsx +0 -11
  443. package/src/components/Navbar/NavbarMenu.tsx +0 -30
  444. package/src/components/Navbar/NavbarMenuAvatar.tsx +0 -67
  445. package/src/components/Navbar/NavbarMenuButton.tsx +0 -135
  446. package/src/components/Navbar/NavbarMenuItem.tsx +0 -9
  447. package/src/components/Navbar/NavbarMenuItemAdornment.tsx +0 -65
  448. package/src/components/Navbar/index.ts +0 -1
  449. package/src/components/Pagination/Pagination.stories.tsx +0 -131
  450. package/src/components/Pagination/Pagination.tsx +0 -34
  451. package/src/components/Pagination/PaginationButton.tsx +0 -36
  452. package/src/components/Pagination/PaginationContent.tsx +0 -12
  453. package/src/components/Pagination/PaginationEllipsis.tsx +0 -26
  454. package/src/components/Pagination/PaginationItem.tsx +0 -9
  455. package/src/components/Pagination/PaginationNext.tsx +0 -20
  456. package/src/components/Pagination/PaginationPrevious.tsx +0 -14
  457. package/src/components/Pagination/index.ts +0 -1
  458. package/src/components/PanelWithDetails.stories.tsx +0 -28
  459. package/src/components/PanelWithDetails.tsx +0 -65
  460. package/src/components/Popconfirm/Popconfirm.stories.tsx +0 -373
  461. package/src/components/Popconfirm/Popconfirm.tsx +0 -82
  462. package/src/components/Popconfirm/PopconfirmBody.tsx +0 -5
  463. package/src/components/Popconfirm/PopconfirmCancel.tsx +0 -45
  464. package/src/components/Popconfirm/PopconfirmConfirm.tsx +0 -57
  465. package/src/components/Popconfirm/PopconfirmContent.tsx +0 -33
  466. package/src/components/Popconfirm/PopconfirmFooter.tsx +0 -9
  467. package/src/components/Popconfirm/PopconfirmTrigger.tsx +0 -22
  468. package/src/components/Popconfirm/context.ts +0 -19
  469. package/src/components/Popconfirm/index.ts +0 -1
  470. package/src/components/Popover/Popover.stories.tsx +0 -85
  471. package/src/components/Popover/Popover.tsx +0 -15
  472. package/src/components/Popover/PopoverContent.tsx +0 -103
  473. package/src/components/Popover/index.ts +0 -1
  474. package/src/components/Progress/Progress.stories.tsx +0 -67
  475. package/src/components/Progress/Progress.tsx +0 -45
  476. package/src/components/Progress/index.ts +0 -1
  477. package/src/components/RadioGroup/Radio.tsx +0 -61
  478. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -300
  479. package/src/components/RadioGroup/RadioGroup.tsx +0 -64
  480. package/src/components/RadioGroup/RadioGroupItem.tsx +0 -60
  481. package/src/components/RadioGroup/RadioGroupItemButton.tsx +0 -79
  482. package/src/components/RadioGroup/RadioGroupSeparator.tsx +0 -12
  483. package/src/components/RadioGroup/context.ts +0 -13
  484. package/src/components/RadioGroup/index.ts +0 -1
  485. package/src/components/Resizable/Resizable.stories.tsx +0 -50
  486. package/src/components/Resizable/ResizableHandle.tsx +0 -50
  487. package/src/components/Resizable/ResizablePanel.tsx +0 -12
  488. package/src/components/Resizable/ResizablePanelGroup.tsx +0 -19
  489. package/src/components/Resizable/index.ts +0 -3
  490. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -43
  491. package/src/components/ScrollArea/ScrollArea.tsx +0 -50
  492. package/src/components/ScrollArea/ScrollBar.tsx +0 -32
  493. package/src/components/ScrollArea/index.ts +0 -2
  494. package/src/components/Search/ClearButton.tsx +0 -42
  495. package/src/components/Search/Search.stories.tsx +0 -77
  496. package/src/components/Search/Search.test.tsx +0 -224
  497. package/src/components/Search/Search.tsx +0 -139
  498. package/src/components/Search/SearchForm.tsx +0 -37
  499. package/src/components/Search/index.ts +0 -2
  500. package/src/components/Search/styles.ts +0 -88
  501. package/src/components/Search/utils.ts +0 -11
  502. package/src/components/Select/Select.stories.tsx +0 -109
  503. package/src/components/Select/Select.tsx +0 -141
  504. package/src/components/Select/SelectContent.tsx +0 -110
  505. package/src/components/Select/SelectGroup.tsx +0 -10
  506. package/src/components/Select/SelectItem.tsx +0 -72
  507. package/src/components/Select/SelectLabel.tsx +0 -32
  508. package/src/components/Select/SelectRoot.tsx +0 -6
  509. package/src/components/Select/SelectSeparator.tsx +0 -13
  510. package/src/components/Select/SelectTrigger.tsx +0 -161
  511. package/src/components/Select/index.ts +0 -1
  512. package/src/components/Separator/Separator.stories.tsx +0 -60
  513. package/src/components/Separator/Separator.test.tsx +0 -39
  514. package/src/components/Separator/Separator.tsx +0 -115
  515. package/src/components/Separator/index.ts +0 -1
  516. package/src/components/Sheet/Sheet.stories.tsx +0 -63
  517. package/src/components/Sheet/Sheet.tsx +0 -21
  518. package/src/components/Sheet/SheetBody.tsx +0 -12
  519. package/src/components/Sheet/SheetContent.tsx +0 -131
  520. package/src/components/Sheet/SheetFooter.tsx +0 -9
  521. package/src/components/Sheet/SheetHeader.tsx +0 -39
  522. package/src/components/Sheet/SheetOverlay.tsx +0 -11
  523. package/src/components/Sheet/SheetTitle.tsx +0 -12
  524. package/src/components/Sheet/index.ts +0 -1
  525. package/src/components/Sidebar/Sidebar.stories.tsx +0 -849
  526. package/src/components/Sidebar/Sidebar.tsx +0 -225
  527. package/src/components/Sidebar/SidebarContent.tsx +0 -61
  528. package/src/components/Sidebar/SidebarFillTrigger.tsx +0 -25
  529. package/src/components/Sidebar/SidebarFooter.tsx +0 -13
  530. package/src/components/Sidebar/SidebarGroup/SidebarGroup.tsx +0 -23
  531. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +0 -53
  532. package/src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx +0 -20
  533. package/src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx +0 -76
  534. package/src/components/Sidebar/SidebarGroup/index.ts +0 -4
  535. package/src/components/Sidebar/SidebarHeader.tsx +0 -20
  536. package/src/components/Sidebar/SidebarInstanceContext.ts +0 -18
  537. package/src/components/Sidebar/SidebarMenu/SidebarMenu.tsx +0 -28
  538. package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +0 -69
  539. package/src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx +0 -56
  540. package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +0 -110
  541. package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +0 -108
  542. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +0 -30
  543. package/src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx +0 -9
  544. package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +0 -139
  545. package/src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx +0 -106
  546. package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +0 -88
  547. package/src/components/Sidebar/SidebarMenu/index.ts +0 -10
  548. package/src/components/Sidebar/SidebarProvider/SidebarProvider.tsx +0 -171
  549. package/src/components/Sidebar/SidebarProvider/context.ts +0 -35
  550. package/src/components/Sidebar/SidebarProvider/index.ts +0 -2
  551. package/src/components/Sidebar/SidebarProvider/useHoverTracking.test.ts +0 -199
  552. package/src/components/Sidebar/SidebarProvider/useHoverTracking.ts +0 -72
  553. package/src/components/Sidebar/SidebarProvider/useSidebarState.ts +0 -50
  554. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.test.ts +0 -179
  555. package/src/components/Sidebar/SidebarProvider/useTransitionPresence.ts +0 -53
  556. package/src/components/Sidebar/SidebarResizeHandle.tsx +0 -28
  557. package/src/components/Sidebar/SidebarSeparator.tsx +0 -15
  558. package/src/components/Sidebar/SidebarTrigger.tsx +0 -40
  559. package/src/components/Sidebar/index.ts +0 -3
  560. package/src/components/Sidebar/types.ts +0 -6
  561. package/src/components/Sidebar/useResizeSidebar.ts +0 -112
  562. package/src/components/Sidebar/utils.test.ts +0 -178
  563. package/src/components/Sidebar/utils.ts +0 -70
  564. package/src/components/Skeleton/Skeleton.stories.tsx +0 -106
  565. package/src/components/Skeleton/Skeleton.tsx +0 -77
  566. package/src/components/Skeleton/SkeletonList.stories.tsx +0 -11
  567. package/src/components/Skeleton/SkeletonList.tsx +0 -65
  568. package/src/components/Slider/Slider.stories.tsx +0 -99
  569. package/src/components/Slider/Slider.tsx +0 -85
  570. package/src/components/Slider/SliderThumb.tsx +0 -57
  571. package/src/components/Slider/SliderTrack.tsx +0 -49
  572. package/src/components/Slider/index.ts +0 -1
  573. package/src/components/Slider/useInteracting.test.ts +0 -159
  574. package/src/components/Slider/useInteracting.ts +0 -64
  575. package/src/components/Switch/Switch.stories.tsx +0 -177
  576. package/src/components/Switch/Switch.tsx +0 -58
  577. package/src/components/Switch/index.ts +0 -1
  578. package/src/components/Switch/styles.ts +0 -173
  579. package/src/components/Table/Table.stories.tsx +0 -328
  580. package/src/components/Table/Table.tsx +0 -68
  581. package/src/components/Table/TableBody.tsx +0 -22
  582. package/src/components/Table/TableCell.tsx +0 -7
  583. package/src/components/Table/TableFooter.tsx +0 -15
  584. package/src/components/Table/TableHead.tsx +0 -15
  585. package/src/components/Table/TableHeader.tsx +0 -20
  586. package/src/components/Table/TableRow.tsx +0 -11
  587. package/src/components/Table/index.ts +0 -1
  588. package/src/components/Tabs.stories.tsx +0 -123
  589. package/src/components/Tabs.tsx +0 -134
  590. package/src/components/ThemeProvider/AIGradientSvg.tsx +0 -18
  591. package/src/components/ThemeProvider/ThemeProvider.tsx +0 -25
  592. package/src/components/ThemeProvider/index.ts +0 -1
  593. package/src/components/TimePicker/TimePicker.tsx +0 -95
  594. package/src/components/TimePicker/TimePickerButton.tsx +0 -39
  595. package/src/components/TimePicker/index.ts +0 -1
  596. package/src/components/TimePicker/utils.ts +0 -31
  597. package/src/components/Timeline/Timeline.stories.tsx +0 -246
  598. package/src/components/Timeline/Timeline.tsx +0 -35
  599. package/src/components/Timeline/TimelineConnector.tsx +0 -158
  600. package/src/components/Timeline/TimelineContent.tsx +0 -18
  601. package/src/components/Timeline/TimelineItem.tsx +0 -14
  602. package/src/components/Timeline/index.ts +0 -1
  603. package/src/components/Timeline/useLastLineHeight.ts +0 -36
  604. package/src/components/Toast/Toast.stories.tsx +0 -178
  605. package/src/components/Toast/ToastAction.tsx +0 -40
  606. package/src/components/Toast/ToastDescription.tsx +0 -28
  607. package/src/components/Toast/ToastDismiss.tsx +0 -36
  608. package/src/components/Toast/ToastDuration.tsx +0 -43
  609. package/src/components/Toast/ToastRoot.tsx +0 -135
  610. package/src/components/Toast/ToastTitle.tsx +0 -33
  611. package/src/components/Toast/Toaster.tsx +0 -25
  612. package/src/components/Toast/index.ts +0 -3
  613. package/src/components/Toast/toast.tsx +0 -94
  614. package/src/components/Toast/useNotification.tsx +0 -33
  615. package/src/components/Toggle/Toggle.stories.tsx +0 -67
  616. package/src/components/Toggle/Toggle.tsx +0 -202
  617. package/src/components/Toggle/index.ts +0 -1
  618. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -60
  619. package/src/components/ToggleGroup/ToggleGroup.tsx +0 -99
  620. package/src/components/ToggleGroup/index.ts +0 -1
  621. package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
  622. package/src/components/Tooltip/Tooltip.tsx +0 -110
  623. package/src/components/Tooltip/TooltipContent.tsx +0 -90
  624. package/src/components/Tooltip/TooltipRoot.tsx +0 -12
  625. package/src/components/Tooltip/TooltipTrigger.tsx +0 -42
  626. package/src/components/Tooltip/index.ts +0 -1
  627. package/src/components/Truncated.stories.tsx +0 -72
  628. package/src/components/Truncated.tsx +0 -78
  629. package/src/components/ZoomableSvg/ZoomableSvg.stories.tsx +0 -53
  630. package/src/components/ZoomableSvg/ZoomableSvg.tsx +0 -200
  631. package/src/components/ZoomableSvg/index.ts +0 -1
  632. package/src/constants/keyCodes.ts +0 -5
  633. package/src/docs/Colors.mdx +0 -19
  634. package/src/docs/Spacing.mdx +0 -35
  635. package/src/docs/Typography.mdx +0 -63
  636. package/src/docs/components/Typeset.tsx +0 -35
  637. package/src/hooks/useAutosizeInput.stories.tsx +0 -142
  638. package/src/hooks/useAutosizeInput.test.tsx +0 -77
  639. package/src/hooks/useAutosizeInput.tsx +0 -107
  640. package/src/hooks/useElement.ts +0 -16
  641. package/src/hooks/useScrollbarPosition.ts +0 -68
  642. package/src/icon-names.ts +0 -20
  643. package/src/icons/Keboola.tsx +0 -28
  644. package/src/icons/icons.stories.tsx +0 -174
  645. package/src/icons/index.ts +0 -188
  646. package/src/index.ts +0 -90
  647. package/src/patterns/AlertWithAction.stories.tsx +0 -30
  648. package/src/patterns/CardWithEmptyState.stories.tsx +0 -66
  649. package/src/patterns/ConfirmDialog.stories.tsx +0 -72
  650. package/src/patterns/CreatableMultiCombobox.stories.tsx +0 -33
  651. package/src/patterns/DataCardWithSkeleton.stories.tsx +0 -48
  652. package/src/patterns/DisabledButtonTooltip.stories.tsx +0 -30
  653. package/src/patterns/FilterToolbar.stories.tsx +0 -275
  654. package/src/patterns/InfoTooltip.stories.tsx +0 -56
  655. package/src/patterns/ListDetail.stories.tsx +0 -65
  656. package/src/patterns/ModalForm.stories.tsx +0 -59
  657. package/src/patterns/PageHeaderTabs.stories.tsx +0 -48
  658. package/src/utils/classNames.test.ts +0 -16
  659. package/src/utils/classNames.ts +0 -27
  660. package/src/utils/copyToClipboard.ts +0 -3
  661. package/src/utils/createChangeInputEvent.ts +0 -28
  662. package/src/utils/createPrefixedString.ts +0 -2
  663. package/src/utils/debounce.test.ts +0 -63
  664. package/src/utils/debounce.ts +0 -17
  665. package/src/utils/decorators.tsx +0 -16
  666. package/src/utils/escapeStringRegexp.ts +0 -4
  667. package/src/utils/index.ts +0 -11
  668. package/src/utils/isMac.ts +0 -26
  669. package/src/utils/legacyIcon.tsx +0 -28
  670. package/src/utils/mergeRefs.ts +0 -23
  671. package/src/utils/noop.ts +0 -1
  672. package/src/utils/useSHA256.ts +0 -21
  673. package/src/vite-env.d.ts +0 -1
@@ -1,137 +0,0 @@
1
- # PageHeader
2
-
3
- Structured page-header block that encodes the
4
- [evviku page-header patterns](https://github.com/evviku/design-system-docs/tree/main/docs/patterns/page-header)
5
- 1:1 at the type level. Two discriminated variants:
6
-
7
- - `PageHeader.Index` — top-level list/collection pages.
8
- - `PageHeader.Detail` — single-entity pages.
9
-
10
- The variant choice enforces the pattern constraints (e.g. you cannot pass an
11
- overflow menu to `Index`, or `metadata` to `Detail`). Reach for
12
- `PageLayout.Header` / `PageLayout.Breadcrumbs` only for layouts that don't fit
13
- either variant.
14
-
15
- ## When to use which
16
-
17
- | Use `PageHeader.Index` when | Use `PageHeader.Detail` when |
18
- | ------------------------------------------------------ | ---------------------------------------------------------- |
19
- | The page is a top-level list (Flows, Storage, Jobs, …) | The page shows one entity (a bucket, flow, data app, …) |
20
- | There is no parent in the same section | The entity has a parent hierarchy worth breadcrumbing |
21
- | The primary action is "create / add a new X" | The primary action is "edit / deploy / run on this entity" |
22
-
23
- ## API at a glance
24
-
25
- ```tsx
26
- // Index — no breadcrumbs, metadata > description, optional headerNav.
27
- <PageHeader.Index
28
- title="Storage"
29
- metadata="3 buckets and 39 tables" // or `description` (mutually exclusive)
30
- documentation={<Button argo variant="invisible" icon="book-blank" />}
31
- action={<Button argo>New bucket</Button>}
32
- headerNav={<Tabs ... />}
33
- />
34
-
35
- // Detail — mandatory breadcrumbs, overflow row, ≤2 visible actions.
36
- <PageHeader.Detail
37
- breadcrumbs={<Breadcrumb>...</Breadcrumb>}
38
- overflowActions={<DropdownMenu>...</DropdownMenu>}
39
- title="Marketing bucket"
40
- badges={<><Badge>Active</Badge></>}
41
- description="..."
42
- secondaryAction={<Button argo variant="secondary">Open editor</Button>}
43
- primaryAction={<Button argo>Deploy</Button>}
44
- headerNav={<Tabs ... />}
45
- />
46
- ```
47
-
48
- ## Rules from the patterns
49
-
50
- - **Index**: no breadcrumbs, no overflow menu, no search/filter/sort. Search
51
- belongs in `PageToolbar`.
52
- - **Detail**: breadcrumbs are required (use real entity names; last item is
53
- not a link). Overflow menu lives on the breadcrumbs row, never in the title
54
- row.
55
- - **Max 2 visible actions on Detail** (`primaryAction` + optional
56
- `secondaryAction`). Everything else goes in `overflowActions`.
57
- - **`metadata` wins over `description`** on Index. Pass `metadata` for count
58
- / system summaries; reserve `description` for prose.
59
- - **`headerNav` only when there is >1 dataset / section** worth navigating to.
60
-
61
- ## Component rules
62
-
63
- - **Always opt into the `argo` variant** on the Buttons you pass into the
64
- slots (`Button argo …`).
65
- - **Compose** existing `Breadcrumb`, `Badge`, `DropdownMenu`, `Tabs` from
66
- `@keboola/design` — slots take any `ReactNode`, but use the design-system
67
- pieces.
68
- - Title and description can be any `ReactNode`. For Linear-style inline
69
- editing, compose `MarkdownEditor` (from `@keboola/design`) directly into
70
- the slots — `PageHeader` does not depend on Lexical itself; only callers
71
- that opt into editing pull it in.
72
-
73
- ## Inline editing
74
-
75
- The `title` and `description` slots accept any `ReactNode`, so they can hold
76
- an editable `MarkdownEditor` in place of the static text. Follows the
77
- [inline-editable-text pattern](https://github.com/evviku/design-system-docs/tree/main/docs/patterns/inline-editable-text):
78
-
79
- - **No edit icon, no save / cancel buttons.**
80
- - **Blur, Cmd+Enter, or Enter (title only) commits** via `onSave`.
81
- - **Esc reverts** via `onCancel` — the caller resets state to the last
82
- committed value inside this handler.
83
- - **Description clamps to ~2 lines with a bottom fade** in display state
84
- (use the `clampDisplay` prop); focus expands to full height. Fade
85
- replaces ellipsis per the spec.
86
-
87
- Use `compact` + `saveOnBlur` for both slots, plus `singleLine` for the
88
- title and `clampDisplay` for the description. Maintain a two-state
89
- (`committed` / `draft`) pattern so `onCancel` can revert without losing
90
- the committed value:
91
-
92
- ```tsx
93
- import { MarkdownEditor } from '@keboola/design';
94
-
95
- const [committedTitle, setCommittedTitle] = useState(initial.title);
96
- const [draftTitle, setDraftTitle] = useState(committedTitle);
97
- // (same for description)
98
-
99
- <PageHeader.Detail
100
- breadcrumbs={...}
101
- title={
102
- <MarkdownEditor
103
- compact singleLine saveOnBlur
104
- value={draftTitle}
105
- onChange={setDraftTitle}
106
- onSave={() => { setCommittedTitle(draftTitle); save({ title: draftTitle }); }}
107
- onCancel={() => setDraftTitle(committedTitle)}
108
- placeholder="Untitled"
109
- className="tw-m-0 tw-text-3xl tw-font-semibold tw-leading-9 tw-text-foreground tw-break-words"
110
- />
111
- }
112
- description={
113
- <MarkdownEditor
114
- compact saveOnBlur clampDisplay
115
- value={draftDescription}
116
- onChange={setDraftDescription}
117
- onSave={() => { setCommittedDescription(draftDescription); save({ description: draftDescription }); }}
118
- onCancel={() => setDraftDescription(committedDescription)}
119
- placeholder="Add a description…"
120
- className="tw-m-0 tw-max-w-[800px] tw-break-words tw-text-sm tw-leading-5 tw-text-muted-foreground"
121
- />
122
- }
123
- primaryAction={...}
124
- />;
125
- ```
126
-
127
- The `titleClass` / `descriptionClass` constants exported from
128
- `./styles.ts` carry the canonical typography — pass them through
129
- `className` so the editor visually matches the static variant.
130
-
131
- ## Stories
132
-
133
- - `IndexFlows` — description + secondary/primary actions, no header nav.
134
- - `IndexStorage` — `metadata` count summary + 5-tab `headerNav`.
135
- - `DetailBucket` — breadcrumbs + overflow + badges + primary action.
136
- - `DetailEditable` — inline-editable title + description via `MarkdownEditor`.
137
- - `DetailDataApp` — primary + secondary actions + 3-tab `headerNav`.
@@ -1,371 +0,0 @@
1
- import { useState } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react-vite';
3
-
4
- import {
5
- BookOpen,
6
- Bug,
7
- Copy,
8
- EllipsisVertical,
9
- Trash2,
10
- Upload,
11
- Users,
12
- } from '@keboola/design/icons';
13
-
14
- import { Badge } from '../../components/Badge';
15
- import { Breadcrumb } from '../../components/Breadcrumb';
16
- import { Button } from '../../components/Button';
17
- import { DropdownMenu } from '../../components/DropdownMenu';
18
- import { MarkdownEditor } from '../../components/MarkdownEditor';
19
- import { Tabs, TabsContent } from '../../components/Tabs';
20
- import { PageLayout } from '../PageLayout';
21
- import { PageToolbar } from '../PageToolbar';
22
- import { SplitButton } from '../SplitButton';
23
-
24
- import { PageHeader } from './PageHeader';
25
- import { descriptionClass, titleClass } from './styles';
26
-
27
- type Story = StoryObj<typeof PageHeader.Index>;
28
-
29
- export default {
30
- component: PageHeader.Index,
31
- parameters: {
32
- layout: 'fullscreen',
33
- docs: {
34
- description: {
35
- component:
36
- 'Structured page-header block matching the [evviku page-header patterns](https://github.com/evviku/design-system-docs/tree/main/docs/patterns/page-header). Two discriminated variants — `PageHeader.Index` (top-level list pages, no breadcrumbs) and `PageHeader.Detail` (entity pages, mandatory breadcrumbs + overflow row + ≤2 visible actions). The variant chosen at the type level enforces the pattern constraints (e.g. you cannot pass an overflow menu to `Index`, or `metadata` to `Detail`).',
37
- },
38
- },
39
- },
40
- } satisfies Meta<typeof PageHeader.Index>;
41
-
42
- const Placeholder = ({ label, height = 'tw-h-48' }: { label: string; height?: string }) => (
43
- <div
44
- className={`tw-flex tw-items-center tw-justify-center tw-rounded tw-border tw-border-dashed tw-border-border tw-bg-muted/30 tw-text-sm tw-text-muted-foreground ${height}`}
45
- >
46
- {label}
47
- </div>
48
- );
49
-
50
- // Index — Flows (description + primary + secondary actions, no header nav).
51
- export const IndexFlows: Story = {
52
- render: () => (
53
- <PageLayout>
54
- <PageHeader.Index
55
- title="Flows"
56
- description="Build flows with branching logic and conditions. Tasks run based on previous results, errors, or custom expressions."
57
- documentation={
58
- <Button argo variant="invisible" aria-label="Documentation">
59
- <BookOpen className="tw-size-4" />
60
- </Button>
61
- }
62
- action={
63
- <>
64
- <Button argo variant="secondary" onClick={() => {}}>
65
- New folder
66
- </Button>
67
- <Button argo onClick={() => {}}>
68
- New flow
69
- </Button>
70
- </>
71
- }
72
- />
73
- <PageToolbar>
74
- <PageToolbar.Search>
75
- <Placeholder label="Search input + filter pills" height="tw-h-10" />
76
- </PageToolbar.Search>
77
- </PageToolbar>
78
- <PageLayout.Content>
79
- <Placeholder label="EntityList" height="tw-h-96" />
80
- </PageLayout.Content>
81
- </PageLayout>
82
- ),
83
- };
84
-
85
- // Index — Storage (metadata + header nav + SplitButton primary action).
86
- // SSOT example: `action.type = "button-group"` → SplitButton in our design system.
87
- export const IndexStorage: Story = {
88
- render: () => (
89
- <PageLayout>
90
- <PageHeader.Index
91
- title="Storage"
92
- metadata="3 buckets and 39 tables"
93
- documentation={
94
- <Button argo variant="invisible" aria-label="Documentation">
95
- <BookOpen className="tw-size-4" />
96
- </Button>
97
- }
98
- action={
99
- <SplitButton
100
- argo
101
- onClick={() => {}}
102
- actions={
103
- <>
104
- <SplitButton.Action onClick={() => {}}>Upload file</SplitButton.Action>
105
- <SplitButton.Action icon="cloud-arrow-down" onClick={() => {}}>
106
- Import from external storage
107
- </SplitButton.Action>
108
- </>
109
- }
110
- icon={<Upload className="tw-size-4" />}
111
- >
112
- New bucket
113
- </SplitButton>
114
- }
115
- headerNav={
116
- <Tabs
117
- defaultValue="tables"
118
- triggers={[
119
- { value: 'tables', title: 'Tables & Buckets' },
120
- { value: 'files', title: 'Files' },
121
- { value: 'data-streams', title: 'Data Streams' },
122
- { value: 'storage-jobs', title: 'Storage Jobs' },
123
- { value: 'events', title: 'Events' },
124
- ]}
125
- >
126
- <TabsContent value="tables">
127
- <Placeholder label="Tables & Buckets list" height="tw-h-96" />
128
- </TabsContent>
129
- <TabsContent value="files">
130
- <Placeholder label="Files list" height="tw-h-96" />
131
- </TabsContent>
132
- <TabsContent value="data-streams">
133
- <Placeholder label="Data Streams list" height="tw-h-96" />
134
- </TabsContent>
135
- <TabsContent value="storage-jobs">
136
- <Placeholder label="Storage Jobs list" height="tw-h-96" />
137
- </TabsContent>
138
- <TabsContent value="events">
139
- <Placeholder label="Events list" height="tw-h-96" />
140
- </TabsContent>
141
- </Tabs>
142
- }
143
- />
144
- </PageLayout>
145
- ),
146
- };
147
-
148
- // Detail — bucket (breadcrumbs + overflow + badges + primary action).
149
- export const DetailBucket: Story = {
150
- render: () => (
151
- <PageLayout>
152
- <PageHeader.Detail
153
- breadcrumbs={
154
- <Breadcrumb>
155
- <Breadcrumb.List>
156
- <Breadcrumb.Item>
157
- <Breadcrumb.Link href="#">Storage</Breadcrumb.Link>
158
- </Breadcrumb.Item>
159
- <Breadcrumb.Separator />
160
- <Breadcrumb.Item>
161
- <Breadcrumb.Page>Marketing bucket</Breadcrumb.Page>
162
- </Breadcrumb.Item>
163
- </Breadcrumb.List>
164
- </Breadcrumb>
165
- }
166
- overflowActions={
167
- <DropdownMenu>
168
- <DropdownMenu.Trigger asChild>
169
- <Button argo variant="invisible" size="icon-sm" aria-label="More actions">
170
- <EllipsisVertical className="tw-size-4" />
171
- </Button>
172
- </DropdownMenu.Trigger>
173
- <DropdownMenu.Content align="end">
174
- <DropdownMenu.Item icon={<Copy className="tw-size-4" />}>Copy</DropdownMenu.Item>
175
- <DropdownMenu.Item icon={<Users className="tw-size-4" />}>
176
- Manage permissions
177
- </DropdownMenu.Item>
178
- <DropdownMenu.Separator />
179
- <DropdownMenu.Item icon={<Trash2 className="tw-size-4" />}>Delete</DropdownMenu.Item>
180
- </DropdownMenu.Content>
181
- </DropdownMenu>
182
- }
183
- title="Marketing bucket"
184
- badges={
185
- <>
186
- <Badge color="green">Active</Badge>
187
- <Badge color="gray">Shared</Badge>
188
- </>
189
- }
190
- description="Contains marketing datasets and transformation outputs."
191
- primaryAction={
192
- <SplitButton
193
- argo
194
- onClick={() => {}}
195
- actions={
196
- <>
197
- <SplitButton.Action onClick={() => {}}>Upload CSV</SplitButton.Action>
198
- <SplitButton.Action icon="link" onClick={() => {}}>
199
- Link existing table
200
- </SplitButton.Action>
201
- </>
202
- }
203
- icon={<Upload className="tw-size-4" />}
204
- >
205
- Add table
206
- </SplitButton>
207
- }
208
- />
209
- <PageLayout.Content>
210
- <Placeholder label="Bucket detail body" height="tw-h-96" />
211
- </PageLayout.Content>
212
- </PageLayout>
213
- ),
214
- };
215
-
216
- // Detail — editable (inline edit on title + description per the inline-editable-text pattern spec).
217
- const DetailEditableRender = () => {
218
- // Two-state pattern: `committed` is what's persisted; `draft` tracks in-progress edits.
219
- // onSave (blur / Cmd+Enter / Enter on title) commits draft → committed.
220
- // onCancel (Esc) reverts draft ← committed.
221
- const [committedTitle, setCommittedTitle] = useState('Marketing bucket');
222
- const [draftTitle, setDraftTitle] = useState(committedTitle);
223
- const [committedDescription, setCommittedDescription] = useState(
224
- 'Contains marketing datasets and transformation outputs. This description is intentionally long so you can see how the display state clamps to two lines with a bottom fade — focus the field and it expands to full height for editing.',
225
- );
226
- const [draftDescription, setDraftDescription] = useState(committedDescription);
227
-
228
- return (
229
- <PageLayout>
230
- <PageHeader.Detail
231
- breadcrumbs={
232
- <Breadcrumb>
233
- <Breadcrumb.List>
234
- <Breadcrumb.Item>
235
- <Breadcrumb.Link href="#">Storage</Breadcrumb.Link>
236
- </Breadcrumb.Item>
237
- <Breadcrumb.Separator />
238
- <Breadcrumb.Item>
239
- <Breadcrumb.Page>{committedTitle || 'Untitled'}</Breadcrumb.Page>
240
- </Breadcrumb.Item>
241
- </Breadcrumb.List>
242
- </Breadcrumb>
243
- }
244
- title={
245
- <MarkdownEditor
246
- compact
247
- singleLine
248
- saveOnBlur
249
- value={draftTitle}
250
- onChange={setDraftTitle}
251
- onSave={() => setCommittedTitle(draftTitle)}
252
- onCancel={() => setDraftTitle(committedTitle)}
253
- placeholder="Untitled"
254
- className={titleClass}
255
- />
256
- }
257
- badges={<Badge color="green">Active</Badge>}
258
- description={
259
- <MarkdownEditor
260
- compact
261
- saveOnBlur
262
- clampDisplay
263
- value={draftDescription}
264
- onChange={setDraftDescription}
265
- onSave={() => setCommittedDescription(draftDescription)}
266
- onCancel={() => setDraftDescription(committedDescription)}
267
- placeholder="Add a description…"
268
- className={descriptionClass}
269
- />
270
- }
271
- primaryAction={
272
- <Button argo onClick={() => {}}>
273
- Add table
274
- </Button>
275
- }
276
- />
277
- <PageLayout.Content>
278
- <details className="tw-rounded tw-border tw-border-border tw-bg-muted/30 tw-p-4">
279
- <summary className="tw-cursor-pointer tw-text-sm tw-text-muted-foreground">
280
- Committed state (only updates on save — Esc reverts draft)
281
- </summary>
282
- <pre className="tw-mt-2 tw-whitespace-pre-wrap tw-text-xs">
283
- {JSON.stringify({ title: committedTitle, description: committedDescription }, null, 2)}
284
- </pre>
285
- </details>
286
- </PageLayout.Content>
287
- </PageLayout>
288
- );
289
- };
290
-
291
- export const DetailEditable: Story = {
292
- render: () => <DetailEditableRender />,
293
- parameters: {
294
- docs: {
295
- description: {
296
- story:
297
- 'Inline editing per the [inline-editable-text pattern spec](https://github.com/evviku/design-system-docs/tree/main/docs/patterns/inline-editable-text). Click the title or description to edit in place; no edit icon, no save / cancel buttons. **Blur, Enter (title), or Cmd+Enter commits** via `onSave`. **Esc reverts** via `onCancel` (caller resets state to last committed). Description uses `clampDisplay` so it clamps to ~2 lines + bottom fade when not focused; focusing expands to full height. Both slots accept any `ReactNode`, so `PageHeader` stays Lexical-free.',
298
- },
299
- },
300
- },
301
- };
302
-
303
- // Detail — sales dashboard (primary + secondary actions + header nav).
304
- export const DetailDataApp: Story = {
305
- render: () => (
306
- <PageLayout>
307
- <PageHeader.Detail
308
- breadcrumbs={
309
- <Breadcrumb>
310
- <Breadcrumb.List>
311
- <Breadcrumb.Item>
312
- <Breadcrumb.Link href="#">Data Apps</Breadcrumb.Link>
313
- </Breadcrumb.Item>
314
- <Breadcrumb.Separator />
315
- <Breadcrumb.Item>
316
- <Breadcrumb.Page>Sales dashboard</Breadcrumb.Page>
317
- </Breadcrumb.Item>
318
- </Breadcrumb.List>
319
- </Breadcrumb>
320
- }
321
- overflowActions={
322
- <DropdownMenu>
323
- <DropdownMenu.Trigger asChild>
324
- <Button argo variant="invisible" size="icon-sm" aria-label="More actions">
325
- <EllipsisVertical className="tw-size-4" />
326
- </Button>
327
- </DropdownMenu.Trigger>
328
- <DropdownMenu.Content align="end">
329
- <DropdownMenu.Item icon={<Copy className="tw-size-4" />}>Duplicate</DropdownMenu.Item>
330
- <DropdownMenu.Item icon={<Bug className="tw-size-4" />}>Debug mode</DropdownMenu.Item>
331
- <DropdownMenu.Separator />
332
- <DropdownMenu.Item icon={<Trash2 className="tw-size-4" />}>Delete</DropdownMenu.Item>
333
- </DropdownMenu.Content>
334
- </DropdownMenu>
335
- }
336
- title="Sales dashboard"
337
- badges={<Badge color="green">Running</Badge>}
338
- secondaryAction={
339
- <Button argo variant="secondary" onClick={() => {}}>
340
- Open editor
341
- </Button>
342
- }
343
- primaryAction={
344
- <Button argo onClick={() => {}}>
345
- Deploy
346
- </Button>
347
- }
348
- headerNav={
349
- <Tabs
350
- defaultValue="overview"
351
- triggers={[
352
- { value: 'overview', title: 'Overview' },
353
- { value: 'events', title: 'Events' },
354
- { value: 'settings', title: 'Settings' },
355
- ]}
356
- >
357
- <TabsContent value="overview">
358
- <Placeholder label="Overview" height="tw-h-96" />
359
- </TabsContent>
360
- <TabsContent value="events">
361
- <Placeholder label="Events" height="tw-h-96" />
362
- </TabsContent>
363
- <TabsContent value="settings">
364
- <Placeholder label="Settings" height="tw-h-96" />
365
- </TabsContent>
366
- </Tabs>
367
- }
368
- />
369
- </PageLayout>
370
- ),
371
- };
@@ -1,22 +0,0 @@
1
- import { PageHeaderDetail } from './PageHeaderDetail';
2
- import { PageHeaderIndex } from './PageHeaderIndex';
3
-
4
- /**
5
- * Structured page-header block that encodes the evviku page-header patterns 1:1 at the type level.
6
- *
7
- * **When to use:** every kbc-ui page with a structured header (title + actions + optional badges /
8
- * description / tabs). Choose `PageHeader.Index` for list / collection pages, `PageHeader.Detail` for
9
- * single-entity pages with breadcrumbs.
10
- * **When NOT to use:** for layouts that don't match either pattern, host custom JSX inside
11
- * `PageLayout.Header` directly. For routing-driven tab rows below the header use `PageLayout.Tabs`.
12
- * **Composition:** nest inside `PageLayout.Header`. Always opt into `Button argo` for any buttons passed
13
- * into header slots. The variant types enforce pattern constraints (e.g. `Index` rejects breadcrumbs).
14
- *
15
- * @see RECIPES.md#page-header-tabs — for the canonical page-header + tabs composition
16
- */
17
- export const PageHeader = {
18
- /** Index variant — top-level list / collection pages. No breadcrumbs; `metadata` wins over `description`. */
19
- Index: PageHeaderIndex,
20
- /** Detail variant — single-entity pages with required breadcrumbs and an overflow-actions slot. Max 2 visible actions. */
21
- Detail: PageHeaderDetail,
22
- };
@@ -1,84 +0,0 @@
1
- import type { ComponentPropsWithoutRef, ElementRef, ReactNode, Ref } from 'react';
2
-
3
- import { cn } from '../../utils';
4
-
5
- import { badgesClass, descriptionClass, titleClass, titleRowClass } from './styles';
6
-
7
- // Detail page header — single entity pages (bucket, flow, data app, …).
8
- // Pattern: docs/patterns/page-header/detail/detail-page-header.md
9
- // - Breadcrumbs are required; overflow menu sits on the breadcrumbs row.
10
- // - Max two visible actions: `primaryAction` + optional `secondaryAction`.
11
- // - All other actions belong in the breadcrumbs-row overflow menu.
12
- /**
13
- * Props for `PageHeader.Detail`. Detail pages enforce mandatory breadcrumbs, ≤ 2 visible actions, and an
14
- * overflow-menu slot on the breadcrumbs row.
15
- */
16
- type PageHeaderDetailProps = Omit<ComponentPropsWithoutRef<'header'>, 'title'> & {
17
- /** `Breadcrumb` chain ending in the entity name (last item is not a link). Required. */
18
- breadcrumbs: ReactNode;
19
- /** `DropdownMenu` for tertiary actions. Sits on the breadcrumbs row, not the title row. */
20
- overflowActions?: ReactNode;
21
- title: ReactNode;
22
- /** Inline `Badge`s rendered next to the title (status, environment, version). */
23
- badges?: ReactNode;
24
- description?: ReactNode;
25
- /** Primary action (`Button argo`). Use the verb appropriate to the entity (Deploy / Run / Save). */
26
- primaryAction?: ReactNode;
27
- /** Optional second action (`Button argo variant="secondary"`). Everything beyond goes in `overflowActions`. */
28
- secondaryAction?: ReactNode;
29
- /** Optional `Tabs` row below the title block. */
30
- headerNav?: ReactNode;
31
- };
32
-
33
- /**
34
- * Page header for single-entity pages.
35
- *
36
- * **When to use:** the page shows one entity (a bucket, flow, data app) with a parent hierarchy worth
37
- * breadcrumbing. Primary action is typically "edit / deploy / run on this entity".
38
- * **When NOT to use:** for top-level list pages use `PageHeader.Index`. For pages without a parent
39
- * hierarchy use `PageHeader.Index` even if they show one entity.
40
- * **Composition:** nest inside `PageLayout.Header`. Pass `Button argo` for actions. Anything beyond the
41
- * 2-visible-actions cap belongs in `overflowActions` (a `DropdownMenu`), not in extra slots.
42
- *
43
- * @see RECIPES.md#list-detail — for the list-page → detail-page navigation pattern
44
- */
45
- export const PageHeaderDetail = ({
46
- ref,
47
- className,
48
- breadcrumbs,
49
- overflowActions,
50
- title,
51
- badges,
52
- description,
53
- primaryAction,
54
- secondaryAction,
55
- headerNav,
56
- ...props
57
- }: PageHeaderDetailProps & { ref?: Ref<ElementRef<'header'>> }) => (
58
- <header ref={ref} className={cn('tw-flex tw-w-full tw-flex-col tw-gap-4', className)} {...props}>
59
- <div className="tw-flex tw-w-full tw-items-center tw-justify-between tw-gap-4">
60
- <div className="tw-min-w-0 tw-flex-1">{breadcrumbs}</div>
61
- {overflowActions && (
62
- <div className="tw-flex tw-shrink-0 tw-items-center tw-gap-2">{overflowActions}</div>
63
- )}
64
- </div>
65
-
66
- <div className="tw-flex tw-w-full tw-items-start tw-justify-between tw-gap-4">
67
- <div className="tw-flex tw-min-w-0 tw-flex-1 tw-flex-col tw-gap-2 tw-pr-2">
68
- <div className={titleRowClass}>
69
- <h1 className={titleClass}>{title}</h1>
70
- {badges && <div className={badgesClass}>{badges}</div>}
71
- </div>
72
- {description && <p className={descriptionClass}>{description}</p>}
73
- </div>
74
- {(primaryAction || secondaryAction) && (
75
- <div className="tw-flex tw-shrink-0 tw-items-center tw-gap-2">
76
- {secondaryAction}
77
- {primaryAction}
78
- </div>
79
- )}
80
- </div>
81
-
82
- {headerNav}
83
- </header>
84
- );