@oslokommune/punkt-elements 16.26.7 → 17.0.2

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 (240) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/dist/accordion-CbXDxOho.cjs +47 -0
  3. package/dist/{accordion-CBdIk9gw.js → accordion-DEUHQ4JD.js} +45 -35
  4. package/dist/{alert-HHTGY0sp.js → alert-CbtVGrHD.js} +31 -17
  5. package/dist/{alert-B8dLsiTz.cjs → alert-CkUnbPdA.cjs} +5 -5
  6. package/dist/base-elements/input-element.d.ts +1 -0
  7. package/dist/button-Cod17rKo.js +115 -0
  8. package/dist/{button-B5tQpKeG.cjs → button-gvDXtBMC.cjs} +5 -2
  9. package/dist/{calendar-DIzGBdbh.cjs → calendar-BVXW8DqC.cjs} +1 -1
  10. package/dist/{calendar-CjlUA-Lb.js → calendar-CjC4qlh6.js} +1 -1
  11. package/dist/{checkbox-Bt_sC_90.cjs → checkbox-8uxbeU30.cjs} +1 -1
  12. package/dist/{checkbox-D03BC2Va.js → checkbox-DJDphhqz.js} +1 -1
  13. package/dist/{combobox-CoQBTWqL.js → combobox-Du5yr-xM.js} +16 -2
  14. package/dist/combobox-hKrbYLUe.cjs +136 -0
  15. package/dist/components/accordion/accordion-context.d.ts +7 -0
  16. package/dist/components/accordion/accordion.d.ts +2 -0
  17. package/dist/components/accordion/accordionitem.d.ts +1 -0
  18. package/dist/components/alert/alert.d.ts +5 -0
  19. package/dist/components/alert/alert.test.d.ts +1 -0
  20. package/dist/components/button/button.d.ts +4 -1
  21. package/dist/components/datepicker/datepicker-base.d.ts +2 -0
  22. package/dist/components/datepicker/datepicker-utils.d.ts +2 -2
  23. package/dist/components/footer/footer-base.d.ts +44 -0
  24. package/dist/components/footer/footer-simple.d.ts +20 -0
  25. package/dist/components/footer/footer.accessibility.test.d.ts +0 -0
  26. package/dist/components/footer/footer.d.ts +22 -0
  27. package/dist/components/footer/footer.test.d.ts +0 -0
  28. package/dist/components/footer/index.d.ts +3 -0
  29. package/dist/components/footer/types.d.ts +16 -0
  30. package/dist/components/header/header-chrome-controller.d.ts +44 -0
  31. package/dist/components/header/header-global.accessibility.test.d.ts +0 -0
  32. package/dist/components/header/header-global.d.ts +78 -0
  33. package/dist/components/header/header-global.test.d.ts +0 -0
  34. package/dist/components/header/header-service.accessibility.test.d.ts +0 -0
  35. package/dist/components/header/header-service.d.ts +6 -21
  36. package/dist/components/header/header-service.test.d.ts +1 -1
  37. package/dist/components/header/header.d.ts +11 -3
  38. package/dist/components/header/header.test.d.ts +0 -0
  39. package/dist/components/header/index.d.ts +2 -1
  40. package/dist/components/header/types.d.ts +28 -2
  41. package/dist/components/header-menu/header-menu.d.ts +4 -5
  42. package/dist/components/header-menu/types.d.ts +1 -1
  43. package/dist/components/index.d.ts +5 -3
  44. package/dist/components/input-wrapper/input-wrapper.d.ts +2 -0
  45. package/dist/components/input-wrapper/input-wrapper.test.d.ts +1 -0
  46. package/dist/components/searchinput/searchinput.d.ts +5 -0
  47. package/dist/components/select/index.d.ts +1 -1
  48. package/dist/components/select/select.d.ts +2 -2
  49. package/dist/components/select/select.test.d.ts +1 -0
  50. package/dist/components/textarea/textarea.test.d.ts +2 -0
  51. package/dist/components/textinput/textinput.test.d.ts +1 -0
  52. package/dist/components/timepicker/timepicker.d.ts +2 -0
  53. package/dist/components/timepicker/timepicker.test.d.ts +3 -0
  54. package/dist/consent--Nw43WFU.cjs +18 -0
  55. package/dist/{consent-D5sY6JK3.js → consent-B2hSTCGC.js} +14 -7
  56. package/dist/consume-BiOhrhEy.js +167 -0
  57. package/dist/consume-DKf5SmP9.cjs +1 -0
  58. package/dist/{converters-BKGBRBpS.js → converters-BBfsEJV5.js} +25 -25
  59. package/dist/{converters-9jHlXDyy.cjs → converters-Cd0fPEly.cjs} +1 -1
  60. package/dist/{datepicker-BE5Ll0W4.js → datepicker--Fq8q-J3.js} +30 -12
  61. package/dist/{datepicker-x4xM3KQz.cjs → datepicker-CEoBYTBU.cjs} +11 -7
  62. package/dist/docs/components/alert.d.ts +3 -0
  63. package/dist/docs/components/footer.d.ts +9 -0
  64. package/dist/docs/components/form-sizes.d.ts +10 -0
  65. package/dist/docs/components/header-global-full.d.ts +20 -0
  66. package/dist/docs/components/header-global.d.ts +14 -0
  67. package/dist/docs/components/searchinput.d.ts +6 -3
  68. package/dist/fetch-header-footer-data-Pc32etrk.js +88 -0
  69. package/dist/fetch-header-footer-data-xohWFmYC.cjs +1 -0
  70. package/dist/fileupload-CGKUJrlj.cjs +401 -0
  71. package/dist/{fileupload-2hf8YNhO.js → fileupload-D4gQN64T.js} +156 -176
  72. package/dist/focus-trap-DG3pEuyJ.js +60 -0
  73. package/dist/focus-trap-DSv4Ifqm.cjs +1 -0
  74. package/dist/footer-BIrJeRuZ.js +303 -0
  75. package/dist/footer-Ber-jqM1.cjs +114 -0
  76. package/dist/footer.d.ts +1 -0
  77. package/dist/header-BFk1an4z.cjs +465 -0
  78. package/dist/header-Deg_LGJo.js +1287 -0
  79. package/dist/header-menu-BHqK4QA6.cjs +126 -0
  80. package/dist/{header-menu-C8b5vd3n.js → header-menu-GFtJKM4j.js} +25 -97
  81. package/dist/{helptext-OfqH5npD.js → helptext-C_brWCIT.js} +1 -1
  82. package/dist/{helptext-eckq4JEX.cjs → helptext-Cq5rNaAC.cjs} +1 -1
  83. package/dist/{input-element-ZGOWsvKM.cjs → input-element-B0qLbEdF.cjs} +1 -1
  84. package/dist/{input-element-BFHpeoV8.js → input-element-C0RnXi-J.js} +5 -2
  85. package/dist/{input-wrapper-DwwE0JcO.js → input-wrapper-BweP6t3O.js} +12 -0
  86. package/dist/{input-wrapper-BRjQB4zM.cjs → input-wrapper-DPkkiG7S.cjs} +13 -11
  87. package/dist/{input-wrapper-DaA98B5l.js → input-wrapper-fWV5P4MN.js} +22 -15
  88. package/dist/{input-wrapper-LcZjpt0L.cjs → input-wrapper-wh3fWIhk.cjs} +1 -1
  89. package/dist/modal-CPnFteYS.cjs +35 -0
  90. package/dist/{modal-C6pScpdG.js → modal-xNK_wpHk.js} +11 -20
  91. package/dist/pkt-accordion.cjs +1 -1
  92. package/dist/pkt-accordion.js +1 -1
  93. package/dist/pkt-alert.cjs +1 -1
  94. package/dist/pkt-alert.js +1 -1
  95. package/dist/pkt-button.cjs +1 -1
  96. package/dist/pkt-button.js +1 -1
  97. package/dist/pkt-calendar.cjs +1 -1
  98. package/dist/pkt-calendar.js +1 -1
  99. package/dist/pkt-checkbox.cjs +1 -1
  100. package/dist/pkt-checkbox.js +1 -1
  101. package/dist/pkt-combobox.cjs +1 -1
  102. package/dist/pkt-combobox.js +1 -1
  103. package/dist/pkt-consent.cjs +1 -1
  104. package/dist/pkt-consent.js +1 -1
  105. package/dist/pkt-datepicker.cjs +1 -1
  106. package/dist/pkt-datepicker.js +1 -1
  107. package/dist/pkt-fileupload.cjs +1 -1
  108. package/dist/pkt-fileupload.js +1 -1
  109. package/dist/pkt-footer.cjs +1 -0
  110. package/dist/pkt-footer.js +2 -0
  111. package/dist/pkt-header-menu.cjs +1 -1
  112. package/dist/pkt-header-menu.js +1 -1
  113. package/dist/pkt-header.cjs +1 -1
  114. package/dist/pkt-header.js +2 -2
  115. package/dist/pkt-helptext.cjs +1 -1
  116. package/dist/pkt-helptext.js +1 -1
  117. package/dist/pkt-index.cjs +1 -1
  118. package/dist/pkt-index.js +27 -26
  119. package/dist/pkt-input-wrapper.cjs +1 -1
  120. package/dist/pkt-input-wrapper.js +1 -1
  121. package/dist/pkt-modal.cjs +1 -1
  122. package/dist/pkt-modal.js +1 -1
  123. package/dist/pkt-radiobutton.cjs +1 -1
  124. package/dist/pkt-radiobutton.js +1 -1
  125. package/dist/pkt-searchinput.cjs +1 -1
  126. package/dist/pkt-searchinput.js +1 -1
  127. package/dist/pkt-select.cjs +1 -1
  128. package/dist/pkt-select.js +1 -1
  129. package/dist/pkt-tabs.cjs +1 -1
  130. package/dist/pkt-tabs.js +1 -1
  131. package/dist/pkt-textarea.cjs +1 -1
  132. package/dist/pkt-textarea.js +1 -1
  133. package/dist/pkt-textinput.cjs +1 -1
  134. package/dist/pkt-textinput.js +1 -1
  135. package/dist/pkt-timepicker.cjs +1 -1
  136. package/dist/pkt-timepicker.js +1 -1
  137. package/dist/{radiobutton-DGO6H2Ki.js → radiobutton-C6htwDrT.js} +1 -1
  138. package/dist/{radiobutton-DY1WWepJ.cjs → radiobutton-DjWBoSHv.cjs} +1 -1
  139. package/dist/scroll-lock-BN8lOhV5.cjs +1 -0
  140. package/dist/scroll-lock-DAbNKAUy.js +18 -0
  141. package/dist/searchinput-CfUVfpqL.js +156 -0
  142. package/dist/searchinput-DGjeN1YI.cjs +60 -0
  143. package/dist/{select-D4_HQFkh.cjs → select-CZvAW7W2.cjs} +2 -1
  144. package/dist/{select-BwHUIlwQ.js → select-CsBXXbLP.js} +4 -3
  145. package/dist/setupTests.d.ts +0 -0
  146. package/dist/shared-types/footer.d.ts +95 -0
  147. package/dist/shared-types/{header-menu.d.ts → header-footer.d.ts} +51 -4
  148. package/dist/shared-types/header.d.ts +1 -1
  149. package/dist/shared-types/index.d.ts +6 -4
  150. package/dist/shared-types/searchinput.d.ts +2 -0
  151. package/dist/shared-types/select.d.ts +3 -2
  152. package/dist/shared-types/size.d.ts +4 -0
  153. package/dist/shared-types/timepicker.d.ts +0 -6
  154. package/dist/shared-utils/datepicker-utils.d.ts +5 -4
  155. package/dist/shared-utils/fileupload/focus-trap.d.ts +4 -10
  156. package/dist/shared-utils/focus-trap/index.d.ts +22 -0
  157. package/dist/shared-utils/{header-menu → header-footer}/example-data.d.ts +5 -4
  158. package/dist/shared-utils/header-footer/external-domain.d.ts +26 -0
  159. package/dist/shared-utils/{header-menu → header-footer}/fetch-header-footer-data.d.ts +6 -2
  160. package/dist/shared-utils/{header-menu → header-footer}/index.d.ts +2 -1
  161. package/dist/shared-utils/{header-menu → header-footer}/select-megamenu.d.ts +1 -1
  162. package/dist/shared-utils/scroll-lock/index.d.ts +24 -0
  163. package/dist/tabs-BqrKLCjd.js +214 -0
  164. package/dist/tabs-q62MK_-r.cjs +40 -0
  165. package/dist/{textarea-D6M7ZhtA.js → textarea-Cm392CEI.js} +5 -3
  166. package/dist/{textarea-Bt_Zs8gq.cjs → textarea-sTcZxOIB.cjs} +3 -2
  167. package/dist/{textinput-EDKjcUdg.cjs → textinput-DqJbTglM.cjs} +3 -2
  168. package/dist/{textinput-oU2EvFsi.js → textinput-TSPcBcih.js} +5 -3
  169. package/dist/{timepicker-CgOL2sd9.cjs → timepicker-CqFYMV8q.cjs} +8 -7
  170. package/dist/{timepicker-_G0V_HV3.js → timepicker-DWbgTDKq.js} +10 -9
  171. package/package.json +3 -3
  172. package/src/components/accordion/accordion-context.ts +8 -0
  173. package/src/components/accordion/accordion.test.ts +44 -0
  174. package/src/components/accordion/accordion.ts +13 -3
  175. package/src/components/accordion/accordionitem.ts +9 -1
  176. package/src/components/alert/alert.test.ts +51 -2
  177. package/src/components/alert/alert.ts +11 -5
  178. package/src/components/breadcrumbs/breadcrumbs.test.ts +11 -3
  179. package/src/components/button/button.test.ts +23 -0
  180. package/src/components/button/button.ts +28 -3
  181. package/src/components/combobox/combobox.core.test.ts +20 -0
  182. package/src/components/combobox/combobox.ts +2 -0
  183. package/src/components/consent/consent.test.ts +6 -3
  184. package/src/components/consent/consent.ts +15 -7
  185. package/src/components/datepicker/datepicker-base.ts +5 -1
  186. package/src/components/datepicker/datepicker-utils.test.ts +10 -0
  187. package/src/components/datepicker/datepicker.core.test.ts +17 -0
  188. package/src/components/datepicker/datepicker.ts +8 -0
  189. package/src/components/footer/footer-base.ts +238 -0
  190. package/src/components/footer/footer-simple.ts +71 -0
  191. package/src/components/footer/footer.accessibility.test.ts +66 -0
  192. package/src/components/footer/footer.test.ts +238 -0
  193. package/src/components/footer/footer.ts +81 -0
  194. package/src/components/footer/index.ts +4 -0
  195. package/src/components/footer/types.ts +21 -0
  196. package/src/components/header/header-chrome-controller.ts +123 -0
  197. package/src/components/header/header-global.accessibility.test.ts +110 -0
  198. package/src/components/header/header-global.test.ts +329 -0
  199. package/src/components/header/header-global.ts +648 -0
  200. package/src/components/header/header-service.accessibility.test.ts +79 -0
  201. package/src/components/header/header-service.test.ts +32 -12
  202. package/src/components/header/header-service.ts +38 -162
  203. package/src/components/header/header-user-menu.ts +0 -1
  204. package/src/components/header/header.test.ts +84 -0
  205. package/src/components/header/header.ts +52 -5
  206. package/src/components/header/index.ts +6 -0
  207. package/src/components/header/types.ts +38 -0
  208. package/src/components/header-menu/header-menu.test.ts +131 -10
  209. package/src/components/header-menu/header-menu.ts +23 -24
  210. package/src/components/header-menu/types.ts +1 -1
  211. package/src/components/index.ts +18 -2
  212. package/src/components/input-wrapper/input-wrapper.test.ts +45 -0
  213. package/src/components/input-wrapper/input-wrapper.ts +17 -9
  214. package/src/components/modal/modal.ts +8 -9
  215. package/src/components/searchinput/searchinput.test.ts +43 -0
  216. package/src/components/searchinput/searchinput.ts +29 -12
  217. package/src/components/select/index.ts +1 -1
  218. package/src/components/select/select.test.ts +28 -0
  219. package/src/components/select/select.ts +4 -3
  220. package/src/components/textarea/textarea.test.ts +16 -0
  221. package/src/components/textarea/textarea.ts +3 -1
  222. package/src/components/textinput/textinput.test.ts +28 -0
  223. package/src/components/textinput/textinput.ts +3 -1
  224. package/src/components/timepicker/timepicker.test.ts +26 -0
  225. package/src/components/timepicker/timepicker.ts +12 -6
  226. package/dist/accordion-FISAiAbX.cjs +0 -47
  227. package/dist/button-C_YzTSuU.js +0 -96
  228. package/dist/combobox-D6H9rWPV.cjs +0 -135
  229. package/dist/consent-X3wvhteO.cjs +0 -10
  230. package/dist/fileupload-BLVrslUX.cjs +0 -401
  231. package/dist/header-CFrsaq0c.cjs +0 -310
  232. package/dist/header-D_xvPR4R.js +0 -801
  233. package/dist/header-menu-DMdP_c6X.cjs +0 -126
  234. package/dist/modal-DKU7PnjJ.cjs +0 -35
  235. package/dist/searchinput-CyO5k4Q4.js +0 -148
  236. package/dist/searchinput-DG6YetL1.cjs +0 -60
  237. package/dist/shared-utils/modal-scroll-lock.d.ts +0 -10
  238. package/dist/tabs-CGo0ODPa.cjs +0 -40
  239. package/dist/tabs-ChdR0D1C.js +0 -379
  240. /package/dist/shared-utils/{header-menu → header-footer}/icon-map.d.ts +0 -0
@@ -1,126 +0,0 @@
1
- const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs");require("./icon-B8PVq2O6.cjs"),require("./accordion-FISAiAbX.cjs");const n=require("./booleanish-B9Kf0nES.cjs");var r=`https://cdn.web.oslo.kommune.no/header-footer/header-footer.json`,i={automat:`parking-meter`,bike:`bicycle`,corona:`virus`,directions:`arrow-directions`,document:`document-plain`,"download-document":`document-download`,elcar:`electric-car`,"error-hexa":`alert-error`,"fire-emblem":`shield-fire`,"link-arrow":`arrow-link`,"linked-in":`linkedin`,"map-layer":`map-layers`,mobile:`mobile-phone`,neutral:`smiley-neutral`,placeholder:`placeholder-icon`,sad:`smiley-sad`,signing:`signature`,sky:`cloud`,smile:`smiley-smile`,"success-square":`alert-success`,trash:`trash-can`,treatment:`processing`,"warning-triangle":`alert-warning`};function a(e){return e&&(i[e]??e)}var o={"facebook.com":`facebook`,"fb.com":`facebook`,"instagram.com":`instagram`,"linkedin.com":`linkedin`,"x.com":`x`,"github.com":`github`};function s(e){return e.toLowerCase().replace(/^(?:www|m)\./,``)}function c(e,t){if(e)try{let t=o[s(new URL(e).hostname)];if(t)return t}catch{}if(t){let e=t.trim().toLowerCase().replace(/\s+/g,`-`);if(e){let t=a(e);if(t)return t}}}var l=`nb-NO`;function u(e,t=l){if(e)return e[t]??e[l]}async function d(e=r,t){let n=await fetch(e,{signal:t});if(!n.ok)throw Error(`pkt-header-menu: failed to fetch ${e} (HTTP ${n.status})`);let i=await n.json();if(!i||typeof i!=`object`)throw Error(`pkt-header-menu: ${e} returned a non-object payload`);return i}var f=class extends e.t{constructor(...e){super(...e),this.dataUrl=r,this.locale=`nb-NO`,this.open=!1,this.ariaLabelledBy=``,this.mobileBreakpoint=768,this.loadState=`idle`,this.isMobile=!1,this.handleMediaChange=e=>{this.isMobile=e.matches}}connectedCallback(){super.connectedCallback(),this.classList.add(`pkt-header-menu`),this.updateOpenClass(),this.setupMediaQuery(),this.data?(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0}))):this.loadData()}updateOpenClass(){this.classList.toggle(`pkt-header-menu--open`,!!this.open)}disconnectedCallback(){super.disconnectedCallback(),this.abortController?.abort(),this.teardownMediaQuery()}updated(e){super.updated(e),e.has(`open`)&&this.updateOpenClass(),e.has(`mobileBreakpoint`)&&e.get(`mobileBreakpoint`)!==void 0&&this.setupMediaQuery(),e.has(`dataUrl`)&&e.get(`dataUrl`)!==void 0&&!this.data&&this.loadData(),e.has(`data`)&&e.get(`data`)!==void 0&&this.data&&(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0})))}setupMediaQuery(){this.teardownMediaQuery(),!(typeof window>`u`||typeof window.matchMedia!=`function`)&&(this.mediaQuery=window.matchMedia(`(max-width: ${this.mobileBreakpoint-1}px)`),this.isMobile=this.mediaQuery.matches,this.mediaQuery.addEventListener(`change`,this.handleMediaChange))}teardownMediaQuery(){this.mediaQuery?.removeEventListener(`change`,this.handleMediaChange),this.mediaQuery=void 0}async loadData(){this.abortController?.abort(),this.abortController=new AbortController,this.loadState=`loading`;try{let e=await d(this.dataUrl,this.abortController.signal);this.fetchedData=e,this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:e},bubbles:!0,composed:!0}))}catch(e){if(e.name===`AbortError`)return;this.loadState=`error`,this.dispatchEvent(new CustomEvent(`data-error`,{detail:{error:e},bubbles:!0,composed:!0}))}}get effectiveData(){return this.data??this.fetchedData}get localeData(){return u(this.effectiveData,this.locale)}render(){if(this.loadState===`loading`)return e.p`
2
- <nav aria-busy="true">
3
- <p class="pkt-header-menu__loading">Laster meny…</p>
4
- </nav>
5
- `;if(this.loadState===`error`||!this.localeData)return e.p`
6
- <nav aria-hidden=${!this.open}>
7
- <p class="pkt-header-menu__error">Kunne ikke laste meny.</p>
8
- </nav>
9
- `;let{megamenu:t,i18n:n}=this.localeData,r=n?.navAriaLabel||`Hovedmeny`;return this.isMobile?e.p`
10
- <nav aria-label=${r}>
11
- ${this.renderMobileAccordion(t.services,t.sections)}
12
- ${this.renderButtons(t.buttons,!0)}
13
- ${this.renderFooter(t.links,t.some)}
14
- </nav>
15
- `:e.p`
16
- <nav aria-label=${r}>
17
- ${this.renderServices(t.services)} ${this.renderButtons(t.buttons,!1)}
18
- ${this.renderSections(t.sections)}
19
- ${this.renderFooter(t.links,t.some)}
20
- </nav>
21
- `}renderMobileAccordion(t,n){return e.p`
22
- <div class="pkt-header-menu__sections">
23
- <pkt-accordion
24
- class="pkt-header-menu__sections-inner"
25
- skin="plus-minus"
26
- name="header-menu-accordion"
27
- >
28
- <pkt-accordion-item
29
- class="pkt-header-menu__section"
30
- skin="plus-minus"
31
- id="pkt-header-menu-services"
32
- title=${t.title}
33
- >
34
- ${this.renderServicesList(t)}
35
- </pkt-accordion-item>
36
- ${n.map((t,n)=>e.p`
37
- <pkt-accordion-item
38
- class="pkt-header-menu__section"
39
- skin="plus-minus"
40
- id=${`pkt-header-menu-section-${n}`}
41
- title=${t.title}
42
- >
43
- ${this.renderSectionList(t.links)}
44
- </pkt-accordion-item>
45
- `)}
46
- </pkt-accordion>
47
- </div>
48
- `}renderServicesList(t){return e.p`
49
- <ul class="pkt-header-menu__services-list">
50
- ${t.links.map(t=>e.p`
51
- <li class="pkt-header-menu__service">
52
- <a class="pkt-header-menu__service-link" href=${t.url}>
53
- <pkt-icon
54
- class="pkt-header-menu__service-icon"
55
- name=${a(t.icon)}
56
- aria-hidden="true"
57
- ></pkt-icon>
58
- <span class="pkt-header-menu__service-text">${t.text}</span>
59
- </a>
60
- </li>
61
- `)}
62
- </ul>
63
- `}renderServices(t){return e.p`
64
- <div class="pkt-header-menu__services">
65
- <h2 class="pkt-header-menu__services-title">${t.title}</h2>
66
- ${this.renderServicesList(t)}
67
- </div>
68
- `}renderButtons(n,r){return!n||n.length===0?e.d:e.p`
69
- <div class=${t.t({"pkt-header-menu__buttons":!0,"pkt-header-menu__buttons--mobile":r})}>
70
- ${n.map(t=>e.p`
71
- <a
72
- class="pkt-btn pkt-btn--secondary pkt-btn--icon-right pkt-btn--small"
73
- href=${t.url}
74
- >
75
- <pkt-icon
76
- class="pkt-btn__icon"
77
- name=${t.iconName?a(t.iconName):`user`}
78
- aria-hidden="true"
79
- ></pkt-icon>
80
- <span class="pkt-btn__text">${t.text}</span>
81
- </a>
82
- `)}
83
- </div>
84
- `}renderSections(t){return!t||t.length===0?e.d:e.p`
85
- <div class="pkt-header-menu__sections">
86
- <div class="pkt-header-menu__sections-inner">
87
- ${t.map(t=>e.p`
88
- <div class="pkt-header-menu__section">
89
- <h2 class="pkt-header-menu__section-title">${t.title}</h2>
90
- ${this.renderSectionList(t.links)}
91
- </div>
92
- `)}
93
- </div>
94
- </div>
95
- `}renderSectionList(t){return e.p`
96
- <ul class="pkt-header-menu__section-list">
97
- ${t.map(t=>e.p`
98
- <li>
99
- <a class="pkt-header-menu__section-link" href=${t.url}>${t.text}</a>
100
- </li>
101
- `)}
102
- </ul>
103
- `}renderFooter(t,n){return(!t||t.length===0)&&(!n||n.length===0)?e.d:e.p`
104
- <div class="pkt-header-menu__footer">
105
- ${t&&t.length>0?e.p`
106
- <ul class="pkt-header-menu__footer-list">
107
- ${t.map(t=>e.p`
108
- <li>
109
- <a class="pkt-header-menu__footer-link" href=${t.url}>${t.text}</a>
110
- </li>
111
- `)}
112
- </ul>
113
- `:e.d}
114
- ${n&&n.length>0?e.p`
115
- <ul class="pkt-header-menu__footer-list pkt-header-menu__footer-list--social">
116
- ${n.map(e=>this.renderSocialLink(e))}
117
- </ul>
118
- `:e.d}
119
- </div>
120
- `}renderSocialLink(t){let n=c(t.url,t.text);return e.p`
121
- <li>
122
- <a class="pkt-header-menu__social-link" href=${t.url} aria-label=${t.text}>
123
- ${n?e.p`<pkt-icon name=${n} aria-hidden="true"></pkt-icon>`:e.p`<span>${t.text}</span>`}
124
- </a>
125
- </li>
126
- `}};e.n([e.o({type:String,attribute:`data-url`})],f.prototype,`dataUrl`,void 0),e.n([e.o({type:Object,attribute:!1})],f.prototype,`data`,void 0),e.n([e.o({type:String})],f.prototype,`locale`,void 0),e.n([e.o({type:Boolean,reflect:!0,converter:n.t})],f.prototype,`open`,void 0),e.n([e.o({type:String,attribute:`aria-labelledby`,reflect:!0})],f.prototype,`ariaLabelledBy`,void 0),e.n([e.o({type:Number,attribute:`mobile-breakpoint`})],f.prototype,`mobileBreakpoint`,void 0),e.n([e.a()],f.prototype,`loadState`,void 0),e.n([e.a()],f.prototype,`fetchedData`,void 0),e.n([e.a()],f.prototype,`isMobile`,void 0);try{e.s(`pkt-header-menu`)(f)}catch{console.warn(`Forsøker å definere <pkt-header-menu>, men den er allerede definert`)}var p=f;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
@@ -1,35 +0,0 @@
1
- const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),n=require("./element-with-slot-BY7Jc-q8.cjs");require("./icon-B8PVq2O6.cjs");const r=require("./ref-DO7TzO4O.cjs");var i=`pkt-modal--open`,a=`data-pkt-modal-open-count`,o=()=>{let e=document.body.getAttribute(a),t=e?parseInt(e,10):0;return Number.isFinite(t)&&t>0?t:0},s=e=>{e<=0?(document.body.removeAttribute(a),document.body.classList.remove(i)):(document.body.setAttribute(a,String(e)),document.body.classList.add(i))},c=e=>{e.locked||(e.locked=!0,s(o()+1))},l=e=>{e.locked&&(e.locked=!1,s(o()-1))},u=()=>({locked:!1}),d={name:`pkt-modal`,react:`PktModal`,"css-class":`pkt-modal`,isElement:!0,isPureReact:!0,events:{"background-click":{description:`Event som trigges når bakgrunnen trykkes på`},close:{description:`Event som trigges når meldingsboksen lukkes`}},props:{open:{name:`Åpen`,description:`Deklarativ styring av modalens åpen/lukket-tilstand. Kan brukes i stedet for showModal()/close()-metodene.`,type:`boolean`,category:`tech`,default:!1},headingText:{name:`Heading text`,description:`Heading tekst på modalen`,type:`string`,category:`contents`},hideCloseButton:{name:`Gjem 'Lukk'-knapp`,description:`Gjemmer lukkeknappen. Dersom denne er satt til true, vil ikke lukkeknappen vises, og dermed er det viktig at man tilbyr en annen måte som f.eks. en knapp for å lukke modalen på.`,type:`boolean`,category:`ui`,default:!1},closeOnBackdropClick:{name:`Lukk modalen når bakgrunnen trykkes på`,description:`Lukk modalen når bakgrunnen trykkes på`,type:`boolean`,category:`tech`,default:!1},closeButtonSkin:{name:`Stil på lukkeknappen`,description:`Stil på lukkeknappen`,type:[`blue`,`yellow-filled`],category:`ui`,default:`blue`},size:{name:`Størrelse`,description:`Størrelsen på modalen`,type:[`small`,`medium`,`large`,`fit-content`],category:`ui`,default:`medium`},variant:{name:`Variant`,description:`Standard dialog eller skuff`,type:[`dialog`,`drawer`],category:`ui`,default:`dialog`},drawerPosition:{name:`Skuffposisjon`,description:`Posisjonen til skuffen`,type:[`left`,`right`],category:`ui`,default:`right`},transparentBackdrop:{name:`Gjennomsiktig bakgrunn`,description:`Bakgrunnen er gjennomsiktig`,type:`boolean`,category:`ui`,default:!1},removePadding:{name:`Fjern padding`,description:`Fjerner paddingen rundt innholdet i modalen`,type:`boolean`,category:`ui`,default:!1}},slots:{default:{description:`Innholdet i meldingen. Her tilbyr vi støtteklasser for å style 1-3 knapper i modalen.`}}},f=class extends n.t{constructor(){super(),this.open=!1,this.headingText=``,this.removePadding=!1,this.hideCloseButton=d.props.hideCloseButton.default,this.closeOnBackdropClick=d.props.closeOnBackdropClick.default,this.closeButtonSkin=`blue`,this.size=d.props.size.default,this.variant=`dialog`,this.drawerPosition=`right`,this.transparentBackdrop=!1,this.dialogRef=r.t(),this._scrollLockToken=u(),this._isOpen=!1,this.close=(e,t=!1)=>{if(!this._isOpen)return;this._isOpen=!1,this.open=!1,l(this._scrollLockToken);let n=document.activeElement;n&&!this.isElementInViewport(n)&&n.scrollIntoView({behavior:`smooth`,block:`nearest`}),this.dispatchEvent(new CustomEvent(`close`,{detail:{origin:e},bubbles:!0,composed:!0})),t||this.dialogRef.value?.close(),this.requestUpdate()},this.showModal=(e=null)=>{this._isOpen=!0,this.open=!0,this.dialogRef.value?.showModal(),c(this._scrollLockToken),this.dispatchEvent(new CustomEvent(`showModal`,{detail:{origin:e},bubbles:!0,composed:!0})),this.requestUpdate()},this._isOpen=!1}async connectedCallback(){super.connectedCallback(),document.addEventListener(`keydown`,this.handleKeyDown.bind(this)),document.addEventListener(`click`,this.handleBackdropClick.bind(this))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`click`,this.handleBackdropClick),l(this._scrollLockToken)}updated(e){super.updated(e),e.has(`open`)&&(this.open&&!this._isOpen?this.showModal():!this.open&&this._isOpen&&this.close(new Event(`close`),!1))}async firstUpdated(e){super.firstUpdated(e),this.dialogRef.value&&!window.HTMLDialogElement&&!this.dialogRef.value.showModal&&(`document`in window&&`createElement`in document&&(await Promise.resolve().then(()=>require("./dialog-polyfill.esm-J-GKtwrS.cjs")).then(e=>e.default)).registerDialog(this.dialogRef.value),this.dialogRef.value.addEventListener(`close`,()=>{this.close(new Event(`close`),!0)}))}handleKeyDown(e){e.key===`Escape`&&this.close(e)}handleBackdropClick(e){this.closeOnBackdropClick&&e.target===this.dialogRef?.value&&this.close(e)}isElementInViewport(e){let t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}render(){let i={"pkt-modal":!0,"pkt-modal--removePadding":this.removePadding??!1,"pkt-modal--noHeadingText":this.headingText===``||this.headingText===void 0,"pkt-modal--noShadow":this.closeButtonSkin===`yellow-filled`,"pkt-modal--transparentBackdrop":this.transparentBackdrop??!1,[`pkt-modal--${this.size}`]:this.size!==void 0,[`pkt-modal__${this.variant}`]:this.variant!==void 0,[`pkt-modal__drawer--${this.drawerPosition}`]:this.variant===`drawer`},a={"pkt-modal__headingText":!0,"pkt-txt-24":!0},o={"pkt-modal__content":!0,"pkt-txt-18-light":!0},s=this.closeButtonSkin===`blue`,c={"pkt-modal__closeButton":!0,[`pkt-modal__closeButton--${this.closeButtonSkin}`]:!0};return e.p`
2
- <dialog
3
- class=${t.t(i)}
4
- ${r.n(this.dialogRef)}
5
- aria-labelledby=${this.headingText?`pkt-modal__headingText`:e.d}
6
- aria-describedby="pkt-modal__content"
7
- @close=${e=>this.close(e,!0)}
8
- >
9
- <div class="pkt-modal__wrapper">
10
- ${this.headingText||!this.hideCloseButton?e.p`<div class="pkt-modal__header">
11
- <div class="pkt-modal__header-background"></div>
12
- ${this.headingText?e.p`<h1 id="pkt-modal__headingText" class=${t.t(a)}>
13
- ${this.headingText}
14
- </h1>`:e.p`<div class="pkt-modal__headingText"></div>`}
15
- ${this.hideCloseButton?e.p`<div class="pkt-modal__noCloseButton"></div>`:e.p`<div class="${t.t(c)}">
16
- <pkt-button
17
- @click=${e=>this.close(e)}
18
- aria-label="close"
19
- iconname="close"
20
- variant="icon-only"
21
- size="medium"
22
- skin=${s?`tertiary`:`primary`}
23
- >
24
- Lukk
25
- </pkt-button>
26
- </div>`}
27
- </div>`:e.d}
28
- <div class="pkt-modal__container">
29
- <div id="pkt-modal__content" class=${t.t(o)}>
30
- ${n.n(this)}
31
- </div>
32
- </div>
33
- </div>
34
- </dialog>
35
- `}};e.n([e.o({type:Boolean,reflect:!0})],f.prototype,`open`,void 0),e.n([e.o({type:String})],f.prototype,`headingText`,void 0),e.n([e.o({type:Boolean})],f.prototype,`removePadding`,void 0),e.n([e.o({type:Boolean})],f.prototype,`hideCloseButton`,void 0),e.n([e.o({type:Boolean})],f.prototype,`closeOnBackdropClick`,void 0),e.n([e.o({type:String})],f.prototype,`closeButtonSkin`,void 0),e.n([e.o({type:String})],f.prototype,`size`,void 0),e.n([e.o({type:String})],f.prototype,`variant`,void 0),e.n([e.o({type:String})],f.prototype,`drawerPosition`,void 0),e.n([e.o({type:Boolean})],f.prototype,`transparentBackdrop`,void 0),e.n([e.a()],f.prototype,`_isOpen`,void 0);try{e.s(`pkt-modal`)(f)}catch{console.warn(`Forsøker å definere <pkt-modal>, men den er allerede definert`)}var p=f;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
@@ -1,148 +0,0 @@
1
- import { d as e, n as t, o as n, p as r, s as i, t as a } from "./element-BoJrqauR.js";
2
- import { t as o } from "./class-map-CAQCRB1W.js";
3
- import "./icon-DGFEIlco.js";
4
- import { t as s } from "./if-defined-D0bnetLJ.js";
5
- import { t as c } from "./focus-modality-controller-Dc2S-KqR.js";
6
- //#region src/components/searchinput/searchinput.ts
7
- var l = class extends a {
8
- constructor(...e) {
9
- super(...e), this.appearance = "local", this.disabled = !1, this.fullwidth = !1, this.id = "", this.placeholder = "Søk…", this.value = "", this.focusModality = new c(this, ".pkt-searchinput");
10
- }
11
- get suggestionsId() {
12
- return `${this.id}-suggestions`;
13
- }
14
- dispatchSearch() {
15
- this.dispatchEvent(new CustomEvent("pkt-search", {
16
- detail: { value: this.value },
17
- bubbles: !0,
18
- composed: !0
19
- }));
20
- }
21
- onInput(e) {
22
- let t = e.target;
23
- this.value = t.value;
24
- }
25
- onInputKeydown(e) {
26
- e.key === "Enter" && (e.preventDefault(), this.dispatchSearch());
27
- }
28
- onSearchClick(e) {
29
- e.preventDefault(), this.dispatchSearch();
30
- }
31
- onSuggestionClick(e, t, n) {
32
- let r = new CustomEvent("pkt-suggestion-click", {
33
- detail: {
34
- index: n,
35
- suggestion: t
36
- },
37
- bubbles: !0,
38
- composed: !0,
39
- cancelable: !0
40
- });
41
- this.dispatchEvent(r) || e.preventDefault();
42
- }
43
- renderSuggestion(t, n) {
44
- let i = r`
45
- ${t.title ? r`<h3 class="pkt-searchinput__suggestion-title">${t.title}</h3>` : e}
46
- ${t.text ? r`<p class="pkt-searchinput__suggestion-text">${t.text}</p>` : e}
47
- `;
48
- return t.href ? r`<a
49
- href=${t.href}
50
- class="pkt-searchinput__suggestion"
51
- @click=${(e) => this.onSuggestionClick(e, t, n)}
52
- >
53
- ${i}
54
- </a>` : t.nonInteractive ? r`<div class="pkt-searchinput__suggestion">${i}</div>` : r`<button
55
- type="button"
56
- class="pkt-searchinput__suggestion"
57
- @click=${(e) => this.onSuggestionClick(e, t, n)}
58
- >
59
- ${i}
60
- </button>`;
61
- }
62
- render() {
63
- let t = o({
64
- "pkt-searchinput": !0,
65
- [`pkt-searchinput--${this.appearance}`]: !0,
66
- "pkt-searchinput--fullwidth": this.fullwidth
67
- }), n = o({
68
- "pkt-searchinput__button": !0,
69
- "pkt-input-icon": this.appearance === "local",
70
- "pkt-btn": !0,
71
- "pkt-btn--medium": !0,
72
- "pkt-btn--icon-only": !0,
73
- "pkt-btn--tertiary": this.appearance === "local",
74
- "pkt-btn--primary": this.appearance === "global" || this.appearance === "local-with-button",
75
- "pkt-btn--yellow": this.appearance === "global"
76
- }), i = o({
77
- "pkt-input": !0,
78
- "pkt-input--fullwidth": this.fullwidth
79
- }), a = this.appearance === "local" ? "pkt-input__container" : "pkt-searchinput__field", c = r`
80
- ${this.label ? r`<label for=${s(this.id || void 0)} class="pkt-inputwrapper__label"
81
- >${this.label}</label
82
- >` : e}
83
- <div class=${a}>
84
- <input
85
- class=${i}
86
- type="search"
87
- name=${this.name || this.id}
88
- id=${this.id}
89
- placeholder=${this.placeholder || "Søk…"}
90
- .value=${this.value}
91
- ?disabled=${this.disabled}
92
- autocomplete="off"
93
- aria-autocomplete="list"
94
- aria-controls=${this.suggestionsId}
95
- @input=${this.onInput}
96
- @keydown=${this.onInputKeydown}
97
- />
98
- <button
99
- type="submit"
100
- class=${n}
101
- ?disabled=${this.disabled}
102
- @click=${this.onSearchClick}
103
- >
104
- <pkt-icon class="pkt-btn__icon" name="magnifying-glass-big" />
105
- <span class="pkt-btn__text">${this.label || this.placeholder || "Søk…"}</span>
106
- </button>
107
- </div>
108
- ${this.suggestions ? r`<ul
109
- id=${this.suggestionsId}
110
- class="pkt-searchinput__suggestions"
111
- aria-live="assertive"
112
- >
113
- ${this.suggestions.map((e, t) => r` <li>${this.renderSuggestion(e, t)}</li> `)}
114
- </ul>` : e}
115
- `;
116
- return this.action ? r`<form
117
- role="search"
118
- class=${t}
119
- action=${this.action}
120
- method=${s(this.method)}
121
- @submit=${(e) => {
122
- e.preventDefault();
123
- }}
124
- >
125
- ${c}
126
- </form>` : r`<div role="search" class=${t}>${c}</div>`;
127
- }
128
- };
129
- t([n({ type: String })], l.prototype, "appearance", void 0), t([n({
130
- type: Boolean,
131
- reflect: !0
132
- })], l.prototype, "disabled", void 0), t([n({
133
- type: Boolean,
134
- reflect: !0
135
- })], l.prototype, "fullwidth", void 0), t([n({
136
- type: String,
137
- reflect: !0
138
- })], l.prototype, "id", void 0), t([n({ type: String })], l.prototype, "label", void 0), t([n({ type: String })], l.prototype, "name", void 0), t([n({ type: String })], l.prototype, "placeholder", void 0), t([n({ type: String })], l.prototype, "value", void 0), t([n({ type: Array })], l.prototype, "suggestions", void 0), t([n({ type: String })], l.prototype, "action", void 0), t([n({ type: String })], l.prototype, "method", void 0);
139
- try {
140
- i("pkt-searchinput")(l);
141
- } catch {
142
- console.warn("Forsøker å definere <pkt-searchinput>, men den er allerede definert");
143
- }
144
- //#endregion
145
- //#region src/components/searchinput/index.ts
146
- var u = l;
147
- //#endregion
148
- export { l as n, u as t };
@@ -1,60 +0,0 @@
1
- const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs");require("./icon-B8PVq2O6.cjs");const n=require("./if-defined-DrwbxQOj.cjs"),r=require("./focus-modality-controller-C1ocyv2J.cjs");var i=class extends e.t{constructor(...e){super(...e),this.appearance=`local`,this.disabled=!1,this.fullwidth=!1,this.id=``,this.placeholder=`Søk…`,this.value=``,this.focusModality=new r.t(this,`.pkt-searchinput`)}get suggestionsId(){return`${this.id}-suggestions`}dispatchSearch(){this.dispatchEvent(new CustomEvent(`pkt-search`,{detail:{value:this.value},bubbles:!0,composed:!0}))}onInput(e){let t=e.target;this.value=t.value}onInputKeydown(e){e.key===`Enter`&&(e.preventDefault(),this.dispatchSearch())}onSearchClick(e){e.preventDefault(),this.dispatchSearch()}onSuggestionClick(e,t,n){let r=new CustomEvent(`pkt-suggestion-click`,{detail:{index:n,suggestion:t},bubbles:!0,composed:!0,cancelable:!0});this.dispatchEvent(r)||e.preventDefault()}renderSuggestion(t,n){let r=e.p`
2
- ${t.title?e.p`<h3 class="pkt-searchinput__suggestion-title">${t.title}</h3>`:e.d}
3
- ${t.text?e.p`<p class="pkt-searchinput__suggestion-text">${t.text}</p>`:e.d}
4
- `;return t.href?e.p`<a
5
- href=${t.href}
6
- class="pkt-searchinput__suggestion"
7
- @click=${e=>this.onSuggestionClick(e,t,n)}
8
- >
9
- ${r}
10
- </a>`:t.nonInteractive?e.p`<div class="pkt-searchinput__suggestion">${r}</div>`:e.p`<button
11
- type="button"
12
- class="pkt-searchinput__suggestion"
13
- @click=${e=>this.onSuggestionClick(e,t,n)}
14
- >
15
- ${r}
16
- </button>`}render(){let r=t.t({"pkt-searchinput":!0,[`pkt-searchinput--${this.appearance}`]:!0,"pkt-searchinput--fullwidth":this.fullwidth}),i=t.t({"pkt-searchinput__button":!0,"pkt-input-icon":this.appearance===`local`,"pkt-btn":!0,"pkt-btn--medium":!0,"pkt-btn--icon-only":!0,"pkt-btn--tertiary":this.appearance===`local`,"pkt-btn--primary":this.appearance===`global`||this.appearance===`local-with-button`,"pkt-btn--yellow":this.appearance===`global`}),a=t.t({"pkt-input":!0,"pkt-input--fullwidth":this.fullwidth}),o=this.appearance===`local`?`pkt-input__container`:`pkt-searchinput__field`,s=e.p`
17
- ${this.label?e.p`<label for=${n.t(this.id||void 0)} class="pkt-inputwrapper__label"
18
- >${this.label}</label
19
- >`:e.d}
20
- <div class=${o}>
21
- <input
22
- class=${a}
23
- type="search"
24
- name=${this.name||this.id}
25
- id=${this.id}
26
- placeholder=${this.placeholder||`Søk…`}
27
- .value=${this.value}
28
- ?disabled=${this.disabled}
29
- autocomplete="off"
30
- aria-autocomplete="list"
31
- aria-controls=${this.suggestionsId}
32
- @input=${this.onInput}
33
- @keydown=${this.onInputKeydown}
34
- />
35
- <button
36
- type="submit"
37
- class=${i}
38
- ?disabled=${this.disabled}
39
- @click=${this.onSearchClick}
40
- >
41
- <pkt-icon class="pkt-btn__icon" name="magnifying-glass-big" />
42
- <span class="pkt-btn__text">${this.label||this.placeholder||`Søk…`}</span>
43
- </button>
44
- </div>
45
- ${this.suggestions?e.p`<ul
46
- id=${this.suggestionsId}
47
- class="pkt-searchinput__suggestions"
48
- aria-live="assertive"
49
- >
50
- ${this.suggestions.map((t,n)=>e.p` <li>${this.renderSuggestion(t,n)}</li> `)}
51
- </ul>`:e.d}
52
- `;return this.action?e.p`<form
53
- role="search"
54
- class=${r}
55
- action=${this.action}
56
- method=${n.t(this.method)}
57
- @submit=${e=>{e.preventDefault()}}
58
- >
59
- ${s}
60
- </form>`:e.p`<div role="search" class=${r}>${s}</div>`}};e.n([e.o({type:String})],i.prototype,`appearance`,void 0),e.n([e.o({type:Boolean,reflect:!0})],i.prototype,`disabled`,void 0),e.n([e.o({type:Boolean,reflect:!0})],i.prototype,`fullwidth`,void 0),e.n([e.o({type:String,reflect:!0})],i.prototype,`id`,void 0),e.n([e.o({type:String})],i.prototype,`label`,void 0),e.n([e.o({type:String})],i.prototype,`name`,void 0),e.n([e.o({type:String})],i.prototype,`placeholder`,void 0),e.n([e.o({type:String})],i.prototype,`value`,void 0),e.n([e.o({type:Array})],i.prototype,`suggestions`,void 0),e.n([e.o({type:String})],i.prototype,`action`,void 0),e.n([e.o({type:String})],i.prototype,`method`,void 0);try{e.s(`pkt-searchinput`)(i)}catch{console.warn(`Forsøker å definere <pkt-searchinput>, men den er allerede definert`)}var a=i;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
@@ -1,10 +0,0 @@
1
- export declare const acquireModalScrollLock: (token: {
2
- locked: boolean;
3
- }) => void;
4
- export declare const releaseModalScrollLock: (token: {
5
- locked: boolean;
6
- }) => void;
7
- export type ModalScrollLockToken = {
8
- locked: boolean;
9
- };
10
- export declare const createModalScrollLockToken: () => ModalScrollLockToken;
@@ -1,40 +0,0 @@
1
- const e=require("./element-DJzurxgt.cjs"),t=require("./element-with-slot-BY7Jc-q8.cjs"),n=require("./if-defined-DrwbxQOj.cjs"),r=require("./ref-DO7TzO4O.cjs");var i=class extends Event{constructor(e,t,n,r){super(`context-request`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t,this.callback=n,this.subscribe=r??!1}};function a(e){return e}var o=class{constructor(e,t,n,r){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(e,t)=>{this.unsubscribe&&(this.unsubscribe!==t&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=e,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(e,t)),this.unsubscribe=t},this.host=e,t.context!==void 0){let e=t;this.context=e.context,this.callback=e.callback,this.subscribe=e.subscribe??!1}else this.context=t,this.callback=n,this.subscribe=r??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&=(this.unsubscribe(),void 0)}dispatchRequest(){this.host.dispatchEvent(new i(this.context,this.host,this.t,this.subscribe))}},s=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){let n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:t}]of this.subscriptions)e(this.o,t)},e!==void 0&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});let{disposer:r}=this.subscriptions.get(e);e(this.value,r)}clearCallbacks(){this.subscriptions.clear()}},c=class extends Event{constructor(e,t){super(`context-provider`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},l=class extends s{constructor(e,t,n){super(t.context===void 0?n:t.initialValue),this.onContextRequest=e=>{if(e.context!==this.context)return;let t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=e=>{if(e.context!==this.context||(e.contextTarget??e.composedPath()[0])===this.host)return;let t=new Set;for(let[e,{consumerHost:n}]of this.subscriptions)t.has(e)||(t.add(e),n.dispatchEvent(new i(this.context,n,e,!0)));e.stopPropagation()},this.host=e,t.context===void 0?this.context=t:this.context=t.context,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(`context-request`,this.onContextRequest),this.host.addEventListener(`context-provider`,this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new c(this.context,this.host))}};function u({context:e}){return(t,n)=>{let r=new WeakMap;if(typeof n==`object`)return{get(){return t.get.call(this)},set(e){return r.get(this).setValue(e),t.set.call(this,e)},init(t){return r.set(this,new l(this,{context:e,initialValue:t})),t}};{t.constructor.addInitializer((t=>{r.set(t,new l(t,{context:e}))}));let i=Object.getOwnPropertyDescriptor(t,n),a;if(i===void 0){let e=new WeakMap;a={get(){return e.get(this)},set(t){r.get(this).setValue(t),e.set(this,t)},configurable:!0,enumerable:!0}}else{let e=i.set;a={...i,set(t){r.get(this).setValue(t),e?.call(this,t)}}}Object.defineProperty(t,n,a);return}}}function d({context:e,subscribe:t}){return(n,r)=>{typeof r==`object`?r.addInitializer((function(){new o(this,{context:e,callback:e=>{n.set.call(this,e)},subscribe:t})})):n.constructor.addInitializer((n=>{new o(n,{context:e,callback:e=>{n[r]=e},subscribe:t})}))}}var f=a(Symbol(`pkt-tabs-context`)),p=class extends t.t{constructor(...e){super(...e),this.arrowNav=!0,this.disableArrowNav=!1,this.separatorIconName=``,this.separatorIconPath=``,this.tabRefs=[],this.disabledMap={},this.tabCount=0,this.context={useArrowNav:this.useArrowNav,registerTab:this.registerTab.bind(this),handleClick:this.handleClick.bind(this),handleKeyUp:this.handleKeyUp.bind(this)}}get useArrowNav(){return this.arrowNav&&!this.disableArrowNav}updated(e){(e.has(`arrowNav`)||e.has(`disableArrowNav`))&&(this.context={...this.context,useArrowNav:this.useArrowNav}),this.updateComplete.then(()=>this.syncSeparators())}syncSeparators(){let e=this.querySelector(`.pkt-tabs__list`);if(!e||(e.querySelectorAll(`.pkt-tabs__separator`).forEach(e=>e.remove()),!(this.separatorIconName||this.separatorIconPath)))return;let t=Array.from(e.children).filter(e=>!e.classList.contains(`pkt-tabs__separator`));for(let e=0;e<t.length-1;e++){let n=document.createElement(`span`);if(n.className=`pkt-tabs__separator`,n.setAttribute(`aria-hidden`,`true`),n.setAttribute(`role`,`presentation`),this.separatorIconPath){let e=document.createElement(`img`);e.setAttribute(`src`,this.separatorIconPath),e.setAttribute(`alt`,``),e.setAttribute(`aria-hidden`,`true`),n.appendChild(e)}else if(this.separatorIconName){let e=document.createElement(`pkt-icon`);e.setAttribute(`name`,this.separatorIconName),e.classList.add(`pkt-tabs__separator-icon`),n.appendChild(e)}t[e].after(n)}}registerTab(e,t,n=!1){this.tabRefs[t]=e,this.disabledMap[t]=n,this.tabCount=Math.max(this.tabCount,t+1)}isTabDisabled(e){return!!this.disabledMap[e]}findEnabledIndex(e,t){let n=e+t;for(;n>=0&&n<this.tabCount;){if(!this.isTabDisabled(n))return n;n+=t}return null}handleClick(e){this.isTabDisabled(e)||this.dispatchEvent(new CustomEvent(`tab-selected`,{detail:{index:e},bubbles:!0,composed:!0}))}handleKeyUp(e,t){if(this.useArrowNav){if(e.key===`ArrowLeft`){e.preventDefault();let n=this.findEnabledIndex(t,-1);n!==null&&this.tabRefs[n]?.focus()}if(e.key===`ArrowRight`){e.preventDefault();let n=this.findEnabledIndex(t,1);n!==null&&this.tabRefs[n]?.focus()}(e.key===`Enter`||e.key===` `||e.key===`Spacebar`||e.key===`ArrowDown`)&&(e.preventDefault(),this.handleClick(t))}}render(){let n=this.useArrowNav?`tablist`:`navigation`;return e.p`
2
- <div class=${this.separatorIconName||this.separatorIconPath?`pkt-tabs pkt-tabs--with-separator`:`pkt-tabs`}>
3
- <div class="pkt-tabs__list" role=${n}>${t.n(this)}</div>
4
- </div>
5
- `}};e.n([e.o({type:Boolean,reflect:!0,attribute:`arrow-nav`})],p.prototype,`arrowNav`,void 0),e.n([e.o({type:Boolean,reflect:!0,attribute:`disable-arrow-nav`})],p.prototype,`disableArrowNav`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`separator-icon-name`})],p.prototype,`separatorIconName`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`separator-icon-path`})],p.prototype,`separatorIconPath`,void 0),e.n([e.a()],p.prototype,`tabRefs`,void 0),e.n([e.a()],p.prototype,`disabledMap`,void 0),e.n([e.a()],p.prototype,`tabCount`,void 0),e.n([u({context:f}),e.a()],p.prototype,`context`,void 0);try{e.s(`pkt-tabs`)(p)}catch{console.warn(`Forsøker å definere <pkt-tabs>, men den er allerede definert`)}var m=class extends t.t{constructor(){super(),this.active=!1,this.disabled=!1,this.href=``,this.icon=``,this.controls=``,this.tag=``,this.tagSkin=`blue`,this.index=0,this.elementRef=r.t()}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{this.elementRef.value&&this.context&&this.context.registerTab(this.elementRef.value,this.index,this.disabled)})}updated(){this.elementRef.value&&this.context&&this.context.registerTab(this.elementRef.value,this.index,this.disabled)}handleClick(e){if(this.disabled){e.preventDefault(),e.stopPropagation();return}this.context&&this.context.handleClick(this.index)}handleKeyDown(e){if(this.disabled&&(e.key===`Enter`||e.key===` `||e.key===`Spacebar`)){e.preventDefault(),e.stopPropagation();return}this.context&&this.context.handleKeyUp(e,this.index)}render(){let i=this.context?.useArrowNav??!0,a=this.active&&!this.disabled,o=[a?`active`:``,this.disabled?`pkt-tabs__item--disabled`:``].filter(Boolean).join(` `),s=i?`tab`:void 0,c=i?a:void 0,l=this.disabled?-1:a||!i?void 0:-1,u=`pkt-icon--small ${this.icon===`check`?`pkt-tabs__status-icon`:``}`,d=e.p`
6
- ${this.icon?e.p`<pkt-icon name=${this.icon} class=${u}></pkt-icon>`:``}
7
- <span>${t.n(this)}</span>
8
- ${this.tag?e.p`<pkt-tag skin=${this.tagSkin} size="small">${this.tag}</pkt-tag>`:``}
9
- `;return this.href?e.p`
10
- <a
11
- ${r.n(this.elementRef)}
12
- href=${n.t(this.disabled?void 0:this.href)}
13
- class="pkt-tabs__link ${o}"
14
- role=${n.t(s)}
15
- aria-selected=${n.t(c)}
16
- aria-disabled=${n.t(this.disabled?`true`:void 0)}
17
- aria-controls=${n.t(this.controls||void 0)}
18
- tabindex=${n.t(l)}
19
- @click=${this.handleClick}
20
- @keydown=${this.handleKeyDown}
21
- >
22
- ${d}
23
- </a>
24
- `:e.p`
25
- <button
26
- ${r.n(this.elementRef)}
27
- type="button"
28
- class="pkt-tabs__button pkt-link-button ${o}"
29
- ?disabled=${this.disabled}
30
- aria-disabled=${n.t(this.disabled?`true`:void 0)}
31
- role=${n.t(s)}
32
- aria-selected=${n.t(c)}
33
- aria-controls=${n.t(this.controls||void 0)}
34
- tabindex=${n.t(l)}
35
- @click=${this.handleClick}
36
- @keydown=${this.handleKeyDown}
37
- >
38
- ${d}
39
- </button>
40
- `}};e.n([e.o({type:Boolean,reflect:!0})],m.prototype,`active`,void 0),e.n([e.o({type:Boolean,reflect:!0})],m.prototype,`disabled`,void 0),e.n([e.o({type:String,reflect:!0})],m.prototype,`href`,void 0),e.n([e.o({type:String,reflect:!0})],m.prototype,`icon`,void 0),e.n([e.o({type:String,reflect:!0})],m.prototype,`controls`,void 0),e.n([e.o({type:String,reflect:!0})],m.prototype,`tag`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`tag-skin`})],m.prototype,`tagSkin`,void 0),e.n([e.o({type:Number,reflect:!0})],m.prototype,`index`,void 0),e.n([d({context:f,subscribe:!0}),e.o({attribute:!1})],m.prototype,`context`,void 0);try{e.s(`pkt-tab-item`)(m)}catch{console.warn(`Forsøker å definere <pkt-tab-item>, men den er allerede definert`)}var h=p;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});