@oslokommune/punkt-elements 19.11.0 → 19.12.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
5
5
 
6
6
  ---
7
7
 
8
+ ## [19.12.0](https://github.com/oslokommune/punkt/compare/19.11.0...19.12.0) (2026-10-12)
9
+
10
+ ### Features
11
+ * Fargeoppdateringer på Accordion, Button, Combobox og Datepicker, pluss 3 nye semantiske farger (#3716). - Tre nye nøytrale flatefarger som følger dunkelmodus: surface-subtle-default, surface-default-default og surface-strong-default
12
+ - Accordion: ny gray-skin, og borderless og border ser riktig ut i mørk modus. Beige og blue beholder lyse farger også i mørk modus
13
+ - Nytt: data-mode="light" gir lys modus inne i et mørkt område
14
+ - Datepicker: blå hover på datoer i dark mode og fetere skrift på valgte datoer
15
+ - Combobox: tagger er ***blå*** i stedet for *mørkeblå*, og lyseblå hover i begge moduser. "Legg til" og infofeltet har fått grå bakgrunn, og søkefeltet en tynn ramme
16
+ - Button: secondary fylles ikke lenger ved hover, fokus og klikk, bare ramme og tekst skifter farge. Tertiary har fått roligere hover og klikk, særlig i mørk modus
17
+
18
+ ---
19
+
20
+
8
21
  ## [19.11.0](https://github.com/oslokommune/punkt/compare/19.10.2...19.11.0) (2026-10-08)
9
22
 
10
23
  ### Features
@@ -5,8 +5,8 @@ import { t as l } from "./if-defined-O59_I-e-.js";
5
5
  import { n as u, t as d } from "./consume-Bp12si68.js";
6
6
  import { t as f } from "./provide-_MnlMGnw.js";
7
7
  import { n as p, t as m } from "./ref-y_5qv9vU.js";
8
- //#region src/components/accordion/accordion-context.ts
9
- var h = u(Symbol("pkt-accordion-context")), g = class extends t {
8
+ //#region ../../shared-types/accordion.ts
9
+ var h = ["beige", "blue"], g = u(Symbol("pkt-accordion-context")), _ = class extends t {
10
10
  constructor(...e) {
11
11
  super(...e), this.ariaLabelledBy = "", this.compact = !1, this.skin = "borderless", this.name = "", this.context = { skin: this.skin };
12
12
  }
@@ -55,27 +55,27 @@ i([a({
55
55
  type: String,
56
56
  reflect: !0,
57
57
  attribute: "aria-labelledby"
58
- })], g.prototype, "ariaLabelledBy", void 0), i([a({
58
+ })], _.prototype, "ariaLabelledBy", void 0), i([a({
59
59
  type: Boolean,
60
60
  reflect: !0,
61
61
  attribute: "compact"
62
- })], g.prototype, "compact", void 0), i([a({
62
+ })], _.prototype, "compact", void 0), i([a({
63
63
  type: String,
64
64
  reflect: !0,
65
65
  attribute: "skin"
66
- })], g.prototype, "skin", void 0), i([a({
66
+ })], _.prototype, "skin", void 0), i([a({
67
67
  type: String,
68
68
  reflect: !0,
69
69
  attribute: "name"
70
- })], g.prototype, "name", void 0), i([f({ context: h }), r()], g.prototype, "context", void 0);
70
+ })], _.prototype, "name", void 0), i([f({ context: g }), r()], _.prototype, "context", void 0);
71
71
  try {
72
- n("pkt-accordion")(g);
72
+ n("pkt-accordion")(_);
73
73
  } catch {
74
74
  console.warn("Forsøker å definere <pkt-accordion>, men den er allerede definert");
75
75
  }
76
76
  //#endregion
77
77
  //#region src/components/accordion/accordionitem.ts
78
- var _ = class extends c {
78
+ var v = class extends c {
79
79
  constructor() {
80
80
  super(), this.defaultOpen = !1, this.title = "", this.skin = void 0, this.compact = !1, this.isOpen = !1, this.name = void 0, this.accordionItemRef = m();
81
81
  }
@@ -87,7 +87,7 @@ var _ = class extends c {
87
87
  "pkt-accordion-item": !0,
88
88
  "pkt-accordion-item--compact": this.compact,
89
89
  [`pkt-accordion-item--${this.skin}`]: !!this.skin
90
- }, n = (this.skin ?? this.context?.skin) === "plus-minus";
90
+ }, n = this.skin ?? this.context?.skin, r = n === "plus-minus";
91
91
  return e`
92
92
  <details
93
93
  class=${o(t)}
@@ -95,10 +95,11 @@ var _ = class extends c {
95
95
  ?open=${this.isOpen}
96
96
  ${p(this.accordionItemRef)}
97
97
  name=${l(this.name)}
98
+ data-mode=${l(n && h.includes(n) ? "light" : void 0)}
98
99
  >
99
100
  <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}>
100
101
  ${this.title}
101
- ${n ? e`
102
+ ${r ? e`
102
103
  <pkt-icon
103
104
  name="plus-sign"
104
105
  class="pkt-accordion-item__icon pkt-accordion-item__icon--plus"
@@ -128,29 +129,29 @@ var _ = class extends c {
128
129
  `;
129
130
  }
130
131
  };
131
- i([a({ type: Boolean })], _.prototype, "defaultOpen", void 0), i([a({ type: String })], _.prototype, "title", void 0), i([a({
132
+ i([a({ type: Boolean })], v.prototype, "defaultOpen", void 0), i([a({ type: String })], v.prototype, "title", void 0), i([a({
132
133
  type: String,
133
134
  reflect: !0
134
- })], _.prototype, "skin", void 0), i([a({
135
+ })], v.prototype, "skin", void 0), i([a({
135
136
  type: Boolean,
136
137
  reflect: !0
137
- })], _.prototype, "compact", void 0), i([a({
138
+ })], v.prototype, "compact", void 0), i([a({
138
139
  type: Boolean,
139
140
  reflect: !0
140
- })], _.prototype, "isOpen", void 0), i([a({
141
+ })], v.prototype, "isOpen", void 0), i([a({
141
142
  type: String,
142
143
  reflect: !0
143
- })], _.prototype, "name", void 0), i([d({
144
- context: h,
144
+ })], v.prototype, "name", void 0), i([d({
145
+ context: g,
145
146
  subscribe: !0
146
- }), a({ attribute: !1 })], _.prototype, "context", void 0);
147
+ }), a({ attribute: !1 })], v.prototype, "context", void 0);
147
148
  try {
148
- n("pkt-accordion-item")(_);
149
+ n("pkt-accordion-item")(v);
149
150
  } catch {
150
151
  console.warn("Forsøker å definere <pkt-accordion-item>, men den er allerede definert");
151
152
  }
152
153
  //#endregion
153
154
  //#region src/components/accordion/index.ts
154
- var v = g;
155
+ var y = _;
155
156
  //#endregion
156
- export { _ as n, g as r, v as t };
157
+ export { v as n, _ as r, y as t };
@@ -0,0 +1,48 @@
1
+ const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./element-with-slot-CcJPCLgn.cjs"),r=require("./if-defined-CiML3MTM.cjs"),i=require("./consume-kEjgTrAp.cjs"),a=require("./provide-Cz18sYug.cjs"),o=require("./ref-CB7e9nMY.cjs");var s=[`beige`,`blue`],c=i.n(Symbol(`pkt-accordion-context`)),l=class extends e.c{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(){let n={"pkt-accordion":!0,"pkt-accordion--compact":this.compact,[`pkt-accordion--${this.skin}`]:this.skin};return e._`
2
+ <div
3
+ part="container"
4
+ class=${t.t(n)}
5
+ data-testid="pkt-accordion"
6
+ aria-labelledby=${r.t(this.ariaLabelledBy||void 0)}
7
+ >
8
+ <slot></slot>
9
+ </div>
10
+ `}};e.n([e.u({type:String,reflect:!0,attribute:`aria-labelledby`})],l.prototype,`ariaLabelledBy`,void 0),e.n([e.u({type:Boolean,reflect:!0,attribute:`compact`})],l.prototype,`compact`,void 0),e.n([e.u({type:String,reflect:!0,attribute:`skin`})],l.prototype,`skin`,void 0),e.n([e.u({type:String,reflect:!0,attribute:`name`})],l.prototype,`name`,void 0),e.n([a.t({context:c}),e.l()],l.prototype,`context`,void 0);try{e.d(`pkt-accordion`)(l)}catch{console.warn(`Forsøker å definere <pkt-accordion>, men den er allerede definert`)}var u=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=o.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},a=this.skin??this.context?.skin,c=a===`plus-minus`;return e._`
11
+ <details
12
+ class=${t.t(i)}
13
+ id=${this.id}
14
+ ?open=${this.isOpen}
15
+ ${o.n(this.accordionItemRef)}
16
+ name=${r.t(this.name)}
17
+ data-mode=${r.t(a&&s.includes(a)?`light`:void 0)}
18
+ >
19
+ <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}>
20
+ ${this.title}
21
+ ${c?e._`
22
+ <pkt-icon
23
+ name="plus-sign"
24
+ class="pkt-accordion-item__icon pkt-accordion-item__icon--plus"
25
+ aria-hidden="true"
26
+ ></pkt-icon>
27
+ <pkt-icon
28
+ name="minus-sign"
29
+ class="pkt-accordion-item__icon pkt-accordion-item__icon--minus"
30
+ aria-hidden="true"
31
+ ></pkt-icon>
32
+ `:e._`
33
+ <pkt-icon
34
+ name="chevron-thin-down"
35
+ class="pkt-accordion-item__icon"
36
+ aria-hidden="true"
37
+ ></pkt-icon>
38
+ `}
39
+ </summary>
40
+ <div
41
+ class="pkt-accordion-item__content"
42
+ id="pkt-accordion-item__content-${this.id}"
43
+ role="region"
44
+ >
45
+ <div class="pkt-accordion-item__content-inner">${n.i(this)}</div>
46
+ </div>
47
+ </details>
48
+ `}};e.n([e.u({type:Boolean})],u.prototype,`defaultOpen`,void 0),e.n([e.u({type:String})],u.prototype,`title`,void 0),e.n([e.u({type:String,reflect:!0})],u.prototype,`skin`,void 0),e.n([e.u({type:Boolean,reflect:!0})],u.prototype,`compact`,void 0),e.n([e.u({type:Boolean,reflect:!0})],u.prototype,`isOpen`,void 0),e.n([e.u({type:String,reflect:!0})],u.prototype,`name`,void 0),e.n([i.t({context:c,subscribe:!0}),e.u({attribute:!1})],u.prototype,`context`,void 0);try{e.d(`pkt-accordion-item`)(u)}catch{console.warn(`Forsøker å definere <pkt-accordion-item>, men den er allerede definert`)}var d=l;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
@@ -689,7 +689,7 @@ var M = class extends j {
689
689
  @mousedown=${i ? n : (e) => e.preventDefault()}
690
690
  >
691
691
  <pkt-tag
692
- skin=${o || "blue-dark"}
692
+ skin=${o || "blue"}
693
693
  ?closeTag=${!this.isDisabled}
694
694
  .buttonTabindex=${i ? void 0 : -1}
695
695
  @close=${() => this.handleTagRemove(t)}
@@ -125,7 +125,7 @@ const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),
125
125
  @mousedown=${r?e.h:e=>e.preventDefault()}
126
126
  >
127
127
  <pkt-tag
128
- skin=${a||`blue-dark`}
128
+ skin=${a||`blue`}
129
129
  ?closeTag=${!this.isDisabled}
130
130
  .buttonTabindex=${r?void 0:-1}
131
131
  @close=${()=>this.handleTagRemove(t)}
@@ -13,7 +13,7 @@ import { n as b, t as x } from "./scroll-lock-BALd8hF9.js";
13
13
  import "./link-sO401Ieh.js";
14
14
  import "./textinput-wZSCpQgv.js";
15
15
  import "./searchinput-Bkcr3Fby.js";
16
- import "./header-menu-Ch135F5Y.js";
16
+ import "./header-menu-F3tZZ5vO.js";
17
17
  //#region ../../shared-types/header.ts
18
18
  var S = (e) => typeof e.target == "string" ? {
19
19
  title: e.title,
@@ -1,4 +1,4 @@
1
- const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./format-B8meU8Tm.cjs"),r=require("./element-with-slot-CcJPCLgn.cjs"),i=require("./booleanish-BF8l4scU.cjs"),a=require("./fetch-header-footer-data-CUKV0biS.cjs");require("./icon-jPhyZD1z.cjs");const o=require("./if-defined-CiML3MTM.cjs");require("./button-BFG-7bDB.cjs");const s=require("./ref-CB7e9nMY.cjs"),c=require("./focus-trap-DSv4Ifqm.cjs"),l=require("./scroll-lock-B46ur0FF.cjs");require("./link-CRLAhYi0.cjs"),require("./textinput-C7JFm9jD.cjs"),require("./searchinput-Mdc9Ihld.cjs"),require("./header-menu-DpuxDU9a.cjs");var u=e=>typeof e.target==`string`?{title:e.title,iconName:e.iconName,href:e.target}:{title:e.title,iconName:e.iconName,onClick:e.target},d=e=>u(e),f=e=>{if(!e)return;let t=typeof e==`string`?new Date(e):e;if(!isNaN(t.getTime()))return t.toLocaleDateString(`nb-NO`,{day:`numeric`,month:`long`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})},p=class{constructor(e,t){this.isMobile=!1,this.isTablet=!1,this.isHidden=!1,this.pauseScrollHide=!1,this.componentWidth=typeof window<`u`?window.innerWidth:0,this.lastScrollPosition=0,this.scrollLockToken=l.t(),this.lastFocusedElement=null,this.shouldRestoreFocus=!1,this.handleScroll=()=>{if(this.getOptions().scrollBehavior!==`hide`||this.pauseScrollHide)return;let e=window.pageYOffset||document.documentElement.scrollTop;if(e<0||Math.abs(e-this.lastScrollPosition)<60)return;let t=e>this.lastScrollPosition;this.lastScrollPosition=e,t!==this.isHidden&&(this.isHidden=t,this.host.requestUpdate())},this.host=e,this.getOptions=t,e.addController(this)}hostConnected(){window.addEventListener(`scroll`,this.handleScroll)}hostDisconnected(){this.resizeObserver?.disconnect(),window.removeEventListener(`scroll`,this.handleScroll),l.n(this.scrollLockToken,!1)}observe(e){e&&(this.componentWidth=e.offsetWidth,this.refreshBreakpoints(),this.resizeObserver=new ResizeObserver(e=>{for(let t of e)this.componentWidth=t.borderBoxSize&&t.borderBoxSize.length>0?t.borderBoxSize[0].inlineSize:t.contentRect.width,this.refreshBreakpoints()}),this.resizeObserver.observe(e))}refreshBreakpoints(){let{mobileBreakpoint:e,tabletBreakpoint:t}=this.getOptions(),n=this.componentWidth<e,r=this.componentWidth<t;(n!==this.isMobile||r!==this.isTablet)&&(this.isMobile=n,this.isTablet=r,this.host.requestUpdate())}setScrollLock(e){l.n(this.scrollLockToken,e)}captureFocus(){this.lastFocusedElement=document.activeElement}flagRestoreFocus(){this.shouldRestoreFocus=!0}restoreFocus(){this.shouldRestoreFocus&&this.lastFocusedElement&&document.contains(this.lastFocusedElement)&&this.lastFocusedElement.focus(),this.lastFocusedElement=null,this.shouldRestoreFocus=!1}},m=class extends e.t{constructor(...e){super(...e),this.canChangeRepresentation=!1,this.logoutOnClick=!1}handleChangeRepresentation(){this.dispatchEvent(new CustomEvent(`change-representation`,{bubbles:!0,composed:!0}))}handleLogout(){this.dispatchEvent(new CustomEvent(`log-out`,{bubbles:!0,composed:!0}))}handleMenuItemClick(e){`onClick`in e&&typeof e.onClick==`function`&&e.onClick()}renderLinkOrButton(n,r){let i=`href`in n,a=t.t({"pkt-user-menu__link":!0,"pkt-link-button":!i,"pkt-link":!i,"pkt-link--icon-left":!i,[r||``]:!!r});return i?e._`
1
+ const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./format-B8meU8Tm.cjs"),r=require("./element-with-slot-CcJPCLgn.cjs"),i=require("./booleanish-BF8l4scU.cjs"),a=require("./fetch-header-footer-data-CUKV0biS.cjs");require("./icon-jPhyZD1z.cjs");const o=require("./if-defined-CiML3MTM.cjs");require("./button-BFG-7bDB.cjs");const s=require("./ref-CB7e9nMY.cjs"),c=require("./focus-trap-DSv4Ifqm.cjs"),l=require("./scroll-lock-B46ur0FF.cjs");require("./link-CRLAhYi0.cjs"),require("./textinput-C7JFm9jD.cjs"),require("./searchinput-Mdc9Ihld.cjs"),require("./header-menu-Cz7G7Q2R.cjs");var u=e=>typeof e.target==`string`?{title:e.title,iconName:e.iconName,href:e.target}:{title:e.title,iconName:e.iconName,onClick:e.target},d=e=>u(e),f=e=>{if(!e)return;let t=typeof e==`string`?new Date(e):e;if(!isNaN(t.getTime()))return t.toLocaleDateString(`nb-NO`,{day:`numeric`,month:`long`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})},p=class{constructor(e,t){this.isMobile=!1,this.isTablet=!1,this.isHidden=!1,this.pauseScrollHide=!1,this.componentWidth=typeof window<`u`?window.innerWidth:0,this.lastScrollPosition=0,this.scrollLockToken=l.t(),this.lastFocusedElement=null,this.shouldRestoreFocus=!1,this.handleScroll=()=>{if(this.getOptions().scrollBehavior!==`hide`||this.pauseScrollHide)return;let e=window.pageYOffset||document.documentElement.scrollTop;if(e<0||Math.abs(e-this.lastScrollPosition)<60)return;let t=e>this.lastScrollPosition;this.lastScrollPosition=e,t!==this.isHidden&&(this.isHidden=t,this.host.requestUpdate())},this.host=e,this.getOptions=t,e.addController(this)}hostConnected(){window.addEventListener(`scroll`,this.handleScroll)}hostDisconnected(){this.resizeObserver?.disconnect(),window.removeEventListener(`scroll`,this.handleScroll),l.n(this.scrollLockToken,!1)}observe(e){e&&(this.componentWidth=e.offsetWidth,this.refreshBreakpoints(),this.resizeObserver=new ResizeObserver(e=>{for(let t of e)this.componentWidth=t.borderBoxSize&&t.borderBoxSize.length>0?t.borderBoxSize[0].inlineSize:t.contentRect.width,this.refreshBreakpoints()}),this.resizeObserver.observe(e))}refreshBreakpoints(){let{mobileBreakpoint:e,tabletBreakpoint:t}=this.getOptions(),n=this.componentWidth<e,r=this.componentWidth<t;(n!==this.isMobile||r!==this.isTablet)&&(this.isMobile=n,this.isTablet=r,this.host.requestUpdate())}setScrollLock(e){l.n(this.scrollLockToken,e)}captureFocus(){this.lastFocusedElement=document.activeElement}flagRestoreFocus(){this.shouldRestoreFocus=!0}restoreFocus(){this.shouldRestoreFocus&&this.lastFocusedElement&&document.contains(this.lastFocusedElement)&&this.lastFocusedElement.focus(),this.lastFocusedElement=null,this.shouldRestoreFocus=!1}},m=class extends e.t{constructor(...e){super(...e),this.canChangeRepresentation=!1,this.logoutOnClick=!1}handleChangeRepresentation(){this.dispatchEvent(new CustomEvent(`change-representation`,{bubbles:!0,composed:!0}))}handleLogout(){this.dispatchEvent(new CustomEvent(`log-out`,{bubbles:!0,composed:!0}))}handleMenuItemClick(e){`onClick`in e&&typeof e.onClick==`function`&&e.onClick()}renderLinkOrButton(n,r){let i=`href`in n,a=t.t({"pkt-user-menu__link":!0,"pkt-link-button":!i,"pkt-link":!i,"pkt-link--icon-left":!i,[r||``]:!!r});return i?e._`
2
2
  <pkt-link
3
3
  iconName=${n.iconName||e.h}
4
4
  href=${n.href}
@@ -1,4 +1,4 @@
1
- const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./booleanish-BF8l4scU.cjs"),r=require("./fetch-header-footer-data-CUKV0biS.cjs");require("./icon-jPhyZD1z.cjs"),require("./accordion-lbYihdiw.cjs");var i=class extends e.t{constructor(...e){super(...e),this.dataUrl=r.a,this.locale=`nb-NO`,this.open=!1,this.mobileBreakpoint=768,this.loadState=`idle`,this.isMobile=!1,this.menuWidth=0}connectedCallback(){super.connectedCallback(),this.classList.add(`pkt-header-menu`),this.updateOpenClass(),this.observeWidth(),this.data?(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0}))):this.loadData()}updateOpenClass(){this.classList.toggle(`pkt-header-menu--open`,!!this.open)}disconnectedCallback(){super.disconnectedCallback(),this.abortController?.abort(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0}updated(e){super.updated(e),e.has(`open`)&&this.updateOpenClass(),e.has(`mobileBreakpoint`)&&e.get(`mobileBreakpoint`)!==void 0&&this.refreshIsMobile(),e.has(`dataUrl`)&&e.get(`dataUrl`)!==void 0&&!this.data&&this.loadData(),e.has(`data`)&&e.get(`data`)!==void 0&&this.data&&(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0})))}observeWidth(){typeof ResizeObserver>`u`||(this.menuWidth=this.offsetWidth,this.refreshIsMobile(),this.resizeObserver=new ResizeObserver(e=>{for(let t of e)this.menuWidth=t.borderBoxSize&&t.borderBoxSize.length>0?t.borderBoxSize[0].inlineSize:t.contentRect.width,this.refreshIsMobile()}),this.resizeObserver.observe(this))}refreshIsMobile(){this.isMobile=this.menuWidth<this.mobileBreakpoint}async loadData(){this.abortController?.abort(),this.abortController=new AbortController,this.loadState=`loading`;try{let e=await r.t(this.dataUrl,this.abortController.signal);this.fetchedData=e,this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:e},bubbles:!0,composed:!0}))}catch(e){if(e.name===`AbortError`)return;this.loadState=`error`,this.dispatchEvent(new CustomEvent(`data-error`,{detail:{error:e},bubbles:!0,composed:!0}))}}get effectiveData(){return this.data??this.fetchedData}get localeData(){return r.n(this.effectiveData,this.locale)}render(){if(this.loadState===`loading`)return e._`
1
+ const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./booleanish-BF8l4scU.cjs"),r=require("./fetch-header-footer-data-CUKV0biS.cjs");require("./icon-jPhyZD1z.cjs"),require("./accordion-DukAa2ED.cjs");var i=class extends e.t{constructor(...e){super(...e),this.dataUrl=r.a,this.locale=`nb-NO`,this.open=!1,this.mobileBreakpoint=768,this.loadState=`idle`,this.isMobile=!1,this.menuWidth=0}connectedCallback(){super.connectedCallback(),this.classList.add(`pkt-header-menu`),this.updateOpenClass(),this.observeWidth(),this.data?(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0}))):this.loadData()}updateOpenClass(){this.classList.toggle(`pkt-header-menu--open`,!!this.open)}disconnectedCallback(){super.disconnectedCallback(),this.abortController?.abort(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0}updated(e){super.updated(e),e.has(`open`)&&this.updateOpenClass(),e.has(`mobileBreakpoint`)&&e.get(`mobileBreakpoint`)!==void 0&&this.refreshIsMobile(),e.has(`dataUrl`)&&e.get(`dataUrl`)!==void 0&&!this.data&&this.loadData(),e.has(`data`)&&e.get(`data`)!==void 0&&this.data&&(this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:this.data},bubbles:!0,composed:!0})))}observeWidth(){typeof ResizeObserver>`u`||(this.menuWidth=this.offsetWidth,this.refreshIsMobile(),this.resizeObserver=new ResizeObserver(e=>{for(let t of e)this.menuWidth=t.borderBoxSize&&t.borderBoxSize.length>0?t.borderBoxSize[0].inlineSize:t.contentRect.width,this.refreshIsMobile()}),this.resizeObserver.observe(this))}refreshIsMobile(){this.isMobile=this.menuWidth<this.mobileBreakpoint}async loadData(){this.abortController?.abort(),this.abortController=new AbortController,this.loadState=`loading`;try{let e=await r.t(this.dataUrl,this.abortController.signal);this.fetchedData=e,this.loadState=`ready`,this.dispatchEvent(new CustomEvent(`data-loaded`,{detail:{data:e},bubbles:!0,composed:!0}))}catch(e){if(e.name===`AbortError`)return;this.loadState=`error`,this.dispatchEvent(new CustomEvent(`data-error`,{detail:{error:e},bubbles:!0,composed:!0}))}}get effectiveData(){return this.data??this.fetchedData}get localeData(){return r.n(this.effectiveData,this.locale)}render(){if(this.loadState===`loading`)return e._`
2
2
  <nav aria-busy="true">
3
3
  <p class="pkt-header-menu__loading">${this.pktStrings.get(`header`).menuLoading}</p>
4
4
  </nav>
@@ -3,7 +3,7 @@ import { t as s } from "./class-map-Bf-QzUpN.js";
3
3
  import { t as c } from "./booleanish-OQJTYSrw.js";
4
4
  import { a as l, i as u, n as d, r as f, t as p } from "./fetch-header-footer-data-Pc32etrk.js";
5
5
  import "./icon-Bao96Zb8.js";
6
- import "./accordion-CjGAmoQq.js";
6
+ import "./accordion-BlsqYbJf.js";
7
7
  //#region src/components/header-menu/header-menu.ts
8
8
  var m = class extends a {
9
9
  constructor(...e) {
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./accordion-lbYihdiw.cjs");exports.PktAccordion=e.r,exports.PktAccordionItem=e.n,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./accordion-DukAa2ED.cjs");exports.PktAccordion=e.r,exports.PktAccordionItem=e.n,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "./accordion-CjGAmoQq.js";
1
+ import { n as e, r as t, t as n } from "./accordion-BlsqYbJf.js";
2
2
  export { t as PktAccordion, e as PktAccordionItem, n as default };
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./combobox-I8qdg8A4.cjs");exports.PktCombobox=e.n,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./combobox-Dlhm1iYr.cjs");exports.PktCombobox=e.n,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./combobox-B0VWv9c_.js";
1
+ import { n as e, t } from "./combobox-2NTR70Ad.js";
2
2
  export { e as PktCombobox, t as default };
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./header-menu-DpuxDU9a.cjs");exports.PktHeaderMenu=e.n,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./header-menu-Cz7G7Q2R.cjs");exports.PktHeaderMenu=e.n,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./header-menu-Ch135F5Y.js";
1
+ import { n as e, t } from "./header-menu-F3tZZ5vO.js";
2
2
  export { e as PktHeaderMenu, t as default };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./header-IQvyDow3.cjs");exports.PktHeader=e.t,exports.PktHeaderGlobal=e.n,exports.PktHeaderService=e.r,exports.PktHeaderUserMenu=e.i,exports.formatLastLoggedIn=e.a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./header-lgdaF8oa.cjs");exports.PktHeader=e.t,exports.PktHeaderGlobal=e.n,exports.PktHeaderService=e.r,exports.PktHeaderUserMenu=e.i,exports.formatLastLoggedIn=e.a;
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, r, t as i } from "./header-DLKiD7xm.js";
1
+ import { a as e, i as t, n, r, t as i } from "./header-DbV1G9bY.js";
2
2
  export { i as PktHeader, n as PktHeaderGlobal, r as PktHeaderService, t as PktHeaderUserMenu, e as formatLastLoggedIn };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./element-C6WTyJFE.cjs"),t=require("./consent-DBYZaCTp.cjs"),n=require("./alert-CuXM6TnC.cjs"),r=require("./header-IQvyDow3.cjs"),i=require("./card-Diivw_vm.cjs"),a=require("./checkbox-Dyyrw5TE.cjs"),o=require("./radiobutton-qTPNeZl5.cjs"),s=require("./icon-jPhyZD1z.cjs"),c=require("./messagebox-CR59jv8N.cjs"),l=require("./calendar-C5QwPrbk.cjs"),u=require("./combobox-I8qdg8A4.cjs"),d=require("./button-BFG-7bDB.cjs"),f=require("./accordion-lbYihdiw.cjs"),p=require("./backlink-CsFeerTH.cjs"),m=require("./breadcrumbs-D03id_ha.cjs"),h=require("./tag-BMtnaJ1A.cjs"),g=require("./input-wrapper-BwzajfFX.cjs"),_=require("./helptext-Bdv80rcs.cjs"),v=require("./checkbox-group-COWUvl52.cjs"),y=require("./fileupload-CyLRyoVU.cjs"),b=require("./modal-BKeSXrzi.cjs"),x=require("./progressbar-CnX4fFfR.cjs"),S=require("./datepicker-0NSvgPXK.cjs"),C=require("./footer-C6ajmlq2.cjs"),w=require("./link-CRLAhYi0.cjs"),T=require("./textinput-C7JFm9jD.cjs"),E=require("./searchinput-Mdc9Ihld.cjs"),D=require("./header-menu-DpuxDU9a.cjs"),O=require("./heading-BluavR6A.cjs"),k=require("./linkcard-DnZgMzqL.cjs"),A=require("./loader-Zo_VSsNw.cjs"),j=require("./radio-group-DaIRh-fL.cjs"),M=require("./tabs-R1Jzzj3-.cjs"),N=require("./textarea-DWLVisQX.cjs"),P=require("./select-CQpwjRPh.cjs"),F=require("./timepicker-DVyi8teh.cjs");exports.PktAccordion=f.r,exports.PktAccordionItem=f.n,exports.PktAlert=n.n,exports.PktBackLink=p.n,exports.PktBreadcrumbs=m.t,exports.PktButton=d.n,exports.PktCalendar=l.n,exports.PktCard=i.n,exports.PktCheckbox=a.n,exports.PktCheckboxGroup=v.n,exports.PktCombobox=u.n,exports.PktConsent=t.n,exports.PktDateTags=S.a,exports.PktDatepicker=S.t,Object.defineProperty(exports,"PktFileUpload",{enumerable:!0,get:function(){return y.n}}),exports.PktFooter=C.n,exports.PktFooterSimple=C.t,exports.PktHeader=r.t,exports.PktHeaderGlobal=r.n,exports.PktHeaderMenu=D.n,exports.PktHeaderService=r.r,exports.PktHeaderUserMenu=r.i,exports.PktHeading=O.n,exports.PktHelptext=_.n,exports.PktIcon=s.n,exports.PktInputWrapper=g.n,exports.PktLink=w.n,exports.PktLinkCard=k.n,exports.PktLoader=A.n,exports.PktMessagebox=c.n,exports.PktModal=b.n,exports.PktProgressbar=x.n,exports.PktRadioButton=o.n,exports.PktRadiobutton=o.n,exports.PktRadioGroup=j.n,exports.PktSearchInput=E.n,exports.PktSelect=P.n,exports.PktTabItem=M.n,exports.PktTabs=M.r,exports.PktTag=h.n,exports.PktTextarea=N.n,exports.PktTextinput=T.n,exports.PktTimepicker=F.t,exports.getPktStrings=e.r,exports.pktStringsNb=e.s,exports.resetPktStrings=e.i,exports.setPktStrings=e.a,exports.subscribePktStrings=e.o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./element-C6WTyJFE.cjs"),t=require("./consent-DBYZaCTp.cjs"),n=require("./alert-CuXM6TnC.cjs"),r=require("./header-lgdaF8oa.cjs"),i=require("./card-Diivw_vm.cjs"),a=require("./checkbox-Dyyrw5TE.cjs"),o=require("./radiobutton-qTPNeZl5.cjs"),s=require("./icon-jPhyZD1z.cjs"),c=require("./accordion-DukAa2ED.cjs"),l=require("./messagebox-CR59jv8N.cjs"),u=require("./calendar-C5QwPrbk.cjs"),d=require("./combobox-Dlhm1iYr.cjs"),f=require("./button-BFG-7bDB.cjs"),p=require("./backlink-CsFeerTH.cjs"),m=require("./breadcrumbs-D03id_ha.cjs"),h=require("./tag-BMtnaJ1A.cjs"),g=require("./input-wrapper-BwzajfFX.cjs"),_=require("./helptext-Bdv80rcs.cjs"),v=require("./checkbox-group-COWUvl52.cjs"),y=require("./fileupload-CyLRyoVU.cjs"),b=require("./modal-BKeSXrzi.cjs"),x=require("./progressbar-CnX4fFfR.cjs"),S=require("./datepicker-0NSvgPXK.cjs"),C=require("./footer-C6ajmlq2.cjs"),w=require("./link-CRLAhYi0.cjs"),T=require("./textinput-C7JFm9jD.cjs"),E=require("./searchinput-Mdc9Ihld.cjs"),D=require("./header-menu-Cz7G7Q2R.cjs"),O=require("./heading-BluavR6A.cjs"),k=require("./linkcard-DnZgMzqL.cjs"),A=require("./loader-Zo_VSsNw.cjs"),j=require("./radio-group-DaIRh-fL.cjs"),M=require("./tabs-R1Jzzj3-.cjs"),N=require("./textarea-DWLVisQX.cjs"),P=require("./select-CQpwjRPh.cjs"),F=require("./timepicker-DVyi8teh.cjs");exports.PktAccordion=c.r,exports.PktAccordionItem=c.n,exports.PktAlert=n.n,exports.PktBackLink=p.n,exports.PktBreadcrumbs=m.t,exports.PktButton=f.n,exports.PktCalendar=u.n,exports.PktCard=i.n,exports.PktCheckbox=a.n,exports.PktCheckboxGroup=v.n,exports.PktCombobox=d.n,exports.PktConsent=t.n,exports.PktDateTags=S.a,exports.PktDatepicker=S.t,Object.defineProperty(exports,"PktFileUpload",{enumerable:!0,get:function(){return y.n}}),exports.PktFooter=C.n,exports.PktFooterSimple=C.t,exports.PktHeader=r.t,exports.PktHeaderGlobal=r.n,exports.PktHeaderMenu=D.n,exports.PktHeaderService=r.r,exports.PktHeaderUserMenu=r.i,exports.PktHeading=O.n,exports.PktHelptext=_.n,exports.PktIcon=s.n,exports.PktInputWrapper=g.n,exports.PktLink=w.n,exports.PktLinkCard=k.n,exports.PktLoader=A.n,exports.PktMessagebox=l.n,exports.PktModal=b.n,exports.PktProgressbar=x.n,exports.PktRadioButton=o.n,exports.PktRadiobutton=o.n,exports.PktRadioGroup=j.n,exports.PktSearchInput=E.n,exports.PktSelect=P.n,exports.PktTabItem=M.n,exports.PktTabs=M.r,exports.PktTag=h.n,exports.PktTextarea=N.n,exports.PktTextinput=T.n,exports.PktTimepicker=F.t,exports.getPktStrings=e.r,exports.pktStringsNb=e.s,exports.resetPktStrings=e.i,exports.setPktStrings=e.a,exports.subscribePktStrings=e.o;
package/dist/pkt-index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { a as e, i as t, o as n, r, s as i } from "./element-DBugHPKM.js";
2
2
  import { n as a } from "./consent-BUS6GEUu.js";
3
3
  import { n as o } from "./alert-Xt26J9yX.js";
4
- import { i as s, n as c, r as l, t as u } from "./header-DLKiD7xm.js";
4
+ import { i as s, n as c, r as l, t as u } from "./header-DbV1G9bY.js";
5
5
  import { n as d } from "./card-DCc3wfUb.js";
6
6
  import { n as f } from "./checkbox-CCBZc3Ix.js";
7
7
  import { n as p } from "./radiobutton-BJCSVvcQ.js";
8
8
  import { n as m } from "./icon-Bao96Zb8.js";
9
- import { n as h } from "./messagebox-CzaFlrYz.js";
10
- import { n as g } from "./calendar-D9w8M99G.js";
11
- import { n as _ } from "./combobox-B0VWv9c_.js";
12
- import { n as v } from "./button-DhCqyX4D.js";
13
- import { n as y, r as b } from "./accordion-CjGAmoQq.js";
9
+ import { n as h, r as g } from "./accordion-BlsqYbJf.js";
10
+ import { n as _ } from "./messagebox-CzaFlrYz.js";
11
+ import { n as v } from "./calendar-D9w8M99G.js";
12
+ import { n as y } from "./combobox-2NTR70Ad.js";
13
+ import { n as b } from "./button-DhCqyX4D.js";
14
14
  import { n as x } from "./backlink-ogvv493Y.js";
15
15
  import { t as S } from "./breadcrumbs-53QVnTFP.js";
16
16
  import { n as C } from "./tag-uVXp7uP-.js";
@@ -25,7 +25,7 @@ import { n as M, t as N } from "./footer-L2vhQTAS.js";
25
25
  import { n as P } from "./link-sO401Ieh.js";
26
26
  import { n as F } from "./textinput-wZSCpQgv.js";
27
27
  import { n as I } from "./searchinput-Bkcr3Fby.js";
28
- import { n as L } from "./header-menu-Ch135F5Y.js";
28
+ import { n as L } from "./header-menu-F3tZZ5vO.js";
29
29
  import { n as R } from "./heading-y72aIgB8.js";
30
30
  import { n as z } from "./linkcard-DdmGxzAP.js";
31
31
  import { n as B } from "./loader-Di5kHEQ4.js";
@@ -34,4 +34,4 @@ import { n as H, r as U } from "./tabs-DBW3P90Z.js";
34
34
  import { n as W } from "./textarea-553WDMEq.js";
35
35
  import { n as G } from "./select-CIAfUw8F.js";
36
36
  import { t as K } from "./timepicker-CMe0IbPm.js";
37
- export { b as PktAccordion, y as PktAccordionItem, o as PktAlert, x as PktBackLink, S as PktBreadcrumbs, v as PktButton, g as PktCalendar, d as PktCard, f as PktCheckbox, E as PktCheckboxGroup, _ as PktCombobox, a as PktConsent, A as PktDateTags, j as PktDatepicker, D as PktFileUpload, M as PktFooter, N as PktFooterSimple, u as PktHeader, c as PktHeaderGlobal, L as PktHeaderMenu, l as PktHeaderService, s as PktHeaderUserMenu, R as PktHeading, T as PktHelptext, m as PktIcon, w as PktInputWrapper, P as PktLink, z as PktLinkCard, B as PktLoader, h as PktMessagebox, O as PktModal, k as PktProgressbar, p as PktRadioButton, p as PktRadiobutton, V as PktRadioGroup, I as PktSearchInput, G as PktSelect, H as PktTabItem, U as PktTabs, C as PktTag, W as PktTextarea, F as PktTextinput, K as PktTimepicker, r as getPktStrings, i as pktStringsNb, t as resetPktStrings, e as setPktStrings, n as subscribePktStrings };
37
+ export { g as PktAccordion, h as PktAccordionItem, o as PktAlert, x as PktBackLink, S as PktBreadcrumbs, b as PktButton, v as PktCalendar, d as PktCard, f as PktCheckbox, E as PktCheckboxGroup, y as PktCombobox, a as PktConsent, A as PktDateTags, j as PktDatepicker, D as PktFileUpload, M as PktFooter, N as PktFooterSimple, u as PktHeader, c as PktHeaderGlobal, L as PktHeaderMenu, l as PktHeaderService, s as PktHeaderUserMenu, R as PktHeading, T as PktHelptext, m as PktIcon, w as PktInputWrapper, P as PktLink, z as PktLinkCard, B as PktLoader, _ as PktMessagebox, O as PktModal, k as PktProgressbar, p as PktRadioButton, p as PktRadiobutton, V as PktRadioGroup, I as PktSearchInput, G as PktSelect, H as PktTabItem, U as PktTabs, C as PktTag, W as PktTextarea, F as PktTextinput, K as PktTimepicker, r as getPktStrings, i as pktStringsNb, t as resetPktStrings, e as setPktStrings, n as subscribePktStrings };
@@ -9,8 +9,10 @@
9
9
  * bruk `IAccordionVisualProps` for delte visuelle props (`skin`, `compact`).
10
10
  */
11
11
  /** Accordion skin varianter — delt runtime source for types, specs, og Preview. */
12
- export declare const ACCORDION_SKINS: readonly ['borderless', 'outlined', 'beige', 'blue', 'plus-minus'];
12
+ export declare const ACCORDION_SKINS: readonly ['borderless', 'outlined', 'gray', 'beige', 'blue', 'plus-minus'];
13
13
  export type TAccordionSkin = (typeof ACCORDION_SKINS)[number];
14
+ /** Skins uten mørk variant. Radene får `data-mode="light"` og beholder lys modus. */
15
+ export declare const ACCORDION_LIGHT_ONLY_SKINS: readonly TAccordionSkin[];
14
16
  /** Visual props delt med pkt-accordion og pkt-accordion-item. */
15
17
  export type IAccordionVisualProps = {
16
18
  skin?: TAccordionSkin;
@@ -26,7 +26,7 @@ export type { TLayout, TVerticalPosition, THorizontalPosition, TPosition, TPosit
26
26
  export type { THTMLButtonType, TSelectionMode } from './form';
27
27
  export { INPUT_SIZES } from './size';
28
28
  export type { TPktInputSize, TSize3, TSize5, TSize7 } from './size';
29
- export { ACCORDION_SKINS } from './accordion';
29
+ export { ACCORDION_LIGHT_ONLY_SKINS, ACCORDION_SKINS } from './accordion';
30
30
  export type { TAccordionSkin, IPktAccordionBase, IPktAccordionItemBase, IAccordionSpecProps, IAccordionItemSpecProps, IAccordionVisualProps, } from './accordion';
31
31
  export { BUTTON_SIZES, BUTTON_SKINS, BUTTON_COLORS, BUTTON_VARIANTS, BUTTON_STATES } from './button';
32
32
  export type { TPktButtonSize, TPktButtonSkin, TPktButtonColor, TPktButtonVariant, TPktButtonState, IPktButtonBase, IButtonSpecProps, } from './button';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-elements",
3
- "version": "19.11.0",
3
+ "version": "19.12.0",
4
4
  "description": "Komponentbiblioteket til Punkt, designsystem for Oslo kommune",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo kommune",
@@ -84,5 +84,5 @@
84
84
  "engines": {
85
85
  "node": "^22.19.0 || ^24.0.0 || ^26.0.0"
86
86
  },
87
- "gitHead": "d83cbdb71c65b51c7eb5270970a287c4eff8f19a"
87
+ "gitHead": "fff01ab9619d3c18548f18f239eccc7f841e1160"
88
88
  }
@@ -123,7 +123,7 @@ describe('PktAccordion', () => {
123
123
  })
124
124
 
125
125
  test('applies different skin properties correctly', async () => {
126
- const skins = ['borderless', 'outlined', 'beige', 'blue']
126
+ const skins = ['borderless', 'outlined', 'gray', 'beige', 'blue']
127
127
 
128
128
  for (const skin of skins) {
129
129
  const container = await createAccordion(`skin="${skin}"`)
@@ -349,7 +349,7 @@ describe('PktAccordionItem', () => {
349
349
  })
350
350
 
351
351
  test('applies different skin properties correctly', async () => {
352
- const skins = ['borderless', 'outlined', 'beige', 'blue']
352
+ const skins = ['borderless', 'outlined', 'gray', 'beige', 'blue']
353
353
 
354
354
  for (const skin of skins) {
355
355
  const container = await createAccordion('', `skin="${skin}"`)
@@ -367,6 +367,38 @@ describe('PktAccordionItem', () => {
367
367
  }
368
368
  })
369
369
 
370
+ test('sets data-mode="light" on rows with a light-only skin', async () => {
371
+ for (const skin of ['beige', 'blue']) {
372
+ const container = await createAccordion(`skin="${skin}"`)
373
+ const accordionItem = container.querySelector('pkt-accordion-item') as PktAccordionItem
374
+ await accordionItem.updateComplete
375
+
376
+ expect(accordionItem.querySelector('details')).toHaveAttribute('data-mode', 'light')
377
+
378
+ container.remove()
379
+ }
380
+ })
381
+
382
+ test('does not set data-mode on other skins', async () => {
383
+ for (const skin of ['borderless', 'outlined', 'gray', 'plus-minus']) {
384
+ const container = await createAccordion(`skin="${skin}"`)
385
+ const accordionItem = container.querySelector('pkt-accordion-item') as PktAccordionItem
386
+ await accordionItem.updateComplete
387
+
388
+ expect(accordionItem.querySelector('details')).not.toHaveAttribute('data-mode')
389
+
390
+ container.remove()
391
+ }
392
+ })
393
+
394
+ test('item skin decides data-mode over accordion skin', async () => {
395
+ const container = await createAccordion('skin="beige"', 'skin="gray"')
396
+ const accordionItem = container.querySelector('pkt-accordion-item') as PktAccordionItem
397
+ await accordionItem.updateComplete
398
+
399
+ expect(accordionItem.querySelector('details')).not.toHaveAttribute('data-mode')
400
+ })
401
+
370
402
  test('handles defaultOpen property', async () => {
371
403
  const container = await createAccordion('', '')
372
404
 
@@ -4,7 +4,7 @@ import { consume } from '@lit/context'
4
4
  import { html, PropertyValues } from 'lit'
5
5
  import { customElement, property } from 'lit/decorators.js'
6
6
  import { createRef, Ref, ref } from 'lit/directives/ref.js'
7
- import type { IPktAccordionItemBase } from 'shared-types'
7
+ import { ACCORDION_LIGHT_ONLY_SKINS, type IPktAccordionItemBase } from 'shared-types'
8
8
  import { TPktAccordionSkin } from './accordion'
9
9
  import { accordionContext, type AccordionContext } from './accordion-context'
10
10
  import { classMap } from 'lit/directives/class-map.js'
@@ -61,6 +61,9 @@ export class PktAccordionItem extends PktElementWithSlot implements IPktAccordio
61
61
  ?open=${this.isOpen}
62
62
  ${ref(this.accordionItemRef)}
63
63
  name=${ifDefined(this.name)}
64
+ data-mode=${ifDefined(
65
+ actualSkin && ACCORDION_LIGHT_ONLY_SKINS.includes(actualSkin) ? 'light' : undefined,
66
+ )}
64
67
  >
65
68
  <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}>
66
69
  ${this.title}
@@ -117,6 +117,18 @@ describe('PktCombobox', () => {
117
117
  expect(tag).toBeInTheDocument()
118
118
  })
119
119
 
120
+ test('uses the blue tag skin when the option has no tagSkinColor', async () => {
121
+ const container = await createCombobox(
122
+ 'id="test" name="test" label="Test" multiple value="apple"',
123
+ )
124
+ const combobox = container.querySelector('pkt-combobox') as PktCombobox
125
+ combobox.options = getDefaultOptions()
126
+ await combobox.updateComplete
127
+
128
+ const tag = combobox.querySelector('pkt-tag')
129
+ expect(tag).toHaveAttribute('skin', 'blue')
130
+ })
131
+
120
132
  test('selects option when clicking it in the open dropdown', async () => {
121
133
  const container = await createCombobox('id="test" name="test" label="Test"')
122
134
  const combobox = container.querySelector('pkt-combobox') as PktCombobox
@@ -550,7 +550,7 @@ export class PktCombobox extends ComboboxHandlers implements IPktCombobox {
550
550
  @mousedown=${isOutside ? nothing : (e: MouseEvent) => e.preventDefault()}
551
551
  >
552
552
  <pkt-tag
553
- skin=${tagSkinColor || 'blue-dark'}
553
+ skin=${tagSkinColor || 'blue'}
554
554
  ?closeTag=${!this.isDisabled}
555
555
  .buttonTabindex=${isOutside ? undefined : -1}
556
556
  @close=${() => this.handleTagRemove(value)}
@@ -1,47 +0,0 @@
1
- const e=require("./element-C6WTyJFE.cjs"),t=require("./class-map-Bh6toDeV.cjs"),n=require("./element-with-slot-CcJPCLgn.cjs"),r=require("./if-defined-CiML3MTM.cjs"),i=require("./consume-kEjgTrAp.cjs"),a=require("./provide-Cz18sYug.cjs"),o=require("./ref-CB7e9nMY.cjs");var s=i.n(Symbol(`pkt-accordion-context`)),c=class extends e.c{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(){let n={"pkt-accordion":!0,"pkt-accordion--compact":this.compact,[`pkt-accordion--${this.skin}`]:this.skin};return e._`
2
- <div
3
- part="container"
4
- class=${t.t(n)}
5
- data-testid="pkt-accordion"
6
- aria-labelledby=${r.t(this.ariaLabelledBy||void 0)}
7
- >
8
- <slot></slot>
9
- </div>
10
- `}};e.n([e.u({type:String,reflect:!0,attribute:`aria-labelledby`})],c.prototype,`ariaLabelledBy`,void 0),e.n([e.u({type:Boolean,reflect:!0,attribute:`compact`})],c.prototype,`compact`,void 0),e.n([e.u({type:String,reflect:!0,attribute:`skin`})],c.prototype,`skin`,void 0),e.n([e.u({type:String,reflect:!0,attribute:`name`})],c.prototype,`name`,void 0),e.n([a.t({context:s}),e.l()],c.prototype,`context`,void 0);try{e.d(`pkt-accordion`)(c)}catch{console.warn(`Forsøker å definere <pkt-accordion>, men den er allerede definert`)}var l=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=o.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},a=(this.skin??this.context?.skin)===`plus-minus`;return e._`
11
- <details
12
- class=${t.t(i)}
13
- id=${this.id}
14
- ?open=${this.isOpen}
15
- ${o.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
- ${a?e._`
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._`
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.i(this)}</div>
45
- </div>
46
- </details>
47
- `}};e.n([e.u({type:Boolean})],l.prototype,`defaultOpen`,void 0),e.n([e.u({type:String})],l.prototype,`title`,void 0),e.n([e.u({type:String,reflect:!0})],l.prototype,`skin`,void 0),e.n([e.u({type:Boolean,reflect:!0})],l.prototype,`compact`,void 0),e.n([e.u({type:Boolean,reflect:!0})],l.prototype,`isOpen`,void 0),e.n([e.u({type:String,reflect:!0})],l.prototype,`name`,void 0),e.n([i.t({context:s,subscribe:!0}),e.u({attribute:!1})],l.prototype,`context`,void 0);try{e.d(`pkt-accordion-item`)(l)}catch{console.warn(`Forsøker å definere <pkt-accordion-item>, men den er allerede definert`)}var u=c;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});