@lion/ui 0.7.6 → 0.7.7

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 (128) hide show
  1. package/README.md +1 -2
  2. package/components/button/test-suites/LionButton.suite.js +3 -1
  3. package/components/combobox/src/LionCombobox.js +33 -9
  4. package/components/combobox/test/lion-combobox.test.js +134 -7
  5. package/components/dialog/test/lion-dialog.test.js +59 -1
  6. package/components/input-datepicker/test/lion-input-datepicker.test.js +3 -3
  7. package/components/input-file/src/FileHandle.js +1 -1
  8. package/components/input-file/src/LionInputFile.js +1 -3
  9. package/components/input-file/test/lion-input-file.test.js +11 -14
  10. package/components/overlays/src/OverlayController.js +13 -7
  11. package/components/overlays/src/OverlayMixin.js +5 -1
  12. package/components/overlays/test/OverlayController.test.js +46 -0
  13. package/components/select-rich/src/LionSelectRich.js +12 -0
  14. package/components/select-rich/test/lion-select-rich.test.js +26 -0
  15. package/custom-elements.json +60 -55
  16. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  17. package/dist-types/components/combobox/src/LionCombobox.d.ts +9 -0
  18. package/dist-types/components/combobox/src/LionCombobox.d.ts.map +1 -1
  19. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
  20. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  21. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  22. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  23. package/dist-types/tsconfig.tsbuildinfo +1 -1
  24. package/docs/components/button/use-cases.md +2 -2
  25. package/docs/components/calendar/use-cases.md +4 -4
  26. package/docs/components/checkbox-group/api-table.md +49 -55
  27. package/docs/components/checkbox-group/overview.md +5 -5
  28. package/docs/components/checkbox-group/use-cases.md +33 -33
  29. package/docs/components/collapsible/overview.md +1 -1
  30. package/docs/components/collapsible/use-cases.md +3 -3
  31. package/docs/components/combobox/api-table.md +84 -89
  32. package/docs/components/combobox/extensions.md +20 -20
  33. package/docs/components/combobox/overview.md +1 -1
  34. package/docs/components/combobox/use-cases.md +6 -6
  35. package/docs/components/dialog/api-table.md +3 -3
  36. package/docs/components/dialog/overview.md +2 -2
  37. package/docs/components/dialog/src/external-dialog.js +32 -0
  38. package/docs/components/dialog/src/slots-dialog-content.js +1 -1
  39. package/docs/components/dialog/src/styled-dialog-content.js +1 -1
  40. package/docs/components/dialog/use-cases.md +49 -3
  41. package/docs/components/drawer/use-cases.md +3 -3
  42. package/docs/components/fieldset/api-table.md +45 -51
  43. package/docs/components/fieldset/overview.md +7 -7
  44. package/docs/components/fieldset/use-cases.md +15 -15
  45. package/docs/components/form/overview.md +7 -7
  46. package/docs/components/form/use-cases.md +4 -4
  47. package/docs/components/icon/use-cases.md +1 -1
  48. package/docs/components/input/overview.md +1 -1
  49. package/docs/components/input/use-cases.md +3 -3
  50. package/docs/components/input-amount/overview.md +3 -3
  51. package/docs/components/input-amount/use-cases.md +8 -8
  52. package/docs/components/input-date/overview.md +3 -3
  53. package/docs/components/input-date/use-cases.md +8 -8
  54. package/docs/components/input-datepicker/api-table.md +1 -1
  55. package/docs/components/input-datepicker/overview.md +5 -5
  56. package/docs/components/input-datepicker/use-cases.md +5 -5
  57. package/docs/components/input-email/overview.md +2 -2
  58. package/docs/components/input-email/use-cases.md +3 -3
  59. package/docs/components/input-file/overview.md +1 -1
  60. package/docs/components/input-iban/overview.md +2 -2
  61. package/docs/components/input-iban/use-cases.md +8 -8
  62. package/docs/components/input-range/overview.md +2 -2
  63. package/docs/components/input-stepper/api-table.md +65 -69
  64. package/docs/components/input-stepper/overview.md +1 -1
  65. package/docs/components/input-tel/overview.md +1 -1
  66. package/docs/components/input-tel/use-cases.md +9 -9
  67. package/docs/components/input-tel-dropdown/api-table.md +70 -73
  68. package/docs/components/input-tel-dropdown/extensions.md +1 -1
  69. package/docs/components/input-tel-dropdown/overview.md +1 -1
  70. package/docs/components/input-tel-dropdown/use-cases.md +5 -5
  71. package/docs/components/listbox/api-table.md +64 -70
  72. package/docs/components/listbox/overview.md +5 -5
  73. package/docs/components/listbox/use-cases.md +61 -61
  74. package/docs/components/pagination/use-cases.md +5 -5
  75. package/docs/components/radio-group/api-table.md +49 -55
  76. package/docs/components/radio-group/overview.md +6 -6
  77. package/docs/components/radio-group/use-cases.md +18 -18
  78. package/docs/components/select/use-cases.md +2 -2
  79. package/docs/components/select-rich/api-table.md +79 -85
  80. package/docs/components/select-rich/overview.md +3 -3
  81. package/docs/components/select-rich/use-cases.md +33 -33
  82. package/docs/components/steps/overview.md +4 -4
  83. package/docs/components/steps/use-cases.md +7 -7
  84. package/docs/components/tabs/examples.md +1 -1
  85. package/docs/components/tabs/use-cases.md +1 -1
  86. package/docs/components/textarea/use-cases.md +3 -3
  87. package/docs/components/tooltip/api-table.md +3 -3
  88. package/docs/components/tooltip/use-cases.md +6 -6
  89. package/docs/fundamentals/index.md +4 -4
  90. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  91. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  92. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  93. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  94. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  95. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  96. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  97. package/docs/fundamentals/rationales/accessibility.md +1 -1
  98. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  99. package/docs/fundamentals/systems/core/overview.md +1 -1
  100. package/docs/fundamentals/systems/form/formatting-and-parsing.md +8 -8
  101. package/docs/fundamentals/systems/form/model-value.md +1 -1
  102. package/docs/fundamentals/systems/form/overview.md +28 -28
  103. package/docs/fundamentals/systems/form/use-cases.md +19 -19
  104. package/docs/fundamentals/systems/form/validate.md +50 -50
  105. package/docs/fundamentals/systems/localize/api-table.md +10 -17
  106. package/docs/fundamentals/systems/localize/overview.md +4 -4
  107. package/docs/fundamentals/systems/localize/use-cases.md +4 -4
  108. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +4 -4
  109. package/docs/fundamentals/systems/overlays/api-table.md +34 -90
  110. package/docs/fundamentals/systems/overlays/assets/umbrella-form.js +9 -9
  111. package/docs/fundamentals/systems/overlays/configuration.md +30 -30
  112. package/docs/fundamentals/systems/overlays/overview.md +6 -6
  113. package/docs/fundamentals/systems/overlays/use-cases.md +30 -30
  114. package/docs/fundamentals/tools/ajax/use-cases.md +20 -20
  115. package/docs/fundamentals/tools/helpers/action-logger.md +3 -3
  116. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  117. package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +2 -2
  118. package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +2 -2
  119. package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +2 -2
  120. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  121. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  122. package/docs/guides/how-to/create-a-form.md +4 -4
  123. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  124. package/docs/guides/index.md +8 -8
  125. package/docs/guides/principles/index.md +5 -5
  126. package/docs/guides/principles/scoped-elements.md +1 -1
  127. package/docs/guides/principles/styling.md +1 -1
  128. package/package.json +1 -1
@@ -49,90 +49,84 @@
49
49
 
50
50
  ### Fields
51
51
 
52
- | Name | Privacy | Type | Default | Description | Inherited From |
53
- | ------------------------------ | --------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
54
- | `slots` | public | `SlotsMap` | | Adds ".\_feedbackNode" as described below | LionListbox |
55
- | `_invokerNode` | protected | `LionSelectInvoker` | | | |
56
- | `_focusableNode` | protected | `HTMLElement` | | The focusable element:
could be an input, textarea, select, button or any other element with tabindex > -1 | LionListbox |
57
- | `_scrollTargetNode` | protected | `HTMLElement` | | | LionListbox |
58
- | `_overlayInvokerNode` | protected | | | | OverlayMixin |
59
- | `_overlayContentNode` | protected | | | | OverlayMixin |
60
- | `navigateWithinInvoker` | public | `Boolean` | `false` | When invoker has focus, up and down arrow keys changes active state of listbox,
without opening overlay. | |
61
- | `interactionMode` | public | `'windows/linux'\|'mac'\|'auto'` | `'auto'` | Aligns behavior for 'selectionFollowFocus' and 'navigateWithinInvoker' with
platform. When 'auto' (default), platform is automatically detected | |
62
- | `singleOption` | public | `boolean` | `false` | | |
63
- | `_arrowWidth` | protected | `number` | `28` | | |
64
- | `config` | public | `Partial<OverlayConfig>` | `{}` | Configure the many options of the \`OverlayController\` | OverlayMixin |
65
- | `_overlayReferenceNode` | protected | | | | OverlayMixin |
66
- | `_overlayBackdropNode` | protected | | | | OverlayMixin |
67
- | `_overlayContentWrapperNode` | protected | | | | OverlayMixin |
68
- | `opened` | public | `boolean` | `false` | If you add the opened attribute a dialog will be opened on page load. The invoker can be left out&#xA;in case the user does not need to be able to reopen the dialog. | OverlayMixin |
69
- | `_inputNode` | protected | | | The interactive (form) element. Can be a native element like input/textarea/select or&#xA;an element with tabindex > -1 | LionListbox |
70
- | `_listboxNode` | protected | | | | LionListbox |
71
- | `_listboxActiveDescendantNode` | protected | `HTMLElement` | | | LionListbox |
72
- | `_listboxSlot` | protected | `HTMLElement` | | | LionListbox |
73
- | `_activeDescendantOwnerNode` | protected | `HTMLElement` | | | LionListbox |
74
- | `activeIndex` | public | | | | LionListbox |
75
- | `checkedIndex` | public | `number \| number[]` | | | LionListbox |
76
- | `hasNoDefaultSelected` | public | `boolean` | `false` | When setting this to true, on initial render, no option will be selected.&#xA;It is advisable to override \`\_noSelectionTemplate\` method in the select-invoker&#xA;to render some kind of placeholder initially | LionListbox |
77
- | `orientation` | public | `string` | `'vertical'` | Informs screen reader and affects keyboard navigation.&#xA;By default 'vertical' | LionListbox |
78
- | `rotateKeyboardNavigation` | public | `boolean` | `false` | Will give first option active state when navigated to the next option from&#xA;last option. | LionListbox |
79
- | `selectionFollowsFocus` | public | `boolean` | `false` | When true, will synchronize activedescendant and selected element on&#xA;arrow key navigation.&#xA;This behavior can usually be seen on \<select> on the Windows platform.&#xA;Note that this behavior cannot be used when multiple-choice is true.&#xA;See: https\://www\.w3.org/TR/wai-aria-practices/#kbd\_selection\_follows\_focus | LionListbox |
80
- | `_noTypeAhead` | public | `boolean` | `false` | When false, a user can type on which the focus will jump to the matching option | LionListbox |
81
- | `_typeAheadTimeout` | protected | `number` | `1000` | The pending char sequence that will set active list item | LionListbox |
82
- | `_listboxActiveDescendant` | protected | `number \| null` | `null` | | LionListbox |
83
- | `_repropagationRole` | public | `'child'\|'choice-group'\|'fieldset'` | `'choice-group'` | Based on the role, details of handling model-value-changed repropagation differ. | LionListbox |
84
- | `_listboxReceivesNoFocus` | protected | `boolean` | `false` | When listbox is coupled to a textbox (in case we are dealing with a combobox),&#xA;spaces should not select an element (they need to be put in the textbox) | LionListbox |
85
- | `_oldModelValue` | protected | `string \| string[] \| undefined` | `undefined` | | LionListbox |
86
- | `label` | public | `string` | `''` | The label text for the input node.&#xA;When no value is defined, textContent of \[slot=label] will be used | LionListbox |
87
- | `helpText` | public | `string` | `''` | The helpt text for the input node.&#xA;When no value is defined, textContent of \[slot=help-text] will be used | LionListbox |
88
- | `fieldName` | public | `string` | | Will be used in validation messages to refer to the current field | LionListbox |
89
- | `_labelNode` | protected | | | Element where label will be rendered to | LionListbox |
90
- | `_helpTextNode` | protected | | | Element where help text will be rendered to | LionListbox |
91
- | `_feedbackNode` | protected | | | Element where validation feedback will be rendered to | LionListbox |
92
- | `readOnly` | public | `boolean` | `false` | A Boolean attribute which, if present, indicates that the user should not be able to edit&#xA;the value of the input. The difference between disabled and readonly is that read-only&#xA;controls can still function, whereas disabled controls generally do not function as&#xA;controls until they are enabled.&#xA;(From: https\://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly) | LionListbox |
93
- | `labelSrOnly` | public | `boolean` | `false` | The label will only be visible for srceen readers when true | LionListbox |
94
- | `_inputId` | protected | `string` | | Unique id that can be used in all light dom | LionListbox |
95
- | `_ariaLabelledNodes` | public | `HTMLElement[]` | `[]` | Contains all elements that should end up in aria-labelledby of \`.\_inputNode\` | LionListbox |
96
- | `_ariaDescribedNodes` | public | `HTMLElement[]` | `[]` | Contains all elements that should end up in aria-describedby of \`.\_inputNode\` | LionListbox |
97
- | `_isRepropagationEndpoint` | public | `boolean` | `false` | By default, a field with \_repropagationRole 'choice-group' will act as an&#xA;'endpoint'. This means it will be considered as an individual field: for&#xA;a select, individual options will not be part of the formPath. They&#xA;will.&#xA;Similarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'&#xA;(from Application Developer perspective) need to be more like fields&#xA;(think of an amount-input with a currency select box next to it), can set this&#xA;to true to hide private internals in the formPath. | LionListbox |
98
- | `modelValue` | public | | | | LionListbox |
99
- | `serializedValue` | public | | | | LionListbox |
100
- | `formattedValue` | public | | | | LionListbox |
101
- | `operationMode` | public | `OperationMode` | | Types of input interaction of the FormControl (for instance 'enter'\|'select'\|'upload') | LionListbox |
102
- | `multipleChoice` | public | `boolean` | `false` | When false (default), modelValue and serializedValue will reflect the&#xA;currently selected choice (usually a string). When true, modelValue will and&#xA;serializedValue will be an array of strings. | LionListbox |
103
- | `formElements` | public | `FormControlsCollection` | `new FormControlsCollection()` | Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed&#xA;both like an array and an object (based on control/element names). | LionListbox |
104
- | `_isFormOrFieldset` | protected | `boolean` | `false` | Flag that determines how ".formElements" should behave.&#xA;For a regular fieldset (see LionFieldset) we expect ".formElements"&#xA;to be accessible as an object.&#xA;In case of a radio-group, a checkbox-group or a select/listbox,&#xA;it should act like an array (see ChoiceGroupMixin).&#xA;Usually, when false, we deal with a choice-group (radio-group, checkbox-group,&#xA;(multi)select) | LionListbox |
105
- | `initComplete` | public | `Promise<any>` | `new Promise((resolve, reject) => {
106
- this.__resolveInitComplete = resolve;
107
- this.__rejectInitComplete = reject;
108
- })` | initComplete resolves after all pending initialization logic&#xA;(for instance \`\<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>\`)&#xA;is executed | LionListbox |
109
- | `registrationComplete` | public | `Promise<any> & {done?:boolean}` | `new Promise((resolve, reject) => {
110
- this.__resolveRegistrationComplete = resolve;
111
- this.__rejectRegistrationComplete = reject;
112
- })` | registrationComplete waits for all children formElements to have registered | LionListbox |
113
- | `done` | public | `boolean` | `false` | | LionListbox |
114
- | `focused` | public | `boolean` | `false` | Whether the focusable element within (\`.\_focusableNode\`) is focused.&#xA;Reflects to attribute '\[focused]' as a styling hook | LionListbox |
115
- | `focusedVisible` | public | `boolean` | `false` | Whether the focusable element within (\`.\_focusableNode\`) matches ':focus-visible'&#xA;Reflects to attribute '\[focused-visible]' as a styling hook&#xA;See: https\://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible | LionListbox |
116
- | `autofocus` | public | `boolean` | `false` | | LionListbox |
117
- | `_feedbackConditionMeta` | protected | | | Allows Subclassers to add meta info for feedbackCondition | LionListbox |
118
- | `touched` | public | `boolean` | `false` | True when user has focused and left(blurred) the field. | LionListbox |
119
- | `dirty` | public | `boolean` | `false` | True when user has changed the value of the field. | LionListbox |
120
- | `prefilled` | public | `boolean` | `false` | True when user has left non-empty field or input is prefilled.&#xA;The name must be seen from the point of view of the input field:&#xA;once the user enters the input field, the value is non-empty. | LionListbox |
121
- | `filled` | public | `boolean` | `false` | True when the modelValue is non-empty (see \_isEmpty in FormControlMixin) | LionListbox |
122
- | `_leaveEvent` | protected | `string` | `'blur'` | The event that triggers the touched state | LionListbox |
123
- | `_valueChangedEvent` | protected | `string` | `'model-value-changed'` | The event that triggers the dirty state | LionListbox |
124
- | `submitted` | public | | | | LionListbox |
125
- | `_allValidators` | protected | `Validator[]` | | Combination of validators provided by Application Developer and the default validators | LionListbox |
126
- | `hasFeedbackFor` | public | `ValidationType[]` | `[]` | As soon as validation happens (after modelValue/validators/validator param change), this&#xA;array is updated with the active ValidationTypes ('error'\|'warning'\|'success'\|'info' etc.).&#xA;Notice the difference with \`.showsFeedbackFor\`, which filters \`.hasFeedbackFor\` based on&#xA;\`.feedbackCondition()\`.&#xA;&#xA;For styling purposes, will be reflected to \[has-feedback-for="error warning"]. This can&#xA;be useful for subtle visual feedback on keyup, like a red/green border around an input. | LionListbox |
127
- | `showsFeedbackFor` | public | `ValidationType[]` | `[]` | Based on outcome of feedbackCondition, this array decides what ValidationTypes should be&#xA;shown in validationFeedback, based on meta data like interaction states.&#xA;&#xA;For styling purposes, it reflects it \`\[shows-feedback-for="error warning"]\` | LionListbox |
128
- | `validationStates` | public | `ValidationStates` | `{}` | The outcome of a validation 'round'. Keyed by ValidationType and Validator name | LionListbox |
129
- | `isPending` | public | `boolean` | `false` | Flag indicating whether async validation is pending.&#xA;Creates attribute \[is-pending] as a styling hook | LionListbox |
130
- | `validators` | public | `Validator[]` | `[]` | Used by Application Developers to add Validators to a FormControl. | LionListbox |
131
- | `defaultValidators` | public | `Validator[]` | `[]` | Used by Subclassers to add default Validators to a particular FormControl.&#xA;A date input for instance, always needs the isDate validator. | LionListbox |
132
- | `_visibleMessagesAmount` | protected | `number` | `1` | The amount of feedback messages that will visible in LionValidationFeedback | LionListbox |
133
- | `__SyncUpdatableNamespace` | protected | `SyncUpdatableNamespace` | `{}` | Namespace for this mixin that guarantees naming clashes will not occur... | LionListbox |
134
- | `_requestedToBeDisabled` | protected | `boolean` | `false` | | LionListbox |
135
- | `disabled` | public | `boolean` | `false` | | LionListbox |
52
+ | Name | Privacy | Type | Default | Description | Inherited From |
53
+ | ------------------------------ | --------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
54
+ | `slots` | public | `SlotsMap` | | Adds ".\_feedbackNode" as described below | LionListbox |
55
+ | `_invokerNode` | protected | `LionSelectInvoker` | | | |
56
+ | `_focusableNode` | protected | `HTMLElement` | | The focusable element:&#xA;could be an input, textarea, select, button or any other element with tabindex > -1 | LionListbox |
57
+ | `_scrollTargetNode` | protected | `HTMLElement` | | | LionListbox |
58
+ | `_overlayInvokerNode` | protected | | | | OverlayMixin |
59
+ | `_overlayContentNode` | protected | | | | OverlayMixin |
60
+ | `navigateWithinInvoker` | public | `Boolean` | `false` | When invoker has focus, up and down arrow keys changes active state of listbox,&#xA;without opening overlay. | |
61
+ | `interactionMode` | public | `'windows/linux'\|'mac'\|'auto'` | `'auto'` | Aligns behavior for 'selectionFollowFocus' and 'navigateWithinInvoker' with&#xA;platform. When 'auto' (default), platform is automatically detected | |
62
+ | `singleOption` | public | `boolean` | `false` | | |
63
+ | `_arrowWidth` | protected | `number` | `28` | | |
64
+ | `config` | public | `Partial<OverlayConfig>` | `{}` | Configure the many options of the \`OverlayController\` | OverlayMixin |
65
+ | `_overlayReferenceNode` | protected | | | | OverlayMixin |
66
+ | `_overlayBackdropNode` | protected | | | | OverlayMixin |
67
+ | `_overlayContentWrapperNode` | protected | | | | OverlayMixin |
68
+ | `opened` | public | `boolean` | `false` | If you add the opened attribute a dialog will be opened on page load. The invoker can be left out&#xA;in case the user does not need to be able to reopen the dialog. | OverlayMixin |
69
+ | `_inputNode` | protected | | | The interactive (form) element. Can be a native element like input/textarea/select or&#xA;an element with tabindex > -1 | LionListbox |
70
+ | `_listboxNode` | protected | | | | LionListbox |
71
+ | `_listboxActiveDescendantNode` | protected | `HTMLElement` | | | LionListbox |
72
+ | `_listboxSlot` | protected | `HTMLElement` | | | LionListbox |
73
+ | `_activeDescendantOwnerNode` | protected | `HTMLElement` | | | LionListbox |
74
+ | `activeIndex` | public | | | | LionListbox |
75
+ | `checkedIndex` | public | `number \| number[]` | | | LionListbox |
76
+ | `hasNoDefaultSelected` | public | `boolean` | `false` | When setting this to true, on initial render, no option will be selected.&#xA;It is advisable to override \`\_noSelectionTemplate\` method in the select-invoker&#xA;to render some kind of placeholder initially | LionListbox |
77
+ | `orientation` | public | `string` | `'vertical'` | Informs screen reader and affects keyboard navigation.&#xA;By default 'vertical' | LionListbox |
78
+ | `rotateKeyboardNavigation` | public | `boolean` | `false` | Will give first option active state when navigated to the next option from&#xA;last option. | LionListbox |
79
+ | `selectionFollowsFocus` | public | `boolean` | `false` | When true, will synchronize activedescendant and selected element on&#xA;arrow key navigation.&#xA;This behavior can usually be seen on \<select> on the Windows platform.&#xA;Note that this behavior cannot be used when multiple-choice is true.&#xA;See: https\://www\.w3.org/TR/wai-aria-practices/#kbd\_selection\_follows\_focus | LionListbox |
80
+ | `_noTypeAhead` | public | `boolean` | `false` | When false, a user can type on which the focus will jump to the matching option | LionListbox |
81
+ | `_typeAheadTimeout` | protected | `number` | `1000` | The pending char sequence that will set active list item | LionListbox |
82
+ | `_listboxActiveDescendant` | protected | `number \| null` | `null` | | LionListbox |
83
+ | `_repropagationRole` | public | `'child'\|'choice-group'\|'fieldset'` | `'choice-group'` | Based on the role, details of handling model-value-changed repropagation differ. | LionListbox |
84
+ | `_listboxReceivesNoFocus` | protected | `boolean` | `false` | When listbox is coupled to a textbox (in case we are dealing with a combobox),&#xA;spaces should not select an element (they need to be put in the textbox) | LionListbox |
85
+ | `_oldModelValue` | protected | `string \| string[] \| undefined` | `undefined` | | LionListbox |
86
+ | `label` | public | `string` | `''` | The label text for the input node.&#xA;When no value is defined, textContent of \[slot=label] will be used | LionListbox |
87
+ | `helpText` | public | `string` | `''` | The helpt text for the input node.&#xA;When no value is defined, textContent of \[slot=help-text] will be used | LionListbox |
88
+ | `fieldName` | public | `string` | | Will be used in validation messages to refer to the current field | LionListbox |
89
+ | `_labelNode` | protected | | | Element where label will be rendered to | LionListbox |
90
+ | `_helpTextNode` | protected | | | Element where help text will be rendered to | LionListbox |
91
+ | `_feedbackNode` | protected | | | Element where validation feedback will be rendered to | LionListbox |
92
+ | `readOnly` | public | `boolean` | `false` | A Boolean attribute which, if present, indicates that the user should not be able to edit&#xA;the value of the input. The difference between disabled and readonly is that read-only&#xA;controls can still function, whereas disabled controls generally do not function as&#xA;controls until they are enabled.&#xA;(From: https\://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly) | LionListbox |
93
+ | `labelSrOnly` | public | `boolean` | `false` | The label will only be visible for srceen readers when true | LionListbox |
94
+ | `_inputId` | protected | `string` | | Unique id that can be used in all light dom | LionListbox |
95
+ | `_ariaLabelledNodes` | public | `HTMLElement[]` | `[]` | Contains all elements that should end up in aria-labelledby of \`.\_inputNode\` | LionListbox |
96
+ | `_ariaDescribedNodes` | public | `HTMLElement[]` | `[]` | Contains all elements that should end up in aria-describedby of \`.\_inputNode\` | LionListbox |
97
+ | `_isRepropagationEndpoint` | public | `boolean` | `false` | By default, a field with \_repropagationRole 'choice-group' will act as an&#xA;'endpoint'. This means it will be considered as an individual field: for&#xA;a select, individual options will not be part of the formPath. They&#xA;will.&#xA;Similarly, components that (a11y wise) need to be fieldsets, but 'interaction wise'&#xA;(from Application Developer perspective) need to be more like fields&#xA;(think of an amount-input with a currency select box next to it), can set this&#xA;to true to hide private internals in the formPath. | LionListbox |
98
+ | `modelValue` | public | | | | LionListbox |
99
+ | `serializedValue` | public | | | | LionListbox |
100
+ | `formattedValue` | public | | | | LionListbox |
101
+ | `operationMode` | public | `OperationMode` | | Types of input interaction of the FormControl (for instance 'enter'\|'select'\|'upload') | LionListbox |
102
+ | `multipleChoice` | public | `boolean` | `false` | When false (default), modelValue and serializedValue will reflect the&#xA;currently selected choice (usually a string). When true, modelValue will and&#xA;serializedValue will be an array of strings. | LionListbox |
103
+ | `formElements` | public | `FormControlsCollection` | `new FormControlsCollection()` | Closely mimics the natively supported HTMLFormControlsCollection. It can be accessed&#xA;both like an array and an object (based on control/element names). | LionListbox |
104
+ | `_isFormOrFieldset` | protected | `boolean` | `false` | Flag that determines how ".formElements" should behave.&#xA;For a regular fieldset (see LionFieldset) we expect ".formElements"&#xA;to be accessible as an object.&#xA;In case of a radio-group, a checkbox-group or a select/listbox,&#xA;it should act like an array (see ChoiceGroupMixin).&#xA;Usually, when false, we deal with a choice-group (radio-group, checkbox-group,&#xA;(multi)select) | LionListbox |
105
+ | `initComplete` | public | `Promise<any>` | `new Promise((resolve, reject) => { this.__resolveInitComplete = resolve; this.__rejectInitComplete = reject; })` | initComplete resolves after all pending initialization logic&#xA;(for instance \`\<form-group .serializedValue=${{ child1: 'a', child2: 'b' }}>\`)&#xA;is executed | LionListbox |
106
+ | `registrationComplete` | public | `Promise<any> & {done?:boolean}` | `new Promise((resolve, reject) => { this.__resolveRegistrationComplete = resolve; this.__rejectRegistrationComplete = reject; })` | registrationComplete waits for all children formElements to have registered | LionListbox |
107
+ | `done` | public | `boolean` | `false` | | LionListbox |
108
+ | `focused` | public | `boolean` | `false` | Whether the focusable element within (\`.\_focusableNode\`) is focused.&#xA;Reflects to attribute '\[focused]' as a styling hook | LionListbox |
109
+ | `focusedVisible` | public | `boolean` | `false` | Whether the focusable element within (\`.\_focusableNode\`) matches ':focus-visible'&#xA;Reflects to attribute '\[focused-visible]' as a styling hook&#xA;See: https\://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible | LionListbox |
110
+ | `autofocus` | public | `boolean` | `false` | | LionListbox |
111
+ | `_feedbackConditionMeta` | protected | | | Allows Subclassers to add meta info for feedbackCondition | LionListbox |
112
+ | `touched` | public | `boolean` | `false` | True when user has focused and left(blurred) the field. | LionListbox |
113
+ | `dirty` | public | `boolean` | `false` | True when user has changed the value of the field. | LionListbox |
114
+ | `prefilled` | public | `boolean` | `false` | True when user has left non-empty field or input is prefilled.&#xA;The name must be seen from the point of view of the input field:&#xA;once the user enters the input field, the value is non-empty. | LionListbox |
115
+ | `filled` | public | `boolean` | `false` | True when the modelValue is non-empty (see \_isEmpty in FormControlMixin) | LionListbox |
116
+ | `_leaveEvent` | protected | `string` | `'blur'` | The event that triggers the touched state | LionListbox |
117
+ | `_valueChangedEvent` | protected | `string` | `'model-value-changed'` | The event that triggers the dirty state | LionListbox |
118
+ | `submitted` | public | | | | LionListbox |
119
+ | `_allValidators` | protected | `Validator[]` | | Combination of validators provided by Application Developer and the default validators | LionListbox |
120
+ | `hasFeedbackFor` | public | `ValidationType[]` | `[]` | As soon as validation happens (after modelValue/validators/validator param change), this&#xA;array is updated with the active ValidationTypes ('error'\|'warning'\|'success'\|'info' etc.).&#xA;Notice the difference with \`.showsFeedbackFor\`, which filters \`.hasFeedbackFor\` based on&#xA;\`.feedbackCondition()\`.&#xA;&#xA;For styling purposes, will be reflected to \[has-feedback-for="error warning"]. This can&#xA;be useful for subtle visual feedback on keyup, like a red/green border around an input. | LionListbox |
121
+ | `showsFeedbackFor` | public | `ValidationType[]` | `[]` | Based on outcome of feedbackCondition, this array decides what ValidationTypes should be&#xA;shown in validationFeedback, based on meta data like interaction states.&#xA;&#xA;For styling purposes, it reflects it \`\[shows-feedback-for="error warning"]\` | LionListbox |
122
+ | `validationStates` | public | `ValidationStates` | `{}` | The outcome of a validation 'round'. Keyed by ValidationType and Validator name | LionListbox |
123
+ | `isPending` | public | `boolean` | `false` | Flag indicating whether async validation is pending.&#xA;Creates attribute \[is-pending] as a styling hook | LionListbox |
124
+ | `validators` | public | `Validator[]` | `[]` | Used by Application Developers to add Validators to a FormControl. | LionListbox |
125
+ | `defaultValidators` | public | `Validator[]` | `[]` | Used by Subclassers to add default Validators to a particular FormControl.&#xA;A date input for instance, always needs the isDate validator. | LionListbox |
126
+ | `_visibleMessagesAmount` | protected | `number` | `1` | The amount of feedback messages that will visible in LionValidationFeedback | LionListbox |
127
+ | `__SyncUpdatableNamespace` | protected | `SyncUpdatableNamespace` | `{}` | Namespace for this mixin that guarantees naming clashes will not occur... | LionListbox |
128
+ | `_requestedToBeDisabled` | protected | `boolean` | `false` | | LionListbox |
129
+ | `disabled` | public | `boolean` | `false` | | LionListbox |
136
130
 
137
131
  ### Methods
138
132
 
@@ -243,7 +237,7 @@
243
237
  | Name | Type | Description | Inherited From |
244
238
  | ------------------------------ | ------------- | -------------------------------------------------------- | -------------- |
245
239
  | `blur` | `Event` | | LionListbox |
246
- | `opened-changed` | `Event` | | OverlayMixin |
240
+ | `opened-changed` | `CustomEvent` | | OverlayMixin |
247
241
  | `model-value-changed` | `CustomEvent` | | LionListbox |
248
242
  | `form-element-name-changed` | `CustomEvent` | | LionListbox |
249
243
  | `focus` | `Event` | | LionListbox |
@@ -14,9 +14,9 @@ import '@lion/ui/define/lion-option.js';
14
14
 
15
15
  ```html preview-story
16
16
  <lion-select-rich name="favoriteColor" label="Favorite color">
17
- <lion-option .choiceValue=${'red'}>Red</lion-option>
18
- <lion-option .choiceValue=${'hotpink'}>Hotpink</lion-option>
19
- <lion-option .choiceValue=${'blue'}>Blue</lion-option>
17
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
18
+ <lion-option .choiceValue="${'hotpink'}">Hotpink</lion-option>
19
+ <lion-option .choiceValue="${'blue'}">Blue</lion-option>
20
20
  </lion-select-rich>
21
21
  ```
22
22
 
@@ -67,7 +67,7 @@ export const manyOptionsWithScrolling = () => {
67
67
  <lion-option .modelValue="${modelValues[3]}">
68
68
  <p style="color: green;">I am green</p>
69
69
  </lion-option>
70
- <lion-option .modelValue"=${modelValues[4]}">
70
+ <lion-option .modelValue"="${modelValues[4]}"">
71
71
  <p style="color: blue;">I am blue</p>
72
72
  </lion-option>
73
73
  </lion-select-rich>
@@ -84,9 +84,9 @@ The readonly attribute is delegated to the invoker for disabling opening the ove
84
84
 
85
85
  ```html preview-story
86
86
  <lion-select-rich label="Read-only select" readonly name="color">
87
- <lion-option .choiceValue=${'red'}>Red</lion-option>
88
- <lion-option .choiceValue=${'hotpink'} checked>Hotpink</lion-option>
89
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
87
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
88
+ <lion-option .choiceValue="${'hotpink'}" checked>Hotpink</lion-option>
89
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
90
90
  </lion-select-rich>
91
91
  ```
92
92
 
@@ -98,19 +98,19 @@ If you disable the entire select, the disabled attribute is also delegated to th
98
98
 
99
99
  ```html preview-story
100
100
  <lion-select-rich label="Disabled select" disabled name="color">
101
- <lion-option .choiceValue=${'red'}>Red</lion-option>
102
- <lion-option .choiceValue=${'hotpink'} checked>Hotpink</lion-option>
103
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
101
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
102
+ <lion-option .choiceValue="${'hotpink'}" checked>Hotpink</lion-option>
103
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
104
104
  </lion-select-rich>
105
105
  ```
106
106
 
107
107
  ```html preview-story
108
108
  <lion-select-rich label="Disabled options" name="color">
109
- <lion-option .choiceValue=${'red'} disabled>Red</lion-option>
110
- <lion-option .choiceValue=${'blue'}>Blue</lion-option>
111
- <lion-option .choiceValue=${'hotpink'} disabled>Hotpink</lion-option>
112
- <lion-option .choiceValue=${'green'}>Green</lion-option>
113
- <lion-option .choiceValue=${'teal'} disabled>Teal</lion-option>
109
+ <lion-option .choiceValue="${'red'}" disabled>Red</lion-option>
110
+ <lion-option .choiceValue="${'blue'}">Blue</lion-option>
111
+ <lion-option .choiceValue="${'hotpink'}" disabled>Hotpink</lion-option>
112
+ <lion-option .choiceValue="${'green'}">Green</lion-option>
113
+ <lion-option .choiceValue="${'teal'}" disabled>Teal</lion-option>
114
114
  </lion-select-rich>
115
115
  ```
116
116
 
@@ -134,8 +134,8 @@ export const renderOptions = ({ shadowRoot }) => {
134
134
  );
135
135
  }
136
136
  return html`
137
- <lion-select-rich label="Credit Card" name="color" @model-value-changed=${showOutput}>
138
- ${objs.map(obj => html` <lion-option .choiceValue=${obj}>${obj.label}</lion-option> `)}
137
+ <lion-select-rich label="Credit Card" name="color" @model-value-changed="${showOutput}">
138
+ ${objs.map(obj => html` <lion-option .choiceValue="${obj}">${obj.label}</lion-option> `)}
139
139
  </lion-select-rich>
140
140
  <p>Full value:</p>
141
141
  <pre id="demoRenderOutput"></pre>
@@ -152,14 +152,14 @@ This changes the keyboard interaction.
152
152
 
153
153
  ```html preview-story
154
154
  <lion-select-rich label="Mac mode" name="color" interaction-mode="mac">
155
- <lion-option .choiceValue=${'red'}>Red</lion-option>
156
- <lion-option .choiceValue=${'hotpink'} checked>Hotpink</lion-option>
157
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
155
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
156
+ <lion-option .choiceValue="${'hotpink'}" checked>Hotpink</lion-option>
157
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
158
158
  </lion-select-rich>
159
159
  <lion-select-rich label="Windows/Linux mode" name="color" interaction-mode="windows/linux">
160
- <lion-option .choiceValue=${'red'}>Red</lion-option>
161
- <lion-option .choiceValue=${'hotpink'} checked>Hotpink</lion-option>
162
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
160
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
161
+ <lion-option .choiceValue="${'hotpink'}" checked>Hotpink</lion-option>
162
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
163
163
  </lion-select-rich>
164
164
  ```
165
165
 
@@ -199,9 +199,9 @@ export const checkedIndexAndValue = ({ shadowRoot }) => html`
199
199
  Console log checked index and value
200
200
  </button>
201
201
  <lion-select-rich id="checkedRichSelect" name="favoriteColor" label="Favorite color">
202
- <lion-option .choiceValue=${'red'}>Red</lion-option>
203
- <lion-option .choiceValue=${'hotpink'} checked>Hotpink</lion-option>
204
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
202
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
203
+ <lion-option .choiceValue="${'hotpink'}" checked>Hotpink</lion-option>
204
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
205
205
  </lion-select-rich>
206
206
  `;
207
207
  ```
@@ -222,11 +222,11 @@ Often, you may want a placeholder that appears initially, but cannot be selected
222
222
  For this you can use `has-no-default-selected` attribute.
223
223
 
224
224
  ```html preview-story
225
- <lion-select-rich name="favoriteColor" label="Favorite color" has-no-default-selected>
226
- <lion-option .choiceValue=${'red'}>Red</lion-option>
227
- <lion-option .choiceValue=${'hotpink'}>Hotpink</lion-option>
228
- <lion-option .choiceValue=${'teal'}>Teal</lion-option>
229
- </lion-select-rich>
225
+ <lion-select-rich name="favoriteColor" label="Favorite color" has-no-default-selected>
226
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
227
+ <lion-option .choiceValue="${'hotpink'}">Hotpink</lion-option>
228
+ <lion-option .choiceValue="${'teal'}">Teal</lion-option>
229
+ </lion-select-rich>
230
230
  ```
231
231
 
232
232
  > By default, the placeholder is completely empty in the `LionSelectInvoker`,
@@ -238,7 +238,7 @@ If there is a single option rendered, then `singleOption` property is set to `tr
238
238
 
239
239
  ```html preview-story
240
240
  <lion-select-rich label="Single Option" name="color">
241
- <lion-option .choiceValue=${'red'}>Red</lion-option>
241
+ <lion-option .choiceValue="${'red'}">Red</lion-option>
242
242
  </lion-select-rich>
243
243
  ```
244
244
 
@@ -259,12 +259,12 @@ class SingleOptionRemoveAdd extends LitElement {
259
259
 
260
260
  render() {
261
261
  return html`
262
- <button @click=${this.addOption}>Add an option</button>
263
- <button @click=${this.removeOption}>Remove last option</button>
262
+ <button @click="${this.addOption}">Add an option</button>
263
+ <button @click="${this.removeOption}">Remove last option</button>
264
264
  <lion-select-rich name="favoriteColor" label="Favorite color">
265
265
  <lion-options slot="input">
266
266
  ${this.options.map(
267
- option => html` <lion-option .choiceValue=${option}>${option}</lion-option> `,
267
+ option => html` <lion-option .choiceValue="${option}">${option}</lion-option> `,
268
268
  )}
269
269
  </lion-options>
270
270
  </lion-select-rich>
@@ -302,7 +302,7 @@ LionSelectRich will give it acces to:
302
302
  - LionSelectRich itself, via `.hostElement`
303
303
 
304
304
  Code of an advanced custom invoker is shown below (this is the code for the
305
- invoker used in [IntlSelectRich](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/components/select-rich/examples.md)).
305
+ invoker used in [IntlSelectRich](https://github.com/ing-bank/lion/blob/a59d362cc1228fc855b426440f4bed3bd21d594b/docs/components/select-rich/examples.md)).
306
306
  The invoker is usually added in the invoker slot of the LionSelectRich subclass.
307
307
  However, it would also be possible for an application developer to provide the invoker
308
308
  by putting it in light dom: