@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
@@ -0,0 +1,78 @@
1
+ import { PktElement } from '../../base-elements/element';
2
+ import { PropertyValues, TemplateResult } from 'lit';
3
+ import { Booleanish, IPktHeaderGlobal, Representing, THeaderFooterApi, THeaderMenuLocale, THeaderPosition, THeaderScrollBehavior, TLogOutButtonPlacement, User, UserMenuItem } from './types';
4
+ export declare class PktHeaderGlobal extends PktElement<IPktHeaderGlobal> implements IPktHeaderGlobal {
5
+ dataUrl?: string;
6
+ data?: THeaderFooterApi;
7
+ locale: THeaderMenuLocale;
8
+ logoLink: string;
9
+ logoPath: string | undefined;
10
+ searchPlaceholder?: string;
11
+ position: THeaderPosition;
12
+ scrollBehavior: THeaderScrollBehavior;
13
+ mobileBreakpoint: number;
14
+ tabletBreakpoint: number;
15
+ logOutButtonPlacement: TLogOutButtonPlacement;
16
+ showSearch: Booleanish;
17
+ showContact: Booleanish;
18
+ canChangeRepresentation: Booleanish;
19
+ hasLogOut: Booleanish;
20
+ user?: User;
21
+ userMenu?: UserMenuItem[];
22
+ representing?: Representing;
23
+ private openMenu;
24
+ private fetchedData?;
25
+ private loadError;
26
+ private headerAnchor;
27
+ private headerRef;
28
+ private menuContainerRef;
29
+ private userContainerRef;
30
+ private abortController?;
31
+ private chrome;
32
+ private get isMobile();
33
+ private get isTablet();
34
+ private get isHidden();
35
+ connectedCallback(): void;
36
+ disconnectedCallback(): void;
37
+ firstUpdated(): void;
38
+ willUpdate(changedProperties: PropertyValues): void;
39
+ private get overlayAnchorStyle();
40
+ updated(changedProperties: PropertyValues): void;
41
+ private loadData;
42
+ private emitDataLoaded;
43
+ private get effectiveData();
44
+ private get localeData();
45
+ private get shouldHideOnScroll();
46
+ private get isFixed();
47
+ private get isSticky();
48
+ private toggleMenu;
49
+ private handleClickOutside;
50
+ private handleEscapeKey;
51
+ private get activeOverlay();
52
+ private focusToggle;
53
+ private handleOverlayKeydown;
54
+ private handleOverlayFocusIn;
55
+ private handleSearch;
56
+ private handleLogout;
57
+ private handleChangeRepresentation;
58
+ private get formattedLastLoggedIn();
59
+ private get showLogoutInUserMenu();
60
+ private handleLogoClick;
61
+ private renderLogo;
62
+ private renderSearch;
63
+ private renderContact;
64
+ private get isLoading();
65
+ private renderMenuToggle;
66
+ private renderSearchToggle;
67
+ private renderSearchPanel;
68
+ private renderUser;
69
+ private get overlayBreakpointClass();
70
+ private renderMenu;
71
+ private renderHeader;
72
+ render(): TemplateResult<1>;
73
+ }
74
+ declare global {
75
+ interface HTMLElementTagNameMap {
76
+ 'pkt-header-global': PktHeaderGlobal;
77
+ }
78
+ }
File without changes
@@ -4,7 +4,7 @@ import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement,
4
4
  export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> implements IPktHeader {
5
5
  serviceName?: string;
6
6
  serviceLink?: string;
7
- logoLink?: string;
7
+ logoLink: string;
8
8
  logoPath: string | undefined;
9
9
  searchPlaceholder: string;
10
10
  searchValue: string;
@@ -24,11 +24,7 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
24
24
  user?: User;
25
25
  userMenu?: UserMenuItem[];
26
26
  representing?: Representing;
27
- private isMobile;
28
- private isTablet;
29
27
  private openMenu;
30
- private isHidden;
31
- private componentWidth;
32
28
  private alignSlotRight;
33
29
  private alignSearchRight;
34
30
  private headerRef;
@@ -37,28 +33,16 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
37
33
  private searchContainerRef;
38
34
  private slotContentRef;
39
35
  private searchMenuRef;
40
- private resizeObserver?;
41
- private lastScrollPosition;
42
- private savedScrollY;
43
- private lastFocusedElement;
44
- private shouldRestoreFocus;
45
- connectedCallback(): void;
46
- disconnectedCallback(): void;
36
+ private chrome;
37
+ private get isMobile();
38
+ private get isTablet();
39
+ private get isHidden();
47
40
  firstUpdated(): void;
48
41
  updated(changedProperties: PropertyValues): void;
49
- private setupResizeObserver;
50
- private updateIsMobile;
51
- private updateIsTablet;
52
- private updateScrollLock;
53
- private lockScroll;
54
- private unlockScroll;
55
- private setupScrollListener;
56
- private handleScroll;
57
42
  private handleClickOutside;
58
43
  private handleSlotContentClick;
59
44
  private handleFocusOut;
60
45
  private handleEscapeKey;
61
- private restoreFocus;
62
46
  private checkDropdownAlignment;
63
47
  private handleMenuToggle;
64
48
  private handleLogoClick;
@@ -70,6 +54,7 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
70
54
  private handleSearchKeyDown;
71
55
  private get formattedLastLoggedIn();
72
56
  private get isFixed();
57
+ private get isSticky();
73
58
  private get shouldHideOnScroll();
74
59
  private get showLogoutInHeader();
75
60
  private get showLogoutInUserMenu();
@@ -5,7 +5,7 @@ export interface HeaderServiceTestConfig extends BaseTestConfig {
5
5
  'logo-link'?: string;
6
6
  compact?: boolean;
7
7
  'hide-logo'?: boolean;
8
- position?: 'fixed' | 'relative';
8
+ position?: 'fixed' | 'sticky' | 'relative';
9
9
  'scroll-behavior'?: 'hide' | 'none';
10
10
  'show-search'?: boolean;
11
11
  'search-placeholder'?: string;
@@ -1,6 +1,6 @@
1
1
  import { PktElementWithSlot } from '../../base-elements/element-with-slot';
2
2
  import { PropertyValues } from 'lit';
3
- import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, Booleanish } from './types';
3
+ import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, THeaderFooterApi, THeaderMenuLocale, IPktHeader, Booleanish } from './types';
4
4
  /**
5
5
  * PktHeader - Main header component for Oslo kommune services
6
6
  *
@@ -11,9 +11,12 @@ import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement,
11
11
  * - Responsive mobile menu
12
12
  * - Fixed positioning with scroll-to-hide
13
13
  *
14
- * TODO: Add `type` prop to switch between `service` and `global` header types
14
+ * The `type` prop switches between the `service` header (a customizable
15
+ * header for a single service, the default) and the `global`
16
+ * (kommune-wide) header driven by the shared header/footer payload.
15
17
  */
16
18
  export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements IPktHeader {
19
+ type: THeaderType;
17
20
  serviceName?: string;
18
21
  serviceLink?: string;
19
22
  logoLink?: string;
@@ -30,12 +33,16 @@ export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements
30
33
  slotMenuText: string;
31
34
  hideLogo: Booleanish;
32
35
  compact: Booleanish;
33
- showSearch: Booleanish;
36
+ showSearch?: Booleanish;
34
37
  canChangeRepresentation: Booleanish;
35
38
  hasLogOut: Booleanish;
36
39
  user?: User;
37
40
  userMenu?: UserMenuItem[];
38
41
  representing?: Representing;
42
+ dataUrl?: string;
43
+ data?: THeaderFooterApi;
44
+ locale?: THeaderMenuLocale;
45
+ showContact: Booleanish;
39
46
  userMenuFooter?: UserMenuItem[];
40
47
  userOptions?: UserMenuItem[];
41
48
  firstUpdated(changedProperties: PropertyValues): void;
@@ -44,6 +51,7 @@ export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements
44
51
  * Convert deprecated props to new props
45
52
  */
46
53
  private get effectiveUserMenu();
54
+ private renderGlobal;
47
55
  render(): import('lit').TemplateResult<1>;
48
56
  }
49
57
  declare global {
File without changes
@@ -1,5 +1,6 @@
1
1
  export { PktHeader } from './header';
2
2
  export { PktHeaderService } from './header-service';
3
+ export { PktHeaderGlobal } from './header-global';
3
4
  export { PktHeaderUserMenu } from './header-user-menu';
4
- export type { User, Representing, UserMenuItem, TInternalMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, } from './types';
5
+ export type { User, Representing, UserMenuItem, TInternalMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, TGlobalHeaderMenu, THeaderFooterApi, THeaderMenuLocale, IPktHeader, IPktHeaderGlobal, } from './types';
5
6
  export { formatLastLoggedIn } from './header-utils';
@@ -1,6 +1,10 @@
1
1
  import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon';
2
- import { booleanishConverter, Booleanish, User as SharedUser, Representing as SharedRepresenting, UserMenuItem as SharedUserMenuItem, TInternalMenuItem as SharedTInternalMenuItem, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior } from '../../shared-types';
3
- export type { Booleanish, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, };
2
+ import { booleanishConverter, Booleanish, User as SharedUser, Representing as SharedRepresenting, UserMenuItem as SharedUserMenuItem, TInternalMenuItem as SharedTInternalMenuItem, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, THeaderFooterApi, THeaderMenuLocale, IPktHeaderGlobal as ISharedPktHeaderGlobal } from '../../shared-types';
3
+ export type { Booleanish, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, THeaderFooterApi, THeaderMenuLocale, };
4
+ /** Which header variant `<pkt-header>` renders. */
5
+ export type THeaderType = 'service' | 'global';
6
+ /** Which dropdown/overlay is open in the global header. */
7
+ export type TGlobalHeaderMenu = 'none' | 'menu' | 'user' | 'search';
4
8
  export { booleanishConverter };
5
9
  export type User = SharedUser;
6
10
  export type Representing = SharedRepresenting;
@@ -58,4 +62,26 @@ export interface IPktHeader {
58
62
  slotMenuVariant?: TSlotMenuVariant;
59
63
  /** Text for the slot menu button. Default: 'Meny' */
60
64
  slotMenuText?: string;
65
+ /** Which header variant to render. Default: 'service' */
66
+ type?: THeaderType;
67
+ }
68
+ /**
69
+ * Interface for the global (kommune-wide) Header element props.
70
+ *
71
+ * Extends the framework-agnostic {@link ISharedPktHeaderGlobal} base
72
+ * (in shared-types), narrowing boolean fields to `Booleanish`, typing
73
+ * `userMenu` icons as `PktIconName`, and adding the Lit-only `hasLogOut`
74
+ * signal.
75
+ */
76
+ export interface IPktHeaderGlobal extends Omit<ISharedPktHeaderGlobal, 'showSearch' | 'showContact' | 'canChangeRepresentation' | 'userMenu'> {
77
+ /** Show the search field. Default: true */
78
+ showSearch?: Booleanish;
79
+ /** Show the contact link (from the payload's `header.contact`). Default: true */
80
+ showContact?: Booleanish;
81
+ /** Allow the user to change representation. */
82
+ canChangeRepresentation?: Booleanish;
83
+ /** User menu items. */
84
+ userMenu?: UserMenuItem[];
85
+ /** Whether a logout handler is attached (required for the logout button to show). */
86
+ hasLogOut?: Booleanish;
61
87
  }
@@ -7,20 +7,19 @@ export declare class PktHeaderMenu extends PktElement<IPktHeaderMenu> implements
7
7
  data?: THeaderFooterApi;
8
8
  locale: THeaderMenuLocale;
9
9
  open: Booleanish;
10
- ariaLabelledBy: string;
11
10
  mobileBreakpoint: number;
12
11
  private loadState;
13
12
  private fetchedData?;
14
13
  private isMobile;
15
14
  private abortController?;
16
- private mediaQuery?;
15
+ private menuWidth;
16
+ private resizeObserver?;
17
17
  connectedCallback(): void;
18
18
  private updateOpenClass;
19
19
  disconnectedCallback(): void;
20
20
  updated(changedProperties: PropertyValues): void;
21
- private setupMediaQuery;
22
- private teardownMediaQuery;
23
- private handleMediaChange;
21
+ private observeWidth;
22
+ private refreshIsMobile;
24
23
  private loadData;
25
24
  private get effectiveData();
26
25
  private get localeData();
@@ -1,4 +1,4 @@
1
- import { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, IPktHeaderMenu as ISharedPktHeaderMenu, THeaderFooterApi, THeaderMenuLocale } from '../../shared-types/header-menu';
1
+ import { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, IPktHeaderMenu as ISharedPktHeaderMenu, THeaderFooterApi, THeaderMenuLocale } from '../../shared-types/header-footer';
2
2
  import { Booleanish } from '../../shared-types';
3
3
  export type { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, THeaderFooterApi, THeaderMenuLocale, };
4
4
  export interface IPktHeaderMenu extends Omit<ISharedPktHeaderMenu, 'open'> {
@@ -11,7 +11,8 @@ export { PktCheckbox } from './checkbox';
11
11
  export { PktFileUpload } from './fileupload';
12
12
  export { PktDateTags } from './datepicker/date-tags.js';
13
13
  export { PktDatepicker } from './datepicker/datepicker.js';
14
- export { PktHeader, PktHeaderService, PktHeaderUserMenu } from './header';
14
+ export { PktFooter, PktFooterSimple } from './footer';
15
+ export { PktHeader, PktHeaderService, PktHeaderGlobal, PktHeaderUserMenu, } from './header';
15
16
  export { PktHeaderMenu } from './header-menu';
16
17
  export { PktHelptext } from './helptext';
17
18
  export { PktHeading } from './heading';
@@ -34,18 +35,19 @@ export { PktSearchInput } from './searchinput';
34
35
  export { PktTimepicker } from './timepicker';
35
36
  export type { IPktAccordion, IPktAccordionItem, TPktAccordionSkin } from './accordion';
36
37
  export type { IPktButton, TPktButtonMode, TPktButtonSize, TPktButtonColor, TPktButtonSkin, TPktButtonVariant, TPktButtonState, TPktButtonType, } from './button';
37
- export type { User as IPktHeaderUser, Representing as IPktHeaderRepresenting, UserMenuItem as IPktHeaderUserMenuItem, THeaderMenu, TLogOutButtonPlacement as TPktHeaderLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, } from './header';
38
+ export type { User as IPktHeaderUser, Representing as IPktHeaderRepresenting, UserMenuItem as IPktHeaderUserMenuItem, THeaderMenu, TLogOutButtonPlacement as TPktHeaderLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, TGlobalHeaderMenu, IPktHeader, IPktHeaderGlobal, } from './header';
38
39
  export type { IPktHeaderMenu } from './header-menu';
39
40
  export type { IPktProgressbar, TProgressbarRole, TProgressbarSkin, TProgressbarStatusPlacement, TProgressbarStatusType, TProgressbarTitlePosition, } from './progressbar';
40
41
  export type { IPktCombobox, IPktComboboxOption, TPktComboboxTagPlacement, } from './combobox';
41
42
  export type { IPktHeading, TPktHeadingSize, TPktHeadingLevel } from './heading';
42
43
  export type { TTagSkin, TTagType } from './tag';
43
44
  export type { IPktTabs, IPktTabItem, TSkin as TTabItemSkin } from './tabs';
44
- export type { TSelectOption } from './select';
45
+ export type { IPktSelectOption, TSelectOption } from './select';
45
46
  export type { IPktBackLink } from './backlink';
46
47
  export type { IPktBreadcrumbs, IBreadcrumbItem } from './breadcrumbs';
47
48
  export type { IPktLoader, TPktLoaderVariant } from './loader';
48
49
  export type { IPktConsent } from './consent';
50
+ export type { IPktFooter, IPktFooterSimple, IPktFooterColumn, IPktFooterLink, } from './footer';
49
51
  export type { FileItem, IPktFileUpload, TFileComment, TQueueItemOperation, TQueueOperationContext, TQueueOperationLabel, TFileTransfer, TFileUploadItemRenderer, TTransferCancelledDetail, TTransferProgress, TFileValidateDetail, TFileValidator, TUploadStrategy, } from './fileupload';
50
52
  export type { IPktTimepicker } from './timepicker';
51
53
  export type { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod, } from './searchinput';
@@ -4,6 +4,7 @@ import { ElementProps } from '../../types/typeUtils';
4
4
  import { Booleanish } from '../../shared-types';
5
5
  import { FocusModalityController } from '../../controllers/focus-modality-controller';
6
6
  type TCounterPosition = 'top' | 'bottom';
7
+ type TInputWrapperSize = 'small' | 'medium' | 'xsmall';
7
8
  type Props = ElementProps<PktInputWrapper, 'forId' | 'label' | 'helptext' | 'helptextDropdown' | 'helptextDropdownButton' | 'counter' | 'counterCurrent' | 'counterMaxLength' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText' | 'tagText' | 'hasError' | 'errorMessage' | 'disabled' | 'inline' | 'ariaDescribedby' | 'hasFieldset' | 'useWrapper' | 'role'>;
8
9
  export declare class PktInputWrapper extends PktElementWithSlot<Props> {
9
10
  /**
@@ -32,6 +33,7 @@ export declare class PktInputWrapper extends PktElementWithSlot<Props> {
32
33
  hasFieldset: boolean;
33
34
  role: string | null;
34
35
  useWrapper: Booleanish;
36
+ size: TInputWrapperSize;
35
37
  protected updated(changedProperties: PropertyValues): void;
36
38
  focusModality: FocusModalityController;
37
39
  render(): import('lit').TemplateResult<1>;
@@ -24,6 +24,7 @@ export interface InputWrapperTestConfig extends BaseTestConfig {
24
24
  requiredText?: string;
25
25
  tagText?: string;
26
26
  role?: string;
27
+ size?: 'small' | 'medium' | 'xsmall';
27
28
  }
28
29
  export declare const createInputWrapperTest: (config?: InputWrapperTestConfig) => Promise<{
29
30
  container: HTMLElement;
@@ -1,9 +1,12 @@
1
1
  import { PktElement } from '../../base-elements/element';
2
+ import { PropertyValues } from 'lit';
2
3
  import { FocusModalityController } from '../../controllers/focus-modality-controller';
3
4
  import { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod } from '../../shared-types/searchinput';
5
+ import { TPktInputSize } from '../../shared-types/size';
4
6
  export type { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod, } from '../../shared-types/searchinput';
5
7
  export declare class PktSearchInput extends PktElement<IPktSearchInput> implements IPktSearchInput {
6
8
  appearance: TPktSearchInputAppearance;
9
+ inputSize: TPktInputSize;
7
10
  disabled: boolean;
8
11
  fullwidth: boolean;
9
12
  id: string;
@@ -15,6 +18,8 @@ export declare class PktSearchInput extends PktElement<IPktSearchInput> implemen
15
18
  action: string | undefined;
16
19
  method: TPktSearchInputMethod | undefined;
17
20
  focusModality: FocusModalityController;
21
+ private inputAriaLabel?;
22
+ willUpdate(changed: PropertyValues): void;
18
23
  private get suggestionsId();
19
24
  private dispatchSearch;
20
25
  private onInput;
@@ -1,4 +1,4 @@
1
1
  import { PktSelect } from './select';
2
2
  export { PktSelect } from './select';
3
- export type { TSelectOption } from './select';
3
+ export type { IPktSelectOption, TSelectOption } from '../../shared-types/select';
4
4
  export default PktSelect;
@@ -1,8 +1,8 @@
1
1
  import { PropertyValues } from 'lit';
2
2
  import { Ref } from 'lit/directives/ref.js';
3
3
  import { PktOptionsInputElement } from '../../base-elements/options-input-element';
4
- import { TSelectOption } from '../../shared-types';
5
- export type { TSelectOption };
4
+ import { TSelectOption } from '../../shared-types/select';
5
+ export type { TSelectOption } from '../../shared-types/select';
6
6
  export interface IPktSelect {
7
7
  options: TSelectOption[];
8
8
  value: string;
@@ -14,6 +14,7 @@ export interface SelectTestConfig extends Partial<IPktSelect>, BaseTestConfig {
14
14
  counter?: boolean;
15
15
  inline?: boolean;
16
16
  useWrapper?: boolean | string;
17
+ 'input-size'?: string;
17
18
  }
18
19
  export declare const createSelectTest: (config?: SelectTestConfig) => Promise<{
19
20
  container: HTMLElement;
@@ -1,4 +1,5 @@
1
1
  import { BaseTestConfig } from '../../tests/test-framework';
2
+ import { TPktInputSize } from '../../shared-types/size';
2
3
  export interface TextareaTestConfig extends BaseTestConfig {
3
4
  value?: string;
4
5
  autocomplete?: string;
@@ -20,6 +21,7 @@ export interface TextareaTestConfig extends BaseTestConfig {
20
21
  inline?: boolean;
21
22
  ariaLabelledby?: string | null;
22
23
  ariaDescribedBy?: string | null;
24
+ inputSize?: TPktInputSize;
23
25
  }
24
26
  export declare const createTextareaTest: (config?: TextareaTestConfig) => Promise<{
25
27
  container: HTMLElement;
@@ -8,6 +8,7 @@ export interface TextinputTestConfig extends BaseTestConfig {
8
8
  suffix?: string | null;
9
9
  size?: number | null;
10
10
  omitSearchIcon?: boolean;
11
+ 'input-size'?: string;
11
12
  id?: string;
12
13
  label?: string;
13
14
  name?: string;
@@ -2,6 +2,7 @@ import { PropertyValues } from 'lit';
2
2
  import { Ref } from 'lit/directives/ref.js';
3
3
  import { PktInputElement } from '../../base-elements/input-element';
4
4
  import { ElementProps } from '../../types/typeUtils';
5
+ import { TPktInputSize } from '../../shared-types/size';
5
6
  type Props = ElementProps<PktTimepicker, 'value' | 'hidePicker' | 'stepArrows'>;
6
7
  export interface IPktTimepicker {
7
8
  value?: string;
@@ -27,6 +28,7 @@ export interface IPktTimepicker {
27
28
  optionalText?: string;
28
29
  tagText?: string | null;
29
30
  inline?: boolean;
31
+ inputSize?: TPktInputSize;
30
32
  }
31
33
  export declare class PktTimepicker extends PktInputElement<Props> {
32
34
  hiddenInputRef: Ref<HTMLInputElement>;
@@ -1,4 +1,5 @@
1
1
  import { BaseTestConfig } from '../../tests/test-framework';
2
+ import { TPktInputSize } from '../../shared-types/size';
2
3
  export interface TimepickerTestConfig extends BaseTestConfig {
3
4
  value?: string;
4
5
  min?: string;
@@ -15,6 +16,8 @@ export interface TimepickerTestConfig extends BaseTestConfig {
15
16
  helptext?: string;
16
17
  id?: string;
17
18
  name?: string;
19
+ inputSize?: TPktInputSize;
20
+ 'input-size'?: TPktInputSize;
18
21
  }
19
22
  export declare const createTimepickerTest: (config?: TimepickerTestConfig) => Promise<{
20
23
  container: HTMLElement;
@@ -0,0 +1,18 @@
1
+ const e=require("./element-DJzurxgt.cjs");require("./button-gvDXtBMC.cjs");var t={i18n:{nb:{contentPresentation:{title:`Oslo kommune bruker informasjonskapsler`,description:[`For at nettstedet skal fungere og være trygt, bruker Oslo kommune informasjonskapsler. Noen er teknisk nødvendige, mens andre sikrer ulik funksjonalitet.`,`Godtar du alle informasjonskapsler, tillater du også at vi samler inn data om statistikk og brukeradferd. Da hjelper du oss med å lage et bedre nettsted uten at du trenger å dele noe personlig informasjon med oss.`],buttons:{accept:`Godta alle`,reject:`Kun nødvendige`,settings:`Innstillinger for informasjonskapsler`}},contentSettings:{title:`Innstillinger for informasjonskapsler`,description:[`Her kan du velge hvilke typer informasjonskapsler du vil tillate. Tillatelsen gjelder i 90 dager. Husk at nødvendige informasjonskapsler ikke kan velges bort.`,`Du kan når som helst endre innstillingene og finne mer informasjon nederst på nettstedet under «Innstillinger for informasjonskapsler» og «Personvern og informasjonskapsler».`],buttons:{back:`Tilbake`,save:`Lagre innstillinger`}}},en:{contentPresentation:{title:`Before you visit Oslo kommune ...`,description:[`This website uses cookies to make improvements. In this context, we need your consent to measure the traffic on the website in relation to statistics and feedback.`,`To read more about what we use cookies for, go to our privacy declaration which you will find at the bottom of our websites.`],buttons:{accept:`Yes, I accept`,reject:`Only necessary`,settings:`Go to settings`}},contentSettings:{title:`Her kan du aktivt velge mellom ulike informasjonskapsler`,description:[`For å lese mer om hva vi bruker informasjonskapsler til gå til vår personvernserklering som du finner på våre nettsider`],buttons:{back:`Back`,save:`Save settings`}}}},cookies:[{name:`statistics`,defaultValue:null,i18n:{nb:{title:`Statistikk og analyse`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler til å innhente data om statistikk og brukeradferd.`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Statistics and analytics`,description:`Select your preference for statistics and analytics`,buttons:{yes:`Yes`,no:`No`}}}},{name:`survey`,defaultValue:null,i18n:{nb:{title:`Skriftlige tilbakemeldinger`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler til å vise responsfelt og registrere tilbakemeldinger.`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Survey`,description:`Select your preference for survey`,buttons:{yes:`Yes`,no:`No`}}}},{name:`functional`,defaultValue:!0,i18n:{nb:{title:`Funksjonelle informasjonskapsler`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler for å gjøre ulike funksjoner på nettstedet mulige (for eksempel skjemaer og barnehagevelger).`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Functional cookies`,description:`For the website to function optimally, we recommend that you accept these cookies`,buttons:{yes:`Yes`,no:`No`}}}}]},n=null;function r(){return n||(n=new Promise((e,t)=>{if(document.querySelector(`#oslo-consent-script`)){e();return}let n=document.createElement(`script`);n.src=`https://cdn.web.oslo.kommune.no/cb/cb-v1.1.0.js`,n.id=`oslo-consent-script`,n.onload=()=>e(),n.onerror=t,document.head.appendChild(n);let r=document.createElement(`link`);r.href=`https://cdn.web.oslo.kommune.no/cb/cb-v1.1.0.css`,r.type=`text/css`,r.rel=`stylesheet`,r.id=`oslo-consent-styles`,document.head.appendChild(r)}),n)}var i=e=>{if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}},a=e=>i(e.value).items.reduce((e,t)=>(e[t.name]=t.consent,e),{}),o=class extends e.t{constructor(...e){super(...e),this.devMode=!1,this.hotjarId=null,this.googleAnalyticsId=null,this.cookieDomain=null,this.cookieSecure=null,this.cookieExpiryDays=null,this.triggerType=`button`,this.triggerText=null,this.i18nLanguage=`nb`}connectedCallback(){super.connectedCallback();let e=this.i18nLanguage;this.triggerText=this.triggerText||t.i18n[e].contentPresentation.buttons.settings}disconnectedCallback(){super.disconnectedCallback(),this._cookieEventHandler&&window.__cookieEvents?.off(`CookieManager.setCookie`,this._cookieEventHandler)}returnJsonOrObject(e){return i(e)}emitCookieConsents(e){this.dispatchEvent(new CustomEvent(`toggle-consent`,{detail:a(e),bubbles:!0,cancelable:!1}))}async firstUpdated(e){window.cookieBanner_googleAnalyticsId=this.googleAnalyticsId,window.cookieBanner_hotjarId=this.hotjarId,this.cookieDomain&&(window.cookieBanner_cookieDomain=this.cookieDomain),this.cookieSecure&&(window.cookieBanner_cookieSecure=this.cookieSecure),this.cookieExpiryDays&&(window.cookieBanner_cookieExpiryDays=this.cookieExpiryDays),this.devMode&&(window.cookieBanner_devMode=this.devMode),await r(),this.triggerInit()}triggerInit(){window.document.dispatchEvent(new Event(`CookieBannerReady`,{bubbles:!0,cancelable:!0}));let e=window.cookieBanner,t=window.__cookieEvents;!e||!t||e.cookieConsent.validateConsentCookie().then(n=>{if(!n)return;let r=e.cookieConsent.getConsentCookie();window.setTimeout(()=>this.emitCookieConsents({value:r}),0),this._cookieEventHandler&&t.off(`CookieManager.setCookie`,this._cookieEventHandler),this._cookieEventHandler=e=>this.emitCookieConsents(e),t.on(`CookieManager.setCookie`,this._cookieEventHandler)})}openModal(e){e.preventDefault(),window.cookieBanner?.cookieConsent||this.triggerInit(),setTimeout(()=>window.cookieBanner?.openCookieModal())}render(){return this.triggerType===`link`?e.p`<a href="#" class="pkt-link" aria-haspopup="dialog" @click=${this.openModal}
2
+ >${this.triggerText}</a
3
+ >`:this.triggerType===`footerlink`?e.p`<a
4
+ href="#"
5
+ class="pkt-footer__link"
6
+ aria-haspopup="dialog"
7
+ @click=${this.openModal}
8
+ >${this.triggerText}</a
9
+ >`:this.triggerType===`icon`?e.p`<pkt-button
10
+ skin="tertiary"
11
+ variant="icon-only"
12
+ iconName="cookie"
13
+ aria-haspopup="dialog"
14
+ @click=${this.openModal}
15
+ >${this.triggerText}</pkt-button
16
+ >`:e.p`<pkt-button aria-haspopup="dialog" @click=${this.openModal}
17
+ >${this.triggerText}</pkt-button
18
+ >`}};e.n([e.o({type:Boolean})],o.prototype,`devMode`,void 0),e.n([e.o({type:String})],o.prototype,`hotjarId`,void 0),e.n([e.o({type:String})],o.prototype,`googleAnalyticsId`,void 0),e.n([e.o({type:String})],o.prototype,`cookieDomain`,void 0),e.n([e.o({type:String})],o.prototype,`cookieSecure`,void 0),e.n([e.o({type:String})],o.prototype,`cookieExpiryDays`,void 0),e.n([e.o({type:String})],o.prototype,`triggerType`,void 0),e.n([e.o({type:String})],o.prototype,`triggerText`,void 0),e.n([e.o({type:String})],o.prototype,`i18nLanguage`,void 0);try{e.s(`pkt-consent`)(o)}catch{console.warn(`Forsøker å definere <pkt-consent>, men den er allerede definert`)}var s=o;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -1,6 +1,5 @@
1
1
  import { n as e, o as t, p as n, s as r, t as i } from "./element-BoJrqauR.js";
2
- import "./icon-DGFEIlco.js";
3
- import "./button-C_YzTSuU.js";
2
+ import "./button-Cod17rKo.js";
4
3
  //#region src/components/consent/strings.ts
5
4
  var a = {
6
5
  i18n: {
@@ -172,16 +171,24 @@ var c = (e) => {
172
171
  e.preventDefault(), window.cookieBanner?.cookieConsent || this.triggerInit(), setTimeout(() => window.cookieBanner?.openCookieModal());
173
172
  }
174
173
  render() {
175
- return this.triggerType === "link" ? n`<a href="#" class="pkt-link" @click=${this.openModal}>${this.triggerText}</a>` : this.triggerType === "footerlink" ? n`<a href="#" class="pkt-footer__link" @click=${this.openModal}>
176
- <pkt-icon name="chevron-right" class="pkt-footer__link-icon"></pkt-icon>
177
- ${this.triggerText}
178
- </a>` : this.triggerType === "icon" ? n`<pkt-button
174
+ return this.triggerType === "link" ? n`<a href="#" class="pkt-link" aria-haspopup="dialog" @click=${this.openModal}
175
+ >${this.triggerText}</a
176
+ >` : this.triggerType === "footerlink" ? n`<a
177
+ href="#"
178
+ class="pkt-footer__link"
179
+ aria-haspopup="dialog"
180
+ @click=${this.openModal}
181
+ >${this.triggerText}</a
182
+ >` : this.triggerType === "icon" ? n`<pkt-button
179
183
  skin="tertiary"
180
184
  variant="icon-only"
181
185
  iconName="cookie"
186
+ aria-haspopup="dialog"
182
187
  @click=${this.openModal}
183
188
  >${this.triggerText}</pkt-button
184
- >` : n`<pkt-button @click=${this.openModal}>${this.triggerText}</pkt-button>`;
189
+ >` : n`<pkt-button aria-haspopup="dialog" @click=${this.openModal}
190
+ >${this.triggerText}</pkt-button
191
+ >`;
185
192
  }
186
193
  };
187
194
  e([t({ type: Boolean })], u.prototype, "devMode", void 0), e([t({ type: String })], u.prototype, "hotjarId", void 0), e([t({ type: String })], u.prototype, "googleAnalyticsId", void 0), e([t({ type: String })], u.prototype, "cookieDomain", void 0), e([t({ type: String })], u.prototype, "cookieSecure", void 0), e([t({ type: String })], u.prototype, "cookieExpiryDays", void 0), e([t({ type: String })], u.prototype, "triggerType", void 0), e([t({ type: String })], u.prototype, "triggerText", void 0), e([t({ type: String })], u.prototype, "i18nLanguage", void 0);