@bi-digital/react 0.6.5 → 0.6.7

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 (304) hide show
  1. package/dist/{alert-footer-B1fWpAQt.d.mts → alert-footer-BX_xPUot.d.mts} +77 -71
  2. package/dist/components/alert/alert-footer.d.mts +8 -11
  3. package/dist/components/alert/alert.d.mts +8 -11
  4. package/dist/components/alert/index.d.mts +8 -11
  5. package/dist/components/avatar/avatar.d.mts +8 -11
  6. package/dist/components/avatar/index.d.mts +8 -11
  7. package/dist/components/badge/badge.d.mts +8 -11
  8. package/dist/components/badge/index.d.mts +8 -11
  9. package/dist/components/button/button.d.mts +8 -11
  10. package/dist/components/button/index.d.mts +8 -11
  11. package/dist/components/card/card-action.d.mts +8 -11
  12. package/dist/components/card/card-actions.d.mts +8 -11
  13. package/dist/components/card/card-content.d.mts +8 -11
  14. package/dist/components/card/card-date.d.mts +8 -11
  15. package/dist/components/card/card-header.d.mts +8 -11
  16. package/dist/components/card/card-media.d.mts +8 -11
  17. package/dist/components/card/card.d.mts +8 -11
  18. package/dist/components/card/index.d.mts +8 -11
  19. package/dist/components/checkbox/checkbox-subsection.d.mts +8 -11
  20. package/dist/components/checkbox/checkbox.d.mts +8 -11
  21. package/dist/components/checkbox/index.d.mts +8 -11
  22. package/dist/components/chip/chip.d.mts +8 -11
  23. package/dist/components/chip/index.d.mts +8 -11
  24. package/dist/components/details/details-content.d.mts +8 -11
  25. package/dist/components/details/details-summary.d.mts +8 -11
  26. package/dist/components/details/details.d.mts +8 -11
  27. package/dist/components/details/index.d.mts +8 -11
  28. package/dist/components/dialog/dialog-close-button.d.mts +8 -11
  29. package/dist/components/dialog/dialog-content.d.mts +8 -11
  30. package/dist/components/dialog/dialog-footer.d.mts +8 -11
  31. package/dist/components/dialog/dialog-header.d.mts +8 -11
  32. package/dist/components/dialog/dialog-trigger-context.d.mts +1 -1
  33. package/dist/components/dialog/dialog-trigger.d.mts +8 -11
  34. package/dist/components/dialog/dialog.d.mts +8 -11
  35. package/dist/components/dialog/index.d.mts +8 -11
  36. package/dist/components/drawer/drawer-close-button.d.mts +8 -11
  37. package/dist/components/drawer/drawer-content.d.mts +8 -11
  38. package/dist/components/drawer/drawer-footer.d.mts +8 -11
  39. package/dist/components/drawer/drawer-header.d.mts +8 -11
  40. package/dist/components/drawer/drawer-trigger-context.d.mts +1 -1
  41. package/dist/components/drawer/drawer-trigger.d.mts +8 -11
  42. package/dist/components/drawer/drawer.d.mts +8 -11
  43. package/dist/components/drawer/index.d.mts +8 -11
  44. package/dist/components/dropdown/dropdown-button.d.mts +8 -11
  45. package/dist/components/dropdown/dropdown-button.mjs +1 -1
  46. package/dist/components/dropdown/dropdown-item.d.mts +1 -1
  47. package/dist/components/dropdown/dropdown-item.mjs +1 -1
  48. package/dist/components/dropdown/dropdown-list.d.mts +1 -1
  49. package/dist/components/dropdown/dropdown-list.mjs +1 -1
  50. package/dist/components/dropdown/dropdown-trigger-context.d.mts +8 -11
  51. package/dist/components/dropdown/dropdown-trigger-context.mjs +5 -4
  52. package/dist/components/dropdown/dropdown-trigger.d.mts +8 -11
  53. package/dist/components/dropdown/dropdown-trigger.mjs +5 -4
  54. package/dist/components/dropdown/dropdown.d.mts +8 -11
  55. package/dist/components/dropdown/dropdown.mjs +5 -4
  56. package/dist/components/dropdown/index.d.mts +8 -11
  57. package/dist/components/dropdown/index.mjs +11 -10
  58. package/dist/components/field/field-affix.d.mts +8 -11
  59. package/dist/components/field/field-description.d.mts +8 -11
  60. package/dist/components/field/field.d.mts +8 -11
  61. package/dist/components/field/index.d.mts +8 -11
  62. package/dist/components/fieldset/fieldset-description.d.mts +8 -11
  63. package/dist/components/fieldset/fieldset-description.mjs +1 -1
  64. package/dist/components/fieldset/fieldset-legend.d.mts +8 -11
  65. package/dist/components/fieldset/fieldset-legend.mjs +1 -1
  66. package/dist/components/fieldset/fieldset.d.mts +8 -11
  67. package/dist/components/fieldset/fieldset.mjs +1 -1
  68. package/dist/components/fieldset/index.d.mts +8 -11
  69. package/dist/components/fieldset/index.mjs +4 -4
  70. package/dist/components/filter-group/filter-group.d.mts +8 -11
  71. package/dist/components/filter-group/filter-group.mjs +1 -1
  72. package/dist/components/filter-group/index.d.mts +8 -11
  73. package/dist/components/filter-group/index.mjs +2 -2
  74. package/dist/components/footer/footer-links.d.mts +1 -1
  75. package/dist/components/footer/footer-links.mjs +1 -1
  76. package/dist/components/footer/footer.d.mts +8 -11
  77. package/dist/components/footer/footer.mjs +1 -1
  78. package/dist/components/footer/index.d.mts +8 -11
  79. package/dist/components/footer/index.mjs +3 -3
  80. package/dist/components/index.d.mts +8 -11
  81. package/dist/components/index.mjs +63 -63
  82. package/dist/components/input/index.d.mts +8 -11
  83. package/dist/components/input/input.d.mts +8 -11
  84. package/dist/components/label/index.d.mts +8 -11
  85. package/dist/components/label/label.d.mts +8 -11
  86. package/dist/components/link/index.d.mts +8 -11
  87. package/dist/components/link/index.mjs +2 -2
  88. package/dist/components/link/link.d.mts +8 -11
  89. package/dist/components/link/link.mjs +1 -1
  90. package/dist/components/logo/index.d.mts +8 -11
  91. package/dist/components/logo/index.mjs +2 -2
  92. package/dist/components/logo/logo.d.mts +8 -11
  93. package/dist/components/logo/logo.mjs +1 -1
  94. package/dist/components/navbar/index.d.mts +8 -11
  95. package/dist/components/navbar/index.mjs +11 -12
  96. package/dist/components/navbar/navbar.d.mts +8 -11
  97. package/dist/components/navbar/navbar.mjs +3 -3
  98. package/dist/components/navbar/sub-navbar.d.mts +8 -11
  99. package/dist/components/navbar/sub-navbar.mjs +7 -8
  100. package/dist/components/pagination/index.d.mts +8 -11
  101. package/dist/components/pagination/index.mjs +4 -4
  102. package/dist/components/pagination/pagination-button.d.mts +8 -11
  103. package/dist/components/pagination/pagination-button.mjs +1 -1
  104. package/dist/components/pagination/pagination-item.mjs +1 -1
  105. package/dist/components/pagination/pagination.d.mts +8 -11
  106. package/dist/components/pagination/pagination.mjs +1 -1
  107. package/dist/components/popover/index.d.mts +8 -11
  108. package/dist/components/popover/index.mjs +4 -3
  109. package/dist/components/popover/popover-trigger-context.d.mts +1 -1
  110. package/dist/components/popover/popover-trigger.d.mts +8 -11
  111. package/dist/components/popover/popover-trigger.mjs +1 -1
  112. package/dist/components/popover/popover.d.mts +8 -11
  113. package/dist/components/popover/popover.mjs +2 -1
  114. package/dist/components/radio/index.d.mts +8 -11
  115. package/dist/components/radio/index.mjs +2 -2
  116. package/dist/components/radio/radio.d.mts +8 -11
  117. package/dist/components/radio/radio.mjs +1 -1
  118. package/dist/components/search/index.d.mts +8 -11
  119. package/dist/components/search/index.mjs +2 -2
  120. package/dist/components/search/search.d.mts +8 -11
  121. package/dist/components/search/search.mjs +1 -1
  122. package/dist/components/select/index.d.mts +8 -11
  123. package/dist/components/select/index.mjs +4 -4
  124. package/dist/components/select/select-optgroup.d.mts +8 -11
  125. package/dist/components/select/select-optgroup.mjs +1 -1
  126. package/dist/components/select/select-option.d.mts +8 -11
  127. package/dist/components/select/select-option.mjs +1 -1
  128. package/dist/components/select/select.d.mts +8 -11
  129. package/dist/components/select/select.mjs +1 -1
  130. package/dist/components/selectfield/index.d.mts +8 -11
  131. package/dist/components/selectfield/index.mjs +8 -8
  132. package/dist/components/selectfield/selectfield.d.mts +8 -11
  133. package/dist/components/selectfield/selectfield.mjs +7 -7
  134. package/dist/components/skip-link/index.d.mts +8 -11
  135. package/dist/components/skip-link/index.mjs +2 -2
  136. package/dist/components/skip-link/skip-link.d.mts +8 -11
  137. package/dist/components/skip-link/skip-link.mjs +1 -1
  138. package/dist/components/spinner/index.d.mts +8 -11
  139. package/dist/components/spinner/spinner.d.mts +8 -11
  140. package/dist/components/sticky-header/index.d.mts +1 -1
  141. package/dist/components/sticky-header/index.mjs +2 -2
  142. package/dist/components/sticky-header/sticky-header.d.mts +1 -1
  143. package/dist/components/sticky-header/sticky-header.mjs +1 -1
  144. package/dist/components/tabs/index.d.mts +8 -11
  145. package/dist/components/tabs/index.mjs +5 -5
  146. package/dist/components/tabs/tab.d.mts +8 -11
  147. package/dist/components/tabs/tab.mjs +1 -1
  148. package/dist/components/tabs/tabs-list.d.mts +8 -11
  149. package/dist/components/tabs/tabs-list.mjs +1 -1
  150. package/dist/components/tabs/tabs-panel.d.mts +8 -11
  151. package/dist/components/tabs/tabs-panel.mjs +1 -1
  152. package/dist/components/tabs/tabs.d.mts +8 -11
  153. package/dist/components/tabs/tabs.mjs +1 -1
  154. package/dist/components/textarea/index.d.mts +8 -11
  155. package/dist/components/textarea/index.mjs +2 -2
  156. package/dist/components/textarea/textarea.d.mts +8 -11
  157. package/dist/components/textarea/textarea.mjs +1 -1
  158. package/dist/components/textfield/index.d.mts +8 -11
  159. package/dist/components/textfield/index.mjs +6 -6
  160. package/dist/components/textfield/textfield.d.mts +8 -11
  161. package/dist/components/textfield/textfield.mjs +5 -5
  162. package/dist/components/validation-message/index.d.mts +8 -11
  163. package/dist/components/validation-message/index.mjs +2 -2
  164. package/dist/components/validation-message/validation-message.d.mts +8 -11
  165. package/dist/components/validation-message/validation-message.mjs +1 -1
  166. package/dist/{dialog-trigger-context-C1_D0x9o.d.mts → dialog-trigger-context-TFwqL8Z4.d.mts} +3 -3
  167. package/dist/{drawer-trigger-context-B_KTiYUG.d.mts → drawer-trigger-context-DwgiZKBB.d.mts} +3 -3
  168. package/dist/{dropdown-eNixd0dU.mjs → dropdown-Bfh8dKIl.mjs} +2 -2
  169. package/dist/{dropdown-eNixd0dU.mjs.map → dropdown-Bfh8dKIl.mjs.map} +1 -1
  170. package/dist/{dropdown-5PX7br4s.mjs → dropdown-DuZCbT-j.mjs} +2 -2
  171. package/dist/{dropdown-5PX7br4s.mjs.map → dropdown-DuZCbT-j.mjs.map} +1 -1
  172. package/dist/{dropdown-button-CaH03Puf.mjs → dropdown-button-DTwImr6G.mjs} +1 -1
  173. package/dist/{dropdown-button-CaH03Puf.mjs.map → dropdown-button-DTwImr6G.mjs.map} +1 -1
  174. package/dist/{dropdown-item-DFi5h7y_.mjs → dropdown-item-B7WklCax.mjs} +1 -1
  175. package/dist/{dropdown-item-DFi5h7y_.mjs.map → dropdown-item-B7WklCax.mjs.map} +1 -1
  176. package/dist/{dropdown-item-B-Nit4gr.d.mts → dropdown-item-rUUE3LNG.d.mts} +3 -3
  177. package/dist/{dropdown-list-DI-ZzWhS.mjs → dropdown-list-7Y5EUloM.mjs} +1 -1
  178. package/dist/{dropdown-list-DI-ZzWhS.mjs.map → dropdown-list-7Y5EUloM.mjs.map} +1 -1
  179. package/dist/{dropdown-list-Bzcz7-p5.d.mts → dropdown-list-Es4uJ5t9.d.mts} +3 -3
  180. package/dist/{dropdown-trigger-context-CS3OQMFI.mjs → dropdown-trigger-context-DcIe8cXy.mjs} +1 -1
  181. package/dist/{dropdown-trigger-context-CS3OQMFI.mjs.map → dropdown-trigger-context-DcIe8cXy.mjs.map} +1 -1
  182. package/dist/{dropdown-trigger-7DQXMbgf.mjs → dropdown-trigger-idFkFkds.mjs} +2 -2
  183. package/dist/{dropdown-trigger-7DQXMbgf.mjs.map → dropdown-trigger-idFkFkds.mjs.map} +1 -1
  184. package/dist/{fieldset-2lG0gcor.mjs → fieldset-Be8MGUGl.mjs} +1 -1
  185. package/dist/{fieldset-2lG0gcor.mjs.map → fieldset-Be8MGUGl.mjs.map} +1 -1
  186. package/dist/{fieldset-description-DTqXvl-C.mjs → fieldset-description-BEJMhT5N.mjs} +1 -1
  187. package/dist/{fieldset-description-DTqXvl-C.mjs.map → fieldset-description-BEJMhT5N.mjs.map} +1 -1
  188. package/dist/{fieldset-legend-DRljev3V.mjs → fieldset-legend-6wSBIqEK.mjs} +1 -1
  189. package/dist/{fieldset-legend-DRljev3V.mjs.map → fieldset-legend-6wSBIqEK.mjs.map} +1 -1
  190. package/dist/{filter-group-CQ5N0COR.mjs → filter-group-VUtoYeik.mjs} +1 -1
  191. package/dist/{filter-group-CQ5N0COR.mjs.map → filter-group-VUtoYeik.mjs.map} +1 -1
  192. package/dist/{footer-BT08D4h_.mjs → footer-BUYDMkxQ.mjs} +1 -1
  193. package/dist/{footer-BT08D4h_.mjs.map → footer-BUYDMkxQ.mjs.map} +1 -1
  194. package/dist/{footer-links-DG4qNkaZ.d.mts → footer-links-CKLQ_Rck.d.mts} +3 -3
  195. package/dist/{footer-links-C6V--xE0.mjs → footer-links-DZ3bP7L0.mjs} +1 -1
  196. package/dist/{footer-links-C6V--xE0.mjs.map → footer-links-DZ3bP7L0.mjs.map} +1 -1
  197. package/dist/{index-C6Nm9giH.d.mts → index-CjIbpoNY.d.mts} +3 -2
  198. package/dist/{link-BW0SzY4P.mjs → link-Bskmvnx5.mjs} +1 -1
  199. package/dist/{link-BW0SzY4P.mjs.map → link-Bskmvnx5.mjs.map} +1 -1
  200. package/dist/{logo-Zlb4wddU.mjs → logo-RC98BG2F.mjs} +1 -1
  201. package/dist/{logo-Zlb4wddU.mjs.map → logo-RC98BG2F.mjs.map} +1 -1
  202. package/dist/main.d.mts +8 -8
  203. package/dist/main.mjs +65 -64
  204. package/dist/{navbar-B6_bxX7A.mjs → navbar-BrMRw8N2.mjs} +2 -2
  205. package/dist/{navbar-B6_bxX7A.mjs.map → navbar-BrMRw8N2.mjs.map} +1 -1
  206. package/dist/{pagination-DQG9eVY1.mjs → pagination-BVsDp6Md.mjs} +1 -1
  207. package/dist/{pagination-DQG9eVY1.mjs.map → pagination-BVsDp6Md.mjs.map} +1 -1
  208. package/dist/{pagination-button-BlzwamSr.mjs → pagination-button-DV7GBbhq.mjs} +1 -1
  209. package/dist/{pagination-button-BlzwamSr.mjs.map → pagination-button-DV7GBbhq.mjs.map} +1 -1
  210. package/dist/{pagination-item-BnM5pCuI.mjs → pagination-item-OR2QSk7T.mjs} +1 -1
  211. package/dist/{pagination-item-BnM5pCuI.mjs.map → pagination-item-OR2QSk7T.mjs.map} +1 -1
  212. package/dist/{popover-DzgWYNoJ.mjs → popover-ChAkuQdg.mjs} +32 -3
  213. package/dist/popover-ChAkuQdg.mjs.map +1 -0
  214. package/dist/{popover-B9hFmnr_.mjs → popover-DXYtGiZI.mjs} +8 -4
  215. package/dist/popover-DXYtGiZI.mjs.map +1 -0
  216. package/dist/{popover-trigger-kS89jLF5.mjs → popover-trigger-Brt5Ctq5.mjs} +1 -1
  217. package/dist/{popover-trigger-kS89jLF5.mjs.map → popover-trigger-Brt5Ctq5.mjs.map} +1 -1
  218. package/dist/{popover-trigger-context-DLFSm345.d.mts → popover-trigger-context-C9FoRwGZ.d.mts} +3 -3
  219. package/dist/{radio-D_uN-UNR.mjs → radio-CZhM8bv4.mjs} +1 -1
  220. package/dist/{radio-D_uN-UNR.mjs.map → radio-CZhM8bv4.mjs.map} +1 -1
  221. package/dist/{search-D7tBeD7x.mjs → search-DtEa73Zz.mjs} +1 -1
  222. package/dist/{search-D7tBeD7x.mjs.map → search-DtEa73Zz.mjs.map} +1 -1
  223. package/dist/{select-CkeXJfv-.mjs → select-DJY40TIK.mjs} +1 -1
  224. package/dist/{select-CkeXJfv-.mjs.map → select-DJY40TIK.mjs.map} +1 -1
  225. package/dist/{select-optgroup-D2oER1Ek.mjs → select-optgroup-BIIeTki5.mjs} +1 -1
  226. package/dist/{select-optgroup-D2oER1Ek.mjs.map → select-optgroup-BIIeTki5.mjs.map} +1 -1
  227. package/dist/{select-option-hGcGfQqQ.mjs → select-option-D1fvKZzA.mjs} +1 -1
  228. package/dist/{select-option-hGcGfQqQ.mjs.map → select-option-D1fvKZzA.mjs.map} +1 -1
  229. package/dist/{selectfield-BeZTfJMM.mjs → selectfield-Ddsq_Xbt.mjs} +3 -3
  230. package/dist/{selectfield-BeZTfJMM.mjs.map → selectfield-Ddsq_Xbt.mjs.map} +1 -1
  231. package/dist/{skip-link-6hCvwkVB.mjs → skip-link-B42C5TY2.mjs} +1 -1
  232. package/dist/{skip-link-6hCvwkVB.mjs.map → skip-link-B42C5TY2.mjs.map} +1 -1
  233. package/dist/{sticky-header-BVSEDMHH.mjs → sticky-header-CPzI8Eft.mjs} +1 -1
  234. package/dist/{sticky-header-BVSEDMHH.mjs.map → sticky-header-CPzI8Eft.mjs.map} +1 -1
  235. package/dist/{sticky-header-DFUhQ4aL.d.mts → sticky-header-RISPV-sC.d.mts} +3 -3
  236. package/dist/{sub-navbar-3yiCgad_.mjs → sub-navbar-BKSTicOx.mjs} +3 -3
  237. package/dist/{sub-navbar-3yiCgad_.mjs.map → sub-navbar-BKSTicOx.mjs.map} +1 -1
  238. package/dist/{tab-CKzYzJG2.mjs → tab-CmqJjQPm.mjs} +1 -1
  239. package/dist/{tab-CKzYzJG2.mjs.map → tab-CmqJjQPm.mjs.map} +1 -1
  240. package/dist/{tabs-DtBM8JYq.mjs → tabs-T1uV7M_a.mjs} +1 -1
  241. package/dist/{tabs-DtBM8JYq.mjs.map → tabs-T1uV7M_a.mjs.map} +1 -1
  242. package/dist/{tabs-list-C14k_kq2.mjs → tabs-list-B_hWkbZq.mjs} +1 -1
  243. package/dist/{tabs-list-C14k_kq2.mjs.map → tabs-list-B_hWkbZq.mjs.map} +1 -1
  244. package/dist/{tabs-panel-DuwFItiC.mjs → tabs-panel-DkjUXjIX.mjs} +1 -1
  245. package/dist/{tabs-panel-DuwFItiC.mjs.map → tabs-panel-DkjUXjIX.mjs.map} +1 -1
  246. package/dist/{textarea-DFVhK8mn.mjs → textarea-Bl9YoeRB.mjs} +1 -1
  247. package/dist/{textarea-DFVhK8mn.mjs.map → textarea-Bl9YoeRB.mjs.map} +1 -1
  248. package/dist/{textfield-DJ8JNFtQ.mjs → textfield-nFlOsghw.mjs} +3 -3
  249. package/dist/{textfield-DJ8JNFtQ.mjs.map → textfield-nFlOsghw.mjs.map} +1 -1
  250. package/dist/{useCheckboxGroup-CXmF4bqs.mjs → useCheckboxGroup-DWqqNSFY.mjs} +1 -1
  251. package/dist/{useCheckboxGroup-CXmF4bqs.mjs.map → useCheckboxGroup-DWqqNSFY.mjs.map} +1 -1
  252. package/dist/{useIsElementAboveViewport-Dy_5jjA4.mjs → useIsElementAboveViewport-DTgaSPiF.mjs} +1 -1
  253. package/dist/{useIsElementAboveViewport-Dy_5jjA4.mjs.map → useIsElementAboveViewport-DTgaSPiF.mjs.map} +1 -1
  254. package/dist/{useIsomorphicLayoutEffect-CUaF-bk-.mjs → useIsomorphicLayoutEffect-B9zYV7Dq.mjs} +1 -1
  255. package/dist/{useIsomorphicLayoutEffect-CUaF-bk-.mjs.map → useIsomorphicLayoutEffect-B9zYV7Dq.mjs.map} +1 -1
  256. package/dist/{useMediaQuery-BzRQnFto.mjs → useMediaQuery-I2eiGl9n.mjs} +2 -2
  257. package/dist/{useMediaQuery-BzRQnFto.mjs.map → useMediaQuery-I2eiGl9n.mjs.map} +1 -1
  258. package/dist/{usePagination-Cs_RI4QO.mjs → usePagination-9ht6tr5V.mjs} +1 -1
  259. package/dist/{usePagination-Cs_RI4QO.mjs.map → usePagination-9ht6tr5V.mjs.map} +1 -1
  260. package/dist/{useScrollDirection-D35f7Y4k.mjs → useScrollDirection-D7_FOiXc.mjs} +1 -1
  261. package/dist/{useScrollDirection-D35f7Y4k.mjs.map → useScrollDirection-D7_FOiXc.mjs.map} +1 -1
  262. package/dist/utilities/hooks/index.d.mts +8 -9
  263. package/dist/utilities/hooks/index.mjs +7 -7
  264. package/dist/utilities/hooks/useCheckboxGroup/useCheckboxGroup.mjs +1 -1
  265. package/dist/utilities/hooks/useIsElementAboveViewport/useIsElementAboveViewport.mjs +1 -1
  266. package/dist/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +1 -1
  267. package/dist/utilities/hooks/useMediaQuery/useMediaQuery.mjs +2 -2
  268. package/dist/utilities/hooks/usePagination/usePagination.d.mts +8 -11
  269. package/dist/utilities/hooks/usePagination/usePagination.mjs +1 -1
  270. package/dist/utilities/hooks/useScrollDirection/useScrollDirection.mjs +1 -1
  271. package/dist/utilities/index.d.mts +8 -8
  272. package/dist/utilities/index.mjs +8 -8
  273. package/dist/{validation-message-Dd58lGnj.mjs → validation-message-C60moOAJ.mjs} +1 -1
  274. package/dist/{validation-message-Dd58lGnj.mjs.map → validation-message-C60moOAJ.mjs.map} +1 -1
  275. package/dist/vanilla/dropdown/index.mjs +2 -2
  276. package/dist/vanilla/index.d.mts +2 -2
  277. package/dist/vanilla/index.mjs +3 -3
  278. package/dist/vanilla/popover/index.d.mts +2 -2
  279. package/dist/vanilla/popover/index.mjs +2 -2
  280. package/package.json +5 -5
  281. package/dist/popover-B9hFmnr_.mjs.map +0 -1
  282. package/dist/popover-DzgWYNoJ.mjs.map +0 -1
  283. /package/dist/{components-CeK6-ASQ.mjs → components-BdkN-_Ml.mjs} +0 -0
  284. /package/dist/{dropdown-C3I8bZLs.mjs → dropdown-CywQTysC.mjs} +0 -0
  285. /package/dist/{fieldset-tZuIXydR.mjs → fieldset-BwzFUZoW.mjs} +0 -0
  286. /package/dist/{filter-group-DPHL4VfT.mjs → filter-group-Dg6HgIEt.mjs} +0 -0
  287. /package/dist/{footer-DGxeVILK.mjs → footer-otE7lgPI.mjs} +0 -0
  288. /package/dist/{hooks-BrrLmPaM.mjs → hooks-DHUUJnUb.mjs} +0 -0
  289. /package/dist/{link-BiRqBqvg.mjs → link-DHnBZB44.mjs} +0 -0
  290. /package/dist/{logo-BM_IcZ4z.mjs → logo-BefTu0Vy.mjs} +0 -0
  291. /package/dist/{navbar-DVCz5pJr.mjs → navbar-Cypkd4U3.mjs} +0 -0
  292. /package/dist/{pagination-C-zx5c24.mjs → pagination-C5SJFVIg.mjs} +0 -0
  293. /package/dist/{popover-TVw5qvBN.mjs → popover-8vTBTV78.mjs} +0 -0
  294. /package/dist/{radio-BDnsYmpD.mjs → radio-CxXWLUKN.mjs} +0 -0
  295. /package/dist/{search-DtHjYP-M.mjs → search-Cprk0LkD.mjs} +0 -0
  296. /package/dist/{select-DCfEuOyf.mjs → select-DoRxDJyZ.mjs} +0 -0
  297. /package/dist/{selectfield-61gkXh3W.mjs → selectfield-DxSdNYcd.mjs} +0 -0
  298. /package/dist/{skip-link-CbHq2qa0.mjs → skip-link-B_bGWDKA.mjs} +0 -0
  299. /package/dist/{sticky-header-q9kmWkFr.mjs → sticky-header-DtFcfpHJ.mjs} +0 -0
  300. /package/dist/{tabs-BCMdleWu.mjs → tabs-IvYkQ0JK.mjs} +0 -0
  301. /package/dist/{textarea-Dsi2VLWA.mjs → textarea-Cd80tzk3.mjs} +0 -0
  302. /package/dist/{textfield-BjiYCE-E.mjs → textfield-CB6b8VQQ.mjs} +0 -0
  303. /package/dist/{utilities-Ci92QrhM.mjs → utilities-D-mDqsCm.mjs} +0 -0
  304. /package/dist/{validation-message-cLSxpQ0B.mjs → validation-message-DhhtmfvD.mjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-DQG9eVY1.mjs","names":[],"sources":["../src/components/pagination/pagination.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\n\nexport type PaginationProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n ref?: Ref<HTMLUListElement>;\n }\n>;\n\nexport const Pagination = ({ className, dark = false, ref, children, ...props }: PaginationProps) => {\n return (\n <nav className={clsx('bi-pagination', className)} data-dark={dark} ref={ref} {...props}>\n <ul>{children}</ul>\n </nav>\n );\n};\n"],"mappings":";;;;AAYA,MAAa,cAAc,EAAE,WAAW,OAAO,OAAO,KAAK,UAAU,GAAG,YAA6B;AACnG,QACE,oBAAC;EAAI,WAAW,KAAK,iBAAiB,UAAU;EAAE,aAAW;EAAW;EAAK,GAAI;YAC/E,oBAAC,QAAI,WAAc;GACf"}
1
+ {"version":3,"file":"pagination-BVsDp6Md.mjs","names":[],"sources":["../src/components/pagination/pagination.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\n\nexport type PaginationProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n ref?: Ref<HTMLUListElement>;\n }\n>;\n\nexport const Pagination = ({ className, dark = false, ref, children, ...props }: PaginationProps) => {\n return (\n <nav className={clsx('bi-pagination', className)} data-dark={dark} ref={ref} {...props}>\n <ul>{children}</ul>\n </nav>\n );\n};\n"],"mappings":";;;;AAYA,MAAa,cAAc,EAAE,WAAW,OAAO,OAAO,KAAK,UAAU,GAAG,YAA6B;AACnG,QACE,oBAAC;EAAI,WAAW,KAAK,iBAAiB,UAAU;EAAE,aAAW;EAAW;EAAK,GAAI;YAC/E,oBAAC,QAAI,WAAc;GACf"}
@@ -11,4 +11,4 @@ const PaginationButton = ({ ref, ...rest }) => /* @__PURE__ */ jsx(Button, {
11
11
 
12
12
  //#endregion
13
13
  export { PaginationButton as t };
14
- //# sourceMappingURL=pagination-button-BlzwamSr.mjs.map
14
+ //# sourceMappingURL=pagination-button-DV7GBbhq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-button-BlzwamSr.mjs","names":[],"sources":["../src/components/pagination/pagination-button.tsx"],"sourcesContent":["import { AriaAttributes } from 'react';\nimport { Button, type ButtonProps } from '../button';\n\nexport type PaginationButtonProps = ButtonProps & {\n /**\n * Toggle button as active\n * @default false\n */\n 'aria-current'?: AriaAttributes['aria-current'];\n};\n\nexport const PaginationButton = ({ ref, ...rest }: PaginationButtonProps) => (\n <Button variant='text' icon ref={ref} {...rest} />\n);\n"],"mappings":";;;;AAWA,MAAa,oBAAoB,EAAE,KAAK,GAAG,WACzC,oBAAC;CAAO,SAAQ;CAAO;CAAU;CAAK,GAAI;EAAQ"}
1
+ {"version":3,"file":"pagination-button-DV7GBbhq.mjs","names":[],"sources":["../src/components/pagination/pagination-button.tsx"],"sourcesContent":["import { AriaAttributes } from 'react';\nimport { Button, type ButtonProps } from '../button';\n\nexport type PaginationButtonProps = ButtonProps & {\n /**\n * Toggle button as active\n * @default false\n */\n 'aria-current'?: AriaAttributes['aria-current'];\n};\n\nexport const PaginationButton = ({ ref, ...rest }: PaginationButtonProps) => (\n <Button variant='text' icon ref={ref} {...rest} />\n);\n"],"mappings":";;;;AAWA,MAAa,oBAAoB,EAAE,KAAK,GAAG,WACzC,oBAAC;CAAO,SAAQ;CAAO;CAAU;CAAK,GAAI;EAAQ"}
@@ -12,4 +12,4 @@ const PaginationItem = ({ ref, asChild, children, ...rest }) => {
12
12
 
13
13
  //#endregion
14
14
  export { PaginationItem as t };
15
- //# sourceMappingURL=pagination-item-BnM5pCuI.mjs.map
15
+ //# sourceMappingURL=pagination-item-OR2QSk7T.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination-item-BnM5pCuI.mjs","names":[],"sources":["../src/components/pagination/pagination-item.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { HTMLAttributes, Ref } from 'react';\n\nexport type PaginationItemProps = HTMLAttributes<HTMLLIElement> & {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLLIElement>;\n};\n\nexport const PaginationItem = ({ ref, asChild, children, ...rest }: PaginationItemProps) => {\n const Component = asChild ? Slot : 'li';\n return (\n <Component ref={ref} {...rest}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAYA,MAAa,kBAAkB,EAAE,KAAK,SAAS,UAAU,GAAG,WAAgC;AAE1F,QACE,oBAFgB,UAAU,OAAO;EAEjB;EAAK,GAAI;EACtB;GACS"}
1
+ {"version":3,"file":"pagination-item-OR2QSk7T.mjs","names":[],"sources":["../src/components/pagination/pagination-item.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { HTMLAttributes, Ref } from 'react';\n\nexport type PaginationItemProps = HTMLAttributes<HTMLLIElement> & {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLLIElement>;\n};\n\nexport const PaginationItem = ({ ref, asChild, children, ...rest }: PaginationItemProps) => {\n const Component = asChild ? Slot : 'li';\n return (\n <Component ref={ref} {...rest}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAYA,MAAa,kBAAkB,EAAE,KAAK,SAAS,UAAU,GAAG,WAAgC;AAE1F,QACE,oBAFgB,UAAU,OAAO;EAEjB;EAAK,GAAI;EACtB;GACS"}
@@ -20,7 +20,8 @@ const initPopover = ({ id, disableAutoPlacement = false, placement = "top", posi
20
20
  offset(padding),
21
21
  ...disableAutoPlacement ? [] : [flip({ padding }), shift({ padding })],
22
22
  ...positionMiddleware,
23
- hide({ padding })
23
+ hide({ padding }),
24
+ ...popover.dataset.arrow === "true" ? [arrowPseudoElement] : []
24
25
  ],
25
26
  strategy: "fixed",
26
27
  placement
@@ -47,7 +48,35 @@ const initPopover = ({ id, disableAutoPlacement = false, placement = "top", posi
47
48
  }, true);
48
49
  return togglePopover;
49
50
  };
51
+ const arrowPseudoElement = {
52
+ name: "ArrowPseudoElement",
53
+ fn(data) {
54
+ const { elements, rects, placement } = data;
55
+ let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
56
+ let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
57
+ if (rects.reference.width > rects.floating.width) arrowX = `${Math.round(rects.floating.width / 2)}px`;
58
+ if (rects.reference.height > rects.floating.height) arrowY = `${Math.round(rects.floating.height / 2)}px`;
59
+ switch (placement.split("-")[0]) {
60
+ case "top":
61
+ arrowY = "100%";
62
+ break;
63
+ case "right":
64
+ arrowX = "0";
65
+ break;
66
+ case "bottom":
67
+ arrowY = "0";
68
+ break;
69
+ case "left":
70
+ arrowX = "100%";
71
+ break;
72
+ }
73
+ elements.floating.setAttribute("data-placement", placement.split("-")[0]);
74
+ elements.floating.style.setProperty("--bic-popover-arrow-x", arrowX);
75
+ elements.floating.style.setProperty("--bic-popover-arrow-y", arrowY);
76
+ return data;
77
+ }
78
+ };
50
79
 
51
80
  //#endregion
52
- export { initPopover as t };
53
- //# sourceMappingURL=popover-DzgWYNoJ.mjs.map
81
+ export { initPopover as n, arrowPseudoElement as t };
82
+ //# sourceMappingURL=popover-ChAkuQdg.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-ChAkuQdg.mjs","names":["cleanup: (() => void) | undefined","arrowPseudoElement: Middleware"],"sources":["../src/vanilla/popover/index.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift, hide } from '@floating-ui/dom';\nimport type { Middleware, Placement } from '@floating-ui/dom';\n\nexport type InitPopoverOptions = {\n /** The id of the popover to initialize. The trigger element should have a `aria-controls` attribute with the same id. */\n id: string;\n /**\n * Placement of the popover relative to the trigger.\n * @default 'top'\n */\n placement?: Placement;\n /**\n * Additional middleware to use for positioning the popover.\n *\n * @example\n * Prevent the popover from overflowing the navbar by using the `size` middleware:\n * ```ts\n * positionMiddleware: [\n * size({\n * apply: ({ availableHeight, elements, ...state }) => {\n * const available = `${Math.max(0, availableHeight)}px`;\n * const maxHeight = state.placement.includes('top')\n * ? `calc(${available} - var(--bi-layout-navbar-height, 0))`\n * : available;\n * elements.floating.style.maxHeight = maxHeight;\n * },\n * padding,\n * })\n * ]}\n * ```\n */\n positionMiddleware?: Middleware[];\n /**\n * Whether to disable auto placement.\n * @default false\n */\n disableAutoPlacement?: boolean;\n /**\n * The padding used by the `offset` middleware.\n * @default '20'\n */\n padding?: number;\n};\n\n/**\n * Initializes the popover.\n * @param options - InitPopoverOptions\n * @returns A function to programmatically toggle the popover.\n */\nexport const initPopover = ({\n id,\n disableAutoPlacement = false,\n placement = 'top',\n positionMiddleware = [],\n padding = 20,\n}: InitPopoverOptions) => {\n let cleanup: (() => void) | undefined;\n const popover = document.getElementById(id);\n const triggerSelector = `[aria-controls=\"${id}\"]`;\n const trigger = document.querySelector(triggerSelector);\n\n if (!popover || !trigger) return;\n\n const togglePopover = (open: boolean) => {\n if (open) {\n cleanup = autoUpdate(trigger, popover, () => {\n computePosition(trigger, popover, {\n middleware: [\n offset(padding),\n ...(disableAutoPlacement ? [] : [flip({ padding }), shift({ padding })]),\n ...positionMiddleware,\n hide({ padding }),\n ...(popover.dataset.arrow === 'true' ? [arrowPseudoElement] : []),\n ],\n strategy: 'fixed',\n placement,\n }).then(({ x, y, middlewareData }) => {\n popover.style.translate = `${x}px ${y}px`;\n popover.style.visibility = middlewareData.hide?.referenceHidden ? 'hidden' : 'visible';\n });\n });\n popover.setAttribute('aria-hidden', 'false');\n trigger.setAttribute('aria-expanded', 'true');\n } else {\n cleanup?.();\n popover.setAttribute('aria-hidden', 'true');\n trigger.setAttribute('aria-expanded', 'false');\n }\n };\n\n document.addEventListener(\n 'click',\n (event) => {\n const el = event.target as Element | null;\n const isTrigger = el?.closest?.(triggerSelector);\n const isOutside = !isTrigger && !popover.contains(el as Node);\n const isOpen = popover.getAttribute('aria-hidden') === 'false';\n\n if (isTrigger) {\n togglePopover(!isOpen);\n }\n if (isOutside && isOpen) {\n togglePopover(false);\n }\n },\n true,\n );\n\n return togglePopover;\n};\n\nexport const arrowPseudoElement: Middleware = {\n name: 'ArrowPseudoElement',\n fn(data) {\n const { elements, rects, placement } = data;\n\n let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;\n let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;\n\n if (rects.reference.width > rects.floating.width) {\n arrowX = `${Math.round(rects.floating.width / 2)}px`;\n }\n\n if (rects.reference.height > rects.floating.height) {\n arrowY = `${Math.round(rects.floating.height / 2)}px`;\n }\n\n switch (placement.split('-')[0]) {\n case 'top':\n arrowY = '100%';\n break;\n case 'right':\n arrowX = '0';\n break;\n case 'bottom':\n arrowY = '0';\n break;\n case 'left':\n arrowX = '100%';\n break;\n }\n\n elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom\n elements.floating.style.setProperty('--bic-popover-arrow-x', arrowX);\n elements.floating.style.setProperty('--bic-popover-arrow-y', arrowY);\n return data;\n },\n};\n"],"mappings":";;;;;;;;AAiDA,MAAa,eAAe,EAC1B,IACA,uBAAuB,OACvB,YAAY,OACZ,qBAAqB,EAAE,EACvB,UAAU,SACc;CACxB,IAAIA;CACJ,MAAM,UAAU,SAAS,eAAe,GAAG;CAC3C,MAAM,kBAAkB,mBAAmB,GAAG;CAC9C,MAAM,UAAU,SAAS,cAAc,gBAAgB;AAEvD,KAAI,CAAC,WAAW,CAAC,QAAS;CAE1B,MAAM,iBAAiB,SAAkB;AACvC,MAAI,MAAM;AACR,aAAU,WAAW,SAAS,eAAe;AAC3C,oBAAgB,SAAS,SAAS;KAChC,YAAY;MACV,OAAO,QAAQ;MACf,GAAI,uBAAuB,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;MACvE,GAAG;MACH,KAAK,EAAE,SAAS,CAAC;MACjB,GAAI,QAAQ,QAAQ,UAAU,SAAS,CAAC,mBAAmB,GAAG,EAAE;MACjE;KACD,UAAU;KACV;KACD,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,qBAAqB;AACpC,aAAQ,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE;AACtC,aAAQ,MAAM,aAAa,eAAe,MAAM,kBAAkB,WAAW;MAC7E;KACF;AACF,WAAQ,aAAa,eAAe,QAAQ;AAC5C,WAAQ,aAAa,iBAAiB,OAAO;SACxC;AACL,cAAW;AACX,WAAQ,aAAa,eAAe,OAAO;AAC3C,WAAQ,aAAa,iBAAiB,QAAQ;;;AAIlD,UAAS,iBACP,UACC,UAAU;EACT,MAAM,KAAK,MAAM;EACjB,MAAM,YAAY,IAAI,UAAU,gBAAgB;EAChD,MAAM,YAAY,CAAC,aAAa,CAAC,QAAQ,SAAS,GAAW;EAC7D,MAAM,SAAS,QAAQ,aAAa,cAAc,KAAK;AAEvD,MAAI,UACF,eAAc,CAAC,OAAO;AAExB,MAAI,aAAa,OACf,eAAc,MAAM;IAGxB,KACD;AAED,QAAO;;AAGT,MAAaC,qBAAiC;CAC5C,MAAM;CACN,GAAG,MAAM;EACP,MAAM,EAAE,UAAU,OAAO,cAAc;EAEvC,IAAI,SAAS,GAAG,KAAK,MAAM,MAAM,UAAU,QAAQ,IAAI,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;EACnF,IAAI,SAAS,GAAG,KAAK,MAAM,MAAM,UAAU,SAAS,IAAI,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;AAEpF,MAAI,MAAM,UAAU,QAAQ,MAAM,SAAS,MACzC,UAAS,GAAG,KAAK,MAAM,MAAM,SAAS,QAAQ,EAAE,CAAC;AAGnD,MAAI,MAAM,UAAU,SAAS,MAAM,SAAS,OAC1C,UAAS,GAAG,KAAK,MAAM,MAAM,SAAS,SAAS,EAAE,CAAC;AAGpD,UAAQ,UAAU,MAAM,IAAI,CAAC,IAA7B;GACE,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;;AAGJ,WAAS,SAAS,aAAa,kBAAkB,UAAU,MAAM,IAAI,CAAC,GAAG;AACzE,WAAS,SAAS,MAAM,YAAY,yBAAyB,OAAO;AACpE,WAAS,SAAS,MAAM,YAAY,yBAAyB,OAAO;AACpE,SAAO;;CAEV"}
@@ -1,5 +1,6 @@
1
1
  import { t as useMergeRefs } from "./useMergeRefs-B7Ew7-l-.mjs";
2
2
  import { t as Context } from "./popover-trigger-context-jE5SJQHq.mjs";
3
+ import { t as arrowPseudoElement } from "./popover-ChAkuQdg.mjs";
3
4
  import clsx from "clsx/lite";
4
5
  import { Slot } from "@radix-ui/react-slot";
5
6
  import { jsx } from "react/jsx-runtime";
@@ -25,7 +26,7 @@ import { autoUpdate, computePosition, flip, hide, offset, shift } from "@floatin
25
26
  * Content
26
27
  * </Popover>
27
28
  */
28
- const Popover = ({ id, className, onOpenChange, open, placement = "top", disableAutoPlacement = false, positionMiddleware = [], padding = 20, dark = false, asChild = false, ref, ...rest }) => {
29
+ const Popover = ({ id, className, onOpenChange, open, placement = "top", disableAutoPlacement = false, positionMiddleware = [], padding = 20, dark = false, arrow = false, asChild = false, ref, ...rest }) => {
29
30
  const Component = asChild ? Slot : "div";
30
31
  const popoverRef = useRef(null);
31
32
  const isControlled = useRef(open !== void 0);
@@ -70,7 +71,8 @@ const Popover = ({ id, className, onOpenChange, open, placement = "top", disable
70
71
  hide({
71
72
  padding,
72
73
  strategy: "escaped"
73
- })
74
+ }),
75
+ ...arrow ? [arrowPseudoElement] : []
74
76
  ],
75
77
  strategy: "fixed",
76
78
  placement
@@ -85,7 +87,8 @@ const Popover = ({ id, className, onOpenChange, open, placement = "top", disable
85
87
  id,
86
88
  disableAutoPlacement,
87
89
  positionMiddleware,
88
- padding
90
+ padding,
91
+ arrow
89
92
  ]);
90
93
  useEffect(() => {
91
94
  if (id) setPopoverId?.(id);
@@ -94,6 +97,7 @@ const Popover = ({ id, className, onOpenChange, open, placement = "top", disable
94
97
  className: clsx("bi-popover", className),
95
98
  id: id || popoverId,
96
99
  "aria-hidden": !isOpen,
100
+ "data-arrow": arrow || void 0,
97
101
  "data-dark": dark,
98
102
  ref: mergedRefs,
99
103
  ...rest
@@ -102,4 +106,4 @@ const Popover = ({ id, className, onOpenChange, open, placement = "top", disable
102
106
 
103
107
  //#endregion
104
108
  export { Popover as t };
105
- //# sourceMappingURL=popover-B9hFmnr_.mjs.map
109
+ //# sourceMappingURL=popover-DXYtGiZI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-DXYtGiZI.mjs","names":["cl"],"sources":["../src/components/popover/popover.tsx"],"sourcesContent":["// Thanks to Designsystemet:\n// https://github.com/digdir/designsystemet/blob/8aa6dc274e5b0338d15572f44b5dd3fab6fa4eb1/packages/react/src/components/Popover/Popover.tsx\n\nimport { autoUpdate, computePosition, flip, offset, shift, hide } from '@floating-ui/dom';\nimport type { Middleware, Placement } from '@floating-ui/dom';\nimport { Slot } from '@radix-ui/react-slot';\nimport cl from 'clsx/lite';\nimport { use, useRef } from 'react';\nimport type { HTMLAttributes, Ref } from 'react';\nimport { useEffect } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { useMergeRefs } from '../../utilities/hooks/useMergeRefs/useMergeRefs';\nimport { Context } from './popover-trigger-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { arrowPseudoElement } from '../../vanilla/popover';\n\nexport type PopoverProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n /**\n * `id` to connect the trigger with the popover - required when not using PopoverContext.\n */\n id?: string;\n /**\n * Placement of the popover on the trigger.\n * @default 'top'\n */\n placement?: Placement;\n /**\n * When a boolean is provided, the popover will be controlled.\n * @default undefined\n */\n open?: boolean;\n /**\n * Callback when the open state changes.\n * @param open - The new open state of the popover.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Whether to disable auto placement.\n * @default false\n */\n disableAutoPlacement?: boolean;\n /**\n * Additional middleware to use for positioning the popover.\n *\n * @example\n * Prevent the popover from overflowing the navbar by using the `size` middleware:\n * ```ts\n * positionMiddleware={[\n * size({\n * apply: ({ availableHeight, elements, ...state }) => {\n * const available = `${Math.max(0, availableHeight)}px`;\n * const maxHeight = state.placement.includes('top')\n * ? `calc(${available} - var(--bi-layout-navbar-height, 0))`\n * : available;\n * elements.floating.style.maxHeight = maxHeight;\n * },\n * padding,\n * })\n * ]}\n * ```\n */\n positionMiddleware?: Middleware[];\n /**\n * The padding used by the `offset` middleware.\n * @default '20'\n */\n padding?: number;\n /**\n * Show an arrow on the popover, pointing toward the center of the reference element.\n * @default false\n */\n arrow?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\n/**\n * Popover component, used to display content in a popover over an element.\n *\n * @example with TriggerContext\n * <PopoverTriggerContext>\n * <PopoverTrigger>Open Popover</PopoverTrigger>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n *\n * @example without TriggerContext\n * <Button aria-controls=\"my-popover\" aria-expanded={open}>Open Popover</Button>\n * <Popover open={open} onOpenChange={onOpenChange} id=\"my-popover\">\n * Content\n * </Popover>\n */\nexport const Popover = ({\n id,\n className,\n onOpenChange,\n open,\n placement = 'top',\n disableAutoPlacement = false,\n positionMiddleware = [],\n padding = 20,\n dark = false,\n arrow = false,\n asChild = false,\n ref,\n ...rest\n}: PopoverProps) => {\n const Component = asChild ? Slot : 'div';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n const isControlled = useRef(open !== undefined);\n const mergedRefs = useMergeRefs([popoverRef, ref]);\n const { popoverId, setPopoverId, popoverOpen, setPopoverOpen } = use(Context);\n\n const [isOpen, setIsOpen] = useControllableState({\n // False positive: isControlled will never change, but is just used to store the initial controlled state\n // eslint-disable-next-line react-hooks/refs\n prop: isControlled.current ? open : popoverOpen,\n onChange: (val) => {\n onOpenChange?.(val);\n setPopoverOpen?.(val);\n },\n defaultProp: false,\n caller: 'Popover',\n });\n\n useEffect(() => {\n const popover = popoverRef.current;\n const handleClick = (event: MouseEvent) => {\n const el = event.target as Element | null;\n const isTrigger = el?.closest?.(`[aria-controls=\"${popover?.id}\"]`);\n const isOutside = !isTrigger && !popover?.contains(el as Node);\n\n if (isOutside) {\n setIsOpen(false);\n }\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !isOpen) return;\n event.preventDefault(); // Prevent closing fullscreen in Safari\n setIsOpen(false);\n };\n\n document.addEventListener('click', handleClick, true); // Use capture to execute before React event API\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('click', handleClick, true);\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [isOpen, setIsOpen]);\n\n useEffect(() => {\n const popover = popoverRef.current;\n const trigger = document.querySelector(`[aria-controls=\"${popover?.id}\"]`);\n\n if (popover && trigger && isOpen)\n return autoUpdate(trigger, popover, () => {\n computePosition(trigger, popover, {\n middleware: [\n offset(padding),\n ...(disableAutoPlacement ? [] : [flip({ padding }), shift({ padding })]),\n ...positionMiddleware,\n hide({ padding, strategy: 'escaped' }),\n ...(arrow ? [arrowPseudoElement] : []),\n ],\n strategy: 'fixed',\n placement,\n }).then(({ x, y, middlewareData }) => {\n popover.style.translate = `${x}px ${y}px`;\n popover.style.visibility = middlewareData.hide?.referenceHidden ? 'hidden' : 'visible';\n });\n });\n }, [isOpen, placement, id, disableAutoPlacement, positionMiddleware, padding, arrow]);\n\n // Update context with id\n useEffect(() => {\n if (id) setPopoverId?.(id);\n }, [id, setPopoverId]);\n\n return (\n <Component\n className={cl('bi-popover', className)}\n id={id || popoverId}\n aria-hidden={!isOpen}\n data-arrow={arrow || undefined}\n data-dark={dark}\n ref={mergedRefs}\n {...rest}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,MAAa,WAAW,EACtB,IACA,WACA,cACA,MACA,YAAY,OACZ,uBAAuB,OACvB,qBAAqB,EAAE,EACvB,UAAU,IACV,OAAO,OACP,QAAQ,OACR,UAAU,OACV,KACA,GAAG,WACe;CAClB,MAAM,YAAY,UAAU,OAAO;CAEnC,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,eAAe,OAAO,SAAS,OAAU;CAC/C,MAAM,aAAa,aAAa,CAAC,YAAY,IAAI,CAAC;CAClD,MAAM,EAAE,WAAW,cAAc,aAAa,mBAAmB,IAAI,QAAQ;CAE7E,MAAM,CAAC,QAAQ,aAAa,qBAAqB;EAG/C,MAAM,aAAa,UAAU,OAAO;EACpC,WAAW,QAAQ;AACjB,kBAAe,IAAI;AACnB,oBAAiB,IAAI;;EAEvB,aAAa;EACb,QAAQ;EACT,CAAC;AAEF,iBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,MAAM,eAAe,UAAsB;GACzC,MAAM,KAAK,MAAM;AAIjB,OAFkB,CADA,IAAI,UAAU,mBAAmB,SAAS,GAAG,IAAI,IACnC,CAAC,SAAS,SAAS,GAAW,CAG5D,WAAU,MAAM;;EAIpB,MAAM,iBAAiB,UAAyB;AAC9C,OAAI,MAAM,QAAQ,YAAY,CAAC,OAAQ;AACvC,SAAM,gBAAgB;AACtB,aAAU,MAAM;;AAGlB,WAAS,iBAAiB,SAAS,aAAa,KAAK;AACrD,WAAS,iBAAiB,WAAW,cAAc;AACnD,eAAa;AACX,YAAS,oBAAoB,SAAS,aAAa,KAAK;AACxD,YAAS,oBAAoB,WAAW,cAAc;;IAEvD,CAAC,QAAQ,UAAU,CAAC;AAEvB,iBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,MAAM,UAAU,SAAS,cAAc,mBAAmB,SAAS,GAAG,IAAI;AAE1E,MAAI,WAAW,WAAW,OACxB,QAAO,WAAW,SAAS,eAAe;AACxC,mBAAgB,SAAS,SAAS;IAChC,YAAY;KACV,OAAO,QAAQ;KACf,GAAI,uBAAuB,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KACvE,GAAG;KACH,KAAK;MAAE;MAAS,UAAU;MAAW,CAAC;KACtC,GAAI,QAAQ,CAAC,mBAAmB,GAAG,EAAE;KACtC;IACD,UAAU;IACV;IACD,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,qBAAqB;AACpC,YAAQ,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE;AACtC,YAAQ,MAAM,aAAa,eAAe,MAAM,kBAAkB,WAAW;KAC7E;IACF;IACH;EAAC;EAAQ;EAAW;EAAI;EAAsB;EAAoB;EAAS;EAAM,CAAC;AAGrF,iBAAgB;AACd,MAAI,GAAI,gBAAe,GAAG;IACzB,CAAC,IAAI,aAAa,CAAC;AAEtB,QACE,oBAAC;EACC,WAAWA,KAAG,cAAc,UAAU;EACtC,IAAI,MAAM;EACV,eAAa,CAAC;EACd,cAAY,SAAS;EACrB,aAAW;EACX,KAAK;EACL,GAAI;GACJ"}
@@ -41,4 +41,4 @@ const PopoverTrigger = ({ id, inline, asChild, ref, ...rest }) => {
41
41
 
42
42
  //#endregion
43
43
  export { PopoverTrigger as t };
44
- //# sourceMappingURL=popover-trigger-kS89jLF5.mjs.map
44
+ //# sourceMappingURL=popover-trigger-Brt5Ctq5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover-trigger-kS89jLF5.mjs","names":[],"sources":["../src/components/popover/popover-trigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { type HTMLAttributes, Ref, use } from 'react';\nimport type { DefaultProps } from '../../types';\nimport { Button, type ButtonProps } from '../button';\nimport { Context } from './popover-trigger-context';\n\nexport type PopoverTriggerProps =\n | ({\n /**\n * Will render the trigger as inline text.\n * @default false\n */\n inline?: true;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLButtonElement>;\n } & HTMLAttributes<HTMLButtonElement> &\n DefaultProps)\n | ({\n /**\n * Will not render the trigger as inline text.\n * @default false\n */\n inline?: false;\n } & ButtonProps);\n\n/**\n * PopoverTrigger component, used to trigger a popover.\n *\n * @example\n * <PopoverTriggerContext>\n * <PopoverTrigger>Open Popover</PopoverTrigger>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n *\n * @example inline\n * <PopoverTriggerContext>\n * <Paragraph>\n * We can use it <PopoverTrigger inline={true}>inline</PopoverTrigger>.\n * </Paragraph>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const PopoverTrigger = ({ id, inline, asChild, ref, ...rest }: PopoverTriggerProps) => {\n const { popoverId, popoverOpen, setPopoverOpen } = use(Context);\n const Component = asChild ? Slot : inline ? 'button' : Button;\n\n const popoverProps = Object.assign(\n {\n onClick: () => setPopoverOpen?.((prev) => !prev),\n 'aria-controls': popoverId,\n 'aria-expanded': popoverOpen,\n ...(inline\n ? {\n 'data-popover': 'inline',\n }\n : {}),\n },\n rest,\n );\n\n return <Component ref={ref} {...popoverProps} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAa,kBAAkB,EAAE,IAAI,QAAQ,SAAS,KAAK,GAAG,WAAgC;CAC5F,MAAM,EAAE,WAAW,aAAa,mBAAmB,IAAI,QAAQ;AAiB/D,QAAO,oBAhBW,UAAU,OAAO,SAAS,WAAW;EAgBhC;EAAK,GAdP,OAAO,OAC1B;GACE,eAAe,kBAAkB,SAAS,CAAC,KAAK;GAChD,iBAAiB;GACjB,iBAAiB;GACjB,GAAI,SACA,EACE,gBAAgB,UACjB,GACD,EAAE;GACP,EACD,KACD;GAE+C"}
1
+ {"version":3,"file":"popover-trigger-Brt5Ctq5.mjs","names":[],"sources":["../src/components/popover/popover-trigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { type HTMLAttributes, Ref, use } from 'react';\nimport type { DefaultProps } from '../../types';\nimport { Button, type ButtonProps } from '../button';\nimport { Context } from './popover-trigger-context';\n\nexport type PopoverTriggerProps =\n | ({\n /**\n * Will render the trigger as inline text.\n * @default false\n */\n inline?: true;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLButtonElement>;\n } & HTMLAttributes<HTMLButtonElement> &\n DefaultProps)\n | ({\n /**\n * Will not render the trigger as inline text.\n * @default false\n */\n inline?: false;\n } & ButtonProps);\n\n/**\n * PopoverTrigger component, used to trigger a popover.\n *\n * @example\n * <PopoverTriggerContext>\n * <PopoverTrigger>Open Popover</PopoverTrigger>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n *\n * @example inline\n * <PopoverTriggerContext>\n * <Paragraph>\n * We can use it <PopoverTrigger inline={true}>inline</PopoverTrigger>.\n * </Paragraph>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const PopoverTrigger = ({ id, inline, asChild, ref, ...rest }: PopoverTriggerProps) => {\n const { popoverId, popoverOpen, setPopoverOpen } = use(Context);\n const Component = asChild ? Slot : inline ? 'button' : Button;\n\n const popoverProps = Object.assign(\n {\n onClick: () => setPopoverOpen?.((prev) => !prev),\n 'aria-controls': popoverId,\n 'aria-expanded': popoverOpen,\n ...(inline\n ? {\n 'data-popover': 'inline',\n }\n : {}),\n },\n rest,\n );\n\n return <Component ref={ref} {...popoverProps} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAa,kBAAkB,EAAE,IAAI,QAAQ,SAAS,KAAK,GAAG,WAAgC;CAC5F,MAAM,EAAE,WAAW,aAAa,mBAAmB,IAAI,QAAQ;AAiB/D,QAAO,oBAhBW,UAAU,OAAO,SAAS,WAAW;EAgBhC;EAAK,GAdP,OAAO,OAC1B;GACE,eAAe,kBAAkB,SAAS,CAAC,KAAK;GAChD,iBAAiB;GACjB,iBAAiB;GACjB,GAAI,SACA,EACE,gBAAgB,UACjB,GACD,EAAE;GACP,EACD,KACD;GAE+C"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime70 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime57 from "react/jsx-runtime";
2
2
  import * as react0 from "react";
3
3
  import { ReactNode } from "react";
4
4
 
@@ -37,7 +37,7 @@ declare const PopoverTriggerContext: ({
37
37
  children,
38
38
  open,
39
39
  onOpenChange
40
- }: PopoverTriggerContextProps) => react_jsx_runtime70.JSX.Element;
40
+ }: PopoverTriggerContextProps) => react_jsx_runtime57.JSX.Element;
41
41
  //#endregion
42
42
  export { PopoverTriggerContext as n, PopoverTriggerContextProps as r, Context as t };
43
- //# sourceMappingURL=popover-trigger-context-DLFSm345.d.mts.map
43
+ //# sourceMappingURL=popover-trigger-context-C9FoRwGZ.d.mts.map
@@ -42,4 +42,4 @@ const Radio = ({ dark, label, description, error, fullwidth, style, className, r
42
42
 
43
43
  //#endregion
44
44
  export { Radio as t };
45
- //# sourceMappingURL=radio-D_uN-UNR.mjs.map
45
+ //# sourceMappingURL=radio-CZhM8bv4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-D_uN-UNR.mjs","names":[],"sources":["../src/components/radio/radio.tsx"],"sourcesContent":["import { useId, type ReactNode, type Ref } from 'react';\n\nimport type { LabelRequiredProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Field, FieldDescription } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { Label } from '../label';\n\nexport type RadioProps = MergeRight<\n LabelRequiredProps & Omit<InputProps, 'type' | 'role' | 'size'>,\n {\n /** Label */\n label?: ReactNode;\n /** Description */\n description?: ReactNode;\n /** Add error indication to the radio. */\n error?: boolean;\n /** If true, the radio will take up the full width of the container, and not just \"fit-content\" which is default */\n fullwidth?: boolean;\n ref?: Ref<HTMLInputElement>;\n }\n>;\n\nexport const Radio = ({\n dark,\n label,\n description,\n error,\n fullwidth,\n style,\n className,\n ref,\n id,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: RadioProps) => {\n const descriptionId = useId();\n\n const ariaDescribedBy = [description ? descriptionId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth} asChild>\n <label>\n <Input\n type='radio'\n id={id}\n ref={ref}\n aria-invalid={error || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...props}\n />\n {label && (\n <Label weight='medium' htmlFor={id} asChild>\n <span>{label}</span>\n </Label>\n )}\n {description && (\n // Aria-hidden is used to prevent screen readers from reading the description twice:\n // once as part of the label and once from being connected through aria-describedby.\n <FieldDescription aria-hidden='true' id={descriptionId}>\n {description}\n </FieldDescription>\n )}\n </label>\n </Field>\n );\n};\n"],"mappings":";;;;;;;;AAuBA,MAAa,SAAS,EACpB,MACA,OACA,aACA,OACA,WACA,OACA,WACA,KACA,IACA,oBAAoB,qBACpB,GAAG,YACa;CAChB,MAAM,gBAAgB,OAAO;CAE7B,MAAM,kBAAkB,CAAC,cAAc,gBAAgB,IAAI,oBAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AAEpG,QACE,oBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;EAAW;YAChF,qBAAC;GACC,oBAAC;IACC,MAAK;IACD;IACC;IACL,gBAAc,SAAS;IACvB,oBAAkB;IACZ;IACN,GAAI;KACJ;GACD,SACC,oBAAC;IAAM,QAAO;IAAS,SAAS;IAAI;cAClC,oBAAC,oBAAM,QAAa;KACd;GAET,eAGC,oBAAC;IAAiB,eAAY;IAAO,IAAI;cACtC;KACgB;MAEf;GACF"}
1
+ {"version":3,"file":"radio-CZhM8bv4.mjs","names":[],"sources":["../src/components/radio/radio.tsx"],"sourcesContent":["import { useId, type ReactNode, type Ref } from 'react';\n\nimport type { LabelRequiredProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Field, FieldDescription } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { Label } from '../label';\n\nexport type RadioProps = MergeRight<\n LabelRequiredProps & Omit<InputProps, 'type' | 'role' | 'size'>,\n {\n /** Label */\n label?: ReactNode;\n /** Description */\n description?: ReactNode;\n /** Add error indication to the radio. */\n error?: boolean;\n /** If true, the radio will take up the full width of the container, and not just \"fit-content\" which is default */\n fullwidth?: boolean;\n ref?: Ref<HTMLInputElement>;\n }\n>;\n\nexport const Radio = ({\n dark,\n label,\n description,\n error,\n fullwidth,\n style,\n className,\n ref,\n id,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: RadioProps) => {\n const descriptionId = useId();\n\n const ariaDescribedBy = [description ? descriptionId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth} asChild>\n <label>\n <Input\n type='radio'\n id={id}\n ref={ref}\n aria-invalid={error || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...props}\n />\n {label && (\n <Label weight='medium' htmlFor={id} asChild>\n <span>{label}</span>\n </Label>\n )}\n {description && (\n // Aria-hidden is used to prevent screen readers from reading the description twice:\n // once as part of the label and once from being connected through aria-describedby.\n <FieldDescription aria-hidden='true' id={descriptionId}>\n {description}\n </FieldDescription>\n )}\n </label>\n </Field>\n );\n};\n"],"mappings":";;;;;;;;AAuBA,MAAa,SAAS,EACpB,MACA,OACA,aACA,OACA,WACA,OACA,WACA,KACA,IACA,oBAAoB,qBACpB,GAAG,YACa;CAChB,MAAM,gBAAgB,OAAO;CAE7B,MAAM,kBAAkB,CAAC,cAAc,gBAAgB,IAAI,oBAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AAEpG,QACE,oBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;EAAW;YAChF,qBAAC;GACC,oBAAC;IACC,MAAK;IACD;IACC;IACL,gBAAc,SAAS;IACvB,oBAAkB;IACZ;IACN,GAAI;KACJ;GACD,SACC,oBAAC;IAAM,QAAO;IAAS,SAAS;IAAI;cAClC,oBAAC,oBAAM,QAAa;KACd;GAET,eAGC,oBAAC;IAAiB,eAAY;IAAO,IAAI;cACtC;KACgB;MAEf;GACF"}
@@ -55,4 +55,4 @@ const Search = ({ className, onSubmit, onReset, clearAriaLabel = "Clear", size =
55
55
 
56
56
  //#endregion
57
57
  export { Search as t };
58
- //# sourceMappingURL=search-D7tBeD7x.mjs.map
58
+ //# sourceMappingURL=search-DtEa73Zz.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-D7tBeD7x.mjs","names":[],"sources":["../src/components/search/search.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { Field, FieldAffixes, FieldAffix } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { CrossSmallIcon, MagnefyingGlassIcon } from '@bi-digital/icons';\nimport type { MergeRight } from '../../utilities';\nimport { Button } from '../button';\n\nexport type SearchProps = MergeRight<\n Omit<InputProps, 'type' | 'size'>,\n {\n /**\n * Size of the search.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Called when the user presses enter. You can use this to for example navigate on submit. */\n onSubmit?: (value: string) => void;\n /** Called when the user resets the search input. */\n onReset?: (value: string) => void;\n /**\n * Aria-label for the clear button.\n * @defaultValue 'Clear'\n */\n clearAriaLabel?: string;\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n }\n>;\n\nexport const Search = ({\n className,\n onSubmit,\n onReset,\n clearAriaLabel = 'Clear',\n size = 'medium',\n ref,\n dark,\n style,\n fullwidth,\n ...props\n}: SearchProps) => {\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (onSubmit) {\n const input = e.currentTarget.querySelector('input');\n onSubmit(input?.value || '');\n }\n };\n const handleReset = () => {\n if (onReset) {\n onReset('');\n }\n };\n return (\n <Field className={clsx('bi-search', className)} data-dark={dark} style={style} fullwidth={fullwidth} asChild>\n <form onSubmit={handleSubmit} onReset={handleReset}>\n <FieldAffixes>\n <FieldAffix>\n <MagnefyingGlassIcon size={size} />\n </FieldAffix>\n <Input type='text' ref={ref} size={size} dark={dark} {...props} />\n <FieldAffix aria-hidden='false'>\n <Button aria-label={clearAriaLabel} icon size={size} dark={dark} variant='text' type='reset'>\n <CrossSmallIcon size={size} aria-hidden='true' />\n </Button>\n </FieldAffix>\n </FieldAffixes>\n </form>\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;AA6BA,MAAa,UAAU,EACrB,WACA,UACA,SACA,iBAAiB,SACjB,OAAO,UACP,KACA,MACA,OACA,WACA,GAAG,YACc;CACjB,MAAM,gBAAgB,MAAwC;AAC5D,IAAE,gBAAgB;AAClB,MAAI,SAEF,UADc,EAAE,cAAc,cAAc,QAAQ,EACpC,SAAS,GAAG;;CAGhC,MAAM,oBAAoB;AACxB,MAAI,QACF,SAAQ,GAAG;;AAGf,QACE,oBAAC;EAAM,WAAW,KAAK,aAAa,UAAU;EAAE,aAAW;EAAa;EAAkB;EAAW;YACnG,oBAAC;GAAK,UAAU;GAAc,SAAS;aACrC,qBAAC;IACC,oBAAC,wBACC,oBAAC,uBAA0B,OAAQ,GACxB;IACb,oBAAC;KAAM,MAAK;KAAY;KAAW;KAAY;KAAM,GAAI;MAAS;IAClE,oBAAC;KAAW,eAAY;eACtB,oBAAC;MAAO,cAAY;MAAgB;MAAW;MAAY;MAAM,SAAQ;MAAO,MAAK;gBACnF,oBAAC;OAAqB;OAAM,eAAY;QAAS;OAC1C;MACE;OACA;IACV;GACD"}
1
+ {"version":3,"file":"search-DtEa73Zz.mjs","names":[],"sources":["../src/components/search/search.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { Field, FieldAffixes, FieldAffix } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { CrossSmallIcon, MagnefyingGlassIcon } from '@bi-digital/icons';\nimport type { MergeRight } from '../../utilities';\nimport { Button } from '../button';\n\nexport type SearchProps = MergeRight<\n Omit<InputProps, 'type' | 'size'>,\n {\n /**\n * Size of the search.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Called when the user presses enter. You can use this to for example navigate on submit. */\n onSubmit?: (value: string) => void;\n /** Called when the user resets the search input. */\n onReset?: (value: string) => void;\n /**\n * Aria-label for the clear button.\n * @defaultValue 'Clear'\n */\n clearAriaLabel?: string;\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n }\n>;\n\nexport const Search = ({\n className,\n onSubmit,\n onReset,\n clearAriaLabel = 'Clear',\n size = 'medium',\n ref,\n dark,\n style,\n fullwidth,\n ...props\n}: SearchProps) => {\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (onSubmit) {\n const input = e.currentTarget.querySelector('input');\n onSubmit(input?.value || '');\n }\n };\n const handleReset = () => {\n if (onReset) {\n onReset('');\n }\n };\n return (\n <Field className={clsx('bi-search', className)} data-dark={dark} style={style} fullwidth={fullwidth} asChild>\n <form onSubmit={handleSubmit} onReset={handleReset}>\n <FieldAffixes>\n <FieldAffix>\n <MagnefyingGlassIcon size={size} />\n </FieldAffix>\n <Input type='text' ref={ref} size={size} dark={dark} {...props} />\n <FieldAffix aria-hidden='false'>\n <Button aria-label={clearAriaLabel} icon size={size} dark={dark} variant='text' type='reset'>\n <CrossSmallIcon size={size} aria-hidden='true' />\n </Button>\n </FieldAffix>\n </FieldAffixes>\n </form>\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;AA6BA,MAAa,UAAU,EACrB,WACA,UACA,SACA,iBAAiB,SACjB,OAAO,UACP,KACA,MACA,OACA,WACA,GAAG,YACc;CACjB,MAAM,gBAAgB,MAAwC;AAC5D,IAAE,gBAAgB;AAClB,MAAI,SAEF,UADc,EAAE,cAAc,cAAc,QAAQ,EACpC,SAAS,GAAG;;CAGhC,MAAM,oBAAoB;AACxB,MAAI,QACF,SAAQ,GAAG;;AAGf,QACE,oBAAC;EAAM,WAAW,KAAK,aAAa,UAAU;EAAE,aAAW;EAAa;EAAkB;EAAW;YACnG,oBAAC;GAAK,UAAU;GAAc,SAAS;aACrC,qBAAC;IACC,oBAAC,wBACC,oBAAC,uBAA0B,OAAQ,GACxB;IACb,oBAAC;KAAM,MAAK;KAAY;KAAW;KAAY;KAAM,GAAI;MAAS;IAClE,oBAAC;KAAW,eAAY;eACtB,oBAAC;MAAO,cAAY;MAAgB;MAAW;MAAY;MAAM,SAAQ;MAAO,MAAK;gBACnF,oBAAC;OAAqB;OAAM,eAAY;QAAS;OAC1C;MACE;OACA;IACV;GACD"}
@@ -23,4 +23,4 @@ const Select = ({ className, dark, onKeyDown, onMouseDown, size, ref, ...props }
23
23
 
24
24
  //#endregion
25
25
  export { Select as t };
26
- //# sourceMappingURL=select-CkeXJfv-.mjs.map
26
+ //# sourceMappingURL=select-DJY40TIK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-CkeXJfv-.mjs","names":[],"sources":["../src/components/select/select.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { Ref, SelectHTMLAttributes } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { DefaultProps } from '../../types';\n\nexport type SelectProps = MergeRight<\n DefaultProps & Omit<SelectHTMLAttributes<HTMLSelectElement>, 'multiple' | 'size'>,\n {\n /**\n * Size of the select.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Mark the select as readOnly */\n readOnly?: boolean;\n ref?: Ref<HTMLSelectElement>;\n }\n>;\n\nexport const Select = ({ className, dark, onKeyDown, onMouseDown, size, ref, ...props }: SelectProps) => {\n return (\n <select\n className={clsx('bi-input', className)}\n data-dark={dark}\n data-size={size}\n ref={ref}\n onKeyDown={(event) => {\n if (event.key === 'Tab') return;\n if (props.readOnly) event.preventDefault(); // Make readOnly work for select\n onKeyDown?.(event);\n }}\n onMouseDown={(event) => {\n if (props.readOnly) event.preventDefault(); // Make readOnly work for select\n onMouseDown?.(event);\n }}\n {...props}\n />\n );\n};\n"],"mappings":";;;;AAmBA,MAAa,UAAU,EAAE,WAAW,MAAM,WAAW,aAAa,MAAM,KAAK,GAAG,YAAyB;AACvG,QACE,oBAAC;EACC,WAAW,KAAK,YAAY,UAAU;EACtC,aAAW;EACX,aAAW;EACN;EACL,YAAY,UAAU;AACpB,OAAI,MAAM,QAAQ,MAAO;AACzB,OAAI,MAAM,SAAU,OAAM,gBAAgB;AAC1C,eAAY,MAAM;;EAEpB,cAAc,UAAU;AACtB,OAAI,MAAM,SAAU,OAAM,gBAAgB;AAC1C,iBAAc,MAAM;;EAEtB,GAAI;GACJ"}
1
+ {"version":3,"file":"select-DJY40TIK.mjs","names":[],"sources":["../src/components/select/select.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { Ref, SelectHTMLAttributes } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { DefaultProps } from '../../types';\n\nexport type SelectProps = MergeRight<\n DefaultProps & Omit<SelectHTMLAttributes<HTMLSelectElement>, 'multiple' | 'size'>,\n {\n /**\n * Size of the select.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Mark the select as readOnly */\n readOnly?: boolean;\n ref?: Ref<HTMLSelectElement>;\n }\n>;\n\nexport const Select = ({ className, dark, onKeyDown, onMouseDown, size, ref, ...props }: SelectProps) => {\n return (\n <select\n className={clsx('bi-input', className)}\n data-dark={dark}\n data-size={size}\n ref={ref}\n onKeyDown={(event) => {\n if (event.key === 'Tab') return;\n if (props.readOnly) event.preventDefault(); // Make readOnly work for select\n onKeyDown?.(event);\n }}\n onMouseDown={(event) => {\n if (props.readOnly) event.preventDefault(); // Make readOnly work for select\n onMouseDown?.(event);\n }}\n {...props}\n />\n );\n};\n"],"mappings":";;;;AAmBA,MAAa,UAAU,EAAE,WAAW,MAAM,WAAW,aAAa,MAAM,KAAK,GAAG,YAAyB;AACvG,QACE,oBAAC;EACC,WAAW,KAAK,YAAY,UAAU;EACtC,aAAW;EACX,aAAW;EACN;EACL,YAAY,UAAU;AACpB,OAAI,MAAM,QAAQ,MAAO;AACzB,OAAI,MAAM,SAAU,OAAM,gBAAgB;AAC1C,eAAY,MAAM;;EAEpB,cAAc,UAAU;AACtB,OAAI,MAAM,SAAU,OAAM,gBAAgB;AAC1C,iBAAc,MAAM;;EAEtB,GAAI;GACJ"}
@@ -11,4 +11,4 @@ const SelectOptgroup = ({ asChild, ref, ...props }) => {
11
11
 
12
12
  //#endregion
13
13
  export { SelectOptgroup as t };
14
- //# sourceMappingURL=select-optgroup-D2oER1Ek.mjs.map
14
+ //# sourceMappingURL=select-optgroup-BIIeTki5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-optgroup-D2oER1Ek.mjs","names":[],"sources":["../src/components/select/select-optgroup.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { OptgroupHTMLAttributes, Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps } from '../../types';\n\nexport type SelectOptgroupProps = MergeRight<\n AsChildProps & OptgroupHTMLAttributes<HTMLOptGroupElement>,\n {\n ref?: Ref<HTMLOptGroupElement>;\n }\n>;\n\nexport const SelectOptgroup = ({ asChild, ref, ...props }: SelectOptgroupProps) => {\n const Component = asChild ? Slot : 'optgroup';\n return <Component {...props} ref={ref} />;\n};\n"],"mappings":";;;;AAYA,MAAa,kBAAkB,EAAE,SAAS,KAAK,GAAG,YAAiC;AAEjF,QAAO,oBADW,UAAU,OAAO;EACjB,GAAI;EAAY;GAAO"}
1
+ {"version":3,"file":"select-optgroup-BIIeTki5.mjs","names":[],"sources":["../src/components/select/select-optgroup.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { OptgroupHTMLAttributes, Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps } from '../../types';\n\nexport type SelectOptgroupProps = MergeRight<\n AsChildProps & OptgroupHTMLAttributes<HTMLOptGroupElement>,\n {\n ref?: Ref<HTMLOptGroupElement>;\n }\n>;\n\nexport const SelectOptgroup = ({ asChild, ref, ...props }: SelectOptgroupProps) => {\n const Component = asChild ? Slot : 'optgroup';\n return <Component {...props} ref={ref} />;\n};\n"],"mappings":";;;;AAYA,MAAa,kBAAkB,EAAE,SAAS,KAAK,GAAG,YAAiC;AAEjF,QAAO,oBADW,UAAU,OAAO;EACjB,GAAI;EAAY;GAAO"}
@@ -11,4 +11,4 @@ const SelectOption = ({ asChild, ref, ...props }) => {
11
11
 
12
12
  //#endregion
13
13
  export { SelectOption as t };
14
- //# sourceMappingURL=select-option-hGcGfQqQ.mjs.map
14
+ //# sourceMappingURL=select-option-D1fvKZzA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-option-hGcGfQqQ.mjs","names":[],"sources":["../src/components/select/select-option.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { OptionHTMLAttributes, Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps } from '../../types';\n\nexport type SelectOptionProps = MergeRight<\n AsChildProps & OptionHTMLAttributes<HTMLOptionElement>,\n {\n ref?: Ref<HTMLOptionElement>;\n }\n>;\n\nexport const SelectOption = ({ asChild, ref, ...props }: SelectOptionProps) => {\n const Component = asChild ? Slot : 'option';\n return <Component {...props} ref={ref} />;\n};\n"],"mappings":";;;;AAYA,MAAa,gBAAgB,EAAE,SAAS,KAAK,GAAG,YAA+B;AAE7E,QAAO,oBADW,UAAU,OAAO;EACjB,GAAI;EAAY;GAAO"}
1
+ {"version":3,"file":"select-option-D1fvKZzA.mjs","names":[],"sources":["../src/components/select/select-option.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { OptionHTMLAttributes, Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps } from '../../types';\n\nexport type SelectOptionProps = MergeRight<\n AsChildProps & OptionHTMLAttributes<HTMLOptionElement>,\n {\n ref?: Ref<HTMLOptionElement>;\n }\n>;\n\nexport const SelectOption = ({ asChild, ref, ...props }: SelectOptionProps) => {\n const Component = asChild ? Slot : 'option';\n return <Component {...props} ref={ref} />;\n};\n"],"mappings":";;;;AAYA,MAAa,gBAAgB,EAAE,SAAS,KAAK,GAAG,YAA+B;AAE7E,QAAO,oBADW,UAAU,OAAO;EACjB,GAAI;EAAY;GAAO"}
@@ -1,8 +1,8 @@
1
1
  import { t as Field } from "./field-BCZ3EqOp.mjs";
2
2
  import { t as FieldDescription } from "./field-description-XJjYxMvw.mjs";
3
3
  import { t as Label } from "./label-CLZYAwXB.mjs";
4
- import { t as Select } from "./select-CkeXJfv-.mjs";
5
- import { t as ValidationMessage } from "./validation-message-Dd58lGnj.mjs";
4
+ import { t as Select } from "./select-DJY40TIK.mjs";
5
+ import { t as ValidationMessage } from "./validation-message-C60moOAJ.mjs";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useId } from "react";
8
8
 
@@ -50,4 +50,4 @@ const Selectfield = ({ children, dark, label, description, error, style, classNa
50
50
 
51
51
  //#endregion
52
52
  export { Selectfield as t };
53
- //# sourceMappingURL=selectfield-BeZTfJMM.mjs.map
53
+ //# sourceMappingURL=selectfield-Ddsq_Xbt.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectfield-BeZTfJMM.mjs","names":[],"sources":["../src/components/selectfield/selectfield.tsx"],"sourcesContent":["import { useId, type ReactNode } from 'react';\n\nimport type { LabelRequiredProps } from '../../types';\nimport { Field, FieldDescription } from '../field';\nimport { Label } from '../label';\nimport { Select, type SelectProps } from '../select';\nimport { ValidationMessage } from '../validation-message';\nimport { MergeRight } from '../../utilities';\n\nexport type SelectfieldProps = MergeRight<\n LabelRequiredProps & SelectProps,\n {\n /** Description */\n description?: ReactNode;\n /** Error message for field */\n error?: ReactNode;\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n }\n>;\n\nexport const Selectfield = ({\n children,\n dark,\n label,\n description,\n error,\n style,\n className,\n fullwidth,\n ref,\n id: idProp,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: SelectfieldProps) => {\n const generatedId = useId();\n const descriptionId = useId();\n const validationId = useId();\n const id = idProp || generatedId;\n\n const ariaDescribedBy =\n [description ? descriptionId : '', error ? validationId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth}>\n {label && <Label htmlFor={id}>{label}</Label>}\n {description && <FieldDescription id={descriptionId}>{description}</FieldDescription>}\n <Select\n id={id}\n ref={ref}\n dark={dark}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n {...props}\n >\n {children}\n </Select>\n {!!error && <ValidationMessage id={validationId}>{error}</ValidationMessage>}\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,eAAe,EAC1B,UACA,MACA,OACA,aACA,OACA,OACA,WACA,WACA,KACA,IAAI,QACJ,oBAAoB,qBACpB,GAAG,YACmB;CACtB,MAAM,cAAc,OAAO;CAC3B,MAAM,gBAAgB,OAAO;CAC7B,MAAM,eAAe,OAAO;CAC5B,MAAM,KAAK,UAAU;CAErB,MAAM,kBACJ;EAAC,cAAc,gBAAgB;EAAI,QAAQ,eAAe;EAAI;EAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AACzG,QACE,qBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;;GACpE,SAAS,oBAAC;IAAM,SAAS;cAAK;KAAc;GAC5C,eAAe,oBAAC;IAAiB,IAAI;cAAgB;KAA+B;GACrF,oBAAC;IACK;IACC;IACC;IACN,gBAAc,QAAQ,MAAM,IAAI;IAChC,oBAAkB;IAClB,GAAI;IAEH;KACM;GACR,CAAC,CAAC,SAAS,oBAAC;IAAkB,IAAI;cAAe;KAA0B;;GACtE"}
1
+ {"version":3,"file":"selectfield-Ddsq_Xbt.mjs","names":[],"sources":["../src/components/selectfield/selectfield.tsx"],"sourcesContent":["import { useId, type ReactNode } from 'react';\n\nimport type { LabelRequiredProps } from '../../types';\nimport { Field, FieldDescription } from '../field';\nimport { Label } from '../label';\nimport { Select, type SelectProps } from '../select';\nimport { ValidationMessage } from '../validation-message';\nimport { MergeRight } from '../../utilities';\n\nexport type SelectfieldProps = MergeRight<\n LabelRequiredProps & SelectProps,\n {\n /** Description */\n description?: ReactNode;\n /** Error message for field */\n error?: ReactNode;\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n }\n>;\n\nexport const Selectfield = ({\n children,\n dark,\n label,\n description,\n error,\n style,\n className,\n fullwidth,\n ref,\n id: idProp,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: SelectfieldProps) => {\n const generatedId = useId();\n const descriptionId = useId();\n const validationId = useId();\n const id = idProp || generatedId;\n\n const ariaDescribedBy =\n [description ? descriptionId : '', error ? validationId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth}>\n {label && <Label htmlFor={id}>{label}</Label>}\n {description && <FieldDescription id={descriptionId}>{description}</FieldDescription>}\n <Select\n id={id}\n ref={ref}\n dark={dark}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n {...props}\n >\n {children}\n </Select>\n {!!error && <ValidationMessage id={validationId}>{error}</ValidationMessage>}\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,eAAe,EAC1B,UACA,MACA,OACA,aACA,OACA,OACA,WACA,WACA,KACA,IAAI,QACJ,oBAAoB,qBACpB,GAAG,YACmB;CACtB,MAAM,cAAc,OAAO;CAC3B,MAAM,gBAAgB,OAAO;CAC7B,MAAM,eAAe,OAAO;CAC5B,MAAM,KAAK,UAAU;CAErB,MAAM,kBACJ;EAAC,cAAc,gBAAgB;EAAI,QAAQ,eAAe;EAAI;EAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AACzG,QACE,qBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;;GACpE,SAAS,oBAAC;IAAM,SAAS;cAAK;KAAc;GAC5C,eAAe,oBAAC;IAAiB,IAAI;cAAgB;KAA+B;GACrF,oBAAC;IACK;IACC;IACC;IACN,gBAAc,QAAQ,MAAM,IAAI;IAChC,oBAAkB;IAClB,GAAI;IAEH;KACM;GACR,CAAC,CAAC,SAAS,oBAAC;IAAkB,IAAI;cAAe;KAA0B;;GACtE"}
@@ -14,4 +14,4 @@ const SkipLink = ({ asChild, children, className, dark, ...props }) => {
14
14
 
15
15
  //#endregion
16
16
  export { SkipLink as t };
17
- //# sourceMappingURL=skip-link-6hCvwkVB.mjs.map
17
+ //# sourceMappingURL=skip-link-B42C5TY2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skip-link-6hCvwkVB.mjs","names":[],"sources":["../src/components/skip-link/skip-link.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { Slot } from '@radix-ui/react-slot';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps, DefaultProps } from '../../types';\nimport type { AnchorHTMLAttributes, Ref } from 'react';\n\nexport type SkipLinkProps = MergeRight<\n DefaultProps & AsChildProps & AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n ref?: Ref<HTMLAnchorElement>;\n }\n>;\n\nexport const SkipLink = ({ asChild, children, className, dark, ...props }: SkipLinkProps) => {\n const Component = asChild ? Slot : 'a';\n return (\n <Component className={clsx('bi-skip-link', className)} data-dark={dark} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;AAaA,MAAa,YAAY,EAAE,SAAS,UAAU,WAAW,MAAM,GAAG,YAA2B;AAE3F,QACE,oBAFgB,UAAU,OAAO;EAEtB,WAAW,KAAK,gBAAgB,UAAU;EAAE,aAAW;EAAM,GAAI;EACzE;GACS"}
1
+ {"version":3,"file":"skip-link-B42C5TY2.mjs","names":[],"sources":["../src/components/skip-link/skip-link.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { Slot } from '@radix-ui/react-slot';\nimport type { MergeRight } from '../../utilities';\nimport type { AsChildProps, DefaultProps } from '../../types';\nimport type { AnchorHTMLAttributes, Ref } from 'react';\n\nexport type SkipLinkProps = MergeRight<\n DefaultProps & AsChildProps & AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n ref?: Ref<HTMLAnchorElement>;\n }\n>;\n\nexport const SkipLink = ({ asChild, children, className, dark, ...props }: SkipLinkProps) => {\n const Component = asChild ? Slot : 'a';\n return (\n <Component className={clsx('bi-skip-link', className)} data-dark={dark} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;AAaA,MAAa,YAAY,EAAE,SAAS,UAAU,WAAW,MAAM,GAAG,YAA2B;AAE3F,QACE,oBAFgB,UAAU,OAAO;EAEtB,WAAW,KAAK,gBAAgB,UAAU;EAAE,aAAW;EAAM,GAAI;EACzE;GACS"}
@@ -17,4 +17,4 @@ const StickyHeader = ({ children }) => {
17
17
 
18
18
  //#endregion
19
19
  export { StickyHeader as t };
20
- //# sourceMappingURL=sticky-header-BVSEDMHH.mjs.map
20
+ //# sourceMappingURL=sticky-header-CPzI8Eft.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sticky-header-BVSEDMHH.mjs","names":[],"sources":["../src/components/sticky-header/sticky-header.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { ReactNode } from 'react';\n\nexport type StickyHeaderProps = {\n children: ReactNode;\n};\n\n/**\n * Make a sticky header that will stay at the top of the viewport when scrolling.\n * It handles different distance to the top based on sub-navbar, navbar and other factors.\n * This element is a Slot which simply adds the correct CSS styles to the children.\n * Make sure that the children passed to this component appends className and not overrides it.\n */\nexport const StickyHeader = ({ children }: StickyHeaderProps) => {\n const Component = Slot;\n return <Component className='bi-sticky-header'>{children}</Component>;\n};\n"],"mappings":";;;;;;;;;;AAaA,MAAa,gBAAgB,EAAE,eAAkC;AAE/D,QAAO,oBADW;EACA,WAAU;EAAoB;GAAqB"}
1
+ {"version":3,"file":"sticky-header-CPzI8Eft.mjs","names":[],"sources":["../src/components/sticky-header/sticky-header.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport type { ReactNode } from 'react';\n\nexport type StickyHeaderProps = {\n children: ReactNode;\n};\n\n/**\n * Make a sticky header that will stay at the top of the viewport when scrolling.\n * It handles different distance to the top based on sub-navbar, navbar and other factors.\n * This element is a Slot which simply adds the correct CSS styles to the children.\n * Make sure that the children passed to this component appends className and not overrides it.\n */\nexport const StickyHeader = ({ children }: StickyHeaderProps) => {\n const Component = Slot;\n return <Component className='bi-sticky-header'>{children}</Component>;\n};\n"],"mappings":";;;;;;;;;;AAaA,MAAa,gBAAgB,EAAE,eAAkC;AAE/D,QAAO,oBADW;EACA,WAAU;EAAoB;GAAqB"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime61 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime67 from "react/jsx-runtime";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/components/sticky-header/sticky-header.d.ts
@@ -13,7 +13,7 @@ type StickyHeaderProps = {
13
13
  */
14
14
  declare const StickyHeader: ({
15
15
  children
16
- }: StickyHeaderProps) => react_jsx_runtime61.JSX.Element;
16
+ }: StickyHeaderProps) => react_jsx_runtime67.JSX.Element;
17
17
  //#endregion
18
18
  export { StickyHeaderProps as n, StickyHeader as t };
19
- //# sourceMappingURL=sticky-header-DFUhQ4aL.d.mts.map
19
+ //# sourceMappingURL=sticky-header-RISPV-sC.d.mts.map
@@ -1,5 +1,5 @@
1
- import { t as useIsElementAboveViewport } from "./useIsElementAboveViewport-Dy_5jjA4.mjs";
2
- import { t as useScrollDirection } from "./useScrollDirection-D35f7Y4k.mjs";
1
+ import { t as useIsElementAboveViewport } from "./useIsElementAboveViewport-DTgaSPiF.mjs";
2
+ import { t as useScrollDirection } from "./useScrollDirection-D7_FOiXc.mjs";
3
3
  import clsx from "clsx/lite";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { useRef } from "react";
@@ -25,4 +25,4 @@ const SubNavbar = ({ dark = false, children, className, ref, ...props }) => {
25
25
 
26
26
  //#endregion
27
27
  export { SubNavbar as t };
28
- //# sourceMappingURL=sub-navbar-3yiCgad_.mjs.map
28
+ //# sourceMappingURL=sub-navbar-BKSTicOx.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sub-navbar-3yiCgad_.mjs","names":[],"sources":["../src/components/navbar/sub-navbar.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { DefaultProps } from '../../types';\nimport { useIsElementAboveViewport, useScrollDirection } from '../../utilities/hooks';\n\nexport type SubNavbarProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n ref?: Ref<HTMLElement>;\n }\n>;\n\nexport const SubNavbar = ({ dark = false, children, className, ref, ...props }: SubNavbarProps) => {\n const elementRef = useRef<HTMLDivElement>(null);\n const fixed = useIsElementAboveViewport(elementRef);\n const scrollDirection = useScrollDirection();\n\n return (\n <div className='bi-sub-navbar--wrapper'>\n <div ref={elementRef} />\n <nav\n className={clsx('bi-sub-navbar', className)}\n data-fixed={fixed}\n data-scroll-dir={fixed ? scrollDirection : undefined}\n data-dark={dark}\n {...props}\n ref={ref}\n >\n {children}\n </nav>\n </div>\n );\n};\n"],"mappings":";;;;;;;AAaA,MAAa,aAAa,EAAE,OAAO,OAAO,UAAU,WAAW,KAAK,GAAG,YAA4B;CACjG,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,QAAQ,0BAA0B,WAAW;CACnD,MAAM,kBAAkB,oBAAoB;AAE5C,QACE,qBAAC;EAAI,WAAU;aACb,oBAAC,SAAI,KAAK,aAAc,EACxB,oBAAC;GACC,WAAW,KAAK,iBAAiB,UAAU;GAC3C,cAAY;GACZ,mBAAiB,QAAQ,kBAAkB;GAC3C,aAAW;GACX,GAAI;GACC;GAEJ;IACG;GACF"}
1
+ {"version":3,"file":"sub-navbar-BKSTicOx.mjs","names":[],"sources":["../src/components/navbar/sub-navbar.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport type { MergeRight } from '../../utilities';\nimport type { DefaultProps } from '../../types';\nimport { useIsElementAboveViewport, useScrollDirection } from '../../utilities/hooks';\n\nexport type SubNavbarProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n ref?: Ref<HTMLElement>;\n }\n>;\n\nexport const SubNavbar = ({ dark = false, children, className, ref, ...props }: SubNavbarProps) => {\n const elementRef = useRef<HTMLDivElement>(null);\n const fixed = useIsElementAboveViewport(elementRef);\n const scrollDirection = useScrollDirection();\n\n return (\n <div className='bi-sub-navbar--wrapper'>\n <div ref={elementRef} />\n <nav\n className={clsx('bi-sub-navbar', className)}\n data-fixed={fixed}\n data-scroll-dir={fixed ? scrollDirection : undefined}\n data-dark={dark}\n {...props}\n ref={ref}\n >\n {children}\n </nav>\n </div>\n );\n};\n"],"mappings":";;;;;;;AAaA,MAAa,aAAa,EAAE,OAAO,OAAO,UAAU,WAAW,KAAK,GAAG,YAA4B;CACjG,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,QAAQ,0BAA0B,WAAW;CACnD,MAAM,kBAAkB,oBAAoB;AAE5C,QACE,qBAAC;EAAI,WAAU;aACb,oBAAC,SAAI,KAAK,aAAc,EACxB,oBAAC;GACC,WAAW,KAAK,iBAAiB,UAAU;GAC3C,cAAY;GACZ,mBAAiB,QAAQ,kBAAkB;GAC3C,aAAW;GACX,GAAI;GACC;GAEJ;IACG;GACF"}
@@ -24,4 +24,4 @@ const Tab = ({ className, value, disabled, children, asChild, dark, ref, ...prop
24
24
 
25
25
  //#endregion
26
26
  export { Tab as t };
27
- //# sourceMappingURL=tab-CKzYzJG2.mjs.map
27
+ //# sourceMappingURL=tab-CmqJjQPm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-CKzYzJG2.mjs","names":[],"sources":["../src/components/tabs/tab.tsx"],"sourcesContent":["import type { MergeRight } from '../../utilities';\nimport { Trigger } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\nimport { Button, ButtonProps } from '../button';\n\nexport type TabProps = MergeRight<\n Omit<ButtonProps, 'variant' | 'type'>,\n {\n /** A unique value that associates the trigger with a content. */\n value: string;\n /**\n * When true, prevents the user from interacting with the tab.\n * @default false\n */\n disabled?: boolean;\n }\n>;\n\nexport const Tab = ({ className, value, disabled, children, asChild, dark, ref, ...props }: TabProps) => {\n return (\n <Trigger value={value} disabled={disabled} asChild>\n <Button\n ref={ref}\n variant='text'\n className={clsx('bi-tabs--tab', className)}\n disabled={disabled}\n asChild={asChild}\n dark={dark}\n {...props}\n >\n {children}\n </Button>\n </Trigger>\n );\n};\n"],"mappings":";;;;;;AAkBA,MAAa,OAAO,EAAE,WAAW,OAAO,UAAU,UAAU,SAAS,MAAM,KAAK,GAAG,YAAsB;AACvG,QACE,oBAAC;EAAe;EAAiB;EAAU;YACzC,oBAAC;GACM;GACL,SAAQ;GACR,WAAW,KAAK,gBAAgB,UAAU;GAChC;GACD;GACH;GACN,GAAI;GAEH;IACM;GACD"}
1
+ {"version":3,"file":"tab-CmqJjQPm.mjs","names":[],"sources":["../src/components/tabs/tab.tsx"],"sourcesContent":["import type { MergeRight } from '../../utilities';\nimport { Trigger } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\nimport { Button, ButtonProps } from '../button';\n\nexport type TabProps = MergeRight<\n Omit<ButtonProps, 'variant' | 'type'>,\n {\n /** A unique value that associates the trigger with a content. */\n value: string;\n /**\n * When true, prevents the user from interacting with the tab.\n * @default false\n */\n disabled?: boolean;\n }\n>;\n\nexport const Tab = ({ className, value, disabled, children, asChild, dark, ref, ...props }: TabProps) => {\n return (\n <Trigger value={value} disabled={disabled} asChild>\n <Button\n ref={ref}\n variant='text'\n className={clsx('bi-tabs--tab', className)}\n disabled={disabled}\n asChild={asChild}\n dark={dark}\n {...props}\n >\n {children}\n </Button>\n </Trigger>\n );\n};\n"],"mappings":";;;;;;AAkBA,MAAa,OAAO,EAAE,WAAW,OAAO,UAAU,UAAU,SAAS,MAAM,KAAK,GAAG,YAAsB;AACvG,QACE,oBAAC;EAAe;EAAiB;EAAU;YACzC,oBAAC;GACM;GACL,SAAQ;GACR,WAAW,KAAK,gBAAgB,UAAU;GAChC;GACD;GACH;GACN,GAAI;GAEH;IACM;GACD"}
@@ -21,4 +21,4 @@ const Tabs = ({ activationMode = "automatic", orientation = "horizontal", defaul
21
21
 
22
22
  //#endregion
23
23
  export { Tabs as t };
24
- //# sourceMappingURL=tabs-DtBM8JYq.mjs.map
24
+ //# sourceMappingURL=tabs-T1uV7M_a.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-DtBM8JYq.mjs","names":[],"sources":["../src/components/tabs/tabs.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Root } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /**\n * When `automatic`, tabs are activated when receiving focus. When `manual`, tabs are activated when clicked.\n * @default 'automatic'\n */\n activationMode?: 'manual' | 'automatic';\n /**\n * The orientation of the component.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** The value of the tab that should be active when initially rendered. Use when you do not need to control the state of the tabs. */\n defaultValue?: string;\n /** The controlled value of the tab to activate. Should be used together with `onChange`. */\n value?: string;\n /** Event handler called when the value changes. */\n onChange?: (value: string) => void;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const Tabs = ({\n activationMode = 'automatic',\n orientation = 'horizontal',\n defaultValue,\n value,\n onChange,\n children,\n className,\n asChild,\n dark,\n ref,\n ...props\n}: TabsProps) => {\n return (\n <Root\n className={clsx('bi-tabs', className)}\n activationMode={activationMode}\n orientation={orientation}\n defaultValue={defaultValue}\n value={value}\n onValueChange={onChange}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </Root>\n );\n};\n"],"mappings":";;;;;AAkCA,MAAa,QAAQ,EACnB,iBAAiB,aACjB,cAAc,cACd,cACA,OACA,UACA,UACA,WACA,SACA,MACA,KACA,GAAG,YACY;AACf,QACE,oBAAC;EACC,WAAW,KAAK,WAAW,UAAU;EACrB;EACH;EACC;EACP;EACP,eAAe;EACN;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACI"}
1
+ {"version":3,"file":"tabs-T1uV7M_a.mjs","names":[],"sources":["../src/components/tabs/tabs.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Root } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /**\n * When `automatic`, tabs are activated when receiving focus. When `manual`, tabs are activated when clicked.\n * @default 'automatic'\n */\n activationMode?: 'manual' | 'automatic';\n /**\n * The orientation of the component.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** The value of the tab that should be active when initially rendered. Use when you do not need to control the state of the tabs. */\n defaultValue?: string;\n /** The controlled value of the tab to activate. Should be used together with `onChange`. */\n value?: string;\n /** Event handler called when the value changes. */\n onChange?: (value: string) => void;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const Tabs = ({\n activationMode = 'automatic',\n orientation = 'horizontal',\n defaultValue,\n value,\n onChange,\n children,\n className,\n asChild,\n dark,\n ref,\n ...props\n}: TabsProps) => {\n return (\n <Root\n className={clsx('bi-tabs', className)}\n activationMode={activationMode}\n orientation={orientation}\n defaultValue={defaultValue}\n value={value}\n onValueChange={onChange}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </Root>\n );\n};\n"],"mappings":";;;;;AAkCA,MAAa,QAAQ,EACnB,iBAAiB,aACjB,cAAc,cACd,cACA,OACA,UACA,UACA,WACA,SACA,MACA,KACA,GAAG,YACY;AACf,QACE,oBAAC;EACC,WAAW,KAAK,WAAW,UAAU;EACrB;EACH;EACC;EACP;EACP,eAAe;EACN;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACI"}
@@ -17,4 +17,4 @@ const TabsList = ({ className, loop = true, children, asChild, dark, ref, ...pro
17
17
 
18
18
  //#endregion
19
19
  export { TabsList as t };
20
- //# sourceMappingURL=tabs-list-C14k_kq2.mjs.map
20
+ //# sourceMappingURL=tabs-list-B_hWkbZq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-list-C14k_kq2.mjs","names":[],"sources":["../src/components/tabs/tabs-list.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { List } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsListProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /**\n * When `true`, keyboard navigation will loop from last tab to first, and vice versa.\n * @default true\n */\n loop?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const TabsList = ({ className, loop = true, children, asChild, dark, ref, ...props }: TabsListProps) => {\n return (\n <List\n className={clsx('bi-tabs--list', className)}\n loop={loop}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </List>\n );\n};\n"],"mappings":";;;;;AAuBA,MAAa,YAAY,EAAE,WAAW,OAAO,MAAM,UAAU,SAAS,MAAM,KAAK,GAAG,YAA2B;AAC7G,QACE,oBAAC;EACC,WAAW,KAAK,iBAAiB,UAAU;EACrC;EACG;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACI"}
1
+ {"version":3,"file":"tabs-list-B_hWkbZq.mjs","names":[],"sources":["../src/components/tabs/tabs-list.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { List } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsListProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /**\n * When `true`, keyboard navigation will loop from last tab to first, and vice versa.\n * @default true\n */\n loop?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const TabsList = ({ className, loop = true, children, asChild, dark, ref, ...props }: TabsListProps) => {\n return (\n <List\n className={clsx('bi-tabs--list', className)}\n loop={loop}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </List>\n );\n};\n"],"mappings":";;;;;AAuBA,MAAa,YAAY,EAAE,WAAW,OAAO,MAAM,UAAU,SAAS,MAAM,KAAK,GAAG,YAA2B;AAC7G,QACE,oBAAC;EACC,WAAW,KAAK,iBAAiB,UAAU;EACrC;EACG;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACI"}
@@ -18,4 +18,4 @@ const TabsPanel = ({ className, value, forceMount, children, asChild, dark, ref,
18
18
 
19
19
  //#endregion
20
20
  export { TabsPanel as t };
21
- //# sourceMappingURL=tabs-panel-DuwFItiC.mjs.map
21
+ //# sourceMappingURL=tabs-panel-DkjUXjIX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-panel-DuwFItiC.mjs","names":[],"sources":["../src/components/tabs/tabs-panel.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Content } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsPanelProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /** A unique value that associates the content with a trigger. */\n value: string;\n /** Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. */\n forceMount?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const TabsPanel = ({ className, value, forceMount, children, asChild, dark, ref, ...props }: TabsPanelProps) => {\n return (\n <Content\n className={clsx('bi-tabs--panel', className)}\n value={value}\n forceMount={forceMount || undefined}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </Content>\n );\n};\n"],"mappings":";;;;;AAsBA,MAAa,aAAa,EAAE,WAAW,OAAO,YAAY,UAAU,SAAS,MAAM,KAAK,GAAG,YAA4B;AACrH,QACE,oBAAC;EACC,WAAW,KAAK,kBAAkB,UAAU;EACrC;EACP,YAAY,cAAc;EACjB;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACO"}
1
+ {"version":3,"file":"tabs-panel-DkjUXjIX.mjs","names":[],"sources":["../src/components/tabs/tabs-panel.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { Content } from '@radix-ui/react-tabs';\nimport clsx from 'clsx/lite';\n\nexport type TabsPanelProps = MergeRight<\n DefaultProps & Omit<HTMLAttributes<HTMLDivElement>, 'dir'>,\n {\n /** A unique value that associates the content with a trigger. */\n value: string;\n /** Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. */\n forceMount?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\nexport const TabsPanel = ({ className, value, forceMount, children, asChild, dark, ref, ...props }: TabsPanelProps) => {\n return (\n <Content\n className={clsx('bi-tabs--panel', className)}\n value={value}\n forceMount={forceMount || undefined}\n asChild={asChild}\n data-dark={dark}\n ref={ref}\n {...props}\n >\n {children}\n </Content>\n );\n};\n"],"mappings":";;;;;AAsBA,MAAa,aAAa,EAAE,WAAW,OAAO,YAAY,UAAU,SAAS,MAAM,KAAK,GAAG,YAA4B;AACrH,QACE,oBAAC;EACC,WAAW,KAAK,kBAAkB,UAAU;EACrC;EACP,YAAY,cAAc;EACjB;EACT,aAAW;EACN;EACL,GAAI;EAEH;GACO"}
@@ -14,4 +14,4 @@ const Textarea = ({ className, dark, size, ref, ...props }) => {
14
14
 
15
15
  //#endregion
16
16
  export { Textarea as t };
17
- //# sourceMappingURL=textarea-DFVhK8mn.mjs.map
17
+ //# sourceMappingURL=textarea-Bl9YoeRB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea-DFVhK8mn.mjs","names":[],"sources":["../src/components/textarea/textarea.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { Ref, TextareaHTMLAttributes } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\n\nexport type TextareaProps = MergeRight<\n DefaultProps & Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'prefix'>,\n {\n /**\n * Size of the textarea.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n ref?: Ref<HTMLTextAreaElement>;\n }\n>;\n\nexport const Textarea = ({ className, dark, size, ref, ...props }: TextareaProps) => {\n return <textarea className={clsx('bi-input', className)} data-dark={dark} data-size={size} ref={ref} {...props} />;\n};\n"],"mappings":";;;;AAiBA,MAAa,YAAY,EAAE,WAAW,MAAM,MAAM,KAAK,GAAG,YAA2B;AACnF,QAAO,oBAAC;EAAS,WAAW,KAAK,YAAY,UAAU;EAAE,aAAW;EAAM,aAAW;EAAW;EAAK,GAAI;GAAS"}
1
+ {"version":3,"file":"textarea-Bl9YoeRB.mjs","names":[],"sources":["../src/components/textarea/textarea.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { Ref, TextareaHTMLAttributes } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\n\nexport type TextareaProps = MergeRight<\n DefaultProps & Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'prefix'>,\n {\n /**\n * Size of the textarea.\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n ref?: Ref<HTMLTextAreaElement>;\n }\n>;\n\nexport const Textarea = ({ className, dark, size, ref, ...props }: TextareaProps) => {\n return <textarea className={clsx('bi-input', className)} data-dark={dark} data-size={size} ref={ref} {...props} />;\n};\n"],"mappings":";;;;AAiBA,MAAa,YAAY,EAAE,WAAW,MAAM,MAAM,KAAK,GAAG,YAA2B;AACnF,QAAO,oBAAC;EAAS,WAAW,KAAK,YAAY,UAAU;EAAE,aAAW;EAAM,aAAW;EAAW;EAAK,GAAI;GAAS"}
@@ -3,8 +3,8 @@ import { t as FieldDescription } from "./field-description-XJjYxMvw.mjs";
3
3
  import { n as FieldAffixes, t as FieldAffix } from "./field-affix-C4X9hVtO.mjs";
4
4
  import { t as Input } from "./input-npZkJQsL.mjs";
5
5
  import { t as Label } from "./label-CLZYAwXB.mjs";
6
- import { t as ValidationMessage } from "./validation-message-Dd58lGnj.mjs";
7
- import { t as Textarea } from "./textarea-DFVhK8mn.mjs";
6
+ import { t as ValidationMessage } from "./validation-message-C60moOAJ.mjs";
7
+ import { t as Textarea } from "./textarea-Bl9YoeRB.mjs";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useId } from "react";
10
10
 
@@ -62,4 +62,4 @@ const Textfield = ({ dark, label, description, error, multiline, prefix, suffix,
62
62
 
63
63
  //#endregion
64
64
  export { Textfield as t };
65
- //# sourceMappingURL=textfield-DJ8JNFtQ.mjs.map
65
+ //# sourceMappingURL=textfield-nFlOsghw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"textfield-DJ8JNFtQ.mjs","names":[],"sources":["../src/components/textfield/textfield.tsx"],"sourcesContent":["import { useId, type ReactNode, type Ref } from 'react';\n\nimport type { DefaultProps, LabelRequiredProps } from '../../types';\nimport { Field, FieldAffix, FieldAffixes, FieldDescription } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { Label } from '../label';\nimport { Textarea, type TextareaProps } from '../textarea';\nimport { ValidationMessage } from '../validation-message';\n\ntype InputPropsFiltered = Omit<InputProps, 'prefix' | 'className' | 'style'>;\ntype TextareaPropsFiltered = Omit<TextareaProps, 'prefix' | 'className' | 'style'>;\n\ntype BaseTextfieldProps = LabelRequiredProps &\n DefaultProps & {\n /** Label */\n label?: ReactNode;\n /** Description */\n description?: ReactNode;\n /** Prefix */\n prefix?: string;\n /** Suffix */\n suffix?: string;\n /** Error message for field */\n error?: ReactNode;\n /** `className` for the `Field` element */\n className?: InputProps['className'];\n /** `style` for the `Field` element */\n style?: InputProps['style'];\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n };\n\ntype TextfieldTextareaProps = {\n /** Render `Textarea` instead of a `Input`. The `Textarea` has support for multiple rows of input. */\n multiline: true;\n} & TextareaPropsFiltered;\n\ntype TextfieldInputProps = {\n /** Render `Textarea` instead of a `Input`. The `Textarea` has support for multiple rows of input. */\n multiline?: never | false;\n} & InputPropsFiltered;\n\nexport type TextfieldProps = BaseTextfieldProps & // We use either Textarea or Input props, depending on the `multiline` prop.\n (TextfieldTextareaProps | TextfieldInputProps) & {\n ref?: Ref<HTMLInputElement | HTMLTextAreaElement>;\n };\n\nexport const Textfield = ({\n dark,\n label,\n description,\n error,\n multiline,\n prefix,\n suffix,\n style,\n className,\n fullwidth,\n ref,\n id: idProp,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: TextfieldProps) => {\n const generatedId = useId();\n const descriptionId = useId();\n const validationId = useId();\n const id = idProp || generatedId;\n\n const ariaDescribedBy =\n [description ? descriptionId : '', error ? validationId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth}>\n {label && <Label htmlFor={id}>{label}</Label>}\n {description && <FieldDescription id={descriptionId}>{description}</FieldDescription>}\n <FieldAffixes>\n {prefix && <FieldAffix>{prefix}</FieldAffix>}\n {multiline ? (\n <Textarea\n id={id}\n ref={ref as Ref<HTMLTextAreaElement>}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...(props as TextareaPropsFiltered)}\n />\n ) : (\n <Input\n id={id}\n ref={ref as Ref<HTMLInputElement>}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...(props as InputPropsFiltered)}\n />\n )}\n {suffix && <FieldAffix>{suffix}</FieldAffix>}\n </FieldAffixes>\n {!!error && <ValidationMessage id={validationId}>{error}</ValidationMessage>}\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;;;AA+CA,MAAa,aAAa,EACxB,MACA,OACA,aACA,OACA,WACA,QACA,QACA,OACA,WACA,WACA,KACA,IAAI,QACJ,oBAAoB,qBACpB,GAAG,YACiB;CACpB,MAAM,cAAc,OAAO;CAC3B,MAAM,gBAAgB,OAAO;CAC7B,MAAM,eAAe,OAAO;CAC5B,MAAM,KAAK,UAAU;CAErB,MAAM,kBACJ;EAAC,cAAc,gBAAgB;EAAI,QAAQ,eAAe;EAAI;EAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AACzG,QACE,qBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;;GACpE,SAAS,oBAAC;IAAM,SAAS;cAAK;KAAc;GAC5C,eAAe,oBAAC;IAAiB,IAAI;cAAgB;KAA+B;GACrF,qBAAC;IACE,UAAU,oBAAC,wBAAY,SAAoB;IAC3C,YACC,oBAAC;KACK;KACC;KACL,gBAAc,QAAQ,MAAM,IAAI;KAChC,oBAAkB;KACZ;KACN,GAAK;MACL,GAEF,oBAAC;KACK;KACC;KACL,gBAAc,QAAQ,MAAM,IAAI;KAChC,oBAAkB;KACZ;KACN,GAAK;MACL;IAEH,UAAU,oBAAC,wBAAY,SAAoB;OAC/B;GACd,CAAC,CAAC,SAAS,oBAAC;IAAkB,IAAI;cAAe;KAA0B;;GACtE"}
1
+ {"version":3,"file":"textfield-nFlOsghw.mjs","names":[],"sources":["../src/components/textfield/textfield.tsx"],"sourcesContent":["import { useId, type ReactNode, type Ref } from 'react';\n\nimport type { DefaultProps, LabelRequiredProps } from '../../types';\nimport { Field, FieldAffix, FieldAffixes, FieldDescription } from '../field';\nimport { Input, type InputProps } from '../input';\nimport { Label } from '../label';\nimport { Textarea, type TextareaProps } from '../textarea';\nimport { ValidationMessage } from '../validation-message';\n\ntype InputPropsFiltered = Omit<InputProps, 'prefix' | 'className' | 'style'>;\ntype TextareaPropsFiltered = Omit<TextareaProps, 'prefix' | 'className' | 'style'>;\n\ntype BaseTextfieldProps = LabelRequiredProps &\n DefaultProps & {\n /** Label */\n label?: ReactNode;\n /** Description */\n description?: ReactNode;\n /** Prefix */\n prefix?: string;\n /** Suffix */\n suffix?: string;\n /** Error message for field */\n error?: ReactNode;\n /** `className` for the `Field` element */\n className?: InputProps['className'];\n /** `style` for the `Field` element */\n style?: InputProps['style'];\n /** If true, the selectfield will take up the full available width */\n fullwidth?: boolean;\n };\n\ntype TextfieldTextareaProps = {\n /** Render `Textarea` instead of a `Input`. The `Textarea` has support for multiple rows of input. */\n multiline: true;\n} & TextareaPropsFiltered;\n\ntype TextfieldInputProps = {\n /** Render `Textarea` instead of a `Input`. The `Textarea` has support for multiple rows of input. */\n multiline?: never | false;\n} & InputPropsFiltered;\n\nexport type TextfieldProps = BaseTextfieldProps & // We use either Textarea or Input props, depending on the `multiline` prop.\n (TextfieldTextareaProps | TextfieldInputProps) & {\n ref?: Ref<HTMLInputElement | HTMLTextAreaElement>;\n };\n\nexport const Textfield = ({\n dark,\n label,\n description,\n error,\n multiline,\n prefix,\n suffix,\n style,\n className,\n fullwidth,\n ref,\n id: idProp,\n 'aria-describedby': ariaDescribedByProp,\n ...props\n}: TextfieldProps) => {\n const generatedId = useId();\n const descriptionId = useId();\n const validationId = useId();\n const id = idProp || generatedId;\n\n const ariaDescribedBy =\n [description ? descriptionId : '', error ? validationId : '', ariaDescribedByProp].join(' ').trim() || undefined;\n return (\n <Field className={className} data-dark={dark} style={style} fullwidth={fullwidth}>\n {label && <Label htmlFor={id}>{label}</Label>}\n {description && <FieldDescription id={descriptionId}>{description}</FieldDescription>}\n <FieldAffixes>\n {prefix && <FieldAffix>{prefix}</FieldAffix>}\n {multiline ? (\n <Textarea\n id={id}\n ref={ref as Ref<HTMLTextAreaElement>}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...(props as TextareaPropsFiltered)}\n />\n ) : (\n <Input\n id={id}\n ref={ref as Ref<HTMLInputElement>}\n aria-invalid={Boolean(error) || undefined}\n aria-describedby={ariaDescribedBy}\n dark={dark}\n {...(props as InputPropsFiltered)}\n />\n )}\n {suffix && <FieldAffix>{suffix}</FieldAffix>}\n </FieldAffixes>\n {!!error && <ValidationMessage id={validationId}>{error}</ValidationMessage>}\n </Field>\n );\n};\n"],"mappings":";;;;;;;;;;;AA+CA,MAAa,aAAa,EACxB,MACA,OACA,aACA,OACA,WACA,QACA,QACA,OACA,WACA,WACA,KACA,IAAI,QACJ,oBAAoB,qBACpB,GAAG,YACiB;CACpB,MAAM,cAAc,OAAO;CAC3B,MAAM,gBAAgB,OAAO;CAC7B,MAAM,eAAe,OAAO;CAC5B,MAAM,KAAK,UAAU;CAErB,MAAM,kBACJ;EAAC,cAAc,gBAAgB;EAAI,QAAQ,eAAe;EAAI;EAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI;AACzG,QACE,qBAAC;EAAiB;EAAW,aAAW;EAAa;EAAkB;;GACpE,SAAS,oBAAC;IAAM,SAAS;cAAK;KAAc;GAC5C,eAAe,oBAAC;IAAiB,IAAI;cAAgB;KAA+B;GACrF,qBAAC;IACE,UAAU,oBAAC,wBAAY,SAAoB;IAC3C,YACC,oBAAC;KACK;KACC;KACL,gBAAc,QAAQ,MAAM,IAAI;KAChC,oBAAkB;KACZ;KACN,GAAK;MACL,GAEF,oBAAC;KACK;KACC;KACL,gBAAc,QAAQ,MAAM,IAAI;KAChC,oBAAkB;KACZ;KACN,GAAK;MACL;IAEH,UAAU,oBAAC,wBAAY,SAAoB;OAC/B;GACd,CAAC,CAAC,SAAS,oBAAC;IAAkB,IAAI;cAAe;KAA0B;;GACtE"}
@@ -14,4 +14,4 @@ const useCheckboxGroup = ({ options, updateOptions }) => {
14
14
 
15
15
  //#endregion
16
16
  export { useCheckboxGroup as t };
17
- //# sourceMappingURL=useCheckboxGroup-CXmF4bqs.mjs.map
17
+ //# sourceMappingURL=useCheckboxGroup-DWqqNSFY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckboxGroup-CXmF4bqs.mjs","names":[],"sources":["../src/utilities/hooks/useCheckboxGroup/useCheckboxGroup.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\n\nexport type UseCheckboxGroupOptions = {\n options: boolean[];\n updateOptions: (checked: boolean) => void;\n};\n\nexport type UseCheckboxGroupReturn = {\n /** Spread this on the \"parent\" checkbox */\n checkboxGroupProps: {\n checked: boolean;\n indeterminate: boolean;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n };\n};\n\nexport const useCheckboxGroup = ({ options, updateOptions }: UseCheckboxGroupOptions): UseCheckboxGroupReturn => {\n const checked = options.every((option) => option);\n const indeterminate = options.some((option) => option) && !checked;\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newChecked = e.target.indeterminate ? true : e.target.checked;\n updateOptions(newChecked);\n };\n\n return {\n checkboxGroupProps: {\n checked,\n indeterminate,\n onChange,\n },\n };\n};\n"],"mappings":";AAgBA,MAAa,oBAAoB,EAAE,SAAS,oBAAqE;CAC/G,MAAM,UAAU,QAAQ,OAAO,WAAW,OAAO;CACjD,MAAM,gBAAgB,QAAQ,MAAM,WAAW,OAAO,IAAI,CAAC;CAE3D,MAAM,YAAY,MAAqC;AAErD,gBADmB,EAAE,OAAO,gBAAgB,OAAO,EAAE,OAAO,QACnC;;AAG3B,QAAO,EACL,oBAAoB;EAClB;EACA;EACA;EACD,EACF"}
1
+ {"version":3,"file":"useCheckboxGroup-DWqqNSFY.mjs","names":[],"sources":["../src/utilities/hooks/useCheckboxGroup/useCheckboxGroup.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\n\nexport type UseCheckboxGroupOptions = {\n options: boolean[];\n updateOptions: (checked: boolean) => void;\n};\n\nexport type UseCheckboxGroupReturn = {\n /** Spread this on the \"parent\" checkbox */\n checkboxGroupProps: {\n checked: boolean;\n indeterminate: boolean;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n };\n};\n\nexport const useCheckboxGroup = ({ options, updateOptions }: UseCheckboxGroupOptions): UseCheckboxGroupReturn => {\n const checked = options.every((option) => option);\n const indeterminate = options.some((option) => option) && !checked;\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newChecked = e.target.indeterminate ? true : e.target.checked;\n updateOptions(newChecked);\n };\n\n return {\n checkboxGroupProps: {\n checked,\n indeterminate,\n onChange,\n },\n };\n};\n"],"mappings":";AAgBA,MAAa,oBAAoB,EAAE,SAAS,oBAAqE;CAC/G,MAAM,UAAU,QAAQ,OAAO,WAAW,OAAO;CACjD,MAAM,gBAAgB,QAAQ,MAAM,WAAW,OAAO,IAAI,CAAC;CAE3D,MAAM,YAAY,MAAqC;AAErD,gBADmB,EAAE,OAAO,gBAAgB,OAAO,EAAE,OAAO,QACnC;;AAG3B,QAAO,EACL,oBAAoB;EAClB;EACA;EACA;EACD,EACF"}