@oslokommune/punkt-elements 12.34.3 → 12.35.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 ADDED
@@ -0,0 +1,23 @@
1
+ # Changelog
2
+
3
+ Punkt følger [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html) for versjonering,
4
+ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.org).
5
+
6
+ ---
7
+
8
+ ## [12.35.0](https://github.com/oslokommune/punkt/compare/12.34.4...12.35.0) (2025-04-25)
9
+
10
+ ### ⚠ BREAKING CHANGES
11
+ Ingen
12
+
13
+ ### Features
14
+ Ingen
15
+
16
+ ### Bug Fixes
17
+ Ingen
18
+
19
+ ### Chores
20
+ Ingen
21
+
22
+ ---
23
+
@@ -0,0 +1,59 @@
1
+ import { P as f, x as l, n as o, a as d } from "./element-DjjF_tEh.js";
2
+ import { P as g } from "./pkt-slot-controller-DFrc5O93.js";
3
+ import { e as r } from "./class-map-KyMqi0fa.js";
4
+ import { e as $, n as i } from "./ref-iIffqQAI.js";
5
+ var S = Object.defineProperty, y = Object.getOwnPropertyDescriptor, a = (t, n, p, h) => {
6
+ for (var e = h > 1 ? void 0 : h ? y(n, p) : n, u = t.length - 1, c; u >= 0; u--)
7
+ (c = t[u]) && (e = (h ? c(n, p, e) : c(e)) || e);
8
+ return h && e && S(n, p, e), e;
9
+ };
10
+ let s = class extends f {
11
+ constructor() {
12
+ super(), this.defaultSlot = $(), this.size = "medium", this.level = 2, this.noSpacing = !0, this.visuallyHidden = !1, this.align = "start", this.slotController = new g(this, this.defaultSlot);
13
+ }
14
+ render() {
15
+ const t = {
16
+ "pkt-heading": !0,
17
+ [`pkt-heading--${this.size}`]: this.size,
18
+ "pkt-heading--noSpacing": this.noSpacing,
19
+ "pkt-sr-only": this.visuallyHidden,
20
+ [`pkt-heading--${this.align}`]: this.align
21
+ };
22
+ switch (this.level) {
23
+ case 2:
24
+ return l`<h2 class=${r(t)} ${i(this.defaultSlot)}></h2>`;
25
+ case 3:
26
+ return l`<h3 class=${r(t)} ${i(this.defaultSlot)}></h3>`;
27
+ case 4:
28
+ return l`<h4 class=${r(t)} ${i(this.defaultSlot)}></h4>`;
29
+ case 5:
30
+ return l`<h5 class=${r(t)} ${i(this.defaultSlot)}></h5>`;
31
+ case 6:
32
+ return l`<h6 class=${r(t)} ${i(this.defaultSlot)}></h6>`;
33
+ case 1:
34
+ default:
35
+ return l`<h1 class=${r(t)} ${i(this.defaultSlot)}></h1>`;
36
+ }
37
+ }
38
+ };
39
+ a([
40
+ o({ type: String, reflect: !0 })
41
+ ], s.prototype, "size", 2);
42
+ a([
43
+ o({ type: Number, reflect: !0 })
44
+ ], s.prototype, "level", 2);
45
+ a([
46
+ o({ type: Boolean, reflect: !0 })
47
+ ], s.prototype, "noSpacing", 2);
48
+ a([
49
+ o({ type: Boolean, reflect: !0 })
50
+ ], s.prototype, "visuallyHidden", 2);
51
+ a([
52
+ o({ type: String, reflect: !0 })
53
+ ], s.prototype, "align", 2);
54
+ s = a([
55
+ d("pkt-heading")
56
+ ], s);
57
+ export {
58
+ s as P
59
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("./element-BSypUpzA.cjs"),c=require("./pkt-slot-controller-plQxXRvV.cjs"),l=require("./class-map-DCyaICmy.cjs"),n=require("./ref-BvbyvXRH.cjs");var p=Object.defineProperty,d=Object.getOwnPropertyDescriptor,r=(a,t,o,i)=>{for(var s=i>1?void 0:i?d(t,o):t,h=a.length-1,u;h>=0;h--)(u=a[h])&&(s=(i?u(t,o,s):u(s))||s);return i&&s&&p(t,o,s),s};exports.PktHeading=class extends e.PktElement{constructor(){super(),this.defaultSlot=n.e(),this.size="medium",this.level=2,this.noSpacing=!0,this.visuallyHidden=!1,this.align="start",this.slotController=new c.PktSlotController(this,this.defaultSlot)}render(){const t={"pkt-heading":!0,[`pkt-heading--${this.size}`]:this.size,"pkt-heading--noSpacing":this.noSpacing,"pkt-sr-only":this.visuallyHidden,[`pkt-heading--${this.align}`]:this.align};switch(this.level){case 2:return e.x`<h2 class=${l.e(t)} ${n.n(this.defaultSlot)}></h2>`;case 3:return e.x`<h3 class=${l.e(t)} ${n.n(this.defaultSlot)}></h3>`;case 4:return e.x`<h4 class=${l.e(t)} ${n.n(this.defaultSlot)}></h4>`;case 5:return e.x`<h5 class=${l.e(t)} ${n.n(this.defaultSlot)}></h5>`;case 6:return e.x`<h6 class=${l.e(t)} ${n.n(this.defaultSlot)}></h6>`;case 1:default:return e.x`<h1 class=${l.e(t)} ${n.n(this.defaultSlot)}></h1>`}}};r([e.n({type:String,reflect:!0})],exports.PktHeading.prototype,"size",2);r([e.n({type:Number,reflect:!0})],exports.PktHeading.prototype,"level",2);r([e.n({type:Boolean,reflect:!0})],exports.PktHeading.prototype,"noSpacing",2);r([e.n({type:Boolean,reflect:!0})],exports.PktHeading.prototype,"visuallyHidden",2);r([e.n({type:String,reflect:!0})],exports.PktHeading.prototype,"align",2);exports.PktHeading=r([e.t("pkt-heading")],exports.PktHeading);
@@ -0,0 +1 @@
1
+ export { }
package/dist/index.d.ts CHANGED
@@ -156,6 +156,14 @@ export declare interface IPktComboboxOption {
156
156
  value: string;
157
157
  }
158
158
 
159
+ export declare interface IPktHeading {
160
+ size?: TPktHeadingSize;
161
+ level?: TPktHeadingLevel;
162
+ spacing?: boolean;
163
+ visuallyHidden?: boolean;
164
+ textAlign?: 'start' | 'center' | 'end';
165
+ }
166
+
159
167
  declare interface IPktLinkCard {
160
168
  title?: string;
161
169
  href?: string;
@@ -638,6 +646,17 @@ declare class PktElement<T = {}> extends LitElement {
638
646
  constructor();
639
647
  }
640
648
 
649
+ export declare class PktHeading extends PktElement<IPktHeading> implements IPktHeading {
650
+ defaultSlot: Ref<HTMLElement>;
651
+ constructor();
652
+ size: TPktHeadingSize;
653
+ level: TPktHeadingLevel;
654
+ noSpacing: boolean;
655
+ visuallyHidden: boolean;
656
+ align: 'start' | 'center' | 'end';
657
+ render(): TemplateResult<1>;
658
+ }
659
+
641
660
  export declare class PktHelptext extends PktElement {
642
661
  defaultSlot: Ref<HTMLElement>;
643
662
  constructor();
@@ -1095,6 +1114,10 @@ export declare type TPktButtonVariant = 'label-only' | 'icon-left' | 'icon-right
1095
1114
 
1096
1115
  export declare type TPktComboboxTagPlacement = 'inside' | 'outside';
1097
1116
 
1117
+ export declare type TPktHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
1118
+
1119
+ export declare type TPktHeadingSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
1120
+
1098
1121
  export declare type TPktLoaderVariant = 'blue' | 'rainbow' | 'shapes';
1099
1122
 
1100
1123
  declare type TPktSize = 'small' | 'medium' | 'large';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./heading-CP3NaeWE.cjs"),t=e.PktHeading;Object.defineProperty(exports,"PktHeading",{enumerable:!0,get:()=>e.PktHeading});exports.default=t;
@@ -0,0 +1,6 @@
1
+ import { P as a } from "./heading-BkC05ohM.js";
2
+ const e = a;
3
+ export {
4
+ a as PktHeading,
5
+ e as default
6
+ };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./alert-DWIElKEZ.cjs"),l=require("./accordionitem-cvsySqgK.cjs"),P=require("./backlink-HHM21crL.cjs"),b=require("./button-BNdVIhUp.cjs"),p=require("./calendar-oX4HJomV.cjs"),m=require("./card-BDcr3PII.cjs"),g=require("./combobox-D9NKnao2.cjs"),h=require("./checkbox-CqatE-eX.cjs"),t=require("./element-BSypUpzA.cjs"),f=require("./pkt-slot-controller-plQxXRvV.cjs"),s=require("./ref-BvbyvXRH.cjs"),y=require("./class-map-DCyaICmy.cjs"),x=require("./datepicker-CskZMUib.cjs"),O=require("./helptext-CCnYxYA9.cjs"),j=require("./icon-BnKGwYjj.cjs"),q=require("./input-wrapper-Cn929YTV.cjs"),C=require("./link-CnibgS3c.cjs"),v=require("./linkcard-DPGX1kb1.cjs"),S=require("./loader-BN4q8pSl.cjs"),$=require("./messagebox-BWJr42m9.cjs"),L=require("./modal-cPcTJriW.cjs"),_=require("./progressbar-DiRfScnB.cjs"),k=require("./radiobutton-CIW0FvT8.cjs"),A=require("./tag-CgkUxA5D.cjs"),B=require("./textarea-qX4Inr1X.cjs"),T=require("./textinput-BlsgLNwW.cjs"),I=require("./select-BJziJVde.cjs");var M=Object.defineProperty,R=Object.getOwnPropertyDescriptor,o=(a,e,r,i)=>{for(var n=i>1?void 0:i?R(e,r):e,u=a.length-1,c;u>=0;u--)(c=a[u])&&(n=(i?c(e,r,n):c(n))||n);return i&&n&&M(e,r,n),n};exports.PktComponent=class extends t.PktElement{constructor(){super(),this.string="",this.strings=[],this.darkmode=!1,this._list=[],this.defaultSlot=s.e(),this.namedSlot=s.e(),this.slotController=new f.PktSlotController(this,this.defaultSlot,this.namedSlot)}connectedCallback(){this.strings.length&&this.strings.forEach(e=>{this._list.push(e.toUpperCase())}),super.connectedCallback()}render(){const e={"pkt-component":!0,"pkt-component--has-list":this.strings.length>0,"pkt-darkmode":this.darkmode};return t.x`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./alert-DWIElKEZ.cjs"),l=require("./accordionitem-cvsySqgK.cjs"),P=require("./backlink-HHM21crL.cjs"),b=require("./button-BNdVIhUp.cjs"),p=require("./calendar-oX4HJomV.cjs"),m=require("./card-BDcr3PII.cjs"),g=require("./combobox-D9NKnao2.cjs"),h=require("./checkbox-CqatE-eX.cjs"),t=require("./element-BSypUpzA.cjs"),f=require("./pkt-slot-controller-plQxXRvV.cjs"),s=require("./ref-BvbyvXRH.cjs"),y=require("./class-map-DCyaICmy.cjs"),O=require("./datepicker-CskZMUib.cjs"),j=require("./helptext-CCnYxYA9.cjs"),q=require("./heading-CP3NaeWE.cjs"),x=require("./icon-BnKGwYjj.cjs"),C=require("./input-wrapper-Cn929YTV.cjs"),v=require("./link-CnibgS3c.cjs"),S=require("./linkcard-DPGX1kb1.cjs"),$=require("./loader-BN4q8pSl.cjs"),L=require("./messagebox-BWJr42m9.cjs"),_=require("./modal-cPcTJriW.cjs"),A=require("./progressbar-DiRfScnB.cjs"),d=require("./radiobutton-CIW0FvT8.cjs"),B=require("./tag-CgkUxA5D.cjs"),T=require("./textarea-qX4Inr1X.cjs"),I=require("./textinput-BlsgLNwW.cjs"),M=require("./select-BJziJVde.cjs");var R=Object.defineProperty,H=Object.getOwnPropertyDescriptor,o=(a,e,r,i)=>{for(var n=i>1?void 0:i?H(e,r):e,u=a.length-1,c;u>=0;u--)(c=a[u])&&(n=(i?c(e,r,n):c(n))||n);return i&&n&&R(e,r,n),n};exports.PktComponent=class extends t.PktElement{constructor(){super(),this.string="",this.strings=[],this.darkmode=!1,this._list=[],this.defaultSlot=s.e(),this.namedSlot=s.e(),this.slotController=new f.PktSlotController(this,this.defaultSlot,this.namedSlot)}connectedCallback(){this.strings.length&&this.strings.forEach(e=>{this._list.push(e.toUpperCase())}),super.connectedCallback()}render(){const e={"pkt-component":!0,"pkt-component--has-list":this.strings.length>0,"pkt-darkmode":this.darkmode};return t.x`
2
2
  <div class="${y.e(e)}">
3
3
  <h1 class="pkt-txt-28">${this.string}</h1>
4
4
 
@@ -26,4 +26,4 @@
26
26
  <ul>
27
27
  ${e.map(r=>t.x`<li>${r}</li>`)}
28
28
  </ul>
29
- `}doStuff(e){return e.reverse()}handleGreeting(){this.dispatchEvent(new CustomEvent("pkt-greeting",{detail:"Hei på deg!"}))}};o([t.n({type:String})],exports.PktComponent.prototype,"string",2);o([t.n({converter:p.csvToArray})],exports.PktComponent.prototype,"strings",2);o([t.n({type:Boolean})],exports.PktComponent.prototype,"darkmode",2);o([t.n({type:Array})],exports.PktComponent.prototype,"_list",2);exports.PktComponent=o([t.t("pkt-component")],exports.PktComponent);Object.defineProperty(exports,"PktAlert",{enumerable:!0,get:()=>d.PktAlert});exports.PktAccordion=l.PktAccordion;exports.PktAccordionItem=l.PktAccordionItem;Object.defineProperty(exports,"PktBackLink",{enumerable:!0,get:()=>P.PktBackLink});Object.defineProperty(exports,"PktButton",{enumerable:!0,get:()=>b.PktButton});Object.defineProperty(exports,"PktCalendar",{enumerable:!0,get:()=>p.PktCalendar});Object.defineProperty(exports,"PktCard",{enumerable:!0,get:()=>m.PktCard});Object.defineProperty(exports,"PktCombobox",{enumerable:!0,get:()=>g.PktCombobox});Object.defineProperty(exports,"PktCheckbox",{enumerable:!0,get:()=>h.PktCheckbox});Object.defineProperty(exports,"PktDatepicker",{enumerable:!0,get:()=>x.PktDatepicker});Object.defineProperty(exports,"PktHelptext",{enumerable:!0,get:()=>O.PktHelptext});Object.defineProperty(exports,"PktIcon",{enumerable:!0,get:()=>j.PktIcon});Object.defineProperty(exports,"PktInputWrapper",{enumerable:!0,get:()=>q.PktInputWrapper});Object.defineProperty(exports,"PktLink",{enumerable:!0,get:()=>C.PktLink});Object.defineProperty(exports,"PktLinkCard",{enumerable:!0,get:()=>v.PktLinkCard});Object.defineProperty(exports,"PktLoader",{enumerable:!0,get:()=>S.PktLoader});Object.defineProperty(exports,"PktMessagebox",{enumerable:!0,get:()=>$.PktMessagebox});Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>L.PktModal});Object.defineProperty(exports,"PktProgressbar",{enumerable:!0,get:()=>_.PktProgressbar});Object.defineProperty(exports,"PktRadioButton",{enumerable:!0,get:()=>k.PktRadioButton});Object.defineProperty(exports,"PktRadiobutton",{enumerable:!0,get:()=>k.PktRadioButton});Object.defineProperty(exports,"PktTag",{enumerable:!0,get:()=>A.PktTag});Object.defineProperty(exports,"PktTextarea",{enumerable:!0,get:()=>B.PktTextarea});Object.defineProperty(exports,"PktTextinput",{enumerable:!0,get:()=>T.PktTextinput});Object.defineProperty(exports,"PktSelect",{enumerable:!0,get:()=>I.PktSelect});
29
+ `}doStuff(e){return e.reverse()}handleGreeting(){this.dispatchEvent(new CustomEvent("pkt-greeting",{detail:"Hei på deg!"}))}};o([t.n({type:String})],exports.PktComponent.prototype,"string",2);o([t.n({converter:p.csvToArray})],exports.PktComponent.prototype,"strings",2);o([t.n({type:Boolean})],exports.PktComponent.prototype,"darkmode",2);o([t.n({type:Array})],exports.PktComponent.prototype,"_list",2);exports.PktComponent=o([t.t("pkt-component")],exports.PktComponent);Object.defineProperty(exports,"PktAlert",{enumerable:!0,get:()=>k.PktAlert});exports.PktAccordion=l.PktAccordion;exports.PktAccordionItem=l.PktAccordionItem;Object.defineProperty(exports,"PktBackLink",{enumerable:!0,get:()=>P.PktBackLink});Object.defineProperty(exports,"PktButton",{enumerable:!0,get:()=>b.PktButton});Object.defineProperty(exports,"PktCalendar",{enumerable:!0,get:()=>p.PktCalendar});Object.defineProperty(exports,"PktCard",{enumerable:!0,get:()=>m.PktCard});Object.defineProperty(exports,"PktCombobox",{enumerable:!0,get:()=>g.PktCombobox});Object.defineProperty(exports,"PktCheckbox",{enumerable:!0,get:()=>h.PktCheckbox});Object.defineProperty(exports,"PktDatepicker",{enumerable:!0,get:()=>O.PktDatepicker});Object.defineProperty(exports,"PktHelptext",{enumerable:!0,get:()=>j.PktHelptext});Object.defineProperty(exports,"PktHeading",{enumerable:!0,get:()=>q.PktHeading});Object.defineProperty(exports,"PktIcon",{enumerable:!0,get:()=>x.PktIcon});Object.defineProperty(exports,"PktInputWrapper",{enumerable:!0,get:()=>C.PktInputWrapper});Object.defineProperty(exports,"PktLink",{enumerable:!0,get:()=>v.PktLink});Object.defineProperty(exports,"PktLinkCard",{enumerable:!0,get:()=>S.PktLinkCard});Object.defineProperty(exports,"PktLoader",{enumerable:!0,get:()=>$.PktLoader});Object.defineProperty(exports,"PktMessagebox",{enumerable:!0,get:()=>L.PktMessagebox});Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>_.PktModal});Object.defineProperty(exports,"PktProgressbar",{enumerable:!0,get:()=>A.PktProgressbar});Object.defineProperty(exports,"PktRadioButton",{enumerable:!0,get:()=>d.PktRadioButton});Object.defineProperty(exports,"PktRadiobutton",{enumerable:!0,get:()=>d.PktRadioButton});Object.defineProperty(exports,"PktTag",{enumerable:!0,get:()=>B.PktTag});Object.defineProperty(exports,"PktTextarea",{enumerable:!0,get:()=>T.PktTextarea});Object.defineProperty(exports,"PktTextinput",{enumerable:!0,get:()=>I.PktTextinput});Object.defineProperty(exports,"PktSelect",{enumerable:!0,get:()=>M.PktSelect});
package/dist/pkt-index.js CHANGED
@@ -2,36 +2,37 @@ import { P as A } from "./alert-B5lVS6Qs.js";
2
2
  import { P as B, a as E } from "./accordionitem-Db-3WiJS.js";
3
3
  import { P as O } from "./backlink-hvyJmwrO.js";
4
4
  import { P as T } from "./button-B6uRE7uT.js";
5
- import { c as h } from "./calendar-mTDcujoj.js";
5
+ import { c as f } from "./calendar-mTDcujoj.js";
6
6
  import { P as D } from "./calendar-mTDcujoj.js";
7
- import { P as H } from "./card-B5zTEmH1.js";
7
+ import { P as G } from "./card-B5zTEmH1.js";
8
8
  import { P as K } from "./combobox-CELUAZxF.js";
9
9
  import { P as U } from "./checkbox-CyYfA2fu.js";
10
- import { P as f, t as k, x as P, n, a as c } from "./element-DjjF_tEh.js";
10
+ import { P as h, t as k, x as P, n, a as c } from "./element-DjjF_tEh.js";
11
11
  import { P as x } from "./pkt-slot-controller-DFrc5O93.js";
12
12
  import { e as m, n as d } from "./ref-iIffqQAI.js";
13
13
  import { e as u } from "./class-map-KyMqi0fa.js";
14
14
  import { P as q } from "./datepicker-B6qk_tTl.js";
15
15
  import { P as F } from "./helptext-BLHAJ1aC.js";
16
- import { P as Q } from "./icon-Beoxup8E.js";
17
- import { P as X } from "./input-wrapper-CeeNYbDA.js";
18
- import { P as Z } from "./link-BYI8VNGd.js";
19
- import { P as et } from "./linkcard--zuuAt_v.js";
20
- import { P as ot } from "./loader-DgIiyYBl.js";
21
- import { P as at } from "./messagebox-cme5VbUM.js";
22
- import { P as it } from "./modal-B-varrJT.js";
23
- import { P as lt } from "./progressbar-BKt_aj7f.js";
24
- import { P as mt, P as dt } from "./radiobutton-DtHuz7qn.js";
25
- import { P as ft } from "./tag-CGnj4c1Z.js";
26
- import { P as ct } from "./textarea-CiA4IzMs.js";
27
- import { P as ut } from "./textinput-CrxjZNEq.js";
28
- import { P as vt } from "./select-DbRLz-7l.js";
16
+ import { P as Q } from "./heading-BkC05ohM.js";
17
+ import { P as X } from "./icon-Beoxup8E.js";
18
+ import { P as Z } from "./input-wrapper-CeeNYbDA.js";
19
+ import { P as et } from "./link-BYI8VNGd.js";
20
+ import { P as ot } from "./linkcard--zuuAt_v.js";
21
+ import { P as at } from "./loader-DgIiyYBl.js";
22
+ import { P as it } from "./messagebox-cme5VbUM.js";
23
+ import { P as lt } from "./modal-B-varrJT.js";
24
+ import { P as mt } from "./progressbar-BKt_aj7f.js";
25
+ import { P as ft, P as ht } from "./radiobutton-DtHuz7qn.js";
26
+ import { P as ct } from "./tag-CGnj4c1Z.js";
27
+ import { P as ut } from "./textarea-CiA4IzMs.js";
28
+ import { P as vt } from "./textinput-CrxjZNEq.js";
29
+ import { P as bt } from "./select-DbRLz-7l.js";
29
30
  var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, s = (t, e, i, a) => {
30
31
  for (var r = a > 1 ? void 0 : a ? v(e, i) : e, p = t.length - 1, l; p >= 0; p--)
31
32
  (l = t[p]) && (r = (a ? l(e, i, r) : l(r)) || r);
32
33
  return a && r && g(e, i, r), r;
33
34
  };
34
- let o = class extends f {
35
+ let o = class extends h {
35
36
  constructor() {
36
37
  super(), this.string = "", this.strings = [], this.darkmode = !1, this._list = [], this.defaultSlot = m(), this.namedSlot = m(), this.slotController = new x(this, this.defaultSlot, this.namedSlot);
37
38
  }
@@ -106,7 +107,7 @@ s([
106
107
  n({ type: String })
107
108
  ], o.prototype, "string", 2);
108
109
  s([
109
- n({ converter: h })
110
+ n({ converter: f })
110
111
  ], o.prototype, "strings", 2);
111
112
  s([
112
113
  n({ type: Boolean })
@@ -124,24 +125,25 @@ export {
124
125
  O as PktBackLink,
125
126
  T as PktButton,
126
127
  D as PktCalendar,
127
- H as PktCard,
128
+ G as PktCard,
128
129
  U as PktCheckbox,
129
130
  K as PktCombobox,
130
131
  o as PktComponent,
131
132
  q as PktDatepicker,
133
+ Q as PktHeading,
132
134
  F as PktHelptext,
133
- Q as PktIcon,
134
- X as PktInputWrapper,
135
- Z as PktLink,
136
- et as PktLinkCard,
137
- ot as PktLoader,
138
- at as PktMessagebox,
139
- it as PktModal,
140
- lt as PktProgressbar,
141
- mt as PktRadioButton,
142
- dt as PktRadiobutton,
143
- vt as PktSelect,
144
- ft as PktTag,
145
- ct as PktTextarea,
146
- ut as PktTextinput
135
+ X as PktIcon,
136
+ Z as PktInputWrapper,
137
+ et as PktLink,
138
+ ot as PktLinkCard,
139
+ at as PktLoader,
140
+ it as PktMessagebox,
141
+ lt as PktModal,
142
+ mt as PktProgressbar,
143
+ ft as PktRadioButton,
144
+ ht as PktRadiobutton,
145
+ bt as PktSelect,
146
+ ct as PktTag,
147
+ ut as PktTextarea,
148
+ vt as PktTextinput
147
149
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-elements",
3
- "version": "12.34.3",
3
+ "version": "12.35.0",
4
4
  "description": "Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo Origo",
@@ -29,8 +29,8 @@
29
29
  "urlpattern-polyfill": "^10.0.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@oslokommune/punkt-assets": "^12.30.1",
33
- "@oslokommune/punkt-css": "^12.34.2",
32
+ "@oslokommune/punkt-assets": "^12.34.4",
33
+ "@oslokommune/punkt-css": "^12.35.0",
34
34
  "sass": "^1.78.0",
35
35
  "typescript": "^5.6.2",
36
36
  "vite": "^5.4.18",
@@ -57,5 +57,5 @@
57
57
  "url": "https://github.com/oslokommune/punkt/issues"
58
58
  },
59
59
  "license": "MIT",
60
- "gitHead": "c8bf7251b95598567b0db5c91d9d50dec1e0b1f5"
60
+ "gitHead": "897a80f0520cca735bc514c074d11a7e750079cc"
61
61
  }
@@ -0,0 +1,59 @@
1
+ import { PktElement } from '@/base-elements/element'
2
+ import { PktSlotController } from '@/controllers/pkt-slot-controller'
3
+ import { html } from 'lit'
4
+ import { customElement, property } from 'lit/decorators.js'
5
+ import { classMap } from 'lit/directives/class-map.js'
6
+ import { createRef, ref, Ref } from 'lit/directives/ref.js'
7
+
8
+ export type TPktHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6
9
+ export type TPktHeadingSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'
10
+
11
+ export interface IPktHeading {
12
+ size?: TPktHeadingSize
13
+ level?: TPktHeadingLevel
14
+ spacing?: boolean
15
+ visuallyHidden?: boolean
16
+ textAlign?: 'start' | 'center' | 'end'
17
+ }
18
+
19
+ @customElement('pkt-heading')
20
+ export class PktHeading extends PktElement<IPktHeading> implements IPktHeading {
21
+ defaultSlot: Ref<HTMLElement> = createRef()
22
+
23
+ constructor() {
24
+ super()
25
+ this.slotController = new PktSlotController(this, this.defaultSlot)
26
+ }
27
+
28
+ @property({ type: String, reflect: true }) size: TPktHeadingSize = 'medium'
29
+ @property({ type: Number, reflect: true }) level: TPktHeadingLevel = 2
30
+ @property({ type: Boolean, reflect: true }) noSpacing: boolean = true
31
+ @property({ type: Boolean, reflect: true }) visuallyHidden: boolean = false
32
+ @property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' = 'start'
33
+
34
+ render() {
35
+ const classes = {
36
+ 'pkt-heading': true,
37
+ [`pkt-heading--${this.size}`]: this.size,
38
+ 'pkt-heading--noSpacing': this.noSpacing,
39
+ 'pkt-sr-only': this.visuallyHidden,
40
+ [`pkt-heading--${this.align}`]: this.align,
41
+ }
42
+
43
+ switch (this.level) {
44
+ case 2:
45
+ return html`<h2 class=${classMap(classes)} ${ref(this.defaultSlot)}></h2>`
46
+ case 3:
47
+ return html`<h3 class=${classMap(classes)} ${ref(this.defaultSlot)}></h3>`
48
+ case 4:
49
+ return html`<h4 class=${classMap(classes)} ${ref(this.defaultSlot)}></h4>`
50
+ case 5:
51
+ return html`<h5 class=${classMap(classes)} ${ref(this.defaultSlot)}></h5>`
52
+ case 6:
53
+ return html`<h6 class=${classMap(classes)} ${ref(this.defaultSlot)}></h6>`
54
+ case 1:
55
+ default:
56
+ return html`<h1 class=${classMap(classes)} ${ref(this.defaultSlot)}></h1>`
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,6 @@
1
+ import { PktHeading } from './heading'
2
+ import type { IPktHeading, TPktHeadingSize, TPktHeadingLevel } from './heading'
3
+
4
+ export { PktHeading }
5
+ export type { IPktHeading, TPktHeadingSize, TPktHeadingLevel }
6
+ export default PktHeading
@@ -10,6 +10,7 @@ export { PktCheckbox } from '@/components/checkbox'
10
10
  export { PktComponent } from '../base-elements/component-template.js'
11
11
  export { PktDatepicker } from '@/components/datepicker/datepicker.js'
12
12
  export { PktHelptext } from '@/components/helptext'
13
+ export { PktHeading } from '@/components/heading'
13
14
  export { PktIcon } from '@/components/icon'
14
15
  export { PktInputWrapper } from '@/components/input-wrapper'
15
16
  export { PktLink } from '@/components/link'
@@ -55,6 +56,8 @@ export type {
55
56
  TPktComboboxTagPlacement,
56
57
  } from '@/components/combobox'
57
58
 
59
+ export type { IPktHeading, TPktHeadingSize, TPktHeadingLevel } from '@/components/heading'
60
+
58
61
  export type { TTagSkin, TTagType } from '@/components/tag'
59
62
 
60
63
  export type { TSelectOption } from '@/components/select'