@nl-design-system-community/clippy-components 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/clippy-button/index.d.ts +5 -4
  2. package/dist/clippy-button/index.d.ts.map +1 -1
  3. package/dist/clippy-button/index.js +7 -95
  4. package/dist/clippy-code/index.d.ts +3 -1
  5. package/dist/clippy-code/index.d.ts.map +1 -1
  6. package/dist/clippy-code/index.js +18 -14
  7. package/dist/clippy-color-combobox/index.d.ts +18 -17
  8. package/dist/clippy-color-combobox/index.d.ts.map +1 -1
  9. package/dist/clippy-color-combobox/index.js +5 -2
  10. package/dist/clippy-color-combobox/lib.d.ts +16 -12
  11. package/dist/clippy-color-combobox/lib.d.ts.map +1 -1
  12. package/dist/clippy-color-combobox/messages/en.d.ts +14 -6
  13. package/dist/clippy-color-combobox/messages/en.d.ts.map +1 -1
  14. package/dist/clippy-color-combobox/messages/nl.d.ts +14 -6
  15. package/dist/clippy-color-combobox/messages/nl.d.ts.map +1 -1
  16. package/dist/clippy-combobox/index.d.ts +26 -11
  17. package/dist/clippy-combobox/index.d.ts.map +1 -1
  18. package/dist/clippy-combobox/index.js +613 -294
  19. package/dist/clippy-font-combobox/index.d.ts +9 -3
  20. package/dist/clippy-font-combobox/index.d.ts.map +1 -1
  21. package/dist/clippy-font-combobox/index.js +100 -46
  22. package/dist/clippy-heading/index.d.ts +14 -0
  23. package/dist/clippy-heading/index.d.ts.map +1 -0
  24. package/dist/clippy-heading/index.js +268 -0
  25. package/dist/clippy-html-image/index.d.ts.map +1 -1
  26. package/dist/clippy-html-image/index.js +51 -28
  27. package/dist/clippy-icon/index.d.ts.map +1 -1
  28. package/dist/clippy-icon/index.js +22 -16
  29. package/dist/clippy-lang-combobox/index.d.ts +41 -0
  30. package/dist/clippy-lang-combobox/index.d.ts.map +1 -0
  31. package/dist/clippy-lang-combobox/index.js +316 -0
  32. package/dist/clippy-lang-combobox/languages.d.ts +202 -0
  33. package/dist/clippy-lang-combobox/languages.d.ts.map +1 -0
  34. package/dist/clippy-modal/index.d.ts +3 -3
  35. package/dist/clippy-modal/index.d.ts.map +1 -1
  36. package/dist/clippy-modal/index.js +103 -78
  37. package/dist/clippy-toggletip/index.d.ts +16 -0
  38. package/dist/clippy-toggletip/index.d.ts.map +1 -0
  39. package/dist/clippy-toggletip/index.js +180 -0
  40. package/dist/decorators-Cq82_-g_.js +11 -0
  41. package/dist/en-D1kE0w6o.js +4 -0
  42. package/dist/external-BCrp-PaG.js +4 -0
  43. package/dist/index-7tZ2Ykfm.js +135 -0
  44. package/dist/index-C9pF3BXT.js +10683 -0
  45. package/dist/lib/{FormField → FormElement}/index.d.ts +2 -1
  46. package/dist/lib/FormElement/index.d.ts.map +1 -0
  47. package/dist/lib/FormElement/index.js +95 -0
  48. package/dist/lib/LocalizationMixin/index.d.ts +29 -0
  49. package/dist/lib/LocalizationMixin/index.d.ts.map +1 -0
  50. package/dist/lib/LocalizationMixin/index.js +64 -0
  51. package/dist/lib/converters/index.d.ts +5 -0
  52. package/dist/lib/converters/index.d.ts.map +1 -1
  53. package/dist/lib/converters/index.js +35 -0
  54. package/dist/lib/decorators.d.ts +12 -0
  55. package/dist/lib/decorators.d.ts.map +1 -0
  56. package/dist/lib/sr-only/index.d.ts +3 -0
  57. package/dist/lib/sr-only/index.d.ts.map +1 -0
  58. package/dist/lib/sr-only/index.js +18 -0
  59. package/dist/nl-99gBQbne.js +19 -0
  60. package/package.json +21 -16
  61. package/dist/en-DR1i85jp.js +0 -4
  62. package/dist/external-GSP7IGqN.js +0 -4
  63. package/dist/index-C_dkFbzv.js +0 -3616
  64. package/dist/lib/FormField/index.d.ts.map +0 -1
  65. package/dist/nl-CJG2-yS5.js +0 -11
@@ -1,318 +1,610 @@
1
- var B = (t) => {
2
- throw TypeError(t);
3
- };
4
- var Y = (t, o, r) => o.has(t) || B("Cannot " + r);
5
- var I = (t, o, r) => (Y(t, o, "read from private field"), r ? r.call(t) : o.get(t)), R = (t, o, r) => o.has(t) ? B("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(t) : o.set(t, r), S = (t, o, r, e) => (Y(t, o, "write to private field"), e ? e.call(t, r) : o.set(t, r), r);
6
- import { LitElement as U, css as X, unsafeCSS as P, html as C, nothing as Z } from "lit";
7
- import { property as b, state as L, customElement as tt } from "lit/decorators.js";
8
- import { classMap as J } from "lit/directives/class-map.js";
9
- const ot = ".utrecht-combobox{inline-size:100%;max-inline-size:var(--utrecht-textbox-max-inline-size, var(--utrecht-form-control-max-inline-size));position:relative}.utrecht-combobox__popover{border-width:0;padding-block-end:0;padding-block-start:0;padding-inline-end:0;padding-inline-start:0;background-color:canvas;block-size:fit-content;color:canvastext;inline-size:fit-content;inset:0;overflow:auto;position:absolute;z-index:var(--utrecht-combobox-popover-z-index, 1)}.utrecht-combobox__popover--block-end{inset-block-start:100%}.utrecht-combobox__popover--hidden{display:none!important}", rt = ".utrecht-listbox{--utrecht-listbox-max-block-size: 300px;background-color:var(--_utrecht-listbox-disabled-background-color, var(--_utrecht-listbox-interactive-background-color, var(--utrecht-listbox-background-color)));border-color:var(--_utrecht-listbox-disabled-border-color, var(--_utrecht-listbox-interactive-border-color, var(--utrecht-listbox-border-color)));border-radius:var(--utrecht-listbox-border-radius);border-style:solid;border-width:var(--utrecht-listbox-border-width);box-sizing:border-box;color:var(--_utrecht-listbox-disabled-color, var(--_utrecht-listbox-interactive-color, var(--utrecht-listbox-color)));cursor:default;display:flex;flex-direction:column;font-weight:var(--utrecht-listbox-font-weight, var(--utrecht-form-control-font-weight, initial));inline-size:var(--utrecht-listbox-inline-size, var(--utrecht-form-control-max-inline-size));max-block-size:var(--utrecht-listbox-max-block-size);max-inline-size:100%;min-block-size:1em;overflow-block:auto;overflow-y:auto;padding-block-end:var(--utrecht-listbox-padding-block-end);padding-block-start:var(--utrecht-listbox-padding-block-start);padding-inline-end:var(--utrecht-listbox-padding-inline-end);padding-inline-start:var(--utrecht-listbox-padding-inline-start);-webkit-user-select:none;user-select:none}@media(forced-colors:active){.utrecht-listbox{--utrecht-listbox-background-color: field;--utrecht-listbox-border-color: fieldtext;--utrecht-listbox-hover-background-color: field;--utrecht-listbox-hover-border-color: fieldtext;--utrecht-listbox-hover-color: fieldtext;--utrecht-listbox-focus-border-color: Highlight;--utrecht-listbox-disabled-border-color: GrayText;--utrecht-listbox-option-background-color: field;--utrecht-listbox-option-color: fieldtext;--utrecht-listbox-option-hover-background-color: Highlight;--utrecht-listbox-option-hover-color: HighlightText;--utrecht-listbox-option-active-background-color: Highlight;--utrecht-listbox-option-active-color: HighlightText;--utrecht-listbox-option-disabled-background-color: field;--utrecht-listbox-option-disabled-color: GrayText;--utrecht-listbox-option-selected-background-color: Highlight;--utrecht-listbox-option-selected-color: HighlightText;--utrecht-listbox-option-selected-hover-background-color: Highlight;--utrecht-listbox-option-selected-hover-color: HighlightText;--utrecht-listbox-option-selected-disabled-background-color: GrayText;--utrecht-listbox-option-selected-disabled-color: field}}.utrecht-listbox--focus{--_utrecht-listbox-interactive-border-color: var(--utrecht-listbox-focus-border-color)}.utrecht-listbox--focus-visible{--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0) var(--utrecht-focus-inverse-outline-color, transparent);box-shadow:var(--_utrecht-focus-ring-box-shadow);outline-color:var(--utrecht-focus-outline-color, revert);outline-offset:var(--utrecht-focus-outline-offset, revert);outline-style:var(--utrecht-focus-outline-style, revert);outline-width:var(--utrecht-focus-outline-width, revert);z-index:1}.utrecht-listbox__list{margin-block-end:0;margin-block-start:0;margin-inline-end:0;margin-inline-start:0;padding-inline-start:0}.utrecht-listbox__group{margin-block-end:0;margin-block-start:0;margin-inline-end:0;margin-inline-start:0;padding-inline-start:0;margin-block-end:var(--utrecht-listbox-option-group-margin-block-end)}.utrecht-listbox__group-label{color:var(--utrecht-listbox-option-group-label-color);font-size:var(--utrecht-listbox-option-group-label-font-size);font-weight:var(--utrecht-listbox-option-group-label-font-weight);line-height:var(--utrecht-listbox-option-group-label-line-height);margin-inline-start:var(--utrecht-listbox-option-group-label-margin-inline-start)}@media(forced-colors:active){.utrecht-listbox__group-label{background-color:field;color:fieldtext}}.utrecht-listbox__option{list-style:none;--_utrecht-listbox-option-background-color: var( --_utrecht-listbox-option-disabled-background-color, var( --_utrecht-listbox-option-interactive-background-color, var(--_utrecht-listbox-option-state-background-color, var(--utrecht-listbox-option-background-color)) ) );--_utrecht-listbox-option-color: var( --_utrecht-listbox-option-disabled-color, var( --_utrecht-listbox-option-interactive-color, var(--_utrecht-listbox-option-state-color, var(--utrecht-listbox-option-color)) ) );align-items:center;background-color:var(--_utrecht-listbox-option-background-color);box-sizing:border-box;color:var(--_utrecht-listbox-option-color);display:flex;min-block-size:var(--utrecht-listbox-option-min-block-size, var(--utrecht-pointer-target-min-size, 24px));padding-block-end:var(--utrecht-listbox-option-padding-block-end);padding-block-start:var(--utrecht-listbox-option-padding-block-start);padding-inline-end:var(--utrecht-listbox-option-padding-inline-end);padding-inline-start:var(--utrecht-listbox-option-padding-inline-start)}@media(forced-colors:active){.utrecht-listbox__option{forced-color-adjust:none}}.utrecht-listbox__option--hover{--_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-hover-background-color);--_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-hover-color)}.utrecht-listbox__option--focus{--_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-focus-background-color);--_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-focus-color)}.utrecht-listbox__option--focus-visible{--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0) var(--utrecht-focus-inverse-outline-color, transparent);box-shadow:var(--_utrecht-focus-ring-box-shadow);outline-color:var(--utrecht-focus-outline-color, revert);outline-offset:var(--utrecht-focus-outline-offset, revert);outline-style:var(--utrecht-focus-outline-style, revert);outline-width:var(--utrecht-focus-outline-width, revert);z-index:1;--utrecht-focus-outline-offset: calc(var(--utrecht-focus-outline-width) * -1)}.utrecht-listbox__option--active{--_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-active-background-color);--_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-active-color);font-weight:var(--utrecht-listbox-option-is-active-font-weight)}.utrecht-listbox__option--selected{--_utrecht-listbox-option-disabled-background-color: var(--utrecht-listbox-option-selected-disabled-background-color);--_utrecht-listbox-option-disabled-color: var(--utrecht-listbox-option-selected-disabled-color);--_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-selected-hover-background-color);--_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-selected-hover-color);--_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-selected-background-color);--_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-selected-color)}.utrecht-listbox__option--html-li{list-style:none}.utrecht-listbox__option--html-li:hover{--_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-hover-background-color);--_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-hover-color)}.utrecht-listbox__option--html-li:focus{--_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-focus-background-color);--_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-focus-color)}.utrecht-listbox__option--disabled{--utrecht-listbox-option-hover-background-color: var(--utrecht-listbox-option-disabled-background-color);--utrecht-listbox-option-hover-color: var(--utrecht-listbox-option-disabled-color);--_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-disabled-background-color);--_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-disabled-color);cursor:var(--utrecht-action-disabled-cursor, not-allowed)}.utrecht-listbox--disabled{--_utrecht-listbox-option-disabled-background-color: var(--utrecht-listbox-option-disabled-background-color);--_utrecht-listbox-option-disabled-color: var(--utrecht-listbox-option-disabled-color);--_utrecht-listbox-disabled-background-color: var(--utrecht-listbox-disabled-background-color);--_utrecht-listbox-disabled-border-color: var(--utrecht-listbox-disabled-border-color);--_utrecht-listbox-disabled-color: var(--utrecht-listbox-disabled-color);cursor:var(--utrecht-action-disabled-cursor, not-allowed)}.utrecht-listbox--html-div:focus{--_utrecht-listbox-interactive-border-color: var(--utrecht-listbox-focus-border-color)}.utrecht-listbox--html-div:focus-visible{--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0) var(--utrecht-focus-inverse-outline-color, transparent);box-shadow:var(--_utrecht-focus-ring-box-shadow);outline-color:var(--utrecht-focus-outline-color, revert);outline-offset:var(--utrecht-focus-outline-offset, revert);outline-style:var(--utrecht-focus-outline-style, revert);outline-width:var(--utrecht-focus-outline-width, revert);z-index:1}.utrecht-listbox--forced-colors{--utrecht-listbox-background-color: field;--utrecht-listbox-border-color: fieldtext;--utrecht-listbox-hover-background-color: field;--utrecht-listbox-hover-border-color: fieldtext;--utrecht-listbox-hover-color: fieldtext;--utrecht-listbox-focus-border-color: Highlight;--utrecht-listbox-disabled-border-color: GrayText;--utrecht-listbox-option-background-color: field;--utrecht-listbox-option-color: fieldtext;--utrecht-listbox-option-hover-background-color: Highlight;--utrecht-listbox-option-hover-color: HighlightText;--utrecht-listbox-option-active-background-color: Highlight;--utrecht-listbox-option-active-color: HighlightText;--utrecht-listbox-option-disabled-background-color: field;--utrecht-listbox-option-disabled-color: GrayText;--utrecht-listbox-option-selected-background-color: Highlight;--utrecht-listbox-option-selected-color: HighlightText;--utrecht-listbox-option-selected-hover-background-color: Highlight;--utrecht-listbox-option-selected-hover-color: HighlightText;--utrecht-listbox-option-selected-disabled-background-color: GrayText;--utrecht-listbox-option-selected-disabled-color: field}", et = '.utrecht-textbox{--_utrecht-textbox-value-char: .667em + .334ch;--_utrecht-textbox-max-inline-size: calc( calc(var(--utrecht-textbox-value-max-length) * var(--_utrecht-textbox-value-char)) + var(--utrecht-textbox-padding-inline-end, var(--utrecht-form-control-padding-inline-end, 0)) + var(--utrecht-textbox-padding-inline-start, var(--utrecht-form-control-padding-inline-start, 0)) + var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width, 0)) + var(--utrecht-textbox-autocomplete-ui-size, 44px) );background-color:var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color));block-size:initial;border-width:var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width));border-block-end-width:var(--utrecht-textbox-border-bottom-width, var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width)));border-color:var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color));border-radius:var(--utrecht-textbox-border-radius, var(--utrecht-form-control-border-radius, 0));border-style:solid;box-sizing:border-box;color:var(--utrecht-textbox-color, var(--utrecht-form-control-color));font-family:var(--utrecht-textbox-font-family, var(--utrecht-form-control-font-family));font-size:var(--utrecht-textbox-font-size, var(--utrecht-form-control-font-size, inherit));font-weight:var(--utrecht-textbox-font-weight, var(--utrecht-form-control-font-weight, initial));inline-size:100%;line-height:var(--utrecht-textbox-line-height, var(--utrecht-form-control-line-height, initial));min-block-size:var(--utrecht-pointer-target-min-size, 44px);min-inline-size:var(--utrecht-pointer-target-min-size, 44px);max-inline-size:min(var(--_utrecht-textbox-max-inline-size, 100%),var(--utrecht-textbox-max-inline-size, var(--utrecht-form-control-max-inline-size)));padding-block-end:var(--utrecht-textbox-padding-block-end, var(--utrecht-form-control-padding-block-end, 0));padding-block-start:var(--utrecht-textbox-padding-block-start, var(--utrecht-form-control-padding-block-start, 0));padding-inline-end:var(--utrecht-textbox-padding-inline-end, var(--utrecht-form-control-padding-inline-end, initial));padding-inline-start:var(--utrecht-textbox-padding-inline-start, var(--utrecht-form-control-padding-inline-start, initial))}.utrecht-textbox--invalid{--_utrecht-textbox-border-width: var( --utrecht-textbox-invalid-border-width, var( --utrecht-form-control-invalid-border-width, var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width)) ) );background-color:var(--utrecht-textbox-invalid-background-color, var(--utrecht-form-control-invalid-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-width:var(--_utrecht-textbox-border-width);border-block-end-width:var(--utrecht-textbox-invalid-border-bottom-width, var(--utrecht-form-control-invalid-border-bottom-width, var(--utrecht-textbox-border-bottom-width, var(--utrecht-form-control-border-bottom-width, var(--_utrecht-textbox-border-width)))));border-color:var(--utrecht-textbox-invalid-border-color, var(--utrecht-form-control-invalid-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-invalid-color, var(--utrecht-form-control-invalid-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox--disabled{background-color:var(--utrecht-textbox-disabled-background-color, var(--utrecht-form-control-disabled-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-disabled-border-color, var(--utrecht-form-control-disabled-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-disabled-color, var(--utrecht-form-control-disabled-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));cursor:var(--utrecht-action-disabled-cursor, not-allowed)}.utrecht-textbox--focus{background-color:var(--utrecht-textbox-focus-background-color, var(--utrecht-form-control-focus-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-focus-border-color, var(--utrecht-form-control-focus-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-focus-color, var(--utrecht-form-control-focus-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox--focus-visible{--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0) var(--utrecht-focus-inverse-outline-color, transparent);box-shadow:var(--_utrecht-focus-ring-box-shadow);outline-color:var(--utrecht-focus-outline-color, revert);outline-offset:var(--utrecht-focus-outline-offset, revert);outline-style:var(--utrecht-focus-outline-style, revert);outline-width:var(--utrecht-focus-outline-width, revert);z-index:1}.utrecht-textbox--read-only{background-color:var(--utrecht-textbox-read-only-background-color, var(--utrecht-form-control-read-only-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-read-only-border-color, var(--utrecht-form-control-read-only-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-read-only-color, var(--utrecht-form-control-read-only-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox__placeholder{color:var(--utrecht-textbox-placeholder-color, var(--utrecht-form-control-placeholder-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));font-style:var(--utrecht-form-control-placeholder-font-style);opacity:100%}.utrecht-textbox--numeric{-moz-appearance:textfield;font-variant-numeric:lining-nums tabular-nums}.utrecht-textbox--password{font-variant-ligatures:none;font-variant-numeric:slashed-zero}.utrecht-textbox--postal-code-nl-size{--utrecht-textbox-value-max-length: 7}.utrecht-textbox--house-number-size{--utrecht-textbox-value-max-length: 5}.utrecht-textbox--house-letter-size{--utrecht-textbox-value-max-length: 1}.utrecht-textbox--house-addition-size{--utrecht-textbox-value-max-length: 4}.utrecht-textbox--voorvoegsel-size{--utrecht-textbox-value-max-length: 10}.utrecht-textbox--tel-size{--utrecht-textbox-value-max-length: 19}.utrecht-textbox--tel-nl-size{--utrecht-textbox-value-max-length: 13}.utrecht-textbox--iban-size{--utrecht-textbox-value-max-length: 41}.utrecht-textbox--iban-nl-size{--utrecht-textbox-value-max-length: 22}.utrecht-textbox--placeholder-ltr::placeholder,.utrecht-textbox--placeholder-ltr:placeholder-shown{direction:ltr}.utrecht-textbox--placeholder-rtl::placeholder,.utrecht-textbox--placeholder-rtl:placeholder-shown{direction:rtl}.utrecht-textbox--url{font-variant-ligatures:none}.utrecht-textbox--html-input:focus{background-color:var(--utrecht-textbox-focus-background-color, var(--utrecht-form-control-focus-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-focus-border-color, var(--utrecht-form-control-focus-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-focus-color, var(--utrecht-form-control-focus-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox--html-input:focus-visible{--_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0) var(--utrecht-focus-inverse-outline-color, transparent);box-shadow:var(--_utrecht-focus-ring-box-shadow);outline-color:var(--utrecht-focus-outline-color, revert);outline-offset:var(--utrecht-focus-outline-offset, revert);outline-style:var(--utrecht-focus-outline-style, revert);outline-width:var(--utrecht-focus-outline-width, revert);z-index:1}.utrecht-textbox--html-input:user-invalid,.utrecht-textbox--html-input[aria-invalid=true]{--_utrecht-textbox-border-width: var( --utrecht-textbox-invalid-border-width, var( --utrecht-form-control-invalid-border-width, var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width)) ) );background-color:var(--utrecht-textbox-invalid-background-color, var(--utrecht-form-control-invalid-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-width:var(--_utrecht-textbox-border-width);border-block-end-width:var(--utrecht-textbox-invalid-border-bottom-width, var(--utrecht-form-control-invalid-border-bottom-width, var(--utrecht-textbox-border-bottom-width, var(--utrecht-form-control-border-bottom-width, var(--_utrecht-textbox-border-width)))));border-color:var(--utrecht-textbox-invalid-border-color, var(--utrecht-form-control-invalid-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-invalid-color, var(--utrecht-form-control-invalid-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox--html-input:read-only{background-color:var(--utrecht-textbox-read-only-background-color, var(--utrecht-form-control-read-only-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-read-only-border-color, var(--utrecht-form-control-read-only-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-read-only-color, var(--utrecht-form-control-read-only-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))))}.utrecht-textbox--html-input:disabled{background-color:var(--utrecht-textbox-disabled-background-color, var(--utrecht-form-control-disabled-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));border-color:var(--utrecht-textbox-disabled-border-color, var(--utrecht-form-control-disabled-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));color:var(--utrecht-textbox-disabled-color, var(--utrecht-form-control-disabled-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));cursor:var(--utrecht-action-disabled-cursor, not-allowed)}.utrecht-textbox--html-input::placeholder{color:var(--utrecht-textbox-placeholder-color, var(--utrecht-form-control-placeholder-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));font-style:var(--utrecht-form-control-placeholder-font-style);opacity:100%}.utrecht-textbox--html-input[type=password i]{font-variant-ligatures:none;font-variant-numeric:slashed-zero}.utrecht-textbox--html-input[type=url i],.utrecht-textbox--html-input[type=email i],.utrecht-textbox--html-input[inputMode=email i],.utrecht-textbox--html-input[inputMode=url i]{font-variant-ligatures:none}.utrecht-textbox--html-input[pattern="\\\\d*"],.utrecht-textbox--html-input[pattern="[0-9]*"],.utrecht-textbox--html-input[type=number i],.utrecht-textbox--html-input[type=tel i],.utrecht-textbox--html-input[inputMode=numeric i],.utrecht-textbox--html-input[inputMode=decimal i],.utrecht-textbox--html-input[inputMode=tel i]{-moz-appearance:textfield;font-variant-numeric:lining-nums tabular-nums}', ct = (t, o, r, e) => {
10
- if (r === "length" || r === "prototype" || r === "arguments" || r === "caller")
11
- return;
12
- const c = Object.getOwnPropertyDescriptor(t, r), i = Object.getOwnPropertyDescriptor(o, r);
13
- !it(c, i) && e || Object.defineProperty(t, r, i);
14
- }, it = function(t, o) {
15
- return t === void 0 || t.configurable || t.writable === o.writable && t.enumerable === o.enumerable && t.configurable === o.configurable && (t.writable || t.value === o.value);
16
- }, lt = (t, o) => {
17
- const r = Object.getPrototypeOf(o);
18
- r !== Object.getPrototypeOf(t) && Object.setPrototypeOf(t, r);
19
- }, nt = (t, o) => `/* Wrapped ${t}*/
20
- ${o}`, at = Object.getOwnPropertyDescriptor(Function.prototype, "toString"), ut = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name"), st = (t, o, r) => {
21
- const e = r === "" ? "" : `with ${r.trim()}() `, c = nt.bind(null, e, o.toString());
22
- Object.defineProperty(c, "name", ut);
23
- const { writable: i, enumerable: a, configurable: k } = at;
24
- Object.defineProperty(t, "toString", { value: c, writable: i, enumerable: a, configurable: k });
25
- };
26
- function ht(t, o, { ignoreNonConfigurable: r = !1 } = {}) {
27
- const { name: e } = t;
28
- for (const c of Reflect.ownKeys(o))
29
- ct(t, o, c, r);
30
- return lt(t, o), st(t, o, e), t;
31
- }
32
- const w = 2147483647, dt = /* @__PURE__ */ new WeakMap(), M = /* @__PURE__ */ new WeakMap(), bt = /* @__PURE__ */ new WeakMap();
33
- function xt(t, o) {
34
- const r = t.get(o);
35
- if (r) {
36
- if (r.maxAge <= Date.now()) {
37
- t.delete(o);
38
- return;
1
+ import { s as safeCustomElement } from "../decorators-Cq82_-g_.js";
2
+ import { css, unsafeCSS, nothing, html } from "lit";
3
+ import { property, state } from "lit/decorators.js";
4
+ import { classMap } from "lit/directives/class-map.js";
5
+ import { ifDefined } from "lit/directives/if-defined.js";
6
+ import { allowedValuesConverter, arrayFromTokenList } from "../lib/converters/index.js";
7
+ import { FormElement } from "../lib/FormElement/index.js";
8
+ import srOnly from "../lib/sr-only/index.js";
9
+ const comboboxStyles = "/**\n * @license EUPL-1.2\n * Copyright (c) 2023 Frameless B.V.\n */\n.utrecht-combobox {\n inline-size: 100%;\n max-inline-size: var(--utrecht-textbox-max-inline-size, var(--utrecht-form-control-max-inline-size));\n position: relative;\n}\n\n.utrecht-combobox__popover {\n border-width: 0;\n padding-block-end: 0;\n padding-block-start: 0;\n padding-inline-end: 0;\n padding-inline-start: 0;\n background-color: canvas;\n block-size: fit-content;\n color: canvastext;\n inline-size: fit-content;\n inset: 0;\n overflow: auto;\n position: absolute;\n z-index: var(--utrecht-combobox-popover-z-index, 1);\n}\n\n.utrecht-combobox__popover--block-end {\n inset-block-start: 100%;\n}\n\n.utrecht-combobox__popover--hidden {\n display: none !important;\n}";
10
+ const listboxStyles = "/**\n * @license EUPL-1.2\n * Copyright (c) 2020-2024 Frameless B.V.\n * Copyright (c) 2021-2024 Gemeente Utrecht\n */\n/**\n * @license EUPL-1.2\n * Copyright (c) 2023 Frameless B.V.\n */\n.utrecht-listbox {\n --utrecht-listbox-max-block-size: 300px;\n background-color: var(--_utrecht-listbox-disabled-background-color, var(--_utrecht-listbox-interactive-background-color, var(--utrecht-listbox-background-color)));\n border-color: var(--_utrecht-listbox-disabled-border-color, var(--_utrecht-listbox-interactive-border-color, var(--utrecht-listbox-border-color)));\n border-radius: var(--utrecht-listbox-border-radius);\n border-style: solid;\n border-width: var(--utrecht-listbox-border-width);\n box-sizing: border-box;\n color: var(--_utrecht-listbox-disabled-color, var(--_utrecht-listbox-interactive-color, var(--utrecht-listbox-color)));\n cursor: default;\n display: flex;\n flex-direction: column;\n font-weight: var(--utrecht-listbox-font-weight, var(--utrecht-form-control-font-weight, initial));\n inline-size: var(--utrecht-listbox-inline-size, var(--utrecht-form-control-max-inline-size));\n max-block-size: var(--utrecht-listbox-max-block-size);\n max-inline-size: 100%;\n min-block-size: 1em;\n overflow-block: auto;\n overflow-y: auto;\n padding-block-end: var(--utrecht-listbox-padding-block-end);\n padding-block-start: var(--utrecht-listbox-padding-block-start);\n padding-inline-end: var(--utrecht-listbox-padding-inline-end);\n padding-inline-start: var(--utrecht-listbox-padding-inline-start);\n -webkit-user-select: none;\n user-select: none;\n}\n@media (forced-colors: active) {\n .utrecht-listbox {\n --utrecht-listbox-background-color: field;\n --utrecht-listbox-border-color: fieldtext;\n --utrecht-listbox-hover-background-color: field;\n --utrecht-listbox-hover-border-color: fieldtext;\n --utrecht-listbox-hover-color: fieldtext;\n --utrecht-listbox-focus-border-color: Highlight;\n --utrecht-listbox-disabled-border-color: GrayText;\n --utrecht-listbox-option-background-color: field;\n --utrecht-listbox-option-color: fieldtext;\n --utrecht-listbox-option-hover-background-color: Highlight;\n --utrecht-listbox-option-hover-color: HighlightText;\n --utrecht-listbox-option-active-background-color: Highlight;\n --utrecht-listbox-option-active-color: HighlightText;\n --utrecht-listbox-option-disabled-background-color: field;\n --utrecht-listbox-option-disabled-color: GrayText;\n --utrecht-listbox-option-selected-background-color: Highlight;\n --utrecht-listbox-option-selected-color: HighlightText;\n --utrecht-listbox-option-selected-hover-background-color: Highlight;\n --utrecht-listbox-option-selected-hover-color: HighlightText;\n --utrecht-listbox-option-selected-disabled-background-color: GrayText;\n --utrecht-listbox-option-selected-disabled-color: field;\n }\n}\n\n.utrecht-listbox--focus {\n --_utrecht-listbox-interactive-border-color: var(--utrecht-listbox-focus-border-color);\n}\n\n.utrecht-listbox--focus-visible {\n --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)\n var(--utrecht-focus-inverse-outline-color, transparent);\n box-shadow: var(--_utrecht-focus-ring-box-shadow);\n outline-color: var(--utrecht-focus-outline-color, revert);\n outline-offset: var(--utrecht-focus-outline-offset, revert);\n outline-style: var(--utrecht-focus-outline-style, revert);\n outline-width: var(--utrecht-focus-outline-width, revert);\n z-index: 1;\n}\n\n.utrecht-listbox--invalid {\n}\n\n.utrecht-listbox__list {\n margin-block-end: 0;\n margin-block-start: 0;\n margin-inline-end: 0;\n margin-inline-start: 0;\n padding-inline-start: 0;\n}\n\n.utrecht-listbox__group {\n margin-block-end: 0;\n margin-block-start: 0;\n margin-inline-end: 0;\n margin-inline-start: 0;\n padding-inline-start: 0;\n margin-block-end: var(--utrecht-listbox-option-group-margin-block-end);\n}\n\n.utrecht-listbox__group-label {\n color: var(--utrecht-listbox-option-group-label-color);\n font-size: var(--utrecht-listbox-option-group-label-font-size);\n font-weight: var(--utrecht-listbox-option-group-label-font-weight);\n line-height: var(--utrecht-listbox-option-group-label-line-height);\n margin-inline-start: var(--utrecht-listbox-option-group-label-margin-inline-start);\n}\n@media (forced-colors: active) {\n .utrecht-listbox__group-label {\n background-color: field;\n color: fieldtext;\n }\n}\n\n.utrecht-listbox__option {\n list-style: none;\n --_utrecht-listbox-option-background-color: var(\n --_utrecht-listbox-option-disabled-background-color,\n var(\n --_utrecht-listbox-option-interactive-background-color,\n var(--_utrecht-listbox-option-state-background-color, var(--utrecht-listbox-option-background-color))\n )\n );\n --_utrecht-listbox-option-color: var(\n --_utrecht-listbox-option-disabled-color,\n var(\n --_utrecht-listbox-option-interactive-color,\n var(--_utrecht-listbox-option-state-color, var(--utrecht-listbox-option-color))\n )\n );\n align-items: center;\n background-color: var(--_utrecht-listbox-option-background-color);\n box-sizing: border-box;\n color: var(--_utrecht-listbox-option-color);\n display: flex;\n min-block-size: var(--utrecht-listbox-option-min-block-size, var(--utrecht-pointer-target-min-size, 24px));\n padding-block-end: var(--utrecht-listbox-option-padding-block-end);\n padding-block-start: var(--utrecht-listbox-option-padding-block-start);\n padding-inline-end: var(--utrecht-listbox-option-padding-inline-end);\n padding-inline-start: var(--utrecht-listbox-option-padding-inline-start);\n}\n@media (forced-colors: active) {\n .utrecht-listbox__option {\n forced-color-adjust: none;\n }\n}\n\n.utrecht-listbox__option--hover {\n --_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-hover-background-color);\n --_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-hover-color);\n}\n\n.utrecht-listbox__option--focus {\n --_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-focus-background-color);\n --_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-focus-color);\n}\n\n.utrecht-listbox__option--focus-visible {\n --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)\n var(--utrecht-focus-inverse-outline-color, transparent);\n box-shadow: var(--_utrecht-focus-ring-box-shadow);\n outline-color: var(--utrecht-focus-outline-color, revert);\n outline-offset: var(--utrecht-focus-outline-offset, revert);\n outline-style: var(--utrecht-focus-outline-style, revert);\n outline-width: var(--utrecht-focus-outline-width, revert);\n z-index: 1;\n --utrecht-focus-outline-offset: calc(var(--utrecht-focus-outline-width) * -1);\n}\n\n.utrecht-listbox__option--active {\n --_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-active-background-color);\n --_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-active-color);\n font-weight: var(--utrecht-listbox-option-is-active-font-weight);\n}\n\n.utrecht-listbox__option--selected {\n --_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-selected-background-color);\n --_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-selected-color);\n}\n\n.utrecht-listbox__option--html-li {\n list-style: none;\n}\n.utrecht-listbox__option--html-li:hover {\n --_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-hover-background-color);\n --_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-hover-color);\n}\n.utrecht-listbox__option--html-li:focus {\n --_utrecht-listbox-option-state-background-color: var(--utrecht-listbox-option-focus-background-color);\n --_utrecht-listbox-option-state-color: var(--utrecht-listbox-option-focus-color);\n}\n.utrecht-listbox__option--disabled {\n --utrecht-listbox-option-hover-background-color: var(--utrecht-listbox-option-disabled-background-color);\n --utrecht-listbox-option-hover-color: var(--utrecht-listbox-option-disabled-color);\n --_utrecht-listbox-option-interactive-background-color: var(--utrecht-listbox-option-disabled-background-color);\n --_utrecht-listbox-option-interactive-color: var(--utrecht-listbox-option-disabled-color);\n cursor: var(--utrecht-action-disabled-cursor, not-allowed);\n}\n.utrecht-listbox__option--disabled.utrecht-listbox__option--selected {\n --_utrecht-listbox-option-disabled-background-color: var(--utrecht-listbox-option-selected-disabled-background-color);\n --_utrecht-listbox-option-disabled-color: var(--utrecht-listbox-option-selected-disabled-color);\n}\n\n.utrecht-listbox--disabled {\n --_utrecht-listbox-option-disabled-background-color: var(--utrecht-listbox-option-disabled-background-color);\n --_utrecht-listbox-option-disabled-color: var(--utrecht-listbox-option-disabled-color);\n --_utrecht-listbox-disabled-background-color: var(--utrecht-listbox-disabled-background-color);\n --_utrecht-listbox-disabled-border-color: var(--utrecht-listbox-disabled-border-color);\n --_utrecht-listbox-disabled-color: var(--utrecht-listbox-disabled-color);\n cursor: var(--utrecht-action-disabled-cursor, not-allowed);\n}\n\n.utrecht-listbox--html-div:focus {\n --_utrecht-listbox-interactive-border-color: var(--utrecht-listbox-focus-border-color);\n}\n.utrecht-listbox--html-div:focus-visible {\n --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)\n var(--utrecht-focus-inverse-outline-color, transparent);\n box-shadow: var(--_utrecht-focus-ring-box-shadow);\n outline-color: var(--utrecht-focus-outline-color, revert);\n outline-offset: var(--utrecht-focus-outline-offset, revert);\n outline-style: var(--utrecht-focus-outline-style, revert);\n outline-width: var(--utrecht-focus-outline-width, revert);\n z-index: 1;\n}\n\n.utrecht-listbox--forced-colors {\n --utrecht-listbox-background-color: field;\n --utrecht-listbox-border-color: fieldtext;\n --utrecht-listbox-hover-background-color: field;\n --utrecht-listbox-hover-border-color: fieldtext;\n --utrecht-listbox-hover-color: fieldtext;\n --utrecht-listbox-focus-border-color: Highlight;\n --utrecht-listbox-disabled-border-color: GrayText;\n --utrecht-listbox-option-background-color: field;\n --utrecht-listbox-option-color: fieldtext;\n --utrecht-listbox-option-hover-background-color: Highlight;\n --utrecht-listbox-option-hover-color: HighlightText;\n --utrecht-listbox-option-active-background-color: Highlight;\n --utrecht-listbox-option-active-color: HighlightText;\n --utrecht-listbox-option-disabled-background-color: field;\n --utrecht-listbox-option-disabled-color: GrayText;\n --utrecht-listbox-option-selected-background-color: Highlight;\n --utrecht-listbox-option-selected-color: HighlightText;\n --utrecht-listbox-option-selected-hover-background-color: Highlight;\n --utrecht-listbox-option-selected-hover-color: HighlightText;\n --utrecht-listbox-option-selected-disabled-background-color: GrayText;\n --utrecht-listbox-option-selected-disabled-color: field;\n}";
11
+ const textboxStyles = '/**\n * @license EUPL-1.2\n * Copyright (c) 2020-2024 Frameless B.V.\n * Copyright (c) 2021-2024 Gemeente Utrecht\n */\n.utrecht-textbox {\n --_utrecht-textbox-value-char: 0.667em + 0.334ch;\n --_utrecht-textbox-max-inline-size: calc(\n calc(var(--utrecht-textbox-value-max-length) * var(--_utrecht-textbox-value-char)) +\n var(--utrecht-textbox-padding-inline-end, var(--utrecht-form-control-padding-inline-end, 0)) +\n var(--utrecht-textbox-padding-inline-start, var(--utrecht-form-control-padding-inline-start, 0)) +\n var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width, 0)) +\n var(--utrecht-textbox-autocomplete-ui-size, 44px)\n );\n background-color: var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color));\n block-size: initial;\n border-width: var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width));\n border-block-end-width: var(--utrecht-textbox-border-bottom-width, var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width)));\n border-color: var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color));\n border-radius: var(--utrecht-textbox-border-radius, var(--utrecht-form-control-border-radius, 0));\n border-style: solid;\n box-sizing: border-box;\n color: var(--utrecht-textbox-color, var(--utrecht-form-control-color));\n display: block;\n font-family: var(--utrecht-textbox-font-family, var(--utrecht-form-control-font-family));\n font-size: var(--utrecht-textbox-font-size, var(--utrecht-form-control-font-size, inherit));\n font-weight: var(--utrecht-textbox-font-weight, var(--utrecht-form-control-font-weight, initial));\n inline-size: 100%;\n line-height: var(--utrecht-textbox-line-height, var(--utrecht-form-control-line-height, initial));\n min-block-size: var(--utrecht-pointer-target-min-size, 44px);\n min-inline-size: var(--utrecht-pointer-target-min-size, 44px);\n max-inline-size: min(var(--_utrecht-textbox-max-inline-size, 100%), var(--utrecht-textbox-max-inline-size, var(--utrecht-form-control-max-inline-size)));\n overflow: hidden;\n padding-block-end: var(--utrecht-textbox-padding-block-end, var(--utrecht-form-control-padding-block-end, 0));\n padding-block-start: var(--utrecht-textbox-padding-block-start, var(--utrecht-form-control-padding-block-start, 0));\n padding-inline-end: var(--utrecht-textbox-padding-inline-end, var(--utrecht-form-control-padding-inline-end, initial));\n padding-inline-start: var(--utrecht-textbox-padding-inline-start, var(--utrecht-form-control-padding-inline-start, initial));\n white-space: nowrap;\n}\n\n.utrecht-textbox--invalid {\n --_utrecht-textbox-border-width: var(\n --utrecht-textbox-invalid-border-width,\n var(\n --utrecht-form-control-invalid-border-width,\n var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width))\n )\n );\n background-color: var(--utrecht-textbox-invalid-background-color, var(--utrecht-form-control-invalid-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-width: var(--_utrecht-textbox-border-width);\n border-block-end-width: var(--utrecht-textbox-invalid-border-bottom-width, var(--utrecht-form-control-invalid-border-bottom-width, var(--utrecht-textbox-border-bottom-width, var(--utrecht-form-control-border-bottom-width, var(--_utrecht-textbox-border-width)))));\n border-color: var(--utrecht-textbox-invalid-border-color, var(--utrecht-form-control-invalid-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-invalid-color, var(--utrecht-form-control-invalid-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n\n.utrecht-textbox--disabled {\n background-color: var(--utrecht-textbox-disabled-background-color, var(--utrecht-form-control-disabled-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-disabled-border-color, var(--utrecht-form-control-disabled-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-disabled-color, var(--utrecht-form-control-disabled-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n cursor: var(--utrecht-action-disabled-cursor, not-allowed);\n}\n\n.utrecht-textbox--focus {\n background-color: var(--utrecht-textbox-focus-background-color, var(--utrecht-form-control-focus-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-focus-border-color, var(--utrecht-form-control-focus-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-focus-color, var(--utrecht-form-control-focus-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n\n.utrecht-textbox--focus-visible {\n --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)\n var(--utrecht-focus-inverse-outline-color, transparent);\n box-shadow: var(--_utrecht-focus-ring-box-shadow);\n outline-color: var(--utrecht-focus-outline-color, revert);\n outline-offset: var(--utrecht-focus-outline-offset, revert);\n outline-style: var(--utrecht-focus-outline-style, revert);\n outline-width: var(--utrecht-focus-outline-width, revert);\n z-index: 1;\n}\n\n.utrecht-textbox--read-only {\n background-color: var(--utrecht-textbox-read-only-background-color, var(--utrecht-form-control-read-only-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-read-only-border-color, var(--utrecht-form-control-read-only-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-read-only-color, var(--utrecht-form-control-read-only-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n\n.utrecht-textbox__placeholder {\n color: var(--utrecht-textbox-placeholder-color, var(--utrecht-form-control-placeholder-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n font-style: var(--utrecht-form-control-placeholder-font-style);\n opacity: 100%;\n}\n\n.utrecht-textbox--numeric {\n -moz-appearance: textfield;\n font-variant-numeric: lining-nums tabular-nums;\n}\n\n.utrecht-textbox--password {\n font-variant-ligatures: none;\n font-variant-numeric: slashed-zero;\n}\n\n.utrecht-textbox--postal-code-nl-size {\n --utrecht-textbox-value-max-length: 7;\n}\n\n.utrecht-textbox--house-number-size {\n --utrecht-textbox-value-max-length: 5;\n}\n\n.utrecht-textbox--house-letter-size {\n --utrecht-textbox-value-max-length: 1;\n}\n\n.utrecht-textbox--house-addition-size {\n --utrecht-textbox-value-max-length: 4;\n}\n\n.utrecht-textbox--voorvoegsel-size {\n --utrecht-textbox-value-max-length: 10;\n}\n\n.utrecht-textbox--tel-size {\n --utrecht-textbox-value-max-length: 19;\n}\n\n.utrecht-textbox--tel-nl-size {\n --utrecht-textbox-value-max-length: 13;\n}\n\n.utrecht-textbox--iban-size {\n --utrecht-textbox-value-max-length: 41;\n}\n\n.utrecht-textbox--iban-nl-size {\n --utrecht-textbox-value-max-length: 22;\n}\n.utrecht-textbox--placeholder-ltr::placeholder, .utrecht-textbox--placeholder-ltr:placeholder-shown {\n direction: ltr;\n}\n.utrecht-textbox--placeholder-rtl::placeholder, .utrecht-textbox--placeholder-rtl:placeholder-shown {\n direction: rtl;\n}\n\n.utrecht-textbox--url {\n font-variant-ligatures: none;\n}\n\n.utrecht-textbox--html-input {\n}\n.utrecht-textbox--html-input:focus {\n background-color: var(--utrecht-textbox-focus-background-color, var(--utrecht-form-control-focus-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-focus-border-color, var(--utrecht-form-control-focus-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-focus-color, var(--utrecht-form-control-focus-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n.utrecht-textbox--html-input:focus-visible {\n --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)\n var(--utrecht-focus-inverse-outline-color, transparent);\n box-shadow: var(--_utrecht-focus-ring-box-shadow);\n outline-color: var(--utrecht-focus-outline-color, revert);\n outline-offset: var(--utrecht-focus-outline-offset, revert);\n outline-style: var(--utrecht-focus-outline-style, revert);\n outline-width: var(--utrecht-focus-outline-width, revert);\n z-index: 1;\n}\n.utrecht-textbox--html-input:user-invalid, .utrecht-textbox--html-input[aria-invalid=true] {\n --_utrecht-textbox-border-width: var(\n --utrecht-textbox-invalid-border-width,\n var(\n --utrecht-form-control-invalid-border-width,\n var(--utrecht-textbox-border-width, var(--utrecht-form-control-border-width))\n )\n );\n background-color: var(--utrecht-textbox-invalid-background-color, var(--utrecht-form-control-invalid-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-width: var(--_utrecht-textbox-border-width);\n border-block-end-width: var(--utrecht-textbox-invalid-border-bottom-width, var(--utrecht-form-control-invalid-border-bottom-width, var(--utrecht-textbox-border-bottom-width, var(--utrecht-form-control-border-bottom-width, var(--_utrecht-textbox-border-width)))));\n border-color: var(--utrecht-textbox-invalid-border-color, var(--utrecht-form-control-invalid-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-invalid-color, var(--utrecht-form-control-invalid-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n.utrecht-textbox--html-input:read-only {\n background-color: var(--utrecht-textbox-read-only-background-color, var(--utrecht-form-control-read-only-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-read-only-border-color, var(--utrecht-form-control-read-only-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-read-only-color, var(--utrecht-form-control-read-only-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n}\n.utrecht-textbox--html-input:disabled {\n background-color: var(--utrecht-textbox-disabled-background-color, var(--utrecht-form-control-disabled-background-color, var(--utrecht-textbox-background-color, var(--utrecht-form-control-background-color))));\n border-color: var(--utrecht-textbox-disabled-border-color, var(--utrecht-form-control-disabled-border-color, var(--utrecht-textbox-border-color, var(--utrecht-form-control-border-color))));\n color: var(--utrecht-textbox-disabled-color, var(--utrecht-form-control-disabled-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n cursor: var(--utrecht-action-disabled-cursor, not-allowed);\n}\n.utrecht-textbox--html-input::placeholder {\n color: var(--utrecht-textbox-placeholder-color, var(--utrecht-form-control-placeholder-color, var(--utrecht-textbox-color, var(--utrecht-form-control-color))));\n font-style: var(--utrecht-form-control-placeholder-font-style);\n opacity: 100%;\n}\n.utrecht-textbox--html-input[type=password i] {\n font-variant-ligatures: none;\n font-variant-numeric: slashed-zero;\n}\n.utrecht-textbox--html-input[type=url i], .utrecht-textbox--html-input[type=email i], .utrecht-textbox--html-input[inputMode=email i], .utrecht-textbox--html-input[inputMode=url i] {\n font-variant-ligatures: none;\n}\n.utrecht-textbox--html-input[pattern="\\\\d*"], .utrecht-textbox--html-input[pattern="[0-9]*"], .utrecht-textbox--html-input[type=number i], .utrecht-textbox--html-input[type=tel i], .utrecht-textbox--html-input[inputMode=numeric i], .utrecht-textbox--html-input[inputMode=decimal i], .utrecht-textbox--html-input[inputMode=tel i] {\n -moz-appearance: textfield;\n font-variant-numeric: lining-nums tabular-nums;\n}';
12
+ function debounce(function_, wait = 100, options = {}) {
13
+ if (typeof function_ !== "function") {
14
+ throw new TypeError(`Expected the first parameter to be a function, got \`${typeof function_}\`.`);
15
+ }
16
+ if (wait < 0) {
17
+ throw new RangeError("`wait` must not be negative.");
18
+ }
19
+ if (typeof options === "boolean") {
20
+ throw new TypeError("The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.");
21
+ }
22
+ const { immediate } = options;
23
+ let storedContext;
24
+ let storedArguments;
25
+ let timeoutId;
26
+ let timestamp;
27
+ let result;
28
+ function run() {
29
+ const callContext = storedContext;
30
+ const callArguments = storedArguments;
31
+ storedContext = void 0;
32
+ storedArguments = void 0;
33
+ result = function_.apply(callContext, callArguments);
34
+ return result;
35
+ }
36
+ function later() {
37
+ const last = Date.now() - timestamp;
38
+ if (last < wait && last >= 0) {
39
+ timeoutId = setTimeout(later, wait - last);
40
+ } else {
41
+ timeoutId = void 0;
42
+ if (!immediate) {
43
+ result = run();
44
+ }
39
45
  }
40
- return r;
41
46
  }
47
+ const debounced = function(...arguments_) {
48
+ if (storedContext && this !== storedContext && Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)) {
49
+ throw new Error("Debounced method called with different contexts of the same prototype.");
50
+ }
51
+ storedContext = this;
52
+ storedArguments = arguments_;
53
+ timestamp = Date.now();
54
+ const callNow = immediate && !timeoutId;
55
+ if (!timeoutId) {
56
+ timeoutId = setTimeout(later, wait);
57
+ }
58
+ if (callNow) {
59
+ result = run();
60
+ return result;
61
+ }
62
+ return void 0;
63
+ };
64
+ Object.defineProperty(debounced, "isPending", {
65
+ get() {
66
+ return timeoutId !== void 0;
67
+ }
68
+ });
69
+ debounced.clear = () => {
70
+ if (!timeoutId) {
71
+ return;
72
+ }
73
+ clearTimeout(timeoutId);
74
+ timeoutId = void 0;
75
+ storedContext = void 0;
76
+ storedArguments = void 0;
77
+ };
78
+ debounced.flush = () => {
79
+ if (!timeoutId) {
80
+ return;
81
+ }
82
+ debounced.trigger();
83
+ };
84
+ debounced.trigger = () => {
85
+ result = run();
86
+ debounced.clear();
87
+ };
88
+ return debounced;
42
89
  }
43
- function vt(t, { cacheKey: o, cache: r = /* @__PURE__ */ new Map(), maxAge: e } = {}) {
44
- if (e === 0)
45
- return t;
46
- if (typeof e == "number" && Number.isFinite(e)) {
47
- if (e > w)
48
- throw new TypeError(`The \`maxAge\` option cannot exceed ${w}.`);
49
- if (e < 0)
50
- throw new TypeError("The `maxAge` option should not be a negative number.");
90
+ var has = Object.prototype.hasOwnProperty;
91
+ function find(iter, tar, key) {
92
+ for (key of iter.keys()) {
93
+ if (dequal(key, tar)) return key;
51
94
  }
52
- const c = function(...i) {
53
- const a = o ? o(i) : i[0], k = xt(r, a);
54
- if (k)
55
- return k.data;
56
- const O = t.apply(this, i), u = typeof e == "function" ? e(...i) : e;
57
- if (u !== void 0 && u !== Number.POSITIVE_INFINITY) {
58
- if (!Number.isFinite(u))
59
- throw new TypeError("The `maxAge` function must return a finite number, `0`, or `Infinity`.");
60
- if (u <= 0)
61
- return O;
62
- if (u > w)
63
- throw new TypeError(`The \`maxAge\` function result cannot exceed ${w}.`);
95
+ }
96
+ function dequal(foo, bar) {
97
+ var ctor, len, tmp;
98
+ if (foo === bar) return true;
99
+ if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
100
+ if (ctor === Date) return foo.getTime() === bar.getTime();
101
+ if (ctor === RegExp) return foo.toString() === bar.toString();
102
+ if (ctor === Array) {
103
+ if ((len = foo.length) === bar.length) {
104
+ while (len-- && dequal(foo[len], bar[len])) ;
105
+ }
106
+ return len === -1;
107
+ }
108
+ if (ctor === Set) {
109
+ if (foo.size !== bar.size) {
110
+ return false;
111
+ }
112
+ for (len of foo) {
113
+ tmp = len;
114
+ if (tmp && typeof tmp === "object") {
115
+ tmp = find(bar, tmp);
116
+ if (!tmp) return false;
117
+ }
118
+ if (!bar.has(tmp)) return false;
119
+ }
120
+ return true;
64
121
  }
65
- if (r.set(a, {
66
- data: O,
67
- maxAge: u === void 0 || u === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : Date.now() + u
68
- }), u !== void 0 && u !== Number.POSITIVE_INFINITY) {
69
- const $ = setTimeout(() => {
70
- r.delete(a), M.get(c)?.delete($);
71
- }, u);
72
- $.unref?.();
73
- const D = M.get(c) ?? /* @__PURE__ */ new Set();
74
- D.add($), M.set(c, D);
122
+ if (ctor === Map) {
123
+ if (foo.size !== bar.size) {
124
+ return false;
125
+ }
126
+ for (len of foo) {
127
+ tmp = len[0];
128
+ if (tmp && typeof tmp === "object") {
129
+ tmp = find(bar, tmp);
130
+ if (!tmp) return false;
131
+ }
132
+ if (!dequal(len[1], bar.get(tmp))) {
133
+ return false;
134
+ }
135
+ }
136
+ return true;
75
137
  }
76
- return O;
77
- };
78
- return ht(c, t, {
79
- ignoreNonConfigurable: !0
80
- }), dt.set(c, r), bt.set(c, o ?? ((i) => i[0])), c;
138
+ if (ctor === ArrayBuffer) {
139
+ foo = new Uint8Array(foo);
140
+ bar = new Uint8Array(bar);
141
+ } else if (ctor === DataView) {
142
+ if ((len = foo.byteLength) === bar.byteLength) {
143
+ while (len-- && foo.getInt8(len) === bar.getInt8(len)) ;
144
+ }
145
+ return len === -1;
146
+ }
147
+ if (ArrayBuffer.isView(foo)) {
148
+ if ((len = foo.byteLength) === bar.byteLength) {
149
+ while (len-- && foo[len] === bar[len]) ;
150
+ }
151
+ return len === -1;
152
+ }
153
+ if (!ctor || typeof foo === "object") {
154
+ len = 0;
155
+ for (ctor in foo) {
156
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
157
+ if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
158
+ }
159
+ return Object.keys(bar).length === len;
160
+ }
161
+ }
162
+ return foo !== foo && bar !== bar;
81
163
  }
82
- const pt = (t) => {
83
- if (t === null) return t;
84
- try {
85
- const o = t && JSON.parse(t);
86
- return Array.isArray(o) ? o : null;
87
- } catch {
88
- return t.split(" ");
164
+ const copyProperty = (to, from, property2, ignoreNonConfigurable) => {
165
+ if (property2 === "length" || property2 === "prototype") {
166
+ return;
89
167
  }
168
+ if (property2 === "arguments" || property2 === "caller") {
169
+ return;
170
+ }
171
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property2);
172
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property2);
173
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
174
+ return;
175
+ }
176
+ Object.defineProperty(to, property2, fromDescriptor);
90
177
  };
91
- var ft = Object.defineProperty, gt = Object.getOwnPropertyDescriptor, _ = (t, o, r, e) => {
92
- for (var c = e > 1 ? void 0 : e ? gt(o, r) : o, i = t.length - 1, a; i >= 0; i--)
93
- (a = t[i]) && (c = (e ? a(o, r, c) : a(c)) || c);
94
- return e && c && ft(o, r, c), c;
95
- }, p;
96
- const G = class G extends U {
97
- constructor() {
98
- super(...arguments);
99
- R(this, p);
100
- this.name = "", this.hiddenLabel = "", this.disabled = !1, this.readonly = !1, this.internals_ = this.attachInternals(), S(this, p, null);
178
+ const canCopyProperty = function(toDescriptor, fromDescriptor) {
179
+ return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
180
+ };
181
+ const changePrototype = (to, from) => {
182
+ const fromPrototype = Object.getPrototypeOf(from);
183
+ if (fromPrototype === Object.getPrototypeOf(to)) {
184
+ return;
101
185
  }
102
- set value(r) {
103
- I(this, p) !== r && (S(this, p, r), this.internals_.setFormValue(this.valueToFormValue(r)));
186
+ Object.setPrototypeOf(to, fromPrototype);
187
+ };
188
+ const wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
189
+ ${fromBody}`;
190
+ const toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
191
+ const toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
192
+ const changeToString = (to, from, name) => {
193
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
194
+ const newToString = wrappedToString.bind(null, withName, from.toString());
195
+ Object.defineProperty(newToString, "name", toStringName);
196
+ const { writable, enumerable, configurable } = toStringDescriptor;
197
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
198
+ };
199
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
200
+ const { name } = to;
201
+ for (const property2 of Reflect.ownKeys(from)) {
202
+ copyProperty(to, from, property2, ignoreNonConfigurable);
104
203
  }
105
- get value() {
106
- return I(this, p);
204
+ changePrototype(to, from);
205
+ changeToString(to, from, name);
206
+ return to;
207
+ }
208
+ const maxTimeoutValue = 2147483647;
209
+ const cacheStore = /* @__PURE__ */ new WeakMap();
210
+ const cacheTimerStore = /* @__PURE__ */ new WeakMap();
211
+ const cacheKeyStore = /* @__PURE__ */ new WeakMap();
212
+ function getValidCacheItem(cache, key) {
213
+ const item = cache.get(key);
214
+ if (!item) {
215
+ return void 0;
107
216
  }
108
- /**
109
- * Override this function to customize how the value is converted to a form value;
110
- */
111
- valueToFormValue(r) {
112
- switch (!0) {
113
- /* eslint-disable eqeqeq -- loose equality will also return null for undefined */
114
- case r == null:
115
- return null;
116
- case (typeof r == "string" || r instanceof File):
117
- return r;
118
- case typeof r == "object":
119
- try {
120
- return JSON.stringify(r);
121
- } catch {
122
- return null;
123
- }
124
- default:
125
- return String(r);
217
+ if (item.maxAge <= Date.now()) {
218
+ cache.delete(key);
219
+ return void 0;
220
+ }
221
+ return item;
222
+ }
223
+ function memoize(function_, { cacheKey, cache = /* @__PURE__ */ new Map(), maxAge } = {}) {
224
+ if (maxAge === 0) {
225
+ return function_;
226
+ }
227
+ if (typeof maxAge === "number" && Number.isFinite(maxAge)) {
228
+ if (maxAge > maxTimeoutValue) {
229
+ throw new TypeError(`The \`maxAge\` option cannot exceed ${maxTimeoutValue}.`);
230
+ }
231
+ if (maxAge < 0) {
232
+ throw new TypeError("The `maxAge` option should not be a negative number.");
126
233
  }
127
234
  }
128
- };
129
- p = new WeakMap(), G.formAssociated = !0;
130
- let x = G;
131
- _([
132
- b()
133
- ], x.prototype, "name", 2);
134
- _([
135
- b({ attribute: "hidden-label" })
136
- ], x.prototype, "hiddenLabel", 2);
137
- _([
138
- b({ type: Boolean })
139
- ], x.prototype, "disabled", 2);
140
- _([
141
- b({ type: Boolean })
142
- ], x.prototype, "readonly", 2);
143
- _([
144
- b()
145
- ], x.prototype, "value", 1);
146
- const mt = X`
147
- /* stylelint-disable */
148
- .sr-only {
235
+ const memoized = function(...arguments_) {
236
+ const key = cacheKey ? cacheKey(arguments_) : arguments_[0];
237
+ const cacheItem = getValidCacheItem(cache, key);
238
+ if (cacheItem) {
239
+ return cacheItem.data;
240
+ }
241
+ const result = function_.apply(this, arguments_);
242
+ const computedMaxAge = typeof maxAge === "function" ? maxAge(...arguments_) : maxAge;
243
+ if (computedMaxAge !== void 0 && computedMaxAge !== Number.POSITIVE_INFINITY) {
244
+ if (!Number.isFinite(computedMaxAge)) {
245
+ throw new TypeError("The `maxAge` function must return a finite number, `0`, or `Infinity`.");
246
+ }
247
+ if (computedMaxAge <= 0) {
248
+ return result;
249
+ }
250
+ if (computedMaxAge > maxTimeoutValue) {
251
+ throw new TypeError(`The \`maxAge\` function result cannot exceed ${maxTimeoutValue}.`);
252
+ }
253
+ }
254
+ cache.set(key, {
255
+ data: result,
256
+ maxAge: computedMaxAge === void 0 || computedMaxAge === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : Date.now() + computedMaxAge
257
+ });
258
+ if (computedMaxAge !== void 0 && computedMaxAge !== Number.POSITIVE_INFINITY) {
259
+ const timer = setTimeout(() => {
260
+ cache.delete(key);
261
+ cacheTimerStore.get(memoized)?.delete(timer);
262
+ }, computedMaxAge);
263
+ timer.unref?.();
264
+ const timers = cacheTimerStore.get(memoized) ?? /* @__PURE__ */ new Set();
265
+ timers.add(timer);
266
+ cacheTimerStore.set(memoized, timers);
267
+ }
268
+ return result;
269
+ };
270
+ mimicFunction(memoized, function_, {
271
+ ignoreNonConfigurable: true
272
+ });
273
+ cacheStore.set(memoized, cache);
274
+ cacheKeyStore.set(memoized, cacheKey ?? ((arguments_) => arguments_[0]));
275
+ return memoized;
276
+ }
277
+ const styles = css`
278
+ .clippy-combobox__input-container {
279
+ display: inline-block;
280
+ inline-size: 100%;
281
+ position: relative;
282
+ }
283
+ .clippy-combobox__current-option {
284
+ pointer-events: none;
149
285
  position: absolute;
150
- inline-size: 1px;
151
- block-size: 1px;
152
- padding: 0;
153
- margin: -1px;
154
- overflow: hidden;
155
- clip: rect(0, 0, 0, 0);
286
+ display: flex;
287
+ // Clip contents when current option exceeds input size
288
+ inline-size: 100%;
156
289
  white-space: nowrap;
157
- border-width: 0;
290
+ overflow: hidden;
291
+ align-items: center;
292
+ }
293
+ .clippy-combobox__current-option:has(+ input:focus) {
294
+ display: none;
295
+ }
296
+ /* added specificity to override the align-items now that the flex direction changes */
297
+ .clippy-combobox__option.utrecht-listbox__option {
298
+ display: flex;
299
+ flex-direction: column;
300
+ align-items: unset;
158
301
  }
159
302
  `;
160
- var _t = Object.defineProperty, kt = Object.getOwnPropertyDescriptor, Q = (t) => {
161
- throw TypeError(t);
162
- }, v = (t, o, r, e) => {
163
- for (var c = e > 1 ? void 0 : e ? kt(o, r) : o, i = t.length - 1, a; i >= 0; i--)
164
- (a = t[i]) && (c = (e ? a(o, r, c) : a(c)) || c);
165
- return e && c && _t(o, r, c), c;
166
- }, A = (t, o, r) => o.has(t) || Q("Cannot " + r), l = (t, o, r) => (A(t, o, "read from private field"), r ? r.call(t) : o.get(t)), s = (t, o, r) => o.has(t) ? Q("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(t) : o.set(t, r), wt = (t, o, r, e) => (A(t, o, "write to private field"), o.set(t, r), r), h = (t, o, r) => (A(t, o, "access private method"), r), n, m, g, N, E, z, y, H, W, q, j, f, V, F, T;
167
- const K = "clippy-combobox";
168
- let d = class extends x {
303
+ var __defProp = Object.defineProperty;
304
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
305
+ var __typeError = (msg) => {
306
+ throw TypeError(msg);
307
+ };
308
+ var __decorateClass = (decorators, target, key, kind) => {
309
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
310
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
311
+ if (decorator = decorators[i])
312
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
313
+ if (kind && result) __defProp(target, key, result);
314
+ return result;
315
+ };
316
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
317
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
318
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
319
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
320
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
321
+ var _ClippyCombobox_instances, id_get, _options, _addAdditionalOptions, _handleBlur, _handleChange, _handleDocumentClick, _handleFocus, _handleInput, _handleOptionsClick, _handleKeydown, setActiveItem_fn, commitActiveItem_fn, commitQuery_fn, listId_get, getOptionId_fn;
322
+ const allowances = ["options", "other"];
323
+ const defaultAllowance = "options";
324
+ const positions = ["block-start", "block-end"];
325
+ const defaultPosition = "block-end";
326
+ const tag = "clippy-combobox";
327
+ let ClippyCombobox = class extends FormElement {
169
328
  constructor() {
170
- super(...arguments), s(this, n), this.open = !1, this.position = "block-end", s(this, g, /* @__PURE__ */ new Map()), this.selectedIndex = -1, this.query = "", this.filter = ({ label: t }) => t.toLowerCase().includes(this.query.toLowerCase()), s(this, N, vt(async (t) => {
171
- const o = await this.fetchAdditionalOptions(t);
172
- for (const r of o)
173
- l(this, g).set(r.label, r);
174
- })), s(this, E, (t) => {
175
- t.relatedTarget && !this.shadowRoot?.contains(t.relatedTarget) && (this.open = !1, this.emit("blur"));
176
- }), s(this, z, () => {
329
+ super(...arguments);
330
+ __privateAdd(this, _ClippyCombobox_instances);
331
+ this.allow = defaultAllowance;
332
+ this.open = false;
333
+ this.position = defaultPosition;
334
+ this.invalid = false;
335
+ __privateAdd(this, _options, /* @__PURE__ */ new Map());
336
+ this.activeIndex = -1;
337
+ this.query = "";
338
+ this.filter = (query) => {
339
+ const normalizedQuery = query.toLowerCase();
340
+ return ({ description, label }) => {
341
+ return Boolean(
342
+ label.toLowerCase().includes(normalizedQuery) || description?.toLowerCase().includes(normalizedQuery)
343
+ );
344
+ };
345
+ };
346
+ __privateAdd(this, _addAdditionalOptions, debounce(
347
+ memoize(
348
+ async (query) => {
349
+ const additions = await this.fetchAdditionalOptions(query);
350
+ for (const addition of additions) {
351
+ __privateGet(this, _options).set(addition.label, addition);
352
+ }
353
+ this.requestUpdate();
354
+ },
355
+ { maxAge: 6e4 }
356
+ ),
357
+ 100
358
+ ));
359
+ __privateAdd(this, _handleBlur, (event) => {
360
+ const focusedRelatedElement = event.relatedTarget && this.shadowRoot?.contains(event.relatedTarget);
361
+ if (!focusedRelatedElement) {
362
+ if (this.allow === "other" && this.query) {
363
+ const value = this.queryToValue(this.query);
364
+ if (value && dequal(value, this.value)) {
365
+ this.value = value;
366
+ }
367
+ }
368
+ this.open = false;
369
+ this.emit("blur");
370
+ }
371
+ });
372
+ __privateAdd(this, _handleChange, () => {
177
373
  this.emit("change");
178
- }), s(this, y, (t) => {
179
- t.composedPath().some((r) => r instanceof Node && this.contains(r)) || (this.open = !1, this.emit("blur"));
180
- }), s(this, H, () => {
181
- this.open = !0, this.emit("focus");
182
- }), s(this, W, (t) => {
183
- const o = t.target;
184
- o instanceof HTMLInputElement && (this.selectedIndex = -1, this.open = !0, this.query = o.value, this.value = this.queryToValue(this.query), this.emit("input"));
185
- }), s(this, q, (t) => {
186
- const o = t.currentTarget;
187
- if (!(o instanceof HTMLElement)) return;
188
- const r = Number(o.dataset.index);
189
- Number.isNaN(r) || h(this, n, V).call(this, r);
190
- }), s(this, j, ({ key: t }) => {
191
- const o = this.selectedIndex, r = this.filteredOptions.length;
192
- switch (t) {
374
+ });
375
+ __privateAdd(this, _handleDocumentClick, (event) => {
376
+ const path = event.composedPath();
377
+ if (!path.some((element) => element instanceof Node && this.contains(element))) {
378
+ this.open = false;
379
+ this.emit("blur");
380
+ }
381
+ });
382
+ __privateAdd(this, _handleFocus, () => {
383
+ this.open = true;
384
+ this.invalid = false;
385
+ this.emit("focus");
386
+ });
387
+ __privateAdd(this, _handleInput, (event) => {
388
+ const target = event.target;
389
+ if (!(target instanceof HTMLInputElement)) return;
390
+ this.activeIndex = -1;
391
+ this.open = true;
392
+ this.query = target.value;
393
+ if (this.query.length > 3) {
394
+ __privateGet(this, _addAdditionalOptions).call(this, this.query);
395
+ }
396
+ this.emit("input");
397
+ });
398
+ __privateAdd(this, _handleOptionsClick, (event) => {
399
+ const target = event.currentTarget;
400
+ if (!(target instanceof HTMLElement)) return;
401
+ const index = Number(target.dataset["index"]);
402
+ if (Number.isNaN(index)) return;
403
+ __privateMethod(this, _ClippyCombobox_instances, commitActiveItem_fn).call(this, index);
404
+ });
405
+ __privateAdd(this, _handleKeydown, ({ key }) => {
406
+ const index = this.activeIndex;
407
+ const count = this.filteredOptions.length;
408
+ switch (key) {
193
409
  case "ArrowDown":
194
- return h(this, n, f).call(this, o + 1, !0);
410
+ return __privateMethod(this, _ClippyCombobox_instances, setActiveItem_fn).call(this, index + 1, true);
195
411
  case "ArrowUp":
196
- return h(this, n, f).call(this, o - 1, !0);
412
+ return __privateMethod(this, _ClippyCombobox_instances, setActiveItem_fn).call(this, index - 1, true);
197
413
  case "Enter":
198
- return h(this, n, V).call(this, o);
414
+ if (index > -1) {
415
+ return __privateMethod(this, _ClippyCombobox_instances, commitActiveItem_fn).call(this, index);
416
+ } else if (count === 1 && this.allow === "options") {
417
+ return __privateMethod(this, _ClippyCombobox_instances, commitActiveItem_fn).call(this, 0);
418
+ } else if (this.allow === "other") {
419
+ return __privateMethod(this, _ClippyCombobox_instances, commitQuery_fn).call(this);
420
+ }
421
+ return void 0;
199
422
  case "Escape":
200
- return h(this, n, f).call(this, -1);
423
+ return __privateMethod(this, _ClippyCombobox_instances, setActiveItem_fn).call(this, -1);
201
424
  case "Home":
202
- return h(this, n, f).call(this, 0);
425
+ return __privateMethod(this, _ClippyCombobox_instances, setActiveItem_fn).call(this, 0);
203
426
  case "End":
204
- return h(this, n, f).call(this, r - 1);
427
+ return __privateMethod(this, _ClippyCombobox_instances, setActiveItem_fn).call(this, count - 1);
205
428
  default:
206
- return;
429
+ return void 0;
207
430
  }
208
431
  });
209
432
  }
210
433
  get filteredOptions() {
211
- if (this.query.length === 0)
434
+ if (this.query.length === 0) {
212
435
  return this.options;
213
- const t = this.options.filter(this.filter);
214
- return t.length === 0 && l(this, N).call(this, this.query), t;
436
+ }
437
+ const filter = this.filter(this.query);
438
+ return this.options.filter(filter);
215
439
  }
216
- set options(t) {
217
- wt(this, g, new Map(
218
- t.map(
219
- (o) => typeof o == "string" ? [o, { label: o, value: o }] : [o.label, o]
440
+ set options(options) {
441
+ __privateSet(this, _options, new Map(
442
+ options.map(
443
+ (option) => typeof option === "string" ? [option, { label: option, value: option }] : [option.label, option]
220
444
  )
221
445
  ));
222
446
  }
223
447
  get options() {
224
- return [...l(this, g).values()];
448
+ return [...__privateGet(this, _options).values()];
225
449
  }
226
- set value(t) {
227
- super.value = t, this.query = this.valueToQuery(t);
450
+ set value(value) {
451
+ super.value = value;
228
452
  }
229
453
  get value() {
230
454
  return super.value;
231
455
  }
232
- emit(t) {
233
- this.dispatchEvent(new Event(t, { bubbles: !0, composed: !0 }));
456
+ emit(type) {
457
+ this.dispatchEvent(new Event(type, { bubbles: true, composed: true }));
234
458
  }
235
459
  /**
236
460
  * Override this function to customize an external data source
237
461
  */
238
- fetchAdditionalOptions(t) {
239
- const o = [];
240
- return Promise.resolve(o);
462
+ fetchAdditionalOptions(_query) {
463
+ const empty = [];
464
+ return Promise.resolve(empty);
465
+ }
466
+ /**
467
+ * Override this function to customize how the value is looked up based on the selected option
468
+ */
469
+ getOptionForValue(value) {
470
+ const option = this.options.find((option2) => dequal(option2.value, value));
471
+ if (this.allow === "other" && !option && typeof value === "string") {
472
+ return { label: value, value };
473
+ }
474
+ return option;
241
475
  }
242
476
  /**
243
477
  * Override this function to customize how the user input is resolved to a value.
244
- * This runs on input.
245
478
  */
246
- queryToValue(t) {
247
- return t;
479
+ queryToValue(query) {
480
+ if (this.allow === "other") {
481
+ return this.getOptionForValue(this.value)?.value || query;
482
+ }
483
+ const filter = this.filter(query);
484
+ return this.options.find(filter)?.value ?? null;
248
485
  }
249
486
  /**
250
487
  * Override this function to customize how a value is converted to a query.
251
488
  * This runs on setting the value.
252
489
  */
253
- valueToQuery(t) {
254
- return (t ?? "").toString();
490
+ valueToQuery(value) {
491
+ const option = this.getOptionForValue(value);
492
+ return option?.label || (this.allow === "other" && typeof value === "string" ? value : "");
255
493
  }
256
494
  /**
257
495
  * Override this function to customize the rendering of combobox options and selected value.
496
+ * By default, it renders the label and description (if available) in the listbox options,
497
+ * and only the label in the input when an option is selected (by virtue of `index` being `undefined`).
258
498
  */
259
- renderEntry({ label: t }, o) {
260
- return C`${t}`;
499
+ renderEntry({ description, label }, index) {
500
+ return html`
501
+ <div>${label}</div>
502
+ ${description && index !== void 0 ? html`<div>${description}</div>` : nothing}
503
+ `;
504
+ }
505
+ willUpdate(changed) {
506
+ super.willUpdate(changed);
507
+ if (changed.has("options") || changed.has("value")) {
508
+ this.query = this.valueToQuery(this.value) ?? "";
509
+ }
261
510
  }
262
511
  connectedCallback() {
263
- super.connectedCallback(), document.addEventListener("click", l(this, y));
512
+ super.connectedCallback();
513
+ document.addEventListener("click", __privateGet(this, _handleDocumentClick));
264
514
  }
265
515
  disconnectedCallback() {
266
- super.disconnectedCallback(), document.removeEventListener("click", l(this, y));
516
+ super.disconnectedCallback();
517
+ document.removeEventListener("click", __privateGet(this, _handleDocumentClick));
267
518
  }
268
519
  render() {
269
- const t = {
520
+ const labelClasses = {
521
+ "clippy-combobox__label": true,
522
+ "sr-only": !this.children.length
523
+ // If there are no slotted children, the label is only for screen readers, otherwise it's expected that the slotted content provides the label.
524
+ };
525
+ const popoverClasses = {
270
526
  [`utrecht-combobox__popover--${this.position}`]: this.position,
271
527
  "utrecht-combobox__popover--hidden": !this.open
272
528
  };
273
- return C`
529
+ const textboxClasses = {
530
+ "utrecht-combobox__input": true,
531
+ "utrecht-textbox": true,
532
+ "utrecht-textbox--invalid": this.invalid
533
+ };
534
+ const currentOption = this.getOptionForValue(this.value);
535
+ const populatedSlots = Array.from(this.children).reduce(
536
+ (acc, child) => ({
537
+ ...acc,
538
+ [child.slot]: child
539
+ }),
540
+ {}
541
+ );
542
+ return html`
274
543
  <div class="utrecht-combobox">
275
- <label for="${l(this, n, m)}" class="sr-only">${this.hiddenLabel}</label>
276
- <input
277
- id=${l(this, n, m)}
278
- name=${this.name}
279
- autocomplete="off"
280
- role="combobox"
281
- aria-autocomplete="list"
282
- aria-haspopup="listbox"
283
- aria-controls=${l(this, n, F)}
284
- aria-expanded=${this.open}
285
- aria-activedescendant=${h(this, n, T).call(this)}
286
- type="text"
287
- class="utrecht-textbox utrecht-combobox__input"
288
- dir="auto"
289
- .value=${this.query}
290
- @input=${l(this, W)}
291
- @focus=${l(this, H)}
292
- @blur=${l(this, E)}
293
- @change=${l(this, z)}
294
- @keydown=${l(this, j)}
295
- />
544
+ <label for="${__privateGet(this, _ClippyCombobox_instances, id_get)}" class=${classMap(labelClasses)}>
545
+ <slot name="label">${this.hiddenLabel || this.name}</slot>
546
+ </label>
547
+ ${populatedSlots["description"] ? html` <div id="${__privateGet(this, _ClippyCombobox_instances, id_get)}-description" class="clippy-combobox__description">
548
+ <slot name="description"></slot>
549
+ </div>` : nothing}
550
+ ${populatedSlots["error"] ? html` <div id="${__privateGet(this, _ClippyCombobox_instances, id_get)}-error" class="clippy-combobox__error">
551
+ <slot name="error"></slot>
552
+ </div>` : nothing}
553
+ <div class="clippy-combobox__input-container">
554
+ ${currentOption ? html`<div
555
+ role="presentation"
556
+ class=${classMap({ "clippy-combobox__current-option": true, ...textboxClasses })}
557
+ >
558
+ ${this.renderEntry(currentOption)}
559
+ </div>` : nothing}
560
+ <input
561
+ id=${__privateGet(this, _ClippyCombobox_instances, id_get)}
562
+ name=${this.name}
563
+ autocomplete="off"
564
+ role="combobox"
565
+ aria-autocomplete="list"
566
+ aria-haspopup="listbox"
567
+ aria-controls=${__privateGet(this, _ClippyCombobox_instances, listId_get)}
568
+ aria-expanded=${this.open}
569
+ aria-activedescendant=${ifDefined(__privateMethod(this, _ClippyCombobox_instances, getOptionId_fn).call(this))}
570
+ aria-invalid=${ifDefined(this.invalid ? "true" : void 0)}
571
+ aria-errormessage=${ifDefined(populatedSlots["error"] ? `${__privateGet(this, _ClippyCombobox_instances, id_get)}-error` : void 0)}
572
+ aria-describedby=${ifDefined(populatedSlots["description"] ? `${__privateGet(this, _ClippyCombobox_instances, id_get)}-description` : void 0)}
573
+ type="text"
574
+ class=${classMap(textboxClasses)}
575
+ dir="auto"
576
+ .value=${this.query}
577
+ @input=${__privateGet(this, _handleInput)}
578
+ @focus=${__privateGet(this, _handleFocus)}
579
+ @blur=${__privateGet(this, _handleBlur)}
580
+ @keydown=${__privateGet(this, _handleKeydown)}
581
+ />
582
+ </div>
296
583
  <div
297
- id=${l(this, n, F)}
298
- class="utrecht-listbox utrecht-combobox__popover ${J(t)}"
584
+ id=${__privateGet(this, _ClippyCombobox_instances, listId_get)}
585
+ class="utrecht-listbox utrecht-combobox__popover ${classMap(popoverClasses)}"
299
586
  role="listbox"
300
587
  tabindex="-1"
301
588
  >
302
589
  <ul class="utrecht-listbox__list" role="none">
303
- ${this.filteredOptions.map((o, r) => {
304
- const e = r === this.selectedIndex;
305
- return C`<li
306
- class="utrecht-listbox__option utrecht-listbox__option--html-li ${J({
307
- "utrecht-listbox__option--selected": e
308
- })}"
590
+ ${this.filteredOptions.map((option, index) => {
591
+ const active = index === this.activeIndex;
592
+ const selected = dequal(option, currentOption);
593
+ const interactionClasses = {
594
+ "utrecht-listbox__option--active": active,
595
+ "utrecht-listbox__option--selected": selected
596
+ };
597
+ return html`<li
598
+ class="clippy-combobox__option utrecht-listbox__option utrecht-listbox__option--html-li ${classMap(
599
+ interactionClasses
600
+ )}"
309
601
  role="option"
310
- id=${h(this, n, T).call(this, r)}
311
- aria-selected=${e}
312
- data-index=${r}
313
- @click=${l(this, q)}
602
+ id=${ifDefined(__privateMethod(this, _ClippyCombobox_instances, getOptionId_fn).call(this, index))}
603
+ aria-selected=${selected}
604
+ data-index=${index}
605
+ @click=${__privateGet(this, _handleOptionsClick)}
314
606
  >
315
- ${this.renderEntry(o, r)}
607
+ ${this.renderEntry(option, index)}
316
608
  </li>`;
317
609
  })}
318
610
  </ul>
@@ -321,66 +613,93 @@ let d = class extends x {
321
613
  `;
322
614
  }
323
615
  };
324
- n = /* @__PURE__ */ new WeakSet();
325
- m = function() {
326
- return `${K}-${this.name}`;
616
+ _ClippyCombobox_instances = /* @__PURE__ */ new WeakSet();
617
+ id_get = function() {
618
+ return `${tag}-${this.name}`;
327
619
  };
328
- g = /* @__PURE__ */ new WeakMap();
329
- N = /* @__PURE__ */ new WeakMap();
330
- E = /* @__PURE__ */ new WeakMap();
331
- z = /* @__PURE__ */ new WeakMap();
332
- y = /* @__PURE__ */ new WeakMap();
333
- H = /* @__PURE__ */ new WeakMap();
334
- W = /* @__PURE__ */ new WeakMap();
335
- q = /* @__PURE__ */ new WeakMap();
336
- j = /* @__PURE__ */ new WeakMap();
337
- f = function(t, o = !1) {
338
- this.open = o, this.selectedIndex = t > -1 ? t % this.filteredOptions.length : -1, this.selectedIndex > -1 && this.shadowRoot?.querySelector(`#${String(h(this, n, T).call(this))}`)?.scrollIntoView({
339
- behavior: "smooth",
340
- block: "nearest",
341
- inline: "nearest"
342
- });
620
+ _options = /* @__PURE__ */ new WeakMap();
621
+ _addAdditionalOptions = /* @__PURE__ */ new WeakMap();
622
+ _handleBlur = /* @__PURE__ */ new WeakMap();
623
+ _handleChange = /* @__PURE__ */ new WeakMap();
624
+ _handleDocumentClick = /* @__PURE__ */ new WeakMap();
625
+ _handleFocus = /* @__PURE__ */ new WeakMap();
626
+ _handleInput = /* @__PURE__ */ new WeakMap();
627
+ _handleOptionsClick = /* @__PURE__ */ new WeakMap();
628
+ _handleKeydown = /* @__PURE__ */ new WeakMap();
629
+ setActiveItem_fn = function(index, open = false) {
630
+ this.open = open;
631
+ this.activeIndex = index > -1 ? index % this.filteredOptions.length : -1;
632
+ if (this.activeIndex > -1) {
633
+ const element = this.shadowRoot?.querySelector(`#${String(__privateMethod(this, _ClippyCombobox_instances, getOptionId_fn).call(this))}`);
634
+ element?.scrollIntoView({
635
+ behavior: "smooth",
636
+ block: "nearest",
637
+ inline: "nearest"
638
+ });
639
+ }
343
640
  };
344
- V = function(t) {
345
- const { label: o, value: r } = this.filteredOptions.at(t) ?? {};
346
- t < 0 || !o || !r || (this.query = o.toString(), this.value !== r && (this.value = r, l(this, z).call(this)), this.open = !1);
641
+ commitActiveItem_fn = function(index) {
642
+ const { label, value } = this.filteredOptions.at(index) ?? {};
643
+ if (index < 0 || !label || !value) return;
644
+ if (!dequal(this.value, value)) {
645
+ this.value = value;
646
+ __privateGet(this, _handleChange).call(this);
647
+ }
648
+ this.open = false;
649
+ };
650
+ commitQuery_fn = function() {
651
+ const value = this.queryToValue(this.query);
652
+ if (!dequal(this.value, value)) {
653
+ this.value = value;
654
+ __privateGet(this, _handleChange).call(this);
655
+ }
656
+ this.open = false;
347
657
  };
348
- F = function() {
349
- return `list-${l(this, n, m)}`;
658
+ listId_get = function() {
659
+ return `list-${__privateGet(this, _ClippyCombobox_instances, id_get)}`;
350
660
  };
351
- T = function(t = this.selectedIndex) {
352
- return t !== -1 ? `option-${t}-${l(this, n, m)}` : Z;
661
+ getOptionId_fn = function(index = this.activeIndex) {
662
+ return index === -1 ? void 0 : `option-${index}-${__privateGet(this, _ClippyCombobox_instances, id_get)}`;
353
663
  };
354
- d.styles = [
355
- mt,
356
- P(ot),
357
- P(rt),
358
- P(et)
664
+ ClippyCombobox.allowances = allowances;
665
+ ClippyCombobox.positions = positions;
666
+ ClippyCombobox.styles = [
667
+ styles,
668
+ srOnly,
669
+ unsafeCSS(comboboxStyles),
670
+ unsafeCSS(listboxStyles),
671
+ unsafeCSS(textboxStyles)
359
672
  ];
360
- v([
361
- b({ reflect: !0, type: Boolean })
362
- ], d.prototype, "open", 2);
363
- v([
364
- b()
365
- ], d.prototype, "position", 2);
366
- v([
367
- L()
368
- ], d.prototype, "selectedIndex", 2);
369
- v([
370
- L()
371
- ], d.prototype, "query", 2);
372
- v([
373
- L()
374
- ], d.prototype, "filteredOptions", 1);
375
- v([
376
- b({ converter: pt })
377
- ], d.prototype, "options", 1);
378
- v([
379
- b()
380
- ], d.prototype, "value", 1);
381
- d = v([
382
- tt(K)
383
- ], d);
673
+ __decorateClass([
674
+ property({ converter: allowedValuesConverter(ClippyCombobox.allowances, defaultAllowance) })
675
+ ], ClippyCombobox.prototype, "allow", 2);
676
+ __decorateClass([
677
+ property({ reflect: true, type: Boolean })
678
+ ], ClippyCombobox.prototype, "open", 2);
679
+ __decorateClass([
680
+ property({ converter: allowedValuesConverter(ClippyCombobox.positions, defaultPosition) })
681
+ ], ClippyCombobox.prototype, "position", 2);
682
+ __decorateClass([
683
+ property({ reflect: true, type: Boolean })
684
+ ], ClippyCombobox.prototype, "invalid", 2);
685
+ __decorateClass([
686
+ state()
687
+ ], ClippyCombobox.prototype, "activeIndex", 2);
688
+ __decorateClass([
689
+ state()
690
+ ], ClippyCombobox.prototype, "query", 2);
691
+ __decorateClass([
692
+ state()
693
+ ], ClippyCombobox.prototype, "filteredOptions", 1);
694
+ __decorateClass([
695
+ property({ converter: arrayFromTokenList })
696
+ ], ClippyCombobox.prototype, "options", 1);
697
+ __decorateClass([
698
+ property()
699
+ ], ClippyCombobox.prototype, "value", 1);
700
+ ClippyCombobox = __decorateClass([
701
+ safeCustomElement(tag)
702
+ ], ClippyCombobox);
384
703
  export {
385
- d as ClippyCombobox
704
+ ClippyCombobox
386
705
  };