@lion/ui 0.25.0 → 0.26.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 +25 -7
- package/accordion-test-suites.js +2 -0
- package/collapsible-test-suites.js +1 -0
- package/combobox-test-suites.js +2 -0
- package/components/accordion/test/lion-accordion.test.js +2 -565
- package/components/accordion/test-suites/lion-accordion.suite.js +596 -0
- package/components/button/test-suites/LionButton.suite.js +13 -11
- package/components/button/test-suites/LionButtonReset.suite.js +11 -3
- package/components/button/test-suites/LionButtonSubmit.suite.js +11 -3
- package/components/calendar/test/lion-calendar.test.js +1 -1570
- package/components/calendar/test-suites/LionCalendar.suite.js +1617 -5
- package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +5 -2
- package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +13 -4
- package/components/checkbox-group/test/lion-checkbox-integrations.test.js +4 -1
- package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +54 -54
- package/components/collapsible/test/lion-collapsible.test.js +2 -126
- package/components/collapsible/test-suites/LionCollapsible.suite.js +147 -0
- package/components/combobox/test/lion-combobox-integrations.test.js +11 -4
- package/components/combobox/test/lion-combobox.test.js +2 -3622
- package/components/combobox/test-suites/lion-combobox.suite.js +3665 -0
- package/components/core/src/ScopedElementsMixin.js +16 -1
- package/components/core/test-helpers/isElementVisible.js +21 -0
- package/components/core/test-helpers/resolveSuiteTag.js +97 -0
- package/components/core/types/TestSuiteTypes.ts +43 -0
- package/components/dialog/test/lion-dialog.integration.test.js +9 -10
- package/components/dialog/test/lion-dialog.test.js +2 -399
- package/components/dialog/test-suites/lion-dialog.suite.js +412 -0
- package/components/drawer/test/lion-drawer.test.js +2 -84
- package/components/drawer/test-suites/LionDrawer.suite.js +108 -0
- package/components/fieldset/test/lion-fieldset.test.js +7 -2
- package/components/form/test/lion-form.test.js +2 -348
- package/components/form/test-suites/lion-form.suite.js +398 -0
- package/components/form-core/test/FormatMixin.test.js +4 -1
- package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +13 -0
- package/components/form-core/test-suites/FormRegistrationMixins.suite.js +21 -26
- package/components/form-core/test-suites/FormatMixin.suite.js +45 -43
- package/components/form-core/test-suites/InteractionStateMixin.suite.js +19 -15
- package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -9
- package/components/form-core/test-suites/ValidateMixin.suite.js +14 -10
- package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +15 -2
- package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +55 -33
- package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +7 -6
- package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +19 -22
- package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +14 -5
- package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +13 -4
- package/components/icon/test/lion-icon.test.js +2 -188
- package/components/icon/test-suites/lion-icon.suite.js +206 -0
- package/components/input/test/input-integrations.test.js +18 -15
- package/components/input/test/lion-input-integrations.test.js +7 -3
- package/components/input/test/lion-input.test.js +2 -198
- package/components/input/test-suites/lion-input.suite.js +214 -0
- package/components/input-amount/src/parsers.js +5 -1
- package/components/input-amount/test/lion-input-amount-integrations.test.js +7 -3
- package/components/input-amount/test/lion-input-amount.test.js +2 -421
- package/components/input-amount/test/parsers.test.js +12 -0
- package/components/input-amount/test-suites/lion-input-amount.suite.js +418 -0
- package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +3 -2
- package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +4 -2
- package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +6 -4
- package/components/input-date/test/lion-input-date-integrations.test.js +7 -3
- package/components/input-date/test/lion-input-date.test.js +2 -177
- package/components/input-date/test-suites/lion-input-date.suite.js +195 -0
- package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +7 -3
- package/components/input-datepicker/test/lion-input-datepicker.test.js +1 -844
- package/components/input-datepicker/test-helpers/DatepickerInputObject.js +26 -0
- package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +899 -14
- package/components/input-email/test/lion-input-email-integrations.test.js +4 -2
- package/components/input-email/test/lion-input-email.test.js +2 -46
- package/components/input-email/test-suites/lion-input-email.suite.js +63 -0
- package/components/input-file/test/lion-input-file.test.js +2 -1274
- package/components/input-file/test-suites/lion-input-file.suite.js +1505 -0
- package/components/input-iban/test/lion-input-iban-integrations.test.js +4 -2
- package/components/input-iban/test/lion-input-iban.test.js +2 -73
- package/components/input-iban/test-suites/lion-input-iban.suite.js +88 -0
- package/components/input-range/test/lion-input-range.test.js +2 -176
- package/components/input-range/test-suites/lion-input-range.suite.js +195 -0
- package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +14 -3
- package/components/input-stepper/test-suites/lion-input-stepper.suite.js +14 -10
- package/components/input-tel/test/LionInputTel.test.js +3 -1
- package/components/input-tel/test-suites/LionInputTel.suite.js +9 -4
- package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +6 -4
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +10 -13
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +6 -5
- package/components/listbox/test-suites/ListboxMixin.suite.js +19 -19
- package/components/menu/test-suites/InteractiveListMixin.suite.js +6 -9
- package/components/menu/test-suites/LionMenu.suite.js +6 -10
- package/components/menu/test-suites/LionMenuInteractions.suite.js +13 -4
- package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +6 -9
- package/components/menu/test-suites/MultiLevelListMixin.suite.js +15 -11
- package/components/overlays/test/OverlayController.test.js +6 -1
- package/components/overlays/test-suites/OverlayMixin.suite.js +3 -5
- package/components/pagination/test/lion-pagination.test.js +2 -176
- package/components/pagination/test-suites/LionPagination.suite.js +201 -0
- package/components/progress-indicator/test/lion-progress-indicator.test.js +2 -203
- package/components/progress-indicator/test-suites/lion-progress-indicator.suite.js +214 -0
- package/components/radio-group/test/lion-radio-group.test.js +2 -162
- package/components/radio-group/test/lion-radio.test.js +2 -54
- package/components/radio-group/test-suites/lion-radio-group.suite.js +173 -0
- package/components/radio-group/test-suites/lion-radio.suite.js +70 -0
- package/components/select/test/lion-select.test.js +2 -79
- package/components/select/test-suites/LionSelect.suite.js +94 -0
- package/components/select-rich/test/lion-select-invoker.test.js +2 -86
- package/components/select-rich/test/lion-select-rich-interaction.test.js +2 -430
- package/components/select-rich/test/lion-select-rich.test.js +2 -1193
- package/components/select-rich/test-suites/lion-select-invoker.suite.js +98 -0
- package/components/select-rich/test-suites/lion-select-rich-interaction.suite.js +452 -0
- package/components/select-rich/test-suites/lion-select-rich.suite.js +1236 -0
- package/components/steps/test/lion-step.test.js +2 -97
- package/components/steps/test/lion-steps.test.js +2 -433
- package/components/steps/test-suites/lion-step.suite.js +113 -0
- package/components/steps/test-suites/lion-steps.suite.js +445 -0
- package/components/switch/test/lion-switch.test.js +2 -232
- package/components/switch/test-suites/lion-switch.suite.js +450 -0
- package/components/tabs/test/lion-tabs.test.js +2 -596
- package/components/tabs/test-suites/lion-tabs.suite.js +617 -0
- package/components/textarea/src/LionTextarea.js +5 -2
- package/components/textarea/test/lion-textarea.test.js +2 -159
- package/components/textarea/test-suites/lion-textarea.suite.js +192 -0
- package/components/tooltip/test/lion-tooltip.test.js +2 -393
- package/components/tooltip/test-suites/lion-tooltip.suite.js +409 -0
- package/custom-elements.json +14855 -10161
- package/dialog-test-suites.js +2 -0
- package/dist-types/components/accordion/test/lion-accordion.test.d.ts +1 -2
- package/dist-types/components/accordion/test/lion-accordion.test.d.ts.map +1 -1
- package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts +18 -0
- package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts.map +1 -0
- package/dist-types/components/button/test-suites/LionButton.suite.d.ts +10 -4
- package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
- package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts +10 -4
- package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts.map +1 -1
- package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts +10 -4
- package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts.map +1 -1
- package/dist-types/components/calendar/test/lion-calendar.test.d.ts +1 -3
- package/dist-types/components/calendar/test/lion-calendar.test.d.ts.map +1 -1
- package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts +13 -4
- package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts.map +1 -1
- package/dist-types/components/checkbox-group/test/lion-checkbox-group-integrations.test.d.ts.map +1 -1
- package/dist-types/components/checkbox-group/test/lion-checkbox-integrations.test.d.ts.map +1 -1
- package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts +12 -9
- package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
- package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts +1 -3
- package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts.map +1 -1
- package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts +18 -0
- package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts.map +1 -0
- package/dist-types/components/combobox/test/lion-combobox.test.d.ts +1 -5
- package/dist-types/components/combobox/test/lion-combobox.test.d.ts.map +1 -1
- package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts +17 -0
- package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts.map +1 -0
- package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -1
- package/dist-types/components/core/test-helpers/isElementVisible.d.ts +12 -0
- package/dist-types/components/core/test-helpers/isElementVisible.d.ts.map +1 -0
- package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts +29 -0
- package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts.map +1 -0
- package/dist-types/components/core/types/TestSuiteTypes.d.ts +40 -0
- package/dist-types/components/core/types/TestSuiteTypes.d.ts.map +1 -0
- package/dist-types/components/dialog/test/lion-dialog.integration.test.d.ts.map +1 -1
- package/dist-types/components/dialog/test/lion-dialog.test.d.ts +1 -5
- package/dist-types/components/dialog/test/lion-dialog.test.d.ts.map +1 -1
- package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts +19 -0
- package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts.map +1 -0
- package/dist-types/components/drawer/test/lion-drawer.test.d.ts +1 -3
- package/dist-types/components/drawer/test/lion-drawer.test.d.ts.map +1 -1
- package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts +20 -0
- package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts.map +1 -0
- package/dist-types/components/fieldset/test/lion-fieldset.test.d.ts.map +1 -1
- package/dist-types/components/form/test/lion-form.test.d.ts +1 -12
- package/dist-types/components/form/test/lion-form.test.d.ts.map +1 -1
- package/dist-types/components/form/test-suites/lion-form.suite.d.ts +39 -0
- package/dist-types/components/form/test-suites/lion-form.suite.d.ts.map +1 -0
- package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts +14 -17
- package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts +22 -38
- package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts +11 -5
- package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts +9 -4
- package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts +9 -4
- package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts +10 -1
- package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts +17 -6
- package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts +5 -2
- package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts +10 -5
- package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts +10 -5
- package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
- package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts +10 -5
- package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
- package/dist-types/components/icon/test/lion-icon.test.d.ts +1 -4
- package/dist-types/components/icon/test/lion-icon.test.d.ts.map +1 -1
- package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts +16 -0
- package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts.map +1 -0
- package/dist-types/components/input/test/lion-input-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input/test/lion-input.test.d.ts +1 -2
- package/dist-types/components/input/test/lion-input.test.d.ts.map +1 -1
- package/dist-types/components/input/test-suites/lion-input.suite.d.ts +17 -0
- package/dist-types/components/input/test-suites/lion-input.suite.d.ts.map +1 -0
- package/dist-types/components/input-amount/src/parsers.d.ts.map +1 -1
- package/dist-types/components/input-amount/test/lion-input-amount-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts +1 -2
- package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts.map +1 -1
- package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts +19 -0
- package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts +7 -3
- package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts.map +1 -1
- package/dist-types/components/input-date/test/lion-input-date-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-date/test/lion-input-date.test.d.ts +1 -3
- package/dist-types/components/input-date/test/lion-input-date.test.d.ts.map +1 -1
- package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts +15 -0
- package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts.map +1 -0
- package/dist-types/components/input-datepicker/test/lion-input-datepicker-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts +1 -2
- package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts +8 -0
- package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts +15 -5
- package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts.map +1 -1
- package/dist-types/components/input-email/test/lion-input-email-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-email/test/lion-input-email.test.d.ts +1 -3
- package/dist-types/components/input-email/test/lion-input-email.test.d.ts.map +1 -1
- package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts +15 -0
- package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts.map +1 -0
- package/dist-types/components/input-file/test/lion-input-file.test.d.ts +1 -5
- package/dist-types/components/input-file/test/lion-input-file.test.d.ts.map +1 -1
- package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts +19 -0
- package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts.map +1 -0
- package/dist-types/components/input-iban/test/lion-input-iban-integrations.test.d.ts.map +1 -1
- package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts +1 -3
- package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts.map +1 -1
- package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts +15 -0
- package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts.map +1 -0
- package/dist-types/components/input-range/test/lion-input-range.test.d.ts +1 -3
- package/dist-types/components/input-range/test/lion-input-range.test.d.ts.map +1 -1
- package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts +15 -0
- package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts.map +1 -0
- package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts +10 -2
- package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts.map +1 -1
- package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts +10 -2
- package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts.map +1 -1
- package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts +6 -4
- package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts.map +1 -1
- package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts +7 -3
- package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts.map +1 -1
- package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts +7 -3
- package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts.map +1 -1
- package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts +3 -4
- package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts.map +1 -1
- package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +6 -5
- package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -1
- package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +6 -5
- package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -1
- package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts +10 -4
- package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts.map +1 -1
- package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +6 -5
- package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -1
- package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +7 -6
- package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -1
- package/dist-types/components/overlays/test-suites/OverlayMixin.suite.d.ts.map +1 -1
- package/dist-types/components/pagination/test/lion-pagination.test.d.ts +1 -3
- package/dist-types/components/pagination/test/lion-pagination.test.d.ts.map +1 -1
- package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts +18 -0
- package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts.map +1 -0
- package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts +1 -3
- package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts.map +1 -1
- package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts +15 -0
- package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts.map +1 -0
- package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts +1 -5
- package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts.map +1 -1
- package/dist-types/components/radio-group/test/lion-radio.test.d.ts +1 -2
- package/dist-types/components/radio-group/test/lion-radio.test.d.ts.map +1 -1
- package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts +19 -0
- package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts.map +1 -0
- package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts +17 -0
- package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts.map +1 -0
- package/dist-types/components/select/test/lion-select.test.d.ts +1 -2
- package/dist-types/components/select/test/lion-select.test.d.ts.map +1 -1
- package/dist-types/components/select/test-suites/LionSelect.suite.d.ts +16 -0
- package/dist-types/components/select/test-suites/LionSelect.suite.d.ts.map +1 -0
- package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts +1 -2
- package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts.map +1 -1
- package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts +1 -5
- 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.test.d.ts +1 -8
- package/dist-types/components/select-rich/test/lion-select-rich.test.d.ts.map +1 -1
- package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts +19 -0
- package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts.map +1 -0
- package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts +19 -0
- package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts.map +1 -0
- package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts +21 -0
- package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts.map +1 -0
- package/dist-types/components/steps/test/lion-step.test.d.ts +1 -2
- package/dist-types/components/steps/test/lion-step.test.d.ts.map +1 -1
- package/dist-types/components/steps/test/lion-steps.test.d.ts +1 -8
- package/dist-types/components/steps/test/lion-steps.test.d.ts.map +1 -1
- package/dist-types/components/steps/test-suites/lion-step.suite.d.ts +17 -0
- package/dist-types/components/steps/test-suites/lion-step.suite.d.ts.map +1 -0
- package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts +22 -0
- package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts.map +1 -0
- package/dist-types/components/switch/test/lion-switch.test.d.ts +1 -4
- package/dist-types/components/switch/test/lion-switch.test.d.ts.map +1 -1
- package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts +17 -0
- package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts.map +1 -0
- package/dist-types/components/tabs/test/lion-tabs.test.d.ts +1 -5
- package/dist-types/components/tabs/test/lion-tabs.test.d.ts.map +1 -1
- package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts +17 -0
- package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts.map +1 -0
- package/dist-types/components/textarea/src/LionTextarea.d.ts.map +1 -1
- package/dist-types/components/textarea/test/lion-textarea.test.d.ts +1 -3
- package/dist-types/components/textarea/test/lion-textarea.test.d.ts.map +1 -1
- package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts +15 -0
- package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts.map +1 -0
- package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts +1 -3
- package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts.map +1 -1
- package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts +19 -0
- package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts.map +1 -0
- package/dist-types/exports/accordion-test-suites.d.ts +2 -0
- package/dist-types/exports/accordion-test-suites.d.ts.map +1 -0
- package/dist-types/exports/collapsible-test-suites.d.ts +2 -0
- package/dist-types/exports/collapsible-test-suites.d.ts.map +1 -0
- package/dist-types/exports/combobox-test-suites.d.ts +2 -0
- package/dist-types/exports/combobox-test-suites.d.ts.map +1 -0
- package/dist-types/exports/dialog-test-suites.d.ts +2 -0
- package/dist-types/exports/dialog-test-suites.d.ts.map +1 -0
- package/dist-types/exports/drawer-test-suites.d.ts +2 -0
- package/dist-types/exports/drawer-test-suites.d.ts.map +1 -0
- package/dist-types/exports/form-test-suites.d.ts +2 -0
- package/dist-types/exports/form-test-suites.d.ts.map +1 -0
- package/dist-types/exports/icon-test-suites.d.ts +2 -0
- package/dist-types/exports/icon-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-amount-test-suites.d.ts +2 -0
- package/dist-types/exports/input-amount-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-date-test-suites.d.ts +2 -0
- package/dist-types/exports/input-date-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-email-test-suites.d.ts +2 -0
- package/dist-types/exports/input-email-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-file-test-suites.d.ts +2 -0
- package/dist-types/exports/input-file-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-iban-test-suites.d.ts +2 -0
- package/dist-types/exports/input-iban-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-range-test-suites.d.ts +2 -0
- package/dist-types/exports/input-range-test-suites.d.ts.map +1 -0
- package/dist-types/exports/input-stepper-suites.d.ts +7 -2
- package/dist-types/exports/input-stepper-suites.d.ts.map +1 -1
- package/dist-types/exports/input-test-suites.d.ts +2 -0
- package/dist-types/exports/input-test-suites.d.ts.map +1 -0
- package/dist-types/exports/menu-test-suites.d.ts.map +1 -1
- package/dist-types/exports/pagination-test-suites.d.ts +2 -0
- package/dist-types/exports/pagination-test-suites.d.ts.map +1 -0
- package/dist-types/exports/progress-indicator-test-suites.d.ts +2 -0
- package/dist-types/exports/progress-indicator-test-suites.d.ts.map +1 -0
- package/dist-types/exports/radio-group-test-suites.d.ts +3 -0
- package/dist-types/exports/radio-group-test-suites.d.ts.map +1 -0
- package/dist-types/exports/select-rich-test-suites.d.ts +4 -0
- package/dist-types/exports/select-rich-test-suites.d.ts.map +1 -0
- package/dist-types/exports/select-test-suites.d.ts +2 -0
- package/dist-types/exports/select-test-suites.d.ts.map +1 -0
- package/dist-types/exports/steps-test-suites.d.ts +3 -0
- package/dist-types/exports/steps-test-suites.d.ts.map +1 -0
- package/dist-types/exports/switch-test-suites.d.ts +2 -0
- package/dist-types/exports/switch-test-suites.d.ts.map +1 -0
- package/dist-types/exports/tabs-test-suites.d.ts +2 -0
- package/dist-types/exports/tabs-test-suites.d.ts.map +1 -0
- package/dist-types/exports/textarea-test-suites.d.ts +2 -0
- package/dist-types/exports/textarea-test-suites.d.ts.map +1 -0
- package/dist-types/exports/tooltip-test-suites.d.ts +2 -0
- package/dist-types/exports/tooltip-test-suites.d.ts.map +1 -0
- package/dist-types/exports/types/test-suites.d.ts +4 -0
- package/dist-types/exports/types/test-suites.d.ts.map +1 -0
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/drawer-test-suites.js +1 -0
- package/exports/accordion-test-suites.js +2 -0
- package/exports/collapsible-test-suites.js +1 -0
- package/exports/combobox-test-suites.js +2 -0
- package/exports/dialog-test-suites.js +2 -0
- package/exports/drawer-test-suites.js +1 -0
- package/exports/form-test-suites.js +2 -0
- package/exports/icon-test-suites.js +2 -0
- package/exports/input-amount-test-suites.js +2 -0
- package/exports/input-date-test-suites.js +2 -0
- package/exports/input-email-test-suites.js +2 -0
- package/exports/input-file-test-suites.js +2 -0
- package/exports/input-iban-test-suites.js +2 -0
- package/exports/input-range-test-suites.js +2 -0
- package/exports/input-stepper-suites.js +18 -4
- package/exports/input-test-suites.js +2 -0
- package/exports/menu-test-suites.js +3 -0
- package/exports/pagination-test-suites.js +1 -0
- package/exports/progress-indicator-test-suites.js +2 -0
- package/exports/radio-group-test-suites.js +3 -0
- package/exports/select-rich-test-suites.js +4 -0
- package/exports/select-test-suites.js +1 -0
- package/exports/steps-test-suites.js +3 -0
- package/exports/switch-test-suites.js +2 -0
- package/exports/tabs-test-suites.js +2 -0
- package/exports/textarea-test-suites.js +2 -0
- package/exports/tooltip-test-suites.js +2 -0
- package/exports/types/test-suites.ts +3 -0
- package/form-test-suites.js +2 -0
- package/generated/awesome-phonenumber/provenance.json +1 -1
- package/icon-test-suites.js +2 -0
- package/input-amount-test-suites.js +2 -0
- package/input-date-test-suites.js +2 -0
- package/input-email-test-suites.js +2 -0
- package/input-file-test-suites.js +2 -0
- package/input-iban-test-suites.js +2 -0
- package/input-range-test-suites.js +2 -0
- package/input-stepper-suites.js +18 -4
- package/input-test-suites.js +2 -0
- package/menu-test-suites.js +3 -0
- package/package.json +4 -1
- package/pagination-test-suites.js +1 -0
- package/progress-indicator-test-suites.js +2 -0
- package/radio-group-test-suites.js +3 -0
- package/select-rich-test-suites.js +4 -0
- package/select-test-suites.js +1 -0
- package/steps-test-suites.js +3 -0
- package/switch-test-suites.js +2 -0
- package/tabs-test-suites.js +2 -0
- package/textarea-test-suites.js +2 -0
- package/tooltip-test-suites.js +2 -0
- package/vscode.html-custom-data.json +55 -0
- package/web-types.json +219 -1
- package/components/button/test/demos.screenshots-test.js +0 -100
- package/components/calendar/test/demos.screenshots-test.js +0 -118
- package/components/input-file/test/lion-selected-file-list.test.js +0 -199
- package/components/select-rich/test/demos.screenshots-test.js +0 -168
- package/components/switch/test/lion-switch-button.test.js +0 -204
- package/dist-types/components/button/test/demos.screenshots-test.d.ts +0 -2
- package/dist-types/components/button/test/demos.screenshots-test.d.ts.map +0 -1
- package/dist-types/components/calendar/test/demos.screenshots-test.d.ts +0 -2
- package/dist-types/components/calendar/test/demos.screenshots-test.d.ts.map +0 -1
- package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts +0 -5
- package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts.map +0 -1
- package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts +0 -2
- package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts.map +0 -1
- package/dist-types/components/switch/test/lion-switch-button.test.d.ts +0 -4
- package/dist-types/components/switch/test/lion-switch-button.test.d.ts.map +0 -1
- package/docs/components/accordion/api-table.md +0 -53
- package/docs/components/accordion/index.md +0 -13
- package/docs/components/accordion/overview.md +0 -141
- package/docs/components/accordion/reference.md +0 -59
- package/docs/components/accordion/use-cases.md +0 -303
- package/docs/components/button/api-table.md +0 -84
- package/docs/components/button/assets/bootstrap-button.js +0 -245
- package/docs/components/button/examples.md +0 -42
- package/docs/components/button/extensions.md +0 -42
- package/docs/components/button/index.md +0 -13
- package/docs/components/button/overview.md +0 -42
- package/docs/components/button/src/icon.svg.js +0 -5
- package/docs/components/button/use-cases.md +0 -121
- package/docs/components/calendar/api-table.md +0 -56
- package/docs/components/calendar/index.md +0 -13
- package/docs/components/calendar/overview.md +0 -61
- package/docs/components/calendar/use-cases.md +0 -243
- package/docs/components/checkbox-group/api-table.md +0 -117
- package/docs/components/checkbox-group/index.md +0 -13
- package/docs/components/checkbox-group/overview.md +0 -51
- package/docs/components/checkbox-group/use-cases.md +0 -192
- package/docs/components/collapsible/api-table.md +0 -55
- package/docs/components/collapsible/assets/CustomCollapsible.js +0 -117
- package/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js +0 -41
- package/docs/components/collapsible/examples.md +0 -95
- package/docs/components/collapsible/index.md +0 -13
- package/docs/components/collapsible/overview.md +0 -51
- package/docs/components/collapsible/use-cases.md +0 -91
- package/docs/components/combobox/api-table.md +0 -122
- package/docs/components/combobox/extensions.md +0 -174
- package/docs/components/combobox/index.md +0 -13
- package/docs/components/combobox/overview.md +0 -74
- package/docs/components/combobox/src/LinkMixin.js +0 -60
- package/docs/components/combobox/src/demo-selection-display.js +0 -164
- package/docs/components/combobox/src/gh-combobox/gh-button.js +0 -71
- package/docs/components/combobox/src/gh-combobox/gh-combobox.js +0 -515
- package/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js +0 -9
- package/docs/components/combobox/src/google-combobox/assets/google-search-icon.js +0 -9
- package/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js +0 -19
- package/docs/components/combobox/src/google-combobox/google-combobox.js +0 -461
- package/docs/components/combobox/src/lazyRender.js +0 -29
- package/docs/components/combobox/src/levenshtein.js +0 -95
- package/docs/components/combobox/src/md-combobox/MdFieldMixin.js +0 -345
- package/docs/components/combobox/src/md-combobox/md-combobox.js +0 -91
- package/docs/components/combobox/src/md-combobox/md-input.js +0 -5
- package/docs/components/combobox/src/md-combobox/style/load-roboto.js +0 -6
- package/docs/components/combobox/src/md-combobox/style/md-ripple.js +0 -82
- package/docs/components/combobox/src/wa-combobox/wa-combobox.js +0 -375
- package/docs/components/combobox/use-cases.md +0 -561
- package/docs/components/dialog/api-table.md +0 -61
- package/docs/components/dialog/index.md +0 -13
- package/docs/components/dialog/overview.md +0 -71
- package/docs/components/dialog/src/demoStyle.js +0 -57
- package/docs/components/dialog/src/external-dialog.js +0 -32
- package/docs/components/dialog/src/slots-dialog-content.js +0 -32
- package/docs/components/dialog/src/styled-dialog-content.js +0 -38
- package/docs/components/dialog/use-cases.md +0 -199
- package/docs/components/drawer/api-table.md +0 -64
- package/docs/components/drawer/index.md +0 -13
- package/docs/components/drawer/overview.md +0 -80
- package/docs/components/drawer/src/demoStyle.js +0 -71
- package/docs/components/drawer/use-cases.md +0 -206
- package/docs/components/fieldset/api-table.md +0 -24
- package/docs/components/fieldset/index.md +0 -13
- package/docs/components/fieldset/overview.md +0 -61
- package/docs/components/fieldset/use-cases.md +0 -203
- package/docs/components/form/api-table.md +0 -12
- package/docs/components/form/index.md +0 -13
- package/docs/components/form/overview.md +0 -66
- package/docs/components/form/use-cases.md +0 -230
- package/docs/components/icon/api-table.md +0 -41
- package/docs/components/icon/assets/bugs/bug01.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug02.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug05.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug06.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug08.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug12.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug19.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug23.svg.js +0 -2
- package/docs/components/icon/assets/bugs/bug24.svg.js +0 -2
- package/docs/components/icon/assets/iconset-bugs.js +0 -11
- package/docs/components/icon/assets/iconset-misc.js +0 -3
- package/docs/components/icon/assets/iconset-space.js +0 -31
- package/docs/components/icon/assets/misc/arrowLeft.svg.js +0 -6
- package/docs/components/icon/assets/space/aliens-spaceship.svg.js +0 -2
- package/docs/components/icon/assets/space/meteor.svg.js +0 -2
- package/docs/components/icon/assets/space/moon-flag.svg.js +0 -2
- package/docs/components/icon/assets/space/moon.svg.js +0 -2
- package/docs/components/icon/assets/space/night.svg.js +0 -2
- package/docs/components/icon/assets/space/orbit.svg.js +0 -2
- package/docs/components/icon/assets/space/planet.svg.js +0 -2
- package/docs/components/icon/assets/space/robot.svg.js +0 -2
- package/docs/components/icon/assets/space/rocket.svg.js +0 -2
- package/docs/components/icon/assets/space/satellite.svg.js +0 -2
- package/docs/components/icon/assets/space/signal.svg.js +0 -2
- package/docs/components/icon/assets/space/space-helmet.svg.js +0 -2
- package/docs/components/icon/assets/space/sun.svg.js +0 -2
- package/docs/components/icon/assets/space/telescope.svg.js +0 -2
- package/docs/components/icon/index.md +0 -13
- package/docs/components/icon/overview.md +0 -52
- package/docs/components/icon/use-cases.md +0 -92
- package/docs/components/index.md +0 -17
- package/docs/components/input/api-table.md +0 -52
- package/docs/components/input/index.md +0 -13
- package/docs/components/input/overview.md +0 -48
- package/docs/components/input/use-cases.md +0 -90
- package/docs/components/input-amount/api-table.md +0 -66
- package/docs/components/input-amount/index.md +0 -13
- package/docs/components/input-amount/overview.md +0 -61
- package/docs/components/input-amount/use-cases.md +0 -147
- package/docs/components/input-amount-dropdown/api-table.md +0 -87
- package/docs/components/input-amount-dropdown/index.md +0 -13
- package/docs/components/input-amount-dropdown/use-cases.md +0 -103
- package/docs/components/input-date/api-table.md +0 -58
- package/docs/components/input-date/index.md +0 -13
- package/docs/components/input-date/overview.md +0 -51
- package/docs/components/input-date/use-cases.md +0 -96
- package/docs/components/input-datepicker/api-table.md +0 -99
- package/docs/components/input-datepicker/index.md +0 -13
- package/docs/components/input-datepicker/overview.md +0 -54
- package/docs/components/input-datepicker/use-cases.md +0 -117
- package/docs/components/input-email/api-table.md +0 -53
- package/docs/components/input-email/index.md +0 -13
- package/docs/components/input-email/overview.md +0 -44
- package/docs/components/input-email/use-cases.md +0 -60
- package/docs/components/input-file/api-table.md +0 -157
- package/docs/components/input-file/index.md +0 -13
- package/docs/components/input-file/overview.md +0 -44
- package/docs/components/input-file/use-cases.md +0 -454
- package/docs/components/input-iban/api-table.md +0 -54
- package/docs/components/input-iban/index.md +0 -13
- package/docs/components/input-iban/overview.md +0 -49
- package/docs/components/input-iban/use-cases.md +0 -114
- package/docs/components/input-range/api-table.md +0 -71
- package/docs/components/input-range/index.md +0 -13
- package/docs/components/input-range/overview.md +0 -44
- package/docs/components/input-range/use-cases.md +0 -126
- package/docs/components/input-stepper/api-table.md +0 -74
- package/docs/components/input-stepper/index.md +0 -13
- package/docs/components/input-stepper/overview.md +0 -48
- package/docs/components/input-stepper/use-cases.md +0 -155
- package/docs/components/input-tel/api-table.md +0 -77
- package/docs/components/input-tel/index.md +0 -13
- package/docs/components/input-tel/overview.md +0 -74
- package/docs/components/input-tel/src/h-region-code-table.js +0 -109
- package/docs/components/input-tel/use-cases.md +0 -319
- package/docs/components/input-tel-dropdown/api-table.md +0 -85
- package/docs/components/input-tel-dropdown/extensions.md +0 -44
- package/docs/components/input-tel-dropdown/index.md +0 -13
- package/docs/components/input-tel-dropdown/overview.md +0 -50
- package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +0 -138
- package/docs/components/input-tel-dropdown/use-cases.md +0 -171
- package/docs/components/listbox/api-table.md +0 -65
- package/docs/components/listbox/index.md +0 -13
- package/docs/components/listbox/overview.md +0 -54
- package/docs/components/listbox/src/listboxData.js +0 -131
- package/docs/components/listbox/use-cases.md +0 -154
- package/docs/components/menu/api-table.md +0 -44
- package/docs/components/menu/applyMenuDemoStyles.js +0 -173
- package/docs/components/menu/extensions.md +0 -262
- package/docs/components/menu/index.md +0 -13
- package/docs/components/menu/migration.md +0 -129
- package/docs/components/menu/overview.md +0 -448
- package/docs/components/menu/src/DemoNavigationBar.js +0 -441
- package/docs/components/menu/src/DemoSpinButton.js +0 -215
- package/docs/components/menu/src/DemoToolbar.js +0 -101
- package/docs/components/menu/src/DemoTree.js +0 -55
- package/docs/components/menu/src/navigation-bar-types.js +0 -41
- package/docs/components/menu/use-cases.md +0 -74
- package/docs/components/pagination/api-table.md +0 -45
- package/docs/components/pagination/index.md +0 -13
- package/docs/components/pagination/overview.md +0 -41
- package/docs/components/pagination/use-cases.md +0 -113
- package/docs/components/progress-indicator/api-table.md +0 -48
- package/docs/components/progress-indicator/assets/my-determinate-progress-bar.js +0 -30
- package/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js +0 -55
- package/docs/components/progress-indicator/examples.md +0 -137
- package/docs/components/progress-indicator/index.md +0 -13
- package/docs/components/progress-indicator/overview.md +0 -48
- package/docs/components/radio-group/api-table.md +0 -63
- package/docs/components/radio-group/index.md +0 -13
- package/docs/components/radio-group/overview.md +0 -58
- package/docs/components/radio-group/use-cases.md +0 -146
- package/docs/components/select/api-table.md +0 -51
- package/docs/components/select/index.md +0 -13
- package/docs/components/select/overview.md +0 -56
- package/docs/components/select/use-cases.md +0 -128
- package/docs/components/select-rich/api-table.md +0 -123
- package/docs/components/select-rich/examples.md +0 -43
- package/docs/components/select-rich/index.md +0 -13
- package/docs/components/select-rich/overview.md +0 -55
- package/docs/components/select-rich/src/flagStyles.js +0 -1250
- package/docs/components/select-rich/src/intl-select-rich.js +0 -194
- package/docs/components/select-rich/src/regionMetaList.js +0 -1717
- package/docs/components/select-rich/use-cases.md +0 -387
- package/docs/components/steps/api-table.md +0 -92
- package/docs/components/steps/index.md +0 -13
- package/docs/components/steps/overview.md +0 -77
- package/docs/components/steps/use-cases.md +0 -181
- package/docs/components/switch/api-table.md +0 -82
- package/docs/components/switch/index.md +0 -13
- package/docs/components/switch/overview.md +0 -87
- package/docs/components/switch/reference.md +0 -51
- package/docs/components/switch/use-cases.md +0 -88
- package/docs/components/tabs/api-table.md +0 -51
- package/docs/components/tabs/examples.md +0 -35
- package/docs/components/tabs/index.md +0 -13
- package/docs/components/tabs/overview.md +0 -60
- package/docs/components/tabs/src/lea-tab-panel.js +0 -26
- package/docs/components/tabs/src/lea-tab.js +0 -50
- package/docs/components/tabs/src/lea-tabs.js +0 -28
- package/docs/components/tabs/use-cases.md +0 -231
- package/docs/components/textarea/api-table.md +0 -57
- package/docs/components/textarea/index.md +0 -13
- package/docs/components/textarea/overview.md +0 -47
- package/docs/components/textarea/use-cases.md +0 -107
- package/docs/components/tooltip/api-table.md +0 -62
- package/docs/components/tooltip/examples.md +0 -51
- package/docs/components/tooltip/index.md +0 -13
- package/docs/components/tooltip/overview.md +0 -56
- package/docs/components/tooltip/use-cases.md +0 -275
- package/docs/fundamentals/index.md +0 -19
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +0 -13
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +0 -246
- package/docs/fundamentals/node-tools/index.md +0 -11
- package/docs/fundamentals/node-tools/providence-analytics/index.md +0 -13
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +0 -108
- package/docs/fundamentals/node-tools/publish-docs/index.md +0 -13
- package/docs/fundamentals/node-tools/publish-docs/overview.md +0 -149
- package/docs/fundamentals/node-tools/remark-extend/index.md +0 -13
- package/docs/fundamentals/node-tools/remark-extend/overview.md +0 -287
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +0 -13
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +0 -298
- package/docs/fundamentals/rationales/TypeScript.md +0 -123
- package/docs/fundamentals/rationales/accessibility.md +0 -40
- package/docs/fundamentals/rationales/index.md +0 -11
- package/docs/fundamentals/rationales/side-effects.md +0 -215
- package/docs/fundamentals/rationales/versioning.md +0 -47
- package/docs/fundamentals/systems/core/SlotMixin.md +0 -168
- package/docs/fundamentals/systems/core/api-table.md +0 -43
- package/docs/fundamentals/systems/core/index.md +0 -15
- package/docs/fundamentals/systems/core/overview.md +0 -98
- package/docs/fundamentals/systems/form/api-table.md +0 -40
- package/docs/fundamentals/systems/form/assets/h-output.js +0 -156
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +0 -258
- package/docs/fundamentals/systems/form/index.md +0 -15
- package/docs/fundamentals/systems/form/interaction-states.md +0 -195
- package/docs/fundamentals/systems/form/model-value.md +0 -57
- package/docs/fundamentals/systems/form/overview.md +0 -95
- package/docs/fundamentals/systems/form/styling.md +0 -92
- package/docs/fundamentals/systems/form/use-cases.md +0 -187
- package/docs/fundamentals/systems/form/validate.md +0 -985
- package/docs/fundamentals/systems/icon/index.md +0 -15
- package/docs/fundamentals/systems/icon/overview.md +0 -137
- package/docs/fundamentals/systems/index.md +0 -11
- package/docs/fundamentals/systems/localize/api-table.md +0 -72
- package/docs/fundamentals/systems/localize/assets/all-locales.js +0 -437
- package/docs/fundamentals/systems/localize/assets/en-AU.js +0 -6
- package/docs/fundamentals/systems/localize/assets/en-GB.js +0 -6
- package/docs/fundamentals/systems/localize/assets/en-US.js +0 -6
- package/docs/fundamentals/systems/localize/assets/en.js +0 -4
- package/docs/fundamentals/systems/localize/assets/nl-BE.js +0 -6
- package/docs/fundamentals/systems/localize/assets/nl-NL.js +0 -6
- package/docs/fundamentals/systems/localize/assets/nl.js +0 -4
- package/docs/fundamentals/systems/localize/dates.md +0 -208
- package/docs/fundamentals/systems/localize/index.md +0 -15
- package/docs/fundamentals/systems/localize/numbers.md +0 -230
- package/docs/fundamentals/systems/localize/overview.md +0 -61
- package/docs/fundamentals/systems/localize/rationale.md +0 -75
- package/docs/fundamentals/systems/localize/text.md +0 -139
- package/docs/fundamentals/systems/localize/use-cases.md +0 -334
- package/docs/fundamentals/systems/overlays/_configuration-positioning.md +0 -118
- package/docs/fundamentals/systems/overlays/_edge-cases.md +0 -149
- package/docs/fundamentals/systems/overlays/api-table.md +0 -174
- package/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.js +0 -23
- package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.js +0 -104
- package/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.js +0 -47
- package/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +0 -537
- package/docs/fundamentals/systems/overlays/assets/umbrella-form.js +0 -140
- package/docs/fundamentals/systems/overlays/configuration.md +0 -516
- package/docs/fundamentals/systems/overlays/index.md +0 -15
- package/docs/fundamentals/systems/overlays/overview.md +0 -126
- package/docs/fundamentals/systems/overlays/rationale.md +0 -242
- package/docs/fundamentals/systems/overlays/use-cases.md +0 -717
- package/docs/fundamentals/tools/ajax/index.md +0 -15
- package/docs/fundamentals/tools/ajax/overview.md +0 -269
- package/docs/fundamentals/tools/ajax/use-cases.md +0 -469
- package/docs/fundamentals/tools/helpers/action-logger.md +0 -175
- package/docs/fundamentals/tools/helpers/index.md +0 -15
- package/docs/fundamentals/tools/helpers/overview.md +0 -43
- package/docs/fundamentals/tools/index.md +0 -11
- package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +0 -95
- package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +0 -34
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js +0 -4
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js +0 -35
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js +0 -4
- package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js +0 -49
- package/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js +0 -69
- package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +0 -93
- package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +0 -32
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js +0 -3
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-c/page-c.js +0 -34
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/instance.js +0 -3
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/page-d.js +0 -34
- package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +0 -95
- package/docs/fundamentals/tools/singleton-manager/example-success/index.md +0 -31
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js +0 -4
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-e/page-e.js +0 -33
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/index.js +0 -30
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/instance.js +0 -4
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/page-f.js +0 -34
- package/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js +0 -23
- package/docs/fundamentals/tools/singleton-manager/index.md +0 -15
- package/docs/fundamentals/tools/singleton-manager/overview.md +0 -317
- package/docs/guides/how-to/create-a-custom-field.md +0 -212
- package/docs/guides/how-to/create-a-form.md +0 -101
- package/docs/guides/how-to/extend-a-native-input.md +0 -78
- package/docs/guides/how-to/get-started.md +0 -116
- package/docs/guides/how-to/index.md +0 -25
- package/docs/guides/index.md +0 -44
- package/docs/guides/principles/definitions-and-terms.md +0 -53
- package/docs/guides/principles/index.md +0 -36
- package/docs/guides/principles/scoped-elements.md +0 -119
- package/docs/guides/principles/styling.md +0 -43
- package/docs/guides/principles/subclasser-apis.md +0 -40
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
parts:
|
|
3
|
-
- Use Cases
|
|
4
|
-
- Ajax
|
|
5
|
-
- Tools
|
|
6
|
-
title: 'Use Cases'
|
|
7
|
-
eleventyNavigation:
|
|
8
|
-
key: Tools >> Ajax >> Use Cases
|
|
9
|
-
title: Use Cases
|
|
10
|
-
order: 20
|
|
11
|
-
parent: Tools >> Ajax
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Use Cases
|
|
15
|
-
|
|
16
|
-
```js script
|
|
17
|
-
import { html } from '@mdjs/mdjs-preview';
|
|
18
|
-
import { renderLitAsNode } from '@lion/ui/helpers.js';
|
|
19
|
-
import { ajax, createCacheInterceptors } from '@lion/ajax';
|
|
20
|
-
import '@lion/ui/define-helpers/sb-action-logger.js';
|
|
21
|
-
|
|
22
|
-
const getCacheIdentifier = () => {
|
|
23
|
-
let userId = localStorage.getItem('lion-ajax-cache-demo-user-id');
|
|
24
|
-
if (!userId) {
|
|
25
|
-
localStorage.setItem('lion-ajax-cache-demo-user-id', '1');
|
|
26
|
-
userId = '1';
|
|
27
|
-
}
|
|
28
|
-
return userId;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const TEN_MINUTES = 1000 * 60 * 10; // in milliseconds
|
|
32
|
-
|
|
33
|
-
const cacheOptions = {
|
|
34
|
-
useCache: true,
|
|
35
|
-
maxAge: TEN_MINUTES,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const { cacheRequestInterceptor, cacheResponseInterceptor } = createCacheInterceptors(
|
|
39
|
-
getCacheIdentifier,
|
|
40
|
-
cacheOptions,
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
ajax.addRequestInterceptor(cacheRequestInterceptor);
|
|
44
|
-
ajax.addResponseInterceptor(cacheResponseInterceptor);
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## GET request
|
|
48
|
-
|
|
49
|
-
```js preview-story
|
|
50
|
-
export const getRequest = () => {
|
|
51
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
52
|
-
|
|
53
|
-
const fetchHandler = name => {
|
|
54
|
-
ajax
|
|
55
|
-
.fetch(`../assets/${name}.json`)
|
|
56
|
-
.then(response => response.json())
|
|
57
|
-
.then(result => {
|
|
58
|
-
actionLogger.log(JSON.stringify(result, null, 2));
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
return html`
|
|
63
|
-
<style>
|
|
64
|
-
sb-action-logger {
|
|
65
|
-
--sb-action-logger-max-height: 300px;
|
|
66
|
-
}
|
|
67
|
-
</style>
|
|
68
|
-
<button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
|
|
69
|
-
<button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
|
|
70
|
-
${actionLogger}
|
|
71
|
-
`;
|
|
72
|
-
};
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## POST request
|
|
76
|
-
|
|
77
|
-
```js
|
|
78
|
-
import { ajax } from '@lion/ajax';
|
|
79
|
-
|
|
80
|
-
const response = await ajax.fetch('/api/users', {
|
|
81
|
-
method: 'POST',
|
|
82
|
-
body: JSON.stringify({ username: 'steve' }),
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
const newUser = await response.json();
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### JSON requests
|
|
89
|
-
|
|
90
|
-
We usually deal with JSON requests and responses. `ajax.fetchJson` supports JSON by:
|
|
91
|
-
|
|
92
|
-
- Serializing request body as JSON
|
|
93
|
-
- Deserializing response payload as JSON
|
|
94
|
-
- Adding the correct Content-Type and Accept headers
|
|
95
|
-
|
|
96
|
-
> Note that, the result will have the Response object on `.response` property, and the parsed JSON will be available on `.body`.
|
|
97
|
-
|
|
98
|
-
## GET JSON request
|
|
99
|
-
|
|
100
|
-
```js preview-story
|
|
101
|
-
export const getJsonRequest = () => {
|
|
102
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
103
|
-
|
|
104
|
-
const fetchHandler = name => {
|
|
105
|
-
ajax.fetchJson(`../assets/${name}.json`).then(result => {
|
|
106
|
-
console.log(result.response);
|
|
107
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
return html`
|
|
112
|
-
<style>
|
|
113
|
-
sb-action-logger {
|
|
114
|
-
--sb-action-logger-max-height: 300px;
|
|
115
|
-
}
|
|
116
|
-
</style>
|
|
117
|
-
<button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
|
|
118
|
-
<button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
|
|
119
|
-
${actionLogger}
|
|
120
|
-
`;
|
|
121
|
-
};
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## POST JSON request
|
|
125
|
-
|
|
126
|
-
```js
|
|
127
|
-
import { ajax } from '@lion/ajax';
|
|
128
|
-
|
|
129
|
-
const { response, body } = await ajax.fetchJson('/api/users', {
|
|
130
|
-
method: 'POST',
|
|
131
|
-
body: { username: 'steve' },
|
|
132
|
-
});
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Error handling
|
|
136
|
-
|
|
137
|
-
Different from fetch, `Ajax` throws when the server returns a 4xx or 5xx, returning the request and response:
|
|
138
|
-
|
|
139
|
-
```js preview-story
|
|
140
|
-
export const errorHandling = () => {
|
|
141
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
142
|
-
|
|
143
|
-
const fetchHandler = async () => {
|
|
144
|
-
try {
|
|
145
|
-
const users = await ajax.fetchJson('/api/users');
|
|
146
|
-
} catch (error) {
|
|
147
|
-
if (error.response) {
|
|
148
|
-
if (error.response.status === 400) {
|
|
149
|
-
// handle a specific status code, for example 400 bad request
|
|
150
|
-
} else {
|
|
151
|
-
actionLogger.log(error);
|
|
152
|
-
}
|
|
153
|
-
} else {
|
|
154
|
-
// an error happened before receiving a response,
|
|
155
|
-
// Example: an incorrect request or network error
|
|
156
|
-
actionLogger.log(error);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
return html`
|
|
162
|
-
<style>
|
|
163
|
-
sb-action-logger {
|
|
164
|
-
--sb-action-logger-max-height: 300px;
|
|
165
|
-
}
|
|
166
|
-
</style>
|
|
167
|
-
<button @click="${fetchHandler}">Fetch</button>
|
|
168
|
-
${actionLogger}
|
|
169
|
-
`;
|
|
170
|
-
};
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## Fetch Polyfill
|
|
174
|
-
|
|
175
|
-
For IE11 you will need a polyfill for fetch. You should add this on your top level layer, e.g. your application.
|
|
176
|
-
|
|
177
|
-
[This is the polyfill we recommend](https://github.com/github/fetch). It also has a [section for polyfilling AbortController](https://github.com/github/fetch#aborting-requests)
|
|
178
|
-
|
|
179
|
-
## Ajax Caching Support
|
|
180
|
-
|
|
181
|
-
Ajax package provides in-memory cache support through interceptors. And cache interceptors can be added manually or by configuring the Ajax instance.
|
|
182
|
-
|
|
183
|
-
The cache request interceptor and cache response interceptor are designed to work together to support caching of network requests/responses.
|
|
184
|
-
|
|
185
|
-
> The **request interceptor** checks whether the response for this particular request is cached, and if so returns the cached response.
|
|
186
|
-
> And the **response interceptor** caches the response for this particular request.
|
|
187
|
-
|
|
188
|
-
### Getting started
|
|
189
|
-
|
|
190
|
-
Consume the global `ajax` instance and add interceptors to it, using a cache configuration which is applied on application level. If a developer wants to add specifics to cache behaviour they have to provide a cache config per action (`get`, `post`, etc.) via `cacheOptions` field of local ajax config,
|
|
191
|
-
see examples below.
|
|
192
|
-
|
|
193
|
-
> **Note**: make sure to add the **interceptors** only **once**. This is usually done on app-level
|
|
194
|
-
|
|
195
|
-
```js
|
|
196
|
-
import { ajax, createCacheInterceptors } from '@lion-web/ajax';
|
|
197
|
-
|
|
198
|
-
const globalCacheOptions = {
|
|
199
|
-
useCache: true,
|
|
200
|
-
maxAge: 1000 * 60 * 5, // 5 minutes
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
// Cache is removed each time an identifier changes,
|
|
204
|
-
// for instance when a current user is logged out
|
|
205
|
-
const getCacheIdentifier = () => getActiveProfile().profileId;
|
|
206
|
-
|
|
207
|
-
const { cacheRequestInterceptor, cacheResponseInterceptor } = createCacheInterceptors(
|
|
208
|
-
getCacheIdentifier,
|
|
209
|
-
globalCacheOptions,
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
ajax.addRequestInterceptor(cacheRequestInterceptor);
|
|
213
|
-
ajax.addResponseInterceptor(cacheResponseInterceptor);
|
|
214
|
-
|
|
215
|
-
const { response, body } = await ajax.fetchJson('/my-url');
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
Alternatively, most often for sub-classers, you can extend or import `Ajax` yourself, and pass cacheOptions when instantiating the ajax.
|
|
219
|
-
|
|
220
|
-
```js
|
|
221
|
-
import { Ajax } from '@lion/ajax';
|
|
222
|
-
|
|
223
|
-
export const ajax = new Ajax({
|
|
224
|
-
cacheOptions: {
|
|
225
|
-
useCache: true,
|
|
226
|
-
maxAge: 1000 * 60 * 5, // 5 minutes
|
|
227
|
-
getCacheIdentifier: () => getActiveProfile().profileId,
|
|
228
|
-
},
|
|
229
|
-
});
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### Ajax cache example
|
|
233
|
-
|
|
234
|
-
> Let's assume that we have a user session, for this demo purposes we already created an identifier function for this and set the cache interceptors.
|
|
235
|
-
|
|
236
|
-
We can see if a response is served from the cache by checking the `response.fromCache` property, which is either undefined for normal requests, or set to true for responses that were served from cache.
|
|
237
|
-
|
|
238
|
-
```js preview-story
|
|
239
|
-
export const cache = () => {
|
|
240
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
241
|
-
|
|
242
|
-
const fetchHandler = name => {
|
|
243
|
-
ajax.fetchJson(`../assets/${name}.json`).then(result => {
|
|
244
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
245
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
246
|
-
});
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
return html`
|
|
250
|
-
<style>
|
|
251
|
-
sb-action-logger {
|
|
252
|
-
--sb-action-logger-max-height: 300px;
|
|
253
|
-
}
|
|
254
|
-
</style>
|
|
255
|
-
<button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
|
|
256
|
-
<button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
|
|
257
|
-
${actionLogger}
|
|
258
|
-
`;
|
|
259
|
-
};
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
You can also change the cache options per request, which is handy if you don't want to remove and re-add the interceptors for a simple configuration change.
|
|
263
|
-
|
|
264
|
-
In this demo, when we fetch naga, we always pass `useCache: false` so the Response is never a cached one.
|
|
265
|
-
|
|
266
|
-
```js preview-story
|
|
267
|
-
export const cacheActionOptions = () => {
|
|
268
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
269
|
-
|
|
270
|
-
const fetchHandler = name => {
|
|
271
|
-
let actionCacheOptions;
|
|
272
|
-
if (name === 'naga') {
|
|
273
|
-
actionCacheOptions = {
|
|
274
|
-
useCache: false,
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
ajax.fetchJson(`../assets/${name}.json`, { cacheOptions: actionCacheOptions }).then(result => {
|
|
279
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
280
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
281
|
-
});
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
return html`
|
|
285
|
-
<style>
|
|
286
|
-
sb-action-logger {
|
|
287
|
-
--sb-action-logger-max-height: 300px;
|
|
288
|
-
}
|
|
289
|
-
</style>
|
|
290
|
-
<button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
|
|
291
|
-
<button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
|
|
292
|
-
${actionLogger}
|
|
293
|
-
`;
|
|
294
|
-
};
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Invalidating cache
|
|
298
|
-
|
|
299
|
-
Invalidating the cache, or cache busting, can be done in multiple ways:
|
|
300
|
-
|
|
301
|
-
- Going past the `maxAge` of the cache object
|
|
302
|
-
- Changing cache identifier (e.g. user session or active profile changes)
|
|
303
|
-
- Doing a non GET request to the cached endpoint
|
|
304
|
-
- Invalidates the cache of that endpoint
|
|
305
|
-
- Invalidates the cache of all other endpoints matching `invalidatesUrls` and `invalidateUrlsRegex`
|
|
306
|
-
|
|
307
|
-
## maxAge
|
|
308
|
-
|
|
309
|
-
In this demo we pass a maxAge of three seconds.
|
|
310
|
-
Try clicking the fetch button and watch fromCache change whenever maxAge expires.
|
|
311
|
-
|
|
312
|
-
After maxAge expires, the next request will set the cache again, and for the next 3 seconds you will get cached responses for subsequent requests.
|
|
313
|
-
|
|
314
|
-
```js preview-story
|
|
315
|
-
export const cacheMaxAge = () => {
|
|
316
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
317
|
-
|
|
318
|
-
const fetchHandler = () => {
|
|
319
|
-
ajax
|
|
320
|
-
.fetchJson(`../assets/pabu.json`, {
|
|
321
|
-
cacheOptions: {
|
|
322
|
-
maxAge: 1000 * 3, // 3 seconds
|
|
323
|
-
},
|
|
324
|
-
})
|
|
325
|
-
.then(result => {
|
|
326
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
327
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
328
|
-
});
|
|
329
|
-
};
|
|
330
|
-
|
|
331
|
-
return html`
|
|
332
|
-
<style>
|
|
333
|
-
sb-action-logger {
|
|
334
|
-
--sb-action-logger-max-height: 300px;
|
|
335
|
-
}
|
|
336
|
-
</style>
|
|
337
|
-
<button @click="${fetchHandler}">Fetch Pabu</button>
|
|
338
|
-
${actionLogger}
|
|
339
|
-
`;
|
|
340
|
-
};
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
## Changing cache identifier
|
|
344
|
-
|
|
345
|
-
For this demo we use localStorage to set a user id to `'1'`.
|
|
346
|
-
|
|
347
|
-
Now we will allow you to change this identifier to invalidate the cache.
|
|
348
|
-
|
|
349
|
-
```js preview-story
|
|
350
|
-
export const changeCacheIdentifier = () => {
|
|
351
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
352
|
-
|
|
353
|
-
const fetchHandler = () => {
|
|
354
|
-
ajax.fetchJson(`../assets/pabu.json`).then(result => {
|
|
355
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
356
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
357
|
-
});
|
|
358
|
-
};
|
|
359
|
-
|
|
360
|
-
const changeUserHandler = () => {
|
|
361
|
-
const currentUser = parseInt(localStorage.getItem('lion-ajax-cache-demo-user-id'), 10);
|
|
362
|
-
localStorage.setItem('lion-ajax-cache-demo-user-id', `${currentUser + 1}`);
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
return html`
|
|
366
|
-
<style>
|
|
367
|
-
sb-action-logger {
|
|
368
|
-
--sb-action-logger-max-height: 300px;
|
|
369
|
-
}
|
|
370
|
-
</style>
|
|
371
|
-
<button @click="${fetchHandler}">Fetch Pabu</button>
|
|
372
|
-
<button @click="${changeUserHandler}">Change user</button>
|
|
373
|
-
${actionLogger}
|
|
374
|
-
`;
|
|
375
|
-
};
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
## Non-GET request
|
|
379
|
-
|
|
380
|
-
In this demo we show that by doing a PATCH request, you invalidate the cache of the endpoint for subsequent GET requests.
|
|
381
|
-
|
|
382
|
-
Try clicking the GET pabu button twice so you see a cached response.
|
|
383
|
-
Then click the PATCH pabu button, followed by another GET, and you will see that this one is not served from cache, because the PATCH invalidated it.
|
|
384
|
-
|
|
385
|
-
The rationale is that if a user does a non-GET request to an endpoint, it will make the client-side caching of this endpoint outdated.
|
|
386
|
-
This is because non-GET requests usually in some way mutate the state of the database through interacting with this endpoint.
|
|
387
|
-
Therefore, we invalidate the cache, so the user gets the latest state from the database on the next GET request.
|
|
388
|
-
|
|
389
|
-
> Ignore the browser errors when clicking PATCH buttons, JSON files (our mock database) don't accept PATCH requests.
|
|
390
|
-
|
|
391
|
-
```js preview-story
|
|
392
|
-
export const nonGETRequest = () => {
|
|
393
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
394
|
-
|
|
395
|
-
const fetchHandler = (name, method) => {
|
|
396
|
-
ajax.fetchJson(`../assets/${name}.json`, { method }).then(result => {
|
|
397
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
398
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
399
|
-
});
|
|
400
|
-
};
|
|
401
|
-
|
|
402
|
-
return html`
|
|
403
|
-
<style>
|
|
404
|
-
sb-action-logger {
|
|
405
|
-
--sb-action-logger-max-height: 300px;
|
|
406
|
-
}
|
|
407
|
-
</style>
|
|
408
|
-
<button @click="${() => fetchHandler('pabu', 'GET')}">GET Pabu</button>
|
|
409
|
-
<button @click="${() => fetchHandler('pabu', 'PATCH')}">PATCH Pabu</button>
|
|
410
|
-
<button @click="${() => fetchHandler('naga', 'GET')}">GET Naga</button>
|
|
411
|
-
<button @click="${() => fetchHandler('naga', 'PATCH')}">PATCH Naga</button>
|
|
412
|
-
${actionLogger}
|
|
413
|
-
`;
|
|
414
|
-
};
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
## Invalidate Rules
|
|
418
|
-
|
|
419
|
-
There are two kinds of invalidate rules:
|
|
420
|
-
|
|
421
|
-
- `invalidateUrls` (array of URL like strings)
|
|
422
|
-
- `invalidateUrlsRegex` (RegExp)
|
|
423
|
-
|
|
424
|
-
If a non-GET method is fired, by default it only invalidates its own endpoint.
|
|
425
|
-
Invalidating `/api/users` cache by doing a PATCH, will not invalidate `/api/accounts` cache.
|
|
426
|
-
|
|
427
|
-
However, in the case of users and accounts, they may be very interconnected, so perhaps you do want to invalidate `/api/accounts` when invalidating `/api/users`.
|
|
428
|
-
|
|
429
|
-
This is what the invalidate rules are for.
|
|
430
|
-
|
|
431
|
-
In this demo, invalidating the `pabu` endpoint will invalidate `naga`, but not the other way around.
|
|
432
|
-
|
|
433
|
-
> For invalidateUrls you need the full URL e.g. `<protocol>://<domain>:<port>/<url>` so it's often easier to use invalidateUrlsRegex
|
|
434
|
-
|
|
435
|
-
```js preview-story
|
|
436
|
-
export const invalidateRules = () => {
|
|
437
|
-
const actionLogger = renderLitAsNode(html`<sb-action-logger></sb-action-logger>`);
|
|
438
|
-
|
|
439
|
-
const fetchHandler = (name, method) => {
|
|
440
|
-
const actionCacheOptions = {};
|
|
441
|
-
if (name === 'pabu') {
|
|
442
|
-
actionCacheOptions.invalidateUrlsRegex = /\/docs\/tools\/ajax\/assets\/naga.json/;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
ajax
|
|
446
|
-
.fetchJson(`../assets/${name}.json`, {
|
|
447
|
-
method,
|
|
448
|
-
cacheOptions: actionCacheOptions,
|
|
449
|
-
})
|
|
450
|
-
.then(result => {
|
|
451
|
-
actionLogger.log(`From cache: ${result.response.fromCache || false}`);
|
|
452
|
-
actionLogger.log(JSON.stringify(result.body, null, 2));
|
|
453
|
-
});
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
return html`
|
|
457
|
-
<style>
|
|
458
|
-
sb-action-logger {
|
|
459
|
-
--sb-action-logger-max-height: 300px;
|
|
460
|
-
}
|
|
461
|
-
</style>
|
|
462
|
-
<button @click="${() => fetchHandler('pabu', 'GET')}">GET Pabu</button>
|
|
463
|
-
<button @click="${() => fetchHandler('pabu', 'PATCH')}">PATCH Pabu</button>
|
|
464
|
-
<button @click="${() => fetchHandler('naga', 'GET')}">GET Naga</button>
|
|
465
|
-
<button @click="${() => fetchHandler('naga', 'PATCH')}">PATCH Naga</button>
|
|
466
|
-
${actionLogger}
|
|
467
|
-
`;
|
|
468
|
-
};
|
|
469
|
-
```
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
parts:
|
|
3
|
-
- Action Logger
|
|
4
|
-
- Helpers
|
|
5
|
-
- Tools
|
|
6
|
-
title: 'Action Logger'
|
|
7
|
-
eleventyNavigation:
|
|
8
|
-
key: Tools >> Helpers >> Action Logger
|
|
9
|
-
title: Action Logger
|
|
10
|
-
order: 20
|
|
11
|
-
parent: Tools >> Helpers
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Action Logger
|
|
15
|
-
|
|
16
|
-
A visual element to show action logs in demos `sb-action-logger`
|
|
17
|
-
|
|
18
|
-
```js script
|
|
19
|
-
import { html } from '@mdjs/mdjs-preview';
|
|
20
|
-
import '@lion/ui/define-helpers/sb-action-logger.js';
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
```js preview-story
|
|
24
|
-
export const main = () => {
|
|
25
|
-
const uid = Math.random().toString(36).substr(2, 10);
|
|
26
|
-
return html`
|
|
27
|
-
<p>To log: <code>Hello, World!</code></p>
|
|
28
|
-
<button
|
|
29
|
-
@click=${e => {
|
|
30
|
-
e.target.parentElement.querySelector(`#logger-${uid}`).log('Hello, World!');
|
|
31
|
-
}}
|
|
32
|
-
>
|
|
33
|
-
Click this button
|
|
34
|
-
</button>
|
|
35
|
-
<p>Or to log: <code>What's up, Planet!</code></p>
|
|
36
|
-
<button
|
|
37
|
-
@click=${e => {
|
|
38
|
-
e.target.parentElement.querySelector(`#logger-${uid}`).log(`What's up, Planet!`);
|
|
39
|
-
}}
|
|
40
|
-
>
|
|
41
|
-
Click this button
|
|
42
|
-
</button>
|
|
43
|
-
<sb-action-logger id="logger-${uid}"></sb-action-logger>
|
|
44
|
-
`;
|
|
45
|
-
};
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
You need some reference to your logger. Above example shows this by using a unique ID.
|
|
49
|
-
|
|
50
|
-
```js
|
|
51
|
-
const uid = Math.random().toString(36).substr(2, 10);
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
This connects the logger element to the trigger.
|
|
55
|
-
|
|
56
|
-
```jsx
|
|
57
|
-
<div>To log: <code>Hello, World!</code></div>
|
|
58
|
-
<button @click="${e => { e.target.parentElement.querySelector('#logger-${uid}').log('Hello, World!') }}">Click this button
|
|
59
|
-
</button>
|
|
60
|
-
<sb-action-logger id="logger-${uid}"></sb-action-logger>
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**This is a demonstrative tool**, not a debugging tool (although it may help initially).
|
|
64
|
-
If you try logging complex values such as arrays, objects or promises,
|
|
65
|
-
you should expect to get only the string interpretation as the output in this logger.
|
|
66
|
-
|
|
67
|
-
## Features:
|
|
68
|
-
|
|
69
|
-
- A public method `log` to log things to the action logger.
|
|
70
|
-
- Overridable `title` property.
|
|
71
|
-
- Clear button to clear logs
|
|
72
|
-
- A counter to count the total amount of logs
|
|
73
|
-
- Stacks consecutive duplicate logs and shows a counter
|
|
74
|
-
- `simple` property/attribute to only show a single log
|
|
75
|
-
|
|
76
|
-
## Installation
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
npm i @lion/helpers
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Variations
|
|
84
|
-
|
|
85
|
-
### Simple mode
|
|
86
|
-
|
|
87
|
-
Simple mode essentially means there is only ever 1 log.
|
|
88
|
-
Duplicates are not counted or stacked, but you will still see the visual cue.
|
|
89
|
-
|
|
90
|
-
```js preview-story
|
|
91
|
-
export const simpleMode = () => {
|
|
92
|
-
const uid = Math.random().toString(36).substr(2, 10);
|
|
93
|
-
return html`
|
|
94
|
-
<div>To log: <code>Hello, World!</code></div>
|
|
95
|
-
<button
|
|
96
|
-
@click=${e => {
|
|
97
|
-
e.target.parentElement.querySelector(`#logger-${uid}`).log('Hello, World!');
|
|
98
|
-
}}
|
|
99
|
-
>
|
|
100
|
-
Click this button
|
|
101
|
-
</button>
|
|
102
|
-
<div>Or to log: <code>What's up, Planet!</code></div>
|
|
103
|
-
<button
|
|
104
|
-
@click=${e => {
|
|
105
|
-
e.target.parentElement.querySelector(`#logger-${uid}`).log(`What's up, Planet!`);
|
|
106
|
-
}}
|
|
107
|
-
>
|
|
108
|
-
Click this button
|
|
109
|
-
</button>
|
|
110
|
-
<sb-action-logger simple id="logger-${uid}"></sb-action-logger>
|
|
111
|
-
`;
|
|
112
|
-
};
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
```html
|
|
116
|
-
<sb-action-logger simple></sb-action-logger>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Custom Title
|
|
120
|
-
|
|
121
|
-
You can customize the action logger title with the `.title` property.
|
|
122
|
-
|
|
123
|
-
```js preview-story
|
|
124
|
-
export const customTitle = () => {
|
|
125
|
-
const uid = Math.random().toString(36).substr(2, 10);
|
|
126
|
-
return html`
|
|
127
|
-
<button
|
|
128
|
-
@click="${e => e.target.parentElement.querySelector(`#logger-${uid}`).log('Hello, World!')}"
|
|
129
|
-
>
|
|
130
|
-
Log
|
|
131
|
-
</button>
|
|
132
|
-
<sb-action-logger id="logger-${uid}" .title="${'Hello World'}"></sb-action-logger>
|
|
133
|
-
`;
|
|
134
|
-
};
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
```html
|
|
138
|
-
<sb-action-logger .title="${'Hello World'}"></sb-action-logger>
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Rationale
|
|
142
|
-
|
|
143
|
-
This component was created due to a need for a nice visual action logger in Storybook Docs mode.
|
|
144
|
-
|
|
145
|
-
In docs mode, you do not have access to the action logger addon component, and it is nice to be able to show actions inline in your demos and documentation.
|
|
146
|
-
|
|
147
|
-
### Opinionated
|
|
148
|
-
|
|
149
|
-
I added quite a bit of styling on this component to make it look decent.
|
|
150
|
-
There are a bunch of styles that you can easily override to make it fit your design system which I believe should be enough in most cases.
|
|
151
|
-
If you need more control you can always:
|
|
152
|
-
|
|
153
|
-
- Override the host styles, there's a few custom CSS props that you can override as well.
|
|
154
|
-
- Extend the component and apply your overrides
|
|
155
|
-
- Open an issue if you believe it would be good to make something more flexible / configurable
|
|
156
|
-
|
|
157
|
-
Maybe in the future I will abstract this component to a more generic (ugly) one with no styles, so it's more friendly as a shared component.
|
|
158
|
-
|
|
159
|
-
### Plugin
|
|
160
|
-
|
|
161
|
-
If you use an action logger inside your Story in Storybook, you will also see it in your canvas, and this may not be your intention.
|
|
162
|
-
|
|
163
|
-
One idea is to simplify the usage further by making this a Storybook (docs-)plugin or decorator or whatever.
|
|
164
|
-
It would be cool if someone can simply enable an action logger option on a particular Story inside their .mdx,
|
|
165
|
-
and then actions are automatically logged to the visual logger below it.
|
|
166
|
-
Would need to figure out how to catch the action and pass it to the visual logger element.
|
|
167
|
-
|
|
168
|
-
Isn't investigated yet on the how, but that is the rough idea.
|
|
169
|
-
|
|
170
|
-
## Future
|
|
171
|
-
|
|
172
|
-
New planned features can be found in the test folder where they are specified as skipped tests.
|
|
173
|
-
If the feature you'd like is not in the tests, feel free to make an issue so we can add it.
|
|
174
|
-
|
|
175
|
-
See our [CONTRIBUTING.md](https://github.com/ing-bank/lion/blob/master/CONTRIBUTING.md) for more guidelines on how to contribute.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
parts:
|
|
3
|
-
- Overview
|
|
4
|
-
- Helpers
|
|
5
|
-
- Tools
|
|
6
|
-
title: 'Overview'
|
|
7
|
-
eleventyNavigation:
|
|
8
|
-
key: Tools >> Helpers >> Overview
|
|
9
|
-
title: Overview
|
|
10
|
-
order: 10
|
|
11
|
-
parent: Tools >> Helpers
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Overview
|
|
15
|
-
|
|
16
|
-
A helpers package that contains several helpers that are used inside lion but can be used outside as well.
|
|
17
|
-
|
|
18
|
-
These helpers are considered developer tools, not actual things to use in production.
|
|
19
|
-
Therefore, they may not have the same quality standards as our other packages.
|
|
20
|
-
|
|
21
|
-
## Packages
|
|
22
|
-
|
|
23
|
-
| Package | Description |
|
|
24
|
-
| -------------------------------------- | ----------------------- |
|
|
25
|
-
| [sb-action-logger](https://github.com/ing-bank/lion/blob/9575386e5fb419f7dbd3b893be4c4ce7925bcb2e/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
|
|
26
|
-
|
|
27
|
-
## Installation
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm i @lion/helpers
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Usage
|
|
34
|
-
|
|
35
|
-
Example using the sb-action-logger helper component.
|
|
36
|
-
|
|
37
|
-
```html
|
|
38
|
-
<script type="module">
|
|
39
|
-
import '@lion/ui/define-helpers/sb-action-logger.js';
|
|
40
|
-
</script>
|
|
41
|
-
|
|
42
|
-
<sb-action-logger></sb-action-logger>
|
|
43
|
-
```
|