@oslokommune/punkt-vue 9.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +1317 -0
  2. package/CONTRIBUTING.md +130 -0
  3. package/LICENSE +21 -0
  4. package/README.md +65 -0
  5. package/dist/Alert-CShkNLKz.cjs +1 -0
  6. package/dist/Alert-eoZOqLMh.js +108 -0
  7. package/dist/Button-h1iXT3rO.cjs +1 -0
  8. package/dist/Button-oFCw2kbo.js +116 -0
  9. package/dist/Icon-Q_SkpRJa.cjs +1 -0
  10. package/dist/Icon-s3ZNrtl-.js +51 -0
  11. package/dist/InputWrapper--d9sdKAg.js +212 -0
  12. package/dist/InputWrapper-Av69cWnN.cjs +1 -0
  13. package/dist/plugins-AiK__HqQ.cjs +1 -0
  14. package/dist/plugins-IeJb3XDX.js +18 -0
  15. package/dist/punkt-vue-alert.cjs +1 -0
  16. package/dist/punkt-vue-alert.js +14 -0
  17. package/dist/punkt-vue-backlink.cjs +1 -0
  18. package/dist/punkt-vue-backlink.js +72 -0
  19. package/dist/punkt-vue-breadcrumbs.cjs +1 -0
  20. package/dist/punkt-vue-breadcrumbs.js +95 -0
  21. package/dist/punkt-vue-button.cjs +1 -0
  22. package/dist/punkt-vue-button.js +14 -0
  23. package/dist/punkt-vue-checkbox.cjs +1 -0
  24. package/dist/punkt-vue-checkbox.js +96 -0
  25. package/dist/punkt-vue-footer.cjs +1 -0
  26. package/dist/punkt-vue-footer.js +178 -0
  27. package/dist/punkt-vue-footersimple.cjs +1 -0
  28. package/dist/punkt-vue-footersimple.js +89 -0
  29. package/dist/punkt-vue-header.cjs +1 -0
  30. package/dist/punkt-vue-header.js +372 -0
  31. package/dist/punkt-vue-icon.cjs +1 -0
  32. package/dist/punkt-vue-icon.js +13 -0
  33. package/dist/punkt-vue-index.cjs +1 -0
  34. package/dist/punkt-vue-index.js +99 -0
  35. package/dist/punkt-vue-inputwrapper.cjs +1 -0
  36. package/dist/punkt-vue-inputwrapper.js +16 -0
  37. package/dist/punkt-vue-linkcard.cjs +1 -0
  38. package/dist/punkt-vue-linkcard.js +71 -0
  39. package/dist/punkt-vue-messagebox.cjs +1 -0
  40. package/dist/punkt-vue-messagebox.js +43 -0
  41. package/dist/punkt-vue-radiobutton.cjs +1 -0
  42. package/dist/punkt-vue-radiobutton.js +88 -0
  43. package/dist/punkt-vue-searchinput.cjs +1 -0
  44. package/dist/punkt-vue-searchinput.js +173 -0
  45. package/dist/punkt-vue-select.cjs +1 -0
  46. package/dist/punkt-vue-select.js +151 -0
  47. package/dist/punkt-vue-tag.cjs +1 -0
  48. package/dist/punkt-vue-tag.js +146 -0
  49. package/dist/punkt-vue-textarea.cjs +1 -0
  50. package/dist/punkt-vue-textarea.js +182 -0
  51. package/dist/punkt-vue-textinput.cjs +1 -0
  52. package/dist/punkt-vue-textinput.js +216 -0
  53. package/package.json +69 -0
  54. package/src/components/alert/Alert.vue +89 -0
  55. package/src/components/backlink/BackLink.vue +40 -0
  56. package/src/components/breadcrumbs/Breadcrumbs.vue +79 -0
  57. package/src/components/button/Button.vue +104 -0
  58. package/src/components/checkbox/Checkbox.vue +83 -0
  59. package/src/components/footer/Footer.vue +153 -0
  60. package/src/components/footersimple/FooterSimple.vue +60 -0
  61. package/src/components/header/Header.vue +301 -0
  62. package/src/components/icon/Icon.vue +70 -0
  63. package/src/components/inputwrapper/InputWrapper.vue +190 -0
  64. package/src/components/linkcard/Linkcard.vue +59 -0
  65. package/src/components/messagebox/Messagebox.vue +34 -0
  66. package/src/components/radiobutton/Radiobutton.vue +75 -0
  67. package/src/components/searchinput/SearchInput.vue +141 -0
  68. package/src/components/select/Select.vue +140 -0
  69. package/src/components/tag/Tag.vue +129 -0
  70. package/src/components/textarea/Textarea.vue +160 -0
  71. package/src/components/textinput/Textinput.vue +185 -0
@@ -0,0 +1,212 @@
1
+ import { P as x } from "./Alert-eoZOqLMh.js";
2
+ import { P as m } from "./Button-oFCw2kbo.js";
3
+ import { resolveComponent as u, openBlock as r, createElementBlock as a, normalizeClass as i, createBlock as h, resolveDynamicComponent as c, withCtx as s, createTextVNode as f, toDisplayString as n, createCommentVNode as l, Fragment as k, createVNode as g, createElementVNode as p, renderSlot as _ } from "vue";
4
+ import { _ as T } from "./plugins-IeJb3XDX.js";
5
+ const w = {
6
+ name: "pktInputwrapper",
7
+ components: { PktAlert: x, PktButton: m },
8
+ props: {
9
+ forId: {
10
+ type: String,
11
+ required: !0
12
+ },
13
+ label: {
14
+ type: String,
15
+ required: !0,
16
+ default: "input"
17
+ },
18
+ helptext: {
19
+ type: String,
20
+ required: !1
21
+ },
22
+ helptextDropdown: {
23
+ type: String,
24
+ required: !1
25
+ },
26
+ helptextDropdownButton: {
27
+ type: String,
28
+ required: !1
29
+ },
30
+ optionalTag: {
31
+ type: Boolean,
32
+ required: !1,
33
+ default: !1
34
+ },
35
+ optionalText: {
36
+ type: String,
37
+ default: "Valgfritt"
38
+ },
39
+ requiredTag: {
40
+ type: Boolean,
41
+ required: !1,
42
+ default: !1
43
+ },
44
+ requiredText: {
45
+ type: String,
46
+ default: "Må fylles ut"
47
+ },
48
+ hasError: {
49
+ type: Boolean,
50
+ required: !1
51
+ },
52
+ errorMessage: {
53
+ type: String,
54
+ required: !1
55
+ },
56
+ disabled: {
57
+ type: Boolean,
58
+ required: !1,
59
+ default: !1
60
+ },
61
+ inline: {
62
+ type: Boolean,
63
+ required: !1,
64
+ default: !1
65
+ },
66
+ ariaDescribedby: {
67
+ type: String,
68
+ required: !1
69
+ },
70
+ useWrapper: {
71
+ type: Boolean,
72
+ default: !0
73
+ },
74
+ hasFieldset: {
75
+ type: Boolean,
76
+ default: !1
77
+ }
78
+ },
79
+ data() {
80
+ return {
81
+ isHelpTextOpen: !1
82
+ };
83
+ },
84
+ methods: {
85
+ toggleHelpText() {
86
+ this.isHelpTextOpen = !this.isHelpTextOpen, this.$emit("toggleHelpText", this.isHelpTextOpen);
87
+ },
88
+ tagClass() {
89
+ return this.optionalTag ? "pkt-tag pkt-tag--small pkt-tag--thin-text pkt-tag--blue-light" : this.requiredTag ? "pkt-tag pkt-tag--small pkt-tag--thin-text pkt-tag--beige" : "";
90
+ }
91
+ },
92
+ computed: {
93
+ tagText() {
94
+ return this.optionalTag ? this.optionalText : this.requiredTag ? this.requiredText : "";
95
+ },
96
+ disabledClass() {
97
+ return this.disabled ? "pkt-inputwrapper--disabled" : "";
98
+ },
99
+ inlineClass() {
100
+ return this.inline ? "pkt-inputwrapper--inline" : "";
101
+ },
102
+ errorClass() {
103
+ return this.hasError ? "pkt-inputwrapper--error" : "";
104
+ },
105
+ hasDropDown() {
106
+ return !!this.helptextDropdown && this.helptextDropdown !== "";
107
+ },
108
+ dropdownButton() {
109
+ return this.helptextDropdownButton || 'Les mer <span class="pkt-sr-only">om inputfeltet</span>';
110
+ },
111
+ describedBy() {
112
+ this.ariaDescribedby ? this.ariaDescribedby : this.helptext && `${this.forId}`;
113
+ }
114
+ }
115
+ }, D = ["id", "innerHTML"], B = ["innerHTML"], q = ["innerHTML"], H = ["for", "aria-describedby"], C = ["for", "aria-describedby", "id"], v = { key: 2 };
116
+ function I(o, S, e, F, d, t) {
117
+ const b = u("pkt-button"), y = u("pkt-alert");
118
+ return r(), a("div", {
119
+ class: i(["pkt-inputwrapper", t.disabledClass, t.inlineClass, t.errorClass])
120
+ }, [
121
+ e.useWrapper ? (r(), h(c(e.hasFieldset ? "fieldset" : t.hasDropDown ? "div" : "label"), {
122
+ key: 0,
123
+ for: e.hasFieldset ? void 0 : e.forId,
124
+ class: i(["pkt-inputwrapper__label", {
125
+ "pkt-inputwrapper__fieldset": e.hasFieldset,
126
+ "pkt-inputwrapper__legend": e.hasFieldset
127
+ }]),
128
+ "aria-describedby": t.hasDropDown ? void 0 : e.ariaDescribedby
129
+ }, {
130
+ default: s(() => [
131
+ (r(), h(c(e.hasFieldset ? "legend" : t.hasDropDown ? "h2" : "span"), {
132
+ class: i({
133
+ "pkt-inputwrapper__legend": e.hasFieldset
134
+ }),
135
+ id: `${e.forId}-label`
136
+ }, {
137
+ default: s(() => [
138
+ f(n(e.label), 1),
139
+ t.tagText !== "" ? (r(), a("span", {
140
+ key: 0,
141
+ class: i(t.tagClass())
142
+ }, n(t.tagText), 3)) : l("", !0)
143
+ ]),
144
+ _: 1
145
+ }, 8, ["class", "id"])),
146
+ e.helptext ? (r(), a("div", {
147
+ key: 0,
148
+ class: "pkt-inputwrapper__helptext",
149
+ id: `${e.forId}-helptext`,
150
+ innerHTML: e.helptext
151
+ }, null, 8, D)) : l("", !0),
152
+ t.hasDropDown ? (r(), a(k, { key: 1 }, [
153
+ g(b, {
154
+ skin: "tertiary",
155
+ size: "small",
156
+ variant: "icon-right",
157
+ "icon-name": d.isHelpTextOpen ? "chevron-thin-up" : "chevron-thin-down",
158
+ class: "pkt-inputwrapper__helptext-expandable pkt-link pkt-link--icon-right",
159
+ onOnClick: t.toggleHelpText
160
+ }, {
161
+ default: s(() => [
162
+ p("span", { innerHTML: t.dropdownButton }, null, 8, B)
163
+ ]),
164
+ _: 1
165
+ }, 8, ["icon-name", "onOnClick"]),
166
+ p("div", {
167
+ class: i(["pkt-inputwrapper__helptext", {
168
+ "pkt-inputwrapper__helptext-expandable-open": d.isHelpTextOpen,
169
+ "pkt-inputwrapper__helptext-expandable-closed": !d.isHelpTextOpen
170
+ }])
171
+ }, [
172
+ p("span", { innerHTML: e.helptextDropdown }, null, 8, q)
173
+ ], 2),
174
+ e.hasFieldset ? l("", !0) : (r(), a("label", {
175
+ key: 0,
176
+ for: e.forId,
177
+ class: "pkt-sr-only",
178
+ "aria-describedby": t.describedBy
179
+ }, n(e.label), 9, H))
180
+ ], 64)) : l("", !0),
181
+ _(o.$slots, "default")
182
+ ]),
183
+ _: 3
184
+ }, 8, ["for", "class", "aria-describedby"])) : (r(), a(k, { key: 1 }, [
185
+ e.hasFieldset ? l("", !0) : (r(), a("label", {
186
+ key: 0,
187
+ for: e.forId,
188
+ class: "pkt-sr-only",
189
+ "aria-describedby": t.describedBy,
190
+ id: `${e.forId}-label`
191
+ }, n(e.label), 9, C)),
192
+ _(o.$slots, "default")
193
+ ], 64)),
194
+ e.hasError && e.errorMessage ? (r(), a("div", v, [
195
+ g(y, {
196
+ skin: "error",
197
+ "aria-live": "assertive",
198
+ id: `${e.forId}-error`,
199
+ slim: ""
200
+ }, {
201
+ default: s(() => [
202
+ f(n(e.errorMessage), 1)
203
+ ]),
204
+ _: 1
205
+ }, 8, ["id"])
206
+ ])) : l("", !0)
207
+ ], 2);
208
+ }
209
+ const E = /* @__PURE__ */ T(w, [["render", I]]);
210
+ export {
211
+ E as P
212
+ };
@@ -0,0 +1 @@
1
+ "use strict";const s=require("./Alert-CShkNLKz.cjs"),o=require("./Button-h1iXT3rO.cjs"),e=require("vue"),d=require("./plugins-AiK__HqQ.cjs"),p={name:"pktInputwrapper",components:{PktAlert:s.PktAlert,PktButton:o.PktButton},props:{forId:{type:String,required:!0},label:{type:String,required:!0,default:"input"},helptext:{type:String,required:!1},helptextDropdown:{type:String,required:!1},helptextDropdownButton:{type:String,required:!1},optionalTag:{type:Boolean,required:!1,default:!1},optionalText:{type:String,default:"Valgfritt"},requiredTag:{type:Boolean,required:!1,default:!1},requiredText:{type:String,default:"Må fylles ut"},hasError:{type:Boolean,required:!1},errorMessage:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:!1},inline:{type:Boolean,required:!1,default:!1},ariaDescribedby:{type:String,required:!1},useWrapper:{type:Boolean,default:!0},hasFieldset:{type:Boolean,default:!1}},data(){return{isHelpTextOpen:!1}},methods:{toggleHelpText(){this.isHelpTextOpen=!this.isHelpTextOpen,this.$emit("toggleHelpText",this.isHelpTextOpen)},tagClass(){return this.optionalTag?"pkt-tag pkt-tag--small pkt-tag--thin-text pkt-tag--blue-light":this.requiredTag?"pkt-tag pkt-tag--small pkt-tag--thin-text pkt-tag--beige":""}},computed:{tagText(){return this.optionalTag?this.optionalText:this.requiredTag?this.requiredText:""},disabledClass(){return this.disabled?"pkt-inputwrapper--disabled":""},inlineClass(){return this.inline?"pkt-inputwrapper--inline":""},errorClass(){return this.hasError?"pkt-inputwrapper--error":""},hasDropDown(){return!!this.helptextDropdown&&this.helptextDropdown!==""},dropdownButton(){return this.helptextDropdownButton||'Les mer <span class="pkt-sr-only">om inputfeltet</span>'},describedBy(){this.ariaDescribedby?this.ariaDescribedby:this.helptext&&`${this.forId}`}}},c=["id","innerHTML"],u=["innerHTML"],h=["innerHTML"],k=["for","aria-describedby"],f=["for","aria-describedby","id"],g={key:2};function m(a,_,t,b,l,r){const n=e.resolveComponent("pkt-button"),i=e.resolveComponent("pkt-alert");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["pkt-inputwrapper",r.disabledClass,r.inlineClass,r.errorClass])},[t.useWrapper?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.hasFieldset?"fieldset":r.hasDropDown?"div":"label"),{key:0,for:t.hasFieldset?void 0:t.forId,class:e.normalizeClass(["pkt-inputwrapper__label",{"pkt-inputwrapper__fieldset":t.hasFieldset,"pkt-inputwrapper__legend":t.hasFieldset}]),"aria-describedby":r.hasDropDown?void 0:t.ariaDescribedby},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.hasFieldset?"legend":r.hasDropDown?"h2":"span"),{class:e.normalizeClass({"pkt-inputwrapper__legend":t.hasFieldset}),id:`${t.forId}-label`},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1),r.tagText!==""?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(r.tagClass())},e.toDisplayString(r.tagText),3)):e.createCommentVNode("",!0)]),_:1},8,["class","id"])),t.helptext?(e.openBlock(),e.createElementBlock("div",{key:0,class:"pkt-inputwrapper__helptext",id:`${t.forId}-helptext`,innerHTML:t.helptext},null,8,c)):e.createCommentVNode("",!0),r.hasDropDown?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(n,{skin:"tertiary",size:"small",variant:"icon-right","icon-name":l.isHelpTextOpen?"chevron-thin-up":"chevron-thin-down",class:"pkt-inputwrapper__helptext-expandable pkt-link pkt-link--icon-right",onOnClick:r.toggleHelpText},{default:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:r.dropdownButton},null,8,u)]),_:1},8,["icon-name","onOnClick"]),e.createElementVNode("div",{class:e.normalizeClass(["pkt-inputwrapper__helptext",{"pkt-inputwrapper__helptext-expandable-open":l.isHelpTextOpen,"pkt-inputwrapper__helptext-expandable-closed":!l.isHelpTextOpen}])},[e.createElementVNode("span",{innerHTML:t.helptextDropdown},null,8,h)],2),t.hasFieldset?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",{key:0,for:t.forId,class:"pkt-sr-only","aria-describedby":r.describedBy},e.toDisplayString(t.label),9,k))],64)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")]),_:3},8,["for","class","aria-describedby"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.hasFieldset?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",{key:0,for:t.forId,class:"pkt-sr-only","aria-describedby":r.describedBy,id:`${t.forId}-label`},e.toDisplayString(t.label),9,f)),e.renderSlot(a.$slots,"default")],64)),t.hasError&&t.errorMessage?(e.openBlock(),e.createElementBlock("div",g,[e.createVNode(i,{skin:"error","aria-live":"assertive",id:`${t.forId}-error`,slim:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.errorMessage),1)]),_:1},8,["id"])])):e.createCommentVNode("",!0)],2)}const y=d._export_sfc(p,[["render",m]]);exports.PktInputWrapper=y;
@@ -0,0 +1 @@
1
+ "use strict";const r=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},i=e=>{typeof window<"u"&&window.Vue&&window.Vue.use(e)},u=(e,t)=>{e.use(t)},c=(e,t)=>{e.component(t.name,t)};exports._export_sfc=r;exports.registerComponent=c;exports.registerPlugin=u;exports.use=i;
@@ -0,0 +1,18 @@
1
+ const r = (e, n) => {
2
+ const o = e.__vccOpts || e;
3
+ for (const [s, t] of n)
4
+ o[s] = t;
5
+ return o;
6
+ }, u = (e) => {
7
+ typeof window < "u" && window.Vue && window.Vue.use(e);
8
+ }, a = (e, n) => {
9
+ e.use(n);
10
+ }, c = (e, n) => {
11
+ e.component(n.name, n);
12
+ };
13
+ export {
14
+ r as _,
15
+ c as a,
16
+ a as r,
17
+ u
18
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Alert-CShkNLKz.cjs"),t=require("./plugins-AiK__HqQ.cjs");require("./Icon-Q_SkpRJa.cjs");require("vue");const r={install(l){t.registerComponent(l,e.PktAlert)}};t.use(r);exports.PktAlert=e.PktAlert;exports.default=r;
@@ -0,0 +1,14 @@
1
+ import { P as o } from "./Alert-eoZOqLMh.js";
2
+ import { u as r, a as s } from "./plugins-IeJb3XDX.js";
3
+ import "./Icon-s3ZNrtl-.js";
4
+ import "vue";
5
+ const a = {
6
+ install(t) {
7
+ s(t, o);
8
+ }
9
+ };
10
+ r(a);
11
+ export {
12
+ o as PktAlert,
13
+ a as default
14
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./Icon-Q_SkpRJa.cjs"),e=require("vue"),o=require("./plugins-AiK__HqQ.cjs"),r={name:"PktBackLink",components:{PktIcon:a.PktIcon},props:{text:{type:String,required:!1,default:"oslo.kommune.no"},href:{type:String,required:!1,default:"https://www.oslo.kommune.no"}}},k={class:"pkt-back-link","aria-label":"Gå tilbake et steg"},_=["href"],p={class:"pkt-back-link__text"},u={class:"pkt-back-link__text"};function d(n,f,t,h,m,g){const c=e.resolveComponent("pkt-icon"),s=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("nav",k,[t.href.startsWith("http")||t.href.startsWith("mailto")?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.href,class:"pkt-link pkt-link--icon-left"},[e.createVNode(c,{class:"pkt-back-link__icon pkt-icon pkt-link__icon",name:"chevron-thin-left"}),e.createElementVNode("span",p,[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])])],8,_)):(e.openBlock(),e.createBlock(s,{key:1,to:t.href,class:"pkt-link pkt-link--icon-left"},{default:e.withCtx(()=>[e.createVNode(c,{class:"pkt-back-link__icon pkt-icon pkt-link__icon",name:"chevron-thin-left"}),e.createElementVNode("span",u,[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])])]),_:3},8,["to"]))])}const l=o._export_sfc(r,[["render",d]]),i={install(n){o.registerComponent(n,l)}};o.use(i);exports.PktBackLink=l;exports.default=i;
@@ -0,0 +1,72 @@
1
+ import { P as p } from "./Icon-s3ZNrtl-.js";
2
+ import { resolveComponent as s, openBlock as n, createElementBlock as a, createVNode as c, createElementVNode as i, renderSlot as l, createTextVNode as k, toDisplayString as r, createBlock as f, withCtx as m } from "vue";
3
+ import { _ as h, u as d, a as u } from "./plugins-IeJb3XDX.js";
4
+ const x = {
5
+ name: "PktBackLink",
6
+ components: {
7
+ PktIcon: p
8
+ },
9
+ props: {
10
+ // Text will get overwritten by "slot" if we have any DOM children in the button element
11
+ text: {
12
+ type: String,
13
+ required: !1,
14
+ default: "oslo.kommune.no"
15
+ },
16
+ href: {
17
+ type: String,
18
+ required: !1,
19
+ default: "https://www.oslo.kommune.no"
20
+ }
21
+ }
22
+ }, b = {
23
+ class: "pkt-back-link",
24
+ "aria-label": "Gå tilbake et steg"
25
+ }, g = ["href"], B = { class: "pkt-back-link__text" }, y = { class: "pkt-back-link__text" };
26
+ function P(e, S, t, C, L, N) {
27
+ const o = s("pkt-icon"), _ = s("router-link");
28
+ return n(), a("nav", b, [
29
+ t.href.startsWith("http") || t.href.startsWith("mailto") ? (n(), a("a", {
30
+ key: 0,
31
+ href: t.href,
32
+ class: "pkt-link pkt-link--icon-left"
33
+ }, [
34
+ c(o, {
35
+ class: "pkt-back-link__icon pkt-icon pkt-link__icon",
36
+ name: "chevron-thin-left"
37
+ }),
38
+ i("span", B, [
39
+ l(e.$slots, "default", {}, () => [
40
+ k(r(t.text), 1)
41
+ ])
42
+ ])
43
+ ], 8, g)) : (n(), f(_, {
44
+ key: 1,
45
+ to: t.href,
46
+ class: "pkt-link pkt-link--icon-left"
47
+ }, {
48
+ default: m(() => [
49
+ c(o, {
50
+ class: "pkt-back-link__icon pkt-icon pkt-link__icon",
51
+ name: "chevron-thin-left"
52
+ }),
53
+ i("span", y, [
54
+ l(e.$slots, "default", {}, () => [
55
+ k(r(t.text), 1)
56
+ ])
57
+ ])
58
+ ]),
59
+ _: 3
60
+ }, 8, ["to"]))
61
+ ]);
62
+ }
63
+ const v = /* @__PURE__ */ h(x, [["render", P]]), w = {
64
+ install(e) {
65
+ u(e, v);
66
+ }
67
+ };
68
+ d(w);
69
+ export {
70
+ v as PktBackLink,
71
+ w as default
72
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("./Icon-Q_SkpRJa.cjs"),e=require("vue"),a=require("./plugins-AiK__HqQ.cjs"),k={name:"PktBreadcrumbs",components:{PktIcon:u.PktIcon},props:{breadcrumbs:{type:Array,required:!0,default:()=>[]},navigationType:{type:String,default:"anchor",validator:r=>["router","anchor"].includes(r)}},computed:{linkElement(){return this.navigationType==="router"?"router-link":"a"},backLink(){return this.displayedBreadcrumbs[this.displayedBreadcrumbs.length-2]},displayedBreadcrumbs(){return this.breadcrumbs.slice(0,4)}}},d={"aria-label":"brødsmulemeny",class:"pkt-breadcrumbs"},m={class:"pkt-breadcrumbs__list pkt-breadcrumbs--desktop"},p={key:0,class:"pkt-breadcrumbs__label","aria-current":"true"},_={class:"pkt-breadcrumbs__text"},b={class:"pkt-breadcrumbs__text"},h={class:"pkt-breadcrumbs__text"};function y(r,f,n,g,B,t){const l=e.resolveComponent("pkt-icon");return e.openBlock(),e.createElementBlock("nav",d,[e.createElementVNode("ol",m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayedBreadcrumbs,(c,o)=>(e.openBlock(),e.createElementBlock("li",{key:`breadcrumb-${o}`,class:"pkt-breadcrumbs__item"},[o===t.displayedBreadcrumbs.length-1?(e.openBlock(),e.createElementBlock("span",p,[e.createElementVNode("span",_,e.toDisplayString(c.text),1)])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.linkElement),{key:1,to:n.navigationType==="router"?c.href:null,href:n.navigationType==="anchor"?c.href:null,class:"pkt-link pkt-link--icon-right pkt-breadcrumbs__label pkt-breadcrumbs__link"},{default:e.withCtx(()=>[e.createVNode(l,{class:"pkt-icon pkt-breadcrumbs__icon pkt-link__icon",name:"chevron-thin-right"}),e.createElementVNode("span",b,e.toDisplayString(c.text),1)]),_:2},1032,["to","href"]))]))),128))]),e.createElementVNode("template",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.linkElement),{to:n.navigationType==="router"?t.backLink.href:null,href:n.navigationType==="anchor"?t.backLink.href:null,class:"pkt-link pkt-link--icon-left pkt-breadcrumbs--mobile"},{default:e.withCtx(()=>[e.createVNode(l,{class:"pkt-back-link__icon pkt-icon pkt-link__icon",name:"chevron-thin-left"}),e.createElementVNode("span",h,e.toDisplayString(t.backLink.text),1)]),_:1},8,["to","href"]))])])}const s=a._export_sfc(k,[["render",y]]),i={install(r){a.registerComponent(r,s)}};a.use(i);exports.PktBreadcrumbs=s;exports.default=i;
@@ -0,0 +1,95 @@
1
+ import { P as b } from "./Icon-s3ZNrtl-.js";
2
+ import { resolveComponent as m, openBlock as t, createElementBlock as c, createElementVNode as r, Fragment as p, renderList as h, toDisplayString as l, createBlock as u, resolveDynamicComponent as d, withCtx as k, createVNode as _ } from "vue";
3
+ import { _ as f, u as y, a as g } from "./plugins-IeJb3XDX.js";
4
+ const v = {
5
+ name: "PktBreadcrumbs",
6
+ components: {
7
+ PktIcon: b
8
+ },
9
+ props: {
10
+ breadcrumbs: {
11
+ type: Array,
12
+ required: !0,
13
+ default: () => []
14
+ },
15
+ navigationType: {
16
+ type: String,
17
+ default: "anchor",
18
+ validator: (a) => ["router", "anchor"].includes(a)
19
+ }
20
+ },
21
+ computed: {
22
+ linkElement() {
23
+ return this.navigationType === "router" ? "router-link" : "a";
24
+ },
25
+ backLink() {
26
+ return this.displayedBreadcrumbs[this.displayedBreadcrumbs.length - 2];
27
+ },
28
+ // Max 4 breadcrumbs
29
+ displayedBreadcrumbs() {
30
+ return this.breadcrumbs.slice(0, 4);
31
+ }
32
+ }
33
+ }, B = {
34
+ "aria-label": "brødsmulemeny",
35
+ class: "pkt-breadcrumbs"
36
+ }, x = { class: "pkt-breadcrumbs__list pkt-breadcrumbs--desktop" }, T = {
37
+ key: 0,
38
+ class: "pkt-breadcrumbs__label",
39
+ "aria-current": "true"
40
+ }, E = { class: "pkt-breadcrumbs__text" }, L = { class: "pkt-breadcrumbs__text" }, P = { class: "pkt-breadcrumbs__text" };
41
+ function C(a, S, n, V, q, e) {
42
+ const i = m("pkt-icon");
43
+ return t(), c("nav", B, [
44
+ r("ol", x, [
45
+ (t(!0), c(p, null, h(e.displayedBreadcrumbs, (s, o) => (t(), c("li", {
46
+ key: `breadcrumb-${o}`,
47
+ class: "pkt-breadcrumbs__item"
48
+ }, [
49
+ o === e.displayedBreadcrumbs.length - 1 ? (t(), c("span", T, [
50
+ r("span", E, l(s.text), 1)
51
+ ])) : (t(), u(d(e.linkElement), {
52
+ key: 1,
53
+ to: n.navigationType === "router" ? s.href : null,
54
+ href: n.navigationType === "anchor" ? s.href : null,
55
+ class: "pkt-link pkt-link--icon-right pkt-breadcrumbs__label pkt-breadcrumbs__link"
56
+ }, {
57
+ default: k(() => [
58
+ _(i, {
59
+ class: "pkt-icon pkt-breadcrumbs__icon pkt-link__icon",
60
+ name: "chevron-thin-right"
61
+ }),
62
+ r("span", L, l(s.text), 1)
63
+ ]),
64
+ _: 2
65
+ }, 1032, ["to", "href"]))
66
+ ]))), 128))
67
+ ]),
68
+ r("template", null, [
69
+ (t(), u(d(e.linkElement), {
70
+ to: n.navigationType === "router" ? e.backLink.href : null,
71
+ href: n.navigationType === "anchor" ? e.backLink.href : null,
72
+ class: "pkt-link pkt-link--icon-left pkt-breadcrumbs--mobile"
73
+ }, {
74
+ default: k(() => [
75
+ _(i, {
76
+ class: "pkt-back-link__icon pkt-icon pkt-link__icon",
77
+ name: "chevron-thin-left"
78
+ }),
79
+ r("span", P, l(e.backLink.text), 1)
80
+ ]),
81
+ _: 1
82
+ }, 8, ["to", "href"]))
83
+ ])
84
+ ]);
85
+ }
86
+ const D = /* @__PURE__ */ f(v, [["render", C]]), N = {
87
+ install(a) {
88
+ g(a, D);
89
+ }
90
+ };
91
+ y(N);
92
+ export {
93
+ D as PktBreadcrumbs,
94
+ N as default
95
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Button-h1iXT3rO.cjs"),t=require("./plugins-AiK__HqQ.cjs");require("./Icon-Q_SkpRJa.cjs");require("vue");const u={install(r){t.registerComponent(r,e.PktButton)}};t.use(u);exports.PktButton=e.PktButton;exports.default=u;
@@ -0,0 +1,14 @@
1
+ import { P as o } from "./Button-oFCw2kbo.js";
2
+ import { u as r, a as s } from "./plugins-IeJb3XDX.js";
3
+ import "./Icon-s3ZNrtl-.js";
4
+ import "vue";
5
+ const a = {
6
+ install(t) {
7
+ s(t, o);
8
+ }
9
+ };
10
+ r(a);
11
+ export {
12
+ o as PktButton,
13
+ a as default
14
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),c=require("./plugins-AiK__HqQ.cjs"),r={name:"PktCheckbox",props:{id:{type:String,required:!0},defaultChecked:{type:Boolean,required:!1,default:!1},modelValue:{type:Boolean,required:!1,default:!1},hasTile:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1},checkHelptext:{type:String,required:!1},hasError:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","onChange"],computed:{computedChecked:{get(){return this.modelValue},set(l){this.$emit("update:modelValue",l),this.$emit("onChange",l)}}},methods:{handleChange(l){this.computedChecked=l.target.checked}}},s={class:"pkt-input-check"},u=["id","checked","disabled"],h=["for"],k={key:0,class:"pkt-input-check__input-helptext"};function p(l,d,t,f,_,a){return e.openBlock(),e.createElementBlock("div",s,[e.createElementVNode("div",{class:e.normalizeClass([{"pkt-input-check__input--tile":t.hasTile},"pkt-input-check__input"])},[e.createElementVNode("input",e.mergeProps(l.$attrs,{class:["pkt-input-check__input-checkbox",{"pkt-input-check__input-checkbox--error":t.hasError}],type:"checkbox",id:t.id,checked:a.computedChecked||t.defaultChecked,onChange:d[0]||(d[0]=(...o)=>a.handleChange&&a.handleChange(...o)),disabled:t.disabled}),null,16,u),e.createElementVNode("label",{class:"pkt-input-check__input-label",for:t.id},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.checkHelptext?(e.openBlock(),e.createElementBlock("div",k,e.toDisplayString(t.checkHelptext),1)):e.createCommentVNode("",!0)],8,h)],2)])}const n=c._export_sfc(r,[["render",p]]),i={install(l){c.registerComponent(l,n)}};c.use(i);exports.PktCheckbox=n;exports.default=i;
@@ -0,0 +1,96 @@
1
+ import { openBlock as d, createElementBlock as i, createElementVNode as l, normalizeClass as o, mergeProps as r, createTextVNode as u, toDisplayString as n, createCommentVNode as h } from "vue";
2
+ import { _ as k, u as p, a as f } from "./plugins-IeJb3XDX.js";
3
+ const _ = {
4
+ name: "PktCheckbox",
5
+ props: {
6
+ id: {
7
+ type: String,
8
+ required: !0
9
+ },
10
+ defaultChecked: {
11
+ type: Boolean,
12
+ required: !1,
13
+ default: !1
14
+ },
15
+ modelValue: {
16
+ type: Boolean,
17
+ required: !1,
18
+ default: !1
19
+ },
20
+ hasTile: {
21
+ type: Boolean,
22
+ required: !1,
23
+ default: !1
24
+ },
25
+ disabled: {
26
+ type: Boolean,
27
+ required: !1,
28
+ default: !1
29
+ },
30
+ label: {
31
+ type: String,
32
+ required: !1
33
+ },
34
+ checkHelptext: {
35
+ type: String,
36
+ required: !1
37
+ },
38
+ hasError: {
39
+ type: Boolean,
40
+ required: !1,
41
+ default: !1
42
+ }
43
+ },
44
+ emits: ["update:modelValue", "onChange"],
45
+ computed: {
46
+ computedChecked: {
47
+ get() {
48
+ return this.modelValue;
49
+ },
50
+ set(t) {
51
+ this.$emit("update:modelValue", t), this.$emit("onChange", t);
52
+ }
53
+ }
54
+ },
55
+ methods: {
56
+ handleChange(t) {
57
+ this.computedChecked = t.target.checked;
58
+ }
59
+ }
60
+ }, m = { class: "pkt-input-check" }, C = ["id", "checked", "disabled"], g = ["for"], b = {
61
+ key: 0,
62
+ class: "pkt-input-check__input-helptext"
63
+ };
64
+ function x(t, c, e, B, V, a) {
65
+ return d(), i("div", m, [
66
+ l("div", {
67
+ class: o([{ "pkt-input-check__input--tile": e.hasTile }, "pkt-input-check__input"])
68
+ }, [
69
+ l("input", r(t.$attrs, {
70
+ class: ["pkt-input-check__input-checkbox", { "pkt-input-check__input-checkbox--error": e.hasError }],
71
+ type: "checkbox",
72
+ id: e.id,
73
+ checked: a.computedChecked || e.defaultChecked,
74
+ onChange: c[0] || (c[0] = (...s) => a.handleChange && a.handleChange(...s)),
75
+ disabled: e.disabled
76
+ }), null, 16, C),
77
+ l("label", {
78
+ class: "pkt-input-check__input-label",
79
+ for: e.id
80
+ }, [
81
+ u(n(e.label) + " ", 1),
82
+ e.checkHelptext ? (d(), i("div", b, n(e.checkHelptext), 1)) : h("", !0)
83
+ ], 8, g)
84
+ ], 2)
85
+ ]);
86
+ }
87
+ const y = /* @__PURE__ */ k(_, [["render", x]]), q = {
88
+ install(t) {
89
+ f(t, y);
90
+ }
91
+ };
92
+ p(q);
93
+ export {
94
+ y as PktCheckbox,
95
+ q as default
96
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("./Icon-Q_SkpRJa.cjs"),e=require("vue"),s=require("./plugins-AiK__HqQ.cjs"),k={name:"PktFooter",components:{PktIcon:p.PktIcon},props:{columnOne:{type:Object,required:!0,validator:o=>"title"in o&&(!("links"in o)||Array.isArray(o.links)&&o.links.every(r=>"href"in r&&"text"in r))},columnTwo:{type:Object,required:!0,validator:o=>"title"in o&&(!("links"in o)||Array.isArray(o.links)&&o.links.every(r=>"href"in r&&"text"in r))},socialLinks:{type:Array,description:"Array of social media and language links for the footer",validator:o=>o.every(r=>{if(typeof r=="object"){const n=typeof r.href=="string",c=typeof r.iconName=="string",i=typeof r.language=="string";return n&&(c||i)}return!1}),required:!1},personvernOgInfoLink:{type:String,default:"https://www.oslo.kommune.no/personvern-og-informasjonskapsler/",required:!1},tilgjengelighetLink:{type:String,default:"https://www.oslo.kommune.no/tilgjengelighet/",required:!1}}},m={class:"pkt-footer","data-mode":"dark"},f={class:"pkt-footer__container"},u={class:"pkt-grid pkt-grid--rowgap-size-32 pkt-grid--gap-size-16"},g={class:"pkt-footer__column pkt-cell pkt-cell--span12 pkt-cell--span4-laptop-up"},h={class:"pkt-footer__title"},N={class:"pkt-footer__list"},E={key:0,class:"pkt-footer__text"},V=["href","target","rel"],y={class:"pkt-footer__column pkt-cell pkt-cell--span12 pkt-cell--span4-laptop-up"},B={class:"pkt-footer__title"},b={class:"pkt-footer__list"},v=["href","target","rel"],w={class:"pkt-footer__column pkt-cell pkt-cell--span12 pkt-cell--span4-laptop-up"},x=e.createElementVNode("h2",{class:"pkt-footer__title"},"Om nettstedet",-1),T={class:"pkt-footer__list"},I={class:"pkt-footer__list-item"},L=["href"],j={class:"pkt-footer__list-item"},O=["href"],S={key:0,class:"pkt-footer__social","aria-label":"standard lenker"},F=["href","aria-label","target","rel"],q={class:"pkt-footer__social-icons"},C=["href","aria-label","target","rel"];function P(o,r,n,c,i,A){const a=e.resolveComponent("pkt-icon");return e.openBlock(),e.createElementBlock("footer",m,[e.createElementVNode("div",f,[e.createElementVNode("div",u,[e.createElementVNode("div",g,[e.createElementVNode("h2",h,e.toDisplayString(n.columnOne.title),1),e.createElementVNode("ul",N,[n.columnOne.text?(e.openBlock(),e.createElementBlock("li",E,e.toDisplayString(n.columnOne.text),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.columnOne.links,(t,l)=>(e.openBlock(),e.createElementBlock("li",{class:"pkt-footer__list-item",key:`links-${l}`},[e.createElementVNode("a",{class:e.normalizeClass(["pkt-footer__link",{"pkt-link--external":t.external}]),href:t.href,target:t.openInNewTab?"_blank":"_self",rel:t.openInNewTab?"noopener noreferrer":void 0},[e.createVNode(a,{class:"pkt-footer__link-icon",name:"chevron-right"}),e.createTextVNode(" "+e.toDisplayString(t.text),1)],10,V)]))),128))])]),e.createElementVNode("div",y,[e.createElementVNode("h2",B,e.toDisplayString(n.columnTwo.title),1),e.createElementVNode("ul",b,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.columnTwo.links,(t,l)=>(e.openBlock(),e.createElementBlock("li",{class:"pkt-footer__list-item",key:`links-${l}`},[e.createElementVNode("a",{class:e.normalizeClass(["pkt-footer__link",{"pkt-link--external":t.external}]),href:t.href,target:t.openInNewTab?"_blank":"_self",rel:t.openInNewTab?"noopener noreferrer":void 0},[e.createVNode(a,{class:"pkt-footer__link-icon",name:"chevron-right"}),e.createTextVNode(" "+e.toDisplayString(t.text),1)],10,v)]))),128))])]),e.createElementVNode("div",w,[x,e.createElementVNode("ul",T,[e.createElementVNode("li",I,[e.createElementVNode("a",{href:n.personvernOgInfoLink,class:"pkt-footer__link"},[e.createVNode(a,{class:"pkt-footer__link-icon",name:"chevron-right"}),e.createTextVNode(" Personvern og informasjonskapsler ")],8,L)]),e.createElementVNode("li",j,[e.createElementVNode("a",{href:n.tilgjengelighetLink,class:"pkt-footer__link"},[e.createVNode(a,{class:"pkt-footer__link-icon",name:"chevron-right"}),e.createTextVNode(" Tilgjengelighet ")],8,O)])])])]),n.socialLinks?(e.openBlock(),e.createElementBlock("div",S,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.socialLinks,(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.language?(e.openBlock(),e.createElementBlock("div",{key:`language-${l}`,class:"pkt-footer__social-language"},[e.createElementVNode("a",{href:t.href,"aria-label":`til ${t.language} versjon av nettsiden`,target:t.openInNewTab?"_blank":"_self",rel:t.openInNewTab?"noopener noreferrer":null},e.toDisplayString(t.language),9,F)])):e.createCommentVNode("",!0)],64))),256)),e.createElementVNode("div",q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.socialLinks,(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.iconName?(e.openBlock(),e.createElementBlock("a",{key:`sociallinks-${l}`,href:t.href,"aria-label":`til ${t.iconName}`,target:t.openInNewTab?"_blank":"_self",rel:t.openInNewTab?"noopener noreferrer":null,class:"pkt-footer__social-icon-link"},[e.createVNode(a,{class:"pkt-footer__social-icon",name:t.iconName},null,8,["name"])],8,C)):e.createCommentVNode("",!0)],64))),256))])])):e.createCommentVNode("",!0)])])}const _=s._export_sfc(k,[["render",P]]),d={install(o){s.registerComponent(o,_)}};s.use(d);exports.PktFooter=_;exports.default=d;