@lion/ui 0.22.0 → 0.23.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.
- package/README.md +35 -0
- package/components/combobox/src/LionCombobox.js +10 -2
- package/components/combobox/test/lion-combobox.test.js +31 -0
- package/components/form-core/src/choice-group/ChoiceGroupMixin.js +7 -0
- package/components/form-core/types/choice-group/ChoiceGroupMixinTypes.ts +5 -0
- package/components/input-amount/src/LionInputAmount.js +17 -6
- package/components/input-amount/src/formatters.js +5 -3
- package/components/input-amount/test/formatters.test.js +88 -74
- package/components/input-amount/test/lion-input-amount.test.js +51 -36
- package/components/input-tel/test/validators.test.js +9 -0
- package/components/listbox/src/ListboxMixin.js +19 -3
- package/components/listbox/types/ListboxMixinTypes.ts +7 -1
- package/components/menu/README.md +360 -0
- package/components/menu/src/InteractiveListMixin.js +867 -0
- package/components/menu/src/LionMenu.js +436 -0
- package/components/menu/src/MoreButtonMenuMixin.js +295 -0
- package/components/menu/src/MultiLevelListMixin.js +312 -0
- package/components/menu/src/utils/isInView.js +26 -0
- package/components/menu/src/utils/listItemInteractions.js +124 -0
- package/components/menu/test/InteractiveListMixin.test.js +3 -0
- package/components/menu/test/MoreButtonMenuMixin.test.js +4 -0
- package/components/menu/test/MultiLevelListMixin.test.js +3 -0
- package/components/menu/test/lion-menu-interactions.test.js +3 -0
- package/components/menu/test/lion-menu.test.js +14 -0
- package/components/menu/test-helpers/mimicKeyPress.js +9 -0
- package/components/menu/test-suites/InteractiveListMixin.suite.js +537 -0
- package/components/menu/test-suites/LionMenu.suite.js +114 -0
- package/components/menu/test-suites/LionMenuInteractions.suite.js +583 -0
- package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +372 -0
- package/components/menu/test-suites/MultiLevelListMixin.suite.js +309 -0
- package/components/menu/types/InteractiveListMixinTypes.ts +126 -0
- package/components/menu/types/MoreButtonMenuMixinTypes.ts +51 -0
- package/components/menu/types/MultiLevelListMixinTypes.ts +28 -0
- package/components/menu/types/OverlayWithListInvokerMixinTypes.ts +61 -0
- package/components/overlays/NEXT.md +49 -0
- package/components/overlays/src/OverlayController.js +304 -125
- package/components/overlays/src/OverlayMixin.js +81 -17
- package/components/overlays/src/utils/adopt-styles.js +1 -1
- package/components/overlays/src/utils/is-equal-config.js +15 -6
- package/components/overlays/test/OverlayController.test.js +223 -25
- package/components/overlays/test-suites/OverlayMixin.suite.js +8 -8
- package/components/overlays/types/ArrowMixinTypes.ts +1 -3
- package/components/overlays/types/OverlayConfig.ts +20 -5
- package/components/overlays/types/OverlayMixinTypes.ts +2 -0
- package/components/select-rich/src/LionSelectRich.js +12 -0
- package/components/select-rich/test/lion-select-rich-interaction.test.js +53 -0
- package/components/select-rich/test/lion-select-rich-upgrade.test.js +30 -0
- package/custom-elements.json +3120 -149
- package/dist-types/components/combobox/src/LionCombobox.d.ts +1 -1
- package/dist-types/components/combobox/src/LionCombobox.d.ts.map +1 -1
- package/dist-types/components/dialog/src/LionDialog.d.ts +6 -2
- package/dist-types/components/dialog/src/LionDialog.d.ts.map +1 -1
- package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts.map +1 -1
- package/dist-types/components/form-core/types/choice-group/ChoiceGroupMixinTypes.d.ts +5 -0
- package/dist-types/components/form-core/types/choice-group/ChoiceGroupMixinTypes.d.ts.map +1 -1
- package/dist-types/components/input-amount/src/LionInputAmount.d.ts +3 -1
- package/dist-types/components/input-amount/src/LionInputAmount.d.ts.map +1 -1
- package/dist-types/components/input-amount/src/formatters.d.ts +6 -4
- package/dist-types/components/input-amount/src/formatters.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
- package/dist-types/components/listbox/src/ListboxMixin.d.ts.map +1 -1
- package/dist-types/components/listbox/types/ListboxMixinTypes.d.ts +7 -1
- package/dist-types/components/listbox/types/ListboxMixinTypes.d.ts.map +1 -1
- package/dist-types/components/menu/src/InteractiveListMixin.d.ts +35 -0
- package/dist-types/components/menu/src/InteractiveListMixin.d.ts.map +1 -0
- package/dist-types/components/menu/src/LionMenu.d.ts +129 -0
- package/dist-types/components/menu/src/LionMenu.d.ts.map +1 -0
- package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts +8 -0
- package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts.map +1 -0
- package/dist-types/components/menu/src/MultiLevelListMixin.d.ts +7 -0
- package/dist-types/components/menu/src/MultiLevelListMixin.d.ts.map +1 -0
- package/dist-types/components/menu/src/utils/isInView.d.ts +9 -0
- package/dist-types/components/menu/src/utils/isInView.d.ts.map +1 -0
- package/dist-types/components/menu/src/utils/listItemInteractions.d.ts +48 -0
- package/dist-types/components/menu/src/utils/listItemInteractions.d.ts.map +1 -0
- package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts +2 -0
- package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts.map +1 -0
- package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts +2 -0
- package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts.map +1 -0
- package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts +2 -0
- package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts.map +1 -0
- package/dist-types/components/menu/test/lion-menu-interactions.test.d.ts +2 -0
- package/dist-types/components/menu/test/lion-menu-interactions.test.d.ts.map +1 -0
- package/dist-types/components/menu/test/lion-menu.test.d.ts +2 -0
- package/dist-types/components/menu/test/lion-menu.test.d.ts.map +1 -0
- package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts +7 -0
- package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts.map +1 -0
- package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +11 -0
- package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -0
- package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +9 -0
- package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -0
- package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts +5 -0
- package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts.map +1 -0
- package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +11 -0
- package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -0
- package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +11 -0
- package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -0
- package/dist-types/components/menu/types/InteractiveListMixinTypes.d.ts +72 -0
- package/dist-types/components/menu/types/InteractiveListMixinTypes.d.ts.map +1 -0
- package/dist-types/components/menu/types/MoreButtonMenuMixinTypes.d.ts +30 -0
- package/dist-types/components/menu/types/MoreButtonMenuMixinTypes.d.ts.map +1 -0
- package/dist-types/components/menu/types/MultiLevelListMixinTypes.d.ts +16 -0
- package/dist-types/components/menu/types/MultiLevelListMixinTypes.d.ts.map +1 -0
- package/dist-types/components/menu/types/OverlayWithListInvokerMixinTypes.d.ts +35 -0
- package/dist-types/components/menu/types/OverlayWithListInvokerMixinTypes.d.ts.map +1 -0
- package/dist-types/components/overlays/src/OverlayController.d.ts +22 -5
- package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
- package/dist-types/components/overlays/src/utils/is-equal-config.d.ts.map +1 -1
- package/dist-types/components/overlays/types/ArrowMixinTypes.d.ts.map +1 -1
- package/dist-types/components/overlays/types/OverlayConfig.d.ts +12 -2
- package/dist-types/components/overlays/types/OverlayConfig.d.ts.map +1 -1
- package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts +1 -0
- package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts.map +1 -1
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts +13 -2
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
- package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts.map +1 -1
- package/dist-types/components/select-rich/test/lion-select-rich-upgrade.test.d.ts +2 -0
- package/dist-types/components/select-rich/test/lion-select-rich-upgrade.test.d.ts.map +1 -0
- package/dist-types/components/tooltip/src/LionTooltip.d.ts +1 -1
- package/dist-types/exports/define/lion-item.d.ts +2 -0
- package/dist-types/exports/define/lion-item.d.ts.map +1 -0
- package/dist-types/exports/define/lion-menu.d.ts +2 -0
- package/dist-types/exports/define/lion-menu.d.ts.map +1 -0
- package/dist-types/exports/define/lion-menuitem.d.ts +2 -0
- package/dist-types/exports/define/lion-menuitem.d.ts.map +1 -0
- package/dist-types/exports/menu-test-suites.d.ts +4 -0
- package/dist-types/exports/menu-test-suites.d.ts.map +1 -0
- package/dist-types/exports/menu.d.ts +3 -0
- package/dist-types/exports/menu.d.ts.map +1 -0
- package/dist-types/exports/overlays.d.ts +6 -0
- package/dist-types/exports/overlays.d.ts.map +1 -1
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/checkbox-group/overview.md +2 -2
- package/docs/components/collapsible/overview.md +1 -1
- package/docs/components/combobox/api-table.md +53 -39
- package/docs/components/combobox/overview.md +1 -1
- package/docs/components/combobox/use-cases.md +1 -1
- package/docs/components/dialog/api-table.md +32 -6
- package/docs/components/dialog/overview.md +1 -1
- package/docs/components/fieldset/overview.md +5 -5
- package/docs/components/form/overview.md +3 -3
- package/docs/components/form/use-cases.md +2 -2
- package/docs/components/icon/use-cases.md +1 -1
- package/docs/components/input/overview.md +1 -1
- package/docs/components/input-amount/api-table.md +9 -7
- package/docs/components/input-amount/overview.md +3 -3
- package/docs/components/input-amount/use-cases.md +15 -4
- package/docs/components/input-amount-dropdown/api-table.md +2 -0
- package/docs/components/input-date/overview.md +3 -3
- package/docs/components/input-datepicker/api-table.md +63 -45
- package/docs/components/input-datepicker/overview.md +5 -5
- package/docs/components/input-email/overview.md +2 -2
- package/docs/components/input-file/overview.md +1 -1
- package/docs/components/input-iban/overview.md +2 -2
- package/docs/components/input-range/overview.md +2 -2
- package/docs/components/input-stepper/overview.md +1 -1
- package/docs/components/input-tel/overview.md +1 -1
- package/docs/components/input-tel/use-cases.md +6 -6
- package/docs/components/input-tel-dropdown/overview.md +1 -1
- package/docs/components/listbox/use-cases.md +1 -1
- package/docs/components/menu/api-table.md +44 -0
- package/docs/components/menu/applyMenuDemoStyles.js +173 -0
- package/docs/components/menu/extensions.md +262 -0
- package/docs/components/menu/index.md +13 -0
- package/docs/components/menu/migration.md +129 -0
- package/docs/components/menu/overview.md +448 -0
- package/docs/components/menu/src/DemoNavigationBar.js +441 -0
- package/docs/components/menu/src/DemoSpinButton.js +215 -0
- package/docs/components/menu/src/DemoToolbar.js +101 -0
- package/docs/components/menu/src/DemoTree.js +55 -0
- package/docs/components/menu/src/navigation-bar-types.js +41 -0
- package/docs/components/menu/use-cases.md +74 -0
- package/docs/components/radio-group/overview.md +3 -3
- package/docs/components/select/use-cases.md +1 -1
- package/docs/components/select-rich/api-table.md +51 -33
- package/docs/components/select-rich/use-cases.md +2 -2
- package/docs/components/tabs/examples.md +1 -1
- package/docs/components/tooltip/api-table.md +33 -7
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +1 -1
- package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
- package/docs/fundamentals/rationales/accessibility.md +1 -1
- package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
- package/docs/fundamentals/systems/core/overview.md +1 -1
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
- package/docs/fundamentals/systems/form/model-value.md +1 -1
- package/docs/fundamentals/systems/form/overview.md +28 -28
- package/docs/fundamentals/systems/form/validate.md +2 -2
- package/docs/fundamentals/systems/localize/overview.md +4 -4
- package/docs/fundamentals/systems/overlays/api-table.md +46 -43
- package/docs/fundamentals/systems/overlays/configuration.md +2 -2
- package/docs/fundamentals/systems/overlays/overview.md +5 -5
- package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
- package/docs/guides/how-to/create-a-custom-field.md +5 -5
- package/docs/guides/how-to/create-a-form.md +4 -4
- package/docs/guides/how-to/extend-a-native-input.md +2 -2
- package/docs/guides/how-to/index.md +1 -1
- package/docs/guides/index.md +8 -8
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/styling.md +1 -1
- package/exports/define/lion-item.js +3 -0
- package/exports/define/lion-menu.js +3 -0
- package/exports/define/lion-menuitem.js +3 -0
- package/exports/menu-test-suites.js +4 -0
- package/exports/menu.js +3 -0
- package/exports/overlays.js +6 -0
- package/menu-test-suites.js +4 -0
- package/menu.js +3 -0
- package/overlays.js +6 -0
- package/package.json +11 -4
- package/vendor/README.md +61 -0
- package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
- package/vscode.html-custom-data.json +76 -8
- package/web-types.json +202 -17
|
@@ -87,9 +87,9 @@ if (!customElements.get('dummy-slider')) {
|
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Custom Fields can be created in just a few steps. All you need is an interaction element (like for instance a slider, a listbox or a combobox) and connect it to the [LionField](https://github.com/ing-bank/lion/blob/
|
|
90
|
+
Custom Fields can be created in just a few steps. All you need is an interaction element (like for instance a slider, a listbox or a combobox) and connect it to the [LionField](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/components/input/overview.md).
|
|
91
91
|
|
|
92
|
-
> In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/
|
|
92
|
+
> In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/extend-a-native-input.md).
|
|
93
93
|
|
|
94
94
|
## A) an interaction element
|
|
95
95
|
|
|
@@ -138,7 +138,7 @@ export const createAnInteractiveElement = () => {
|
|
|
138
138
|
## B) your LionField extension
|
|
139
139
|
|
|
140
140
|
Now we want to integrate the slider in our form system to enrich the user interface, get
|
|
141
|
-
validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/
|
|
141
|
+
validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/components/input/overview.md).
|
|
142
142
|
We start by creating a component `<slider-field>` that extends from `LionField`.
|
|
143
143
|
Then we follow the steps below:
|
|
144
144
|
|
|
@@ -151,7 +151,7 @@ Then we follow the steps below:
|
|
|
151
151
|
|
|
152
152
|
The `user-input-changed` event is listened to by the FormatMixin: it should be regarded as the
|
|
153
153
|
equivalent of the `input` event of the platform, but for custom built interaction elements.
|
|
154
|
-
You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/
|
|
154
|
+
You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/fundamentals/systems/form/model-value.md), which can be regarded as
|
|
155
155
|
the glue to integrate all other functionality like parsing/formatting/serializing, validating,
|
|
156
156
|
tracking interaction states etc.
|
|
157
157
|
|
|
@@ -159,7 +159,7 @@ Then we follow the steps below:
|
|
|
159
159
|
> because those properties will lose their reactivity (they won't be considered anymore in the
|
|
160
160
|
> update loop of LitElement).
|
|
161
161
|
> Whenever a .modelValue/.formattedValue/.serializedValue needs to be computed, use
|
|
162
|
-
> [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/
|
|
162
|
+
> [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/fundamentals/systems/form/formatting-and-parsing.md)
|
|
163
163
|
|
|
164
164
|
Implement with the following code:
|
|
165
165
|
|
|
@@ -39,7 +39,7 @@ Large or complex forms might need to be split up into multiple files. This compo
|
|
|
39
39
|
|
|
40
40
|
In the latter case: make sure that your components don't have a shadow root. This can be achieved by rendering into Light DOM. The form registration mechanism relies on light dom by design: as soon as you do start to use shadow roots, you will notice that your form components won't register themselves anymore to their parents.
|
|
41
41
|
|
|
42
|
-
> Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/
|
|
42
|
+
> Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/fundamentals/rationales/accessibility.md#shadow-roots-and-accessibility).
|
|
43
43
|
|
|
44
44
|
### Example of a component that renders into Light DOM
|
|
45
45
|
|
|
@@ -86,7 +86,7 @@ Extending form components is not recommended for Application Developers: it shou
|
|
|
86
86
|
This team will add the styling and default configuration needed to make it fit the particular Design System.
|
|
87
87
|
|
|
88
88
|
With the toolbox provided by the team that creates your Design System, you should be able to build all your forms. Only if you have a really good reason, look into
|
|
89
|
-
[exceptional cases](https://github.com/ing-bank/lion/blob/
|
|
89
|
+
[exceptional cases](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/#exceptional-cases) below.
|
|
90
90
|
|
|
91
91
|
### Exceptional cases
|
|
92
92
|
|
|
@@ -94,8 +94,8 @@ If the form component you need is still missing, you have two options:
|
|
|
94
94
|
|
|
95
95
|
- is it a generic primitive that should be part of Lion? Request it in [Lion discussions](https://github.com/ing-bank/lion/discussions)
|
|
96
96
|
- is it a non generic component that is unique to your app?
|
|
97
|
-
- follow [create a custom field](https://github.com/ing-bank/lion/blob/
|
|
98
|
-
- follow [extend a native input](https://github.com/ing-bank/lion/blob/
|
|
97
|
+
- follow [create a custom field](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/create-a-custom-field.md)
|
|
98
|
+
- follow [extend a native input](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/extend-a-native-input.md)
|
|
99
99
|
|
|
100
100
|
It's also possible to extend other components, like LionListbox or LionCombobox. You need to be aware that you're building on top of protected apis.
|
|
101
101
|
Changing/overriding functionality is only recommended if the source code in `form-core` is fully understood.
|
|
@@ -23,9 +23,9 @@ import '../../fundamentals/systems/form/assets/h-output.js';
|
|
|
23
23
|
loadDefaultFeedbackMessages();
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Input fields can be created by extending [LionInput](https://github.com/ing-bank/lion/blob/
|
|
26
|
+
Input fields can be created by extending [LionInput](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/components/input/overview.md).
|
|
27
27
|
|
|
28
|
-
> In case you want to wrap a custom form element, follow [Create a custom Field](https://github.com/ing-bank/lion/blob/
|
|
28
|
+
> In case you want to wrap a custom form element, follow [Create a custom Field](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/create-a-custom-field.md).
|
|
29
29
|
|
|
30
30
|
For this tutorial, we create an input that wraps native `input[type=datetime-local]`.
|
|
31
31
|
This is as simple as adding a type:
|
|
@@ -22,4 +22,4 @@ Whether you're just getting started with Lion, building your first form, extendi
|
|
|
22
22
|
- Build custom form fields tailored to your needs
|
|
23
23
|
- Follow proven patterns and best practices used by the Lion community
|
|
24
24
|
|
|
25
|
-
If you can't find what you're looking for, check out our [Fundamentals](../../fundamentals/) section for deeper conceptual knowledge, or visit our [Components](https://github.com/ing-bank/lion/blob/
|
|
25
|
+
If you can't find what you're looking for, check out our [Fundamentals](../../fundamentals/) section for deeper conceptual knowledge, or visit our [Components](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/components) documentation for detailed API references.
|
package/docs/guides/index.md
CHANGED
|
@@ -22,9 +22,9 @@ Developers consuming our web components inside an application (not extending the
|
|
|
22
22
|
`Application Developers` are only allowed to interact with `public` properties and methods.
|
|
23
23
|
Can be abbreviated as `AD`. Sometimes also called `Consuming Developer`.
|
|
24
24
|
|
|
25
|
-
- [Definitions and Terms](https://github.com/ing-bank/lion/blob/
|
|
26
|
-
- [Styling](https://github.com/ing-bank/lion/blob/
|
|
27
|
-
- [Scoped Elements](https://github.com/ing-bank/lion/blob/
|
|
25
|
+
- [Definitions and Terms](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/definitions-and-terms.md)
|
|
26
|
+
- [Styling](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/styling.md)
|
|
27
|
+
- [Scoped Elements](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/scoped-elements.md)
|
|
28
28
|
|
|
29
29
|
## Extending Developer
|
|
30
30
|
|
|
@@ -32,13 +32,13 @@ Developers extending our web components, for instance: `class MaterialInput exte
|
|
|
32
32
|
|
|
33
33
|
Especially for subclassers we have some extra documentation:
|
|
34
34
|
|
|
35
|
-
- [Subclasser APIs](https://github.com/ing-bank/lion/blob/
|
|
36
|
-
- [Extend documentation](https://github.com/ing-bank/lion/blob/
|
|
35
|
+
- [Subclasser APIs](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/subclasser-apis.md)
|
|
36
|
+
- [Extend documentation](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/blog/extending-documentation.md)
|
|
37
37
|
|
|
38
38
|
## How To
|
|
39
39
|
|
|
40
40
|
Next to that we have some specific "How To" documentations.
|
|
41
41
|
|
|
42
|
-
- [Get started](https://github.com/ing-bank/lion/blob/
|
|
43
|
-
- [Create a custom field](https://github.com/ing-bank/lion/blob/
|
|
44
|
-
- [Extend a native input](https://github.com/ing-bank/lion/blob/
|
|
42
|
+
- [Get started](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/get-started.md)
|
|
43
|
+
- [Create a custom field](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/create-a-custom-field.md)
|
|
44
|
+
- [Extend a native input](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/how-to/extend-a-native-input.md)
|
|
@@ -22,9 +22,9 @@ Developers consuming our web components inside an application (not extending the
|
|
|
22
22
|
`Application Developers` are only allowed to interact with `public` properties and methods.
|
|
23
23
|
Can be abbreviated as `AD`. Sometimes also called `Consuming Developer`.
|
|
24
24
|
|
|
25
|
-
- [Definitions and Terms](https://github.com/ing-bank/lion/blob/
|
|
26
|
-
- [Styling](https://github.com/ing-bank/lion/blob/
|
|
27
|
-
- [Scoped Elements](https://github.com/ing-bank/lion/blob/
|
|
25
|
+
- [Definitions and Terms](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/definitions-and-terms.md)
|
|
26
|
+
- [Styling](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/styling.md)
|
|
27
|
+
- [Scoped Elements](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/scoped-elements.md)
|
|
28
28
|
|
|
29
29
|
## Extending Developer
|
|
30
30
|
|
|
@@ -32,5 +32,5 @@ Developers extending our web components, for instance: `class MaterialInput exte
|
|
|
32
32
|
|
|
33
33
|
Especially for subclassers we have some extra documentation:
|
|
34
34
|
|
|
35
|
-
- [Subclasser APIs](https://github.com/ing-bank/lion/blob/
|
|
36
|
-
- [Extend documentation](https://github.com/ing-bank/lion/blob/
|
|
35
|
+
- [Subclasser APIs](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/subclasser-apis.md)
|
|
36
|
+
- [Extend documentation](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/blog/extending-documentation.md)
|
|
@@ -30,7 +30,7 @@ Examples for both categories can be found below:
|
|
|
30
30
|
- Accessibility examples:
|
|
31
31
|
- Content (for instance a caption in a table) can be `visually hidden`: it will be
|
|
32
32
|
readable by screen readers, but invisible for end users.
|
|
33
|
-
- When an html table is used, we allow [subclassers](https://github.com/ing-bank/lion/blob/
|
|
33
|
+
- When an html table is used, we allow [subclassers](https://github.com/ing-bank/lion/blob/4649554021224763994601dd8d202c511d35013e/docs/guides/principles/subclasser-apis.md) to override the display property (`table-cell`) to `flex`. By putting the proper accessible roles (`role="cell"`) in the markup, we guarantee our markup stays accessible.
|
|
34
34
|
|
|
35
35
|
Although Lion components try to stay as unbiased as possible with regard to styling, defaults will be needed. In these cases we try to follow the platform as much as possible. If the platform doesn't provide defaults, the largest common denominator across existing UI systems is taken as a lead.
|
|
36
36
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/no-relative-packages */
|
|
2
|
+
export { runInteractiveListMixinSuite } from '../components/menu/test-suites/InteractiveListMixin.suite.js';
|
|
3
|
+
export { runMultiLevelListMixinSuite } from '../components/menu/test-suites/MultiLevelListMixin.suite.js';
|
|
4
|
+
export { runLionMenuInteractionsSuite } from '../components/menu/test-suites/LionMenuInteractions.suite.js';
|
package/exports/menu.js
ADDED
package/exports/overlays.js
CHANGED
|
@@ -9,6 +9,8 @@ export { withModalDialogConfig } from '../components/overlays/src/configurations
|
|
|
9
9
|
export { withDropdownConfig } from '../components/overlays/src/configurations/withDropdownConfig.js';
|
|
10
10
|
export { withTooltipConfig } from '../components/overlays/src/configurations/withTooltipConfig.js';
|
|
11
11
|
export { withPopoverConfig } from '../components/overlays/src/configurations/withPopoverConfig.js';
|
|
12
|
+
export { withClickInteraction } from '../components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js';
|
|
13
|
+
export { withHoverInteraction } from '../components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js';
|
|
12
14
|
|
|
13
15
|
export { deepContains } from '../components/overlays/src/utils/deep-contains.js';
|
|
14
16
|
// re-export via this entrypoint for backwards compatibility
|
|
@@ -20,3 +22,7 @@ export {
|
|
|
20
22
|
} from '../components/overlays/src/utils/inert-siblings.js';
|
|
21
23
|
|
|
22
24
|
export { overlays } from '../components/overlays/src/singleton.js';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @typedef {import('../components/overlays/types/OverlayConfig.js').OverlayConfig} OverlayConfig
|
|
28
|
+
*/
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/no-relative-packages */
|
|
2
|
+
export { runInteractiveListMixinSuite } from './components/menu/test-suites/InteractiveListMixin.suite.js';
|
|
3
|
+
export { runMultiLevelListMixinSuite } from './components/menu/test-suites/MultiLevelListMixin.suite.js';
|
|
4
|
+
export { runLionMenuInteractionsSuite } from './components/menu/test-suites/LionMenuInteractions.suite.js';
|
package/menu.js
ADDED
package/overlays.js
CHANGED
|
@@ -7,6 +7,8 @@ export { withModalDialogConfig } from './components/overlays/src/configurations/
|
|
|
7
7
|
export { withDropdownConfig } from './components/overlays/src/configurations/withDropdownConfig.js';
|
|
8
8
|
export { withTooltipConfig } from './components/overlays/src/configurations/withTooltipConfig.js';
|
|
9
9
|
export { withPopoverConfig } from './components/overlays/src/configurations/withPopoverConfig.js';
|
|
10
|
+
export { withClickInteraction } from './components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js';
|
|
11
|
+
export { withHoverInteraction } from './components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js';
|
|
10
12
|
export { deepContains } from './components/overlays/src/utils/deep-contains.js';
|
|
11
13
|
// re-export via this entrypoint for backwards compatibility
|
|
12
14
|
export { getDeepActiveElement } from './components/core/src/getDeepActiveElement.js';
|
|
@@ -16,3 +18,7 @@ export {
|
|
|
16
18
|
setSiblingsInert,
|
|
17
19
|
} from './components/overlays/src/utils/inert-siblings.js';
|
|
18
20
|
export { overlays } from './components/overlays/src/singleton.js';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @typedef {import('../components/overlays/types/OverlayConfig.js').OverlayConfig} OverlayConfig
|
|
24
|
+
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lion/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "A package of extendable web components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ing-bank",
|
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"dist-types",
|
|
82
82
|
"docs",
|
|
83
83
|
"exports",
|
|
84
|
+
"vendor",
|
|
84
85
|
"vscode.css-custom-data.json",
|
|
85
86
|
"vscode.html-custom-data.json",
|
|
86
87
|
"web-types.json",
|
|
@@ -93,10 +94,12 @@
|
|
|
93
94
|
"debug:firefox": "cd ../../ && npm run debug:firefox",
|
|
94
95
|
"debug:webkit": "cd ../../ && npm run debug:webkit",
|
|
95
96
|
"generate-lion-exports": "node ./scripts/generate-lion-exports.js",
|
|
97
|
+
"prepack": "node ./scripts/prepare-vendored-phone.js",
|
|
96
98
|
"prepublishOnly": "npm run types && npm run create-npm-publish-docs && npm run publish-docs && npm run custom-elements-manifest && npm run generate-lion-exports",
|
|
97
99
|
"publish-docs": "node ../../packages-node/publish-docs/src/cli.js --github-url https://github.com/ing-bank/lion/ --git-root-dir ../../",
|
|
98
100
|
"test": "cd ../../ && npm run test:browser",
|
|
99
101
|
"types": "wireit",
|
|
102
|
+
"types-check-consumer": "node ./scripts/check-consumer-types.js",
|
|
100
103
|
"types-check-only": "tsc --project tsconfig-check-only.json",
|
|
101
104
|
"types-restore-visibility": "node ./scripts/types-restore-visibility.js"
|
|
102
105
|
},
|
|
@@ -113,11 +116,14 @@
|
|
|
113
116
|
"@open-wc/scoped-elements": "^3.0.6",
|
|
114
117
|
"@popperjs/core": "^2.11.8",
|
|
115
118
|
"autosize": "^6.0.0",
|
|
116
|
-
"awesome-phonenumber": "
|
|
119
|
+
"awesome-phonenumber": "file:vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz",
|
|
117
120
|
"ibantools": "^4.3.9",
|
|
118
121
|
"lit": "^3.1.2",
|
|
119
122
|
"singleton-manager": "^1.8.0"
|
|
120
123
|
},
|
|
124
|
+
"bundledDependencies": {
|
|
125
|
+
"0": "awesome-phonenumber"
|
|
126
|
+
},
|
|
121
127
|
"keywords": [
|
|
122
128
|
"design-system",
|
|
123
129
|
"lion",
|
|
@@ -130,7 +136,7 @@
|
|
|
130
136
|
"web-types": "./web-types.json",
|
|
131
137
|
"wireit": {
|
|
132
138
|
"types": {
|
|
133
|
-
"command": "tsc --build --pretty && npm run types-restore-visibility",
|
|
139
|
+
"command": "tsc --build --pretty && npm run types-restore-visibility && npm run types-check-consumer",
|
|
134
140
|
"dependencies": [
|
|
135
141
|
"../singleton-manager:types"
|
|
136
142
|
],
|
|
@@ -138,7 +144,8 @@
|
|
|
138
144
|
"exports/**/*.js",
|
|
139
145
|
"components/**/*",
|
|
140
146
|
"tsconfig.json",
|
|
141
|
-
"scripts/types-restore-visibility.js"
|
|
147
|
+
"scripts/types-restore-visibility.js",
|
|
148
|
+
"scripts/check-consumer-types.js"
|
|
142
149
|
],
|
|
143
150
|
"output": [
|
|
144
151
|
"dist-types/**"
|
package/vendor/README.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Vendored awesome-phonenumber
|
|
2
|
+
|
|
3
|
+
This temporary artifact replaces the registry dependency until the next upstream
|
|
4
|
+
awesome-phonenumber release incorporating the required metadata is available.
|
|
5
|
+
|
|
6
|
+
- Package: `awesome-phonenumber@7.9.0-tlouisse.libphonenumber-9.0.41`.
|
|
7
|
+
- Google libphonenumber: `v9.0.41`.
|
|
8
|
+
- Source: [tlouisse/awesome-phonenumber](https://github.com/tlouisse/awesome-phonenumber),
|
|
9
|
+
commit `b4b6439136053624351f1c0fd8eb200ee867f37f`
|
|
10
|
+
on branch `hu84jr-ing-phone-package-workflow`, based on upstream `9ff7ec8`.
|
|
11
|
+
- Artifact: `awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz`.
|
|
12
|
+
- SHA-256: `855b0476ea7784457e8ec63d4824ff925eed0e339f72e8e05b7eea75a80ec018`.
|
|
13
|
+
- npm integrity:
|
|
14
|
+
`sha512-v1ZQJG8WeBfH2PFjiZidVnBwXrD/IxNbUbeNVAXltkGdOtZiNN5n/Bllfp601GhkUPByZPvrPjHEj+gT9LnZIQ==`.
|
|
15
|
+
- [Verified packaging workflow](https://github.com/tlouisse/awesome-phonenumber/actions/runs/38529804810):
|
|
16
|
+
Node 22/npm 10 and local Node 24/npm 11 produced byte-identical artifacts.
|
|
17
|
+
|
|
18
|
+
## Reproduce
|
|
19
|
+
|
|
20
|
+
In a separate checkout of the source repository:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
git checkout b4b6439136053624351f1c0fd8eb200ee867f37f
|
|
24
|
+
yarn install --immutable
|
|
25
|
+
PACK_DESTINATION=/absolute/path/to/artifacts npm run pack
|
|
26
|
+
npm run pack:verify -- /absolute/path/to/artifacts/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz
|
|
27
|
+
shasum -a 256 /absolute/path/to/artifacts/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The source workflow rebuilds Google's metadata and verifies the installed tarball's
|
|
31
|
+
CommonJS, ESM, and TypeScript entrypoints. The artifact has no runtime dependencies.
|
|
32
|
+
It contains the upstream README and `LICENSE`, `LICENSE.libphonenumber`, and
|
|
33
|
+
`LICENSE.closure-library`; these notices also accompany the bundled installed
|
|
34
|
+
package in published Lion packages.
|
|
35
|
+
|
|
36
|
+
## Packaging and removal
|
|
37
|
+
|
|
38
|
+
The package-relative dependency is accompanied by `bundledDependencies` so consumers
|
|
39
|
+
receive the installed package, not an unresolved path into this repository.
|
|
40
|
+
The private root declares the same tarball as a development dependency so npm
|
|
41
|
+
hoists and installs it during `npm ci`; otherwise npm treats the workspace's
|
|
42
|
+
bundled dependency as already provided and skips installing it. Both declarations
|
|
43
|
+
must point to this exact artifact. The old docs package retains its registry version.
|
|
44
|
+
The temporary `prepack` helper verifies the checksum, installs only this artifact
|
|
45
|
+
in an isolated temporary prefix using offline npm, copies the npm-installed package
|
|
46
|
+
into the local bundle, and cleans up the temporary prefix. npm does not bundle
|
|
47
|
+
dependencies hoisted outside the workspace. The helper disables dependency scripts
|
|
48
|
+
and lockfile writes, cannot fetch network dependencies, and does not reinstall
|
|
49
|
+
Lion's other runtime dependencies.
|
|
50
|
+
Run `npm ci`, `npm run prepublishOnly --workspace @lion/ui`, and
|
|
51
|
+
`npm pack --workspace @lion/ui --pack-destination /absolute/path/to/artifacts`.
|
|
52
|
+
Install the resulting Lion tarball in a fresh consumer outside the checkout, with
|
|
53
|
+
`npm install --offline`, and verify the bundled phone package resolves and accepts
|
|
54
|
+
the French Guiana premium-rate example `+594890123456`.
|
|
55
|
+
|
|
56
|
+
When the next upstream awesome-phonenumber release incorporates this metadata,
|
|
57
|
+
restore the registry dependency, remove bundling and this vendor directory, update
|
|
58
|
+
the lockfile, remove the root development dependency, and retain the metadata
|
|
59
|
+
regression test. Remove the temporary `prepack` lifecycle and
|
|
60
|
+
`scripts/prepare-vendored-phone.js` helper too. See the root README for
|
|
61
|
+
the complete removal checklist.
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
"name": "lion-combobox",
|
|
107
|
-
"description": "LionCombobox: implements the wai-aria combobox design pattern and integrates it as a Lion\nFormControl\n\n\n---\n\n\n\n\n### **Events:**\n - **model-value-changed** - undefined\n\n### **Methods:**\n - **matchCondition(option: _LionOption_, textboxValue: _string_)** - When the preconfigurable `match-mode` conditions are not sufficient,\none can define a custom matching function.\n- **parser(value: _string|string[]_): _*_** - Converts viewValue to modelValue\n- **_autoSelectCondition()** - When this condition is false, an end user will have to manually select a suggested\noption from the list (by default when autocomplete is 'none' or 'list').\nFor autocomplete 'both' or 'inline', it will automatically select on a match.\n- **_getTextboxValueFromOption(option: _LionOption_): _string_** - Return the value to be used for the input value\n- **_handleAutocompletion()** - Handles autocompletion. This entails:\n- list: shows a list on keydown character press\n- filter: filters list of potential matches according to matchmode or provided matchCondition\n- focus: automatically focuses closest match (makes it the activedescendant)\n- check: automatically checks/selects closest match when selection-follows-focus is enabled\n(this is the default configuration)\n- complete: completes the textbox value inline (the 'missing characters' will be added as\nselected text)\n\n### **Slots:**\n - **listbox** - The listbox element for the combobox, e.g. <lion-options>\n- **selection-display** - The selection display element for the combobox, e.g. <lion-selection-display>",
|
|
107
|
+
"description": "LionCombobox: implements the wai-aria combobox design pattern and integrates it as a Lion\nFormControl\n\n\n---\n\n\n\n\n### **Events:**\n - **model-value-changed** - undefined\n- **opened-changed** - undefined\n\n### **Methods:**\n - **close()** - Hides the overlay\n- **matchCondition(option: _LionOption_, textboxValue: _string_)** - When the preconfigurable `match-mode` conditions are not sufficient,\none can define a custom matching function.\n- **open()** - Shows the overlay\n- **parser(value: _string|string[]_): _*_** - Converts viewValue to modelValue\n- **repositionOverlay()** - Sometimes it's needed to recompute Popper position of an overlay, for instance when we have\nan opened combobox and the surrounding context changes (the space consumed by the textbox\nincreases vertically)\n- **toggle()** - Toggles the overlay\n- **_autoSelectCondition()** - When this condition is false, an end user will have to manually select a suggested\noption from the list (by default when autocomplete is 'none' or 'list').\nFor autocomplete 'both' or 'inline', it will automatically select on a match.\n- **_getFocusableInvokerEl(focusableElOrWrapper: _Element | null | undefined_): _Element | null_** - Returns the element that can actually receive focus inside the passed\ninvoker (wrapper) element: the element itself when it is focusable,\notherwise the first focusable descendant.\n- **_getTextboxValueFromOption(option: _LionOption_): _string_** - Return the value to be used for the input value\n- **_handleAutocompletion()** - Handles autocompletion. This entails:\n- list: shows a list on keydown character press\n- filter: filters list of potential matches according to matchmode or provided matchCondition\n- focus: automatically focuses closest match (makes it the activedescendant)\n- check: automatically checks/selects closest match when selection-follows-focus is enabled\n(this is the default configuration)\n- complete: completes the textbox value inline (the 'missing characters' will be added as\nselected text)\n- **_isPermanentlyDisconnected(): _Promise<boolean>_** - When we're moving around in dom, disconnectedCallback gets called.\nBefore we decide to teardown, let's wait to see if we were not just moving nodes around.\n- **_setOpenedWithoutPropertyEffects(newOpened: _boolean_)** - When the opened state is changed by an Application Developer,cthe OverlayController is\nrequested to show/hide. It might happen that this request is not honoured\n(intercepted in before-hide for instance), so that we need to sync the controller state\nto this webcomponent again, preventing eternal loops.\n\n### **Slots:**\n - **listbox** - The listbox element for the combobox, e.g. <lion-options>\n- **selection-display** - The selection display element for the combobox, e.g. <lion-selection-display>",
|
|
108
108
|
"attributes": [
|
|
109
109
|
{
|
|
110
110
|
"name": "autocomplete",
|
|
@@ -132,14 +132,26 @@
|
|
|
132
132
|
"values": []
|
|
133
133
|
},
|
|
134
134
|
{ "name": "allow-custom-choice", "values": [] },
|
|
135
|
-
{ "name": "__shouldAutocompleteNextUpdate", "values": [] }
|
|
135
|
+
{ "name": "__shouldAutocompleteNextUpdate", "values": [] },
|
|
136
|
+
{
|
|
137
|
+
"name": "opened",
|
|
138
|
+
"description": "If you add the opened attribute a dialog will be opened on page load. The invoker can be left out\nin case the user does not need to be able to reopen the dialog.",
|
|
139
|
+
"values": []
|
|
140
|
+
}
|
|
136
141
|
],
|
|
137
142
|
"references": []
|
|
138
143
|
},
|
|
139
144
|
{
|
|
140
145
|
"name": "lion-dialog",
|
|
141
|
-
"description": "\n\n\n---\n\n\n",
|
|
142
|
-
"attributes": [
|
|
146
|
+
"description": "\n\n\n---\n\n\n\n\n### **Events:**\n - **opened-changed** - undefined\n\n### **Methods:**\n - **close()** - Hides the overlay\n- **open()** - Shows the overlay\n- **repositionOverlay()** - Sometimes it's needed to recompute Popper position of an overlay, for instance when we have\nan opened combobox and the surrounding context changes (the space consumed by the textbox\nincreases vertically)\n- **toggle()** - Toggles the overlay\n- **_getFocusableInvokerEl(focusableElOrWrapper: _Element | null | undefined_): _Element | null_** - Returns the element that can actually receive focus inside the passed\ninvoker (wrapper) element: the element itself when it is focusable,\notherwise the first focusable descendant.\n- **_isPermanentlyDisconnected(): _Promise<boolean>_** - When we're moving around in dom, disconnectedCallback gets called.\nBefore we decide to teardown, let's wait to see if we were not just moving nodes around.\n- **_setOpenedWithoutPropertyEffects(newOpened: _boolean_)** - When the opened state is changed by an Application Developer,cthe OverlayController is\nrequested to show/hide. It might happen that this request is not honoured\n(intercepted in before-hide for instance), so that we need to sync the controller state\nto this webcomponent again, preventing eternal loops.",
|
|
147
|
+
"attributes": [
|
|
148
|
+
{ "name": "is-alert-dialog", "values": [] },
|
|
149
|
+
{
|
|
150
|
+
"name": "opened",
|
|
151
|
+
"description": "If you add the opened attribute a dialog will be opened on page load. The invoker can be left out\nin case the user does not need to be able to reopen the dialog.",
|
|
152
|
+
"values": []
|
|
153
|
+
}
|
|
154
|
+
],
|
|
143
155
|
"references": []
|
|
144
156
|
},
|
|
145
157
|
{
|
|
@@ -295,6 +307,7 @@
|
|
|
295
307
|
"values": []
|
|
296
308
|
},
|
|
297
309
|
{ "name": "currency", "values": [] },
|
|
310
|
+
{ "name": "currency-label", "values": [] },
|
|
298
311
|
{ "name": "modelValue", "values": [] },
|
|
299
312
|
{
|
|
300
313
|
"name": "readonly",
|
|
@@ -311,6 +324,7 @@
|
|
|
311
324
|
"description": "`LionInputAmount` is a class for an amount custom form element (`<lion-input-amount>`).\n\n\n---\n\n\n\n\n### **Events:**\n - **user-input-changed** - undefined\n\n### **Methods:**\n - **clear()** - Clears modelValue.\nInteraction states are not cleared (use resetInteractionState for this)\n- **reset()** - Resets modelValue to initial value.\nInteraction states are cleared\n- **_connectSlotMixin()** - Upon connecting slot mixin, we should check if\nthe required slot was created by the slot mixin,\nand if so, we should execute the currency changed flow\nwhich evaluates whether the slot node should be\nremoved for invalid currencies\n- **_onChange(ev: _Event=_)** - Dispatches custom bubble event",
|
|
312
325
|
"attributes": [
|
|
313
326
|
{ "name": "currency", "values": [] },
|
|
327
|
+
{ "name": "currency-label", "values": [] },
|
|
314
328
|
{ "name": "modelValue", "values": [] },
|
|
315
329
|
{
|
|
316
330
|
"name": "readonly",
|
|
@@ -339,13 +353,18 @@
|
|
|
339
353
|
},
|
|
340
354
|
{
|
|
341
355
|
"name": "lion-input-datepicker",
|
|
342
|
-
"description": "\n\n\n---\n\n\n\n\n### **Events:**\n - **user-input-changed** - undefined\n\n### **Methods:**\n - **clear()** - Clears modelValue.\nInteraction states are not cleared (use resetInteractionState for this)\n- **reset()** - Resets modelValue to initial value.\nInteraction states are cleared\n- **_calendarTemplate()** - Subclassers can replace this with their custom extension of\nLionCalendar, like `<my-calendar id=\"calendar\"></my-calendar>`\n- **_invokerIconTemplate()** - Subclassers can replace this with their custom extension invoker icon\n- **_invokerTemplate()** - Subclassers can replace this with their custom extension invoker,\nlike `<my-button><calendar-icon></calendar-icon></my-button>`\n- **_onCalendarOverlayOpened()** - Lifecycle callback for subclassers\n- **_onCalendarUserSelectedChanged({ target: { selectedDate } }, opts: _{ target: { selectedDate: Date }}_)** - Triggered when a user selects a date from the calendar overlay\n- **_onChange(ev: _Event=_)** - Dispatches custom bubble event\n- **_onValidatorUpdated(e: _Event|CustomEvent_, metaData: _{validator: Validator}_)** - Responsible for listening param change event and\nsync the calendar dates with the updated validator params\n- **_overlayTemplate()** - Defining this overlay as a templates from OverlayMixin\nthis is our source to give as .contentNode to OverlayController.\nImportant: do not change the name of this method.",
|
|
356
|
+
"description": "\n\n\n---\n\n\n\n\n### **Events:**\n - **opened-changed** - undefined\n- **user-input-changed** - undefined\n\n### **Methods:**\n - **clear()** - Clears modelValue.\nInteraction states are not cleared (use resetInteractionState for this)\n- **close()** - Hides the overlay\n- **open()** - Shows the overlay\n- **repositionOverlay()** - Sometimes it's needed to recompute Popper position of an overlay, for instance when we have\nan opened combobox and the surrounding context changes (the space consumed by the textbox\nincreases vertically)\n- **reset()** - Resets modelValue to initial value.\nInteraction states are cleared\n- **toggle()** - Toggles the overlay\n- **_calendarTemplate()** - Subclassers can replace this with their custom extension of\nLionCalendar, like `<my-calendar id=\"calendar\"></my-calendar>`\n- **_getFocusableInvokerEl(focusableElOrWrapper: _Element | null | undefined_): _Element | null_** - Returns the element that can actually receive focus inside the passed\ninvoker (wrapper) element: the element itself when it is focusable,\notherwise the first focusable descendant.\n- **_invokerIconTemplate()** - Subclassers can replace this with their custom extension invoker icon\n- **_invokerTemplate()** - Subclassers can replace this with their custom extension invoker,\nlike `<my-button><calendar-icon></calendar-icon></my-button>`\n- **_isPermanentlyDisconnected(): _Promise<boolean>_** - When we're moving around in dom, disconnectedCallback gets called.\nBefore we decide to teardown, let's wait to see if we were not just moving nodes around.\n- **_onCalendarOverlayOpened()** - Lifecycle callback for subclassers\n- **_onCalendarUserSelectedChanged({ target: { selectedDate } }, opts: _{ target: { selectedDate: Date }}_)** - Triggered when a user selects a date from the calendar overlay\n- **_onChange(ev: _Event=_)** - Dispatches custom bubble event\n- **_onValidatorUpdated(e: _Event|CustomEvent_, metaData: _{validator: Validator}_)** - Responsible for listening param change event and\nsync the calendar dates with the updated validator params\n- **_overlayTemplate()** - Defining this overlay as a templates from OverlayMixin\nthis is our source to give as .contentNode to OverlayController.\nImportant: do not change the name of this method.\n- **_setOpenedWithoutPropertyEffects(newOpened: _boolean_)** - When the opened state is changed by an Application Developer,cthe OverlayController is\nrequested to show/hide. It might happen that this request is not honoured\n(intercepted in before-hide for instance), so that we need to sync the controller state\nto this webcomponent again, preventing eternal loops.",
|
|
343
357
|
"attributes": [
|
|
344
358
|
{
|
|
345
359
|
"name": "calendar-heading",
|
|
346
360
|
"description": "The heading to be added on top of the calendar overlay.\nNaming chosen from an Application Developer perspective.\nFor a Subclasser 'calendarOverlayHeading' would be more appropriate.",
|
|
347
361
|
"values": []
|
|
348
362
|
},
|
|
363
|
+
{
|
|
364
|
+
"name": "opened",
|
|
365
|
+
"description": "If you add the opened attribute a dialog will be opened on page load. The invoker can be left out\nin case the user does not need to be able to reopen the dialog.",
|
|
366
|
+
"values": []
|
|
367
|
+
},
|
|
349
368
|
{ "name": "modelValue", "values": [] },
|
|
350
369
|
{
|
|
351
370
|
"name": "readonly",
|
|
@@ -575,6 +594,45 @@
|
|
|
575
594
|
"attributes": [{ "name": "tabindex", "values": [] }],
|
|
576
595
|
"references": [null]
|
|
577
596
|
},
|
|
597
|
+
{
|
|
598
|
+
"name": "lion-menu",
|
|
599
|
+
"description": "LionMenu is a list of choices. Whether it opens as an overlay or as a regular\ncollapsible (disclosure) is configurable via `openable-mode`.\n\nN.B. the actual switching will be delegated to the disclosure system (see the\nvisibility-toggle controller); for now `disclosure` is the default.\n\n\n---\n\n\n\n\n### **Methods:**\n - **setCheckedIndex(index: _number_)** - Allows groups within one level. In case we deal with menuitemcheckbox,\nwe treat it as multiple choice group",
|
|
600
|
+
"attributes": [
|
|
601
|
+
{
|
|
602
|
+
"name": "openable-mode",
|
|
603
|
+
"description": "Terminology aligned with https://open-ui.org/components/openable.explainer/",
|
|
604
|
+
"values": [{ "name": "disclosure" }, { "name": "overlay" }]
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"name": "bar",
|
|
608
|
+
"description": "Enable bar to use [role=\"menubar\"] and horizontal navigation",
|
|
609
|
+
"values": []
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"references": [null]
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"name": "lion-item",
|
|
616
|
+
"description": "Lightweight component supporting InteractiveListItemRole as a type.\n\nSupports:\n- 1. menu item\n<lion-item> Item label </lion-item>\n- 2. sub menu\n<lion-item>\n <button slot=\"invoker\"> Item label </button>\n <lion-menu slot=\"subitems\"> ... </lion-menu>\n</lion-item>\n\nSets the role property on the right element. For case 1, this would be the item itself,\nfor case 2 it would be the [slot=invoker].\n\n\n---\n\n\n",
|
|
617
|
+
"attributes": [
|
|
618
|
+
{
|
|
619
|
+
"name": "type",
|
|
620
|
+
"values": [{ "name": "InteractiveListItemRole" }, { "name": "''" }]
|
|
621
|
+
}
|
|
622
|
+
],
|
|
623
|
+
"references": [null]
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"name": "lion-menuitem",
|
|
627
|
+
"description": "\n\n\n---\n\n\n",
|
|
628
|
+
"attributes": [
|
|
629
|
+
{
|
|
630
|
+
"name": "type",
|
|
631
|
+
"values": [{ "name": "InteractiveListItemRole" }, { "name": "''" }]
|
|
632
|
+
}
|
|
633
|
+
],
|
|
634
|
+
"references": []
|
|
635
|
+
},
|
|
578
636
|
{
|
|
579
637
|
"name": "lion-pagination",
|
|
580
638
|
"description": "`LionPagination` is a class for custom Pagination element (`<lion-pagination>` web component).\n\n\n---\n\n\n\n\n### **Methods:**\n - **first()** - Go to first page\n- **goto(pageNumber: _number_)** - Go to the specific page\n- **last()** - Go to the last page\n- **next()** - Go next in pagination\n- **previous()** - Go back in pagination\n- **_disabledButtonTemplate(label: _String_): _TemplateResult_** - Get disabled button template.\nThis method can be overridden to apply customized template in wrapper.\n- **_prevNextButtonTemplate(label: _String_, pageNumber: _Number_, namespace: _String_): _TemplateResult_** - Get next or previous button template.\nThis method can be overridden to apply customized template in wrapper.\n- **_prevNextIconTemplate(label: _String_): _TemplateResult_** - Get previous or next button template.\nThis method can be overridden to apply customized template in wrapper.\n- **_renderNavList(): _TemplateResult[]_** - Render navigation list",
|
|
@@ -618,7 +676,7 @@
|
|
|
618
676
|
},
|
|
619
677
|
{
|
|
620
678
|
"name": "lion-field-with-select",
|
|
621
|
-
"description": "LionSelectRich: wraps the <lion-listbox> element\n\n\n---\n\n\n\n\n### **Events:**\n - **blur** - undefined\n\n### **Methods:**\n - **_alignInvokerWidth()** - Align invoker width with content width\nMake sure display is not set to \"none\" while calculating the content width\n- **_getCheckedElements()** - In the select disabled options are still going to a possible value for example\nwhen prefilling or programmatically setting it.\n- **_noDefaultSelectedInheritsWidth()** - With no selected element, we should override the inheritsReferenceWidth in most cases.\nBy default, we will set it to 'min', and then set it back to what it was initially when\nsomething is selected.\nAs a subclasser you can override this behavior.",
|
|
679
|
+
"description": "LionSelectRich: wraps the <lion-listbox> element\n\n\n---\n\n\n\n\n### **Events:**\n - **blur** - undefined\n- **opened-changed** - undefined\n\n### **Methods:**\n - **close()** - Hides the overlay\n- **open()** - Shows the overlay\n- **repositionOverlay()** - Sometimes it's needed to recompute Popper position of an overlay, for instance when we have\nan opened combobox and the surrounding context changes (the space consumed by the textbox\nincreases vertically)\n- **toggle()** - Toggles the overlay\n- **_alignInvokerWidth()** - Align invoker width with content width\nMake sure display is not set to \"none\" while calculating the content width\n- **_getCheckedElements()** - In the select disabled options are still going to a possible value for example\nwhen prefilling or programmatically setting it.\n- **_getFocusableInvokerEl(focusableElOrWrapper: _Element | null | undefined_): _Element | null_** - Returns the element that can actually receive focus inside the passed\ninvoker (wrapper) element: the element itself when it is focusable,\notherwise the first focusable descendant.\n- **_isPermanentlyDisconnected(): _Promise<boolean>_** - When we're moving around in dom, disconnectedCallback gets called.\nBefore we decide to teardown, let's wait to see if we were not just moving nodes around.\n- **_noDefaultSelectedInheritsWidth()** - With no selected element, we should override the inheritsReferenceWidth in most cases.\nBy default, we will set it to 'min', and then set it back to what it was initially when\nsomething is selected.\nAs a subclasser you can override this behavior.\n- **_setOpenedWithoutPropertyEffects(newOpened: _boolean_)** - When the opened state is changed by an Application Developer,cthe OverlayController is\nrequested to show/hide. It might happen that this request is not honoured\n(intercepted in before-hide for instance), so that we need to sync the controller state\nto this webcomponent again, preventing eternal loops.",
|
|
622
680
|
"attributes": [
|
|
623
681
|
{
|
|
624
682
|
"name": "navigate-within-invoker",
|
|
@@ -634,7 +692,12 @@
|
|
|
634
692
|
{ "name": "auto" }
|
|
635
693
|
]
|
|
636
694
|
},
|
|
637
|
-
{ "name": "single-option", "values": [] }
|
|
695
|
+
{ "name": "single-option", "values": [] },
|
|
696
|
+
{
|
|
697
|
+
"name": "opened",
|
|
698
|
+
"description": "If you add the opened attribute a dialog will be opened on page load. The invoker can be left out\nin case the user does not need to be able to reopen the dialog.",
|
|
699
|
+
"values": []
|
|
700
|
+
}
|
|
638
701
|
],
|
|
639
702
|
"references": []
|
|
640
703
|
},
|
|
@@ -763,12 +826,17 @@
|
|
|
763
826
|
},
|
|
764
827
|
{
|
|
765
828
|
"name": "lion-tooltip",
|
|
766
|
-
"description": "\n\n\n---\n\n\n",
|
|
829
|
+
"description": "\n\n\n---\n\n\n\n\n### **Events:**\n - **opened-changed** - undefined\n\n### **Methods:**\n - **close()** - Hides the overlay\n- **open()** - Shows the overlay\n- **repositionOverlay()** - Sometimes it's needed to recompute Popper position of an overlay, for instance when we have\nan opened combobox and the surrounding context changes (the space consumed by the textbox\nincreases vertically)\n- **toggle()** - Toggles the overlay\n- **_getFocusableInvokerEl(focusableElOrWrapper: _Element | null | undefined_): _Element | null_** - Returns the element that can actually receive focus inside the passed\ninvoker (wrapper) element: the element itself when it is focusable,\notherwise the first focusable descendant.\n- **_isPermanentlyDisconnected(): _Promise<boolean>_** - When we're moving around in dom, disconnectedCallback gets called.\nBefore we decide to teardown, let's wait to see if we were not just moving nodes around.\n- **_setOpenedWithoutPropertyEffects(newOpened: _boolean_)** - When the opened state is changed by an Application Developer,cthe OverlayController is\nrequested to show/hide. It might happen that this request is not honoured\n(intercepted in before-hide for instance), so that we need to sync the controller state\nto this webcomponent again, preventing eternal loops.",
|
|
767
830
|
"attributes": [
|
|
768
831
|
{
|
|
769
832
|
"name": "invoker-relation",
|
|
770
833
|
"description": "Decides whether the tooltip invoker text should be considered a description\n(sets aria-describedby) or a label (sets aria-labelledby).",
|
|
771
834
|
"values": [{ "name": "label" }, { "name": "description" }]
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"name": "opened",
|
|
838
|
+
"description": "If you add the opened attribute a dialog will be opened on page load. The invoker can be left out\nin case the user does not need to be able to reopen the dialog.",
|
|
839
|
+
"values": []
|
|
772
840
|
}
|
|
773
841
|
],
|
|
774
842
|
"references": []
|