@lion/ui 0.7.2 → 0.7.4
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/components/button/test-suites/LionButtonReset.suite.js +7 -9
- package/components/calendar/test/lion-calendar.test.js +26 -30
- package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +3 -0
- package/components/combobox/src/LionCombobox.js +35 -22
- package/components/combobox/test/lion-combobox.test.js +141 -98
- package/components/core/src/SlotMixin.js +7 -1
- package/components/form/test/lion-form.test.js +4 -4
- package/components/form-core/src/FormControlMixin.js +0 -9
- package/components/form-core/src/localizeNamespaceLoader.js +75 -0
- package/components/form-core/src/registration/FormRegisteringMixin.js +28 -0
- package/components/form-core/src/validate/LionValidationFeedback.js +36 -2
- package/components/form-core/test/validate/lion-validation-feedback.test.js +30 -2
- package/components/form-core/test-suites/FormRegistrationMixins.suite.js +17 -0
- package/components/form-core/test-suites/ValidateMixin.suite.js +2 -1
- package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +18 -18
- package/components/form-core/translations/bg-BG.js +5 -0
- package/components/form-core/translations/bg.js +6 -0
- package/components/form-core/translations/cs-CZ.js +5 -0
- package/components/form-core/translations/cs.js +6 -0
- package/components/form-core/translations/de-DE.js +5 -0
- package/components/form-core/translations/de.js +6 -0
- package/components/form-core/translations/en-AU.js +5 -0
- package/components/form-core/translations/en-GB.js +5 -0
- package/components/form-core/translations/en-US.js +5 -0
- package/components/form-core/translations/en.js +6 -0
- package/components/form-core/translations/es-ES.js +5 -0
- package/components/form-core/translations/es.js +6 -0
- package/components/form-core/translations/fr-BE.js +5 -0
- package/components/form-core/translations/fr-FR.js +5 -0
- package/components/form-core/translations/fr.js +6 -0
- package/components/form-core/translations/hu-HU.js +5 -0
- package/components/form-core/translations/hu.js +6 -0
- package/components/form-core/translations/it-IT.js +5 -0
- package/components/form-core/translations/it.js +6 -0
- package/components/form-core/translations/nl-BE.js +5 -0
- package/components/form-core/translations/nl-NL.js +5 -0
- package/components/form-core/translations/nl.js +6 -0
- package/components/form-core/translations/pl-PL.js +5 -0
- package/components/form-core/translations/pl.js +6 -0
- package/components/form-core/translations/ro-RO.js +5 -0
- package/components/form-core/translations/ro.js +6 -0
- package/components/form-core/translations/ru-RU.js +5 -0
- package/components/form-core/translations/ru.js +6 -0
- package/components/form-core/translations/sk-SK.js +5 -0
- package/components/form-core/translations/sk.js +6 -0
- package/components/form-core/translations/uk-UA.js +5 -0
- package/components/form-core/translations/uk.js +6 -0
- package/components/form-core/translations/zh.js +6 -0
- package/components/form-core/types/FormControlMixinTypes.ts +0 -4
- package/components/form-core/types/registration/FormRegisteringMixinTypes.ts +17 -4
- package/components/form-integrations/test/dialog-integrations.test.js +6 -4
- package/components/helpers/src/SbActionLogger.js +11 -2
- package/components/icon/test/lion-icon.test.js +12 -14
- package/components/input-amount/test/lion-input-amount.test.js +13 -14
- package/components/input-datepicker/test/lion-input-datepicker.test.js +4 -4
- package/components/input-file/src/LionInputFile.js +88 -30
- package/components/input-file/test/lion-input-file.test.js +105 -9
- package/components/input-file/test/lion-selected-file-list.test.js +2 -1
- package/components/input-file/translations/bg.js +3 -0
- package/components/input-file/translations/cs.js +3 -0
- package/components/input-file/translations/de.js +3 -0
- package/components/input-file/translations/en.js +3 -0
- package/components/input-file/translations/es.js +3 -0
- package/components/input-file/translations/fr.js +3 -0
- package/components/input-file/translations/hu.js +3 -0
- package/components/input-file/translations/it.js +3 -0
- package/components/input-file/translations/nl.js +3 -0
- package/components/input-file/translations/pl.js +3 -0
- package/components/input-file/translations/ro.js +3 -0
- package/components/input-file/translations/ru.js +3 -0
- package/components/input-file/translations/sk.js +3 -0
- package/components/input-file/translations/uk.js +3 -0
- package/components/input-file/translations/zh.js +3 -0
- package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +23 -23
- package/components/listbox/test-suites/ListboxMixin.suite.js +10 -3
- package/components/localize/src/date/utils/normalizeIntlDate.js +13 -2
- package/components/overlays/src/OverlayMixin.js +8 -1
- package/components/progress-indicator/test/lion-progress-indicator.test.js +42 -46
- package/components/select-rich/test/lion-select-rich.test.js +6 -8
- package/components/steps/test/lion-step.test.js +5 -7
- package/components/switch/src/LionSwitch.js +10 -0
- package/components/switch/test/lion-switch.test.js +5 -7
- package/components/tabs/src/LionTabs.js +10 -0
- package/components/tabs/test/lion-tabs.test.js +49 -38
- package/custom-elements.json +83073 -76992
- package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts.map +1 -1
- package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
- package/dist-types/components/combobox/src/LionCombobox.d.ts +12 -8
- package/dist-types/components/combobox/src/LionCombobox.d.ts.map +1 -1
- package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
- package/dist-types/components/form-core/src/FormControlMixin.d.ts.map +1 -1
- package/dist-types/components/form-core/src/LionField.d.ts +1 -1
- package/dist-types/components/form-core/src/localizeNamespaceLoader.d.ts +2 -0
- package/dist-types/components/form-core/src/localizeNamespaceLoader.d.ts.map +1 -0
- package/dist-types/components/form-core/src/registration/FormRegisteringMixin.d.ts.map +1 -1
- package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts +5 -6
- package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/translations/bg-BG.d.ts +8 -0
- package/dist-types/components/form-core/translations/bg-BG.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/bg.d.ts +8 -0
- package/dist-types/components/form-core/translations/bg.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/cs-CZ.d.ts +8 -0
- package/dist-types/components/form-core/translations/cs-CZ.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/cs.d.ts +8 -0
- package/dist-types/components/form-core/translations/cs.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/de-DE.d.ts +8 -0
- package/dist-types/components/form-core/translations/de-DE.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/de.d.ts +8 -0
- package/dist-types/components/form-core/translations/de.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/en-AU.d.ts +8 -0
- package/dist-types/components/form-core/translations/en-AU.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/en-GB.d.ts +8 -0
- package/dist-types/components/form-core/translations/en-GB.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/en-US.d.ts +8 -0
- package/dist-types/components/form-core/translations/en-US.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/en.d.ts +8 -0
- package/dist-types/components/form-core/translations/en.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/es-ES.d.ts +8 -0
- package/dist-types/components/form-core/translations/es-ES.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/es.d.ts +8 -0
- package/dist-types/components/form-core/translations/es.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/fr-BE.d.ts +8 -0
- package/dist-types/components/form-core/translations/fr-BE.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/fr-FR.d.ts +8 -0
- package/dist-types/components/form-core/translations/fr-FR.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/fr.d.ts +8 -0
- package/dist-types/components/form-core/translations/fr.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/hu-HU.d.ts +8 -0
- package/dist-types/components/form-core/translations/hu-HU.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/hu.d.ts +8 -0
- package/dist-types/components/form-core/translations/hu.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/it-IT.d.ts +8 -0
- package/dist-types/components/form-core/translations/it-IT.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/it.d.ts +8 -0
- package/dist-types/components/form-core/translations/it.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/nl-BE.d.ts +8 -0
- package/dist-types/components/form-core/translations/nl-BE.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/nl-NL.d.ts +8 -0
- package/dist-types/components/form-core/translations/nl-NL.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/nl.d.ts +8 -0
- package/dist-types/components/form-core/translations/nl.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/pl-PL.d.ts +8 -0
- package/dist-types/components/form-core/translations/pl-PL.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/pl.d.ts +8 -0
- package/dist-types/components/form-core/translations/pl.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/ro-RO.d.ts +8 -0
- package/dist-types/components/form-core/translations/ro-RO.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/ro.d.ts +8 -0
- package/dist-types/components/form-core/translations/ro.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/ru-RU.d.ts +8 -0
- package/dist-types/components/form-core/translations/ru-RU.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/ru.d.ts +8 -0
- package/dist-types/components/form-core/translations/ru.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/sk-SK.d.ts +8 -0
- package/dist-types/components/form-core/translations/sk-SK.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/sk.d.ts +8 -0
- package/dist-types/components/form-core/translations/sk.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/uk-UA.d.ts +8 -0
- package/dist-types/components/form-core/translations/uk-UA.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/uk.d.ts +8 -0
- package/dist-types/components/form-core/translations/uk.d.ts.map +1 -0
- package/dist-types/components/form-core/translations/zh.d.ts +8 -0
- package/dist-types/components/form-core/translations/zh.d.ts.map +1 -0
- package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts +0 -4
- package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts.map +1 -1
- package/dist-types/components/form-core/types/registration/FormRegisteringMixinTypes.d.ts +14 -4
- package/dist-types/components/form-core/types/registration/FormRegisteringMixinTypes.d.ts.map +1 -1
- package/dist-types/components/helpers/src/SbActionLogger.d.ts.map +1 -1
- package/dist-types/components/input-file/src/LionInputFile.d.ts +12 -6
- package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
- package/dist-types/components/input-file/translations/bg-BG.d.ts +3 -0
- package/dist-types/components/input-file/translations/bg.d.ts +3 -0
- package/dist-types/components/input-file/translations/cs-CZ.d.ts +3 -0
- package/dist-types/components/input-file/translations/cs.d.ts +3 -0
- package/dist-types/components/input-file/translations/de-DE.d.ts +3 -0
- package/dist-types/components/input-file/translations/de.d.ts +3 -0
- package/dist-types/components/input-file/translations/en-AU.d.ts +3 -0
- package/dist-types/components/input-file/translations/en-GB.d.ts +3 -0
- package/dist-types/components/input-file/translations/en-PH.d.ts +3 -0
- package/dist-types/components/input-file/translations/en-US.d.ts +3 -0
- package/dist-types/components/input-file/translations/en.d.ts +3 -0
- package/dist-types/components/input-file/translations/es-ES.d.ts +3 -0
- package/dist-types/components/input-file/translations/es.d.ts +3 -0
- package/dist-types/components/input-file/translations/fr-BE.d.ts +3 -0
- package/dist-types/components/input-file/translations/fr-FR.d.ts +3 -0
- package/dist-types/components/input-file/translations/fr.d.ts +3 -0
- package/dist-types/components/input-file/translations/hu-HU.d.ts +3 -0
- package/dist-types/components/input-file/translations/hu.d.ts +3 -0
- package/dist-types/components/input-file/translations/it-IT.d.ts +3 -0
- package/dist-types/components/input-file/translations/it.d.ts +3 -0
- package/dist-types/components/input-file/translations/nl-BE.d.ts +3 -0
- package/dist-types/components/input-file/translations/nl-NL.d.ts +3 -0
- package/dist-types/components/input-file/translations/nl.d.ts +3 -0
- package/dist-types/components/input-file/translations/pl-PL.d.ts +3 -0
- package/dist-types/components/input-file/translations/pl.d.ts +3 -0
- package/dist-types/components/input-file/translations/ro-RO.d.ts +3 -0
- package/dist-types/components/input-file/translations/ro.d.ts +3 -0
- package/dist-types/components/input-file/translations/ru-RU.d.ts +3 -0
- package/dist-types/components/input-file/translations/ru.d.ts +3 -0
- package/dist-types/components/input-file/translations/sk-SK.d.ts +3 -0
- package/dist-types/components/input-file/translations/sk.d.ts +3 -0
- package/dist-types/components/input-file/translations/uk-UA.d.ts +3 -0
- package/dist-types/components/input-file/translations/uk.d.ts +3 -0
- package/dist-types/components/input-file/translations/zh-CN.d.ts +3 -0
- package/dist-types/components/input-file/translations/zh.d.ts +3 -0
- package/dist-types/components/input-tel-dropdown/test/LionInputTelDropdown.test.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionOption.d.ts +1 -1
- package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts.map +1 -1
- package/dist-types/components/localize/src/date/utils/normalizeIntlDate.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
- package/dist-types/components/switch/src/LionSwitch.d.ts.map +1 -1
- package/dist-types/components/tabs/src/LionTabs.d.ts.map +1 -1
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/accordion/api-table.md +31 -0
- package/docs/components/button/api-table.md +104 -0
- package/docs/components/button/use-cases.md +11 -10
- package/docs/components/calendar/api-table.md +44 -0
- package/docs/components/checkbox-group/api-table.md +564 -0
- package/docs/components/checkbox-group/overview.md +2 -2
- package/docs/components/collapsible/api-table.md +36 -0
- package/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js +6 -2
- package/docs/components/collapsible/overview.md +1 -1
- package/docs/components/combobox/api-table.md +256 -0
- package/docs/components/combobox/overview.md +4 -3
- package/docs/components/combobox/src/gh-combobox/gh-button.js +3 -1
- package/docs/components/combobox/src/gh-combobox/gh-combobox.js +9 -2
- package/docs/components/combobox/src/google-combobox/google-combobox.js +6 -8
- package/docs/components/combobox/src/md-combobox/MdFieldMixin.js +7 -3
- package/docs/components/combobox/src/md-combobox/style/md-ripple.js +1 -0
- package/docs/components/combobox/src/wa-combobox/wa-combobox.js +15 -3
- package/docs/components/combobox/use-cases.md +19 -17
- package/docs/components/dialog/api-table.md +45 -0
- package/docs/components/dialog/overview.md +1 -1
- package/docs/components/drawer/api-table.md +45 -0
- package/docs/components/fieldset/api-table.md +163 -0
- package/docs/components/fieldset/overview.md +5 -5
- package/docs/components/form/api-table.md +1 -0
- package/docs/components/form/overview.md +3 -3
- package/docs/components/icon/api-table.md +29 -0
- package/docs/components/icon/use-cases.md +1 -1
- package/docs/components/input/api-table.md +187 -0
- package/docs/components/input/overview.md +1 -1
- package/docs/components/input/use-cases.md +3 -2
- package/docs/components/input-amount/api-table.md +196 -0
- package/docs/components/input-amount/overview.md +3 -3
- package/docs/components/input-date/api-table.md +188 -0
- package/docs/components/input-date/overview.md +3 -3
- package/docs/components/input-datepicker/api-table.md +234 -0
- package/docs/components/input-datepicker/overview.md +5 -5
- package/docs/components/input-email/api-table.md +187 -0
- package/docs/components/input-email/overview.md +2 -2
- package/docs/components/input-file/api-table.md +272 -0
- package/docs/components/input-file/overview.md +1 -1
- package/docs/components/input-iban/api-table.md +187 -0
- package/docs/components/input-iban/overview.md +2 -2
- package/docs/components/input-range/api-table.md +198 -0
- package/docs/components/input-range/overview.md +2 -2
- package/docs/components/input-stepper/api-table.md +205 -0
- package/docs/components/input-stepper/overview.md +1 -1
- package/docs/components/input-tel/api-table.md +202 -0
- 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/api-table.md +213 -0
- package/docs/components/input-tel-dropdown/overview.md +1 -1
- package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +15 -5
- package/docs/components/listbox/api-table.md +293 -0
- package/docs/components/listbox/use-cases.md +1 -1
- package/docs/components/pagination/api-table.md +33 -0
- package/docs/components/progress-indicator/api-table.md +36 -0
- package/docs/components/progress-indicator/examples.md +11 -11
- package/docs/components/radio-group/api-table.md +378 -0
- package/docs/components/radio-group/overview.md +3 -3
- package/docs/components/select/api-table.md +181 -0
- package/docs/components/select/use-cases.md +1 -1
- package/docs/components/select-rich/api-table.md +288 -0
- package/docs/components/select-rich/use-cases.md +1 -1
- package/docs/components/steps/api-table.md +80 -0
- package/docs/components/switch/api-table.md +229 -0
- package/docs/components/tabs/api-table.md +32 -0
- package/docs/components/tabs/examples.md +1 -1
- package/docs/components/tabs/src/lea-tab-panel.js +3 -1
- package/docs/components/tabs/src/lea-tab.js +7 -2
- package/docs/components/textarea/api-table.md +192 -0
- package/docs/components/tooltip/api-table.md +53 -0
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/assets/_mermaid.svg.js +32 -8
- package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
- 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/api-table.md +34 -0
- package/docs/fundamentals/systems/core/overview.md +1 -1
- package/docs/fundamentals/systems/form/api-table.md +166 -0
- 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 +3 -3
- package/docs/fundamentals/systems/localize/api-table.md +65 -0
- package/docs/fundamentals/systems/localize/overview.md +4 -4
- package/docs/fundamentals/systems/overlays/_configuration-positioning.md +0 -9
- package/docs/fundamentals/systems/overlays/_edge-cases.md +74 -80
- package/docs/fundamentals/systems/overlays/api-table.md +168 -0
- 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 +5 -8
- package/docs/fundamentals/tools/helpers/action-logger.md +3 -6
- package/docs/fundamentals/tools/helpers/overview.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +3 -1
- package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +3 -1
- package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +3 -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/index.md +8 -8
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/styling.md +1 -1
- package/package.json +6 -5
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Systems >> Overlays >> API Table ||90
|
|
2
|
+
|
|
3
|
+
## class: `OverlayController`
|
|
4
|
+
|
|
5
|
+
### Fields
|
|
6
|
+
|
|
7
|
+
| Name | Privacy | Type | Default | Description | Inherited From |
|
|
8
|
+
| ----------------------------- | --------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
|
|
9
|
+
| `invoker` | public | `HTMLElement \| undefined` | | The invokerNode | |
|
|
10
|
+
| `content` | public | `HTMLDialogElement \| HTMLDivElement` | | The contentWrapperNode | |
|
|
11
|
+
| `placementMode` | public | `'global' \| 'local' \| undefined` | | Determines the connection point in DOM (body vs next to invoker). | |
|
|
12
|
+
| `invokerNode` | public | `HTMLElement \| undefined` | | The interactive element (usually a button) invoking the dialog or tooltip | |
|
|
13
|
+
| `referenceNode` | public | `HTMLElement` | | The element that is used to position the overlay content relative to. Usually,
this is the same element as invokerNode. Should only be provided when invokerNode should not
be positioned against. | |
|
|
14
|
+
| `contentNode` | public | `HTMLElement` | | The most important element: the overlay itself | |
|
|
15
|
+
| `contentWrapperNode` | public | `HTMLElement` | | The wrapper element of contentNode, used to supply inline positioning styles. When a Popper
arrow is needed, it acts as parent of the arrow node. Will be automatically created for global
and non projected contentNodes. Required when used in shadow dom mode or when Popper arrow is
supplied. Essential for allowing webcomponents to style their projected contentNodes | |
|
|
16
|
+
| `backdropNode` | public | `HTMLElement` | | The element that is placed behind the contentNode. When not provided and \`hasBackdrop\` is true,
a backdropNode will be automatically created | |
|
|
17
|
+
| `elementToFocusAfterHide` | public | `HTMLElement` | | The element that should be called \`.focus()\` on after dialog closes | |
|
|
18
|
+
| `hasBackdrop` | public | `boolean` | | Whether it should have a backdrop (currently exclusive to globalOverlayController) | |
|
|
19
|
+
| `isBlocking` | public | `boolean` | | Hides other overlays when mutiple are opened (currently exclusive to globalOverlayController) | |
|
|
20
|
+
| `preventsScroll` | public | `boolean` | | Hides other overlays when mutiple are opened (currently exclusive to globalOverlayController) | |
|
|
21
|
+
| `trapsKeyboardFocus` | public | `boolean` | | Rotates tab, implicitly set when 'isModal' | |
|
|
22
|
+
| `hidesOnEsc` | public | `boolean` | | Hides the overlay when pressing \[ esc ] | |
|
|
23
|
+
| `hidesOnOutsideClick` | public | `boolean` | | Hides the overlay when clicking next to it, exluding invoker | |
|
|
24
|
+
| `hidesOnOutsideEsc` | public | `boolean` | | Hides the overlay when pressing esc, even when contentNode has no focus | |
|
|
25
|
+
| `inheritsReferenceWidth` | public | `'max' \| 'full' \| 'min' \| 'none' \| undefined` | | Will align contentNode with referenceNode (invokerNode by default) for local overlays.
Usually needed for dropdowns. 'max' will prevent contentNode from exceeding width of
referenceNode, 'min' guarantees that contentNode will be at least as wide as referenceNode.
'full' will make sure that the invoker width always is the same. | |
|
|
26
|
+
| `handlesAccessibility` | public | `boolean` | | For non \`isTooltip\`:
 \- sets aria-expanded="true/false" and aria-haspopup="true" on invokerNode
 \- sets aria-controls on invokerNode
 \- returns focus to invokerNode on hide
 \- sets focus to overlay content(?)

For \`isTooltip\`:
 \- sets role="tooltip" and aria-labelledby/aria-describedby on the content | |
|
|
27
|
+
| `isTooltip` | public | `boolean` | | Has a totally different interaction- and accessibility pattern from all other overlays.
Will behave as role="tooltip" element instead of a role="dialog" element | |
|
|
28
|
+
| `invokerRelation` | public | `'label' \| 'description'\| undefined` | | By default, the tooltip content is a 'description' for the invoker (uses aria-describedby).
Setting this property to 'label' makes the content function as a label (via aria-labelledby) | |
|
|
29
|
+
| `popperConfig` | public | `PopperOptions` | | Popper configuration. Will be used when placementMode is 'local' | |
|
|
30
|
+
| `viewportConfig` | public | `ViewportConfig` | | Viewport configuration. Will be used when placementMode is 'global' | |
|
|
31
|
+
| `visibilityTriggerFunction` | public | | | | |
|
|
32
|
+
| `_referenceNode` | protected | `HTMLElement \| undefined` | | | |
|
|
33
|
+
| `elevation` | public | `number` | | | |
|
|
34
|
+
| `isShown` | public | | | | |
|
|
35
|
+
| `hasActiveBackdrop` | public | | | | |
|
|
36
|
+
| `hasActiveTrapsKeyboardFocus` | public | | | | |
|
|
37
|
+
| `manager` | public | | `manager` | | |
|
|
38
|
+
| `config` | public | `OverlayConfig` | `{}` | | |
|
|
39
|
+
| `_defaultConfig` | protected | `OverlayConfig` | `{
|
|
40
|
+
placementMode: undefined,
|
|
41
|
+
contentNode: config.contentNode,
|
|
42
|
+
contentWrapperNode: config.contentWrapperNode,
|
|
43
|
+
invokerNode: config.invokerNode,
|
|
44
|
+
backdropNode: config.backdropNode,
|
|
45
|
+
referenceNode: undefined,
|
|
46
|
+
elementToFocusAfterHide: config.invokerNode,
|
|
47
|
+
inheritsReferenceWidth: 'none',
|
|
48
|
+
hasBackdrop: false,
|
|
49
|
+
isBlocking: false,
|
|
50
|
+
preventsScroll: false,
|
|
51
|
+
trapsKeyboardFocus: false,
|
|
52
|
+
hidesOnEsc: false,
|
|
53
|
+
hidesOnOutsideEsc: false,
|
|
54
|
+
hidesOnOutsideClick: false,
|
|
55
|
+
isTooltip: false,
|
|
56
|
+
invokerRelation: 'description',
|
|
57
|
+
visibilityTriggerFunction: undefined,
|
|
58
|
+
handlesAccessibility: false,
|
|
59
|
+
popperConfig: {
|
|
60
|
+
placement: 'top',
|
|
61
|
+
strategy: 'fixed',
|
|
62
|
+
modifiers: [
|
|
63
|
+
{
|
|
64
|
+
name: 'preventOverflow',
|
|
65
|
+
enabled: true,
|
|
66
|
+
options: {
|
|
67
|
+
boundariesElement: 'viewport',
|
|
68
|
+
padding: 8, // viewport-margin for shifting/sliding
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'flip',
|
|
73
|
+
options: {
|
|
74
|
+
boundariesElement: 'viewport',
|
|
75
|
+
padding: 16, // viewport-margin for flipping
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'offset',
|
|
80
|
+
enabled: true,
|
|
81
|
+
options: {
|
|
82
|
+
offset: [0, 8], // horizontal and vertical margin (distance between popper and referenceElement)
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'arrow',
|
|
87
|
+
enabled: false,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
viewportConfig: {
|
|
92
|
+
placement: 'center',
|
|
93
|
+
},
|
|
94
|
+
zIndex: 9999,
|
|
95
|
+
}` | | |
|
|
96
|
+
| `_contentId` | protected | | `` `overlay-content--${Math.random().toString(36).slice(2, 10)}` `` | | |
|
|
97
|
+
|
|
98
|
+
### Methods
|
|
99
|
+
|
|
100
|
+
| Name | Privacy | Description | Parameters | Return | Inherited From |
|
|
101
|
+
| ------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | -------------- |
|
|
102
|
+
| `updateConfig` | public | Allows to dynamically change the overlay configuration. Needed in case the
presentation of the overlay changes depending on screen size.
Note that this method is the only allowed way to update a configuration of an
OverlayController instance. | `cfgToAdd: OverlayConfig` | | |
|
|
103
|
+
| `_init` | protected | | | | |
|
|
104
|
+
| `_handleZIndex` | protected | Display local overlays on top of elements with no z-index that appear later in the DOM | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
105
|
+
| `show` | public | | `elementToFocusAfterHide: HTMLElement` | | |
|
|
106
|
+
| `_handlePosition` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
107
|
+
| `_keepBodySize` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
108
|
+
| `hide` | public | | | | |
|
|
109
|
+
| `transitionHide` | public | Method to be overriden by subclassers | `hideConfig: {backdropNode:HTMLElement, contentNode:HTMLElement}` | | |
|
|
110
|
+
| `_transitionHide` | protected | | `{ backdropNode, contentNode }, hideConfig: {backdropNode:HTMLElement, contentNode:HTMLElement}` | | |
|
|
111
|
+
| `transitionShow` | public | To be overridden by subclassers | `showConfig: {backdropNode:HTMLElement; contentNode:HTMLElement}` | | |
|
|
112
|
+
| `_transitionShow` | protected | | `showConfig: {backdropNode:HTMLElement; contentNode:HTMLElement}` | | |
|
|
113
|
+
| `_restoreFocus` | protected | | | | |
|
|
114
|
+
| `toggle` | public | | | | |
|
|
115
|
+
| `_handleFeatures` | protected | All features are handled here. | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
116
|
+
| `_handleVisibilityTriggers` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
117
|
+
| `_handlePreventsScroll` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
118
|
+
| `_handleBlocking` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
119
|
+
| `_handleBackdrop` | protected | Sets up backdrop on the given overlay. If there was a backdrop on another element
it is removed. Otherwise this is the first time displaying a backdrop, so a animation-in
animation is played. | `{ phase }, config: { animation?: boolean, phase: OverlayPhase }` | | |
|
|
120
|
+
| `_handleTrapsKeyboardFocus` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
121
|
+
| `enableTrapsKeyboardFocus` | public | | | | |
|
|
122
|
+
| `disableTrapsKeyboardFocus` | public | | `{ findNewTrap = true }` | | |
|
|
123
|
+
| `_handleHidesOnEsc` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
124
|
+
| `_handleHidesOnOutsideEsc` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
125
|
+
| `_handleInheritsReferenceWidth` | protected | | | | |
|
|
126
|
+
| `_handleHidesOnOutsideClick` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
127
|
+
| `_handleAccessibility` | protected | | `{ phase }, config: { phase: OverlayPhase }` | | |
|
|
128
|
+
| `teardown` | public | | | | |
|
|
129
|
+
| `_hasDisabledInvoker` | protected | | | | |
|
|
130
|
+
|
|
131
|
+
### Events
|
|
132
|
+
|
|
133
|
+
| Name | Type | Description | Inherited From |
|
|
134
|
+
| ------ | ------- | ----------- | -------------- |
|
|
135
|
+
| `show` | `Event` | | |
|
|
136
|
+
| `hide` | `Event` | | |
|
|
137
|
+
|
|
138
|
+
<hr/>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
## class: `OverlaysManager`
|
|
142
|
+
|
|
143
|
+
### Fields
|
|
144
|
+
|
|
145
|
+
| Name | Privacy | Type | Default | Description | Inherited From |
|
|
146
|
+
| --------------- | ------- | ---- | ------- | ---------------------------------------------------------------------------------------------------------------------- | -------------- |
|
|
147
|
+
| `list` | public | | | no setter as .list is intended to be read-only
You can use .add or .remove to modify it | |
|
|
148
|
+
| `shownList` | public | | | no setter as .shownList is intended to be read-only
You can use .show or .hide on individual controllers to modify | |
|
|
149
|
+
| `siblingsInert` | public | | | Features right now only for Global Overlay Manager | |
|
|
150
|
+
|
|
151
|
+
### Methods
|
|
152
|
+
|
|
153
|
+
| Name | Privacy | Description | Parameters | Return | Inherited From |
|
|
154
|
+
| ------------------------------------- | ------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------- | -------------- |
|
|
155
|
+
| `add` | public | Registers an overlay controller. | `ctrlToAdd: OverlayController` | `OverlayController` | |
|
|
156
|
+
| `remove` | public | | `ctrlToRemove: OverlayController` | | |
|
|
157
|
+
| `show` | public | | `ctrlToShow: OverlayController` | | |
|
|
158
|
+
| `hide` | public | | `ctrlToHide: any` | | |
|
|
159
|
+
| `teardown` | public | | | | |
|
|
160
|
+
| `disableTrapsKeyboardFocusForAll` | public | | | | |
|
|
161
|
+
| `informTrapsKeyboardFocusGotEnabled` | public | | `placementMode: 'local' \| 'global' \| undefined` | | |
|
|
162
|
+
| `informTrapsKeyboardFocusGotDisabled` | public | | `{ disabledCtrl, findNewTrap = true }, options: { disabledCtrl?:OverlayController, findNewTrap?:boolean }` | | |
|
|
163
|
+
| `requestToPreventScroll` | public | PreventsScroll | | | |
|
|
164
|
+
| `requestToEnableScroll` | public | | | | |
|
|
165
|
+
| `requestToShowOnly` | public | Blocking | `blockingCtrl: OverlayController` | | |
|
|
166
|
+
| `retractRequestToShowOnly` | public | | `blockingCtrl: OverlayController` | | |
|
|
167
|
+
|
|
168
|
+
<hr/>
|
|
@@ -69,7 +69,7 @@ export const placementGlobal = () => {
|
|
|
69
69
|
|
|
70
70
|
## isTooltip (placementMode: 'local')
|
|
71
71
|
|
|
72
|
-
As specified in the [overlay rationale](https://github.com/ing-bank/lion/blob/
|
|
72
|
+
As specified in the [overlay rationale](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/rationale.md) there are only two official types of overlays: dialogs and tooltips. And their main differences are:
|
|
73
73
|
|
|
74
74
|
- Dialogs have a modal option, tooltips don’t
|
|
75
75
|
- Dialogs have interactive content, tooltips don’t
|
|
@@ -374,7 +374,7 @@ Features:
|
|
|
374
374
|
|
|
375
375
|
> Popper strictly is scoped on positioning. **It does not change the dimensions of the content node nor the invoker node**.
|
|
376
376
|
> This also means that if you use the arrow feature, you are in charge of styling it properly, use the data-popper-placement attribute for this.
|
|
377
|
-
> An example implementation can be found in [lion-tooltip](https://github.com/ing-bank/lion/blob/
|
|
377
|
+
> An example implementation can be found in [lion-tooltip](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/components/tooltip/overview.md), where an arrow is set by default.
|
|
378
378
|
|
|
379
379
|
To override the default options we set for local mode, you add a `popperConfig` object to the config passed to the OverlayController.
|
|
380
380
|
Here's a succinct overview of some often used popper properties:
|
|
@@ -6,7 +6,7 @@ Manages their position on the screen relative to other elements, including other
|
|
|
6
6
|
|
|
7
7
|
Its purpose is to make it easy to use our Overlay System declaratively. It can be easily extended where needed, to override event listeners and more.
|
|
8
8
|
|
|
9
|
-
See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/
|
|
9
|
+
See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/components/tooltip/overview.md) for example Web Component implementations using the Overlay System.
|
|
10
10
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
@@ -18,9 +18,9 @@ See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](htt
|
|
|
18
18
|
- lion-overlay web component:
|
|
19
19
|
- Show content when clicking the invoker
|
|
20
20
|
- Have a `.config` object to set or update the OverlayController's configuration
|
|
21
|
-
- [**OverlaysManager**](https://github.com/ing-bank/lion/blob/
|
|
22
|
-
- [**OverlayController**](https://github.com/ing-bank/lion/blob/
|
|
23
|
-
- [**OverlayMixin**](https://github.com/ing-bank/lion/blob/
|
|
21
|
+
- [**OverlaysManager**](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/use-cases.md#overlaysmanager), a global repository keeping track of all different types of overlays
|
|
22
|
+
- [**OverlayController**](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/use-cases.md#overlaycontroller), a single controller class for handling overlays
|
|
23
|
+
- [**OverlayMixin**](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/use-cases.md#overlaymixin), a mixin that can be used to create webcomponents that use the OverlayController under the hood
|
|
24
24
|
|
|
25
25
|
Usually you will use `lion-dialog` (or `lion-tooltip` if this makes more sense).
|
|
26
26
|
|
|
@@ -110,4 +110,4 @@ class MyOverlayComponent extends OverlayMixin(LitElement) {
|
|
|
110
110
|
|
|
111
111
|
## Rationales
|
|
112
112
|
|
|
113
|
-
Please check the [system rationals](https://github.com/ing-bank/lion/blob/
|
|
113
|
+
Please check the [system rationals](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/rationale.md) folder, where we go more in-depth.
|
|
@@ -21,7 +21,7 @@ The overlay system allows to create different types of overlays like dialogs, to
|
|
|
21
21
|
It's designed to be highly flexible, while still delivering sensible defaults.
|
|
22
22
|
On top of this, the system was built having accessibility in mind.
|
|
23
23
|
|
|
24
|
-
For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/
|
|
24
|
+
For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/rationale.md).
|
|
25
25
|
|
|
26
26
|
```js preview-story
|
|
27
27
|
export const main = () => html`
|
|
@@ -67,7 +67,7 @@ Global refers to overlays where the content is positioned in a global root node
|
|
|
67
67
|
|
|
68
68
|
Overlays can be configured in many ways to suit your needs. We go in-depth into each option in the Overlay System - Configuration chapter.
|
|
69
69
|
|
|
70
|
-
We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/
|
|
70
|
+
We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/overlays/configuration.md).
|
|
71
71
|
|
|
72
72
|
- withModalDialogConfig
|
|
73
73
|
- withDropdownConfig
|
|
@@ -131,15 +131,12 @@ render() {
|
|
|
131
131
|
|
|
132
132
|
or declaratively in your template with the `.config` property
|
|
133
133
|
|
|
134
|
-
```
|
|
135
|
-
<demo-el-using-overlaymixin .config
|
|
134
|
+
```jsx
|
|
135
|
+
<demo-el-using-overlaymixin .config="${{ ...withModalDialogConfig() }}">
|
|
136
136
|
<button slot="invoker">Click me to open the overlay!</button>
|
|
137
137
|
<div slot="content" class="demo-overlay">
|
|
138
138
|
Hello! You can close this notification here:
|
|
139
|
-
<button
|
|
140
|
-
@click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
|
|
141
|
-
>
|
|
142
|
-
⨯
|
|
139
|
+
<button @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}">
|
|
143
140
|
</button>
|
|
144
141
|
</div>
|
|
145
142
|
</demo-el-using-overlaymixin>
|
|
@@ -40,13 +40,10 @@ const uid = Math.random().toString(36).substr(2, 10);
|
|
|
40
40
|
|
|
41
41
|
This connects the logger element to the trigger.
|
|
42
42
|
|
|
43
|
-
```
|
|
43
|
+
```jsx
|
|
44
44
|
<div>To log: <code>Hello, World!</code></div>
|
|
45
|
-
<button
|
|
46
|
-
|
|
47
|
-
e.target.parentElement.querySelector('#logger-${uid}').log('Hello, World!')
|
|
48
|
-
}}
|
|
49
|
-
>Click this button</button>
|
|
45
|
+
<button @click="${e => { e.target.parentElement.querySelector('#logger-${uid}').log('Hello, World!') }}">Click this button
|
|
46
|
+
</button>
|
|
50
47
|
<sb-action-logger id="logger-${uid}"></sb-action-logger>
|
|
51
48
|
```
|
|
52
49
|
|
|
@@ -9,7 +9,7 @@ Therefore, they may not have the same quality standards as our other packages.
|
|
|
9
9
|
|
|
10
10
|
| Package | Description |
|
|
11
11
|
| -------------------------------------- | ----------------------- |
|
|
12
|
-
| [sb-action-logger](https://github.com/ing-bank/lion/blob/
|
|
12
|
+
| [sb-action-logger](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
@@ -37,7 +37,9 @@ class DemoApp extends LitElement {
|
|
|
37
37
|
font-size: 1rem;
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
text-align: center;
|
|
40
|
-
transition:
|
|
40
|
+
transition:
|
|
41
|
+
background 250ms ease-in-out,
|
|
42
|
+
transform 150ms ease;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
button:hover,
|
|
@@ -35,7 +35,9 @@ class DemoApp extends LitElement {
|
|
|
35
35
|
font-size: 1rem;
|
|
36
36
|
cursor: pointer;
|
|
37
37
|
text-align: center;
|
|
38
|
-
transition:
|
|
38
|
+
transition:
|
|
39
|
+
background 250ms ease-in-out,
|
|
40
|
+
transform 150ms ease;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
button:hover,
|
|
@@ -37,7 +37,9 @@ class DemoApp extends LitElement {
|
|
|
37
37
|
font-size: 1rem;
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
text-align: center;
|
|
40
|
-
transition:
|
|
40
|
+
transition:
|
|
41
|
+
background 250ms ease-in-out,
|
|
42
|
+
transform 150ms ease;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
button:hover,
|
|
@@ -9,7 +9,7 @@ Primarily useful if two major version of a package with a singleton is used.
|
|
|
9
9
|
npm i --save singleton-manager
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
⚠️ You need to make SURE that only ONE version of `singleton-manager` is installed. For how see [Non Goals](https://github.com/ing-bank/lion/blob/
|
|
12
|
+
⚠️ You need to make SURE that only ONE version of `singleton-manager` is installed. For how see [Non Goals](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/tools/singleton-manager/#non-goals).
|
|
13
13
|
|
|
14
14
|
### Example Singleton Users
|
|
15
15
|
|
|
@@ -159,7 +159,7 @@ Steps to reproduce:
|
|
|
159
159
|
1. Page A click on block
|
|
160
160
|
2. Page B => "Blocked: false" (even when hitting the refresh button)
|
|
161
161
|
|
|
162
|
-
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/
|
|
162
|
+
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/tools/singleton-manager/example-fail/index.md). <br>
|
|
163
163
|
➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js).
|
|
164
164
|
|
|
165
165
|
---
|
|
@@ -202,7 +202,7 @@ See it in action
|
|
|
202
202
|
npm run start:singleton
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
-
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/
|
|
205
|
+
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/tools/singleton-manager/example-success/index.md). <br>
|
|
206
206
|
➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js).
|
|
207
207
|
|
|
208
208
|
---
|
|
@@ -243,7 +243,7 @@ See it in action
|
|
|
243
243
|
npm run start:singleton-complex
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/
|
|
246
|
+
➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/tools/singleton-manager/example-complex/index.md). <br>
|
|
247
247
|
➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js).
|
|
248
248
|
|
|
249
249
|
---
|
|
@@ -75,9 +75,9 @@ if (!customElements.get('dummy-slider')) {
|
|
|
75
75
|
}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
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/
|
|
78
|
+
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/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/components/input/overview.md).
|
|
79
79
|
|
|
80
|
-
> In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/
|
|
80
|
+
> In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/guides/how-to/extend-a-native-input.md).
|
|
81
81
|
|
|
82
82
|
## A) an interaction element
|
|
83
83
|
|
|
@@ -126,7 +126,7 @@ export const createAnInteractiveElement = () => {
|
|
|
126
126
|
## B) your LionField extension
|
|
127
127
|
|
|
128
128
|
Now we want to integrate the slider in our form system to enrich the user interface, get
|
|
129
|
-
validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/
|
|
129
|
+
validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/components/input/overview.md).
|
|
130
130
|
We start by creating a component `<slider-field>` that extends from `LionField`.
|
|
131
131
|
Then we follow the steps below:
|
|
132
132
|
|
|
@@ -139,7 +139,7 @@ Then we follow the steps below:
|
|
|
139
139
|
|
|
140
140
|
The `user-input-changed` event is listened to by the FormatMixin: it should be regarded as the
|
|
141
141
|
equivalent of the `input` event of the platform, but for custom built interaction elements.
|
|
142
|
-
You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/
|
|
142
|
+
You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/form/model-value.md), which can be regarded as
|
|
143
143
|
the glue to integrate all other functionality like parsing/formatting/serializing, validating,
|
|
144
144
|
tracking interaction states etc.
|
|
145
145
|
|
|
@@ -147,7 +147,7 @@ Then we follow the steps below:
|
|
|
147
147
|
> because those properties will loose their reactivity (they won't be considered anymore in the
|
|
148
148
|
> update loop of LitElement).
|
|
149
149
|
> Whenever a .modelValue/.formattedValue/.serializedValue needs to be computed, use
|
|
150
|
-
> [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/
|
|
150
|
+
> [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/systems/form/formatting-and-parsing.md)
|
|
151
151
|
|
|
152
152
|
Implement with the following code:
|
|
153
153
|
|
|
@@ -63,7 +63,7 @@ class MyForm extends LitElement {
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
> Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/
|
|
66
|
+
> Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/fundamentals/rationales/accessibility.md#shadow-roots-and-accessibility).
|
|
67
67
|
|
|
68
68
|
The 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.
|
|
69
69
|
|
|
@@ -73,7 +73,7 @@ Extending form components is not recommended for Application Developers: it shou
|
|
|
73
73
|
This team will add the styling and default configuration needed to make it fit the particular Design System.
|
|
74
74
|
|
|
75
75
|
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
|
|
76
|
-
[exceptional cases](https://github.com/ing-bank/lion/blob/
|
|
76
|
+
[exceptional cases](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/guides/how-to/#exceptional-cases) below.
|
|
77
77
|
|
|
78
78
|
### Exceptional cases
|
|
79
79
|
|
|
@@ -81,8 +81,8 @@ If the form component you need is still missing, you have two options:
|
|
|
81
81
|
|
|
82
82
|
- is it a generic primitive that should be part of Lion? Request it in [Lion discussions](https://github.com/ing-bank/lion/discussions)
|
|
83
83
|
- is it a non generic component that is unique to your app?
|
|
84
|
-
- follow [create a custom field](https://github.com/ing-bank/lion/blob/
|
|
85
|
-
- follow [extend a native input](https://github.com/ing-bank/lion/blob/
|
|
84
|
+
- follow [create a custom field](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/guides/how-to/create-a-custom-field.md)
|
|
85
|
+
- follow [extend a native input](https://github.com/ing-bank/lion/blob/15a9d70cb690d26e6a2af8a6b5dbdda7e7b0112e/docs/guides/how-to/extend-a-native-input.md)
|
|
86
86
|
|
|
87
87
|
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.
|
|
88
88
|
Changing/overriding functionality is only recommended if the source code in `form-core` is fully understood.
|