@oslokommune/punkt-elements 16.6.2 → 16.7.1

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 (146) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/{accordionitem-D7sWqDM_.cjs → accordionitem-D1Agl1bB.cjs} +1 -1
  3. package/dist/{accordionitem-Cj74XruR.js → accordionitem-ZlaXvjt5.js} +5 -5
  4. package/dist/{alert-ca_hFi-u.js → alert-BuAXrnKl.js} +6 -6
  5. package/dist/{alert-C95U_RZ0.cjs → alert-DFkFNTxh.cjs} +1 -1
  6. package/dist/{async-directive-CKx6pubI.js → async-directive-CMzWMlZ5.js} +1 -1
  7. package/dist/{async-directive-B158h3ba.cjs → async-directive-DoMuclel.cjs} +1 -1
  8. package/dist/{backlink-CQoNgoa-.cjs → backlink-EiAXUUZP.cjs} +1 -1
  9. package/dist/{backlink-C68H4Z3b.js → backlink-V4DAt17e.js} +3 -3
  10. package/dist/{button-BRovt5nm.js → button-DEyvt1LI.js} +5 -5
  11. package/dist/{button-BXN_JPaH.cjs → button-DYv5Dg4M.cjs} +1 -1
  12. package/dist/{calendar-43Y_6FD8.cjs → calendar-HIE9nxcc.cjs} +1 -1
  13. package/dist/{calendar-B5Xwl8mV.js → calendar-S63oreVW.js} +4 -4
  14. package/dist/{card-DfHo45CG.cjs → card-CyeH6l1c.cjs} +1 -1
  15. package/dist/{card-DvgCTN4B.js → card-DDiLfuO4.js} +7 -7
  16. package/dist/{checkbox-mmn3v9ry.cjs → checkbox-BLlwTABj.cjs} +1 -1
  17. package/dist/{checkbox-CbIUMIYt.js → checkbox-ejBUa5qQ.js} +4 -4
  18. package/dist/{class-map-3ADKve8g.js → class-map-CEnykyO_.js} +1 -1
  19. package/dist/{class-map-Bokp1SoS.cjs → class-map-CsENJXf1.cjs} +1 -1
  20. package/dist/{combobox-CwW0md6G.js → combobox-BmxSecfE.js} +13 -13
  21. package/dist/{combobox-TKL44xnV.cjs → combobox-Hb2V-fPX.cjs} +1 -1
  22. package/dist/{consent-CgS1L1xF.js → consent-iXyx5v6J.js} +3 -3
  23. package/dist/{consent-CIhFwuFO.cjs → consent-ruWAEVXW.cjs} +1 -1
  24. package/dist/{datepicker-qRWWzmbo.js → datepicker-CZl7b8Na.js} +12 -12
  25. package/dist/{datepicker-oN9L0Wnm.cjs → datepicker-D2H7U6MS.cjs} +1 -1
  26. package/dist/{directive-helpers-B3Vpl3xV.cjs → directive-helpers-BP2WOx60.cjs} +1 -1
  27. package/dist/{directive-helpers-CyPtA1_i.js → directive-helpers-rm-28gIj.js} +1 -1
  28. package/dist/{element-CV9utnHJ.js → element-CPpT3rFQ.js} +68 -67
  29. package/dist/{element-CMTfByxQ.cjs → element-gR_VtSiD.cjs} +6 -6
  30. package/dist/{element-with-slot-1djk8KXi.js → element-with-slot-Dqk6-TRR.js} +2 -2
  31. package/dist/{element-with-slot-yT8k1Z37.cjs → element-with-slot-ZX-up7jO.cjs} +1 -1
  32. package/dist/{heading-D9R5UBcv.js → heading-CKt7cVn7.js} +1 -1
  33. package/dist/{heading-B0XRE0lq.cjs → heading-Cvz8m1xL.cjs} +1 -1
  34. package/dist/{helptext-B366oeR9.cjs → helptext-5Mzp65-F.cjs} +1 -1
  35. package/dist/{helptext-DepcDYFV.js → helptext-jIoWRcCF.js} +5 -5
  36. package/dist/{icon-D0IQAVwS.js → icon-BlKA8YuW.js} +1 -1
  37. package/dist/{icon-Dj0oZZSa.cjs → icon-Bqj9oBbl.cjs} +1 -1
  38. package/dist/{if-defined-rXcLNTzN.js → if-defined-B0krMLad.js} +1 -1
  39. package/dist/{if-defined-hKKmbsI8.cjs → if-defined-BOW3ODSj.cjs} +1 -1
  40. package/dist/index.d.ts +92 -0
  41. package/dist/{input-element-n5U38pZ1.js → input-element-8nLwuQS4.js} +3 -3
  42. package/dist/{input-element-Xe9FTi2a.cjs → input-element-DdVhUvva.cjs} +1 -1
  43. package/dist/{input-wrapper-BdFdJU-k.cjs → input-wrapper-B0MkQ0IZ.cjs} +1 -1
  44. package/dist/{input-wrapper-B__6jW4U.js → input-wrapper-B2JpK016.js} +7 -7
  45. package/dist/{link-DLjXMpvi.cjs → link-R_lNhViF.cjs} +1 -1
  46. package/dist/{link-oGYvBLYL.js → link-Z_GizclR.js} +4 -4
  47. package/dist/{linkcard-BhVIc18n.js → linkcard-BlQvdB1a.js} +4 -4
  48. package/dist/{linkcard-C20WC6Nw.cjs → linkcard-C7HbSLlX.cjs} +1 -1
  49. package/dist/{listbox-CS4WQOuf.js → listbox-BQKDZvZn.js} +5 -5
  50. package/dist/{listbox-OAVh_U7u.cjs → listbox-CGgV9MAe.cjs} +1 -1
  51. package/dist/{loader-BHt9i5Xp.js → loader-Ci3CHU8k.js} +5 -5
  52. package/dist/{loader-DxAGCcNF.cjs → loader-e2gs_1xz.cjs} +1 -1
  53. package/dist/{messagebox-DkspcMQg.js → messagebox-Bf-XMlvW.js} +5 -5
  54. package/dist/{messagebox-B8LW0PSQ.cjs → messagebox-D67w71VX.cjs} +1 -1
  55. package/dist/{modal-mWn5pjs8.cjs → modal-CyvEkbfQ.cjs} +1 -1
  56. package/dist/{modal-D3u6ueP5.js → modal-DzGe1g8Z.js} +6 -6
  57. package/dist/pkt-accordion.cjs +1 -1
  58. package/dist/pkt-accordion.js +2 -2
  59. package/dist/pkt-alert.cjs +1 -1
  60. package/dist/pkt-alert.js +1 -1
  61. package/dist/pkt-backlink.cjs +1 -1
  62. package/dist/pkt-backlink.js +1 -1
  63. package/dist/pkt-breadcrumbs.cjs +1 -1
  64. package/dist/pkt-breadcrumbs.js +2 -2
  65. package/dist/pkt-button.cjs +1 -1
  66. package/dist/pkt-button.js +1 -1
  67. package/dist/pkt-calendar.cjs +1 -1
  68. package/dist/pkt-calendar.js +1 -1
  69. package/dist/pkt-card.cjs +1 -1
  70. package/dist/pkt-card.js +1 -1
  71. package/dist/pkt-checkbox.cjs +1 -1
  72. package/dist/pkt-checkbox.js +1 -1
  73. package/dist/pkt-combobox.cjs +1 -1
  74. package/dist/pkt-combobox.js +1 -1
  75. package/dist/pkt-consent.cjs +1 -1
  76. package/dist/pkt-consent.js +1 -1
  77. package/dist/pkt-datepicker.cjs +1 -1
  78. package/dist/pkt-datepicker.js +2 -2
  79. package/dist/pkt-header.cjs +1 -1
  80. package/dist/pkt-header.js +10 -10
  81. package/dist/pkt-heading.cjs +1 -1
  82. package/dist/pkt-heading.js +1 -1
  83. package/dist/pkt-helptext.cjs +1 -1
  84. package/dist/pkt-helptext.js +1 -1
  85. package/dist/pkt-icon.cjs +1 -1
  86. package/dist/pkt-icon.js +1 -1
  87. package/dist/pkt-index.cjs +1 -1
  88. package/dist/pkt-index.js +33 -31
  89. package/dist/pkt-input-wrapper.cjs +1 -1
  90. package/dist/pkt-input-wrapper.js +1 -1
  91. package/dist/pkt-link.cjs +1 -1
  92. package/dist/pkt-link.js +1 -1
  93. package/dist/pkt-linkcard.cjs +1 -1
  94. package/dist/pkt-linkcard.js +1 -1
  95. package/dist/pkt-listbox.cjs +1 -1
  96. package/dist/pkt-listbox.js +1 -1
  97. package/dist/pkt-loader.cjs +1 -1
  98. package/dist/pkt-loader.js +1 -1
  99. package/dist/pkt-messagebox.cjs +1 -1
  100. package/dist/pkt-messagebox.js +1 -1
  101. package/dist/pkt-modal.cjs +1 -1
  102. package/dist/pkt-modal.js +1 -1
  103. package/dist/{pkt-options-controller-DIeKSpWv.cjs → pkt-options-controller-5LXbEzuk.cjs} +1 -1
  104. package/dist/{pkt-options-controller-W4ITGQy9.js → pkt-options-controller-B5YalfCb.js} +1 -1
  105. package/dist/pkt-progressbar.cjs +1 -1
  106. package/dist/pkt-progressbar.js +2 -2
  107. package/dist/pkt-radiobutton.cjs +1 -1
  108. package/dist/pkt-radiobutton.js +1 -1
  109. package/dist/pkt-select.cjs +1 -1
  110. package/dist/pkt-select.js +1 -1
  111. package/dist/pkt-tabs.cjs +1 -1
  112. package/dist/pkt-tabs.js +2 -2
  113. package/dist/pkt-tag.cjs +1 -1
  114. package/dist/pkt-tag.js +1 -1
  115. package/dist/pkt-textarea.cjs +1 -1
  116. package/dist/pkt-textarea.js +1 -1
  117. package/dist/pkt-textinput.cjs +1 -1
  118. package/dist/pkt-textinput.js +1 -1
  119. package/dist/pkt-timepicker.cjs +191 -0
  120. package/dist/pkt-timepicker.js +558 -0
  121. package/dist/{progressbar-CcX-xiPI.js → progressbar-By7e0lEI.js} +5 -5
  122. package/dist/{progressbar-CC9Qr82_.cjs → progressbar-DsJ2B9Vm.cjs} +1 -1
  123. package/dist/{radiobutton-RW3h0tJj.js → radiobutton-6frNG9J_.js} +5 -5
  124. package/dist/{radiobutton-BUDQYAH-.cjs → radiobutton-Bv-BZ1Hw.cjs} +1 -1
  125. package/dist/{ref-DBGHvw2G.js → ref-Bg_Swj5w.js} +2 -2
  126. package/dist/{ref-DahIePMT.cjs → ref-CL-Xk9Xm.cjs} +1 -1
  127. package/dist/{repeat-DnlRNf63.js → repeat-BD8TKgJb.js} +2 -2
  128. package/dist/{repeat-C-FJ2vfy.cjs → repeat-Cfq8CDlf.cjs} +1 -1
  129. package/dist/{select-iXKeM3yz.js → select-CXZt1nHS.js} +8 -8
  130. package/dist/{select-PuEeK4jQ.cjs → select-WFhS4Vfp.cjs} +1 -1
  131. package/dist/{state-l4hGZdFJ.js → state-C_1EOo3D.js} +1 -1
  132. package/dist/{state-BNgpvY-A.cjs → state-Dg-53wQ8.cjs} +1 -1
  133. package/dist/{tabitem-DZSzwag2.js → tabitem-CB8wkKmv.js} +5 -5
  134. package/dist/{tabitem-Jenus4Qd.cjs → tabitem-DZpspU4Q.cjs} +1 -1
  135. package/dist/{tag-CIWBLpjv.js → tag-BuCpqaks.js} +6 -6
  136. package/dist/{tag-DeE1OpmF.cjs → tag-X6xdjR0N.cjs} +1 -1
  137. package/dist/{textarea-DR9lVDN-.js → textarea-Bzuymclz.js} +10 -10
  138. package/dist/{textarea-DtiYQWjy.cjs → textarea-DoeHJ7HR.cjs} +1 -1
  139. package/dist/{textinput-0Bttvt9V.js → textinput-9lHjs4ce.js} +9 -9
  140. package/dist/{textinput-cKrjvbJW.cjs → textinput-BNsLd26i.cjs} +1 -1
  141. package/dist/timepicker.d.ts +1 -0
  142. package/package.json +2 -3
  143. package/src/components/index.ts +3 -0
  144. package/src/components/timepicker/index.ts +2 -0
  145. package/src/components/timepicker/timepicker.test.ts +453 -0
  146. package/src/components/timepicker/timepicker.ts +794 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./progressbar-CC9Qr82_.cjs");Object.defineProperty(exports,"PktProgressbar",{enumerable:!0,get:()=>e.PktProgressbar});exports.default=e.PktProgressbar$1;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./progressbar-DsJ2B9Vm.cjs");Object.defineProperty(exports,"PktProgressbar",{enumerable:!0,get:()=>e.PktProgressbar});exports.default=e.PktProgressbar$1;
@@ -1,5 +1,5 @@
1
- import { a } from "./progressbar-CcX-xiPI.js";
2
- import { P as t } from "./progressbar-CcX-xiPI.js";
1
+ import { a } from "./progressbar-By7e0lEI.js";
2
+ import { P as t } from "./progressbar-By7e0lEI.js";
3
3
  export {
4
4
  t as PktProgressbar,
5
5
  a as default
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./radiobutton-BUDQYAH-.cjs"),e=t.PktRadioButton;Object.defineProperty(exports,"PktRadioButton",{enumerable:!0,get:()=>t.PktRadioButton});exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./radiobutton-Bv-BZ1Hw.cjs"),e=t.PktRadioButton;Object.defineProperty(exports,"PktRadioButton",{enumerable:!0,get:()=>t.PktRadioButton});exports.default=e;
@@ -1,4 +1,4 @@
1
- import { P as t } from "./radiobutton-RW3h0tJj.js";
1
+ import { P as t } from "./radiobutton-6frNG9J_.js";
2
2
  const a = t;
3
3
  export {
4
4
  t as PktRadioButton,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./select-PuEeK4jQ.cjs"),t=e.PktSelect;Object.defineProperty(exports,"PktSelect",{enumerable:!0,get:()=>e.PktSelect});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./select-WFhS4Vfp.cjs"),t=e.PktSelect;Object.defineProperty(exports,"PktSelect",{enumerable:!0,get:()=>e.PktSelect});exports.default=t;
@@ -1,4 +1,4 @@
1
- import { P as t } from "./select-iXKeM3yz.js";
1
+ import { P as t } from "./select-CXZt1nHS.js";
2
2
  const a = t;
3
3
  export {
4
4
  t as PktSelect,
package/dist/pkt-tabs.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tabitem-Jenus4Qd.cjs");exports.PktTabItem=e.PktTabItem_default;exports.PktTabs=e.PktTabs;exports.default=e.PktTabs;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tabitem-DZpspU4Q.cjs");exports.PktTabItem=e.PktTabItem_default;exports.PktTabs=e.PktTabs;exports.default=e.PktTabs;
package/dist/pkt-tabs.js CHANGED
@@ -1,5 +1,5 @@
1
- import { a as t } from "./tabitem-DZSzwag2.js";
2
- import { P as e } from "./tabitem-DZSzwag2.js";
1
+ import { a as t } from "./tabitem-CB8wkKmv.js";
2
+ import { P as e } from "./tabitem-CB8wkKmv.js";
3
3
  export {
4
4
  e as PktTabItem,
5
5
  t as PktTabs,
package/dist/pkt-tag.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tag-DeE1OpmF.cjs"),t=e.PktTag;Object.defineProperty(exports,"PktTag",{enumerable:!0,get:()=>e.PktTag});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tag-X6xdjR0N.cjs"),t=e.PktTag;Object.defineProperty(exports,"PktTag",{enumerable:!0,get:()=>e.PktTag});exports.default=t;
package/dist/pkt-tag.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as a } from "./tag-CIWBLpjv.js";
1
+ import { P as a } from "./tag-BuCpqaks.js";
2
2
  const o = a;
3
3
  export {
4
4
  a as PktTag,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./textarea-DtiYQWjy.cjs"),t=e.PktTextarea;Object.defineProperty(exports,"PktTextarea",{enumerable:!0,get:()=>e.PktTextarea});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./textarea-DoeHJ7HR.cjs"),t=e.PktTextarea;Object.defineProperty(exports,"PktTextarea",{enumerable:!0,get:()=>e.PktTextarea});exports.default=t;
@@ -1,4 +1,4 @@
1
- import { P as a } from "./textarea-DR9lVDN-.js";
1
+ import { P as a } from "./textarea-Bzuymclz.js";
2
2
  const e = a;
3
3
  export {
4
4
  a as PktTextarea,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./textinput-cKrjvbJW.cjs"),t=e.PktTextinput;Object.defineProperty(exports,"PktTextinput",{enumerable:!0,get:()=>e.PktTextinput});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./textinput-BNsLd26i.cjs"),t=e.PktTextinput;Object.defineProperty(exports,"PktTextinput",{enumerable:!0,get:()=>e.PktTextinput});exports.default=t;
@@ -1,4 +1,4 @@
1
- import { P as t } from "./textinput-0Bttvt9V.js";
1
+ import { P as t } from "./textinput-9lHjs4ce.js";
2
2
  const p = t;
3
3
  export {
4
4
  t as PktTextinput,
@@ -0,0 +1,191 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./element-gR_VtSiD.cjs"),_=require("./state-Dg-53wQ8.cjs"),p=require("./ref-CL-Xk9Xm.cjs"),c=require("./if-defined-BOW3ODSj.cjs"),y=require("./class-map-CsENJXf1.cjs"),S=require("./input-element-DdVhUvva.cjs"),D=require("./element-with-slot-ZX-up7jO.cjs");require("./icon-Bqj9oBbl.cjs");require("./input-wrapper-B0MkQ0IZ.cjs");const w=o=>/^\d{2}:\d{2}$/.test(o)&&parseInt(o.slice(0,2),10)<=23&&parseInt(o.slice(3),10)<=59,d=o=>{const[t,e]=o.split(":").map(Number);return t*60+e},m=o=>o?Math.max(1,Math.round(o/60)):1,x=(o,t)=>{const e=o?parseInt(String(o).split(":")[0],10):0,s=t?parseInt(String(t).split(":")[0],10):23;return Array.from({length:s-e+1},(i,n)=>n+e)},I=o=>{const t=m(o);return Array.from({length:Math.floor(60/t)},(e,s)=>s*t)},A=(o,t,e,s)=>{let r=o!==""?parseInt(o,10):e===1?0:23,u=t!==""?parseInt(t,10):e===1?0:Math.floor(59/s)*s;return u+=e*s,u>59?(u=0,r=(r+1)%24):u<0&&(u=Math.floor(59/s)*s,r=(r-1+24)%24),{hours:String(r).padStart(2,"0"),minutes:String(u).padStart(2,"0")}};var F=Object.defineProperty,C=Object.getOwnPropertyDescriptor,l=(o,t,e,s)=>{for(var i=s>1?void 0:s?C(t,e):t,n=o.length-1,r;n>=0;n--)(r=o[n])&&(i=(s?r(t,e,i):r(i))||i);return s&&i&&F(t,e,i),i};exports.PktTimepicker=class extends S.PktInputElement{constructor(){super(...arguments),this.hiddenInputRef=p.e(),this.hoursInputRef=p.e(),this.minutesInputRef=p.e(),this.buttonRef=p.e(),this.value="",this.hidePicker=!1,this.stepArrows=!1,this._hours="",this._minutes="",this._isOpen=!1,this._hoursDigitCount=0,this._hoursFirstDigit=-1,this._minutesDigitCount=0,this._minutesFirstDigit=-1,this._hasFocus=!1,this._outsideClickHandler=t=>{this.contains(t.target)||this._closePopup()},this._handleComponentFocusIn=()=>{this._hasFocus||(this._hasFocus=!0,this.onFocus())},this._handleComponentFocusOut=t=>{this.contains(t.relatedTarget)||(this._hasFocus=!1,this.onBlur())},this._handleHoursKeydown=t=>{var s,i,n;const e=t.target;switch(t.key){case"ArrowUp":{t.preventDefault();const r=this._hours!==""?parseInt(this._hours,10):0;this._hours=String((r+1)%24).padStart(2,"0"),this._syncValueFromDisplay(),this.onInput();break}case"ArrowDown":{t.preventDefault();const r=this._hours!==""?parseInt(this._hours,10):0;this._hours=String((r-1+24)%24).padStart(2,"0"),this._syncValueFromDisplay(),this.onInput();break}case"ArrowRight":t.preventDefault(),(s=this.minutesInputRef.value)==null||s.focus();break;case"Backspace":case"Delete":this._hoursDigitCount=0,this._hoursFirstDigit=-1;break;case"Tab":break;case"Enter":{t.preventDefault();const r=this.internals.form;r?r.requestSubmit():e.blur();break}default:if(/^\d$/.test(t.key)){t.preventDefault();const r=parseInt(t.key,10);if(this._hoursDigitCount===0)this._hoursFirstDigit=r,this._hours=String(r).padStart(2,"0"),this._hoursDigitCount=1,this.onInput(),r>=3&&(this._hoursFirstDigit=-1,this._hoursDigitCount=0,this._syncValueFromDisplay(),(i=this.minutesInputRef.value)==null||i.focus());else{const u=this._hoursFirstDigit*10+r;this._hours=u<=23?String(u).padStart(2,"0"):String(r).padStart(2,"0"),this._hoursFirstDigit=-1,this._hoursDigitCount=0,this._syncValueFromDisplay(),this.onInput(),(n=this.minutesInputRef.value)==null||n.focus()}}else t.preventDefault()}},this._handleHoursBlur=()=>{this._hours!==""&&(this._hours=String(parseInt(this._hours,10)).padStart(2,"0")),this._hoursDigitCount=0,this._hoursFirstDigit=-1,this._syncValueFromDisplay()},this._handleMinutesKeydown=t=>{var s;const e=t.target;switch(t.key){case"ArrowUp":{t.preventDefault();const i=this._minutes!==""?parseInt(this._minutes,10):0;this._minutes=String((i+this._minuteStep)%60).padStart(2,"0"),this._syncValueFromDisplay(),this.onInput();break}case"ArrowDown":{t.preventDefault();const i=this._minutes!==""?parseInt(this._minutes,10):0;this._minutes=String((i-this._minuteStep+60)%60).padStart(2,"0"),this._syncValueFromDisplay(),this.onInput();break}case"ArrowLeft":t.preventDefault(),(s=this.hoursInputRef.value)==null||s.focus();break;case"Backspace":case"Delete":this._minutesDigitCount=0,this._minutesFirstDigit=-1;break;case"Tab":break;case"Enter":{t.preventDefault();const i=this.internals.form;i?i.requestSubmit():e.blur();break}default:if(/^\d$/.test(t.key)){t.preventDefault();const i=parseInt(t.key,10);if(this._minutesDigitCount===0)this._minutesFirstDigit=i,this._minutes=String(i).padStart(2,"0"),this._minutesDigitCount=1,this.onInput(),i>=6&&(this._minutesFirstDigit=-1,this._minutesDigitCount=0,this._syncValueFromDisplay());else{const n=this._minutesFirstDigit*10+i;this._minutes=n<=59?String(n).padStart(2,"0"):String(i).padStart(2,"0"),this._minutesFirstDigit=-1,this._minutesDigitCount=0,this._syncValueFromDisplay(),this.onInput()}}else t.preventDefault()}},this._handleMinutesBlur=()=>{this._minutes!==""&&(this._minutes=String(parseInt(this._minutes,10)).padStart(2,"0")),this._minutesDigitCount=0,this._minutesFirstDigit=-1,this._syncValueFromDisplay()},this._handlePopupKeydown=t=>{var u;const e=document.activeElement,s=e.closest(".pkt-timepicker-popup__col");if(!s)return;const i=Array.from(s.querySelectorAll(".pkt-timepicker-popup__option")),n=i.indexOf(e),r=e.dataset.type??"";switch(t.key){case"ArrowDown":t.preventDefault(),this._focusOptionAndSync(i[Math.min(n+1,i.length-1)],r);break;case"ArrowUp":t.preventDefault(),this._focusOptionAndSync(i[Math.max(n-1,0)],r);break;case"Home":t.preventDefault(),this._focusOptionAndSync(i[0],r);break;case"End":t.preventDefault(),this._focusOptionAndSync(i[i.length-1],r);break;case"ArrowRight":t.preventDefault(),r==="hour"&&(this._focusOptionAndSync(e,r),this.updateComplete.then(()=>{this._scrollToSelected(),this._focusSelectedOrFirst("minute")}));break;case"ArrowLeft":t.preventDefault(),r==="minute"&&(this._focusOptionAndSync(e,r),this.updateComplete.then(()=>{this._scrollToSelected(),this._focusSelectedOrFirst("hour")}));break;case"Enter":case" ":t.preventDefault(),e.click();break;case"Escape":t.preventDefault(),this._closePopup(),(u=this.buttonRef.value)==null||u.focus();break}}}get inputRef(){return this.hiddenInputRef}manageValidity(t){const e=this.hoursInputRef.value;if(!e)return;if(this.required&&!this.value){this.internals.setValidity({valueMissing:!0},a.strings.forms.messages.required,e),this._setAriaInvalid(!0);return}if(!this.value){this.internals.setValidity({}),this._setAriaInvalid(!1);return}const s=d(this.value),i=m(this.step);if(this.min&&s<d(String(this.min))){this.internals.setValidity({rangeUnderflow:!0},a.strings.forms.messages.rangeUnderflowMin.replace("{min}",String(this.min)),e),this._setAriaInvalid(!0);return}if(this.max&&s>d(String(this.max))){this.internals.setValidity({rangeOverflow:!0},a.strings.forms.messages.rangeOverflowMax.replace("{max}",String(this.max)),e),this._setAriaInvalid(!0);return}if(this.step&&s%i!==0){const n=i===60?a.strings.forms.messages.timeStepMismatchHour:i===30?a.strings.forms.messages.timeStepMismatchHalfHour:a.strings.forms.messages.timeStepMismatch.replace("{step}",`${i}, ${i*2}, ${i*3}`);this.internals.setValidity({stepMismatch:!0},n,e),this._setAriaInvalid(!0);return}this.internals.setValidity({}),this._setAriaInvalid(!1)}_setAriaInvalid(t){if(!this.touched&&t)return;const e=this.hoursInputRef.value,s=this.minutesInputRef.value;t?(e==null||e.setAttribute("aria-invalid","true"),s==null||s.setAttribute("aria-invalid","true")):(e==null||e.removeAttribute("aria-invalid"),s==null||s.removeAttribute("aria-invalid"))}connectedCallback(){super.connectedCallback(),this.addEventListener("focusin",this._handleComponentFocusIn),this.addEventListener("focusout",this._handleComponentFocusOut),document.addEventListener("click",this._outsideClickHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focusin",this._handleComponentFocusIn),this.removeEventListener("focusout",this._handleComponentFocusOut),document.removeEventListener("click",this._outsideClickHandler)}willUpdate(t){super.willUpdate(t),t.has("value")&&this._syncDisplayFromValue()}updated(t){super.updated(t),this.classList.toggle("pkt-timepicker--stepper",this.stepArrows),this.classList.toggle("pkt-timepicker--fullwidth",this.fullwidth),t.has("step")&&this.step!==null&&!this._isValidStep(this.step)&&console.warn(`pkt-timepicker: step="${this.step}" er ikke en gyldig verdi. Step må være et multiplum av 60 (hele minutter) eller nøyaktig 3600 (hel time).`)}formResetCallback(){super.formResetCallback(),this._hours="",this._minutes="",this._isOpen=!1}_isValidStep(t){return t===3600||t<3600&&3600%t===0&&t%60===0}_syncDisplayFromValue(){const t=w(this.value)?this.value.split(":"):null;t?(this._hours=t[0],this._minutes=t[1]):(this._hours="",this._minutes="")}_syncValueFromDisplay(){if(this._hours!==""&&this._minutes!==""){const t=`${this._hours}:${this._minutes}`;t!==this.value&&(this.value=t,this.onChange(t))}else this.value!==""&&(this.value="",this.onChange(""))}get _minuteStep(){return m(this.step)}get _hourOptions(){return x(this.min,this.max)}get _minuteOptions(){return I(this.step)}_openPopup(){this._isOpen=!0,this.updateComplete.then(()=>{this._scrollToSelected(),this._focusSelectedOrFirst("hour")})}_closePopup(){this._isOpen=!1,this._syncValueFromDisplay()}_togglePopup(){this._isOpen?this._closePopup():this._openPopup()}_scrollToSelected(){const t=this.querySelector(".pkt-timepicker-popup");t&&t.querySelectorAll(".pkt-timepicker-popup__col").forEach(e=>{const s=e.querySelector(".pkt-timepicker-popup__option--selected");s&&s.scrollIntoView({block:"center"})})}_focusSelectedOrFirst(t){var u;const e=this.querySelector(".pkt-timepicker-popup");if(!e)return;const s=e.querySelectorAll(".pkt-timepicker-popup__col"),i=t==="hour"?s[0]:s[1];if(!i)return;const n=i.querySelector(".pkt-timepicker-popup__option--selected"),r=i.querySelector(".pkt-timepicker-popup__option");(u=n||r)==null||u.focus()}_handleOptionClick(t,e){var i;const s=String(t).padStart(2,"0");e==="hour"?(this._hours=s,this.updateComplete.then(()=>this._focusSelectedOrFirst("minute"))):(this._minutes=s,this._closePopup(),(i=this.buttonRef.value)==null||i.focus())}_focusOptionAndSync(t,e){if(!t)return;const s=parseInt(t.dataset.value??"0",10);e==="hour"?this._hours=String(s).padStart(2,"0"):this._minutes=String(s).padStart(2,"0"),t.focus()}_stepTime(t){const e=A(this._hours,this._minutes,t,this._minuteStep);this._hours=e.hours,this._minutes=e.minutes,this._syncValueFromDisplay()}_renderOption(t,e){const s=String(t).padStart(2,"0"),i=e==="hour"?this._hours!==""?parseInt(this._hours,10):NaN:this._minutes!==""?parseInt(this._minutes,10):NaN,n=t===i;return a.b`
2
+ <button
3
+ class=${y.e({"pkt-btn":!0,"pkt-btn--tertiary":!0,"pkt-btn--small":!0,"pkt-btn--label-only":!0,"pkt-timepicker-popup__option":!0,"pkt-timepicker-popup__option--selected":n})}
4
+ type="button"
5
+ role="option"
6
+ aria-selected=${n?"true":"false"}
7
+ tabindex=${n?"0":"-1"}
8
+ data-type=${e}
9
+ data-value=${t}
10
+ @click=${r=>{r.stopImmediatePropagation(),this._handleOptionClick(t,e)}}
11
+ >
12
+ <span class="pkt-btn__text pkt-txt-14-light">${s}</span>
13
+ </button>
14
+ `}_renderPopup(){var t,e,s;return a.b`
15
+ <div
16
+ class="pkt-timepicker-popup"
17
+ id=${this.id+"-popup"}
18
+ ?hidden=${!this._isOpen}
19
+ role="group"
20
+ aria-label=${((t=this.strings.timepicker)==null?void 0:t.selectTime)??"Velg tidspunkt"}
21
+ @keydown=${this._handlePopupKeydown}
22
+ @focusout=${i=>{var n;(n=this.querySelector(".pkt-timepicker-popup"))!=null&&n.contains(i.relatedTarget)||this._closePopup()}}
23
+ >
24
+ <div
25
+ class="pkt-timepicker-popup__col"
26
+ role="listbox"
27
+ aria-label=${((e=this.strings.timepicker)==null?void 0:e.hours)??"Timer"}
28
+ aria-orientation="vertical"
29
+ >
30
+ ${this._hourOptions.map(i=>this._renderOption(i,"hour"))}
31
+ </div>
32
+ <div
33
+ class="pkt-timepicker-popup__col"
34
+ role="listbox"
35
+ aria-label=${((s=this.strings.timepicker)==null?void 0:s.minutes)??"Minutter"}
36
+ aria-orientation="vertical"
37
+ >
38
+ ${this._minuteOptions.map(i=>this._renderOption(i,"minute"))}
39
+ </div>
40
+ </div>
41
+ `}_renderContainer(){var n,r,u,k,f,g,b,v;const t=((n=this.strings.timepicker)==null?void 0:n.hours)??"Timer",e=((r=this.strings.timepicker)==null?void 0:r.minutes)??"Minutter",s=this.label?`${t}, ${this.label}`:t,i=this.label?`${e}, ${this.label}`:e;return a.b`
42
+ <div
43
+ class="pkt-input__container"
44
+ @click=${h=>{var $;h.target.closest("button, input")||($=this.hoursInputRef.value)==null||$.focus()}}
45
+ >
46
+ ${this.stepArrows?a.b`
47
+ <button
48
+ class="pkt-input-icon pkt-btn pkt-btn--icon-only pkt-btn--tertiary pkt-timepicker__button pkt-timepicker__button--prev"
49
+ type="button"
50
+ aria-label=${((u=this.strings.timepicker)==null?void 0:u.prevTime)??"Forrige tidspunkt"}
51
+ ?disabled=${this.disabled}
52
+ @click=${()=>this._stepTime(-1)}
53
+ >
54
+ <pkt-icon name="chevron-thin-left"></pkt-icon>
55
+ <span class="pkt-btn__text"
56
+ >${((k=this.strings.timepicker)==null?void 0:k.prevTime)??"Forrige tidspunkt"}</span
57
+ >
58
+ </button>
59
+ `:a.A}
60
+ <input
61
+ ${p.n(this.hoursInputRef)}
62
+ type="text"
63
+ inputmode="numeric"
64
+ maxlength="2"
65
+ size="2"
66
+ class="pkt-input pkt-timepicker__input"
67
+ id=${this.id+"-hours"}
68
+ data-min="0"
69
+ data-max="23"
70
+ .value=${this._hours}
71
+ placeholder="––"
72
+ aria-label=${s}
73
+ role="spinbutton"
74
+ aria-invalid=${this.hasError?"true":a.A}
75
+ aria-valuemin="0"
76
+ aria-valuemax="23"
77
+ aria-valuenow=${this._hours!==""?this._hours:a.A}
78
+ aria-valuetext=${this._hours!==""?`${this._hours} ${t.toLowerCase()}`:a.A}
79
+ autocomplete="off"
80
+ ?disabled=${this.disabled}
81
+ @keydown=${this._handleHoursKeydown}
82
+ @blur=${this._handleHoursBlur}
83
+ @focus=${h=>{h.target.select(),h.stopImmediatePropagation()}}
84
+ />
85
+ <span class="pkt-timepicker__separator">:</span>
86
+ <input
87
+ ${p.n(this.minutesInputRef)}
88
+ type="text"
89
+ inputmode="numeric"
90
+ maxlength="2"
91
+ size="2"
92
+ class="pkt-input pkt-timepicker__input"
93
+ id=${this.id+"-minutes"}
94
+ data-min="0"
95
+ data-max="59"
96
+ .value=${this._minutes}
97
+ placeholder="––"
98
+ aria-label=${i}
99
+ role="spinbutton"
100
+ aria-invalid=${this.hasError?"true":a.A}
101
+ aria-valuemin="0"
102
+ aria-valuemax="59"
103
+ aria-valuenow=${this._minutes!==""?this._minutes:a.A}
104
+ aria-valuetext=${this._minutes!==""?`${this._minutes} ${e.toLowerCase()}`:a.A}
105
+ autocomplete="off"
106
+ ?disabled=${this.disabled}
107
+ @keydown=${this._handleMinutesKeydown}
108
+ @blur=${this._handleMinutesBlur}
109
+ @focus=${h=>{h.target.select(),h.stopImmediatePropagation()}}
110
+ />
111
+ ${this.hidePicker&&!this.stepArrows?a.b`<pkt-icon
112
+ class="pkt-input-icon pkt-timepicker__icon"
113
+ name="clock"
114
+ aria-hidden="true"
115
+ ></pkt-icon>`:a.A}
116
+ ${!this.hidePicker&&!this.stepArrows?a.b`
117
+ <button
118
+ ${p.n(this.buttonRef)}
119
+ class="pkt-input-icon pkt-btn pkt-btn--icon-only pkt-btn--tertiary pkt-timepicker__button"
120
+ type="button"
121
+ aria-label=${((f=this.strings.timepicker)==null?void 0:f.openPicker)??"Åpne tidspunkt-velger"}
122
+ aria-haspopup="listbox"
123
+ aria-expanded=${this._isOpen?"true":"false"}
124
+ aria-controls=${this.id+"-popup"}
125
+ ?disabled=${this.disabled}
126
+ @click=${this._togglePopup}
127
+ >
128
+ <pkt-icon name="clock"></pkt-icon>
129
+ <span class="pkt-btn__text"
130
+ >${((g=this.strings.timepicker)==null?void 0:g.openPicker)??"Åpne tidspunkt-velger"}</span
131
+ >
132
+ </button>
133
+ `:a.A}
134
+ ${this.stepArrows?a.b`
135
+ <button
136
+ class="pkt-input-icon pkt-btn pkt-btn--icon-only pkt-btn--tertiary pkt-timepicker__button pkt-timepicker__button--next"
137
+ type="button"
138
+ aria-label=${((b=this.strings.timepicker)==null?void 0:b.nextTime)??"Neste tidspunkt"}
139
+ ?disabled=${this.disabled}
140
+ @click=${()=>this._stepTime(1)}
141
+ >
142
+ <pkt-icon name="chevron-thin-right"></pkt-icon>
143
+ <span class="pkt-btn__text"
144
+ >${((v=this.strings.timepicker)==null?void 0:v.nextTime)??"Neste tidspunkt"}</span
145
+ >
146
+ </button>
147
+ `:a.A}
148
+ <input
149
+ ${p.n(this.hiddenInputRef)}
150
+ type="time"
151
+ hidden
152
+ name=${this.name||this.id}
153
+ id=${this.id+"-input"}
154
+ .value=${this.value}
155
+ min=${c.o(this.min??void 0)}
156
+ max=${c.o(this.max??void 0)}
157
+ step=${c.o(this.step??void 0)}
158
+ ?required=${this.required}
159
+ ?disabled=${this.disabled}
160
+ tabindex="-1"
161
+ />
162
+ </div>
163
+ `}render(){return a.b`
164
+ <pkt-input-wrapper
165
+ label="${this.label}"
166
+ ?disabled=${this.disabled}
167
+ ?fullwidth=${this.fullwidth}
168
+ ?hasError=${this.hasError}
169
+ ?inline=${this.inline}
170
+ ?optionalTag=${this.optionalTag}
171
+ ?required=${this.required}
172
+ ?requiredTag=${this.requiredTag}
173
+ useWrapper=${this.useWrapper}
174
+ .ariaDescribedBy=${this.ariaDescribedBy}
175
+ .errorMessage=${this.errorMessage}
176
+ .forId="${this.id+"-hours"}"
177
+ .helptext=${this.helptext}
178
+ .helptextDropdown=${this.helptextDropdown}
179
+ .helptextDropdownButton=${this.helptextDropdownButton}
180
+ .optionalText=${this.optionalText}
181
+ .requiredText=${this.requiredText}
182
+ .tagText=${this.tagText}
183
+ >
184
+ <div class="pkt-contents" slot="helptext">${D.slotContent(this,"helptext")}</div>
185
+ ${!this.hidePicker&&!this.stepArrows?a.b`
186
+ <div class="pkt-timepicker__anchor">
187
+ ${this._renderContainer()} ${this._renderPopup()}
188
+ </div>
189
+ `:this._renderContainer()}
190
+ </pkt-input-wrapper>
191
+ `}};l([a.n({type:String,reflect:!0})],exports.PktTimepicker.prototype,"value",2);l([a.n({type:Boolean,reflect:!0,attribute:"hide-picker"})],exports.PktTimepicker.prototype,"hidePicker",2);l([a.n({type:Boolean,reflect:!0,attribute:"step-arrows"})],exports.PktTimepicker.prototype,"stepArrows",2);l([_.r()],exports.PktTimepicker.prototype,"_hours",2);l([_.r()],exports.PktTimepicker.prototype,"_minutes",2);l([_.r()],exports.PktTimepicker.prototype,"_isOpen",2);exports.PktTimepicker=l([a.t("pkt-timepicker")],exports.PktTimepicker);