@keboola/design 2.0.1 → 2.1.0

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