@oslokommune/punkt-react 15.4.7 → 16.0.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,79 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
5
5
 
6
6
  ---
7
7
 
8
+ ## [16.1.0](https://github.com/oslokommune/punkt/compare/16.0.0...16.1.0) (2026-03-09)
9
+
10
+ ### ⚠ BREAKING CHANGES
11
+ Ingen
12
+
13
+ ### Features
14
+ Ingen
15
+
16
+ ### Bug Fixes
17
+ * Datepicker trenger preventDefault på klikk for å overstyre native kalender (#3363).
18
+
19
+
20
+ ### Chores
21
+ Ingen
22
+
23
+ ---
24
+
25
+
26
+ ## [16.0.0](https://github.com/oslokommune/punkt/compare/15.4.7...16.0.0) (2026-03-06)
27
+
28
+ ### ⚠ BREAKING CHANGES
29
+ * Massiv opprydding i PktCombobox (#3327). BREAKING CHANGE: **HTML-attributter har fått kebab-case-navn.** Påvirker kun de som setter disse via HTML-attributter. Property-bruk og React-props er uendret.
30
+
31
+ BREAKING CHANGE: **onValueChange i React** er nå en direkte callback (values: string[]) => void i stedet for CustomEvent
32
+
33
+ **Refaktorering**
34
+
35
+ - Delte typer flyttet til `shared-types/combobox.ts` (IPktComboboxOption, TPktComboboxTagPlacement osv.)
36
+ - Delte utils flyttet til `shared-utils/combobox/` (option-søk, logikk, typeahead, tastaturnavigasjon)
37
+ - `combobox-utils.ts` med Lit-spesifikke hjelpere (keyboard, focus-out, selection, input-state)
38
+ - `combobox-types.ts` som re-eksporterer fra shared-types for bakoverkompatibilitet
39
+ - Listbox refaktorert til å bruke shared-utils i stedet for inline-logikk
40
+
41
+ **Spec-korreksjoner i combobox.json**
42
+
43
+ - `multiple` default rettet fra `true` til `false`
44
+ - `typeahead` default rettet fra `true` til `false`
45
+ - `tagPlacement` default fjernet (var ugyldig `"top"`)
46
+ - `searchPlaceholder` lagt til (manglet)
47
+
48
+ **Kebab-case i Elements-attributter**
49
+
50
+ | Gammel | Ny |
51
+ |---|---|
52
+ | `defaultoptions` | `default-options` |
53
+ | `allowuserinput` | `allow-user-input` |
54
+ | `includesearch` | `include-search` |
55
+ | `searchplaceholder` | `search-placeholder` |
56
+ | `displayvalueas` | `display-value-as` |
57
+ | `tagplacement` | `tag-placement` |
58
+
59
+ **fra feat(css,elements,react): Combobox – fjernet knapp, fikset ARIA (https://github.com/oslokommune/punkt/pull/3348)**
60
+ - Fjernet pilknappen. Dette viste seg å være _betraktelig_ mer komplisert enn jeg skulle ønske, men det ble også en betydelig forbedret brukeropplevelse og en bedre løsning for skjermlesere.
61
+ - Gjort sånn at placeholder på felter med input _faktisk_ er en placeholder og ikke bare en span som later som den er en placeholder.
62
+ - Fiksa så ARIA henger mye mer på greip.
63
+ - Fiksa https://github.com/oslokommune/punkt/issues/3345, problem med foreldreløs "for"
64
+ - Fiksa https://github.com/oslokommune/punkt/issues/3335, problem med å legge til samme verdi flere ganger i multiple med allowUserInput
65
+ - For tags som er _inni_ combobox har jeg nå lagt til navigasjon med piltaster. ARIA Authoring Practices Guide har per nå ingen etablerte mønstre for tags _inni_ en combobox, så jeg har sett på Material UI for å se hvilket mønster de har gått for. Der har de et mønster hvor piltaster setter fokus på tags inni, og man kan bruke backspace for å fjerne et aktivt valg (eller det siste valget dersom ingen er valgt).
66
+ - Splitta opp combobox i Elements i fire filer og organisert dem i klasser som utvides i en kjede. Den beste løsningen jeg klarte å finne for å dele opp koden i mindre bolker. Elements er ikke helt som React, og mange fler ting var avhengig av hverandre.
67
+
68
+
69
+ ### Features
70
+ Ingen
71
+
72
+ ### Bug Fixes
73
+ Ingen
74
+
75
+ ### Chores
76
+ Ingen
77
+
78
+ ---
79
+
80
+
8
81
  ## [15.4.7](https://github.com/oslokommune/punkt/compare/15.4.6...15.4.7) (2026-03-05)
9
82
 
10
83
  ### ⚠ BREAKING CHANGES
package/dist/index.d.ts CHANGED
@@ -6,14 +6,13 @@ import { ChangeEventHandler } from 'react';
6
6
  import { CSSProperties } from 'react';
7
7
  import { default as default_2 } from 'react';
8
8
  import { FC } from 'react';
9
- import { FocusEventHandler } from 'react';
10
9
  import { ForwardRefExoticComponent } from 'react';
11
10
  import { HTMLAttributes } from 'react';
12
11
  import { HTMLProps } from 'react';
13
12
  import { IDatepickerStrings } from '../../../../../shared-types/datepicker';
14
13
  import { InputHTMLAttributes } from 'react';
15
14
  import { IPktBackLink as IPktBackLink_2 } from '@oslokommune/punkt-elements';
16
- import { IPktCombobox as IPktCombobox_2 } from '@oslokommune/punkt-elements';
15
+ import { IPktComboboxOption } from '../../../../../shared-types/combobox';
17
16
  import { IPktConsent as IPktConsent_2 } from '@oslokommune/punkt-elements';
18
17
  import { IPktHeading } from '@oslokommune/punkt-elements';
19
18
  import { IPktLoader as IPktLoader_2 } from '@oslokommune/punkt-elements';
@@ -41,6 +40,8 @@ import { THeaderScrollBehavior } from '../../../../../shared-types';
41
40
  import { TLayout } from '../../../../../shared-types';
42
41
  import { TLogOutButtonPlacement } from '../../../../../shared-types';
43
42
  import { TMessageboxSkin } from '../../../../../shared-types';
43
+ import { TPktComboboxDisplayValue } from '../../../../../shared-types/combobox';
44
+ import { TPktComboboxTagPlacement } from '../../../../../shared-types/combobox';
44
45
  import { TSlotMenuVariant } from '../../../../../shared-types';
45
46
 
46
47
  declare interface BasePktTagProps {
@@ -67,8 +68,6 @@ declare interface Column {
67
68
 
68
69
  declare type ExtendedBackLink = Omit<IPktBackLink_2, 'text'> & AnchorHTMLAttributes<HTMLAnchorElement>;
69
70
 
70
- declare type ExtendedCombobox = Omit<IPktCombobox_2, 'helptext'> & SelectHTMLAttributes<HTMLSelectElement>;
71
-
72
71
  declare type ExtendedLoader = IPktLoader_2 & PktElType;
73
72
 
74
73
  declare type ExtendedProgressbar = IPktProgressbar_2 & PktElType;
@@ -338,17 +337,41 @@ export declare interface IPktCheckbox extends InputHTMLAttributes<HTMLInputEleme
338
337
  onChange?: ChangeEventHandler<HTMLInputElement>;
339
338
  }
340
339
 
341
- export declare interface IPktCombobox extends ExtendedCombobox {
342
- helptext?: string | ReactNode | ReactNode[];
343
- ref?: LegacyRef<HTMLSelectElement>;
344
- onClick?: MouseEventHandler<HTMLSelectElement>;
345
- onChange?: ChangeEventHandler<HTMLSelectElement>;
346
- onInput?: ChangeEventHandler<HTMLSelectElement>;
347
- onBlur?: FocusEventHandler<HTMLSelectElement>;
348
- onFocus?: FocusEventHandler<HTMLSelectElement>;
349
- onValueChange?: (e: CustomEvent) => void;
350
- onToggleHelpText?: (e: CustomEvent) => void;
340
+ export declare interface IPktCombobox {
341
+ value?: string | string[];
342
+ defaultValue?: string | string[];
343
+ options?: IPktComboboxOption[];
344
+ defaultOptions?: IPktComboboxOption[];
345
+ multiple?: boolean;
346
+ maxlength?: number;
347
+ typeahead?: boolean;
348
+ includeSearch?: boolean;
349
+ allowUserInput?: boolean;
350
+ displayValueAs?: TPktComboboxDisplayValue;
351
+ tagPlacement?: TPktComboboxTagPlacement;
352
+ searchPlaceholder?: string;
353
+ name?: string;
354
+ id?: string;
355
+ disabled?: boolean;
356
+ required?: boolean;
357
+ placeholder?: string;
358
+ label?: string;
359
+ helptext?: string | ReactNode;
360
+ helptextDropdown?: string | ReactNode;
361
+ helptextDropdownButton?: string;
362
+ hasError?: boolean;
363
+ errorMessage?: string | ReactNode;
364
+ fullwidth?: boolean;
365
+ requiredTag?: boolean;
366
+ requiredText?: string;
367
+ optionalTag?: boolean;
368
+ optionalText?: string;
369
+ tagText?: string;
351
370
  useWrapper?: boolean;
371
+ onChange?: ChangeEventHandler<HTMLInputElement>;
372
+ onValueChange?: (values: string[]) => void;
373
+ className?: string;
374
+ children?: ReactNode;
352
375
  }
353
376
 
354
377
  declare interface IPktConsent extends IPktConsent_2 {
@@ -893,7 +916,7 @@ export declare const PktCard: FC<IPktCard>;
893
916
 
894
917
  export declare const PktCheckbox: ForwardRefExoticComponent<IPktCheckbox & RefAttributes<HTMLInputElement>>;
895
918
 
896
- export declare const PktCombobox: FC<IPktCombobox>;
919
+ export declare const PktCombobox: ForwardRefExoticComponent<IPktCombobox & RefAttributes<HTMLDivElement>>;
897
920
 
898
921
  export declare const PktConsent: ForwardRefExoticComponent<IPktConsent>;
899
922