@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,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
- );