From 951de3e9b282ce8b8797f9aae890f125f96ee5ce Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Thu, 8 Jun 2023 10:00:01 +0200 Subject: [PATCH] Fix/docs on prepublish (#2002) * Revert "chore: revert release.yml, since it cannot run scripts atm" This reverts commit eafffc3305295f828c7fc10f5c282f02379124d6. * chore: automate prepublish docs step --- .github/workflows/release.yml | 4 +- packages/ui/.gitignore | 1 + .../ui/docs/components/accordion/index.md | 1 - .../ui/docs/components/accordion/overview.md | 1 - .../ui/docs/components/accordion/reference.md | 1 - .../ui/docs/components/accordion/use-cases.md | 1 - .../ui/docs/components/button/examples.md | 1 - packages/ui/docs/components/button/index.md | 1 - .../ui/docs/components/button/overview.md | 1 - .../ui/docs/components/button/src/icon.svg.js | 5 - .../ui/docs/components/button/use-cases.md | 1 - packages/ui/docs/components/calendar/index.md | 1 - .../ui/docs/components/calendar/overview.md | 1 - .../ui/docs/components/calendar/use-cases.md | 1 - .../docs/components/checkbox-group/index.md | 1 - .../components/checkbox-group/overview.md | 1 - .../components/checkbox-group/use-cases.md | 1 - .../collapsible/assets/CustomCollapsible.js | 113 -- .../assets/applyDemoCollapsibleStyles.js | 37 - .../docs/components/collapsible/examples.md | 1 - .../ui/docs/components/collapsible/index.md | 1 - .../docs/components/collapsible/overview.md | 1 - .../docs/components/collapsible/use-cases.md | 1 - .../ui/docs/components/combobox/examples.md | 1 - packages/ui/docs/components/combobox/index.md | 1 - .../ui/docs/components/combobox/overview.md | 1 - .../docs/components/combobox/src/LinkMixin.js | 60 - .../combobox/src/demo-selection-display.js | 191 -- .../combobox/src/gh-combobox/gh-button.js | 69 - .../combobox/src/gh-combobox/gh-combobox.js | 508 ----- .../assets/google-clear-icon.js | 9 - .../assets/google-search-icon.js | 9 - .../assets/google-voice-search-icon.js | 19 - .../assets/googlelogo_color_272x92dp.png | Bin 5969 -> 0 bytes .../src/google-combobox/google-combobox.js | 460 ----- .../components/combobox/src/lazyRender.js | 29 - .../components/combobox/src/levenshtein.js | 95 - .../combobox/src/md-combobox/MdFieldMixin.js | 341 ---- .../combobox/src/md-combobox/md-combobox.js | 89 - .../combobox/src/md-combobox/md-input.js | 5 - .../src/md-combobox/style/load-roboto.js | 6 - .../src/md-combobox/style/md-ripple.js | 81 - .../combobox/src/wa-combobox/wa-combobox.js | 368 ---- .../ui/docs/components/combobox/use-cases.md | 1 - packages/ui/docs/components/dialog/index.md | 1 - .../ui/docs/components/dialog/overview.md | 1 - .../dialog/src/demo-dialog-style.js | 3 - .../docs/components/dialog/src/demoStyle.js | 57 - .../dialog/src/slots-dialog-content.js | 32 - .../dialog/src/styled-dialog-content.js | 38 - .../ui/docs/components/dialog/use-cases.md | 1 - packages/ui/docs/components/drawer/index.md | 1 - .../ui/docs/components/drawer/overview.md | 1 - .../docs/components/drawer/src/demoStyle.js | 71 - .../ui/docs/components/drawer/use-cases.md | 1 - packages/ui/docs/components/fieldset/index.md | 1 - .../ui/docs/components/fieldset/overview.md | 1 - .../ui/docs/components/fieldset/use-cases.md | 1 - packages/ui/docs/components/form/index.md | 1 - packages/ui/docs/components/form/overview.md | 1 - packages/ui/docs/components/form/use-cases.md | 1 - .../components/icon/assets/bugs/bug01.svg.js | 2 - .../components/icon/assets/bugs/bug02.svg.js | 2 - .../components/icon/assets/bugs/bug05.svg.js | 2 - .../components/icon/assets/bugs/bug06.svg.js | 2 - .../components/icon/assets/bugs/bug08.svg.js | 2 - .../components/icon/assets/bugs/bug12.svg.js | 2 - .../components/icon/assets/bugs/bug19.svg.js | 2 - .../components/icon/assets/bugs/bug23.svg.js | 2 - .../components/icon/assets/bugs/bug24.svg.js | 2 - .../components/icon/assets/iconset-bugs.js | 11 - .../components/icon/assets/iconset-misc.js | 3 - .../components/icon/assets/iconset-space.js | 31 - .../icon/assets/misc/arrowLeft.svg.js | 6 - .../icon/assets/space/aliens-spaceship.svg.js | 2 - .../icon/assets/space/meteor.svg.js | 2 - .../icon/assets/space/moon-flag.svg.js | 2 - .../components/icon/assets/space/moon.svg.js | 2 - .../components/icon/assets/space/night.svg.js | 2 - .../components/icon/assets/space/orbit.svg.js | 2 - .../icon/assets/space/planet.svg.js | 2 - .../components/icon/assets/space/robot.svg.js | 2 - .../icon/assets/space/rocket.svg.js | 2 - .../icon/assets/space/satellite.svg.js | 2 - .../icon/assets/space/signal.svg.js | 2 - .../icon/assets/space/space-helmet.svg.js | 2 - .../components/icon/assets/space/sun.svg.js | 2 - .../icon/assets/space/telescope.svg.js | 2 - packages/ui/docs/components/icon/index.md | 1 - packages/ui/docs/components/icon/overview.md | 1 - packages/ui/docs/components/icon/use-cases.md | 1 - packages/ui/docs/components/index.md | 1 - .../ui/docs/components/input-amount/index.md | 1 - .../docs/components/input-amount/overview.md | 1 - .../docs/components/input-amount/use-cases.md | 1 - .../ui/docs/components/input-date/index.md | 1 - .../ui/docs/components/input-date/overview.md | 1 - .../docs/components/input-date/use-cases.md | 1 - .../docs/components/input-datepicker/index.md | 1 - .../components/input-datepicker/overview.md | 1 - .../components/input-datepicker/use-cases.md | 1 - .../ui/docs/components/input-email/index.md | 1 - .../docs/components/input-email/overview.md | 1 - .../docs/components/input-email/use-cases.md | 1 - .../ui/docs/components/input-iban/index.md | 1 - .../ui/docs/components/input-iban/overview.md | 1 - .../docs/components/input-iban/use-cases.md | 1 - .../ui/docs/components/input-range/index.md | 1 - .../docs/components/input-range/overview.md | 1 - .../docs/components/input-range/use-cases.md | 1 - .../ui/docs/components/input-stepper/index.md | 1 - .../docs/components/input-stepper/overview.md | 1 - .../components/input-stepper/use-cases.md | 1 - .../components/input-tel-dropdown/examples.md | 1 - .../components/input-tel-dropdown/index.md | 1 - .../components/input-tel-dropdown/overview.md | 1 - .../src/intl-input-tel-dropdown.js | 127 -- .../input-tel-dropdown/use-cases.md | 1 - .../ui/docs/components/input-tel/index.md | 1 - .../ui/docs/components/input-tel/overview.md | 1 - .../input-tel/src/h-region-code-table.js | 109 -- .../ui/docs/components/input-tel/use-cases.md | 1 - packages/ui/docs/components/input/index.md | 1 - packages/ui/docs/components/input/overview.md | 1 - .../ui/docs/components/input/use-cases.md | 1 - packages/ui/docs/components/listbox/index.md | 1 - .../ui/docs/components/listbox/overview.md | 1 - .../components/listbox/src/listboxData.js | 65 - .../ui/docs/components/listbox/use-cases.md | 1 - .../ui/docs/components/pagination/index.md | 1 - .../ui/docs/components/pagination/overview.md | 1 - .../docs/components/pagination/use-cases.md | 1 - .../assets/my-determinate-progress-bar.js | 30 - .../my-indeterminate-progress-spinner.js | 55 - .../components/progress-indicator/examples.md | 1 - .../components/progress-indicator/index.md | 1 - .../components/progress-indicator/overview.md | 1 - .../ui/docs/components/radio-group/index.md | 1 - .../docs/components/radio-group/overview.md | 1 - .../docs/components/radio-group/use-cases.md | 1 - .../docs/components/select-rich/examples.md | 1 - .../ui/docs/components/select-rich/index.md | 1 - .../docs/components/select-rich/overview.md | 1 - .../components/select-rich/src/flagStyles.js | 1250 ------------ .../docs/components/select-rich/src/flags.png | Bin 70857 -> 0 bytes .../components/select-rich/src/flags@2x.png | Bin 174369 -> 0 bytes .../select-rich/src/intl-select-rich.js | 194 -- .../select-rich/src/regionMetaList.js | 1717 ----------------- .../docs/components/select-rich/use-cases.md | 1 - packages/ui/docs/components/select/index.md | 1 - .../ui/docs/components/select/overview.md | 1 - .../ui/docs/components/select/use-cases.md | 1 - packages/ui/docs/components/steps/index.md | 1 - packages/ui/docs/components/steps/overview.md | 1 - .../ui/docs/components/steps/use-cases.md | 1 - packages/ui/docs/components/switch/index.md | 1 - .../ui/docs/components/switch/overview.md | 1 - .../ui/docs/components/switch/reference.md | 1 - .../ui/docs/components/switch/use-cases.md | 1 - packages/ui/docs/components/tabs/examples.md | 1 - packages/ui/docs/components/tabs/index.md | 1 - packages/ui/docs/components/tabs/overview.md | 1 - .../docs/components/tabs/src/lea-tab-panel.js | 24 - .../ui/docs/components/tabs/src/lea-tab.js | 45 - .../ui/docs/components/tabs/src/lea-tabs.js | 28 - packages/ui/docs/components/tabs/use-cases.md | 1 - packages/ui/docs/components/textarea/index.md | 1 - .../ui/docs/components/textarea/overview.md | 1 - .../ui/docs/components/textarea/use-cases.md | 1 - .../ui/docs/components/tooltip/examples.md | 1 - packages/ui/docs/components/tooltip/index.md | 1 - .../ui/docs/components/tooltip/overview.md | 1 - .../ui/docs/components/tooltip/use-cases.md | 1 - packages/ui/docs/fundamentals/index.md | 1 - .../babel-plugin-extend-docs/index.md | 1 - .../babel-plugin-extend-docs/overview.md | 1 - .../ui/docs/fundamentals/node-tools/index.md | 1 - .../LocalConfiguration.md | 1 - .../providence-analytics/QueryResult.md | 1 - .../providence-analytics/analyzer.md | 1 - .../assets/_mermaid.svg.js | 1202 ------------ .../providence-analytics/dashboard.md | 1 - .../node-tools/providence-analytics/index.md | 1 - .../providence-analytics/overview.md | 1 - .../node-tools/publish-docs/index.md | 1 - .../node-tools/publish-docs/overview.md | 1 - .../node-tools/remark-extend/index.md | 1 - .../node-tools/remark-extend/overview.md | 1 - .../rocket-preset-extend-lion-docs/index.md | 1 - .../overview.md | 1 - .../fundamentals/rationales/TypeScript.md | 1 - .../ui/docs/fundamentals/rationales/index.md | 1 - .../fundamentals/rationales/side-effects.md | 1 - .../fundamentals/rationales/versioning.md | 1 - .../docs/fundamentals/systems/core/index.md | 1 - .../fundamentals/systems/core/overview.md | 1 - .../form/assets/FormatMixinDiagram-1.svg | 1 - .../form/assets/FormatMixinDiagram-2.svg | 1 - .../form/assets/FormatMixinDiagram-3.svg | 84 - .../systems/form/assets/h-output.js | 155 -- .../systems/form/formatting-and-parsing.md | 1 - .../docs/fundamentals/systems/form/index.md | 1 - .../systems/form/interaction-states.md | 1 - .../fundamentals/systems/form/model-value.md | 1 - .../fundamentals/systems/form/overview.md | 1 - .../docs/fundamentals/systems/form/styling.md | 1 - .../fundamentals/systems/form/use-cases.md | 1 - .../fundamentals/systems/form/validate.md | 1 - .../docs/fundamentals/systems/icon/index.md | 1 - .../fundamentals/systems/icon/overview.md | 1 - .../ui/docs/fundamentals/systems/index.md | 1 - .../systems/localize/assets/all-locales.js | 437 ----- .../systems/localize/assets/en-AU.js | 6 - .../systems/localize/assets/en-GB.js | 6 - .../systems/localize/assets/en-US.js | 6 - .../systems/localize/assets/en.js | 4 - .../systems/localize/assets/nl-BE.js | 6 - .../systems/localize/assets/nl-NL.js | 6 - .../systems/localize/assets/nl.js | 4 - .../fundamentals/systems/localize/dates.md | 1 - .../fundamentals/systems/localize/index.md | 1 - .../fundamentals/systems/localize/numbers.md | 1 - .../fundamentals/systems/localize/overview.md | 1 - .../systems/localize/rationale.md | 1 - .../fundamentals/systems/localize/text.md | 1 - .../systems/localize/use-cases.md | 1 - .../assets/applyDemoOverlayStyles.mjs | 23 - .../assets/demo-el-using-overlaymixin.mjs | 103 - .../overlays/assets/demo-overlay-backdrop.mjs | 47 - .../assets/demo-overlay-positioning.mjs | 537 ------ .../systems/overlays/assets/umbrella-form.js | 140 -- .../systems/overlays/configuration.md | 1 - .../fundamentals/systems/overlays/index.md | 1 - .../fundamentals/systems/overlays/overview.md | 1 - .../systems/overlays/rationale.md | 1 - .../systems/overlays/use-cases.md | 1 - .../fundamentals/tools/ajax/assets/naga.json | 9 - .../fundamentals/tools/ajax/assets/pabu.json | 9 - .../ui/docs/fundamentals/tools/ajax/index.md | 1 - .../docs/fundamentals/tools/ajax/overview.md | 1 - .../docs/fundamentals/tools/ajax/use-cases.md | 1 - .../tools/helpers/action-logger.md | 1 - .../docs/fundamentals/tools/helpers/index.md | 1 - .../fundamentals/tools/helpers/overview.md | 1 - packages/ui/docs/fundamentals/tools/index.md | 1 - .../tools/singleton-manager/.gitignore | 1 - .../example-complex/demo-app.js | 93 - .../node_modules/overlays/index.js | 30 - .../node_modules/overlays/instance.js | 4 - .../node_modules/page-a/page-a.js | 35 - .../page-b/node_modules/overlays/index.js | 30 - .../page-b/node_modules/overlays/instance.js | 4 - .../node_modules/page-b/page-b.js | 49 - .../example-complex/overlayCompatibility.js | 70 - .../example-fail/demo-app.js | 91 - .../node_modules/overlays/index.js | 30 - .../node_modules/overlays/instance.js | 3 - .../node_modules/page-a/page-a.js | 34 - .../page-b/node_modules/overlays/index.js | 30 - .../page-b/node_modules/overlays/instance.js | 3 - .../node_modules/page-b/page-b.js | 34 - .../example-success/demo-app.js | 93 - .../node_modules/overlays/index.js | 30 - .../node_modules/overlays/instance.js | 4 - .../node_modules/page-a/page-a.js | 34 - .../page-b/node_modules/overlays/index.js | 30 - .../page-b/node_modules/overlays/instance.js | 4 - .../node_modules/page-b/page-b.js | 34 - .../example-success/overlayCompatibility.js | 23 - .../tools/singleton-manager/index.md | 1 - .../tools/singleton-manager/overview.md | 1 - .../guides/how-to/create-a-custom-field.md | 1 - .../guides/how-to/extend-a-native-input.md | 1 - packages/ui/docs/guides/how-to/get-started.md | 1 - packages/ui/docs/guides/how-to/index.md | 1 - packages/ui/docs/guides/index.md | 1 - .../principles/definitions-and-terms.md | 1 - packages/ui/docs/guides/principles/index.md | 1 - .../docs/guides/principles/scoped-elements.md | 1 - packages/ui/docs/guides/principles/styling.md | 1 - .../docs/guides/principles/subclasser-apis.md | 1 - packages/ui/docs/override.js | 15 - packages/ui/package.json | 2 +- packages/ui/scripts/copy-doc-assets.js | 29 - .../ui/scripts/create-docs-for-npm-publish.js | 76 + 285 files changed, 80 insertions(+), 10232 deletions(-) create mode 100644 packages/ui/.gitignore delete mode 100644 packages/ui/docs/components/accordion/index.md delete mode 100644 packages/ui/docs/components/accordion/overview.md delete mode 100644 packages/ui/docs/components/accordion/reference.md delete mode 100644 packages/ui/docs/components/accordion/use-cases.md delete mode 100644 packages/ui/docs/components/button/examples.md delete mode 100644 packages/ui/docs/components/button/index.md delete mode 100644 packages/ui/docs/components/button/overview.md delete mode 100644 packages/ui/docs/components/button/src/icon.svg.js delete mode 100644 packages/ui/docs/components/button/use-cases.md delete mode 100644 packages/ui/docs/components/calendar/index.md delete mode 100644 packages/ui/docs/components/calendar/overview.md delete mode 100644 packages/ui/docs/components/calendar/use-cases.md delete mode 100644 packages/ui/docs/components/checkbox-group/index.md delete mode 100644 packages/ui/docs/components/checkbox-group/overview.md delete mode 100644 packages/ui/docs/components/checkbox-group/use-cases.md delete mode 100644 packages/ui/docs/components/collapsible/assets/CustomCollapsible.js delete mode 100644 packages/ui/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js delete mode 100644 packages/ui/docs/components/collapsible/examples.md delete mode 100644 packages/ui/docs/components/collapsible/index.md delete mode 100644 packages/ui/docs/components/collapsible/overview.md delete mode 100644 packages/ui/docs/components/collapsible/use-cases.md delete mode 100644 packages/ui/docs/components/combobox/examples.md delete mode 100644 packages/ui/docs/components/combobox/index.md delete mode 100644 packages/ui/docs/components/combobox/overview.md delete mode 100644 packages/ui/docs/components/combobox/src/LinkMixin.js delete mode 100644 packages/ui/docs/components/combobox/src/demo-selection-display.js delete mode 100644 packages/ui/docs/components/combobox/src/gh-combobox/gh-button.js delete mode 100644 packages/ui/docs/components/combobox/src/gh-combobox/gh-combobox.js delete mode 100644 packages/ui/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js delete mode 100644 packages/ui/docs/components/combobox/src/google-combobox/assets/google-search-icon.js delete mode 100644 packages/ui/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js delete mode 100644 packages/ui/docs/components/combobox/src/google-combobox/assets/googlelogo_color_272x92dp.png delete mode 100644 packages/ui/docs/components/combobox/src/google-combobox/google-combobox.js delete mode 100644 packages/ui/docs/components/combobox/src/lazyRender.js delete mode 100644 packages/ui/docs/components/combobox/src/levenshtein.js delete mode 100644 packages/ui/docs/components/combobox/src/md-combobox/MdFieldMixin.js delete mode 100644 packages/ui/docs/components/combobox/src/md-combobox/md-combobox.js delete mode 100644 packages/ui/docs/components/combobox/src/md-combobox/md-input.js delete mode 100644 packages/ui/docs/components/combobox/src/md-combobox/style/load-roboto.js delete mode 100644 packages/ui/docs/components/combobox/src/md-combobox/style/md-ripple.js delete mode 100644 packages/ui/docs/components/combobox/src/wa-combobox/wa-combobox.js delete mode 100644 packages/ui/docs/components/combobox/use-cases.md delete mode 100644 packages/ui/docs/components/dialog/index.md delete mode 100644 packages/ui/docs/components/dialog/overview.md delete mode 100644 packages/ui/docs/components/dialog/src/demo-dialog-style.js delete mode 100644 packages/ui/docs/components/dialog/src/demoStyle.js delete mode 100644 packages/ui/docs/components/dialog/src/slots-dialog-content.js delete mode 100644 packages/ui/docs/components/dialog/src/styled-dialog-content.js delete mode 100644 packages/ui/docs/components/dialog/use-cases.md delete mode 100644 packages/ui/docs/components/drawer/index.md delete mode 100644 packages/ui/docs/components/drawer/overview.md delete mode 100644 packages/ui/docs/components/drawer/src/demoStyle.js delete mode 100644 packages/ui/docs/components/drawer/use-cases.md delete mode 100644 packages/ui/docs/components/fieldset/index.md delete mode 100644 packages/ui/docs/components/fieldset/overview.md delete mode 100644 packages/ui/docs/components/fieldset/use-cases.md delete mode 100644 packages/ui/docs/components/form/index.md delete mode 100644 packages/ui/docs/components/form/overview.md delete mode 100644 packages/ui/docs/components/form/use-cases.md delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug01.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug02.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug05.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug06.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug08.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug12.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug19.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug23.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/bugs/bug24.svg.js delete mode 100755 packages/ui/docs/components/icon/assets/iconset-bugs.js delete mode 100644 packages/ui/docs/components/icon/assets/iconset-misc.js delete mode 100755 packages/ui/docs/components/icon/assets/iconset-space.js delete mode 100644 packages/ui/docs/components/icon/assets/misc/arrowLeft.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/aliens-spaceship.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/meteor.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/moon-flag.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/moon.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/night.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/orbit.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/planet.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/robot.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/rocket.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/satellite.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/signal.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/space-helmet.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/sun.svg.js delete mode 100644 packages/ui/docs/components/icon/assets/space/telescope.svg.js delete mode 100644 packages/ui/docs/components/icon/index.md delete mode 100644 packages/ui/docs/components/icon/overview.md delete mode 100644 packages/ui/docs/components/icon/use-cases.md delete mode 100644 packages/ui/docs/components/index.md delete mode 100644 packages/ui/docs/components/input-amount/index.md delete mode 100644 packages/ui/docs/components/input-amount/overview.md delete mode 100644 packages/ui/docs/components/input-amount/use-cases.md delete mode 100644 packages/ui/docs/components/input-date/index.md delete mode 100644 packages/ui/docs/components/input-date/overview.md delete mode 100644 packages/ui/docs/components/input-date/use-cases.md delete mode 100644 packages/ui/docs/components/input-datepicker/index.md delete mode 100644 packages/ui/docs/components/input-datepicker/overview.md delete mode 100644 packages/ui/docs/components/input-datepicker/use-cases.md delete mode 100644 packages/ui/docs/components/input-email/index.md delete mode 100644 packages/ui/docs/components/input-email/overview.md delete mode 100644 packages/ui/docs/components/input-email/use-cases.md delete mode 100644 packages/ui/docs/components/input-iban/index.md delete mode 100644 packages/ui/docs/components/input-iban/overview.md delete mode 100644 packages/ui/docs/components/input-iban/use-cases.md delete mode 100644 packages/ui/docs/components/input-range/index.md delete mode 100644 packages/ui/docs/components/input-range/overview.md delete mode 100644 packages/ui/docs/components/input-range/use-cases.md delete mode 100644 packages/ui/docs/components/input-stepper/index.md delete mode 100644 packages/ui/docs/components/input-stepper/overview.md delete mode 100644 packages/ui/docs/components/input-stepper/use-cases.md delete mode 100644 packages/ui/docs/components/input-tel-dropdown/examples.md delete mode 100644 packages/ui/docs/components/input-tel-dropdown/index.md delete mode 100644 packages/ui/docs/components/input-tel-dropdown/overview.md delete mode 100644 packages/ui/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js delete mode 100644 packages/ui/docs/components/input-tel-dropdown/use-cases.md delete mode 100644 packages/ui/docs/components/input-tel/index.md delete mode 100644 packages/ui/docs/components/input-tel/overview.md delete mode 100644 packages/ui/docs/components/input-tel/src/h-region-code-table.js delete mode 100644 packages/ui/docs/components/input-tel/use-cases.md delete mode 100644 packages/ui/docs/components/input/index.md delete mode 100644 packages/ui/docs/components/input/overview.md delete mode 100644 packages/ui/docs/components/input/use-cases.md delete mode 100644 packages/ui/docs/components/listbox/index.md delete mode 100644 packages/ui/docs/components/listbox/overview.md delete mode 100644 packages/ui/docs/components/listbox/src/listboxData.js delete mode 100644 packages/ui/docs/components/listbox/use-cases.md delete mode 100644 packages/ui/docs/components/pagination/index.md delete mode 100644 packages/ui/docs/components/pagination/overview.md delete mode 100644 packages/ui/docs/components/pagination/use-cases.md delete mode 100644 packages/ui/docs/components/progress-indicator/assets/my-determinate-progress-bar.js delete mode 100644 packages/ui/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js delete mode 100644 packages/ui/docs/components/progress-indicator/examples.md delete mode 100644 packages/ui/docs/components/progress-indicator/index.md delete mode 100644 packages/ui/docs/components/progress-indicator/overview.md delete mode 100644 packages/ui/docs/components/radio-group/index.md delete mode 100644 packages/ui/docs/components/radio-group/overview.md delete mode 100644 packages/ui/docs/components/radio-group/use-cases.md delete mode 100644 packages/ui/docs/components/select-rich/examples.md delete mode 100644 packages/ui/docs/components/select-rich/index.md delete mode 100644 packages/ui/docs/components/select-rich/overview.md delete mode 100644 packages/ui/docs/components/select-rich/src/flagStyles.js delete mode 100644 packages/ui/docs/components/select-rich/src/flags.png delete mode 100644 packages/ui/docs/components/select-rich/src/flags@2x.png delete mode 100644 packages/ui/docs/components/select-rich/src/intl-select-rich.js delete mode 100644 packages/ui/docs/components/select-rich/src/regionMetaList.js delete mode 100644 packages/ui/docs/components/select-rich/use-cases.md delete mode 100644 packages/ui/docs/components/select/index.md delete mode 100644 packages/ui/docs/components/select/overview.md delete mode 100644 packages/ui/docs/components/select/use-cases.md delete mode 100644 packages/ui/docs/components/steps/index.md delete mode 100644 packages/ui/docs/components/steps/overview.md delete mode 100644 packages/ui/docs/components/steps/use-cases.md delete mode 100644 packages/ui/docs/components/switch/index.md delete mode 100644 packages/ui/docs/components/switch/overview.md delete mode 100644 packages/ui/docs/components/switch/reference.md delete mode 100644 packages/ui/docs/components/switch/use-cases.md delete mode 100644 packages/ui/docs/components/tabs/examples.md delete mode 100644 packages/ui/docs/components/tabs/index.md delete mode 100644 packages/ui/docs/components/tabs/overview.md delete mode 100644 packages/ui/docs/components/tabs/src/lea-tab-panel.js delete mode 100644 packages/ui/docs/components/tabs/src/lea-tab.js delete mode 100644 packages/ui/docs/components/tabs/src/lea-tabs.js delete mode 100644 packages/ui/docs/components/tabs/use-cases.md delete mode 100644 packages/ui/docs/components/textarea/index.md delete mode 100644 packages/ui/docs/components/textarea/overview.md delete mode 100644 packages/ui/docs/components/textarea/use-cases.md delete mode 100644 packages/ui/docs/components/tooltip/examples.md delete mode 100644 packages/ui/docs/components/tooltip/index.md delete mode 100644 packages/ui/docs/components/tooltip/overview.md delete mode 100644 packages/ui/docs/components/tooltip/use-cases.md delete mode 100644 packages/ui/docs/fundamentals/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/QueryResult.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/analyzer.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/assets/_mermaid.svg.js delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/dashboard.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/providence-analytics/overview.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/publish-docs/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/publish-docs/overview.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/remark-extend/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/remark-extend/overview.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md delete mode 100644 packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md delete mode 100644 packages/ui/docs/fundamentals/rationales/TypeScript.md delete mode 100644 packages/ui/docs/fundamentals/rationales/index.md delete mode 100644 packages/ui/docs/fundamentals/rationales/side-effects.md delete mode 100644 packages/ui/docs/fundamentals/rationales/versioning.md delete mode 100644 packages/ui/docs/fundamentals/systems/core/index.md delete mode 100644 packages/ui/docs/fundamentals/systems/core/overview.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg delete mode 100644 packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg delete mode 100644 packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg delete mode 100644 packages/ui/docs/fundamentals/systems/form/assets/h-output.js delete mode 100644 packages/ui/docs/fundamentals/systems/form/formatting-and-parsing.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/index.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/interaction-states.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/model-value.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/overview.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/styling.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/use-cases.md delete mode 100644 packages/ui/docs/fundamentals/systems/form/validate.md delete mode 100644 packages/ui/docs/fundamentals/systems/icon/index.md delete mode 100644 packages/ui/docs/fundamentals/systems/icon/overview.md delete mode 100644 packages/ui/docs/fundamentals/systems/index.md delete mode 100755 packages/ui/docs/fundamentals/systems/localize/assets/all-locales.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/en-AU.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/en-GB.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/en-US.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/en.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/nl-BE.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/nl-NL.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/assets/nl.js delete mode 100644 packages/ui/docs/fundamentals/systems/localize/dates.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/index.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/numbers.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/overview.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/rationale.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/text.md delete mode 100644 packages/ui/docs/fundamentals/systems/localize/use-cases.md delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.mjs delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.mjs delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/assets/umbrella-form.js delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/configuration.md delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/index.md delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/overview.md delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/rationale.md delete mode 100644 packages/ui/docs/fundamentals/systems/overlays/use-cases.md delete mode 100644 packages/ui/docs/fundamentals/tools/ajax/assets/naga.json delete mode 100644 packages/ui/docs/fundamentals/tools/ajax/assets/pabu.json delete mode 100644 packages/ui/docs/fundamentals/tools/ajax/index.md delete mode 100644 packages/ui/docs/fundamentals/tools/ajax/overview.md delete mode 100644 packages/ui/docs/fundamentals/tools/ajax/use-cases.md delete mode 100644 packages/ui/docs/fundamentals/tools/helpers/action-logger.md delete mode 100644 packages/ui/docs/fundamentals/tools/helpers/index.md delete mode 100644 packages/ui/docs/fundamentals/tools/helpers/overview.md delete mode 100644 packages/ui/docs/fundamentals/tools/index.md delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/.gitignore delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-a/page-a.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-a/page-a.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/index.md delete mode 100644 packages/ui/docs/fundamentals/tools/singleton-manager/overview.md delete mode 100644 packages/ui/docs/guides/how-to/create-a-custom-field.md delete mode 100644 packages/ui/docs/guides/how-to/extend-a-native-input.md delete mode 100644 packages/ui/docs/guides/how-to/get-started.md delete mode 100644 packages/ui/docs/guides/how-to/index.md delete mode 100644 packages/ui/docs/guides/index.md delete mode 100644 packages/ui/docs/guides/principles/definitions-and-terms.md delete mode 100644 packages/ui/docs/guides/principles/index.md delete mode 100644 packages/ui/docs/guides/principles/scoped-elements.md delete mode 100644 packages/ui/docs/guides/principles/styling.md delete mode 100644 packages/ui/docs/guides/principles/subclasser-apis.md delete mode 100644 packages/ui/docs/override.js delete mode 100644 packages/ui/scripts/copy-doc-assets.js create mode 100644 packages/ui/scripts/create-docs-for-npm-publish.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index daea6351c..7280e152f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,13 +14,13 @@ jobs: steps: - uses: google/wireit@setup-github-actions-caching/v1 - name: Checkout Repo - uses: actions/checkout@master + uses: actions/checkout@v3 with: # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits fetch-depth: 0 - name: Setup Node.js 16.x - uses: actions/setup-node@master + uses: actions/setup-node@v3 with: node-version: 16.x registry-url: 'https://registry.npmjs.org' diff --git a/packages/ui/.gitignore b/packages/ui/.gitignore new file mode 100644 index 000000000..ffcee8577 --- /dev/null +++ b/packages/ui/.gitignore @@ -0,0 +1 @@ +./docs \ No newline at end of file diff --git a/packages/ui/docs/components/accordion/index.md b/packages/ui/docs/components/accordion/index.md deleted file mode 100644 index e9080bd18..000000000 --- a/packages/ui/docs/components/accordion/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/accordion/index.md) diff --git a/packages/ui/docs/components/accordion/overview.md b/packages/ui/docs/components/accordion/overview.md deleted file mode 100644 index ff8809ec9..000000000 --- a/packages/ui/docs/components/accordion/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/accordion/overview.md) diff --git a/packages/ui/docs/components/accordion/reference.md b/packages/ui/docs/components/accordion/reference.md deleted file mode 100644 index fa366e73d..000000000 --- a/packages/ui/docs/components/accordion/reference.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/accordion/reference.md) diff --git a/packages/ui/docs/components/accordion/use-cases.md b/packages/ui/docs/components/accordion/use-cases.md deleted file mode 100644 index ab0a033cf..000000000 --- a/packages/ui/docs/components/accordion/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/accordion/use-cases.md) diff --git a/packages/ui/docs/components/button/examples.md b/packages/ui/docs/components/button/examples.md deleted file mode 100644 index 4eec31317..000000000 --- a/packages/ui/docs/components/button/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/button/examples.md) diff --git a/packages/ui/docs/components/button/index.md b/packages/ui/docs/components/button/index.md deleted file mode 100644 index 2f8c7aeba..000000000 --- a/packages/ui/docs/components/button/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/button/index.md) diff --git a/packages/ui/docs/components/button/overview.md b/packages/ui/docs/components/button/overview.md deleted file mode 100644 index c71a6311b..000000000 --- a/packages/ui/docs/components/button/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/button/overview.md) diff --git a/packages/ui/docs/components/button/src/icon.svg.js b/packages/ui/docs/components/button/src/icon.svg.js deleted file mode 100644 index fa20ca7d3..000000000 --- a/packages/ui/docs/components/button/src/icon.svg.js +++ /dev/null @@ -1,5 +0,0 @@ -/** - * @param {Function} tag - */ -export default tag => - tag``; diff --git a/packages/ui/docs/components/button/use-cases.md b/packages/ui/docs/components/button/use-cases.md deleted file mode 100644 index 77afee3ee..000000000 --- a/packages/ui/docs/components/button/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/button/use-cases.md) diff --git a/packages/ui/docs/components/calendar/index.md b/packages/ui/docs/components/calendar/index.md deleted file mode 100644 index 5bcfe6303..000000000 --- a/packages/ui/docs/components/calendar/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/calendar/index.md) diff --git a/packages/ui/docs/components/calendar/overview.md b/packages/ui/docs/components/calendar/overview.md deleted file mode 100644 index 251d49395..000000000 --- a/packages/ui/docs/components/calendar/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/calendar/overview.md) diff --git a/packages/ui/docs/components/calendar/use-cases.md b/packages/ui/docs/components/calendar/use-cases.md deleted file mode 100644 index 4cb05f9e1..000000000 --- a/packages/ui/docs/components/calendar/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/calendar/use-cases.md) diff --git a/packages/ui/docs/components/checkbox-group/index.md b/packages/ui/docs/components/checkbox-group/index.md deleted file mode 100644 index 8b51abd31..000000000 --- a/packages/ui/docs/components/checkbox-group/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/checkbox-group/index.md) diff --git a/packages/ui/docs/components/checkbox-group/overview.md b/packages/ui/docs/components/checkbox-group/overview.md deleted file mode 100644 index f40efd625..000000000 --- a/packages/ui/docs/components/checkbox-group/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/checkbox-group/overview.md) diff --git a/packages/ui/docs/components/checkbox-group/use-cases.md b/packages/ui/docs/components/checkbox-group/use-cases.md deleted file mode 100644 index a655a2e51..000000000 --- a/packages/ui/docs/components/checkbox-group/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/checkbox-group/use-cases.md) diff --git a/packages/ui/docs/components/collapsible/assets/CustomCollapsible.js b/packages/ui/docs/components/collapsible/assets/CustomCollapsible.js deleted file mode 100644 index 1bed17454..000000000 --- a/packages/ui/docs/components/collapsible/assets/CustomCollapsible.js +++ /dev/null @@ -1,113 +0,0 @@ -import { LionCollapsible } from '@lion/ui/collapsible.js'; - -const EVENT = { - TRANSITION_END: 'transitionend', - TRANSITION_START: 'transitionstart', -}; -/** - * `CustomCollapsible` is a class for custom collapsible element (`` web component). - * @customElement custom-collapsible - */ -// @ts-expect-error false positive for incompatible static get properties. Lit-element merges super properties already for you. -export class CustomCollapsible extends LionCollapsible { - static get properties() { - return { - transitioning: { - type: Boolean, - reflect: true, - }, - }; - } - - constructor() { - super(); - this.transitioning = false; - } - - connectedCallback() { - super.connectedCallback(); - this._contentNode?.style.setProperty( - 'transition', - 'max-height 0.35s, padding 0.35s, opacity 0.35s', - ); - if (this.opened) { - this._contentNode?.style.setProperty('padding', '12px 0'); - } - } - - /** - * Wait until transition is finished. - * @override - */ - toggle() { - if (!this.transitioning) { - super.toggle(); - } - } - - /** - * Trigger show animation and wait for transition to be finished. - * @param {Object} options - element node and its options - * @param {HTMLElement} options.contentNode - * @override - */ - async _showAnimation({ contentNode }) { - const expectedHeight = await this.__calculateHeight(contentNode); - contentNode.style.setProperty('opacity', '1'); - contentNode.style.setProperty('padding', '12px 0'); - contentNode.style.setProperty('max-height', '0px'); - await new Promise(resolve => requestAnimationFrame(() => resolve())); - contentNode.style.setProperty('max-height', expectedHeight); - await this._waitForTransition({ contentNode }); - } - - /** - * Trigger hide animation and wait for transition to be finished. - * @param {Object} options - element node and its options - * @param {HTMLElement} options.contentNode - * @override - */ - async _hideAnimation({ contentNode }) { - if (this._contentHeight === '0px') { - return; - } - ['opacity', 'padding', 'max-height'].map(prop => contentNode.style.setProperty(prop, '0')); - await this._waitForTransition({ contentNode }); - } - - /** - * Wait until the transition event is finished. - * @param {Object} options - element node and its options - * @param {HTMLElement} options.contentNode - * @returns {Promise} transition event - */ - _waitForTransition({ contentNode }) { - return new Promise(resolve => { - const transitionStarted = () => { - contentNode.removeEventListener(EVENT.TRANSITION_START, transitionStarted); - this.transitioning = true; - }; - contentNode.addEventListener(EVENT.TRANSITION_START, transitionStarted); - - const transitionEnded = () => { - contentNode.removeEventListener(EVENT.TRANSITION_END, transitionEnded); - this.transitioning = false; - resolve(); - }; - contentNode.addEventListener(EVENT.TRANSITION_END, transitionEnded); - }); - } - - /** - * Calculate total content height after collapsible opens - * @param {HTMLElement} contentNode content node - * @private - */ - async __calculateHeight(contentNode) { - contentNode.style.setProperty('max-height', ''); - await new Promise(resolve => requestAnimationFrame(() => resolve())); - return this._contentHeight; // Expected height i.e. actual size once collapsed after animation - } -} - -customElements.define('custom-collapsible', CustomCollapsible); diff --git a/packages/ui/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js b/packages/ui/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js deleted file mode 100644 index caba2de06..000000000 --- a/packages/ui/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js +++ /dev/null @@ -1,37 +0,0 @@ -import { css } from 'lit'; - -const applyDemoCollapsibleStyles = () => { - const demoCollapsibleStyles = css` - .demo-custom-collapsible-container { - padding: 16px; - margin: 16px; - border-radius: 4px; - width: 400px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); - } - - .demo-custom-collapsible-body { - padding: 12px 0px; - } - - .demo-custom-collapsible-invoker { - border-width: 0; - border-radius: 2px; - padding: 12px 24px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); - font-weight: bold; - color: #3f51b5; - } - - .demo-custom-collapsible-state-container { - padding: 12px 0; - } - `; - - const styleTag = document.createElement('style'); - styleTag.setAttribute('data-demo-collapsible', ''); - styleTag.textContent = demoCollapsibleStyles.cssText; - document.head.appendChild(styleTag); -}; - -applyDemoCollapsibleStyles(); diff --git a/packages/ui/docs/components/collapsible/examples.md b/packages/ui/docs/components/collapsible/examples.md deleted file mode 100644 index 60d162d8a..000000000 --- a/packages/ui/docs/components/collapsible/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/collapsible/examples.md) diff --git a/packages/ui/docs/components/collapsible/index.md b/packages/ui/docs/components/collapsible/index.md deleted file mode 100644 index b5823a2a7..000000000 --- a/packages/ui/docs/components/collapsible/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/collapsible/index.md) diff --git a/packages/ui/docs/components/collapsible/overview.md b/packages/ui/docs/components/collapsible/overview.md deleted file mode 100644 index dd52cc5a1..000000000 --- a/packages/ui/docs/components/collapsible/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/collapsible/overview.md) diff --git a/packages/ui/docs/components/collapsible/use-cases.md b/packages/ui/docs/components/collapsible/use-cases.md deleted file mode 100644 index 73267fc0e..000000000 --- a/packages/ui/docs/components/collapsible/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/collapsible/use-cases.md) diff --git a/packages/ui/docs/components/combobox/examples.md b/packages/ui/docs/components/combobox/examples.md deleted file mode 100644 index 32ba321a6..000000000 --- a/packages/ui/docs/components/combobox/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/combobox/examples.md) diff --git a/packages/ui/docs/components/combobox/index.md b/packages/ui/docs/components/combobox/index.md deleted file mode 100644 index af16f348b..000000000 --- a/packages/ui/docs/components/combobox/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/combobox/index.md) diff --git a/packages/ui/docs/components/combobox/overview.md b/packages/ui/docs/components/combobox/overview.md deleted file mode 100644 index 583489872..000000000 --- a/packages/ui/docs/components/combobox/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/combobox/overview.md) diff --git a/packages/ui/docs/components/combobox/src/LinkMixin.js b/packages/ui/docs/components/combobox/src/LinkMixin.js deleted file mode 100644 index 99378104d..000000000 --- a/packages/ui/docs/components/combobox/src/LinkMixin.js +++ /dev/null @@ -1,60 +0,0 @@ -import { dedupeMixin } from '@open-wc/dedupe-mixin'; - -/** - * @typedef {import('lit-element').PropertyValues } changedProperties - */ - -/** - * Designed for webcomponents that need to behave like a link. - * For instance, comboboxes that have search result options opening a webpage on click. - * Using an is not a viable alternative, because: - * - no shadow dom (and thus no style encapsulation possibilities) - * - we need to extend from LionOption (and we cannot put the anchor inside - * the focusable element (LionOption which has [role=option])) - */ -const LinkMixinImplementation = superclass => - class extends superclass { - static get properties() { - return { - href: String, - target: String, - }; - } - - constructor() { - super(); - this._nativeAnchor = document.createElement('a'); - } - - connectedCallback() { - super.connectedCallback(); - if (!this.hasAttribute('role')) { - this.setAttribute('role', 'link'); - } - } - - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - this.addEventListener('click', this.__navigate); - this.addEventListener('keydown', ({ key }) => { - if (key === ' ' || key === 'Enter') { - this.__navigate(); - } - }); - } - - updated(changedProperties) { - super.updated(changedProperties); - if (changedProperties.has('href')) { - this._nativeAnchor.href = this.href; - } - if (changedProperties.has('target')) { - this._nativeAnchor.target = this.target; - } - } - - __navigate() { - this._nativeAnchor.click(); - } - }; -export const LinkMixin = dedupeMixin(LinkMixinImplementation); diff --git a/packages/ui/docs/components/combobox/src/demo-selection-display.js b/packages/ui/docs/components/combobox/src/demo-selection-display.js deleted file mode 100644 index 0b16a9fed..000000000 --- a/packages/ui/docs/components/combobox/src/demo-selection-display.js +++ /dev/null @@ -1,191 +0,0 @@ -// eslint-disable-next-line max-classes-per-file -import { LitElement, html, css, nothing } from 'lit'; - -/** - * Disclaimer: this is just an example component demoing the selection display of LionCombobox - * It needs an 'a11y plan' and tests before it could be released - */ - -/** - * @typedef {import('../src/LionCombobox.js').LionCombobox} LionCombobox - */ - -/** - * Renders the wrapper containing the textbox that triggers the listbox with filtered options. - * Optionally, shows 'chips' that indicate the selection. - * Should be considered an internal/protected web component to be used in conjunction with - * LionCombobox - * - */ -export class DemoSelectionDisplay extends LitElement { - static get properties() { - return { - comboboxElement: Object, - /** - * Can be used to visually indicate the next - */ - removeChipOnNextBackspace: Boolean, - selectedElements: Array, - }; - } - - static get styles() { - return css` - :host { - display: flex; - } - - .combobox__selection { - flex: none; - } - - .combobox__input { - display: block; - } - - .selection-chip { - border-radius: 4px; - background-color: #eee; - padding: 4px; - font-size: 10px; - } - - .selection-chip--highlighted { - background-color: #ccc; - } - - * > ::slotted([slot='_textbox']) { - outline: none; - width: 100%; - height: 100%; - box-sizing: border-box; - border: none; - border-bottom: 1px solid; - } - `; - } - - /** - * @configure FocusMixin - */ - get _inputNode() { - return this.comboboxElement._inputNode; - } - - _computeSelectedElements() { - const { formElements, checkedIndex } = /** @type {LionCombobox} */ (this.comboboxElement); - const checkedIndexes = Array.isArray(checkedIndex) ? checkedIndex : [checkedIndex]; - return formElements.filter((_, i) => checkedIndexes.includes(i)); - } - - get multipleChoice() { - return this.comboboxElement?.multipleChoice; - } - - constructor() { - super(); - - this.selectedElements = []; - - /** @type {EventListener} */ - this.__textboxOnKeyup = this.__textboxOnKeyup.bind(this); - /** @type {EventListener} */ - this.__restoreBackspace = this.__restoreBackspace.bind(this); - } - - /** - * @param {import('lit-element').PropertyValues } changedProperties - */ - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - - if (this.multipleChoice) { - this._inputNode.addEventListener('keyup', this.__textboxOnKeyup); - this._inputNode.addEventListener('focusout', this.__restoreBackspace); - } - } - - /** - * @param {import('lit-element').PropertyValues } changedProperties - */ - onComboboxElementUpdated(changedProperties) { - if (changedProperties.has('modelValue')) { - this.selectedElements = this._computeSelectedElements(); - } - } - - /** - * Whenever selectedElements are updated, makes sure that latest added elements - * are shown latest, and deleted elements respect existing order of chips. - */ - __reorderChips() { - const { selectedElements } = this; - if (this.__prevSelectedEls) { - const addedEls = selectedElements.filter(e => !this.__prevSelectedEls.includes(e)); - const deletedEls = this.__prevSelectedEls.filter(e => !selectedElements.includes(e)); - if (addedEls.length) { - this.selectedElements = [...this.__prevSelectedEls, ...addedEls]; - } else if (deletedEls.length) { - deletedEls.forEach(delEl => { - this.__prevSelectedEls.splice(this.__prevSelectedEls.indexOf(delEl), 1); - }); - this.selectedElements = this.__prevSelectedEls; - } - } - this.__prevSelectedEls = this.selectedElements; - } - - /** - * @param {import("@lion/listbox").LionOption} option - * @param {boolean} highlight - */ - // eslint-disable-next-line class-methods-use-this - _selectedElementTemplate(option, highlight) { - return html` - - ${option.value} - - `; - } - - _selectedElementsTemplate() { - if (!this.multipleChoice) { - return nothing; - } - return html` -
- ${this.selectedElements.map((option, i) => { - const highlight = Boolean( - this.removeChipOnNextBackspace && i === this.selectedElements.length - 1, - ); - return this._selectedElementTemplate(option, highlight); - })} -
- `; - } - - render() { - return html` ${this._selectedElementsTemplate()} `; - } - - /** - * @param {{ key: string; }} ev - */ - __textboxOnKeyup(ev) { - if (ev.key === 'Backspace') { - if (!this._inputNode.value) { - if (this.removeChipOnNextBackspace && this.selectedElements.length) { - this.selectedElements[this.selectedElements.length - 1].checked = false; - } - this.removeChipOnNextBackspace = true; - } - } else { - this.removeChipOnNextBackspace = false; - } - } - - __restoreBackspace() { - this.removeChipOnNextBackspace = false; - } -} -customElements.define('demo-selection-display', DemoSelectionDisplay); diff --git a/packages/ui/docs/components/combobox/src/gh-combobox/gh-button.js b/packages/ui/docs/components/combobox/src/gh-combobox/gh-button.js deleted file mode 100644 index c24f2d33a..000000000 --- a/packages/ui/docs/components/combobox/src/gh-combobox/gh-button.js +++ /dev/null @@ -1,69 +0,0 @@ -import { css, html } from 'lit'; -import { LionButton } from '@lion/ui/button.js'; - -export class GhButton extends LionButton { - static get properties() { - return { - value: String, - }; - } - - static get styles() { - return css` - :host { - outline: none; - position: relative; - display: inline-flex; - align-items: center; - padding: 5px 16px; - font-size: 14px; - font-weight: 500; - line-height: 20px; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid; - border-radius: 6px; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - - color: #24292e; - background-color: #fafbfc; - border-color: rgba(27, 31, 35, 0.15); - box-shadow: 0 1px 0 rgba(27, 31, 35, 0.04), inset 0 1px 0 hsla(0, 0%, 100%, 0.25); - transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1); - } - - :host(:hover) { - background-color: #f3f4f6; - transition-duration: 0.1s; - } - - :host ::slotted([slot='before']) { - margin-right: 4px; - } - - /** - * TODO: this doesn't have to be light dom anymore in LionButton, - * just spawning a hidden native button on submit would be enough - */ - :host ::slotted(button) { - position: absolute; - opacity: 0; - } - `; - } - - render() { - return html` - ${this.value} - - `; - } -} -customElements.define('gh-button', GhButton); diff --git a/packages/ui/docs/components/combobox/src/gh-combobox/gh-combobox.js b/packages/ui/docs/components/combobox/src/gh-combobox/gh-combobox.js deleted file mode 100644 index 5b40a91f3..000000000 --- a/packages/ui/docs/components/combobox/src/gh-combobox/gh-combobox.js +++ /dev/null @@ -1,508 +0,0 @@ -import { css, html } from 'lit'; -import { LionOption } from '@lion/ui/listbox.js'; -import { renderLitAsNode } from '@lion/ui/helpers.js'; -// import { withModalDialogConfig } from '@lion/ui/overlays.js'; -import { LionCombobox } from '@lion/ui/combobox.js'; -import './gh-button.js'; - -export class GhOption extends LionOption { - static get properties() { - return { - category: String, - default: { type: Boolean, reflect: true }, - }; - } - - static get styles() { - return [ - ...super.styles, - css` - :host { - display: flex; - align-items: center; - width: 100%; - padding: 16px; - overflow: hidden; - color: #24292e; - text-align: left; - cursor: pointer; - background-color: #fff; - border: 0; - border-bottom: 1px solid #eaecef; - box-sizing: border-box; - display: flex; - align-items: center; - } - - @media (min-width: 544px) { - :host { - padding-top: 7px; - padding-bottom: 7px; - } - } - - :host([checked]) { - background-color: white; - } - - :host(:hover), - :host([active]), - :host([focused]) { - background-color: #f6f8fa; - } - - .gh-check-icon { - visibility: hidden; - margin-right: 4px; - } - - :host([checked]) .gh-check-icon { - visibility: visible; - } - - .gh-default-badge { - visibility: hidden; - - display: inline-block; - padding: 0 7px; - font-size: 12px; - font-weight: 500; - line-height: 18px; - border-radius: 2em; - background-color: initial !important; - border: 1px solid #e1e4e8; - color: #586069; - border-color: #e1e4e8; - } - - :host([default]) .gh-default-badge { - visibility: visible; - } - - .gh-content { - flex: 1; - } - `, - ]; - } - - render() { - return html` - - - default - `; - } -} -customElements.define('gh-option', GhOption); - -export class GhCombobox extends LionCombobox { - static get properties() { - return { - category: { type: String }, - isDesktop: { type: Boolean, reflect: true, attribute: 'is-desktop' }, - }; - } - - static get styles() { - return [ - ...super.styles, - css` - /** @configure LionCombobox */ - - :host { - font-family: apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, - Apple Color Emoji, Segoe UI Emoji; - font-size: 14px; - } - - .input-group__container { - display: flex; - border-bottom: none; - } - - * > ::slotted([role='listbox']) { - max-height: none; - } - - * > ::slotted([slot='input']) { - padding: 5px 12px; - font-size: 14px; - line-height: 20px; - color: #24292e; - vertical-align: middle; - background-color: #fff; - background-repeat: no-repeat; - background-position: right 8px center; - border: 1px solid #e1e4e8; - border-radius: 6px; - outline: none; - box-shadow: inset 0 1px 0 rgba(225, 228, 232, 0.2); - } - - :host([is-desktop]) { - font-size: 12px; - } - - :host([is-desktop]) ::slotted([slot='input']) { - font-size: 14px; - } - - :host([focused]) ::slotted([slot='input']) { - border-color: #0366d6; - outline: none; - box-shadow: 0 0 0 3px rgba(3, 102, 214, 0.3); - } - - .gh-combobox { - height: auto; - max-height: 480px; - margin-top: 8px; - - position: relative; - z-index: 99; - display: flex; - max-height: 66%; - margin: auto 0; - overflow: hidden; - pointer-events: auto; - flex-direction: column; - background-color: #fff; - border-radius: 12px; - box-shadow: 0 0 18px rgba(27, 31, 35, 0.4); - /* animation: SelectMenu-modal-animation 0.12s cubic-bezier(0, 0.1, 0.1, 1) backwards; */ - } - - :host([is-desktop]) .gh-combobox { - width: 300px; - height: auto; - max-height: 480px; - margin: 8px 0 16px; - font-size: 12px; - border: 1px solid #e1e4e8; - border-radius: 6px; - box-shadow: 0 8px 24px rgba(149, 157, 165, 0.2); - /* animation-name: SelectMenu-modal-animation--sm; */ - } - - .form-field__label { - font-weight: bold; - } - - /** @enhance LionCombobox */ - - .gh-categories { - display: flex; - flex-shrink: 0; - overflow-x: auto; - overflow-y: hidden; - box-shadow: inset 0 -1px 0 #eaecef; - -webkit-overflow-scrolling: touch; - } - - :host([is-desktop]) .gh-categories { - padding: 8px 8px 0; - } - - .gh-categories__btn { - flex: 1; - padding: 8px 16px; - font-size: 12px; - font-weight: 500; - color: #6a737d; - text-align: center; - background-color: initial; - border: 0; - box-shadow: inset 0 -1px 0 #eaecef; - - border-radius: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; - outline: none; - - cursor: pointer; - } - - .gh-categories__btn:focus { - background-color: #dbedff; - } - - :host([is-desktop]) .gh-categories__btn { - flex: none; - padding: 4px 16px; - border: solid transparent; - border-width: 1px 1px 0; - border-top-left-radius: 6px; - border-top-right-radius: 6px; - } - - .gh-categories__btn[aria-pressed='true'] { - z-index: 1; - color: #24292e; - cursor: default; - box-shadow: 0 0 0 1px #eaecef; - cursor: default; - } - - :host([is-desktop]) .gh-categories__btn { - flex: none; - } - :host([is-desktop]) .gh-categories__btn[aria-pressed='true'] { - border-color: #eaecef; - box-shadow: none; - } - - .gh-section-wrapper { - padding: 16px; - margin: 0; - border-bottom: 1px solid #eaecef; - } - - :host([is-desktop]) .gh-section-wrapper { - padding: 8px; - } - `, - ]; - } - - /** - * @override LionCombobox put all content in an overlay - */ - // eslint-disable-next-line class-methods-use-this - render() { - return html` - - - - `; - } - - /** - * Wrapper with combobox role for the text input that the end user controls the listbox with. - * @type {HTMLElement} - */ - get _comboboxNode() { - if (this.__comboboxNode) { - return this.__comboboxNode; - } - const slot = this.querySelector('[slot="input"]'); - if (slot) { - this.__comboboxNode = slot; - return slot; - } - const slot2 = this._overlayCtrl?.contentWrapperNode.querySelector('[slot="input"]'); - if (slot2) { - this.__comboboxNode = slot2; - return slot2; - } - return null; - } - - /** - * @override LionCombobox: remove selection-display (place it higher up) - */ - // eslint-disable-next-line class-methods-use-this - _inputGroupInputTemplate() { - return html` -
- -
- `; - } - - /** - * @override LionCombobox: restore to values FormControlMixin - */ - // eslint-disable-next-line class-methods-use-this - _groupTwoTemplate() { - return html` ${this._inputGroupTemplate()} ${this._feedbackTemplate()} `; - } - - get slots() { - return { - ...super.slots, - 'selection-display': () => - renderLitAsNode(html` - - - - - - `), - }; - } - - get _overlayInvokerNode() { - return this.querySelector('[slot="selection-display"]'); - } - - get _overlayReferenceNode() { - return this._overlayInvokerNode; - } - - get _categoryButtons() { - return Array.from(this.shadowRoot.querySelectorAll('.gh-categories__btn[data-category]')); - } - - constructor() { - super(); - - this.showAllOnEmpty = true; - - /** @type {'branches'|'tags'} */ - this.category = 'branches'; - - this.selectionFollowsFocus = false; - - // Capture mobile OverlayConfig - this.__mobileDropdownComboConfig = this.config; - } - - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - - const mql = window.matchMedia('(min-width: 544px)'); - this.isDesktop = mql.matches; - mql.addListener(({ matches }) => { - this.isDesktop = matches; - }); - } - - updated(changedProperties) { - super.updated(changedProperties); - - if (changedProperties.has('category')) { - const cat = this.category; - this._categoryButtons.forEach(btn => { - btn.setAttribute( - 'aria-pressed', - btn.getAttribute('data-category') === cat ? 'true' : 'false', - ); - }); - - this._inputNode.placeholder = - cat === 'branches' ? 'Find or create a branch...' : 'Find a tag'; - - this._handleAutocompletion(); - } - - if (changedProperties.has('opened')) { - // eslint-disable-next-line no-shadow - this._selectionDisplayNode.value = this.modelValue || 'Choose a value...'; - - if (this.opened) { - setTimeout(() => { - this._inputNode.focus(); - }); - } else { - setTimeout(() => { - this._selectionDisplayNode.focus(); - }, 100); - } - } - - if (changedProperties.has('isDesktop')) { - // this.config = this.isDesktop ? this.__mobileDropdownComboConfig : withModalDialogConfig(); - } - } - - // /** - // * @enhance LionCombobox - // * @param {*} option - // * @param {...any} args - // */ - // matchCondition(option, ...args) { - // return super.matchCondition(option, ...args) && option.category === this.category; - // } - - // _defineOverlayConfig() { - // // temp - // return { ...super._defineOverlayConfig(), hidesOnOutsideClick: false }; - // } - - __handleCategory(ev) { - this.category = ev.target.getAttribute('data-category'); - } - - // TODO: overrides below are not safe for override and should be made configurable in Combobox - // basically it should be possible te create a combobox without an overlay - - /** - * @override - */ - _textboxOnKeydown() { - // if (ev.key === 'Tab') { - // this.opened = false; - // } - this.__hasSelection = this._inputNode.value.length !== this._inputNode.selectionStart; - } - - /** - * @enhance OverlayMixin - */ - _setupOpenCloseListeners() { - super._setupOpenCloseListeners(); - this.__toggleOverlay = this.__toggleOverlay.bind(this); - this._overlayInvokerNode.addEventListener('click', this.__toggleOverlay); - } - - __toggleOverlay() { - this.opened = !this.opened; - } - - /** - * @enhance OverlayMixin - */ - _teardownOpenCloseListeners() { - super._teardownOpenCloseListeners(); - this._overlayInvokerNode.removeEventListener('click', this.__toggleOverlay); - } -} -customElements.define('gh-combobox', GhCombobox); diff --git a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js b/packages/ui/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js deleted file mode 100644 index af73cee2c..000000000 --- a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js +++ /dev/null @@ -1,9 +0,0 @@ -import { html } from 'lit'; - -export default html` - - - -`; diff --git a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-search-icon.js b/packages/ui/docs/components/combobox/src/google-combobox/assets/google-search-icon.js deleted file mode 100644 index bd89b44dd..000000000 --- a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-search-icon.js +++ /dev/null @@ -1,9 +0,0 @@ -import { html } from 'lit'; - -export default html` - - - -`; diff --git a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js b/packages/ui/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js deleted file mode 100644 index 72bf95009..000000000 --- a/packages/ui/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js +++ /dev/null @@ -1,19 +0,0 @@ -import { html } from 'lit'; - -export default html` - - - - - - -`; diff --git a/packages/ui/docs/components/combobox/src/google-combobox/assets/googlelogo_color_272x92dp.png b/packages/ui/docs/components/combobox/src/google-combobox/assets/googlelogo_color_272x92dp.png deleted file mode 100644 index 333bda93710d1668ca6452a507ab8a12c343996e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5969 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�U0N z3m6JPKp0sW8@)7ef#2ByzNjH_8IB}mH>f&eAXG;q!hPy}p-9g4)~36>eW@M_@Y*0J zu()+zMC5S+-TB@6)yQVYsmCP7Eu0(m(S@+;dYRA#Wi`_Spy`oEjm1TS`wRsw9sEbOIWFBIc zOd}Gyb8#`kUPSRe7fBA8nmI}&FiV0!hA^gqg#-vodh*@Mwh^D8=m5uFB0s#G;JZlb zhac7*EK7i?GLFx##DnX_Mm%Ytb{3JxEyL+Z&?6&RD5xo?Io|6H%v%{m%Qfs1Q6*s^ zFuSWd4o4O4_&=!KOj66KoEM6j37#A^>vkl=q;2MG>xXjF)UDpp$O<<#Wa5%z9hN{r z8e-D_U6K>(R#HYs2vWFQ@>;L7^P4^_H*a_IN9Yl^dIEu=RmnEiNtAD2M{^yM1e)g% z#ZpKrbTpFg9+<#gZ%qWln+Bo1fcn#Rg0pjZZyJnzU>}Dg38EEy{>G2OVgT*j2w!bC z=%tVb;aGJU3yJa!;|N(BxSg|1FCXp6fNop3ONr=ZgCu!uq5805bb`n;Y?Yiu_m&`% zO9e5Ecoc;pGDK^Fq&7&t|5ki1MgVdlJRiI$m(=$*amQPP2jFN4cuXh2*C%hVly#ybtNS?fMsTH@Ft<4uUv_k~-QFBv8|nMP556&n<;Q8KqwAJD3CEs8Y-t zFNA#0=P)sVg$1PR-0^?XD#U@!VY@zUqY{oXuysqqaBa*v#pjXDPmolh>KDjkDLzjK zVb>RNUEfK=wbA&7Cb+ow9Fn#DogIfn(k5>^!90T1TdXVN1{*U@a1x6UkOvcdLX@ro zH-CntS6FWj_=LnfnSVLv&nWPCX<-5(~Bk~r}GnDnnkOjxmCE1_UNRbW&ERdtdG1bBJogx&BkK}AF@d6+j45~k4; z3Cg9m>%G>jhy&_Flzv&0Q8Ng65z4Aj+s>7;=9Q`&r9?hrFA*Iq!g$L_i39J4r~{M! z6#_G1Y}fx*R1dGeR2uzbm;i-9kf>KeAcQuH0=FKHnm7>Q6m!Nj7AK$tgz(FD{9Cvi zlp`jMZSW!CPH;|c!Fq+8Q@#nQ#I0^bB#lNK#jNSn%;HcE=sm=Z-`!|Lva^A%2l|j^ zcacNSQPVp^UKsy@u_X{KzO5gulXBEiMj(XBU^#1Kkdqr_2t3JC7piN#XX4C_5o#h= zVmrY-Fo1!iT%v}*#&*01ITB}1a3Vp?8Y_^e5a-4mawLVU_0(tsvhn|z?2nnFg`AaD z?eb2_kMy?XkRuUCoTo7QaRB>!ouGHXSrd;~fa(3-qC6$pWPC zf=ni&SE|U3)8JT#2%|qUX)>Z^#gT@Fh6WVO1Oi#bYN4T_p@Ad!Xas^hA8S2mXlNk6 z20^2$_l76y7@HTZp`kIOYv8@y_2**pAj+sJ%J}FACu&AcU>X`4$p<=eIjSqJw|Uo_ z*na>C(PmF4fc7N8iGB?Y4U}c!4Kv!LL3~YQKhvq0h-?V?kDoFP4UOaiz8yrp&}PU2 zSc8CNMJ6A-K%C3_&rCx@Be}@U-*^~Rc!;LXMyB;cqzDH*qR4T>tgh-FOhZE>*~qy5 zjZ&=+Av&@#-A=}F&vty5wFWdabkzkVRmnkTFJd?pqKc7vw&2T)F(l~dmgt)qz-MBu z0SyfeNYTUkdWakTQQPqs+pg~*azI4G9dCKK#yc#34r?uFXlQ@{;x?^9jszkz){4;3 z(8^P9XEwaA&)pjjXRQwn4IPOfm(fH5d5K`s-Ad5V z(7@OZIEkq}wgh)7bH3Bi(1_nKh&#b`Q9HCljS90XHuj;Rp#g_6?gUq(G~37|L!J-% z;95qQ@ITg|p`ih9Q`lk(BDsb;{^KJJX3ylkEl{7@u74XuXE0`F8X6iJZ=Ym`(reoF zkLFIL1OBMo^^W4M|9-9KXf$1`, - ); - // For Safari, we need to add a label to the element - this.setAttribute('aria-label', this.textContent); - this.innerHTML = newInnerHTML; - // Alternatively, an extension can add an animation here - this.style.display = ''; - } - - /** - * @configure LionCombobox - */ - onFilterUnmatch() { - this.removeAttribute('aria-label'); - if (this.__originalInnerHTML) { - this.innerHTML = this.__originalInnerHTML; - } - this.style.display = 'none'; - } - - render() { - return html` - ${!this.imageUrl - ? html`
${googleSearchIcon}
` - : html` `} - ${super.render()} - `; - } -} -customElements.define('google-option', GoogleOption); - -export class GoogleCombobox extends LionCombobox { - static get styles() { - return [ - ...super.styles, - css` - /** @configure FormControlMixin */ - - /* ======================= - block | .form-field - ======================= */ - - :host { - font-family: arial, sans-serif; - } - - .form-field__label { - margin-top: 36px; - margin-bottom: 24px; - display: flex; - justify-content: center; - } - - /* ============================== - element | .input-group - ============================== */ - - .input-group { - margin-bottom: 16px; - max-width: 582px; - margin: auto; - } - - .input-group__container { - position: relative; - background: #fff; - display: flex; - border: 1px solid #dfe1e5; - box-shadow: none; - border-radius: 24px; - height: 44px; - } - - .input-group__container:hover, - :host([opened]) .input-group__container { - border-color: rgba(223, 225, 229, 0); - box-shadow: 0 1px 6px rgba(32, 33, 36, 0.28); - } - - :host([opened]) .input-group__container { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } - - :host([opened]) .input-group__container::before { - content: ''; - position: absolute; - background: white; - left: 0; - right: 0; - height: 10px; - bottom: -10px; - } - - :host([opened]) .input-group__container::after { - content: ''; - position: absolute; - background: #eee; - left: 16px; - right: 16px; - height: 1px; - bottom: 0; - z-index: 3; - } - - .input-group__prefix, - .input-group__suffix { - display: block; - fill: var(--icon-color); - display: flex; - place-items: center; - } - - .input-group__input { - flex: 1; - } - - .input-group__input ::slotted([slot='input']) { - border: transparent; - width: 100%; - } - - /** @configure LionCombobox */ - - /* ======================= - block | .form-field - ======================= */ - - #overlay-content-node-wrapper { - box-shadow: 0 4px 6px rgba(32, 33, 36, 0.28); - border-radius: 0 0 24px 24px; - margin-top: -2px; - padding-top: 6px; - background: white; - } - - * > ::slotted([slot='listbox']) { - margin-bottom: 8px; - background: none; - } - - :host { - --icon-color: #9aa0a6; - } - - /** @enhance LionCombobox */ - - /* =================================== - block | .google-search-clear-btn - =================================== */ - - .google-search-clear-btn { - position: relative; - height: 100%; - align-items: center; - display: none; - } - - .google-search-clear-btn::after { - border-left: 1px solid #dfe1e5; - height: 65%; - right: 0; - content: ''; - margin-right: 10px; - margin-left: 8px; - } - - :host([filled]) .google-search-clear-btn { - display: flex; - } - - * > ::slotted([slot='suffix']), - * > ::slotted([slot='clear-btn']) { - font: inherit; - margin: 0; - border: 0; - outline: 0; - padding: 0; - color: inherit; - background-color: transparent; - text-align: left; - white-space: normal; - overflow: visible; - - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -webkit-tap-highlight-color: transparent; - - width: 25px; - height: 25px; - cursor: pointer; - } - - * > ::slotted([slot='suffix']) { - margin-right: 20px; - } - - * > ::slotted([slot='prefix']) { - height: 20px; - width: 20px; - margin-left: 12px; - margin-right: 16px; - } - - /* ============================= - block | .google-search-btns - ============================ */ - - .google-search-btns { - display: flex; - justify-content: center; - align-items: center; - } - - .google-search-btns__input-button { - background-image: -webkit-linear-gradient(top, #f8f9fa, #f8f9fa); - background-color: #f8f9fa; - border: 1px solid #f8f9fa; - border-radius: 4px; - color: #3c4043; - font-family: arial, sans-serif; - font-size: 14px; - margin: 11px 4px; - padding: 0 16px; - line-height: 27px; - height: 36px; - min-width: 54px; - text-align: center; - cursor: pointer; - user-select: none; - } - - .google-search-btns__input-button:hover { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - background-image: -webkit-linear-gradient(top, #f8f8f8, #f1f1f1); - background-color: #f8f8f8; - border: 1px solid #c6c6c6; - color: #222; - } - - .google-search-btns__input-button:focus { - border: 1px solid #4d90fe; - outline: none; - } - - /* =============================== - block | .google-search-report - ============================== */ - - .google-search-report { - display: flex; - align-content: right; - color: #70757a; - font-style: italic; - font-size: 8pt; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - margin-bottom: 8px; - justify-content: flex-end; - margin-right: 20px; - } - - .google-search-report a { - color: inherit; - } - `, - ]; - } - - /** - * @enhance LionCombobox - add google search buttons - */ - _overlayListboxTemplate() { - return html` -
- - `; - } - - /** - * @enhance FormControlMixin add clear-btn - */ - _inputGroupSuffixTemplate() { - return html` -
-
- -
- -
- `; - } - - _googleSearchBtnsTemplate() { - return html`
- - -
`; - } - - /** - * @enhance FormControlMixin - add google search buttons - */ - _groupTwoTemplate() { - return html`${super._groupTwoTemplate()} ${!this.opened ? this._googleSearchBtnsTemplate() : ''} `; - } - - get slots() { - return { - ...super.slots, - label: () => renderLitAsNode(html` Google Search`), - prefix: () => renderLitAsNode(html` ${googleSearchIcon} `), - suffix: () => - renderLitAsNode( - html` `, - ), - 'clear-btn': () => - renderLitAsNode( - html` - - `, - ), - }; - } - - /** - * @configure OverlayMixin - */ - get _overlayReferenceNode() { - return /** @type {ShadowRoot} */ (this.shadowRoot).querySelector('.input-group'); - } - - constructor() { - super(); - /** @configure LionCombobox */ - this.autocomplete = 'list'; - /** @configure LionCombobox */ - this.showAllOnEmpty = true; - - this.__resetFocus = this.__resetFocus.bind(this); - this.__clearText = this.__clearText.bind(this); - } - - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - - this._overlayContentNode.addEventListener('mouseenter', this.__resetFocus); - } - - /** - * @override LionCombobox - always sync textbox when selected value changes - */ - // eslint-disable-next-line no-unused-vars - _syncToTextboxCondition() { - return true; - } - - _showOverlayCondition(options) { - return this.focused || super._showOverlayCondition(options); - } - - __resetFocus() { - this.activeIndex = -1; - this.checkedIndex = -1; - } - - __clearText() { - this._inputNode.value = ''; - } -} -customElements.define('google-combobox', GoogleCombobox); diff --git a/packages/ui/docs/components/combobox/src/lazyRender.js b/packages/ui/docs/components/combobox/src/lazyRender.js deleted file mode 100644 index 8404ab4f0..000000000 --- a/packages/ui/docs/components/combobox/src/lazyRender.js +++ /dev/null @@ -1,29 +0,0 @@ -import { directive } from 'lit/directive.js'; -import { AsyncDirective } from 'lit/async-directive.js'; - -/** - * In order to speed up the first meaningful paint, use this directive - * on content that is: - * - (visually) hidden - * - out of the page flow (having position: 'absolute|fixed') - * - * A good practice would be to use it in overlays, - * For hidden tab panels, collapsible content etc. it's also useful - * @example - * - * ${lazyRender( - * largeListOfData.map(entry => html` ${entry} `), - * )} - * - */ -export const lazyRender = directive( - class extends AsyncDirective { - render(tplResult) { - setTimeout(() => { - this.setValue(tplResult); - }); - } - }, -); - -// export const lazyRender = () => {}; diff --git a/packages/ui/docs/components/combobox/src/levenshtein.js b/packages/ui/docs/components/combobox/src/levenshtein.js deleted file mode 100644 index faae33d28..000000000 --- a/packages/ui/docs/components/combobox/src/levenshtein.js +++ /dev/null @@ -1,95 +0,0 @@ -/* eslint-disable */ -// https://github.com/gustf/js-levenshtein/blob/master/index.js - -function _min(d0, d1, d2, bx, ay) { - return d0 < d1 || d2 < d1 ? (d0 > d2 ? d2 + 1 : d0 + 1) : bx === ay ? d1 : d1 + 1; -} - -export default function (a, b) { - if (a === b) { - return 0; - } - - if (a.length > b.length) { - var tmp = a; - a = b; - b = tmp; - } - - var la = a.length; - var lb = b.length; - - while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) { - la--; - lb--; - } - - var offset = 0; - - while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) { - offset++; - } - - la -= offset; - lb -= offset; - - if (la === 0 || lb < 3) { - return lb; - } - - var x = 0; - var y; - var d0; - var d1; - var d2; - var d3; - var dd; - var dy; - var ay; - var bx0; - var bx1; - var bx2; - var bx3; - - var vector = []; - - for (y = 0; y < la; y++) { - vector.push(y + 1); - vector.push(a.charCodeAt(offset + y)); - } - - var len = vector.length - 1; - - for (; x < lb - 3; ) { - bx0 = b.charCodeAt(offset + (d0 = x)); - bx1 = b.charCodeAt(offset + (d1 = x + 1)); - bx2 = b.charCodeAt(offset + (d2 = x + 2)); - bx3 = b.charCodeAt(offset + (d3 = x + 3)); - dd = x += 4; - for (y = 0; y < len; y += 2) { - dy = vector[y]; - ay = vector[y + 1]; - d0 = _min(dy, d0, d1, bx0, ay); - d1 = _min(d0, d1, d2, bx1, ay); - d2 = _min(d1, d2, d3, bx2, ay); - dd = _min(d2, d3, dd, bx3, ay); - vector[y] = dd; - d3 = d2; - d2 = d1; - d1 = d0; - d0 = dy; - } - } - - for (; x < lb; ) { - bx0 = b.charCodeAt(offset + (d0 = x)); - dd = ++x; - for (y = 0; y < len; y += 2) { - dy = vector[y]; - vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]); - d0 = dy; - } - } - - return dd; -} diff --git a/packages/ui/docs/components/combobox/src/md-combobox/MdFieldMixin.js b/packages/ui/docs/components/combobox/src/md-combobox/MdFieldMixin.js deleted file mode 100644 index 1c813f9c9..000000000 --- a/packages/ui/docs/components/combobox/src/md-combobox/MdFieldMixin.js +++ /dev/null @@ -1,341 +0,0 @@ -import { html, css } from 'lit'; -import { dedupeMixin } from '@open-wc/dedupe-mixin'; - -export const MdFieldMixin = dedupeMixin( - superclass => - class extends superclass { - static get styles() { - return [ - ...super.styles, - css` - /** @configure FormControlMixin */ - - /* ======================= - block | .form-field - ======================= */ - - :host { - position: relative; - font-family: 'Roboto', sans-serif; - padding-top: 16px; - } - - /* ========================== - element | .form-field__label - ========================== */ - - .form-field__label ::slotted(label) { - display: block; - color: var(--text-color, #545454); - font-size: 1rem; - line-height: 1.5rem; - } - - :host([disabled]) .form-field__label ::slotted(label) { - color: var(--disabled-text-color, lightgray); - } - - .form-field__label { - position: absolute; - top: 4px; - left: 0; - font: inherit; - pointer-events: none; - width: 100%; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - transform: perspective(100px); - -ms-transform: none; - transform-origin: 0 0; - transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), - color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), - width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - /* z-index: 1; */ - } - - :host([focused]) .form-field__label, - :host([filled]) .form-field__label { - transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px); - width: 133.333333333333333333%; - } - - :host([focused]) .form-field__label { - color: var(--color-primary, royalblue); - } - - /* ============================== - element | .form-field__help-text - ============================== */ - - .form-field__help-text { - visibility: hidden; - margin-top: 8px; - position: relative; - font-size: 0.8em; - display: block; - } - - :host([disabled]) .form-field__help-text ::slotted(*) { - color: var(--disabled-text-color, lightgray); - } - - :host([focused]) .form-field__help-text { - visibility: visible; - } - - :host([shows-feedback-for~='error']) .form-field__help-text { - display: none; - } - - /* ============================== - element | .form-field__feedback - ============================== */ - - .form-field__feedback { - margin-top: 8px; - position: relative; - font-size: 0.8em; - display: block; - } - - :host([shows-feedback-for~='error']) .form-field__feedback { - color: var(--color-error, red); - } - - /* ============================== - element | .input-group - ============================== */ - - .input-group { - display: flex; - } - - /* ============================== - element | .input-group__container - ============================== */ - - .input-group__container { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; - } - - /* ============================== - element | .input-group__input - ============================== */ - - .input-group__input { - display: flex; - flex: 1; - position: relative; - } - - /* ============================== - element | [slot="input"] - ============================== */ - - * > ::slotted([slot='input']) { - display: block; - box-sizing: border-box; - flex: 1 1 auto; - width: 1%; - padding: 0.5rem 0; - outline: none; - border: none; - color: var(--primary-text-color, #333333); - background: transparent; - background-clip: padding-box; - font-size: 100%; - } - - :host([disabled]) - .input-group__container - > .input-group__input - ::slotted([slot='input']) { - color: var(--disabled-text-color, lightgray); - } - - /* ============================== - element | .input-group__prefix, - element | .input-group__suffix - ============================== */ - - .input-group__prefix, - .input-group__suffix { - display: flex; - } - - .input-group__prefix ::slotted(*), - .input-group__suffix ::slotted(*) { - align-self: center; - text-align: center; - padding: 0.375rem 0.75rem; - line-height: 1.5; - display: flex; - white-space: nowrap; - margin-bottom: 0; - } - - .input-group__container > .input-group__prefix ::slotted(button), - .input-group__container > .input-group__suffix ::slotted(button) { - height: 100%; - border: none; - background: transparent; - - position: relative; - overflow: hidden; - transform: translate3d(0, 0, 0); - } - - .input-group__container > .input-group__prefix ::slotted(button)::after, - .input-group__container > .input-group__suffix ::slotted(button)::after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - pointer-events: none; - background-image: radial-gradient(circle, #000 10%, transparent 10.01%); - background-repeat: no-repeat; - background-position: 50%; - transform: scale(10, 10); - opacity: 0; - transition: transform 0.25s, opacity 0.5s; - } - - .input-group__container > .input-group__prefix ::slotted(button:active)::after, - .input-group__container > .input-group__suffix ::slotted(button:active)::after { - transform: scale(0, 0); - opacity: 0.2; - transition: 0s; - } - - /* ==== state | :focus ==== */ - - /* ============================== - element | .input-group__before, - element | .input-group__after - ============================== */ - - .input-group__before, - .input-group__after { - display: flex; - } - - .input-group__before ::slotted(*), - .input-group__after ::slotted(*) { - align-self: center; - text-align: center; - padding: 0.375rem 0.75rem; - line-height: 1.5; - } - - .input-group__before ::slotted(*) { - padding-left: 0; - } - - .input-group__after ::slotted(*) { - padding-right: 0; - } - - /** @enhance FormControlMixin */ - - /* ============================== - element | .md-input__underline - ============================== */ - - .md-input__underline { - position: absolute; - height: 1px; - width: 100%; - background-color: rgba(0, 0, 0, 0.42); - bottom: 0; - } - - :host([disabled]) .md-input__underline { - border-top: 1px var(--disabled-text-color, lightgray) dashed; - background-color: transparent; - } - - :host([shows-feedback-for~='error']) .md-input__underline { - background-color: var(--color-error, red); - } - - /* ============================== - element | .md-input__underline-ripple - ============================== */ - - .md-input__underline-ripple { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 2px; - transform-origin: 50%; - transform: scaleX(0.5); - visibility: hidden; - opacity: 0; - transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); - background-color: var(--color-primary, royalblue); - } - - :host([focused]) .md-input__underline-ripple { - visibility: visible; - opacity: 1; - transform: scaleX(1); - transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), - opacity 0.1s cubic-bezier(0.25, 0.8, 0.25, 1), - background-color 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); - } - - :host([shows-feedback-for~='error']) .md-input__underline-ripple { - background-color: var(--color-error, red); - } - `, - ]; - } - - /** - * @override FormControlMixin - */ - _groupOneTemplate() { - return html``; - } - - /** - * @override FormControlMixin - */ - _inputGroupInputTemplate() { - return html` -
- ${this._labelTemplate()} - -
- `; - } - - /** - * @enhance FormControlMixin - */ - _inputGroupTemplate() { - return html` -
- ${this._inputGroupBeforeTemplate()} -
- ${this._inputGroupPrefixTemplate()} ${this._inputGroupInputTemplate()} - ${this._inputGroupSuffixTemplate()} -
- -
-
- ${this._inputGroupAfterTemplate()} -
- `; - } - }, -); diff --git a/packages/ui/docs/components/combobox/src/md-combobox/md-combobox.js b/packages/ui/docs/components/combobox/src/md-combobox/md-combobox.js deleted file mode 100644 index 81250a5dd..000000000 --- a/packages/ui/docs/components/combobox/src/md-combobox/md-combobox.js +++ /dev/null @@ -1,89 +0,0 @@ -import { css, html } from 'lit'; -import { LionOption } from '@lion/ui/listbox.js'; -import { LionCombobox } from '@lion/ui/combobox.js'; -import { MdFieldMixin } from './MdFieldMixin.js'; -import './style/md-ripple.js'; -import './style/load-roboto.js'; - -// TODO: insert ink wc here -export class MdOption extends LionOption { - static get styles() { - return [ - ...super.styles, - css` - :host { - position: relative; - padding: 8px; - } - - :host([focused]) { - background: lightgray; - } - - :host([active]) { - color: #1867c0 !important; - caret-color: #1867c0 !important; - } - - :host ::slotted(.md-highlight) { - color: rgba(0, 0, 0, 0.38); - background: #eee; - } - `, - ]; - } - - /** - * @override - * @param {string} matchingString - */ - onFilterMatch(matchingString) { - const { innerHTML } = this; - this.__originalInnerHTML = innerHTML; - this.innerHTML = innerHTML.replace( - new RegExp(`(${matchingString})`, 'i'), - `$1`, - ); - this.style.display = ''; - } - - /** - * @override - */ - onFilterUnmatch() { - if (this.__originalInnerHTML) { - this.innerHTML = this.__originalInnerHTML; - } - this.style.display = 'none'; - } - - render() { - return html` - ${super.render()} - - `; - } -} -customElements.define('md-option', MdOption); - -export class MdCombobox extends MdFieldMixin(LionCombobox) { - static get styles() { - return [ - ...super.styles, - css` - .input-group__container { - display: flex; - border-bottom: none; - } - - * > ::slotted([role='listbox']) { - box-shadow: 0 4px 6px 0 rgba(32, 33, 36, 0.28); - padding-top: 8px; - padding-bottom: 8px; - top: 2px; - } - `, - ]; - } -} -customElements.define('md-combobox', MdCombobox); diff --git a/packages/ui/docs/components/combobox/src/md-combobox/md-input.js b/packages/ui/docs/components/combobox/src/md-combobox/md-input.js deleted file mode 100644 index 11e7648ec..000000000 --- a/packages/ui/docs/components/combobox/src/md-combobox/md-input.js +++ /dev/null @@ -1,5 +0,0 @@ -import { LionInput } from '@lion/ui/input.js'; -import { MdFieldMixin } from './MdFieldMixin.js'; - -export class MdInput extends MdFieldMixin(LionInput) {} -customElements.define('md-input', MdInput); diff --git a/packages/ui/docs/components/combobox/src/md-combobox/style/load-roboto.js b/packages/ui/docs/components/combobox/src/md-combobox/style/load-roboto.js deleted file mode 100644 index 182c1aaf4..000000000 --- a/packages/ui/docs/components/combobox/src/md-combobox/style/load-roboto.js +++ /dev/null @@ -1,6 +0,0 @@ -// We don't have access to our main index html, so let's add Roboto font like this -const linkNode = document.createElement('link'); -linkNode.href = 'https://fonts.googleapis.com/css?family=Roboto:300,400,500'; -linkNode.rel = 'stylesheet'; -linkNode.type = 'text/css'; -document.head.appendChild(linkNode); diff --git a/packages/ui/docs/components/combobox/src/md-combobox/style/md-ripple.js b/packages/ui/docs/components/combobox/src/md-combobox/style/md-ripple.js deleted file mode 100644 index ea98f6ef0..000000000 --- a/packages/ui/docs/components/combobox/src/md-combobox/style/md-ripple.js +++ /dev/null @@ -1,81 +0,0 @@ -import { html, css, LitElement } from 'lit'; - -/** - * Material Design Ripple Element - * - * - should be placed in a 'positioned' context (having positon: (realtive/fixed/absolute)) - */ -class MdRipple extends LitElement { - static get styles() { - return [ - css` - :host { - overflow: hidden; - transition: 0.1s ease-in; - user-select: none; - display: block; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - } - - :host:hover { - cursor: pointer; - } - - #ripple { - background-color: rgba(0, 0, 0, 0.1); - border-radius: 100%; - position: relative; - transform: scale(0); - } - - .animate { - animation: ripple 0.4s linear; - } - - @keyframes ripple { - 100% { - transform: scale(12); - background-color: transparent; - } - } - `, - ]; - } - - render() { - return html`
`; - } - - firstUpdated(c) { - super.firstUpdated(c); - this._ripple = this.shadowRoot.querySelector('#ripple'); - this._ripple.style.cssText = `width: ${this.offsetHeight}px; height: ${this.offsetHeight}px;`; - this.__onRipple = this.__onRipple.bind(this); - this.addEventListener('mousedown', this.__onRipple); - } - - disconnectedCallback() { - this.removeEventListener('mousedown', this.__onRipple); - } - - __onRipple(e) { - this._ripple.classList.remove('animate'); - const rect = this.getBoundingClientRect(); - const offset = { - top: rect.top + document.body.scrollTop, - left: rect.left + document.body.scrollLeft, - }; - this._ripple.style.left = `${ - parseInt(e.pageX - offset.left, 10) - this._ripple.offsetWidth / 2 - }px`; - this._ripple.style.top = `${ - parseInt(e.pageY - offset.top, 10) - this._ripple.offsetHeight / 2 - }px`; - this._ripple.classList.add('animate'); - } -} -customElements.define('md-ripple', MdRipple); diff --git a/packages/ui/docs/components/combobox/src/wa-combobox/wa-combobox.js b/packages/ui/docs/components/combobox/src/wa-combobox/wa-combobox.js deleted file mode 100644 index 5c5ff4383..000000000 --- a/packages/ui/docs/components/combobox/src/wa-combobox/wa-combobox.js +++ /dev/null @@ -1,368 +0,0 @@ -import { html, css } from 'lit'; -import { renderLitAsNode } from '@lion/ui/helpers.js'; -import { LionOption } from '@lion/ui/listbox.js'; -import { LionCombobox } from '@lion/ui/combobox.js'; - -class WaOption extends LionOption { - static get properties() { - return { - title: String, - text: String, - time: String, - image: String, - isUserText: { attribute: 'is-user-text', reflect: true, type: Boolean }, - isUserTextRead: { attribute: 'is-user-text-read', reflect: true, type: Boolean }, - }; - } - - static get styles() { - return [ - ...super.styles, - css` - :host { - --background-default: white; - --background-default-active: gray; - --secondary: #777; - --secondary-lighter: #aaa; - --chatlist-icon: #aaa; - background-color: var(--background-default); - cursor: pointer; - color: rgb(74, 74, 74); - padding: 0; - transition: max-height 0.4s ease, opacity 0.3s ease; - max-height: 500px; - } - - :host([checked]) { - background-color: #eee; - } - - :host(:hover) { - background-color: #f6f6f6; - } - - .wa-option { - position: relative; - display: flex; - flex-direction: row; - height: 72px; - pointer-events: all; - } - - .wa-option__image { - display: flex; - flex: none; - align-items: center; - margin-top: -1px; - padding: 0 15px 0 13px; - } - - .wa-option__image-inner { - position: relative; - overflow: hidden; - background-color: var(--avatar-background); - border-radius: 50%; - height: 49px; - width: 49px; - } - - .wa-option__image-inner img, - .wa-option__image-inner svg { - width: 100%; - height: 100%; - } - - .wa-option__image-inner-inner { - position: absolute; - top: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - } - - .wa-option__content { - display: flex; - flex-basis: auto; - flex-direction: column; - flex-grow: 1; - justify-content: center; - min-width: 0; - border-bottom: 1px solid #eee; - padding-right: 15px; - } - - .wa-option__content-row1 { - display: flex; - align-items: center; - line-height: normal; - text-align: left; - } - - .wa-option__content-row1-title { - display: flex; - flex-grow: 1; - overflow: hidden; - color: var(--primary-strong); - font-weight: 400; - font-size: 17px; - line-height: 21px; - } - - .wa-option__content-row1-time { - line-height: 14px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - margin-left: 6px; - margin-top: 3px; - - flex: none; - max-width: 100%; - color: var(--secondary-lighter); - font-size: 12px; - line-height: 20px; - } - - .wa-option__content-row2 { - display: flex; - align-items: center; - min-height: 20px; - color: var(--secondary); - font-size: 13px; - line-height: 20px; - margin-top: 2px; - /* color: var(--secondary-stronger); */ - } - - .wa-option__content-row2-text { - flex-grow: 1; - overflow: hidden; - font-weight: 400; - font-size: 14px; - line-height: 20px; - white-space: nowrap; - text-overflow: ellipsis; - } - - .wa-option__content-row2-text-inner { - display: flex; - align-items: flex-start; - } - - .wa-option__content-row2-text-inner-icon { - display: none; - flex: none; - color: var(--chatlist-icon); - vertical-align: top; - margin-right: 2px; - } - - :host([is-user-text]) .wa-option__content-row2-text-inner-icon { - display: inline-block; - } - - :host([is-user-text-read]) .wa-option__content-row2-text-inner-icon { - color: lightblue; - } - /* - .wa-option__content-row2-menu { - } */ - `, - ]; - } - - render() { - return html``; - } - - /** - * @configure LionCombobox - * @param {string} matchingString - */ - onFilterMatch(matchingString) { - this.__originalTitle = this.title; - const newInnerHTML = this.title.replace(new RegExp(`(${matchingString})`, 'i'), `$1`); - const helperNode = document.createElement('div'); - // For Safari, we need to add a label to the element - helperNode.innerHTML = `${newInnerHTML}`; - [this.title] = helperNode.children; - this.style.cssText = ` - max-height: 500px; - opacity: 1; - `; - } - - /** - * @configure LionCombobox - * @param {string} [curValue] - * @param {string} [prevValue] - */ - // eslint-disable-next-line no-unused-vars - onFilterUnmatch() { - if (this.__originalTitle) { - this.title = this.__originalTitle; - } - this.style.cssText = ` - max-height: 0; - opacity: 0; - `; - } -} -customElements.define('wa-option', WaOption); - -class WaCombobox extends LionCombobox { - static get styles() { - return [ - ...super.styles, - css` - :host { - font-family: SF Pro Text, SF Pro Icons, system, -apple-system, system-ui, - BlinkMacSystemFont, Helvetica Neue, Helvetica, Lucida Grande, Kohinoor Devanagari, - sans-serif; - } - - .input-group__container { - display: flex; - border-bottom: none; - } - - * > ::slotted([role='listbox']) { - max-height: none; - } - - * > ::slotted([slot='input']) { - font-size: 14px; - } - - .input-group { - padding: 15px; - background: #f6f6f6; - } - - .input-group__prefix { - margin-right: 20px; - color: #999; - display: flex; - } - - .input-group__container { - border-radius: 18px; - background: white; - padding: 7px; - padding-left: 16px; - } - - /** Undo Popper */ - #overlay-content-node-wrapper { - position: static !important; - width: auto !important; - transform: none !important; - - /* height: 300px; - overflow: scroll; */ - } - `, - ]; - } - - get slots() { - return { - ...super.slots, - prefix: () => - renderLitAsNode( - html` - - `, - ), - }; - } - - constructor() { - super(); - - /** @configure OverlayMixin */ - this.opened = true; - /** @configure LionCombobox */ - this.showAllOnEmpty = true; - /** @configure LionCombobox */ - this.rotateKeyboardNavigation = false; - } -} -customElements.define('wa-combobox', WaCombobox); diff --git a/packages/ui/docs/components/combobox/use-cases.md b/packages/ui/docs/components/combobox/use-cases.md deleted file mode 100644 index 238555e99..000000000 --- a/packages/ui/docs/components/combobox/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/combobox/use-cases.md) diff --git a/packages/ui/docs/components/dialog/index.md b/packages/ui/docs/components/dialog/index.md deleted file mode 100644 index c2c51ff0c..000000000 --- a/packages/ui/docs/components/dialog/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/dialog/index.md) diff --git a/packages/ui/docs/components/dialog/overview.md b/packages/ui/docs/components/dialog/overview.md deleted file mode 100644 index 97b95480e..000000000 --- a/packages/ui/docs/components/dialog/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/dialog/overview.md) diff --git a/packages/ui/docs/components/dialog/src/demo-dialog-style.js b/packages/ui/docs/components/dialog/src/demo-dialog-style.js deleted file mode 100644 index 33b081365..000000000 --- a/packages/ui/docs/components/dialog/src/demo-dialog-style.js +++ /dev/null @@ -1,3 +0,0 @@ -import { css } from 'lit'; - -export default css``; diff --git a/packages/ui/docs/components/dialog/src/demoStyle.js b/packages/ui/docs/components/dialog/src/demoStyle.js deleted file mode 100644 index 62f66b1c5..000000000 --- a/packages/ui/docs/components/dialog/src/demoStyle.js +++ /dev/null @@ -1,57 +0,0 @@ -import { css } from 'lit'; - -export const demoStyle = css` - .demo-box { - width: 200px; - background-color: white; - border-radius: 2px; - border: 1px solid grey; - padding: 8px; - } - .demo-box_placements { - display: flex; - flex-direction: column; - margin-top: 20px; - } - lion-dialog { - display: block; - padding: 10px; - margin-bottom: 10px; - } - .close-button { - color: black; - font-size: 28px; - line-height: 28px; - } - .demo-box__column { - display: flex; - flex-direction: column; - } - .demo-dialog--content { - display: block; - position: absolute; - font-size: 16px; - color: white; - background-color: black; - border-radius: 4px; - padding: 8px; - } - - .demo-dialog-content { - display: block; - position: absolute; - font-size: 16px; - color: white; - background-color: black; - border-radius: 4px; - padding: 8px; - } - - .demo-dialog-content__close-button { - color: black; - font-size: 28px; - line-height: 28px; - padding: 0; - border-style: none; - } -`; diff --git a/packages/ui/docs/components/dialog/src/slots-dialog-content.js b/packages/ui/docs/components/dialog/src/slots-dialog-content.js deleted file mode 100644 index 6b481427d..000000000 --- a/packages/ui/docs/components/dialog/src/slots-dialog-content.js +++ /dev/null @@ -1,32 +0,0 @@ -import { LitElement, html, css } from 'lit'; - -class SlotsDialogContent extends LitElement { - static get styles() { - return [ - css` - :host { - background-color: #fff; - } - .actions { - border-top: 2px solid green; - } - `, - ]; - } - - _closeOverlay() { - this.dispatchEvent(new Event('close-overlay', { bubbles: true })); - } - - render() { - return html` -

This content contains an actions slot

-
- -
- - `; - } -} - -customElements.define('slots-dialog-content', SlotsDialogContent); diff --git a/packages/ui/docs/components/dialog/src/styled-dialog-content.js b/packages/ui/docs/components/dialog/src/styled-dialog-content.js deleted file mode 100644 index 799dae2e8..000000000 --- a/packages/ui/docs/components/dialog/src/styled-dialog-content.js +++ /dev/null @@ -1,38 +0,0 @@ -import { LitElement, html, css } from 'lit'; - -class StyledDialogContent extends LitElement { - static get styles() { - return [ - css` - :host { - background-color: #fff; - } - .nice { - font-weight: bold; - color: green; - } - .close-button { - color: black; - font-size: 28px; - line-height: 28px; - } - `, - ]; - } - - _closeOverlay() { - this.dispatchEvent(new Event('close-overlay', { bubbles: true })); - } - - render() { - return html` -

Hello person who opened the dialog!

-
-

Look how nice this dialog looks!

-
- - `; - } -} - -customElements.define('styled-dialog-content', StyledDialogContent); diff --git a/packages/ui/docs/components/dialog/use-cases.md b/packages/ui/docs/components/dialog/use-cases.md deleted file mode 100644 index f295536ca..000000000 --- a/packages/ui/docs/components/dialog/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/dialog/use-cases.md) diff --git a/packages/ui/docs/components/drawer/index.md b/packages/ui/docs/components/drawer/index.md deleted file mode 100644 index 27ad39193..000000000 --- a/packages/ui/docs/components/drawer/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/drawer/index.md) diff --git a/packages/ui/docs/components/drawer/overview.md b/packages/ui/docs/components/drawer/overview.md deleted file mode 100644 index 07d4b8c97..000000000 --- a/packages/ui/docs/components/drawer/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/drawer/overview.md) diff --git a/packages/ui/docs/components/drawer/src/demoStyle.js b/packages/ui/docs/components/drawer/src/demoStyle.js deleted file mode 100644 index 763a89c60..000000000 --- a/packages/ui/docs/components/drawer/src/demoStyle.js +++ /dev/null @@ -1,71 +0,0 @@ -import { css } from 'lit'; - -export const demoStyle = css` - .demo-container { - height: 400px; - display: flex; - flex-direction: row; - } - - .demo-container > div { - padding: 8px; - background-color: #f6f8fa; - } - - lion-drawer { - height: 400px; - } - - button { - all: revert !important; - border: 2px solid #000000; - background-color: rgb(239, 239, 239); - } - - .demo-container-top { - height: 400px; - display: flex; - flex-direction: column; - } - - .demo-container-top > div { - padding: 8px; - height: 100%; - background-color: #f6f8fa; - } - - .demo-container-top lion-drawer { - height: auto; - width: 100%; - } - - .demo-container-right { - height: 400px; - display: flex; - flex-direction: row-reverse; - } - - .demo-container-right > div { - padding: 8px; - background-color: #f6f8fa; - } - - .demo-container-right lion-drawer { - height: 400px; - } - - .demo-container-opened { - height: 400px; - display: flex; - flex-direction: row; - } - - .demo-container-opened > div { - padding: 8px; - background-color: #f6f8fa; - } - - .demo-container-opened lion-drawer { - height: 400px; - } -`; diff --git a/packages/ui/docs/components/drawer/use-cases.md b/packages/ui/docs/components/drawer/use-cases.md deleted file mode 100644 index 8a01ab3d2..000000000 --- a/packages/ui/docs/components/drawer/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/drawer/use-cases.md) diff --git a/packages/ui/docs/components/fieldset/index.md b/packages/ui/docs/components/fieldset/index.md deleted file mode 100644 index ecb2013fe..000000000 --- a/packages/ui/docs/components/fieldset/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/fieldset/index.md) diff --git a/packages/ui/docs/components/fieldset/overview.md b/packages/ui/docs/components/fieldset/overview.md deleted file mode 100644 index 180587cbf..000000000 --- a/packages/ui/docs/components/fieldset/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/fieldset/overview.md) diff --git a/packages/ui/docs/components/fieldset/use-cases.md b/packages/ui/docs/components/fieldset/use-cases.md deleted file mode 100644 index 4453a315c..000000000 --- a/packages/ui/docs/components/fieldset/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/fieldset/use-cases.md) diff --git a/packages/ui/docs/components/form/index.md b/packages/ui/docs/components/form/index.md deleted file mode 100644 index 14c7f4b56..000000000 --- a/packages/ui/docs/components/form/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/form/index.md) diff --git a/packages/ui/docs/components/form/overview.md b/packages/ui/docs/components/form/overview.md deleted file mode 100644 index 01f7b6fbb..000000000 --- a/packages/ui/docs/components/form/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/form/overview.md) diff --git a/packages/ui/docs/components/form/use-cases.md b/packages/ui/docs/components/form/use-cases.md deleted file mode 100644 index f30634060..000000000 --- a/packages/ui/docs/components/form/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/form/use-cases.md) diff --git a/packages/ui/docs/components/icon/assets/bugs/bug01.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug01.svg.js deleted file mode 100644 index aea2228a4..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug01.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug02.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug02.svg.js deleted file mode 100644 index f69a54e44..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug02.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug05.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug05.svg.js deleted file mode 100644 index aa49c4c80..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug05.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug06.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug06.svg.js deleted file mode 100644 index 5c59fcbbb..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug06.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug08.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug08.svg.js deleted file mode 100644 index 3f29f4265..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug08.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug12.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug12.svg.js deleted file mode 100644 index 80333cb62..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug12.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug19.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug19.svg.js deleted file mode 100644 index 397d9f61a..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug19.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug23.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug23.svg.js deleted file mode 100644 index 8db0542b8..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug23.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/bugs/bug24.svg.js b/packages/ui/docs/components/icon/assets/bugs/bug24.svg.js deleted file mode 100644 index fe9cdeaa9..000000000 --- a/packages/ui/docs/components/icon/assets/bugs/bug24.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/iconset-bugs.js b/packages/ui/docs/components/icon/assets/iconset-bugs.js deleted file mode 100755 index b1314dec5..000000000 --- a/packages/ui/docs/components/icon/assets/iconset-bugs.js +++ /dev/null @@ -1,11 +0,0 @@ -import bug01 from './bugs/bug01.svg.js'; -import bug02 from './bugs/bug02.svg.js'; -import bug05 from './bugs/bug05.svg.js'; -import bug06 from './bugs/bug06.svg.js'; -import bug08 from './bugs/bug08.svg.js'; -import bug12 from './bugs/bug12.svg.js'; -import bug19 from './bugs/bug19.svg.js'; -import bug23 from './bugs/bug23.svg.js'; -import bug24 from './bugs/bug24.svg.js'; - -export { bug01, bug02, bug05, bug06, bug08, bug12, bug19, bug23, bug24 }; diff --git a/packages/ui/docs/components/icon/assets/iconset-misc.js b/packages/ui/docs/components/icon/assets/iconset-misc.js deleted file mode 100644 index 7541a4a01..000000000 --- a/packages/ui/docs/components/icon/assets/iconset-misc.js +++ /dev/null @@ -1,3 +0,0 @@ -import arrowLeft from './misc/arrowLeft.svg.js'; - -export { arrowLeft }; diff --git a/packages/ui/docs/components/icon/assets/iconset-space.js b/packages/ui/docs/components/icon/assets/iconset-space.js deleted file mode 100755 index 56b4a217b..000000000 --- a/packages/ui/docs/components/icon/assets/iconset-space.js +++ /dev/null @@ -1,31 +0,0 @@ -import alienSpaceship from './space/aliens-spaceship.svg.js'; -import meteor from './space/meteor.svg.js'; -import moonFlag from './space/moon-flag.svg.js'; -import moon from './space/moon.svg.js'; -import night from './space/night.svg.js'; -import orbit from './space/orbit.svg.js'; -import planet from './space/planet.svg.js'; -import robot from './space/robot.svg.js'; -import rocket from './space/rocket.svg.js'; -import satellite from './space/satellite.svg.js'; -import signal from './space/signal.svg.js'; -import spaceHelmet from './space/space-helmet.svg.js'; -import sun from './space/sun.svg.js'; -import telescope from './space/telescope.svg.js'; - -export { - alienSpaceship, - meteor, - moonFlag, - moon, - night, - orbit, - planet, - robot, - rocket, - satellite, - signal, - spaceHelmet, - sun, - telescope, -}; diff --git a/packages/ui/docs/components/icon/assets/misc/arrowLeft.svg.js b/packages/ui/docs/components/icon/assets/misc/arrowLeft.svg.js deleted file mode 100644 index d23823b45..000000000 --- a/packages/ui/docs/components/icon/assets/misc/arrowLeft.svg.js +++ /dev/null @@ -1,6 +0,0 @@ -export default tag => - tag` - - - - `; diff --git a/packages/ui/docs/components/icon/assets/space/aliens-spaceship.svg.js b/packages/ui/docs/components/icon/assets/space/aliens-spaceship.svg.js deleted file mode 100644 index 9438a9317..000000000 --- a/packages/ui/docs/components/icon/assets/space/aliens-spaceship.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/meteor.svg.js b/packages/ui/docs/components/icon/assets/space/meteor.svg.js deleted file mode 100644 index 197133816..000000000 --- a/packages/ui/docs/components/icon/assets/space/meteor.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/moon-flag.svg.js b/packages/ui/docs/components/icon/assets/space/moon-flag.svg.js deleted file mode 100644 index 9283c4010..000000000 --- a/packages/ui/docs/components/icon/assets/space/moon-flag.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/moon.svg.js b/packages/ui/docs/components/icon/assets/space/moon.svg.js deleted file mode 100644 index dbfb92b1c..000000000 --- a/packages/ui/docs/components/icon/assets/space/moon.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/night.svg.js b/packages/ui/docs/components/icon/assets/space/night.svg.js deleted file mode 100644 index ba258dac1..000000000 --- a/packages/ui/docs/components/icon/assets/space/night.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/orbit.svg.js b/packages/ui/docs/components/icon/assets/space/orbit.svg.js deleted file mode 100644 index e3f26ebb0..000000000 --- a/packages/ui/docs/components/icon/assets/space/orbit.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/planet.svg.js b/packages/ui/docs/components/icon/assets/space/planet.svg.js deleted file mode 100644 index 2d0283f43..000000000 --- a/packages/ui/docs/components/icon/assets/space/planet.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/robot.svg.js b/packages/ui/docs/components/icon/assets/space/robot.svg.js deleted file mode 100644 index 73dd887fd..000000000 --- a/packages/ui/docs/components/icon/assets/space/robot.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/rocket.svg.js b/packages/ui/docs/components/icon/assets/space/rocket.svg.js deleted file mode 100644 index 6d7a1fdc6..000000000 --- a/packages/ui/docs/components/icon/assets/space/rocket.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/satellite.svg.js b/packages/ui/docs/components/icon/assets/space/satellite.svg.js deleted file mode 100644 index 363059924..000000000 --- a/packages/ui/docs/components/icon/assets/space/satellite.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/signal.svg.js b/packages/ui/docs/components/icon/assets/space/signal.svg.js deleted file mode 100644 index 8613b0e1f..000000000 --- a/packages/ui/docs/components/icon/assets/space/signal.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/space-helmet.svg.js b/packages/ui/docs/components/icon/assets/space/space-helmet.svg.js deleted file mode 100644 index 4b7b539ef..000000000 --- a/packages/ui/docs/components/icon/assets/space/space-helmet.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/sun.svg.js b/packages/ui/docs/components/icon/assets/space/sun.svg.js deleted file mode 100644 index 11a341845..000000000 --- a/packages/ui/docs/components/icon/assets/space/sun.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/assets/space/telescope.svg.js b/packages/ui/docs/components/icon/assets/space/telescope.svg.js deleted file mode 100644 index 4fdffb02c..000000000 --- a/packages/ui/docs/components/icon/assets/space/telescope.svg.js +++ /dev/null @@ -1,2 +0,0 @@ -export default tag => - tag``; diff --git a/packages/ui/docs/components/icon/index.md b/packages/ui/docs/components/icon/index.md deleted file mode 100644 index 9ad5a221b..000000000 --- a/packages/ui/docs/components/icon/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/icon/index.md) diff --git a/packages/ui/docs/components/icon/overview.md b/packages/ui/docs/components/icon/overview.md deleted file mode 100644 index 985aac84f..000000000 --- a/packages/ui/docs/components/icon/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/icon/overview.md) diff --git a/packages/ui/docs/components/icon/use-cases.md b/packages/ui/docs/components/icon/use-cases.md deleted file mode 100644 index da1f5c94d..000000000 --- a/packages/ui/docs/components/icon/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/icon/use-cases.md) diff --git a/packages/ui/docs/components/index.md b/packages/ui/docs/components/index.md deleted file mode 100644 index a1875dad6..000000000 --- a/packages/ui/docs/components/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../docs/components/index.md) diff --git a/packages/ui/docs/components/input-amount/index.md b/packages/ui/docs/components/input-amount/index.md deleted file mode 100644 index d7169e590..000000000 --- a/packages/ui/docs/components/input-amount/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-amount/index.md) diff --git a/packages/ui/docs/components/input-amount/overview.md b/packages/ui/docs/components/input-amount/overview.md deleted file mode 100644 index 61a60e843..000000000 --- a/packages/ui/docs/components/input-amount/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-amount/overview.md) diff --git a/packages/ui/docs/components/input-amount/use-cases.md b/packages/ui/docs/components/input-amount/use-cases.md deleted file mode 100644 index dda15d2e8..000000000 --- a/packages/ui/docs/components/input-amount/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-amount/use-cases.md) diff --git a/packages/ui/docs/components/input-date/index.md b/packages/ui/docs/components/input-date/index.md deleted file mode 100644 index dde5cb970..000000000 --- a/packages/ui/docs/components/input-date/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-date/index.md) diff --git a/packages/ui/docs/components/input-date/overview.md b/packages/ui/docs/components/input-date/overview.md deleted file mode 100644 index 78c5bc08d..000000000 --- a/packages/ui/docs/components/input-date/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-date/overview.md) diff --git a/packages/ui/docs/components/input-date/use-cases.md b/packages/ui/docs/components/input-date/use-cases.md deleted file mode 100644 index 74ce9e7d4..000000000 --- a/packages/ui/docs/components/input-date/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-date/use-cases.md) diff --git a/packages/ui/docs/components/input-datepicker/index.md b/packages/ui/docs/components/input-datepicker/index.md deleted file mode 100644 index 4a2f5b64b..000000000 --- a/packages/ui/docs/components/input-datepicker/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-datepicker/index.md) diff --git a/packages/ui/docs/components/input-datepicker/overview.md b/packages/ui/docs/components/input-datepicker/overview.md deleted file mode 100644 index 100c360b0..000000000 --- a/packages/ui/docs/components/input-datepicker/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-datepicker/overview.md) diff --git a/packages/ui/docs/components/input-datepicker/use-cases.md b/packages/ui/docs/components/input-datepicker/use-cases.md deleted file mode 100644 index 774e615a9..000000000 --- a/packages/ui/docs/components/input-datepicker/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-datepicker/use-cases.md) diff --git a/packages/ui/docs/components/input-email/index.md b/packages/ui/docs/components/input-email/index.md deleted file mode 100644 index e458f8b25..000000000 --- a/packages/ui/docs/components/input-email/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-email/index.md) diff --git a/packages/ui/docs/components/input-email/overview.md b/packages/ui/docs/components/input-email/overview.md deleted file mode 100644 index 9ee862ee1..000000000 --- a/packages/ui/docs/components/input-email/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-email/overview.md) diff --git a/packages/ui/docs/components/input-email/use-cases.md b/packages/ui/docs/components/input-email/use-cases.md deleted file mode 100644 index a1745df38..000000000 --- a/packages/ui/docs/components/input-email/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-email/use-cases.md) diff --git a/packages/ui/docs/components/input-iban/index.md b/packages/ui/docs/components/input-iban/index.md deleted file mode 100644 index 79f3cb63a..000000000 --- a/packages/ui/docs/components/input-iban/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-iban/index.md) diff --git a/packages/ui/docs/components/input-iban/overview.md b/packages/ui/docs/components/input-iban/overview.md deleted file mode 100644 index e39e8b7b0..000000000 --- a/packages/ui/docs/components/input-iban/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-iban/overview.md) diff --git a/packages/ui/docs/components/input-iban/use-cases.md b/packages/ui/docs/components/input-iban/use-cases.md deleted file mode 100644 index 550452761..000000000 --- a/packages/ui/docs/components/input-iban/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-iban/use-cases.md) diff --git a/packages/ui/docs/components/input-range/index.md b/packages/ui/docs/components/input-range/index.md deleted file mode 100644 index d98da4230..000000000 --- a/packages/ui/docs/components/input-range/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-range/index.md) diff --git a/packages/ui/docs/components/input-range/overview.md b/packages/ui/docs/components/input-range/overview.md deleted file mode 100644 index 68faa1c3d..000000000 --- a/packages/ui/docs/components/input-range/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-range/overview.md) diff --git a/packages/ui/docs/components/input-range/use-cases.md b/packages/ui/docs/components/input-range/use-cases.md deleted file mode 100644 index 23378fe4b..000000000 --- a/packages/ui/docs/components/input-range/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-range/use-cases.md) diff --git a/packages/ui/docs/components/input-stepper/index.md b/packages/ui/docs/components/input-stepper/index.md deleted file mode 100644 index 0de447404..000000000 --- a/packages/ui/docs/components/input-stepper/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-stepper/index.md) diff --git a/packages/ui/docs/components/input-stepper/overview.md b/packages/ui/docs/components/input-stepper/overview.md deleted file mode 100644 index 7b7d03759..000000000 --- a/packages/ui/docs/components/input-stepper/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-stepper/overview.md) diff --git a/packages/ui/docs/components/input-stepper/use-cases.md b/packages/ui/docs/components/input-stepper/use-cases.md deleted file mode 100644 index 05e837bf1..000000000 --- a/packages/ui/docs/components/input-stepper/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-stepper/use-cases.md) diff --git a/packages/ui/docs/components/input-tel-dropdown/examples.md b/packages/ui/docs/components/input-tel-dropdown/examples.md deleted file mode 100644 index fdaa33a5c..000000000 --- a/packages/ui/docs/components/input-tel-dropdown/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel-dropdown/examples.md) diff --git a/packages/ui/docs/components/input-tel-dropdown/index.md b/packages/ui/docs/components/input-tel-dropdown/index.md deleted file mode 100644 index 13fc56bab..000000000 --- a/packages/ui/docs/components/input-tel-dropdown/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel-dropdown/index.md) diff --git a/packages/ui/docs/components/input-tel-dropdown/overview.md b/packages/ui/docs/components/input-tel-dropdown/overview.md deleted file mode 100644 index b718ec4a4..000000000 --- a/packages/ui/docs/components/input-tel-dropdown/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel-dropdown/overview.md) diff --git a/packages/ui/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js b/packages/ui/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js deleted file mode 100644 index 771d7d8ac..000000000 --- a/packages/ui/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +++ /dev/null @@ -1,127 +0,0 @@ -import { ScopedElementsMixin } from '@open-wc/scoped-elements'; -import { html, css } from 'lit'; -import { ref } from 'lit/directives/ref.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { LionInputTelDropdown } from '@lion/ui/input-tel-dropdown.js'; -import { - IntlSelectRich, - IntlOption, - IntlSeparator, -} from '../../select-rich/src/intl-select-rich.js'; - -/** - * @typedef {import('@lion/ui/input-tel-dropdown/types.js').TemplateDataForDropdownInputTel}TemplateDataForDropdownInputTel - */ - -// Example implementation for https://intl-tel-input.com/ -export class IntlInputTelDropdown extends ScopedElementsMixin(LionInputTelDropdown) { - /** - * @configure LitElement - * @enhance LionInputTelDropdown - */ - static styles = [ - super.styles, - css` - :host, - ::slotted(*) { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - } - - :host { - max-width: 300px; - } - - .input-group__container { - width: 100%; - height: 34px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%); - box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%); - -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; - -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - } - - .input-group__input { - padding: 6px; - box-sizing: border-box; - } - - .input-group__input ::slotted(input) { - border: none; - outline: none; - } - - :host([focused]) .input-group__container { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%); - box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%); - } - `, - ]; - - static templates = { - ...(super.templates || {}), - /** - * @param {TemplateDataForDropdownInputTel} templateDataForDropdown - */ - dropdown: templateDataForDropdown => { - const { refs, data } = templateDataForDropdown; - // TODO: once spread directive available, use it per ref (like ref(refs?.dropdown?.ref)) - return html` - - ${data?.regionMetaListPreferred?.length - ? html` ${repeat( - data.regionMetaListPreferred, - regionMeta => regionMeta.regionCode, - regionMeta => - html`${this.templates.dropdownOption(templateDataForDropdown, regionMeta)} `, - )}` - : ''} - ${repeat( - data.regionMetaList, - regionMeta => regionMeta.regionCode, - regionMeta => - html`${this.templates.dropdownOption(templateDataForDropdown, regionMeta)} `, - )} - - `; - }, - /** - * @param {TemplateDataForDropdownInputTel} templateDataForDropdown - * @param {RegionMeta} regionMeta - */ - // eslint-disable-next-line class-methods-use-this - dropdownOption: (templateDataForDropdown, regionMeta) => html` - - - `, - }; - - /** - * @configure ScopedElementsMixin - */ - static scopedElements = { - ...super.scopedElements, - 'intl-select-rich': IntlSelectRich, - 'intl-option': IntlOption, - 'intl-separator': IntlSeparator, - }; -} -customElements.define('intl-input-tel-dropdown', IntlInputTelDropdown); diff --git a/packages/ui/docs/components/input-tel-dropdown/use-cases.md b/packages/ui/docs/components/input-tel-dropdown/use-cases.md deleted file mode 100644 index 309cb6779..000000000 --- a/packages/ui/docs/components/input-tel-dropdown/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel-dropdown/use-cases.md) diff --git a/packages/ui/docs/components/input-tel/index.md b/packages/ui/docs/components/input-tel/index.md deleted file mode 100644 index 5d10504b0..000000000 --- a/packages/ui/docs/components/input-tel/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel/index.md) diff --git a/packages/ui/docs/components/input-tel/overview.md b/packages/ui/docs/components/input-tel/overview.md deleted file mode 100644 index bda694694..000000000 --- a/packages/ui/docs/components/input-tel/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel/overview.md) diff --git a/packages/ui/docs/components/input-tel/src/h-region-code-table.js b/packages/ui/docs/components/input-tel/src/h-region-code-table.js deleted file mode 100644 index bffe63d2e..000000000 --- a/packages/ui/docs/components/input-tel/src/h-region-code-table.js +++ /dev/null @@ -1,109 +0,0 @@ -import { LitElement, css, html } from 'lit'; -import { repeat } from 'lit/directives/repeat.js'; -import { ScopedStylesController } from '@lion/ui/core.js'; -import { regionMetaList } from '../../select-rich/src/regionMetaList.js'; - -export class HRegionCodeTable extends LitElement { - static properties = { - regionMeta: Object, - }; - - constructor() { - super(); - /** @type {ScopedStylesController} */ - this.scopedStylesController = new ScopedStylesController(this); - } - - /** - * @param {CSSResult} scope - */ - static scopedStyles(scope) { - return css` - /* Custom input range styling comes here, be aware that this won't work for polyfilled browsers */ - .${scope} .sr-only { - position: absolute; - top: 0; - width: 1px; - height: 1px; - overflow: hidden; - clip-path: inset(100%); - clip: rect(1px, 1px, 1px, 1px); - white-space: nowrap; - border: 0; - margin: 0; - padding: 0; - } - - .${scope} table { - position: relative; - height: 300px; - } - - .${scope} th { - border-left: none; - border-right: none; - position: sticky; - top: -1px; - } - - .${scope} th .backdrop { - background-color: white; - opacity: 0.95; - filter: blur(4px); - position: absolute; - inset: -5px; - } - - .${scope} th .content { - position: relative; - } - - .${scope} td { - border-left: none; - border-right: none; - } - `; - } - - // Render to light dom, so global table styling will be applied - createRenderRoot() { - return this; - } - - render() { - const finalRegionMetaList = this.regionMetaList || regionMetaList; - return html` - - - - - - - - - - - ${repeat( - finalRegionMetaList, - regionMeta => regionMeta.regionCode, - ({ regionCode, countryCode, flagSymbol, nameForLocale }) => - html` - - - - `, - )} - -
- Region codes -
- country name - - region code - - country code -
${nameForLocale}${regionCode}${countryCode}
- `; - } -} -customElements.define('h-region-code-table', HRegionCodeTable); diff --git a/packages/ui/docs/components/input-tel/use-cases.md b/packages/ui/docs/components/input-tel/use-cases.md deleted file mode 100644 index 74e1a3eec..000000000 --- a/packages/ui/docs/components/input-tel/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input-tel/use-cases.md) diff --git a/packages/ui/docs/components/input/index.md b/packages/ui/docs/components/input/index.md deleted file mode 100644 index f468563ba..000000000 --- a/packages/ui/docs/components/input/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input/index.md) diff --git a/packages/ui/docs/components/input/overview.md b/packages/ui/docs/components/input/overview.md deleted file mode 100644 index ae57c30e9..000000000 --- a/packages/ui/docs/components/input/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input/overview.md) diff --git a/packages/ui/docs/components/input/use-cases.md b/packages/ui/docs/components/input/use-cases.md deleted file mode 100644 index f17d3c2f4..000000000 --- a/packages/ui/docs/components/input/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/input/use-cases.md) diff --git a/packages/ui/docs/components/listbox/index.md b/packages/ui/docs/components/listbox/index.md deleted file mode 100644 index b201a6a71..000000000 --- a/packages/ui/docs/components/listbox/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/listbox/index.md) diff --git a/packages/ui/docs/components/listbox/overview.md b/packages/ui/docs/components/listbox/overview.md deleted file mode 100644 index 4991deda9..000000000 --- a/packages/ui/docs/components/listbox/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/listbox/overview.md) diff --git a/packages/ui/docs/components/listbox/src/listboxData.js b/packages/ui/docs/components/listbox/src/listboxData.js deleted file mode 100644 index 60f89ff59..000000000 --- a/packages/ui/docs/components/listbox/src/listboxData.js +++ /dev/null @@ -1,65 +0,0 @@ -export const listboxData = [ - 'Apple', - 'Artichoke', - 'Asparagus', - 'Banana', - 'Beets', - 'Bell pepper', - 'Broccoli', - 'Brussels sprout', - 'Cabbage', - 'Carrot', - 'Cauliflower', - 'Celery', - 'Chard', - 'Chicory', - 'Corn', - 'Cucumber', - 'Daikon', - 'Date', - 'Edamame', - 'Eggplant', - 'Elderberry', - 'Fennel', - 'Fig', - 'Garlic', - 'Grape', - 'Honeydew melon', - 'Iceberg lettuce', - 'Jerusalem artichoke', - 'Kale', - 'Kiwi', - 'Leek', - 'Lemon', - 'Mango', - 'Mangosteen', - 'Melon', - 'Mushroom', - 'Nectarine', - 'Okra', - 'Olive', - 'Onion', - 'Orange', - 'Parship', - 'Pea', - 'Pear', - 'Pineapple', - 'Potato', - 'Pumpkin', - 'Quince', - 'Radish', - 'Rhubarb', - 'Shallot', - 'Spinach', - 'Squash', - 'Strawberry', - 'Sweet potato', - 'Tomato', - 'Turnip', - 'Ugli fruit', - 'Victoria plum', - 'Watercress', - 'Watermelon', - 'Yam', - 'Zucchini', -]; diff --git a/packages/ui/docs/components/listbox/use-cases.md b/packages/ui/docs/components/listbox/use-cases.md deleted file mode 100644 index 2bec68ef6..000000000 --- a/packages/ui/docs/components/listbox/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/listbox/use-cases.md) diff --git a/packages/ui/docs/components/pagination/index.md b/packages/ui/docs/components/pagination/index.md deleted file mode 100644 index 0754f20a8..000000000 --- a/packages/ui/docs/components/pagination/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/pagination/index.md) diff --git a/packages/ui/docs/components/pagination/overview.md b/packages/ui/docs/components/pagination/overview.md deleted file mode 100644 index 31fb33457..000000000 --- a/packages/ui/docs/components/pagination/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/pagination/overview.md) diff --git a/packages/ui/docs/components/pagination/use-cases.md b/packages/ui/docs/components/pagination/use-cases.md deleted file mode 100644 index c51207a81..000000000 --- a/packages/ui/docs/components/pagination/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/pagination/use-cases.md) diff --git a/packages/ui/docs/components/progress-indicator/assets/my-determinate-progress-bar.js b/packages/ui/docs/components/progress-indicator/assets/my-determinate-progress-bar.js deleted file mode 100644 index 01c7da840..000000000 --- a/packages/ui/docs/components/progress-indicator/assets/my-determinate-progress-bar.js +++ /dev/null @@ -1,30 +0,0 @@ -import { css, html } from 'lit'; -import { LionProgressIndicator } from '@lion/ui/progress-indicator.js'; - -export class MyDeterminateProgressBar extends LionProgressIndicator { - static get styles() { - return [ - css` - :host { - display: block; - position: relative; - width: 100%; - height: 6px; - overflow: hidden; - background-color: #eee; - } - - .progress__filled { - height: inherit; - background-color: green; - } - `, - ]; - } - - _graphicTemplate() { - return html`
`; - } -} - -customElements.define('my-determinate-progress-bar', MyDeterminateProgressBar); diff --git a/packages/ui/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js b/packages/ui/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js deleted file mode 100644 index 2c78b87b7..000000000 --- a/packages/ui/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js +++ /dev/null @@ -1,55 +0,0 @@ -import { html, css } from 'lit'; -import { LionProgressIndicator } from '@lion/ui/progress-indicator.js'; - -export class MyIndeterminateProgressSpinner extends LionProgressIndicator { - static get styles() { - return [ - css` - .progress__icon { - display: inline-block; - width: 48px; - height: 48px; - animation: spinner-rotate 2s linear infinite; - } - - .progress__filled { - animation: spinner-dash 1.35s ease-in-out infinite; - fill: none; - stroke-width: 6px; - stroke: var(--primary-color); - } - - @keyframes spinner-rotate { - to { - transform: rotate(360deg); - } - } - - @keyframes spinner-dash { - 0% { - stroke-dasharray: 6, 122; - stroke-dashoffset: 0; - } - 50% { - stroke-dasharray: 100, 28; - stroke-dashoffset: -16; - } - 100% { - stroke-dasharray: 6, 122; - stroke-dashoffset: -127; - } - } - `, - ]; - } - - _graphicTemplate() { - return html` - - - - `; - } -} - -customElements.define('my-indeterminate-progress-spinner', MyIndeterminateProgressSpinner); diff --git a/packages/ui/docs/components/progress-indicator/examples.md b/packages/ui/docs/components/progress-indicator/examples.md deleted file mode 100644 index f70614a14..000000000 --- a/packages/ui/docs/components/progress-indicator/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/progress-indicator/examples.md) diff --git a/packages/ui/docs/components/progress-indicator/index.md b/packages/ui/docs/components/progress-indicator/index.md deleted file mode 100644 index 502bea066..000000000 --- a/packages/ui/docs/components/progress-indicator/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/progress-indicator/index.md) diff --git a/packages/ui/docs/components/progress-indicator/overview.md b/packages/ui/docs/components/progress-indicator/overview.md deleted file mode 100644 index 0c215b58c..000000000 --- a/packages/ui/docs/components/progress-indicator/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/progress-indicator/overview.md) diff --git a/packages/ui/docs/components/radio-group/index.md b/packages/ui/docs/components/radio-group/index.md deleted file mode 100644 index a85027939..000000000 --- a/packages/ui/docs/components/radio-group/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/radio-group/index.md) diff --git a/packages/ui/docs/components/radio-group/overview.md b/packages/ui/docs/components/radio-group/overview.md deleted file mode 100644 index a5721cc91..000000000 --- a/packages/ui/docs/components/radio-group/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/radio-group/overview.md) diff --git a/packages/ui/docs/components/radio-group/use-cases.md b/packages/ui/docs/components/radio-group/use-cases.md deleted file mode 100644 index ad9a7b3df..000000000 --- a/packages/ui/docs/components/radio-group/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/radio-group/use-cases.md) diff --git a/packages/ui/docs/components/select-rich/examples.md b/packages/ui/docs/components/select-rich/examples.md deleted file mode 100644 index 659cbf21e..000000000 --- a/packages/ui/docs/components/select-rich/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select-rich/examples.md) diff --git a/packages/ui/docs/components/select-rich/index.md b/packages/ui/docs/components/select-rich/index.md deleted file mode 100644 index a32695f88..000000000 --- a/packages/ui/docs/components/select-rich/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select-rich/index.md) diff --git a/packages/ui/docs/components/select-rich/overview.md b/packages/ui/docs/components/select-rich/overview.md deleted file mode 100644 index 9ea9e3849..000000000 --- a/packages/ui/docs/components/select-rich/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select-rich/overview.md) diff --git a/packages/ui/docs/components/select-rich/src/flagStyles.js b/packages/ui/docs/components/select-rich/src/flagStyles.js deleted file mode 100644 index 51bcbfa41..000000000 --- a/packages/ui/docs/components/select-rich/src/flagStyles.js +++ /dev/null @@ -1,1250 +0,0 @@ -import { css, unsafeCSS } from 'lit'; - -const flagsImgUrl = unsafeCSS(new URL('./flags.png', import.meta.url).href); -const flagsImg2xUrl = unsafeCSS(new URL('./flags@2x.png', import.meta.url).href); - -export const flagStyles = css` - .iti { - position: relative; - display: inline-block; - } - .iti * { - box-sizing: border-box; - -moz-box-sizing: border-box; - } - .iti__hide { - display: none; - } - .iti__v-hide { - visibility: hidden; - } - .iti input, - .iti input[type='text'], - .iti input[type='tel'] { - position: relative; - z-index: 0; - margin-top: 0 !important; - margin-bottom: 0 !important; - padding-right: 36px; - margin-right: 0; - } - .iti__flag-container { - position: absolute; - top: 0; - bottom: 0; - right: 0; - padding: 1px; - } - .iti__selected-flag { - z-index: 1; - position: relative; - display: flex; - align-items: center; - height: 100%; - padding: 0 6px 0 8px; - } - .iti__arrow { - margin-left: 6px; - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 4px solid #555; - } - .iti__arrow--up { - border-top: none; - border-bottom: 4px solid #555; - } - .iti__country-list { - position: absolute; - z-index: 2; - list-style: none; - text-align: left; - padding: 0; - margin: 0 0 0 -1px; - box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); - background-color: white; - border: 1px solid #ccc; - white-space: nowrap; - max-height: 200px; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - } - .iti__country-list--dropup { - bottom: 100%; - margin-bottom: -1px; - } - @media (max-width: 500px) { - .iti__country-list { - white-space: normal; - } - } - .iti__flag-box { - display: inline-block; - width: 20px; - } - .iti__divider { - padding-bottom: 5px; - margin-bottom: 5px; - border-bottom: 1px solid #ccc; - } - .iti__country { - padding: 5px 10px; - outline: none; - } - .iti__dial-code { - color: #999; - } - .iti__country.iti__highlight { - background-color: rgba(0, 0, 0, 0.05); - } - .iti__flag-box, - .iti__country-name, - .iti__dial-code { - vertical-align: middle; - } - .iti__flag-box, - .iti__country-name { - margin-right: 6px; - } - .iti--allow-dropdown input, - .iti--allow-dropdown input[type='text'], - .iti--allow-dropdown input[type='tel'], - .iti--separate-dial-code input, - .iti--separate-dial-code input[type='text'], - .iti--separate-dial-code input[type='tel'] { - padding-right: 6px; - padding-left: 52px; - margin-left: 0; - } - .iti--allow-dropdown .iti__flag-container, - .iti--separate-dial-code .iti__flag-container { - right: auto; - left: 0; - } - .iti--allow-dropdown .iti__flag-container:hover { - cursor: pointer; - } - .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag { - background-color: rgba(0, 0, 0, 0.05); - } - .iti--allow-dropdown input[disabled] + .iti__flag-container:hover, - .iti--allow-dropdown input[readonly] + .iti__flag-container:hover { - cursor: default; - } - .iti--allow-dropdown input[disabled] + .iti__flag-container:hover .iti__selected-flag, - .iti--allow-dropdown input[readonly] + .iti__flag-container:hover .iti__selected-flag { - background-color: transparent; - } - .iti--separate-dial-code .iti__selected-flag { - background-color: rgba(0, 0, 0, 0.05); - } - .iti--separate-dial-code .iti__selected-dial-code { - margin-left: 6px; - } - .iti--container { - position: absolute; - top: -1000px; - left: -1000px; - z-index: 1060; - padding: 1px; - } - .iti--container:hover { - cursor: pointer; - } - - .iti-mobile .iti--container { - top: 30px; - bottom: 30px; - left: 30px; - right: 30px; - position: fixed; - } - - .iti-mobile .iti__country-list { - max-height: 100%; - width: 100%; - } - - .iti-mobile .iti__country { - padding: 10px 10px; - line-height: 1.5em; - } - - .iti__flag { - width: 20px; - } - .iti__flag.iti__be { - width: 18px; - } - .iti__flag.iti__ch { - width: 15px; - } - .iti__flag.iti__mc { - width: 19px; - } - .iti__flag.iti__ne { - width: 18px; - } - .iti__flag.iti__np { - width: 13px; - } - .iti__flag.iti__va { - width: 15px; - } - @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .iti__flag { - background-size: 5652px 15px; - } - } - .iti__flag.iti__ac { - height: 10px; - background-position: 0px 0px; - } - .iti__flag.iti__ad { - height: 14px; - background-position: -22px 0px; - } - .iti__flag.iti__ae { - height: 10px; - background-position: -44px 0px; - } - .iti__flag.iti__af { - height: 14px; - background-position: -66px 0px; - } - .iti__flag.iti__ag { - height: 14px; - background-position: -88px 0px; - } - .iti__flag.iti__ai { - height: 10px; - background-position: -110px 0px; - } - .iti__flag.iti__al { - height: 15px; - background-position: -132px 0px; - } - .iti__flag.iti__am { - height: 10px; - background-position: -154px 0px; - } - .iti__flag.iti__ao { - height: 14px; - background-position: -176px 0px; - } - .iti__flag.iti__aq { - height: 14px; - background-position: -198px 0px; - } - .iti__flag.iti__ar { - height: 13px; - background-position: -220px 0px; - } - .iti__flag.iti__as { - height: 10px; - background-position: -242px 0px; - } - .iti__flag.iti__at { - height: 14px; - background-position: -264px 0px; - } - .iti__flag.iti__au { - height: 10px; - background-position: -286px 0px; - } - .iti__flag.iti__aw { - height: 14px; - background-position: -308px 0px; - } - .iti__flag.iti__ax { - height: 13px; - background-position: -330px 0px; - } - .iti__flag.iti__az { - height: 10px; - background-position: -352px 0px; - } - .iti__flag.iti__ba { - height: 10px; - background-position: -374px 0px; - } - .iti__flag.iti__bb { - height: 14px; - background-position: -396px 0px; - } - .iti__flag.iti__bd { - height: 12px; - background-position: -418px 0px; - } - .iti__flag.iti__be { - height: 15px; - background-position: -440px 0px; - } - .iti__flag.iti__bf { - height: 14px; - background-position: -460px 0px; - } - .iti__flag.iti__bg { - height: 12px; - background-position: -482px 0px; - } - .iti__flag.iti__bh { - height: 12px; - background-position: -504px 0px; - } - .iti__flag.iti__bi { - height: 12px; - background-position: -526px 0px; - } - .iti__flag.iti__bj { - height: 14px; - background-position: -548px 0px; - } - .iti__flag.iti__bl { - height: 14px; - background-position: -570px 0px; - } - .iti__flag.iti__bm { - height: 10px; - background-position: -592px 0px; - } - .iti__flag.iti__bn { - height: 10px; - background-position: -614px 0px; - } - .iti__flag.iti__bo { - height: 14px; - background-position: -636px 0px; - } - .iti__flag.iti__bq { - height: 14px; - background-position: -658px 0px; - } - .iti__flag.iti__br { - height: 14px; - background-position: -680px 0px; - } - .iti__flag.iti__bs { - height: 10px; - background-position: -702px 0px; - } - .iti__flag.iti__bt { - height: 14px; - background-position: -724px 0px; - } - .iti__flag.iti__bv { - height: 15px; - background-position: -746px 0px; - } - .iti__flag.iti__bw { - height: 14px; - background-position: -768px 0px; - } - .iti__flag.iti__by { - height: 10px; - background-position: -790px 0px; - } - .iti__flag.iti__bz { - height: 14px; - background-position: -812px 0px; - } - .iti__flag.iti__ca { - height: 10px; - background-position: -834px 0px; - } - .iti__flag.iti__cc { - height: 10px; - background-position: -856px 0px; - } - .iti__flag.iti__cd { - height: 15px; - background-position: -878px 0px; - } - .iti__flag.iti__cf { - height: 14px; - background-position: -900px 0px; - } - .iti__flag.iti__cg { - height: 14px; - background-position: -922px 0px; - } - .iti__flag.iti__ch { - height: 15px; - background-position: -944px 0px; - } - .iti__flag.iti__ci { - height: 14px; - background-position: -961px 0px; - } - .iti__flag.iti__ck { - height: 10px; - background-position: -983px 0px; - } - .iti__flag.iti__cl { - height: 14px; - background-position: -1005px 0px; - } - .iti__flag.iti__cm { - height: 14px; - background-position: -1027px 0px; - } - .iti__flag.iti__cn { - height: 14px; - background-position: -1049px 0px; - } - .iti__flag.iti__co { - height: 14px; - background-position: -1071px 0px; - } - .iti__flag.iti__cp { - height: 14px; - background-position: -1093px 0px; - } - .iti__flag.iti__cr { - height: 12px; - background-position: -1115px 0px; - } - .iti__flag.iti__cu { - height: 10px; - background-position: -1137px 0px; - } - .iti__flag.iti__cv { - height: 12px; - background-position: -1159px 0px; - } - .iti__flag.iti__cw { - height: 14px; - background-position: -1181px 0px; - } - .iti__flag.iti__cx { - height: 10px; - background-position: -1203px 0px; - } - .iti__flag.iti__cy { - height: 14px; - background-position: -1225px 0px; - } - .iti__flag.iti__cz { - height: 14px; - background-position: -1247px 0px; - } - .iti__flag.iti__de { - height: 12px; - background-position: -1269px 0px; - } - .iti__flag.iti__dg { - height: 10px; - background-position: -1291px 0px; - } - .iti__flag.iti__dj { - height: 14px; - background-position: -1313px 0px; - } - .iti__flag.iti__dk { - height: 15px; - background-position: -1335px 0px; - } - .iti__flag.iti__dm { - height: 10px; - background-position: -1357px 0px; - } - .iti__flag.iti__do { - height: 14px; - background-position: -1379px 0px; - } - .iti__flag.iti__dz { - height: 14px; - background-position: -1401px 0px; - } - .iti__flag.iti__ea { - height: 14px; - background-position: -1423px 0px; - } - .iti__flag.iti__ec { - height: 14px; - background-position: -1445px 0px; - } - .iti__flag.iti__ee { - height: 13px; - background-position: -1467px 0px; - } - .iti__flag.iti__eg { - height: 14px; - background-position: -1489px 0px; - } - .iti__flag.iti__eh { - height: 10px; - background-position: -1511px 0px; - } - .iti__flag.iti__er { - height: 10px; - background-position: -1533px 0px; - } - .iti__flag.iti__es { - height: 14px; - background-position: -1555px 0px; - } - .iti__flag.iti__et { - height: 10px; - background-position: -1577px 0px; - } - .iti__flag.iti__eu { - height: 14px; - background-position: -1599px 0px; - } - .iti__flag.iti__fi { - height: 12px; - background-position: -1621px 0px; - } - .iti__flag.iti__fj { - height: 10px; - background-position: -1643px 0px; - } - .iti__flag.iti__fk { - height: 10px; - background-position: -1665px 0px; - } - .iti__flag.iti__fm { - height: 11px; - background-position: -1687px 0px; - } - .iti__flag.iti__fo { - height: 15px; - background-position: -1709px 0px; - } - .iti__flag.iti__fr { - height: 14px; - background-position: -1731px 0px; - } - .iti__flag.iti__ga { - height: 15px; - background-position: -1753px 0px; - } - .iti__flag.iti__gb { - height: 10px; - background-position: -1775px 0px; - } - .iti__flag.iti__gd { - height: 12px; - background-position: -1797px 0px; - } - .iti__flag.iti__ge { - height: 14px; - background-position: -1819px 0px; - } - .iti__flag.iti__gf { - height: 14px; - background-position: -1841px 0px; - } - .iti__flag.iti__gg { - height: 14px; - background-position: -1863px 0px; - } - .iti__flag.iti__gh { - height: 14px; - background-position: -1885px 0px; - } - .iti__flag.iti__gi { - height: 10px; - background-position: -1907px 0px; - } - .iti__flag.iti__gl { - height: 14px; - background-position: -1929px 0px; - } - .iti__flag.iti__gm { - height: 14px; - background-position: -1951px 0px; - } - .iti__flag.iti__gn { - height: 14px; - background-position: -1973px 0px; - } - .iti__flag.iti__gp { - height: 14px; - background-position: -1995px 0px; - } - .iti__flag.iti__gq { - height: 14px; - background-position: -2017px 0px; - } - .iti__flag.iti__gr { - height: 14px; - background-position: -2039px 0px; - } - .iti__flag.iti__gs { - height: 10px; - background-position: -2061px 0px; - } - .iti__flag.iti__gt { - height: 13px; - background-position: -2083px 0px; - } - .iti__flag.iti__gu { - height: 11px; - background-position: -2105px 0px; - } - .iti__flag.iti__gw { - height: 10px; - background-position: -2127px 0px; - } - .iti__flag.iti__gy { - height: 12px; - background-position: -2149px 0px; - } - .iti__flag.iti__hk { - height: 14px; - background-position: -2171px 0px; - } - .iti__flag.iti__hm { - height: 10px; - background-position: -2193px 0px; - } - .iti__flag.iti__hn { - height: 10px; - background-position: -2215px 0px; - } - .iti__flag.iti__hr { - height: 10px; - background-position: -2237px 0px; - } - .iti__flag.iti__ht { - height: 12px; - background-position: -2259px 0px; - } - .iti__flag.iti__hu { - height: 10px; - background-position: -2281px 0px; - } - .iti__flag.iti__ic { - height: 14px; - background-position: -2303px 0px; - } - .iti__flag.iti__id { - height: 14px; - background-position: -2325px 0px; - } - .iti__flag.iti__ie { - height: 10px; - background-position: -2347px 0px; - } - .iti__flag.iti__il { - height: 15px; - background-position: -2369px 0px; - } - .iti__flag.iti__im { - height: 10px; - background-position: -2391px 0px; - } - .iti__flag.iti__in { - height: 14px; - background-position: -2413px 0px; - } - .iti__flag.iti__io { - height: 10px; - background-position: -2435px 0px; - } - .iti__flag.iti__iq { - height: 14px; - background-position: -2457px 0px; - } - .iti__flag.iti__ir { - height: 12px; - background-position: -2479px 0px; - } - .iti__flag.iti__is { - height: 15px; - background-position: -2501px 0px; - } - .iti__flag.iti__it { - height: 14px; - background-position: -2523px 0px; - } - .iti__flag.iti__je { - height: 12px; - background-position: -2545px 0px; - } - .iti__flag.iti__jm { - height: 10px; - background-position: -2567px 0px; - } - .iti__flag.iti__jo { - height: 10px; - background-position: -2589px 0px; - } - .iti__flag.iti__jp { - height: 14px; - background-position: -2611px 0px; - } - .iti__flag.iti__ke { - height: 14px; - background-position: -2633px 0px; - } - .iti__flag.iti__kg { - height: 12px; - background-position: -2655px 0px; - } - .iti__flag.iti__kh { - height: 13px; - background-position: -2677px 0px; - } - .iti__flag.iti__ki { - height: 10px; - background-position: -2699px 0px; - } - .iti__flag.iti__km { - height: 12px; - background-position: -2721px 0px; - } - .iti__flag.iti__kn { - height: 14px; - background-position: -2743px 0px; - } - .iti__flag.iti__kp { - height: 10px; - background-position: -2765px 0px; - } - .iti__flag.iti__kr { - height: 14px; - background-position: -2787px 0px; - } - .iti__flag.iti__kw { - height: 10px; - background-position: -2809px 0px; - } - .iti__flag.iti__ky { - height: 10px; - background-position: -2831px 0px; - } - .iti__flag.iti__kz { - height: 10px; - background-position: -2853px 0px; - } - .iti__flag.iti__la { - height: 14px; - background-position: -2875px 0px; - } - .iti__flag.iti__lb { - height: 14px; - background-position: -2897px 0px; - } - .iti__flag.iti__lc { - height: 10px; - background-position: -2919px 0px; - } - .iti__flag.iti__li { - height: 12px; - background-position: -2941px 0px; - } - .iti__flag.iti__lk { - height: 10px; - background-position: -2963px 0px; - } - .iti__flag.iti__lr { - height: 11px; - background-position: -2985px 0px; - } - .iti__flag.iti__ls { - height: 14px; - background-position: -3007px 0px; - } - .iti__flag.iti__lt { - height: 12px; - background-position: -3029px 0px; - } - .iti__flag.iti__lu { - height: 12px; - background-position: -3051px 0px; - } - .iti__flag.iti__lv { - height: 10px; - background-position: -3073px 0px; - } - .iti__flag.iti__ly { - height: 10px; - background-position: -3095px 0px; - } - .iti__flag.iti__ma { - height: 14px; - background-position: -3117px 0px; - } - .iti__flag.iti__mc { - height: 15px; - background-position: -3139px 0px; - } - .iti__flag.iti__md { - height: 10px; - background-position: -3160px 0px; - } - .iti__flag.iti__me { - height: 10px; - background-position: -3182px 0px; - } - .iti__flag.iti__mf { - height: 14px; - background-position: -3204px 0px; - } - .iti__flag.iti__mg { - height: 14px; - background-position: -3226px 0px; - } - .iti__flag.iti__mh { - height: 11px; - background-position: -3248px 0px; - } - .iti__flag.iti__mk { - height: 10px; - background-position: -3270px 0px; - } - .iti__flag.iti__ml { - height: 14px; - background-position: -3292px 0px; - } - .iti__flag.iti__mm { - height: 14px; - background-position: -3314px 0px; - } - .iti__flag.iti__mn { - height: 10px; - background-position: -3336px 0px; - } - .iti__flag.iti__mo { - height: 14px; - background-position: -3358px 0px; - } - .iti__flag.iti__mp { - height: 10px; - background-position: -3380px 0px; - } - .iti__flag.iti__mq { - height: 14px; - background-position: -3402px 0px; - } - .iti__flag.iti__mr { - height: 14px; - background-position: -3424px 0px; - } - .iti__flag.iti__ms { - height: 10px; - background-position: -3446px 0px; - } - .iti__flag.iti__mt { - height: 14px; - background-position: -3468px 0px; - } - .iti__flag.iti__mu { - height: 14px; - background-position: -3490px 0px; - } - .iti__flag.iti__mv { - height: 14px; - background-position: -3512px 0px; - } - .iti__flag.iti__mw { - height: 14px; - background-position: -3534px 0px; - } - .iti__flag.iti__mx { - height: 12px; - background-position: -3556px 0px; - } - .iti__flag.iti__my { - height: 10px; - background-position: -3578px 0px; - } - .iti__flag.iti__mz { - height: 14px; - background-position: -3600px 0px; - } - .iti__flag.iti__na { - height: 14px; - background-position: -3622px 0px; - } - .iti__flag.iti__nc { - height: 10px; - background-position: -3644px 0px; - } - .iti__flag.iti__ne { - height: 15px; - background-position: -3666px 0px; - } - .iti__flag.iti__nf { - height: 10px; - background-position: -3686px 0px; - } - .iti__flag.iti__ng { - height: 10px; - background-position: -3708px 0px; - } - .iti__flag.iti__ni { - height: 12px; - background-position: -3730px 0px; - } - .iti__flag.iti__nl { - height: 14px; - background-position: -3752px 0px; - } - .iti__flag.iti__no { - height: 15px; - background-position: -3774px 0px; - } - .iti__flag.iti__np { - height: 15px; - background-position: -3796px 0px; - } - .iti__flag.iti__nr { - height: 10px; - background-position: -3811px 0px; - } - .iti__flag.iti__nu { - height: 10px; - background-position: -3833px 0px; - } - .iti__flag.iti__nz { - height: 10px; - background-position: -3855px 0px; - } - .iti__flag.iti__om { - height: 10px; - background-position: -3877px 0px; - } - .iti__flag.iti__pa { - height: 14px; - background-position: -3899px 0px; - } - .iti__flag.iti__pe { - height: 14px; - background-position: -3921px 0px; - } - .iti__flag.iti__pf { - height: 14px; - background-position: -3943px 0px; - } - .iti__flag.iti__pg { - height: 15px; - background-position: -3965px 0px; - } - .iti__flag.iti__ph { - height: 10px; - background-position: -3987px 0px; - } - .iti__flag.iti__pk { - height: 14px; - background-position: -4009px 0px; - } - .iti__flag.iti__pl { - height: 13px; - background-position: -4031px 0px; - } - .iti__flag.iti__pm { - height: 14px; - background-position: -4053px 0px; - } - .iti__flag.iti__pn { - height: 10px; - background-position: -4075px 0px; - } - .iti__flag.iti__pr { - height: 14px; - background-position: -4097px 0px; - } - .iti__flag.iti__ps { - height: 10px; - background-position: -4119px 0px; - } - .iti__flag.iti__pt { - height: 14px; - background-position: -4141px 0px; - } - .iti__flag.iti__pw { - height: 13px; - background-position: -4163px 0px; - } - .iti__flag.iti__py { - height: 11px; - background-position: -4185px 0px; - } - .iti__flag.iti__qa { - height: 8px; - background-position: -4207px 0px; - } - .iti__flag.iti__re { - height: 14px; - background-position: -4229px 0px; - } - .iti__flag.iti__ro { - height: 14px; - background-position: -4251px 0px; - } - .iti__flag.iti__rs { - height: 14px; - background-position: -4273px 0px; - } - .iti__flag.iti__ru { - height: 14px; - background-position: -4295px 0px; - } - .iti__flag.iti__rw { - height: 14px; - background-position: -4317px 0px; - } - .iti__flag.iti__sa { - height: 14px; - background-position: -4339px 0px; - } - .iti__flag.iti__sb { - height: 10px; - background-position: -4361px 0px; - } - .iti__flag.iti__sc { - height: 10px; - background-position: -4383px 0px; - } - .iti__flag.iti__sd { - height: 10px; - background-position: -4405px 0px; - } - .iti__flag.iti__se { - height: 13px; - background-position: -4427px 0px; - } - .iti__flag.iti__sg { - height: 14px; - background-position: -4449px 0px; - } - .iti__flag.iti__sh { - height: 10px; - background-position: -4471px 0px; - } - .iti__flag.iti__si { - height: 10px; - background-position: -4493px 0px; - } - .iti__flag.iti__sj { - height: 15px; - background-position: -4515px 0px; - } - .iti__flag.iti__sk { - height: 14px; - background-position: -4537px 0px; - } - .iti__flag.iti__sl { - height: 14px; - background-position: -4559px 0px; - } - .iti__flag.iti__sm { - height: 15px; - background-position: -4581px 0px; - } - .iti__flag.iti__sn { - height: 14px; - background-position: -4603px 0px; - } - .iti__flag.iti__so { - height: 14px; - background-position: -4625px 0px; - } - .iti__flag.iti__sr { - height: 14px; - background-position: -4647px 0px; - } - .iti__flag.iti__ss { - height: 10px; - background-position: -4669px 0px; - } - .iti__flag.iti__st { - height: 10px; - background-position: -4691px 0px; - } - .iti__flag.iti__sv { - height: 12px; - background-position: -4713px 0px; - } - .iti__flag.iti__sx { - height: 14px; - background-position: -4735px 0px; - } - .iti__flag.iti__sy { - height: 14px; - background-position: -4757px 0px; - } - .iti__flag.iti__sz { - height: 14px; - background-position: -4779px 0px; - } - .iti__flag.iti__ta { - height: 10px; - background-position: -4801px 0px; - } - .iti__flag.iti__tc { - height: 10px; - background-position: -4823px 0px; - } - .iti__flag.iti__td { - height: 14px; - background-position: -4845px 0px; - } - .iti__flag.iti__tf { - height: 14px; - background-position: -4867px 0px; - } - .iti__flag.iti__tg { - height: 13px; - background-position: -4889px 0px; - } - .iti__flag.iti__th { - height: 14px; - background-position: -4911px 0px; - } - .iti__flag.iti__tj { - height: 10px; - background-position: -4933px 0px; - } - .iti__flag.iti__tk { - height: 10px; - background-position: -4955px 0px; - } - .iti__flag.iti__tl { - height: 10px; - background-position: -4977px 0px; - } - .iti__flag.iti__tm { - height: 14px; - background-position: -4999px 0px; - } - .iti__flag.iti__tn { - height: 14px; - background-position: -5021px 0px; - } - .iti__flag.iti__to { - height: 10px; - background-position: -5043px 0px; - } - .iti__flag.iti__tr { - height: 14px; - background-position: -5065px 0px; - } - .iti__flag.iti__tt { - height: 12px; - background-position: -5087px 0px; - } - .iti__flag.iti__tv { - height: 10px; - background-position: -5109px 0px; - } - .iti__flag.iti__tw { - height: 14px; - background-position: -5131px 0px; - } - .iti__flag.iti__tz { - height: 14px; - background-position: -5153px 0px; - } - .iti__flag.iti__ua { - height: 14px; - background-position: -5175px 0px; - } - .iti__flag.iti__ug { - height: 14px; - background-position: -5197px 0px; - } - .iti__flag.iti__um { - height: 11px; - background-position: -5219px 0px; - } - .iti__flag.iti__un { - height: 14px; - background-position: -5241px 0px; - } - .iti__flag.iti__us { - height: 11px; - background-position: -5263px 0px; - } - .iti__flag.iti__uy { - height: 14px; - background-position: -5285px 0px; - } - .iti__flag.iti__uz { - height: 10px; - background-position: -5307px 0px; - } - .iti__flag.iti__va { - height: 15px; - background-position: -5329px 0px; - } - .iti__flag.iti__vc { - height: 14px; - background-position: -5346px 0px; - } - .iti__flag.iti__ve { - height: 14px; - background-position: -5368px 0px; - } - .iti__flag.iti__vg { - height: 10px; - background-position: -5390px 0px; - } - .iti__flag.iti__vi { - height: 14px; - background-position: -5412px 0px; - } - .iti__flag.iti__vn { - height: 14px; - background-position: -5434px 0px; - } - .iti__flag.iti__vu { - height: 12px; - background-position: -5456px 0px; - } - .iti__flag.iti__wf { - height: 14px; - background-position: -5478px 0px; - } - .iti__flag.iti__ws { - height: 10px; - background-position: -5500px 0px; - } - .iti__flag.iti__xk { - height: 15px; - background-position: -5522px 0px; - } - .iti__flag.iti__ye { - height: 14px; - background-position: -5544px 0px; - } - .iti__flag.iti__yt { - height: 14px; - background-position: -5566px 0px; - } - .iti__flag.iti__za { - height: 14px; - background-position: -5588px 0px; - } - .iti__flag.iti__zm { - height: 14px; - background-position: -5610px 0px; - } - .iti__flag.iti__zw { - height: 10px; - background-position: -5632px 0px; - } - - .iti__flag { - height: 15px; - box-shadow: 0px 0px 1px 0px #888; - background-image: url(${flagsImgUrl}); - background-repeat: no-repeat; - background-color: #dbdbdb; - background-position: 20px 0; - } - @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - .iti__flag { - background-image: url(${flagsImg2xUrl}); - } - } - - .iti__flag.iti__np { - background-color: transparent; - } -`; diff --git a/packages/ui/docs/components/select-rich/src/flags.png b/packages/ui/docs/components/select-rich/src/flags.png deleted file mode 100644 index 3fa1bec9fbb5dc85e375efff7510ab79f5a0e020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70857 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 LNkvXXu0mjfG;JOG diff --git a/packages/ui/docs/components/select-rich/src/flags@2x.png b/packages/ui/docs/components/select-rich/src/flags@2x.png deleted file mode 100644 index 7cc3ed3fba34e6e23f2dcf5f300898ef4e2fbd0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174369 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

1coj(6bdsU5HH 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

rwRU|s)cNLjgI$ha?`vHjw_;(_Jf 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%0DxAJw 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 diff --git a/packages/ui/docs/components/select-rich/src/intl-select-rich.js b/packages/ui/docs/components/select-rich/src/intl-select-rich.js deleted file mode 100644 index e6bb088cf..000000000 --- a/packages/ui/docs/components/select-rich/src/intl-select-rich.js +++ /dev/null @@ -1,194 +0,0 @@ -import { html, css, LitElement } from 'lit'; -import { LionSelectRich, LionSelectInvoker } from '@lion/ui/select-rich.js'; -import { LionOption } from '@lion/ui/listbox.js'; -import { flagStyles } from './flagStyles.js'; - -/** - * @typedef {import('@lion/ui/core.js').RenderOptions} RenderOptions - * @typedef {import('@lion/ui/input-tel/types/types.js').RegionAndCountryCode} RegionAndCountryCode - * @typedef {import('@lion/ui/input-tel/types/types.js').TemplateDataForDropdownInputTel} TemplateDataForDropdownInputTel - * @typedef {{countryCode: string; regionCode: string; nameForRegion: string; nameForLocale: string}} RegionMetaList - * @typedef {TemplateDataForDropdownInputTel & {data: {regionMetaList:RegionMetaList}}} TemplateDataForIntlInputTel - */ - -export class IntlOption extends LionOption { - static properties = { regionMeta: { type: Object } }; - - static styles = [ - super.styles, - flagStyles, - css` - :host { - padding: 5px 10px; - outline: none; - } - - :host(:hover), - :host([active]), - :host([checked]) { - background-color: rgba(0, 0, 0, 0.05); - } - `, - ]; - - get _regionCode() { - return this.choiceValue?.toUpperCase(); - } - - render() { - const ctor = /** @type {typeof IntlOption} */ (this.constructor); - return ctor._contentTemplate({ - data: this.regionMeta, - }); - } - - static _contentTemplate({ data: { regionCode, countryCode, nameForLocale, nameForRegion } }) { - return html` -

-
-
- ${nameForLocale} (${nameForRegion}) - +${countryCode} - `; - } -} -customElements.define('intl-option', IntlOption); - -class IntlSelectInvoker extends LionSelectInvoker { - /** - * @configure LitElement - * @enhance LionSelectInvoker - */ - static styles = [ - super.styles, - flagStyles, - css` - :host { - /** TODO: avoid importants; should actually be configured in overlay */ - width: auto !important; - background-color: transparent; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - } - - #content-wrapper { - display: flex; - align-items: center; - } - `, - ]; - - /** - * @configure SlotMixin - * @override LionSelectInvoker - */ - get slots() { - return {}; - } - - /** - * @override LionSelectInvoker - */ - render() { - const ctor = /** @type {typeof LionSelectInvoker} */ (this.constructor); - return ctor._mainTemplate(this._templateData); - } - - get _templateData() { - return { - data: { selectedElement: this.selectedElement, hostElement: this.hostElement }, - }; - } - - static _mainTemplate(templateData) { - return html`
${this._contentTemplate(templateData)}
`; - } - - static _contentTemplate({ data: { selectedElement, hostElement } }) { - if (!selectedElement) { - return ``; - } - return html` -
-
- `; - } -} -customElements.define('intl-select-invoker', IntlSelectInvoker); - -export class IntlSeparator extends LitElement { - static styles = [ - css` - :host { - display: block; - padding-bottom: 5px; - margin-bottom: 5px; - border-bottom: 1px solid #ccc; - } - `, - ]; - - /** - * @lifecycle platform - */ - connectedCallback() { - super.connectedCallback(); - this.setAttribute('role', 'separator'); - } -} -customElements.define('intl-separator', IntlSeparator); - -export class IntlSelectRich extends LionSelectRich { - static styles = [ - super.styles, - css` - :host, - ::slotted(*) { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - } - - ::slotted([role='listbox']) { - margin-left: -3px; - display: block; - white-space: nowrap; - max-height: 200px; - overflow-y: scroll; - position: absolute; - z-index: 2; - list-style: none; - text-align: left; - padding: 0; - margin: 0 0 0 -1px; - box-shadow: 1px 1px 4px rgb(0 0 0 / 20%); - background-color: white; - border: 1px solid #ccc; - -webkit-overflow-scrolling: touch; - outline: none; - } - - .form-field__group-two, - .input-group, - .input-group__container, - .input-group__input { - height: 100%; - } - `, - ]; - - /** - * @configure ScopedElementsMixin - */ - static scopedElements = { 'intl-select-invoker': IntlSelectInvoker }; - - /** - * @configure SlotMixin - */ - slots = { - ...super.slots, - invoker: () => html``, - }; -} -customElements.define('intl-select-rich', IntlSelectRich); diff --git a/packages/ui/docs/components/select-rich/src/regionMetaList.js b/packages/ui/docs/components/select-rich/src/regionMetaList.js deleted file mode 100644 index 6fee46ece..000000000 --- a/packages/ui/docs/components/select-rich/src/regionMetaList.js +++ /dev/null @@ -1,1717 +0,0 @@ -export const regionMetaList = [ - { - regionCode: 'AC', - countryCode: 247, - flagSymbol: '🇦🇨', - nameForLocale: 'Ascension Island', - nameForRegion: 'Ascension Island', - }, - { - regionCode: 'AD', - countryCode: 376, - flagSymbol: '🇦🇩', - nameForLocale: 'Andorra', - nameForRegion: 'Andorra', - }, - { - regionCode: 'AE', - countryCode: 971, - flagSymbol: '🇦🇪', - nameForLocale: 'United Arab Emirates', - nameForRegion: 'United Arab Emirates', - }, - { - regionCode: 'AF', - countryCode: 93, - flagSymbol: '🇦🇫', - nameForLocale: 'Afghanistan', - nameForRegion: 'Afghanistan', - }, - { - regionCode: 'AG', - countryCode: 1, - flagSymbol: '🇦🇬', - nameForLocale: 'Antigua & Barbuda', - nameForRegion: 'Antigua & Barbuda', - }, - { - regionCode: 'AI', - countryCode: 1, - flagSymbol: '🇦🇮', - nameForLocale: 'Anguilla', - nameForRegion: 'Anguilla', - }, - { - regionCode: 'AL', - countryCode: 355, - flagSymbol: '🇦🇱', - nameForLocale: 'Albania', - nameForRegion: 'Albania', - }, - { - regionCode: 'AM', - countryCode: 374, - flagSymbol: '🇦🇲', - nameForLocale: 'Armenia', - nameForRegion: 'አርሜኒያ', - }, - { - regionCode: 'AO', - countryCode: 244, - flagSymbol: '🇦🇴', - nameForLocale: 'Angola', - nameForRegion: 'Angola', - }, - { - regionCode: 'AR', - countryCode: 54, - flagSymbol: '🇦🇷', - nameForLocale: 'Argentina', - nameForRegion: 'الأرجنتين', - }, - { - regionCode: 'AS', - countryCode: 1, - flagSymbol: '🇦🇸', - nameForLocale: 'American Samoa', - nameForRegion: 'American Samoa', - }, - { - regionCode: 'AT', - countryCode: 43, - flagSymbol: '🇦🇹', - nameForLocale: 'Austria', - nameForRegion: 'Austria', - }, - { - regionCode: 'AU', - countryCode: 61, - flagSymbol: '🇦🇺', - nameForLocale: 'Australia', - nameForRegion: 'Australia', - }, - { - regionCode: 'AW', - countryCode: 297, - flagSymbol: '🇦🇼', - nameForLocale: 'Aruba', - nameForRegion: 'Aruba', - }, - { - regionCode: 'AX', - countryCode: 358, - flagSymbol: '🇦🇽', - nameForLocale: 'Åland Islands', - nameForRegion: 'Åland Islands', - }, - { - regionCode: 'AZ', - countryCode: 994, - flagSymbol: '🇦🇿', - nameForLocale: 'Azerbaijan', - nameForRegion: 'Azerbaijan', - }, - { - regionCode: 'BA', - countryCode: 387, - flagSymbol: '🇧🇦', - nameForLocale: 'Bosnia & Herzegovina', - nameForRegion: 'Bosnia & Herzegovina', - }, - { - regionCode: 'BB', - countryCode: 1, - flagSymbol: '🇧🇧', - nameForLocale: 'Barbados', - nameForRegion: 'Barbados', - }, - { - regionCode: 'BD', - countryCode: 880, - flagSymbol: '🇧🇩', - nameForLocale: 'Bangladesh', - nameForRegion: 'Bangladesh', - }, - { - regionCode: 'BE', - countryCode: 32, - flagSymbol: '🇧🇪', - nameForLocale: 'Belgium', - nameForRegion: 'Belgium', - }, - { - regionCode: 'BF', - countryCode: 226, - flagSymbol: '🇧🇫', - nameForLocale: 'Burkina Faso', - nameForRegion: 'Burkina Faso', - }, - { - regionCode: 'BG', - countryCode: 359, - flagSymbol: '🇧🇬', - nameForLocale: 'Bulgaria', - nameForRegion: 'България', - }, - { - regionCode: 'BH', - countryCode: 973, - flagSymbol: '🇧🇭', - nameForLocale: 'Bahrain', - nameForRegion: 'Bahrain', - }, - { - regionCode: 'BI', - countryCode: 257, - flagSymbol: '🇧🇮', - nameForLocale: 'Burundi', - nameForRegion: 'Burundi', - }, - { - regionCode: 'BJ', - countryCode: 229, - flagSymbol: '🇧🇯', - nameForLocale: 'Benin', - nameForRegion: 'Benin', - }, - { - regionCode: 'BL', - countryCode: 590, - flagSymbol: '🇧🇱', - nameForLocale: 'St. Barthélemy', - nameForRegion: 'St Barthélemy', - }, - { - regionCode: 'BM', - countryCode: 1, - flagSymbol: '🇧🇲', - nameForLocale: 'Bermuda', - nameForRegion: 'Bermuda', - }, - { - regionCode: 'BN', - countryCode: 673, - flagSymbol: '🇧🇳', - nameForLocale: 'Brunei', - nameForRegion: 'ব্রুনেই', - }, - { - regionCode: 'BO', - countryCode: 591, - flagSymbol: '🇧🇴', - nameForLocale: 'Bolivia', - nameForRegion: 'Bolivia', - }, - { - regionCode: 'BQ', - countryCode: 599, - flagSymbol: '🇧🇶', - nameForLocale: 'Caribbean Netherlands', - nameForRegion: 'Caribbean Netherlands', - }, - { - regionCode: 'BR', - countryCode: 55, - flagSymbol: '🇧🇷', - nameForLocale: 'Brazil', - nameForRegion: 'Brazil', - }, - { - regionCode: 'BS', - countryCode: 1, - flagSymbol: '🇧🇸', - nameForLocale: 'Bahamas', - nameForRegion: 'Bahamas', - }, - { - regionCode: 'BT', - countryCode: 975, - flagSymbol: '🇧🇹', - nameForLocale: 'Bhutan', - nameForRegion: 'Bhutan', - }, - { - regionCode: 'BW', - countryCode: 267, - flagSymbol: '🇧🇼', - nameForLocale: 'Botswana', - nameForRegion: 'Botswana', - }, - { - regionCode: 'BY', - countryCode: 375, - flagSymbol: '🇧🇾', - nameForLocale: 'Belarus', - nameForRegion: 'Belarus', - }, - { - regionCode: 'BZ', - countryCode: 501, - flagSymbol: '🇧🇿', - nameForLocale: 'Belize', - nameForRegion: 'Belize', - }, - { - regionCode: 'CA', - countryCode: 1, - flagSymbol: '🇨🇦', - nameForLocale: 'Canada', - nameForRegion: 'Canadà', - }, - { - regionCode: 'CC', - countryCode: 61, - flagSymbol: '🇨🇨', - nameForLocale: 'Cocos (Keeling) Islands', - nameForRegion: 'Cocos (Keeling) Islands', - }, - { - regionCode: 'CD', - countryCode: 243, - flagSymbol: '🇨🇩', - nameForLocale: 'Congo - Kinshasa', - nameForRegion: 'Congo - Kinshasa', - }, - { - regionCode: 'CF', - countryCode: 236, - flagSymbol: '🇨🇫', - nameForLocale: 'Central African Republic', - nameForRegion: 'Central African Republic', - }, - { - regionCode: 'CG', - countryCode: 242, - flagSymbol: '🇨🇬', - nameForLocale: 'Congo - Brazzaville', - nameForRegion: 'Congo - Brazzaville', - }, - { - regionCode: 'CH', - countryCode: 41, - flagSymbol: '🇨🇭', - nameForLocale: 'Switzerland', - nameForRegion: 'Switzerland', - }, - { - regionCode: 'CI', - countryCode: 225, - flagSymbol: '🇨🇮', - nameForLocale: 'Côte d’Ivoire', - nameForRegion: 'Côte d’Ivoire', - }, - { - regionCode: 'CK', - countryCode: 682, - flagSymbol: '🇨🇰', - nameForLocale: 'Cook Islands', - nameForRegion: 'Cook Islands', - }, - { - regionCode: 'CL', - countryCode: 56, - flagSymbol: '🇨🇱', - nameForLocale: 'Chile', - nameForRegion: 'Chile', - }, - { - regionCode: 'CM', - countryCode: 237, - flagSymbol: '🇨🇲', - nameForLocale: 'Cameroon', - nameForRegion: 'Cameroon', - }, - { - regionCode: 'CN', - countryCode: 86, - flagSymbol: '🇨🇳', - nameForLocale: 'China', - nameForRegion: 'China', - }, - { - regionCode: 'CO', - countryCode: 57, - flagSymbol: '🇨🇴', - nameForLocale: 'Colombia', - nameForRegion: 'Colombia', - }, - { - regionCode: 'CR', - countryCode: 506, - flagSymbol: '🇨🇷', - nameForLocale: 'Costa Rica', - nameForRegion: 'Costa Rica', - }, - { - regionCode: 'CU', - countryCode: 53, - flagSymbol: '🇨🇺', - nameForLocale: 'Cuba', - nameForRegion: 'Cuba', - }, - { - regionCode: 'CV', - countryCode: 238, - flagSymbol: '🇨🇻', - nameForLocale: 'Cape Verde', - nameForRegion: 'Cape Verde', - }, - { - regionCode: 'CW', - countryCode: 599, - flagSymbol: '🇨🇼', - nameForLocale: 'Curaçao', - nameForRegion: 'Curaçao', - }, - { - regionCode: 'CX', - countryCode: 61, - flagSymbol: '🇨🇽', - nameForLocale: 'Christmas Island', - nameForRegion: 'Christmas Island', - }, - { - regionCode: 'CY', - countryCode: 357, - flagSymbol: '🇨🇾', - nameForLocale: 'Cyprus', - nameForRegion: 'Cyprus', - }, - { - regionCode: 'CZ', - countryCode: 420, - flagSymbol: '🇨🇿', - nameForLocale: 'Czechia', - nameForRegion: 'Czechia', - }, - { - regionCode: 'DE', - countryCode: 49, - flagSymbol: '🇩🇪', - nameForLocale: 'Germany', - nameForRegion: 'Deutschland', - }, - { - regionCode: 'DJ', - countryCode: 253, - flagSymbol: '🇩🇯', - nameForLocale: 'Djibouti', - nameForRegion: 'Djibouti', - }, - { - regionCode: 'DK', - countryCode: 45, - flagSymbol: '🇩🇰', - nameForLocale: 'Denmark', - nameForRegion: 'Denmark', - }, - { - regionCode: 'DM', - countryCode: 1, - flagSymbol: '🇩🇲', - nameForLocale: 'Dominica', - nameForRegion: 'Dominica', - }, - { - regionCode: 'DO', - countryCode: 1, - flagSymbol: '🇩🇴', - nameForLocale: 'Dominican Republic', - nameForRegion: 'Dominican Republic', - }, - { - regionCode: 'DZ', - countryCode: 213, - flagSymbol: '🇩🇿', - nameForLocale: 'Algeria', - nameForRegion: 'Algeria', - }, - { - regionCode: 'EC', - countryCode: 593, - flagSymbol: '🇪🇨', - nameForLocale: 'Ecuador', - nameForRegion: 'Ecuador', - }, - { - regionCode: 'EE', - countryCode: 372, - flagSymbol: '🇪🇪', - nameForLocale: 'Estonia', - nameForRegion: 'Estonia', - }, - { - regionCode: 'EG', - countryCode: 20, - flagSymbol: '🇪🇬', - nameForLocale: 'Egypt', - nameForRegion: 'Egypt', - }, - { - regionCode: 'EH', - countryCode: 212, - flagSymbol: '🇪🇭', - nameForLocale: 'Western Sahara', - nameForRegion: 'Western Sahara', - }, - { - regionCode: 'ER', - countryCode: 291, - flagSymbol: '🇪🇷', - nameForLocale: 'Eritrea', - nameForRegion: 'Eritrea', - }, - { - regionCode: 'ES', - countryCode: 34, - flagSymbol: '🇪🇸', - nameForLocale: 'Spain', - nameForRegion: 'España', - }, - { - regionCode: 'ET', - countryCode: 251, - flagSymbol: '🇪🇹', - nameForLocale: 'Ethiopia', - nameForRegion: 'Etioopia', - }, - { - regionCode: 'FI', - countryCode: 358, - flagSymbol: '🇫🇮', - nameForLocale: 'Finland', - nameForRegion: 'Suomi', - }, - { - regionCode: 'FJ', - countryCode: 679, - flagSymbol: '🇫🇯', - nameForLocale: 'Fiji', - nameForRegion: 'Fiji', - }, - { - regionCode: 'FK', - countryCode: 500, - flagSymbol: '🇫🇰', - nameForLocale: 'Falkland Islands (Islas Malvinas)', - nameForRegion: 'Falkland Islands (Islas Malvinas)', - }, - { - regionCode: 'FM', - countryCode: 691, - flagSymbol: '🇫🇲', - nameForLocale: 'Micronesia', - nameForRegion: 'Micronesia', - }, - { - regionCode: 'FO', - countryCode: 298, - flagSymbol: '🇫🇴', - nameForLocale: 'Faroe Islands', - nameForRegion: 'Faroe Islands', - }, - { - regionCode: 'FR', - countryCode: 33, - flagSymbol: '🇫🇷', - nameForLocale: 'France', - nameForRegion: 'France', - }, - { - regionCode: 'GA', - countryCode: 241, - flagSymbol: '🇬🇦', - nameForLocale: 'Gabon', - nameForRegion: 'Gabon', - }, - { - regionCode: 'GB', - countryCode: 44, - flagSymbol: '🇬🇧', - nameForLocale: 'United Kingdom', - nameForRegion: 'United Kingdom', - }, - { - regionCode: 'GD', - countryCode: 1, - flagSymbol: '🇬🇩', - nameForLocale: 'Grenada', - nameForRegion: 'Grenada', - }, - { - regionCode: 'GE', - countryCode: 995, - flagSymbol: '🇬🇪', - nameForLocale: 'Georgia', - nameForRegion: 'Georgia', - }, - { - regionCode: 'GF', - countryCode: 594, - flagSymbol: '🇬🇫', - nameForLocale: 'French Guiana', - nameForRegion: 'French Guiana', - }, - { - regionCode: 'GG', - countryCode: 44, - flagSymbol: '🇬🇬', - nameForLocale: 'Guernsey', - nameForRegion: 'Guernsey', - }, - { - regionCode: 'GH', - countryCode: 233, - flagSymbol: '🇬🇭', - nameForLocale: 'Ghana', - nameForRegion: 'Ghana', - }, - { - regionCode: 'GI', - countryCode: 350, - flagSymbol: '🇬🇮', - nameForLocale: 'Gibraltar', - nameForRegion: 'Gibraltar', - }, - { - regionCode: 'GL', - countryCode: 299, - flagSymbol: '🇬🇱', - nameForLocale: 'Greenland', - nameForRegion: 'Greenland', - }, - { - regionCode: 'GM', - countryCode: 220, - flagSymbol: '🇬🇲', - nameForLocale: 'Gambia', - nameForRegion: 'Gambia', - }, - { - regionCode: 'GN', - countryCode: 224, - flagSymbol: '🇬🇳', - nameForLocale: 'Guinea', - nameForRegion: 'Guinea', - }, - { - regionCode: 'GP', - countryCode: 590, - flagSymbol: '🇬🇵', - nameForLocale: 'Guadeloupe', - nameForRegion: 'Guadeloupe', - }, - { - regionCode: 'GQ', - countryCode: 240, - flagSymbol: '🇬🇶', - nameForLocale: 'Equatorial Guinea', - nameForRegion: 'Equatorial Guinea', - }, - { - regionCode: 'GR', - countryCode: 30, - flagSymbol: '🇬🇷', - nameForLocale: 'Greece', - nameForRegion: 'Greece', - }, - { - regionCode: 'GT', - countryCode: 502, - flagSymbol: '🇬🇹', - nameForLocale: 'Guatemala', - nameForRegion: 'Guatemala', - }, - { - regionCode: 'GU', - countryCode: 1, - flagSymbol: '🇬🇺', - nameForLocale: 'Guam', - nameForRegion: 'ગ્વામ', - }, - { - regionCode: 'GW', - countryCode: 245, - flagSymbol: '🇬🇼', - nameForLocale: 'Guinea-Bissau', - nameForRegion: 'Guinea-Bissau', - }, - { - regionCode: 'GY', - countryCode: 592, - flagSymbol: '🇬🇾', - nameForLocale: 'Guyana', - nameForRegion: 'Guyana', - }, - { - regionCode: 'HK', - countryCode: 852, - flagSymbol: '🇭🇰', - nameForLocale: 'Hong Kong', - nameForRegion: 'Hong Kong', - }, - { - regionCode: 'HN', - countryCode: 504, - flagSymbol: '🇭🇳', - nameForLocale: 'Honduras', - nameForRegion: 'Honduras', - }, - { - regionCode: 'HR', - countryCode: 385, - flagSymbol: '🇭🇷', - nameForLocale: 'Croatia', - nameForRegion: 'Hrvatska', - }, - { - regionCode: 'HT', - countryCode: 509, - flagSymbol: '🇭🇹', - nameForLocale: 'Haiti', - nameForRegion: 'Haiti', - }, - { - regionCode: 'HU', - countryCode: 36, - flagSymbol: '🇭🇺', - nameForLocale: 'Hungary', - nameForRegion: 'Magyarország', - }, - { - regionCode: 'ID', - countryCode: 62, - flagSymbol: '🇮🇩', - nameForLocale: 'Indonesia', - nameForRegion: 'Indonesia', - }, - { - regionCode: 'IE', - countryCode: 353, - flagSymbol: '🇮🇪', - nameForLocale: 'Ireland', - nameForRegion: 'Ireland', - }, - { - regionCode: 'IL', - countryCode: 972, - flagSymbol: '🇮🇱', - nameForLocale: 'Israel', - nameForRegion: 'Israel', - }, - { - regionCode: 'IM', - countryCode: 44, - flagSymbol: '🇮🇲', - nameForLocale: 'Isle of Man', - nameForRegion: 'Isle of Man', - }, - { - regionCode: 'IN', - countryCode: 91, - flagSymbol: '🇮🇳', - nameForLocale: 'India', - nameForRegion: 'India', - }, - { - regionCode: 'IO', - countryCode: 246, - flagSymbol: '🇮🇴', - nameForLocale: 'British Indian Ocean Territory', - nameForRegion: 'British Indian Ocean Territory', - }, - { - regionCode: 'IQ', - countryCode: 964, - flagSymbol: '🇮🇶', - nameForLocale: 'Iraq', - nameForRegion: 'Iraq', - }, - { - regionCode: 'IR', - countryCode: 98, - flagSymbol: '🇮🇷', - nameForLocale: 'Iran', - nameForRegion: 'Iran', - }, - { - regionCode: 'IS', - countryCode: 354, - flagSymbol: '🇮🇸', - nameForLocale: 'Iceland', - nameForRegion: 'Iceland', - }, - { - regionCode: 'IT', - countryCode: 39, - flagSymbol: '🇮🇹', - nameForLocale: 'Italy', - nameForRegion: 'Italia', - }, - { - regionCode: 'JE', - countryCode: 44, - flagSymbol: '🇯🇪', - nameForLocale: 'Jersey', - nameForRegion: 'Jersey', - }, - { - regionCode: 'JM', - countryCode: 1, - flagSymbol: '🇯🇲', - nameForLocale: 'Jamaica', - nameForRegion: 'Jamaica', - }, - { - regionCode: 'JO', - countryCode: 962, - flagSymbol: '🇯🇴', - nameForLocale: 'Jordan', - nameForRegion: 'Jordan', - }, - { - regionCode: 'JP', - countryCode: 81, - flagSymbol: '🇯🇵', - nameForLocale: 'Japan', - nameForRegion: 'Japan', - }, - { - regionCode: 'KE', - countryCode: 254, - flagSymbol: '🇰🇪', - nameForLocale: 'Kenya', - nameForRegion: 'Kenya', - }, - { - regionCode: 'KG', - countryCode: 996, - flagSymbol: '🇰🇬', - nameForLocale: 'Kyrgyzstan', - nameForRegion: 'Kyrgyzstan', - }, - { - regionCode: 'KH', - countryCode: 855, - flagSymbol: '🇰🇭', - nameForLocale: 'Cambodia', - nameForRegion: 'Cambodia', - }, - { - regionCode: 'KI', - countryCode: 686, - flagSymbol: '🇰🇮', - nameForLocale: 'Kiribati', - nameForRegion: 'Kiribati', - }, - { - regionCode: 'KM', - countryCode: 269, - flagSymbol: '🇰🇲', - nameForLocale: 'Comoros', - nameForRegion: 'Comoros', - }, - { - regionCode: 'KN', - countryCode: 1, - flagSymbol: '🇰🇳', - nameForLocale: 'St. Kitts & Nevis', - nameForRegion: 'ಸೇಂಟ್ ಕಿಟ್ಸ್ ಮತ್ತು ನೆವಿಸ್', - }, - { - regionCode: 'KP', - countryCode: 850, - flagSymbol: '🇰🇵', - nameForLocale: 'North Korea', - nameForRegion: 'North Korea', - }, - { - regionCode: 'KR', - countryCode: 82, - flagSymbol: '🇰🇷', - nameForLocale: 'South Korea', - nameForRegion: 'South Korea', - }, - { - regionCode: 'KW', - countryCode: 965, - flagSymbol: '🇰🇼', - nameForLocale: 'Kuwait', - nameForRegion: 'Kuwait', - }, - { - regionCode: 'KY', - countryCode: 1, - flagSymbol: '🇰🇾', - nameForLocale: 'Cayman Islands', - nameForRegion: 'Cayman Islands', - }, - { - regionCode: 'KZ', - countryCode: 7, - flagSymbol: '🇰🇿', - nameForLocale: 'Kazakhstan', - nameForRegion: 'Kazakhstan', - }, - { - regionCode: 'LA', - countryCode: 856, - flagSymbol: '🇱🇦', - nameForLocale: 'Laos', - nameForRegion: 'Laos', - }, - { - regionCode: 'LB', - countryCode: 961, - flagSymbol: '🇱🇧', - nameForLocale: 'Lebanon', - nameForRegion: 'Lebanon', - }, - { - regionCode: 'LC', - countryCode: 1, - flagSymbol: '🇱🇨', - nameForLocale: 'St. Lucia', - nameForRegion: 'St Lucia', - }, - { - regionCode: 'LI', - countryCode: 423, - flagSymbol: '🇱🇮', - nameForLocale: 'Liechtenstein', - nameForRegion: 'Liechtenstein', - }, - { - regionCode: 'LK', - countryCode: 94, - flagSymbol: '🇱🇰', - nameForLocale: 'Sri Lanka', - nameForRegion: 'Sri Lanka', - }, - { - regionCode: 'LR', - countryCode: 231, - flagSymbol: '🇱🇷', - nameForLocale: 'Liberia', - nameForRegion: 'Liberia', - }, - { - regionCode: 'LS', - countryCode: 266, - flagSymbol: '🇱🇸', - nameForLocale: 'Lesotho', - nameForRegion: 'Lesotho', - }, - { - regionCode: 'LT', - countryCode: 370, - flagSymbol: '🇱🇹', - nameForLocale: 'Lithuania', - nameForRegion: 'Lietuva', - }, - { - regionCode: 'LU', - countryCode: 352, - flagSymbol: '🇱🇺', - nameForLocale: 'Luxembourg', - nameForRegion: 'Luxembourg', - }, - { - regionCode: 'LV', - countryCode: 371, - flagSymbol: '🇱🇻', - nameForLocale: 'Latvia', - nameForRegion: 'Latvija', - }, - { - regionCode: 'LY', - countryCode: 218, - flagSymbol: '🇱🇾', - nameForLocale: 'Libya', - nameForRegion: 'Libya', - }, - { - regionCode: 'MA', - countryCode: 212, - flagSymbol: '🇲🇦', - nameForLocale: 'Morocco', - nameForRegion: 'Morocco', - }, - { - regionCode: 'MC', - countryCode: 377, - flagSymbol: '🇲🇨', - nameForLocale: 'Monaco', - nameForRegion: 'Monaco', - }, - { - regionCode: 'MD', - countryCode: 373, - flagSymbol: '🇲🇩', - nameForLocale: 'Moldova', - nameForRegion: 'Moldova', - }, - { - regionCode: 'ME', - countryCode: 382, - flagSymbol: '🇲🇪', - nameForLocale: 'Montenegro', - nameForRegion: 'Montenegro', - }, - { - regionCode: 'MF', - countryCode: 590, - flagSymbol: '🇲🇫', - nameForLocale: 'St. Martin', - nameForRegion: 'St Martin', - }, - { - regionCode: 'MG', - countryCode: 261, - flagSymbol: '🇲🇬', - nameForLocale: 'Madagascar', - nameForRegion: 'Madagascar', - }, - { - regionCode: 'MH', - countryCode: 692, - flagSymbol: '🇲🇭', - nameForLocale: 'Marshall Islands', - nameForRegion: 'Marshall Islands', - }, - { - regionCode: 'MK', - countryCode: 389, - flagSymbol: '🇲🇰', - nameForLocale: 'North Macedonia', - nameForRegion: 'North Macedonia', - }, - { - regionCode: 'ML', - countryCode: 223, - flagSymbol: '🇲🇱', - nameForLocale: 'Mali', - nameForRegion: 'മാലി', - }, - { - regionCode: 'MM', - countryCode: 95, - flagSymbol: '🇲🇲', - nameForLocale: 'Myanmar (Burma)', - nameForRegion: 'Myanmar (Burma)', - }, - { - regionCode: 'MN', - countryCode: 976, - flagSymbol: '🇲🇳', - nameForLocale: 'Mongolia', - nameForRegion: 'Mongolia', - }, - { - regionCode: 'MO', - countryCode: 853, - flagSymbol: '🇲🇴', - nameForLocale: 'Macao', - nameForRegion: 'Macao', - }, - { - regionCode: 'MP', - countryCode: 1, - flagSymbol: '🇲🇵', - nameForLocale: 'Northern Mariana Islands', - nameForRegion: 'Northern Mariana Islands', - }, - { - regionCode: 'MQ', - countryCode: 596, - flagSymbol: '🇲🇶', - nameForLocale: 'Martinique', - nameForRegion: 'Martinique', - }, - { - regionCode: 'MR', - countryCode: 222, - flagSymbol: '🇲🇷', - nameForLocale: 'Mauritania', - nameForRegion: 'मॉरिटानिया', - }, - { - regionCode: 'MS', - countryCode: 1, - flagSymbol: '🇲🇸', - nameForLocale: 'Montserrat', - nameForRegion: 'Montserrat', - }, - { - regionCode: 'MT', - countryCode: 356, - flagSymbol: '🇲🇹', - nameForLocale: 'Malta', - nameForRegion: 'Malta', - }, - { - regionCode: 'MU', - countryCode: 230, - flagSymbol: '🇲🇺', - nameForLocale: 'Mauritius', - nameForRegion: 'Mauritius', - }, - { - regionCode: 'MV', - countryCode: 960, - flagSymbol: '🇲🇻', - nameForLocale: 'Maldives', - nameForRegion: 'Maldives', - }, - { - regionCode: 'MW', - countryCode: 265, - flagSymbol: '🇲🇼', - nameForLocale: 'Malawi', - nameForRegion: 'Malawi', - }, - { - regionCode: 'MX', - countryCode: 52, - flagSymbol: '🇲🇽', - nameForLocale: 'Mexico', - nameForRegion: 'Mexico', - }, - { - regionCode: 'MY', - countryCode: 60, - flagSymbol: '🇲🇾', - nameForLocale: 'Malaysia', - nameForRegion: 'Malaysia', - }, - { - regionCode: 'MZ', - countryCode: 258, - flagSymbol: '🇲🇿', - nameForLocale: 'Mozambique', - nameForRegion: 'Mozambique', - }, - { - regionCode: 'NA', - countryCode: 264, - flagSymbol: '🇳🇦', - nameForLocale: 'Namibia', - nameForRegion: 'Namibia', - }, - { - regionCode: 'NC', - countryCode: 687, - flagSymbol: '🇳🇨', - nameForLocale: 'New Caledonia', - nameForRegion: 'New Caledonia', - }, - { - regionCode: 'NE', - countryCode: 227, - flagSymbol: '🇳🇪', - nameForLocale: 'Niger', - nameForRegion: 'Niger', - }, - { - regionCode: 'NF', - countryCode: 672, - flagSymbol: '🇳🇫', - nameForLocale: 'Norfolk Island', - nameForRegion: 'Norfolk Island', - }, - { - regionCode: 'NG', - countryCode: 234, - flagSymbol: '🇳🇬', - nameForLocale: 'Nigeria', - nameForRegion: 'Nigeria', - }, - { - regionCode: 'NI', - countryCode: 505, - flagSymbol: '🇳🇮', - nameForLocale: 'Nicaragua', - nameForRegion: 'Nicaragua', - }, - { - regionCode: 'NL', - countryCode: 31, - flagSymbol: '🇳🇱', - nameForLocale: 'Netherlands', - nameForRegion: 'Nederland', - }, - { - regionCode: 'NO', - countryCode: 47, - flagSymbol: '🇳🇴', - nameForLocale: 'Norway', - nameForRegion: 'Norge', - }, - { - regionCode: 'NP', - countryCode: 977, - flagSymbol: '🇳🇵', - nameForLocale: 'Nepal', - nameForRegion: 'Nepal', - }, - { - regionCode: 'NR', - countryCode: 674, - flagSymbol: '🇳🇷', - nameForLocale: 'Nauru', - nameForRegion: 'Nauru', - }, - { - regionCode: 'NU', - countryCode: 683, - flagSymbol: '🇳🇺', - nameForLocale: 'Niue', - nameForRegion: 'Niue', - }, - { - regionCode: 'NZ', - countryCode: 64, - flagSymbol: '🇳🇿', - nameForLocale: 'New Zealand', - nameForRegion: 'New Zealand', - }, - { - regionCode: 'OM', - countryCode: 968, - flagSymbol: '🇴🇲', - nameForLocale: 'Oman', - nameForRegion: 'Oman', - }, - { - regionCode: 'PA', - countryCode: 507, - flagSymbol: '🇵🇦', - nameForLocale: 'Panama', - nameForRegion: 'Panama', - }, - { - regionCode: 'PE', - countryCode: 51, - flagSymbol: '🇵🇪', - nameForLocale: 'Peru', - nameForRegion: 'Peru', - }, - { - regionCode: 'PF', - countryCode: 689, - flagSymbol: '🇵🇫', - nameForLocale: 'French Polynesia', - nameForRegion: 'French Polynesia', - }, - { - regionCode: 'PG', - countryCode: 675, - flagSymbol: '🇵🇬', - nameForLocale: 'Papua New Guinea', - nameForRegion: 'Papua New Guinea', - }, - { - regionCode: 'PH', - countryCode: 63, - flagSymbol: '🇵🇭', - nameForLocale: 'Philippines', - nameForRegion: 'Philippines', - }, - { - regionCode: 'PK', - countryCode: 92, - flagSymbol: '🇵🇰', - nameForLocale: 'Pakistan', - nameForRegion: 'Pakistan', - }, - { - regionCode: 'PL', - countryCode: 48, - flagSymbol: '🇵🇱', - nameForLocale: 'Poland', - nameForRegion: 'Polska', - }, - { - regionCode: 'PM', - countryCode: 508, - flagSymbol: '🇵🇲', - nameForLocale: 'St. Pierre & Miquelon', - nameForRegion: 'St Pierre & Miquelon', - }, - { - regionCode: 'PR', - countryCode: 1, - flagSymbol: '🇵🇷', - nameForLocale: 'Puerto Rico', - nameForRegion: 'Puerto Rico', - }, - { - regionCode: 'PS', - countryCode: 970, - flagSymbol: '🇵🇸', - nameForLocale: 'Palestine', - nameForRegion: 'Palestine', - }, - { - regionCode: 'PT', - countryCode: 351, - flagSymbol: '🇵🇹', - nameForLocale: 'Portugal', - nameForRegion: 'Portugal', - }, - { - regionCode: 'PW', - countryCode: 680, - flagSymbol: '🇵🇼', - nameForLocale: 'Palau', - nameForRegion: 'Palau', - }, - { - regionCode: 'PY', - countryCode: 595, - flagSymbol: '🇵🇾', - nameForLocale: 'Paraguay', - nameForRegion: 'Paraguay', - }, - { - regionCode: 'QA', - countryCode: 974, - flagSymbol: '🇶🇦', - nameForLocale: 'Qatar', - nameForRegion: 'Qatar', - }, - { - regionCode: 'RE', - countryCode: 262, - flagSymbol: '🇷🇪', - nameForLocale: 'Réunion', - nameForRegion: 'Réunion', - }, - { - regionCode: 'RO', - countryCode: 40, - flagSymbol: '🇷🇴', - nameForLocale: 'Romania', - nameForRegion: 'România', - }, - { - regionCode: 'RS', - countryCode: 381, - flagSymbol: '🇷🇸', - nameForLocale: 'Serbia', - nameForRegion: 'Serbia', - }, - { - regionCode: 'RU', - countryCode: 7, - flagSymbol: '🇷🇺', - nameForLocale: 'Russia', - nameForRegion: 'Россия', - }, - { - regionCode: 'RW', - countryCode: 250, - flagSymbol: '🇷🇼', - nameForLocale: 'Rwanda', - nameForRegion: 'Rwanda', - }, - { - regionCode: 'SA', - countryCode: 966, - flagSymbol: '🇸🇦', - nameForLocale: 'Saudi Arabia', - nameForRegion: 'Saudi Arabia', - }, - { - regionCode: 'SB', - countryCode: 677, - flagSymbol: '🇸🇧', - nameForLocale: 'Solomon Islands', - nameForRegion: 'Solomon Islands', - }, - { - regionCode: 'SC', - countryCode: 248, - flagSymbol: '🇸🇨', - nameForLocale: 'Seychelles', - nameForRegion: 'Seychelles', - }, - { - regionCode: 'SD', - countryCode: 249, - flagSymbol: '🇸🇩', - nameForLocale: 'Sudan', - nameForRegion: 'Sudan', - }, - { - regionCode: 'SE', - countryCode: 46, - flagSymbol: '🇸🇪', - nameForLocale: 'Sweden', - nameForRegion: 'Sweden', - }, - { - regionCode: 'SG', - countryCode: 65, - flagSymbol: '🇸🇬', - nameForLocale: 'Singapore', - nameForRegion: 'Singapore', - }, - { - regionCode: 'SH', - countryCode: 290, - flagSymbol: '🇸🇭', - nameForLocale: 'St. Helena', - nameForRegion: 'Sveta Jelena', - }, - { - regionCode: 'SI', - countryCode: 386, - flagSymbol: '🇸🇮', - nameForLocale: 'Slovenia', - nameForRegion: 'Slovenia', - }, - { - regionCode: 'SJ', - countryCode: 47, - flagSymbol: '🇸🇯', - nameForLocale: 'Svalbard & Jan Mayen', - nameForRegion: 'Svalbard & Jan Mayen', - }, - { - regionCode: 'SK', - countryCode: 421, - flagSymbol: '🇸🇰', - nameForLocale: 'Slovakia', - nameForRegion: 'Slovensko', - }, - { - regionCode: 'SL', - countryCode: 232, - flagSymbol: '🇸🇱', - nameForLocale: 'Sierra Leone', - nameForRegion: 'Sierra Leone', - }, - { - regionCode: 'SM', - countryCode: 378, - flagSymbol: '🇸🇲', - nameForLocale: 'San Marino', - nameForRegion: 'San Marino', - }, - { - regionCode: 'SN', - countryCode: 221, - flagSymbol: '🇸🇳', - nameForLocale: 'Senegal', - nameForRegion: 'Senegal', - }, - { - regionCode: 'SO', - countryCode: 252, - flagSymbol: '🇸🇴', - nameForLocale: 'Somalia', - nameForRegion: 'Somalia', - }, - { - regionCode: 'SR', - countryCode: 597, - flagSymbol: '🇸🇷', - nameForLocale: 'Suriname', - nameForRegion: 'Суринам', - }, - { - regionCode: 'SS', - countryCode: 211, - flagSymbol: '🇸🇸', - nameForLocale: 'South Sudan', - nameForRegion: 'South Sudan', - }, - { - regionCode: 'ST', - countryCode: 239, - flagSymbol: '🇸🇹', - nameForLocale: 'São Tomé & Príncipe', - nameForRegion: 'São Tomé & Príncipe', - }, - { - regionCode: 'SV', - countryCode: 503, - flagSymbol: '🇸🇻', - nameForLocale: 'El Salvador', - nameForRegion: 'El Salvador', - }, - { - regionCode: 'SX', - countryCode: 1, - flagSymbol: '🇸🇽', - nameForLocale: 'Sint Maarten', - nameForRegion: 'Sint Maarten', - }, - { - regionCode: 'SY', - countryCode: 963, - flagSymbol: '🇸🇾', - nameForLocale: 'Syria', - nameForRegion: 'Syria', - }, - { - regionCode: 'SZ', - countryCode: 268, - flagSymbol: '🇸🇿', - nameForLocale: 'Eswatini', - nameForRegion: 'Eswatini', - }, - { - regionCode: 'TA', - countryCode: 290, - flagSymbol: '🇹🇦', - nameForLocale: 'Tristan da Cunha', - nameForRegion: 'டிரிஸ்டன் டா குன்ஹா', - }, - { - regionCode: 'TC', - countryCode: 1, - flagSymbol: '🇹🇨', - nameForLocale: 'Turks & Caicos Islands', - nameForRegion: 'Turks & Caicos Islands', - }, - { - regionCode: 'TD', - countryCode: 235, - flagSymbol: '🇹🇩', - nameForLocale: 'Chad', - nameForRegion: 'Chad', - }, - { - regionCode: 'TG', - countryCode: 228, - flagSymbol: '🇹🇬', - nameForLocale: 'Togo', - nameForRegion: 'Togo', - }, - { - regionCode: 'TH', - countryCode: 66, - flagSymbol: '🇹🇭', - nameForLocale: 'Thailand', - nameForRegion: 'ไทย', - }, - { - regionCode: 'TJ', - countryCode: 992, - flagSymbol: '🇹🇯', - nameForLocale: 'Tajikistan', - nameForRegion: 'Tajikistan', - }, - { - regionCode: 'TK', - countryCode: 690, - flagSymbol: '🇹🇰', - nameForLocale: 'Tokelau', - nameForRegion: 'Tokelau', - }, - { - regionCode: 'TL', - countryCode: 670, - flagSymbol: '🇹🇱', - nameForLocale: 'Timor-Leste', - nameForRegion: 'Timor-Leste', - }, - { - regionCode: 'TM', - countryCode: 993, - flagSymbol: '🇹🇲', - nameForLocale: 'Turkmenistan', - nameForRegion: 'Turkmenistan', - }, - { - regionCode: 'TN', - countryCode: 216, - flagSymbol: '🇹🇳', - nameForLocale: 'Tunisia', - nameForRegion: 'Tunisia', - }, - { - regionCode: 'TO', - countryCode: 676, - flagSymbol: '🇹🇴', - nameForLocale: 'Tonga', - nameForRegion: 'Tonga', - }, - { - regionCode: 'TR', - countryCode: 90, - flagSymbol: '🇹🇷', - nameForLocale: 'Turkey', - nameForRegion: 'Türkiye', - }, - { - regionCode: 'TT', - countryCode: 1, - flagSymbol: '🇹🇹', - nameForLocale: 'Trinidad & Tobago', - nameForRegion: 'Trinidad & Tobago', - }, - { - regionCode: 'TV', - countryCode: 688, - flagSymbol: '🇹🇻', - nameForLocale: 'Tuvalu', - nameForRegion: 'Tuvalu', - }, - { - regionCode: 'TW', - countryCode: 886, - flagSymbol: '🇹🇼', - nameForLocale: 'Taiwan', - nameForRegion: 'Taiwan', - }, - { - regionCode: 'TZ', - countryCode: 255, - flagSymbol: '🇹🇿', - nameForLocale: 'Tanzania', - nameForRegion: 'Tanzania', - }, - { - regionCode: 'UA', - countryCode: 380, - flagSymbol: '🇺🇦', - nameForLocale: 'Ukraine', - nameForRegion: 'Ukraine', - }, - { - regionCode: 'UG', - countryCode: 256, - flagSymbol: '🇺🇬', - nameForLocale: 'Uganda', - nameForRegion: 'Uganda', - }, - { - regionCode: 'US', - countryCode: 1, - flagSymbol: '🇺🇸', - nameForLocale: 'United States', - nameForRegion: 'United States', - }, - { - regionCode: 'UY', - countryCode: 598, - flagSymbol: '🇺🇾', - nameForLocale: 'Uruguay', - nameForRegion: 'Uruguay', - }, - { - regionCode: 'UZ', - countryCode: 998, - flagSymbol: '🇺🇿', - nameForLocale: 'Uzbekistan', - nameForRegion: 'Uzbekistan', - }, - { - regionCode: 'VA', - countryCode: 39, - flagSymbol: '🇻🇦', - nameForLocale: 'Vatican City', - nameForRegion: 'Vatican City', - }, - { - regionCode: 'VC', - countryCode: 1, - flagSymbol: '🇻🇨', - nameForLocale: 'St. Vincent & Grenadines', - nameForRegion: 'St Vincent & the Grenadines', - }, - { - regionCode: 'VE', - countryCode: 58, - flagSymbol: '🇻🇪', - nameForLocale: 'Venezuela', - nameForRegion: 'Venezuela', - }, - { - regionCode: 'VG', - countryCode: 1, - flagSymbol: '🇻🇬', - nameForLocale: 'British Virgin Islands', - nameForRegion: 'British Virgin Islands', - }, - { - regionCode: 'VI', - countryCode: 1, - flagSymbol: '🇻🇮', - nameForLocale: 'U.S. Virgin Islands', - nameForRegion: 'Quần đảo Virgin thuộc Hoa Kỳ', - }, - { - regionCode: 'VN', - countryCode: 84, - flagSymbol: '🇻🇳', - nameForLocale: 'Vietnam', - nameForRegion: 'Vietnam', - }, - { - regionCode: 'VU', - countryCode: 678, - flagSymbol: '🇻🇺', - nameForLocale: 'Vanuatu', - nameForRegion: 'Vanuatu', - }, - { - regionCode: 'WF', - countryCode: 681, - flagSymbol: '🇼🇫', - nameForLocale: 'Wallis & Futuna', - nameForRegion: 'Wallis & Futuna', - }, - { - regionCode: 'WS', - countryCode: 685, - flagSymbol: '🇼🇸', - nameForLocale: 'Samoa', - nameForRegion: 'Samoa', - }, - { - regionCode: 'XK', - countryCode: 383, - flagSymbol: '🇽🇰', - nameForLocale: 'Kosovo', - nameForRegion: 'Kosovo', - }, - { - regionCode: 'YE', - countryCode: 967, - flagSymbol: '🇾🇪', - nameForLocale: 'Yemen', - nameForRegion: 'Yemen', - }, - { - regionCode: 'YT', - countryCode: 262, - flagSymbol: '🇾🇹', - nameForLocale: 'Mayotte', - nameForRegion: 'Mayotte', - }, - { - regionCode: 'ZA', - countryCode: 27, - flagSymbol: '🇿🇦', - nameForLocale: 'South Africa', - nameForRegion: 'South Africa', - }, - { - regionCode: 'ZM', - countryCode: 260, - flagSymbol: '🇿🇲', - nameForLocale: 'Zambia', - nameForRegion: 'Zambia', - }, - { - regionCode: 'ZW', - countryCode: 263, - flagSymbol: '🇿🇼', - nameForLocale: 'Zimbabwe', - nameForRegion: 'Zimbabwe', - }, -]; diff --git a/packages/ui/docs/components/select-rich/use-cases.md b/packages/ui/docs/components/select-rich/use-cases.md deleted file mode 100644 index 7ab9a4bbd..000000000 --- a/packages/ui/docs/components/select-rich/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select-rich/use-cases.md) diff --git a/packages/ui/docs/components/select/index.md b/packages/ui/docs/components/select/index.md deleted file mode 100644 index 510c4df69..000000000 --- a/packages/ui/docs/components/select/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select/index.md) diff --git a/packages/ui/docs/components/select/overview.md b/packages/ui/docs/components/select/overview.md deleted file mode 100644 index 43ac119aa..000000000 --- a/packages/ui/docs/components/select/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select/overview.md) diff --git a/packages/ui/docs/components/select/use-cases.md b/packages/ui/docs/components/select/use-cases.md deleted file mode 100644 index a31dd2cb1..000000000 --- a/packages/ui/docs/components/select/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/select/use-cases.md) diff --git a/packages/ui/docs/components/steps/index.md b/packages/ui/docs/components/steps/index.md deleted file mode 100644 index ac395b0fc..000000000 --- a/packages/ui/docs/components/steps/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/steps/index.md) diff --git a/packages/ui/docs/components/steps/overview.md b/packages/ui/docs/components/steps/overview.md deleted file mode 100644 index 4ca067f33..000000000 --- a/packages/ui/docs/components/steps/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/steps/overview.md) diff --git a/packages/ui/docs/components/steps/use-cases.md b/packages/ui/docs/components/steps/use-cases.md deleted file mode 100644 index b099175f0..000000000 --- a/packages/ui/docs/components/steps/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/steps/use-cases.md) diff --git a/packages/ui/docs/components/switch/index.md b/packages/ui/docs/components/switch/index.md deleted file mode 100644 index 876a35e52..000000000 --- a/packages/ui/docs/components/switch/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/switch/index.md) diff --git a/packages/ui/docs/components/switch/overview.md b/packages/ui/docs/components/switch/overview.md deleted file mode 100644 index 36dcbc3a3..000000000 --- a/packages/ui/docs/components/switch/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/switch/overview.md) diff --git a/packages/ui/docs/components/switch/reference.md b/packages/ui/docs/components/switch/reference.md deleted file mode 100644 index 54de976f1..000000000 --- a/packages/ui/docs/components/switch/reference.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/switch/reference.md) diff --git a/packages/ui/docs/components/switch/use-cases.md b/packages/ui/docs/components/switch/use-cases.md deleted file mode 100644 index eb5854e2b..000000000 --- a/packages/ui/docs/components/switch/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/switch/use-cases.md) diff --git a/packages/ui/docs/components/tabs/examples.md b/packages/ui/docs/components/tabs/examples.md deleted file mode 100644 index 581af338c..000000000 --- a/packages/ui/docs/components/tabs/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tabs/examples.md) diff --git a/packages/ui/docs/components/tabs/index.md b/packages/ui/docs/components/tabs/index.md deleted file mode 100644 index 667ee2fd3..000000000 --- a/packages/ui/docs/components/tabs/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tabs/index.md) diff --git a/packages/ui/docs/components/tabs/overview.md b/packages/ui/docs/components/tabs/overview.md deleted file mode 100644 index 54019bdaa..000000000 --- a/packages/ui/docs/components/tabs/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tabs/overview.md) diff --git a/packages/ui/docs/components/tabs/src/lea-tab-panel.js b/packages/ui/docs/components/tabs/src/lea-tab-panel.js deleted file mode 100644 index dfe27f1e2..000000000 --- a/packages/ui/docs/components/tabs/src/lea-tab-panel.js +++ /dev/null @@ -1,24 +0,0 @@ -import { LitElement, html, css } from 'lit'; - -export class LeaTabPanel extends LitElement { - static get styles() { - return css` - :host { - background-color: #fff; - background-image: linear-gradient(top, #fff, #ddd); - border-radius: 0 2px 2px 2px; - box-shadow: 0 2px 2px #000, 0 -1px 0 #fff inset; - padding: 30px; - } - `; - } - - render() { - return html` - - - `; - } -} - -customElements.define('lea-tab-panel', LeaTabPanel); diff --git a/packages/ui/docs/components/tabs/src/lea-tab.js b/packages/ui/docs/components/tabs/src/lea-tab.js deleted file mode 100644 index 752cd5a4d..000000000 --- a/packages/ui/docs/components/tabs/src/lea-tab.js +++ /dev/null @@ -1,45 +0,0 @@ -import { css, html, LitElement } from 'lit'; - -export class LeaTab extends LitElement { - static get styles() { - return css` - :host { - box-shadow: -4px 0 0 rgba(0, 0, 0, 0.2); - background: #ad1c1c; - background: linear-gradient(220deg, transparent 10px, #ad1c1c 10px); - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); - color: #fff; - float: left; - font: bold 12px/35px 'Lucida sans', Arial, Helvetica; - height: 35px; - padding: 0 30px; - text-decoration: none; - } - - :host(:hover) { - background: #c93434; - background: linear-gradient(220deg, transparent 10px, #c93434 10px); - } - - :host(:focus) { - border-radius: 4px; - box-shadow: 0 0 8px #9fcaea, 0 0 0 1px #559bd1; - - /* outline: 0; */ - } - - :host([selected]) { - background: #fff; - background: linear-gradient(220deg, transparent 10px, #fff 10px); - text-shadow: none; - color: #333; - } - `; - } - - render() { - return html``; - } -} - -customElements.define('lea-tab', LeaTab); diff --git a/packages/ui/docs/components/tabs/src/lea-tabs.js b/packages/ui/docs/components/tabs/src/lea-tabs.js deleted file mode 100644 index 06165f2ec..000000000 --- a/packages/ui/docs/components/tabs/src/lea-tabs.js +++ /dev/null @@ -1,28 +0,0 @@ -import { css } from 'lit'; -import { LionTabs } from '@lion/ui/tabs.js'; - -export class LeaTabs extends LionTabs { - static get styles() { - return [ - ...super.styles, - css` - :host { - background: #222; - display: block; - padding: 20px; - } - `, - ]; - } - - connectedCallback() { - super.connectedCallback(); - this._setupFeature(); - } - - _setupFeature() { - // being awesome - } -} - -customElements.define('lea-tabs', LeaTabs); diff --git a/packages/ui/docs/components/tabs/use-cases.md b/packages/ui/docs/components/tabs/use-cases.md deleted file mode 100644 index 66c5887c0..000000000 --- a/packages/ui/docs/components/tabs/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tabs/use-cases.md) diff --git a/packages/ui/docs/components/textarea/index.md b/packages/ui/docs/components/textarea/index.md deleted file mode 100644 index 2c7174020..000000000 --- a/packages/ui/docs/components/textarea/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/textarea/index.md) diff --git a/packages/ui/docs/components/textarea/overview.md b/packages/ui/docs/components/textarea/overview.md deleted file mode 100644 index 214a4354a..000000000 --- a/packages/ui/docs/components/textarea/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/textarea/overview.md) diff --git a/packages/ui/docs/components/textarea/use-cases.md b/packages/ui/docs/components/textarea/use-cases.md deleted file mode 100644 index f33a2793c..000000000 --- a/packages/ui/docs/components/textarea/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/textarea/use-cases.md) diff --git a/packages/ui/docs/components/tooltip/examples.md b/packages/ui/docs/components/tooltip/examples.md deleted file mode 100644 index 338cb15b9..000000000 --- a/packages/ui/docs/components/tooltip/examples.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tooltip/examples.md) diff --git a/packages/ui/docs/components/tooltip/index.md b/packages/ui/docs/components/tooltip/index.md deleted file mode 100644 index cea7c303e..000000000 --- a/packages/ui/docs/components/tooltip/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tooltip/index.md) diff --git a/packages/ui/docs/components/tooltip/overview.md b/packages/ui/docs/components/tooltip/overview.md deleted file mode 100644 index 9735e8d45..000000000 --- a/packages/ui/docs/components/tooltip/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tooltip/overview.md) diff --git a/packages/ui/docs/components/tooltip/use-cases.md b/packages/ui/docs/components/tooltip/use-cases.md deleted file mode 100644 index 84b509f69..000000000 --- a/packages/ui/docs/components/tooltip/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/components/tooltip/use-cases.md) diff --git a/packages/ui/docs/fundamentals/index.md b/packages/ui/docs/fundamentals/index.md deleted file mode 100644 index a8c92f8a6..000000000 --- a/packages/ui/docs/fundamentals/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../docs/fundamentals/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md b/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md deleted file mode 100644 index cad961a61..000000000 --- a/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md b/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md deleted file mode 100644 index aa9d01bbc..000000000 --- a/packages/ui/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md) diff --git a/packages/ui/docs/fundamentals/node-tools/index.md b/packages/ui/docs/fundamentals/node-tools/index.md deleted file mode 100644 index 7ed0e87f5..000000000 --- a/packages/ui/docs/fundamentals/node-tools/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/node-tools/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md deleted file mode 100644 index a3c6fb60b..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/QueryResult.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/QueryResult.md deleted file mode 100644 index ff3cbd1f3..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/QueryResult.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/analyzer.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/analyzer.md deleted file mode 100644 index e9cccd4c8..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/analyzer.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/analyzer.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/assets/_mermaid.svg.js b/packages/ui/docs/fundamentals/node-tools/providence-analytics/assets/_mermaid.svg.js deleted file mode 100644 index 189e03117..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/assets/_mermaid.svg.js +++ /dev/null @@ -1,1202 +0,0 @@ -import { html } from 'lit-html'; - -/* - -```mermaid -graph TD; - queryConfig-->providence; - ProvidenceConfig-->providence; - providence-->QueryResult; -``` - -*/ -export const providenceFlowSvg = html` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
- - - - - -
- queryConfig -
-
-
-
- - - - -
- providence -
-
-
-
- - - - -
- ProvidenceConfig -
-
-
-
- - - - -
- QueryResult -
-
-
-
-
-
-
-
`; - -/* - -```mermaid -sequenceDiagram - participant providence - participant InputDataService - participant QueryService - participant ReportService - providence->>InputDataService: Give all search targets, based on 'queryConfig' - InputDataService->>providence: 'InputData' - providence->>QueryService: Run query, based on 'queryConfig' - QueryService->>providence: 'QueryResult' - providence->>ReportService: Give a report, based on 'QueryResult' and 'ProvidenceConfig' - ReportService->>providence: Done... -``` - -*/ -export const providenceInternalFlowSvg = html` - - - - - - - - - providence - - - - - - - InputDataService - - - - - - - QueryService - - - - - - - ReportService - - - - - - - - - - - - - - - - Give all search targets, based on 'queryConfig' - - - - - 'InputData' - - - - - Run query, based on 'queryConfig' - - - - - 'QueryResult' - - - - - Give a report, based on 'QueryResult' and 'ProvidenceConfig' - - - - - Done... - - - - - - providence - - - - - - InputDataService - - - - - - QueryService - - - - - - ReportService - - - -`; diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/dashboard.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/dashboard.md deleted file mode 100644 index e9ba30bd9..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/dashboard.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/dashboard.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/index.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/index.md deleted file mode 100644 index 65f2ffe70..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/providence-analytics/overview.md b/packages/ui/docs/fundamentals/node-tools/providence-analytics/overview.md deleted file mode 100644 index 75ac17416..000000000 --- a/packages/ui/docs/fundamentals/node-tools/providence-analytics/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/providence-analytics/overview.md) diff --git a/packages/ui/docs/fundamentals/node-tools/publish-docs/index.md b/packages/ui/docs/fundamentals/node-tools/publish-docs/index.md deleted file mode 100644 index 774de2bdc..000000000 --- a/packages/ui/docs/fundamentals/node-tools/publish-docs/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/publish-docs/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/publish-docs/overview.md b/packages/ui/docs/fundamentals/node-tools/publish-docs/overview.md deleted file mode 100644 index 821b2387e..000000000 --- a/packages/ui/docs/fundamentals/node-tools/publish-docs/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/publish-docs/overview.md) diff --git a/packages/ui/docs/fundamentals/node-tools/remark-extend/index.md b/packages/ui/docs/fundamentals/node-tools/remark-extend/index.md deleted file mode 100644 index 2dcee2d51..000000000 --- a/packages/ui/docs/fundamentals/node-tools/remark-extend/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/remark-extend/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/remark-extend/overview.md b/packages/ui/docs/fundamentals/node-tools/remark-extend/overview.md deleted file mode 100644 index 39d33203c..000000000 --- a/packages/ui/docs/fundamentals/node-tools/remark-extend/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/remark-extend/overview.md) diff --git a/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md b/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md deleted file mode 100644 index fa24ee81b..000000000 --- a/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md) diff --git a/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md b/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md deleted file mode 100644 index e751b0df5..000000000 --- a/packages/ui/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md) diff --git a/packages/ui/docs/fundamentals/rationales/TypeScript.md b/packages/ui/docs/fundamentals/rationales/TypeScript.md deleted file mode 100644 index edc7a8cf0..000000000 --- a/packages/ui/docs/fundamentals/rationales/TypeScript.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/rationales/TypeScript.md) diff --git a/packages/ui/docs/fundamentals/rationales/index.md b/packages/ui/docs/fundamentals/rationales/index.md deleted file mode 100644 index 9d91f2d80..000000000 --- a/packages/ui/docs/fundamentals/rationales/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/rationales/index.md) diff --git a/packages/ui/docs/fundamentals/rationales/side-effects.md b/packages/ui/docs/fundamentals/rationales/side-effects.md deleted file mode 100644 index f6b8c98e4..000000000 --- a/packages/ui/docs/fundamentals/rationales/side-effects.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/rationales/side-effects.md) diff --git a/packages/ui/docs/fundamentals/rationales/versioning.md b/packages/ui/docs/fundamentals/rationales/versioning.md deleted file mode 100644 index c4130bb2c..000000000 --- a/packages/ui/docs/fundamentals/rationales/versioning.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/rationales/versioning.md) diff --git a/packages/ui/docs/fundamentals/systems/core/index.md b/packages/ui/docs/fundamentals/systems/core/index.md deleted file mode 100644 index 811b1b4a5..000000000 --- a/packages/ui/docs/fundamentals/systems/core/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/core/index.md) diff --git a/packages/ui/docs/fundamentals/systems/core/overview.md b/packages/ui/docs/fundamentals/systems/core/overview.md deleted file mode 100644 index 74694a121..000000000 --- a/packages/ui/docs/fundamentals/systems/core/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/core/overview.md) diff --git a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg b/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg deleted file mode 100644 index a162f4423..000000000 --- a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg +++ /dev/null @@ -1 +0,0 @@ -formattedValueUser(inputElement.input)valuemodelValueserializedValueparserserializerdeserializersyncpreprocesson-blurdelegatesyncformatter5interact123445761. User changes the input 2. Native input syncs with lion-input-date value and gets preprocessed3. Value is parsed to modelValue4. modelValue is formatted to formattedValue and modelValue is serialized to serializedValue 5. User blurs the field. Input gets validated by ValidateMixin6. formattedValue synced back to the value (preventRecursiveTrigger prevents infinite looping)7. Value is delegated back to native input value (what the user sees) “10/30/2010”“10/30/2010”[DateObject] “30-10-2010”“2010-10-30T00:00:00.000Z”“30-10-2010”“30-10-2010”“30-10-2010” @user-input-changed @model-value-changed @formatted-value-changed@serialized-value-changed ! [DateObject]User flow(if errorState = false) \ No newline at end of file diff --git a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg b/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg deleted file mode 100644 index dc0797b84..000000000 --- a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg +++ /dev/null @@ -1 +0,0 @@ -User flow 2(Unparseable)User(inputElement.input)valuemodelValueserializedValueparserserializerdeserializerdelegatesyncinteract1345541. User changes the input 2. Native input syncs with lion-input-date value and gets preprocessed3. Value is parsed to modelValue but it is unparseable (parser returns undefined)4. modelValue.viewValue, which is the value prior to the parsing step, is synced back to the user. It is also serialized 5. Value is delegated back to native input value (what the user sees)“10%30%2010”“10%30%2010”[Unparseable]“10%30%2010” “10%30%2010” @user-input-changed @model-value-changed @serialized-value-changed !5. On request: serializedValue is deserialized to modelValue, which will again be Unparseable[Unparseable]"{"type":"unparseable","viewValue":"10%30%2010"}"syncpreprocess2 \ No newline at end of file diff --git a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg b/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg deleted file mode 100644 index 00ce1d667..000000000 --- a/packages/ui/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - Imperative(programmatic) - formattedValue - User(inputElement.input) - value - modelValue - serializedValue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - serializer - - delegate - sync - formatter - - - - changed - - 1 - 2 - 2 - 4 - - 3 - 1. modelValue is changed during runtime 2. modelValue is formatted to formattedValue and modelValue is serialized to serializedValue 3. formattedValue is reflected back to the user through the field value property4. Value is delegated back to native input value (what the user sees) - [DateObject] (day + 1)“30-11-2010”“2010-10-30T00:00:00.000Z” “30-11-2010”“30-10-2010” - @model-value-changed - - diff --git a/packages/ui/docs/fundamentals/systems/form/assets/h-output.js b/packages/ui/docs/fundamentals/systems/form/assets/h-output.js deleted file mode 100644 index dd161464b..000000000 --- a/packages/ui/docs/fundamentals/systems/form/assets/h-output.js +++ /dev/null @@ -1,155 +0,0 @@ -import { css, html, LitElement } from 'lit'; -import { LionField } from '@lion/ui/form-core.js'; -import { LionFieldset } from '@lion/ui/fieldset.js'; - -export class HelperOutput extends LitElement { - static properties = { - field: Object, - show: Array, - title: String, - readyPromise: Object, - }; - - static styles = [ - css` - :host { - display: block; - margin-top: 8px; - } - - code { - font-size: 8px; - background-color: #eee; - } - - caption { - position: absolute; - top: 0; - width: 1px; - height: 1px; - overflow: hidden; - clip-path: inset(100%); - clip: rect(1px, 1px, 1px, 1px); - white-space: nowrap; - border: 0; - margin: 0; - padding: 0; - } - - table, - th, - td { - border-bottom: 1px solid rgb(204, 204, 204); - border-image: initial; - padding: 4px; - font-size: 12px; - border-left: none; - border-right: none; - text-align: left; - } - - td { - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - table { - border-collapse: collapse; - } - - caption { - text-align: left; - } - `, - ]; - - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - if (!this.field) { - // Fuzzy logic, but... practical - const prev = this.previousElementSibling; - if (prev instanceof LionField || prev instanceof LionFieldset) { - this.field = prev; - } - } - this.__rerender = this.__rerender.bind(this); - - const storyRoot = this.closest('[mdjs-story-name]') || this.parentElement; - - storyRoot.addEventListener('model-value-changed', this.__rerender); - storyRoot.addEventListener('mousemove', this.__rerender); - // this.field.addEventListener('blur', this.__rerender); - storyRoot.addEventListener('focusin', this.__rerender); - storyRoot.addEventListener('focusout', this.__rerender); - storyRoot.addEventListener('change', this.__rerender); - - if (this.field._inputNode.form) { - this.field._inputNode.form.addEventListener('submit', this.__rerender); - } - - if (this.readyPromise) { - this.readyPromise.then(() => { - this.__rerender(); - }); - } - } - - __rerender() { - setTimeout(() => { - const f = this.field; - this.field = null; - this.field = f; - }); - } - - // eslint-disable-next-line class-methods-use-this - __renderProp(prop) { - const field = this.field || {}; - let resultText = ''; - - if (typeof prop === 'string') { - const p = field[prop]; - if (typeof p === 'boolean') { - return p === true ? '✓' : ''; - } - if (typeof p === 'undefined') { - return html`undefined`; - } - if (typeof p === 'object' && p !== null) { - return JSON.stringify(p); - } - resultText = p; - } else { - resultText = prop.processor(field); - } - - return html`${resultText}`; - } - - constructor() { - super(); - this.title = 'States'; - } - - render() { - const computePropName = prop => (typeof prop === 'string' ? prop : prop.name); - return html` - - - - ${this.show.map(prop => html``)} - - - - ${this.show.map(prop => html``)} - -
- ${this.title} -
${computePropName(prop)}
${this.__renderProp(prop)}
- `; - } -} - -customElements.define('h-output', HelperOutput); diff --git a/packages/ui/docs/fundamentals/systems/form/formatting-and-parsing.md b/packages/ui/docs/fundamentals/systems/form/formatting-and-parsing.md deleted file mode 100644 index 40164c92e..000000000 --- a/packages/ui/docs/fundamentals/systems/form/formatting-and-parsing.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/formatting-and-parsing.md) diff --git a/packages/ui/docs/fundamentals/systems/form/index.md b/packages/ui/docs/fundamentals/systems/form/index.md deleted file mode 100644 index ae991b559..000000000 --- a/packages/ui/docs/fundamentals/systems/form/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/index.md) diff --git a/packages/ui/docs/fundamentals/systems/form/interaction-states.md b/packages/ui/docs/fundamentals/systems/form/interaction-states.md deleted file mode 100644 index 47297dd55..000000000 --- a/packages/ui/docs/fundamentals/systems/form/interaction-states.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/interaction-states.md) diff --git a/packages/ui/docs/fundamentals/systems/form/model-value.md b/packages/ui/docs/fundamentals/systems/form/model-value.md deleted file mode 100644 index 33fce57f5..000000000 --- a/packages/ui/docs/fundamentals/systems/form/model-value.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/model-value.md) diff --git a/packages/ui/docs/fundamentals/systems/form/overview.md b/packages/ui/docs/fundamentals/systems/form/overview.md deleted file mode 100644 index dba9eac9a..000000000 --- a/packages/ui/docs/fundamentals/systems/form/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/overview.md) diff --git a/packages/ui/docs/fundamentals/systems/form/styling.md b/packages/ui/docs/fundamentals/systems/form/styling.md deleted file mode 100644 index ecf6a4e0f..000000000 --- a/packages/ui/docs/fundamentals/systems/form/styling.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/styling.md) diff --git a/packages/ui/docs/fundamentals/systems/form/use-cases.md b/packages/ui/docs/fundamentals/systems/form/use-cases.md deleted file mode 100644 index e4c247573..000000000 --- a/packages/ui/docs/fundamentals/systems/form/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/use-cases.md) diff --git a/packages/ui/docs/fundamentals/systems/form/validate.md b/packages/ui/docs/fundamentals/systems/form/validate.md deleted file mode 100644 index 2d0fe854f..000000000 --- a/packages/ui/docs/fundamentals/systems/form/validate.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/form/validate.md) diff --git a/packages/ui/docs/fundamentals/systems/icon/index.md b/packages/ui/docs/fundamentals/systems/icon/index.md deleted file mode 100644 index f7bc6dfe8..000000000 --- a/packages/ui/docs/fundamentals/systems/icon/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/icon/index.md) diff --git a/packages/ui/docs/fundamentals/systems/icon/overview.md b/packages/ui/docs/fundamentals/systems/icon/overview.md deleted file mode 100644 index 216a2f3ac..000000000 --- a/packages/ui/docs/fundamentals/systems/icon/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/icon/overview.md) diff --git a/packages/ui/docs/fundamentals/systems/index.md b/packages/ui/docs/fundamentals/systems/index.md deleted file mode 100644 index 96420e2c4..000000000 --- a/packages/ui/docs/fundamentals/systems/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/systems/index.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/all-locales.js b/packages/ui/docs/fundamentals/systems/localize/assets/all-locales.js deleted file mode 100755 index 7f80e69b7..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/all-locales.js +++ /dev/null @@ -1,437 +0,0 @@ -export default { - 'af-ZA': 'Afrikaans (South Africa)', - af: 'Afrikaans', - 'ak-GH': 'Akan (Ghana)', - ak: 'Akan', - 'sq-AL': 'Albanian (Albania)', - sq: 'Albanian', - 'am-ET': 'Amharic (Ethiopia)', - am: 'Amharic', - 'ar-DZ': 'Arabic (Algeria)', - 'ar-BH': 'Arabic (Bahrain)', - 'ar-EG': 'Arabic (Egypt)', - 'ar-IQ': 'Arabic (Iraq)', - 'ar-JO': 'Arabic (Jordan)', - 'ar-KW': 'Arabic (Kuwait)', - 'ar-LB': 'Arabic (Lebanon)', - 'ar-LY': 'Arabic (Libya)', - 'ar-MA': 'Arabic (Morocco)', - 'ar-OM': 'Arabic (Oman)', - 'ar-QA': 'Arabic (Qatar)', - 'ar-SA': 'Arabic (Saudi Arabia)', - 'ar-SD': 'Arabic (Sudan)', - 'ar-SY': 'Arabic (Syria)', - 'ar-TN': 'Arabic (Tunisia)', - 'ar-AE': 'Arabic (United Arab Emirates)', - 'ar-YE': 'Arabic (Yemen)', - ar: 'Arabic', - 'hy-AM': 'Armenian (Armenia)', - hy: 'Armenian', - 'as-IN': 'Assamese (India)', - as: 'Assamese', - 'asa-TZ': 'Asu (Tanzania)', - asa: 'Asu', - 'az-Cyrl': 'Azerbaijani (Cyrillic)', - 'az-Cyrl-AZ': 'Azerbaijani (Cyrillic, Azerbaijan)', - 'az-Latn': 'Azerbaijani (Latin)', - 'az-Latn-AZ': 'Azerbaijani (Latin, Azerbaijan)', - az: 'Azerbaijani', - 'bm-ML': 'Bambara (Mali)', - bm: 'Bambara', - 'eu-ES': 'Basque (Spain)', - eu: 'Basque', - 'be-BY': 'Belarusian (Belarus)', - be: 'Belarusian', - 'bem-ZM': 'Bemba (Zambia)', - bem: 'Bemba', - 'bez-TZ': 'Bena (Tanzania)', - bez: 'Bena', - 'bn-BD': 'Bengali (Bangladesh)', - 'bn-IN': 'Bengali (India)', - bn: 'Bengali', - 'bs-BA': 'Bosnian (Bosnia and Herzegovina)', - bs: 'Bosnian', - 'bg-BG': 'Bulgarian (Bulgaria)', - bg: 'Bulgarian', - 'my-MM': 'Burmese (Myanmar [Burma])', - my: 'Burmese', - 'yue-Hant-HK': 'Cantonese (Traditional, Hong Kong SAR China)', - 'ca-ES': 'Catalan (Spain)', - ca: 'Catalan', - 'tzm-Latn': 'Central Morocco Tamazight (Latin)', - 'tzm-Latn-MA': 'Central Morocco Tamazight (Latin, Morocco)', - tzm: 'Central Morocco Tamazight', - 'chr-US': 'Cherokee (United States)', - chr: 'Cherokee', - 'cgg-UG': 'Chiga (Uganda)', - cgg: 'Chiga', - 'zh-Hans': 'Chinese (Simplified Han)', - 'zh-Hans-CN': 'Chinese (Simplified Han, China)', - 'zh-Hans-HK': 'Chinese (Simplified Han, Hong Kong SAR China)', - 'zh-Hans-MO': 'Chinese (Simplified Han, Macau SAR China)', - 'zh-Hans-SG': 'Chinese (Simplified Han, Singapore)', - 'zh-Hant': 'Chinese (Traditional Han)', - 'zh-Hant-HK': 'Chinese (Traditional Han, Hong Kong SAR China)', - 'zh-Hant-MO': 'Chinese (Traditional Han, Macau SAR China)', - 'zh-Hant-TW': 'Chinese (Traditional Han, Taiwan)', - zh: 'Chinese', - 'kw-GB': 'Cornish (United Kingdom)', - kw: 'Cornish', - 'hr-HR': 'Croatian (Croatia)', - hr: 'Croatian', - 'cs-CZ': 'Czech (Czech Republic)', - cs: 'Czech', - 'da-DK': 'Danish (Denmark)', - da: 'Danish', - 'nl-BE': 'Dutch (Belgium)', - 'nl-NL': 'Dutch (Netherlands)', - nl: 'Dutch', - 'ebu-KE': 'Embu (Kenya)', - ebu: 'Embu', - 'en-AS': 'English (American Samoa)', - 'en-AU': 'English (Australia)', - 'en-BE': 'English (Belgium)', - 'en-BZ': 'English (Belize)', - 'en-BW': 'English (Botswana)', - 'en-CA': 'English (Canada)', - 'en-GU': 'English (Guam)', - 'en-HK': 'English (Hong Kong SAR China)', - 'en-IN': 'English (India)', - 'en-IE': 'English (Ireland)', - 'en-IL': 'English (Israel)', - 'en-JM': 'English (Jamaica)', - 'en-MT': 'English (Malta)', - 'en-MH': 'English (Marshall Islands)', - 'en-MU': 'English (Mauritius)', - 'en-NA': 'English (Namibia)', - 'en-NZ': 'English (New Zealand)', - 'en-MP': 'English (Northern Mariana Islands)', - 'en-PK': 'English (Pakistan)', - 'en-PH': 'English (Philippines)', - 'en-SG': 'English (Singapore)', - 'en-ZA': 'English (South Africa)', - 'en-TT': 'English (Trinidad and Tobago)', - 'en-UM': 'English (U.S. Minor Outlying Islands)', - 'en-VI': 'English (U.S. Virgin Islands)', - 'en-GB': 'English (United Kingdom)', - 'en-US': 'English (United States)', - 'en-ZW': 'English (Zimbabwe)', - en: 'English', - eo: 'Esperanto', - 'et-EE': 'Estonian (Estonia)', - et: 'Estonian', - 'ee-GH': 'Ewe (Ghana)', - 'ee-TG': 'Ewe (Togo)', - ee: 'Ewe', - 'fo-FO': 'Faroese (Faroe Islands)', - fo: 'Faroese', - 'fil-PH': 'Filipino (Philippines)', - fil: 'Filipino', - 'fi-FI': 'Finnish (Finland)', - fi: 'Finnish', - 'fr-BE': 'French (Belgium)', - 'fr-BJ': 'French (Benin)', - 'fr-BF': 'French (Burkina Faso)', - 'fr-BI': 'French (Burundi)', - 'fr-CM': 'French (Cameroon)', - 'fr-CA': 'French (Canada)', - 'fr-CF': 'French (Central African Republic)', - 'fr-TD': 'French (Chad)', - 'fr-KM': 'French (Comoros)', - 'fr-CG': 'French (Congo - Brazzaville)', - 'fr-CD': 'French (Congo - Kinshasa)', - 'fr-CI': 'French (Côte d’Ivoire)', - 'fr-DJ': 'French (Djibouti)', - 'fr-GQ': 'French (Equatorial Guinea)', - 'fr-FR': 'French (France)', - 'fr-GA': 'French (Gabon)', - 'fr-GP': 'French (Guadeloupe)', - 'fr-GN': 'French (Guinea)', - 'fr-LU': 'French (Luxembourg)', - 'fr-MG': 'French (Madagascar)', - 'fr-ML': 'French (Mali)', - 'fr-MQ': 'French (Martinique)', - 'fr-MC': 'French (Monaco)', - 'fr-NE': 'French (Niger)', - 'fr-RW': 'French (Rwanda)', - 'fr-RE': 'French (Réunion)', - 'fr-BL': 'French (Saint Barthélemy)', - 'fr-MF': 'French (Saint Martin)', - 'fr-SN': 'French (Senegal)', - 'fr-CH': 'French (Switzerland)', - 'fr-TG': 'French (Togo)', - fr: 'French', - 'ff-SN': 'Fulah (Senegal)', - ff: 'Fulah', - 'gl-ES': 'Galician (Spain)', - gl: 'Galician', - 'lg-UG': 'Ganda (Uganda)', - lg: 'Ganda', - 'ka-GE': 'Georgian (Georgia)', - ka: 'Georgian', - 'de-AT': 'German (Austria)', - 'de-BE': 'German (Belgium)', - 'de-DE': 'German (Germany)', - 'de-LI': 'German (Liechtenstein)', - 'de-LU': 'German (Luxembourg)', - 'de-CH': 'German (Switzerland)', - de: 'German', - 'el-CY': 'Greek (Cyprus)', - 'el-GR': 'Greek (Greece)', - el: 'Greek', - 'gu-IN': 'Gujarati (India)', - gu: 'Gujarati', - 'guz-KE': 'Gusii (Kenya)', - guz: 'Gusii', - 'ha-Latn': 'Hausa (Latin)', - 'ha-Latn-GH': 'Hausa (Latin, Ghana)', - 'ha-Latn-NE': 'Hausa (Latin, Niger)', - 'ha-Latn-NG': 'Hausa (Latin, Nigeria)', - ha: 'Hausa', - 'haw-US': 'Hawaiian (United States)', - haw: 'Hawaiian', - 'he-IL': 'Hebrew (Israel)', - he: 'Hebrew', - 'hi-IN': 'Hindi (India)', - hi: 'Hindi', - 'hu-HU': 'Hungarian (Hungary)', - hu: 'Hungarian', - 'is-IS': 'Icelandic (Iceland)', - is: 'Icelandic', - 'ig-NG': 'Igbo (Nigeria)', - ig: 'Igbo', - 'id-ID': 'Indonesian (Indonesia)', - id: 'Indonesian', - 'ga-IE': 'Irish (Ireland)', - ga: 'Irish', - 'it-IT': 'Italian (Italy)', - 'it-CH': 'Italian (Switzerland)', - it: 'Italian', - 'ja-JP': 'Japanese (Japan)', - ja: 'Japanese', - 'kea-CV': 'Kabuverdianu (Cape Verde)', - kea: 'Kabuverdianu', - 'kab-DZ': 'Kabyle (Algeria)', - kab: 'Kabyle', - 'kl-GL': 'Kalaallisut (Greenland)', - kl: 'Kalaallisut', - 'kln-KE': 'Kalenjin (Kenya)', - kln: 'Kalenjin', - 'kam-KE': 'Kamba (Kenya)', - kam: 'Kamba', - 'kn-IN': 'Kannada (India)', - kn: 'Kannada', - 'kk-Cyrl': 'Kazakh (Cyrillic)', - 'kk-Cyrl-KZ': 'Kazakh (Cyrillic, Kazakhstan)', - kk: 'Kazakh', - 'km-KH': 'Khmer (Cambodia)', - km: 'Khmer', - 'ki-KE': 'Kikuyu (Kenya)', - ki: 'Kikuyu', - 'rw-RW': 'Kinyarwanda (Rwanda)', - rw: 'Kinyarwanda', - 'kok-IN': 'Konkani (India)', - kok: 'Konkani', - 'ko-KR': 'Korean (South Korea)', - ko: 'Korean', - 'khq-ML': 'Koyra Chiini (Mali)', - khq: 'Koyra Chiini', - 'ses-ML': 'Koyraboro Senni (Mali)', - ses: 'Koyraboro Senni', - 'lag-TZ': 'Langi (Tanzania)', - lag: 'Langi', - 'lv-LV': 'Latvian (Latvia)', - lv: 'Latvian', - 'lt-LT': 'Lithuanian (Lithuania)', - lt: 'Lithuanian', - 'luo-KE': 'Luo (Kenya)', - luo: 'Luo', - 'luy-KE': 'Luyia (Kenya)', - luy: 'Luyia', - 'mk-MK': 'Macedonian (Macedonia)', - mk: 'Macedonian', - 'jmc-TZ': 'Machame (Tanzania)', - jmc: 'Machame', - 'kde-TZ': 'Makonde (Tanzania)', - kde: 'Makonde', - 'mg-MG': 'Malagasy (Madagascar)', - mg: 'Malagasy', - 'ms-BN': 'Malay (Brunei)', - 'ms-MY': 'Malay (Malaysia)', - ms: 'Malay', - 'ml-IN': 'Malayalam (India)', - ml: 'Malayalam', - 'mt-MT': 'Maltese (Malta)', - mt: 'Maltese', - 'gv-GB': 'Manx (United Kingdom)', - gv: 'Manx', - 'mr-IN': 'Marathi (India)', - mr: 'Marathi', - 'mas-KE': 'Masai (Kenya)', - 'mas-TZ': 'Masai (Tanzania)', - mas: 'Masai', - 'mer-KE': 'Meru (Kenya)', - mer: 'Meru', - 'mfe-MU': 'Morisyen (Mauritius)', - mfe: 'Morisyen', - 'naq-NA': 'Nama (Namibia)', - naq: 'Nama', - 'ne-IN': 'Nepali (India)', - 'ne-NP': 'Nepali (Nepal)', - ne: 'Nepali', - 'nd-ZW': 'North Ndebele (Zimbabwe)', - nd: 'North Ndebele', - 'nb-NO': 'Norwegian Bokmål (Norway)', - nb: 'Norwegian Bokmål', - 'nn-NO': 'Norwegian Nynorsk (Norway)', - nn: 'Norwegian Nynorsk', - 'nyn-UG': 'Nyankole (Uganda)', - nyn: 'Nyankole', - 'or-IN': 'Oriya (India)', - or: 'Oriya', - 'om-ET': 'Oromo (Ethiopia)', - 'om-KE': 'Oromo (Kenya)', - om: 'Oromo', - 'ps-AF': 'Pashto (Afghanistan)', - ps: 'Pashto', - 'fa-AF': 'Persian (Afghanistan)', - 'fa-IR': 'Persian (Iran)', - fa: 'Persian', - 'pl-PL': 'Polish (Poland)', - pl: 'Polish', - 'pt-BR': 'Portuguese (Brazil)', - 'pt-GW': 'Portuguese (Guinea-Bissau)', - 'pt-MZ': 'Portuguese (Mozambique)', - 'pt-PT': 'Portuguese (Portugal)', - pt: 'Portuguese', - 'pa-Arab': 'Punjabi (Arabic)', - 'pa-Arab-PK': 'Punjabi (Arabic, Pakistan)', - 'pa-Guru': 'Punjabi (Gurmukhi)', - 'pa-Guru-IN': 'Punjabi (Gurmukhi, India)', - pa: 'Punjabi', - 'ro-MD': 'Romanian (Moldova)', - 'ro-RO': 'Romanian (Romania)', - ro: 'Romanian', - 'rm-CH': 'Romansh (Switzerland)', - rm: 'Romansh', - 'rof-TZ': 'Rombo (Tanzania)', - rof: 'Rombo', - 'ru-MD': 'Russian (Moldova)', - 'ru-RU': 'Russian (Russia)', - 'ru-UA': 'Russian (Ukraine)', - ru: 'Russian', - 'rwk-TZ': 'Rwa (Tanzania)', - rwk: 'Rwa', - 'saq-KE': 'Samburu (Kenya)', - saq: 'Samburu', - 'sg-CF': 'Sango (Central African Republic)', - sg: 'Sango', - 'seh-MZ': 'Sena (Mozambique)', - seh: 'Sena', - 'sr-Cyrl': 'Serbian (Cyrillic)', - 'sr-Cyrl-BA': 'Serbian (Cyrillic, Bosnia and Herzegovina)', - 'sr-Cyrl-ME': 'Serbian (Cyrillic, Montenegro)', - 'sr-Cyrl-RS': 'Serbian (Cyrillic, Serbia)', - 'sr-Latn': 'Serbian (Latin)', - 'sr-Latn-BA': 'Serbian (Latin, Bosnia and Herzegovina)', - 'sr-Latn-ME': 'Serbian (Latin, Montenegro)', - 'sr-Latn-RS': 'Serbian (Latin, Serbia)', - sr: 'Serbian', - 'sn-ZW': 'Shona (Zimbabwe)', - sn: 'Shona', - 'ii-CN': 'Sichuan Yi (China)', - ii: 'Sichuan Yi', - 'si-LK': 'Sinhala (Sri Lanka)', - si: 'Sinhala', - 'sk-SK': 'Slovak (Slovakia)', - sk: 'Slovak', - 'sl-SI': 'Slovenian (Slovenia)', - sl: 'Slovenian', - 'xog-UG': 'Soga (Uganda)', - xog: 'Soga', - 'so-DJ': 'Somali (Djibouti)', - 'so-ET': 'Somali (Ethiopia)', - 'so-KE': 'Somali (Kenya)', - 'so-SO': 'Somali (Somalia)', - so: 'Somali', - 'es-AR': 'Spanish (Argentina)', - 'es-BO': 'Spanish (Bolivia)', - 'es-CL': 'Spanish (Chile)', - 'es-CO': 'Spanish (Colombia)', - 'es-CR': 'Spanish (Costa Rica)', - 'es-DO': 'Spanish (Dominican Republic)', - 'es-EC': 'Spanish (Ecuador)', - 'es-SV': 'Spanish (El Salvador)', - 'es-GQ': 'Spanish (Equatorial Guinea)', - 'es-GT': 'Spanish (Guatemala)', - 'es-HN': 'Spanish (Honduras)', - 'es-419': 'Spanish (Latin America)', - 'es-MX': 'Spanish (Mexico)', - 'es-NI': 'Spanish (Nicaragua)', - 'es-PA': 'Spanish (Panama)', - 'es-PY': 'Spanish (Paraguay)', - 'es-PE': 'Spanish (Peru)', - 'es-PR': 'Spanish (Puerto Rico)', - 'es-ES': 'Spanish (Spain)', - 'es-US': 'Spanish (United States)', - 'es-UY': 'Spanish (Uruguay)', - 'es-VE': 'Spanish (Venezuela)', - es: 'Spanish', - 'sw-KE': 'Swahili (Kenya)', - 'sw-TZ': 'Swahili (Tanzania)', - sw: 'Swahili', - 'sv-FI': 'Swedish (Finland)', - 'sv-SE': 'Swedish (Sweden)', - sv: 'Swedish', - 'gsw-CH': 'Swiss German (Switzerland)', - gsw: 'Swiss German', - 'shi-Latn': 'Tachelhit (Latin)', - 'shi-Latn-MA': 'Tachelhit (Latin, Morocco)', - 'shi-Tfng': 'Tachelhit (Tifinagh)', - 'shi-Tfng-MA': 'Tachelhit (Tifinagh, Morocco)', - shi: 'Tachelhit', - 'dav-KE': 'Taita (Kenya)', - dav: 'Taita', - 'ta-IN': 'Tamil (India)', - 'ta-LK': 'Tamil (Sri Lanka)', - ta: 'Tamil', - 'te-IN': 'Telugu (India)', - te: 'Telugu', - 'teo-KE': 'Teso (Kenya)', - 'teo-UG': 'Teso (Uganda)', - teo: 'Teso', - 'th-TH': 'Thai (Thailand)', - th: 'Thai', - 'bo-CN': 'Tibetan (China)', - 'bo-IN': 'Tibetan (India)', - bo: 'Tibetan', - 'ti-ER': 'Tigrinya (Eritrea)', - 'ti-ET': 'Tigrinya (Ethiopia)', - ti: 'Tigrinya', - 'to-TO': 'Tonga (Tonga)', - to: 'Tonga', - 'tr-TR': 'Turkish (Turkey)', - tr: 'Turkish', - 'uk-UA': 'Ukrainian (Ukraine)', - uk: 'Ukrainian', - 'ur-IN': 'Urdu (India)', - 'ur-PK': 'Urdu (Pakistan)', - ur: 'Urdu', - 'uz-Arab': 'Uzbek (Arabic)', - 'uz-Arab-AF': 'Uzbek (Arabic, Afghanistan)', - 'uz-Cyrl': 'Uzbek (Cyrillic)', - 'uz-Cyrl-UZ': 'Uzbek (Cyrillic, Uzbekistan)', - 'uz-Latn': 'Uzbek (Latin)', - 'uz-Latn-UZ': 'Uzbek (Latin, Uzbekistan)', - uz: 'Uzbek', - 'vi-VN': 'Vietnamese (Vietnam)', - vi: 'Vietnamese', - 'vun-TZ': 'Vunjo (Tanzania)', - vun: 'Vunjo', - 'cy-GB': 'Welsh (United Kingdom)', - cy: 'Welsh', - 'yo-NG': 'Yoruba (Nigeria)', - yo: 'Yoruba', - 'zu-ZA': 'Zulu (South Africa)', - zu: 'Zulu', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/en-AU.js b/packages/ui/docs/fundamentals/systems/localize/assets/en-AU.js deleted file mode 100644 index 9300e50da..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/en-AU.js +++ /dev/null @@ -1,6 +0,0 @@ -import en from './en.js'; - -export default { - ...en, - body: 'I am from Australia', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/en-GB.js b/packages/ui/docs/fundamentals/systems/localize/assets/en-GB.js deleted file mode 100644 index 261ddad38..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/en-GB.js +++ /dev/null @@ -1,6 +0,0 @@ -import en from './en.js'; - -export default { - ...en, - body: 'I am from England', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/en-US.js b/packages/ui/docs/fundamentals/systems/localize/assets/en-US.js deleted file mode 100644 index 0caa1a031..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/en-US.js +++ /dev/null @@ -1,6 +0,0 @@ -import en from './en.js'; - -export default { - ...en, - body: 'I am from the USA', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/en.js b/packages/ui/docs/fundamentals/systems/localize/assets/en.js deleted file mode 100644 index c1ec9eb55..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/en.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - header: '{ locale }: Localize message example', - body: 'I am English', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/nl-BE.js b/packages/ui/docs/fundamentals/systems/localize/assets/nl-BE.js deleted file mode 100644 index 2eb8bc771..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/nl-BE.js +++ /dev/null @@ -1,6 +0,0 @@ -import nl from './nl.js'; - -export default { - ...nl, - body: 'Ik kom uit Belgie', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/nl-NL.js b/packages/ui/docs/fundamentals/systems/localize/assets/nl-NL.js deleted file mode 100644 index 0969817f8..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/nl-NL.js +++ /dev/null @@ -1,6 +0,0 @@ -import nl from './nl.js'; - -export default { - ...nl, - body: 'Ik kom uit Nederland', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/assets/nl.js b/packages/ui/docs/fundamentals/systems/localize/assets/nl.js deleted file mode 100644 index e2da5015d..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/assets/nl.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - header: '{ locale }: Localize message voorbeeld', - body: 'Ik kom uit Nederland', -}; diff --git a/packages/ui/docs/fundamentals/systems/localize/dates.md b/packages/ui/docs/fundamentals/systems/localize/dates.md deleted file mode 100644 index f1da52e61..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/dates.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/dates.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/index.md b/packages/ui/docs/fundamentals/systems/localize/index.md deleted file mode 100644 index fc8d1702b..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/index.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/numbers.md b/packages/ui/docs/fundamentals/systems/localize/numbers.md deleted file mode 100644 index d11b5c9d0..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/numbers.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/numbers.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/overview.md b/packages/ui/docs/fundamentals/systems/localize/overview.md deleted file mode 100644 index b8c5c783c..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/overview.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/rationale.md b/packages/ui/docs/fundamentals/systems/localize/rationale.md deleted file mode 100644 index a746874a7..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/rationale.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/rationale.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/text.md b/packages/ui/docs/fundamentals/systems/localize/text.md deleted file mode 100644 index 1a38a8397..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/text.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/text.md) diff --git a/packages/ui/docs/fundamentals/systems/localize/use-cases.md b/packages/ui/docs/fundamentals/systems/localize/use-cases.md deleted file mode 100644 index 319a0c99a..000000000 --- a/packages/ui/docs/fundamentals/systems/localize/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/localize/use-cases.md) diff --git a/packages/ui/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.mjs b/packages/ui/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.mjs deleted file mode 100644 index f5203eb44..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.mjs +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-disable import/no-extraneous-dependencies */ -import { css } from 'lit'; - -const applyDemoOverlayStyles = () => { - const demoOverlaysStyle = css` - .demo-overlay { - background-color: white; - border: 1px solid black; - padding: 10px; - } - - .demo-overlay--blocking { - background-color: lightgrey; - } - `; - - const styleTag = document.createElement('style'); - styleTag.setAttribute('data-demo-overlays', ''); - styleTag.textContent = demoOverlaysStyle.cssText; - document.head.appendChild(styleTag); -}; - -applyDemoOverlayStyles(); diff --git a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs b/packages/ui/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs deleted file mode 100644 index 9d92fc6ed..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs +++ /dev/null @@ -1,103 +0,0 @@ -/* eslint-disable max-classes-per-file */ -/* eslint-disable import/no-extraneous-dependencies */ -import { html, LitElement, css } from 'lit'; -import { OverlayMixin } from '@lion/ui/overlays.js'; -import { LionButton } from '@lion/ui/button.js'; - -/** - * @typedef {import('@lion/ui/types/overlays.js').OverlayConfig} OverlayConfig - */ -class DemoElUsingOverlayMixin extends OverlayMixin(LitElement) { - // eslint-disable-next-line class-methods-use-this - _defineOverlayConfig() { - return /** @type {OverlayConfig} */ ({ - placementMode: 'global', - }); - } - - render() { - return html` - - - - `; - } -} -customElements.define('demo-el-using-overlaymixin', DemoElUsingOverlayMixin); - -class DemoOverlay extends OverlayMixin(LitElement) { - static get styles() { - return [ - css` - ::slotted([slot='content']) { - background-color: #333; - color: white; - padding: 8px; - } - - .close-button { - background: none; - border: none; - color: white; - font-weight: bold; - font-size: 16px; - padding: 4px; - } - `, - ]; - } - - // eslint-disable-next-line class-methods-use-this - _defineOverlayConfig() { - return /** @type {OverlayConfig} */ ({ - placementMode: 'global', - }); - } - - _setupOpenCloseListeners() { - super._setupOpenCloseListeners(); - - if (this._overlayInvokerNode) { - this._overlayInvokerNode.addEventListener('click', this.toggle); - } - } - - _teardownOpenCloseListeners() { - super._teardownOpenCloseListeners(); - - if (this._overlayInvokerNode) { - this._overlayInvokerNode.removeEventListener('click', this.toggle); - } - } - - render() { - return html` - - -
- -
- `; - } -} -customElements.define('demo-overlay', DemoOverlay); - -class DemoCloseButton extends LionButton { - static get styles() { - return [ - css` - ::host { - background: none; - } - `, - ]; - } - - connectedCallback() { - super.connectedCallback(); - - this.innerText = '⨯'; - this.setAttribute('aria-label', 'Close'); - } -} -customElements.define('demo-close-button', DemoCloseButton); diff --git a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.mjs b/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.mjs deleted file mode 100644 index 36fe51b90..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.mjs +++ /dev/null @@ -1,47 +0,0 @@ -/* eslint-disable import/no-extraneous-dependencies */ -import { css, LitElement } from 'lit'; - -/** - * @typedef {import('@lion/ui/types/overlays.js').OverlayConfig} OverlayConfig - */ -class DemoOverlayBackdrop extends LitElement { - static get styles() { - return css` - :host { - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: grey; - opacity: 0.3; - position: fixed; - } - - :host(.local-overlays__backdrop--visible) { - display: block; - } - - :host(.local-overlays__backdrop--animation-in) { - animation: local-overlays-backdrop-fade-in 300ms; - } - - :host(.local-overlays__backdrop--animation-out) { - animation: local-overlays-backdrop-fade-out 300ms; - opacity: 0; - } - - @keyframes local-overlays-backdrop-fade-in { - from { - opacity: 0; - } - } - - @keyframes local-overlays-backdrop-fade-out { - from { - opacity: 0.3; - } - } - `; - } -} -customElements.define('demo-overlay-backdrop', DemoOverlayBackdrop); diff --git a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs b/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs deleted file mode 100644 index ee796d591..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +++ /dev/null @@ -1,537 +0,0 @@ -/* eslint-disable max-classes-per-file */ -/* eslint-disable import/no-extraneous-dependencies */ -import { html, LitElement, css } from 'lit'; -import { ref, createRef } from 'lit/directives/ref.js'; -import { OverlayMixin } from '@lion/ui/overlays.js'; -import './demo-el-using-overlaymixin.mjs'; - -/** - * @typedef {import('@lion/ui/types/overlays.js').OverlayConfig} OverlayConfig - * @typedef {import('@lion/ui/types/overlays.js').OverlayHost} OverlayHost - * @typedef {import('@lion/ui/button.js').LionButton} LionButton - * @typedef {'top-start'|'top'|'top-end'|'right-start'|'right'|'right-end'|'bottom-start'|'bottom'|'bottom-end'|'left-start'|'left'|'left-end'} LocalPlacement - * @typedef {'center'|'top-left'|'top'|'top-right'|'right'|'bottom-right'|'bottom'|'bottom-left'|'left'} ViewportPlacement - * @typedef {{refs: { contentNodeWrapper:{ref: {value:HTMLElement}}; closeButton: {ref: {value:HTMLButtonElement|LionButton}; label:string} }}} TemplateDataForOverlay - */ -class DemoOverlayEl extends OverlayMixin(LitElement) { - /** @type {any} */ - static get properties() { - return { - simulateViewport: { type: Boolean, attribute: 'simulate-viewport', reflect: true }, - noDialogEl: { type: Boolean, attribute: 'no-dialog-el' }, - useAbsolute: { type: Boolean, attribute: 'use-absolute', reflect: true }, - }; - } - - static get styles() { - return [ - super.styles || [], - css` - :host([use-absolute]) dialog { - position: absolute !important; - } - - :host([simulate-viewport]) { - position: absolute; - inset: 0; - z-index: -1; - } - - :host([simulate-viewport]) dialog { - position: absolute !important; - inset: 0; - width: 100%; - height: 100%; - } - - :host([simulate-viewport]) #overlay-content-node-wrapper.overlays__overlay-container { - position: absolute; - } - - /*=== demo invoker and content ===*/ - - :host ::slotted([slot='invoker']) { - border: 4px dashed; - height: 24px; - min-width: 24px; - } - - :host ::slotted([slot='content']) { - background-color: black; - color: white; - height: 54px; - min-width: 54px; - display: flex; - place-items: center; - padding: 20px; - text-align: center; - font-size: 0.8rem; - } - `, - ]; - } - - constructor() { - super(); - - this.simulateViewport = false; - this._noDialogEl = false; - this.useAbsolute = false; - } - - // eslint-disable-next-line class-methods-use-this - _defineOverlayConfig() { - return /** @type {OverlayConfig} */ ({ - placementMode: 'local', - noDialogEl: this._noDialogEl, - popperConfig: { strategy: this.useAbsolute ? 'absolute' : 'fixed' }, - }); - } - - _setupOpenCloseListeners() { - super._setupOpenCloseListeners(); - - if (this._overlayInvokerNode) { - this._overlayInvokerNode.addEventListener('click', this.toggle); - } - } - - _teardownOpenCloseListeners() { - super._teardownOpenCloseListeners(); - - if (this._overlayInvokerNode) { - this._overlayInvokerNode.removeEventListener('click', this.toggle); - } - } - - refs = { - invokerSlot: /** @type {{value: HTMLSlotElement}} */ (createRef()), - backdropSlot: /** @type {{value: HTMLSlotElement}} */ (createRef()), - contentSlot: /** @type {{value: HTMLSlotElement}} */ (createRef()), - closeButton: /** @type {{value: HTMLButtonElement|LionButton}} */ (createRef()), - contentNodeWrapper: /** @type {{value: HTMLElement}} */ (createRef()), - }; - - /** - * @overridable - * @type {TemplateDataForOverlay} - */ - get _templateData() { - return { - refs: { - contentNodeWrapper: { - ref: this.refs.contentNodeWrapper, - }, - closeButton: { - ref: this.refs.closeButton, - label: 'close dialog', - }, - }, - }; - } - - static templates = { - main: (/** @type {TemplateDataForOverlay} */ { refs }) => html` - - -
- -
- `, - }; - - render() { - const ctor = /** @type {typeof DemoOverlayEl} */ (this.constructor); - const templates = this.templates || ctor.templates; - return templates.main(this._templateData); - } -} -customElements.define('demo-overlay-el', DemoOverlayEl); - -class DemoOverlayPositioning extends LitElement { - static properties = { - placementMode: { attribute: 'placement-mode', type: String }, - simulateViewport: { type: Boolean, attribute: 'simulate-viewport', reflect: true }, - _activePos: { type: String, reflect: true, attribute: 'active-pos' }, - _activeConfig: { type: Object, state: true }, - }; - - static get styles() { - return [ - css` - /*=== .pos-container ===*/ - - .pos-container { - padding: 0.5rem; - overflow: hidden; - place-items: center; - height: 20rem; - display: grid; - position: relative; - } - - /*=== .pos-btn-wrapper ===*/ - - /** - * We need a wrapper for position transforms, so that we can apply scale transforms on .pos-btn hover - */ - - .pos-btn-wrapper { - position: absolute; - } - - .pos-container--local .pos-btn-wrapper--bottom-start, - .pos-container--local .pos-btn-wrapper--bottom-end, - .pos-container--local .pos-btn-wrapper--top-start, - .pos-container--local .pos-btn-wrapper--top-end, - .pos-container--local .pos-btn-wrapper--top, - .pos-container--local .pos-btn-wrapper--bottom { - left: 50%; - transform: translateX(-50%); - } - - .pos-container--local .pos-btn-wrapper--top-start, - .pos-container--local .pos-btn-wrapper--top-end, - .pos-container--local .pos-btn-wrapper--top { - top: 0; - } - - .pos-container--local .pos-btn-wrapper--bottom-start, - .pos-container--local .pos-btn-wrapper--bottom-end, - .pos-container--local .pos-btn-wrapper--bottom { - bottom: 0; - } - - .pos-container--local .pos-btn-wrapper--left-start, - .pos-container--local .pos-btn-wrapper--left-end, - .pos-container--local .pos-btn-wrapper--right-start, - .pos-container--local .pos-btn-wrapper--right-end, - .pos-container--local .pos-btn-wrapper--left, - .pos-container--local .pos-btn-wrapper--right { - top: 50%; - transform: translateY(-50%); - } - - .pos-container--local .pos-btn-wrapper--left-start, - .pos-container--local .pos-btn-wrapper--left-end, - .pos-container--local .pos-btn-wrapper--left { - left: 0; - } - - .pos-container--local .pos-btn-wrapper--right-start, - .pos-container--local .pos-btn-wrapper--right-end, - .pos-container--local .pos-btn-wrapper--right { - right: 0; - } - - .pos-container--local .pos-btn-wrapper--bottom-start, - .pos-container--local .pos-btn-wrapper--top-start { - transform: translateX(-50%) translateX(-48px); - } - - .pos-container--local .pos-btn-wrapper--bottom-end, - .pos-container--local .pos-btn-wrapper--top-end { - transform: translateX(-50%) translateX(48px); - } - - .pos-container--local .pos-btn-wrapper--left-start, - .pos-container--local .pos-btn-wrapper--right-start { - transform: translateY(calc(-50% - 48px)); - } - - .pos-container--local .pos-btn-wrapper--left-end, - .pos-container--local .pos-btn-wrapper--right-end { - transform: translateY(calc(-50% + 48px)); - } - - .pos-container--global .pos-btn-wrapper { - top: 50%; - left: 50%; - } - - .pos-container--global .pos-btn-wrapper--center { - transform: translateY(-50%) translateX(-50%); - } - - .pos-container--global .pos-btn-wrapper--top-left { - transform: translateY(-50%) translateX(-50%) translateY(-48px) translateX(-48px); - } - - .pos-container--global .pos-btn-wrapper--top { - transform: translateY(-50%) translateX(-50%) translateY(-48px); - } - - .pos-container--global .pos-btn-wrapper--top-right { - transform: translateY(-50%) translateX(-50%) translateY(-48px) translateX(48px); - } - - .pos-container--global .pos-btn-wrapper--bottom-left { - transform: translateY(-50%) translateX(-50%) translateY(48px) translateX(-48px); - } - - .pos-container--global .pos-btn-wrapper--bottom { - transform: translateY(-50%) translateX(-50%) translateY(48px); - } - - .pos-container--global .pos-btn-wrapper--bottom-right { - transform: translateY(-50%) translateX(-50%) translateY(48px) translateX(48px); - } - - .pos-container--global .pos-btn-wrapper--right { - transform: translateY(-50%) translateX(-50%) translateX(48px); - } - - .pos-container--global .pos-btn-wrapper--left { - transform: translateY(-50%) translateX(-50%) translateX(-48px); - } - - /*=== .pos-btn ===*/ - - .pos-btn { - padding: 1rem; - cursor: pointer; - -webkit-appearance: button; - background-color: transparent; - background-image: none; - text-transform: none; - font-family: inherit; - font-size: 100%; - line-height: inherit; - color: inherit; - margin: 0; - box-sizing: border-box; - border: 0 solid #bfc3d9; - } - - .pos-btn__inner { - border-style: solid; - border-width: 2px; - border-radius: 100%; - width: 0.25rem; - height: 0.25rem; - } - - .pos-btn:hover { - transform: scaleX(2) scaleY(2); - } - - .pos-btn--active .pos-btn__inner { - background-color: black; - } - - /*=== .reference-btn ===*/ - - .reference-btn { - background: white; - box-sizing: border-box; - border: 5px dashed black; - cursor: pointer; - padding: 1rem; - width: 8rem; - height: 8rem; - } - - .pos-container--global .reference-btn { - position: absolute; - inset: 0; - width: 100%; - height: 100%; - z-index: -1; - } - - /*=== .close-btn ===*/ - - .close-btn { - background: transparent; - border: none; - position: absolute; - right: 0; - top: 0; - padding: 0.5rem; - } - - .close-btn::after { - content: ''; - clear: both; - } - - /*=== .overlay-content ===*/ - - .overlay-content { - display: flex; - box-sizing: border-box; - border: 1px solid black; - align-items: center; - justify-items: center; - background-color: #000; - padding: 1rem; - width: 2rem; - height: 2rem; - } - - :host([active-pos^='center']) .pos-container--global .overlay-content { - width: 14rem; - height: 16rem; - } - - :host([active-pos^='bottom']) .pos-container--global .overlay-content, - :host([active-pos^='top']) .pos-container--global .overlay-content { - width: 50%; - } - - :host([active-pos^='left']) .pos-container--global .overlay-content, - :host([active-pos^='right']) .pos-container--global .overlay-content { - height: 50%; - } - - :host([active-pos^='center']) .pos-btn { - color: white; - } - `, - ]; - } - - refs = { - overlay: /** @type {{value: OverlayHost}} */ (createRef()), - }; - - constructor() { - super(); - - this.placementMode = 'local'; - /** @type {ViewportPlacement[]|LocalPlacement[]} */ - this._placements = []; - this.simulateViewport = false; - this._activePos = 'top'; - } - - /** - * - * @param {{pos:ViewportPlacement|LocalPlacement}} opts - */ - async _updatePos({ pos }) { - this._activePos = pos; - - const overlayEl = this.refs.overlay.value; - - // @ts-ignore allow protected - if (overlayEl?._overlayCtrl) { - overlayEl.config = /** @type {Partial} */ ({ - popperConfig: { placement: pos }, - viewportConfig: { placement: pos }, - }); - // TODO: these hacks below should not be needed. Fix when moving to floating-ui - // => animate different positions - // @ts-ignore allow protected - await overlayEl._overlayCtrl.hide(); - // @ts-ignore allow protected - overlayEl._overlayCtrl.show(); - overlayEl.config = /** @type {Partial} */ ({ - popperConfig: { placement: pos }, - viewportConfig: { placement: pos }, - }); - } - } - - /** - * @param {import('lit').PropertyValues } changedProperties - */ - firstUpdated(changedProperties) { - super.firstUpdated(changedProperties); - - this._updatePos({ pos: this.placementMode === 'local' ? 'top' : 'center' }); - } - - /** - * @param {import('lit').PropertyValues } changedProperties - */ - update(changedProperties) { - if (changedProperties.has('placementMode')) { - if (this.placementMode === 'local') { - this._placements = [ - `top-start`, - `top`, - `top-end`, - `right-start`, - `right`, - `right-end`, - `bottom-start`, - `bottom`, - `bottom-end`, - `left-start`, - `left`, - `left-end`, - ]; - } else { - this._placements = [ - `center`, - `top-left`, - `top`, - `top-right`, - `right`, - `bottom-right`, - `bottom`, - `bottom-left`, - `left`, - ]; - } - } - super.update(changedProperties); - } - - /** - * @param {import('lit').PropertyValues } changedProperties - */ - updated(changedProperties) { - super.updated(changedProperties); - - if (changedProperties.has('placementMode')) { - this._activeConfig = { - placementMode: this.placementMode, - }; - } - } - - /** - * @param {{pos:string}} opts - * @returns - */ - _isActivePosBtn({ pos }) { - return pos === this._activePos; - } - - render() { - return html` -
- ${this._placements.map( - pos => - html` -
- -
- `, - )} - - - -
-
-
- `; - } -} -customElements.define('demo-overlay-positioning', DemoOverlayPositioning); diff --git a/packages/ui/docs/fundamentals/systems/overlays/assets/umbrella-form.js b/packages/ui/docs/fundamentals/systems/overlays/assets/umbrella-form.js deleted file mode 100644 index 0d4607bda..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/assets/umbrella-form.js +++ /dev/null @@ -1,140 +0,0 @@ -import { LitElement, html } from 'lit'; -import { Required, MinLength } from '@lion/ui/form-core.js'; -import '@lion/ui/define/lion-form.js'; -import '@lion/ui/define/lion-fieldset.js'; -import '@lion/ui/define/lion-input.js'; -import '@lion/ui/define/lion-input-date.js'; -import '@lion/ui/define/lion-input-datepicker.js'; -import '@lion/ui/define/lion-input-amount.js'; -import '@lion/ui/define/lion-input-iban.js'; -import '@lion/ui/define/lion-input-email.js'; -import '@lion/ui/define/lion-input-tel.js'; -import '@lion/ui/define/lion-input-tel-dropdown.js'; -import '@lion/ui/define/lion-checkbox-group.js'; -import '@lion/ui/define/lion-checkbox.js'; -import '@lion/ui/define/lion-radio-group.js'; -import '@lion/ui/define/lion-radio.js'; -import '@lion/ui/define/lion-select.js'; -import '@lion/ui/define/lion-select-rich.js'; -import '@lion/ui/define/lion-listbox.js'; -import '@lion/ui/define/lion-option.js'; -import '@lion/ui/define/lion-combobox.js'; -import '@lion/ui/define/lion-input-range.js'; -import '@lion/ui/define/lion-textarea.js'; -import '@lion/ui/define/lion-button.js'; -import '@lion/ui/define/lion-switch.js'; -import '@lion/ui/define/lion-input-stepper.js'; - -export class UmbrellaForm extends LitElement { - get _lionFormNode() { - return /** @type {import('@lion/ui/form.js').LionForm} */ ( - this.shadowRoot?.querySelector('lion-form') - ); - } - - render() { - return html` - -
- - - - - - - - - - - - - - - - - - - - - - - - - Red - Hotpink - Teal - - - - - - - - - - - -
- Submit - { - const lionForm = this._lionFormNode; - lionForm.resetGroup(); - }} - >Reset -
-
-
- `; - } -} -customElements.define('umbrella-form', UmbrellaForm); diff --git a/packages/ui/docs/fundamentals/systems/overlays/configuration.md b/packages/ui/docs/fundamentals/systems/overlays/configuration.md deleted file mode 100644 index 3393610fc..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/configuration.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/overlays/configuration.md) diff --git a/packages/ui/docs/fundamentals/systems/overlays/index.md b/packages/ui/docs/fundamentals/systems/overlays/index.md deleted file mode 100644 index 6f1218712..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/overlays/index.md) diff --git a/packages/ui/docs/fundamentals/systems/overlays/overview.md b/packages/ui/docs/fundamentals/systems/overlays/overview.md deleted file mode 100644 index d3a3ac3f1..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/overlays/overview.md) diff --git a/packages/ui/docs/fundamentals/systems/overlays/rationale.md b/packages/ui/docs/fundamentals/systems/overlays/rationale.md deleted file mode 100644 index c412d4add..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/rationale.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/overlays/rationale.md) diff --git a/packages/ui/docs/fundamentals/systems/overlays/use-cases.md b/packages/ui/docs/fundamentals/systems/overlays/use-cases.md deleted file mode 100644 index f82581059..000000000 --- a/packages/ui/docs/fundamentals/systems/overlays/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/systems/overlays/use-cases.md) diff --git a/packages/ui/docs/fundamentals/tools/ajax/assets/naga.json b/packages/ui/docs/fundamentals/tools/ajax/assets/naga.json deleted file mode 100644 index 0445fee3f..000000000 --- a/packages/ui/docs/fundamentals/tools/ajax/assets/naga.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "2", - "type": "Polar Bear Dog", - "name": "Naga", - "skin": { - "type": "fur", - "color": "white" - } -} diff --git a/packages/ui/docs/fundamentals/tools/ajax/assets/pabu.json b/packages/ui/docs/fundamentals/tools/ajax/assets/pabu.json deleted file mode 100644 index 9c693a143..000000000 --- a/packages/ui/docs/fundamentals/tools/ajax/assets/pabu.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "4", - "type": "Fire Ferret", - "name": "Pabu", - "skin": { - "type": "fur", - "color": "red" - } -} diff --git a/packages/ui/docs/fundamentals/tools/ajax/index.md b/packages/ui/docs/fundamentals/tools/ajax/index.md deleted file mode 100644 index 0c1ef3b95..000000000 --- a/packages/ui/docs/fundamentals/tools/ajax/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/ajax/index.md) diff --git a/packages/ui/docs/fundamentals/tools/ajax/overview.md b/packages/ui/docs/fundamentals/tools/ajax/overview.md deleted file mode 100644 index e988816e0..000000000 --- a/packages/ui/docs/fundamentals/tools/ajax/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/ajax/overview.md) diff --git a/packages/ui/docs/fundamentals/tools/ajax/use-cases.md b/packages/ui/docs/fundamentals/tools/ajax/use-cases.md deleted file mode 100644 index fd0809178..000000000 --- a/packages/ui/docs/fundamentals/tools/ajax/use-cases.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/ajax/use-cases.md) diff --git a/packages/ui/docs/fundamentals/tools/helpers/action-logger.md b/packages/ui/docs/fundamentals/tools/helpers/action-logger.md deleted file mode 100644 index 3c73eb034..000000000 --- a/packages/ui/docs/fundamentals/tools/helpers/action-logger.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/helpers/action-logger.md) diff --git a/packages/ui/docs/fundamentals/tools/helpers/index.md b/packages/ui/docs/fundamentals/tools/helpers/index.md deleted file mode 100644 index 4811a99c0..000000000 --- a/packages/ui/docs/fundamentals/tools/helpers/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/helpers/index.md) diff --git a/packages/ui/docs/fundamentals/tools/helpers/overview.md b/packages/ui/docs/fundamentals/tools/helpers/overview.md deleted file mode 100644 index 828d6e0db..000000000 --- a/packages/ui/docs/fundamentals/tools/helpers/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/helpers/overview.md) diff --git a/packages/ui/docs/fundamentals/tools/index.md b/packages/ui/docs/fundamentals/tools/index.md deleted file mode 100644 index cef8ef650..000000000 --- a/packages/ui/docs/fundamentals/tools/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/fundamentals/tools/index.md) diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/.gitignore b/packages/ui/docs/fundamentals/tools/singleton-manager/.gitignore deleted file mode 100644 index 2dde2e120..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!**/* diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js deleted file mode 100644 index 057392db9..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +++ /dev/null @@ -1,93 +0,0 @@ -import { LitElement, css, html } from 'lit'; - -import './overlayCompatibility.js'; - -import 'page-a/page-a.js'; -import 'page-b/page-b.js'; - -class DemoApp extends LitElement { - constructor() { - super(); - this.page = 'A'; - } - - static get properties() { - return { - page: { type: String }, - }; - } - - static get styles() { - return css` - :host { - display: block; - max-width: 680px; - margin: 0 auto; - } - - nav { - padding: 0 10px 10px 10px; - } - - button { - border: none; - padding: 1rem 2rem; - background: #0069ed; - color: #fff; - font-size: 1rem; - cursor: pointer; - text-align: center; - transition: background 250ms ease-in-out, transform 150ms ease; - } - - button:hover, - button:focus { - background: #0053ba; - } - - button:focus { - outline: 1px solid #fff; - outline-offset: -4px; - } - - button:active { - transform: scale(0.99); - } - - button.active { - background: #33a43f; - } - - h1 { - text-align: center; - } - `; - } - - render() { - return html` -

Demo App

- - ${this.page === 'A' ? html` ` : html` `} - `; - } -} - -customElements.define('demo-app', DemoApp); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js deleted file mode 100644 index fb10ab782..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 1.x'; - - blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - block() { - this.blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlock() { - this.blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js deleted file mode 100644 index caecda9ae..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::1.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js deleted file mode 100644 index 714486f76..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js +++ /dev/null @@ -1,35 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageA extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page A

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays.blockBody}

- - - - `; - } -} - - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index 5c5ae99b9..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - _blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockBody() { - this._blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockBody() { - this._blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index c3e546133..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::2.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js deleted file mode 100644 index bc65fde08..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js +++ /dev/null @@ -1,49 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - getInstance(sym, fallback) { - const ev = new CustomEvent('request-instance', { - detail: { key: sym }, - bubbles: true, - cancelable: true, - composed: true, - }); - this.dispatchEvent(ev); - return ev.detail.instance || fallback(); - } - - connectedCallback() { - super.connectedCallback(); - } - - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page B

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays._blockBody}

- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js deleted file mode 100644 index 384537215..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js +++ /dev/null @@ -1,70 +0,0 @@ -import { OverlaysManager } from 'overlays'; -import { singletonManager } from 'singleton-manager'; -import { OverlaysManager as OverlaysManager2 } from './node_modules/page-b/node_modules/overlays/index.js'; - -let compatibleManager1; -let compatibleManager2; - -const blocker = document.createElement('div'); -blocker.setAttribute( - 'style', - 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;', -); -blocker.innerText = `Shared Blocker for App`; -document.body.appendChild(blocker); - -class CompatibleManager1 extends OverlaysManager { - constructor() { - super(); - this.name = 'Compatible1 from App'; - } - - block(sync = true) { - super.block(); - if (sync) { - compatibleManager2.blockBody(false); - } - } - - unBlock(sync = true) { - super.unBlock(); - if (sync) { - compatibleManager2.unBlockBody(false); - } - } - - _setupBlocker() { - this.blocker = blocker; - } -} - -class CompatibleManager2 extends OverlaysManager2 { - constructor() { - super(); - this.name = 'Compatible2 from App'; - } - - blockBody(sync = true) { - super.blockBody(); - if (sync) { - compatibleManager1.block(); - } - } - - unBlockBody(sync = true) { - super.unBlockBody(); - if (sync) { - compatibleManager1.unBlock(); - } - } - - _setupBlocker() { - this.blocker = blocker; - } -} - -compatibleManager1 = new CompatibleManager1(); -compatibleManager2 = new CompatibleManager2(); - -singletonManager.set('overlays::overlays::1.x', compatibleManager1); -singletonManager.set('overlays::overlays::2.x', compatibleManager2); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js deleted file mode 100644 index 802bb6d85..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +++ /dev/null @@ -1,91 +0,0 @@ -import { LitElement, css, html } from 'lit'; - -import 'page-a/page-a.js'; -import 'page-b/page-b.js'; - -class DemoApp extends LitElement { - constructor() { - super(); - this.page = 'A'; - } - - static get properties() { - return { - page: { type: String }, - }; - } - - static get styles() { - return css` - :host { - display: block; - max-width: 680px; - margin: 0 auto; - } - - nav { - padding: 0 10px 10px 10px; - } - - button { - border: none; - padding: 1rem 2rem; - background: #0069ed; - color: #fff; - font-size: 1rem; - cursor: pointer; - text-align: center; - transition: background 250ms ease-in-out, transform 150ms ease; - } - - button:hover, - button:focus { - background: #0053ba; - } - - button:focus { - outline: 1px solid #fff; - outline-offset: -4px; - } - - button:active { - transform: scale(0.99); - } - - button.active { - background: #33a43f; - } - - h1 { - text-align: center; - } - `; - } - - render() { - return html` -

Demo App

- - ${this.page === 'A' ? html` ` : html` `} - `; - } -} - -customElements.define('demo-app', DemoApp); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js deleted file mode 100644 index 011dff710..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 1.x'; - - blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 180px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - block() { - this.blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlock() { - this.blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js deleted file mode 100644 index f73ca3b47..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js +++ /dev/null @@ -1,3 +0,0 @@ -import { OverlaysManager } from './index.js'; - -export const overlays = new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-a/page-a.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-a/page-a.js deleted file mode 100644 index 21fd3dde5..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-a/page-a.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageA extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page A

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays.blockBody}

- - - - `; - } -} - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index ea2f3b178..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - _blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 180px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockBody() { - this._blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockBody() { - this._blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index f73ca3b47..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,3 +0,0 @@ -import { OverlaysManager } from './index.js'; - -export const overlays = new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js deleted file mode 100644 index 94a90c0c0..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page B

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays._blockBody}

- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js deleted file mode 100644 index 057392db9..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +++ /dev/null @@ -1,93 +0,0 @@ -import { LitElement, css, html } from 'lit'; - -import './overlayCompatibility.js'; - -import 'page-a/page-a.js'; -import 'page-b/page-b.js'; - -class DemoApp extends LitElement { - constructor() { - super(); - this.page = 'A'; - } - - static get properties() { - return { - page: { type: String }, - }; - } - - static get styles() { - return css` - :host { - display: block; - max-width: 680px; - margin: 0 auto; - } - - nav { - padding: 0 10px 10px 10px; - } - - button { - border: none; - padding: 1rem 2rem; - background: #0069ed; - color: #fff; - font-size: 1rem; - cursor: pointer; - text-align: center; - transition: background 250ms ease-in-out, transform 150ms ease; - } - - button:hover, - button:focus { - background: #0053ba; - } - - button:focus { - outline: 1px solid #fff; - outline-offset: -4px; - } - - button:active { - transform: scale(0.99); - } - - button.active { - background: #33a43f; - } - - h1 { - text-align: center; - } - `; - } - - render() { - return html` -

Demo App

- - ${this.page === 'A' ? html` ` : html` `} - `; - } -} - -customElements.define('demo-app', DemoApp); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js deleted file mode 100644 index fb10ab782..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 1.x'; - - blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - block() { - this.blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlock() { - this.blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js deleted file mode 100644 index caecda9ae..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::1.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-a/page-a.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-a/page-a.js deleted file mode 100644 index 21fd3dde5..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-a/page-a.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageA extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page A

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays.blockBody}

- - - - `; - } -} - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index a2e56314e..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockingBody() { - this.blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockingBody() { - this.blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index c3e546133..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::2.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js deleted file mode 100644 index 41fa08ad4..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -

I am page B

-

Overlays Status:

-

Name: ${overlays.name}

-

Blocked: ${overlays.blockBody}

- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js deleted file mode 100644 index 36a9c73c0..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js +++ /dev/null @@ -1,23 +0,0 @@ -import { OverlaysManager } from 'overlays'; -import { singletonManager } from 'singleton-manager'; - -class CompatibleManager extends OverlaysManager { - constructor() { - super(); - this.name = 'Compatible from App'; - this.blocker.innerText = `Blocker for ${this.name}`; - } - - blockingBody() { - this.block(); - } - - unBlockingBody() { - this.unBlock(); - } -} - -const compatibleManager = new CompatibleManager(); - -singletonManager.set('overlays::overlays::1.x', compatibleManager); -singletonManager.set('overlays::overlays::2.x', compatibleManager); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/index.md b/packages/ui/docs/fundamentals/tools/singleton-manager/index.md deleted file mode 100644 index c596d52a8..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/singleton-manager/index.md) diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md b/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md deleted file mode 100644 index bcb433e30..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/singleton-manager/overview.md) diff --git a/packages/ui/docs/guides/how-to/create-a-custom-field.md b/packages/ui/docs/guides/how-to/create-a-custom-field.md deleted file mode 100644 index abf05508a..000000000 --- a/packages/ui/docs/guides/how-to/create-a-custom-field.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/create-a-custom-field.md) diff --git a/packages/ui/docs/guides/how-to/extend-a-native-input.md b/packages/ui/docs/guides/how-to/extend-a-native-input.md deleted file mode 100644 index 732d29738..000000000 --- a/packages/ui/docs/guides/how-to/extend-a-native-input.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/extend-a-native-input.md) diff --git a/packages/ui/docs/guides/how-to/get-started.md b/packages/ui/docs/guides/how-to/get-started.md deleted file mode 100644 index c6c257997..000000000 --- a/packages/ui/docs/guides/how-to/get-started.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/get-started.md) diff --git a/packages/ui/docs/guides/how-to/index.md b/packages/ui/docs/guides/how-to/index.md deleted file mode 100644 index f277f8c7c..000000000 --- a/packages/ui/docs/guides/how-to/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/index.md) diff --git a/packages/ui/docs/guides/index.md b/packages/ui/docs/guides/index.md deleted file mode 100644 index fda6dd4b0..000000000 --- a/packages/ui/docs/guides/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../docs/guides/index.md) diff --git a/packages/ui/docs/guides/principles/definitions-and-terms.md b/packages/ui/docs/guides/principles/definitions-and-terms.md deleted file mode 100644 index 6ddd68b5b..000000000 --- a/packages/ui/docs/guides/principles/definitions-and-terms.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/definitions-and-terms.md) diff --git a/packages/ui/docs/guides/principles/index.md b/packages/ui/docs/guides/principles/index.md deleted file mode 100644 index 782a0ca05..000000000 --- a/packages/ui/docs/guides/principles/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/index.md) diff --git a/packages/ui/docs/guides/principles/scoped-elements.md b/packages/ui/docs/guides/principles/scoped-elements.md deleted file mode 100644 index fe49e687c..000000000 --- a/packages/ui/docs/guides/principles/scoped-elements.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/scoped-elements.md) diff --git a/packages/ui/docs/guides/principles/styling.md b/packages/ui/docs/guides/principles/styling.md deleted file mode 100644 index b642e31f1..000000000 --- a/packages/ui/docs/guides/principles/styling.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/styling.md) diff --git a/packages/ui/docs/guides/principles/subclasser-apis.md b/packages/ui/docs/guides/principles/subclasser-apis.md deleted file mode 100644 index 62c703759..000000000 --- a/packages/ui/docs/guides/principles/subclasser-apis.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/subclasser-apis.md) diff --git a/packages/ui/docs/override.js b/packages/ui/docs/override.js deleted file mode 100644 index 552d7c9b9..000000000 --- a/packages/ui/docs/override.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This will override all md files within the folder to only contain [=> See Source <=](../path/to/source.md) - */ - -import { writeFile } from 'fs/promises'; -import glob from 'glob'; - -const allFiles = glob.sync('**/*.md', { nodir: true }); -const files = allFiles; - -for (const filePath of files) { - const insert = 3 + filePath.match(/\//g).length; - const srcPath = `${'../'.repeat(insert)}docs/${filePath}`; - await writeFile(filePath, `[=> See Source <=](${srcPath})`); -} diff --git a/packages/ui/package.json b/packages/ui/package.json index 158bd4159..ff56e9145 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -41,7 +41,7 @@ "debug:firefox": "cd ../../ && npm run debug:firefox", "debug:webkit": "cd ../../ && npm run debug:webkit", "publish-docs": "node ../../packages-node/publish-docs/src/cli.js --github-url https://github.com/ing-bank/lion/ --git-root-dir ../../", - "prepublishOnly": "npm run types && node ./scripts/copy-doc-assets.js && npm run publish-docs && npm run custom-elements-manifest", + "prepublishOnly": "npm run types && node ./scripts/create-docs-for-npm-publish.js && npm run publish-docs && npm run custom-elements-manifest", "test": "cd ../../ && npm run test:browser", "types": "wireit", "types-check-only": "tsc --project tsconfig-check-only.json", diff --git a/packages/ui/scripts/copy-doc-assets.js b/packages/ui/scripts/copy-doc-assets.js deleted file mode 100644 index 47d0ffcad..000000000 --- a/packages/ui/scripts/copy-doc-assets.js +++ /dev/null @@ -1,29 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -// eslint-disable-next-line import/no-extraneous-dependencies -import { globby } from 'globby'; -import { fileURLToPath } from 'url'; - -const monoDocsRoot = fileURLToPath(new URL('../../../docs', import.meta.url)); -const localDocsRoot = fileURLToPath(new URL('../docs', import.meta.url)); - -async function copyDocAssets() { - // Folders generated by Rocket - const oldDestinations = await globby([`${monoDocsRoot}/**/**/*.{js,cjs,mjs}`]); - - for (const oldDestination of oldDestinations) { - const relPath = oldDestination.replace(monoDocsRoot, ''); - - // don't handle private folders and Rocket specifics - if (relPath.startsWith('/_') || oldDestination.endsWith('11tydata.cjs')) { - // eslint-disable-next-line no-continue - continue; - } - const newDestination = `${localDocsRoot}${relPath}`; - - await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); - fs.promises.copyFile(oldDestination, newDestination); - } -} - -copyDocAssets(); diff --git a/packages/ui/scripts/create-docs-for-npm-publish.js b/packages/ui/scripts/create-docs-for-npm-publish.js new file mode 100644 index 000000000..ec3cf83c8 --- /dev/null +++ b/packages/ui/scripts/create-docs-for-npm-publish.js @@ -0,0 +1,76 @@ +import fs from 'fs'; +import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { globby } from 'globby'; +import { fileURLToPath } from 'url'; + +const monoRoot = fileURLToPath(new URL('../../../', import.meta.url)); +const lionUiPkgRoot = fileURLToPath(new URL('../', import.meta.url)); + +const monoDocsRoot = fileURLToPath(new URL('../../../docs', import.meta.url)); +const localDocsRoot = fileURLToPath(new URL('../docs', import.meta.url)); +const foldersWeAreInterestedIn = ['components', 'fundamentals', 'guides']; + +/** + * @param {string} rootPath + * @returns {object|undefined} + */ +function getPackageJson(rootPath) { + try { + const fileContent = fs.readFileSync(`${rootPath}/package.json`, 'utf8'); + return JSON.parse(fileContent); + } catch { + return undefined; + } +} + +async function sanityCheck() { + const pkgJsonMonoRoot = getPackageJson(monoRoot); + const pkgJsonLionUi = getPackageJson(lionUiPkgRoot); + + if (pkgJsonMonoRoot?.name !== '@lion/root' || pkgJsonLionUi.name !== '@lion/ui') { + throw new Error( + 'It seems like this script has moved. Adjust variables "monoRoot" and/or "lionUiPkgRoot"', + ); + } +} + +async function generateMdFilesWithSourceReferrals() { + const mdPaths = await globby(`${monoDocsRoot}/{${foldersWeAreInterestedIn.join(',')}}/**/*.md`, { + nodir: true, + }); + + for (const mdPath of mdPaths) { + const localPath = mdPath.replace(monoDocsRoot, ''); + const newDestination = `${localDocsRoot}${localPath}`; + const relSrcPath = path.relative(path.dirname(newDestination), monoDocsRoot); + await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); + // Make it ready for publish-docs + await fs.promises.writeFile(newDestination, `[=> See Source <=](${relSrcPath}${localPath})`); + } +} + +async function copyDocAssets() { + // Folders generated by Rocket + const originalAssetPaths = await globby([ + `${monoDocsRoot}/{${foldersWeAreInterestedIn.join(',')}}/**/**/*.{js,cjs,mjs}`, + ]); + + for (const originalAssetPath of originalAssetPaths) { + const localPath = originalAssetPath.replace(monoDocsRoot, ''); + + // don't handle private folders and Rocket specifics + if (localPath.startsWith('/_') || originalAssetPath.endsWith('11tydata.cjs')) { + // eslint-disable-next-line no-continue + continue; + } + const newDestination = `${localDocsRoot}${localPath}`; + + await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); + fs.promises.copyFile(originalAssetPath, newDestination); + } +} + +await sanityCheck(); +await generateMdFilesWithSourceReferrals(); +await copyDocAssets();