@keboola/design 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/AGENTS.md +6 -5
  2. package/CHANGELOG.md +94 -0
  3. package/COMPONENT-API.md +62 -61
  4. package/dist/{AIKit-CaAW4GLx.js → AIKit-Cf5plya2.js} +381 -224
  5. package/dist/AIKit-Cf5plya2.js.map +1 -0
  6. package/dist/{Alert-Chz6KZ7e.js → Alert-DziS8n1H.js} +12 -19
  7. package/dist/{Alert-Chz6KZ7e.js.map → Alert-DziS8n1H.js.map} +1 -1
  8. package/dist/{AlertModal-D4AtpvLS.js → AlertModal-De04fFoy.js} +16 -26
  9. package/dist/AlertModal-De04fFoy.js.map +1 -0
  10. package/dist/{AppShell-C8V1KRr_.js → AppShell-BUa3U7-e.js} +6 -9
  11. package/dist/{AppShell-C8V1KRr_.js.map → AppShell-BUa3U7-e.js.map} +1 -1
  12. package/dist/{AutoSaveTextarea-BbMhC5Aq.js → AutoSaveTextarea-CXHOQSun.js} +4 -5
  13. package/dist/{AutoSaveTextarea-BbMhC5Aq.js.map → AutoSaveTextarea-CXHOQSun.js.map} +1 -1
  14. package/dist/{Badge-5GHIsgRS.js → Badge-CFRhducL.js} +18 -23
  15. package/dist/Badge-CFRhducL.js.map +1 -0
  16. package/dist/{BrandEditor-CTGtQUFZ.js → BrandEditor-hiLBX7az.js} +16 -23
  17. package/dist/{BrandEditor-CTGtQUFZ.js.map → BrandEditor-hiLBX7az.js.map} +1 -1
  18. package/dist/{BrandLogo-DkESE19K.js → BrandLogo-Dn7hhp2c.js} +4 -5
  19. package/dist/{BrandLogo-DkESE19K.js.map → BrandLogo-Dn7hhp2c.js.map} +1 -1
  20. package/dist/{Breadcrumb-B2YSNON4.js → Breadcrumb-uGFEIjFF.js} +17 -28
  21. package/dist/{Breadcrumb-B2YSNON4.js.map → Breadcrumb-uGFEIjFF.js.map} +1 -1
  22. package/dist/{Button-BNkyYU8u.js → Button-DbvGzEDb.js} +24 -20
  23. package/dist/Button-DbvGzEDb.js.map +1 -0
  24. package/dist/{Calendar-BnKi1kPu.js → Calendar-lJBTETbk.js} +752 -905
  25. package/dist/Calendar-lJBTETbk.js.map +1 -0
  26. package/dist/{Card-DxjGiqH8.js → Card-VIPfOVW5.js} +8 -14
  27. package/dist/{Card-DxjGiqH8.js.map → Card-VIPfOVW5.js.map} +1 -1
  28. package/dist/{Checkbox-CHDDJyAA.js → Checkbox-B2jLlyaO.js} +6 -8
  29. package/dist/{Checkbox-CHDDJyAA.js.map → Checkbox-B2jLlyaO.js.map} +1 -1
  30. package/dist/{Clipboard-DlwVZS1P.js → Clipboard-fAkDdpEu.js} +4 -5
  31. package/dist/{Clipboard-DlwVZS1P.js.map → Clipboard-fAkDdpEu.js.map} +1 -1
  32. package/dist/{ClipboardButton-B1Hr_n_Z.js → ClipboardButton-71Ugbl8c.js} +6 -8
  33. package/dist/{ClipboardButton-B1Hr_n_Z.js.map → ClipboardButton-71Ugbl8c.js.map} +1 -1
  34. package/dist/{CodeEditor-DVSPdfdo.js → CodeEditor-D_b-ZCng.js} +19 -31
  35. package/dist/{CodeEditor-DVSPdfdo.js.map → CodeEditor-D_b-ZCng.js.map} +1 -1
  36. package/dist/{Collapsible-DD4xTL75.js → Collapsible-zsXk4Vpp.js} +5 -8
  37. package/dist/{Collapsible-DD4xTL75.js.map → Collapsible-zsXk4Vpp.js.map} +1 -1
  38. package/dist/{ColorInput-B_eZIu39.js → ColorInput-Cjr1jkvy.js} +9 -12
  39. package/dist/{ColorInput-B_eZIu39.js.map → ColorInput-Cjr1jkvy.js.map} +1 -1
  40. package/dist/{ColorModeSwitch-B6UEzG0H.js → ColorModeSwitch-CuPYnJ2V.js} +5 -6
  41. package/dist/{ColorModeSwitch-B6UEzG0H.js.map → ColorModeSwitch-CuPYnJ2V.js.map} +1 -1
  42. package/dist/{Combobox-CaKqgstG.js → Combobox-DYjvYgl3.js} +38 -67
  43. package/dist/Combobox-DYjvYgl3.js.map +1 -0
  44. package/dist/{Command-DhXmqFLT.js → Command-BcTb6GsR.js} +14 -24
  45. package/dist/{Command-DhXmqFLT.js.map → Command-BcTb6GsR.js.map} +1 -1
  46. package/dist/{CopyField-D0Pg4Z0R.js → CopyField-CnwAvQz9.js} +16 -28
  47. package/dist/{CopyField-D0Pg4Z0R.js.map → CopyField-CnwAvQz9.js.map} +1 -1
  48. package/dist/{DateInput-BgbMDJkm.js → DateInput-DJNX7Vdx.js} +8 -10
  49. package/dist/{DateInput-BgbMDJkm.js.map → DateInput-DJNX7Vdx.js.map} +1 -1
  50. package/dist/{DatePicker-BXpDRo-R.js → DatePicker-CI59gF3S.js} +4 -5
  51. package/dist/{DatePicker-BXpDRo-R.js.map → DatePicker-CI59gF3S.js.map} +1 -1
  52. package/dist/{DateRangeInput-BW0-_jV0.js → DateRangeInput-B3g8cyS0.js} +8 -10
  53. package/dist/{DateRangeInput-BW0-_jV0.js.map → DateRangeInput-B3g8cyS0.js.map} +1 -1
  54. package/dist/{DateRangePicker-C4-DoWac.js → DateRangePicker-48yOB2qV.js} +9 -10
  55. package/dist/{DateRangePicker-C4-DoWac.js.map → DateRangePicker-48yOB2qV.js.map} +1 -1
  56. package/dist/{DiffView-Dy4z-n-1.js → DiffView-DITZdVbh.js} +7 -12
  57. package/dist/{DiffView-Dy4z-n-1.js.map → DiffView-DITZdVbh.js.map} +1 -1
  58. package/dist/{DropdownMenu-CcVbZ_5u.js → DropdownMenu-Ba9atqDa.js} +21 -37
  59. package/dist/DropdownMenu-Ba9atqDa.js.map +1 -0
  60. package/dist/{FieldBox-BrxLkY9C.js → FieldBox-DdSdJ3ZN.js} +6 -10
  61. package/dist/{FieldBox-BrxLkY9C.js.map → FieldBox-DdSdJ3ZN.js.map} +1 -1
  62. package/dist/{FieldItem-BHUqgSO1.js → FieldItem-D7eCMfMB.js} +6 -8
  63. package/dist/{FieldItem-BHUqgSO1.js.map → FieldItem-D7eCMfMB.js.map} +1 -1
  64. package/dist/{FieldItem-CPN1xjN5.d.ts → FieldItem-fqm3CNR8.d.ts} +7 -6
  65. package/dist/{FileUpload-BYFONpEl.js → FileUpload-DskvxhAr.js} +25 -45
  66. package/dist/{FileUpload-BYFONpEl.js.map → FileUpload-DskvxhAr.js.map} +1 -1
  67. package/dist/{Form-CAofWyMI.js → Form-BUNW7nlt.js} +24 -38
  68. package/dist/{Form-CAofWyMI.js.map → Form-BUNW7nlt.js.map} +1 -1
  69. package/dist/{FormGroup-V5kIgQRN.js → FormGroup-QJB21LKp.js} +12 -20
  70. package/dist/{FormGroup-V5kIgQRN.js.map → FormGroup-QJB21LKp.js.map} +1 -1
  71. package/dist/{FullScreenModal-DAvvlGOz.js → FullScreenModal-RzY5XxiG.js} +8 -12
  72. package/dist/{FullScreenModal-DAvvlGOz.js.map → FullScreenModal-RzY5XxiG.js.map} +1 -1
  73. package/dist/HoverCard-OGWKRXJ7.js +24 -0
  74. package/dist/HoverCard-OGWKRXJ7.js.map +1 -0
  75. package/dist/{InlineEdit-D4P0SvCB.js → InlineEdit-CXL0ZslO.js} +7 -8
  76. package/dist/{InlineEdit-D4P0SvCB.js.map → InlineEdit-CXL0ZslO.js.map} +1 -1
  77. package/dist/{InputGroup-CZv_7QlM.js → InputGroup-BWeanEo7.js} +9 -15
  78. package/dist/{InputGroup-CZv_7QlM.js.map → InputGroup-BWeanEo7.js.map} +1 -1
  79. package/dist/{Kbd-CflKthfu.js → Kbd-BprYCICe.js} +8 -13
  80. package/dist/{Kbd-CflKthfu.js.map → Kbd-BprYCICe.js.map} +1 -1
  81. package/dist/{MarkedText-DlmlJO0u.js → MarkedText-BrganZ_V.js} +4 -6
  82. package/dist/{MarkedText-DlmlJO0u.js.map → MarkedText-BrganZ_V.js.map} +1 -1
  83. package/dist/{MermaidDiagram-Te-5gOCU.js → MermaidDiagram-E3azndPk.js} +9 -11
  84. package/dist/{MermaidDiagram-Te-5gOCU.js.map → MermaidDiagram-E3azndPk.js.map} +1 -1
  85. package/dist/{Modal-CbUz-5YH.js → Modal-Cf_kPEBW.js} +14 -22
  86. package/dist/Modal-Cf_kPEBW.js.map +1 -0
  87. package/dist/{ModalTitle-cy0Ht9VY.js → ModalTitle-7vgpfc6B.js} +6 -9
  88. package/dist/ModalTitle-7vgpfc6B.js.map +1 -0
  89. package/dist/{MultiActionButtonGroup-Dzig87s1.js → MultiActionButtonGroup-8WQwL4UQ.js} +6 -8
  90. package/dist/{MultiActionButtonGroup-Dzig87s1.js.map → MultiActionButtonGroup-8WQwL4UQ.js.map} +1 -1
  91. package/dist/{Navbar-DHUS7XiU.js → Navbar-CRjxVboE.js} +13 -22
  92. package/dist/{Navbar-DHUS7XiU.js.map → Navbar-CRjxVboE.js.map} +1 -1
  93. package/dist/{OtpInput-CY8yCaJk.js → OtpInput-C5plPzGU.js} +7 -11
  94. package/dist/{OtpInput-CY8yCaJk.js.map → OtpInput-C5plPzGU.js.map} +1 -1
  95. package/dist/{PageHeader-CL1A6jFM.js → PageHeader-DosMyar2.js} +6 -10
  96. package/dist/{PageHeader-CL1A6jFM.js.map → PageHeader-DosMyar2.js.map} +1 -1
  97. package/dist/{PageLayout-C9aXTpqV.js → PageLayout-LcvJccOW.js} +5 -8
  98. package/dist/{PageLayout-C9aXTpqV.js.map → PageLayout-LcvJccOW.js.map} +1 -1
  99. package/dist/{PageToolbar-DJ5tdYla.js → PageToolbar-By2HznxO.js} +8 -10
  100. package/dist/{PageToolbar-DJ5tdYla.js.map → PageToolbar-By2HznxO.js.map} +1 -1
  101. package/dist/{Pagination-D27x5KmH.js → Pagination-DrXTrvfD.js} +11 -18
  102. package/dist/{Pagination-D27x5KmH.js.map → Pagination-DrXTrvfD.js.map} +1 -1
  103. package/dist/{Popconfirm-DwLCYNaF.js → Popconfirm-BJuDOHdv.js} +46 -25
  104. package/dist/Popconfirm-BJuDOHdv.js.map +1 -0
  105. package/dist/{Popover-DtUDwUVO.js → Popover-DhOPlWgF.js} +5 -7
  106. package/dist/Popover-DhOPlWgF.js.map +1 -0
  107. package/dist/{RadioGroup-B0TwHjBb.js → RadioGroup-B9oC8P15.js} +12 -18
  108. package/dist/{RadioGroup-B0TwHjBb.js.map → RadioGroup-B9oC8P15.js.map} +1 -1
  109. package/dist/{Resizable-D8zs0kcq.js → Resizable-Co-L3qg7.js} +4 -6
  110. package/dist/{Resizable-D8zs0kcq.js.map → Resizable-Co-L3qg7.js.map} +1 -1
  111. package/dist/{Search-vyZwGKMU.js → Search-OgaNjqQM.js} +26 -21
  112. package/dist/Search-OgaNjqQM.js.map +1 -0
  113. package/dist/{SearchInput-DyYXyw3u.js → SearchInput-eLS-uvOn.js} +18 -29
  114. package/dist/SearchInput-eLS-uvOn.js.map +1 -0
  115. package/dist/{SectionNav-tLK3iF6c.js → SectionNav-L81iJBo3.js} +11 -14
  116. package/dist/{SectionNav-tLK3iF6c.js.map → SectionNav-L81iJBo3.js.map} +1 -1
  117. package/dist/{Select-B22hB_-w.js → Select-DRdkdzBp.js} +29 -26
  118. package/dist/Select-DRdkdzBp.js.map +1 -0
  119. package/dist/{Sheet-0TWKTqid.js → Sheet-DVb4XoJ5.js} +13 -20
  120. package/dist/Sheet-DVb4XoJ5.js.map +1 -0
  121. package/dist/{Sidebar-C5hdANBU.js → Sidebar-DYvodJWN.js} +43 -75
  122. package/dist/{Sidebar-C5hdANBU.js.map → Sidebar-DYvodJWN.js.map} +1 -1
  123. package/dist/{Slider-DrcsM8_G.js → Slider-B9IskDxf.js} +8 -12
  124. package/dist/{Slider-DrcsM8_G.js.map → Slider-B9IskDxf.js.map} +1 -1
  125. package/dist/{Stepper-CQrUPVFL.js → Stepper-D7VspVEt.js} +11 -19
  126. package/dist/{Stepper-CQrUPVFL.js.map → Stepper-D7VspVEt.js.map} +1 -1
  127. package/dist/{Switch-DccpSpzC.js → Switch-DONWW7ju.js} +4 -6
  128. package/dist/{Switch-DccpSpzC.js.map → Switch-DONWW7ju.js.map} +1 -1
  129. package/dist/{Table-CilEvpMq.js → Table-BwgBm3hJ.js} +12 -21
  130. package/dist/{Table-CilEvpMq.js.map → Table-BwgBm3hJ.js.map} +1 -1
  131. package/dist/{Tabs-Ck4uWf8U.js → Tabs-DmJB4l_N.js} +9 -14
  132. package/dist/{Tabs-Ck4uWf8U.js.map → Tabs-DmJB4l_N.js.map} +1 -1
  133. package/dist/{TextInput-CR0_USaY.js → TextInput--1CfZybC.js} +8 -10
  134. package/dist/TextInput--1CfZybC.js.map +1 -0
  135. package/dist/{ThemeProvider-BTK7AL-T.js → ThemeProvider-BCHllN7d.js} +8 -13
  136. package/dist/{ThemeProvider-BTK7AL-T.js.map → ThemeProvider-BCHllN7d.js.map} +1 -1
  137. package/dist/{TimePicker-CoRpiEM3.js → TimePicker-CCV3SOw5.js} +4 -6
  138. package/dist/{TimePicker-CoRpiEM3.js.map → TimePicker-CCV3SOw5.js.map} +1 -1
  139. package/dist/{Timeline-DUXgByUE.js → Timeline-EMOpTLAT.js} +8 -13
  140. package/dist/{Timeline-DUXgByUE.js.map → Timeline-EMOpTLAT.js.map} +1 -1
  141. package/dist/{Toast-937n7n8i.js → Toast-BOTINeTX.js} +4 -6
  142. package/dist/{Toast-937n7n8i.js.map → Toast-BOTINeTX.js.map} +1 -1
  143. package/dist/{ToggleAllTooltip-DEjbWFoj.js → ToggleAllTooltip-BFmA6TXf.js} +4 -6
  144. package/dist/{ToggleAllTooltip-DEjbWFoj.js.map → ToggleAllTooltip-BFmA6TXf.js.map} +1 -1
  145. package/dist/{ToggleGroup-BOz1yyz6.js → ToggleGroup-DsDS7k70.js} +3 -4
  146. package/dist/{ToggleGroup-BOz1yyz6.js.map → ToggleGroup-DsDS7k70.js.map} +1 -1
  147. package/dist/{Workbench-CxgNCs3I.js → Workbench-4s0xP6XU.js} +18 -32
  148. package/dist/{Workbench-CxgNCs3I.js.map → Workbench-4s0xP6XU.js.map} +1 -1
  149. package/dist/{ZoomableSvg-DnFXo2L4.js → ZoomableSvg-BRPGgaWJ.js} +9 -11
  150. package/dist/{ZoomableSvg-DnFXo2L4.js.map → ZoomableSvg-BRPGgaWJ.js.map} +1 -1
  151. package/dist/charts.d.ts +0 -16
  152. package/dist/charts.js +10 -19
  153. package/dist/charts.js.map +1 -1
  154. package/dist/{classNames-DcGnTh2N.js → classNames-DkX30VJU.js} +2 -3
  155. package/dist/{classNames-DcGnTh2N.js.map → classNames-DkX30VJU.js.map} +1 -1
  156. package/dist/editors.d.ts +2 -16
  157. package/dist/editors.js +16 -26
  158. package/dist/editors.js.map +1 -1
  159. package/dist/{findLiteralMatches-DgGLzyG0.js → findLiteralMatches-BaLZTPtx.js} +2 -3
  160. package/dist/{findLiteralMatches-DgGLzyG0.js.map → findLiteralMatches-BaLZTPtx.js.map} +1 -1
  161. package/dist/flint.d.ts +0 -2
  162. package/dist/flint.js +10 -14
  163. package/dist/flint.js.map +1 -1
  164. package/dist/{highlightCode-D354tCXO.js → highlightCode-2spZP7ZA.js} +2 -3
  165. package/dist/{highlightCode-D354tCXO.js.map → highlightCode-2spZP7ZA.js.map} +1 -1
  166. package/dist/{icons-ZIeZXXS7.js → icons-DDR9dFSr.js} +21 -40
  167. package/dist/{icons-ZIeZXXS7.js.map → icons-DDR9dFSr.js.map} +1 -1
  168. package/dist/icons.d.ts +1 -1
  169. package/dist/icons.js +1 -2
  170. package/dist/{index-D-itZ3VP.d.ts → index-BljYaTWL.d.ts} +1 -39
  171. package/dist/index.d.ts +452 -1296
  172. package/dist/index.js +76 -74
  173. package/dist/internal/blocks/AIKit.js +1 -2
  174. package/dist/internal/blocks/AppShell.js +1 -2
  175. package/dist/internal/blocks/AuthLayout.js +3 -4
  176. package/dist/internal/blocks/AutoSaveTextarea.js +1 -2
  177. package/dist/internal/blocks/BrandEditor.js +1 -2
  178. package/dist/internal/blocks/ChartPanel.js +3 -4
  179. package/dist/internal/blocks/ChipEditor.js +6 -7
  180. package/dist/internal/blocks/ClipboardButton.js +1 -2
  181. package/dist/internal/blocks/ColorInput.js +1 -2
  182. package/dist/internal/blocks/ColorModeSwitch.js +1 -2
  183. package/dist/internal/blocks/Command.js +1 -2
  184. package/dist/internal/blocks/CopyField.js +1 -2
  185. package/dist/internal/blocks/DashboardHero.js +2 -3
  186. package/dist/internal/blocks/DateInput.js +1 -2
  187. package/dist/internal/blocks/DateRangeInput.js +1 -2
  188. package/dist/internal/blocks/DiagramShared/DiagramSkeleton.js +1 -2
  189. package/dist/internal/blocks/EmptyConfigurationActionCard.js +2 -3
  190. package/dist/internal/blocks/EmptyState.js +1 -2
  191. package/dist/internal/blocks/ErrorState.js +1 -2
  192. package/dist/internal/blocks/ExportMenu.js +5 -6
  193. package/dist/internal/blocks/FacebookButton.js +3 -4
  194. package/dist/internal/blocks/Form/connectors/ComboboxField.js +3 -4
  195. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +2 -3
  196. package/dist/internal/blocks/Form.js +3 -2
  197. package/dist/internal/blocks/FormGroup.js +1 -2
  198. package/dist/internal/blocks/GoogleButton.js +3 -4
  199. package/dist/internal/blocks/InlineEdit.js +1 -2
  200. package/dist/internal/blocks/MicrosoftButton.js +3 -4
  201. package/dist/internal/blocks/MultiActionButtonGroup.js +1 -2
  202. package/dist/internal/blocks/MultiCombobox.js +7 -8
  203. package/dist/internal/blocks/NumberInput.js +2 -3
  204. package/dist/internal/blocks/OtpInput.js +1 -2
  205. package/dist/internal/blocks/PageHeader.js +1 -2
  206. package/dist/internal/blocks/PageLayout.js +1 -2
  207. package/dist/internal/blocks/PageToolbar.js +1 -2
  208. package/dist/internal/blocks/PasswordInput.js +5 -6
  209. package/dist/internal/blocks/SearchInput.js +1 -2
  210. package/dist/internal/blocks/SearchInputWithNavigation.js +6 -7
  211. package/dist/internal/blocks/SectionNav.js +1 -2
  212. package/dist/internal/blocks/SplitButton.js +4 -5
  213. package/dist/internal/blocks/StatCard.js +4 -6
  214. package/dist/internal/blocks/StatCard.js.map +1 -1
  215. package/dist/internal/blocks/TextInput.js +1 -2
  216. package/dist/internal/blocks/Textarea.js +3 -4
  217. package/dist/internal/blocks/TimeInput.js +6 -7
  218. package/dist/internal/components/Alert.js +1 -2
  219. package/dist/internal/components/AlertModal.js +1 -2
  220. package/dist/internal/components/Avatar.js +3 -4
  221. package/dist/internal/components/Badge.js +1 -2
  222. package/dist/internal/components/BrandLogo.js +1 -2
  223. package/dist/internal/components/Breadcrumb.js +1 -2
  224. package/dist/internal/components/Button.js +1 -2
  225. package/dist/internal/components/ButtonGroup.js +2 -3
  226. package/dist/internal/components/Calendar.js +1 -2
  227. package/dist/internal/components/Card.js +1 -2
  228. package/dist/internal/components/Checkbox.js +1 -2
  229. package/dist/internal/components/Clipboard.js +1 -2
  230. package/dist/internal/components/Collapsible.js +1 -2
  231. package/dist/internal/components/CollapsiblePanel.js +5 -6
  232. package/dist/internal/components/Combobox.js +1 -2
  233. package/dist/internal/components/DatePicker.js +1 -2
  234. package/dist/internal/components/DateRangePicker.js +1 -2
  235. package/dist/internal/components/DiffView.js +1 -2
  236. package/dist/internal/components/DotsLoader.js +2 -3
  237. package/dist/internal/components/DropdownMenu.js +1 -2
  238. package/dist/internal/components/EmptySearchContent.js +1 -2
  239. package/dist/internal/components/FileUpload.js +1 -2
  240. package/dist/internal/components/FullScreenModal.js +1 -2
  241. package/dist/internal/components/HelpBlock.js +1 -2
  242. package/dist/internal/components/HoverCard.js +1 -2
  243. package/dist/internal/components/InputGroup.js +1 -2
  244. package/dist/internal/components/Kbd.js +1 -2
  245. package/dist/internal/components/Label.js +2 -3
  246. package/dist/internal/components/Link.js +2 -3
  247. package/dist/internal/components/MarkedText.js +1 -2
  248. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +3 -4
  249. package/dist/internal/components/MergeEditor/PaneHeader.js +1 -2
  250. package/dist/internal/components/MergeEditor/constants.js +1 -2
  251. package/dist/internal/components/MergeEditor/useMergeDiff.js +1 -2
  252. package/dist/internal/components/Modal.js +1 -2
  253. package/dist/internal/components/Navbar.js +1 -2
  254. package/dist/internal/components/Pagination.js +1 -2
  255. package/dist/internal/components/PanelWithDetails.js +4 -5
  256. package/dist/internal/components/Popconfirm.js +1 -2
  257. package/dist/internal/components/Popover.js +1 -2
  258. package/dist/internal/components/Progress.js +2 -3
  259. package/dist/internal/components/RadioGroup.js +1 -2
  260. package/dist/internal/components/Resizable.js +1 -2
  261. package/dist/internal/components/ScrollArea.js +3 -5
  262. package/dist/internal/components/ScrollArea.js.map +1 -1
  263. package/dist/internal/components/Search.js +1 -2
  264. package/dist/internal/components/Select.js +1 -2
  265. package/dist/internal/components/Separator.js +2 -3
  266. package/dist/internal/components/Sheet.js +1 -2
  267. package/dist/internal/components/Sidebar.js +1 -2
  268. package/dist/internal/components/Skeleton/Skeleton.js +2 -3
  269. package/dist/internal/components/Skeleton/SkeletonList.js +2 -3
  270. package/dist/internal/components/Slider.js +1 -2
  271. package/dist/internal/components/SpotlightBackdrop.js +3 -5
  272. package/dist/internal/components/SpotlightBackdrop.js.map +1 -1
  273. package/dist/internal/components/Stepper.js +1 -2
  274. package/dist/internal/components/Switch.js +1 -2
  275. package/dist/internal/components/Table.js +1 -2
  276. package/dist/internal/components/Tabs.js +1 -2
  277. package/dist/internal/components/ThemeProvider.js +2 -2
  278. package/dist/internal/components/TimePicker.js +1 -2
  279. package/dist/internal/components/Timeline.js +1 -2
  280. package/dist/internal/components/Toast.js +2 -2
  281. package/dist/internal/components/Toggle.js +2 -3
  282. package/dist/internal/components/ToggleGroup.js +1 -2
  283. package/dist/internal/components/Tooltip.js +1 -2
  284. package/dist/internal/components/Truncated.js +3 -4
  285. package/dist/internal/components/Workbench.js +1 -2
  286. package/dist/internal/components/ZoomableSvg.js +1 -2
  287. package/dist/internal/hooks/useAltDigitHotkey.js +1 -2
  288. package/dist/internal/hooks/useAutosizeInput.js +1 -2
  289. package/dist/internal/hooks/useScrollbarPosition.js +2 -3
  290. package/dist/internal/hooks/useStableCallback.js +1 -2
  291. package/dist/internal/hooks/useTimeout.js +18 -0
  292. package/dist/internal/hooks/useTimeout.js.map +1 -0
  293. package/dist/internal/utils/accessibleName.js +1 -2
  294. package/dist/internal/utils/mergeRefs.js +1 -2
  295. package/dist/internal/utils.js +3 -3
  296. package/dist/markdown-editor.d.ts +0 -4
  297. package/dist/markdown-editor.js +30 -49
  298. package/dist/markdown-editor.js.map +1 -1
  299. package/dist/mermaid.d.ts +0 -2
  300. package/dist/mermaid.js +1 -2
  301. package/dist/rjsf.d.ts +0 -8
  302. package/dist/rjsf.js +47 -78
  303. package/dist/rjsf.js.map +1 -1
  304. package/dist/{rolldown-runtime-Bdc48AWt.js → rolldown-runtime-BrwM56v-.js} +2 -3
  305. package/dist/{styles-T8xwr0sR.js → styles-BXXXosW_.js} +2 -3
  306. package/dist/{styles-T8xwr0sR.js.map → styles-BXXXosW_.js.map} +1 -1
  307. package/dist/{styles-DxazJ8Mz.js → styles-nwtCRF7y.js} +2 -3
  308. package/dist/{styles-DxazJ8Mz.js.map → styles-nwtCRF7y.js.map} +1 -1
  309. package/dist/styles.css +1 -1
  310. package/dist/{svgCache-Dhmbe-7i.js → svgCache-BzvN_fgr.js} +2 -3
  311. package/dist/{svgCache-Dhmbe-7i.js.map → svgCache-BzvN_fgr.js.map} +1 -1
  312. package/dist/{svgTransforms-Hnvev3Vs.js → svgTransforms-BBxxO9T6.js} +4 -6
  313. package/dist/{svgTransforms-Hnvev3Vs.js.map → svgTransforms-BBxxO9T6.js.map} +1 -1
  314. package/dist/testing.d.ts +0 -2
  315. package/dist/testing.js +2 -3
  316. package/dist/{themeScopeContext-CEVXbYvZ.js → themeScopeContext-BZGPdyG8.js} +6 -11
  317. package/dist/{themeScopeContext-CEVXbYvZ.js.map → themeScopeContext-BZGPdyG8.js.map} +1 -1
  318. package/dist/{themeTokens-DCeb62ap.js → themeTokens-B60cQtAY.js} +4 -6
  319. package/dist/{themeTokens-DCeb62ap.js.map → themeTokens-B60cQtAY.js.map} +1 -1
  320. package/dist/{toast-Y3cTMBW8.js → toast-Dzj1EFOb.js} +10 -17
  321. package/dist/{toast-Y3cTMBW8.js.map → toast-Dzj1EFOb.js.map} +1 -1
  322. package/dist/{types-BPcAjMG0.d.ts → types-CsZuwfxc.d.ts} +1 -3
  323. package/dist/{useControllableState-CUYXMsfz.js → useControllableState-BCvUOC6G.js} +2 -3
  324. package/dist/{useControllableState-CUYXMsfz.js.map → useControllableState-BCvUOC6G.js.map} +1 -1
  325. package/dist/{useElement-D-RjrGa4.js → useElement-Dcoo9Jlr.js} +2 -3
  326. package/dist/{useElement-D-RjrGa4.js.map → useElement-Dcoo9Jlr.js.map} +1 -1
  327. package/dist/{useMergeDiff-CvowEXJ1.js → useMergeDiff-DFIATaTw.js} +3 -5
  328. package/dist/{useMergeDiff-CvowEXJ1.js.map → useMergeDiff-DFIATaTw.js.map} +1 -1
  329. package/dist/{utils-DwC9u0tM.js → utils-DjFceY3H.js} +18 -34
  330. package/dist/utils-DjFceY3H.js.map +1 -0
  331. package/dist/vega.d.ts +1 -5
  332. package/dist/vega.js +3 -4
  333. package/dist/{vegaTheme-ISwGXvof.js → vegaTheme-BcTNRmVS.js} +3 -4
  334. package/dist/{vegaTheme-ISwGXvof.js.map → vegaTheme-BcTNRmVS.js.map} +1 -1
  335. package/dist/{vegaTokens-DCkvpIVE.js → vegaTokens-DnCcy7JY.js} +3 -4
  336. package/dist/{vegaTokens-DCkvpIVE.js.map → vegaTokens-DnCcy7JY.js.map} +1 -1
  337. package/package.json +40 -40
  338. package/src/styles.css +70 -4
  339. package/src/theme.css +117 -11
  340. package/dist/AIKit-CaAW4GLx.js.map +0 -1
  341. package/dist/AlertModal-D4AtpvLS.js.map +0 -1
  342. package/dist/Badge-5GHIsgRS.js.map +0 -1
  343. package/dist/Button-BNkyYU8u.js.map +0 -1
  344. package/dist/Calendar-BnKi1kPu.js.map +0 -1
  345. package/dist/Combobox-CaKqgstG.js.map +0 -1
  346. package/dist/DropdownMenu-CcVbZ_5u.js.map +0 -1
  347. package/dist/HoverCard-Cv5rmvJq.js +0 -26
  348. package/dist/HoverCard-Cv5rmvJq.js.map +0 -1
  349. package/dist/Modal-CbUz-5YH.js.map +0 -1
  350. package/dist/ModalTitle-cy0Ht9VY.js.map +0 -1
  351. package/dist/Popconfirm-DwLCYNaF.js.map +0 -1
  352. package/dist/Popover-DtUDwUVO.js.map +0 -1
  353. package/dist/Search-vyZwGKMU.js.map +0 -1
  354. package/dist/SearchInput-DyYXyw3u.js.map +0 -1
  355. package/dist/Select-B22hB_-w.js.map +0 -1
  356. package/dist/Sheet-0TWKTqid.js.map +0 -1
  357. package/dist/TextInput-CR0_USaY.js.map +0 -1
  358. package/dist/utils-DwC9u0tM.js.map +0 -1
@@ -1,13 +1,13 @@
1
- import { cn } from "./classNames-DcGnTh2N.js";
2
- import { Check, ChevronDown, ChevronUp } from "./icons-ZIeZXXS7.js";
3
- import { Button } from "./Button-BNkyYU8u.js";
4
- import { overlayTriggerVariants } from "./styles-T8xwr0sR.js";
1
+ import { cn } from "./classNames-DkX30VJU.js";
2
+ import { Check, ChevronDown, ChevronUp } from "./icons-DDR9dFSr.js";
3
+ import { Button } from "./Button-DbvGzEDb.js";
4
+ import { overlayTriggerVariants } from "./styles-BXXXosW_.js";
5
5
  import { forwardAccessibleName } from "./internal/utils/accessibleName.js";
6
6
  import { useId } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import * as SelectPrimitive from "@radix-ui/react-select";
9
9
  import { Root } from "@radix-ui/react-select";
10
- //#region src/components/Select/SelectContent.tsx
10
+ // src/components/Select/SelectContent.tsx
11
11
  const scrollButtonStyles = cn("tw:flex", "tw:items-center", "tw:justify-center", "tw:rounded-sm", "tw:p-1", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-5");
12
12
  /**
13
13
  * Listbox container for `Select`. Portals items into a popover sized to the trigger.
@@ -22,7 +22,7 @@ const SelectContent = ({ ref, className, children, container, position = "popper
22
22
  ref,
23
23
  position,
24
24
  sideOffset,
25
- className: cn("tailwindcss-preflight", "tw:z-[1055]", "tw:flex tw:flex-col", "tw:p-1", "tw:overflow-hidden", "tw:origin-(--radix-select-content-transform-origin)", "tw:max-h-[var(--radix-select-content-available-height)]", "tw:min-w-[var(--radix-select-trigger-width)]", "tw:bg-popover", "tw:text-popover-foreground", "tw:shadow-md", "tw:ring-1", "tw:ring-foreground/10", "tw:rounded-lg", "tw:data-[state=open]:animate-in", "tw:data-[state=open]:fade-in-0", "tw:data-[state=open]:zoom-in-95", "tw:data-[state=closed]:animate-out", "tw:data-[state=closed]:fade-out-0", "tw:data-[state=closed]:zoom-out-95", "tw:data-[side=bottom]:slide-in-from-top-2", "tw:data-[side=left]:slide-in-from-right-2", "tw:data-[side=right]:slide-in-from-left-2", "tw:data-[side=top]:slide-in-from-bottom-2", className),
25
+ className: cn("tailwindcss-preflight", "tw:z-overlay", "tw:flex tw:flex-col", "tw:p-1", "tw:overflow-hidden", "tw:origin-(--radix-select-content-transform-origin)", "tw:max-h-[var(--radix-select-content-available-height)]", "tw:min-w-[var(--radix-select-trigger-width)]", "tw:bg-popover", "tw:text-popover-foreground", "tw:shadow-md", "tw:ring-1", "tw:ring-foreground/10", "tw:rounded-lg", "tw:data-[state=open]:animate-in", "tw:data-[state=open]:fade-in-0", "tw:data-[state=open]:zoom-in-95", "tw:data-[state=closed]:animate-out", "tw:data-[state=closed]:fade-out-0", "tw:data-[state=closed]:zoom-out-95", "tw:data-[side=bottom]:slide-in-from-top-2", "tw:data-[side=left]:slide-in-from-right-2", "tw:data-[side=right]:slide-in-from-left-2", "tw:data-[side=top]:slide-in-from-bottom-2", className),
26
26
  children: [
27
27
  /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, {
28
28
  className: scrollButtonStyles,
@@ -40,14 +40,12 @@ const SelectContent = ({ ref, className, children, container, position = "popper
40
40
  })
41
41
  });
42
42
  };
43
- //#endregion
44
- //#region src/components/Select/SelectGroup.tsx
43
+ // src/components/Select/SelectGroup.tsx
45
44
  const SelectGroup = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Group, {
46
45
  ...props,
47
46
  className: cn("tw:flex tw:flex-col tw:gap-0.5", className)
48
47
  });
49
- //#endregion
50
- //#region src/components/Select/SelectItem.tsx
48
+ // src/components/Select/SelectItem.tsx
51
49
  const SelectItem = ({ ref, className, children, icon, hint, "aria-describedby": ariaDescribedBy, ...props }) => {
52
50
  const hintId = useId();
53
51
  return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
@@ -73,23 +71,19 @@ const SelectItem = ({ ref, className, children, icon, hint, "aria-describedby":
73
71
  ]
74
72
  });
75
73
  };
76
- //#endregion
77
- //#region src/components/Select/SelectLabel.tsx
74
+ // src/components/Select/SelectLabel.tsx
78
75
  const SelectLabel = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Label, {
79
76
  ...props,
80
77
  className: cn("tw:px-2", "tw:py-1.5", "tw:text-xs", "tw:font-medium", "tw:leading-none", "tw:text-muted-foreground", className)
81
78
  });
82
- //#endregion
83
- //#region src/components/Select/SelectRoot.tsx
79
+ // src/components/Select/SelectRoot.tsx
84
80
  const SelectRoot = (props) => /* @__PURE__ */ jsx(Root, { ...props });
85
- //#endregion
86
- //#region src/components/Select/SelectSeparator.tsx
81
+ // src/components/Select/SelectSeparator.tsx
87
82
  const SelectSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
88
83
  ...props,
89
84
  className: cn("tw:mx-2 tw:my-1 tw:h-px tw:bg-border", className)
90
85
  });
91
- //#endregion
92
- //#region src/components/Select/SelectTrigger.tsx
86
+ // src/components/Select/SelectTrigger.tsx
93
87
  const SelectTrigger = ({ ref, className, inline, state, placeholder, ...props }) => {
94
88
  if (inline) return /* @__PURE__ */ jsx(SelectPrimitive.Trigger, {
95
89
  ...props,
@@ -114,29 +108,39 @@ const SelectTrigger = ({ ref, className, inline, state, placeholder, ...props })
114
108
  })]
115
109
  });
116
110
  };
117
- //#endregion
118
- //#region src/components/Select/Select.tsx
111
+ // src/components/Select/Select.tsx
119
112
  const isGroup = (itemOrGroup) => "items" in itemOrGroup;
120
113
  /**
114
+ * Radix's value for an item whose `value` is `''`.
115
+ *
116
+ * - Radix reads `''` as "no value" and shows the placeholder, even when an item holds it.
117
+ * - Swapped in only when such an item exists; otherwise `''` still shows the placeholder.
118
+ * - With `name` in a natively submitted form, the hidden `<select>` sends it and passes `required`.
119
+ */
120
+ const EMPTY_ITEM_VALUE = "__select-empty-item__";
121
+ /**
121
122
  * Single selection from a short enumerated list. Built on Radix Select.
122
123
  *
123
124
  * - Use for ~10 or fewer options where search adds nothing; else `Combobox` / `MultiCombobox`.
124
125
  * - In forms: `FormGroup`, or `useAppForm` + `field.SelectField` for validation.
125
126
  * - Compound parts (`Select.Root`, `.Trigger`, `.Content`, `.Item`) for custom item layouts.
127
+ * - An item may hold `''` (an "All" filter): selected, it shows its label, not the placeholder.
126
128
  */
127
129
  const Select = ({ value, defaultValue, onValueChange, disabled, name, required, open, defaultOpen, onOpenChange, dir, autoComplete, form, inline, state, placeholder, className, onBlur, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, items = [], ...accessibleName }) => {
128
130
  const groupKeyId = useId();
131
+ const hasEmptyItem = items.some((itemOrGroup) => isGroup(itemOrGroup) ? itemOrGroup.items.some((item) => item.value === "") : itemOrGroup.value === "");
132
+ const toRootValue = (rawValue) => hasEmptyItem && rawValue === "" ? EMPTY_ITEM_VALUE : rawValue;
129
133
  const renderItem = (item) => /* @__PURE__ */ jsx(SelectItem, {
130
- value: item.value,
134
+ value: toRootValue(item.value),
131
135
  icon: item.icon,
132
136
  hint: item.hint,
133
137
  disabled: item.disabled,
134
138
  children: item.label
135
139
  }, item.value);
136
140
  return /* @__PURE__ */ jsxs(SelectRoot, {
137
- value,
138
- defaultValue,
139
- onValueChange,
141
+ value: toRootValue(value),
142
+ defaultValue: toRootValue(defaultValue),
143
+ onValueChange: onValueChange && ((rootValue) => onValueChange(rootValue === EMPTY_ITEM_VALUE ? "" : rootValue)),
140
144
  disabled,
141
145
  name,
142
146
  required,
@@ -169,7 +173,6 @@ Select.Item = SelectItem;
169
173
  Select.Group = SelectGroup;
170
174
  Select.Label = SelectLabel;
171
175
  Select.Separator = SelectSeparator;
172
- //#endregion
173
176
  export { Select };
174
177
 
175
- //# sourceMappingURL=Select-B22hB_-w.js.map
178
+ //# sourceMappingURL=Select-DRdkdzBp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select-DRdkdzBp.js","names":["SelectItemComponent"],"sources":["../src/components/Select/SelectContent.tsx","../src/components/Select/SelectGroup.tsx","../src/components/Select/SelectItem.tsx","../src/components/Select/SelectLabel.tsx","../src/components/Select/SelectRoot.tsx","../src/components/Select/SelectSeparator.tsx","../src/components/Select/SelectTrigger.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { ChevronDown, ChevronUp } from '../../icons';\nimport { cn } from '../../utils';\n\nconst scrollButtonStyles = cn(\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:rounded-sm',\n 'tw:p-1',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-5',\n);\n\n/**\n * Props for `Select.Content`. `container` portals the listbox into a custom element (useful inside modals).\n */\ntype Props = ComponentProps<typeof SelectPrimitive.Content> & {\n container?: HTMLElement | null;\n};\n\n/**\n * Listbox container for `Select`. Portals items into a popover sized to the trigger.\n * Normally rendered implicitly by `Select`; use directly only when composing custom item layouts via\n * the `Select.Root` / `Select.Trigger` / `Select.Content` compound parts.\n */\nexport const SelectContent = ({\n ref,\n className,\n children,\n container,\n position = 'popper',\n sideOffset = 4,\n ...props\n}: Props) => {\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content\n {...props}\n ref={ref}\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'tailwindcss-preflight',\n 'tw:z-overlay',\n\n // layout\n 'tw:flex tw:flex-col',\n 'tw:p-1',\n 'tw:overflow-hidden',\n 'tw:origin-(--radix-select-content-transform-origin)',\n\n // sizing\n 'tw:max-h-[var(--radix-select-content-available-height)]',\n 'tw:min-w-[var(--radix-select-trigger-width)]',\n\n // appearance\n 'tw:bg-popover',\n 'tw:text-popover-foreground',\n 'tw:shadow-md',\n 'tw:ring-1',\n 'tw:ring-foreground/10',\n 'tw:rounded-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 animations\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 className,\n )}\n >\n <SelectPrimitive.ScrollUpButton className={scrollButtonStyles}>\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n\n <SelectPrimitive.Viewport\n className={cn({\n 'tw:h-[var(--radix-select-trigger-height)] tw:w-full tw:min-w-[var(--radix-select-trigger-width)]':\n position === 'popper',\n })}\n >\n {children}\n </SelectPrimitive.Viewport>\n\n <SelectPrimitive.ScrollDownButton className={scrollButtonStyles}>\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n};\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Group>;\n\nexport const SelectGroup = ({ className, ...props }: Props) => (\n <SelectPrimitive.Group {...props} className={cn('tw:flex tw:flex-col tw:gap-0.5', className)} />\n);\n","import { useId } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { Check } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Item> & {\n icon?: ReactNode;\n hint?: ReactNode;\n};\n\nexport const SelectItem = ({\n ref,\n className,\n children,\n icon,\n hint,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: Props) => {\n const hintId = useId();\n\n return (\n <SelectPrimitive.Item\n {...props}\n ref={ref}\n // Radix names the option from `ItemText` alone (`aria-labelledby`), so the hint is\n // described rather than named — it reaches a screen reader without joining the label.\n aria-describedby={\n [ariaDescribedBy, hint ? hintId : null].filter(Boolean).join(' ') || undefined\n }\n className={cn(\n 'tw:group/select-item',\n\n // layout\n 'tw:relative',\n 'tw:flex',\n 'tw:flex-1',\n 'tw:items-center',\n 'tw:gap-2',\n\n // spacing\n 'tw:py-2',\n 'tw:px-2',\n 'tw:rounded-lg',\n\n // typography\n 'tw:text-sm',\n 'tw:select-none',\n 'tw:cursor-default',\n 'tw:outline-hidden',\n\n // highlighted (keyboard / hover)\n 'tw:focus:outline-hidden',\n 'tw:data-[highlighted]:bg-hover',\n 'tw:data-[highlighted]:text-hover-foreground',\n\n // disabled\n 'tw:data-[disabled]:pointer-events-none',\n 'tw:data-[disabled]:opacity-disabled',\n\n // child svg defaults\n 'tw:[&_svg]:pointer-events-none',\n 'tw:[&_svg]:shrink-0',\n 'tw:[&_svg]:text-muted-foreground',\n \"tw:[&_svg:not([class*='tw:size-'])]:size-4\",\n className,\n )}\n >\n {icon}\n <span className=\"tw:flex-1 tw:truncate\">\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </span>\n {/* Outside `ItemText`, so the trigger shows the label alone once the option is picked. */}\n {hint && (\n <span id={hintId} className=\"tw:shrink-0 tw:text-xs tw:text-muted-foreground\">\n {hint}\n </span>\n )}\n <SelectPrimitive.ItemIndicator className=\"tw:pointer-events-none\">\n <Check className=\"tw:size-4\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n};\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Label>;\n\nexport const SelectLabel = ({ className, ...props }: Props) => (\n <SelectPrimitive.Label\n {...props}\n className={cn(\n // Soft grey section label.\n 'tw:px-2',\n 'tw:py-1.5',\n 'tw:text-xs',\n 'tw:font-medium',\n 'tw:leading-none',\n 'tw:text-muted-foreground',\n\n className,\n )}\n />\n);\n","import type { ReactNode } from 'react';\nimport { Root } from '@radix-ui/react-select';\n\n// Mirror Radix's `SelectProps` as an explicit list. We can't infer via\n// `ComponentProps<typeof Root>` or reuse Radix's `SelectProps` directly: both\n// transitively reference the un-exported `SelectSharedProps` interface, and\n// TS4023 fires when DTS emits anything that consumes it (e.g. `useAppForm`).\n// Keep this in sync with `@radix-ui/react-select`'s `SelectProps` shape.\nexport type SelectRootProps = {\n // SelectSharedProps\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: 'ltr' | 'rtl';\n name?: string;\n autoComplete?: string;\n disabled?: boolean;\n required?: boolean;\n form?: string;\n // SelectProps\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n};\n\nexport const SelectRoot = (props: SelectRootProps) => <Root {...props} />;\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Separator>;\n\nexport const SelectSeparator = ({ className, ...props }: Props) => (\n <SelectPrimitive.Separator\n {...props}\n className={cn('tw:mx-2 tw:my-1 tw:h-px tw:bg-border', className)}\n />\n);\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { type VariantProps } from 'class-variance-authority';\n\nimport { ChevronDown } from '../../icons';\nimport { cn } from '../../utils';\nimport type { WithAccessibleName } from '../../utils/accessibleName';\nimport { Button } from '../Button';\nimport { overlayTriggerVariants } from '../OverlayTrigger/styles';\n\ntype BaseProps = ComponentProps<typeof SelectPrimitive.Trigger> &\n VariantProps<typeof overlayTriggerVariants> & {\n /** Text-like trigger with no field chrome, for a select inside a sentence or toolbar; ignores `state`. */\n inline?: boolean;\n } & Pick<ComponentProps<typeof SelectPrimitive.Value>, 'placeholder'>;\n\n/** `role=\"combobox\"` is not named from content: neither the item label nor `placeholder` names it. */\ntype SelectTriggerProps = WithAccessibleName<BaseProps>;\n\nexport const SelectTrigger = ({\n ref,\n className,\n inline,\n state,\n placeholder,\n ...props\n}: SelectTriggerProps) => {\n if (inline)\n return (\n <SelectPrimitive.Trigger {...props} ref={ref} className={cn(className)} asChild>\n <Button variant=\"inline\">\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon asChild>\n <ChevronDown />\n </SelectPrimitive.Icon>\n </Button>\n </SelectPrimitive.Trigger>\n );\n\n return (\n <SelectPrimitive.Trigger\n {...props}\n ref={ref}\n className={cn(overlayTriggerVariants({ state }), className)}\n >\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"tw:size-4 tw:text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n};\n","import { useId } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { forwardAccessibleName, type WithAccessibleName } from '../../utils/accessibleName';\n\nimport { SelectContent } from './SelectContent';\nimport { SelectGroup } from './SelectGroup';\nimport { SelectItem as SelectItemComponent } from './SelectItem';\nimport { SelectLabel } from './SelectLabel';\nimport { SelectRoot, type SelectRootProps } from './SelectRoot';\nimport { SelectSeparator } from './SelectSeparator';\nimport { SelectTrigger } from './SelectTrigger';\n\nexport type SelectItem = {\n value: string;\n label: ReactNode;\n icon?: ReactNode;\n /** Trailing muted note shown in the listbox only — never in the trigger. */\n hint?: ReactNode;\n disabled?: boolean;\n};\n\nexport type SelectItemGroup = {\n label?: ReactNode;\n items: readonly SelectItem[];\n};\n\nconst isGroup = (itemOrGroup: SelectItem | SelectItemGroup): itemOrGroup is SelectItemGroup =>\n 'items' in itemOrGroup;\n\n/**\n * Radix's value for an item whose `value` is `''`.\n *\n * - Radix reads `''` as \"no value\" and shows the placeholder, even when an item holds it.\n * - Swapped in only when such an item exists; otherwise `''` still shows the placeholder.\n * - With `name` in a natively submitted form, the hidden `<select>` sends it and passes `required`.\n */\nconst EMPTY_ITEM_VALUE = '__select-empty-item__';\n\ntype TriggerProps = ComponentProps<typeof SelectTrigger>;\n\ntype BaseProps = Pick<\n SelectRootProps,\n | 'value'\n | 'defaultValue'\n | 'onValueChange'\n | 'disabled'\n | 'name'\n | 'required'\n | 'open'\n | 'defaultOpen'\n | 'onOpenChange'\n | 'dir'\n | 'autoComplete'\n | 'form'\n> &\n Pick<\n TriggerProps,\n | 'inline'\n | 'state'\n | 'placeholder'\n | 'id'\n | 'className'\n | 'onBlur'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-describedby'\n | 'aria-invalid'\n | 'aria-required'\n > & {\n items?: readonly (SelectItem | SelectItemGroup)[];\n };\n\n/** `role=\"combobox\"` is not named from content: neither the item label nor `placeholder` names it. */\nexport type SelectProps = WithAccessibleName<BaseProps>;\n\n/**\n * Single selection from a short enumerated list. Built on Radix Select.\n *\n * - Use for ~10 or fewer options where search adds nothing; else `Combobox` / `MultiCombobox`.\n * - In forms: `FormGroup`, or `useAppForm` + `field.SelectField` for validation.\n * - Compound parts (`Select.Root`, `.Trigger`, `.Content`, `.Item`) for custom item layouts.\n * - An item may hold `''` (an \"All\" filter): selected, it shows its label, not the placeholder.\n */\nexport const Select = ({\n value,\n defaultValue,\n onValueChange,\n disabled,\n name,\n required,\n open,\n defaultOpen,\n onOpenChange,\n dir,\n autoComplete,\n form,\n inline,\n state,\n placeholder,\n className,\n onBlur,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n 'aria-required': ariaRequired,\n items = [],\n // Kept grouped: destructured apart, the required-one-of union becomes three optional props.\n ...accessibleName\n}: SelectProps) => {\n const groupKeyId = useId();\n const hasEmptyItem = items.some((itemOrGroup) =>\n isGroup(itemOrGroup)\n ? itemOrGroup.items.some((item) => item.value === '')\n : itemOrGroup.value === '',\n );\n const toRootValue = <T extends string | undefined>(rawValue: T) =>\n hasEmptyItem && rawValue === '' ? EMPTY_ITEM_VALUE : rawValue;\n\n const renderItem = (item: SelectItem) => (\n <SelectItemComponent\n key={item.value}\n value={toRootValue(item.value)}\n icon={item.icon}\n hint={item.hint}\n disabled={item.disabled}\n >\n {item.label}\n </SelectItemComponent>\n );\n\n return (\n <SelectRoot\n value={toRootValue(value)}\n defaultValue={toRootValue(defaultValue)}\n onValueChange={\n onValueChange &&\n ((rootValue) => onValueChange(rootValue === EMPTY_ITEM_VALUE ? '' : rootValue))\n }\n disabled={disabled}\n name={name}\n required={required}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n dir={dir}\n autoComplete={autoComplete}\n form={form}\n >\n <SelectTrigger\n {...forwardAccessibleName(accessibleName)}\n inline={inline}\n state={state}\n placeholder={placeholder}\n className={className}\n onBlur={onBlur}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-required={ariaRequired}\n />\n <SelectContent>\n {items.map((itemOrGroup, index) => {\n if (isGroup(itemOrGroup)) {\n return (\n <SelectGroup key={`${groupKeyId}-group-${index}`}>\n {itemOrGroup.label && <SelectLabel>{itemOrGroup.label}</SelectLabel>}\n {itemOrGroup.items.map(renderItem)}\n </SelectGroup>\n );\n }\n\n return renderItem(itemOrGroup);\n })}\n </SelectContent>\n </SelectRoot>\n );\n};\n\nSelect.Root = SelectRoot;\nSelect.Trigger = SelectTrigger;\nSelect.Content = SelectContent;\nSelect.Item = SelectItemComponent;\nSelect.Group = SelectGroup;\nSelect.Label = SelectLabel;\nSelect.Separator = SelectSeparator;\n"],"mappings":"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"}
@@ -1,27 +1,25 @@
1
- import { cn } from "./classNames-DcGnTh2N.js";
2
- import { X } from "./icons-ZIeZXXS7.js";
3
- import { Button } from "./Button-BNkyYU8u.js";
4
- import { ModalDescription, ModalOverlay, ModalTitle } from "./ModalTitle-cy0Ht9VY.js";
1
+ import { cn } from "./classNames-DkX30VJU.js";
2
+ import { X } from "./icons-DDR9dFSr.js";
3
+ import { Button } from "./Button-DbvGzEDb.js";
4
+ import { ModalDescription, ModalOverlay, ModalTitle } from "./ModalTitle-7vgpfc6B.js";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { Close, Content, Portal, Root, Title, Trigger } from "@radix-ui/react-dialog";
8
- //#region src/components/Sheet/SheetBody.tsx
8
+ // src/components/Sheet/SheetBody.tsx
9
9
  const SheetBody = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
10
10
  ...rest,
11
11
  className: cn("tw:flex", "tw:flex-col", "tw:overflow-x-hidden", "tw:px-4", className)
12
12
  });
13
- //#endregion
14
- //#region src/components/Sheet/SheetOverlay.tsx
13
+ // src/components/Sheet/SheetOverlay.tsx
15
14
  const SheetOverlay = ({ ref, ...props }) => /* @__PURE__ */ jsx(ModalOverlay, {
16
15
  ref,
17
16
  ...props
18
17
  });
19
- //#endregion
20
- //#region src/components/Sheet/SheetContent.tsx
18
+ // src/components/Sheet/SheetContent.tsx
21
19
  const sheetContentVariants = cva([
22
20
  "tailwindcss-preflight",
23
21
  "tw:fixed",
24
- "tw:z-[1051]",
22
+ "tw:z-overlay",
25
23
  "tw:flex",
26
24
  "tw:flex-col",
27
25
  "tw:bg-card",
@@ -108,14 +106,12 @@ const SheetContent = ({ className, children, side = "right", disableTransition =
108
106
  })]
109
107
  });
110
108
  };
111
- //#endregion
112
- //#region src/components/Sheet/SheetFooter.tsx
109
+ // src/components/Sheet/SheetFooter.tsx
113
110
  const SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
114
111
  className: cn("tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4", className),
115
112
  ...props
116
113
  });
117
- //#endregion
118
- //#region src/components/Sheet/SheetHeader.tsx
114
+ // src/components/Sheet/SheetHeader.tsx
119
115
  const SheetHeader = ({ className, children, hideCloseIcon = false, title, description, ...props }) => {
120
116
  const isHeaderRendered = title || description || !hideCloseIcon;
121
117
  return /* @__PURE__ */ jsxs("div", {
@@ -140,14 +136,12 @@ const SheetHeader = ({ className, children, hideCloseIcon = false, title, descri
140
136
  }), children]
141
137
  });
142
138
  };
143
- //#endregion
144
- //#region src/components/Sheet/SheetTitle.tsx
139
+ // src/components/Sheet/SheetTitle.tsx
145
140
  const SheetTitle = ({ className, visuallyHidden = false, ...props }) => /* @__PURE__ */ jsx(Title, {
146
141
  className: cn({ "tw:sr-only": visuallyHidden }, className),
147
142
  ...props
148
143
  });
149
- //#endregion
150
- //#region src/components/Sheet/Sheet.tsx
144
+ // src/components/Sheet/Sheet.tsx
151
145
  const Sheet = (props) => /* @__PURE__ */ jsx(Root, { ...props });
152
146
  Sheet.Close = Close;
153
147
  Sheet.Trigger = Trigger;
@@ -156,7 +150,6 @@ Sheet.Title = SheetTitle;
156
150
  Sheet.Header = SheetHeader;
157
151
  Sheet.Footer = SheetFooter;
158
152
  Sheet.Body = SheetBody;
159
- //#endregion
160
153
  export { Sheet };
161
154
 
162
- //# sourceMappingURL=Sheet-0TWKTqid.js.map
155
+ //# sourceMappingURL=Sheet-DVb4XoJ5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet-DVb4XoJ5.js","names":[],"sources":["../src/components/Sheet/SheetBody.tsx","../src/components/Sheet/SheetOverlay.tsx","../src/components/Sheet/SheetContent.tsx","../src/components/Sheet/SheetFooter.tsx","../src/components/Sheet/SheetHeader.tsx","../src/components/Sheet/SheetTitle.tsx","../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetBody = ({ className, ...rest }: Props) => (\n <div\n {...rest}\n className={cn('tw:flex', 'tw:flex-col', 'tw:overflow-x-hidden', 'tw:px-4', className)}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { ModalOverlay } from '../Modal/ModalOverlay';\n\ntype Props = ComponentProps<typeof ModalOverlay>;\n\n// Assuming it should have the same style as standard modal, if not remove the modal dependency and style it separately.\nexport const SheetOverlay = ({ ref, ...props }: Props) => <ModalOverlay ref={ref} {...props} />;\n","import type { ComponentProps } from 'react';\nimport { Content, Portal } from '@radix-ui/react-dialog';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nimport { SheetOverlay } from './SheetOverlay';\n\nconst sheetContentVariants = cva(\n [\n 'tailwindcss-preflight',\n\n 'tw:fixed',\n\n 'tw:z-overlay',\n\n 'tw:flex',\n 'tw:flex-col',\n\n 'tw:bg-card',\n 'tw:text-card-foreground',\n 'tw:shadow-lg',\n\n 'tw:border',\n 'tw:border-border',\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n\n 'tw:ease-in-out',\n 'tw:data-[state=open]:duration-200',\n 'tw:data-[state=closed]:duration-200',\n ],\n {\n defaultVariants: {\n side: 'right',\n disableTransition: false,\n },\n variants: {\n disableTransition: {\n true: [],\n false: ['tw:data-[state=open]:animate-in', 'tw:data-[state=closed]:animate-out'],\n },\n side: {\n top: [\n 'tw:inset-x-0',\n 'tw:top-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-top',\n 'tw:data-[state=open]:slide-in-from-top',\n 'tw:rounded-b-sheet',\n ],\n right: [\n 'tw:inset-y-0',\n 'tw:right-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-right',\n 'tw:data-[state=open]:slide-in-from-right',\n 'tw:rounded-l-sheet',\n ],\n\n bottom: [\n 'tw:inset-x-0',\n 'tw:bottom-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-bottom',\n 'tw:data-[state=open]:slide-in-from-bottom',\n 'tw:drop-shadow-2xl', // standard tailwindcss shadow is invisible for a bottom sheet because of positioning\n 'tw:rounded-t-sheet',\n ],\n\n left: [\n 'tw:inset-y-0',\n 'tw:left-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-left',\n 'tw:data-[state=open]:slide-in-from-left',\n 'tw:rounded-r-sheet',\n ],\n },\n },\n },\n);\n\ntype Props = ComponentProps<typeof Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n hideOverlay?: boolean;\n keepOpenOnPointerDownOutside?: boolean;\n} & VariantProps<typeof sheetContentVariants> &\n Pick<ComponentProps<typeof Portal>, 'container'>;\n\nexport const SheetContent = ({\n className,\n children,\n side = 'right',\n disableTransition = false,\n hideOverlay = false,\n keepOpenOnPointerDownOutside = false,\n onPointerDownOutside,\n onInteractOutside,\n container,\n ...props\n}: Props) => {\n const handleOnPointerDownOutside: ComponentProps<typeof Content>['onPointerDownOutside'] = (\n event,\n ) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onPointerDownOutside?.(event);\n };\n\n const handleOnInteractOutside: ComponentProps<typeof Content>['onInteractOutside'] = (event) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onInteractOutside?.(event);\n };\n\n return (\n <Portal container={container}>\n {!hideOverlay && <SheetOverlay disableTransition={disableTransition ?? false} />}\n <Content\n {...props}\n // Silences Radix's missing-description warning; no sheet uses a description.\n aria-describedby={undefined}\n className={cn(sheetContentVariants({ side, className, disableTransition }))}\n onPointerDownOutside={handleOnPointerDownOutside}\n onInteractOutside={handleOnInteractOutside}\n data-side={side}\n >\n {children}\n </Content>\n </Portal>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetFooter = ({ className, ...props }: Props) => (\n <div className={cn('tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4', className)} {...props} />\n);\n","import type { ComponentProps, ReactNode } from 'react';\nimport { Close } from '@radix-ui/react-dialog';\n\nimport { X } from '../../icons';\nimport { cn } from '../../utils';\nimport { Button } from '../Button';\nimport { ModalDescription } from '../Modal/ModalDescription';\nimport { ModalTitle } from '../Modal/ModalTitle';\n\ntype Props = {\n title?: ReactNode;\n description?: ReactNode;\n hideCloseIcon?: boolean;\n} & ComponentProps<'div'>;\n\nexport const SheetHeader = ({\n className,\n children,\n hideCloseIcon = false,\n title,\n description,\n ...props\n}: Props) => {\n const isHeaderRendered = title || description || !hideCloseIcon;\n\n return (\n <div className={cn('tw:flex', 'tw:flex-col', 'tw:gap-1.5', 'tw:p-4', className)} {...props}>\n {isHeaderRendered && (\n <div className=\"tw:flex tw:flex-col\">\n <div className=\"tw:flex tw:justify-end tw:gap-2\">\n {title && <ModalTitle>{title}</ModalTitle>}\n {!hideCloseIcon && (\n <Close asChild>\n <Button variant=\"invisible\" size=\"icon-sm\">\n <X />\n <span className=\"tw:sr-only\">Close</span>\n </Button>\n </Close>\n )}\n </div>\n {description && <ModalDescription>{description}</ModalDescription>}\n </div>\n )}\n\n {children}\n </div>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Title } from '@radix-ui/react-dialog';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof Title> & {\n visuallyHidden?: boolean;\n};\n\nexport const SheetTitle = ({ className, visuallyHidden = false, ...props }: Props) => (\n <Title className={cn({ 'tw:sr-only': visuallyHidden }, className)} {...props} />\n);\n","import type { ComponentProps } from 'react';\nimport { Close, Root, Trigger } from '@radix-ui/react-dialog';\n\nimport { SheetBody } from './SheetBody';\nimport { SheetContent } from './SheetContent';\nimport { SheetFooter } from './SheetFooter';\nimport { SheetHeader } from './SheetHeader';\nimport { SheetTitle } from './SheetTitle';\n\ntype Props = ComponentProps<typeof Root>;\n\nexport const Sheet = (props: Props) => <Root {...props} />;\n\nSheet.Close = Close;\nSheet.Trigger = Trigger;\nSheet.Content = SheetContent;\nSheet.Title = SheetTitle;\n\nSheet.Header = SheetHeader;\nSheet.Footer = SheetFooter;\nSheet.Body = SheetBody;\n"],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import { cn } from "./classNames-DcGnTh2N.js";
2
- import { Tooltip, TooltipProvider } from "./utils-DwC9u0tM.js";
1
+ import { cn } from "./classNames-DkX30VJU.js";
2
+ import { Tooltip, TooltipProvider } from "./utils-DjFceY3H.js";
3
3
  import { mergeRefs } from "./internal/utils/mergeRefs.js";
4
- import { ChevronDown, Search } from "./icons-ZIeZXXS7.js";
5
- import { DropdownMenu } from "./DropdownMenu-CcVbZ_5u.js";
4
+ import { ChevronDown, Search } from "./icons-DDR9dFSr.js";
5
+ import { DropdownMenu } from "./DropdownMenu-Ba9atqDa.js";
6
6
  import { ScrollArea } from "./internal/components/ScrollArea.js";
7
- import { Sheet } from "./Sheet-0TWKTqid.js";
8
- import { HoverCard } from "./HoverCard-Cv5rmvJq.js";
7
+ import { Sheet } from "./Sheet-DVb4XoJ5.js";
8
+ import { HoverCard } from "./HoverCard-OGWKRXJ7.js";
9
9
  import { Separator } from "./internal/components/Separator.js";
10
- import { useElement } from "./useElement-D-RjrGa4.js";
11
- import { Collapsible } from "./Collapsible-DD4xTL75.js";
12
- import { useThemeScopeContainer } from "./ThemeProvider-BTK7AL-T.js";
13
- import { BrandLogo } from "./BrandLogo-DkESE19K.js";
10
+ import { useElement } from "./useElement-Dcoo9Jlr.js";
11
+ import { Collapsible } from "./Collapsible-zsXk4Vpp.js";
12
+ import { useThemeScopeContainer } from "./ThemeProvider-BCHllN7d.js";
13
+ import { BrandLogo } from "./BrandLogo-Dn7hhp2c.js";
14
14
  import { useScrollbarPosition } from "./internal/hooks/useScrollbarPosition.js";
15
15
  import { createContext, use, useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
16
16
  import { Root, Slot, Slottable } from "@radix-ui/react-slot";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
- //#region src/components/Sidebar/SidebarProvider/useTransitionPresence.ts
18
+ // src/components/Sidebar/SidebarProvider/useTransitionPresence.ts
19
19
  const FALLBACK_TIMEOUT_MS = 500;
20
20
  /** Under reduced motion there is no `transitionend` to wait for, so the mount is not deferred. */
21
21
  const prefersReducedMotion = () => typeof window !== "undefined" && (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false);
@@ -58,8 +58,7 @@ const useTransitionPresence = ({ mounted, keepMounted = false, mountAfterEnter =
58
58
  completeUnmount: () => send("TRANSITION_END")
59
59
  }), [state, keepMounted]);
60
60
  };
61
- //#endregion
62
- //#region src/components/Sidebar/SidebarContent.tsx
61
+ // src/components/Sidebar/SidebarContent.tsx
63
62
  const SidebarContent = ({ ref, className, children, contentRef }) => {
64
63
  const { setElement, isBottom, isTop, isMiddle } = useScrollbarPosition();
65
64
  const mergedRefs = mergeRefs(ref ?? null, (ref) => setElement(ref));
@@ -80,8 +79,7 @@ const SidebarContent = ({ ref, className, children, contentRef }) => {
80
79
  })
81
80
  });
82
81
  };
83
- //#endregion
84
- //#region src/hooks/useMediaQuery.ts
82
+ // src/hooks/useMediaQuery.ts
85
83
  /**
86
84
  * Whether a CSS media query currently matches, re-rendering when it flips.
87
85
  *
@@ -98,8 +96,7 @@ const useMediaQuery = (query) => {
98
96
  const getSnapshot = useCallback(() => globalThis.matchMedia?.(query).matches ?? false, [query]);
99
97
  return useSyncExternalStore(subscribe, getSnapshot, () => false);
100
98
  };
101
- //#endregion
102
- //#region src/components/Sidebar/utils.ts
99
+ // src/components/Sidebar/utils.ts
103
100
  const SidebarWidthInPx = {
104
101
  MIN_DEFAULT: 256,
105
102
  COLLAPSED_ICON: 52,
@@ -151,8 +148,7 @@ const calcEffectiveWidths = ({ variant, width: customWidth, collapsible, state,
151
148
  })();
152
149
  return collapsible === "icon" ? iconWidths : offCanvasWidths;
153
150
  };
154
- //#endregion
155
- //#region src/components/Sidebar/SidebarProvider/context.ts
151
+ // src/components/Sidebar/SidebarProvider/context.ts
156
152
  const SidebarContext = createContext(null);
157
153
  /** `useSidebar` that returns `null` outside a `SidebarProvider` instead of throwing. */
158
154
  const useOptionalSidebar = (side = "left") => use(SidebarContext)?.[side] ?? null;
@@ -161,8 +157,7 @@ const useSidebar = (side = "left") => {
161
157
  if (context === null) throw new Error("useSidebar must be used within a SidebarProvider.");
162
158
  return context[side];
163
159
  };
164
- //#endregion
165
- //#region src/components/Sidebar/SidebarProvider/useHoverTracking.ts
160
+ // src/components/Sidebar/SidebarProvider/useHoverTracking.ts
166
161
  const PORTAL_OPEN_SELECTORS_STRING = ["[aria-haspopup=\"menu\"][aria-expanded=true]", "[aria-haspopup=\"dialog\"][aria-expanded=true]"].join(",");
167
162
  const useHoverTracking = (sidebarElement) => {
168
163
  const [hoveredElement, setHoveredElement] = useState(null);
@@ -207,8 +202,7 @@ const useHoverTracking = (sidebarElement) => {
207
202
  }, [sidebarElement]);
208
203
  return isHovered;
209
204
  };
210
- //#endregion
211
- //#region src/components/Sidebar/SidebarProvider/useSidebarState.ts
205
+ // src/components/Sidebar/SidebarProvider/useSidebarState.ts
212
206
  const useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
213
207
  const [sidebarElement, setSidebarElement] = useElement();
214
208
  const isHovered = useHoverTracking(sidebarElement);
@@ -243,8 +237,7 @@ const useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
243
237
  setSidebarElement
244
238
  ]);
245
239
  };
246
- //#endregion
247
- //#region src/components/Sidebar/SidebarProvider/SidebarProvider.tsx
240
+ // src/components/Sidebar/SidebarProvider/SidebarProvider.tsx
248
241
  const DEFAULT_SIDEBAR_VARIANT = "none";
249
242
  const DEFAULT_SIDEBAR_MODE = "expanded";
250
243
  const DEFAULT_SIDEBAR_COLLAPSIBLE = "off-canvas";
@@ -379,8 +372,7 @@ const SidebarProvider = ({ children, defaultLeftMode = DEFAULT_SIDEBAR_MODE, lef
379
372
  children
380
373
  });
381
374
  };
382
- //#endregion
383
- //#region src/components/Sidebar/SidebarFillTrigger.tsx
375
+ // src/components/Sidebar/SidebarFillTrigger.tsx
384
376
  const SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
385
377
  const { toggleFill, isFill } = useSidebar(side);
386
378
  const handleOnClick = (event) => {
@@ -394,27 +386,23 @@ const SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
394
386
  "aria-selected": isFill
395
387
  });
396
388
  };
397
- //#endregion
398
- //#region src/components/Sidebar/SidebarFooter.tsx
389
+ // src/components/Sidebar/SidebarFooter.tsx
399
390
  const SidebarFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
400
391
  "data-slot": "sidebar-footer",
401
392
  className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:p-2", className),
402
393
  ...props
403
394
  });
404
- //#endregion
405
- //#region src/components/Sidebar/SidebarGroup/SidebarGroup.tsx
395
+ // src/components/Sidebar/SidebarGroup/SidebarGroup.tsx
406
396
  const SidebarGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
407
397
  className: cn("tw:group/sidebar-group", "tw:relative", "tw:w-full", "tw:flex", "tw:flex-col", "tw:min-w-0", "tw:rounded-lg", className),
408
398
  ...props
409
399
  });
410
- //#endregion
411
- //#region src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx
400
+ // src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx
412
401
  const SidebarGroupContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
413
402
  className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:w-full", className),
414
403
  ...props
415
404
  });
416
- //#endregion
417
- //#region src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx
405
+ // src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx
418
406
  const SidebarGroupAction = ({ ref, className, type = "button", children, ...props }) => /* @__PURE__ */ jsx("button", {
419
407
  ...props,
420
408
  type,
@@ -422,8 +410,7 @@ const SidebarGroupAction = ({ ref, className, type = "button", children, ...prop
422
410
  className: cn("tw:group-data-[state=collapsed]/sidebar:hidden", "tw:absolute", "tw:right-1.5", "tw:top-2", "tw:flex", "tw:items-center", "tw:justify-center", "tw:size-5", "tw:text-sidebar-foreground", "tw:rounded-full", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-3", "tw:[&_svg]:text-muted-foreground", "tw:hover:[&_svg]:text-secondary-600", "tw:hover:bg-muted", "tw:focus-visible:ring-4", "tw:focus-visible:ring-ring/30", "tw:focus-visible:outline", "tw:focus-visible:outline-1", "tw:focus-visible:outline-ring", className),
423
411
  children
424
412
  });
425
- //#endregion
426
- //#region src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx
413
+ // src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx
427
414
  const SidebarGroupLabel = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsxs("div", {
428
415
  ref,
429
416
  className: cn("tw:relative", "tw:flex", "tw:flex-col", "tw:shrink-0", "tw:h-8", "tw:px-2", "tw:-mb-1", "tw:rounded-lg", "tw:uppercase", "tw:font-sans", "tw:text-xs", "tw:tracking-[1px]", className),
@@ -437,16 +424,14 @@ const SidebarGroupLabel = ({ ref, className, children, ...props }) => /* @__PURE
437
424
  children
438
425
  })]
439
426
  });
440
- //#endregion
441
- //#region src/components/Sidebar/SidebarInstanceContext.ts
427
+ // src/components/Sidebar/SidebarInstanceContext.ts
442
428
  const SidebarInstanceContext = createContext(null);
443
429
  const useSidebarInstance = () => {
444
430
  const context = use(SidebarInstanceContext);
445
431
  if (context === null) throw new Error("useSidebarInstance must be used within a SidebarInstanceContext.");
446
432
  return context;
447
433
  };
448
- //#endregion
449
- //#region src/components/Sidebar/SidebarHeader.tsx
434
+ // src/components/Sidebar/SidebarHeader.tsx
450
435
  const SidebarHeader = ({ className, children, ...props }) => {
451
436
  const variant = use(SidebarInstanceContext)?.state === "collapsed" ? "mark" : "wordmark";
452
437
  const fallback = /* @__PURE__ */ jsx(BrandLogo, {
@@ -460,23 +445,20 @@ const SidebarHeader = ({ className, children, ...props }) => {
460
445
  children: children ?? fallback
461
446
  });
462
447
  };
463
- //#endregion
464
- //#region src/components/Sidebar/SidebarMenu/SidebarMenu.tsx
448
+ // src/components/Sidebar/SidebarMenu/SidebarMenu.tsx
465
449
  const SidebarMenu = ({ className, ...props }) => /* @__PURE__ */ jsx("ul", {
466
450
  "data-sidebar": "menu",
467
451
  className: cn("tw:flex", "tw:w-full", "tw:min-w-0", "tw:flex-col", "tw:gap-1", "tw:transition-[margin,opacity]", "tw:duration-(--sidebar-motion-duration)", "tw:ease-(--sidebar-motion-easing)", "tw:motion-reduce:transition-none", "tw:pl-0", className),
468
452
  ...props
469
453
  });
470
- //#endregion
471
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx
454
+ // src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx
472
455
  const SidebarMenuIcon = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx("span", {
473
456
  ...rest,
474
457
  ref,
475
458
  className: cn("tw:inline-flex", "tw:items-center", "tw:justify-center", "tw:aspect-square", "tw:shrink-0", "tw:p-0.5", "tw:text-sidebar-primary", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-4", className),
476
459
  children
477
460
  });
478
- //#endregion
479
- //#region src/components/Sidebar/SidebarMenu/useDestinationDismiss.ts
461
+ // src/components/Sidebar/SidebarMenu/useDestinationDismiss.ts
480
462
  /**
481
463
  * A menu item's click handler: the caller's own, then (on a phone) dismissing the sheet.
482
464
  *
@@ -493,8 +475,7 @@ const useDestinationDismiss = (props, onClick) => {
493
475
  if (isMobile && isDestination) setMobileOpen(false);
494
476
  };
495
477
  };
496
- //#endregion
497
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx
478
+ // src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx
498
479
  /** A collapsed rail is icon-only, so its labels appear almost at once instead of after the default 300ms. */
499
480
  const COLLAPSED_TOOLTIP_DELAY_MS = 50;
500
481
  const SidebarMenuButton = ({ ref, "aria-selected": selected, className, children, asChild = false, icon, tooltip, onClick, ...props }) => {
@@ -521,14 +502,12 @@ const SidebarMenuButton = ({ ref, "aria-selected": selected, className, children
521
502
  });
522
503
  return button;
523
504
  };
524
- //#endregion
525
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx
505
+ // src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx
526
506
  const SidebarMenuItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
527
507
  className: cn("tw:group/sidebar-menu-item", "tw:relative", className),
528
508
  ...props
529
509
  });
530
- //#endregion
531
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx
510
+ // src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx
532
511
  const SidebarMenuAction = ({ ref, className, asChild = false, showOnHover = false, children, ...props }) => {
533
512
  return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
534
513
  ...props,
@@ -539,8 +518,7 @@ const SidebarMenuAction = ({ ref, className, asChild = false, showOnHover = fals
539
518
  children
540
519
  });
541
520
  };
542
- //#endregion
543
- //#region src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx
521
+ // src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx
544
522
  const wrapperClassnames = cn("tw:group/search-input", "tw:relative", "tw:flex", "tw:items-center", "tw:min-h-9", "tw:rounded-lg", "tw:border", "tw:transition-all", "tw:group-data-[state=collapsed]/sidebar:cursor-pointer", "tw:group-data-[state=collapsed]/sidebar:border-transparent", "tw:group-data-[state=collapsed]/sidebar:hover:bg-sidebar-hover", "tw:group-data-[state=expanded]/sidebar:cursor-text", "tw:group-data-[state=expanded]/sidebar:px-2", "tw:group-data-[state=expanded]/sidebar:border-sidebar-border", "tw:focus-within:ring-2", "tw:focus-within:ring-sidebar-ring/50", "tw:focus-within:text-sidebar-foreground");
545
523
  const SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) => {
546
524
  const { side } = useSidebarInstance();
@@ -562,8 +540,7 @@ const SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) =>
562
540
  })]
563
541
  });
564
542
  };
565
- //#endregion
566
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx
543
+ // src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx
567
544
  const Title = ({ children }) => /* @__PURE__ */ jsx("div", {
568
545
  className: "tw:flex tw:select-none tw:gap-2 tw:text-sm tw:font-semibold",
569
546
  children
@@ -613,8 +590,7 @@ const SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
613
590
  })]
614
591
  });
615
592
  };
616
- //#endregion
617
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx
593
+ // src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx
618
594
  const SidebarMenuBadge = ({ ref, className, ...props }) => {
619
595
  return /* @__PURE__ */ jsx("div", {
620
596
  ref,
@@ -624,8 +600,7 @@ const SidebarMenuBadge = ({ ref, className, ...props }) => {
624
600
  ...props
625
601
  });
626
602
  };
627
- //#endregion
628
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx
603
+ // src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx
629
604
  const SidebarMenuSub = ({ children, icon, isActive = false, label, defaultOpen = false, open: openProp, onOpenChange }) => {
630
605
  const { state, side, mode } = useSidebarInstance();
631
606
  const [open, setOpen] = useState(null);
@@ -695,8 +670,7 @@ const SidebarMenuSub = ({ children, icon, isActive = false, label, defaultOpen =
695
670
  }) })]
696
671
  });
697
672
  };
698
- //#endregion
699
- //#region src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx
673
+ // src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx
700
674
  const SidebarMenuSubItem = ({ ref, className, asChild = false, children, disabled, onClick, "aria-current": ariaCurrent, ...props }) => {
701
675
  const { mode } = useSidebarInstance();
702
676
  const handleClick = useDestinationDismiss(props, onClick);
@@ -722,8 +696,7 @@ const SidebarMenuSubItem = ({ ref, className, asChild = false, children, disable
722
696
  })
723
697
  });
724
698
  };
725
- //#endregion
726
- //#region src/components/Sidebar/useResizeSidebar.ts
699
+ // src/components/Sidebar/useResizeSidebar.ts
727
700
  const DEFAULT_MIN_WIDTH = 384;
728
701
  const DEFAULT_MAX_WIDTH = 800;
729
702
  const useResizeSidebar = ({ side, minWidth = DEFAULT_MIN_WIDTH, maxWidth = DEFAULT_MAX_WIDTH }) => {
@@ -793,8 +766,7 @@ const useResizeSidebar = ({ side, minWidth = DEFAULT_MIN_WIDTH, maxWidth = DEFAU
793
766
  isResizable
794
767
  };
795
768
  };
796
- //#endregion
797
- //#region src/components/Sidebar/SidebarResizeHandle.tsx
769
+ // src/components/Sidebar/SidebarResizeHandle.tsx
798
770
  const SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
799
771
  const { handleProps, isResizable } = useResizeSidebar({
800
772
  side,
@@ -808,16 +780,14 @@ const SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
808
780
  className: cn("tw:absolute tw:inset-y-0 tw:z-10 tw:w-3", side === "right" ? "tw:left-0" : "tw:right-0", "tw:cursor-col-resize")
809
781
  });
810
782
  };
811
- //#endregion
812
- //#region src/components/Sidebar/SidebarSeparator.tsx
783
+ // src/components/Sidebar/SidebarSeparator.tsx
813
784
  const SidebarSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(Separator, {
814
785
  ...props,
815
786
  orientation: "horizontal",
816
787
  size: "full",
817
788
  className: cn("tw:before:bg-sidebar-border tw:p-2", className)
818
789
  });
819
- //#endregion
820
- //#region src/components/Sidebar/SidebarTrigger.tsx
790
+ // src/components/Sidebar/SidebarTrigger.tsx
821
791
  const SidebarTrigger = ({ side = "left", onClick, hideWhenCollapsed = false, className, ...rest }) => {
822
792
  const { toggle, state, isMobile, isMobileOpen } = useSidebar(side);
823
793
  const handleOnClick = (event) => {
@@ -833,8 +803,7 @@ const SidebarTrigger = ({ side = "left", onClick, hideWhenCollapsed = false, cla
833
803
  className: cn({ "tw:group-data-[state=collapsed]/sidebar:hidden": hideWhenCollapsed }, className)
834
804
  });
835
805
  };
836
- //#endregion
837
- //#region src/components/Sidebar/Sidebar.tsx
806
+ // src/components/Sidebar/Sidebar.tsx
838
807
  const Sidebar = ({ children, className, id, side = "left", style, container = false, keepMounted, mountAfterEnter, resizable = false, mobileTitle, ...rest }) => {
839
808
  const oppositeSide = side === "left" ? "right" : "left";
840
809
  const { setSidebarElement, state, mode, isFill, widths, collapsible, variant, isDragging, isMobile, isMobileOpen, setMobileOpen } = useSidebar(side);
@@ -970,7 +939,6 @@ Sidebar.MenuCard = SidebarMenuCard;
970
939
  Sidebar.MenuBadge = SidebarMenuBadge;
971
940
  Sidebar.SubMenu = SidebarMenuSub;
972
941
  Sidebar.SubItem = SidebarMenuSubItem;
973
- //#endregion
974
942
  export { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar };
975
943
 
976
- //# sourceMappingURL=Sidebar-C5hdANBU.js.map
944
+ //# sourceMappingURL=Sidebar-DYvodJWN.js.map