@arc-ui/components 11.5.0 → 11.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/dist/Alert/Alert.cjs.d.ts +1 -1
  2. package/dist/Alert/Alert.cjs.js +4 -4
  3. package/dist/Alert/Alert.esm.d.ts +1 -1
  4. package/dist/Alert/Alert.esm.js +4 -4
  5. package/dist/Badge/Badge.cjs.js +2 -2
  6. package/dist/Badge/Badge.esm.js +2 -2
  7. package/dist/Box/Box.cjs.d.ts +1 -0
  8. package/dist/Box/Box.cjs.js +13 -0
  9. package/dist/Box/Box.esm.d.ts +1 -0
  10. package/dist/Box/Box.esm.js +5 -0
  11. package/dist/Box/package.json +7 -0
  12. package/dist/BrandLogo/BrandLogo.cjs.d.ts +1 -1
  13. package/dist/BrandLogo/BrandLogo.cjs.js +2 -2
  14. package/dist/BrandLogo/BrandLogo.esm.d.ts +1 -1
  15. package/dist/BrandLogo/BrandLogo.esm.js +2 -2
  16. package/dist/Breadcrumbs/Breadcrumbs.cjs.d.ts +1 -61
  17. package/dist/Breadcrumbs/Breadcrumbs.cjs.js +10 -642
  18. package/dist/Breadcrumbs/Breadcrumbs.esm.d.ts +1 -61
  19. package/dist/Breadcrumbs/Breadcrumbs.esm.js +9 -641
  20. package/dist/Button/Button.cjs.d.ts +1 -1
  21. package/dist/Button/Button.cjs.js +4 -3
  22. package/dist/Button/Button.esm.d.ts +1 -1
  23. package/dist/Button/Button.esm.js +4 -3
  24. package/dist/Card/Card.cjs.d.ts +1 -130
  25. package/dist/Card/Card.cjs.js +12 -119
  26. package/dist/Card/Card.esm.d.ts +1 -130
  27. package/dist/Card/Card.esm.js +11 -118
  28. package/dist/Checkbox/Checkbox.cjs.d.ts +1 -64
  29. package/dist/Checkbox/Checkbox.cjs.js +11 -60
  30. package/dist/Checkbox/Checkbox.esm.d.ts +1 -64
  31. package/dist/Checkbox/Checkbox.esm.js +10 -59
  32. package/dist/Columns/Columns.cjs.d.ts +1 -76
  33. package/dist/Columns/Columns.cjs.js +6 -52
  34. package/dist/Columns/Columns.esm.d.ts +1 -76
  35. package/dist/Columns/Columns.esm.js +5 -51
  36. package/dist/Disclosure/Disclosure.cjs.d.ts +1 -1
  37. package/dist/Disclosure/Disclosure.cjs.js +2 -2
  38. package/dist/Disclosure/Disclosure.esm.d.ts +1 -1
  39. package/dist/Disclosure/Disclosure.esm.js +2 -2
  40. package/dist/DisclosureMini/DisclosureMini.cjs.d.ts +1 -1
  41. package/dist/DisclosureMini/DisclosureMini.cjs.js +3 -3
  42. package/dist/DisclosureMini/DisclosureMini.esm.d.ts +1 -1
  43. package/dist/DisclosureMini/DisclosureMini.esm.js +3 -3
  44. package/dist/Filter/Filter.cjs.d.ts +1 -0
  45. package/dist/Filter/Filter.cjs.js +13 -0
  46. package/dist/Filter/Filter.esm.d.ts +1 -0
  47. package/dist/Filter/Filter.esm.js +5 -0
  48. package/dist/Filter/package.json +7 -0
  49. package/dist/FormControl/FormControl.cjs.d.ts +1 -1
  50. package/dist/FormControl/FormControl.cjs.js +4 -5
  51. package/dist/FormControl/FormControl.esm.d.ts +1 -1
  52. package/dist/FormControl/FormControl.esm.js +4 -5
  53. package/dist/Group/Group.cjs.d.ts +1 -46
  54. package/dist/Group/Group.cjs.js +6 -43
  55. package/dist/Group/Group.esm.d.ts +1 -46
  56. package/dist/Group/Group.esm.js +5 -42
  57. package/dist/Heading/Heading.cjs.d.ts +1 -1
  58. package/dist/Heading/Heading.cjs.js +2 -2
  59. package/dist/Heading/Heading.esm.d.ts +1 -1
  60. package/dist/Heading/Heading.esm.js +2 -2
  61. package/dist/Icon/Icon.cjs.d.ts +1 -1
  62. package/dist/Icon/Icon.cjs.js +2 -2
  63. package/dist/Icon/Icon.esm.d.ts +1 -1
  64. package/dist/Icon/Icon.esm.js +2 -2
  65. package/dist/Image/Image.cjs.d.ts +1 -1
  66. package/dist/Image/Image.cjs.js +2 -1
  67. package/dist/Image/Image.esm.d.ts +1 -1
  68. package/dist/Image/Image.esm.js +1 -1
  69. package/dist/Markup/Markup.cjs.js +1 -1
  70. package/dist/Markup/Markup.esm.js +1 -1
  71. package/dist/MediaCard/MediaCard.cjs.d.ts +61 -0
  72. package/dist/MediaCard/MediaCard.cjs.js +31 -0
  73. package/dist/MediaCard/MediaCard.esm.d.ts +61 -0
  74. package/dist/MediaCard/MediaCard.esm.js +23 -0
  75. package/dist/MediaCard/package.json +7 -0
  76. package/dist/Modal/Modal.cjs.d.ts +31 -0
  77. package/dist/Modal/Modal.cjs.js +388 -0
  78. package/dist/Modal/Modal.esm.d.ts +31 -0
  79. package/dist/Modal/Modal.esm.js +380 -0
  80. package/dist/Modal/package.json +7 -0
  81. package/dist/Pagination/Pagination.cjs.d.ts +20 -0
  82. package/dist/Pagination/Pagination.cjs.js +87 -0
  83. package/dist/Pagination/Pagination.esm.d.ts +20 -0
  84. package/dist/Pagination/Pagination.esm.js +79 -0
  85. package/dist/Pagination/package.json +7 -0
  86. package/dist/PaginationSimple/PaginationSimple.cjs.d.ts +28 -0
  87. package/dist/PaginationSimple/PaginationSimple.cjs.js +47 -0
  88. package/dist/PaginationSimple/PaginationSimple.esm.d.ts +28 -0
  89. package/dist/PaginationSimple/PaginationSimple.esm.js +39 -0
  90. package/dist/PaginationSimple/package.json +7 -0
  91. package/dist/Poster/Poster.cjs.d.ts +1 -81
  92. package/dist/Poster/Poster.cjs.js +8 -45
  93. package/dist/Poster/Poster.esm.d.ts +1 -81
  94. package/dist/Poster/Poster.esm.js +7 -44
  95. package/dist/ProgressBar/ProgressBar.cjs.js +4 -4
  96. package/dist/ProgressBar/ProgressBar.esm.js +4 -4
  97. package/dist/ProgressStepper/ProgressStepper.cjs.d.ts +89 -0
  98. package/dist/ProgressStepper/ProgressStepper.cjs.js +152 -0
  99. package/dist/ProgressStepper/ProgressStepper.esm.d.ts +89 -0
  100. package/dist/ProgressStepper/ProgressStepper.esm.js +144 -0
  101. package/dist/ProgressStepper/package.json +7 -0
  102. package/dist/RadioGroup/RadioGroup.cjs.d.ts +1 -85
  103. package/dist/RadioGroup/RadioGroup.cjs.js +9 -68
  104. package/dist/RadioGroup/RadioGroup.esm.d.ts +1 -85
  105. package/dist/RadioGroup/RadioGroup.esm.js +8 -67
  106. package/dist/Rule/Rule.cjs.js +1 -1
  107. package/dist/Rule/Rule.esm.js +1 -1
  108. package/dist/ScrollToTop/ScrollToTop.cjs.d.ts +25 -0
  109. package/dist/ScrollToTop/ScrollToTop.cjs.js +68 -0
  110. package/dist/ScrollToTop/ScrollToTop.esm.d.ts +25 -0
  111. package/dist/ScrollToTop/ScrollToTop.esm.js +60 -0
  112. package/dist/ScrollToTop/package.json +7 -0
  113. package/dist/Select/Select.cjs.d.ts +2 -2
  114. package/dist/Select/Select.cjs.js +20 -1419
  115. package/dist/Select/Select.esm.d.ts +2 -2
  116. package/dist/Select/Select.esm.js +10 -1390
  117. package/dist/SiteFooter/SiteFooter.cjs.d.ts +2 -62
  118. package/dist/SiteFooter/SiteFooter.cjs.js +10 -65
  119. package/dist/SiteFooter/SiteFooter.esm.d.ts +2 -62
  120. package/dist/SiteFooter/SiteFooter.esm.js +12 -66
  121. package/dist/SiteHeader/SiteHeader.cjs.d.ts +2 -260
  122. package/dist/SiteHeader/SiteHeader.cjs.js +17 -669
  123. package/dist/SiteHeader/SiteHeader.esm.d.ts +2 -260
  124. package/dist/SiteHeader/SiteHeader.esm.js +15 -667
  125. package/dist/Surface/Surface.cjs.d.ts +1 -1
  126. package/dist/Surface/Surface.cjs.js +1 -1
  127. package/dist/Surface/Surface.esm.d.ts +1 -1
  128. package/dist/Surface/Surface.esm.js +1 -1
  129. package/dist/Switch/Switch.cjs.d.ts +2 -2
  130. package/dist/Switch/Switch.cjs.js +8 -7
  131. package/dist/Switch/Switch.esm.d.ts +2 -2
  132. package/dist/Switch/Switch.esm.js +7 -6
  133. package/dist/Tag/Tag.cjs.js +2 -2
  134. package/dist/Tag/Tag.esm.js +2 -2
  135. package/dist/Text/Text.cjs.d.ts +1 -1
  136. package/dist/Text/Text.cjs.js +2 -2
  137. package/dist/Text/Text.esm.d.ts +1 -1
  138. package/dist/Text/Text.esm.js +2 -2
  139. package/dist/TextArea/TextArea.cjs.d.ts +61 -0
  140. package/dist/TextArea/TextArea.cjs.js +87 -0
  141. package/dist/TextArea/TextArea.esm.d.ts +61 -0
  142. package/dist/TextArea/TextArea.esm.js +79 -0
  143. package/dist/TextArea/package.json +7 -0
  144. package/dist/TextInput/TextInput.cjs.d.ts +1 -75
  145. package/dist/TextInput/TextInput.cjs.js +10 -76
  146. package/dist/TextInput/TextInput.esm.d.ts +1 -75
  147. package/dist/TextInput/TextInput.esm.js +9 -75
  148. package/dist/UniversalHeader/UniversalHeader.cjs.d.ts +1 -26
  149. package/dist/UniversalHeader/UniversalHeader.cjs.js +5 -30
  150. package/dist/UniversalHeader/UniversalHeader.esm.d.ts +1 -26
  151. package/dist/UniversalHeader/UniversalHeader.esm.js +4 -29
  152. package/dist/_shared/cjs/Box-ebe2b7be.d.ts +39 -0
  153. package/dist/_shared/cjs/Box-ebe2b7be.js +30 -0
  154. package/dist/_shared/cjs/{BrandLogo-8008f0c4.js → BrandLogo-8107d59f.js} +1 -1
  155. package/dist/_shared/cjs/Breadcrumbs-9f580f69.d.ts +61 -0
  156. package/dist/_shared/cjs/Breadcrumbs-9f580f69.js +106 -0
  157. package/dist/_shared/cjs/BtIconChevronLeftMid-df952a3e.js +31 -0
  158. package/dist/_shared/cjs/{Button-5dff284a.js → Button-b4d6ccc8.js} +8 -29
  159. package/dist/_shared/cjs/Card-f1108bfe.d.ts +136 -0
  160. package/dist/_shared/cjs/Card-f1108bfe.js +124 -0
  161. package/dist/_shared/cjs/Checkbox-c927b62f.d.ts +64 -0
  162. package/dist/_shared/cjs/Checkbox-c927b62f.js +62 -0
  163. package/dist/_shared/cjs/Columns-e90798f8.d.ts +76 -0
  164. package/dist/_shared/cjs/Columns-e90798f8.js +57 -0
  165. package/dist/_shared/cjs/{DisclosureMini-5af13d3c.js → DisclosureMini-2a10006e.js} +5 -3
  166. package/dist/_shared/cjs/Filter-a7574fe7.d.ts +83 -0
  167. package/dist/_shared/cjs/Filter-a7574fe7.js +121 -0
  168. package/dist/_shared/{esm/FormControl-0744f93f.d.ts → cjs/FormControl-78b007b7.d.ts} +4 -0
  169. package/dist/_shared/cjs/{FormControl-42360ae8.js → FormControl-78b007b7.js} +10 -10
  170. package/dist/_shared/cjs/Group-f85dd4c0.d.ts +46 -0
  171. package/dist/_shared/cjs/Group-f85dd4c0.js +48 -0
  172. package/dist/_shared/cjs/{Heading-d45f6a7f.js → Heading-ed1cb455.js} +1 -1
  173. package/dist/_shared/cjs/{Icon-9ae8dbe1.js → Icon-e1dd45eb.js} +1 -1
  174. package/dist/_shared/cjs/{Image-3bf4b4f3.js → Image-0e393cbf.js} +2 -0
  175. package/dist/_shared/cjs/ItemGroup-5af4d600.d.ts +27 -0
  176. package/dist/_shared/cjs/NavItem-df20237c.d.ts +43 -0
  177. package/dist/_shared/cjs/NavItemWithSubNav-65f21828.d.ts +49 -0
  178. package/dist/_shared/cjs/Poster-faea1ad3.d.ts +81 -0
  179. package/dist/_shared/cjs/Poster-faea1ad3.js +50 -0
  180. package/dist/_shared/cjs/RadioGroup-8e17de70.d.ts +97 -0
  181. package/dist/_shared/cjs/RadioGroup-8e17de70.js +70 -0
  182. package/dist/_shared/cjs/SiteFooter-9f7f9c2d.d.ts +62 -0
  183. package/dist/_shared/cjs/SiteFooter-9f7f9c2d.js +73 -0
  184. package/dist/_shared/cjs/SiteHeader-c25ee36e.d.ts +78 -0
  185. package/dist/_shared/cjs/SiteHeader.rehydrator-ccbebde6.d.ts +78 -0
  186. package/dist/_shared/cjs/SiteHeader.rehydrator-ccbebde6.js +673 -0
  187. package/dist/_shared/cjs/SubNavItem-a84d1bf4.d.ts +48 -0
  188. package/dist/_shared/cjs/{Surface-6da0a78e.d.ts → Surface-b7c51b2b.d.ts} +3 -2
  189. package/dist/_shared/cjs/{Surface-6da0a78e.js → Surface-b7c51b2b.js} +1 -1
  190. package/dist/_shared/cjs/{Text-6f2827e6.js → Text-555a29a4.js} +1 -1
  191. package/dist/_shared/cjs/TextInput-7ed03a48.d.ts +75 -0
  192. package/dist/_shared/cjs/TextInput-b768e346.d.ts +10 -0
  193. package/dist/_shared/cjs/TextInput-b768e346.js +78 -0
  194. package/dist/_shared/cjs/UniversalHeader-da622e1a.d.ts +26 -0
  195. package/dist/_shared/cjs/UniversalHeader-da622e1a.js +35 -0
  196. package/dist/_shared/cjs/debounce-506538c5.js +544 -0
  197. package/dist/_shared/cjs/index-31fbb076.js +1416 -0
  198. package/dist/_shared/cjs/index-699086a7.d.ts +2 -0
  199. package/dist/_shared/cjs/index-74488a9f.d.ts +2 -0
  200. package/dist/_shared/cjs/index-c81c9401.d.ts +3 -3
  201. package/dist/_shared/cjs/index-e340924e.d.ts +2 -0
  202. package/dist/_shared/cjs/index-e6d20018.d.ts +3 -0
  203. package/dist/_shared/cjs/index-eb06f640.d.ts +2 -0
  204. package/dist/_shared/cjs/index-f419cf04.d.ts +2 -0
  205. package/dist/_shared/cjs/index.module-5ea728f4.js +23 -0
  206. package/dist/_shared/cjs/{index.module-af7c85f2.js → index.module-9b87a34d.js} +84 -103
  207. package/dist/_shared/esm/Box-06d99d8a.d.ts +39 -0
  208. package/dist/_shared/esm/Box-06d99d8a.js +24 -0
  209. package/dist/_shared/esm/{BrandLogo-56699561.js → BrandLogo-9ec620e8.js} +1 -1
  210. package/dist/_shared/esm/Breadcrumbs-5dc0afa7.d.ts +61 -0
  211. package/dist/_shared/esm/Breadcrumbs-5dc0afa7.js +100 -0
  212. package/dist/_shared/esm/BtIconChevronLeftMid-9f4f3a3d.js +25 -0
  213. package/dist/_shared/esm/{Button-61241dd0.js → Button-9c3b0b11.js} +4 -25
  214. package/dist/_shared/esm/Card-79b6eae0.d.ts +136 -0
  215. package/dist/_shared/esm/Card-79b6eae0.js +118 -0
  216. package/dist/_shared/esm/Checkbox-2d144384.d.ts +64 -0
  217. package/dist/_shared/esm/Checkbox-2d144384.js +56 -0
  218. package/dist/_shared/esm/Columns-8704515b.d.ts +76 -0
  219. package/dist/_shared/esm/Columns-8704515b.js +51 -0
  220. package/dist/_shared/esm/{DisclosureMini-322fccc0.js → DisclosureMini-78a8f392.js} +5 -3
  221. package/dist/_shared/esm/Filter-a01aed11.d.ts +83 -0
  222. package/dist/_shared/esm/Filter-a01aed11.js +115 -0
  223. package/dist/_shared/{cjs/FormControl-42360ae8.d.ts → esm/FormControl-2fa7aae5.d.ts} +4 -0
  224. package/dist/_shared/esm/{FormControl-0744f93f.js → FormControl-2fa7aae5.js} +10 -10
  225. package/dist/_shared/esm/Group-fb26fd32.d.ts +46 -0
  226. package/dist/_shared/esm/Group-fb26fd32.js +42 -0
  227. package/dist/_shared/esm/{Heading-b61432fb.js → Heading-ee6bec51.js} +1 -1
  228. package/dist/_shared/esm/{Icon-fd247973.js → Icon-c1af47bc.js} +1 -1
  229. package/dist/_shared/esm/{Image-3596ce55.js → Image-3ed3863c.js} +2 -1
  230. package/dist/_shared/esm/ItemGroup-5af4d600.d.ts +27 -0
  231. package/dist/_shared/esm/NavItem-df20237c.d.ts +43 -0
  232. package/dist/_shared/esm/NavItemWithSubNav-65f21828.d.ts +49 -0
  233. package/dist/_shared/esm/Poster-a83ae770.d.ts +81 -0
  234. package/dist/_shared/esm/Poster-a83ae770.js +44 -0
  235. package/dist/_shared/esm/RadioGroup-65b8c8bf.d.ts +97 -0
  236. package/dist/_shared/esm/RadioGroup-65b8c8bf.js +64 -0
  237. package/dist/_shared/esm/SiteFooter-51bdc7df.d.ts +62 -0
  238. package/dist/_shared/esm/SiteFooter-51bdc7df.js +67 -0
  239. package/dist/_shared/esm/SiteHeader-c25ee36e.d.ts +78 -0
  240. package/dist/_shared/esm/SiteHeader.rehydrator-382d1c03.d.ts +78 -0
  241. package/dist/_shared/esm/SiteHeader.rehydrator-382d1c03.js +666 -0
  242. package/dist/_shared/esm/SubNavItem-a84d1bf4.d.ts +48 -0
  243. package/dist/_shared/esm/{Surface-bb100ef8.d.ts → Surface-dde51789.d.ts} +3 -2
  244. package/dist/_shared/esm/{Surface-bb100ef8.js → Surface-dde51789.js} +1 -1
  245. package/dist/_shared/esm/{Text-00e9743b.js → Text-14deb70e.js} +1 -1
  246. package/dist/_shared/esm/TextInput-62bb7dee.d.ts +10 -0
  247. package/dist/_shared/esm/TextInput-62bb7dee.js +72 -0
  248. package/dist/_shared/esm/TextInput-7ed03a48.d.ts +75 -0
  249. package/dist/_shared/esm/UniversalHeader-1c5a886d.d.ts +26 -0
  250. package/dist/_shared/esm/UniversalHeader-1c5a886d.js +29 -0
  251. package/dist/_shared/esm/debounce-e228705f.js +542 -0
  252. package/dist/_shared/esm/index-4fa635bd.js +1386 -0
  253. package/dist/_shared/esm/index-699086a7.d.ts +2 -0
  254. package/dist/_shared/esm/index-74488a9f.d.ts +2 -0
  255. package/dist/_shared/esm/index-c81c9401.d.ts +3 -3
  256. package/dist/_shared/esm/index-e340924e.d.ts +2 -0
  257. package/dist/_shared/esm/index-e6d20018.d.ts +3 -0
  258. package/dist/_shared/esm/index-eb06f640.d.ts +2 -0
  259. package/dist/_shared/esm/index-f419cf04.d.ts +2 -0
  260. package/dist/_shared/esm/{index.module-599b86dd.js → index.module-216016b5.js} +86 -104
  261. package/dist/_shared/esm/index.module-88179159.js +21 -0
  262. package/dist/index.es.js +179 -28
  263. package/dist/index.es.js.map +1 -1
  264. package/dist/index.js +180 -27
  265. package/dist/index.js.map +1 -1
  266. package/dist/styles.css +1 -1
  267. package/dist/types/components/Box/Box.d.ts +36 -0
  268. package/dist/types/components/Box/index.d.ts +1 -0
  269. package/dist/types/components/Filter/Filter.d.ts +38 -0
  270. package/dist/types/components/Filter/FilterControls/FilterControl/FilterControl.d.ts +16 -0
  271. package/dist/types/components/Filter/FilterControls/FilterControls.d.ts +12 -0
  272. package/dist/types/components/Filter/FilterItems/FilterItem/FilterItem.d.ts +12 -0
  273. package/dist/types/components/Filter/FilterItems/FilterItems.d.ts +12 -0
  274. package/dist/types/components/Filter/index.d.ts +1 -0
  275. package/dist/types/components/FormControl/FormControl.d.ts +4 -0
  276. package/dist/types/components/Image/index.d.ts +1 -1
  277. package/dist/types/components/MediaCard/MediaCard.d.ts +57 -0
  278. package/dist/types/components/MediaCard/index.d.ts +1 -0
  279. package/dist/types/components/Modal/Modal.stories-wip.d.ts +9 -0
  280. package/dist/types/components/Pagination/Pagination.d.ts +19 -0
  281. package/dist/types/components/Pagination/index.d.ts +1 -0
  282. package/dist/types/components/PaginationSimple/PaginationSimple.d.ts +27 -0
  283. package/dist/types/components/PaginationSimple/index.d.ts +1 -0
  284. package/dist/types/components/ProgressStepper/ProgressStepper.d.ts +28 -0
  285. package/dist/types/components/ProgressStepper/ProgressStepperItem/ProgressStepperItem.d.ts +62 -0
  286. package/dist/types/components/ProgressStepper/index.d.ts +1 -0
  287. package/dist/types/components/ProgressStepper/progressStatus.d.ts +1 -0
  288. package/dist/types/components/RadioGroup/RadioGroup.d.ts +1 -1
  289. package/dist/types/components/ScrollToTop/ScrollToTop.d.ts +24 -0
  290. package/dist/types/components/ScrollToTop/index.d.ts +1 -0
  291. package/dist/types/components/Select/Select.d.ts +1 -1
  292. package/dist/types/components/Surface/Surface.d.ts +2 -1
  293. package/dist/types/components/Surface/index.d.ts +1 -1
  294. package/dist/types/components/Switch/Switch.d.ts +1 -1
  295. package/dist/types/components/TextArea/TextArea.d.ts +60 -0
  296. package/dist/types/components/TextArea/index.d.ts +1 -0
  297. package/dist/types/components/TextInput/TextInput.d.ts +1 -1
  298. package/dist/types/components/index.d.ts +2 -0
  299. package/dist/types/hooks/use-pagination.d.ts +1 -0
  300. package/dist/types/styles.d.ts +10 -0
  301. package/package.json +4 -4
  302. /package/dist/_shared/cjs/{BrandLogo-8008f0c4.d.ts → BrandLogo-8107d59f.d.ts} +0 -0
  303. /package/dist/_shared/cjs/{Button-5dff284a.d.ts → Button-b4d6ccc8.d.ts} +0 -0
  304. /package/dist/_shared/cjs/{DisclosureMini-5af13d3c.d.ts → DisclosureMini-2a10006e.d.ts} +0 -0
  305. /package/dist/_shared/cjs/{Heading-d45f6a7f.d.ts → Heading-ed1cb455.d.ts} +0 -0
  306. /package/dist/_shared/cjs/{Icon-9ae8dbe1.d.ts → Icon-e1dd45eb.d.ts} +0 -0
  307. /package/dist/_shared/cjs/{Image-3bf4b4f3.d.ts → Image-0e393cbf.d.ts} +0 -0
  308. /package/dist/_shared/cjs/{Text-6f2827e6.d.ts → Text-555a29a4.d.ts} +0 -0
  309. /package/dist/_shared/esm/{BrandLogo-56699561.d.ts → BrandLogo-9ec620e8.d.ts} +0 -0
  310. /package/dist/_shared/esm/{Button-61241dd0.d.ts → Button-9c3b0b11.d.ts} +0 -0
  311. /package/dist/_shared/esm/{DisclosureMini-322fccc0.d.ts → DisclosureMini-78a8f392.d.ts} +0 -0
  312. /package/dist/_shared/esm/{Heading-b61432fb.d.ts → Heading-ee6bec51.d.ts} +0 -0
  313. /package/dist/_shared/esm/{Icon-fd247973.d.ts → Icon-c1af47bc.d.ts} +0 -0
  314. /package/dist/_shared/esm/{Image-3596ce55.d.ts → Image-3ed3863c.d.ts} +0 -0
  315. /package/dist/_shared/esm/{Text-00e9743b.d.ts → Text-14deb70e.d.ts} +0 -0
@@ -0,0 +1,666 @@
1
+ import { _ as __rest, a as __assign, f as filterDataAttrs, d as __awaiter, e as __generator } from './filter-data-attrs-afdb7d32.js';
2
+ import React__default, { useState, useEffect, Fragment, useContext, useRef, createContext } from 'react';
3
+ import { c as classNames } from './index-2ae58626.js';
4
+ import { u as useMediaQuery, a as ArcBreakpointL } from './index.es-00cb3bcb.js';
5
+ import { B as BtIconChevronDown2Px_2 } from './BtIconChevronDown2Px-782876e2.js';
6
+ import { h as handleLinkClick } from './handle-link-click-f64f55a2.js';
7
+ import { a as BtIconChevronRight2Px_2, B as BtIconChevronLeft2Px_2 } from './BtIconChevronRight2Px-b8e7b4ad.js';
8
+ import { S as Surface } from './Surface-dde51789.js';
9
+ import { B as BrandLogo } from './BrandLogo-9ec620e8.js';
10
+ import { B as Button } from './Button-9c3b0b11.js';
11
+ import { s as suffixModifier } from './suffix-modifier-7e640670.js';
12
+ import { T as Text } from './Text-14deb70e.js';
13
+
14
+ var Item = function (_a) {
15
+ var _b;
16
+ var children = _a.children, href = _a.href, isEmphasised = _a.isEmphasised, onClick = _a.onClick, props = __rest(_a, ["children", "href", "isEmphasised", "onClick"]);
17
+ return (React__default.createElement("li", __assign({ className: classNames((_b = {},
18
+ _b["arc-SiteHeaderItem"] = true,
19
+ _b["arc-SiteHeaderItem--emphasised"] = isEmphasised,
20
+ _b)) }, filterDataAttrs(props)),
21
+ React__default.createElement("a", { onClick: handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderItem-link", href: href },
22
+ isEmphasised && (React__default.createElement("span", { className: "arc-SiteHeaderItem-linkIcon" },
23
+ React__default.createElement(BtIconChevronRight2Px_2, null))),
24
+ children)));
25
+ };
26
+
27
+ var ItemGroup = function (_a) {
28
+ var children = _a.children, href = _a.href, title = _a.title, onClick = _a.onClick, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "href", "title", "onClick", "viewAllTitle"]);
29
+ var _b = useState(false), hasClientSideJavaScript = _b[0], setHasClientSideJavaScript = _b[1];
30
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
31
+ useEffect(function () {
32
+ React__default.Children.map(children, function (item) {
33
+ if (item && item.type !== Item && item.type !== Fragment) {
34
+ throw new Error("Illegal child passed to <SiteHeader.ItemGroup />. Ensure to only use <SiteHeader.Item />.");
35
+ }
36
+ });
37
+ }, [children]);
38
+ useEffect(function () {
39
+ // useEffect does not run in ReactDomServer renders
40
+ setHasClientSideJavaScript(true);
41
+ }, [setHasClientSideJavaScript]);
42
+ var ElementType = "div";
43
+ if (title) {
44
+ ElementType = "details";
45
+ }
46
+ return (React__default.createElement("li", { className: "arc-SiteHeaderItemGroup" },
47
+ React__default.createElement(ElementType, __assign({ className: "arc-SiteHeaderItemGroup-details", open: Boolean(title && isMinWidthArcBreakpointL) }, filterDataAttrs(props)),
48
+ title ? (React__default.createElement("summary", { className: "arc-SiteHeaderItemGroup-summary", tabIndex: isMinWidthArcBreakpointL ? -1 : 0 }, href ? (React__default.createElement("a", { onClick: handleLinkClick({
49
+ handler: onClick
50
+ }), className: "arc-SiteHeaderItemGroup-title", href: href, tabIndex: !hasClientSideJavaScript || isMinWidthArcBreakpointL ? 0 : -1 },
51
+ title,
52
+ React__default.createElement("span", { className: "arc-SiteHeaderItemGroup-titleIcon" },
53
+ React__default.createElement(BtIconChevronDown2Px_2, null)))) : (React__default.createElement("div", { className: "arc-SiteHeaderItemGroup-title" }, title)))) : null,
54
+ React__default.createElement("ul", { className: "arc-SiteHeaderItemGroup-items" },
55
+ children,
56
+ href && title ? (React__default.createElement("li", { className: "arc-SiteHeaderItem arc-SiteHeaderItem--viewAll" },
57
+ React__default.createElement("a", { className: "arc-SiteHeaderItem-link", onClick: handleLinkClick({
58
+ handler: onClick
59
+ }), href: href }, viewAllTitle || "View all ".concat(title.toLowerCase())))) : null))));
60
+ };
61
+
62
+ var ItemGroupRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
63
+ var children, titleElement, viewAllElement, title, href, viewAllTitle, props;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0: return [4 /*yield*/, hydrate(el.querySelector(".arc-SiteHeaderItemGroup-items"))];
67
+ case 1:
68
+ children = _a.sent();
69
+ titleElement = el.querySelector(".arc-SiteHeaderItemGroup-title");
70
+ viewAllElement = el.querySelector(".arc-SiteHeaderItem--viewAll");
71
+ title = "";
72
+ href = "";
73
+ viewAllTitle = "";
74
+ if (titleElement) {
75
+ title = titleElement.textContent || /* istanbul ignore next */ "";
76
+ href = titleElement.getAttribute("href") || /* istanbul ignore next */ "";
77
+ }
78
+ if (viewAllElement) {
79
+ viewAllTitle = viewAllElement.textContent || /* istanbul ignore next */ "";
80
+ }
81
+ props = {
82
+ children: children,
83
+ href: href,
84
+ title: title,
85
+ viewAllTitle: viewAllTitle
86
+ };
87
+ return [2 /*return*/, React__default.createElement(ItemGroup, __assign({}, props), children)];
88
+ }
89
+ });
90
+ }); });
91
+
92
+ var Column = function (_a) {
93
+ var children = _a.children, props = __rest(_a, ["children"]);
94
+ useEffect(function () {
95
+ React__default.Children.map(children, function (item) {
96
+ if (item && item.type !== ItemGroup) {
97
+ throw new Error("Illegal child passed to <SiteHeader.Column />. Ensure to only use <SiteHeader.ItemGroup />.");
98
+ }
99
+ });
100
+ }, [children]);
101
+ return (React__default.createElement("li", __assign({ className: "arc-SiteHeaderColumn" }, filterDataAttrs(props)),
102
+ React__default.createElement("ul", { className: "arc-SiteHeaderColumn-items" }, children)));
103
+ };
104
+
105
+ var BackButton = function (_a) {
106
+ var setOpen = _a.setOpen;
107
+ return (React__default.createElement("button", { className: "arc-SiteHeaderBackButton", onClick: function () {
108
+ setOpen(false);
109
+ } },
110
+ React__default.createElement("span", { className: "arc-SiteHeaderBackButton-icon" },
111
+ React__default.createElement(BtIconChevronLeft2Px_2, null)),
112
+ React__default.createElement("span", { className: "arc-SiteHeaderBackButton-text" }, "Back")));
113
+ };
114
+
115
+ var Panel = function (_a) {
116
+ var _b;
117
+ var children = _a.children, navItemRef = _a.navItemRef, open = _a.open, promo = _a.promo, setOpen = _a.setOpen, subNavItemRef = _a.subNavItemRef, _c = _a.subNavLink, subNavLink = _c === void 0 ? "" : _c, title = _a.title, viewAll = _a.viewAll, withSubNav = _a.withSubNav, props = __rest(_a, ["children", "navItemRef", "open", "promo", "setOpen", "subNavItemRef", "subNavLink", "title", "viewAll", "withSubNav"]);
118
+ var transparent = useContext(Context).transparent;
119
+ useEffect(function () {
120
+ // Where appropriate, close the Panel when clicking outside of it,
121
+ // by listening to clicks on the entire document and acting accordingly.
122
+ var handleClick = function (e) {
123
+ var _a, _b;
124
+ // Don't close the Panel…
125
+ if (
126
+ // The click is inside the current SubNavItem.
127
+ ((_a = subNavItemRef === null || subNavItemRef === void 0 ? void 0 : subNavItemRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) ||
128
+ // The click is inside the current NavItem
129
+ // and the Panel is not inside a SubNavItem.
130
+ // and the target is not a link
131
+ (((_b = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _b === void 0 ? void 0 : _b.contains(e.target)) &&
132
+ !subNavItemRef &&
133
+ !e.target.getAttribute("href")) ||
134
+ // The Panel is inside a SubNavItem
135
+ // and the click is not on a SubNavItem-link.
136
+ // This ensures that one SubNavItem Panel per NavItem always remains open.
137
+ (subNavItemRef &&
138
+ !e.target.classList.contains(subNavLink) &&
139
+ !e.target.classList.contains("".concat(subNavLink, "Title")) &&
140
+ !e.target.classList.contains("".concat(subNavLink, "SubTitle"))) ||
141
+ // Panel is inside a SubNavItem
142
+ // and the click is not inside the Panel's NavItem parent.
143
+ // This prevents SubNavItem Panels in sibling NavItems from being closed.
144
+ (subNavItemRef && !(navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current.contains(e.target)))) {
145
+ return;
146
+ }
147
+ // Close the panel.
148
+ setOpen(false);
149
+ };
150
+ document.addEventListener("click", handleClick);
151
+ return function () {
152
+ document.removeEventListener("click", handleClick);
153
+ };
154
+ }, [navItemRef, setOpen, subNavItemRef, subNavLink]);
155
+ useEffect(function () {
156
+ var handleKeydown = function (e) {
157
+ // Check the viewport width at time of press
158
+ var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(ArcBreakpointL, "px)")).matches;
159
+ if (e.key === "Escape" || e.keyCode === 27) {
160
+ if (isMinWidthArcBreakpointL && subNavItemRef) {
161
+ // Don't close Panels inside SubNavItems when viewport width is above
162
+ // the "desktop" breakpoint.
163
+ return false;
164
+ }
165
+ return setOpen(false);
166
+ }
167
+ };
168
+ window.addEventListener("keydown", handleKeydown);
169
+ return function () {
170
+ window.removeEventListener("keydown", handleKeydown);
171
+ };
172
+ }, [setOpen, subNavItemRef]);
173
+ return (React__default.createElement("div", __assign({ className: classNames((_b = {},
174
+ _b["arc-SiteHeaderPanel"] = true,
175
+ _b["arc-SiteHeaderPanel--open"] = open,
176
+ _b["arc-SiteHeaderPanel--transparent"] = transparent,
177
+ _b["arc-SiteHeaderPanel--withSubNav"] = withSubNav,
178
+ _b)) }, filterDataAttrs(props)),
179
+ React__default.createElement(Surface, { background: "white", growVertically: true },
180
+ React__default.createElement(BackButton, { setOpen: setOpen }),
181
+ React__default.createElement("div", { className: "arc-SiteHeaderPanel-inner" },
182
+ React__default.createElement("div", { className: "arc-SiteHeaderPanel-main" },
183
+ React__default.createElement("div", { className: "arc-SiteHeaderPanel-mainInner" },
184
+ withSubNav && (React__default.createElement("div", { className: "arc-SiteHeaderPanel-subNavArea" })),
185
+ title && (React__default.createElement("div", { className: "arc-SiteHeaderPanel-title" }, title)),
186
+ React__default.createElement("ul", { className: "arc-SiteHeaderPanel-items" }, children)),
187
+ viewAll),
188
+ promo && React__default.createElement("div", { className: "arc-SiteHeaderPanel-promo" }, promo)))));
189
+ };
190
+ var ViewAll = function (_a) {
191
+ var href = _a.href, title = _a.title, onClick = _a.onClick;
192
+ return (React__default.createElement("a", { onClick: handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderPanel-viewAll", href: href },
193
+ title,
194
+ React__default.createElement("span", { className: "arc-SiteHeaderPanel-viewAllIcon" },
195
+ React__default.createElement(BtIconChevronRight2Px_2, null))));
196
+ };
197
+ ViewAll.displayName = "Panel.ViewAll";
198
+ Panel.ViewAll = ViewAll;
199
+
200
+ var NavItem = function (_a) {
201
+ var _b, _c;
202
+ var children = _a.children, href = _a.href, isCurrent = _a.isCurrent, onClick = _a.onClick, promo = _a.promo, title = _a.title, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "href", "isCurrent", "onClick", "promo", "title", "viewAllTitle"]);
203
+ var navItem = useRef();
204
+ var _d = useState(false), panelOpen = _d[0], setPanelOpen = _d[1];
205
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
206
+ useEffect(function () {
207
+ React__default.Children.map(children, function (item) {
208
+ if (item &&
209
+ item.type !== ItemGroup &&
210
+ item.type !== Column &&
211
+ item.type !== Fragment) {
212
+ throw new Error("Illegal child passed to <SiteHeader.NavItem />. Ensure to only use <SiteHeader.ItemGroup /> or <SiteHeader.Column />.");
213
+ }
214
+ });
215
+ }, [children]);
216
+ return (React__default.createElement("li", __assign({ className: classNames((_b = {},
217
+ _b["arc-SiteHeaderNavItem"] = true,
218
+ _b["arc-SiteHeaderNavItem--linkSelected"] = (children && panelOpen) || (!children && href && isCurrent),
219
+ _b)), ref: navItem }, filterDataAttrs(props)), !children ? (href ? (React__default.createElement("a", { onClick: handleLinkClick({
220
+ handler: onClick
221
+ }), className: "arc-SiteHeaderNavItem-link", href: href }, title)) : null) : (React__default.createElement(React__default.Fragment, null,
222
+ React__default.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
223
+ _c["arc-SiteHeaderNavItem-link"] = true,
224
+ _c["arc-SiteHeaderNavItem-link--itemHasChildren"] = true,
225
+ _c)), onClick: function (e) {
226
+ e.preventDefault();
227
+ setPanelOpen(!panelOpen);
228
+ } },
229
+ React__default.createElement("span", null, title),
230
+ React__default.createElement("span", { className: "arc-SiteHeaderNavItem-linkIcon" }, isMinWidthArcBreakpointL ? (React__default.createElement(BtIconChevronDown2Px_2, null)) : (React__default.createElement(BtIconChevronRight2Px_2, null)))),
231
+ React__default.createElement(Panel, { navItemRef: navItem, open: panelOpen, promo: promo, setOpen: setPanelOpen, viewAll: href ? (React__default.createElement(Panel.ViewAll, { href: href, onClick: onClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined) }, children)))));
232
+ };
233
+
234
+ var NavItemRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
235
+ var children, promo, link, viewAll, href, title, props;
236
+ return __generator(this, function (_a) {
237
+ switch (_a.label) {
238
+ case 0:
239
+ children = el.querySelector(".arc-SiteHeaderPanel-items");
240
+ promo = el.querySelector(".arc-SiteHeaderPanel-promo");
241
+ if (!children) return [3 /*break*/, 2];
242
+ return [4 /*yield*/, hydrate(children)];
243
+ case 1:
244
+ children = _a.sent();
245
+ _a.label = 2;
246
+ case 2:
247
+ if (!promo) return [3 /*break*/, 4];
248
+ return [4 /*yield*/, hydrate(promo)];
249
+ case 3:
250
+ promo = _a.sent();
251
+ _a.label = 4;
252
+ case 4:
253
+ link = el.querySelector(".arc-SiteHeaderNavItem-link");
254
+ viewAll = el.querySelector(".arc-SiteHeaderPanel-viewAll");
255
+ href = "";
256
+ title = "";
257
+ if (link) {
258
+ title = link.textContent || /* istanbul ignore next */ "";
259
+ href = link.getAttribute("href") || /* istanbul ignore next */ "";
260
+ }
261
+ if (viewAll) {
262
+ href = viewAll.getAttribute("href") || /* istanbul ignore next */ "";
263
+ }
264
+ props = {
265
+ href: href,
266
+ isCurrent: el.classList.contains("arc-SiteHeaderNavItem--linkSelected") || undefined,
267
+ promo: promo || undefined,
268
+ title: title,
269
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
270
+ };
271
+ return [2 /*return*/, React__default.createElement(NavItem, __assign({}, props), children)];
272
+ }
273
+ });
274
+ }); });
275
+
276
+ var SubNavItem = function (_a) {
277
+ var _b, _c;
278
+ var children = _a.children, _d = _a.isDefaultItem, isDefaultItem = _d === void 0 ? false : _d, href = _a.href, onClick = _a.onClick, offsetXL = _a.offsetXL, promo = _a.promo, subTitle = _a.subTitle, title = _a.title, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "isDefaultItem", "href", "onClick", "offsetXL", "promo", "subTitle", "title", "viewAllTitle"]);
279
+ var navItem = useContext(Context$1).navItem;
280
+ var subNavItem = useRef();
281
+ var _e = useState(false), panelOpen = _e[0], setPanelOpen = _e[1];
282
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
283
+ useEffect(function () {
284
+ React__default.Children.map(children, function (item) {
285
+ if (item &&
286
+ item.type !== ItemGroup &&
287
+ item.type !== Column &&
288
+ item.type !== Fragment) {
289
+ throw new Error("Illegal child passed to <SiteHeader.SubNavItem />. Ensure to only use <SiteHeader.ItemGroup /> or <SiteHeader.Column />.");
290
+ }
291
+ });
292
+ }, [children]);
293
+ useEffect(function () {
294
+ if (isDefaultItem && isMinWidthArcBreakpointL) {
295
+ setPanelOpen(true);
296
+ }
297
+ else {
298
+ setPanelOpen(false);
299
+ }
300
+ }, [isDefaultItem, isMinWidthArcBreakpointL]);
301
+ var linkTitle = (React__default.createElement(React__default.Fragment, null,
302
+ React__default.createElement("span", { className: "arc-SiteHeaderSubNavItem-linkTitle" }, title),
303
+ subTitle ? (React__default.createElement("span", { className: "arc-SiteHeaderSubNavItem-linkSubTitle" }, subTitle)) : null));
304
+ return (React__default.createElement("li", __assign({ className: classNames((_b = {},
305
+ _b["arc-SiteHeaderSubNavItem"] = true,
306
+ _b["arc-SiteHeaderSubNavItem--linkSelected"] = children && panelOpen,
307
+ _b[suffixModifier("arc-SiteHeaderSubNavItem--offsetXL", offsetXL || "")] = offsetXL,
308
+ _b)), ref: subNavItem }, filterDataAttrs(props), { "data-default-item": isDefaultItem || null }), !children ? (href ? (React__default.createElement("a", { className: "arc-SiteHeaderSubNavItem-link", onClick: handleLinkClick({ handler: onClick }), href: href }, linkTitle)) : null) : (React__default.createElement(React__default.Fragment, null,
309
+ React__default.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
310
+ _c["arc-SiteHeaderSubNavItem-link"] = true,
311
+ _c["arc-SiteHeaderSubNavItem-link--itemHasChildren"] = children,
312
+ _c)), onClick: function () {
313
+ setPanelOpen(true);
314
+ } },
315
+ linkTitle,
316
+ children && (React__default.createElement("span", { className: "arc-SiteHeaderSubNavItem-linkIcon" },
317
+ React__default.createElement(BtIconChevronRight2Px_2, null)))),
318
+ React__default.createElement(Panel, { navItemRef: navItem, open: panelOpen, setOpen: setPanelOpen, subNavItemRef: subNavItem, subNavLink: "arc-SiteHeaderSubNavItem-link", promo: promo, title: React__default.createElement("span", null,
319
+ title,
320
+ subTitle && (React__default.createElement(Text, { size: "xs", tone: "supporting" }, subTitle))), viewAll: href ? (React__default.createElement(Panel.ViewAll, { href: href, onClick: onClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined) }, children)))));
321
+ };
322
+
323
+ var SubNavItemRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
324
+ var children, promo, link, linkTitle, viewAll, href, title, offsetXL, props;
325
+ var _a;
326
+ return __generator(this, function (_b) {
327
+ switch (_b.label) {
328
+ case 0:
329
+ children = el.querySelector(".arc-SiteHeaderPanel-items");
330
+ promo = el.querySelector(".arc-SiteHeaderPanel-promo");
331
+ if (!children) return [3 /*break*/, 2];
332
+ return [4 /*yield*/, hydrate(children)];
333
+ case 1:
334
+ children = _b.sent();
335
+ _b.label = 2;
336
+ case 2:
337
+ if (!promo) return [3 /*break*/, 4];
338
+ return [4 /*yield*/, hydrate(promo)];
339
+ case 3:
340
+ promo = _b.sent();
341
+ _b.label = 4;
342
+ case 4:
343
+ link = el.querySelector(".arc-SiteHeaderSubNavItem-link");
344
+ linkTitle = el.querySelector(".arc-SiteHeaderSubNavItem-linkTitle");
345
+ viewAll = el.querySelector(".arc-SiteHeaderPanel-viewAll");
346
+ href = "";
347
+ title = "";
348
+ if (link) {
349
+ href = link.getAttribute("href") || /* istanbul ignore next */ "";
350
+ }
351
+ if (linkTitle) {
352
+ title = linkTitle.textContent || /* istanbul ignore next */ "";
353
+ }
354
+ if (viewAll) {
355
+ href = viewAll.getAttribute("href") || /* istanbul ignore next */ "";
356
+ }
357
+ offsetXL = undefined;
358
+ if (el.classList.contains("arc-SiteHeaderSubNavItem--offsetXL24")) {
359
+ offsetXL = "24";
360
+ }
361
+ if (el.classList.contains("arc-SiteHeaderSubNavItem--offsetXL48")) {
362
+ offsetXL = "48";
363
+ }
364
+ props = {
365
+ href: href,
366
+ isDefaultItem: Boolean(el.dataset.defaultItem),
367
+ offsetXL: offsetXL,
368
+ promo: promo || undefined,
369
+ subTitle: ((_a = el.querySelector(".arc-SiteHeaderSubNavItem-linkSubTitle")) === null || _a === void 0 ? void 0 : _a.textContent) ||
370
+ undefined,
371
+ title: title,
372
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
373
+ };
374
+ return [2 /*return*/, React__default.createElement(SubNavItem, __assign({}, props), children)];
375
+ }
376
+ });
377
+ }); });
378
+
379
+ var defaultContext$1 = { navItem: null, subTitle: null };
380
+ var Context$1 = createContext(defaultContext$1);
381
+ var Provider$1 = Context$1.Provider;
382
+ var NavItemWithSubNav = function (_a) {
383
+ var _b, _c;
384
+ var href = _a.href, slot1 = _a.slot1, slot2 = _a.slot2, slot3 = _a.slot3, _d = _a.subTitle, subTitle = _d === void 0 ? null : _d, title = _a.title, onViewAllClick = _a.onViewAllClick, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["href", "slot1", "slot2", "slot3", "subTitle", "title", "onViewAllClick", "viewAllTitle"]);
385
+ var navItem = useRef();
386
+ var _e = useState(true), defaultItem = _e[0], setDefaultItem = _e[1];
387
+ var _f = useState(false), panelOpen = _f[0], setPanelOpen = _f[1];
388
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
389
+ useEffect(function () {
390
+ React__default.Children.map(slot1, function (item) {
391
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
392
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot1` prop. Ensure to only use <SiteHeader.SubNavItem />.");
393
+ }
394
+ if (item.props.isDefaultItem) {
395
+ setDefaultItem(false);
396
+ }
397
+ });
398
+ React__default.Children.map(slot2, function (item) {
399
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
400
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot2` prop. Ensure to only use <SiteHeader.SubNavItem />.");
401
+ }
402
+ if (item.props.isDefaultItem) {
403
+ setDefaultItem(false);
404
+ }
405
+ });
406
+ React__default.Children.map(slot3, function (item) {
407
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
408
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot3` prop. Ensure to only use <SiteHeader.SubNavItem />.");
409
+ }
410
+ if (item.props.isDefaultItem) {
411
+ setDefaultItem(false);
412
+ }
413
+ });
414
+ }, [slot1, slot2, slot3]);
415
+ return (React__default.createElement(Provider$1, { value: { navItem: navItem, subTitle: subTitle } },
416
+ React__default.createElement("li", __assign({ className: classNames((_b = {},
417
+ _b["arc-SiteHeaderNavItemWithSubNav"] = true,
418
+ _b["arc-SiteHeaderNavItem--linkSelected"] = panelOpen,
419
+ _b)), ref: navItem }, filterDataAttrs(props)),
420
+ React__default.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
421
+ _c["arc-SiteHeaderNavItem-link"] = true,
422
+ _c["arc-SiteHeaderNavItem-link--itemHasChildren"] = true,
423
+ _c)), onClick: function (e) {
424
+ e.preventDefault();
425
+ setPanelOpen(!panelOpen);
426
+ } },
427
+ title,
428
+ React__default.createElement("span", { className: "arc-SiteHeaderNavItem-linkIcon" }, isMinWidthArcBreakpointL ? (React__default.createElement(BtIconChevronDown2Px_2, null)) : (React__default.createElement(BtIconChevronRight2Px_2, null)))),
429
+ React__default.createElement(Panel, { navItemRef: navItem, open: panelOpen, setOpen: setPanelOpen, title: subTitle, viewAll: href ? (React__default.createElement(Panel.ViewAll, { href: href, onClick: onViewAllClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined), withSubNav: true },
430
+ defaultItem
431
+ ? React__default.cloneElement(slot1, { isDefaultItem: defaultItem })
432
+ : slot1,
433
+ slot2,
434
+ slot3))));
435
+ };
436
+
437
+ function wrap(el, wrapper) {
438
+ el.parentNode.insertBefore(wrapper, el);
439
+ wrapper.appendChild(el);
440
+ }
441
+ var NavItemWithSubNavRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
442
+ var subNavItem1, subNavItem2, subNavItem3, div1, div2, slot1, slot2, slot3, div3, link, subTitle, viewAllNodes, viewAll, title, props;
443
+ return __generator(this, function (_a) {
444
+ switch (_a.label) {
445
+ case 0:
446
+ subNavItem1 = el.querySelector(".arc-SiteHeaderSubNavItem:first-child");
447
+ subNavItem2 = el.querySelector(".arc-SiteHeaderSubNavItem:nth-child(2)");
448
+ subNavItem3 = el.querySelector(".arc-SiteHeaderSubNavItem:nth-child(3)");
449
+ div1 = document.createElement("div");
450
+ div1.className = "slot1";
451
+ div2 = document.createElement("div");
452
+ div2.className = "slot2";
453
+ wrap(subNavItem1, div1);
454
+ wrap(subNavItem2, div2);
455
+ return [4 /*yield*/, hydrate(el.querySelector(".slot1"))];
456
+ case 1:
457
+ slot1 = _a.sent();
458
+ return [4 /*yield*/, hydrate(el.querySelector(".slot2"))];
459
+ case 2:
460
+ slot2 = _a.sent();
461
+ if (!subNavItem3) return [3 /*break*/, 4];
462
+ div3 = document.createElement("div");
463
+ div3.className = "slot3";
464
+ wrap(subNavItem3, div3);
465
+ return [4 /*yield*/, hydrate(el.querySelector(".slot3"))];
466
+ case 3:
467
+ slot3 = _a.sent();
468
+ _a.label = 4;
469
+ case 4:
470
+ link = el.querySelector(".arc-SiteHeaderNavItem-link");
471
+ subTitle = el.querySelector(".arc-SiteHeaderPanel-title");
472
+ viewAllNodes = el.querySelectorAll(".arc-SiteHeaderPanel-viewAll");
473
+ viewAll = viewAllNodes[viewAllNodes.length - 1];
474
+ title = "";
475
+ if (link) {
476
+ title = link.textContent || /* istanbul ignore next */ "";
477
+ }
478
+ props = {
479
+ href: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.getAttribute("href")) || undefined,
480
+ slot1: slot1 || /* istanbul ignore next */ undefined,
481
+ slot2: slot2 || /* istanbul ignore next */ undefined,
482
+ slot3: slot3 || undefined,
483
+ subTitle: (subTitle === null || subTitle === void 0 ? void 0 : subTitle.textContent) || undefined,
484
+ title: title,
485
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
486
+ };
487
+ return [2 /*return*/, React__default.createElement(NavItemWithSubNav, __assign({}, props))];
488
+ }
489
+ });
490
+ }); });
491
+
492
+ var NodeItem = function (_a) {
493
+ var children = _a.children, props = __rest(_a, ["children"]);
494
+ return (React__default.createElement(React__default.Fragment, __assign({}, filterDataAttrs(props)), children));
495
+ };
496
+
497
+ var MenuButton = function (_a) {
498
+ var _b;
499
+ var menuOpen = _a.menuOpen, setMenuOpen = _a.setMenuOpen;
500
+ return (React__default.createElement("button", { "aria-expanded": menuOpen, className: classNames((_b = {},
501
+ _b["arc-MenuButton"] = true,
502
+ _b["arc-MenuButton--menuOpen"] = menuOpen,
503
+ _b)), onClick: function () {
504
+ setMenuOpen(!menuOpen);
505
+ }, type: "button" },
506
+ React__default.createElement("span", { className: "arc-MenuButton-box" },
507
+ React__default.createElement("span", { className: "arc-MenuButton-inner" }),
508
+ React__default.createElement("span", { className: "arc-MenuButton-text" }, "Menu"))));
509
+ };
510
+
511
+ var defaultContext = { transparent: false };
512
+ var Context = createContext(defaultContext);
513
+ var Provider = Context.Provider;
514
+ /**
515
+ * Use `SiteHeader` to display brand logo and navigation at the top of a page.
516
+ */
517
+ var SiteHeader = function (_a) {
518
+ var _b;
519
+ var children = _a.children, basket = _a.basket, _c = _a.hasLogin, hasLogin = _c === void 0 ? true : _c, _d = _a.isTransparent, isTransparent = _d === void 0 ? false : _d, _e = _a.loginHref, loginHref = _e === void 0 ? "/login" : _e, logoOnClick = _a.logoOnClick, loginOnClick = _a.loginOnClick, _f = _a.loginTitle, loginTitle = _f === void 0 ? "Log in / Register" : _f, _g = _a.logoHref, logoHref = _g === void 0 ? "/" : _g, _h = _a.logoLabel, logoLabel = _h === void 0 ? "Home" : _h, search = _a.search, subBrand = _a.subBrand, props = __rest(_a, ["children", "basket", "hasLogin", "isTransparent", "loginHref", "logoOnClick", "loginOnClick", "loginTitle", "logoHref", "logoLabel", "search", "subBrand"]);
520
+ var _j = useState(false), hasClientSideJavaScript = _j[0], setHasClientSideJavaScript = _j[1];
521
+ var _k = useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
522
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
523
+ useEffect(function () {
524
+ React__default.Children.map(children, function (item) {
525
+ if (item &&
526
+ item.type !== NodeItem &&
527
+ item.type !== NavItem &&
528
+ item.type !== NavItemWithSubNav &&
529
+ item.type !== Fragment) {
530
+ throw new Error("Illegal child passed to <SiteHeader />. Ensure to only use <SiteHeader.NavItem /> or <SiteHeader.NavItemWithSubNav />");
531
+ }
532
+ });
533
+ }, [children]);
534
+ useEffect(function () {
535
+ if (!isMinWidthArcBreakpointL && menuOpen) {
536
+ document.body.classList.add("arc-body--overflowHidden");
537
+ }
538
+ else {
539
+ document.body.classList.remove("arc-body--overflowHidden");
540
+ }
541
+ return function () {
542
+ document.body.classList.remove("arc-body--overflowHidden");
543
+ };
544
+ }, [isMinWidthArcBreakpointL, menuOpen]);
545
+ useEffect(function () {
546
+ var handleKeydown = function (e) {
547
+ if (e.key === "Escape" || e.keyCode === 27) {
548
+ setMenuOpen(false);
549
+ }
550
+ };
551
+ window.addEventListener("keydown", handleKeydown);
552
+ return function () {
553
+ window.removeEventListener("keydown", handleKeydown);
554
+ };
555
+ }, [setMenuOpen]);
556
+ useEffect(function () {
557
+ var handleClick = function (e) {
558
+ if (e.target.getAttribute("href")) {
559
+ setMenuOpen(false);
560
+ }
561
+ };
562
+ document.addEventListener("click", handleClick);
563
+ return function () {
564
+ document.removeEventListener("click", handleClick);
565
+ };
566
+ }, [setMenuOpen]);
567
+ useEffect(function () {
568
+ // useEffect does not run in ReactDomServer renders
569
+ setHasClientSideJavaScript(true);
570
+ }, [setHasClientSideJavaScript]);
571
+ return (React__default.createElement(Provider, { value: { transparent: isTransparent } },
572
+ React__default.createElement("div", __assign({ className: classNames((_b = {},
573
+ _b["arc-SiteHeader"] = true,
574
+ _b["arc-SiteHeader--menuOpen"] = menuOpen,
575
+ _b["arc-no-js"] = !hasClientSideJavaScript,
576
+ _b)) }, filterDataAttrs(props), { "data-transparent": isTransparent || null }),
577
+ React__default.createElement(Surface, { background: !isTransparent || (menuOpen && !isMinWidthArcBreakpointL)
578
+ ? "brand-flat"
579
+ : undefined },
580
+ React__default.createElement("div", { className: "arc-SiteHeader-inner" },
581
+ React__default.createElement("a", { className: "arc-SiteHeader-brand", onClick: handleLinkClick({
582
+ handler: logoOnClick
583
+ }), href: logoHref },
584
+ React__default.createElement(BrandLogo, { label: logoLabel, subBrand: subBrand })),
585
+ children && (React__default.createElement("nav", { className: "arc-SiteHeader-nav" },
586
+ React__default.createElement("div", { className: "arc-SiteHeader-menuButton" },
587
+ React__default.createElement(MenuButton, { menuOpen: menuOpen, setMenuOpen: setMenuOpen })),
588
+ React__default.createElement("div", { className: "arc-SiteHeader-main" },
589
+ React__default.createElement("ul", { className: "arc-SiteHeader-navItems" }, children),
590
+ hasLogin && (React__default.createElement(React__default.Fragment, null, loginOnClick ? (React__default.createElement("div", { className: "arc-SiteHeader-loginButton" },
591
+ React__default.createElement(Button, { onClick: loginOnClick, isFullWidth: true, label: loginTitle }))) : (React__default.createElement("div", { className: "arc-SiteHeader-loginButton" },
592
+ React__default.createElement(Button, { href: loginHref, isFullWidth: true, label: loginTitle })))))))),
593
+ (basket || hasLogin || search) && (React__default.createElement("div", { className: "arc-SiteHeader-secondary" },
594
+ search ? (React__default.createElement("div", { className: "arc-SiteHeader-search" }, search)) : null,
595
+ basket ? (React__default.createElement("div", { className: "arc-SiteHeader-basket" }, basket)) : null,
596
+ hasLogin && (React__default.createElement(React__default.Fragment, null, loginOnClick ? (React__default.createElement("div", { className: "arc-SiteHeader-loginLink arc-SiteHeader-loginLink--function", onClick: loginOnClick }, loginTitle)) : (React__default.createElement("a", { className: "arc-SiteHeader-loginLink", href: loginHref }, loginTitle)))))))))));
597
+ };
598
+ Column.displayName = "SiteHeader.Column";
599
+ Item.displayName = "SiteHeader.Item";
600
+ ItemGroup.displayName = "SiteHeader.ItemGroup";
601
+ NavItem.displayName = "SiteHeader.NavItem";
602
+ NodeItem.displayName = "SiteHeader.NodeItem";
603
+ NavItemWithSubNav.displayName = "SiteHeader.NavItemWithSubNav";
604
+ SubNavItem.displayName = "SiteHeader.SubNavItem";
605
+ SiteHeader.Column = Column;
606
+ SiteHeader.Item = Item;
607
+ SiteHeader.ItemGroup = ItemGroup;
608
+ SiteHeader.NavItem = NavItem;
609
+ SiteHeader.NodeItem = NodeItem;
610
+ SiteHeader.NavItemWithSubNav = NavItemWithSubNav;
611
+ SiteHeader.SubNavItem = SubNavItem;
612
+
613
+ var SiteHeaderRehydrator = function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
614
+ var children, basket, search, brand, login, logoHref, logoLabel, props;
615
+ return __generator(this, function (_a) {
616
+ switch (_a.label) {
617
+ case 0:
618
+ children = el.querySelector(".arc-SiteHeader-navItems");
619
+ basket = el.querySelector(".arc-SiteHeader-basket");
620
+ search = el.querySelector(".arc-SiteHeader-search");
621
+ if (!children) return [3 /*break*/, 2];
622
+ return [4 /*yield*/, hydrate(children)];
623
+ case 1:
624
+ children = _a.sent();
625
+ _a.label = 2;
626
+ case 2:
627
+ if (!basket) return [3 /*break*/, 4];
628
+ return [4 /*yield*/, hydrate(basket)];
629
+ case 3:
630
+ basket = _a.sent();
631
+ _a.label = 4;
632
+ case 4:
633
+ if (!search) return [3 /*break*/, 6];
634
+ return [4 /*yield*/, hydrate(search)];
635
+ case 5:
636
+ search = _a.sent();
637
+ _a.label = 6;
638
+ case 6:
639
+ brand = el.querySelector(".arc-SiteHeader-brand");
640
+ login = el.querySelector(".arc-SiteHeader-loginLink");
641
+ logoHref = "";
642
+ logoLabel = "";
643
+ if (brand) {
644
+ logoHref = brand.getAttribute("href") || /* istanbul ignore next */ "";
645
+ logoLabel = brand.textContent || /* istanbul ignore next */ "";
646
+ }
647
+ props = {
648
+ basket: basket,
649
+ hasLogin: Boolean(login),
650
+ isTransparent: Boolean(el.dataset.transparent),
651
+ loginHref: (login === null || login === void 0 ? void 0 : login.getAttribute("href")) || undefined,
652
+ loginTitle: (login === null || login === void 0 ? void 0 : login.textContent) || undefined,
653
+ logoHref: logoHref,
654
+ logoLabel: logoLabel,
655
+ search: search
656
+ };
657
+ return [2 /*return*/, React__default.createElement(SiteHeader, __assign({}, props), children)];
658
+ }
659
+ });
660
+ }); };
661
+ SiteHeaderRehydrator.ItemGroupRehydrator = ItemGroupRehydrator;
662
+ SiteHeaderRehydrator.NavItemRehydrator = NavItemRehydrator;
663
+ SiteHeaderRehydrator.NavItemWithSubNavRehydrator = NavItemWithSubNavRehydrator;
664
+ SiteHeaderRehydrator.SubNavItemRehydrator = SubNavItemRehydrator;
665
+
666
+ export { SiteHeader as S, SiteHeaderRehydrator as a };