@oslokommune/punkt-elements 13.6.3 → 13.6.4
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 +17 -0
- package/dist/{card-BwLe5f50.cjs → card-B9RPShvV.cjs} +1 -1
- package/dist/{card-DpUEM1tU.js → card-en2KhOPO.js} +1 -1
- package/dist/heading-DQ0R34j4.js +76 -0
- package/dist/heading-H_FWjo2k.cjs +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/pkt-card.cjs +1 -1
- package/dist/pkt-card.js +1 -1
- package/dist/pkt-heading.cjs +1 -1
- package/dist/pkt-heading.js +1 -1
- package/dist/pkt-index.cjs +1 -1
- package/dist/pkt-index.js +2 -2
- package/package.json +3 -3
- package/src/components/heading/heading.test.ts +6 -7
- package/src/components/heading/heading.ts +34 -2
- package/dist/heading-BBzoDZGk.cjs +0 -1
- package/dist/heading-CfxZa1QR.js +0 -58
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,23 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
## [13.6.4](https://github.com/oslokommune/punkt/compare/13.6.3...13.6.4) (2025-09-19)
|
|
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
|
+
|
|
24
|
+
|
|
8
25
|
## [13.6.1](https://github.com/oslokommune/punkt/compare/13.6.0...13.6.1) (2025-09-18)
|
|
9
26
|
|
|
10
27
|
### ⚠ BREAKING CHANGES
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const p=require("./class-map-CG3vIaNm.cjs"),h=require("./if-defined-CkVc_RJD.cjs"),t=require("./element-D62wHiNU.cjs"),g=require("./pkt-slot-controller-BzddBp7z.cjs"),c=require("./ref-BfgcOXko.cjs");require("./icon-__Hjt2XZ.cjs");require("./tag-BKq07hGI.cjs");require("./heading-
|
|
1
|
+
"use strict";const p=require("./class-map-CG3vIaNm.cjs"),h=require("./if-defined-CkVc_RJD.cjs"),t=require("./element-D62wHiNU.cjs"),g=require("./pkt-slot-controller-BzddBp7z.cjs"),c=require("./ref-BfgcOXko.cjs");require("./icon-__Hjt2XZ.cjs");require("./tag-BKq07hGI.cjs");require("./heading-H_FWjo2k.cjs");const k={layout:{default:"vertical"},skin:{type:["outlined","outlined-beige","gray","blue","beige","green"],default:"outlined"},padding:{default:"default"}},o={props:k};var u=Object.defineProperty,m=Object.getOwnPropertyDescriptor,e=(i,a,s,n)=>{for(var r=n>1?void 0:n?m(a,s):a,d=i.length-1,l;d>=0;d--)(l=i[d])&&(r=(n?l(a,s,r):l(r))||r);return n&&r&&u(a,s,r),r};exports.PktCard=class extends t.PktElement{constructor(){super(),this.defaultSlot=c.e(),this.ariaLabel="",this.metaLead=null,this.borderOnHover=!0,this.clickCardLink=null,this.metaTrail=null,this.layout=o.props.layout.default,this.heading="",this.headinglevel=3,this.image={src:"",alt:""},this.imageShape="square",this.openLinkInNewTab=!1,this.padding=o.props.padding.default,this.skin=o.props.skin.default,this.subheading="",this.tagPosition="top",this.tags=[],this.slotController=new g.PktSlotController(this,this.defaultSlot)}connectedCallback(){super.connectedCallback()}render(){var r,d;const a={"pkt-card":!0,[`pkt-card--${this.skin}`]:this.skin,[`pkt-card--${this.layout}`]:this.layout,[`pkt-card--padding-${this.padding}`]:this.padding,"pkt-card--border-on-hover":this.borderOnHover},s=((r=this.ariaLabel)==null?void 0:r.trim())||(this.heading?`${this.heading} lenkekort`:"lenkekort"),n=((d=this.ariaLabel)==null?void 0:d.trim())||(this.heading?this.heading:"kort");return t.x`
|
|
2
2
|
<article
|
|
3
3
|
class=${p.e(a)}
|
|
4
4
|
aria-label=${h.o(this.clickCardLink?s:n)}
|
|
@@ -5,7 +5,7 @@ import { P as $ } from "./pkt-slot-controller-BPGj-LC5.js";
|
|
|
5
5
|
import { e as y, n as _ } from "./ref-BCGCor-j.js";
|
|
6
6
|
import "./icon-B1-mkmwB.js";
|
|
7
7
|
import "./tag-NZ5oeGfw.js";
|
|
8
|
-
import "./heading-
|
|
8
|
+
import "./heading-DQ0R34j4.js";
|
|
9
9
|
const b = {
|
|
10
10
|
layout: {
|
|
11
11
|
default: "vertical"
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { b as u, x as p, n as d, a as o } from "./element-DJZPsA_J.js";
|
|
2
|
+
var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, a = (e, i, t, r) => {
|
|
3
|
+
for (var s = r > 1 ? void 0 : r ? v(i, t) : i, h = e.length - 1, n; h >= 0; h--)
|
|
4
|
+
(n = e[h]) && (s = (r ? n(i, t, s) : n(s)) || s);
|
|
5
|
+
return r && s && g(i, t, s), s;
|
|
6
|
+
};
|
|
7
|
+
let l = class extends u {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments), this.size = void 0, this.level = 2, this.visuallyHidden = !1, this.align = void 0;
|
|
10
|
+
}
|
|
11
|
+
connectedCallback() {
|
|
12
|
+
super.connectedCallback(), this.setAttribute("role", "heading"), this.setAttribute("aria-level", String(this.level)), this.updateHostClasses();
|
|
13
|
+
}
|
|
14
|
+
attributeChangedCallback(e, i, t) {
|
|
15
|
+
super.attributeChangedCallback(e, i, t), e === "level" && t && this.setLevel(Number(t)), e === "visuallyHidden" && (this.visuallyHidden = t !== null && t !== "false"), (e === "size" || e === "visuallyHidden" || e === "align") && this.updateHostClasses();
|
|
16
|
+
}
|
|
17
|
+
updated(e) {
|
|
18
|
+
super.updated(e), e.has("level") && (this.setLevel(this.level), this.hasAttribute("size") || (this.size = this.defaultSizeForLevel)), !this.hasAttribute("size") && (e.has("level") || this.size === void 0) && (this.size = this.defaultSizeForLevel), (e.has("size") || e.has("visuallyHidden") || e.has("align")) && this.updateHostClasses();
|
|
19
|
+
}
|
|
20
|
+
setLevel(e) {
|
|
21
|
+
e >= 1 && e <= 6 ? (this.level = e, this.setAttribute("aria-level", String(e))) : console.warn(`Invalid heading level: ${e}. Must be between 1 and 6.`);
|
|
22
|
+
}
|
|
23
|
+
get defaultSizeForLevel() {
|
|
24
|
+
switch (this.level) {
|
|
25
|
+
case 1:
|
|
26
|
+
return "xlarge";
|
|
27
|
+
case 2:
|
|
28
|
+
return "large";
|
|
29
|
+
case 3:
|
|
30
|
+
return "medium";
|
|
31
|
+
case 4:
|
|
32
|
+
return "small";
|
|
33
|
+
case 5:
|
|
34
|
+
return "xsmall";
|
|
35
|
+
case 6:
|
|
36
|
+
return "xsmall";
|
|
37
|
+
default:
|
|
38
|
+
return "medium";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
updateHostClasses() {
|
|
42
|
+
this.classList.remove(
|
|
43
|
+
"pkt-heading",
|
|
44
|
+
"pkt-heading--xsmall",
|
|
45
|
+
"pkt-heading--small",
|
|
46
|
+
"pkt-heading--medium",
|
|
47
|
+
"pkt-heading--large",
|
|
48
|
+
"pkt-heading--xlarge",
|
|
49
|
+
"pkt-sr-only",
|
|
50
|
+
"pkt-heading--start",
|
|
51
|
+
"pkt-heading--center",
|
|
52
|
+
"pkt-heading--end"
|
|
53
|
+
), this.classList.add("pkt-heading"), this.size && this.classList.add(`pkt-heading--${this.size}`), this.visuallyHidden && this.classList.add("pkt-sr-only"), this.align && this.classList.add(`pkt-heading--${this.align}`);
|
|
54
|
+
}
|
|
55
|
+
render() {
|
|
56
|
+
return p`<slot></slot>`;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
a([
|
|
60
|
+
d({ type: String, reflect: !0 })
|
|
61
|
+
], l.prototype, "size", 2);
|
|
62
|
+
a([
|
|
63
|
+
d({ type: Number, reflect: !0 })
|
|
64
|
+
], l.prototype, "level", 2);
|
|
65
|
+
a([
|
|
66
|
+
d({ type: Boolean, reflect: !0 })
|
|
67
|
+
], l.prototype, "visuallyHidden", 2);
|
|
68
|
+
a([
|
|
69
|
+
d({ type: String, reflect: !0 })
|
|
70
|
+
], l.prototype, "align", 2);
|
|
71
|
+
l = a([
|
|
72
|
+
o("pkt-heading")
|
|
73
|
+
], l);
|
|
74
|
+
export {
|
|
75
|
+
l as P
|
|
76
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const i=require("./element-D62wHiNU.cjs");var h=Object.defineProperty,u=Object.getOwnPropertyDescriptor,a=(n,e,l,t)=>{for(var s=t>1?void 0:t?u(e,l):e,r=n.length-1,d;r>=0;r--)(d=n[r])&&(s=(t?d(e,l,s):d(s))||s);return t&&s&&h(e,l,s),s};exports.PktHeading=class extends i.PktShadowElement{constructor(){super(...arguments),this.size=void 0,this.level=2,this.visuallyHidden=!1,this.align=void 0}connectedCallback(){super.connectedCallback(),this.setAttribute("role","heading"),this.setAttribute("aria-level",String(this.level)),this.updateHostClasses()}attributeChangedCallback(e,l,t){super.attributeChangedCallback(e,l,t),e==="level"&&t&&this.setLevel(Number(t)),e==="visuallyHidden"&&(this.visuallyHidden=t!==null&&t!=="false"),(e==="size"||e==="visuallyHidden"||e==="align")&&this.updateHostClasses()}updated(e){super.updated(e),e.has("level")&&(this.setLevel(this.level),this.hasAttribute("size")||(this.size=this.defaultSizeForLevel)),!this.hasAttribute("size")&&(e.has("level")||this.size===void 0)&&(this.size=this.defaultSizeForLevel),(e.has("size")||e.has("visuallyHidden")||e.has("align"))&&this.updateHostClasses()}setLevel(e){e>=1&&e<=6?(this.level=e,this.setAttribute("aria-level",String(e))):console.warn(`Invalid heading level: ${e}. Must be between 1 and 6.`)}get defaultSizeForLevel(){switch(this.level){case 1:return"xlarge";case 2:return"large";case 3:return"medium";case 4:return"small";case 5:return"xsmall";case 6:return"xsmall";default:return"medium"}}updateHostClasses(){this.classList.remove("pkt-heading","pkt-heading--xsmall","pkt-heading--small","pkt-heading--medium","pkt-heading--large","pkt-heading--xlarge","pkt-sr-only","pkt-heading--start","pkt-heading--center","pkt-heading--end"),this.classList.add("pkt-heading"),this.size&&this.classList.add(`pkt-heading--${this.size}`),this.visuallyHidden&&this.classList.add("pkt-sr-only"),this.align&&this.classList.add(`pkt-heading--${this.align}`)}render(){return i.x`<slot></slot>`}};a([i.n({type:String,reflect:!0})],exports.PktHeading.prototype,"size",2);a([i.n({type:Number,reflect:!0})],exports.PktHeading.prototype,"level",2);a([i.n({type:Boolean,reflect:!0})],exports.PktHeading.prototype,"visuallyHidden",2);a([i.n({type:String,reflect:!0})],exports.PktHeading.prototype,"align",2);exports.PktHeading=a([i.t("pkt-heading")],exports.PktHeading);
|
package/dist/index.d.ts
CHANGED
|
@@ -749,14 +749,15 @@ declare class PktElement<T = {}> extends PktShadowElement<T> {
|
|
|
749
749
|
}
|
|
750
750
|
|
|
751
751
|
export declare class PktHeading extends PktShadowElement<IPktHeading> implements IPktHeading {
|
|
752
|
-
size: TPktHeadingSize;
|
|
752
|
+
size: TPktHeadingSize | undefined;
|
|
753
753
|
level: TPktHeadingLevel;
|
|
754
754
|
visuallyHidden: boolean;
|
|
755
|
-
align: 'start' | 'center' | 'end';
|
|
755
|
+
align: 'start' | 'center' | 'end' | undefined;
|
|
756
756
|
connectedCallback(): void;
|
|
757
757
|
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
758
758
|
protected updated(_changedProperties: PropertyValues): void;
|
|
759
759
|
private setLevel;
|
|
760
|
+
private get defaultSizeForLevel();
|
|
760
761
|
private updateHostClasses;
|
|
761
762
|
render(): TemplateResult<1>;
|
|
762
763
|
}
|
package/dist/pkt-card.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./card-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./card-B9RPShvV.cjs"),t=e.PktCard;Object.defineProperty(exports,"PktCard",{enumerable:!0,get:()=>e.PktCard});exports.default=t;
|
package/dist/pkt-card.js
CHANGED
package/dist/pkt-heading.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./heading-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./heading-H_FWjo2k.cjs"),t=e.PktHeading;Object.defineProperty(exports,"PktHeading",{enumerable:!0,get:()=>e.PktHeading});exports.default=t;
|
package/dist/pkt-heading.js
CHANGED
package/dist/pkt-index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./alert-ZP5-fqlt.cjs"),l=require("./accordionitem-BOmnm80g.cjs"),b=require("./backlink-BT7DO6rV.cjs"),m=require("./button-BfqxLnMT.cjs"),P=require("./calendar-CL9O0tLP.cjs"),g=require("./card-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./alert-ZP5-fqlt.cjs"),l=require("./accordionitem-BOmnm80g.cjs"),b=require("./backlink-BT7DO6rV.cjs"),m=require("./button-BfqxLnMT.cjs"),P=require("./calendar-CL9O0tLP.cjs"),g=require("./card-B9RPShvV.cjs"),h=require("./combobox-COuxR036.cjs"),f=require("./consent-DFrsiYGQ.cjs"),y=require("./checkbox-CH8xeK-0.cjs"),t=require("./element-D62wHiNU.cjs"),O=require("./pkt-slot-controller-BzddBp7z.cjs"),s=require("./ref-BfgcOXko.cjs"),j=require("./class-map-CG3vIaNm.cjs"),k=require("./datepicker-CV73pLqD.cjs"),q=require("./helptext-D1fkGmfT.cjs"),x=require("./heading-H_FWjo2k.cjs"),C=require("./icon-__Hjt2XZ.cjs"),v=require("./input-wrapper-C9rZEgju.cjs"),S=require("./link-CyiVlb-7.cjs"),$=require("./linkcard-fH9uydjS.cjs"),L=require("./loader-C-3l7kb9.cjs"),T=require("./messagebox---xPIAwR.cjs"),_=require("./modal-IjDRQfX1.cjs"),A=require("./progressbar-DJzEC7cx.cjs"),p=require("./radiobutton-DEboKECm.cjs"),B=require("./tag-BKq07hGI.cjs"),I=require("./textarea-CXu8UUsY.cjs"),D=require("./textinput-C6wccDhZ.cjs"),M=require("./select-Cf1RWSsI.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 O.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="${j.e(e)}">
|
|
3
3
|
<h1 class="pkt-txt-28">${this.string}</h1>
|
|
4
4
|
|
package/dist/pkt-index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { P as E } from "./backlink-Bq8O2bt8.js";
|
|
|
4
4
|
import { P as O } from "./button-x6Xw-5w0.js";
|
|
5
5
|
import { c as d } from "./calendar-ChphTIhk.js";
|
|
6
6
|
import { P as j } from "./calendar-ChphTIhk.js";
|
|
7
|
-
import { P as G } from "./card-
|
|
7
|
+
import { P as G } from "./card-en2KhOPO.js";
|
|
8
8
|
import { P as K } from "./combobox-D3aPvdrE.js";
|
|
9
9
|
import { P as U } from "./consent-CXp0bLvg.js";
|
|
10
10
|
import { P as q } from "./checkbox-DSAcMC-D.js";
|
|
@@ -14,7 +14,7 @@ import { e as m, n as k } from "./ref-BCGCor-j.js";
|
|
|
14
14
|
import { e as u } from "./class-map-Dw6Wrxwi.js";
|
|
15
15
|
import { P as F, a as J } from "./datepicker-Ca552mbJ.js";
|
|
16
16
|
import { P as V } from "./helptext-8ykxyegi.js";
|
|
17
|
-
import { P as Y } from "./heading-
|
|
17
|
+
import { P as Y } from "./heading-DQ0R34j4.js";
|
|
18
18
|
import { P as tt } from "./icon-B1-mkmwB.js";
|
|
19
19
|
import { P as rt } from "./input-wrapper-D_JdEqcO.js";
|
|
20
20
|
import { P as st } from "./link-DSSJYrtn.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oslokommune/punkt-elements",
|
|
3
|
-
"version": "13.6.
|
|
3
|
+
"version": "13.6.4",
|
|
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",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@babel/preset-env": "^7.28.3",
|
|
41
41
|
"@babel/preset-typescript": "^7.25.9",
|
|
42
42
|
"@oslokommune/punkt-assets": "^13.6.3",
|
|
43
|
-
"@oslokommune/punkt-css": "^13.6.
|
|
43
|
+
"@oslokommune/punkt-css": "^13.6.4",
|
|
44
44
|
"@testing-library/jest-dom": "^6.6.3",
|
|
45
45
|
"@vitest/ui": "^1.0.0",
|
|
46
46
|
"jest-axe": "^9.0.0",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"url": "https://github.com/oslokommune/punkt/issues"
|
|
73
73
|
},
|
|
74
74
|
"license": "MIT",
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "e5cb812d5161777cf03a2a2ed532490446d6d5a9"
|
|
76
76
|
}
|
|
@@ -42,10 +42,9 @@ describe('PktHeading', () => {
|
|
|
42
42
|
const heading = container.querySelector('pkt-heading') as PktHeading
|
|
43
43
|
await heading.updateComplete
|
|
44
44
|
|
|
45
|
-
expect(heading.size).toBe('medium')
|
|
46
45
|
expect(heading.level).toBe(2)
|
|
47
46
|
expect(heading.visuallyHidden).toBe(false)
|
|
48
|
-
expect(heading.align).toBe(
|
|
47
|
+
expect(heading.align).toBe(undefined)
|
|
49
48
|
})
|
|
50
49
|
|
|
51
50
|
test('renders content in shadow DOM slot', async () => {
|
|
@@ -65,10 +64,10 @@ describe('PktHeading', () => {
|
|
|
65
64
|
const heading = container.querySelector('pkt-heading') as PktHeading
|
|
66
65
|
await heading.updateComplete
|
|
67
66
|
|
|
68
|
-
expect(heading.getAttribute('size')).toBe('
|
|
67
|
+
expect(heading.getAttribute('size')).toBe('large')
|
|
69
68
|
expect(heading.getAttribute('level')).toBe('2')
|
|
70
69
|
expect(heading.getAttribute('visually-hidden')).toBe(null)
|
|
71
|
-
expect(heading.getAttribute('align')).toBe(
|
|
70
|
+
expect(heading.getAttribute('align')).toBe(null)
|
|
72
71
|
})
|
|
73
72
|
|
|
74
73
|
test('sets size property correctly', async () => {
|
|
@@ -130,8 +129,8 @@ describe('PktHeading', () => {
|
|
|
130
129
|
await heading.updateComplete
|
|
131
130
|
|
|
132
131
|
expect(heading.classList.contains('pkt-heading')).toBe(true)
|
|
133
|
-
expect(heading.classList.contains('pkt-heading--medium')).toBe(
|
|
134
|
-
expect(heading.classList.contains('pkt-heading--start')).toBe(
|
|
132
|
+
expect(heading.classList.contains('pkt-heading--medium')).toBe(false)
|
|
133
|
+
expect(heading.classList.contains('pkt-heading--start')).toBe(false)
|
|
135
134
|
})
|
|
136
135
|
|
|
137
136
|
test('applies size-specific CSS classes', async () => {
|
|
@@ -451,7 +450,7 @@ describe('PktHeading', () => {
|
|
|
451
450
|
|
|
452
451
|
// Verify second heading is unaffected
|
|
453
452
|
expect(heading2.size).toBe('small')
|
|
454
|
-
expect(heading2.align).toBe(
|
|
453
|
+
expect(heading2.align).toBe(undefined)
|
|
455
454
|
expect(heading1.size).toBe('xlarge')
|
|
456
455
|
expect(heading1.align).toBe('center')
|
|
457
456
|
})
|
|
@@ -14,15 +14,17 @@ export interface IPktHeading {
|
|
|
14
14
|
|
|
15
15
|
@customElement('pkt-heading')
|
|
16
16
|
export class PktHeading extends PktShadowElement<IPktHeading> implements IPktHeading {
|
|
17
|
-
@property({ type: String, reflect: true }) size: TPktHeadingSize =
|
|
17
|
+
@property({ type: String, reflect: true }) size: TPktHeadingSize | undefined = undefined
|
|
18
18
|
@property({ type: Number, reflect: true }) level: TPktHeadingLevel = 2
|
|
19
19
|
@property({ type: Boolean, reflect: true }) visuallyHidden: boolean = false
|
|
20
|
-
@property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' =
|
|
20
|
+
@property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' | undefined =
|
|
21
|
+
undefined
|
|
21
22
|
|
|
22
23
|
connectedCallback(): void {
|
|
23
24
|
super.connectedCallback()
|
|
24
25
|
this.setAttribute('role', 'heading')
|
|
25
26
|
this.setAttribute('aria-level', String(this.level))
|
|
27
|
+
|
|
26
28
|
this.updateHostClasses()
|
|
27
29
|
}
|
|
28
30
|
|
|
@@ -43,7 +45,18 @@ export class PktHeading extends PktShadowElement<IPktHeading> implements IPktHea
|
|
|
43
45
|
super.updated(_changedProperties)
|
|
44
46
|
if (_changedProperties.has('level')) {
|
|
45
47
|
this.setLevel(this.level)
|
|
48
|
+
|
|
49
|
+
if (!this.hasAttribute('size')) {
|
|
50
|
+
this.size = this.defaultSizeForLevel
|
|
51
|
+
}
|
|
46
52
|
}
|
|
53
|
+
if (
|
|
54
|
+
!this.hasAttribute('size') &&
|
|
55
|
+
(_changedProperties.has('level') || this.size === undefined)
|
|
56
|
+
) {
|
|
57
|
+
this.size = this.defaultSizeForLevel
|
|
58
|
+
}
|
|
59
|
+
|
|
47
60
|
if (
|
|
48
61
|
_changedProperties.has('size') ||
|
|
49
62
|
_changedProperties.has('visuallyHidden') ||
|
|
@@ -62,6 +75,25 @@ export class PktHeading extends PktShadowElement<IPktHeading> implements IPktHea
|
|
|
62
75
|
}
|
|
63
76
|
}
|
|
64
77
|
|
|
78
|
+
private get defaultSizeForLevel(): TPktHeadingSize {
|
|
79
|
+
switch (this.level) {
|
|
80
|
+
case 1:
|
|
81
|
+
return 'xlarge'
|
|
82
|
+
case 2:
|
|
83
|
+
return 'large'
|
|
84
|
+
case 3:
|
|
85
|
+
return 'medium'
|
|
86
|
+
case 4:
|
|
87
|
+
return 'small'
|
|
88
|
+
case 5:
|
|
89
|
+
return 'xsmall'
|
|
90
|
+
case 6:
|
|
91
|
+
return 'xsmall'
|
|
92
|
+
default:
|
|
93
|
+
return 'medium'
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
65
97
|
private updateHostClasses() {
|
|
66
98
|
// Remove all possible classes first
|
|
67
99
|
this.classList.remove(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const i=require("./element-D62wHiNU.cjs");var h=Object.defineProperty,p=Object.getOwnPropertyDescriptor,l=(n,t,a,e)=>{for(var s=e>1?void 0:e?p(t,a):t,d=n.length-1,r;d>=0;d--)(r=n[d])&&(s=(e?r(t,a,s):r(s))||s);return e&&s&&h(t,a,s),s};exports.PktHeading=class extends i.PktShadowElement{constructor(){super(...arguments),this.size="medium",this.level=2,this.visuallyHidden=!1,this.align="start"}connectedCallback(){super.connectedCallback(),this.setAttribute("role","heading"),this.setAttribute("aria-level",String(this.level)),this.updateHostClasses()}attributeChangedCallback(t,a,e){super.attributeChangedCallback(t,a,e),t==="level"&&e&&this.setLevel(Number(e)),t==="visuallyHidden"&&(this.visuallyHidden=e!==null&&e!=="false"),(t==="size"||t==="visuallyHidden"||t==="align")&&this.updateHostClasses()}updated(t){super.updated(t),t.has("level")&&this.setLevel(this.level),(t.has("size")||t.has("visuallyHidden")||t.has("align"))&&this.updateHostClasses()}setLevel(t){t>=1&&t<=6?(this.level=t,this.setAttribute("aria-level",String(t))):console.warn(`Invalid heading level: ${t}. Must be between 1 and 6.`)}updateHostClasses(){this.classList.remove("pkt-heading","pkt-heading--xsmall","pkt-heading--small","pkt-heading--medium","pkt-heading--large","pkt-heading--xlarge","pkt-sr-only","pkt-heading--start","pkt-heading--center","pkt-heading--end"),this.classList.add("pkt-heading"),this.size&&this.classList.add(`pkt-heading--${this.size}`),this.visuallyHidden&&this.classList.add("pkt-sr-only"),this.align&&this.classList.add(`pkt-heading--${this.align}`)}render(){return i.x`<slot></slot>`}};l([i.n({type:String,reflect:!0})],exports.PktHeading.prototype,"size",2);l([i.n({type:Number,reflect:!0})],exports.PktHeading.prototype,"level",2);l([i.n({type:Boolean,reflect:!0})],exports.PktHeading.prototype,"visuallyHidden",2);l([i.n({type:String,reflect:!0})],exports.PktHeading.prototype,"align",2);exports.PktHeading=l([i.t("pkt-heading")],exports.PktHeading);
|
package/dist/heading-CfxZa1QR.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { b as p, x as u, n, a as o } from "./element-DJZPsA_J.js";
|
|
2
|
-
var g = Object.defineProperty, f = Object.getOwnPropertyDescriptor, a = (t, i, e, d) => {
|
|
3
|
-
for (var s = d > 1 ? void 0 : d ? f(i, e) : i, r = t.length - 1, h; r >= 0; r--)
|
|
4
|
-
(h = t[r]) && (s = (d ? h(i, e, s) : h(s)) || s);
|
|
5
|
-
return d && s && g(i, e, s), s;
|
|
6
|
-
};
|
|
7
|
-
let l = class extends p {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments), this.size = "medium", this.level = 2, this.visuallyHidden = !1, this.align = "start";
|
|
10
|
-
}
|
|
11
|
-
connectedCallback() {
|
|
12
|
-
super.connectedCallback(), this.setAttribute("role", "heading"), this.setAttribute("aria-level", String(this.level)), this.updateHostClasses();
|
|
13
|
-
}
|
|
14
|
-
attributeChangedCallback(t, i, e) {
|
|
15
|
-
super.attributeChangedCallback(t, i, e), t === "level" && e && this.setLevel(Number(e)), t === "visuallyHidden" && (this.visuallyHidden = e !== null && e !== "false"), (t === "size" || t === "visuallyHidden" || t === "align") && this.updateHostClasses();
|
|
16
|
-
}
|
|
17
|
-
updated(t) {
|
|
18
|
-
super.updated(t), t.has("level") && this.setLevel(this.level), (t.has("size") || t.has("visuallyHidden") || t.has("align")) && this.updateHostClasses();
|
|
19
|
-
}
|
|
20
|
-
setLevel(t) {
|
|
21
|
-
t >= 1 && t <= 6 ? (this.level = t, this.setAttribute("aria-level", String(t))) : console.warn(`Invalid heading level: ${t}. Must be between 1 and 6.`);
|
|
22
|
-
}
|
|
23
|
-
updateHostClasses() {
|
|
24
|
-
this.classList.remove(
|
|
25
|
-
"pkt-heading",
|
|
26
|
-
"pkt-heading--xsmall",
|
|
27
|
-
"pkt-heading--small",
|
|
28
|
-
"pkt-heading--medium",
|
|
29
|
-
"pkt-heading--large",
|
|
30
|
-
"pkt-heading--xlarge",
|
|
31
|
-
"pkt-sr-only",
|
|
32
|
-
"pkt-heading--start",
|
|
33
|
-
"pkt-heading--center",
|
|
34
|
-
"pkt-heading--end"
|
|
35
|
-
), this.classList.add("pkt-heading"), this.size && this.classList.add(`pkt-heading--${this.size}`), this.visuallyHidden && this.classList.add("pkt-sr-only"), this.align && this.classList.add(`pkt-heading--${this.align}`);
|
|
36
|
-
}
|
|
37
|
-
render() {
|
|
38
|
-
return u`<slot></slot>`;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
a([
|
|
42
|
-
n({ type: String, reflect: !0 })
|
|
43
|
-
], l.prototype, "size", 2);
|
|
44
|
-
a([
|
|
45
|
-
n({ type: Number, reflect: !0 })
|
|
46
|
-
], l.prototype, "level", 2);
|
|
47
|
-
a([
|
|
48
|
-
n({ type: Boolean, reflect: !0 })
|
|
49
|
-
], l.prototype, "visuallyHidden", 2);
|
|
50
|
-
a([
|
|
51
|
-
n({ type: String, reflect: !0 })
|
|
52
|
-
], l.prototype, "align", 2);
|
|
53
|
-
l = a([
|
|
54
|
-
o("pkt-heading")
|
|
55
|
-
], l);
|
|
56
|
-
export {
|
|
57
|
-
l as P
|
|
58
|
-
};
|