@oslokommune/punkt-elements 16.8.2 → 16.9.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 (245) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/accordion.d.ts +1 -1
  3. package/dist/alert.d.ts +1 -1
  4. package/dist/backlink.d.ts +1 -1
  5. package/dist/base-elements/element-with-slot.d.ts +21 -0
  6. package/dist/base-elements/element.d.ts +32 -0
  7. package/dist/base-elements/input-element.d.ts +173 -0
  8. package/dist/base-elements/options-input-element.d.ts +73 -0
  9. package/dist/breadcrumbs.d.ts +1 -1
  10. package/dist/button.d.ts +1 -1
  11. package/dist/calendar.d.ts +1 -1
  12. package/dist/card.d.ts +1 -1
  13. package/dist/checkbox.d.ts +1 -1
  14. package/dist/combobox.d.ts +1 -1
  15. package/dist/components/accordion/accordion.d.ts +20 -0
  16. package/dist/components/accordion/accordion.test.d.ts +0 -0
  17. package/dist/components/accordion/accordionitem.d.ts +32 -0
  18. package/dist/components/accordion/index.d.ts +5 -0
  19. package/dist/components/alert/alert.d.ts +30 -0
  20. package/dist/components/alert/alert.test.d.ts +13 -0
  21. package/dist/components/alert/index.d.ts +3 -0
  22. package/dist/components/backlink/backlink.d.ts +14 -0
  23. package/dist/components/backlink/backlink.test.d.ts +10 -0
  24. package/dist/components/backlink/index.d.ts +4 -0
  25. package/dist/components/breadcrumbs/breadcrumbs.d.ts +15 -0
  26. package/dist/components/breadcrumbs/breadcrumbs.test.d.ts +0 -0
  27. package/dist/components/breadcrumbs/index.d.ts +2 -0
  28. package/dist/components/button/button.d.ts +53 -0
  29. package/dist/components/button/button.test.d.ts +22 -0
  30. package/dist/components/button/index.d.ts +4 -0
  31. package/dist/components/calendar/calendar.accessibility.test.d.ts +16 -0
  32. package/dist/components/calendar/calendar.constraints.test.d.ts +0 -0
  33. package/dist/components/calendar/calendar.core.test.d.ts +0 -0
  34. package/dist/components/calendar/calendar.d.ts +97 -0
  35. package/dist/components/calendar/calendar.interaction.test.d.ts +0 -0
  36. package/dist/components/calendar/calendar.selection.test.d.ts +0 -0
  37. package/dist/components/calendar/index.d.ts +3 -0
  38. package/dist/components/card/card.d.ts +64 -0
  39. package/dist/components/card/card.test.d.ts +22 -0
  40. package/dist/components/card/index.d.ts +3 -0
  41. package/dist/components/checkbox/checkbox.d.ts +32 -0
  42. package/dist/components/checkbox/checkbox.test.d.ts +24 -0
  43. package/dist/components/checkbox/index.d.ts +3 -0
  44. package/dist/components/combobox/combobox-base.d.ts +74 -0
  45. package/dist/components/combobox/combobox-handlers.d.ts +28 -0
  46. package/dist/components/combobox/combobox-types.d.ts +5 -0
  47. package/dist/components/combobox/combobox-utils.d.ts +41 -0
  48. package/dist/components/combobox/combobox-value.d.ts +17 -0
  49. package/dist/components/combobox/combobox.accessibility.test.d.ts +0 -0
  50. package/dist/components/combobox/combobox.core.test.d.ts +0 -0
  51. package/dist/components/combobox/combobox.d.ts +61 -0
  52. package/dist/components/combobox/combobox.interaction.test.d.ts +0 -0
  53. package/dist/components/combobox/combobox.selection.test.d.ts +0 -0
  54. package/dist/components/combobox/index.d.ts +4 -0
  55. package/dist/components/consent/consent.d.ts +46 -0
  56. package/dist/components/consent/consent.test.d.ts +16 -0
  57. package/dist/components/consent/index.d.ts +4 -0
  58. package/dist/components/consent/strings.d.ts +85 -0
  59. package/dist/components/datepicker/date-tags.d.ts +20 -0
  60. package/dist/components/datepicker/date-tags.test.d.ts +12 -0
  61. package/dist/components/datepicker/datepicker-base.d.ts +39 -0
  62. package/dist/components/datepicker/datepicker-multiple.d.ts +10 -0
  63. package/dist/components/datepicker/datepicker-popup.d.ts +34 -0
  64. package/dist/components/datepicker/datepicker-popup.test.d.ts +4 -0
  65. package/dist/components/datepicker/datepicker-range.d.ts +12 -0
  66. package/dist/components/datepicker/datepicker-single.d.ts +8 -0
  67. package/dist/components/datepicker/datepicker-types.d.ts +6 -0
  68. package/dist/components/datepicker/datepicker-utils.d.ts +77 -0
  69. package/dist/components/datepicker/datepicker-utils.test.d.ts +1 -0
  70. package/dist/components/datepicker/datepicker.accessibility.test.d.ts +0 -0
  71. package/dist/components/datepicker/datepicker.core.test.d.ts +0 -0
  72. package/dist/components/datepicker/datepicker.d.ts +83 -0
  73. package/dist/components/datepicker/datepicker.input.test.d.ts +0 -0
  74. package/dist/components/datepicker/datepicker.selection.test.d.ts +0 -0
  75. package/dist/components/datepicker/datepicker.validation.test.d.ts +0 -0
  76. package/dist/components/datepicker/index.d.ts +6 -0
  77. package/dist/components/header/header-service.d.ts +86 -0
  78. package/dist/components/header/header-service.test.d.ts +18 -0
  79. package/dist/components/header/header-user-menu.d.ts +29 -0
  80. package/dist/components/header/header-utils.d.ts +6 -0
  81. package/dist/components/header/header.d.ts +52 -0
  82. package/dist/components/header/index.d.ts +5 -0
  83. package/dist/components/header/types.d.ts +59 -0
  84. package/dist/components/heading/heading.d.ts +28 -0
  85. package/dist/components/heading/heading.test.d.ts +0 -0
  86. package/dist/components/heading/index.d.ts +4 -0
  87. package/dist/components/helptext/helptext.d.ts +9 -0
  88. package/dist/components/helptext/helptext.test.d.ts +0 -0
  89. package/dist/components/helptext/index.d.ts +3 -0
  90. package/dist/components/icon/icon.d.ts +22 -0
  91. package/dist/components/icon/icon.test.d.ts +10 -0
  92. package/dist/components/icon/index.d.ts +3 -0
  93. package/dist/components/index.d.ts +45 -0
  94. package/dist/components/input-wrapper/index.d.ts +3 -0
  95. package/dist/components/input-wrapper/input-wrapper.d.ts +39 -0
  96. package/dist/components/input-wrapper/input-wrapper.test.d.ts +31 -0
  97. package/dist/components/link/index.d.ts +3 -0
  98. package/dist/components/link/link.d.ts +12 -0
  99. package/dist/components/link/link.test.d.ts +15 -0
  100. package/dist/components/linkcard/index.d.ts +4 -0
  101. package/dist/components/linkcard/linkcard.d.ts +19 -0
  102. package/dist/components/linkcard/linkcard.test.d.ts +9 -0
  103. package/dist/components/listbox/index.d.ts +4 -0
  104. package/dist/components/listbox/listbox.d.ts +64 -0
  105. package/dist/components/listbox/listbox.interaction.test.d.ts +10 -0
  106. package/dist/components/listbox/listbox.test.d.ts +10 -0
  107. package/dist/components/loader/index.d.ts +4 -0
  108. package/dist/components/loader/loader.d.ts +53 -0
  109. package/dist/components/loader/loader.test.d.ts +8 -0
  110. package/dist/components/messagebox/index.d.ts +4 -0
  111. package/dist/components/messagebox/messagebox.d.ts +21 -0
  112. package/dist/components/messagebox/messagebox.test.d.ts +8 -0
  113. package/dist/components/modal/index.d.ts +3 -0
  114. package/dist/components/modal/modal.d.ts +41 -0
  115. package/dist/components/progressbar/index.d.ts +4 -0
  116. package/dist/components/progressbar/progressbar.d.ts +49 -0
  117. package/dist/components/progressbar/progressbar.test.d.ts +8 -0
  118. package/dist/components/radiobutton/index.d.ts +3 -0
  119. package/dist/components/radiobutton/radiobutton.d.ts +24 -0
  120. package/dist/components/radiobutton/radiobutton.test.d.ts +28 -0
  121. package/dist/components/select/index.d.ts +4 -0
  122. package/dist/components/select/select.d.ts +48 -0
  123. package/dist/components/select/select.test.d.ts +21 -0
  124. package/dist/components/tabs/index.d.ts +5 -0
  125. package/dist/components/tabs/tabitem.d.ts +33 -0
  126. package/dist/components/tabs/tabs-context.d.ts +21 -0
  127. package/dist/components/tabs/tabs.d.ts +23 -0
  128. package/dist/components/tabs/tabs.test.d.ts +0 -0
  129. package/dist/components/tag/index.d.ts +4 -0
  130. package/dist/components/tag/tag.d.ts +44 -0
  131. package/dist/components/tag/tag.test.d.ts +8 -0
  132. package/dist/components/textarea/index.d.ts +3 -0
  133. package/dist/components/textarea/textarea.d.ts +16 -0
  134. package/dist/components/textarea/textarea.test.d.ts +27 -0
  135. package/dist/components/textinput/index.d.ts +3 -0
  136. package/dist/components/textinput/textinput.d.ts +21 -0
  137. package/dist/components/textinput/textinput.test.d.ts +32 -0
  138. package/dist/components/timepicker/index.d.ts +2 -0
  139. package/dist/components/timepicker/timepicker.d.ts +94 -0
  140. package/dist/components/timepicker/timepicker.test.d.ts +22 -0
  141. package/dist/consent.d.ts +1 -1
  142. package/dist/controllers/pkt-options-controller.d.ts +21 -0
  143. package/dist/controllers/pkt-slot-utils.d.ts +3 -0
  144. package/dist/datepicker.d.ts +1 -1
  145. package/dist/directives/slot-content.d.ts +128 -0
  146. package/dist/directives/slot-content.test.d.ts +0 -0
  147. package/dist/docs/backlink.d.ts +4 -0
  148. package/dist/docs/components/accordion.d.ts +5 -0
  149. package/dist/docs/components/alert.d.ts +7 -0
  150. package/dist/docs/components/backlink.d.ts +4 -0
  151. package/dist/docs/components/breadcrumbs.d.ts +8 -0
  152. package/dist/docs/components/button.d.ts +11 -0
  153. package/dist/docs/components/calendar.d.ts +4 -0
  154. package/dist/docs/components/card.d.ts +27 -0
  155. package/dist/docs/components/checkbox.d.ts +8 -0
  156. package/dist/docs/components/combobox.d.ts +11 -0
  157. package/dist/docs/components/comboboxdemo.d.ts +4 -0
  158. package/dist/docs/components/consent.d.ts +4 -0
  159. package/dist/docs/components/datepicker.d.ts +4 -0
  160. package/dist/docs/components/datepickermultiple.d.ts +4 -0
  161. package/dist/docs/components/form.d.ts +9 -0
  162. package/dist/docs/components/header-full.d.ts +23 -0
  163. package/dist/docs/components/header.d.ts +18 -0
  164. package/dist/docs/components/heading.d.ts +12 -0
  165. package/dist/docs/components/icon.d.ts +4 -0
  166. package/dist/docs/components/input-wrapper.d.ts +4 -0
  167. package/dist/docs/components/link.d.ts +4 -0
  168. package/dist/docs/components/linkcard.d.ts +4 -0
  169. package/dist/docs/components/loader.d.ts +4 -0
  170. package/dist/docs/components/messagebox.d.ts +4 -0
  171. package/dist/docs/components/modal.d.ts +14 -0
  172. package/dist/docs/components/progressbar.d.ts +9 -0
  173. package/dist/docs/components/radiobutton.d.ts +12 -0
  174. package/dist/docs/components/select.d.ts +10 -0
  175. package/dist/docs/components/slots.d.ts +35 -0
  176. package/dist/docs/components/tabs.d.ts +31 -0
  177. package/dist/docs/components/tag.d.ts +4 -0
  178. package/dist/docs/components/textarea.d.ts +4 -0
  179. package/dist/docs/components/textinput.d.ts +4 -0
  180. package/dist/docs/components/timepicker.d.ts +4 -0
  181. package/dist/docs/header.d.ts +14 -0
  182. package/dist/docs/punkt-docs.d.ts +12 -0
  183. package/dist/header.d.ts +1 -1
  184. package/dist/heading.d.ts +1 -1
  185. package/dist/helpers/converters.d.ts +9 -0
  186. package/dist/helptext.d.ts +1 -1
  187. package/dist/icon.d.ts +1 -1
  188. package/dist/index.d.ts +2 -1971
  189. package/dist/input-wrapper.d.ts +1 -1
  190. package/dist/link.d.ts +1 -1
  191. package/dist/linkcard.d.ts +1 -1
  192. package/dist/listbox.d.ts +1 -1
  193. package/dist/loader.d.ts +1 -1
  194. package/dist/messagebox.d.ts +1 -1
  195. package/dist/modal.d.ts +1 -1
  196. package/dist/progressbar.d.ts +1 -1
  197. package/dist/radiobutton.d.ts +1 -1
  198. package/dist/select.d.ts +1 -1
  199. package/dist/shared-types/aria.d.ts +65 -0
  200. package/dist/shared-types/booleanish.d.ts +13 -0
  201. package/dist/shared-types/calendar.d.ts +41 -0
  202. package/dist/shared-types/combobox.d.ts +34 -0
  203. package/dist/shared-types/datepicker.d.ts +46 -0
  204. package/dist/shared-types/form.d.ts +16 -0
  205. package/dist/shared-types/header.d.ts +88 -0
  206. package/dist/shared-types/heading.d.ts +9 -0
  207. package/dist/shared-types/index.d.ts +17 -0
  208. package/dist/shared-types/layout.d.ts +26 -0
  209. package/dist/shared-types/progressbar.d.ts +5 -0
  210. package/dist/shared-types/size.d.ts +18 -0
  211. package/dist/shared-types/skin.d.ts +24 -0
  212. package/dist/shared-types/timepicker.d.ts +20 -0
  213. package/dist/shared-utils/calendar/calendar-grid.d.ts +16 -0
  214. package/dist/shared-utils/calendar/date-validation.d.ts +22 -0
  215. package/dist/shared-utils/calendar/index.d.ts +10 -0
  216. package/dist/shared-utils/calendar/keyboard-navigation.d.ts +16 -0
  217. package/dist/shared-utils/calendar/selection-manager.d.ts +30 -0
  218. package/dist/shared-utils/combobox/index.d.ts +10 -0
  219. package/dist/shared-utils/combobox/input-utils.d.ts +38 -0
  220. package/dist/shared-utils/combobox/keyboard-navigation.d.ts +39 -0
  221. package/dist/shared-utils/combobox/option-utils.d.ts +50 -0
  222. package/dist/shared-utils/combobox/selection-manager.d.ts +71 -0
  223. package/dist/shared-utils/combobox/typeahead.d.ts +24 -0
  224. package/dist/shared-utils/date-utils.d.ts +138 -0
  225. package/dist/shared-utils/datepicker-utils.d.ts +73 -0
  226. package/dist/shared-utils/device-utils.d.ts +10 -0
  227. package/dist/shared-utils/timepicker/index.d.ts +6 -0
  228. package/dist/shared-utils/timepicker/options.d.ts +19 -0
  229. package/dist/shared-utils/timepicker/stepper.d.ts +20 -0
  230. package/dist/shared-utils/timepicker/time-utils.d.ts +19 -0
  231. package/dist/shared-utils/utils.d.ts +16 -0
  232. package/dist/shared-utils/value-utils.d.ts +17 -0
  233. package/dist/tabs.d.ts +1 -1
  234. package/dist/tag.d.ts +1 -1
  235. package/dist/tests/component-registry.d.ts +64 -0
  236. package/dist/tests/test-framework.d.ts +29 -0
  237. package/dist/textarea.d.ts +1 -1
  238. package/dist/textinput.d.ts +1 -1
  239. package/dist/timepicker.d.ts +1 -1
  240. package/dist/translations/no.json.d.ts +93 -0
  241. package/dist/types/index.d.ts +4 -0
  242. package/dist/types/size.d.ts +1 -0
  243. package/dist/types/typeUtils.d.ts +6 -0
  244. package/dist/utils/classutils.d.ts +12 -0
  245. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -1,1971 +1,2 @@
1
- import { Booleanish } from '../../../../../shared-types';
2
- import { Booleanish as Booleanish_2 } from '../../../../shared-types';
3
- import { IAriaAttributes } from '../../../../../shared-types';
4
- import { IDatepickerStrings } from '../../../../../shared-types/datepicker';
5
- import { IPktComboboxOption } from '../../../../../shared-types/combobox';
6
- import { LitElement } from 'lit';
7
- import { nothing } from 'lit';
8
- import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon';
9
- import { PropertyValues } from 'lit';
10
- import { ReactiveController } from 'lit';
11
- import { ReactiveControllerHost } from 'lit';
12
- import { Ref } from 'lit/directives/ref.js';
13
- import { Representing } from '../../../../../shared-types';
14
- import { TAccordionSkin } from '../../../../../shared-types';
15
- import { TAlertSkin } from '../../../../../shared-types';
16
- import { TAriaLive } from '../../../../../shared-types';
17
- import { TCardSkin } from '../../../../../shared-types';
18
- import { TemplateResult } from 'lit-html';
19
- import { TemplateResult as TemplateResult_2 } from 'lit';
20
- import { THeaderMenu } from '../../../../../shared-types';
21
- import { THeaderPosition } from '../../../../../shared-types';
22
- import { THeaderScrollBehavior } from '../../../../../shared-types';
23
- import { THeadingLevel } from '../../../../../shared-types';
24
- import { THeadingSize } from '../../../../../shared-types';
25
- import { THeadingWeight } from '../../../../../shared-types';
26
- import { THTMLButtonType } from '../../../../../shared-types';
27
- import { TLayout } from '../../../../../shared-types';
28
- import { TMessageboxSkin } from '../../../../../shared-types';
29
- import { TPktComboboxTagPlacement } from '../../../../../shared-types/combobox';
30
- import { TLogOutButtonPlacement as TPktHeaderLogOutButtonPlacement } from '../../../../../shared-types';
31
- import { TProgressbarRole } from '../../../../../shared-types';
32
- import { TProgressbarSkin } from '../../../../../shared-types';
33
- import { TProgressbarStatusPlacement } from '../../../../../shared-types';
34
- import { TProgressbarStatusType } from '../../../../../shared-types';
35
- import { TProgressbarTitlePosition } from '../../../../../shared-types';
36
- import { TSlotMenuVariant } from '../../../../../shared-types';
37
- import { User } from '../../../../../shared-types';
38
- import { UserMenuItem } from '../../../../../shared-types';
39
-
40
- /**
41
- * Base class for PktCombobox.
42
- * Declares all reactive properties, state, refs, and simple helpers.
43
- */
44
- declare class ComboboxBase extends PktInputElement {
45
- constructor();
46
- value: string | string[];
47
- options: IPktComboboxOption[];
48
- defaultOptions: IPktComboboxOption[];
49
- allowUserInput: boolean;
50
- typeahead: boolean;
51
- includeSearch: boolean;
52
- searchPlaceholder: string;
53
- multiple: boolean;
54
- maxlength: number | null;
55
- displayValueAs: string;
56
- tagPlacement: TPktComboboxTagPlacement | null;
57
- isOpen: boolean;
58
- _options: IPktComboboxOption[];
59
- protected _value: string[];
60
- protected _isOptionsOpen: boolean;
61
- protected _userInfoMessage: string;
62
- protected _addValueText: string | null;
63
- protected _maxIsReached: boolean;
64
- protected _search: string;
65
- protected _inputFocus: boolean;
66
- protected _internalValueSync: boolean;
67
- protected _optionsFromSlot: boolean;
68
- protected _lastSlotGeneration: number;
69
- /** When true, the next handleFocus call will not reopen the dropdown. */
70
- protected _suppressNextOpen: boolean;
71
- protected readonly inputRef: Ref<HTMLInputElement>;
72
- protected readonly triggerRef: Ref<HTMLDivElement>;
73
- protected readonly listboxRef: Ref<PktListbox>;
74
- protected get _hasTextInput(): boolean;
75
- protected get _selectionDescription(): string | undefined;
76
- /**
77
- * Focuses the appropriate trigger element after closing the listbox.
78
- * Select-only: the combobox input div. Editable: the text input.
79
- */
80
- protected focusTrigger(): void;
81
- /**
82
- * Parses the value prop into an internal string array.
83
- */
84
- protected parseValue(): string[];
85
- /**
86
- * Updates the _maxIsReached state flag.
87
- */
88
- protected updateMaxReached(): void;
89
- /**
90
- * Syncs the public value property from internal _value state and dispatches
91
- * events if the value content changed. Always sets this.value as a string
92
- * to prevent array→string reflect cascades.
93
- */
94
- protected syncValueAndDispatch(oldInternal: string[]): void;
95
- /**
96
- * Override onChange to skip the base class touched guard.
97
- * The base class returns early on the first call (setting touched = true but not
98
- * dispatching events). Combobox needs consistent event dispatch regardless of
99
- * touched state.
100
- */
101
- protected onChange(value: string | string[]): void;
102
- /**
103
- * No-op override of the base class valueChanged.
104
- * The base class version sets both this.value AND this._value, which creates
105
- * an infinite _value → valueChanged → value → parseValue → _value loop.
106
- * Combobox handles value sync and event dispatch in syncValueAndDispatch() instead.
107
- */
108
- protected valueChanged(): void;
109
- }
110
-
111
- /**
112
- * Event handler layer for PktCombobox.
113
- * Handles user interactions: input, focus, keyboard, clicks, tags.
114
- */
115
- declare class ComboboxHandlers extends ComboboxValue {
116
- protected handleInput(e: InputEvent): void;
117
- protected handleFocus(): void;
118
- protected handleFocusOut(e: FocusEvent): void;
119
- /**
120
- * Shared close logic used by both focusout and outside-click handlers.
121
- * Processes any pending input value, then closes the dropdown.
122
- */
123
- protected closeAndProcessInput(): void;
124
- protected handleBlur(): void;
125
- protected handleInputClick(e: MouseEvent): void;
126
- protected handlePlaceholderClick(e: MouseEvent): void;
127
- protected handleSelectOnlyKeydown(e: KeyboardEvent): void;
128
- protected handleOptionToggled(e: CustomEvent): void;
129
- protected handleSearch(e: CustomEvent): void;
130
- protected handleInputKeydown(e: KeyboardEvent): void;
131
- protected handleTagRemove(value: string | null): void;
132
- protected getInsideTags(): HTMLElement[];
133
- protected focusTag(index: number): void;
134
- protected resetTagTabindices(): void;
135
- protected handleTagKeydown(e: KeyboardEvent, index: number): void;
136
- protected checkForMatches(): void;
137
- }
138
-
139
- /**
140
- * Value management layer for PktCombobox.
141
- * Handles selection, deselection, user-added values, and input reset.
142
- */
143
- declare class ComboboxValue extends ComboboxBase {
144
- toggleValue(value: string | null): void;
145
- protected setSelected(value: string | null): void;
146
- protected removeSelected(value: string | null): void;
147
- protected addAllOptions(): void;
148
- protected removeAllSelected(): void;
149
- protected addValue(): void;
150
- protected removeValue(value: string | null): void;
151
- protected addNewUserValue(value: string | null): void;
152
- protected resetComboboxInput(shouldResetInput?: boolean): void;
153
- protected removeLastValue(e: Event): void;
154
- }
155
-
156
- /**
157
- * We define all props as optional. Native HTML attributes are optional by default,
158
- * but the TS definition require either null or value. This way we can support showing a value as optional
159
- * and define a default value on the element itself
160
- */
161
- declare type ElementProps<Element, PropKeys extends keyof Element> = Partial<Pick<Element, PropKeys>>;
162
-
163
- export declare interface IBreadcrumbItem {
164
- text: string;
165
- href: string;
166
- }
167
-
168
- export declare interface IPktAccordion {
169
- compact?: boolean;
170
- skin?: TPktAccordionSkin;
171
- ariaLabelledBy?: string;
172
- name?: string;
173
- }
174
-
175
- /**
176
- * @param toggleProps
177
- *
178
- * @description Send in an "isOpen" boolean and "onToggleClick" function
179
- * to override the automatic toggling
180
- */
181
- export declare interface IPktAccordionItem {
182
- defaultOpen?: boolean;
183
- id: string;
184
- title: string;
185
- skin?: TPktAccordionSkin;
186
- compact?: boolean;
187
- isOpen?: boolean;
188
- name?: string | undefined;
189
- }
190
-
191
- declare interface IPktAlert {
192
- skin?: TAlertSkin;
193
- closeAlert?: boolean;
194
- title?: string;
195
- date?: string | null;
196
- ariaLive?: TAriaLive | null;
197
- compact?: boolean;
198
- role?: string;
199
- }
200
-
201
- export declare interface IPktBackLink {
202
- href?: string;
203
- text?: string;
204
- ariaLabel?: string;
205
- }
206
-
207
- export declare interface IPktBreadcrumbs {
208
- breadcrumbs: IBreadcrumbItem[];
209
- }
210
-
211
- export declare interface IPktButton {
212
- iconName?: PktIconName;
213
- secondIconName?: PktIconName;
214
- iconPath?: string;
215
- secondIconPath?: string;
216
- mode?: TPktButtonMode;
217
- size?: TPktButtonSize;
218
- fullWidth?: Booleanish;
219
- fullWidthOnMobile?: Booleanish;
220
- color?: TPktButtonColor;
221
- skin?: TPktButtonSkin;
222
- variant?: TPktButtonVariant;
223
- state?: TPktButtonState;
224
- type?: TPktButtonType;
225
- isLoading?: Booleanish;
226
- disabled?: Booleanish;
227
- loadingAnimationPath?: string;
228
- }
229
-
230
- declare interface IPktCard {
231
- ariaLabel?: IAriaAttributes['aria-label'];
232
- metaLead?: string | null;
233
- metaTrail?: string | null;
234
- layout?: TLayout;
235
- heading?: string;
236
- headingLevel?: IPktHeading['level'];
237
- image?: {
238
- src: string;
239
- alt: string;
240
- };
241
- imageShape?: TCardImageShape;
242
- clickCardLink?: string | null;
243
- openLinkInNewTab?: boolean | null;
244
- borderOnHover?: boolean | null;
245
- padding?: TCardPadding;
246
- skin?: TCardSkin;
247
- subheading?: string;
248
- tagPosition?: TCardTagPosition;
249
- tags?: (Omit<IPktTag, 'closeTag'> & {
250
- text: string;
251
- })[];
252
- }
253
-
254
- export declare interface IPktCombobox {
255
- allowUserInput?: boolean;
256
- typeahead?: boolean;
257
- disabled?: boolean;
258
- displayValueAs?: string;
259
- errorMessage?: string;
260
- fullwidth?: boolean;
261
- hasError?: boolean;
262
- helptext?: string | null;
263
- helptextDropdown?: string | null;
264
- helptextDropdownButton?: string | null;
265
- id?: string;
266
- includeSearch?: boolean;
267
- label?: string | null;
268
- maxlength?: number | null;
269
- minlength?: number | null;
270
- multiple?: boolean;
271
- name?: string;
272
- optionalTag?: boolean;
273
- optionalText?: string;
274
- options?: IPktComboboxOption[];
275
- defaultOptions?: IPktComboboxOption[];
276
- placeholder?: string | null;
277
- requiredTag?: boolean;
278
- requiredText?: string;
279
- searchPlaceholder?: string;
280
- tagPlacement?: TPktComboboxTagPlacement | null;
281
- tagText?: string | null;
282
- value?: string | string[];
283
- isOpen?: boolean;
284
- }
285
-
286
- export { IPktComboboxOption }
287
-
288
- export declare interface IPktConsent {
289
- devMode?: boolean;
290
- cookieDomain?: string | null;
291
- cookieSecure?: string | null;
292
- cookieExpiryDays?: string | null;
293
- hotjarId?: string | null;
294
- googleAnalyticsId?: string | null;
295
- i18nLanguage?: string;
296
- triggerType?: 'button' | 'link' | 'footerlink' | 'icon' | null;
297
- triggerText?: string | null;
298
- }
299
-
300
- /**
301
- * Interface for the Header component props
302
- */
303
- export declare interface IPktHeader {
304
- /** Hide the Oslo logo */
305
- hideLogo?: Booleanish;
306
- /** Logo link URL */
307
- logoLink?: string;
308
- /** Service name displayed in the header */
309
- serviceName?: string;
310
- /** Service link URL */
311
- serviceLink?: string;
312
- /** Use compact header height */
313
- compact?: Booleanish;
314
- /** Header position. 'fixed' fixes to top of viewport, 'relative' follows document flow. Default: 'fixed' */
315
- position?: THeaderPosition;
316
- /** Scroll behavior. 'hide' hides header on scroll down, 'none' keeps it visible. Default: 'hide' */
317
- scrollBehavior?: THeaderScrollBehavior;
318
- /** User object for logged-in user */
319
- user?: IPktHeaderUser;
320
- /** User menu items */
321
- userMenu?: IPktHeaderUserMenuItem[];
322
- /** Representation object */
323
- representing?: IPktHeaderRepresenting;
324
- /** Allow user to change representation */
325
- canChangeRepresentation?: Booleanish;
326
- /** Logout button placement */
327
- logOutButtonPlacement?: TPktHeaderLogOutButtonPlacement;
328
- /** Whether there's a logout handler attached (required for logout button to show) */
329
- hasLogOut?: Booleanish;
330
- /** Show search field */
331
- showSearch?: Booleanish;
332
- /** Search field placeholder */
333
- searchPlaceholder?: string;
334
- /** Controlled search value */
335
- searchValue?: string;
336
- /** Custom breakpoint for responsive behavior in pixels. Default: 1024 */
337
- mobileBreakpoint?: number;
338
- /** Custom breakpoint for tablet responsive behavior in pixels. Default: 1280 */
339
- tabletBreakpoint?: number;
340
- /** Which menu is initially open */
341
- openedMenu?: THeaderMenu;
342
- /** Variant for the slot menu button. Default: 'icon-only' */
343
- slotMenuVariant?: TSlotMenuVariant;
344
- /** Text for the slot menu button. Default: 'Meny' */
345
- slotMenuText?: string;
346
- }
347
-
348
- export declare type IPktHeaderRepresenting = Representing;
349
-
350
- export declare type IPktHeaderUser = User;
351
-
352
- declare interface IPktHeaderUserMenu {
353
- user: IPktHeaderUser;
354
- formattedLastLoggedIn?: string;
355
- representing?: IPktHeaderRepresenting;
356
- userMenu?: IPktHeaderUserMenuItem[];
357
- canChangeRepresentation?: Booleanish;
358
- logoutOnClick?: Booleanish;
359
- }
360
-
361
- export declare type IPktHeaderUserMenuItem = UserMenuItem<PktIconName>;
362
-
363
- export declare interface IPktHeading {
364
- size?: TPktHeadingSize;
365
- level?: TPktHeadingLevel;
366
- weight?: TPktHeadingWeight;
367
- visuallyHidden?: boolean;
368
- align?: 'start' | 'center' | 'end';
369
- }
370
-
371
- declare interface IPktLinkCard {
372
- title?: string;
373
- href?: string;
374
- iconName?: string;
375
- external?: boolean;
376
- openInNewTab?: boolean;
377
- skin?: TLinkCardSkin;
378
- }
379
-
380
- declare interface IPktListbox {
381
- options: IPktComboboxOption[];
382
- isOpen: boolean;
383
- disabled: boolean;
384
- includeSearch: boolean;
385
- isMultiSelect: boolean;
386
- allowUserInput: boolean;
387
- maxIsReached: boolean;
388
- customUserInput: string | null;
389
- searchPlaceholder: string | null;
390
- searchValue: string | null;
391
- maxLength: number;
392
- userMessage: string | null;
393
- }
394
-
395
- export declare interface IPktLoader {
396
- /**
397
- * The `delay` prop controls how much time the loading should be given before the loader is displayed.
398
- * This is handy for situations where the load time might be so short that loader is not necessary.
399
- * Delay time is in milliseconds.
400
- */
401
- delay?: number;
402
- /**
403
- * The `inline` prop decides whether the loader should be displayed inline or not.
404
- */
405
- inline?: boolean;
406
- /**
407
- * The boolean 'isLoading' decides whether the loader or the children will be displayed.
408
- * If set to false, the children will be displayed.
409
- */
410
- isLoading?: boolean;
411
- /**
412
- * The message to display when the loader is loading.
413
- */
414
- message?: string | null;
415
- /**
416
- * The size of the loader. Default is "medium".
417
- */
418
- size?: TPktSize;
419
- /**
420
- * The variant of the loader. Default is "shapes" which is the OSLO wave loader.
421
- * Other variants are "blue" and "rainbow" which are spinner variants.
422
- */
423
- variant?: TPktLoaderVariant;
424
- /**
425
- * Override path to loading animations.
426
- */
427
- loadingAnimationPath?: string;
428
- }
429
-
430
- declare interface IPktMessagebox {
431
- skin?: TMessageboxSkin;
432
- title?: string;
433
- compact?: boolean;
434
- closable?: boolean;
435
- }
436
-
437
- declare interface IPktModal {
438
- open?: boolean;
439
- headingText?: string;
440
- removePadding?: boolean;
441
- hideCloseButton?: boolean;
442
- closeOnBackdropClick?: boolean;
443
- closeButtonSkin?: 'blue' | 'yellow-filled';
444
- size?: TPktSize;
445
- variant?: 'dialog' | 'drawer';
446
- drawerPosition?: 'left' | 'right';
447
- transparentBackdrop?: boolean;
448
- }
449
-
450
- export declare interface IPktProgressbar {
451
- ariaLabel?: string | null;
452
- ariaLabelledby?: string | null;
453
- ariaLive?: TAriaLive | null;
454
- ariaValueText?: string | null;
455
- id?: string | null;
456
- role?: TProgressbarRole;
457
- skin?: TProgressbarSkin;
458
- statusPlacement?: TProgressbarStatusPlacement;
459
- statusType?: TProgressbarStatusType;
460
- title?: string | null;
461
- titlePosition?: TProgressbarTitlePosition;
462
- valueCurrent: number;
463
- valueMax?: number;
464
- valueMin?: number;
465
- }
466
-
467
- declare interface IPktSelect {
468
- options: TSelectOption[];
469
- value: string;
470
- }
471
-
472
- export declare interface IPktTabItem {
473
- active?: boolean;
474
- disabled?: boolean;
475
- href?: string;
476
- icon?: string;
477
- controls?: string;
478
- tag?: string;
479
- tagSkin?: TTabItemSkin;
480
- index?: number;
481
- }
482
-
483
- export declare interface IPktTabs {
484
- arrowNav?: boolean;
485
- disableArrowNav?: boolean;
486
- }
487
-
488
- declare interface IPktTag {
489
- closeTag?: boolean;
490
- size?: TPktSize;
491
- skin?: TTagSkin;
492
- textStyle?: string | null;
493
- iconName?: PktIconName;
494
- type?: TTagType;
495
- ariaLabel?: IAriaAttributes['aria-label'] | null;
496
- }
497
-
498
- export declare interface IPktTimepicker {
499
- value?: string;
500
- min?: string;
501
- max?: string;
502
- step?: number;
503
- name?: string;
504
- id?: string;
505
- disabled?: boolean;
506
- required?: boolean;
507
- hidePicker?: boolean;
508
- stepArrows?: boolean;
509
- fullwidth?: boolean;
510
- label?: string | null;
511
- helptext?: string;
512
- helptextDropdown?: string;
513
- helptextDropdownButton?: string | null;
514
- hasError?: boolean;
515
- errorMessage?: string;
516
- requiredTag?: boolean;
517
- requiredText?: string;
518
- optionalTag?: boolean;
519
- optionalText?: string;
520
- tagText?: string | null;
521
- inline?: boolean;
522
- }
523
-
524
- export declare class PktAccordion extends LitElement implements IPktAccordion {
525
- ariaLabelledBy: string;
526
- compact: boolean;
527
- skin: TPktAccordionSkin;
528
- name: string;
529
- updated(changedProperties: Map<string, any>): void;
530
- private updateAccordionItemNames;
531
- firstUpdated(): void;
532
- render(): TemplateResult<1>;
533
- }
534
-
535
- export declare class PktAccordionItem extends PktElementWithSlot implements IPktAccordionItem {
536
- defaultOpen: boolean;
537
- title: string;
538
- skin: TPktAccordionSkin | undefined;
539
- compact: boolean;
540
- isOpen: boolean;
541
- name: string | undefined;
542
- accordionItemRef: Ref<HTMLDivElement>;
543
- constructor();
544
- protected firstUpdated(_changedProperties: PropertyValues): void;
545
- render(): TemplateResult<1>;
546
- }
547
-
548
- export declare class PktAlert extends PktElementWithSlot implements IPktAlert {
549
- constructor();
550
- compact: boolean;
551
- title: string;
552
- skin: TAlertSkin;
553
- ariaLive: TAriaLive;
554
- ariaLiveAttr: TAriaLive | null;
555
- closeAlert: boolean;
556
- date: string | null;
557
- role: string;
558
- _isClosed: boolean;
559
- connectedCallback(): void;
560
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
561
- protected updated(_changedProperties: PropertyValues): void;
562
- render(): TemplateResult<1>;
563
- private close;
564
- }
565
-
566
- export declare class PktBackLink extends PktElement<IPktBackLink> implements IPktBackLink {
567
- href: string;
568
- text: string;
569
- ariaLabel: string;
570
- attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
571
- render(): TemplateResult<1>;
572
- }
573
-
574
- export declare class PktBreadcrumbs extends PktElement implements IPktBreadcrumbs {
575
- breadcrumbs: IBreadcrumbItem[];
576
- private handleLinkClick;
577
- render(): typeof nothing | TemplateResult<1>;
578
- }
579
-
580
- export declare class PktButton extends PktElementWithSlot<IPktButton> implements IPktButton {
581
- iconName: string;
582
- secondIconName: string;
583
- iconPath: string | undefined;
584
- secondIconPath: string | undefined;
585
- mode?: TPktButtonMode;
586
- size: TPktButtonSize;
587
- fullWidth: Booleanish;
588
- fullWidthOnMobile: Booleanish;
589
- color?: TPktButtonColor;
590
- skin: TPktButtonSkin;
591
- variant: TPktButtonVariant;
592
- state?: TPktButtonState;
593
- type: TPktButtonType;
594
- form: string | undefined;
595
- isLoading: Booleanish;
596
- disabled: Booleanish;
597
- loadingAnimationPath: string | undefined;
598
- connectedCallback(): void;
599
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
600
- protected firstUpdated(_changedProperties: PropertyValues): void;
601
- render(): TemplateResult<1>;
602
- }
603
-
604
- export declare class PktCalendar extends PktElement {
605
- selected: string | string[];
606
- multiple: boolean;
607
- maxMultiple: number;
608
- range: boolean;
609
- earliest: string | null;
610
- latest: string | null;
611
- excludedates: Date[];
612
- excludeweekdays: string[];
613
- weeknumbers: boolean;
614
- withcontrols: boolean;
615
- currentmonth: Date | null;
616
- today: string | null;
617
- dayStrings: string[];
618
- dayStringsLong: string[];
619
- monthStrings: string[];
620
- weekString: string;
621
- prevMonthString: string;
622
- nextMonthString: string;
623
- private _selected;
624
- private inRange;
625
- private rangeHovered;
626
- private get todayDate();
627
- private year;
628
- private month;
629
- private week;
630
- private currentmonthtouched;
631
- private focusedDate;
632
- private selectableDates;
633
- private tabIndexSet;
634
- /**
635
- * Lifecycle methods
636
- */
637
- protected firstUpdated(_changedProperties: PropertyValues): void;
638
- disconnectedCallback(): void;
639
- updated(changedProperties: PropertyValues): void;
640
- /**
641
- * Date and selection management
642
- */
643
- private convertSelected;
644
- private setCurrentMonth;
645
- /**
646
- * Keyboard navigation
647
- */
648
- private handleKeydown;
649
- private handleArrowKey;
650
- /**
651
- * Rendering methods
652
- */
653
- render(): TemplateResult_2<1>;
654
- private renderMonthNavButton;
655
- private renderDayNames;
656
- private renderMonthNav;
657
- private getDayViewData;
658
- private getDateConstraints;
659
- private isDayDisabled;
660
- private calculateTabIndex;
661
- private getDayCellClasses;
662
- private getDayButtonClasses;
663
- private handleDayFocus;
664
- private renderDayView;
665
- private renderEmptyDayCell;
666
- private renderWeekRow;
667
- private renderCalendarBody;
668
- /**
669
- * Date validation
670
- */
671
- private isExcluded;
672
- /**
673
- * Month navigation
674
- */
675
- isPrevMonthAllowed(): boolean;
676
- private prevMonth;
677
- isNextMonthAllowed(): boolean;
678
- private nextMonth;
679
- private changeMonth;
680
- /**
681
- * Date selection logic
682
- */
683
- private emptySelected;
684
- private normalizeSelected;
685
- addToSelected(selectedDate: Date): void;
686
- removeFromSelected(selectedDate: Date): void;
687
- toggleSelected(selectedDate: Date): void;
688
- private isRangeAllowed;
689
- private handleRangeSelect;
690
- private handleRangeHover;
691
- handleDateSelect(selectedDate: Date | null): Promise<void>;
692
- /**
693
- * Focus management and event handlers
694
- */
695
- focusOnCurrentDate(): void;
696
- closeEvent(e: FocusEvent): void;
697
- close(): void;
698
- }
699
-
700
- export declare class PktCard extends PktElementWithSlot implements IPktCard {
701
- ariaLabel: string;
702
- metaLead: string | null;
703
- borderOnHover: boolean;
704
- clickCardLink: IPktCard['clickCardLink'];
705
- metaTrail: string | null;
706
- layout: TLayout;
707
- heading: string;
708
- headinglevel: IPktHeading['level'];
709
- image: {
710
- src: string;
711
- alt: string;
712
- };
713
- imageShape: TCardImageShape;
714
- openLinkInNewTab: boolean;
715
- padding: TCardPadding;
716
- skin: TCardSkin;
717
- subheading: string;
718
- tagPosition: 'top' | 'bottom';
719
- tags: (Omit<IPktTag, 'closeTag'> & {
720
- text: string;
721
- })[];
722
- connectedCallback(): void;
723
- render(): TemplateResult<1>;
724
- renderImage(): TemplateResult<1>;
725
- renderHeading(): TemplateResult<1>;
726
- renderLinkHeading(): TemplateResult<1>;
727
- renderSubheading(): TemplateResult<1>;
728
- renderHeader(): TemplateResult<1>;
729
- renderTags(): TemplateResult<1>;
730
- renderSlot(): TemplateResult<1>;
731
- renderMetadata(): TemplateResult<1>;
732
- }
733
-
734
- export declare class PktCheckbox extends PktInputElement<Props_3> {
735
- inputRef: Ref<HTMLInputElement>;
736
- value: string;
737
- checkHelptext: string | null;
738
- defaultChecked: boolean;
739
- hasTile: boolean;
740
- isSwitch: boolean;
741
- labelPosition: 'right' | 'left';
742
- hideLabel: boolean;
743
- checked: boolean | string | null;
744
- indeterminate: boolean | 'true' | 'false' | '';
745
- type: string;
746
- tagText: string | null;
747
- optionalTag: boolean;
748
- optionalText: string;
749
- requiredTag: boolean;
750
- requiredText: string;
751
- connectedCallback(): void;
752
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
753
- protected firstUpdated(_changedProperties: PropertyValues): void;
754
- protected updated(changedProperties: PropertyValues): void;
755
- render(): TemplateResult<1>;
756
- private handleClick;
757
- private handleChange;
758
- private toggleChecked;
759
- }
760
-
761
- export declare class PktCombobox extends ComboboxHandlers implements IPktCombobox {
762
- private handleBodyClick;
763
- connectedCallback(): void;
764
- protected willUpdate(changedProperties: Map<PropertyKey, unknown>): void;
765
- disconnectedCallback(): void;
766
- firstUpdated(changedProperties: PropertyValues): void;
767
- updated(changedProperties: PropertyValues): void;
768
- /**
769
- * Override form reset to properly restore combobox state.
770
- * The base class deselects all options and sets value/defaultValue, but
771
- * combobox needs to re-sync _options with the restored values and clean up
772
- * user-added options and UI state.
773
- */
774
- protected formResetCallback(): void;
775
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
776
- render(): TemplateResult<1>;
777
- private renderInputField;
778
- private renderSingleOrMultipleValues;
779
- private renderValueTag;
780
- }
781
-
782
- export declare class PktConsent extends PktElement<IPktConsent> implements IPktConsent {
783
- private _cookieEventHandler?;
784
- devMode: boolean;
785
- hotjarId: string | null;
786
- googleAnalyticsId: string | null;
787
- cookieDomain: string | null;
788
- cookieSecure: string | null;
789
- cookieExpiryDays: string | null;
790
- triggerType: 'button' | 'link' | 'footerlink' | 'icon' | null;
791
- triggerText: string | null;
792
- i18nLanguage: string;
793
- constructor();
794
- connectedCallback(): void;
795
- disconnectedCallback(): void;
796
- returnJsonOrObject(obj: any): any;
797
- emitCookieConsents(consent: any): void;
798
- protected firstUpdated(_changedProperties: PropertyValues): Promise<void>;
799
- triggerInit(): void;
800
- openModal(e: Event): void;
801
- render(): TemplateResult<1>;
802
- }
803
-
804
- export declare class PktDatepicker extends PktInputElement<Props_4> {
805
- /**
806
- * Element attributes and properties
807
- */
808
- private _valueProperty;
809
- private _valueProcessing;
810
- datepickerPopupRef: Ref<PktDatepickerPopup>;
811
- get value(): string;
812
- set value(newValue: string | string[]);
813
- _value: string[];
814
- label: string;
815
- dateformat: string;
816
- multiple: boolean;
817
- maxlength: number | null;
818
- range: boolean;
819
- showRangeLabels: boolean;
820
- min: string | null;
821
- max: string | null;
822
- weeknumbers: boolean;
823
- withcontrols: boolean;
824
- excludedates: string[];
825
- excludeweekdays: string[];
826
- currentmonth: string | null;
827
- today: string | null;
828
- calendarOpen: boolean;
829
- timezone: string;
830
- inputClasses: {};
831
- /**
832
- * Computed properties
833
- */
834
- get inputType(): string;
835
- /**
836
- * Housekeeping / lifecycle methods
837
- */
838
- connectedCallback(): void;
839
- disconnectedCallback(): void;
840
- onInput(): void;
841
- valueChanged(newValue: string | null, oldValue: string | null): void;
842
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
843
- updated(changedProperties: PropertyValues): void;
844
- /**
845
- * Element references
846
- */
847
- get inputRef(): Ref<HTMLInputElement>;
848
- get inputRefTo(): Ref<HTMLInputElement>;
849
- calRef: Ref<PktCalendar>;
850
- popupRef: Ref<HTMLDivElement>;
851
- singleInputRef: Ref<PktDatepickerSingle>;
852
- rangeInputRef: Ref<PktDatepickerRange>;
853
- multipleInputRef: Ref<PktDatepickerMultiple>;
854
- get currentInputElement(): HTMLInputElement | undefined;
855
- get currentInputElementTo(): HTMLInputElement | undefined;
856
- get currentButtonElement(): HTMLButtonElement | undefined;
857
- get btnRef(): Ref<HTMLButtonElement>;
858
- /**
859
- * Rendering
860
- */
861
- renderInput(): TemplateResult<1>;
862
- renderRangeInput(): TemplateResult<1>;
863
- renderMultipleInput(): TemplateResult<1>;
864
- renderCalendar(): TemplateResult<1>;
865
- render(): TemplateResult<1>;
866
- /**
867
- * Handlers
868
- */
869
- handleCalendarPosition(): void;
870
- addToSelected: (e: Event | KeyboardEvent) => void;
871
- showCalendar(): Promise<void>;
872
- hideCalendar(): void;
873
- toggleCalendar(e: Event): Promise<void>;
874
- clearInputValue(): void;
875
- }
876
-
877
- /**
878
- * Abstract base class for datepicker input components
879
- *
880
- * Consolidates shared properties, methods, and event dispatchers
881
- * used by all three datepicker input types (single, multiple, range).
882
- *
883
- * Subclasses must implement:
884
- * - `strings` property with component-specific defaults
885
- * - `render()` method with component-specific template
886
- */
887
- declare abstract class PktDatepickerBase extends PktElement {
888
- inputType: string;
889
- id: string;
890
- min?: string;
891
- max?: string;
892
- placeholder?: string;
893
- readonly: boolean;
894
- disabled: boolean;
895
- inputClasses: Record<string, boolean>;
896
- internals?: ElementInternals;
897
- abstract strings: IDatepickerStrings;
898
- inputRef: Ref<HTMLInputElement>;
899
- btnRef: Ref<HTMLButtonElement>;
900
- get inputElement(): HTMLInputElement | undefined;
901
- get buttonElement(): HTMLButtonElement | undefined;
902
- get isInputReadonly(): boolean;
903
- protected dispatchToggleCalendar(e: Event): void;
904
- protected dispatchInput(e: Event): void;
905
- protected dispatchFocus(): void;
906
- protected dispatchBlur(e: FocusEvent): void;
907
- protected dispatchChange(e: Event): void;
908
- protected renderCalendarButton(): TemplateResult_2;
909
- createRenderRoot(): this;
910
- abstract render(): TemplateResult_2;
911
- }
912
-
913
- declare class PktDatepickerMultiple extends PktDatepickerBase {
914
- value: string[];
915
- maxlength?: number;
916
- strings: IDatepickerStrings;
917
- get isInputDisabled(): boolean;
918
- private dispatchAddToSelected;
919
- render(): TemplateResult<1>;
920
- }
921
-
922
- declare class PktDatepickerPopup extends PktElement {
923
- open: boolean;
924
- multiple: boolean;
925
- range: boolean;
926
- weeknumbers: boolean;
927
- withcontrols: boolean;
928
- maxMultiple: number | null;
929
- selected: string[];
930
- earliest: string | null;
931
- latest: string | null;
932
- excludedates: string[];
933
- excludeweekdays: string[];
934
- currentmonth: string | null;
935
- today: string | null;
936
- private _hasBeenOpened;
937
- popupRef: Ref<HTMLElement>;
938
- calendarRef: Ref<HTMLElement>;
939
- firstUpdated(): void;
940
- updated(changedProperties: PropertyValues): void;
941
- disconnectedCallback(): void;
942
- handleDocumentClick: (e: MouseEvent) => void;
943
- handleDocumentKeydown: (e: KeyboardEvent) => void;
944
- show(): void;
945
- hide(): void;
946
- toggle(): void;
947
- contains(node: Node | null): boolean;
948
- focusOnCurrentDate(): void;
949
- addToSelected(e: Event, min?: string | null, max?: string | null): void;
950
- handleDateSelect(date: Date): Promise<void> | undefined;
951
- render(): TemplateResult<1>;
952
- }
953
-
954
- declare class PktDatepickerRange extends PktDatepickerBase {
955
- value: string[];
956
- label: string;
957
- showRangeLabels: boolean;
958
- strings: IDatepickerStrings;
959
- inputRefTo: Ref<HTMLInputElement>;
960
- get inputElementTo(): HTMLInputElement | undefined;
961
- render(): TemplateResult<1>;
962
- }
963
-
964
- declare class PktDatepickerSingle extends PktDatepickerBase {
965
- value: string;
966
- strings: IDatepickerStrings;
967
- private dispatchManageValidity;
968
- render(): TemplateResult<1>;
969
- }
970
-
971
- /**
972
- * OBS! `dateformat` er standard formatteringsstreng for visning av datoer.
973
- * Denne brukes for å sette "menneskeleselig" format på datoene i tags.
974
- *
975
- * Følger denne unicode-standarden:
976
- * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
977
- */
978
- export declare class PktDateTags extends PktElement {
979
- dates: TISODate[];
980
- dateformat: string;
981
- className: string;
982
- idBase: string;
983
- render(): TemplateResult<1>;
984
- }
985
-
986
- /**
987
- * Base class for Punkt light DOM elements
988
- * This class extends PktShadowElement but renders in light DOM instead of shadow DOM
989
- * @extends PktShadowElement
990
- */
991
- declare class PktElement<T = {}> extends PktShadowElement<T> {
992
- /**
993
- * Make sure the component renders in light DOM instead of shadow DOM
994
- */
995
- createRenderRoot(): this;
996
- }
997
-
998
- /**
999
- * Base class for Punkt light DOM elements that use the slotContent directive.
1000
- * Extends PktElement with slot content collection and distribution.
1001
- *
1002
- * Use this instead of PktElement when the component's template uses slotContent().
1003
- * @extends PktElement
1004
- */
1005
- declare class PktElementWithSlot<T = {}> extends PktElement<T> {
1006
- /**
1007
- * Pre-collect children before Lit's first render clears them.
1008
- * This ensures slotContent() has access to the original children.
1009
- */
1010
- connectedCallback(): void;
1011
- /**
1012
- * Checks if a slot has content distributed to it via the slotContent directive.
1013
- *
1014
- * @param slotName - Name of the slot. Omit for the default slot.
1015
- */
1016
- hasSlotContent(slotName?: string): boolean;
1017
- }
1018
-
1019
- /**
1020
- * PktHeader - Main header component for Oslo kommune services
1021
- *
1022
- * This component provides a complete header solution with:
1023
- * - Logo and service name
1024
- * - User menu with login/logout functionality
1025
- * - Search functionality
1026
- * - Responsive mobile menu
1027
- * - Fixed positioning with scroll-to-hide
1028
- *
1029
- * TODO: Add `type` prop to switch between `service` and `global` header types
1030
- */
1031
- export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements IPktHeader {
1032
- serviceName?: string;
1033
- serviceLink?: string;
1034
- logoLink?: string;
1035
- searchPlaceholder: string;
1036
- searchValue: string;
1037
- mobileBreakpoint: number;
1038
- tabletBreakpoint: number;
1039
- openedMenu: THeaderMenu;
1040
- logOutButtonPlacement: TPktHeaderLogOutButtonPlacement;
1041
- position: THeaderPosition;
1042
- scrollBehavior: THeaderScrollBehavior;
1043
- slotMenuVariant: TSlotMenuVariant;
1044
- slotMenuText: string;
1045
- hideLogo: Booleanish;
1046
- compact: Booleanish;
1047
- showSearch: Booleanish;
1048
- canChangeRepresentation: Booleanish;
1049
- hasLogOut: Booleanish;
1050
- user?: IPktHeaderUser;
1051
- userMenu?: IPktHeaderUserMenuItem[];
1052
- representing?: IPktHeaderRepresenting;
1053
- userMenuFooter?: IPktHeaderUserMenuItem[];
1054
- userOptions?: IPktHeaderUserMenuItem[];
1055
- firstUpdated(changedProperties: PropertyValues): void;
1056
- private emitDeprecationWarnings;
1057
- /**
1058
- * Convert deprecated props to new props
1059
- */
1060
- private get effectiveUserMenu();
1061
- render(): TemplateResult<1>;
1062
- }
1063
-
1064
- export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> implements IPktHeader {
1065
- serviceName?: string;
1066
- serviceLink?: string;
1067
- logoLink?: string;
1068
- searchPlaceholder: string;
1069
- searchValue: string;
1070
- mobileBreakpoint: number;
1071
- tabletBreakpoint: number;
1072
- openedMenu: THeaderMenu;
1073
- logOutButtonPlacement: TPktHeaderLogOutButtonPlacement;
1074
- position: THeaderPosition;
1075
- scrollBehavior: THeaderScrollBehavior;
1076
- slotMenuVariant: TSlotMenuVariant;
1077
- slotMenuText: string;
1078
- hideLogo: Booleanish;
1079
- compact: Booleanish;
1080
- showSearch: Booleanish;
1081
- canChangeRepresentation: Booleanish;
1082
- hasLogOut: Booleanish;
1083
- user?: IPktHeaderUser;
1084
- userMenu?: IPktHeaderUserMenuItem[];
1085
- representing?: IPktHeaderRepresenting;
1086
- private isMobile;
1087
- private isTablet;
1088
- private openMenu;
1089
- private isHidden;
1090
- private componentWidth;
1091
- private alignSlotRight;
1092
- private alignSearchRight;
1093
- private headerRef;
1094
- private userContainerRef;
1095
- private slotContainerRef;
1096
- private searchContainerRef;
1097
- private slotContentRef;
1098
- private searchMenuRef;
1099
- private resizeObserver?;
1100
- private lastScrollPosition;
1101
- private savedScrollY;
1102
- private lastFocusedElement;
1103
- private shouldRestoreFocus;
1104
- connectedCallback(): void;
1105
- disconnectedCallback(): void;
1106
- firstUpdated(): void;
1107
- updated(changedProperties: PropertyValues): void;
1108
- private setupResizeObserver;
1109
- private updateIsMobile;
1110
- private updateIsTablet;
1111
- private updateScrollLock;
1112
- private lockScroll;
1113
- private unlockScroll;
1114
- private setupScrollListener;
1115
- private handleScroll;
1116
- private handleClickOutside;
1117
- private handleFocusOut;
1118
- private handleEscapeKey;
1119
- private restoreFocus;
1120
- private checkDropdownAlignment;
1121
- private handleMenuToggle;
1122
- private handleLogoClick;
1123
- private handleServiceClick;
1124
- private handleLogout;
1125
- private handleSearch;
1126
- private handleSearchChange;
1127
- private handleSearchInputChange;
1128
- private handleSearchKeyDown;
1129
- private get formattedLastLoggedIn();
1130
- private get isFixed();
1131
- private get shouldHideOnScroll();
1132
- private get showLogoutInHeader();
1133
- private get showLogoutInUserMenu();
1134
- private renderLogo;
1135
- private renderServiceName;
1136
- private renderSlotContainer;
1137
- private renderSearch;
1138
- private renderUserButton;
1139
- private renderHeader;
1140
- render(): TemplateResult_2<1>;
1141
- }
1142
-
1143
- export declare class PktHeaderUserMenu extends PktElement<IPktHeaderUserMenu> implements IPktHeaderUserMenu {
1144
- user: IPktHeaderUser;
1145
- formattedLastLoggedIn?: string;
1146
- representing?: IPktHeaderRepresenting;
1147
- userMenu?: IPktHeaderUserMenuItem[];
1148
- canChangeRepresentation: Booleanish;
1149
- logoutOnClick: Booleanish;
1150
- private handleChangeRepresentation;
1151
- private handleLogout;
1152
- private handleMenuItemClick;
1153
- private renderLinkOrButton;
1154
- private renderLinkSection;
1155
- render(): TemplateResult<1>;
1156
- }
1157
-
1158
- export declare class PktHeading extends PktShadowElement<IPktHeading> implements IPktHeading {
1159
- size: TPktHeadingSize | undefined;
1160
- level: TPktHeadingLevel;
1161
- weight: TPktHeadingWeight | undefined;
1162
- visuallyHidden: boolean;
1163
- align: 'start' | 'center' | 'end' | undefined;
1164
- connectedCallback(): void;
1165
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
1166
- protected updated(_changedProperties: PropertyValues): void;
1167
- private setLevel;
1168
- private get defaultSizeForLevel();
1169
- private get defaultWeightForLevel();
1170
- private updateHostClasses;
1171
- render(): TemplateResult<1>;
1172
- }
1173
-
1174
- export declare class PktHelptext extends PktElementWithSlot {
1175
- forId: string;
1176
- helptext: string;
1177
- helptextDropdown: string;
1178
- helptextDropdownButton: string;
1179
- isHelpTextOpen: boolean;
1180
- render(): TemplateResult<1>;
1181
- }
1182
-
1183
- export declare class PktIcon extends PktElement<Props_5> {
1184
- path: string | undefined;
1185
- name: PktIconName;
1186
- private icon;
1187
- private _updatedProps;
1188
- connectedCallback(): void;
1189
- attributeChangedCallback(name: string, _old: string | null, value: string | null): Promise<void>;
1190
- protected updated(_changedProperties: PropertyValues): Promise<void>;
1191
- protected getIcon(name?: PktIconName): Promise<void>;
1192
- render(): TemplateResult<1>;
1193
- }
1194
-
1195
- /**
1196
- * Base class for all Punkt input elements
1197
- * @extends PktElementWithSlot
1198
- */
1199
- declare class PktInputElement<T = {}, TOption extends PktInputOption = PktInputOption> extends PktElementWithSlot<Props_2 & T> {
1200
- static get formAssociated(): boolean;
1201
- internals: any;
1202
- form: HTMLFormElement | null;
1203
- checked?: boolean | string | null;
1204
- defaultChecked?: boolean;
1205
- multiple?: boolean;
1206
- range?: boolean;
1207
- type?: string;
1208
- optionsController?: PktOptionsSlotController;
1209
- _options?: TOption[];
1210
- defaultValue: string | string[] | null;
1211
- disabled: boolean;
1212
- readonly: boolean;
1213
- required: boolean;
1214
- max: string | number | null;
1215
- maxlength: number | null;
1216
- min: string | number | null;
1217
- minlength: number | null;
1218
- step: number | null;
1219
- ariaDescribedBy: string | null;
1220
- ariaLabelledby: string | null;
1221
- name: string;
1222
- pattern: string | null;
1223
- placeholder: string | null;
1224
- id: string;
1225
- counter: boolean;
1226
- hasError: boolean;
1227
- inline: boolean;
1228
- hasFieldset: boolean;
1229
- optionalTag: boolean;
1230
- requiredTag: boolean;
1231
- skipForwardTestid: boolean;
1232
- useWrapper: Booleanish_2;
1233
- fullwidth: boolean;
1234
- counterMaxLength: number;
1235
- errorMessage: string;
1236
- helptext: string;
1237
- helptextDropdown: string;
1238
- helptextDropdownButton: string | null;
1239
- label: string | null;
1240
- optionalText: string;
1241
- requiredText: string;
1242
- tagText: string | null;
1243
- dataTestid: string;
1244
- touched: boolean;
1245
- constructor();
1246
- /**
1247
- * Manages form validation state based on input validity
1248
- * Called automatically by onChange, but can be called manually if needed
1249
- *
1250
- * @param input - The input element to validate (optional)
1251
- * @protected
1252
- */
1253
- protected manageValidity(input?: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
1254
- /**
1255
- * Updates the form value for this input
1256
- * Handles both single values and arrays (for multi-select)
1257
- *
1258
- * @param value - The value(s) to set in the form
1259
- * @protected
1260
- */
1261
- protected setFormValue(value: string | string[]): void;
1262
- /**
1263
- * Coordinates radio button group by unchecking other radios with the same name
1264
- * Only affects radio inputs within the same form
1265
- *
1266
- * @protected
1267
- */
1268
- protected coordinateRadioGroup(): void;
1269
- /**
1270
- * Updates checked state and form value for checkbox and radio inputs
1271
- * Triggers this when you want to set the value of the radio or checkbox input to the form
1272
- * Do not use valueChanged or onChange for radios and checkboxes!
1273
- *
1274
- * @param value - The checked state (string 'true'/'false', or boolean)
1275
- * @protected
1276
- */
1277
- protected valueChecked(value: string | boolean | null): void;
1278
- /**
1279
- * Called when value changes (text inputs, select, etc.)
1280
- * Subclasses can override to add custom value transformation logic
1281
- *
1282
- * @param value - The new value
1283
- * @param _old - The previous value
1284
- * @protected
1285
- * @example
1286
- * ```typescript
1287
- * protected valueChanged(value: string, old: string): void {
1288
- * const transformed = this.transformValue(value)
1289
- * super.valueChanged(transformed, old)
1290
- * }
1291
- * ```
1292
- */
1293
- protected valueChanged(value: string | string[] | null, _old: string | string[] | null): void;
1294
- /**
1295
- * Dispatches change and value-change events
1296
- *
1297
- * @param value - The value to include in the event detail
1298
- * @protected
1299
- */
1300
- protected dispatchChangeEvents(value: unknown): void;
1301
- /**
1302
- * When input goes from content to no content
1303
- * @protected
1304
- */
1305
- protected clearInputValue(): void;
1306
- /**
1307
- * When user enters the input, dispatch focus event
1308
- * @protected
1309
- */
1310
- protected onFocus(): void;
1311
- /**
1312
- * When user leaves the input, dispatch blur event
1313
- * @protected
1314
- */
1315
- protected onBlur(): void;
1316
- /**
1317
- * Trigger this when user types in the input
1318
- * @protected
1319
- */
1320
- protected onInput(): void;
1321
- /**
1322
- * Normalizes value format based on multiple/range settings
1323
- *
1324
- * @param value - The value to normalize
1325
- * @returns Normalized value (array if multiple/range, string otherwise)
1326
- * @private
1327
- */
1328
- private normalizeValue;
1329
- /**
1330
- * Validates the input element(s)
1331
- * @private
1332
- */
1333
- private validate;
1334
- /**
1335
- * Trigger this when you want to set the value of the input out to the form
1336
- * Handles value normalization, form updates, validation, and event dispatching
1337
- *
1338
- * @param value - The value to set
1339
- * @protected
1340
- */
1341
- protected onChange(value: string | string[]): void;
1342
- /**
1343
- * Called when the form is reset
1344
- * Resets the input to its default state
1345
- * @protected
1346
- */
1347
- protected formResetCallback(): void;
1348
- protected updated(_changedProperties: PropertyValues): void;
1349
- protected firstUpdated(_changedProperties: PropertyValues): void;
1350
- }
1351
-
1352
- /**
1353
- * Base interface for input options used in select, combobox, etc.
1354
- */
1355
- declare interface PktInputOption {
1356
- value: string;
1357
- label?: string;
1358
- selected?: boolean;
1359
- disabled?: boolean;
1360
- hidden?: boolean;
1361
- }
1362
-
1363
- export declare class PktInputWrapper extends PktElementWithSlot<Props_6> {
1364
- /**
1365
- * Element attributes
1366
- */
1367
- forId: string;
1368
- label: string;
1369
- helptext: string | null;
1370
- helptextDropdown: string | null;
1371
- helptextDropdownButton: string | null;
1372
- counter: boolean;
1373
- counterCurrent: number;
1374
- counterMaxLength: number;
1375
- counterError: string | null;
1376
- counterPosition: TCounterPosition;
1377
- optionalTag: boolean;
1378
- optionalText: string;
1379
- requiredTag: boolean;
1380
- requiredText: string;
1381
- tagText: string | null;
1382
- hasError: boolean;
1383
- errorMessage: string;
1384
- disabled: boolean;
1385
- inline: boolean;
1386
- ariaDescribedby: string | undefined;
1387
- hasFieldset: boolean;
1388
- role: string | null;
1389
- useWrapper: Booleanish;
1390
- protected updated(changedProperties: PropertyValues): void;
1391
- render(): TemplateResult<1>;
1392
- private toggleDropdown;
1393
- private handleLabelClick;
1394
- }
1395
-
1396
- export declare class PktLink extends PktElementWithSlot {
1397
- /**
1398
- * Element attributes
1399
- */
1400
- href: string;
1401
- iconName: string | undefined;
1402
- iconPosition: string | undefined;
1403
- external: boolean;
1404
- target: string | null;
1405
- render(): TemplateResult<1>;
1406
- }
1407
-
1408
- export declare class PktLinkCard extends PktElementWithSlot implements IPktLinkCard {
1409
- title: string;
1410
- href: string;
1411
- iconName: string;
1412
- external: boolean;
1413
- openInNewTab: boolean;
1414
- skin: TLinkCardSkin;
1415
- render(): TemplateResult<1>;
1416
- }
1417
-
1418
- declare class PktListbox extends PktElement implements IPktListbox {
1419
- id: string;
1420
- label: string | null;
1421
- options: IPktComboboxOption[];
1422
- isOpen: boolean;
1423
- disabled: boolean;
1424
- includeSearch: boolean;
1425
- isMultiSelect: boolean;
1426
- allowUserInput: boolean;
1427
- maxIsReached: boolean;
1428
- customUserInput: string | null;
1429
- searchPlaceholder: string | null;
1430
- searchValue: string | null;
1431
- maxLength: number;
1432
- userMessage: string | null;
1433
- private _selectedOptions;
1434
- private typeahead;
1435
- private _filteredOptions;
1436
- connectedCallback(): void;
1437
- disconnectedCallback(): void;
1438
- updated(changedProperties: PropertyValues): void;
1439
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
1440
- private get _hasOptions();
1441
- render(): TemplateResult<1>;
1442
- private renderCheckboxOrCheckIcon;
1443
- private renderEmptyMessage;
1444
- private renderList;
1445
- private renderNewOptionBanner;
1446
- private renderMaximumReachedBanner;
1447
- private renderUserMessage;
1448
- private renderSearch;
1449
- private handleSearchInput;
1450
- private handleSearchKeydown;
1451
- private handleOptionKeydown;
1452
- focusFirstOrSelectedOption(): void;
1453
- private toggleOption;
1454
- private selectAll;
1455
- private closeOptions;
1456
- private tabClose;
1457
- filterOptions(): void;
1458
- private handleTypeAhead;
1459
- }
1460
-
1461
- export declare class PktLoader extends PktElementWithSlot implements IPktLoader {
1462
- delay: number;
1463
- inline: boolean;
1464
- isLoading: boolean;
1465
- message: string | null;
1466
- size: TPktSize;
1467
- variant: TPktLoaderVariant;
1468
- loadingAnimationPath: string | undefined;
1469
- private _shouldDisplayLoader;
1470
- connectedCallback(): void;
1471
- updated(changedProperties: Map<string, unknown>): void;
1472
- render(): TemplateResult<1>;
1473
- private getVariant;
1474
- private setupLoader;
1475
- }
1476
-
1477
- export declare class PktMessagebox extends PktElementWithSlot implements IPktMessagebox {
1478
- constructor();
1479
- closable: boolean;
1480
- compact: boolean;
1481
- title: string;
1482
- skin: TMessageboxSkin;
1483
- _isClosed: boolean;
1484
- protected updated(_changedProperties: PropertyValues): void;
1485
- render(): TemplateResult<1>;
1486
- private close;
1487
- }
1488
-
1489
- export declare class PktModal extends PktElementWithSlot implements IPktModal {
1490
- open?: boolean;
1491
- headingText?: string;
1492
- removePadding?: boolean;
1493
- hideCloseButton?: boolean;
1494
- closeOnBackdropClick?: boolean;
1495
- closeButtonSkin?: 'blue' | 'yellow-filled';
1496
- size?: TPktSize;
1497
- variant?: 'dialog' | 'drawer';
1498
- drawerPosition?: 'left' | 'right';
1499
- transparentBackdrop?: boolean;
1500
- dialogRef: Ref<HTMLDialogElement>;
1501
- _isOpen: boolean;
1502
- constructor();
1503
- connectedCallback(): Promise<void>;
1504
- disconnectedCallback(): void;
1505
- protected updated(changedProperties: PropertyValues): void;
1506
- protected firstUpdated(_changedProperties: PropertyValues): Promise<void>;
1507
- private handleKeyDown;
1508
- private handleBackdropClick;
1509
- private isElementInViewport;
1510
- close: (event: Event, bypassNativeClose?: boolean) => void;
1511
- showModal: (event?: Event | null) => void;
1512
- render(): TemplateResult<1>;
1513
- }
1514
-
1515
- /**
1516
- * Base class for input elements that have options (select, combobox, etc.)
1517
- * Provides common functionality for managing options from props or slots
1518
- * @extends PktInputElement
1519
- */
1520
- declare abstract class PktOptionsInputElement<T = {}, TOption extends PktInputOption = PktInputOption> extends PktInputElement<Props_10 & T, TOption> {
1521
- /**
1522
- * Options passed as a prop
1523
- * @private
1524
- */
1525
- protected _optionsProp: TOption[];
1526
- /**
1527
- * Internal state for parsed options
1528
- * @protected
1529
- */
1530
- _options: TOption[];
1531
- /**
1532
- * Controller for managing options from slots
1533
- */
1534
- optionsController: PktOptionsSlotController;
1535
- /**
1536
- * Public getter for options that includes selected state
1537
- * Override this in subclasses to customize the selected state logic
1538
- */
1539
- get options(): TOption[];
1540
- /**
1541
- * Public setter for options
1542
- */
1543
- set options(value: TOption[]);
1544
- /**
1545
- * Determines if an option is selected
1546
- * Subclasses should override this to implement their selection logic
1547
- *
1548
- * @param option - The option to check
1549
- * @returns True if the option is selected
1550
- * @protected
1551
- */
1552
- protected isOptionSelected(option: TOption): boolean;
1553
- /**
1554
- * Finds an option by its value
1555
- *
1556
- * @param value - The value to search for
1557
- * @returns The option if found, undefined otherwise
1558
- * @protected
1559
- */
1560
- protected findOptionByValue(value: string): TOption | undefined;
1561
- /**
1562
- * Gets all currently selected options
1563
- *
1564
- * @returns Array of selected options
1565
- * @protected
1566
- */
1567
- protected getSelectedOptions(): TOption[];
1568
- /**
1569
- * Parses options from either props or slot controller
1570
- * Call this in connectedCallback to initialize options
1571
- *
1572
- * @protected
1573
- */
1574
- protected parseOptions(): void;
1575
- /**
1576
- * Re-parse options when the component updates
1577
- * This ensures options stay in sync when they change dynamically
1578
- *
1579
- * @protected
1580
- */
1581
- protected willUpdate(_changedProperties: Map<PropertyKey, unknown>): void;
1582
- }
1583
-
1584
- declare class PktOptionsSlotController implements ReactiveController {
1585
- host: LitElement & ReactiveControllerHost;
1586
- nodes: Element[];
1587
- options: TOption[];
1588
- generation: number;
1589
- observer: MutationObserver;
1590
- constructor(host: LitElement & ReactiveControllerHost);
1591
- hostConnected(): void;
1592
- hostDisconnected(): void;
1593
- private addNode;
1594
- private createOptions;
1595
- private handleMutations;
1596
- }
1597
-
1598
- export declare class PktProgressbar extends PktElement implements IPktProgressbar {
1599
- constructor();
1600
- ariaLabel: string | null;
1601
- ariaLabelledby: string | null;
1602
- ariaValueText: string | null;
1603
- ariaLive: TAriaLive;
1604
- id: string;
1605
- role: TProgressbarRole;
1606
- skin: TProgressbarSkin;
1607
- statusPlacement: TProgressbarStatusPlacement;
1608
- statusType: TProgressbarStatusType;
1609
- title: string;
1610
- titlePosition: TProgressbarTitlePosition;
1611
- valueCurrent: number;
1612
- valueMax: number;
1613
- valueMin: number;
1614
- private labelWidth;
1615
- private progressbarId;
1616
- private computedAriaLabelledby;
1617
- private computedAriaValueText;
1618
- private labelRef;
1619
- private progressBarRef;
1620
- firstUpdated(changedProperties: Map<string | number | symbol, unknown>): void;
1621
- updated(changedProperties: Map<string | number | symbol, unknown>): void;
1622
- render(): TemplateResult<1>;
1623
- private setComputedValues;
1624
- private syncAttributes;
1625
- private _handleAttribute;
1626
- }
1627
-
1628
- declare class PktRadioButton extends PktInputElement<Props_7> {
1629
- inputRef: Ref<HTMLInputElement>;
1630
- value: string;
1631
- checkHelptext: string | null;
1632
- defaultChecked: boolean;
1633
- hasTile: boolean;
1634
- checked: boolean | string | null;
1635
- type: string;
1636
- tagText: string | null;
1637
- optionalTag: boolean;
1638
- optionalText: string;
1639
- requiredTag: boolean;
1640
- requiredText: string;
1641
- _checked: boolean;
1642
- connectedCallback(): void;
1643
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
1644
- render(): TemplateResult<1>;
1645
- private toggleChecked;
1646
- }
1647
- export { PktRadioButton }
1648
- export { PktRadioButton as PktRadiobutton }
1649
-
1650
- export declare class PktSelect extends PktOptionsInputElement<{}, TSelectOption> implements IPktSelect {
1651
- inputRef: Ref<HTMLSelectElement>;
1652
- value: string;
1653
- selectedIndex: number | null;
1654
- selectedOptions: HTMLCollectionOf<HTMLOptionElement> | undefined;
1655
- constructor();
1656
- connectedCallback(): void;
1657
- add(item: HTMLOptionElement, before?: HTMLOptionElement | number): void;
1658
- remove(item?: number): void;
1659
- item(index: number): HTMLOptionElement | null | undefined;
1660
- namedItem(name: string): HTMLOptionElement | null | undefined;
1661
- showPicker(): void;
1662
- attributeChangedCallback(name: string, _old: string, value: string): void;
1663
- update(changedProperties: PropertyValues): void;
1664
- protected firstUpdated(_changedProperties: PropertyValues): void;
1665
- render(): TemplateResult<1>;
1666
- private returnNumberOrNull;
1667
- }
1668
-
1669
- /**
1670
- * Base class for Punkt shadow DOM elements
1671
- * @extends LitElement
1672
- */
1673
- declare class PktShadowElement<T = {}> extends LitElement {
1674
- [key: string]: any;
1675
- strings: any;
1676
- role: string | null;
1677
- /**
1678
- * Here to support prop typing in Vue
1679
- */
1680
- $props: T & Props;
1681
- /**
1682
- * Add support for Hot Module Reloading in dev mode
1683
- */
1684
- hotReplacedCallback(): void;
1685
- }
1686
-
1687
- export declare class PktTabItem extends PktElementWithSlot<IPktTabItem> implements IPktTabItem {
1688
- active: boolean;
1689
- disabled: boolean;
1690
- href: string;
1691
- icon: string;
1692
- controls: string;
1693
- tag: string;
1694
- tagSkin: TTabItemSkin;
1695
- index: number;
1696
- context?: TabsContext;
1697
- elementRef: Ref<HTMLAnchorElement | HTMLButtonElement>;
1698
- constructor();
1699
- connectedCallback(): void;
1700
- updated(): void;
1701
- private handleClick;
1702
- private handleKeyDown;
1703
- render(): TemplateResult<1>;
1704
- }
1705
-
1706
- export declare class PktTabs extends PktElementWithSlot<IPktTabs> implements IPktTabs {
1707
- arrowNav: boolean;
1708
- disableArrowNav: boolean;
1709
- private tabRefs;
1710
- private disabledMap;
1711
- private tabCount;
1712
- private get useArrowNav();
1713
- private context;
1714
- updated(changedProperties: PropertyValues): void;
1715
- private registerTab;
1716
- private isTabDisabled;
1717
- private findEnabledIndex;
1718
- private handleClick;
1719
- private handleKeyUp;
1720
- render(): TemplateResult<1>;
1721
- }
1722
-
1723
- export declare class PktTag extends PktElementWithSlot<IPktTag> implements IPktTag {
1724
- constructor();
1725
- /**
1726
- * Element attributes
1727
- */
1728
- closeTag: boolean;
1729
- size: TPktSize;
1730
- skin: TTagSkin;
1731
- textStyle: string | null;
1732
- iconName: string | undefined;
1733
- type: TTagType;
1734
- ariaLabel: string | null;
1735
- buttonTabindex: number | undefined;
1736
- /**
1737
- * Element state
1738
- */
1739
- _isClosed: boolean;
1740
- _ariaDescription: string | null;
1741
- /**
1742
- * Lifecycle
1743
- */
1744
- protected firstUpdated(_changedProperties: PropertyValues): void;
1745
- /**
1746
- * Element functions
1747
- */
1748
- private close;
1749
- render(): TemplateResult<1>;
1750
- }
1751
-
1752
- export declare class PktTextarea extends PktInputElement<Props_8> {
1753
- inputRef: Ref<HTMLTextAreaElement>;
1754
- value: string;
1755
- autocomplete: string;
1756
- rows: number | null;
1757
- counterCurrent: number;
1758
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
1759
- updated(changedProperties: PropertyValues): void;
1760
- render(): TemplateResult<1>;
1761
- }
1762
-
1763
- export declare class PktTextinput extends PktInputElement<Props_9> {
1764
- inputRef: Ref<HTMLTextAreaElement>;
1765
- value: string;
1766
- type: string;
1767
- size: number | null;
1768
- autocomplete: string | null;
1769
- iconNameRight: string | null;
1770
- prefix: string | null;
1771
- suffix: string | null;
1772
- omitSearchIcon: boolean;
1773
- counterCurrent: number;
1774
- attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
1775
- updated(changedProperties: PropertyValues): void;
1776
- render(): TemplateResult<1>;
1777
- }
1778
-
1779
- export declare class PktTimepicker extends PktInputElement<Props_11> {
1780
- hiddenInputRef: Ref<HTMLInputElement>;
1781
- hoursInputRef: Ref<HTMLInputElement>;
1782
- minutesInputRef: Ref<HTMLInputElement>;
1783
- buttonRef: Ref<HTMLButtonElement>;
1784
- /**
1785
- * Exposes hiddenInputRef as inputRef so the base class validate() method
1786
- * triggers our manageValidity override automatically after every onChange call.
1787
- * The hidden input itself is never used for reporting — see manageValidity below.
1788
- */
1789
- get inputRef(): Ref<HTMLInputElement>;
1790
- /**
1791
- * Overrides the base class manageValidity to solve a focusability problem:
1792
- * the browser requires the third argument to setValidity (the "anchor") to be
1793
- * a visible, focusable element — it focuses that element when navigating to an
1794
- * invalid field. Our hidden input[type=time] cannot receive focus, so passing it
1795
- * as the anchor would silently fail with "form control is not focusable".
1796
- */
1797
- protected manageValidity(_input?: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
1798
- value: string;
1799
- hidePicker: boolean;
1800
- stepArrows: boolean;
1801
- private _hours;
1802
- private _minutes;
1803
- private _isOpen;
1804
- private _hoursDigitCount;
1805
- private _hoursFirstDigit;
1806
- private _minutesDigitCount;
1807
- private _minutesFirstDigit;
1808
- private _hasFocus;
1809
- private _setAriaInvalid;
1810
- private _outsideClickHandler;
1811
- private _handleComponentFocusIn;
1812
- private _handleComponentFocusOut;
1813
- connectedCallback(): void;
1814
- disconnectedCallback(): void;
1815
- protected willUpdate(changedProperties: PropertyValues): void;
1816
- protected updated(changedProperties: PropertyValues): void;
1817
- protected formResetCallback(): void;
1818
- private _isValidStep;
1819
- private _syncDisplayFromValue;
1820
- private _syncValueFromDisplay;
1821
- private get _minuteStep();
1822
- private get _hourOptions();
1823
- private get _minuteOptions();
1824
- private _openPopup;
1825
- private _closePopup;
1826
- private _togglePopup;
1827
- private _scrollToSelected;
1828
- private _focusSelectedOrFirst;
1829
- private _handleHoursKeydown;
1830
- private _handleHoursBlur;
1831
- private _handleMinutesKeydown;
1832
- private _handleMinutesBlur;
1833
- private _handleOptionClick;
1834
- private _focusOptionAndSync;
1835
- private _handlePopupKeydown;
1836
- private _stepTime;
1837
- private _renderOption;
1838
- private _renderPopup;
1839
- private _renderContainer;
1840
- render(): TemplateResult<1>;
1841
- }
1842
-
1843
- declare type Props = ElementProps<PktElement, 'strings' | 'role'>;
1844
-
1845
- declare type Props_10 = ElementProps<PktOptionsInputElement, 'options'>;
1846
-
1847
- declare type Props_11 = ElementProps<PktTimepicker, 'value' | 'hidePicker' | 'stepArrows'>;
1848
-
1849
- declare type Props_2 = ElementProps<PktInputElement, 'defaultValue' | 'disabled' | 'readonly' | 'required' | 'max' | 'maxlength' | 'min' | 'minlength' | 'ariaDescribedBy' | 'ariaLabelledby' | 'name' | 'pattern' | 'placeholder' | 'id' | 'counter' | 'hasError' | 'hasFieldset' | 'inline' | 'optionalTag' | 'requiredTag' | 'skipForwardTestid' | 'useWrapper' | 'fullwidth' | 'counterMaxLength' | 'errorMessage' | 'helptext' | 'helptextDropdown' | 'helptextDropdownButton' | 'label' | 'optionalText' | 'requiredText' | 'dataTestid'>;
1850
-
1851
- declare type Props_3 = ElementProps<PktCheckbox, 'checkHelptext' | 'defaultChecked' | 'hasTile' | 'isSwitch' | 'labelPosition' | 'hideLabel' | 'tagText' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText'>;
1852
-
1853
- declare type Props_4 = ElementProps<PktDatepicker, 'label' | 'dateformat' | 'multiple' | 'maxlength' | 'range' | 'showRangeLabels' | 'min' | 'max' | 'weeknumbers' | 'withcontrols' | 'excludedates' | 'excludeweekdays' | 'currentmonth' | 'calendarOpen' | 'timezone'>;
1854
-
1855
- declare type Props_5 = ElementProps<PktIcon, 'path' | 'name'>;
1856
-
1857
- declare type Props_6 = ElementProps<PktInputWrapper, 'forId' | 'label' | 'helptext' | 'helptextDropdown' | 'helptextDropdownButton' | 'counter' | 'counterCurrent' | 'counterMaxLength' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText' | 'tagText' | 'hasError' | 'errorMessage' | 'disabled' | 'inline' | 'ariaDescribedby' | 'hasFieldset' | 'useWrapper' | 'role'>;
1858
-
1859
- declare type Props_7 = ElementProps<PktRadioButton, 'checkHelptext' | 'defaultChecked' | 'hasTile' | 'tagText' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText'>;
1860
-
1861
- declare type Props_8 = ElementProps<PktTextarea, 'autocomplete' | 'rows'>;
1862
-
1863
- declare type Props_9 = ElementProps<PktTextinput, 'value' | 'type' | 'size' | 'autocomplete' | 'iconNameRight' | 'prefix' | 'suffix' | 'omitSearchIcon'>;
1864
-
1865
- declare interface TabsContext {
1866
- /**
1867
- * Whether arrow navigation is enabled (computed from arrowNav && !disableArrowNav)
1868
- */
1869
- useArrowNav: boolean;
1870
- /**
1871
- * Register a tab item with the parent tabs container
1872
- */
1873
- registerTab: (element: HTMLElement, index: number, disabled?: boolean) => void;
1874
- /**
1875
- * Handle click event from a tab item
1876
- */
1877
- handleClick: (index: number) => void;
1878
- /**
1879
- * Handle keyboard event from a tab item
1880
- */
1881
- handleKeyUp: (event: KeyboardEvent, index: number) => void;
1882
- }
1883
-
1884
- declare type TCardImageShape = 'square' | 'round';
1885
-
1886
- declare type TCardPadding = 'none' | 'default';
1887
-
1888
- declare type TCardTagPosition = 'top' | 'bottom';
1889
-
1890
- declare type TCounterPosition = 'top' | 'bottom';
1891
-
1892
- declare type TDay = `${number}${number}`;
1893
-
1894
- export { THeaderMenu }
1895
-
1896
- export { THeaderPosition }
1897
-
1898
- export { THeaderScrollBehavior }
1899
-
1900
- declare type TISODate = `${TYear}-${TMonth}-${TDay}`;
1901
-
1902
- declare type TLinkCardSkin = 'normal' | 'no-padding' | 'blue' | 'beige' | 'green' | 'gray' | 'beige-outline' | 'gray-outline';
1903
-
1904
- declare type TMonth = `${number}${number}`;
1905
-
1906
- declare type TOption = {
1907
- value: string;
1908
- label: string;
1909
- selected?: boolean;
1910
- disabled?: boolean;
1911
- };
1912
-
1913
- export declare type TPktAccordionSkin = TAccordionSkin;
1914
-
1915
- export declare type TPktButtonColor = 'blue' | 'blue-outline' | 'green' | 'green-outline' | 'green-dark' | 'green-dark-outline' | 'beige-light' | 'beige-dark-outline' | 'yellow' | 'yellow-outline' | 'red' | 'red-outline';
1916
-
1917
- export declare type TPktButtonMode = 'light' | 'dark';
1918
-
1919
- export declare type TPktButtonSize = 'small' | 'medium' | 'large';
1920
-
1921
- export declare type TPktButtonSkin = 'primary' | 'secondary' | 'tertiary';
1922
-
1923
- export declare type TPktButtonState = 'normal' | 'focus' | 'hover' | 'active';
1924
-
1925
- export declare type TPktButtonType = THTMLButtonType;
1926
-
1927
- export declare type TPktButtonVariant = 'label-only' | 'icon-left' | 'icon-right' | 'icon-only' | 'icons-right-and-left';
1928
-
1929
- export { TPktComboboxTagPlacement }
1930
-
1931
- export { TPktHeaderLogOutButtonPlacement }
1932
-
1933
- export declare type TPktHeadingLevel = THeadingLevel;
1934
-
1935
- export declare type TPktHeadingSize = THeadingSize;
1936
-
1937
- declare type TPktHeadingWeight = THeadingWeight;
1938
-
1939
- export declare type TPktLoaderVariant = 'blue' | 'rainbow' | 'shapes';
1940
-
1941
- declare type TPktSize = 'small' | 'medium' | 'large';
1942
-
1943
- export { TProgressbarRole }
1944
-
1945
- export { TProgressbarSkin }
1946
-
1947
- export { TProgressbarStatusPlacement }
1948
-
1949
- export { TProgressbarStatusType }
1950
-
1951
- export { TProgressbarTitlePosition }
1952
-
1953
- export declare type TSelectOption = {
1954
- value: string;
1955
- label: string;
1956
- selected?: boolean;
1957
- disabled?: boolean;
1958
- hidden?: boolean;
1959
- };
1960
-
1961
- export { TSlotMenuVariant }
1962
-
1963
- export declare type TTabItemSkin = 'blue' | 'green' | 'red' | 'beige' | 'yellow' | 'grey' | 'gray' | 'blue-light';
1964
-
1965
- export declare type TTagSkin = 'blue' | 'blue-dark' | 'blue-light' | 'green' | 'red' | 'yellow' | 'beige' | 'gray' | 'grey';
1966
-
1967
- export declare type TTagType = THTMLButtonType;
1968
-
1969
- declare type TYear = `${number}${number}${number}${number}`;
1970
-
1971
- export { }
1
+ export * from './components';
2
+ export * from './types';