@keboola/design 10.1.0 → 11.0.1

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 (382) hide show
  1. package/AGENTS.md +2 -0
  2. package/dist/AIKit-Dre37SJr.js +1320 -0
  3. package/dist/AIKit-Dre37SJr.js.map +1 -0
  4. package/dist/Alert-DfZq9kGe.js +133 -0
  5. package/dist/Alert-DfZq9kGe.js.map +1 -0
  6. package/dist/AlertModal-BUC4Es8o.js +222 -0
  7. package/dist/AlertModal-BUC4Es8o.js.map +1 -0
  8. package/dist/AppShell-B5GQN6Zs.js +143 -0
  9. package/dist/AppShell-B5GQN6Zs.js.map +1 -0
  10. package/dist/AutoSaveTextarea-BeuWuszr.js +58 -0
  11. package/dist/AutoSaveTextarea-BeuWuszr.js.map +1 -0
  12. package/dist/Badge-Ch26CXoP.js +195 -0
  13. package/dist/Badge-Ch26CXoP.js.map +1 -0
  14. package/dist/BrandEditor-B8o9zdZO.js +903 -0
  15. package/dist/BrandEditor-B8o9zdZO.js.map +1 -0
  16. package/dist/BrandLogo-CJkRd0F8.js +46 -0
  17. package/dist/BrandLogo-CJkRd0F8.js.map +1 -0
  18. package/dist/Breadcrumb-DJp7WwSv.js +330 -0
  19. package/dist/Breadcrumb-DJp7WwSv.js.map +1 -0
  20. package/dist/Button-nzmDNS2q.js +391 -0
  21. package/dist/Button-nzmDNS2q.js.map +1 -0
  22. package/dist/Calendar-cG5NIJ4O.js +6768 -0
  23. package/dist/Calendar-cG5NIJ4O.js.map +1 -0
  24. package/dist/Card-BAoZ35CV.js +105 -0
  25. package/dist/Card-BAoZ35CV.js.map +1 -0
  26. package/dist/Checkbox-GJ8-srt4.js +97 -0
  27. package/dist/Checkbox-GJ8-srt4.js.map +1 -0
  28. package/dist/Clipboard-CBJZiviP.js +58 -0
  29. package/dist/Clipboard-CBJZiviP.js.map +1 -0
  30. package/dist/ClipboardButton-ez5V3fkk.js +43 -0
  31. package/dist/ClipboardButton-ez5V3fkk.js.map +1 -0
  32. package/dist/CodeEditor-BfQJfbhL.js +952 -0
  33. package/dist/CodeEditor-BfQJfbhL.js.map +1 -0
  34. package/dist/Collapsible-BQXWEOBC.js +34 -0
  35. package/dist/Collapsible-BQXWEOBC.js.map +1 -0
  36. package/dist/ColorInput-Dx8Dsv7Y.js +180 -0
  37. package/dist/ColorInput-Dx8Dsv7Y.js.map +1 -0
  38. package/dist/ColorModeSwitch-CCqj7tjE.js +77 -0
  39. package/dist/ColorModeSwitch-CCqj7tjE.js.map +1 -0
  40. package/dist/Combobox-c_xBjf0P.js +439 -0
  41. package/dist/Combobox-c_xBjf0P.js.map +1 -0
  42. package/dist/Command-CQ_bQsJp.js +102 -0
  43. package/dist/Command-CQ_bQsJp.js.map +1 -0
  44. package/dist/CopyField-BJ96zvXs.js +322 -0
  45. package/dist/CopyField-BJ96zvXs.js.map +1 -0
  46. package/dist/DateInput-CMD3dY-T.js +141 -0
  47. package/dist/DateInput-CMD3dY-T.js.map +1 -0
  48. package/dist/DatePicker-BbFbmsGl.js +24 -0
  49. package/dist/DatePicker-BbFbmsGl.js.map +1 -0
  50. package/dist/DateRangeInput-D3BhiKyk.js +139 -0
  51. package/dist/DateRangeInput-D3BhiKyk.js.map +1 -0
  52. package/dist/DateRangePicker-BiUgtt_M.js +159 -0
  53. package/dist/DateRangePicker-BiUgtt_M.js.map +1 -0
  54. package/dist/DiagramSkeleton-lwBS2YBa.js +11 -0
  55. package/dist/DiagramSkeleton-lwBS2YBa.js.map +1 -0
  56. package/dist/DiffView-ppTIzh2h.js +429 -0
  57. package/dist/DiffView-ppTIzh2h.js.map +1 -0
  58. package/dist/DropdownMenu-B6ZbYvaM.js +327 -0
  59. package/dist/DropdownMenu-B6ZbYvaM.js.map +1 -0
  60. package/dist/FieldBox-D7DYtX_m.js +70 -0
  61. package/dist/FieldBox-D7DYtX_m.js.map +1 -0
  62. package/dist/FileUpload-sXRv7JiY.js +2527 -0
  63. package/dist/FileUpload-sXRv7JiY.js.map +1 -0
  64. package/dist/Form-BDCef6O9.js +371 -0
  65. package/dist/Form-BDCef6O9.js.map +1 -0
  66. package/dist/FormGroup-S9mPNHKH.js +124 -0
  67. package/dist/FormGroup-S9mPNHKH.js.map +1 -0
  68. package/dist/FullScreenModal-CJa2VkJ2.js +96 -0
  69. package/dist/FullScreenModal-CJa2VkJ2.js.map +1 -0
  70. package/dist/HoverCard-WfDkLK1s.js +31 -0
  71. package/dist/HoverCard-WfDkLK1s.js.map +1 -0
  72. package/dist/InputGroup-BJWsI35s.js +292 -0
  73. package/dist/InputGroup-BJWsI35s.js.map +1 -0
  74. package/dist/Kbd-CxHAo1oo.js +111 -0
  75. package/dist/Kbd-CxHAo1oo.js.map +1 -0
  76. package/dist/MarkedText-Ckbft5mw.js +44 -0
  77. package/dist/MarkedText-Ckbft5mw.js.map +1 -0
  78. package/dist/MermaidDiagram-BB06gymm.js +399 -0
  79. package/dist/MermaidDiagram-BB06gymm.js.map +1 -0
  80. package/dist/Modal-BA5Wc3sx.js +185 -0
  81. package/dist/Modal-BA5Wc3sx.js.map +1 -0
  82. package/dist/ModalTitle-C76ke2eo.js +28 -0
  83. package/dist/ModalTitle-C76ke2eo.js.map +1 -0
  84. package/dist/MultiActionButtonGroup-CiBHxsSk.js +33 -0
  85. package/dist/MultiActionButtonGroup-CiBHxsSk.js.map +1 -0
  86. package/dist/Navbar-t16usFZQ.js +322 -0
  87. package/dist/Navbar-t16usFZQ.js.map +1 -0
  88. package/dist/OtpInput-CbbymqYs.js +93 -0
  89. package/dist/OtpInput-CbbymqYs.js.map +1 -0
  90. package/dist/PageHeader-Q3IpCnQd.js +177 -0
  91. package/dist/PageHeader-Q3IpCnQd.js.map +1 -0
  92. package/dist/PageLayout-DSVM-ASz.js +176 -0
  93. package/dist/PageLayout-DSVM-ASz.js.map +1 -0
  94. package/dist/PageToolbar-0_1OBzaZ.js +153 -0
  95. package/dist/PageToolbar-0_1OBzaZ.js.map +1 -0
  96. package/dist/Pagination-CM_Rszz-.js +70 -0
  97. package/dist/Pagination-CM_Rszz-.js.map +1 -0
  98. package/dist/Popconfirm-BGe1jLov.js +170 -0
  99. package/dist/Popconfirm-BGe1jLov.js.map +1 -0
  100. package/dist/Popover-Ca0V6AD1.js +92 -0
  101. package/dist/Popover-Ca0V6AD1.js.map +1 -0
  102. package/dist/RadioGroup-sIveSsNa.js +233 -0
  103. package/dist/RadioGroup-sIveSsNa.js.map +1 -0
  104. package/dist/Resizable-D3vYToZH.js +52 -0
  105. package/dist/Resizable-D3vYToZH.js.map +1 -0
  106. package/dist/Search-3UiqNZRj.js +184 -0
  107. package/dist/Search-3UiqNZRj.js.map +1 -0
  108. package/dist/SearchInput-D2fcOv7E.js +102 -0
  109. package/dist/SearchInput-D2fcOv7E.js.map +1 -0
  110. package/dist/SectionNav--7bw2b6u.js +276 -0
  111. package/dist/SectionNav--7bw2b6u.js.map +1 -0
  112. package/dist/Select-4YX38G5h.js +181 -0
  113. package/dist/Select-4YX38G5h.js.map +1 -0
  114. package/dist/Sheet-BQrX8-h5.js +169 -0
  115. package/dist/Sheet-BQrX8-h5.js.map +1 -0
  116. package/dist/Sidebar-ROaR_AqC.js +799 -0
  117. package/dist/Sidebar-ROaR_AqC.js.map +1 -0
  118. package/dist/Slider-Da_3mS5v.js +127 -0
  119. package/dist/Slider-Da_3mS5v.js.map +1 -0
  120. package/dist/Stepper-C8sm9ZFM.js +325 -0
  121. package/dist/Stepper-C8sm9ZFM.js.map +1 -0
  122. package/dist/Switch-CX2A0v50.js +201 -0
  123. package/dist/Switch-CX2A0v50.js.map +1 -0
  124. package/dist/Table-CvYuTuNU.js +104 -0
  125. package/dist/Table-CvYuTuNU.js.map +1 -0
  126. package/dist/Tabs-EAihyqCt.js +74 -0
  127. package/dist/Tabs-EAihyqCt.js.map +1 -0
  128. package/dist/TextInput-BGed-V13.js +110 -0
  129. package/dist/TextInput-BGed-V13.js.map +1 -0
  130. package/dist/ThemeProvider-QncUrfJn.js +203 -0
  131. package/dist/ThemeProvider-QncUrfJn.js.map +1 -0
  132. package/dist/TimePicker-B_NegL-7.js +98 -0
  133. package/dist/TimePicker-B_NegL-7.js.map +1 -0
  134. package/dist/Timeline-6btyJl4D.js +154 -0
  135. package/dist/Timeline-6btyJl4D.js.map +1 -0
  136. package/dist/Toast-DQSbs3oA.js +49 -0
  137. package/dist/Toast-DQSbs3oA.js.map +1 -0
  138. package/dist/ToggleGroup-Cy_10Mvu.js +47 -0
  139. package/dist/ToggleGroup-Cy_10Mvu.js.map +1 -0
  140. package/dist/Workbench-BzE-Vvd9.js +293 -0
  141. package/dist/Workbench-BzE-Vvd9.js.map +1 -0
  142. package/dist/ZoomableSvg-DG9PnAm8.js +248 -0
  143. package/dist/ZoomableSvg-DG9PnAm8.js.map +1 -0
  144. package/dist/charts.d.ts +124 -111
  145. package/dist/charts.js +303 -249
  146. package/dist/charts.js.map +1 -1
  147. package/dist/classNames-BzrkDnOD.js +9 -0
  148. package/dist/classNames-BzrkDnOD.js.map +1 -0
  149. package/dist/constants-D6JcsD4_.d.ts +41 -0
  150. package/dist/context-KxxeMHbR.js +62 -0
  151. package/dist/context-KxxeMHbR.js.map +1 -0
  152. package/dist/editors.d.ts +180 -173
  153. package/dist/editors.js +747 -420
  154. package/dist/editors.js.map +1 -1
  155. package/dist/escapeStringRegexp-8MxP2knR.js +6 -0
  156. package/dist/escapeStringRegexp-8MxP2knR.js.map +1 -0
  157. package/dist/icons-Cek151jC.js +640 -0
  158. package/dist/icons-Cek151jC.js.map +1 -0
  159. package/dist/icons.d.ts +2 -41
  160. package/dist/icons.js +2 -4
  161. package/dist/index-m-kQEWiY.d.ts +54 -0
  162. package/dist/index.d.ts +6192 -9904
  163. package/dist/index.js +112 -15803
  164. package/dist/internal/blocks/AIKit.js +2 -0
  165. package/dist/internal/blocks/AppShell.js +2 -0
  166. package/dist/internal/blocks/AutoSaveTextarea.js +2 -0
  167. package/dist/internal/blocks/BrandEditor.js +2 -0
  168. package/dist/internal/blocks/ChartPanel.js +46 -0
  169. package/dist/internal/blocks/ChartPanel.js.map +1 -0
  170. package/dist/internal/blocks/ClipboardButton.js +2 -0
  171. package/dist/internal/blocks/ColorInput.js +2 -0
  172. package/dist/internal/blocks/ColorModeSwitch.js +2 -0
  173. package/dist/internal/blocks/Command.js +2 -0
  174. package/dist/internal/blocks/CopyField.js +2 -0
  175. package/dist/internal/blocks/DashboardHero.js +59 -0
  176. package/dist/internal/blocks/DashboardHero.js.map +1 -0
  177. package/dist/internal/blocks/DateInput.js +2 -0
  178. package/dist/internal/blocks/DateRangeInput.js +2 -0
  179. package/dist/internal/blocks/EmptyConfigurationActionCard.js +16 -0
  180. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
  181. package/dist/internal/blocks/EmptyState.js +142 -0
  182. package/dist/internal/blocks/EmptyState.js.map +1 -0
  183. package/dist/internal/blocks/ErrorState.js +179 -0
  184. package/dist/internal/blocks/ErrorState.js.map +1 -0
  185. package/dist/internal/blocks/ExportMenu.js +41 -0
  186. package/dist/internal/blocks/ExportMenu.js.map +1 -0
  187. package/dist/internal/blocks/Form.js +2 -0
  188. package/dist/internal/blocks/FormGroup.js +2 -0
  189. package/dist/internal/blocks/GoogleButton.js +95 -0
  190. package/dist/internal/blocks/GoogleButton.js.map +1 -0
  191. package/dist/internal/blocks/MicrosoftButton.js +64 -0
  192. package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
  193. package/dist/internal/blocks/MultiActionButtonGroup.js +2 -0
  194. package/dist/internal/blocks/MultiCombobox.js +188 -0
  195. package/dist/internal/blocks/MultiCombobox.js.map +1 -0
  196. package/dist/internal/blocks/NumberInput.js +44 -0
  197. package/dist/internal/blocks/NumberInput.js.map +1 -0
  198. package/dist/internal/blocks/OtpInput.js +2 -0
  199. package/dist/internal/blocks/PageHeader.js +2 -0
  200. package/dist/internal/blocks/PageLayout.js +2 -0
  201. package/dist/internal/blocks/PageToolbar.js +2 -0
  202. package/dist/internal/blocks/PasswordInput.js +97 -0
  203. package/dist/internal/blocks/PasswordInput.js.map +1 -0
  204. package/dist/internal/blocks/SearchInput.js +2 -0
  205. package/dist/internal/blocks/SearchInputWithNavigation.js +65 -0
  206. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
  207. package/dist/internal/blocks/SectionNav.js +2 -0
  208. package/dist/internal/blocks/SplitButton.js +46 -0
  209. package/dist/internal/blocks/SplitButton.js.map +1 -0
  210. package/dist/internal/blocks/StatCard.js +97 -0
  211. package/dist/internal/blocks/StatCard.js.map +1 -0
  212. package/dist/internal/blocks/TextInput.js +2 -0
  213. package/dist/internal/blocks/Textarea.js +32 -0
  214. package/dist/internal/blocks/Textarea.js.map +1 -0
  215. package/dist/internal/blocks/TimeInput.js +77 -0
  216. package/dist/internal/blocks/TimeInput.js.map +1 -0
  217. package/dist/internal/components/Alert.js +2 -0
  218. package/dist/internal/components/AlertModal.js +2 -0
  219. package/dist/internal/components/Avatar.js +53 -0
  220. package/dist/internal/components/Avatar.js.map +1 -0
  221. package/dist/internal/components/Badge.js +2 -0
  222. package/dist/internal/components/BrandLogo.js +2 -0
  223. package/dist/internal/components/Breadcrumb.js +2 -0
  224. package/dist/internal/components/Button.js +2 -0
  225. package/dist/internal/components/ButtonGroup.js +66 -0
  226. package/dist/internal/components/ButtonGroup.js.map +1 -0
  227. package/dist/internal/components/Calendar.js +2 -0
  228. package/dist/internal/components/Card.js +2 -0
  229. package/dist/internal/components/Checkbox.js +2 -0
  230. package/dist/internal/components/Clipboard.js +2 -0
  231. package/dist/internal/components/Collapsible.js +2 -0
  232. package/dist/internal/components/CollapsiblePanel.js +87 -0
  233. package/dist/internal/components/CollapsiblePanel.js.map +1 -0
  234. package/dist/internal/components/Combobox.js +2 -0
  235. package/dist/internal/components/DatePicker.js +2 -0
  236. package/dist/internal/components/DateRangePicker.js +2 -0
  237. package/dist/internal/components/DiffView.js +2 -0
  238. package/dist/internal/components/DotsLoader.js +18 -0
  239. package/dist/internal/components/DotsLoader.js.map +1 -0
  240. package/dist/internal/components/DropdownMenu.js +2 -0
  241. package/dist/internal/components/EmptySearchContent.js +12 -0
  242. package/dist/internal/components/EmptySearchContent.js.map +1 -0
  243. package/dist/internal/components/FileUpload.js +2 -0
  244. package/dist/internal/components/FullScreenModal.js +2 -0
  245. package/dist/internal/components/HelpBlock.js +25 -0
  246. package/dist/internal/components/HelpBlock.js.map +1 -0
  247. package/dist/internal/components/HoverCard.js +2 -0
  248. package/dist/internal/components/InputGroup.js +2 -0
  249. package/dist/internal/components/Kbd.js +2 -0
  250. package/dist/internal/components/Label.js +39 -0
  251. package/dist/internal/components/Label.js.map +1 -0
  252. package/dist/internal/components/Link.js +22 -0
  253. package/dist/internal/components/Link.js.map +1 -0
  254. package/dist/internal/components/MarkedText.js +2 -0
  255. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +20 -0
  256. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
  257. package/dist/internal/components/MergeEditor/PaneHeader.js +13 -0
  258. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
  259. package/dist/internal/components/MergeEditor/constants.js +18 -0
  260. package/dist/internal/components/MergeEditor/constants.js.map +1 -0
  261. package/dist/internal/components/MergeEditor/useMergeDiff.js +2 -0
  262. package/dist/internal/components/Modal.js +2 -0
  263. package/dist/internal/components/Navbar.js +2 -0
  264. package/dist/internal/components/Pagination.js +2 -0
  265. package/dist/internal/components/PanelWithDetails.js +31 -0
  266. package/dist/internal/components/PanelWithDetails.js.map +1 -0
  267. package/dist/internal/components/Popconfirm.js +2 -0
  268. package/dist/internal/components/Popover.js +2 -0
  269. package/dist/internal/components/Progress.js +47 -0
  270. package/dist/internal/components/Progress.js.map +1 -0
  271. package/dist/internal/components/RadioGroup.js +2 -0
  272. package/dist/internal/components/Resizable.js +2 -0
  273. package/dist/internal/components/ScrollArea.js +42 -0
  274. package/dist/internal/components/ScrollArea.js.map +1 -0
  275. package/dist/internal/components/Search.js +2 -0
  276. package/dist/internal/components/Select.js +2 -0
  277. package/dist/internal/components/Separator.js +84 -0
  278. package/dist/internal/components/Separator.js.map +1 -0
  279. package/dist/internal/components/Sheet.js +2 -0
  280. package/dist/internal/components/Sidebar.js +2 -0
  281. package/dist/internal/components/Skeleton/Skeleton.js +39 -0
  282. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
  283. package/dist/internal/components/Skeleton/SkeletonList.js +41 -0
  284. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
  285. package/dist/internal/components/Slider.js +2 -0
  286. package/dist/internal/components/SpotlightBackdrop.js +132 -0
  287. package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
  288. package/dist/internal/components/Stepper.js +2 -0
  289. package/dist/internal/components/Switch.js +2 -0
  290. package/dist/internal/components/Table.js +2 -0
  291. package/dist/internal/components/Tabs.js +2 -0
  292. package/dist/internal/components/ThemeProvider.js +3 -0
  293. package/dist/internal/components/TimePicker.js +2 -0
  294. package/dist/internal/components/Timeline.js +2 -0
  295. package/dist/internal/components/Toast.js +3 -0
  296. package/dist/internal/components/Toggle.js +169 -0
  297. package/dist/internal/components/Toggle.js.map +1 -0
  298. package/dist/internal/components/ToggleGroup.js +2 -0
  299. package/dist/internal/components/Tooltip.js +2 -0
  300. package/dist/internal/components/Truncated.js +45 -0
  301. package/dist/internal/components/Truncated.js.map +1 -0
  302. package/dist/internal/components/Workbench.js +2 -0
  303. package/dist/internal/components/ZoomableSvg.js +2 -0
  304. package/dist/internal/hooks/useAutosizeInput.js +77 -0
  305. package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
  306. package/dist/internal/hooks/useScrollbarPosition.js +45 -0
  307. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
  308. package/dist/internal/hooks/useStableCallback.js +29 -0
  309. package/dist/internal/hooks/useStableCallback.js.map +1 -0
  310. package/dist/internal/utils/mergeRefs.js +20 -0
  311. package/dist/internal/utils/mergeRefs.js.map +1 -0
  312. package/dist/internal/utils.js +5 -0
  313. package/dist/markdown-editor.d.ts +72 -72
  314. package/dist/markdown-editor.js +1122 -1193
  315. package/dist/markdown-editor.js.map +1 -1
  316. package/dist/mermaid.d.ts +12 -12
  317. package/dist/mermaid.js +2 -10
  318. package/dist/rjsf.d.ts +33 -34
  319. package/dist/rjsf.js +1543 -1600
  320. package/dist/rjsf.js.map +1 -1
  321. package/dist/rolldown-runtime-Bdc48AWt.js +33 -0
  322. package/dist/styles-DSUP_-9Z.js +158 -0
  323. package/dist/styles-DSUP_-9Z.js.map +1 -0
  324. package/dist/styles.css +1 -1
  325. package/dist/testing.d.ts +8 -7
  326. package/dist/testing.js +36 -16
  327. package/dist/testing.js.map +1 -1
  328. package/dist/themeTokens-BNg98Mu9.js +85 -0
  329. package/dist/themeTokens-BNg98Mu9.js.map +1 -0
  330. package/dist/toast-CjkURw0M.js +184 -0
  331. package/dist/toast-CjkURw0M.js.map +1 -0
  332. package/dist/useColorSchemeState-CYqcUfSH.js +61 -0
  333. package/dist/useColorSchemeState-CYqcUfSH.js.map +1 -0
  334. package/dist/useControllableState-M6494mCT.js +31 -0
  335. package/dist/useControllableState-M6494mCT.js.map +1 -0
  336. package/dist/useElement-DkF6esWL.js +15 -0
  337. package/dist/useElement-DkF6esWL.js.map +1 -0
  338. package/dist/useMergeDiff-CvowEXJ1.js +465 -0
  339. package/dist/useMergeDiff-CvowEXJ1.js.map +1 -0
  340. package/dist/utils-D0c5VAyF.js +308 -0
  341. package/dist/utils-D0c5VAyF.js.map +1 -0
  342. package/package.json +10 -9
  343. package/src/styles.css +35 -7
  344. package/src/theme.css +64 -0
  345. package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
  346. package/dist/MermaidDiagram-EOKJHQQV.js.map +0 -1
  347. package/dist/chunk-63NSN2VL.js +0 -274
  348. package/dist/chunk-63NSN2VL.js.map +0 -1
  349. package/dist/chunk-6FPEI4EM.js +0 -6683
  350. package/dist/chunk-6FPEI4EM.js.map +0 -1
  351. package/dist/chunk-7PUUHEJQ.js +0 -1313
  352. package/dist/chunk-7PUUHEJQ.js.map +0 -1
  353. package/dist/chunk-BOHNXTMM.js +0 -606
  354. package/dist/chunk-BOHNXTMM.js.map +0 -1
  355. package/dist/chunk-C3L3TBBT.js +0 -242
  356. package/dist/chunk-C3L3TBBT.js.map +0 -1
  357. package/dist/chunk-CTCFYWJC.js +0 -407
  358. package/dist/chunk-CTCFYWJC.js.map +0 -1
  359. package/dist/chunk-ESBL3IPF.js +0 -23
  360. package/dist/chunk-ESBL3IPF.js.map +0 -1
  361. package/dist/chunk-IJTHFNNJ.js +0 -261
  362. package/dist/chunk-IJTHFNNJ.js.map +0 -1
  363. package/dist/chunk-JP7PNHLH.js +0 -40
  364. package/dist/chunk-JP7PNHLH.js.map +0 -1
  365. package/dist/chunk-KPNAW5MU.js +0 -229
  366. package/dist/chunk-KPNAW5MU.js.map +0 -1
  367. package/dist/chunk-L37JJ6MR.js +0 -152
  368. package/dist/chunk-L37JJ6MR.js.map +0 -1
  369. package/dist/chunk-Q7NWXLCT.js +0 -90
  370. package/dist/chunk-Q7NWXLCT.js.map +0 -1
  371. package/dist/chunk-SYIEF644.js +0 -1016
  372. package/dist/chunk-SYIEF644.js.map +0 -1
  373. package/dist/chunk-VMFSRV5H.js +0 -16
  374. package/dist/chunk-VMFSRV5H.js.map +0 -1
  375. package/dist/chunk-VPPM7UUQ.js +0 -47
  376. package/dist/chunk-VPPM7UUQ.js.map +0 -1
  377. package/dist/chunk-XV3UUOYF.js +0 -845
  378. package/dist/chunk-XV3UUOYF.js.map +0 -1
  379. package/dist/constants-D3gaMY-W.d.ts +0 -39
  380. package/dist/icons.js.map +0 -1
  381. package/dist/index.js.map +0 -1
  382. package/dist/mermaid.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ import { cn } from "./classNames-BzrkDnOD.js";
2
+ import { ChevronDown, Plus, X } from "./icons-Cek151jC.js";
3
+ import { Button } from "./Button-nzmDNS2q.js";
4
+ import { Popover } from "./Popover-Ca0V6AD1.js";
5
+ import { Badge } from "./Badge-Ch26CXoP.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/blocks/PageToolbar/PageToolbarToken.tsx
8
+ /**
9
+ * Editable filter token (Query Builder variant) — `Badge` pill with a `chevron-down`
10
+ * popover trigger for editing values and an `×` dismiss button. The popover content
11
+ * is supplied by the caller via the `popover` slot (typically a `Combobox` or option list).
12
+ */
13
+ const PageToolbarToken = ({ children, popover, onRemove, removeAriaLabel, ...props }) => /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(Badge, {
14
+ ...props,
15
+ asChild: true,
16
+ variant: "pill",
17
+ color: "blue-inverse",
18
+ suffix: /* @__PURE__ */ jsx(Button, {
19
+ type: "button",
20
+ variant: "inline",
21
+ size: "icon-2xs",
22
+ "aria-label": removeAriaLabel,
23
+ onClick: onRemove,
24
+ children: /* @__PURE__ */ jsx(X, { className: "tw:size-3" })
25
+ }),
26
+ children: /* @__PURE__ */ jsxs(Popover.Trigger, {
27
+ type: "button",
28
+ className: "tw:inline-flex tw:cursor-pointer tw:items-center tw:gap-1 tw:bg-inherit tw:text-inherit tailwindcss-preflight",
29
+ children: [children, /* @__PURE__ */ jsx(ChevronDown, { className: "tw:size-3" })]
30
+ })
31
+ }), /* @__PURE__ */ jsx(Popover.Content, {
32
+ align: "start",
33
+ children: popover
34
+ })] });
35
+ //#endregion
36
+ //#region src/blocks/PageToolbar/PageToolbar.tsx
37
+ const Root = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", {
38
+ ref,
39
+ className: cn("tw:flex tw:flex-wrap tw:items-center tw:gap-3 tw:w-full", className),
40
+ ...props,
41
+ children
42
+ });
43
+ const Search = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", {
44
+ ref,
45
+ className: cn("tw:mr-auto tw:flex tw:items-center tw:gap-2 tw:w-full tw:sm:w-auto tw:sm:min-w-64 tw:sm:max-w-md", className),
46
+ ...props,
47
+ children
48
+ });
49
+ const Right = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", {
50
+ ref,
51
+ className: cn("tw:flex tw:flex-wrap tw:items-center tw:gap-2", className),
52
+ ...props,
53
+ children
54
+ });
55
+ const ControlGroup = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", {
56
+ ref,
57
+ className: cn("tw:flex tw:items-center tw:gap-2", className),
58
+ ...props,
59
+ children
60
+ });
61
+ const ActiveFilters = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", {
62
+ ref,
63
+ className: cn("tw:flex tw:flex-wrap tw:items-center tw:gap-2 tw:basis-full", className),
64
+ ...props,
65
+ children
66
+ });
67
+ const Chip = ({ children, onRemove, removeAriaLabel, ...props }) => /* @__PURE__ */ jsx(Badge, {
68
+ ...props,
69
+ variant: "pill",
70
+ color: "blue-inverse",
71
+ suffix: /* @__PURE__ */ jsx(Button, {
72
+ type: "button",
73
+ variant: "inline",
74
+ size: "icon-2xs",
75
+ "aria-label": removeAriaLabel,
76
+ onClick: onRemove,
77
+ children: /* @__PURE__ */ jsx(X, { className: "tw:size-3" })
78
+ }),
79
+ children
80
+ });
81
+ const AddFilter = ({ className, children, ...props }) => /* @__PURE__ */ jsxs(Button, {
82
+ variant: "invisible",
83
+ size: "small",
84
+ className: cn("tw:gap-1.5", className),
85
+ ...props,
86
+ children: [/* @__PURE__ */ jsx(Plus, { className: "tw:size-4" }), children ?? "Add filter"]
87
+ });
88
+ const Clear = ({ className, children, ...props }) => /* @__PURE__ */ jsx(Button, {
89
+ variant: "invisible",
90
+ size: "small",
91
+ className: cn("tw:ml-auto", className),
92
+ ...props,
93
+ children: children ?? "Clear all"
94
+ });
95
+ /**
96
+ * Two-row toolbar for index pages — search on the left, filter / sort / utility / view
97
+ * controls on the right, an optional Active Filters row below for filter chips or tokens.
98
+ *
99
+ * **When to use:** every index page that supports search or filtering. Hosts inside
100
+ * `PageLayout` as the search / filter row, between `PageLayout.Header` and `PageLayout.Content`.
101
+ * **When NOT to use:** detail pages, form pages, or anywhere there is no search / filter
102
+ * surface. For routing-based tab rows reach for `PageLayout.Tabs`.
103
+ *
104
+ * **Recommended composition (enforced at the call site):**
105
+ *
106
+ * - `Search` sits on the left; the right cluster auto-aligns via flex.
107
+ * - Right cluster order: `Filters` → `Sort` → `Actions` → `View`. View controls are always
108
+ * the final control group — do not render any control after `View`.
109
+ * - `ActiveFilters` is the second row. Render it only when one or more filters are active.
110
+ * - `Clear` self-aligns to the far right of `ActiveFilters`.
111
+ *
112
+ * The block is variant-agnostic: render filter chips (Standard variant, non-editable) or
113
+ * tokens (Query Builder variant, editable) into `ActiveFilters` as plain children — do not
114
+ * mix the two in one toolbar.
115
+ *
116
+ * @see https://github.com/evviku/design-system-docs/blob/main/docs/patterns/toolbar/toolbar.md
117
+ */
118
+ const PageToolbar = Object.assign(Root, {
119
+ /** Left slot — typically a `SearchInput`. */
120
+ Search,
121
+ /** Right cluster — host the four control groups below in the recommended order. */
122
+ Right,
123
+ /** Filter controls (`Combobox`, `Select`, `DatePicker`). */
124
+ Filters: ControlGroup,
125
+ /** Sort control. */
126
+ Sort: ControlGroup,
127
+ /** Utility actions (Export, Refresh, …). */
128
+ Actions: ControlGroup,
129
+ /** View toggle (List / Grid). Always render last in the right cluster. */
130
+ View: ControlGroup,
131
+ /**
132
+ * Active filters row. Render only when one or more filters are active. Pass filter chips
133
+ * (Standard variant) or tokens (Query Builder variant) as children, optionally followed
134
+ * by `AddFilter` / `Clear`.
135
+ */
136
+ ActiveFilters,
137
+ /** Non-editable filter chip (Standard variant) — `Badge` pill with a dismiss button. */
138
+ Chip,
139
+ /**
140
+ * Editable filter token (Query Builder variant) — `Badge` pill with a `chevron-down`
141
+ * popover trigger for editing values and an `×` dismiss button. The popover content
142
+ * is supplied by the caller via the `popover` slot (typically a `Combobox` or option list).
143
+ */
144
+ Token: PageToolbarToken,
145
+ /** "+ Add filter" action — typically rendered after the chips/tokens in `ActiveFilters`. */
146
+ AddFilter,
147
+ /** "Clear all" action — self-aligns to the far right of `ActiveFilters`. */
148
+ Clear
149
+ });
150
+ //#endregion
151
+ export { PageToolbar };
152
+
153
+ //# sourceMappingURL=PageToolbar-0_1OBzaZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageToolbar-0_1OBzaZ.js","names":[],"sources":["../src/blocks/PageToolbar/PageToolbarToken.tsx","../src/blocks/PageToolbar/PageToolbar.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { Badge } from '../../components/Badge';\nimport { Button } from '../../components/Button';\nimport { Popover } from '../../components/Popover';\nimport { ChevronDown, X } from '../../icons';\n\ntype PageToolbarTokenProps = Omit<\n ComponentPropsWithoutRef<typeof Badge>,\n 'variant' | 'color' | 'suffix' | 'children' | 'asChild' | 'popover'\n> & {\n children: ReactNode;\n /** Popover content rendered when the chevron-down trigger is clicked — typically a value editor. */\n popover: ReactNode;\n onRemove: () => void;\n removeAriaLabel: string;\n};\n\n/**\n * Editable filter token (Query Builder variant) — `Badge` pill with a `chevron-down`\n * popover trigger for editing values and an `×` dismiss button. The popover content\n * is supplied by the caller via the `popover` slot (typically a `Combobox` or option list).\n */\nexport const PageToolbarToken = ({\n children,\n popover,\n onRemove,\n removeAriaLabel,\n ...props\n}: PageToolbarTokenProps) => (\n <Popover>\n <Badge\n {...props}\n asChild\n variant=\"pill\"\n color=\"blue-inverse\"\n suffix={\n <Button\n type=\"button\"\n variant=\"inline\"\n size=\"icon-2xs\"\n aria-label={removeAriaLabel}\n onClick={onRemove}\n >\n <X className=\"tw:size-3\" />\n </Button>\n }\n >\n <Popover.Trigger\n type=\"button\"\n className=\"tw:inline-flex tw:cursor-pointer tw:items-center tw:gap-1 tw:bg-inherit tw:text-inherit tailwindcss-preflight\"\n >\n {children}\n <ChevronDown className=\"tw:size-3\" />\n </Popover.Trigger>\n </Badge>\n <Popover.Content align=\"start\">{popover}</Popover.Content>\n </Popover>\n);\n","import type { ComponentProps, ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { Badge } from '../../components/Badge';\nimport { Button } from '../../components/Button';\nimport { Plus, X } from '../../icons';\nimport { cn } from '../../utils';\n\nimport { PageToolbarToken } from './PageToolbarToken';\n\ntype DivProps = ComponentProps<'div'>;\n\nconst Root = ({ ref, className, children, ...props }: DivProps) => (\n <div\n ref={ref}\n className={cn('tw:flex tw:flex-wrap tw:items-center tw:gap-3 tw:w-full', className)}\n {...props}\n >\n {children}\n </div>\n);\n\nconst Search = ({ ref, className, children, ...props }: DivProps) => (\n <div\n ref={ref}\n className={cn(\n 'tw:mr-auto tw:flex tw:items-center tw:gap-2 tw:w-full tw:sm:w-auto tw:sm:min-w-64 tw:sm:max-w-md',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nconst Right = ({ ref, className, children, ...props }: DivProps) => (\n <div\n ref={ref}\n className={cn('tw:flex tw:flex-wrap tw:items-center tw:gap-2', className)}\n {...props}\n >\n {children}\n </div>\n);\n\nconst ControlGroup = ({ ref, className, children, ...props }: DivProps) => (\n <div ref={ref} className={cn('tw:flex tw:items-center tw:gap-2', className)} {...props}>\n {children}\n </div>\n);\n\nconst ActiveFilters = ({ ref, className, children, ...props }: DivProps) => (\n <div\n ref={ref}\n className={cn('tw:flex tw:flex-wrap tw:items-center tw:gap-2 tw:basis-full', className)}\n {...props}\n >\n {children}\n </div>\n);\n\ntype ChipProps = Omit<\n ComponentPropsWithoutRef<typeof Badge>,\n 'variant' | 'color' | 'suffix' | 'children'\n> & {\n children: ReactNode;\n onRemove: () => void;\n removeAriaLabel: string;\n};\n\nconst Chip = ({ children, onRemove, removeAriaLabel, ...props }: ChipProps) => (\n <Badge\n {...props}\n variant=\"pill\"\n color=\"blue-inverse\"\n suffix={\n <Button\n type=\"button\"\n variant=\"inline\"\n size=\"icon-2xs\"\n aria-label={removeAriaLabel}\n onClick={onRemove}\n >\n <X className=\"tw:size-3\" />\n </Button>\n }\n >\n {children}\n </Badge>\n);\n\ntype ActionProps = ComponentPropsWithoutRef<typeof Button>;\n\nconst AddFilter = ({ className, children, ...props }: ActionProps) => (\n <Button variant=\"invisible\" size=\"small\" className={cn('tw:gap-1.5', className)} {...props}>\n <Plus className=\"tw:size-4\" />\n {children ?? 'Add filter'}\n </Button>\n);\n\nconst Clear = ({ className, children, ...props }: ActionProps) => (\n <Button variant=\"invisible\" size=\"small\" className={cn('tw:ml-auto', className)} {...props}>\n {children ?? 'Clear all'}\n </Button>\n);\n\n/**\n * Two-row toolbar for index pages — search on the left, filter / sort / utility / view\n * controls on the right, an optional Active Filters row below for filter chips or tokens.\n *\n * **When to use:** every index page that supports search or filtering. Hosts inside\n * `PageLayout` as the search / filter row, between `PageLayout.Header` and `PageLayout.Content`.\n * **When NOT to use:** detail pages, form pages, or anywhere there is no search / filter\n * surface. For routing-based tab rows reach for `PageLayout.Tabs`.\n *\n * **Recommended composition (enforced at the call site):**\n *\n * - `Search` sits on the left; the right cluster auto-aligns via flex.\n * - Right cluster order: `Filters` → `Sort` → `Actions` → `View`. View controls are always\n * the final control group — do not render any control after `View`.\n * - `ActiveFilters` is the second row. Render it only when one or more filters are active.\n * - `Clear` self-aligns to the far right of `ActiveFilters`.\n *\n * The block is variant-agnostic: render filter chips (Standard variant, non-editable) or\n * tokens (Query Builder variant, editable) into `ActiveFilters` as plain children — do not\n * mix the two in one toolbar.\n *\n * @see https://github.com/evviku/design-system-docs/blob/main/docs/patterns/toolbar/toolbar.md\n */\nexport const PageToolbar = Object.assign(Root, {\n /** Left slot — typically a `SearchInput`. */\n Search,\n /** Right cluster — host the four control groups below in the recommended order. */\n Right,\n /** Filter controls (`Combobox`, `Select`, `DatePicker`). */\n Filters: ControlGroup,\n /** Sort control. */\n Sort: ControlGroup,\n /** Utility actions (Export, Refresh, …). */\n Actions: ControlGroup,\n /** View toggle (List / Grid). Always render last in the right cluster. */\n View: ControlGroup,\n /**\n * Active filters row. Render only when one or more filters are active. Pass filter chips\n * (Standard variant) or tokens (Query Builder variant) as children, optionally followed\n * by `AddFilter` / `Clear`.\n */\n ActiveFilters,\n /** Non-editable filter chip (Standard variant) — `Badge` pill with a dismiss button. */\n Chip,\n /**\n * Editable filter token (Query Builder variant) — `Badge` pill with a `chevron-down`\n * popover trigger for editing values and an `×` dismiss button. The popover content\n * is supplied by the caller via the `popover` slot (typically a `Combobox` or option list).\n */\n Token: PageToolbarToken,\n /** \"+ Add filter\" action — typically rendered after the chips/tokens in `ActiveFilters`. */\n AddFilter,\n /** \"Clear all\" action — self-aligns to the far right of `ActiveFilters`. */\n Clear,\n});\n"],"mappings":";;;;;;;;;;;;AAuBA,MAAa,oBAAoB,EAC/B,UACA,SACA,UACA,iBACA,GAAG,YAEH,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,OAAD;CACE,GAAI;CACJ,SAAA;CACA,SAAQ;CACR,OAAM;CACN,QACE,oBAAC,QAAD;EACE,MAAK;EACL,SAAQ;EACR,MAAK;EACL,cAAY;EACZ,SAAS;EAET,UAAA,oBAAC,GAAD,EAAG,WAAU,YAAa,CAAA;CACpB,CAAA;CAGV,UAAA,qBAAC,QAAQ,SAAT;EACE,MAAK;EACL,WAAU;EAFZ,UAAA,CAIG,UACD,oBAAC,aAAD,EAAa,WAAU,YAAa,CAAA,CACrB;;AACZ,CAAA,GACP,oBAAC,QAAQ,SAAT;CAAiB,OAAM;CAAS,UAAA;AAAyB,CAAA,CAClD,EAAA,CAAA;;;AC9CX,MAAM,QAAQ,EAAE,KAAK,WAAW,UAAU,GAAG,YAC3C,oBAAC,OAAD;CACO;CACL,WAAW,GAAG,2DAA2D,SAAS;CAClF,GAAI;CAEH;AACE,CAAA;AAGP,MAAM,UAAU,EAAE,KAAK,WAAW,UAAU,GAAG,YAC7C,oBAAC,OAAD;CACO;CACL,WAAW,GACT,oGACA,SACF;CACA,GAAI;CAEH;AACE,CAAA;AAGP,MAAM,SAAS,EAAE,KAAK,WAAW,UAAU,GAAG,YAC5C,oBAAC,OAAD;CACO;CACL,WAAW,GAAG,iDAAiD,SAAS;CACxE,GAAI;CAEH;AACE,CAAA;AAGP,MAAM,gBAAgB,EAAE,KAAK,WAAW,UAAU,GAAG,YACnD,oBAAC,OAAD;CAAU;CAAK,WAAW,GAAG,oCAAoC,SAAS;CAAG,GAAI;CAC9E;AACE,CAAA;AAGP,MAAM,iBAAiB,EAAE,KAAK,WAAW,UAAU,GAAG,YACpD,oBAAC,OAAD;CACO;CACL,WAAW,GAAG,+DAA+D,SAAS;CACtF,GAAI;CAEH;AACE,CAAA;AAYP,MAAM,QAAQ,EAAE,UAAU,UAAU,iBAAiB,GAAG,YACtD,oBAAC,OAAD;CACE,GAAI;CACJ,SAAQ;CACR,OAAM;CACN,QACE,oBAAC,QAAD;EACE,MAAK;EACL,SAAQ;EACR,MAAK;EACL,cAAY;EACZ,SAAS;EAET,UAAA,oBAAC,GAAD,EAAG,WAAU,YAAa,CAAA;CACpB,CAAA;CAGT;AACI,CAAA;AAKT,MAAM,aAAa,EAAE,WAAW,UAAU,GAAG,YAC3C,qBAAC,QAAD;CAAQ,SAAQ;CAAY,MAAK;CAAQ,WAAW,GAAG,cAAc,SAAS;CAAG,GAAI;CAArF,UAAA,CACE,oBAAC,MAAD,EAAM,WAAU,YAAa,CAAA,GAC5B,YAAY,YACP;;AAGV,MAAM,SAAS,EAAE,WAAW,UAAU,GAAG,YACvC,oBAAC,QAAD;CAAQ,SAAQ;CAAY,MAAK;CAAQ,WAAW,GAAG,cAAc,SAAS;CAAG,GAAI;CAClF,UAAA,YAAY;AACP,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AA0BV,MAAa,cAAc,OAAO,OAAO,MAAM;;CAE7C;;CAEA;;CAEA,SAAS;;CAET,MAAM;;CAEN,SAAS;;CAET,MAAM;;;;;;CAMN;;CAEA;;;;;;CAMA,OAAO;;CAEP;;CAEA;AACF,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { cn } from "./classNames-BzrkDnOD.js";
2
+ import { ChevronLeft, ChevronRight, Ellipsis } from "./icons-Cek151jC.js";
3
+ import { Button } from "./Button-nzmDNS2q.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/Pagination/PaginationButton.tsx
6
+ const PaginationButton = ({ ref, active: isActive = false, className, children, size = "icon", ...props }) => /* @__PURE__ */ jsx(Button, {
7
+ ...props,
8
+ ref,
9
+ variant: "invisible",
10
+ size,
11
+ "data-slot": "pagination-link",
12
+ "aria-current": isActive ? "page" : void 0,
13
+ "data-active": isActive,
14
+ className: cn("tw:data-[active=true]:bg-accent", "tw:data-[active=true]:text-accent-foreground", "tw:data-[active=true]:border-accent", className),
15
+ children
16
+ });
17
+ //#endregion
18
+ //#region src/components/Pagination/PaginationContent.tsx
19
+ const PaginationContent = ({ className, ...props }) => /* @__PURE__ */ jsx("ul", {
20
+ ...props,
21
+ className: cn("tw:flex", "tw:flex-row", "tw:items-center", "tw:gap-1", className)
22
+ });
23
+ //#endregion
24
+ //#region src/components/Pagination/PaginationEllipsis.tsx
25
+ const PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx("span", {
26
+ "aria-hidden": "true",
27
+ className: cn("tw:flex", "tw:p-2.5", "tw:items-center", "tw:justify-center", "tw:text-foreground", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-4", className),
28
+ ...props,
29
+ children: /* @__PURE__ */ jsx(Ellipsis, {})
30
+ });
31
+ //#endregion
32
+ //#region src/components/Pagination/PaginationItem.tsx
33
+ const PaginationItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
34
+ className: cn("tw:list-none", className),
35
+ ...props
36
+ });
37
+ //#endregion
38
+ //#region src/components/Pagination/PaginationNext.tsx
39
+ const PaginationNext = ({ children, className, ...props }) => /* @__PURE__ */ jsxs(PaginationButton, {
40
+ ...props,
41
+ "aria-label": "Go to next page",
42
+ size: "medium",
43
+ className: cn("tw:flex-row-reverse", className),
44
+ children: [/* @__PURE__ */ jsx(ChevronRight, { className: "tw:size-5" }), children ?? "Next"]
45
+ });
46
+ //#endregion
47
+ //#region src/components/Pagination/PaginationPrevious.tsx
48
+ const PaginationPrevious = ({ children, ...props }) => /* @__PURE__ */ jsxs(PaginationButton, {
49
+ ...props,
50
+ size: "medium",
51
+ "aria-label": "Go to previous page",
52
+ children: [/* @__PURE__ */ jsx(ChevronLeft, { className: "tw:size-5" }), children ?? "Previous"]
53
+ });
54
+ //#endregion
55
+ //#region src/components/Pagination/Pagination.tsx
56
+ const Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx("nav", {
57
+ ...props,
58
+ "aria-label": "pagination",
59
+ className: cn("tailwindcss-preflight", "tw:mx-auto", "tw:flex", "tw:w-full", "tw:justify-center", className)
60
+ });
61
+ Pagination.Content = PaginationContent;
62
+ Pagination.Item = PaginationItem;
63
+ Pagination.Button = PaginationButton;
64
+ Pagination.Previous = PaginationPrevious;
65
+ Pagination.Next = PaginationNext;
66
+ Pagination.Ellipsis = PaginationEllipsis;
67
+ //#endregion
68
+ export { Pagination };
69
+
70
+ //# sourceMappingURL=Pagination-CM_Rszz-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination-CM_Rszz-.js","names":[],"sources":["../src/components/Pagination/PaginationButton.tsx","../src/components/Pagination/PaginationContent.tsx","../src/components/Pagination/PaginationEllipsis.tsx","../src/components/Pagination/PaginationItem.tsx","../src/components/Pagination/PaginationNext.tsx","../src/components/Pagination/PaginationPrevious.tsx","../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\nimport { Button } from '../Button';\n\ntype Props = {\n active?: boolean;\n} & Omit<ComponentProps<typeof Button>, 'variant'>;\n\nexport const PaginationButton = ({\n ref,\n active: isActive = false,\n className,\n children,\n size = 'icon',\n ...props\n}: Props) => (\n <Button\n {...props}\n ref={ref}\n variant=\"invisible\"\n size={size}\n data-slot=\"pagination-link\"\n aria-current={isActive ? 'page' : undefined}\n data-active={isActive}\n className={cn(\n 'tw:data-[active=true]:bg-accent',\n 'tw:data-[active=true]:text-accent-foreground',\n 'tw:data-[active=true]:border-accent',\n className,\n )}\n >\n {children}\n </Button>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'ul'>;\n\nexport const PaginationContent = ({ className, ...props }: Props) => (\n <ul\n {...props}\n className={cn('tw:flex', 'tw:flex-row', 'tw:items-center', 'tw:gap-1', className)}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { Ellipsis } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'span'>;\n\nexport const PaginationEllipsis = ({ className, ...props }: Props) => (\n <span\n aria-hidden=\"true\"\n className={cn(\n // layout\n 'tw:flex',\n 'tw:p-2.5',\n 'tw:items-center',\n 'tw:justify-center',\n\n 'tw:text-foreground',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-4',\n className,\n )}\n {...props}\n >\n <Ellipsis />\n </span>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'li'>;\n\nexport const PaginationItem = ({ className, ...props }: Props) => (\n <li className={cn('tw:list-none', className)} {...props} />\n);\n","import type { ComponentProps } from 'react';\n\nimport { ChevronRight } from '../../icons';\nimport { cn } from '../../utils';\n\nimport { PaginationButton } from './PaginationButton';\n\ntype Props = ComponentProps<typeof PaginationButton>;\n\nexport const PaginationNext = ({ children, className, ...props }: Props) => (\n <PaginationButton\n {...props}\n aria-label=\"Go to next page\"\n size=\"medium\"\n className={cn('tw:flex-row-reverse', className)}\n >\n <ChevronRight className=\"tw:size-5\" />\n {children ?? 'Next'}\n </PaginationButton>\n);\n","import type { ComponentProps } from 'react';\n\nimport { ChevronLeft } from '../../icons';\n\nimport { PaginationButton } from './PaginationButton';\n\ntype Props = ComponentProps<typeof PaginationButton>;\n\nexport const PaginationPrevious = ({ children, ...props }: Props) => (\n <PaginationButton {...props} size=\"medium\" aria-label=\"Go to previous page\">\n <ChevronLeft className=\"tw:size-5\" />\n {children ?? 'Previous'}\n </PaginationButton>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\nimport { PaginationButton } from './PaginationButton';\nimport { PaginationContent } from './PaginationContent';\nimport { PaginationEllipsis } from './PaginationEllipsis';\nimport { PaginationItem } from './PaginationItem';\nimport { PaginationNext } from './PaginationNext';\nimport { PaginationPrevious } from './PaginationPrevious';\n\ntype Props = ComponentProps<'nav'>;\n\nexport const Pagination = ({ className, ...props }: Props) => (\n <nav\n {...props}\n aria-label=\"pagination\"\n className={cn(\n 'tailwindcss-preflight',\n 'tw:mx-auto',\n 'tw:flex',\n 'tw:w-full',\n 'tw:justify-center',\n className,\n )}\n />\n);\n\nPagination.Content = PaginationContent;\nPagination.Item = PaginationItem;\nPagination.Button = PaginationButton;\nPagination.Previous = PaginationPrevious;\nPagination.Next = PaginationNext;\nPagination.Ellipsis = PaginationEllipsis;\n"],"mappings":";;;;;AASA,MAAa,oBAAoB,EAC/B,KACA,QAAQ,WAAW,OACnB,WACA,UACA,OAAO,QACP,GAAG,YAEH,oBAAC,QAAD;CACE,GAAI;CACC;CACL,SAAQ;CACF;CACN,aAAU;CACV,gBAAc,WAAW,SAAS,KAAA;CAClC,eAAa;CACb,WAAW,GACT,mCACA,gDACA,uCACA,SACF;CAEC;AACK,CAAA;;;AC3BV,MAAa,qBAAqB,EAAE,WAAW,GAAG,YAChD,oBAAC,MAAD;CACE,GAAI;CACJ,WAAW,GAAG,WAAW,eAAe,mBAAmB,YAAY,SAAS;AACjF,CAAA;;;ACHH,MAAa,sBAAsB,EAAE,WAAW,GAAG,YACjD,oBAAC,QAAD;CACE,eAAY;CACZ,WAAW,GAET,WACA,YACA,mBACA,qBAEA,sBACA,gDACA,SACF;CACA,GAAI;CAEJ,UAAA,oBAAC,UAAD,CAAW,CAAA;AACP,CAAA;;;AClBR,MAAa,kBAAkB,EAAE,WAAW,GAAG,YAC7C,oBAAC,MAAD;CAAI,WAAW,GAAG,gBAAgB,SAAS;CAAG,GAAI;AAAQ,CAAA;;;ACE5D,MAAa,kBAAkB,EAAE,UAAU,WAAW,GAAG,YACvD,qBAAC,kBAAD;CACE,GAAI;CACJ,cAAW;CACX,MAAK;CACL,WAAW,GAAG,uBAAuB,SAAS;CAJhD,UAAA,CAME,oBAAC,cAAD,EAAc,WAAU,YAAa,CAAA,GACpC,YAAY,MACG;;;;ACVpB,MAAa,sBAAsB,EAAE,UAAU,GAAG,YAChD,qBAAC,kBAAD;CAAkB,GAAI;CAAO,MAAK;CAAS,cAAW;CAAtD,UAAA,CACE,oBAAC,aAAD,EAAa,WAAU,YAAa,CAAA,GACnC,YAAY,UACG;;;;ACCpB,MAAa,cAAc,EAAE,WAAW,GAAG,YACzC,oBAAC,OAAD;CACE,GAAI;CACJ,cAAW;CACX,WAAW,GACT,yBACA,cACA,WACA,aACA,qBACA,SACF;AACD,CAAA;AAGH,WAAW,UAAU;AACrB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,WAAW"}
@@ -0,0 +1,170 @@
1
+ import { cn } from "./classNames-BzrkDnOD.js";
2
+ import { Button } from "./Button-nzmDNS2q.js";
3
+ import { Popover } from "./Popover-Ca0V6AD1.js";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+ import { createContext, use, useMemo, useRef, useState } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ //#region src/components/Popconfirm/context.ts
8
+ const PopconfirmContext = createContext(null);
9
+ const PopconfirmContextProvider = PopconfirmContext;
10
+ const usePopconfirmContext = () => {
11
+ const context = use(PopconfirmContext);
12
+ if (!context) throw new Error("usePopconfirmContext must be used within a Popconfirm");
13
+ return context;
14
+ };
15
+ //#endregion
16
+ //#region src/components/Popconfirm/PopconfirmBody.tsx
17
+ const PopconfirmBody = (props) => /* @__PURE__ */ jsx("div", { ...props });
18
+ //#endregion
19
+ //#region src/components/Popconfirm/PopconfirmCancel.tsx
20
+ const PopconfirmCancel = ({ ref, onClick, children, asChild, className, ...props }) => {
21
+ const { onCancel, isLoading } = usePopconfirmContext();
22
+ const handleClick = (event) => {
23
+ onClick?.(event);
24
+ onCancel(event);
25
+ };
26
+ return /* @__PURE__ */ jsx(Popover.Close, {
27
+ asChild: true,
28
+ onClick: handleClick,
29
+ disabled: isLoading,
30
+ children: asChild ? /* @__PURE__ */ jsx(Slot, {
31
+ ...props,
32
+ ref,
33
+ className,
34
+ children
35
+ }) : /* @__PURE__ */ jsx(Button, {
36
+ variant: "outline",
37
+ size: "small",
38
+ ...props,
39
+ ref,
40
+ className: cn(className),
41
+ children: children ?? "Cancel"
42
+ })
43
+ });
44
+ };
45
+ //#endregion
46
+ //#region src/components/Popconfirm/PopconfirmConfirm.tsx
47
+ const PopconfirmConfirm = ({ ref, onClick, children, asChild, className, ...props }) => {
48
+ const { onConfirm, variant, isLoading } = usePopconfirmContext();
49
+ const handleOnClick = (event) => {
50
+ onClick?.(event);
51
+ onConfirm(event);
52
+ };
53
+ const defaultLabel = (() => {
54
+ if (children) return children;
55
+ return variant === "danger" ? "Delete" : "Confirm";
56
+ })();
57
+ return /* @__PURE__ */ jsx(Popover.Close, {
58
+ asChild: true,
59
+ onClick: handleOnClick,
60
+ disabled: isLoading,
61
+ "data-loading": isLoading,
62
+ children: asChild ? /* @__PURE__ */ jsx(Slot, {
63
+ ...props,
64
+ ref,
65
+ className,
66
+ children
67
+ }) : /* @__PURE__ */ jsx(Button, {
68
+ size: "small",
69
+ variant: variant === "danger" ? "danger" : "primary",
70
+ ...props,
71
+ ref,
72
+ className: cn("tw:flex-1", className),
73
+ isLoading,
74
+ children: defaultLabel
75
+ })
76
+ });
77
+ };
78
+ //#endregion
79
+ //#region src/components/Popconfirm/PopconfirmContent.tsx
80
+ const PopconfirmContent = ({ className, onInteractOutside, ...props }) => {
81
+ const { isLoading } = usePopconfirmContext();
82
+ const handleOnInteractOutside = (event) => {
83
+ if (isLoading) event.preventDefault();
84
+ onInteractOutside?.(event);
85
+ };
86
+ return /* @__PURE__ */ jsx(Popover.Content, {
87
+ ...props,
88
+ onInteractOutside: handleOnInteractOutside,
89
+ className: cn("tw:flex", "tw:flex-col", "tw:gap-3", "tw:px-4", "tw:py-3", className)
90
+ });
91
+ };
92
+ //#endregion
93
+ //#region src/components/Popconfirm/PopconfirmFooter.tsx
94
+ const PopconfirmFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
95
+ ...props,
96
+ className: cn("tw:flex tw:gap-2 tw:w-full", className)
97
+ });
98
+ //#endregion
99
+ //#region src/components/Popconfirm/PopconfirmTrigger.tsx
100
+ const PopconfirmTrigger = ({ onClick, ...props }) => {
101
+ const { enabled, onConfirm } = usePopconfirmContext();
102
+ const handleClick = (event) => {
103
+ if (!enabled) {
104
+ event.preventDefault();
105
+ onConfirm(event);
106
+ }
107
+ onClick?.(event);
108
+ };
109
+ return /* @__PURE__ */ jsx(Popover.Trigger, {
110
+ ...props,
111
+ onClick: handleClick
112
+ });
113
+ };
114
+ //#endregion
115
+ //#region src/components/Popconfirm/Popconfirm.tsx
116
+ const noop = () => void 0;
117
+ const Popconfirm = ({ children, onConfirm = noop, onCancel = noop, variant = "confirm", enabled = true, onOpenChange = noop, open, skipAsyncWait = false, ...rest }) => {
118
+ const [isLoading, setIsLoading] = useState(false);
119
+ const [isOpen, setIsOpen] = useState(false);
120
+ const confirmRef = useRef(onConfirm);
121
+ const cancelRef = useRef(onCancel);
122
+ confirmRef.current = onConfirm;
123
+ cancelRef.current = onCancel;
124
+ const handleOnOpenChange = (open) => {
125
+ setIsOpen(open);
126
+ onOpenChange(open);
127
+ };
128
+ const context = useMemo(() => ({
129
+ variant,
130
+ isLoading,
131
+ enabled,
132
+ onConfirm: (event) => {
133
+ const result = confirmRef.current(event);
134
+ if (!(result instanceof Promise) || skipAsyncWait) return;
135
+ event.preventDefault();
136
+ setIsLoading(true);
137
+ result.finally(() => {
138
+ setIsLoading(false);
139
+ setIsOpen(false);
140
+ });
141
+ },
142
+ onCancel: (event) => {
143
+ cancelRef.current(event);
144
+ }
145
+ }), [
146
+ variant,
147
+ isLoading,
148
+ enabled,
149
+ skipAsyncWait
150
+ ]);
151
+ return /* @__PURE__ */ jsx(Popover, {
152
+ ...rest,
153
+ open: open || isOpen,
154
+ onOpenChange: handleOnOpenChange,
155
+ children: /* @__PURE__ */ jsx(PopconfirmContextProvider, {
156
+ value: context,
157
+ children
158
+ })
159
+ });
160
+ };
161
+ Popconfirm.Confirm = PopconfirmConfirm;
162
+ Popconfirm.Cancel = PopconfirmCancel;
163
+ Popconfirm.Footer = PopconfirmFooter;
164
+ Popconfirm.Content = PopconfirmContent;
165
+ Popconfirm.Body = PopconfirmBody;
166
+ Popconfirm.Trigger = PopconfirmTrigger;
167
+ //#endregion
168
+ export { Popconfirm };
169
+
170
+ //# sourceMappingURL=Popconfirm-BGe1jLov.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popconfirm-BGe1jLov.js","names":[],"sources":["../src/components/Popconfirm/context.ts","../src/components/Popconfirm/PopconfirmBody.tsx","../src/components/Popconfirm/PopconfirmCancel.tsx","../src/components/Popconfirm/PopconfirmConfirm.tsx","../src/components/Popconfirm/PopconfirmContent.tsx","../src/components/Popconfirm/PopconfirmFooter.tsx","../src/components/Popconfirm/PopconfirmTrigger.tsx","../src/components/Popconfirm/Popconfirm.tsx"],"sourcesContent":["import { createContext, type MouseEvent, use } from 'react';\n\nexport type PopconfirmContextType = {\n variant: 'confirm' | 'danger';\n onConfirm: (event: MouseEvent<HTMLButtonElement>) => void | Promise<void>;\n onCancel: (event: MouseEvent<HTMLButtonElement>) => void;\n enabled: boolean;\n isLoading: boolean;\n};\n\nconst PopconfirmContext = createContext<PopconfirmContextType | null>(null);\n\nexport const PopconfirmContextProvider = PopconfirmContext;\n\nexport const usePopconfirmContext = () => {\n const context = use(PopconfirmContext);\n if (!context) throw new Error('usePopconfirmContext must be used within a Popconfirm');\n return context;\n};\n","import type { ComponentProps } from 'react';\n\ntype Props = ComponentProps<'div'>;\n\nexport const PopconfirmBody = (props: Props) => <div {...props} />;\n","import type { ComponentProps, ReactNode } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../utils';\nimport { Button } from '../Button';\nimport { Popover } from '../Popover';\n\nimport { usePopconfirmContext } from './context';\n\ntype SlotProps = { asChild: true } & ComponentProps<'button'>;\ntype ButtonProps = { asChild?: false; children?: ReactNode } & Omit<\n ComponentProps<typeof Button>,\n 'children'\n>;\ntype Props = SlotProps | ButtonProps;\n\nexport const PopconfirmCancel = ({\n ref,\n onClick,\n children,\n asChild,\n className,\n ...props\n}: Props) => {\n const { onCancel, isLoading } = usePopconfirmContext();\n\n const handleClick: ComponentProps<'button'>['onClick'] = (event) => {\n onClick?.(event);\n onCancel(event);\n };\n\n return (\n <Popover.Close asChild onClick={handleClick} disabled={isLoading}>\n {asChild ? (\n <Slot {...props} ref={ref} className={className}>\n {children}\n </Slot>\n ) : (\n <Button variant=\"outline\" size=\"small\" {...props} ref={ref} className={cn(className)}>\n {children ?? 'Cancel'}\n </Button>\n )}\n </Popover.Close>\n );\n};\n","import type { ComponentProps, ReactNode } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../utils';\nimport { Button } from '../Button/Button';\nimport { Popover } from '../Popover';\n\nimport { usePopconfirmContext } from './context';\n\ntype SlotProps = { asChild: true } & ComponentProps<'button'>;\ntype ButtonProps = { asChild?: false; children?: ReactNode } & Omit<\n ComponentProps<typeof Button>,\n 'children' | 'isLoading'\n>;\ntype Props = SlotProps | ButtonProps;\n\nexport const PopconfirmConfirm = ({\n ref,\n onClick,\n children,\n asChild,\n className,\n ...props\n}: Props) => {\n const { onConfirm, variant, isLoading } = usePopconfirmContext();\n\n const handleOnClick: ComponentProps<'button'>['onClick'] = (event) => {\n onClick?.(event);\n onConfirm(event);\n };\n\n const defaultLabel = (() => {\n if (children) return children;\n return variant === 'danger' ? 'Delete' : 'Confirm';\n })();\n\n return (\n <Popover.Close asChild onClick={handleOnClick} disabled={isLoading} data-loading={isLoading}>\n {asChild ? (\n <Slot {...props} ref={ref} className={className}>\n {children}\n </Slot>\n ) : (\n <Button\n size=\"small\"\n variant={variant === 'danger' ? 'danger' : 'primary'}\n {...props}\n ref={ref}\n className={cn('tw:flex-1', className)}\n isLoading={isLoading}\n >\n {defaultLabel}\n </Button>\n )}\n </Popover.Close>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\nimport { Popover } from '../Popover';\n\nimport { usePopconfirmContext } from './context';\n\ntype Props = Omit<ComponentProps<typeof Popover.Content>, 'showArrow'>;\n\nexport const PopconfirmContent = ({ className, onInteractOutside, ...props }: Props) => {\n const { isLoading } = usePopconfirmContext();\n\n const handleOnInteractOutside: Props['onInteractOutside'] = (event) => {\n if (isLoading) event.preventDefault();\n onInteractOutside?.(event);\n };\n\n return (\n <Popover.Content\n {...props}\n onInteractOutside={handleOnInteractOutside}\n className={cn('tw:flex', 'tw:flex-col', 'tw:gap-3', 'tw:px-4', 'tw:py-3', className)}\n />\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const PopconfirmFooter = ({ className, ...props }: Props) => (\n <div {...props} className={cn('tw:flex tw:gap-2 tw:w-full', className)} />\n);\n","import type { ComponentProps, MouseEventHandler } from 'react';\n\nimport { Popover } from '../Popover';\n\nimport { usePopconfirmContext } from './context';\n\ntype Props = ComponentProps<typeof Popover.Trigger>;\n\nexport const PopconfirmTrigger = ({ onClick, ...props }: Props) => {\n const { enabled, onConfirm } = usePopconfirmContext();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n if (!enabled) {\n event.preventDefault();\n onConfirm(event);\n }\n\n onClick?.(event);\n };\n\n return <Popover.Trigger {...props} onClick={handleClick} />;\n};\n","import { useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Popover } from '../Popover';\n\nimport { PopconfirmContextProvider, type PopconfirmContextType } from './context';\nimport { PopconfirmBody } from './PopconfirmBody';\nimport { PopconfirmCancel } from './PopconfirmCancel';\nimport { PopconfirmConfirm } from './PopconfirmConfirm';\nimport { PopconfirmContent } from './PopconfirmContent';\nimport { PopconfirmFooter } from './PopconfirmFooter';\nimport { PopconfirmTrigger } from './PopconfirmTrigger';\n\nconst noop = () => void 0;\n\ntype Props = {\n children: ReactNode;\n skipAsyncWait?: boolean;\n} & ComponentProps<typeof Popover> &\n Omit<Partial<PopconfirmContextType>, 'isLoading'>;\n\nexport const Popconfirm = ({\n children,\n onConfirm = noop,\n onCancel = noop,\n variant = 'confirm',\n enabled = true,\n onOpenChange = noop,\n open,\n skipAsyncWait = false,\n ...rest\n}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n\n const confirmRef = useRef(onConfirm);\n const cancelRef = useRef(onCancel);\n confirmRef.current = onConfirm;\n cancelRef.current = onCancel;\n\n const handleOnOpenChange = (open: boolean) => {\n setIsOpen(open);\n onOpenChange(open);\n };\n\n const context = useMemo<PopconfirmContextType>(\n () => ({\n variant,\n isLoading,\n enabled,\n onConfirm: (event) => {\n const result = confirmRef.current(event);\n\n if (!(result instanceof Promise) || skipAsyncWait) return;\n\n event.preventDefault();\n setIsLoading(true);\n result.finally(() => {\n setIsLoading(false);\n setIsOpen(false);\n });\n },\n onCancel: (event) => {\n cancelRef.current(event);\n },\n }),\n [variant, isLoading, enabled, skipAsyncWait],\n );\n\n return (\n <Popover {...rest} open={open || isOpen} onOpenChange={handleOnOpenChange}>\n <PopconfirmContextProvider value={context}>{children}</PopconfirmContextProvider>\n </Popover>\n );\n};\n\nPopconfirm.Confirm = PopconfirmConfirm;\nPopconfirm.Cancel = PopconfirmCancel;\nPopconfirm.Footer = PopconfirmFooter;\nPopconfirm.Content = PopconfirmContent;\nPopconfirm.Body = PopconfirmBody;\nPopconfirm.Trigger = PopconfirmTrigger;\n"],"mappings":";;;;;;;AAUA,MAAM,oBAAoB,cAA4C,IAAI;AAE1E,MAAa,4BAA4B;AAEzC,MAAa,6BAA6B;CACxC,MAAM,UAAU,IAAI,iBAAiB;CACrC,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,uDAAuD;CACrF,OAAO;AACT;;;ACdA,MAAa,kBAAkB,UAAiB,oBAAC,OAAD,EAAK,GAAI,MAAQ,CAAA;;;ACYjE,MAAa,oBAAoB,EAC/B,KACA,SACA,UACA,SACA,WACA,GAAG,YACQ;CACX,MAAM,EAAE,UAAU,cAAc,qBAAqB;CAErD,MAAM,eAAoD,UAAU;EAClE,UAAU,KAAK;EACf,SAAS,KAAK;CAChB;CAEA,OACE,oBAAC,QAAQ,OAAT;EAAe,SAAA;EAAQ,SAAS;EAAa,UAAU;EACpD,UAAA,UACC,oBAAC,MAAD;GAAM,GAAI;GAAY;GAAgB;GACnC;EACG,CAAA,IAEN,oBAAC,QAAD;GAAQ,SAAQ;GAAU,MAAK;GAAQ,GAAI;GAAY;GAAK,WAAW,GAAG,SAAS;GAChF,UAAA,YAAY;EACP,CAAA;CAEG,CAAA;AAEnB;;;AC5BA,MAAa,qBAAqB,EAChC,KACA,SACA,UACA,SACA,WACA,GAAG,YACQ;CACX,MAAM,EAAE,WAAW,SAAS,cAAc,qBAAqB;CAE/D,MAAM,iBAAsD,UAAU;EACpE,UAAU,KAAK;EACf,UAAU,KAAK;CACjB;CAEA,MAAM,sBAAsB;EAC1B,IAAI,UAAU,OAAO;EACrB,OAAO,YAAY,WAAW,WAAW;CAC3C,EAAA,CAAG;CAEH,OACE,oBAAC,QAAQ,OAAT;EAAe,SAAA;EAAQ,SAAS;EAAe,UAAU;EAAW,gBAAc;EAC/E,UAAA,UACC,oBAAC,MAAD;GAAM,GAAI;GAAY;GAAgB;GACnC;EACG,CAAA,IAEN,oBAAC,QAAD;GACE,MAAK;GACL,SAAS,YAAY,WAAW,WAAW;GAC3C,GAAI;GACC;GACL,WAAW,GAAG,aAAa,SAAS;GACzB;GAEV,UAAA;EACK,CAAA;CAEG,CAAA;AAEnB;;;AC/CA,MAAa,qBAAqB,EAAE,WAAW,mBAAmB,GAAG,YAAmB;CACtF,MAAM,EAAE,cAAc,qBAAqB;CAE3C,MAAM,2BAAuD,UAAU;EACrE,IAAI,WAAW,MAAM,eAAe;EACpC,oBAAoB,KAAK;CAC3B;CAEA,OACE,oBAAC,QAAQ,SAAT;EACE,GAAI;EACJ,mBAAmB;EACnB,WAAW,GAAG,WAAW,eAAe,YAAY,WAAW,WAAW,SAAS;CACpF,CAAA;AAEL;;;AClBA,MAAa,oBAAoB,EAAE,WAAW,GAAG,YAC/C,oBAAC,OAAD;CAAK,GAAI;CAAO,WAAW,GAAG,8BAA8B,SAAS;AAAI,CAAA;;;ACC3E,MAAa,qBAAqB,EAAE,SAAS,GAAG,YAAmB;CACjE,MAAM,EAAE,SAAS,cAAc,qBAAqB;CAEpD,MAAM,eAAqD,UAAU;EACnE,IAAI,CAAC,SAAS;GACZ,MAAM,eAAe;GACrB,UAAU,KAAK;EACjB;EAEA,UAAU,KAAK;CACjB;CAEA,OAAO,oBAAC,QAAQ,SAAT;EAAiB,GAAI;EAAO,SAAS;CAAc,CAAA;AAC5D;;;ACRA,MAAM,aAAa,KAAK;AAQxB,MAAa,cAAc,EACzB,UACA,YAAY,MACZ,WAAW,MACX,UAAU,WACV,UAAU,MACV,eAAe,MACf,MACA,gBAAgB,OAChB,GAAG,WACQ;CACX,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAK;CAChD,MAAM,CAAC,QAAQ,aAAa,SAAS,KAAK;CAE1C,MAAM,aAAa,OAAO,SAAS;CACnC,MAAM,YAAY,OAAO,QAAQ;CACjC,WAAW,UAAU;CACrB,UAAU,UAAU;CAEpB,MAAM,sBAAsB,SAAkB;EAC5C,UAAU,IAAI;EACd,aAAa,IAAI;CACnB;CAEA,MAAM,UAAU,eACP;EACL;EACA;EACA;EACA,YAAY,UAAU;GACpB,MAAM,SAAS,WAAW,QAAQ,KAAK;GAEvC,IAAI,EAAE,kBAAkB,YAAY,eAAe;GAEnD,MAAM,eAAe;GACrB,aAAa,IAAI;GACjB,OAAO,cAAc;IACnB,aAAa,KAAK;IAClB,UAAU,KAAK;GACjB,CAAC;EACH;EACA,WAAW,UAAU;GACnB,UAAU,QAAQ,KAAK;EACzB;CACF,IACA;EAAC;EAAS;EAAW;EAAS;CAAa,CAC7C;CAEA,OACE,oBAAC,SAAD;EAAS,GAAI;EAAM,MAAM,QAAQ;EAAQ,cAAc;EACrD,UAAA,oBAAC,2BAAD;GAA2B,OAAO;GAAU;EAAoC,CAAA;CACzE,CAAA;AAEb;AAEA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,OAAO;AAClB,WAAW,UAAU"}
@@ -0,0 +1,92 @@
1
+ import { cn } from "./classNames-BzrkDnOD.js";
2
+ import { useArgoDesign } from "./context-KxxeMHbR.js";
3
+ import { cva } from "class-variance-authority";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Close, Content, Portal, Root, Trigger } from "@radix-ui/react-popover";
6
+ //#region src/components/Popover/PopoverContent.tsx
7
+ const variants = cva([
8
+ "tailwindcss-preflight",
9
+ "tw:group/popover-content",
10
+ "tw:z-[1055]",
11
+ "tw:focus-visible:outline-hidden",
12
+ "tw:pointer-events-auto",
13
+ "tw:min-w-32",
14
+ "tw:max-h-[var(--radix-popover-content-available-height)]",
15
+ "tw:origin-(--radix-popover-content-transform-origin)",
16
+ "tw:flex",
17
+ "tw:flex-col",
18
+ "tw:overflow-y-auto",
19
+ "tw:box-border",
20
+ "tw:border",
21
+ "tw:border-solid",
22
+ "tw:shadow-lg",
23
+ "tw:data-[state=open]:animate-in",
24
+ "tw:data-[state=open]:fade-in-0",
25
+ "tw:data-[state=open]:zoom-in-95",
26
+ "tw:data-[state=closed]:animate-out",
27
+ "tw:data-[state=closed]:fade-out-0",
28
+ "tw:data-[state=closed]:zoom-out-95",
29
+ "tw:data-[side=bottom]:slide-in-from-top-2",
30
+ "tw:data-[side=left]:slide-in-from-right-2",
31
+ "tw:data-[side=right]:slide-in-from-left-2",
32
+ "tw:data-[side=top]:slide-in-from-bottom-2",
33
+ "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
34
+ "tw:[&_svg]:shrink-0"
35
+ ], {
36
+ defaultVariants: {
37
+ matchTriggerWidth: false,
38
+ variant: "default"
39
+ },
40
+ variants: {
41
+ variant: {
42
+ default: [
43
+ "tw:rounded-md",
44
+ "tw:border-neutral-100",
45
+ "tw:bg-white",
46
+ "tw:text-neutral-800"
47
+ ],
48
+ argo: [
49
+ "tw:rounded-2xl",
50
+ "tw:border-border",
51
+ "tw:bg-popover",
52
+ "tw:text-popover-foreground"
53
+ ]
54
+ },
55
+ matchTriggerWidth: {
56
+ true: ["tw:w-[var(--radix-popover-trigger-width)]"],
57
+ false: []
58
+ }
59
+ }
60
+ });
61
+ const PopoverContent = ({ ref, className, align = "center", sideOffset = 4, matchTriggerWidth = false, children, onEscapeKeyDown, ...props }) => {
62
+ const effectiveVariant = useArgoDesign() ? "argo" : "default";
63
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Content, {
64
+ ref,
65
+ align: matchTriggerWidth ? "start" : align,
66
+ sideOffset,
67
+ className: cn(variants({
68
+ className,
69
+ matchTriggerWidth,
70
+ variant: effectiveVariant
71
+ })),
72
+ onEscapeKeyDown: (event) => {
73
+ event.stopPropagation();
74
+ onEscapeKeyDown?.(event);
75
+ },
76
+ ...props,
77
+ children
78
+ }) });
79
+ };
80
+ //#endregion
81
+ //#region src/components/Popover/Popover.tsx
82
+ const Popover = (props) => /* @__PURE__ */ jsx(Root, { ...props });
83
+ /**
84
+ * Main Layout
85
+ */
86
+ Popover.Content = PopoverContent;
87
+ Popover.Trigger = Trigger;
88
+ Popover.Close = Close;
89
+ //#endregion
90
+ export { Popover };
91
+
92
+ //# sourceMappingURL=Popover-Ca0V6AD1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover-Ca0V6AD1.js","names":[],"sources":["../src/components/Popover/PopoverContent.tsx","../src/components/Popover/Popover.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { Content, Portal } from '@radix-ui/react-popover';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { useArgoDesign } from '../ThemeProvider/context';\n\nconst variants = cva(\n [\n 'tailwindcss-preflight',\n 'tw:group/popover-content',\n 'tw:z-[1055]',\n 'tw:focus-visible:outline-hidden',\n\n // An open Radix Dialog locks `pointer-events: none` on <body>. Popover content\n // is portalled to <body> as a sibling of the dialog, so it inherits the lock\n // and clicks fall through — re-enable pointer events on the content itself\n // (dismiss-on-outside-click still works, it listens on document).\n 'tw:pointer-events-auto',\n\n // sizing\n 'tw:min-w-32',\n 'tw:max-h-[var(--radix-popover-content-available-height)]',\n 'tw:origin-(--radix-popover-content-transform-origin)',\n\n // layout\n 'tw:flex',\n 'tw:flex-col',\n 'tw:overflow-y-auto',\n\n // border\n 'tw:box-border',\n 'tw:border',\n 'tw:border-solid',\n 'tw:shadow-lg',\n\n // open animation\n 'tw:data-[state=open]:animate-in',\n 'tw:data-[state=open]:fade-in-0',\n 'tw:data-[state=open]:zoom-in-95',\n\n // closed animation\n 'tw:data-[state=closed]:animate-out',\n 'tw:data-[state=closed]:fade-out-0',\n 'tw:data-[state=closed]:zoom-out-95',\n\n // position animation\n 'tw:data-[side=bottom]:slide-in-from-top-2',\n 'tw:data-[side=left]:slide-in-from-right-2',\n 'tw:data-[side=right]:slide-in-from-left-2',\n 'tw:data-[side=top]:slide-in-from-bottom-2',\n\n // Default size for nested Lucide icons; callers can override on the icon.\n \"tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4\",\n 'tw:[&_svg]:shrink-0',\n ],\n {\n defaultVariants: {\n matchTriggerWidth: false,\n variant: 'default',\n },\n variants: {\n variant: {\n // Legacy surface — fixed white panel.\n default: ['tw:rounded-md', 'tw:border-neutral-100', 'tw:bg-white', 'tw:text-neutral-800'],\n // Argo surface — semantic popover tokens (brand + dark aware).\n argo: ['tw:rounded-2xl', 'tw:border-border', 'tw:bg-popover', 'tw:text-popover-foreground'],\n },\n matchTriggerWidth: {\n true: ['tw:w-[var(--radix-popover-trigger-width)]'],\n false: [],\n },\n },\n },\n);\n\ntype Props = ComponentProps<typeof Content> & Omit<VariantProps<typeof variants>, 'variant'>;\n\nexport const PopoverContent = ({\n ref,\n className,\n align = 'center',\n sideOffset = 4,\n matchTriggerWidth = false,\n children,\n onEscapeKeyDown,\n ...props\n}: Props) => {\n const effectiveVariant: NonNullable<VariantProps<typeof variants>['variant']> = useArgoDesign()\n ? 'argo'\n : 'default';\n return (\n <Portal>\n <Content\n ref={ref}\n align={matchTriggerWidth ? 'start' : align}\n sideOffset={sideOffset}\n className={cn(variants({ className, matchTriggerWidth, variant: effectiveVariant }))}\n onEscapeKeyDown={(event) => {\n // Stop propagation to prevent parent modals (like FullScreenModal) from closing\n event.stopPropagation();\n onEscapeKeyDown?.(event);\n }}\n {...props}\n >\n {children}\n </Content>\n </Portal>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Close, Root, Trigger } from '@radix-ui/react-popover';\n\nimport { PopoverContent } from './PopoverContent';\n\ntype Props = ComponentProps<typeof Root>;\n\nexport const Popover = (props: Props) => <Root {...props} />;\n\n/**\n * Main Layout\n */\nPopover.Content = PopoverContent;\nPopover.Trigger = Trigger;\nPopover.Close = Close;\n"],"mappings":";;;;;;AAQA,MAAM,WAAW,IACf;CACE;CACA;CACA;CACA;CAMA;CAGA;CACA;CACA;CAGA;CACA;CACA;CAGA;CACA;CACA;CACA;CAGA;CACA;CACA;CAGA;CACA;CACA;CAGA;CACA;CACA;CACA;CAGA;CACA;AACF,GACA;CACE,iBAAiB;EACf,mBAAmB;EACnB,SAAS;CACX;CACA,UAAU;EACR,SAAS;GAEP,SAAS;IAAC;IAAiB;IAAyB;IAAe;GAAqB;GAExF,MAAM;IAAC;IAAkB;IAAoB;IAAiB;GAA4B;EAC5F;EACA,mBAAmB;GACjB,MAAM,CAAC,2CAA2C;GAClD,OAAO,CAAC;EACV;CACF;AACF,CACF;AAIA,MAAa,kBAAkB,EAC7B,KACA,WACA,QAAQ,UACR,aAAa,GACb,oBAAoB,OACpB,UACA,iBACA,GAAG,YACQ;CACX,MAAM,mBAA0E,cAAc,IAC1F,SACA;CACJ,OACE,oBAAC,QAAD,EAAA,UACE,oBAAC,SAAD;EACO;EACL,OAAO,oBAAoB,UAAU;EACzB;EACZ,WAAW,GAAG,SAAS;GAAE;GAAW;GAAmB,SAAS;EAAiB,CAAC,CAAC;EACnF,kBAAkB,UAAU;GAE1B,MAAM,gBAAgB;GACtB,kBAAkB,KAAK;EACzB;EACA,GAAI;EAEH;CACM,CAAA,EACH,CAAA;AAEZ;;;ACvGA,MAAa,WAAW,UAAiB,oBAAC,MAAD,EAAM,GAAI,MAAQ,CAAA;;;;AAK3D,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,QAAQ"}