@oslokommune/punkt-elements 14.3.0 → 14.5.2

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 (149) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/{accordionitem-C_URrDjP.js → accordionitem-DB3tAjIZ.js} +4 -4
  3. package/dist/{accordionitem-DCZrHVNR.cjs → accordionitem-DHYmPA-o.cjs} +1 -1
  4. package/dist/{alert-UFQFbbzZ.js → alert-DqXar67l.js} +6 -6
  5. package/dist/{alert-SvqEDHuW.cjs → alert-GrKyqxuR.cjs} +1 -1
  6. package/dist/{backlink-C7qUmUzs.js → backlink-CqUcmiPQ.js} +11 -11
  7. package/dist/{backlink-BrIIpgJ7.cjs → backlink-QDcQd6vK.cjs} +1 -1
  8. package/dist/{button-DaM4jvhJ.cjs → button-R4l10Nqd.cjs} +1 -1
  9. package/dist/{button-CjXih_Nx.js → button-f36menSU.js} +5 -5
  10. package/dist/{calendar-CvfMj3fA.js → calendar-DiNuZ8Ai.js} +7 -8
  11. package/dist/{calendar-ZzLAjDpv.cjs → calendar-wuD6ZH0t.cjs} +3 -3
  12. package/dist/{card-C1gRTfXb.cjs → card-C2hWaMev.cjs} +1 -1
  13. package/dist/{card-CO3D8wQE.js → card-CnINxZma.js} +7 -7
  14. package/dist/{checkbox-C0TPnShf.cjs → checkbox-B-0FOdwi.cjs} +1 -1
  15. package/dist/{checkbox-CnhA52o_.js → checkbox-CkAwPK_E.js} +4 -4
  16. package/dist/{class-map-C_erArZz.cjs → class-map-CApIYSRo.cjs} +1 -1
  17. package/dist/{class-map-wy7PUk0P.js → class-map-Dt2jXOlF.js} +1 -1
  18. package/dist/{combobox-Dcp_fHcL.js → combobox-Dxa7XjLz.js} +55 -55
  19. package/dist/{combobox-C1xwAju5.cjs → combobox-yy6hIGmB.cjs} +13 -13
  20. package/dist/{consent-Daj-Xa7w.cjs → consent-FbFS1pmz.cjs} +1 -1
  21. package/dist/{consent-BO3Ga8N4.js → consent-c9PhWxnP.js} +3 -3
  22. package/dist/{datepicker-Bjb9GK1E.js → datepicker-C7GWMtXH.js} +222 -241
  23. package/dist/{datepicker-COIRRau0.cjs → datepicker-D_3vYgMt.cjs} +25 -25
  24. package/dist/{directive-helpers-BzAtj9by.js → directive-helpers-CQef4qUQ.js} +1 -1
  25. package/dist/{directive-helpers-4oOjKnGY.cjs → directive-helpers-CYIEJ8pI.cjs} +1 -1
  26. package/dist/{element-CRDRygXu.js → element-BXsf_NlG.js} +3 -3
  27. package/dist/{element-CJ_QKaki.cjs → element-aUzIoa1s.cjs} +3 -3
  28. package/dist/{heading-Dv_cH6N1.cjs → heading-CBepYb7H.cjs} +1 -1
  29. package/dist/{heading-BUdy170t.js → heading-J7dN9nRi.js} +13 -13
  30. package/dist/{helptext-hlcc584n.cjs → helptext-DebHGRsD.cjs} +1 -1
  31. package/dist/{helptext-Bn17Picx.js → helptext-DuyRRfCn.js} +5 -5
  32. package/dist/{icon-BB7e5iQN.js → icon-BgG6oO4Q.js} +1 -1
  33. package/dist/{icon-MRx-m0Or.cjs → icon-Dl9ZPqe6.cjs} +1 -1
  34. package/dist/{if-defined-Bc9-_I01.cjs → if-defined-BElHLTlB.cjs} +1 -1
  35. package/dist/{if-defined-BWZGb3bh.js → if-defined-CxHgig4I.js} +1 -1
  36. package/dist/index.d.ts +213 -55
  37. package/dist/input-element-DVZhYDJ_.js +840 -0
  38. package/dist/input-element-RBQVA8i0.cjs +1 -0
  39. package/dist/{input-wrapper-1PCXqtiu.js → input-wrapper-3qfjLkrP.js} +7 -7
  40. package/dist/{input-wrapper-CtBiAb04.cjs → input-wrapper-rgXsRNkk.cjs} +1 -1
  41. package/dist/{link-BboUBUcg.js → link-CZvcdRek.js} +4 -4
  42. package/dist/{link-Dw39h-YN.cjs → link-D85g20GS.cjs} +1 -1
  43. package/dist/{linkcard-DUA3kGGd.cjs → linkcard-B-9K02q8.cjs} +1 -1
  44. package/dist/{linkcard-BqJmHFu8.js → linkcard-C3RTcMqc.js} +4 -4
  45. package/dist/{listbox-mvKKzH-v.js → listbox-CLtowV6W.js} +36 -36
  46. package/dist/{listbox-DnoqOo5u.cjs → listbox-C_0RhGhk.cjs} +2 -2
  47. package/dist/{loader-DjGxT7C3.cjs → loader-1EXLdxfq.cjs} +1 -1
  48. package/dist/{loader-DIum_s_D.js → loader-Dci0SrOz.js} +5 -5
  49. package/dist/{messagebox-aPlConlJ.js → messagebox-CnZlttZp.js} +5 -5
  50. package/dist/{messagebox-ChIKVTO_.cjs → messagebox-dscnWgCd.cjs} +1 -1
  51. package/dist/{modal-B4qq0VFB.cjs → modal-ncKVjcyZ.cjs} +1 -1
  52. package/dist/{modal-jAUtM-NP.js → modal-wSGthXAC.js} +5 -5
  53. package/dist/pkt-accordion.cjs +1 -1
  54. package/dist/pkt-accordion.js +2 -2
  55. package/dist/pkt-alert.cjs +1 -1
  56. package/dist/pkt-alert.js +1 -1
  57. package/dist/pkt-backlink.cjs +1 -1
  58. package/dist/pkt-backlink.js +1 -1
  59. package/dist/pkt-button.cjs +1 -1
  60. package/dist/pkt-button.js +1 -1
  61. package/dist/pkt-calendar.cjs +1 -1
  62. package/dist/pkt-calendar.js +1 -1
  63. package/dist/pkt-card.cjs +1 -1
  64. package/dist/pkt-card.js +1 -1
  65. package/dist/pkt-checkbox.cjs +1 -1
  66. package/dist/pkt-checkbox.js +1 -1
  67. package/dist/pkt-combobox.cjs +1 -1
  68. package/dist/pkt-combobox.js +1 -1
  69. package/dist/pkt-consent.cjs +1 -1
  70. package/dist/pkt-consent.js +1 -1
  71. package/dist/pkt-datepicker.cjs +1 -1
  72. package/dist/pkt-datepicker.js +2 -2
  73. package/dist/pkt-header.cjs +1 -1
  74. package/dist/pkt-header.js +9 -9
  75. package/dist/pkt-heading.cjs +1 -1
  76. package/dist/pkt-heading.js +1 -1
  77. package/dist/pkt-helptext.cjs +1 -1
  78. package/dist/pkt-helptext.js +1 -1
  79. package/dist/pkt-icon.cjs +1 -1
  80. package/dist/pkt-icon.js +1 -1
  81. package/dist/pkt-index.cjs +1 -29
  82. package/dist/pkt-index.js +60 -157
  83. package/dist/pkt-input-wrapper.cjs +1 -1
  84. package/dist/pkt-input-wrapper.js +1 -1
  85. package/dist/pkt-link.cjs +1 -1
  86. package/dist/pkt-link.js +1 -1
  87. package/dist/pkt-linkcard.cjs +1 -1
  88. package/dist/pkt-linkcard.js +1 -1
  89. package/dist/pkt-listbox.cjs +1 -1
  90. package/dist/pkt-listbox.js +1 -1
  91. package/dist/pkt-loader.cjs +1 -1
  92. package/dist/pkt-loader.js +1 -1
  93. package/dist/pkt-messagebox.cjs +1 -1
  94. package/dist/pkt-messagebox.js +1 -1
  95. package/dist/pkt-modal.cjs +1 -1
  96. package/dist/pkt-modal.js +1 -1
  97. package/dist/pkt-options-controller-DjBCEHU4.cjs +1 -0
  98. package/dist/{pkt-options-controller-CZO1nxZ8.js → pkt-options-controller-zn5cmMvL.js} +3 -3
  99. package/dist/pkt-progressbar.cjs +1 -1
  100. package/dist/pkt-progressbar.js +2 -2
  101. package/dist/pkt-radiobutton.cjs +1 -1
  102. package/dist/pkt-radiobutton.js +1 -1
  103. package/dist/pkt-select.cjs +1 -1
  104. package/dist/pkt-select.js +1 -1
  105. package/dist/pkt-tabs.cjs +1 -1
  106. package/dist/pkt-tabs.js +2 -2
  107. package/dist/pkt-tag.cjs +1 -1
  108. package/dist/pkt-tag.js +1 -1
  109. package/dist/pkt-textarea.cjs +1 -1
  110. package/dist/pkt-textarea.js +1 -1
  111. package/dist/pkt-textinput.cjs +1 -1
  112. package/dist/pkt-textinput.js +1 -1
  113. package/dist/{progressbar-CmAQ-DVW.cjs → progressbar-ClY1WgnM.cjs} +1 -1
  114. package/dist/{progressbar-CVt73-JQ.js → progressbar-D5WBW1Dm.js} +5 -5
  115. package/dist/{radiobutton-BkqaqO5E.cjs → radiobutton-iHuLnuAn.cjs} +1 -1
  116. package/dist/{radiobutton-Caq8-GhM.js → radiobutton-oA20HijB.js} +15 -15
  117. package/dist/{ref-Xa5dbh--.js → ref-BxiKhrfa.js} +2 -2
  118. package/dist/{ref-BFa5Utho.cjs → ref-C5iJMIE1.cjs} +1 -1
  119. package/dist/{repeat-CJ79egkN.js → repeat-B55jMEsG.js} +2 -2
  120. package/dist/{repeat-BZb41H64.cjs → repeat-DcYSFU2y.cjs} +1 -1
  121. package/dist/select-Bug9sfr5.js +228 -0
  122. package/dist/select-jbIbD7hW.cjs +49 -0
  123. package/dist/{state-DS_kr2Fy.js → state-DgnkjP0q.js} +1 -1
  124. package/dist/{state-DSjcvzDN.cjs → state-GDzxl12x.cjs} +1 -1
  125. package/dist/{tabitem-D5zyipN1.cjs → tabitem-CtltSqDK.cjs} +1 -1
  126. package/dist/{tabitem-NV2fzs_-.js → tabitem-CypTmORF.js} +30 -30
  127. package/dist/{tag-B02fKJ66.cjs → tag-BfjOlIyS.cjs} +1 -1
  128. package/dist/{tag-CES41g0D.js → tag-DgoTYNVA.js} +6 -6
  129. package/dist/{textarea-a6T4aJJU.js → textarea-Da9E3RM7.js} +9 -9
  130. package/dist/{textarea-DyUy8u7X.cjs → textarea-Dfa4_ZBy.cjs} +1 -1
  131. package/dist/{textinput-IN3b0nSH.cjs → textinput-CLM9fRjm.cjs} +1 -1
  132. package/dist/{textinput-DIuM70dd.js → textinput-DaMYc5gd.js} +8 -8
  133. package/package.json +2 -2
  134. package/src/components/checkbox/checkbox.ts +1 -1
  135. package/src/components/combobox/combobox.ts +2 -2
  136. package/src/components/datepicker/datepicker-utils.test.ts +0 -25
  137. package/src/components/datepicker/datepicker-utils.ts +0 -28
  138. package/src/components/datepicker/datepicker.ts +0 -6
  139. package/src/components/header/header.ts +2 -0
  140. package/src/components/index.ts +0 -1
  141. package/src/components/radiobutton/radiobutton.ts +1 -1
  142. package/src/components/select/select.ts +14 -47
  143. package/src/components/textarea/textarea.ts +1 -1
  144. package/src/components/textinput/textinput.ts +1 -1
  145. package/dist/input-element-B8M8Nppd.js +0 -708
  146. package/dist/input-element-D697OAJo.cjs +0 -1
  147. package/dist/pkt-options-controller-CiuBG6Lt.cjs +0 -1
  148. package/dist/select-3dwlk22G.cjs +0 -49
  149. package/dist/select-_C-yztI0.js +0 -173
package/dist/index.d.ts CHANGED
@@ -621,7 +621,7 @@ export declare class PktCard extends PktElement implements IPktCard {
621
621
  }
622
622
 
623
623
  export declare class PktCheckbox extends PktInputElement<Props_3> {
624
- private inputRef;
624
+ inputRef: Ref<HTMLInputElement>;
625
625
  value: string;
626
626
  checkHelptext: string | null;
627
627
  defaultChecked: boolean;
@@ -662,8 +662,8 @@ export declare class PktCombobox extends PktInputElement implements IPktCombobox
662
662
  displayValueAs: string;
663
663
  tagPlacement: TPktComboboxTagPlacement | null;
664
664
  _options: IPktComboboxOption[];
665
+ _value: string[];
665
666
  private _isOptionsOpen;
666
- private _value;
667
667
  private _userInfoMessage;
668
668
  private _addValueText;
669
669
  private _maxIsReached;
@@ -710,47 +710,6 @@ export declare class PktCombobox extends PktInputElement implements IPktCombobox
710
710
  private removeLastValue;
711
711
  }
712
712
 
713
- export declare class PktComponent extends PktElement {
714
- /**
715
- * Element attributes => props
716
- * Example:
717
- * <pkt-component string="hei" strings="hei,og,hallo" darkmode>
718
- * Hei!
719
- * </pkt-component>
720
- */
721
- string: string;
722
- strings: string[];
723
- darkmode: boolean;
724
- /**
725
- * Private properties, for internal use only
726
- */
727
- private _list;
728
- /**
729
- * Runs on mount, used to set up various values and whatever you need to run
730
- */
731
- connectedCallback(): void;
732
- /**
733
- * Set up slot support for Light DOM
734
- */
735
- slotController: PktSlotController;
736
- defaultSlot: Ref<HTMLElement>;
737
- namedSlot: Ref<HTMLElement>;
738
- constructor();
739
- /**
740
- * Render functions
741
- */
742
- render(): TemplateResult<1>;
743
- private renderList;
744
- /**
745
- * Add other functionality under here
746
- */
747
- private doStuff;
748
- /**
749
- * Handlers for returning data from the component
750
- */
751
- private handleGreeting;
752
- }
753
-
754
713
  export declare class PktConsent extends PktElement<IPktConsent> implements IPktConsent {
755
714
  private _cookieEventHandler?;
756
715
  devMode: boolean;
@@ -1155,8 +1114,18 @@ export declare class PktIcon extends PktElement<Props_5> {
1155
1114
  * Base class for all Punkt input elements
1156
1115
  * @extends PktElement
1157
1116
  */
1158
- declare class PktInputElement<T = {}> extends PktElement<Props_2 & T> {
1117
+ declare class PktInputElement<T = {}, TOption extends PktInputOption = PktInputOption> extends PktElement<Props_2 & T> {
1159
1118
  static get formAssociated(): boolean;
1119
+ internals: any;
1120
+ form: HTMLFormElement | null;
1121
+ checked?: boolean | string | null;
1122
+ defaultChecked?: boolean;
1123
+ multiple?: boolean;
1124
+ range?: boolean;
1125
+ type?: string;
1126
+ slotController?: PktSlotController;
1127
+ optionsController?: PktOptionsSlotController;
1128
+ _options?: TOption[];
1160
1129
  defaultValue: string | string[] | null;
1161
1130
  disabled: boolean;
1162
1131
  readonly: boolean;
@@ -1192,22 +1161,124 @@ declare class PktInputElement<T = {}> extends PktElement<Props_2 & T> {
1192
1161
  tagText: string | null;
1193
1162
  dataTestid: string;
1194
1163
  touched: boolean;
1195
- _options?: any[];
1196
1164
  constructor();
1197
- protected manageValidity(input: HTMLInputElement): void;
1165
+ /**
1166
+ * Manages form validation state based on input validity
1167
+ * Called automatically by onChange, but can be called manually if needed
1168
+ *
1169
+ * @param input - The input element to validate (optional)
1170
+ * @protected
1171
+ */
1172
+ protected manageValidity(input?: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
1173
+ /**
1174
+ * Updates the form value for this input
1175
+ * Handles both single values and arrays (for multi-select)
1176
+ *
1177
+ * @param value - The value(s) to set in the form
1178
+ * @protected
1179
+ */
1198
1180
  protected setFormValue(value: string | string[]): void;
1181
+ /**
1182
+ * Coordinates radio button group by unchecking other radios with the same name
1183
+ * Only affects radio inputs within the same form
1184
+ *
1185
+ * @protected
1186
+ */
1187
+ protected coordinateRadioGroup(): void;
1188
+ /**
1189
+ * Updates checked state and form value for checkbox and radio inputs
1190
+ * Triggers this when you want to set the value of the radio or checkbox input to the form
1191
+ * Do not use valueChanged or onChange for radios and checkboxes!
1192
+ *
1193
+ * @param value - The checked state (string 'true'/'false', or boolean)
1194
+ * @protected
1195
+ */
1199
1196
  protected valueChecked(value: string | boolean | null): void;
1197
+ /**
1198
+ * Called when value changes (text inputs, select, etc.)
1199
+ * Subclasses can override to add custom value transformation logic
1200
+ *
1201
+ * @param value - The new value
1202
+ * @param _old - The previous value
1203
+ * @protected
1204
+ * @example
1205
+ * ```typescript
1206
+ * protected valueChanged(value: string, old: string): void {
1207
+ * const transformed = this.transformValue(value)
1208
+ * super.valueChanged(transformed, old)
1209
+ * }
1210
+ * ```
1211
+ */
1200
1212
  protected valueChanged(value: string | string[] | null, _old: string | string[] | null): void;
1213
+ /**
1214
+ * Dispatches change and value-change events
1215
+ *
1216
+ * @param value - The value to include in the event detail
1217
+ * @protected
1218
+ */
1219
+ protected dispatchChangeEvents(value: unknown): void;
1220
+ /**
1221
+ * When input goes from content to no content
1222
+ * @protected
1223
+ */
1201
1224
  protected clearInputValue(): void;
1225
+ /**
1226
+ * When user enters the input, dispatch focus event
1227
+ * @protected
1228
+ */
1202
1229
  protected onFocus(): void;
1230
+ /**
1231
+ * When user leaves the input, dispatch blur event
1232
+ * @protected
1233
+ */
1203
1234
  protected onBlur(): void;
1235
+ /**
1236
+ * Trigger this when user types in the input
1237
+ * @protected
1238
+ */
1204
1239
  protected onInput(): void;
1240
+ /**
1241
+ * Normalizes value format based on multiple/range settings
1242
+ *
1243
+ * @param value - The value to normalize
1244
+ * @returns Normalized value (array if multiple/range, string otherwise)
1245
+ * @private
1246
+ */
1247
+ private normalizeValue;
1248
+ /**
1249
+ * Validates the input element(s)
1250
+ * @private
1251
+ */
1252
+ private validate;
1253
+ /**
1254
+ * Trigger this when you want to set the value of the input out to the form
1255
+ * Handles value normalization, form updates, validation, and event dispatching
1256
+ *
1257
+ * @param value - The value to set
1258
+ * @protected
1259
+ */
1205
1260
  protected onChange(value: string | string[]): void;
1261
+ /**
1262
+ * Called when the form is reset
1263
+ * Resets the input to its default state
1264
+ * @protected
1265
+ */
1206
1266
  protected formResetCallback(): void;
1207
1267
  protected updated(_changedProperties: PropertyValues): void;
1208
1268
  protected firstUpdated(_changedProperties: PropertyValues): void;
1209
1269
  }
1210
1270
 
1271
+ /**
1272
+ * Base interface for input options used in select, combobox, etc.
1273
+ */
1274
+ declare interface PktInputOption {
1275
+ value: string;
1276
+ label?: string;
1277
+ selected?: boolean;
1278
+ disabled?: boolean;
1279
+ hidden?: boolean;
1280
+ }
1281
+
1211
1282
  export declare class PktInputWrapper extends PktElement<Props_6> {
1212
1283
  defaultSlot: Ref<HTMLElement>;
1213
1284
  helptextSlot: Ref<HTMLElement>;
@@ -1371,6 +1442,88 @@ export declare class PktModal extends PktElement implements IPktModal {
1371
1442
  render(): TemplateResult<1>;
1372
1443
  }
1373
1444
 
1445
+ /**
1446
+ * Base class for input elements that have options (select, combobox, etc.)
1447
+ * Provides common functionality for managing options from props or slots
1448
+ * @extends PktInputElement
1449
+ */
1450
+ declare abstract class PktOptionsInputElement<T = {}, TOption extends PktInputOption = PktInputOption> extends PktInputElement<Props_10 & T, TOption> {
1451
+ /**
1452
+ * Options passed as a prop
1453
+ * @private
1454
+ */
1455
+ protected _optionsProp: TOption[];
1456
+ /**
1457
+ * Internal state for parsed options
1458
+ * @protected
1459
+ */
1460
+ _options: TOption[];
1461
+ /**
1462
+ * Controller for managing options from slots
1463
+ */
1464
+ optionsController: PktOptionsSlotController;
1465
+ /**
1466
+ * Public getter for options that includes selected state
1467
+ * Override this in subclasses to customize the selected state logic
1468
+ */
1469
+ get options(): TOption[];
1470
+ /**
1471
+ * Public setter for options
1472
+ */
1473
+ set options(value: TOption[]);
1474
+ /**
1475
+ * Determines if an option is selected
1476
+ * Subclasses should override this to implement their selection logic
1477
+ *
1478
+ * @param option - The option to check
1479
+ * @returns True if the option is selected
1480
+ * @protected
1481
+ */
1482
+ protected isOptionSelected(option: TOption): boolean;
1483
+ /**
1484
+ * Finds an option by its value
1485
+ *
1486
+ * @param value - The value to search for
1487
+ * @returns The option if found, undefined otherwise
1488
+ * @protected
1489
+ */
1490
+ protected findOptionByValue(value: string): TOption | undefined;
1491
+ /**
1492
+ * Gets all currently selected options
1493
+ *
1494
+ * @returns Array of selected options
1495
+ * @protected
1496
+ */
1497
+ protected getSelectedOptions(): TOption[];
1498
+ /**
1499
+ * Parses options from either props or slot controller
1500
+ * Call this in connectedCallback to initialize options
1501
+ *
1502
+ * @protected
1503
+ */
1504
+ protected parseOptions(): void;
1505
+ /**
1506
+ * Re-parse options when the component updates
1507
+ * This ensures options stay in sync when they change dynamically
1508
+ *
1509
+ * @protected
1510
+ */
1511
+ protected willUpdate(_changedProperties: Map<PropertyKey, unknown>): void;
1512
+ }
1513
+
1514
+ declare class PktOptionsSlotController implements ReactiveController {
1515
+ host: LitElement & ReactiveControllerHost;
1516
+ nodes: Element[];
1517
+ options: TOption[];
1518
+ observer: MutationObserver;
1519
+ constructor(host: LitElement & ReactiveControllerHost);
1520
+ hostConnected(): void;
1521
+ hostDisconnected(): void;
1522
+ private addNode;
1523
+ private createOptions;
1524
+ private handleMutations;
1525
+ }
1526
+
1374
1527
  export declare class PktProgressbar extends PktElement implements IPktProgressbar {
1375
1528
  constructor();
1376
1529
  ariaLabel: string | null;
@@ -1402,7 +1555,7 @@ export declare class PktProgressbar extends PktElement implements IPktProgressba
1402
1555
  }
1403
1556
 
1404
1557
  declare class PktRadioButton extends PktInputElement<Props_7> {
1405
- private inputRef;
1558
+ inputRef: Ref<HTMLInputElement>;
1406
1559
  value: string;
1407
1560
  checkHelptext: string | null;
1408
1561
  defaultChecked: boolean;
@@ -1423,16 +1576,12 @@ declare class PktRadioButton extends PktInputElement<Props_7> {
1423
1576
  export { PktRadioButton }
1424
1577
  export { PktRadioButton as PktRadiobutton }
1425
1578
 
1426
- export declare class PktSelect extends PktInputElement implements IPktSelect {
1427
- private inputRef;
1579
+ export declare class PktSelect extends PktOptionsInputElement<{}, TSelectOption> implements IPktSelect {
1580
+ inputRef: Ref<HTMLSelectElement>;
1428
1581
  private helptextSlot;
1429
- private _optionsProp;
1430
1582
  value: string;
1431
- _options: TSelectOption[];
1432
1583
  selectedIndex: number | null;
1433
1584
  selectedOptions: HTMLCollectionOf<HTMLOptionElement> | undefined;
1434
- get options(): TSelectOption[];
1435
- set options(value: TSelectOption[]);
1436
1585
  constructor();
1437
1586
  connectedCallback(): void;
1438
1587
  add(item: HTMLOptionElement, before?: HTMLOptionElement | number): void;
@@ -1558,7 +1707,7 @@ export declare class PktTag extends PktElement<IPktTag> implements IPktTag {
1558
1707
  }
1559
1708
 
1560
1709
  export declare class PktTextarea extends PktInputElement<Props_8> {
1561
- private inputRef;
1710
+ inputRef: Ref<HTMLTextAreaElement>;
1562
1711
  private helptextSlot;
1563
1712
  value: string;
1564
1713
  autocomplete: string;
@@ -1571,7 +1720,7 @@ export declare class PktTextarea extends PktInputElement<Props_8> {
1571
1720
  }
1572
1721
 
1573
1722
  export declare class PktTextinput extends PktInputElement<Props_9> {
1574
- private inputRef;
1723
+ inputRef: Ref<HTMLTextAreaElement>;
1575
1724
  private helptextSlot;
1576
1725
  value: string;
1577
1726
  type: string;
@@ -1590,6 +1739,8 @@ export declare class PktTextinput extends PktInputElement<Props_9> {
1590
1739
 
1591
1740
  declare type Props = ElementProps<PktElement, 'strings' | 'role'>;
1592
1741
 
1742
+ declare type Props_10 = ElementProps<PktOptionsInputElement, 'options'>;
1743
+
1593
1744
  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'>;
1594
1745
 
1595
1746
  declare type Props_3 = ElementProps<PktCheckbox, 'checkHelptext' | 'defaultChecked' | 'hasTile' | 'isSwitch' | 'labelPosition' | 'hideLabel' | 'tagText' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText'>;
@@ -1647,6 +1798,13 @@ declare type TLinkCardSkin = 'normal' | 'no-padding' | 'blue' | 'beige' | 'green
1647
1798
 
1648
1799
  declare type TMonth = `${number}${number}`;
1649
1800
 
1801
+ declare type TOption = {
1802
+ value: string;
1803
+ label: string;
1804
+ selected?: boolean;
1805
+ disabled?: boolean;
1806
+ };
1807
+
1650
1808
  export declare type TPktAccordionSkin = TAccordionSkin;
1651
1809
 
1652
1810
  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';