@reykjavik/hanna-react 0.10.53

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 (357) hide show
  1. package/CHANGELOG.md +795 -0
  2. package/README.md +69 -0
  3. package/lib/AccordionList.cjs +91 -0
  4. package/lib/AccordionList.mjs +69 -0
  5. package/lib/ActionCards.cjs +57 -0
  6. package/lib/ActionCards.mjs +35 -0
  7. package/lib/Alert.cjs +159 -0
  8. package/lib/Alert.mjs +139 -0
  9. package/lib/ArticleCarousel/_ArticleCarouselCard.cjs +75 -0
  10. package/lib/ArticleCarousel/_ArticleCarouselCard.mjs +51 -0
  11. package/lib/ArticleCarousel.cjs +43 -0
  12. package/lib/ArticleCarousel.mjs +21 -0
  13. package/lib/ArticleMeta.cjs +46 -0
  14. package/lib/ArticleMeta.mjs +22 -0
  15. package/lib/Attention.cjs +33 -0
  16. package/lib/Attention.mjs +9 -0
  17. package/lib/BasicTable.cjs +72 -0
  18. package/lib/BasicTable.mjs +50 -0
  19. package/lib/Bling.cjs +76 -0
  20. package/lib/Bling.mjs +52 -0
  21. package/lib/BlockBreak.cjs +32 -0
  22. package/lib/BlockBreak.mjs +8 -0
  23. package/lib/BlockQuote.cjs +47 -0
  24. package/lib/BlockQuote.mjs +25 -0
  25. package/lib/BreadCrumbs.cjs +67 -0
  26. package/lib/BreadCrumbs.mjs +43 -0
  27. package/lib/ButtonBack.cjs +47 -0
  28. package/lib/ButtonBack.mjs +25 -0
  29. package/lib/ButtonBar.cjs +45 -0
  30. package/lib/ButtonBar.mjs +18 -0
  31. package/lib/ButtonPrimary.cjs +47 -0
  32. package/lib/ButtonPrimary.mjs +25 -0
  33. package/lib/ButtonSecondary.cjs +47 -0
  34. package/lib/ButtonSecondary.mjs +25 -0
  35. package/lib/ButtonTertiary.cjs +64 -0
  36. package/lib/ButtonTertiary.mjs +42 -0
  37. package/lib/Carousel.cjs +52 -0
  38. package/lib/Carousel.mjs +30 -0
  39. package/lib/CarouselStepper.cjs +51 -0
  40. package/lib/CarouselStepper.mjs +29 -0
  41. package/lib/CenterColumn.cjs +40 -0
  42. package/lib/CenterColumn.mjs +16 -0
  43. package/lib/Checkbox.cjs +52 -0
  44. package/lib/Checkbox.mjs +30 -0
  45. package/lib/CheckboxButtonsGroup.cjs +65 -0
  46. package/lib/CheckboxButtonsGroup.mjs +43 -0
  47. package/lib/CheckboxGroup.cjs +55 -0
  48. package/lib/CheckboxGroup.mjs +33 -0
  49. package/lib/CityBlock.cjs +49 -0
  50. package/lib/CityBlock.mjs +25 -0
  51. package/lib/ContactBubble.cjs +200 -0
  52. package/lib/ContactBubble.mjs +173 -0
  53. package/lib/ContentArticle.cjs +63 -0
  54. package/lib/ContentArticle.mjs +41 -0
  55. package/lib/ContentImage.cjs +58 -0
  56. package/lib/ContentImage.mjs +36 -0
  57. package/lib/Datepicker.cjs +164 -0
  58. package/lib/Datepicker.mjs +142 -0
  59. package/lib/ExtraLinks.cjs +96 -0
  60. package/lib/ExtraLinks.mjs +74 -0
  61. package/lib/FeatureList.cjs +53 -0
  62. package/lib/FeatureList.mjs +29 -0
  63. package/lib/FieldGroup.cjs +40 -0
  64. package/lib/FieldGroup.mjs +16 -0
  65. package/lib/FileInput.cjs +256 -0
  66. package/lib/FileInput.mjs +234 -0
  67. package/lib/Foonote.cjs +30 -0
  68. package/lib/Foonote.mjs +6 -0
  69. package/lib/FooterBadges.cjs +49 -0
  70. package/lib/FooterBadges.mjs +25 -0
  71. package/lib/FooterInfo.cjs +47 -0
  72. package/lib/FooterInfo.mjs +23 -0
  73. package/lib/Footnote.cjs +32 -0
  74. package/lib/Footnote.mjs +8 -0
  75. package/lib/Form.cjs +56 -0
  76. package/lib/Form.mjs +34 -0
  77. package/lib/FormField.cjs +153 -0
  78. package/lib/FormField.mjs +131 -0
  79. package/lib/Gallery/_GalleryItem.cjs +83 -0
  80. package/lib/Gallery/_GalleryItem.mjs +61 -0
  81. package/lib/Gallery/_GalleryModal.cjs +104 -0
  82. package/lib/Gallery/_GalleryModal.mjs +82 -0
  83. package/lib/Gallery/_GalleryModalContext.cjs +30 -0
  84. package/lib/Gallery/_GalleryModalContext.mjs +6 -0
  85. package/lib/Gallery/_GalleryModalItem.cjs +59 -0
  86. package/lib/Gallery/_GalleryModalItem.mjs +36 -0
  87. package/lib/Gallery.cjs +79 -0
  88. package/lib/Gallery.mjs +57 -0
  89. package/lib/GridBlocks.cjs +81 -0
  90. package/lib/GridBlocks.mjs +59 -0
  91. package/lib/Heading.cjs +45 -0
  92. package/lib/Heading.mjs +21 -0
  93. package/lib/HeroBlock.cjs +74 -0
  94. package/lib/HeroBlock.mjs +52 -0
  95. package/lib/IframeBlock.cjs +48 -0
  96. package/lib/IframeBlock.mjs +24 -0
  97. package/lib/Illustration.cjs +51 -0
  98. package/lib/Illustration.mjs +31 -0
  99. package/lib/ImageCards.cjs +72 -0
  100. package/lib/ImageCards.mjs +52 -0
  101. package/lib/InfoBlock.cjs +51 -0
  102. package/lib/InfoBlock.mjs +27 -0
  103. package/lib/InfoHero.cjs +150 -0
  104. package/lib/InfoHero.mjs +128 -0
  105. package/lib/IslandBlock.cjs +63 -0
  106. package/lib/IslandBlock.mjs +41 -0
  107. package/lib/IslandPageBlock.cjs +49 -0
  108. package/lib/IslandPageBlock.mjs +25 -0
  109. package/lib/LabeledTextBlock.cjs +60 -0
  110. package/lib/LabeledTextBlock.mjs +38 -0
  111. package/lib/Layout.cjs +113 -0
  112. package/lib/Layout.mjs +87 -0
  113. package/lib/MainMenu/_Auxiliary.cjs +54 -0
  114. package/lib/MainMenu/_Auxiliary.mjs +28 -0
  115. package/lib/MainMenu/_PrimaryPanel.cjs +74 -0
  116. package/lib/MainMenu/_PrimaryPanel.mjs +48 -0
  117. package/lib/MainMenu.cjs +209 -0
  118. package/lib/MainMenu.mjs +187 -0
  119. package/lib/MiniMetrics.cjs +56 -0
  120. package/lib/MiniMetrics.mjs +34 -0
  121. package/lib/Modal.cjs +70 -0
  122. package/lib/Modal.mjs +48 -0
  123. package/lib/NameCard.cjs +115 -0
  124. package/lib/NameCard.mjs +91 -0
  125. package/lib/NameCards.cjs +52 -0
  126. package/lib/NameCards.mjs +30 -0
  127. package/lib/NewsHero.cjs +136 -0
  128. package/lib/NewsHero.mjs +114 -0
  129. package/lib/PageFilter.cjs +48 -0
  130. package/lib/PageFilter.mjs +24 -0
  131. package/lib/PageHeading.cjs +42 -0
  132. package/lib/PageHeading.mjs +18 -0
  133. package/lib/ProcessOverview.cjs +52 -0
  134. package/lib/ProcessOverview.mjs +28 -0
  135. package/lib/PullQuote.cjs +47 -0
  136. package/lib/PullQuote.mjs +25 -0
  137. package/lib/RadioButtonsGroup.cjs +64 -0
  138. package/lib/RadioButtonsGroup.mjs +42 -0
  139. package/lib/RadioGroup.cjs +58 -0
  140. package/lib/RadioGroup.mjs +36 -0
  141. package/lib/RelatedLinks.cjs +61 -0
  142. package/lib/RelatedLinks.mjs +37 -0
  143. package/lib/RowBlock.cjs +39 -0
  144. package/lib/RowBlock.mjs +15 -0
  145. package/lib/RowBlockColumn.cjs +40 -0
  146. package/lib/RowBlockColumn.mjs +16 -0
  147. package/lib/SearchInput.cjs +136 -0
  148. package/lib/SearchInput.mjs +114 -0
  149. package/lib/SearchResults/_SearchResultsItem.cjs +54 -0
  150. package/lib/SearchResults/_SearchResultsItem.mjs +30 -0
  151. package/lib/SearchResults.cjs +172 -0
  152. package/lib/SearchResults.mjs +150 -0
  153. package/lib/SeenEffect.cjs +66 -0
  154. package/lib/SeenEffect.mjs +44 -0
  155. package/lib/Selectbox.cjs +144 -0
  156. package/lib/Selectbox.mjs +122 -0
  157. package/lib/ShareButtons.cjs +101 -0
  158. package/lib/ShareButtons.mjs +83 -0
  159. package/lib/Sharpie.cjs +51 -0
  160. package/lib/Sharpie.mjs +27 -0
  161. package/lib/SiteSearchAutocomplete.cjs +150 -0
  162. package/lib/SiteSearchAutocomplete.mjs +126 -0
  163. package/lib/SiteSearchCurtain.cjs +78 -0
  164. package/lib/SiteSearchCurtain.mjs +56 -0
  165. package/lib/SiteSearchInput.cjs +119 -0
  166. package/lib/SiteSearchInput.mjs +97 -0
  167. package/lib/Skeleton.cjs +63 -0
  168. package/lib/Skeleton.mjs +39 -0
  169. package/lib/SubHeading.cjs +43 -0
  170. package/lib/SubHeading.mjs +19 -0
  171. package/lib/Tabs.cjs +166 -0
  172. package/lib/Tabs.mjs +144 -0
  173. package/lib/TagPill.cjs +113 -0
  174. package/lib/TagPill.mjs +91 -0
  175. package/lib/TextBlock.cjs +45 -0
  176. package/lib/TextBlock.mjs +21 -0
  177. package/lib/TextButton.cjs +55 -0
  178. package/lib/TextButton.mjs +33 -0
  179. package/lib/TextInput.cjs +136 -0
  180. package/lib/TextInput.mjs +114 -0
  181. package/lib/VSpacer.cjs +70 -0
  182. package/lib/VSpacer.mjs +46 -0
  183. package/lib/VerticalTabsTOC.cjs +123 -0
  184. package/lib/VerticalTabsTOC.mjs +101 -0
  185. package/lib/WizardLayout.cjs +79 -0
  186. package/lib/WizardLayout.mjs +55 -0
  187. package/lib/WizardLayoutClose.cjs +47 -0
  188. package/lib/WizardLayoutClose.mjs +25 -0
  189. package/lib/WizardStepper.cjs +55 -0
  190. package/lib/WizardStepper.mjs +31 -0
  191. package/lib/_abstract/Button.cjs +114 -0
  192. package/lib/_abstract/Button.mjs +92 -0
  193. package/lib/_abstract/CardList.cjs +100 -0
  194. package/lib/_abstract/CardList.mjs +76 -0
  195. package/lib/_abstract/Image.cjs +75 -0
  196. package/lib/_abstract/Image.mjs +51 -0
  197. package/lib/_abstract/Link.cjs +37 -0
  198. package/lib/_abstract/Link.mjs +10 -0
  199. package/lib/_abstract/TogglerGroup.cjs +92 -0
  200. package/lib/_abstract/TogglerGroup.mjs +70 -0
  201. package/lib/_abstract/TogglerGroupField.cjs +121 -0
  202. package/lib/_abstract/TogglerGroupField.mjs +99 -0
  203. package/lib/_abstract/TogglerInput.cjs +105 -0
  204. package/lib/_abstract/TogglerInput.mjs +83 -0
  205. package/lib/_abstract/_AbstractCarousel.cjs +170 -0
  206. package/lib/_abstract/_AbstractCarousel.mjs +152 -0
  207. package/lib/_abstract/_Blings.cjs +47 -0
  208. package/lib/_abstract/_Blings.mjs +23 -0
  209. package/lib/_abstract/_Block.cjs +73 -0
  210. package/lib/_abstract/_Block.mjs +51 -0
  211. package/lib/_abstract/_Quote.cjs +43 -0
  212. package/lib/_abstract/_Quote.mjs +17 -0
  213. package/lib/_abstract/breakOnNL.cjs +30 -0
  214. package/lib/_abstract/breakOnNL.mjs +6 -0
  215. package/lib/assets.cjs +77 -0
  216. package/lib/assets.mjs +53 -0
  217. package/lib/constants.cjs +49 -0
  218. package/lib/constants.mjs +24 -0
  219. package/lib/focus-visible.cjs +1 -0
  220. package/lib/focus-visible.mjs +1 -0
  221. package/lib/utils/config.cjs +27 -0
  222. package/lib/utils/config.mjs +4 -0
  223. package/lib/utils/detectEdgeScroll.cjs +95 -0
  224. package/lib/utils/detectEdgeScroll.mjs +71 -0
  225. package/lib/utils/env.cjs +31 -0
  226. package/lib/utils/env.mjs +5 -0
  227. package/lib/utils/seenEffect.cjs +93 -0
  228. package/lib/utils/seenEffect.mjs +65 -0
  229. package/lib/utils/useFormatMonitor.cjs +29 -0
  230. package/lib/utils/useFormatMonitor.mjs +6 -0
  231. package/lib/utils/useGetSVGtext.cjs +44 -0
  232. package/lib/utils/useGetSVGtext.mjs +21 -0
  233. package/lib/utils/useMenuToggling.cjs +83 -0
  234. package/lib/utils/useMenuToggling.mjs +60 -0
  235. package/lib/utils/useScrollbarWidthCSSVar.cjs +32 -0
  236. package/lib/utils/useScrollbarWidthCSSVar.mjs +6 -0
  237. package/lib/utils.cjs +18 -0
  238. package/lib/utils.mjs +2 -0
  239. package/package.json +491 -0
  240. package/types/AccordionList.d.ts +17 -0
  241. package/types/ActionCards.d.ts +5 -0
  242. package/types/Alert.d.ts +49 -0
  243. package/types/ArticleCarousel/_ArticleCarouselCard.d.ts +27 -0
  244. package/types/ArticleCarousel.d.ts +12 -0
  245. package/types/ArticleMeta.d.ts +9 -0
  246. package/types/Attention.d.ts +7 -0
  247. package/types/BasicTable.d.ts +12 -0
  248. package/types/Bling.d.ts +81 -0
  249. package/types/BlockBreak.d.ts +2 -0
  250. package/types/BlockQuote.d.ts +4 -0
  251. package/types/BreadCrumbs.d.ts +11 -0
  252. package/types/ButtonBack.d.ts +7 -0
  253. package/types/ButtonBar.d.ts +16 -0
  254. package/types/ButtonPrimary.d.ts +7 -0
  255. package/types/ButtonSecondary.d.ts +7 -0
  256. package/types/ButtonTertiary.d.ts +12 -0
  257. package/types/Carousel.d.ts +4 -0
  258. package/types/CarouselStepper.d.ts +4 -0
  259. package/types/CenterColumn.d.ts +7 -0
  260. package/types/Checkbox.d.ts +4 -0
  261. package/types/CheckboxButtonsGroup.d.ts +11 -0
  262. package/types/CheckboxGroup.d.ts +9 -0
  263. package/types/CityBlock.d.ts +23 -0
  264. package/types/ContactBubble.d.ts +58 -0
  265. package/types/ContentArticle.d.ts +15 -0
  266. package/types/ContentImage.d.ts +8 -0
  267. package/types/Datepicker.d.ts +39 -0
  268. package/types/ExtraLinks.d.ts +18 -0
  269. package/types/FeatureList.d.ts +12 -0
  270. package/types/FieldGroup.d.ts +9 -0
  271. package/types/FileInput.d.ts +17 -0
  272. package/types/Foonote.d.ts +12 -0
  273. package/types/FooterBadges.d.ts +9 -0
  274. package/types/FooterInfo.d.ts +18 -0
  275. package/types/Footnote.d.ts +6 -0
  276. package/types/Form.d.ts +7 -0
  277. package/types/FormField.d.ts +65 -0
  278. package/types/Gallery/_GalleryItem.d.ts +8 -0
  279. package/types/Gallery/_GalleryModal.d.ts +6 -0
  280. package/types/Gallery/_GalleryModalContext.d.ts +9 -0
  281. package/types/Gallery/_GalleryModalItem.d.ts +3 -0
  282. package/types/Gallery.d.ts +17 -0
  283. package/types/GridBlocks.d.ts +26 -0
  284. package/types/Heading.d.ts +16 -0
  285. package/types/HeroBlock.d.ts +19 -0
  286. package/types/IframeBlock.d.ts +23 -0
  287. package/types/Illustration.d.ts +13 -0
  288. package/types/ImageCards.d.ts +8 -0
  289. package/types/InfoBlock.d.ts +17 -0
  290. package/types/InfoHero.d.ts +17 -0
  291. package/types/IslandBlock.d.ts +25 -0
  292. package/types/IslandPageBlock.d.ts +24 -0
  293. package/types/LabeledTextBlock.d.ts +11 -0
  294. package/types/Layout.d.ts +33 -0
  295. package/types/MainMenu/_Auxiliary.d.ts +6 -0
  296. package/types/MainMenu/_PrimaryPanel.d.ts +13 -0
  297. package/types/MainMenu.d.ts +48 -0
  298. package/types/MiniMetrics.d.ts +8 -0
  299. package/types/Modal.d.ts +10 -0
  300. package/types/NameCard.d.ts +64 -0
  301. package/types/NameCards.d.ts +6 -0
  302. package/types/NewsHero.d.ts +14 -0
  303. package/types/PageFilter.d.ts +17 -0
  304. package/types/PageHeading.d.ts +10 -0
  305. package/types/ProcessOverview.d.ts +13 -0
  306. package/types/PullQuote.d.ts +4 -0
  307. package/types/RadioButtonsGroup.d.ts +11 -0
  308. package/types/RadioGroup.d.ts +13 -0
  309. package/types/RelatedLinks.d.ts +20 -0
  310. package/types/RowBlock.d.ts +12 -0
  311. package/types/RowBlockColumn.d.ts +8 -0
  312. package/types/SearchInput.d.ts +18 -0
  313. package/types/SearchResults/_SearchResultsItem.d.ts +18 -0
  314. package/types/SearchResults.d.ts +33 -0
  315. package/types/SeenEffect.d.ts +4 -0
  316. package/types/Selectbox.d.ts +8 -0
  317. package/types/ShareButtons.d.ts +9 -0
  318. package/types/Sharpie.d.ts +23 -0
  319. package/types/SiteSearchAutocomplete.d.ts +40 -0
  320. package/types/SiteSearchCurtain.d.ts +6 -0
  321. package/types/SiteSearchInput.d.ts +24 -0
  322. package/types/Skeleton.d.ts +25 -0
  323. package/types/SubHeading.d.ts +10 -0
  324. package/types/Tabs.d.ts +35 -0
  325. package/types/TagPill.d.ts +27 -0
  326. package/types/TextBlock.d.ts +15 -0
  327. package/types/TextButton.d.ts +9 -0
  328. package/types/TextInput.d.ts +16 -0
  329. package/types/VSpacer.d.ts +24 -0
  330. package/types/VerticalTabsTOC.d.ts +14 -0
  331. package/types/WizardLayout.d.ts +15 -0
  332. package/types/WizardLayoutClose.d.ts +3 -0
  333. package/types/WizardStepper.d.ts +36 -0
  334. package/types/_abstract/Button.d.ts +40 -0
  335. package/types/_abstract/CardList.d.ts +29 -0
  336. package/types/_abstract/Image.d.ts +32 -0
  337. package/types/_abstract/Link.d.ts +27 -0
  338. package/types/_abstract/TogglerGroup.d.ts +31 -0
  339. package/types/_abstract/TogglerGroupField.d.ts +17 -0
  340. package/types/_abstract/TogglerInput.d.ts +22 -0
  341. package/types/_abstract/_AbstractCarousel.d.ts +25 -0
  342. package/types/_abstract/_Blings.d.ts +11 -0
  343. package/types/_abstract/_Block.d.ts +22 -0
  344. package/types/_abstract/_Quote.d.ts +9 -0
  345. package/types/_abstract/breakOnNL.d.ts +2 -0
  346. package/types/assets.d.ts +42 -0
  347. package/types/constants.d.ts +39 -0
  348. package/types/focus-visible.d.ts +1 -0
  349. package/types/utils/config.d.ts +2 -0
  350. package/types/utils/detectEdgeScroll.d.ts +52 -0
  351. package/types/utils/env.d.ts +1 -0
  352. package/types/utils/seenEffect.d.ts +28 -0
  353. package/types/utils/useFormatMonitor.d.ts +38 -0
  354. package/types/utils/useGetSVGtext.d.ts +6 -0
  355. package/types/utils/useMenuToggling.d.ts +8 -0
  356. package/types/utils/useScrollbarWidthCSSVar.d.ts +1 -0
  357. package/types/utils.d.ts +2 -0
@@ -0,0 +1,55 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var TextButton_exports = {};
39
+ __export(TextButton_exports, {
40
+ default: () => TextButton_default
41
+ });
42
+ module.exports = __toCommonJS(TextButton_exports);
43
+ var import_react = __toESM(require("react"));
44
+ var import_Button = __toESM(require("./_abstract/Button"));
45
+ const TextButton = (props) => {
46
+ if ("disabled" in props) {
47
+ props = __spreadProps(__spreadValues({}, props), { disabled: void 0 });
48
+ }
49
+ return /* @__PURE__ */ import_react.default.createElement(import_Button.default, __spreadValues({
50
+ bem: "TextButton"
51
+ }, props));
52
+ };
53
+ var TextButton_default = TextButton;
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {});
@@ -0,0 +1,33 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import React from "react";
21
+ import Button from "./_abstract/Button";
22
+ const TextButton = (props) => {
23
+ if ("disabled" in props) {
24
+ props = __spreadProps(__spreadValues({}, props), { disabled: void 0 });
25
+ }
26
+ return /* @__PURE__ */ React.createElement(Button, __spreadValues({
27
+ bem: "TextButton"
28
+ }, props));
29
+ };
30
+ var TextButton_default = TextButton;
31
+ export {
32
+ TextButton_default as default
33
+ };
@@ -0,0 +1,136 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, { get: all[name], enumerable: true });
39
+ };
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
45
+ }
46
+ return to;
47
+ };
48
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
49
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
50
+ var TextInput_exports = {};
51
+ __export(TextInput_exports, {
52
+ default: () => TextInput_default
53
+ });
54
+ module.exports = __toCommonJS(TextInput_exports);
55
+ var import_react = __toESM(require("react"));
56
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
57
+ var import_FormField = __toESM(require("./FormField"));
58
+ const TextInput = (props) => {
59
+ const _a = props, {
60
+ className,
61
+ label,
62
+ assistText,
63
+ hideLabel,
64
+ disabled,
65
+ readOnly,
66
+ invalid,
67
+ errorMessage,
68
+ required,
69
+ reqText,
70
+ id,
71
+ onChange,
72
+ small,
73
+ type,
74
+ ssr,
75
+ inputRef
76
+ } = _a, inputElementProps = __objRest(_a, [
77
+ "className",
78
+ "label",
79
+ "assistText",
80
+ "hideLabel",
81
+ "disabled",
82
+ "readOnly",
83
+ "invalid",
84
+ "errorMessage",
85
+ "required",
86
+ "reqText",
87
+ "id",
88
+ "onChange",
89
+ "small",
90
+ "type",
91
+ "ssr",
92
+ "inputRef"
93
+ ]);
94
+ const { value, defaultValue, placeholder } = inputElementProps;
95
+ const [hasValue, setHasValue] = (0, import_react.useState)(void 0);
96
+ const filled = !!(value ?? hasValue ?? !!defaultValue);
97
+ const empty = !filled && !placeholder;
98
+ const multiline = type === "textarea";
99
+ const modifiers = [multiline && "multiline"];
100
+ const _onChange = value != null ? onChange : (e) => {
101
+ setHasValue(!!e.target.value);
102
+ onChange && onChange(e);
103
+ };
104
+ return /* @__PURE__ */ import_react.default.createElement(import_FormField.default, {
105
+ className: (0, import_getBemClass.default)("TextInput", modifiers, className),
106
+ ssr,
107
+ small,
108
+ label,
109
+ empty,
110
+ filled,
111
+ assistText,
112
+ hideLabel,
113
+ disabled,
114
+ readOnly,
115
+ invalid,
116
+ errorMessage,
117
+ required,
118
+ reqText,
119
+ id,
120
+ renderInput: (className2, inputProps, addFocusProps) => multiline ? /* @__PURE__ */ import_react.default.createElement("textarea", __spreadProps(__spreadValues(__spreadValues({
121
+ className: className2.input,
122
+ onChange: _onChange
123
+ }, inputProps), addFocusProps(inputElementProps)), {
124
+ ref: inputRef
125
+ })) : /* @__PURE__ */ import_react.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({
126
+ className: className2.input,
127
+ onChange: _onChange,
128
+ type
129
+ }, inputProps), addFocusProps(inputElementProps)), {
130
+ ref: inputRef
131
+ }))
132
+ });
133
+ };
134
+ var TextInput_default = TextInput;
135
+ // Annotate the CommonJS export names for ESM import in node:
136
+ 0 && (module.exports = {});
@@ -0,0 +1,114 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import React, { useState } from "react";
33
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
34
+ import FormField from "./FormField";
35
+ const TextInput = (props) => {
36
+ const _a = props, {
37
+ className,
38
+ label,
39
+ assistText,
40
+ hideLabel,
41
+ disabled,
42
+ readOnly,
43
+ invalid,
44
+ errorMessage,
45
+ required,
46
+ reqText,
47
+ id,
48
+ onChange,
49
+ small,
50
+ type,
51
+ ssr,
52
+ inputRef
53
+ } = _a, inputElementProps = __objRest(_a, [
54
+ "className",
55
+ "label",
56
+ "assistText",
57
+ "hideLabel",
58
+ "disabled",
59
+ "readOnly",
60
+ "invalid",
61
+ "errorMessage",
62
+ "required",
63
+ "reqText",
64
+ "id",
65
+ "onChange",
66
+ "small",
67
+ "type",
68
+ "ssr",
69
+ "inputRef"
70
+ ]);
71
+ const { value, defaultValue, placeholder } = inputElementProps;
72
+ const [hasValue, setHasValue] = useState(void 0);
73
+ const filled = !!(value ?? hasValue ?? !!defaultValue);
74
+ const empty = !filled && !placeholder;
75
+ const multiline = type === "textarea";
76
+ const modifiers = [multiline && "multiline"];
77
+ const _onChange = value != null ? onChange : (e) => {
78
+ setHasValue(!!e.target.value);
79
+ onChange && onChange(e);
80
+ };
81
+ return /* @__PURE__ */ React.createElement(FormField, {
82
+ className: getBemClass("TextInput", modifiers, className),
83
+ ssr,
84
+ small,
85
+ label,
86
+ empty,
87
+ filled,
88
+ assistText,
89
+ hideLabel,
90
+ disabled,
91
+ readOnly,
92
+ invalid,
93
+ errorMessage,
94
+ required,
95
+ reqText,
96
+ id,
97
+ renderInput: (className2, inputProps, addFocusProps) => multiline ? /* @__PURE__ */ React.createElement("textarea", __spreadProps(__spreadValues(__spreadValues({
98
+ className: className2.input,
99
+ onChange: _onChange
100
+ }, inputProps), addFocusProps(inputElementProps)), {
101
+ ref: inputRef
102
+ })) : /* @__PURE__ */ React.createElement("input", __spreadProps(__spreadValues(__spreadValues({
103
+ className: className2.input,
104
+ onChange: _onChange,
105
+ type
106
+ }, inputProps), addFocusProps(inputElementProps)), {
107
+ ref: inputRef
108
+ }))
109
+ });
110
+ };
111
+ var TextInput_default = TextInput;
112
+ export {
113
+ TextInput_default as default
114
+ };
@@ -0,0 +1,70 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var VSpacer_exports = {};
22
+ __export(VSpacer_exports, {
23
+ default: () => VSpacer_default
24
+ });
25
+ module.exports = __toCommonJS(VSpacer_exports);
26
+ var import_react = __toESM(require("react"));
27
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
28
+ const sizes = {
29
+ none: "none",
30
+ small: "small",
31
+ default: "",
32
+ medium: "",
33
+ large: "large",
34
+ xlarge: "xlarge"
35
+ };
36
+ const hasChildren = (children) => children && !(Array.isArray(children) && !children.length) || void 0;
37
+ const normalizeProp = (value, exclude) => value && value !== exclude ? sizes[value] : void 0;
38
+ const VSpacer = (props) => {
39
+ const { size, top, bottom, children } = props;
40
+ const isWrapper = hasChildren(children);
41
+ let topVal = normalizeProp(isWrapper && top);
42
+ let bottomVal = normalizeProp(isWrapper && bottom);
43
+ let sizeVal = !(topVal && bottomVal) && normalizeProp(size, "none");
44
+ if (!sizeVal && topVal === bottomVal && topVal !== "none") {
45
+ sizeVal = topVal;
46
+ topVal = bottomVal = void 0;
47
+ } else if (sizeVal) {
48
+ if (sizeVal === topVal) {
49
+ sizeVal = topVal;
50
+ topVal = void 0;
51
+ }
52
+ if (sizeVal === bottomVal) {
53
+ sizeVal = bottomVal;
54
+ bottomVal = void 0;
55
+ }
56
+ }
57
+ const className = (0, import_getBemClass.default)("VSpacer", [
58
+ sizeVal,
59
+ topVal && "top--" + topVal,
60
+ bottomVal && "bottom--" + bottomVal
61
+ ]);
62
+ return isWrapper ? /* @__PURE__ */ import_react.default.createElement("div", {
63
+ className
64
+ }, children) : /* @__PURE__ */ import_react.default.createElement("hr", {
65
+ className
66
+ });
67
+ };
68
+ var VSpacer_default = VSpacer;
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {});
@@ -0,0 +1,46 @@
1
+ import React from "react";
2
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
3
+ const sizes = {
4
+ none: "none",
5
+ small: "small",
6
+ default: "",
7
+ medium: "",
8
+ large: "large",
9
+ xlarge: "xlarge"
10
+ };
11
+ const hasChildren = (children) => children && !(Array.isArray(children) && !children.length) || void 0;
12
+ const normalizeProp = (value, exclude) => value && value !== exclude ? sizes[value] : void 0;
13
+ const VSpacer = (props) => {
14
+ const { size, top, bottom, children } = props;
15
+ const isWrapper = hasChildren(children);
16
+ let topVal = normalizeProp(isWrapper && top);
17
+ let bottomVal = normalizeProp(isWrapper && bottom);
18
+ let sizeVal = !(topVal && bottomVal) && normalizeProp(size, "none");
19
+ if (!sizeVal && topVal === bottomVal && topVal !== "none") {
20
+ sizeVal = topVal;
21
+ topVal = bottomVal = void 0;
22
+ } else if (sizeVal) {
23
+ if (sizeVal === topVal) {
24
+ sizeVal = topVal;
25
+ topVal = void 0;
26
+ }
27
+ if (sizeVal === bottomVal) {
28
+ sizeVal = bottomVal;
29
+ bottomVal = void 0;
30
+ }
31
+ }
32
+ const className = getBemClass("VSpacer", [
33
+ sizeVal,
34
+ topVal && "top--" + topVal,
35
+ bottomVal && "bottom--" + bottomVal
36
+ ]);
37
+ return isWrapper ? /* @__PURE__ */ React.createElement("div", {
38
+ className
39
+ }, children) : /* @__PURE__ */ React.createElement("hr", {
40
+ className
41
+ });
42
+ };
43
+ var VSpacer_default = VSpacer;
44
+ export {
45
+ VSpacer_default as default
46
+ };
@@ -0,0 +1,123 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var VerticalTabsTOC_exports = {};
39
+ __export(VerticalTabsTOC_exports, {
40
+ default: () => VerticalTabsTOC_default
41
+ });
42
+ module.exports = __toCommonJS(VerticalTabsTOC_exports);
43
+ var import_react = __toESM(require("react"));
44
+ var import_frag = require("@hugsmidjan/qj/frag");
45
+ var import_hooks = require("@hugsmidjan/react/hooks");
46
+ var import_Tabs = __toESM(require("./Tabs"));
47
+ const getId = (url) => url && decodeURIComponent(url.split("#")[1] || "") || "";
48
+ const getItemId = (item) => getId(item && item.href);
49
+ const mapToItemsById = (items, domid) => {
50
+ const updatedItems = items.map((item) => {
51
+ return __spreadProps(__spreadValues({}, item), {
52
+ "aria-controls": item["aria-controls"] || domid
53
+ });
54
+ });
55
+ const itemsById = {};
56
+ updatedItems.forEach((topItem, activeIdx) => {
57
+ const subItems = topItem.items;
58
+ if (!subItems) {
59
+ const itemId = getItemId(topItem);
60
+ itemsById[itemId] = { activeIdx };
61
+ return;
62
+ }
63
+ subItems.forEach((subItem, idx) => {
64
+ itemsById[getItemId(subItem)] = {
65
+ activeIdx,
66
+ subTabs: {
67
+ activeIdx: idx,
68
+ "aria-label": topItem.longLabel || topItem.label,
69
+ id: topItem["aria-controls"],
70
+ tabs: subItems,
71
+ onSetActive: (_, item) => {
72
+ const newId = getItemId(item);
73
+ (0, import_frag.setFrag)(newId);
74
+ }
75
+ }
76
+ };
77
+ if (idx === 0) {
78
+ topItem.href = topItem.href || "#" + getItemId(subItem);
79
+ }
80
+ });
81
+ });
82
+ return { itemsById, updatedItems };
83
+ };
84
+ const VerticalTabsTOC = (props) => {
85
+ const { onItemSelect, items } = props;
86
+ const _domid = (0, import_hooks.useDomid)();
87
+ const domid = props.id || _domid;
88
+ const { itemsById, updatedItems } = (0, import_react.useMemo)(() => mapToItemsById(items, domid), [items, domid]);
89
+ const [state, setState] = (0, import_react.useState)(() => {
90
+ const initialId = typeof location !== "undefined" ? getId(location.hash) : "";
91
+ return itemsById[initialId] || itemsById[getItemId(updatedItems[0])] || {};
92
+ });
93
+ (0, import_react.useEffect)(() => {
94
+ const handleHash = () => {
95
+ const newId = getId(location.href);
96
+ const newState = itemsById[newId];
97
+ if (newState) {
98
+ setState(newState);
99
+ onItemSelect(newId);
100
+ }
101
+ };
102
+ window.addEventListener("hashchange", handleHash);
103
+ return () => window.removeEventListener("hashchange", handleHash);
104
+ }, [itemsById, onItemSelect]);
105
+ return /* @__PURE__ */ import_react.default.createElement(import_Tabs.default, {
106
+ id: domid,
107
+ vertical: true,
108
+ "aria-label": props["aria-label"],
109
+ onSetActive: (_, item) => {
110
+ var _a;
111
+ const itemId = getItemId(item);
112
+ const newId = itemId || getItemId((_a = itemsById[itemId].subTabs) == null ? void 0 : _a.tabs[0]);
113
+ (0, import_frag.setFrag)(newId);
114
+ },
115
+ tabs: updatedItems,
116
+ role: "tablist",
117
+ activeIdx: state.activeIdx,
118
+ subTabs: state.subTabs
119
+ });
120
+ };
121
+ var VerticalTabsTOC_default = VerticalTabsTOC;
122
+ // Annotate the CommonJS export names for ESM import in node:
123
+ 0 && (module.exports = {});
@@ -0,0 +1,101 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import React, { useEffect, useMemo, useState } from "react";
21
+ import { setFrag } from "@hugsmidjan/qj/frag";
22
+ import { useDomid } from "@hugsmidjan/react/hooks";
23
+ import Tabs from "./Tabs";
24
+ const getId = (url) => url && decodeURIComponent(url.split("#")[1] || "") || "";
25
+ const getItemId = (item) => getId(item && item.href);
26
+ const mapToItemsById = (items, domid) => {
27
+ const updatedItems = items.map((item) => {
28
+ return __spreadProps(__spreadValues({}, item), {
29
+ "aria-controls": item["aria-controls"] || domid
30
+ });
31
+ });
32
+ const itemsById = {};
33
+ updatedItems.forEach((topItem, activeIdx) => {
34
+ const subItems = topItem.items;
35
+ if (!subItems) {
36
+ const itemId = getItemId(topItem);
37
+ itemsById[itemId] = { activeIdx };
38
+ return;
39
+ }
40
+ subItems.forEach((subItem, idx) => {
41
+ itemsById[getItemId(subItem)] = {
42
+ activeIdx,
43
+ subTabs: {
44
+ activeIdx: idx,
45
+ "aria-label": topItem.longLabel || topItem.label,
46
+ id: topItem["aria-controls"],
47
+ tabs: subItems,
48
+ onSetActive: (_, item) => {
49
+ const newId = getItemId(item);
50
+ setFrag(newId);
51
+ }
52
+ }
53
+ };
54
+ if (idx === 0) {
55
+ topItem.href = topItem.href || "#" + getItemId(subItem);
56
+ }
57
+ });
58
+ });
59
+ return { itemsById, updatedItems };
60
+ };
61
+ const VerticalTabsTOC = (props) => {
62
+ const { onItemSelect, items } = props;
63
+ const _domid = useDomid();
64
+ const domid = props.id || _domid;
65
+ const { itemsById, updatedItems } = useMemo(() => mapToItemsById(items, domid), [items, domid]);
66
+ const [state, setState] = useState(() => {
67
+ const initialId = typeof location !== "undefined" ? getId(location.hash) : "";
68
+ return itemsById[initialId] || itemsById[getItemId(updatedItems[0])] || {};
69
+ });
70
+ useEffect(() => {
71
+ const handleHash = () => {
72
+ const newId = getId(location.href);
73
+ const newState = itemsById[newId];
74
+ if (newState) {
75
+ setState(newState);
76
+ onItemSelect(newId);
77
+ }
78
+ };
79
+ window.addEventListener("hashchange", handleHash);
80
+ return () => window.removeEventListener("hashchange", handleHash);
81
+ }, [itemsById, onItemSelect]);
82
+ return /* @__PURE__ */ React.createElement(Tabs, {
83
+ id: domid,
84
+ vertical: true,
85
+ "aria-label": props["aria-label"],
86
+ onSetActive: (_, item) => {
87
+ var _a;
88
+ const itemId = getItemId(item);
89
+ const newId = itemId || getItemId((_a = itemsById[itemId].subTabs) == null ? void 0 : _a.tabs[0]);
90
+ setFrag(newId);
91
+ },
92
+ tabs: updatedItems,
93
+ role: "tablist",
94
+ activeIdx: state.activeIdx,
95
+ subTabs: state.subTabs
96
+ });
97
+ };
98
+ var VerticalTabsTOC_default = VerticalTabsTOC;
99
+ export {
100
+ VerticalTabsTOC_default as default
101
+ };