@oslokommune/punkt-elements 16.26.6 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) 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-DfIvuwAj.cjs → checkbox-8uxbeU30.cjs} +1 -1
  12. package/dist/{checkbox-D3uflJEb.js → checkbox-DJDphhqz.js} +1 -1
  13. package/dist/{combobox-1xG07Oce.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-B_J5APcK.js → datepicker--Fq8q-J3.js} +30 -12
  61. package/dist/{datepicker-DXxTiHJd.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-CrGRaoqe.js +1288 -0
  78. package/dist/header-DNeyR8DD.cjs +466 -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-DZLXF2rI.cjs → input-element-B0qLbEdF.cjs} +1 -1
  84. package/dist/{input-element-DgylI1GK.js → input-element-C0RnXi-J.js} +11 -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-DFCA9V07.js → radiobutton-C6htwDrT.js} +1 -1
  138. package/dist/{radiobutton-BH6rl98w.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-C3Q_bGZb.cjs → select-CZvAW7W2.cjs} +2 -1
  144. package/dist/{select-YyR17Ml6.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-DNitIoWX.js → textarea-Cm392CEI.js} +5 -3
  166. package/dist/{textarea-Cb0pj6ki.cjs → textarea-sTcZxOIB.cjs} +3 -2
  167. package/dist/{textinput-CaIDCB2J.cjs → textinput-DqJbTglM.cjs} +3 -2
  168. package/dist/{textinput-CurFrsfQ.js → textinput-TSPcBcih.js} +5 -3
  169. package/dist/{timepicker-BcHEEtpX.cjs → timepicker-CqFYMV8q.cjs} +8 -7
  170. package/dist/{timepicker-Ch-ums4R.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.test.ts +84 -0
  204. package/src/components/header/header.ts +52 -5
  205. package/src/components/header/index.ts +6 -0
  206. package/src/components/header/types.ts +38 -0
  207. package/src/components/header-menu/header-menu.test.ts +131 -10
  208. package/src/components/header-menu/header-menu.ts +23 -24
  209. package/src/components/header-menu/types.ts +1 -1
  210. package/src/components/index.ts +18 -2
  211. package/src/components/input-wrapper/input-wrapper.test.ts +45 -0
  212. package/src/components/input-wrapper/input-wrapper.ts +17 -9
  213. package/src/components/modal/modal.ts +8 -9
  214. package/src/components/searchinput/searchinput.test.ts +43 -0
  215. package/src/components/searchinput/searchinput.ts +29 -12
  216. package/src/components/select/index.ts +1 -1
  217. package/src/components/select/select.test.ts +28 -0
  218. package/src/components/select/select.ts +4 -3
  219. package/src/components/textarea/textarea.test.ts +16 -0
  220. package/src/components/textarea/textarea.ts +3 -1
  221. package/src/components/textinput/textinput.test.ts +57 -0
  222. package/src/components/textinput/textinput.ts +3 -1
  223. package/src/components/timepicker/timepicker.test.ts +26 -0
  224. package/src/components/timepicker/timepicker.ts +12 -6
  225. package/dist/accordion-FISAiAbX.cjs +0 -47
  226. package/dist/button-C_YzTSuU.js +0 -96
  227. package/dist/combobox-BjBNyEly.cjs +0 -135
  228. package/dist/consent-X3wvhteO.cjs +0 -10
  229. package/dist/fileupload-BLVrslUX.cjs +0 -401
  230. package/dist/header-CFzvRT3j.js +0 -801
  231. package/dist/header-DaFGbtLu.cjs +0 -310
  232. package/dist/header-menu-DMdP_c6X.cjs +0 -126
  233. package/dist/modal-DKU7PnjJ.cjs +0 -35
  234. package/dist/searchinput-CyO5k4Q4.js +0 -148
  235. package/dist/searchinput-DG6YetL1.cjs +0 -60
  236. package/dist/shared-utils/modal-scroll-lock.d.ts +0 -10
  237. package/dist/tabs-CGo0ODPa.cjs +0 -40
  238. package/dist/tabs-ChdR0D1C.js +0 -379
  239. /package/dist/shared-utils/{header-menu → header-footer}/icon-map.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,116 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
5
5
 
6
6
  ---
7
7
 
8
+ ## [17.0.0](https://github.com/oslokommune/punkt/compare/16.26.7...17.0.0) (2026-07-10)
9
+
10
+ ### ⚠ BREAKING CHANGES
11
+ * Punkt 17 – Ny global header og footer, kompakte skjemaelementer (#3553). BREAKING CHANGE: Ny global header og footer, kompakte skjemaelementer. Se changelog.
12
+
13
+ # Punkt 17
14
+
15
+ OBS! Dette er en major-versjon og selv om vi har forsøkt å unngå de største breaking changes, så anbefaler vi ikke at dere oppdaterer blindt. Se gjennom løsningen og pass på at alt fungerer som forventet etter oppdatering!
16
+
17
+ ## Ny global header
18
+
19
+ ```html
20
+ <pkt-header type="global"></pkt-header>
21
+ ```
22
+
23
+ ```jsx
24
+ <PktHeader type="global" />
25
+ ```
26
+
27
+ - Henter innhold fra Oslo kommunes felles CDN. Husk å justere CSP deretter! Dersom det ikke er mulig å hente data fra ekstern CDN, bruk header med type “service”.
28
+ - Bruk på alle løsninger som ikke krever custom header, og alle løsninger som har en naturlig inngang fra Oslo kommunes åpne nettsider.
29
+ - Global header har et betraktelig smalere mulighetsrom for justeringer, og anbefales brukt som den er. Innlogget bruker og representasjon fungerer likt som den andre header-varianten. Det er ikke mulig å legge inn annet innhold i denne headeren.
30
+
31
+ ## Ny footer
32
+
33
+ ```html
34
+ <pkt-footer></pkt-footer>
35
+ <pkt-footer-simple></pkt-footer-simple>
36
+ ```
37
+
38
+ ```jsx
39
+ <PktFooter />
40
+ <PktFooterSimple />
41
+ ```
42
+
43
+ - Footer er endelig tilgjengelig i Punkt Elements.
44
+ - Henter innhold fra Oslo kommunes felles CDN. Husk å justere CSP deretter! Dersom det ikke er mulig å hente data fra ekstern CDN, bruk attributten `skipGlobal` (React)/`skip-global` (Elements).
45
+ - Innstillinger for informasjonskapsler (cookie-banner-link) fungerer likt som før, så sørg for at `includeConsent`/`include-consent` er satt om dere bruker cookies.
46
+ - Custom innhold havner nå i en sekundær footer som stables oppå den globale footeren. Så om dere tidligere har lagt lenker og tekst i footer, vil dette nå dukke opp _over_ den blå globale footeren.
47
+ - I custom innhold er nå `columnOne` og `columnTwo` deprecated, og vi anbefaler at dere istedenfor sender inn disse som en array av objekter i `columns`.
48
+ - `socialLinks`, `personvernOgInfoLink` og `tilgjengelighetLink` er deprecated og vil fjernes i senere major-versjon. Disse kommer nå fra Oslo kommunes felles data.
49
+ - Lenker med `external: true` får nå toppdomenet i parentes etter lenketeksten (f.eks. «Munchmuseet (munch.no)») i stedet for eksternt lenkeikon.
50
+ - Footer-CSSen er skrevet om. Bruker dere ren CSS (uten komponentene), eller har egne overrides mot footer-klasser, må dere gå gjennom markup/selektorer på nytt — se «Endringer fra versjon 16 til versjon 17» på footer-dokumentasjonssiden. Farger styres nå med CSS-variablene `--pkt-footer-bg`, `--pkt-footer-fg` og `--pkt-footer-link-hover`.
51
+
52
+ ## Kompakte skjemaelementer
53
+
54
+ Alle skjemakomponenter har fått attributten `input-size` (Elements) / propen `inputSize` (React) med verdiene `medium` (standard), `small` og `xsmall`:
55
+
56
+ ```html
57
+ <pkt-textinput label="Etikett" input-size="small"></pkt-textinput>
58
+ ```
59
+
60
+ ```jsx
61
+ <PktTextinput label="Etikett" inputSize="small" />
62
+ ```
63
+
64
+ - Gjelder Textinput, Textarea, Select, Combobox, SearchInput, Datepicker og Timepicker.
65
+ - Størrelsene er `medium` = 48px felthøyde med 18px tekst (som før — ingen endring om dere ikke setter noe), `small` = 42px med 16px tekst og `xsmall` = 36px med 14px tekst.
66
+ - Hele feltet skalerer: ledetekst, hjelpetekst, ikoner, prefix/suffix og feilmeldinger følger størrelsen automatisk via input-wrapperen.
67
+ - Alle skjemakomponentene i samme størrelse har lik høyde og matcher horisontalt, også på tvers av React og Elements.
68
+
69
+ ## Andre endringer
70
+
71
+ - Button i Elements har fått et betydelig UU-løft, samt litt endring i padding så den stemmer overens med Figma-varianten.
72
+ - Button har fått ny størrelse `xsmall` (36px). Samtidig er `small` justert mot Figma: 16px tekst og mer padding — small-knapper blir noe _bredere_ enn før (gamle `small` tilsvarer omtrent nye `xsmall` i bredde).
73
+ - I arbeidet med ny header fikk accordion en ny variant `plus-minus`.
74
+ - Alert sin attributt `compact` er nå deprecated, og erstattes med `size="small"`. Alert har fått `size` med `medium`/`small`/`xsmall`; settes både `compact` og `size`, vinner `size`. Small/xsmall-alerts har også fått justert padding og ikonstørrelse mot Figma.
75
+ - ARIA-attributter (`aria-haspopup`, `aria-expanded`, `aria-controls`) satt på `<pkt-button>` flyttes nå automatisk til den indre `<button>`-en, slik at skjermlesere får dem der de hører hjemme. Consent-triggerne har fått `aria-haspopup="dialog"`.
76
+ - React Select: den udokumenterte `options`-propen er fjernet fra typene — den var aldri implementert. Bruk `<option>`-elementer som children.
77
+ - Dokumentasjonen har fått et eget CSP-avsnitt under «Kom i gang», og CSP-seksjoner på header-, footer- og consent-sidene, for dere som bruker komponentene som henter data fra `cdn.web.oslo.kommune.no`.
78
+
79
+ ## Breaking changes:
80
+
81
+ - **Footer:** Custom innhold rendres nå i et sekundært bånd over den nye globale footeren, og footer-markupen/CSS-klassene er skrevet om — egne CSS-overrides mot footer må oppdateres.
82
+ - **Footer:** Lenker med `external: true` viser toppdomene i parentes i stedet for eksternt lenkeikon.
83
+ - **Footer:** Flere deprecated properties.
84
+ - **Alert:** `compact` er deprecated.
85
+ - **React Select:** `options`-propen er fjernet fra typene (var aldri implementert) — bruk `<option>`-children.
86
+ - **CSP:** Global header, footer og consent krever at `cdn.web.oslo.kommune.no` er åpnet i CSP — se dokumentasjonen.
87
+
88
+
89
+ ### Features
90
+ Ingen
91
+
92
+ ### Bug Fixes
93
+ Ingen
94
+
95
+ ### Chores
96
+ Ingen
97
+
98
+ ---
99
+
100
+
101
+ ## [16.26.7](https://github.com/oslokommune/punkt/compare/16.26.6...16.26.7) (2026-07-09)
102
+
103
+ ### ⚠ BREAKING CHANGES
104
+ Ingen
105
+
106
+ ### Features
107
+ Ingen
108
+
109
+ ### Bug Fixes
110
+ Ingen
111
+
112
+ ### Chores
113
+ Ingen
114
+
115
+ ---
116
+
117
+
8
118
  ## [16.26.6](https://github.com/oslokommune/punkt/compare/16.26.5...16.26.6) (2026-07-06)
9
119
 
10
120
  ### ⚠ BREAKING CHANGES
@@ -0,0 +1,47 @@
1
+ const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),n=require("./element-with-slot-BY7Jc-q8.cjs"),r=require("./if-defined-DrwbxQOj.cjs"),i=require("./consume-DKf5SmP9.cjs"),a=require("./ref-DO7TzO4O.cjs");var o=i.r(Symbol(`pkt-accordion-context`)),s=class extends e.i{constructor(...e){super(...e),this.ariaLabelledBy=``,this.compact=!1,this.skin=`borderless`,this.name=``,this.context={skin:this.skin}}willUpdate(e){e.has(`skin`)&&(this.context={...this.context,skin:this.skin})}updated(e){e.has(`name`)&&this.updateAccordionItemNames()}updateAccordionItemNames(){if(this.name){let e=this.renderRoot?.querySelector(`slot`);e&&e.assignedElements().forEach(e=>{e.tagName.toLowerCase()===`pkt-accordion-item`&&(e.hasAttribute(`name`)||e.setAttribute(`name`,this.name))})}}firstUpdated(){let e=this.renderRoot?.querySelector(`slot`);e&&e.addEventListener(`slotchange`,()=>{this.updateAccordionItemNames()})}render(){return e.p`
2
+ <div
3
+ part="container"
4
+ class=${t.t({"pkt-accordion":!0,"pkt-accordion--compact":this.compact,[`pkt-accordion--${this.skin}`]:this.skin})}
5
+ data-testid="pkt-accordion"
6
+ aria-labelledby=${this.ariaLabelledBy}
7
+ >
8
+ <slot></slot>
9
+ </div>
10
+ `}};e.n([e.o({type:String,reflect:!0,attribute:`aria-labelledby`})],s.prototype,`ariaLabelledBy`,void 0),e.n([e.o({type:Boolean,reflect:!0,attribute:`compact`})],s.prototype,`compact`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`skin`})],s.prototype,`skin`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`name`})],s.prototype,`name`,void 0),e.n([i.n({context:o}),e.a()],s.prototype,`context`,void 0);try{e.s(`pkt-accordion`)(s)}catch{console.warn(`Forsøker å definere <pkt-accordion>, men den er allerede definert`)}var c=class extends n.t{constructor(){super(),this.defaultOpen=!1,this.title=``,this.skin=void 0,this.compact=!1,this.isOpen=!1,this.name=void 0,this.accordionItemRef=a.t()}firstUpdated(e){this.defaultOpen&&(this.isOpen=!0)}render(){let i={"pkt-accordion-item":!0,"pkt-accordion-item--compact":this.compact,[`pkt-accordion-item--${this.skin}`]:!!this.skin},o=(this.skin??this.context?.skin)===`plus-minus`;return e.p`
11
+ <details
12
+ class=${t.t(i)}
13
+ id=${this.id}
14
+ ?open=${this.isOpen}
15
+ ${a.n(this.accordionItemRef)}
16
+ name=${r.t(this.name)}
17
+ >
18
+ <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}>
19
+ ${this.title}
20
+ ${o?e.p`
21
+ <pkt-icon
22
+ name="plus-sign"
23
+ class="pkt-accordion-item__icon pkt-accordion-item__icon--plus"
24
+ aria-hidden="true"
25
+ ></pkt-icon>
26
+ <pkt-icon
27
+ name="minus-sign"
28
+ class="pkt-accordion-item__icon pkt-accordion-item__icon--minus"
29
+ aria-hidden="true"
30
+ ></pkt-icon>
31
+ `:e.p`
32
+ <pkt-icon
33
+ name="chevron-thin-down"
34
+ class="pkt-accordion-item__icon"
35
+ aria-hidden="true"
36
+ ></pkt-icon>
37
+ `}
38
+ </summary>
39
+ <div
40
+ class="pkt-accordion-item__content"
41
+ id="pkt-accordion-item__content-${this.id}"
42
+ role="region"
43
+ >
44
+ <div class="pkt-accordion-item__content-inner">${n.n(this)}</div>
45
+ </div>
46
+ </details>
47
+ `}};e.n([e.o({type:Boolean})],c.prototype,`defaultOpen`,void 0),e.n([e.o({type:String})],c.prototype,`title`,void 0),e.n([e.o({type:String,reflect:!0})],c.prototype,`skin`,void 0),e.n([e.o({type:Boolean,reflect:!0})],c.prototype,`compact`,void 0),e.n([e.o({type:Boolean,reflect:!0})],c.prototype,`isOpen`,void 0),e.n([e.o({type:String,reflect:!0})],c.prototype,`name`,void 0),e.n([i.t({context:o,subscribe:!0}),e.o({attribute:!1})],c.prototype,`context`,void 0);try{e.s(`pkt-accordion-item`)(c)}catch{console.warn(`Forsøker å definere <pkt-accordion-item>, men den er allerede definert`)}var l=s;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
@@ -1,15 +1,22 @@
1
- import { i as e, n as t, o as n, p as r, s as i } from "./element-BoJrqauR.js";
2
- import { t as a } from "./class-map-CAQCRB1W.js";
3
- import { n as o, t as s } from "./element-with-slot-mXLg8gg8.js";
4
- import { t as c } from "./if-defined-D0bnetLJ.js";
5
- import { n as l, t as u } from "./ref-WGS0u7i2.js";
6
- //#region src/components/accordion/accordion.ts
7
- var d = class extends e {
1
+ import { a as e, i as t, n, o as r, p as i, s as a } from "./element-BoJrqauR.js";
2
+ import { t as o } from "./class-map-CAQCRB1W.js";
3
+ import { n as s, t as c } from "./element-with-slot-mXLg8gg8.js";
4
+ import { t as l } from "./if-defined-D0bnetLJ.js";
5
+ import { n as u, r as d, t as f } from "./consume-BiOhrhEy.js";
6
+ import { n as p, t as m } from "./ref-WGS0u7i2.js";
7
+ //#region src/components/accordion/accordion-context.ts
8
+ var h = d(Symbol("pkt-accordion-context")), g = class extends t {
8
9
  constructor(...e) {
9
- super(...e), this.ariaLabelledBy = "", this.compact = !1, this.skin = "borderless", this.name = "";
10
+ super(...e), this.ariaLabelledBy = "", this.compact = !1, this.skin = "borderless", this.name = "", this.context = { skin: this.skin };
11
+ }
12
+ willUpdate(e) {
13
+ e.has("skin") && (this.context = {
14
+ ...this.context,
15
+ skin: this.skin
16
+ });
10
17
  }
11
18
  updated(e) {
12
- e.has("skin") && this.requestUpdate(), e.has("name") && this.updateAccordionItemNames();
19
+ e.has("name") && this.updateAccordionItemNames();
13
20
  }
14
21
  updateAccordionItemNames() {
15
22
  if (this.name) {
@@ -26,10 +33,10 @@ var d = class extends e {
26
33
  });
27
34
  }
28
35
  render() {
29
- return r`
36
+ return i`
30
37
  <div
31
38
  part="container"
32
- class=${a({
39
+ class=${o({
33
40
  "pkt-accordion": !0,
34
41
  "pkt-accordion--compact": this.compact,
35
42
  [`pkt-accordion--${this.skin}`]: this.skin
@@ -42,33 +49,33 @@ var d = class extends e {
42
49
  `;
43
50
  }
44
51
  };
45
- t([n({
52
+ n([r({
46
53
  type: String,
47
54
  reflect: !0,
48
55
  attribute: "aria-labelledby"
49
- })], d.prototype, "ariaLabelledBy", void 0), t([n({
56
+ })], g.prototype, "ariaLabelledBy", void 0), n([r({
50
57
  type: Boolean,
51
58
  reflect: !0,
52
59
  attribute: "compact"
53
- })], d.prototype, "compact", void 0), t([n({
60
+ })], g.prototype, "compact", void 0), n([r({
54
61
  type: String,
55
62
  reflect: !0,
56
63
  attribute: "skin"
57
- })], d.prototype, "skin", void 0), t([n({
64
+ })], g.prototype, "skin", void 0), n([r({
58
65
  type: String,
59
66
  reflect: !0,
60
67
  attribute: "name"
61
- })], d.prototype, "name", void 0);
68
+ })], g.prototype, "name", void 0), n([u({ context: h }), e()], g.prototype, "context", void 0);
62
69
  try {
63
- i("pkt-accordion")(d);
70
+ a("pkt-accordion")(g);
64
71
  } catch {
65
72
  console.warn("Forsøker å definere <pkt-accordion>, men den er allerede definert");
66
73
  }
67
74
  //#endregion
68
75
  //#region src/components/accordion/accordionitem.ts
69
- var f = class extends s {
76
+ var _ = class extends c {
70
77
  constructor() {
71
- super(), this.defaultOpen = !1, this.title = "", this.skin = void 0, this.compact = !1, this.isOpen = !1, this.name = void 0, this.accordionItemRef = u();
78
+ super(), this.defaultOpen = !1, this.title = "", this.skin = void 0, this.compact = !1, this.isOpen = !1, this.name = void 0, this.accordionItemRef = m();
72
79
  }
73
80
  firstUpdated(e) {
74
81
  this.defaultOpen && (this.isOpen = !0);
@@ -78,18 +85,18 @@ var f = class extends s {
78
85
  "pkt-accordion-item": !0,
79
86
  "pkt-accordion-item--compact": this.compact,
80
87
  [`pkt-accordion-item--${this.skin}`]: !!this.skin
81
- }, t = this.skin === "plus-minus";
82
- return r`
88
+ }, t = (this.skin ?? this.context?.skin) === "plus-minus";
89
+ return i`
83
90
  <details
84
- class=${a(e)}
91
+ class=${o(e)}
85
92
  id=${this.id}
86
93
  ?open=${this.isOpen}
87
- ${l(this.accordionItemRef)}
88
- name=${c(this.name)}
94
+ ${p(this.accordionItemRef)}
95
+ name=${l(this.name)}
89
96
  >
90
97
  <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}>
91
98
  ${this.title}
92
- ${t ? r`
99
+ ${t ? i`
93
100
  <pkt-icon
94
101
  name="plus-sign"
95
102
  class="pkt-accordion-item__icon pkt-accordion-item__icon--plus"
@@ -100,7 +107,7 @@ var f = class extends s {
100
107
  class="pkt-accordion-item__icon pkt-accordion-item__icon--minus"
101
108
  aria-hidden="true"
102
109
  ></pkt-icon>
103
- ` : r`
110
+ ` : i`
104
111
  <pkt-icon
105
112
  name="chevron-thin-down"
106
113
  class="pkt-accordion-item__icon"
@@ -113,32 +120,35 @@ var f = class extends s {
113
120
  id="pkt-accordion-item__content-${this.id}"
114
121
  role="region"
115
122
  >
116
- <div class="pkt-accordion-item__content-inner">${o(this)}</div>
123
+ <div class="pkt-accordion-item__content-inner">${s(this)}</div>
117
124
  </div>
118
125
  </details>
119
126
  `;
120
127
  }
121
128
  };
122
- t([n({ type: Boolean })], f.prototype, "defaultOpen", void 0), t([n({ type: String })], f.prototype, "title", void 0), t([n({
129
+ n([r({ type: Boolean })], _.prototype, "defaultOpen", void 0), n([r({ type: String })], _.prototype, "title", void 0), n([r({
123
130
  type: String,
124
131
  reflect: !0
125
- })], f.prototype, "skin", void 0), t([n({
132
+ })], _.prototype, "skin", void 0), n([r({
126
133
  type: Boolean,
127
134
  reflect: !0
128
- })], f.prototype, "compact", void 0), t([n({
135
+ })], _.prototype, "compact", void 0), n([r({
129
136
  type: Boolean,
130
137
  reflect: !0
131
- })], f.prototype, "isOpen", void 0), t([n({
138
+ })], _.prototype, "isOpen", void 0), n([r({
132
139
  type: String,
133
140
  reflect: !0
134
- })], f.prototype, "name", void 0);
141
+ })], _.prototype, "name", void 0), n([f({
142
+ context: h,
143
+ subscribe: !0
144
+ }), r({ attribute: !1 })], _.prototype, "context", void 0);
135
145
  try {
136
- i("pkt-accordion-item")(f);
146
+ a("pkt-accordion-item")(_);
137
147
  } catch {
138
148
  console.warn("Forsøker å definere <pkt-accordion-item>, men den er allerede definert");
139
149
  }
140
150
  //#endregion
141
151
  //#region src/components/accordion/index.ts
142
- var p = d;
152
+ var v = g;
143
153
  //#endregion
144
- export { f as n, d as r, p as t };
154
+ export { _ as n, g as r, v as t };
@@ -3,7 +3,7 @@ import { t as o } from "./class-map-CAQCRB1W.js";
3
3
  import { n as s, t as c } from "./element-with-slot-mXLg8gg8.js";
4
4
  import { t as l } from "./classutils-DcYnSgfc.js";
5
5
  import "./icon-DGFEIlco.js";
6
- import "./button-C_YzTSuU.js";
6
+ import "./button-Cod17rKo.js";
7
7
  var u = {
8
8
  name: "pkt-alert",
9
9
  react: "PktAlert",
@@ -51,12 +51,16 @@ var u = {
51
51
  default: "polite",
52
52
  category: "accessibility"
53
53
  },
54
- compact: {
55
- name: "Kompakt",
56
- description: "Gjør meldingen mindre",
57
- type: "boolean",
58
- category: "ui",
59
- default: !1
54
+ size: {
55
+ name: "Størrelse",
56
+ description: "Endrer størrelsen på ulike elementer i alerten.",
57
+ type: [
58
+ "medium",
59
+ "small",
60
+ "xsmall"
61
+ ],
62
+ default: "medium",
63
+ category: "ui"
60
64
  },
61
65
  closeAlert: {
62
66
  name: "Vis 'Lukk'-knapp",
@@ -66,10 +70,17 @@ var u = {
66
70
  category: "ui"
67
71
  }
68
72
  },
69
- slots: { default: { description: "Innholdet i meldingen" } }
73
+ slots: { default: { description: "Innholdet i meldingen" } },
74
+ deprecated: { compact: {
75
+ name: "Kompakt (deprecated)",
76
+ description: "Bruk size i stedet; uten eksplisitt size gir compact størrelsen 'small'.",
77
+ type: "boolean",
78
+ category: "ui",
79
+ default: !1
80
+ } }
70
81
  }, d = class extends c {
71
82
  constructor() {
72
- super(), this.compact = u.props.compact.default, this.title = "", this.skin = u.props.skin.default, this.ariaLive = u.props.ariaLive.default, this.ariaLiveAttr = null, this.closeAlert = u.props.closeAlert.default, this.date = null, this.role = "status", this._isClosed = !1, this.close = (e) => {
83
+ super(), this.compact = u.deprecated.compact.default, this.title = "", this.skin = u.props.skin.default, this.ariaLive = u.props.ariaLive.default, this.ariaLiveAttr = null, this.closeAlert = u.props.closeAlert.default, this.date = null, this.role = "status", this._isClosed = !1, this.close = (e) => {
73
84
  this._isClosed = !0, this.dispatchEvent(new CustomEvent("close", {
74
85
  detail: { origin: e },
75
86
  bubbles: !0,
@@ -91,19 +102,19 @@ var u = {
91
102
  super.updated(e), e.has("ariaLive") && (this.ariaLiveAttr = this.ariaLive), e.has("_isClosed") && l(this, "pkt-hide", this._isClosed);
92
103
  }
93
104
  render() {
94
- let e = {
105
+ let e = this.size ?? (this.compact ? "small" : "medium"), n = {
95
106
  "pkt-alert": !0,
96
- "pkt-alert--compact": this.compact,
97
- [`pkt-alert--${this.skin}`]: this.skin,
107
+ [`pkt-alert--${e}`]: !0,
108
+ [`pkt-alert--${this.skin}`]: !0,
98
109
  "pkt-hide": this._isClosed
99
- }, n = {
110
+ }, r = {
100
111
  "pkt-alert__grid": !0,
101
112
  "pkt-alert__noTitle": !this.title,
102
113
  "pkt-alert__noDate": !this.date
103
114
  };
104
115
  return i`
105
- <div class=${o(e)} aria-live=${this.ariaLiveAttr}>
106
- <div class=${o(n)}>
116
+ <div class=${o(n)} aria-live=${this.ariaLiveAttr}>
117
+ <div class=${o(r)}>
107
118
  <pkt-icon
108
119
  class="pkt-alert__icon"
109
120
  aria-hidden="true"
@@ -115,7 +126,7 @@ var u = {
115
126
  <pkt-button
116
127
  tabindex="0"
117
128
  aria-label="close"
118
- size=${this.compact ? "small" : "medium"}
129
+ size=${e}
119
130
  type="button"
120
131
  skin="tertiary"
121
132
  iconName="close"
@@ -158,7 +169,10 @@ n([r({
158
169
  })], d.prototype, "date", void 0), n([r({
159
170
  type: String,
160
171
  reflect: !0
161
- })], d.prototype, "role", void 0), n([e()], d.prototype, "_isClosed", void 0);
172
+ })], d.prototype, "role", void 0), n([r({
173
+ type: String,
174
+ attribute: "size"
175
+ })], d.prototype, "size", void 0), n([e()], d.prototype, "_isClosed", void 0);
162
176
  try {
163
177
  a("pkt-alert")(d);
164
178
  } catch {
@@ -1,6 +1,6 @@
1
- const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),n=require("./element-with-slot-BY7Jc-q8.cjs"),r=require("./classutils-CbklAJDe.cjs");require("./icon-B8PVq2O6.cjs"),require("./button-B5tQpKeG.cjs");var i={name:`pkt-alert`,react:`PktAlert`,"css-class":`pkt-alert`,"dark-mode":!0,isElement:!0,isPureReact:!0,events:{onClose:{description:`React: Klikk-event for 'Lukk'-knappen`},close:{description:`Vue: Klikk-event for 'Lukk'-knappen`}},props:{title:{name:`Tittel`,description:`Tittelen som vises øverst i på meldingen`,type:`string`,category:`contents`},skin:{name:`Utseende`,description:`Hvordan type melding er dette?`,type:[`info`,`success`,`warning`,`error`],default:`info`,category:`ui`},date:{name:`Sist oppdatert`,description:`Dato som vises nederst i på meldingen`,type:`string`,category:`contents`},ariaLive:{name:`aria-live`,description:`Hvordan skal skjermleseren lese opp meldingen?`,type:[`off`,`polite`,`assertive`],default:`polite`,category:`accessibility`},compact:{name:`Kompakt`,description:`Gjør meldingen mindre`,type:`boolean`,category:`ui`,default:!1},closeAlert:{name:`Vis 'Lukk'-knapp`,description:`Viser 'Lukk'-knappen`,type:`boolean`,default:!1,category:`ui`}},slots:{default:{description:`Innholdet i meldingen`}}},a=class extends n.t{constructor(){super(),this.compact=i.props.compact.default,this.title=``,this.skin=i.props.skin.default,this.ariaLive=i.props.ariaLive.default,this.ariaLiveAttr=null,this.closeAlert=i.props.closeAlert.default,this.date=null,this.role=`status`,this._isClosed=!1,this.close=e=>{this._isClosed=!0,this.dispatchEvent(new CustomEvent(`close`,{detail:{origin:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent(`on-close`,{detail:{origin:e},bubbles:!0,composed:!0}))},this._isClosed=!1}connectedCallback(){super.connectedCallback(),this.ariaLiveAttr=this.getAttribute(`aria-live`)||this.ariaLive}attributeChangedCallback(e,t,n){e===`ariaLive`&&(this.ariaLiveAttr=n),super.attributeChangedCallback(e,t,n)}updated(e){super.updated(e),e.has(`ariaLive`)&&(this.ariaLiveAttr=this.ariaLive),e.has(`_isClosed`)&&r.t(this,`pkt-hide`,this._isClosed)}render(){let r={"pkt-alert":!0,"pkt-alert--compact":this.compact,[`pkt-alert--${this.skin}`]:this.skin,"pkt-hide":this._isClosed},i={"pkt-alert__grid":!0,"pkt-alert__noTitle":!this.title,"pkt-alert__noDate":!this.date};return e.p`
2
- <div class=${t.t(r)} aria-live=${this.ariaLiveAttr}>
3
- <div class=${t.t(i)}>
1
+ const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),n=require("./element-with-slot-BY7Jc-q8.cjs"),r=require("./classutils-CbklAJDe.cjs");require("./icon-B8PVq2O6.cjs"),require("./button-gvDXtBMC.cjs");var i={name:`pkt-alert`,react:`PktAlert`,"css-class":`pkt-alert`,"dark-mode":!0,isElement:!0,isPureReact:!0,events:{onClose:{description:`React: Klikk-event for 'Lukk'-knappen`},close:{description:`Vue: Klikk-event for 'Lukk'-knappen`}},props:{title:{name:`Tittel`,description:`Tittelen som vises øverst i på meldingen`,type:`string`,category:`contents`},skin:{name:`Utseende`,description:`Hvordan type melding er dette?`,type:[`info`,`success`,`warning`,`error`],default:`info`,category:`ui`},date:{name:`Sist oppdatert`,description:`Dato som vises nederst i på meldingen`,type:`string`,category:`contents`},ariaLive:{name:`aria-live`,description:`Hvordan skal skjermleseren lese opp meldingen?`,type:[`off`,`polite`,`assertive`],default:`polite`,category:`accessibility`},size:{name:`Størrelse`,description:`Endrer størrelsen på ulike elementer i alerten.`,type:[`medium`,`small`,`xsmall`],default:`medium`,category:`ui`},closeAlert:{name:`Vis 'Lukk'-knapp`,description:`Viser 'Lukk'-knappen`,type:`boolean`,default:!1,category:`ui`}},slots:{default:{description:`Innholdet i meldingen`}},deprecated:{compact:{name:`Kompakt (deprecated)`,description:`Bruk size i stedet; uten eksplisitt size gir compact størrelsen 'small'.`,type:`boolean`,category:`ui`,default:!1}}},a=class extends n.t{constructor(){super(),this.compact=i.deprecated.compact.default,this.title=``,this.skin=i.props.skin.default,this.ariaLive=i.props.ariaLive.default,this.ariaLiveAttr=null,this.closeAlert=i.props.closeAlert.default,this.date=null,this.role=`status`,this._isClosed=!1,this.close=e=>{this._isClosed=!0,this.dispatchEvent(new CustomEvent(`close`,{detail:{origin:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent(`on-close`,{detail:{origin:e},bubbles:!0,composed:!0}))},this._isClosed=!1}connectedCallback(){super.connectedCallback(),this.ariaLiveAttr=this.getAttribute(`aria-live`)||this.ariaLive}attributeChangedCallback(e,t,n){e===`ariaLive`&&(this.ariaLiveAttr=n),super.attributeChangedCallback(e,t,n)}updated(e){super.updated(e),e.has(`ariaLive`)&&(this.ariaLiveAttr=this.ariaLive),e.has(`_isClosed`)&&r.t(this,`pkt-hide`,this._isClosed)}render(){let r=this.size??(this.compact?`small`:`medium`),i={"pkt-alert":!0,[`pkt-alert--${r}`]:!0,[`pkt-alert--${this.skin}`]:!0,"pkt-hide":this._isClosed},a={"pkt-alert__grid":!0,"pkt-alert__noTitle":!this.title,"pkt-alert__noDate":!this.date};return e.p`
2
+ <div class=${t.t(i)} aria-live=${this.ariaLiveAttr}>
3
+ <div class=${t.t(a)}>
4
4
  <pkt-icon
5
5
  class="pkt-alert__icon"
6
6
  aria-hidden="true"
@@ -12,7 +12,7 @@ const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),
12
12
  <pkt-button
13
13
  tabindex="0"
14
14
  aria-label="close"
15
- size=${this.compact?`small`:`medium`}
15
+ size=${r}
16
16
  type="button"
17
17
  skin="tertiary"
18
18
  iconName="close"
@@ -30,4 +30,4 @@ const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),
30
30
  ${this.date?e.p`<div class="pkt-alert__date">Sist oppdatert: ${this.date}</div>`:e.d}
31
31
  </div>
32
32
  </div>
33
- `}};e.n([e.o({type:Boolean,reflect:!1})],a.prototype,`compact`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`title`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`skin`,void 0),e.n([e.o({type:String})],a.prototype,`ariaLive`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`aria-live`})],a.prototype,`ariaLiveAttr`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`closeAlert`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`date`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`role`,void 0),e.n([e.a()],a.prototype,`_isClosed`,void 0);try{e.s(`pkt-alert`)(a)}catch{console.warn(`Forsøker å definere <pkt-alert>, men den er allerede definert`)}var o=a;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
33
+ `}};e.n([e.o({type:Boolean,reflect:!1})],a.prototype,`compact`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`title`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`skin`,void 0),e.n([e.o({type:String})],a.prototype,`ariaLive`,void 0),e.n([e.o({type:String,reflect:!0,attribute:`aria-live`})],a.prototype,`ariaLiveAttr`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`closeAlert`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`date`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`role`,void 0),e.n([e.o({type:String,attribute:`size`})],a.prototype,`size`,void 0),e.n([e.a()],a.prototype,`_isClosed`,void 0);try{e.s(`pkt-alert`)(a)}catch{console.warn(`Forsøker å definere <pkt-alert>, men den er allerede definert`)}var o=a;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
@@ -62,6 +62,7 @@ export declare class PktInputElement<T = {}, TOption extends PktInputOption = Pk
62
62
  optionalText: string;
63
63
  requiredText: string;
64
64
  tagText: string | null;
65
+ inputSize: 'small' | 'medium' | 'xsmall';
65
66
  dataTestid: string;
66
67
  touched: boolean;
67
68
  private _initialized;
@@ -0,0 +1,115 @@
1
+ import { a as e, d as t, n, o as r, p as i, s as a } from "./element-BoJrqauR.js";
2
+ import { t as o } from "./class-map-CAQCRB1W.js";
3
+ import { n as s, t as c } from "./element-with-slot-mXLg8gg8.js";
4
+ import "./icon-DGFEIlco.js";
5
+ import { t as l } from "./if-defined-D0bnetLJ.js";
6
+ //#region src/components/button/button.ts
7
+ var u = "https://punkt-cdn.oslo.kommune.no/latest/animations/";
8
+ typeof window < "u" && (window.pktAnimationPath = window.pktAnimationPath || u);
9
+ var d = class e extends c {
10
+ constructor(...e) {
11
+ super(...e), this.iconName = "user", this.secondIconName = "user", this.mode = "light", this.size = "medium", this.fullWidth = !1, this.fullWidthOnMobile = !1, this.skin = "primary", this.variant = "label-only", this.state = "normal", this.type = "button", this.form = void 0, this.isLoading = !1, this.disabled = !1, this.loadingAnimationPath = typeof window < "u" ? window.pktAnimationPath : u, this.relocatedAria = {};
12
+ }
13
+ connectedCallback() {
14
+ super.connectedCallback(), this.addEventListener("click", (e) => {
15
+ (this.disabled || this.hasAttribute("disabled") || this.isLoading) && (e.preventDefault(), e.stopImmediatePropagation());
16
+ }, !0), this.addEventListener("keydown", (e) => {
17
+ (this.disabled || this.hasAttribute("disabled") || this.isLoading) && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopImmediatePropagation());
18
+ }, !0);
19
+ }
20
+ attributeChangedCallback(e, t, n) {
21
+ super.attributeChangedCallback(e, t, n), e === "disabled" && n === "false" && (this.disabled = !1), (e === "isloading" || e === "isLoading") && n === "false" && (this.isLoading = !1);
22
+ }
23
+ static {
24
+ this.relocatedAriaAttributes = [
25
+ "aria-haspopup",
26
+ "aria-expanded",
27
+ "aria-controls"
28
+ ];
29
+ }
30
+ willUpdate(t) {
31
+ super.willUpdate(t);
32
+ let n = !1, r = { ...this.relocatedAria };
33
+ for (let t of e.relocatedAriaAttributes) {
34
+ let e = this.getAttribute(t);
35
+ e !== null && (r[t] = e, this.removeAttribute(t), n = !0);
36
+ }
37
+ n && (this.relocatedAria = r);
38
+ }
39
+ firstUpdated(e) {
40
+ super.firstUpdated(e), this.disabled === "false" && (this.disabled = !1), this.isLoading === "false" && (this.isLoading = !1);
41
+ }
42
+ render() {
43
+ let e = this.form ?? this.getAttribute("form") ?? void 0;
44
+ return i`
45
+ <button
46
+ class=${o({
47
+ "pkt-btn": !0,
48
+ [`pkt-btn--${this.size}`]: !!this.size,
49
+ [`pkt-btn--${this.skin}`]: !!this.skin,
50
+ [`pkt-btn--${this.variant}`]: !!this.variant,
51
+ [`pkt-btn--${this.color}`]: !!this.color,
52
+ [`pkt-btn--${this.state}`]: !!this.state,
53
+ "pkt-btn--full": !!this.fullWidth,
54
+ "pkt-btn--full-small": !!this.fullWidthOnMobile,
55
+ "pkt-btn--disabled": !!this.disabled,
56
+ "pkt-btn--isLoading": !!this.isLoading
57
+ })}
58
+ type=${this.type}
59
+ ?disabled=${!!this.disabled}
60
+ aria-busy=${l(this.isLoading ? "true" : void 0)}
61
+ aria-disabled=${l(this.disabled || this.isLoading ? "true" : void 0)}
62
+ aria-haspopup=${l(this.relocatedAria["aria-haspopup"])}
63
+ aria-expanded=${l(this.relocatedAria["aria-expanded"])}
64
+ aria-controls=${l(this.relocatedAria["aria-controls"])}
65
+ form=${l(e)}
66
+ >
67
+ ${this.isLoading ? i`<pkt-icon
68
+ class="pkt-btn__icon pkt-btn__spinner"
69
+ name="spinner-blue"
70
+ path=${l(this.loadingAnimationPath)}
71
+ ></pkt-icon>` : t}
72
+ ${this.variant === "label-only" ? t : i`<pkt-icon
73
+ class="pkt-btn__icon pkt-icon"
74
+ name=${this.iconName}
75
+ path=${l(this.iconPath)}
76
+ ></pkt-icon>`}
77
+ <span class="pkt-btn__text">${s(this)}</span>
78
+ ${this.variant === "icons-right-and-left" ? i`<pkt-icon
79
+ class="pkt-btn__icon"
80
+ name=${this.secondIconName}
81
+ path=${l(this.secondIconPath)}
82
+ ></pkt-icon>` : t}
83
+ </button>
84
+ `;
85
+ }
86
+ };
87
+ n([r({ type: String })], d.prototype, "iconName", void 0), n([r({ type: String })], d.prototype, "secondIconName", void 0), n([r({ type: String })], d.prototype, "iconPath", void 0), n([r({ type: String })], d.prototype, "secondIconPath", void 0), n([r({ type: String })], d.prototype, "mode", void 0), n([r({ type: String })], d.prototype, "size", void 0), n([r({
88
+ type: Boolean,
89
+ attribute: "full-width"
90
+ })], d.prototype, "fullWidth", void 0), n([r({
91
+ type: Boolean,
92
+ attribute: "full-width-on-mobile"
93
+ })], d.prototype, "fullWidthOnMobile", void 0), n([r({ type: String })], d.prototype, "color", void 0), n([r({ type: String })], d.prototype, "skin", void 0), n([r({ type: String })], d.prototype, "variant", void 0), n([r({
94
+ type: String,
95
+ reflect: !0
96
+ })], d.prototype, "state", void 0), n([r({
97
+ type: String,
98
+ reflect: !0
99
+ })], d.prototype, "type", void 0), n([r({ type: String })], d.prototype, "form", void 0), n([r({
100
+ type: Boolean,
101
+ reflect: !0
102
+ })], d.prototype, "isLoading", void 0), n([r({
103
+ type: Boolean,
104
+ reflect: !0
105
+ })], d.prototype, "disabled", void 0), n([r({ type: String })], d.prototype, "loadingAnimationPath", void 0), n([e()], d.prototype, "relocatedAria", void 0);
106
+ try {
107
+ a("pkt-button")(d);
108
+ } catch {
109
+ console.warn("Forsøker å definere <pkt-button>, men den er allerede definert");
110
+ }
111
+ //#endregion
112
+ //#region src/components/button/index.ts
113
+ var f = d;
114
+ //#endregion
115
+ export { d as n, f as t };
@@ -1,10 +1,13 @@
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("./if-defined-DrwbxQOj.cjs");var i=`https://punkt-cdn.oslo.kommune.no/latest/animations/`;typeof window<`u`&&(window.pktAnimationPath=window.pktAnimationPath||i);var a=class extends n.t{constructor(...e){super(...e),this.iconName=`user`,this.secondIconName=`user`,this.mode=`light`,this.size=`medium`,this.fullWidth=!1,this.fullWidthOnMobile=!1,this.skin=`primary`,this.variant=`label-only`,this.state=`normal`,this.type=`button`,this.form=void 0,this.isLoading=!1,this.disabled=!1,this.loadingAnimationPath=typeof window<`u`?window.pktAnimationPath:i}connectedCallback(){super.connectedCallback(),this.addEventListener(`click`,e=>{(this.disabled||this.hasAttribute(`disabled`)||this.isLoading)&&(e.preventDefault(),e.stopImmediatePropagation())},!0),this.addEventListener(`keydown`,e=>{(this.disabled||this.hasAttribute(`disabled`)||this.isLoading)&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopImmediatePropagation())},!0)}attributeChangedCallback(e,t,n){super.attributeChangedCallback(e,t,n),e===`disabled`&&n===`false`&&(this.disabled=!1),(e===`isloading`||e===`isLoading`)&&n===`false`&&(this.isLoading=!1)}firstUpdated(e){super.firstUpdated(e),this.disabled===`false`&&(this.disabled=!1),this.isLoading===`false`&&(this.isLoading=!1)}render(){let i=this.form??this.getAttribute(`form`)??void 0;return e.p`
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("./if-defined-DrwbxQOj.cjs");var i=`https://punkt-cdn.oslo.kommune.no/latest/animations/`;typeof window<`u`&&(window.pktAnimationPath=window.pktAnimationPath||i);var a=class a extends n.t{constructor(...e){super(...e),this.iconName=`user`,this.secondIconName=`user`,this.mode=`light`,this.size=`medium`,this.fullWidth=!1,this.fullWidthOnMobile=!1,this.skin=`primary`,this.variant=`label-only`,this.state=`normal`,this.type=`button`,this.form=void 0,this.isLoading=!1,this.disabled=!1,this.loadingAnimationPath=typeof window<`u`?window.pktAnimationPath:i,this.relocatedAria={}}connectedCallback(){super.connectedCallback(),this.addEventListener(`click`,e=>{(this.disabled||this.hasAttribute(`disabled`)||this.isLoading)&&(e.preventDefault(),e.stopImmediatePropagation())},!0),this.addEventListener(`keydown`,e=>{(this.disabled||this.hasAttribute(`disabled`)||this.isLoading)&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopImmediatePropagation())},!0)}attributeChangedCallback(e,t,n){super.attributeChangedCallback(e,t,n),e===`disabled`&&n===`false`&&(this.disabled=!1),(e===`isloading`||e===`isLoading`)&&n===`false`&&(this.isLoading=!1)}static{this.relocatedAriaAttributes=[`aria-haspopup`,`aria-expanded`,`aria-controls`]}willUpdate(e){super.willUpdate(e);let t=!1,n={...this.relocatedAria};for(let e of a.relocatedAriaAttributes){let r=this.getAttribute(e);r!==null&&(n[e]=r,this.removeAttribute(e),t=!0)}t&&(this.relocatedAria=n)}firstUpdated(e){super.firstUpdated(e),this.disabled===`false`&&(this.disabled=!1),this.isLoading===`false`&&(this.isLoading=!1)}render(){let i=this.form??this.getAttribute(`form`)??void 0;return e.p`
2
2
  <button
3
3
  class=${t.t({"pkt-btn":!0,[`pkt-btn--${this.size}`]:!!this.size,[`pkt-btn--${this.skin}`]:!!this.skin,[`pkt-btn--${this.variant}`]:!!this.variant,[`pkt-btn--${this.color}`]:!!this.color,[`pkt-btn--${this.state}`]:!!this.state,"pkt-btn--full":!!this.fullWidth,"pkt-btn--full-small":!!this.fullWidthOnMobile,"pkt-btn--disabled":!!this.disabled,"pkt-btn--isLoading":!!this.isLoading})}
4
4
  type=${this.type}
5
5
  ?disabled=${!!this.disabled}
6
6
  aria-busy=${r.t(this.isLoading?`true`:void 0)}
7
7
  aria-disabled=${r.t(this.disabled||this.isLoading?`true`:void 0)}
8
+ aria-haspopup=${r.t(this.relocatedAria[`aria-haspopup`])}
9
+ aria-expanded=${r.t(this.relocatedAria[`aria-expanded`])}
10
+ aria-controls=${r.t(this.relocatedAria[`aria-controls`])}
8
11
  form=${r.t(i)}
9
12
  >
10
13
  ${this.isLoading?e.p`<pkt-icon
@@ -24,4 +27,4 @@ const e=require("./element-DJzurxgt.cjs"),t=require("./class-map-CCZN5uS3.cjs"),
24
27
  path=${r.t(this.secondIconPath)}
25
28
  ></pkt-icon>`:e.d}
26
29
  </button>
27
- `}};e.n([e.o({type:String})],a.prototype,`iconName`,void 0),e.n([e.o({type:String})],a.prototype,`secondIconName`,void 0),e.n([e.o({type:String})],a.prototype,`iconPath`,void 0),e.n([e.o({type:String})],a.prototype,`secondIconPath`,void 0),e.n([e.o({type:String})],a.prototype,`mode`,void 0),e.n([e.o({type:String})],a.prototype,`size`,void 0),e.n([e.o({type:Boolean,attribute:`full-width`})],a.prototype,`fullWidth`,void 0),e.n([e.o({type:Boolean,attribute:`full-width-on-mobile`})],a.prototype,`fullWidthOnMobile`,void 0),e.n([e.o({type:String})],a.prototype,`color`,void 0),e.n([e.o({type:String})],a.prototype,`skin`,void 0),e.n([e.o({type:String})],a.prototype,`variant`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`state`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`type`,void 0),e.n([e.o({type:String})],a.prototype,`form`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`isLoading`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`disabled`,void 0),e.n([e.o({type:String})],a.prototype,`loadingAnimationPath`,void 0);try{e.s(`pkt-button`)(a)}catch{console.warn(`Forsøker å definere <pkt-button>, men den er allerede definert`)}var o=a;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
30
+ `}};e.n([e.o({type:String})],a.prototype,`iconName`,void 0),e.n([e.o({type:String})],a.prototype,`secondIconName`,void 0),e.n([e.o({type:String})],a.prototype,`iconPath`,void 0),e.n([e.o({type:String})],a.prototype,`secondIconPath`,void 0),e.n([e.o({type:String})],a.prototype,`mode`,void 0),e.n([e.o({type:String})],a.prototype,`size`,void 0),e.n([e.o({type:Boolean,attribute:`full-width`})],a.prototype,`fullWidth`,void 0),e.n([e.o({type:Boolean,attribute:`full-width-on-mobile`})],a.prototype,`fullWidthOnMobile`,void 0),e.n([e.o({type:String})],a.prototype,`color`,void 0),e.n([e.o({type:String})],a.prototype,`skin`,void 0),e.n([e.o({type:String})],a.prototype,`variant`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`state`,void 0),e.n([e.o({type:String,reflect:!0})],a.prototype,`type`,void 0),e.n([e.o({type:String})],a.prototype,`form`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`isLoading`,void 0),e.n([e.o({type:Boolean,reflect:!0})],a.prototype,`disabled`,void 0),e.n([e.o({type:String})],a.prototype,`loadingAnimationPath`,void 0),e.n([e.a()],a.prototype,`relocatedAria`,void 0);try{e.s(`pkt-button`)(a)}catch{console.warn(`Forsøker å definere <pkt-button>, men den er allerede definert`)}var o=a;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});