@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
@@ -17,4 +17,4 @@ const useIsElementAboveViewport = (elementRef) => {
17
17
 
18
18
  //#endregion
19
19
  export { useIsElementAboveViewport as t };
20
- //# sourceMappingURL=useIsElementAboveViewport-Dy_5jjA4.mjs.map
20
+ //# sourceMappingURL=useIsElementAboveViewport-DTgaSPiF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsElementAboveViewport-Dy_5jjA4.mjs","names":[],"sources":["../src/utilities/hooks/useIsElementAboveViewport/useIsElementAboveViewport.tsx"],"sourcesContent":["import { useEffect, useState, type RefObject } from 'react';\n\n/** Detects when an element's is scrolled past and is no longer in the viewport. */\nexport const useIsElementAboveViewport = (elementRef: RefObject<HTMLElement | null>): boolean => {\n const [isAboveViewport, setIsPast] = useState(false);\n\n useEffect(() => {\n const observer = new IntersectionObserver(([entry]) => setIsPast(entry.boundingClientRect.y < 0), {\n threshold: [0],\n });\n const currentRef = elementRef.current;\n if (currentRef) observer.observe(currentRef);\n return () => {\n if (currentRef) observer.unobserve(currentRef);\n };\n }, [elementRef]);\n return isAboveViewport;\n};\n"],"mappings":";;;;AAGA,MAAa,6BAA6B,eAAuD;CAC/F,MAAM,CAAC,iBAAiB,aAAa,SAAS,MAAM;AAEpD,iBAAgB;EACd,MAAM,WAAW,IAAI,sBAAsB,CAAC,WAAW,UAAU,MAAM,mBAAmB,IAAI,EAAE,EAAE,EAChG,WAAW,CAAC,EAAE,EACf,CAAC;EACF,MAAM,aAAa,WAAW;AAC9B,MAAI,WAAY,UAAS,QAAQ,WAAW;AAC5C,eAAa;AACX,OAAI,WAAY,UAAS,UAAU,WAAW;;IAE/C,CAAC,WAAW,CAAC;AAChB,QAAO"}
1
+ {"version":3,"file":"useIsElementAboveViewport-DTgaSPiF.mjs","names":[],"sources":["../src/utilities/hooks/useIsElementAboveViewport/useIsElementAboveViewport.tsx"],"sourcesContent":["import { useEffect, useState, type RefObject } from 'react';\n\n/** Detects when an element's is scrolled past and is no longer in the viewport. */\nexport const useIsElementAboveViewport = (elementRef: RefObject<HTMLElement | null>): boolean => {\n const [isAboveViewport, setIsPast] = useState(false);\n\n useEffect(() => {\n const observer = new IntersectionObserver(([entry]) => setIsPast(entry.boundingClientRect.y < 0), {\n threshold: [0],\n });\n const currentRef = elementRef.current;\n if (currentRef) observer.observe(currentRef);\n return () => {\n if (currentRef) observer.unobserve(currentRef);\n };\n }, [elementRef]);\n return isAboveViewport;\n};\n"],"mappings":";;;;AAGA,MAAa,6BAA6B,eAAuD;CAC/F,MAAM,CAAC,iBAAiB,aAAa,SAAS,MAAM;AAEpD,iBAAgB;EACd,MAAM,WAAW,IAAI,sBAAsB,CAAC,WAAW,UAAU,MAAM,mBAAmB,IAAI,EAAE,EAAE,EAChG,WAAW,CAAC,EAAE,EACf,CAAC;EACF,MAAM,aAAa,WAAW;AAC9B,MAAI,WAAY,UAAS,QAAQ,WAAW;AAC5C,eAAa;AACX,OAAI,WAAY,UAAS,UAAU,WAAW;;IAE/C,CAAC,WAAW,CAAC;AAChB,QAAO"}
@@ -5,4 +5,4 @@ const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffec
5
5
 
6
6
  //#endregion
7
7
  export { useIsomorphicLayoutEffect as t };
8
- //# sourceMappingURL=useIsomorphicLayoutEffect-CUaF-bk-.mjs.map
8
+ //# sourceMappingURL=useIsomorphicLayoutEffect-B9zYV7Dq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect-CUaF-bk-.mjs","names":[],"sources":["../src/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["// https://usehooks-ts.com/react-hook/use-isomorphic-layout-effect\n\nimport { useEffect, useLayoutEffect } from 'react';\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n"],"mappings":";;;AAIA,MAAa,4BAA4B,OAAO,WAAW,cAAc,kBAAkB"}
1
+ {"version":3,"file":"useIsomorphicLayoutEffect-B9zYV7Dq.mjs","names":[],"sources":["../src/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["// https://usehooks-ts.com/react-hook/use-isomorphic-layout-effect\n\nimport { useEffect, useLayoutEffect } from 'react';\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n"],"mappings":";;;AAIA,MAAa,4BAA4B,OAAO,WAAW,cAAc,kBAAkB"}
@@ -1,4 +1,4 @@
1
- import { t as useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect-CUaF-bk-.mjs";
1
+ import { t as useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect-B9zYV7Dq.mjs";
2
2
  import { useState } from "react";
3
3
 
4
4
  //#region src/utilities/hooks/useMediaQuery/useMediaQuery.tsx
@@ -41,4 +41,4 @@ function useMediaQuery(query, { defaultValue = false, initializeWithValue = true
41
41
 
42
42
  //#endregion
43
43
  export { useMediaQuery as t };
44
- //# sourceMappingURL=useMediaQuery-BzRQnFto.mjs.map
44
+ //# sourceMappingURL=useMediaQuery-I2eiGl9n.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery-BzRQnFto.mjs","names":["query"],"sources":["../src/utilities/hooks/useMediaQuery/useMediaQuery.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/** Hook options. */\nexport type UseMediaQueryOptions = {\n /**\n * The default value to return if the hook is being run on the server.\n * @default false\n */\n defaultValue?: boolean;\n /**\n * If `true` (default), the hook will initialize reading the media query. In SSR, you should set it to `false`, returning `options.defaultValue` or `false` initially.\n * @default true\n */\n initializeWithValue?: boolean;\n};\n\nconst IS_SERVER = typeof window === 'undefined';\n\n/**\n * Custom hook that tracks the state of a media query using the [`Match Media API`](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia).\n * @param {string} query - The media query to track.\n * @param {?UseMediaQueryOptions} [options] - The options for customizing the behavior of the hook (optional).\n * @returns {boolean} The current state of the media query (true if the query matches, false otherwise).\n * @example\n * ```tsx\n * const isSmallScreen = useMediaQuery('(max-width: 600px)');\n * // Use `isSmallScreen` to conditionally apply styles or logic based on the screen size.\n * ```\n */\nexport function useMediaQuery(\n query: string,\n { defaultValue = false, initializeWithValue = true }: UseMediaQueryOptions = {},\n): boolean {\n const getMatches = (query: string): boolean => {\n if (IS_SERVER) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n };\n\n const [matches, setMatches] = useState<boolean>(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n\n // Handles the change event of the media query.\n function handleChange() {\n setMatches(getMatches(query));\n }\n\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n\n // Triggered at the first client-side load and if query changes\n handleChange();\n\n // Use deprecated `addListener` and `removeListener` to support Safari < 14\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener('change', handleChange);\n }\n\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener('change', handleChange);\n }\n };\n }, [query]);\n\n return matches;\n}\n"],"mappings":";;;;AAkBA,MAAM,YAAY,OAAO,WAAW;;;;;;;;;;;;AAapC,SAAgB,cACd,OACA,EAAE,eAAe,OAAO,sBAAsB,SAA+B,EAAE,EACtE;CACT,MAAM,cAAc,YAA2B;AAC7C,MAAI,UACF,QAAO;AAET,SAAO,OAAO,WAAWA,QAAM,CAAC;;CAGlC,MAAM,CAAC,SAAS,cAAc,eAAwB;AACpD,MAAI,oBACF,QAAO,WAAW,MAAM;AAE1B,SAAO;GACP;CAGF,SAAS,eAAe;AACtB,aAAW,WAAW,MAAM,CAAC;;AAG/B,iCAAgC;EAC9B,MAAM,aAAa,OAAO,WAAW,MAAM;AAG3C,gBAAc;AAGd,MAAI,WAAW,YACb,YAAW,YAAY,aAAa;MAEpC,YAAW,iBAAiB,UAAU,aAAa;AAGrD,eAAa;AACX,OAAI,WAAW,eACb,YAAW,eAAe,aAAa;OAEvC,YAAW,oBAAoB,UAAU,aAAa;;IAGzD,CAAC,MAAM,CAAC;AAEX,QAAO"}
1
+ {"version":3,"file":"useMediaQuery-I2eiGl9n.mjs","names":["query"],"sources":["../src/utilities/hooks/useMediaQuery/useMediaQuery.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/** Hook options. */\nexport type UseMediaQueryOptions = {\n /**\n * The default value to return if the hook is being run on the server.\n * @default false\n */\n defaultValue?: boolean;\n /**\n * If `true` (default), the hook will initialize reading the media query. In SSR, you should set it to `false`, returning `options.defaultValue` or `false` initially.\n * @default true\n */\n initializeWithValue?: boolean;\n};\n\nconst IS_SERVER = typeof window === 'undefined';\n\n/**\n * Custom hook that tracks the state of a media query using the [`Match Media API`](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia).\n * @param {string} query - The media query to track.\n * @param {?UseMediaQueryOptions} [options] - The options for customizing the behavior of the hook (optional).\n * @returns {boolean} The current state of the media query (true if the query matches, false otherwise).\n * @example\n * ```tsx\n * const isSmallScreen = useMediaQuery('(max-width: 600px)');\n * // Use `isSmallScreen` to conditionally apply styles or logic based on the screen size.\n * ```\n */\nexport function useMediaQuery(\n query: string,\n { defaultValue = false, initializeWithValue = true }: UseMediaQueryOptions = {},\n): boolean {\n const getMatches = (query: string): boolean => {\n if (IS_SERVER) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n };\n\n const [matches, setMatches] = useState<boolean>(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n\n // Handles the change event of the media query.\n function handleChange() {\n setMatches(getMatches(query));\n }\n\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n\n // Triggered at the first client-side load and if query changes\n handleChange();\n\n // Use deprecated `addListener` and `removeListener` to support Safari < 14\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener('change', handleChange);\n }\n\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener('change', handleChange);\n }\n };\n }, [query]);\n\n return matches;\n}\n"],"mappings":";;;;AAkBA,MAAM,YAAY,OAAO,WAAW;;;;;;;;;;;;AAapC,SAAgB,cACd,OACA,EAAE,eAAe,OAAO,sBAAsB,SAA+B,EAAE,EACtE;CACT,MAAM,cAAc,YAA2B;AAC7C,MAAI,UACF,QAAO;AAET,SAAO,OAAO,WAAWA,QAAM,CAAC;;CAGlC,MAAM,CAAC,SAAS,cAAc,eAAwB;AACpD,MAAI,oBACF,QAAO,WAAW,MAAM;AAE1B,SAAO;GACP;CAGF,SAAS,eAAe;AACtB,aAAW,WAAW,MAAM,CAAC;;AAG/B,iCAAgC;EAC9B,MAAM,aAAa,OAAO,WAAW,MAAM;AAG3C,gBAAc;AAGd,MAAI,WAAW,YACb,YAAW,YAAY,aAAa;MAEpC,YAAW,iBAAiB,UAAU,aAAa;AAGrD,eAAa;AACX,OAAI,WAAW,eACb,YAAW,eAAe,aAAa;OAEvC,YAAW,oBAAoB,UAAU,aAAa;;IAGzD,CAAC,MAAM,CAAC;AAEX,QAAO"}
@@ -94,4 +94,4 @@ const usePagination = ({ count, page: pageProp, defaultPage, boundaryCount = 1,
94
94
 
95
95
  //#endregion
96
96
  export { usePagination as t };
97
- //# sourceMappingURL=usePagination-Cs_RI4QO.mjs.map
97
+ //# sourceMappingURL=usePagination-9ht6tr5V.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePagination-Cs_RI4QO.mjs","names":["itemList: (number | 'ellipsis')[]"],"sources":["../src/utilities/hooks/usePagination/usePagination.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport type { PaginationButtonProps } from '../../../components';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nconst range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n};\n\nexport type UsePaginationProps = {\n /**\n * The number of pages\n */\n count: number;\n /*\n * The current page. The numbering starts from `1`, if controlled\n * @default 1\n */\n page?: number;\n /*\n * The current page. The numbering starts from `1`, if uncontrolled\n * @default 1\n */\n defaultPage?: number;\n /**\n * Number of always visible pages at the beginning and end.\n * @default 1\n */\n boundaryCount?: number;\n /**\n * Number of always visible pages before and after the current page.\n * @default 1\n */\n siblingCount?: number;\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled?: boolean;\n /** Callback when the page changes */\n onPageChange?: (page: number) => void;\n};\n\n/**\n * Hook to help manage pagination state of a Pagination component.\n *\n * @example\n * const { pages, nextButtonProps, prevButtonProps } = usePagination({\n * page,\n * count: 10,\n * showPages: 7,\n * boundaryCount: 1,\n * siblingCount: 1,\n * })\n *\n * <Pagination>\n * <PaginationItem>\n * <PaginationButton {...prevButtonProps}>Previous</PaginationButton>\n * </PaginationItem>\n * {pages.map(({ page, itemKey, buttonProps }) => (\n * <PaginationItem key={itemKey}>\n * {typeof page === 'number' && (\n * <PaginationButton {...buttonProps} aria-label={`Page ${page}`}>\n * {page}\n * </PaginationButton>\n * )}\n * </PaginationItem>\n * ))}\n * <PaginationItem>\n * <PaginationButton {...nextButtonProps}>Next</PaginationButton>\n * </PaginationItem>\n * </Pagination>\n **/\nexport const usePagination = ({\n count,\n page: pageProp,\n defaultPage,\n boundaryCount = 1,\n siblingCount = 1,\n disabled = false,\n onPageChange,\n}: UsePaginationProps) => {\n const [page, setPage] = useControllableState({\n prop: pageProp,\n onChange: onPageChange,\n defaultProp: defaultPage ?? 1,\n caller: 'Pagination',\n });\n\n return useMemo(() => {\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n page - siblingCount,\n // Lower boundary when page is high\n count - boundaryCount - siblingCount * 2 - 1,\n ),\n // Greater than startPages\n boundaryCount + 2,\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n page + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2,\n ),\n // Less than endPages\n count - boundaryCount - 1,\n );\n\n // Basic list of items to render, for example: itemList = ['previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next']\n const itemList: (number | 'ellipsis')[] = [\n ...startPages,\n\n // Start ellipsis\n ...(siblingsStart > boundaryCount + 2\n ? (['ellipsis'] as const)\n : boundaryCount + 1 < count - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n ...(siblingsEnd < count - boundaryCount - 1\n ? (['ellipsis'] as const)\n : count - boundaryCount > boundaryCount\n ? [count - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n const hasNext = page < count;\n const hasPrev = page !== 1;\n\n return {\n /** Items and pages to be displayed */\n pages: itemList.map((item, index) => ({\n /** Page number, \"ellipsis\" for ellipsis items */\n page: item,\n /** Unique key for the item */\n key: typeof item === 'number' ? `page-${item}` : `ellipsis-${index}`,\n /** Properties to spread on PaginationButton */\n buttonProps: (typeof item === 'number'\n ? {\n 'aria-current': item === page ? 'page' : undefined,\n onClick: () => setPage(item),\n variant: 'text',\n }\n : null) satisfies PaginationButtonProps | null,\n })),\n /** Properties to spread on PaginationButton used for previous navigation */\n prevButtonProps: {\n disabled: disabled || !hasPrev,\n 'aria-disabled': disabled || !hasPrev, // Using aria-disabled to support all HTML elements if asChild is used\n onClick: () => setPage(page - 1),\n variant: 'text',\n } as PaginationButtonProps,\n /** Properties to spread on PaginationButton used for next naviagation */\n nextButtonProps: {\n disabled: disabled || !hasNext,\n 'aria-disabled': disabled || !hasNext, // Using aria-disabled to support all HTML elements if asChild is used\n onClick: () => setPage(page + 1),\n variant: 'text',\n } as PaginationButtonProps,\n /** If previous page action should be shown */\n hasPrev,\n /** If next page action should be shown */\n hasNext,\n };\n }, [boundaryCount, count, disabled, page, setPage, siblingCount]);\n};\n"],"mappings":";;;;AAIA,MAAM,SAAS,OAAe,QAAgB;CAC5C,MAAM,SAAS,MAAM,QAAQ;AAC7B,QAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,MAAM,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEpD,MAAa,iBAAiB,EAC5B,OACA,MAAM,UACN,aACA,gBAAgB,GAChB,eAAe,GACf,WAAW,OACX,mBACwB;CACxB,MAAM,CAAC,MAAM,WAAW,qBAAqB;EAC3C,MAAM;EACN,UAAU;EACV,aAAa,eAAe;EAC5B,QAAQ;EACT,CAAC;AAEF,QAAO,cAAc;EACnB,MAAM,aAAa,MAAM,GAAG,KAAK,IAAI,eAAe,MAAM,CAAC;EAC3D,MAAM,WAAW,MAAM,KAAK,IAAI,QAAQ,gBAAgB,GAAG,gBAAgB,EAAE,EAAE,MAAM;EAErF,MAAM,gBAAgB,KAAK,IACzB,KAAK,IAEH,OAAO,cAEP,QAAQ,gBAAgB,eAAe,IAAI,EAC5C,EAED,gBAAgB,EACjB;EAED,MAAM,cAAc,KAAK,IACvB,KAAK,IAEH,OAAO,cAEP,gBAAgB,eAAe,IAAI,EACpC,EAED,QAAQ,gBAAgB,EACzB;EAGD,MAAMA,WAAoC;GACxC,GAAG;GAGH,GAAI,gBAAgB,gBAAgB,IAC/B,CAAC,WAAW,GACb,gBAAgB,IAAI,QAAQ,gBAC1B,CAAC,gBAAgB,EAAE,GACnB,EAAE;GAGR,GAAG,MAAM,eAAe,YAAY;GAGpC,GAAI,cAAc,QAAQ,gBAAgB,IACrC,CAAC,WAAW,GACb,QAAQ,gBAAgB,gBACtB,CAAC,QAAQ,cAAc,GACvB,EAAE;GAER,GAAG;GACJ;EAED,MAAM,UAAU,OAAO;EACvB,MAAM,UAAU,SAAS;AAEzB,SAAO;GAEL,OAAO,SAAS,KAAK,MAAM,WAAW;IAEpC,MAAM;IAEN,KAAK,OAAO,SAAS,WAAW,QAAQ,SAAS,YAAY;IAE7D,aAAc,OAAO,SAAS,WAC1B;KACE,gBAAgB,SAAS,OAAO,SAAS;KACzC,eAAe,QAAQ,KAAK;KAC5B,SAAS;KACV,GACD;IACL,EAAE;GAEH,iBAAiB;IACf,UAAU,YAAY,CAAC;IACvB,iBAAiB,YAAY,CAAC;IAC9B,eAAe,QAAQ,OAAO,EAAE;IAChC,SAAS;IACV;GAED,iBAAiB;IACf,UAAU,YAAY,CAAC;IACvB,iBAAiB,YAAY,CAAC;IAC9B,eAAe,QAAQ,OAAO,EAAE;IAChC,SAAS;IACV;GAED;GAEA;GACD;IACA;EAAC;EAAe;EAAO;EAAU;EAAM;EAAS;EAAa,CAAC"}
1
+ {"version":3,"file":"usePagination-9ht6tr5V.mjs","names":["itemList: (number | 'ellipsis')[]"],"sources":["../src/utilities/hooks/usePagination/usePagination.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport type { PaginationButtonProps } from '../../../components';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nconst range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n};\n\nexport type UsePaginationProps = {\n /**\n * The number of pages\n */\n count: number;\n /*\n * The current page. The numbering starts from `1`, if controlled\n * @default 1\n */\n page?: number;\n /*\n * The current page. The numbering starts from `1`, if uncontrolled\n * @default 1\n */\n defaultPage?: number;\n /**\n * Number of always visible pages at the beginning and end.\n * @default 1\n */\n boundaryCount?: number;\n /**\n * Number of always visible pages before and after the current page.\n * @default 1\n */\n siblingCount?: number;\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled?: boolean;\n /** Callback when the page changes */\n onPageChange?: (page: number) => void;\n};\n\n/**\n * Hook to help manage pagination state of a Pagination component.\n *\n * @example\n * const { pages, nextButtonProps, prevButtonProps } = usePagination({\n * page,\n * count: 10,\n * showPages: 7,\n * boundaryCount: 1,\n * siblingCount: 1,\n * })\n *\n * <Pagination>\n * <PaginationItem>\n * <PaginationButton {...prevButtonProps}>Previous</PaginationButton>\n * </PaginationItem>\n * {pages.map(({ page, itemKey, buttonProps }) => (\n * <PaginationItem key={itemKey}>\n * {typeof page === 'number' && (\n * <PaginationButton {...buttonProps} aria-label={`Page ${page}`}>\n * {page}\n * </PaginationButton>\n * )}\n * </PaginationItem>\n * ))}\n * <PaginationItem>\n * <PaginationButton {...nextButtonProps}>Next</PaginationButton>\n * </PaginationItem>\n * </Pagination>\n **/\nexport const usePagination = ({\n count,\n page: pageProp,\n defaultPage,\n boundaryCount = 1,\n siblingCount = 1,\n disabled = false,\n onPageChange,\n}: UsePaginationProps) => {\n const [page, setPage] = useControllableState({\n prop: pageProp,\n onChange: onPageChange,\n defaultProp: defaultPage ?? 1,\n caller: 'Pagination',\n });\n\n return useMemo(() => {\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n page - siblingCount,\n // Lower boundary when page is high\n count - boundaryCount - siblingCount * 2 - 1,\n ),\n // Greater than startPages\n boundaryCount + 2,\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n page + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2,\n ),\n // Less than endPages\n count - boundaryCount - 1,\n );\n\n // Basic list of items to render, for example: itemList = ['previous', 1, 'ellipsis', 4, 5, 6, 'ellipsis', 10, 'next']\n const itemList: (number | 'ellipsis')[] = [\n ...startPages,\n\n // Start ellipsis\n ...(siblingsStart > boundaryCount + 2\n ? (['ellipsis'] as const)\n : boundaryCount + 1 < count - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n ...(siblingsEnd < count - boundaryCount - 1\n ? (['ellipsis'] as const)\n : count - boundaryCount > boundaryCount\n ? [count - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n const hasNext = page < count;\n const hasPrev = page !== 1;\n\n return {\n /** Items and pages to be displayed */\n pages: itemList.map((item, index) => ({\n /** Page number, \"ellipsis\" for ellipsis items */\n page: item,\n /** Unique key for the item */\n key: typeof item === 'number' ? `page-${item}` : `ellipsis-${index}`,\n /** Properties to spread on PaginationButton */\n buttonProps: (typeof item === 'number'\n ? {\n 'aria-current': item === page ? 'page' : undefined,\n onClick: () => setPage(item),\n variant: 'text',\n }\n : null) satisfies PaginationButtonProps | null,\n })),\n /** Properties to spread on PaginationButton used for previous navigation */\n prevButtonProps: {\n disabled: disabled || !hasPrev,\n 'aria-disabled': disabled || !hasPrev, // Using aria-disabled to support all HTML elements if asChild is used\n onClick: () => setPage(page - 1),\n variant: 'text',\n } as PaginationButtonProps,\n /** Properties to spread on PaginationButton used for next naviagation */\n nextButtonProps: {\n disabled: disabled || !hasNext,\n 'aria-disabled': disabled || !hasNext, // Using aria-disabled to support all HTML elements if asChild is used\n onClick: () => setPage(page + 1),\n variant: 'text',\n } as PaginationButtonProps,\n /** If previous page action should be shown */\n hasPrev,\n /** If next page action should be shown */\n hasNext,\n };\n }, [boundaryCount, count, disabled, page, setPage, siblingCount]);\n};\n"],"mappings":";;;;AAIA,MAAM,SAAS,OAAe,QAAgB;CAC5C,MAAM,SAAS,MAAM,QAAQ;AAC7B,QAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,MAAM,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEpD,MAAa,iBAAiB,EAC5B,OACA,MAAM,UACN,aACA,gBAAgB,GAChB,eAAe,GACf,WAAW,OACX,mBACwB;CACxB,MAAM,CAAC,MAAM,WAAW,qBAAqB;EAC3C,MAAM;EACN,UAAU;EACV,aAAa,eAAe;EAC5B,QAAQ;EACT,CAAC;AAEF,QAAO,cAAc;EACnB,MAAM,aAAa,MAAM,GAAG,KAAK,IAAI,eAAe,MAAM,CAAC;EAC3D,MAAM,WAAW,MAAM,KAAK,IAAI,QAAQ,gBAAgB,GAAG,gBAAgB,EAAE,EAAE,MAAM;EAErF,MAAM,gBAAgB,KAAK,IACzB,KAAK,IAEH,OAAO,cAEP,QAAQ,gBAAgB,eAAe,IAAI,EAC5C,EAED,gBAAgB,EACjB;EAED,MAAM,cAAc,KAAK,IACvB,KAAK,IAEH,OAAO,cAEP,gBAAgB,eAAe,IAAI,EACpC,EAED,QAAQ,gBAAgB,EACzB;EAGD,MAAMA,WAAoC;GACxC,GAAG;GAGH,GAAI,gBAAgB,gBAAgB,IAC/B,CAAC,WAAW,GACb,gBAAgB,IAAI,QAAQ,gBAC1B,CAAC,gBAAgB,EAAE,GACnB,EAAE;GAGR,GAAG,MAAM,eAAe,YAAY;GAGpC,GAAI,cAAc,QAAQ,gBAAgB,IACrC,CAAC,WAAW,GACb,QAAQ,gBAAgB,gBACtB,CAAC,QAAQ,cAAc,GACvB,EAAE;GAER,GAAG;GACJ;EAED,MAAM,UAAU,OAAO;EACvB,MAAM,UAAU,SAAS;AAEzB,SAAO;GAEL,OAAO,SAAS,KAAK,MAAM,WAAW;IAEpC,MAAM;IAEN,KAAK,OAAO,SAAS,WAAW,QAAQ,SAAS,YAAY;IAE7D,aAAc,OAAO,SAAS,WAC1B;KACE,gBAAgB,SAAS,OAAO,SAAS;KACzC,eAAe,QAAQ,KAAK;KAC5B,SAAS;KACV,GACD;IACL,EAAE;GAEH,iBAAiB;IACf,UAAU,YAAY,CAAC;IACvB,iBAAiB,YAAY,CAAC;IAC9B,eAAe,QAAQ,OAAO,EAAE;IAChC,SAAS;IACV;GAED,iBAAiB;IACf,UAAU,YAAY,CAAC;IACvB,iBAAiB,YAAY,CAAC;IAC9B,eAAe,QAAQ,OAAO,EAAE;IAChC,SAAS;IACV;GAED;GAEA;GACD;IACA;EAAC;EAAe;EAAO;EAAU;EAAM;EAAS;EAAa,CAAC"}
@@ -25,4 +25,4 @@ const useScrollDirection = () => {
25
25
 
26
26
  //#endregion
27
27
  export { useScrollDirection as t };
28
- //# sourceMappingURL=useScrollDirection-D35f7Y4k.mjs.map
28
+ //# sourceMappingURL=useScrollDirection-D7_FOiXc.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollDirection-D35f7Y4k.mjs","names":[],"sources":["../src/utilities/hooks/useScrollDirection/useScrollDirection.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * A custom React hook that detects the vertical scroll direction of the page.\n *\n * @returns {'up' | 'down' | null} The current scroll direction. Returns `null` on the initial render.\n * The direction is only updated if the scroll distance exceeds a 5px threshold to prevent sensitivity to minor scroll jitter.\n */\nexport const useScrollDirection = () => {\n const [scrollDirection, setScrollDirection] = useState<'up' | 'down' | null>(null);\n useEffect(() => {\n let lastScrollY = window.pageYOffset;\n const updateScrollDirection = () => {\n const scrollY = window.pageYOffset;\n const direction = scrollY > lastScrollY ? 'down' : 'up';\n if (direction !== scrollDirection && (scrollY - lastScrollY > 5 || scrollY - lastScrollY < -5)) {\n setScrollDirection(direction);\n }\n lastScrollY = scrollY > 0 ? scrollY : 0;\n };\n window.addEventListener('scroll', updateScrollDirection);\n return () => window.removeEventListener('scroll', updateScrollDirection);\n }, [scrollDirection]);\n\n return scrollDirection;\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,2BAA2B;CACtC,MAAM,CAAC,iBAAiB,sBAAsB,SAA+B,KAAK;AAClF,iBAAgB;EACd,IAAI,cAAc,OAAO;EACzB,MAAM,8BAA8B;GAClC,MAAM,UAAU,OAAO;GACvB,MAAM,YAAY,UAAU,cAAc,SAAS;AACnD,OAAI,cAAc,oBAAoB,UAAU,cAAc,KAAK,UAAU,cAAc,IACzF,oBAAmB,UAAU;AAE/B,iBAAc,UAAU,IAAI,UAAU;;AAExC,SAAO,iBAAiB,UAAU,sBAAsB;AACxD,eAAa,OAAO,oBAAoB,UAAU,sBAAsB;IACvE,CAAC,gBAAgB,CAAC;AAErB,QAAO"}
1
+ {"version":3,"file":"useScrollDirection-D7_FOiXc.mjs","names":[],"sources":["../src/utilities/hooks/useScrollDirection/useScrollDirection.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * A custom React hook that detects the vertical scroll direction of the page.\n *\n * @returns {'up' | 'down' | null} The current scroll direction. Returns `null` on the initial render.\n * The direction is only updated if the scroll distance exceeds a 5px threshold to prevent sensitivity to minor scroll jitter.\n */\nexport const useScrollDirection = () => {\n const [scrollDirection, setScrollDirection] = useState<'up' | 'down' | null>(null);\n useEffect(() => {\n let lastScrollY = window.pageYOffset;\n const updateScrollDirection = () => {\n const scrollY = window.pageYOffset;\n const direction = scrollY > lastScrollY ? 'down' : 'up';\n if (direction !== scrollDirection && (scrollY - lastScrollY > 5 || scrollY - lastScrollY < -5)) {\n setScrollDirection(direction);\n }\n lastScrollY = scrollY > 0 ? scrollY : 0;\n };\n window.addEventListener('scroll', updateScrollDirection);\n return () => window.removeEventListener('scroll', updateScrollDirection);\n }, [scrollDirection]);\n\n return scrollDirection;\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,2BAA2B;CACtC,MAAM,CAAC,iBAAiB,sBAAsB,SAA+B,KAAK;AAClF,iBAAgB;EACd,IAAI,cAAc,OAAO;EACzB,MAAM,8BAA8B;GAClC,MAAM,UAAU,OAAO;GACvB,MAAM,YAAY,UAAU,cAAc,SAAS;AACnD,OAAI,cAAc,oBAAoB,UAAU,cAAc,KAAK,UAAU,cAAc,IACzF,oBAAmB,UAAU;AAE/B,iBAAc,UAAU,IAAI,UAAU;;AAExC,SAAO,iBAAiB,UAAU,sBAAsB;AACxD,eAAa,OAAO,oBAAoB,UAAU,sBAAsB;IACvE,CAAC,gBAAgB,CAAC;AAErB,QAAO"}
@@ -1,18 +1,17 @@
1
1
  import { r as useCheckboxGroup, t as UseCheckboxGroupOptions } from "../../useCheckboxGroup-DBBHH8cS.mjs";
2
2
  import { t as useIsomorphicLayoutEffect } from "../../useIsomorphicLayoutEffect-DpkpaE5o.mjs";
3
3
  import "../../types-BcT-ov7S.mjs";
4
- import { i as usePagination, r as UsePaginationProps } from "../../alert-footer-B1fWpAQt.mjs";
5
- import "../../dialog-trigger-context-C1_D0x9o.mjs";
6
- import "../../drawer-trigger-context-B_KTiYUG.mjs";
7
- import "../../popover-trigger-context-DLFSm345.mjs";
8
- import "../../dropdown-item-B-Nit4gr.mjs";
9
- import "../../dropdown-list-Bzcz7-p5.mjs";
10
- import "../../footer-links-DG4qNkaZ.mjs";
4
+ import { i as usePagination, r as UsePaginationProps } from "../../alert-footer-BX_xPUot.mjs";
5
+ import "../../dialog-trigger-context-TFwqL8Z4.mjs";
6
+ import "../../drawer-trigger-context-DwgiZKBB.mjs";
7
+ import "../../popover-trigger-context-C9FoRwGZ.mjs";
8
+ import "../../dropdown-item-rUUE3LNG.mjs";
9
+ import "../../dropdown-list-Es4uJ5t9.mjs";
10
+ import "../../footer-links-CKLQ_Rck.mjs";
11
11
  import "../../pagination-item-px_jlzBH.mjs";
12
- import "../../sticky-header-DFUhQ4aL.mjs";
12
+ import "../../sticky-header-RISPV-sC.mjs";
13
13
  import "../../index-9o7w1k2p.mjs";
14
14
  import { t as useIsElementAboveViewport } from "../../useIsElementAboveViewport-Dm5KwNnK.mjs";
15
15
  import { t as useScrollDirection } from "../../useScrollDirection-D8-lMWT2.mjs";
16
16
  import { n as useMediaQuery, t as UseMediaQueryOptions } from "../../useMediaQuery-CRVu5ZHm.mjs";
17
- import "../../types-Bljf8GkA.mjs";
18
17
  export { UseCheckboxGroupOptions, UseMediaQueryOptions, UsePaginationProps, useCheckboxGroup, useIsElementAboveViewport, useIsomorphicLayoutEffect, useMediaQuery, usePagination, useScrollDirection };
@@ -1,9 +1,9 @@
1
- import { t as useCheckboxGroup } from "../../useCheckboxGroup-CXmF4bqs.mjs";
2
- import { t as useIsomorphicLayoutEffect } from "../../useIsomorphicLayoutEffect-CUaF-bk-.mjs";
3
- import { t as usePagination } from "../../usePagination-Cs_RI4QO.mjs";
4
- import { t as useIsElementAboveViewport } from "../../useIsElementAboveViewport-Dy_5jjA4.mjs";
5
- import { t as useScrollDirection } from "../../useScrollDirection-D35f7Y4k.mjs";
6
- import { t as useMediaQuery } from "../../useMediaQuery-BzRQnFto.mjs";
7
- import "../../hooks-BrrLmPaM.mjs";
1
+ import { t as useCheckboxGroup } from "../../useCheckboxGroup-DWqqNSFY.mjs";
2
+ import { t as useIsomorphicLayoutEffect } from "../../useIsomorphicLayoutEffect-B9zYV7Dq.mjs";
3
+ import { t as usePagination } from "../../usePagination-9ht6tr5V.mjs";
4
+ import { t as useIsElementAboveViewport } from "../../useIsElementAboveViewport-DTgaSPiF.mjs";
5
+ import { t as useScrollDirection } from "../../useScrollDirection-D7_FOiXc.mjs";
6
+ import { t as useMediaQuery } from "../../useMediaQuery-I2eiGl9n.mjs";
7
+ import "../../hooks-DHUUJnUb.mjs";
8
8
 
9
9
  export { useCheckboxGroup, useIsElementAboveViewport, useIsomorphicLayoutEffect, useMediaQuery, usePagination, useScrollDirection };
@@ -1,3 +1,3 @@
1
- import { t as useCheckboxGroup } from "../../../useCheckboxGroup-CXmF4bqs.mjs";
1
+ import { t as useCheckboxGroup } from "../../../useCheckboxGroup-DWqqNSFY.mjs";
2
2
 
3
3
  export { useCheckboxGroup };
@@ -1,3 +1,3 @@
1
- import { t as useIsElementAboveViewport } from "../../../useIsElementAboveViewport-Dy_5jjA4.mjs";
1
+ import { t as useIsElementAboveViewport } from "../../../useIsElementAboveViewport-DTgaSPiF.mjs";
2
2
 
3
3
  export { useIsElementAboveViewport };
@@ -1,3 +1,3 @@
1
- import { t as useIsomorphicLayoutEffect } from "../../../useIsomorphicLayoutEffect-CUaF-bk-.mjs";
1
+ import { t as useIsomorphicLayoutEffect } from "../../../useIsomorphicLayoutEffect-B9zYV7Dq.mjs";
2
2
 
3
3
  export { useIsomorphicLayoutEffect };
@@ -1,4 +1,4 @@
1
- import "../../../useIsomorphicLayoutEffect-CUaF-bk-.mjs";
2
- import { t as useMediaQuery } from "../../../useMediaQuery-BzRQnFto.mjs";
1
+ import "../../../useIsomorphicLayoutEffect-B9zYV7Dq.mjs";
2
+ import { t as useMediaQuery } from "../../../useMediaQuery-I2eiGl9n.mjs";
3
3
 
4
4
  export { useMediaQuery };
@@ -1,18 +1,15 @@
1
1
  import "../../../useCheckboxGroup-DBBHH8cS.mjs";
2
2
  import "../../../useIsomorphicLayoutEffect-DpkpaE5o.mjs";
3
3
  import "../../../types-BcT-ov7S.mjs";
4
- import { i as usePagination, r as UsePaginationProps } from "../../../alert-footer-B1fWpAQt.mjs";
5
- import "../../../dialog-trigger-context-C1_D0x9o.mjs";
6
- import "../../../drawer-trigger-context-B_KTiYUG.mjs";
7
- import "../../../popover-trigger-context-DLFSm345.mjs";
8
- import "../../../dropdown-item-B-Nit4gr.mjs";
9
- import "../../../dropdown-list-Bzcz7-p5.mjs";
10
- import "../../../footer-links-DG4qNkaZ.mjs";
4
+ import { i as usePagination, r as UsePaginationProps } from "../../../alert-footer-BX_xPUot.mjs";
5
+ import "../../../dialog-trigger-context-TFwqL8Z4.mjs";
6
+ import "../../../drawer-trigger-context-DwgiZKBB.mjs";
7
+ import "../../../popover-trigger-context-C9FoRwGZ.mjs";
8
+ import "../../../dropdown-item-rUUE3LNG.mjs";
9
+ import "../../../dropdown-list-Es4uJ5t9.mjs";
10
+ import "../../../footer-links-CKLQ_Rck.mjs";
11
11
  import "../../../pagination-item-px_jlzBH.mjs";
12
- import "../../../sticky-header-DFUhQ4aL.mjs";
12
+ import "../../../sticky-header-RISPV-sC.mjs";
13
13
  import "../../../index-9o7w1k2p.mjs";
14
14
  import "../../../useIsElementAboveViewport-Dm5KwNnK.mjs";
15
- import "../../../useScrollDirection-D8-lMWT2.mjs";
16
- import "../../../useMediaQuery-CRVu5ZHm.mjs";
17
- import "../../../types-Bljf8GkA.mjs";
18
15
  export { UsePaginationProps, usePagination };
@@ -1,3 +1,3 @@
1
- import { t as usePagination } from "../../../usePagination-Cs_RI4QO.mjs";
1
+ import { t as usePagination } from "../../../usePagination-9ht6tr5V.mjs";
2
2
 
3
3
  export { usePagination };
@@ -1,3 +1,3 @@
1
- import { t as useScrollDirection } from "../../../useScrollDirection-D35f7Y4k.mjs";
1
+ import { t as useScrollDirection } from "../../../useScrollDirection-D7_FOiXc.mjs";
2
2
 
3
3
  export { useScrollDirection };
@@ -1,15 +1,15 @@
1
1
  import { r as useCheckboxGroup, t as UseCheckboxGroupOptions } from "../useCheckboxGroup-DBBHH8cS.mjs";
2
2
  import { t as useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect-DpkpaE5o.mjs";
3
3
  import "../types-BcT-ov7S.mjs";
4
- import { i as usePagination, r as UsePaginationProps } from "../alert-footer-B1fWpAQt.mjs";
5
- import "../dialog-trigger-context-C1_D0x9o.mjs";
6
- import "../drawer-trigger-context-B_KTiYUG.mjs";
7
- import "../popover-trigger-context-DLFSm345.mjs";
8
- import "../dropdown-item-B-Nit4gr.mjs";
9
- import "../dropdown-list-Bzcz7-p5.mjs";
10
- import "../footer-links-DG4qNkaZ.mjs";
4
+ import { i as usePagination, r as UsePaginationProps } from "../alert-footer-BX_xPUot.mjs";
5
+ import "../dialog-trigger-context-TFwqL8Z4.mjs";
6
+ import "../drawer-trigger-context-DwgiZKBB.mjs";
7
+ import "../popover-trigger-context-C9FoRwGZ.mjs";
8
+ import "../dropdown-item-rUUE3LNG.mjs";
9
+ import "../dropdown-list-Es4uJ5t9.mjs";
10
+ import "../footer-links-CKLQ_Rck.mjs";
11
11
  import "../pagination-item-px_jlzBH.mjs";
12
- import "../sticky-header-DFUhQ4aL.mjs";
12
+ import "../sticky-header-RISPV-sC.mjs";
13
13
  import "../index-9o7w1k2p.mjs";
14
14
  import { t as useIsElementAboveViewport } from "../useIsElementAboveViewport-Dm5KwNnK.mjs";
15
15
  import { t as useScrollDirection } from "../useScrollDirection-D8-lMWT2.mjs";
@@ -1,10 +1,10 @@
1
- import { t as useCheckboxGroup } from "../useCheckboxGroup-CXmF4bqs.mjs";
2
- import { t as useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect-CUaF-bk-.mjs";
3
- import { t as usePagination } from "../usePagination-Cs_RI4QO.mjs";
4
- import { t as useIsElementAboveViewport } from "../useIsElementAboveViewport-Dy_5jjA4.mjs";
5
- import { t as useScrollDirection } from "../useScrollDirection-D35f7Y4k.mjs";
6
- import { t as useMediaQuery } from "../useMediaQuery-BzRQnFto.mjs";
7
- import "../hooks-BrrLmPaM.mjs";
8
- import "../utilities-Ci92QrhM.mjs";
1
+ import { t as useCheckboxGroup } from "../useCheckboxGroup-DWqqNSFY.mjs";
2
+ import { t as useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect-B9zYV7Dq.mjs";
3
+ import { t as usePagination } from "../usePagination-9ht6tr5V.mjs";
4
+ import { t as useIsElementAboveViewport } from "../useIsElementAboveViewport-DTgaSPiF.mjs";
5
+ import { t as useScrollDirection } from "../useScrollDirection-D7_FOiXc.mjs";
6
+ import { t as useMediaQuery } from "../useMediaQuery-I2eiGl9n.mjs";
7
+ import "../hooks-DHUUJnUb.mjs";
8
+ import "../utilities-D-mDqsCm.mjs";
9
9
 
10
10
  export { useCheckboxGroup, useIsElementAboveViewport, useIsomorphicLayoutEffect, useMediaQuery, usePagination, useScrollDirection };
@@ -15,4 +15,4 @@ const ValidationMessage = ({ children, className, icon, asChild, ref, ...props }
15
15
 
16
16
  //#endregion
17
17
  export { ValidationMessage as t };
18
- //# sourceMappingURL=validation-message-Dd58lGnj.mjs.map
18
+ //# sourceMappingURL=validation-message-C60moOAJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-message-Dd58lGnj.mjs","names":[],"sources":["../src/components/validation-message/validation-message.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx/lite';\nimport type { HTMLAttributes, ReactNode, Ref } from 'react';\nimport type { AsChildProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { ErrorIcon } from '@bi-digital/icons';\n\nexport type ValidationMessageProps = MergeRight<\n AsChildProps & HTMLAttributes<HTMLParagraphElement>,\n {\n /** Override the default warning icon. Must be a BiIcon to work correctly. */\n icon?: ReactNode;\n ref?: Ref<HTMLParagraphElement>;\n }\n>;\n\nexport const ValidationMessage = ({ children, className, icon, asChild, ref, ...props }: ValidationMessageProps) => {\n const Component = asChild ? Slot : 'p';\n\n return (\n <Component className={clsx('bi-validation-message', className)} ref={ref} {...props}>\n {icon || <ErrorIcon />}\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAgBA,MAAa,qBAAqB,EAAE,UAAU,WAAW,MAAM,SAAS,KAAK,GAAG,YAAoC;AAGlH,QACE,qBAHgB,UAAU,OAAO;EAGtB,WAAW,KAAK,yBAAyB,UAAU;EAAO;EAAK,GAAI;aAC3E,QAAQ,oBAAC,cAAY,EACrB;GACS"}
1
+ {"version":3,"file":"validation-message-C60moOAJ.mjs","names":[],"sources":["../src/components/validation-message/validation-message.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx/lite';\nimport type { HTMLAttributes, ReactNode, Ref } from 'react';\nimport type { AsChildProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { ErrorIcon } from '@bi-digital/icons';\n\nexport type ValidationMessageProps = MergeRight<\n AsChildProps & HTMLAttributes<HTMLParagraphElement>,\n {\n /** Override the default warning icon. Must be a BiIcon to work correctly. */\n icon?: ReactNode;\n ref?: Ref<HTMLParagraphElement>;\n }\n>;\n\nexport const ValidationMessage = ({ children, className, icon, asChild, ref, ...props }: ValidationMessageProps) => {\n const Component = asChild ? Slot : 'p';\n\n return (\n <Component className={clsx('bi-validation-message', className)} ref={ref} {...props}>\n {icon || <ErrorIcon />}\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAgBA,MAAa,qBAAqB,EAAE,UAAU,WAAW,MAAM,SAAS,KAAK,GAAG,YAAoC;AAGlH,QACE,qBAHgB,UAAU,OAAO;EAGtB,WAAW,KAAK,yBAAyB,UAAU;EAAO;EAAK,GAAI;aAC3E,QAAQ,oBAAC,cAAY,EACrB;GACS"}
@@ -1,4 +1,4 @@
1
- import "../../popover-DzgWYNoJ.mjs";
2
- import { t as initDropdown } from "../../dropdown-5PX7br4s.mjs";
1
+ import "../../popover-ChAkuQdg.mjs";
2
+ import { t as initDropdown } from "../../dropdown-DuZCbT-j.mjs";
3
3
 
4
4
  export { initDropdown };
@@ -1,4 +1,4 @@
1
1
  import { n as initDropdown, t as InitDropdownOptions } from "../index-8YuwT3Gl.mjs";
2
- import { n as initPopover, t as InitPopoverOptions } from "../index-C6Nm9giH.mjs";
2
+ import { n as arrowPseudoElement, r as initPopover, t as InitPopoverOptions } from "../index-CjIbpoNY.mjs";
3
3
  import { n as initSubNavbar, t as InitSubNavbarOptions } from "../index-O2Stf8CC.mjs";
4
- export { InitDropdownOptions, InitPopoverOptions, InitSubNavbarOptions, initDropdown, initPopover, initSubNavbar };
4
+ export { InitDropdownOptions, InitPopoverOptions, InitSubNavbarOptions, arrowPseudoElement, initDropdown, initPopover, initSubNavbar };
@@ -1,5 +1,5 @@
1
- import { t as initPopover } from "../popover-DzgWYNoJ.mjs";
2
- import { t as initDropdown } from "../dropdown-5PX7br4s.mjs";
1
+ import { n as initPopover, t as arrowPseudoElement } from "../popover-ChAkuQdg.mjs";
2
+ import { t as initDropdown } from "../dropdown-DuZCbT-j.mjs";
3
3
  import { t as initSubNavbar } from "../sub-navbar-Cnnpg72B.mjs";
4
4
 
5
- export { initDropdown, initPopover, initSubNavbar };
5
+ export { arrowPseudoElement, initDropdown, initPopover, initSubNavbar };
@@ -1,2 +1,2 @@
1
- import { n as initPopover, t as InitPopoverOptions } from "../../index-C6Nm9giH.mjs";
2
- export { InitPopoverOptions, initPopover };
1
+ import { n as arrowPseudoElement, r as initPopover, t as InitPopoverOptions } from "../../index-CjIbpoNY.mjs";
2
+ export { InitPopoverOptions, arrowPseudoElement, initPopover };
@@ -1,3 +1,3 @@
1
- import { t as initPopover } from "../../popover-DzgWYNoJ.mjs";
1
+ import { n as initPopover, t as arrowPseudoElement } from "../../popover-ChAkuQdg.mjs";
2
2
 
3
- export { initPopover };
3
+ export { arrowPseudoElement, initPopover };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bi-digital/react",
3
3
  "type": "module",
4
- "version": "0.6.5",
4
+ "version": "0.6.7",
5
5
  "engines": {
6
6
  "node": "^20.19.0 || >=22.12.0"
7
7
  },
@@ -41,7 +41,7 @@
41
41
  "@radix-ui/react-tabs": "^1.1.13",
42
42
  "@radix-ui/react-use-controllable-state": "^1.2.2",
43
43
  "clsx": "^2.1.1",
44
- "@bi-digital/icons": "0.6.5"
44
+ "@bi-digital/icons": "0.6.7"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@testing-library/dom": "^10.4.1",
@@ -51,18 +51,18 @@
51
51
  "@types/react": "^19.2.3",
52
52
  "@types/react-dom": "^19.2.3",
53
53
  "@vitest/coverage-v8": "^4.0.8",
54
- "@vitest/expect": "^4.0.14",
54
+ "@vitest/expect": "^4.0.15",
55
55
  "jsdom": "^27.2.0",
56
56
  "react": "^19.2.0",
57
57
  "react-dom": "^19.2.0",
58
58
  "tsconfck": "^3.1.6",
59
- "tsdown": "^0.16.4",
59
+ "tsdown": "^0.17.0",
60
60
  "vitest": "^4.0.8"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "react": "^19",
64
64
  "react-dom": "^19",
65
- "@bi-digital/css": "0.6.5"
65
+ "@bi-digital/css": "0.6.7"
66
66
  },
67
67
  "scripts": {
68
68
  "build": "tsdown",
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-B9hFmnr_.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';\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 * 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 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 ],\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]);\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-dark={dark}\n ref={mergedRefs}\n {...rest}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,MAAa,WAAW,EACtB,IACA,WACA,cACA,MACA,YAAY,OACZ,uBAAuB,OACvB,qBAAqB,EAAE,EACvB,UAAU,IACV,OAAO,OACP,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;KACvC;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;EAAQ,CAAC;AAG9E,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,aAAW;EACX,KAAK;EACL,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-DzgWYNoJ.mjs","names":["cleanup: (() => void) | undefined"],"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 ],\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"],"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;MAClB;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"}
File without changes
File without changes
File without changes
File without changes
File without changes