@bigbinary/neeto-atoms 1.0.36 → 1.0.37

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 (743) hide show
  1. package/dist/Accordion-DVMgPBum.js +45 -0
  2. package/dist/{Accordion-Ch9S_qd3.js.map → Accordion-DVMgPBum.js.map} +1 -1
  3. package/dist/Alert-bS5M631u.js +150 -0
  4. package/dist/{Alert-CayTuRLW.js.map → Alert-bS5M631u.js.map} +1 -1
  5. package/dist/Avatar-CJq2rlgk.js +71 -0
  6. package/dist/{Avatar-D5YGlXVF.js.map → Avatar-CJq2rlgk.js.map} +1 -1
  7. package/dist/Badge-DC6zxOwS.js +131 -0
  8. package/dist/{Badge-Bj3ajrWB.js.map → Badge-DC6zxOwS.js.map} +1 -1
  9. package/dist/Button-BCWJgHDy.js +193 -0
  10. package/dist/Button-BCWJgHDy.js.map +1 -0
  11. package/dist/{Calendar-gPWbQa_c.js → Calendar-CjOBwDbx.js} +181 -72
  12. package/dist/{Calendar-gPWbQa_c.js.map → Calendar-CjOBwDbx.js.map} +1 -1
  13. package/dist/{Callout-CTr3dhBe.js → Callout-ClNFeMbn.js} +36 -22
  14. package/dist/{Callout-CTr3dhBe.js.map → Callout-ClNFeMbn.js.map} +1 -1
  15. package/dist/Checkbox-C_Rd2-8Z.js +75 -0
  16. package/dist/{Checkbox-zCxgcZiC.js.map → Checkbox-C_Rd2-8Z.js.map} +1 -1
  17. package/dist/ColorPicker-D7Y1gZNn.js +437 -0
  18. package/dist/ColorPicker-D7Y1gZNn.js.map +1 -0
  19. package/dist/{DataTable-BpMBsz5i.js → DataTable-CEA8czNL.js} +1024 -641
  20. package/dist/DataTable-CEA8czNL.js.map +1 -0
  21. package/dist/{DatePicker-B7SYjsog.js → DatePicker-CCN3b1oz.js} +439 -264
  22. package/dist/{DatePicker-B7SYjsog.js.map → DatePicker-CCN3b1oz.js.map} +1 -1
  23. package/dist/Dialog-BOcBeB8v.js +147 -0
  24. package/dist/{Dialog-BURSzxaP.js.map → Dialog-BOcBeB8v.js.map} +1 -1
  25. package/dist/{DirectionProvider-DGYDg_He.js → DirectionProvider-weqLz_BJ.js} +2 -2
  26. package/dist/{DirectionProvider-DGYDg_He.js.map → DirectionProvider-weqLz_BJ.js.map} +1 -1
  27. package/dist/Empty-fV1Yplri.js +75 -0
  28. package/dist/{Empty-zyL2ZsHX.js.map → Empty-fV1Yplri.js.map} +1 -1
  29. package/dist/Input-xjYQfsaz.js +222 -0
  30. package/dist/{Input-C1gcv9o2.js.map → Input-xjYQfsaz.js.map} +1 -1
  31. package/dist/Kbd-CJOM9x4C.js +41 -0
  32. package/dist/{Kbd-EqbC0bua.js.map → Kbd-CJOM9x4C.js.map} +1 -1
  33. package/dist/Label-CrCRic4I.js +87 -0
  34. package/dist/{Label-DAFESZOG.js.map → Label-CrCRic4I.js.map} +1 -1
  35. package/dist/MultiEmailInput-L-QJg0hh.js +262 -0
  36. package/dist/MultiEmailInput-L-QJg0hh.js.map +1 -0
  37. package/dist/Pagination-C_X9kgc8.js +103 -0
  38. package/dist/{Pagination-DSc9yXPy.js.map → Pagination-C_X9kgc8.js.map} +1 -1
  39. package/dist/Popover-Cco_6txS.js +131 -0
  40. package/dist/{Popover-Dmq-xK_a.js.map → Popover-Cco_6txS.js.map} +1 -1
  41. package/dist/Progress-DURemsl_.js +18 -0
  42. package/dist/{Progress-B9NlUm6e.js.map → Progress-DURemsl_.js.map} +1 -1
  43. package/dist/RadioGroup-BTemSonO.js +106 -0
  44. package/dist/{RadioGroup-BNeYQAoT.js.map → RadioGroup-BTemSonO.js.map} +1 -1
  45. package/dist/Select-o0yJaN0P.js +1059 -0
  46. package/dist/Select-o0yJaN0P.js.map +1 -0
  47. package/dist/SelectFieldWrapper-CiBARDsn.js +74 -0
  48. package/dist/{SelectFieldWrapper-BJzq9aCY.js.map → SelectFieldWrapper-CiBARDsn.js.map} +1 -1
  49. package/dist/Sheet-DVoy6if3.js +158 -0
  50. package/dist/{Sheet-B99vGwLH.js.map → Sheet-DVoy6if3.js.map} +1 -1
  51. package/dist/Slider-DNcH5X7b.js +65 -0
  52. package/dist/{Slider-BCQXhs0Q.js.map → Slider-DNcH5X7b.js.map} +1 -1
  53. package/dist/Spinner-DgV3mILN.js +26 -0
  54. package/dist/{Spinner-C8HSac-2.js.map → Spinner-DgV3mILN.js.map} +1 -1
  55. package/dist/Stepper-7OpfOfas.js +109 -0
  56. package/dist/{Stepper-BoGkmkY0.js.map → Stepper-7OpfOfas.js.map} +1 -1
  57. package/dist/Switch-OAB7pfNn.js +82 -0
  58. package/dist/{Switch-B83TGxJ_.js.map → Switch-OAB7pfNn.js.map} +1 -1
  59. package/dist/Tabs-DTbbJITd.js +64 -0
  60. package/dist/{Tabs-DWfKnl3S.js.map → Tabs-DTbbJITd.js.map} +1 -1
  61. package/dist/Textarea-B2Uhx-Yy.js +181 -0
  62. package/dist/{Textarea-C0z50h0N.js.map → Textarea-B2Uhx-Yy.js.map} +1 -1
  63. package/dist/TimePicker-wPi2k6Z8.js +264 -0
  64. package/dist/TimePicker-wPi2k6Z8.js.map +1 -0
  65. package/dist/TimePickerPanel-DAhz3B2d.js +227 -0
  66. package/dist/{TimePickerPanel-CiF0RExY.js.map → TimePickerPanel-DAhz3B2d.js.map} +1 -1
  67. package/dist/Toastr-BimwuEnS.js +95 -0
  68. package/dist/{Toastr-DYqpSaMd.js.map → Toastr-BimwuEnS.js.map} +1 -1
  69. package/dist/Tooltip-CA3irJ2q.js +88 -0
  70. package/dist/{Tooltip-3ZzQyaDV.js.map → Tooltip-CA3irJ2q.js.map} +1 -1
  71. package/dist/{TranslationProvider-Ba9rn47H.js → TranslationProvider-BvRvUsPS.js} +20 -17
  72. package/dist/{TranslationProvider-Ba9rn47H.js.map → TranslationProvider-BvRvUsPS.js.map} +1 -1
  73. package/dist/{Tree-C7r10UY5.js → Tree-BlzjThRi.js} +515 -322
  74. package/dist/Tree-BlzjThRi.js.map +1 -0
  75. package/dist/TreeSelect-Dk299XMv.js +335 -0
  76. package/dist/TreeSelect-Dk299XMv.js.map +1 -0
  77. package/dist/Typography-CiQzW5Fy.js +97 -0
  78. package/dist/{Typography-ClPJbLjP.js.map → Typography-CiQzW5Fy.js.map} +1 -1
  79. package/dist/button-CrEMzWKw.js +67 -0
  80. package/dist/{button-D6uWDFCs.js.map → button-CrEMzWKw.js.map} +1 -1
  81. package/dist/cjs/Accordion-D75SDnkY.js +51 -0
  82. package/dist/cjs/Accordion-D75SDnkY.js.map +1 -0
  83. package/dist/cjs/Alert-_TPuVqa5.js +152 -0
  84. package/dist/cjs/Alert-_TPuVqa5.js.map +1 -0
  85. package/dist/cjs/Avatar-nG7vhAUS.js +73 -0
  86. package/dist/cjs/Avatar-nG7vhAUS.js.map +1 -0
  87. package/dist/cjs/Badge-Dz_Kb49L.js +133 -0
  88. package/dist/cjs/Badge-Dz_Kb49L.js.map +1 -0
  89. package/dist/cjs/Button-BlNtYr1w.js +195 -0
  90. package/dist/cjs/Button-BlNtYr1w.js.map +1 -0
  91. package/dist/cjs/{Calendar-jVF8fRaS.js → Calendar-02KiUZTT.js} +181 -72
  92. package/dist/cjs/Calendar-02KiUZTT.js.map +1 -0
  93. package/dist/cjs/{Callout-CVNpjTde.js → Callout-_XBx1JHL.js} +36 -22
  94. package/dist/cjs/Callout-_XBx1JHL.js.map +1 -0
  95. package/dist/cjs/Checkbox-CxqWOvFN.js +77 -0
  96. package/dist/cjs/Checkbox-CxqWOvFN.js.map +1 -0
  97. package/dist/cjs/ColorPicker-Co1Gffsu.js +439 -0
  98. package/dist/cjs/ColorPicker-Co1Gffsu.js.map +1 -0
  99. package/dist/cjs/{DataTable-BynOh4Bs.js → DataTable-DRGW8JVP.js} +1024 -641
  100. package/dist/cjs/DataTable-DRGW8JVP.js.map +1 -0
  101. package/dist/cjs/{DatePicker-C0BwxIh8.js → DatePicker-DRQubO2h.js} +439 -264
  102. package/dist/cjs/DatePicker-DRQubO2h.js.map +1 -0
  103. package/dist/cjs/Dialog-CBSuKeu_.js +149 -0
  104. package/dist/cjs/Dialog-CBSuKeu_.js.map +1 -0
  105. package/dist/cjs/{DirectionProvider-Bec-6U8p.js → DirectionProvider-BTtE4FcN.js} +2 -2
  106. package/dist/cjs/DirectionProvider-BTtE4FcN.js.map +1 -0
  107. package/dist/cjs/Empty-DqmmPlPJ.js +77 -0
  108. package/dist/cjs/Empty-DqmmPlPJ.js.map +1 -0
  109. package/dist/cjs/Input-CpuJXazH.js +224 -0
  110. package/dist/cjs/Input-CpuJXazH.js.map +1 -0
  111. package/dist/cjs/Kbd-D2nELu5m.js +43 -0
  112. package/dist/cjs/Kbd-D2nELu5m.js.map +1 -0
  113. package/dist/cjs/Label-DFkiC2Jk.js +89 -0
  114. package/dist/cjs/Label-DFkiC2Jk.js.map +1 -0
  115. package/dist/cjs/MultiEmailInput-CPXODFvs.js +264 -0
  116. package/dist/cjs/MultiEmailInput-CPXODFvs.js.map +1 -0
  117. package/dist/cjs/Pagination-DeWfLAq5.js +105 -0
  118. package/dist/cjs/Pagination-DeWfLAq5.js.map +1 -0
  119. package/dist/cjs/Popover-Br9hkU5i.js +137 -0
  120. package/dist/cjs/Popover-Br9hkU5i.js.map +1 -0
  121. package/dist/cjs/Progress-yBpMAzIU.js +20 -0
  122. package/dist/cjs/Progress-yBpMAzIU.js.map +1 -0
  123. package/dist/cjs/RadioGroup-CkKlLHnR.js +108 -0
  124. package/dist/cjs/RadioGroup-CkKlLHnR.js.map +1 -0
  125. package/dist/cjs/Select-DbfPhEu0.js +1065 -0
  126. package/dist/cjs/Select-DbfPhEu0.js.map +1 -0
  127. package/dist/cjs/SelectFieldWrapper-DKkizQNM.js +76 -0
  128. package/dist/cjs/SelectFieldWrapper-DKkizQNM.js.map +1 -0
  129. package/dist/cjs/Sheet-mJ7pJHrn.js +160 -0
  130. package/dist/cjs/Sheet-mJ7pJHrn.js.map +1 -0
  131. package/dist/cjs/Slider-ICf2eQ6p.js +67 -0
  132. package/dist/cjs/Slider-ICf2eQ6p.js.map +1 -0
  133. package/dist/cjs/Spinner-DzNBz8al.js +28 -0
  134. package/dist/cjs/Spinner-DzNBz8al.js.map +1 -0
  135. package/dist/cjs/Stepper-DZb25oBH.js +115 -0
  136. package/dist/cjs/Stepper-DZb25oBH.js.map +1 -0
  137. package/dist/cjs/Switch-BTkncHw2.js +84 -0
  138. package/dist/cjs/Switch-BTkncHw2.js.map +1 -0
  139. package/dist/cjs/Tabs-YPRmLtUM.js +66 -0
  140. package/dist/cjs/Tabs-YPRmLtUM.js.map +1 -0
  141. package/dist/cjs/Textarea-yWv-66yX.js +183 -0
  142. package/dist/cjs/Textarea-yWv-66yX.js.map +1 -0
  143. package/dist/cjs/TimePicker-BG_vYH3r.js +266 -0
  144. package/dist/cjs/TimePicker-BG_vYH3r.js.map +1 -0
  145. package/dist/cjs/TimePickerPanel-6xA-hjhm.js +233 -0
  146. package/dist/cjs/TimePickerPanel-6xA-hjhm.js.map +1 -0
  147. package/dist/cjs/Toastr-DYWd66L7.js +97 -0
  148. package/dist/cjs/Toastr-DYWd66L7.js.map +1 -0
  149. package/dist/cjs/Tooltip-Dph_R3Ct.js +94 -0
  150. package/dist/cjs/Tooltip-Dph_R3Ct.js.map +1 -0
  151. package/dist/cjs/{TranslationProvider-DBZHXmzX.js → TranslationProvider-Dh5_Fzzk.js} +20 -17
  152. package/dist/cjs/TranslationProvider-Dh5_Fzzk.js.map +1 -0
  153. package/dist/cjs/{Tree-BPd0DuLh.js → Tree-DAyVPLnJ.js} +515 -322
  154. package/dist/cjs/Tree-DAyVPLnJ.js.map +1 -0
  155. package/dist/cjs/TreeSelect-Cmm5yYq3.js +337 -0
  156. package/dist/cjs/TreeSelect-Cmm5yYq3.js.map +1 -0
  157. package/dist/cjs/Typography-UyaYuppP.js +100 -0
  158. package/dist/cjs/Typography-UyaYuppP.js.map +1 -0
  159. package/dist/cjs/button-CMl9rLXi.js +90 -0
  160. package/dist/cjs/button-CMl9rLXi.js.map +1 -0
  161. package/dist/cjs/components/Accordion.js +2 -2
  162. package/dist/cjs/components/Alert.js +10 -10
  163. package/dist/cjs/components/Avatar.js +3 -3
  164. package/dist/cjs/components/Badge.js +4 -4
  165. package/dist/cjs/components/Button.js +6 -6
  166. package/dist/cjs/components/Callout.js +4 -4
  167. package/dist/cjs/components/Checkbox.js +5 -5
  168. package/dist/cjs/components/ColorPicker.js +5 -5
  169. package/dist/cjs/components/DataTable.js +15 -15
  170. package/dist/cjs/components/DatePicker.js +9 -9
  171. package/dist/cjs/components/Dialog.js +7 -7
  172. package/dist/cjs/components/DirectionProvider.js +1 -1
  173. package/dist/cjs/components/DropdownMenu.js +320 -92
  174. package/dist/cjs/components/DropdownMenu.js.map +1 -1
  175. package/dist/cjs/components/Empty.js +16 -16
  176. package/dist/cjs/components/Input.js +9 -9
  177. package/dist/cjs/components/Kbd.js +3 -3
  178. package/dist/cjs/components/Label.js +12 -12
  179. package/dist/cjs/components/MultiEmailInput.js +5 -5
  180. package/dist/cjs/components/Pagination.js +4 -4
  181. package/dist/cjs/components/Popover.js +6 -6
  182. package/dist/cjs/components/Progress.js +2 -2
  183. package/dist/cjs/components/RadioGroup.js +5 -5
  184. package/dist/cjs/components/Select.js +10 -10
  185. package/dist/cjs/components/Sheet.js +7 -7
  186. package/dist/cjs/components/Slider.js +5 -5
  187. package/dist/cjs/components/Spinner.js +2 -2
  188. package/dist/cjs/components/Stepper.js +2 -2
  189. package/dist/cjs/components/Switch.js +3 -3
  190. package/dist/cjs/components/Tabs.js +4 -4
  191. package/dist/cjs/components/Textarea.js +6 -6
  192. package/dist/cjs/components/TimePicker.js +8 -8
  193. package/dist/cjs/components/Toastr.js +1 -1
  194. package/dist/cjs/components/Tooltip.js +3 -3
  195. package/dist/cjs/components/TranslationProvider.js +1 -1
  196. package/dist/cjs/components/Tree.js +3 -3
  197. package/dist/cjs/components/TreeSelect.js +8 -8
  198. package/dist/cjs/components/Typography.js +3 -3
  199. package/dist/cjs/components/index.js +80 -80
  200. package/dist/cjs/dialog-Cs1qH5xA.js +161 -0
  201. package/dist/cjs/dialog-Cs1qH5xA.js.map +1 -0
  202. package/dist/cjs/formik/ActionBlock.js +56 -12
  203. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  204. package/dist/cjs/formik/BlockNavigation.js +150 -79
  205. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  206. package/dist/cjs/formik/Button.js +20 -9
  207. package/dist/cjs/formik/Button.js.map +1 -1
  208. package/dist/cjs/formik/Checkbox.js +33 -15
  209. package/dist/cjs/formik/Checkbox.js.map +1 -1
  210. package/dist/cjs/formik/Form.js +105 -74
  211. package/dist/cjs/formik/Form.js.map +1 -1
  212. package/dist/cjs/formik/Input.js +32 -22
  213. package/dist/cjs/formik/Input.js.map +1 -1
  214. package/dist/cjs/formik/MultiEmailInput.js +23 -13
  215. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  216. package/dist/cjs/formik/RadioGroup.js +33 -15
  217. package/dist/cjs/formik/RadioGroup.js.map +1 -1
  218. package/dist/cjs/formik/Select.js +29 -28
  219. package/dist/cjs/formik/Select.js.map +1 -1
  220. package/dist/cjs/formik/Slider.js +31 -13
  221. package/dist/cjs/formik/Slider.js.map +1 -1
  222. package/dist/cjs/formik/Switch.js +28 -13
  223. package/dist/cjs/formik/Switch.js.map +1 -1
  224. package/dist/cjs/formik/Textarea.js +29 -19
  225. package/dist/cjs/formik/Textarea.js.map +1 -1
  226. package/dist/cjs/formik/TreeSelect.js +26 -15
  227. package/dist/cjs/formik/TreeSelect.js.map +1 -1
  228. package/dist/cjs/formik/index.js +26 -26
  229. package/dist/cjs/{index-BLGrl3PF.js → index-BTsnrFFc.js} +2 -2
  230. package/dist/cjs/{index-BLGrl3PF.js.map → index-BTsnrFFc.js.map} +1 -1
  231. package/dist/cjs/{index-ChSOMM8b.js → index-CS_WSHYi.js} +54 -54
  232. package/dist/cjs/index-CS_WSHYi.js.map +1 -0
  233. package/dist/cjs/{index-D1SiRLYs.js → index-DbA93GP3.js} +2 -2
  234. package/dist/cjs/{index-D1SiRLYs.js.map → index-DbA93GP3.js.map} +1 -1
  235. package/dist/cjs/{index-BZhTddX0.js → index-vioSzJOw.js} +2 -2
  236. package/dist/cjs/{index-BZhTddX0.js.map → index-vioSzJOw.js.map} +1 -1
  237. package/dist/cjs/index.js +306 -300
  238. package/dist/cjs/index.js.map +1 -1
  239. package/dist/cjs/input-BlyvDsZ5.js +22 -0
  240. package/dist/cjs/input-BlyvDsZ5.js.map +1 -0
  241. package/dist/cjs/input-group-8TZFHzVl.js +147 -0
  242. package/dist/cjs/input-group-8TZFHzVl.js.map +1 -0
  243. package/dist/cjs/{label-Bdc9ytTI.js → label-DJ7KkKYy.js} +17 -4
  244. package/dist/cjs/label-DJ7KkKYy.js.map +1 -0
  245. package/dist/cjs/primitives/Accordion.js +76 -13
  246. package/dist/cjs/primitives/Accordion.js.map +1 -1
  247. package/dist/cjs/primitives/Alert.js +65 -20
  248. package/dist/cjs/primitives/Alert.js.map +1 -1
  249. package/dist/cjs/primitives/AlertDialog.js +176 -41
  250. package/dist/cjs/primitives/AlertDialog.js.map +1 -1
  251. package/dist/cjs/primitives/AspectRatio.js +5 -3
  252. package/dist/cjs/primitives/AspectRatio.js.map +1 -1
  253. package/dist/cjs/primitives/Avatar.js +94 -17
  254. package/dist/cjs/primitives/Avatar.js.map +1 -1
  255. package/dist/cjs/primitives/Badge.js +99 -69
  256. package/dist/cjs/primitives/Badge.js.map +1 -1
  257. package/dist/cjs/primitives/Breadcrumb.js +103 -21
  258. package/dist/cjs/primitives/Breadcrumb.js.map +1 -1
  259. package/dist/cjs/primitives/Button.js +4 -4
  260. package/dist/cjs/primitives/Button.js.map +1 -1
  261. package/dist/cjs/primitives/ButtonGroup.js +65 -21
  262. package/dist/cjs/primitives/ButtonGroup.js.map +1 -1
  263. package/dist/cjs/primitives/Calendar.js +4 -4
  264. package/dist/cjs/primitives/Card.js +88 -16
  265. package/dist/cjs/primitives/Card.js.map +1 -1
  266. package/dist/cjs/primitives/Carousel.js +187 -85
  267. package/dist/cjs/primitives/Carousel.js.map +1 -1
  268. package/dist/cjs/primitives/Chart.js +427 -189
  269. package/dist/cjs/primitives/Chart.js.map +1 -1
  270. package/dist/cjs/primitives/Checkbox.js +28 -4
  271. package/dist/cjs/primitives/Checkbox.js.map +1 -1
  272. package/dist/cjs/primitives/Collapsible.js +27 -9
  273. package/dist/cjs/primitives/Collapsible.js.map +1 -1
  274. package/dist/cjs/primitives/Combobox.js +279 -51
  275. package/dist/cjs/primitives/Combobox.js.map +1 -1
  276. package/dist/cjs/primitives/Command.js +168 -39
  277. package/dist/cjs/primitives/Command.js.map +1 -1
  278. package/dist/cjs/primitives/ContextMenu.js +217 -48
  279. package/dist/cjs/primitives/ContextMenu.js.map +1 -1
  280. package/dist/cjs/primitives/Dialog.js +62 -20
  281. package/dist/cjs/primitives/Dialog.js.map +1 -1
  282. package/dist/cjs/primitives/Drawer.js +116 -31
  283. package/dist/cjs/primitives/Drawer.js.map +1 -1
  284. package/dist/cjs/primitives/DropdownMenu.js +233 -48
  285. package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
  286. package/dist/cjs/primitives/Empty.js +85 -23
  287. package/dist/cjs/primitives/Empty.js.map +1 -1
  288. package/dist/cjs/primitives/Field.js +194 -55
  289. package/dist/cjs/primitives/Field.js.map +1 -1
  290. package/dist/cjs/primitives/HoverCard.js +31 -10
  291. package/dist/cjs/primitives/HoverCard.js.map +1 -1
  292. package/dist/cjs/primitives/Input.js +3 -3
  293. package/dist/cjs/primitives/Input.js.map +1 -1
  294. package/dist/cjs/primitives/InputGroup.js +12 -12
  295. package/dist/cjs/primitives/InputGroup.js.map +1 -1
  296. package/dist/cjs/primitives/InputOTP.js +70 -13
  297. package/dist/cjs/primitives/InputOTP.js.map +1 -1
  298. package/dist/cjs/primitives/Item.js +163 -51
  299. package/dist/cjs/primitives/Item.js.map +1 -1
  300. package/dist/cjs/primitives/Kbd.js +22 -5
  301. package/dist/cjs/primitives/Kbd.js.map +1 -1
  302. package/dist/cjs/primitives/Label.js +3 -3
  303. package/dist/cjs/primitives/Label.js.map +1 -1
  304. package/dist/cjs/primitives/Menubar.js +236 -51
  305. package/dist/cjs/primitives/Menubar.js.map +1 -1
  306. package/dist/cjs/primitives/NativeSelect.js +45 -9
  307. package/dist/cjs/primitives/NativeSelect.js.map +1 -1
  308. package/dist/cjs/primitives/NavigationMenu.js +149 -27
  309. package/dist/cjs/primitives/NavigationMenu.js.map +1 -1
  310. package/dist/cjs/primitives/Pagination.js +121 -27
  311. package/dist/cjs/primitives/Pagination.js.map +1 -1
  312. package/dist/cjs/primitives/Popover.js +68 -21
  313. package/dist/cjs/primitives/Popover.js.map +1 -1
  314. package/dist/cjs/primitives/Progress.js +26 -4
  315. package/dist/cjs/primitives/Progress.js.map +1 -1
  316. package/dist/cjs/primitives/RadioGroup.js +36 -9
  317. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  318. package/dist/cjs/primitives/Resizable.js +37 -9
  319. package/dist/cjs/primitives/Resizable.js.map +1 -1
  320. package/dist/cjs/primitives/ScrollArea.js +53 -7
  321. package/dist/cjs/primitives/ScrollArea.js.map +1 -1
  322. package/dist/cjs/primitives/Select.js +169 -32
  323. package/dist/cjs/primitives/Select.js.map +1 -1
  324. package/dist/cjs/primitives/Separator.js +3 -3
  325. package/dist/cjs/primitives/Separator.js.map +1 -1
  326. package/dist/cjs/primitives/Sheet.js +79 -18
  327. package/dist/cjs/primitives/Sheet.js.map +1 -1
  328. package/dist/cjs/primitives/Sidebar.js +575 -181
  329. package/dist/cjs/primitives/Sidebar.js.map +1 -1
  330. package/dist/cjs/primitives/Skeleton.js +3 -3
  331. package/dist/cjs/primitives/Skeleton.js.map +1 -1
  332. package/dist/cjs/primitives/Slider.js +53 -9
  333. package/dist/cjs/primitives/Slider.js.map +1 -1
  334. package/dist/cjs/primitives/Sonner.js +42 -26
  335. package/dist/cjs/primitives/Sonner.js.map +1 -1
  336. package/dist/cjs/primitives/Spinner.js +4 -4
  337. package/dist/cjs/primitives/Spinner.js.map +1 -1
  338. package/dist/cjs/primitives/Switch.js +32 -2
  339. package/dist/cjs/primitives/Switch.js.map +1 -1
  340. package/dist/cjs/primitives/Table.js +109 -17
  341. package/dist/cjs/primitives/Table.js.map +1 -1
  342. package/dist/cjs/primitives/Tabs.js +78 -22
  343. package/dist/cjs/primitives/Tabs.js.map +1 -1
  344. package/dist/cjs/primitives/Textarea.js +3 -3
  345. package/dist/cjs/primitives/Textarea.js.map +1 -1
  346. package/dist/cjs/primitives/Toggle.js +4 -4
  347. package/dist/cjs/primitives/Toggle.js.map +1 -1
  348. package/dist/cjs/primitives/ToggleGroup.js +68 -17
  349. package/dist/cjs/primitives/ToggleGroup.js.map +1 -1
  350. package/dist/cjs/primitives/Tooltip.js +6 -6
  351. package/dist/cjs/primitives/Tooltip.js.map +1 -1
  352. package/dist/cjs/primitives/index.js +18 -18
  353. package/dist/cjs/renderIcon-BRrpZu9a.js +32 -0
  354. package/dist/cjs/renderIcon-BRrpZu9a.js.map +1 -0
  355. package/dist/cjs/search-DVHH0ihN.js +33 -0
  356. package/dist/cjs/search-DVHH0ihN.js.map +1 -0
  357. package/dist/cjs/{separator-CPy2gyg1.js → separator-DSL-aG1J.js} +21 -4
  358. package/dist/cjs/separator-DSL-aG1J.js.map +1 -0
  359. package/dist/cjs/sheet-G6ismmAK.js +147 -0
  360. package/dist/cjs/sheet-G6ismmAK.js.map +1 -0
  361. package/dist/cjs/skeleton-CL0H_mC4.js +18 -0
  362. package/dist/cjs/skeleton-CL0H_mC4.js.map +1 -0
  363. package/dist/cjs/textarea-Br-J3v7z.js +21 -0
  364. package/dist/cjs/textarea-Br-J3v7z.js.map +1 -0
  365. package/dist/cjs/{toggle-CaqzT8dI.js → toggle-Cq38rmIj.js} +34 -19
  366. package/dist/cjs/toggle-Cq38rmIj.js.map +1 -0
  367. package/dist/cjs/{tooltip-C-568jEL.js → tooltip-BYCcUMZn.js} +44 -10
  368. package/dist/cjs/tooltip-BYCcUMZn.js.map +1 -0
  369. package/dist/cjs/use-mobile-Be9CI6km.js +41 -0
  370. package/dist/cjs/use-mobile-Be9CI6km.js.map +1 -0
  371. package/dist/cjs/{utils-CTr7wn5d.js → utils-BhM0B89p.js} +2 -2
  372. package/dist/cjs/utils-BhM0B89p.js.map +1 -0
  373. package/dist/components/Accordion.js +2 -2
  374. package/dist/components/Alert.js +10 -10
  375. package/dist/components/Avatar.js +3 -3
  376. package/dist/components/Badge.js +4 -4
  377. package/dist/components/Button/Button.d.ts +1 -1
  378. package/dist/components/Button.js +6 -6
  379. package/dist/components/Callout.js +4 -4
  380. package/dist/components/Checkbox.js +5 -5
  381. package/dist/components/ColorPicker.js +5 -5
  382. package/dist/components/DataTable.js +15 -15
  383. package/dist/components/DatePicker.js +9 -9
  384. package/dist/components/Dialog.js +7 -7
  385. package/dist/components/DirectionProvider.js +1 -1
  386. package/dist/components/DropdownMenu.js +320 -92
  387. package/dist/components/DropdownMenu.js.map +1 -1
  388. package/dist/components/Empty.js +16 -16
  389. package/dist/components/Input.js +9 -9
  390. package/dist/components/Kbd.js +3 -3
  391. package/dist/components/Label.js +12 -12
  392. package/dist/components/MultiEmailInput.js +5 -5
  393. package/dist/components/Pagination.js +4 -4
  394. package/dist/components/Popover.js +6 -6
  395. package/dist/components/Progress.js +2 -2
  396. package/dist/components/RadioGroup.js +5 -5
  397. package/dist/components/Select.js +10 -10
  398. package/dist/components/Sheet.js +7 -7
  399. package/dist/components/Slider.js +5 -5
  400. package/dist/components/Spinner.js +2 -2
  401. package/dist/components/Stepper.js +2 -2
  402. package/dist/components/Switch.js +3 -3
  403. package/dist/components/Tabs.js +4 -4
  404. package/dist/components/Textarea.js +6 -6
  405. package/dist/components/TimePicker.js +8 -8
  406. package/dist/components/Toastr.js +1 -1
  407. package/dist/components/Tooltip.js +3 -3
  408. package/dist/components/TranslationProvider.js +1 -1
  409. package/dist/components/Tree.js +3 -3
  410. package/dist/components/TreeSelect/hooks/useTreeSelectState.d.ts +1 -1
  411. package/dist/components/TreeSelect/hooks/useTreeSelectValue.d.ts +1 -2
  412. package/dist/components/TreeSelect/utils/resolveFieldNames.d.ts +4 -2
  413. package/dist/components/TreeSelect.js +8 -8
  414. package/dist/components/Typography.js +3 -3
  415. package/dist/components/index.js +76 -76
  416. package/dist/dialog--Qm4MZDo.js +150 -0
  417. package/dist/{dialog-DK71SlsS.js.map → dialog--Qm4MZDo.js.map} +1 -1
  418. package/dist/formik/ActionBlock.js +56 -12
  419. package/dist/formik/ActionBlock.js.map +1 -1
  420. package/dist/formik/BlockNavigation.js +150 -79
  421. package/dist/formik/BlockNavigation.js.map +1 -1
  422. package/dist/formik/Button.js +20 -9
  423. package/dist/formik/Button.js.map +1 -1
  424. package/dist/formik/Checkbox.js +33 -15
  425. package/dist/formik/Checkbox.js.map +1 -1
  426. package/dist/formik/Form.js +105 -74
  427. package/dist/formik/Form.js.map +1 -1
  428. package/dist/formik/Input.js +32 -22
  429. package/dist/formik/Input.js.map +1 -1
  430. package/dist/formik/MultiEmailInput.js +23 -13
  431. package/dist/formik/MultiEmailInput.js.map +1 -1
  432. package/dist/formik/RadioGroup.d.ts +1 -1
  433. package/dist/formik/RadioGroup.js +33 -15
  434. package/dist/formik/RadioGroup.js.map +1 -1
  435. package/dist/formik/Select.js +29 -28
  436. package/dist/formik/Select.js.map +1 -1
  437. package/dist/formik/Slider.d.ts +1 -1
  438. package/dist/formik/Slider.js +31 -13
  439. package/dist/formik/Slider.js.map +1 -1
  440. package/dist/formik/Switch.js +28 -13
  441. package/dist/formik/Switch.js.map +1 -1
  442. package/dist/formik/Textarea.js +29 -19
  443. package/dist/formik/Textarea.js.map +1 -1
  444. package/dist/formik/TreeSelect.js +26 -15
  445. package/dist/formik/TreeSelect.js.map +1 -1
  446. package/dist/formik/index.js +26 -26
  447. package/dist/{index-9HvIbmnI.js → index-B7SdntLB.js} +2 -2
  448. package/dist/{index-9HvIbmnI.js.map → index-B7SdntLB.js.map} +1 -1
  449. package/dist/{index-D7Zy7P05.js → index-Bo3AAQJp.js} +2 -2
  450. package/dist/{index-D7Zy7P05.js.map → index-Bo3AAQJp.js.map} +1 -1
  451. package/dist/{index-OI_tWuLx.js → index-DnD7-4_R.js} +2 -2
  452. package/dist/{index-OI_tWuLx.js.map → index-DnD7-4_R.js.map} +1 -1
  453. package/dist/{index-B4_fVWDx.js → index-Jr4soqx3.js} +54 -54
  454. package/dist/index-Jr4soqx3.js.map +1 -0
  455. package/dist/index.js +286 -280
  456. package/dist/index.js.map +1 -1
  457. package/dist/input-1J5oQa1u.js +20 -0
  458. package/dist/{input-GLCCE2kT.js.map → input-1J5oQa1u.js.map} +1 -1
  459. package/dist/input-group-BKkj65Uq.js +140 -0
  460. package/dist/{input-group-C_qKMibX.js.map → input-group-BKkj65Uq.js.map} +1 -1
  461. package/dist/{label-B4qDF3W1.js → label-BgLSVt4u.js} +17 -4
  462. package/dist/{label-B4qDF3W1.js.map → label-BgLSVt4u.js.map} +1 -1
  463. package/dist/primitives/Accordion.js +76 -13
  464. package/dist/primitives/Accordion.js.map +1 -1
  465. package/dist/primitives/Alert.js +65 -20
  466. package/dist/primitives/Alert.js.map +1 -1
  467. package/dist/primitives/AlertDialog.js +176 -41
  468. package/dist/primitives/AlertDialog.js.map +1 -1
  469. package/dist/primitives/AspectRatio.js +5 -3
  470. package/dist/primitives/AspectRatio.js.map +1 -1
  471. package/dist/primitives/Avatar.js +94 -17
  472. package/dist/primitives/Avatar.js.map +1 -1
  473. package/dist/primitives/Badge.js +99 -69
  474. package/dist/primitives/Badge.js.map +1 -1
  475. package/dist/primitives/Breadcrumb.js +103 -21
  476. package/dist/primitives/Breadcrumb.js.map +1 -1
  477. package/dist/primitives/Button.js +5 -5
  478. package/dist/primitives/Button.js.map +1 -1
  479. package/dist/primitives/ButtonGroup.js +65 -21
  480. package/dist/primitives/ButtonGroup.js.map +1 -1
  481. package/dist/primitives/Calendar.js +4 -4
  482. package/dist/primitives/Card.js +88 -16
  483. package/dist/primitives/Card.js.map +1 -1
  484. package/dist/primitives/Carousel.js +187 -85
  485. package/dist/primitives/Carousel.js.map +1 -1
  486. package/dist/primitives/Chart.js +427 -189
  487. package/dist/primitives/Chart.js.map +1 -1
  488. package/dist/primitives/Checkbox.js +28 -4
  489. package/dist/primitives/Checkbox.js.map +1 -1
  490. package/dist/primitives/Collapsible.js +27 -9
  491. package/dist/primitives/Collapsible.js.map +1 -1
  492. package/dist/primitives/Combobox.js +279 -51
  493. package/dist/primitives/Combobox.js.map +1 -1
  494. package/dist/primitives/Command.js +168 -39
  495. package/dist/primitives/Command.js.map +1 -1
  496. package/dist/primitives/ContextMenu.js +217 -48
  497. package/dist/primitives/ContextMenu.js.map +1 -1
  498. package/dist/primitives/Dialog.js +62 -20
  499. package/dist/primitives/Dialog.js.map +1 -1
  500. package/dist/primitives/Drawer.js +116 -31
  501. package/dist/primitives/Drawer.js.map +1 -1
  502. package/dist/primitives/DropdownMenu.js +233 -48
  503. package/dist/primitives/DropdownMenu.js.map +1 -1
  504. package/dist/primitives/Empty.js +85 -23
  505. package/dist/primitives/Empty.js.map +1 -1
  506. package/dist/primitives/Field.js +194 -55
  507. package/dist/primitives/Field.js.map +1 -1
  508. package/dist/primitives/HoverCard.js +31 -10
  509. package/dist/primitives/HoverCard.js.map +1 -1
  510. package/dist/primitives/Input.js +3 -3
  511. package/dist/primitives/Input.js.map +1 -1
  512. package/dist/primitives/InputGroup.js +12 -12
  513. package/dist/primitives/InputGroup.js.map +1 -1
  514. package/dist/primitives/InputOTP.js +70 -13
  515. package/dist/primitives/InputOTP.js.map +1 -1
  516. package/dist/primitives/Item.js +163 -51
  517. package/dist/primitives/Item.js.map +1 -1
  518. package/dist/primitives/Kbd.js +22 -5
  519. package/dist/primitives/Kbd.js.map +1 -1
  520. package/dist/primitives/Label.js +3 -3
  521. package/dist/primitives/Label.js.map +1 -1
  522. package/dist/primitives/Menubar.js +236 -51
  523. package/dist/primitives/Menubar.js.map +1 -1
  524. package/dist/primitives/NativeSelect.js +45 -9
  525. package/dist/primitives/NativeSelect.js.map +1 -1
  526. package/dist/primitives/NavigationMenu.js +149 -27
  527. package/dist/primitives/NavigationMenu.js.map +1 -1
  528. package/dist/primitives/Pagination.js +121 -27
  529. package/dist/primitives/Pagination.js.map +1 -1
  530. package/dist/primitives/Popover.js +68 -21
  531. package/dist/primitives/Popover.js.map +1 -1
  532. package/dist/primitives/Progress.js +26 -4
  533. package/dist/primitives/Progress.js.map +1 -1
  534. package/dist/primitives/RadioGroup.js +36 -9
  535. package/dist/primitives/RadioGroup.js.map +1 -1
  536. package/dist/primitives/Resizable.js +38 -10
  537. package/dist/primitives/Resizable.js.map +1 -1
  538. package/dist/primitives/ScrollArea.js +53 -7
  539. package/dist/primitives/ScrollArea.js.map +1 -1
  540. package/dist/primitives/Select.js +169 -32
  541. package/dist/primitives/Select.js.map +1 -1
  542. package/dist/primitives/Separator.js +3 -3
  543. package/dist/primitives/Separator.js.map +1 -1
  544. package/dist/primitives/Sheet.js +79 -18
  545. package/dist/primitives/Sheet.js.map +1 -1
  546. package/dist/primitives/Sidebar.js +575 -181
  547. package/dist/primitives/Sidebar.js.map +1 -1
  548. package/dist/primitives/Skeleton.js +3 -3
  549. package/dist/primitives/Skeleton.js.map +1 -1
  550. package/dist/primitives/Slider.js +53 -9
  551. package/dist/primitives/Slider.js.map +1 -1
  552. package/dist/primitives/Sonner.js +42 -26
  553. package/dist/primitives/Sonner.js.map +1 -1
  554. package/dist/primitives/Spinner.js +4 -4
  555. package/dist/primitives/Spinner.js.map +1 -1
  556. package/dist/primitives/Switch.js +32 -2
  557. package/dist/primitives/Switch.js.map +1 -1
  558. package/dist/primitives/Table.js +109 -17
  559. package/dist/primitives/Table.js.map +1 -1
  560. package/dist/primitives/Tabs.js +78 -22
  561. package/dist/primitives/Tabs.js.map +1 -1
  562. package/dist/primitives/Textarea.js +3 -3
  563. package/dist/primitives/Textarea.js.map +1 -1
  564. package/dist/primitives/Toggle.js +5 -5
  565. package/dist/primitives/Toggle.js.map +1 -1
  566. package/dist/primitives/ToggleGroup.js +68 -17
  567. package/dist/primitives/ToggleGroup.js.map +1 -1
  568. package/dist/primitives/Tooltip.js +6 -6
  569. package/dist/primitives/Tooltip.js.map +1 -1
  570. package/dist/primitives/index.js +18 -18
  571. package/dist/renderIcon-C6twJSqH.js +26 -0
  572. package/dist/{renderIcon-tlvMyboj.js.map → renderIcon-C6twJSqH.js.map} +1 -1
  573. package/dist/search-B5K8FsJs.js +29 -0
  574. package/dist/search-B5K8FsJs.js.map +1 -0
  575. package/dist/{separator-BbhgePmX.js → separator-ByRsc-y-.js} +21 -4
  576. package/dist/{separator-BbhgePmX.js.map → separator-ByRsc-y-.js.map} +1 -1
  577. package/dist/sheet-BIqq9HBB.js +138 -0
  578. package/dist/{sheet-DVTG6X82.js.map → sheet-BIqq9HBB.js.map} +1 -1
  579. package/dist/skeleton-D9P1ZyiS.js +16 -0
  580. package/dist/skeleton-D9P1ZyiS.js.map +1 -0
  581. package/dist/textarea-B0vzA497.js +19 -0
  582. package/dist/{textarea-BSZwxzjQ.js.map → textarea-B0vzA497.js.map} +1 -1
  583. package/dist/toggle-bESUdU4A.js +75 -0
  584. package/dist/{toggle-2k9K8a5c.js.map → toggle-bESUdU4A.js.map} +1 -1
  585. package/dist/{tooltip-XkHLgxlU.js → tooltip-ChQ9xD1j.js} +44 -10
  586. package/dist/{tooltip-XkHLgxlU.js.map → tooltip-ChQ9xD1j.js.map} +1 -1
  587. package/dist/use-mobile-QbHL72cX.js +19 -0
  588. package/dist/use-mobile-QbHL72cX.js.map +1 -0
  589. package/dist/{utils-DdHUxIdC.js → utils-BJnb9o5c.js} +2 -2
  590. package/dist/{utils-DdHUxIdC.js.map → utils-BJnb9o5c.js.map} +1 -1
  591. package/package.json +4 -2
  592. package/dist/Accordion-Ch9S_qd3.js +0 -22
  593. package/dist/Alert-CayTuRLW.js +0 -65
  594. package/dist/Avatar-D5YGlXVF.js +0 -50
  595. package/dist/Badge-Bj3ajrWB.js +0 -59
  596. package/dist/Button-DSvnInaL.js +0 -93
  597. package/dist/Button-DSvnInaL.js.map +0 -1
  598. package/dist/Checkbox-zCxgcZiC.js +0 -24
  599. package/dist/ColorPicker-DtOvy0Gy.js +0 -278
  600. package/dist/ColorPicker-DtOvy0Gy.js.map +0 -1
  601. package/dist/DataTable-BpMBsz5i.js.map +0 -1
  602. package/dist/Dialog-BURSzxaP.js +0 -61
  603. package/dist/Empty-zyL2ZsHX.js +0 -27
  604. package/dist/Input-C1gcv9o2.js +0 -147
  605. package/dist/Kbd-EqbC0bua.js +0 -36
  606. package/dist/Label-DAFESZOG.js +0 -58
  607. package/dist/MultiEmailInput-SCTYovtX.js +0 -139
  608. package/dist/MultiEmailInput-SCTYovtX.js.map +0 -1
  609. package/dist/Pagination-DSc9yXPy.js +0 -61
  610. package/dist/Popover-Dmq-xK_a.js +0 -84
  611. package/dist/Progress-B9NlUm6e.js +0 -13
  612. package/dist/RadioGroup-BNeYQAoT.js +0 -34
  613. package/dist/Select-BgSz0fve.js +0 -563
  614. package/dist/Select-BgSz0fve.js.map +0 -1
  615. package/dist/SelectFieldWrapper-BJzq9aCY.js +0 -23
  616. package/dist/Sheet-B99vGwLH.js +0 -63
  617. package/dist/Slider-BCQXhs0Q.js +0 -25
  618. package/dist/Spinner-C8HSac-2.js +0 -17
  619. package/dist/Stepper-BoGkmkY0.js +0 -29
  620. package/dist/Switch-B83TGxJ_.js +0 -20
  621. package/dist/Tabs-DWfKnl3S.js +0 -38
  622. package/dist/Textarea-C0z50h0N.js +0 -73
  623. package/dist/TimePicker-2vhf5yYK.js +0 -146
  624. package/dist/TimePicker-2vhf5yYK.js.map +0 -1
  625. package/dist/TimePickerPanel-CiF0RExY.js +0 -126
  626. package/dist/Toastr-DYqpSaMd.js +0 -115
  627. package/dist/Tooltip-3ZzQyaDV.js +0 -59
  628. package/dist/Tree-C7r10UY5.js.map +0 -1
  629. package/dist/TreeSelect-BxsQrdjf.js +0 -168
  630. package/dist/TreeSelect-BxsQrdjf.js.map +0 -1
  631. package/dist/Typography-ClPJbLjP.js +0 -76
  632. package/dist/button-D6uWDFCs.js +0 -48
  633. package/dist/cjs/Accordion-BoTckTBI.js +0 -28
  634. package/dist/cjs/Accordion-BoTckTBI.js.map +0 -1
  635. package/dist/cjs/Alert-DnIUdIE3.js +0 -67
  636. package/dist/cjs/Alert-DnIUdIE3.js.map +0 -1
  637. package/dist/cjs/Avatar-CNao5gvP.js +0 -52
  638. package/dist/cjs/Avatar-CNao5gvP.js.map +0 -1
  639. package/dist/cjs/Badge-_-PRf6aq.js +0 -61
  640. package/dist/cjs/Badge-_-PRf6aq.js.map +0 -1
  641. package/dist/cjs/Button-BniJ4TT_.js +0 -95
  642. package/dist/cjs/Button-BniJ4TT_.js.map +0 -1
  643. package/dist/cjs/Calendar-jVF8fRaS.js.map +0 -1
  644. package/dist/cjs/Callout-CVNpjTde.js.map +0 -1
  645. package/dist/cjs/Checkbox-DOlS2oCD.js +0 -26
  646. package/dist/cjs/Checkbox-DOlS2oCD.js.map +0 -1
  647. package/dist/cjs/ColorPicker-Uxgn8U0h.js +0 -280
  648. package/dist/cjs/ColorPicker-Uxgn8U0h.js.map +0 -1
  649. package/dist/cjs/DataTable-BynOh4Bs.js.map +0 -1
  650. package/dist/cjs/DatePicker-C0BwxIh8.js.map +0 -1
  651. package/dist/cjs/Dialog-CtI_yWsJ.js +0 -63
  652. package/dist/cjs/Dialog-CtI_yWsJ.js.map +0 -1
  653. package/dist/cjs/DirectionProvider-Bec-6U8p.js.map +0 -1
  654. package/dist/cjs/Empty-CfPLWsLK.js +0 -29
  655. package/dist/cjs/Empty-CfPLWsLK.js.map +0 -1
  656. package/dist/cjs/Input-pkugjUb0.js +0 -149
  657. package/dist/cjs/Input-pkugjUb0.js.map +0 -1
  658. package/dist/cjs/Kbd-DHirsI--.js +0 -38
  659. package/dist/cjs/Kbd-DHirsI--.js.map +0 -1
  660. package/dist/cjs/Label-B7FbeB5i.js +0 -60
  661. package/dist/cjs/Label-B7FbeB5i.js.map +0 -1
  662. package/dist/cjs/MultiEmailInput-l0_YVjbp.js +0 -141
  663. package/dist/cjs/MultiEmailInput-l0_YVjbp.js.map +0 -1
  664. package/dist/cjs/Pagination-Byzt9Kmj.js +0 -63
  665. package/dist/cjs/Pagination-Byzt9Kmj.js.map +0 -1
  666. package/dist/cjs/Popover-DRT0YYzK.js +0 -90
  667. package/dist/cjs/Popover-DRT0YYzK.js.map +0 -1
  668. package/dist/cjs/Progress-DoCxZ_ZH.js +0 -15
  669. package/dist/cjs/Progress-DoCxZ_ZH.js.map +0 -1
  670. package/dist/cjs/RadioGroup-1RAoe38m.js +0 -36
  671. package/dist/cjs/RadioGroup-1RAoe38m.js.map +0 -1
  672. package/dist/cjs/Select-nifsTqzo.js +0 -569
  673. package/dist/cjs/Select-nifsTqzo.js.map +0 -1
  674. package/dist/cjs/SelectFieldWrapper-DEA--2wj.js +0 -25
  675. package/dist/cjs/SelectFieldWrapper-DEA--2wj.js.map +0 -1
  676. package/dist/cjs/Sheet-BTZe2VQk.js +0 -65
  677. package/dist/cjs/Sheet-BTZe2VQk.js.map +0 -1
  678. package/dist/cjs/Slider-jNUS9vt8.js +0 -27
  679. package/dist/cjs/Slider-jNUS9vt8.js.map +0 -1
  680. package/dist/cjs/Spinner-DQutDMQq.js +0 -19
  681. package/dist/cjs/Spinner-DQutDMQq.js.map +0 -1
  682. package/dist/cjs/Stepper-DCoLl2ZS.js +0 -35
  683. package/dist/cjs/Stepper-DCoLl2ZS.js.map +0 -1
  684. package/dist/cjs/Switch-CFf8DtB_.js +0 -22
  685. package/dist/cjs/Switch-CFf8DtB_.js.map +0 -1
  686. package/dist/cjs/Tabs-D2247rd7.js +0 -40
  687. package/dist/cjs/Tabs-D2247rd7.js.map +0 -1
  688. package/dist/cjs/Textarea-BfdlAJ59.js +0 -75
  689. package/dist/cjs/Textarea-BfdlAJ59.js.map +0 -1
  690. package/dist/cjs/TimePicker-DReL0GSv.js +0 -148
  691. package/dist/cjs/TimePicker-DReL0GSv.js.map +0 -1
  692. package/dist/cjs/TimePickerPanel-DGNr97cj.js +0 -132
  693. package/dist/cjs/TimePickerPanel-DGNr97cj.js.map +0 -1
  694. package/dist/cjs/Toastr-BGp7-kmf.js +0 -117
  695. package/dist/cjs/Toastr-BGp7-kmf.js.map +0 -1
  696. package/dist/cjs/Tooltip-criVUtIg.js +0 -65
  697. package/dist/cjs/Tooltip-criVUtIg.js.map +0 -1
  698. package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +0 -1
  699. package/dist/cjs/Tree-BPd0DuLh.js.map +0 -1
  700. package/dist/cjs/TreeSelect-BoffO6qD.js +0 -170
  701. package/dist/cjs/TreeSelect-BoffO6qD.js.map +0 -1
  702. package/dist/cjs/Typography-DaZ0HTha.js +0 -79
  703. package/dist/cjs/Typography-DaZ0HTha.js.map +0 -1
  704. package/dist/cjs/button--P7-oIJb.js +0 -71
  705. package/dist/cjs/button--P7-oIJb.js.map +0 -1
  706. package/dist/cjs/dialog-CWSpiRjk.js +0 -52
  707. package/dist/cjs/dialog-CWSpiRjk.js.map +0 -1
  708. package/dist/cjs/index-ChSOMM8b.js.map +0 -1
  709. package/dist/cjs/input-CgKPISj_.js +0 -11
  710. package/dist/cjs/input-CgKPISj_.js.map +0 -1
  711. package/dist/cjs/input-group-CFZl_aQS.js +0 -66
  712. package/dist/cjs/input-group-CFZl_aQS.js.map +0 -1
  713. package/dist/cjs/label-Bdc9ytTI.js.map +0 -1
  714. package/dist/cjs/renderIcon-fLF3odqg.js +0 -26
  715. package/dist/cjs/renderIcon-fLF3odqg.js.map +0 -1
  716. package/dist/cjs/search-CfYUGi4v.js +0 -37
  717. package/dist/cjs/search-CfYUGi4v.js.map +0 -1
  718. package/dist/cjs/separator-CPy2gyg1.js.map +0 -1
  719. package/dist/cjs/sheet-BZt84aab.js +0 -50
  720. package/dist/cjs/sheet-BZt84aab.js.map +0 -1
  721. package/dist/cjs/skeleton-DffZ8bV7.js +0 -11
  722. package/dist/cjs/skeleton-DffZ8bV7.js.map +0 -1
  723. package/dist/cjs/textarea-CZSSY75H.js +0 -11
  724. package/dist/cjs/textarea-CZSSY75H.js.map +0 -1
  725. package/dist/cjs/toggle-CaqzT8dI.js.map +0 -1
  726. package/dist/cjs/tooltip-C-568jEL.js.map +0 -1
  727. package/dist/cjs/use-mobile-B-UYxtqX.js +0 -41
  728. package/dist/cjs/use-mobile-B-UYxtqX.js.map +0 -1
  729. package/dist/cjs/utils-CTr7wn5d.js.map +0 -1
  730. package/dist/dialog-DK71SlsS.js +0 -41
  731. package/dist/index-B4_fVWDx.js.map +0 -1
  732. package/dist/input-GLCCE2kT.js +0 -9
  733. package/dist/input-group-C_qKMibX.js +0 -59
  734. package/dist/renderIcon-tlvMyboj.js +0 -20
  735. package/dist/search-BK7Ozh5_.js +0 -33
  736. package/dist/search-BK7Ozh5_.js.map +0 -1
  737. package/dist/sheet-DVTG6X82.js +0 -41
  738. package/dist/skeleton-AR83txPr.js +0 -9
  739. package/dist/skeleton-AR83txPr.js.map +0 -1
  740. package/dist/textarea-BSZwxzjQ.js +0 -9
  741. package/dist/toggle-2k9K8a5c.js +0 -60
  742. package/dist/use-mobile-IRjN_mlT.js +0 -19
  743. package/dist/use-mobile-IRjN_mlT.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","../../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","../../src/shadcn/components/carousel.tsx","../../src/primitives/Carousel.tsx"],"sourcesContent":["function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { areOptionsEqual, arePluginsEqual, canUseDOM } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\n\nimport { useTranslation } from \"react-i18next\"\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n const { t } = useTranslation()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -start-12 -translate-y-1/2\"\n : \"-top-12 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.carousel.previousSlide\", \"Previous slide\")}</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n const { t } = useTranslation()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -end-12 -translate-y-1/2\"\n : \"-bottom-12 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.carousel.nextSlide\", \"Next slide\")}</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n useCarousel,\n}\n","import type React from \"react\";\nimport {\n Carousel as ShadcnCarousel,\n CarouselContent as ShadcnCarouselContent,\n CarouselItem as ShadcnCarouselItem,\n CarouselPrevious as ShadcnCarouselPrevious,\n CarouselNext as ShadcnCarouselNext,\n} from \"src/shadcn/components/carousel\";\n\nconst Carousel = (props: React.ComponentProps<typeof ShadcnCarousel>) => (\n <ShadcnCarousel {...props} />\n);\n\nconst CarouselContent = (\n props: React.ComponentProps<typeof ShadcnCarouselContent>\n) => <ShadcnCarouselContent {...props} />;\n\nconst CarouselItem = (\n props: React.ComponentProps<typeof ShadcnCarouselItem>\n) => <ShadcnCarouselItem {...props} />;\n\nconst CarouselPrevious = (\n props: React.ComponentProps<typeof ShadcnCarouselPrevious>\n) => <ShadcnCarouselPrevious {...props} />;\n\nconst CarouselNext = (\n props: React.ComponentProps<typeof ShadcnCarouselNext>\n) => <ShadcnCarouselNext {...props} />;\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\nexport { useCarousel } from \"src/shadcn/components/carousel\";\nexport type { CarouselApi } from \"src/shadcn/components/carousel\";\n"],"names":["isObject","Carousel","_jsx","CarouselContent","CarouselItem","CarouselPrevious","_jsxs","ChevronLeftIcon","CarouselNext","ChevronRightIcon","ShadcnCarousel","ShadcnCarouselContent","ShadcnCarouselItem","ShadcnCarouselPrevious","ShadcnCarouselNext"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"Carousel.js","sources":["../../node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","../../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","../../src/shadcn/components/carousel.tsx","../../src/primitives/Carousel.tsx"],"sourcesContent":["function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { areOptionsEqual, arePluginsEqual, canUseDOM } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\n\nimport { useTranslation } from \"react-i18next\"\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n const { t } = useTranslation()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -start-12 -translate-y-1/2\"\n : \"-top-12 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.carousel.previousSlide\", \"Previous slide\")}</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n const { t } = useTranslation()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -end-12 -translate-y-1/2\"\n : \"-bottom-12 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.carousel.nextSlide\", \"Next slide\")}</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n useCarousel,\n}\n","import type React from \"react\";\nimport {\n Carousel as ShadcnCarousel,\n CarouselContent as ShadcnCarouselContent,\n CarouselItem as ShadcnCarouselItem,\n CarouselPrevious as ShadcnCarouselPrevious,\n CarouselNext as ShadcnCarouselNext,\n} from \"src/shadcn/components/carousel\";\n\nconst Carousel = (props: React.ComponentProps<typeof ShadcnCarousel>) => (\n <ShadcnCarousel {...props} />\n);\n\nconst CarouselContent = (\n props: React.ComponentProps<typeof ShadcnCarouselContent>\n) => <ShadcnCarouselContent {...props} />;\n\nconst CarouselItem = (\n props: React.ComponentProps<typeof ShadcnCarouselItem>\n) => <ShadcnCarouselItem {...props} />;\n\nconst CarouselPrevious = (\n props: React.ComponentProps<typeof ShadcnCarouselPrevious>\n) => <ShadcnCarouselPrevious {...props} />;\n\nconst CarouselNext = (\n props: React.ComponentProps<typeof ShadcnCarouselNext>\n) => <ShadcnCarouselNext {...props} />;\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\nexport { useCarousel } from \"src/shadcn/components/carousel\";\nexport type { CarouselApi } from \"src/shadcn/components/carousel\";\n"],"names":["isObject","Carousel","api","CarouselContent","CarouselItem","CarouselPrevious","ChevronLeftIcon","CarouselNext","ChevronRightIcon","ShadcnCarousel","ShadcnCarouselContent","ShadcnCarouselItem","ShadcnCarouselPrevious","ShadcnCarouselNext"],"mappings":"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","x_google_ignoreList":[0,1,2]}