@xplortech/apollo-core 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.typings/apollo-components.html-data.json +134 -12
- package/AGENTS.md +27 -3
- package/README.md +12 -0
- package/build/components/accordion.css +1 -0
- package/build/components/application-shell.css +1 -0
- package/build/components/avatar.css +1 -0
- package/build/components/backdrop.css +1 -0
- package/build/components/badge.css +1 -0
- package/build/components/banner.css +1 -0
- package/build/components/breadcrumbs.css +1 -0
- package/build/components/button-row.css +1 -0
- package/build/components/button.css +1 -0
- package/build/components/calendar.css +1 -0
- package/build/components/checkbox-radio.css +1 -0
- package/build/components/choicelist.css +1 -0
- package/build/components/content-area.css +1 -0
- package/build/components/dashboard.css +1 -0
- package/build/components/data-card.css +1 -0
- package/build/components/divider.css +1 -0
- package/build/components/dropdown.css +1 -0
- package/build/components/dynamic-table-cell.css +1 -0
- package/build/components/dynamic-table-row.css +1 -0
- package/build/components/dynamic-table.css +1 -0
- package/build/components/grid.css +1 -0
- package/build/components/header-accordion.css +1 -0
- package/build/components/icon.css +1 -0
- package/build/components/input-color.css +1 -0
- package/build/components/input-date.css +1 -0
- package/build/components/input-file.css +1 -0
- package/build/components/input-phone.css +1 -0
- package/build/components/input-search.css +1 -0
- package/build/components/input-time.css +1 -0
- package/build/components/input.css +1 -0
- package/build/components/label.css +1 -0
- package/build/components/large-card.css +1 -0
- package/build/components/list-action.css +1 -0
- package/build/components/list-item.css +1 -0
- package/build/components/list.css +1 -0
- package/build/components/main-nav.css +1 -0
- package/build/components/modal.css +1 -0
- package/build/components/nav-item.css +1 -0
- package/build/components/pagination.css +1 -0
- package/build/components/panel.css +1 -0
- package/build/components/popover.css +1 -0
- package/build/components/progress-bar.css +1 -0
- package/build/components/progress-indicator.css +1 -0
- package/build/components/secondary-nav.css +1 -0
- package/build/components/select.css +1 -0
- package/build/components/side-nav.css +1 -0
- package/build/components/skeleton.css +1 -0
- package/build/components/slideout.css +1 -0
- package/build/components/spotlight.css +1 -0
- package/build/components/table-header-cell.css +1 -0
- package/build/components/table-header.css +1 -0
- package/build/components/table.css +1 -0
- package/build/components/tabs.css +1 -0
- package/build/components/tag.css +1 -0
- package/build/components/toast.css +1 -0
- package/build/components/toggle.css +1 -0
- package/build/components/toolbar.css +1 -0
- package/build/components/tooltip.css +1 -0
- package/build/components/top-nav.css +1 -0
- package/build/components/utility-bar.css +1 -0
- package/build/components-manifest.json +220 -0
- package/build/core.css +2 -0
- package/build/reset.css +394 -0
- package/build/style.css +2 -13120
- package/build/tailwind-theme.css +2 -0
- package/build/typography.css +1 -0
- package/build/variables/apollo.css +779 -0
- package/build/variables/field-edge.css +554 -0
- package/build/vendor/flatpickr.css +1 -0
- package/dist/apollo-core/apollo-core.css +2 -55
- package/dist/apollo-core/apollo-core.esm.js +1 -1
- package/dist/apollo-core/p-0095174c.entry.js +1 -0
- package/dist/apollo-core/p-020ecd66.entry.js +1 -0
- package/dist/apollo-core/p-0463c29f.entry.js +1 -0
- package/dist/apollo-core/p-091411e3.entry.js +1 -0
- package/dist/apollo-core/p-0be4dbb8.entry.js +1 -0
- package/dist/apollo-core/p-1139fac0.entry.js +1 -0
- package/dist/apollo-core/p-121d1a4b.entry.js +1 -0
- package/dist/apollo-core/p-140a96c7.entry.js +1 -0
- package/dist/apollo-core/p-1M1pu0C2.js +1 -0
- package/dist/apollo-core/p-1a417191.entry.js +1 -0
- package/dist/apollo-core/p-256ece8b.entry.js +1 -0
- package/dist/apollo-core/p-26861d09.entry.js +1 -0
- package/dist/apollo-core/p-26b6a0ed.entry.js +1 -0
- package/dist/apollo-core/p-39e71d86.entry.js +1 -0
- package/dist/apollo-core/p-3d9c90ee.entry.js +1 -0
- package/dist/apollo-core/p-3dd1de49.entry.js +1 -0
- package/dist/apollo-core/p-4129d971.entry.js +1 -0
- package/dist/apollo-core/p-46d21684.entry.js +1 -0
- package/dist/apollo-core/p-4e61587f.entry.js +1 -0
- package/dist/apollo-core/p-5afc9831.entry.js +1 -0
- package/dist/apollo-core/p-5ca18bc1.entry.js +1 -0
- package/dist/apollo-core/p-5d25a84a.entry.js +1 -0
- package/dist/apollo-core/p-5e5c5016.entry.js +1 -0
- package/dist/apollo-core/p-601b3ab5.entry.js +1 -0
- package/dist/apollo-core/p-616c5a32.entry.js +1 -0
- package/dist/apollo-core/p-638fd9b1.entry.js +1 -0
- package/dist/apollo-core/p-643c8038.entry.js +1 -0
- package/dist/apollo-core/p-707b1918.entry.js +1 -0
- package/dist/apollo-core/p-724c5038.entry.js +1 -0
- package/dist/apollo-core/p-76f64d65.entry.js +1 -0
- package/dist/apollo-core/p-7976cd3b.entry.js +1 -0
- package/dist/apollo-core/p-7f105d63.entry.js +1 -0
- package/dist/apollo-core/p-80a11cad.entry.js +1 -0
- package/dist/apollo-core/p-853418be.entry.js +1 -0
- package/dist/apollo-core/p-875e0eaa.entry.js +1 -0
- package/dist/apollo-core/p-8845106f.entry.js +1 -0
- package/dist/apollo-core/p-8a81ef98.entry.js +1 -0
- package/dist/apollo-core/p-8a925e9d.entry.js +1 -0
- package/dist/apollo-core/p-8ddbf2e2.entry.js +1 -0
- package/dist/apollo-core/p-9747cf43.entry.js +1 -0
- package/dist/apollo-core/p-9b0174b1.entry.js +1 -0
- package/dist/apollo-core/p-9bf2ff9f.entry.js +1 -0
- package/dist/apollo-core/p-BFTU3MAI.js +1 -0
- package/dist/apollo-core/p-BQtbf88X.js +1 -0
- package/dist/apollo-core/p-CWdQxaaX.js +1 -0
- package/dist/apollo-core/p-C_PEOQWj.js +1 -0
- package/dist/apollo-core/p-CzwViN3U.js +1 -0
- package/dist/apollo-core/p-DkqlawVY.js +1 -0
- package/dist/apollo-core/p-Dqb1pIRo.js +1 -0
- package/dist/apollo-core/p-_r9-FML8.js +1 -0
- package/dist/apollo-core/p-a0d3b7f8.entry.js +1 -0
- package/dist/apollo-core/p-a33b0943.entry.js +1 -0
- package/dist/apollo-core/p-b537f72d.entry.js +1 -0
- package/dist/apollo-core/p-ba41bbd5.entry.js +1 -0
- package/dist/apollo-core/p-bb22ed2a.entry.js +1 -0
- package/dist/apollo-core/p-c25aebe5.entry.js +1 -0
- package/dist/apollo-core/p-c427a31d.entry.js +1 -0
- package/dist/apollo-core/p-cde21f72.entry.js +1 -0
- package/dist/apollo-core/p-d288c1d1.entry.js +1 -0
- package/dist/apollo-core/p-d37488d4.entry.js +1 -0
- package/dist/apollo-core/p-d3f2b8b8.entry.js +1 -0
- package/dist/apollo-core/p-dfaba114.entry.js +1 -0
- package/dist/apollo-core/p-e00ed4f4.entry.js +1 -0
- package/dist/apollo-core/p-e2a16242.entry.js +1 -0
- package/dist/apollo-core/p-e4ae3f60.entry.js +1 -0
- package/dist/apollo-core/p-ec488f9c.entry.js +1 -0
- package/dist/apollo-core/p-efa21ec0.entry.js +1 -0
- package/dist/apollo-core/p-f199ad66.entry.js +1 -0
- package/dist/apollo-core/p-f2bfe6a6.entry.js +1 -0
- package/dist/apollo-core/p-fd2756d8.entry.js +1 -0
- package/dist/apollo-core/p-fef6c256.entry.js +1 -0
- package/dist/apollo-core/p-ff8acf15.entry.js +1 -0
- package/dist/apollo-core/p-ukZKsqqq.js +2 -0
- package/dist/cjs/_commonjsHelpers-BJu3ubxk.js +10 -0
- package/dist/cjs/apollo-core.cjs.js +2 -2
- package/dist/cjs/floating-ui.dom-DuvGwvW-.js +1710 -0
- package/dist/cjs/{index-BaXVr8ux.js → index-3cBvw409.js} +760 -9
- package/dist/cjs/index-DP4JWqOH.js +456 -0
- package/dist/cjs/lifecycle-DeSsFfQZ.js +74 -0
- package/dist/cjs/light-dom-slots-CS8Q9rRZ.js +19 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/side-nav-slot-utils-DMog5BVN.js +41 -0
- package/dist/cjs/slot-presence-HmQUW2Ba.js +10 -0
- package/dist/cjs/tab-a11y-ids--A4ZoXEj.js +27 -0
- package/dist/cjs/top-nav-constants-DckvgAo7.js +5 -0
- package/dist/cjs/xpl-accordion.cjs.entry.js +5 -3
- package/dist/cjs/xpl-application-shell.cjs.entry.js +2 -2
- package/dist/cjs/xpl-avatar_3.cjs.entry.js +210 -0
- package/dist/cjs/xpl-backdrop.cjs.entry.js +19 -0
- package/dist/cjs/xpl-badge.cjs.entry.js +37 -0
- package/dist/cjs/xpl-banner.cjs.entry.js +74 -0
- package/dist/cjs/xpl-breadcrumb-item.cjs.entry.js +18 -0
- package/dist/cjs/xpl-breadcrumbs.cjs.entry.js +14 -0
- package/dist/cjs/xpl-button-row.cjs.entry.js +2 -2
- package/dist/cjs/xpl-button.cjs.entry.js +81 -0
- package/dist/cjs/xpl-calendar.cjs.entry.js +10 -6
- package/dist/cjs/xpl-checkbox.cjs.entry.js +32 -0
- package/dist/cjs/xpl-choicelist.cjs.entry.js +68 -0
- package/dist/cjs/xpl-content-area.cjs.entry.js +15 -0
- package/dist/cjs/xpl-dashboard.cjs.entry.js +14 -0
- package/dist/cjs/xpl-data-card.cjs.entry.js +111 -0
- package/dist/cjs/xpl-dropdown_4.cjs.entry.js +577 -0
- package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +8 -6
- package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +5 -5
- package/dist/cjs/xpl-dynamic-table.cjs.entry.js +11 -18
- package/dist/cjs/xpl-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/xpl-grid.cjs.entry.js +6 -6
- package/dist/cjs/xpl-header-accordion.cjs.entry.js +69 -0
- package/dist/{esm/xpl-avatar_54.entry.js → cjs/xpl-icon.cjs.entry.js} +1293 -10607
- package/dist/cjs/xpl-input-color.cjs.entry.js +435 -0
- package/dist/cjs/xpl-input-phone.cjs.entry.js +509 -0
- package/dist/cjs/xpl-input-time.cjs.entry.js +196 -0
- package/dist/cjs/xpl-input_4.cjs.entry.js +524 -0
- package/dist/cjs/xpl-large-card.cjs.entry.js +63 -4
- package/dist/cjs/xpl-list-item.cjs.entry.js +460 -0
- package/dist/cjs/xpl-list.cjs.entry.js +396 -0
- package/dist/cjs/xpl-main-nav.cjs.entry.js +2 -2
- package/dist/cjs/xpl-modal.cjs.entry.js +78 -0
- package/dist/cjs/xpl-nav-header-menu.cjs.entry.js +86 -0
- package/dist/cjs/xpl-nav-item.cjs.entry.js +25 -0
- package/dist/cjs/xpl-pagination.cjs.entry.js +112 -0
- package/dist/cjs/xpl-panel.cjs.entry.js +21 -0
- package/dist/cjs/xpl-popover.cjs.entry.js +265 -0
- package/dist/cjs/xpl-progress-bar.cjs.entry.js +41 -0
- package/dist/cjs/xpl-progress-indicator.cjs.entry.js +74 -0
- package/dist/cjs/xpl-secondary-nav.cjs.entry.js +14 -0
- package/dist/cjs/xpl-select_2.cjs.entry.js +493 -0
- package/dist/cjs/xpl-side-nav-header-item.cjs.entry.js +101 -0
- package/dist/cjs/xpl-side-nav-item.cjs.entry.js +130 -0
- package/dist/cjs/xpl-side-nav-section.cjs.entry.js +105 -0
- package/dist/cjs/xpl-side-nav.cjs.entry.js +272 -0
- package/dist/cjs/xpl-skeleton.cjs.entry.js +26 -0
- package/dist/cjs/xpl-slideout.cjs.entry.js +47 -0
- package/dist/cjs/xpl-spotlight.cjs.entry.js +722 -0
- package/dist/cjs/xpl-tab-panel.cjs.entry.js +24 -0
- package/dist/cjs/xpl-tab.cjs.entry.js +87 -0
- package/dist/cjs/xpl-table-header-cell.cjs.entry.js +5 -3
- package/dist/cjs/xpl-table-header.cjs.entry.js +2 -2
- package/dist/cjs/xpl-table.cjs.entry.js +185 -0
- package/dist/cjs/xpl-tabs.cjs.entry.js +373 -0
- package/dist/cjs/xpl-toast.cjs.entry.js +91 -0
- package/dist/cjs/xpl-toggle.cjs.entry.js +6 -6
- package/dist/cjs/xpl-toolbar.cjs.entry.js +3 -3
- package/dist/cjs/xpl-tooltip.cjs.entry.js +18 -0
- package/dist/cjs/xpl-top-nav-item.cjs.entry.js +435 -0
- package/dist/cjs/xpl-top-nav-menu.cjs.entry.js +91 -0
- package/dist/cjs/xpl-top-nav.cjs.entry.js +342 -0
- package/dist/cjs/xpl-utility-bar.cjs.entry.js +23 -0
- package/dist/collection/collection-manifest.json +4 -1
- package/dist/collection/components/xpl-accordion/accordion.stories.js +6 -2
- package/dist/collection/components/xpl-accordion/xpl-accordion.js +4 -2
- package/dist/collection/components/xpl-application-shell/application-shell.stories.js +19 -1
- package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +1 -1
- package/dist/collection/components/xpl-avatar/avatar.stories.js +19 -9
- package/dist/collection/components/xpl-avatar/xpl-avatar.js +12 -16
- package/dist/collection/components/xpl-backdrop/backdrop.stories.js +17 -3
- package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +1 -1
- package/dist/collection/components/xpl-badge/badge.stories.js +21 -8
- package/dist/collection/components/xpl-badge/xpl-badge.js +4 -5
- package/dist/collection/components/xpl-banner/banner.stories.js +1 -1
- package/dist/collection/components/xpl-banner/xpl-banner.js +7 -9
- package/dist/collection/components/xpl-breadcrumbs/breadcrumbs.stories.js +5 -0
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +1 -1
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +1 -1
- package/dist/collection/components/xpl-button/button.stories.js +2 -0
- package/dist/collection/components/xpl-button/xpl-button.js +17 -14
- package/dist/collection/components/xpl-button-row/button-row.stories.js +9 -0
- package/dist/collection/components/xpl-button-row/xpl-button-row.js +1 -1
- package/dist/collection/components/xpl-calendar/calendar.stories.js +11 -3
- package/dist/collection/components/xpl-calendar/xpl-calendar.js +9 -5
- package/dist/collection/components/xpl-checkbox/checkbox.stories.js +11 -2
- package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +7 -8
- package/dist/collection/components/xpl-choicelist/choicelist.stories.js +24 -0
- package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +6 -6
- package/dist/collection/components/xpl-content-area/content-area.stories.js +13 -24
- package/dist/collection/components/xpl-content-area/xpl-content-area.js +1 -1
- package/dist/collection/components/xpl-dashboard/dashboard.stories.js +9 -0
- package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +1 -1
- package/dist/collection/components/xpl-data-card/data-card.stories.js +55 -0
- package/dist/collection/components/xpl-data-card/xpl-data-card.js +69 -5
- package/dist/collection/components/xpl-divider/divider.stories.js +11 -0
- package/dist/collection/components/xpl-divider/xpl-divider.js +1 -1
- package/dist/collection/components/xpl-dropdown/dropdown.stories.js +13 -5
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +2 -17
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +1 -1
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +9 -5
- package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +108 -116
- package/dist/collection/components/xpl-dynamic-table/dynamic-table.stories.js +5 -1
- package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +13 -19
- package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +7 -5
- package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +4 -4
- package/dist/collection/components/xpl-grid/grid.stories.js +9 -0
- package/dist/collection/components/xpl-grid/xpl-grid.js +5 -5
- package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +1 -1
- package/dist/collection/components/xpl-header-accordion/header-accordion.stories.js +6 -2
- package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +7 -23
- package/dist/collection/components/xpl-icon/icons.stories.js +21 -2
- package/dist/collection/components/xpl-icon/xpl-icon.js +2 -3
- package/dist/collection/components/xpl-input/input.stories.js +120 -104
- package/dist/collection/components/xpl-input/xpl-input-color/color-utils.js +12 -6
- package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +47 -38
- package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +31 -14
- package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +11 -13
- package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +38 -41
- package/dist/collection/components/xpl-input/xpl-input-search/xpl-input-search.js +5 -8
- package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +11 -10
- package/dist/collection/components/xpl-input/xpl-input.js +69 -37
- package/dist/collection/components/xpl-large-card/large-card.stories.js +27 -3
- package/dist/collection/components/xpl-large-card/xpl-large-card.js +69 -3
- package/dist/collection/components/xpl-list/list.stories.js +11 -2
- package/dist/collection/components/xpl-list/xpl-list-item/xpl-list-item.js +29 -31
- package/dist/collection/components/xpl-list/xpl-list.js +21 -26
- package/dist/collection/components/xpl-main-nav/main-nav.stories.js +5 -0
- package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +1 -1
- package/dist/collection/components/xpl-modal/modal.stories.js +15 -6
- package/dist/collection/components/xpl-modal/xpl-modal.js +21 -8
- package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +2 -2
- package/dist/collection/components/xpl-pagination/pagination.stories.js +10 -2
- package/dist/collection/components/xpl-pagination/xpl-pagination.js +10 -12
- package/dist/collection/components/xpl-panel/panel.stories.js +9 -0
- package/dist/collection/components/xpl-panel/xpl-panel.js +2 -2
- package/dist/collection/components/xpl-popover/popover.stories.js +15 -5
- package/dist/collection/components/xpl-popover/xpl-popover.js +36 -8
- package/dist/collection/components/xpl-progress-bar/progress-bar.stories.js +10 -1
- package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +2 -2
- package/dist/collection/components/xpl-progress-indicator/progress-indicator.stories.js +9 -1
- package/dist/collection/components/xpl-progress-indicator/xpl-progress-indicator.js +1 -1
- package/dist/collection/components/xpl-radio/radio.stories.js +9 -0
- package/dist/collection/components/xpl-radio/xpl-radio.js +7 -7
- package/dist/collection/components/xpl-secondary-nav/secondary-nav.stories.js +10 -5
- package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +1 -1
- package/dist/collection/components/xpl-select/select.stories.js +11 -8
- package/dist/collection/components/xpl-select/xpl-select.js +91 -49
- package/dist/collection/components/xpl-side-nav/side-nav-slot-utils.js +35 -0
- package/dist/collection/components/xpl-side-nav/side-nav.stories.js +454 -18
- package/dist/collection/components/xpl-side-nav/xpl-side-nav-header-item/xpl-side-nav-header-item.js +201 -0
- package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +10 -11
- package/dist/collection/components/xpl-side-nav/xpl-side-nav-section/xpl-side-nav-section.js +186 -0
- package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +75 -12
- package/dist/collection/components/xpl-skeleton/skeleton.stories.js +10 -1
- package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +3 -3
- package/dist/collection/components/xpl-slideout/slideout.stories.js +13 -0
- package/dist/collection/components/xpl-slideout/xpl-slideout.js +4 -1
- package/dist/collection/components/xpl-spotlight/spotlight.stories.js +22 -15
- package/dist/collection/components/xpl-spotlight/xpl-spotlight.js +44 -49
- package/dist/collection/components/xpl-tab/xpl-tab.js +63 -8
- package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +3 -4
- package/dist/collection/components/xpl-table/table.stories.js +11 -2
- package/dist/collection/components/xpl-table/xpl-table.js +52 -36
- package/dist/collection/components/xpl-table-header/table-header.stories.js +9 -1
- package/dist/collection/components/xpl-table-header/xpl-table-header.js +1 -1
- package/dist/collection/components/xpl-table-header-cell/table-header-cell.stories.js +10 -2
- package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +4 -2
- package/dist/collection/components/xpl-tabs/segment-control.stories.js +10 -1
- package/dist/collection/components/xpl-tabs/tabs.shared.js +77 -19
- package/dist/collection/components/xpl-tabs/tabs.stories.js +14 -2
- package/dist/collection/components/xpl-tabs/xpl-tabs.js +29 -25
- package/dist/collection/components/xpl-tag/tag.stories.js +15 -9
- package/dist/collection/components/xpl-tag/xpl-tag.js +5 -7
- package/dist/collection/components/xpl-toast/toast.stories.js +43 -17
- package/dist/collection/components/xpl-toast/xpl-toast.js +107 -56
- package/dist/collection/components/xpl-toggle/toggle.stories.js +8 -1
- package/dist/collection/components/xpl-toggle/xpl-toggle.js +5 -5
- package/dist/collection/components/xpl-toolbar/toolbar.stories.js +39 -0
- package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +2 -2
- package/dist/collection/components/xpl-tooltip/tooltip.stories.js +9 -0
- package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +1 -1
- package/dist/collection/components/xpl-top-nav/top-nav-constants.js +1 -0
- package/dist/collection/components/xpl-top-nav/top-nav.stories.js +160 -21
- package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +11 -5
- package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/top-nav-item-constants.js +2 -0
- package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +335 -97
- package/dist/collection/components/xpl-top-nav/xpl-top-nav-menu/xpl-top-nav-menu.js +114 -0
- package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +101 -33
- package/dist/collection/components/xpl-utility-bar/utility-bar.stories.js +16 -9
- package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +1 -1
- package/dist/collection/utils/floating.js +69 -0
- package/dist/collection/utils/layout-ancestors.js +7 -0
- package/dist/collection/utils/lifecycle.js +31 -10
- package/dist/collection/utils/light-dom-slots.js +15 -0
- package/dist/collection/utils/slot-presence.js +6 -0
- package/dist/collection/utils/ssr-known-mismatches.js +50 -0
- package/dist/collection/utils/tab-a11y-ids.js +1 -2
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +1 -1
- package/dist/components/p-1M1pu0C2.js +1 -0
- package/dist/components/p-2jYZ7ACH.js +1 -0
- package/dist/components/p-BGqQbjLl.js +1 -0
- package/dist/components/p-BQtbf88X.js +1 -0
- package/dist/components/p-BSHdGbmH.js +1 -0
- package/dist/components/p-BnTsRbko.js +1 -0
- package/dist/components/p-Bseq_BgD.js +1 -0
- package/dist/components/p-CCgZCY_A.js +1 -0
- package/dist/components/p-CJzsLWeV.js +1 -0
- package/dist/components/p-CRKY79vL.js +1 -0
- package/dist/components/p-C_PEOQWj.js +1 -0
- package/dist/components/p-CjbPCnPP.js +1 -0
- package/dist/components/p-Cjxw-qOg.js +1 -0
- package/dist/components/p-D6JUVA1x.js +1 -0
- package/dist/components/p-DFGw0APN.js +1 -0
- package/dist/components/p-DLLQBDCb.js +1 -0
- package/dist/components/p-DS2Kv5fl.js +1 -0
- package/dist/components/p-DWUJ_jsx.js +1 -0
- package/dist/components/p-Di1NDy0w.js +1 -0
- package/dist/components/p-DkM7jyQB.js +1 -0
- package/dist/components/p-DkqlawVY.js +1 -0
- package/dist/components/p-Dqb1pIRo.js +1 -0
- package/dist/components/p-DsRsm61K.js +1 -0
- package/dist/components/p-DywQ3S73.js +1 -0
- package/dist/components/p-Dzp5p-eh.js +1 -0
- package/dist/components/p-Mehog36m.js +1 -0
- package/dist/components/p-RYnBuuDE.js +1 -0
- package/dist/components/p-_r9-FML8.js +1 -0
- package/dist/components/{p-B1PBAEzg.js → p-imCMp2Nl.js} +1 -1
- package/dist/components/xpl-accordion.js +1 -1
- package/dist/components/xpl-application-shell.js +1 -1
- package/dist/components/xpl-avatar.js +1 -1
- package/dist/components/xpl-backdrop.js +1 -1
- package/dist/components/xpl-badge.js +1 -1
- package/dist/components/xpl-banner.js +1 -1
- package/dist/components/xpl-breadcrumb-item.js +1 -1
- package/dist/components/xpl-breadcrumbs.js +1 -1
- package/dist/components/xpl-button-row.js +1 -1
- package/dist/components/xpl-button.js +1 -1
- package/dist/components/xpl-calendar.js +1 -1
- package/dist/components/xpl-checkbox.js +1 -1
- package/dist/components/xpl-choicelist.js +1 -1
- package/dist/components/xpl-content-area.js +1 -1
- package/dist/components/xpl-dashboard.js +1 -1
- package/dist/components/xpl-data-card.js +1 -1
- package/dist/components/xpl-divider.js +1 -1
- package/dist/components/xpl-dropdown-group.js +1 -1
- package/dist/components/xpl-dropdown-heading.js +1 -1
- package/dist/components/xpl-dropdown-option.js +1 -1
- package/dist/components/xpl-dropdown.js +1 -1
- package/dist/components/xpl-dynamic-table-cell.js +1 -1
- package/dist/components/xpl-dynamic-table-row.js +1 -1
- package/dist/components/xpl-dynamic-table.js +1 -1
- package/dist/components/xpl-grid-item.js +1 -1
- package/dist/components/xpl-grid.js +1 -1
- package/dist/components/xpl-header-accordion.js +1 -1
- package/dist/components/xpl-icon.js +1 -1
- package/dist/components/xpl-input-color.js +1 -1
- package/dist/components/xpl-input-date.js +1 -1
- package/dist/components/xpl-input-file.js +1 -1
- package/dist/components/xpl-input-phone.js +1 -1
- package/dist/components/xpl-input-search.js +1 -1
- package/dist/components/xpl-input-time.js +1 -1
- package/dist/components/xpl-input.js +1 -1
- package/dist/components/xpl-large-card.js +1 -1
- package/dist/components/xpl-list-item.js +1 -1
- package/dist/components/xpl-list.js +1 -1
- package/dist/components/xpl-main-nav.js +1 -1
- package/dist/components/xpl-modal.js +1 -1
- package/dist/components/xpl-nav-header-menu.js +1 -1
- package/dist/components/xpl-nav-item.js +1 -1
- package/dist/components/xpl-pagination.js +1 -1
- package/dist/components/xpl-panel.js +1 -1
- package/dist/components/xpl-popover.js +1 -1
- package/dist/components/xpl-progress-bar.js +1 -1
- package/dist/components/xpl-progress-indicator.js +1 -1
- package/dist/components/xpl-radio.js +1 -1
- package/dist/components/xpl-secondary-nav.js +1 -1
- package/dist/components/xpl-select.js +1 -1
- package/dist/components/xpl-side-nav-header-item.d.ts +11 -0
- package/dist/components/xpl-side-nav-header-item.js +1 -0
- package/dist/components/xpl-side-nav-item.js +1 -1
- package/dist/components/xpl-side-nav-section.d.ts +11 -0
- package/dist/components/xpl-side-nav-section.js +1 -0
- package/dist/components/xpl-side-nav.js +1 -1
- package/dist/components/xpl-skeleton.js +1 -1
- package/dist/components/xpl-slideout.js +1 -1
- package/dist/components/xpl-spotlight.js +1 -1
- package/dist/components/xpl-tab-panel.js +1 -1
- package/dist/components/xpl-tab.js +1 -1
- package/dist/components/xpl-table-header-cell.js +1 -1
- package/dist/components/xpl-table-header.js +1 -1
- package/dist/components/xpl-table.js +1 -1
- package/dist/components/xpl-tabs.js +1 -1
- package/dist/components/xpl-tag.js +1 -1
- package/dist/components/xpl-toast.js +1 -1
- package/dist/components/xpl-toggle.js +1 -1
- package/dist/components/xpl-toolbar.js +1 -1
- package/dist/components/xpl-tooltip.js +1 -1
- package/dist/components/xpl-top-nav-item.js +1 -1
- package/dist/components/xpl-top-nav-menu.d.ts +11 -0
- package/dist/components/xpl-top-nav-menu.js +1 -0
- package/dist/components/xpl-top-nav.js +1 -1
- package/dist/components/xpl-utility-bar.js +1 -1
- package/dist/css/typography.stories.js +9 -0
- package/dist/docs/xpl-application-shell/readme.md +33 -0
- package/dist/docs/xpl-backdrop/readme.md +7 -0
- package/dist/docs/xpl-badge/readme.md +2 -0
- package/dist/docs/xpl-breadcrumbs/xpl-breadcrumbs/readme.md +9 -0
- package/dist/docs/xpl-button/readme.md +4 -2
- package/dist/docs/xpl-checkbox/readme.md +12 -0
- package/dist/docs/xpl-choicelist/readme.md +21 -0
- package/dist/docs/xpl-content-area/readme.md +8 -0
- package/dist/docs/xpl-data-card/readme.md +26 -0
- package/dist/docs/xpl-dropdown/readme.md +32 -6
- package/dist/docs/xpl-dynamic-table/readme.md +35 -0
- package/dist/docs/xpl-header-accordion/readme.md +18 -0
- package/dist/docs/xpl-icon/readme.md +23 -0
- package/dist/docs/xpl-input/xpl-input-color/readme.md +18 -0
- package/dist/docs/xpl-input/xpl-input-file/readme.md +13 -0
- package/dist/docs/xpl-input/xpl-input-time/readme.md +9 -0
- package/dist/docs/xpl-large-card/readme.md +18 -0
- package/dist/docs/xpl-list/readme.md +2 -2
- package/dist/docs/xpl-list/xpl-list-item/readme.md +3 -3
- package/dist/docs/xpl-main-nav/readme.md +16 -0
- package/dist/docs/xpl-modal/readme.md +20 -0
- package/dist/docs/xpl-nav-item/readme.md +14 -0
- package/dist/docs/xpl-pagination/readme.md +29 -0
- package/dist/docs/xpl-radio/readme.md +12 -0
- package/dist/docs/xpl-secondary-nav/readme.md +25 -0
- package/dist/docs/xpl-select/readme.md +13 -0
- package/dist/docs/xpl-side-nav/readme.md +12 -7
- package/dist/docs/xpl-side-nav/xpl-side-nav-header-item/readme.md +155 -0
- package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +16 -6
- package/dist/docs/xpl-side-nav/xpl-side-nav-section/readme.md +126 -0
- package/dist/docs/xpl-slideout/readme.md +23 -0
- package/dist/docs/xpl-tab/readme.md +14 -8
- package/dist/docs/xpl-table/readme.md +4 -4
- package/dist/docs/xpl-toast/readme.md +90 -7
- package/dist/docs/xpl-toggle/readme.md +46 -0
- package/dist/docs/xpl-toolbar/readme.md +19 -0
- package/dist/docs/xpl-top-nav/readme.md +5 -1
- package/dist/docs/xpl-top-nav/xpl-top-nav-item/readme.md +79 -20
- package/dist/docs/xpl-top-nav/xpl-top-nav-menu/readme.md +96 -0
- package/dist/docs/xpl-utility-bar/readme.md +12 -0
- package/dist/docs.d.ts +480 -0
- package/dist/docs.json +16441 -0
- package/dist/esm/_commonjsHelpers-BFTU3MAI.js +7 -0
- package/dist/esm/apollo-core.js +3 -3
- package/dist/esm/floating-ui.dom-1M1pu0C2.js +1702 -0
- package/dist/esm/index-BhYfWG18.js +454 -0
- package/dist/esm/{index-CXkZUm1c.js → index-ukZKsqqq.js} +760 -9
- package/dist/esm/lifecycle-Dqb1pIRo.js +71 -0
- package/dist/esm/light-dom-slots-DkqlawVY.js +17 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/side-nav-slot-utils-C_PEOQWj.js +37 -0
- package/dist/esm/slot-presence-_r9-FML8.js +8 -0
- package/dist/esm/tab-a11y-ids-BQtbf88X.js +23 -0
- package/dist/esm/top-nav-constants-CWdQxaaX.js +3 -0
- package/dist/esm/xpl-accordion.entry.js +5 -3
- package/dist/esm/xpl-application-shell.entry.js +2 -2
- package/dist/esm/xpl-avatar_3.entry.js +206 -0
- package/dist/esm/xpl-backdrop.entry.js +17 -0
- package/dist/esm/xpl-badge.entry.js +35 -0
- package/dist/esm/xpl-banner.entry.js +72 -0
- package/dist/esm/xpl-breadcrumb-item.entry.js +16 -0
- package/dist/esm/xpl-breadcrumbs.entry.js +12 -0
- package/dist/esm/xpl-button-row.entry.js +2 -2
- package/dist/esm/xpl-button.entry.js +79 -0
- package/dist/esm/xpl-calendar.entry.js +10 -6
- package/dist/esm/xpl-checkbox.entry.js +30 -0
- package/dist/esm/xpl-choicelist.entry.js +66 -0
- package/dist/esm/xpl-content-area.entry.js +13 -0
- package/dist/esm/xpl-dashboard.entry.js +12 -0
- package/dist/esm/xpl-data-card.entry.js +109 -0
- package/dist/esm/xpl-dropdown_4.entry.js +572 -0
- package/dist/esm/xpl-dynamic-table-cell.entry.js +8 -6
- package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
- package/dist/esm/xpl-dynamic-table.entry.js +11 -18
- package/dist/esm/xpl-grid-item.entry.js +2 -2
- package/dist/esm/xpl-grid.entry.js +6 -6
- package/dist/esm/xpl-header-accordion.entry.js +67 -0
- package/dist/{cjs/xpl-avatar_54.cjs.entry.js → esm/xpl-icon.entry.js} +1290 -10661
- package/dist/esm/xpl-input-color.entry.js +433 -0
- package/dist/esm/xpl-input-phone.entry.js +507 -0
- package/dist/esm/xpl-input-time.entry.js +194 -0
- package/dist/esm/xpl-input_4.entry.js +519 -0
- package/dist/esm/xpl-large-card.entry.js +63 -4
- package/dist/esm/xpl-list-item.entry.js +458 -0
- package/dist/esm/xpl-list.entry.js +394 -0
- package/dist/esm/xpl-main-nav.entry.js +2 -2
- package/dist/esm/xpl-modal.entry.js +76 -0
- package/dist/esm/xpl-nav-header-menu.entry.js +84 -0
- package/dist/esm/xpl-nav-item.entry.js +23 -0
- package/dist/esm/xpl-pagination.entry.js +110 -0
- package/dist/esm/xpl-panel.entry.js +19 -0
- package/dist/esm/xpl-popover.entry.js +263 -0
- package/dist/esm/xpl-progress-bar.entry.js +39 -0
- package/dist/esm/xpl-progress-indicator.entry.js +72 -0
- package/dist/esm/xpl-secondary-nav.entry.js +12 -0
- package/dist/esm/xpl-select_2.entry.js +490 -0
- package/dist/esm/xpl-side-nav-header-item.entry.js +99 -0
- package/dist/esm/xpl-side-nav-item.entry.js +128 -0
- package/dist/esm/xpl-side-nav-section.entry.js +103 -0
- package/dist/esm/xpl-side-nav.entry.js +270 -0
- package/dist/esm/xpl-skeleton.entry.js +24 -0
- package/dist/esm/xpl-slideout.entry.js +45 -0
- package/dist/esm/xpl-spotlight.entry.js +720 -0
- package/dist/esm/xpl-tab-panel.entry.js +22 -0
- package/dist/esm/xpl-tab.entry.js +85 -0
- package/dist/esm/xpl-table-header-cell.entry.js +5 -3
- package/dist/esm/xpl-table-header.entry.js +2 -2
- package/dist/esm/xpl-table.entry.js +183 -0
- package/dist/esm/xpl-tabs.entry.js +371 -0
- package/dist/esm/xpl-toast.entry.js +89 -0
- package/dist/esm/xpl-toggle.entry.js +6 -6
- package/dist/esm/xpl-toolbar.entry.js +3 -3
- package/dist/esm/xpl-tooltip.entry.js +16 -0
- package/dist/esm/xpl-top-nav-item.entry.js +433 -0
- package/dist/esm/xpl-top-nav-menu.entry.js +89 -0
- package/dist/esm/xpl-top-nav.entry.js +340 -0
- package/dist/esm/xpl-utility-bar.entry.js +21 -0
- package/dist/types/components/xpl-accordion/accordion.stories.d.ts +11 -2
- package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +5 -23
- package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
- package/dist/types/components/xpl-avatar/avatar.stories.d.ts +17 -116
- package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +2 -0
- package/dist/types/components/xpl-badge/badge.stories.d.ts +7 -0
- package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +10 -27
- package/dist/types/components/xpl-button/button.stories.d.ts +4 -0
- package/dist/types/components/xpl-button-row/button-row.stories.d.ts +10 -21
- package/dist/types/components/xpl-calendar/calendar.stories.d.ts +11 -28
- package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +13 -31
- package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +9 -23
- package/dist/types/components/xpl-content-area/content-area.stories.d.ts +7 -1
- package/dist/types/components/xpl-dashboard/dashboard.stories.d.ts +8 -17
- package/dist/types/components/xpl-data-card/data-card.stories.d.ts +32 -37
- package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +12 -0
- package/dist/types/components/xpl-divider/divider.stories.d.ts +10 -23
- package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +160 -8
- package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +1 -1
- package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +7 -9
- package/dist/types/components/xpl-dynamic-table/dynamic-table.stories.d.ts +7 -22
- package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +2 -1
- package/dist/types/components/xpl-grid/grid.stories.d.ts +23 -47
- package/dist/types/components/xpl-header-accordion/header-accordion.stories.d.ts +8 -24
- package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +0 -2
- package/dist/types/components/xpl-icon/icons.stories.d.ts +16 -39
- package/dist/types/components/xpl-input/input.stories.d.ts +255 -54
- package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +1 -1
- package/dist/types/components/xpl-input/xpl-input-file/xpl-input-file.d.ts +1 -1
- package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +2 -2
- package/dist/types/components/xpl-input/xpl-input-time/time-utils.d.ts +1 -1
- package/dist/types/components/xpl-input/xpl-input-time/xpl-input-time.d.ts +1 -1
- package/dist/types/components/xpl-input/xpl-input.d.ts +11 -6
- package/dist/types/components/xpl-large-card/large-card.stories.d.ts +12 -30
- package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +12 -0
- package/dist/types/components/xpl-list/list.stories.d.ts +33 -1
- package/dist/types/components/xpl-list/listitem.d.ts +5 -0
- package/dist/types/components/xpl-list/xpl-list-item/xpl-list-item.d.ts +0 -1
- package/dist/types/components/xpl-main-nav/main-nav.stories.d.ts +7 -1
- package/dist/types/components/xpl-modal/modal.stories.d.ts +16 -16
- package/dist/types/components/xpl-modal/xpl-modal.d.ts +3 -1
- package/dist/types/components/xpl-pagination/pagination.stories.d.ts +9 -30
- package/dist/types/components/xpl-panel/panel.stories.d.ts +9 -1
- package/dist/types/components/xpl-popover/popover.stories.d.ts +12 -3
- package/dist/types/components/xpl-popover/xpl-popover.d.ts +4 -2
- package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +13 -24
- package/dist/types/components/xpl-progress-indicator/progress-indicator.stories.d.ts +2 -0
- package/dist/types/components/xpl-radio/radio.stories.d.ts +3 -0
- package/dist/types/components/xpl-secondary-nav/secondary-nav.stories.d.ts +4 -1
- package/dist/types/components/xpl-select/select.stories.d.ts +35 -45
- package/dist/types/components/xpl-select/xpl-select.d.ts +1 -0
- package/dist/types/components/xpl-side-nav/side-nav-slot-utils.d.ts +3 -0
- package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +73 -1
- package/dist/types/components/xpl-side-nav/xpl-side-nav-header-item/xpl-side-nav-header-item.d.ts +24 -0
- package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +1 -1
- package/dist/types/components/xpl-side-nav/xpl-side-nav-section/xpl-side-nav-section.d.ts +24 -0
- package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +10 -0
- package/dist/types/components/xpl-skeleton/skeleton.stories.d.ts +11 -1
- package/dist/types/components/xpl-slideout/slideout.stories.d.ts +20 -16
- package/dist/types/components/xpl-spotlight/spotlight.stories.d.ts +7 -1
- package/dist/types/components/xpl-spotlight/xpl-spotlight.d.ts +1 -0
- package/dist/types/components/xpl-tab/xpl-tab.d.ts +5 -0
- package/dist/types/components/xpl-table/table.stories.d.ts +16 -37
- package/dist/types/components/xpl-table/xpl-table.d.ts +8 -8
- package/dist/types/components/xpl-table-header/table-header.stories.d.ts +21 -48
- package/dist/types/components/xpl-table-header-cell/table-header-cell.stories.d.ts +11 -34
- package/dist/types/components/xpl-tabs/segment-control.stories.d.ts +22 -0
- package/dist/types/components/xpl-tabs/tabs.shared.d.ts +35 -1
- package/dist/types/components/xpl-tabs/tabs.stories.d.ts +29 -19
- package/dist/types/components/xpl-tag/tag.stories.d.ts +3 -0
- package/dist/types/components/xpl-toast/toast.stories.d.ts +17 -13
- package/dist/types/components/xpl-toast/xpl-toast.d.ts +13 -4
- package/dist/types/components/xpl-toggle/toggle.stories.d.ts +13 -31
- package/dist/types/components/xpl-toolbar/toolbar.stories.d.ts +35 -0
- package/dist/types/components/xpl-tooltip/tooltip.stories.d.ts +10 -24
- package/dist/types/components/xpl-top-nav/top-nav-constants.d.ts +1 -0
- package/dist/types/components/xpl-top-nav/top-nav.stories.d.ts +79 -1
- package/dist/types/components/xpl-top-nav/xpl-top-nav-item/top-nav-item-constants.d.ts +2 -0
- package/dist/types/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.d.ts +26 -4
- package/dist/types/components/xpl-top-nav/xpl-top-nav-menu/xpl-top-nav-menu.d.ts +18 -0
- package/dist/types/components/xpl-top-nav/xpl-top-nav.d.ts +8 -2
- package/dist/types/components/xpl-utility-bar/utility-bar.stories.d.ts +9 -2
- package/dist/types/components.d.ts +1186 -66
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/story-function.d.ts +11 -0
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/wait-for-hydration.d.ts +1 -0
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/css/typography.stories.d.ts +76 -0
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/form-bindings.d.ts +4 -0
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/story-vrt.d.ts +1 -0
- package/dist/types/third-party.d.ts +20 -0
- package/dist/types/utils/floating.d.ts +26 -0
- package/dist/types/utils/lifecycle.d.ts +4 -1
- package/dist/types/utils/light-dom-slots.d.ts +6 -0
- package/dist/types/utils/slot-presence.d.ts +1 -0
- package/dist/types/utils/ssr-known-mismatches.d.ts +16 -0
- package/dist/utils/form-bindings.js +64 -0
- package/dist/utils/story-vrt.js +48 -0
- package/hydrate/index.d.ts +287 -0
- package/hydrate/index.js +51669 -0
- package/hydrate/index.mjs +51659 -0
- package/hydrate/package.json +12 -0
- package/package.json +111 -44
- package/dist/apollo-core/p-0e45f332.entry.js +0 -1
- package/dist/apollo-core/p-0f251f98.entry.js +0 -1
- package/dist/apollo-core/p-1691c4f3.entry.js +0 -1
- package/dist/apollo-core/p-172ac720.entry.js +0 -1
- package/dist/apollo-core/p-23870463.entry.js +0 -1
- package/dist/apollo-core/p-3b8639b7.entry.js +0 -1
- package/dist/apollo-core/p-44a16751.entry.js +0 -1
- package/dist/apollo-core/p-4efecab2.entry.js +0 -1
- package/dist/apollo-core/p-5094dd97.entry.js +0 -1
- package/dist/apollo-core/p-70e7facc.entry.js +0 -1
- package/dist/apollo-core/p-728341d2.entry.js +0 -1
- package/dist/apollo-core/p-910be81f.entry.js +0 -1
- package/dist/apollo-core/p-9adf3694.entry.js +0 -1
- package/dist/apollo-core/p-CXkZUm1c.js +0 -2
- package/dist/apollo-core/p-c17b6351.entry.js +0 -1
- package/dist/apollo-core/p-e08b434c.entry.js +0 -1
- package/dist/apollo-core/p-e9e7577f.entry.js +0 -1
- package/dist/components/p-3qMYyqTe.js +0 -1
- package/dist/components/p-BG0-6Xek.js +0 -1
- package/dist/components/p-BT_Lq3Vd.js +0 -1
- package/dist/components/p-BWyAzrwu.js +0 -1
- package/dist/components/p-B_Wi--Ov.js +0 -1
- package/dist/components/p-Bd6JweBt.js +0 -1
- package/dist/components/p-Bn-27-xj.js +0 -1
- package/dist/components/p-Bs6vq0C6.js +0 -1
- package/dist/components/p-C9BO2vL-.js +0 -1
- package/dist/components/p-CFW_w5Wj.js +0 -1
- package/dist/components/p-CFpsSZyr.js +0 -1
- package/dist/components/p-CGNq3DyC.js +0 -1
- package/dist/components/p-CVqbA9op.js +0 -1
- package/dist/components/p-CtIUusUL.js +0 -1
- package/dist/components/p-D97c0GjM.js +0 -1
- package/dist/components/p-DBWV65V-.js +0 -1
- package/dist/components/p-DEl4Rvzs.js +0 -1
- package/dist/components/p-DPTHmitJ.js +0 -1
- package/dist/components/p-DllC7F-H.js +0 -1
- package/dist/components/p-Ds28UyUR.js +0 -1
- package/dist/components/p-U5dPMCXE.js +0 -1
- package/dist/components/p-Yj_QFaRn.js +0 -1
- package/dist/components/p-hPUzON4O.js +0 -1
- package/dist/components/p-kPHfCq1d.js +0 -1
- package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/css/typography.stories.d.ts +0 -90
|
@@ -10,6 +10,51 @@ Match your messaging with the sentiment of the toast. Most messages will have a
|
|
|
10
10
|
|
|
11
11
|
Toasts only support a single action and up to 85 characters. If multiple actions can be taken, or the message is longer than a few words, use a [Modal component](https://apollo.xplordocs.com/?path=/story/components-modal--modal) instead.
|
|
12
12
|
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<!-- Neutral toast with a caption, auto-dismissing after the default 8s -->
|
|
17
|
+
<xpl-toast caption="Your changes have been saved.">
|
|
18
|
+
<p slot="title">Saved</p>
|
|
19
|
+
</xpl-toast>
|
|
20
|
+
|
|
21
|
+
<!-- With an action. Auto-dismiss is suppressed while the action slot has content -->
|
|
22
|
+
<xpl-toast variant="warning" caption="We couldn't reach the server.">
|
|
23
|
+
<p slot="title">Sync failed</p>
|
|
24
|
+
<xpl-button slot="action" size="sm">Retry</xpl-button>
|
|
25
|
+
</xpl-toast>
|
|
26
|
+
|
|
27
|
+
<!-- No close button; disable auto-dismiss with timeout="0" -->
|
|
28
|
+
<xpl-toast dismissible="false" timeout="0">
|
|
29
|
+
<p slot="title">Uploading…</p>
|
|
30
|
+
</xpl-toast>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Deprecations
|
|
34
|
+
|
|
35
|
+
### `dismissable` → `dismissible`
|
|
36
|
+
|
|
37
|
+
The **`dismissable`** prop is misspelled and is **deprecated**. Use **`dismissible`** instead.
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<!-- Before -->
|
|
41
|
+
<xpl-toast dismissable="false">…</xpl-toast>
|
|
42
|
+
|
|
43
|
+
<!-- After -->
|
|
44
|
+
<xpl-toast dismissible="false">…</xpl-toast>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Both props are supported during the deprecation window, so no consumer change is required immediately:
|
|
48
|
+
|
|
49
|
+
| `dismissable` | `dismissible` | Close button shown | Notes |
|
|
50
|
+
| ------------- | ------------- | ------------------ | ----- |
|
|
51
|
+
| unset | unset | ✅ | Default (`dismissible` defaults to `true`) |
|
|
52
|
+
| unset | `false` | ❌ | Recommended usage |
|
|
53
|
+
| `false` | unset | ❌ | Existing markup keeps working |
|
|
54
|
+
| `false` | `true` | ❌ | `dismissable` wins while it exists |
|
|
55
|
+
|
|
56
|
+
`dismissable` has **no default** (`undefined` when unset) so the component can tell "not set" from "set to `false`". When it is used, the component logs a one-time deprecation warning to the console. `dismissable` will be removed in the next major version, at which point `dismissible` becomes the only option.
|
|
57
|
+
|
|
13
58
|
## Positioning
|
|
14
59
|
|
|
15
60
|
The default position is arbitrarily set to `40px` from top and `40px` from right of the browser viewport on desktop and bottom-center on mobile. This position should be adjusted to ensure it's not covering your App's header. Apollo, by design, does not prescribe a position for toasts because this will be dependent on the app that it is being used in.
|
|
@@ -65,18 +110,53 @@ The mobile breakpoint (≤ 768px) resets the toast to bottom-center. If your app
|
|
|
65
110
|
|
|
66
111
|
> **Tip:** Place these overrides in a global stylesheet so every toast in your app appears in the same location.
|
|
67
112
|
|
|
113
|
+
## Token Use
|
|
114
|
+
|
|
115
|
+
`xpl-toast` follows the same messaging-component token pattern as [`xpl-banner`](../xpl-banner) (background `--xpl-background-messaging-*` + accent/sentiment border). Light and dark mode are handled by the Foundation token definitions, so the component has no `.dark` overrides.
|
|
116
|
+
|
|
117
|
+
| Variant / element | Property | Token |
|
|
118
|
+
| ----------------- | -------- | ----- |
|
|
119
|
+
| `neutral` (default) | background | `--xpl-background-messaging-information` |
|
|
120
|
+
| `neutral` (default) | border | `--xpl-border-accent-information` |
|
|
121
|
+
| `&--warning` | background | `--xpl-background-messaging-negative` |
|
|
122
|
+
| `&--warning` | border | `--xpl-border-negative` |
|
|
123
|
+
| `&--success` | background | `--xpl-background-messaging-positive` |
|
|
124
|
+
| `&--success` | border | `--xpl-border-positive` |
|
|
125
|
+
| `&__icon--neutral` | color | `--xpl-icon-default` |
|
|
126
|
+
| `&__icon--warning` | color | `--xpl-icon-negative` |
|
|
127
|
+
| `&__icon--success` | color | `--xpl-icon-positive` |
|
|
128
|
+
| `&` | body radius | `--xpl-border-radius-small` |
|
|
129
|
+
| `&` | shadow color | `--xpl-color-transparent-neutral-10` / `--xpl-color-transparent-neutral-5` |
|
|
130
|
+
| `&__title` | typography (size / weight / line-height) | `@extend .xpl-text-title-5` → `title-5` / `medium` / `1.4286` |
|
|
131
|
+
| `&__caption` | typography (size / weight / line-height) | `@extend .xpl-text-callout` → `callout` / `normal` / `1.3333` |
|
|
132
|
+
| `&__close` | margin | `@apply ml-4` |
|
|
133
|
+
|
|
134
|
+
The close control is an [`xpl-button`](../xpl-button) (`variant="tertiary"`, `size="sm"`, `iconOnly`), so its radius, colors, and hover / focus / active states come from `button.css` rather than `toast.css`.
|
|
135
|
+
|
|
136
|
+
Like `xpl-banner`, the messaging backgrounds resolve to transparent in dark mode; the sentiment border and page surface carry the visual treatment in that theme.
|
|
137
|
+
|
|
138
|
+
## Accessibility
|
|
139
|
+
|
|
140
|
+
- The close control is an [`xpl-button`](../xpl-button), so it is focusable and keyboard-activable (Tab, then Enter or Space) and gets the shared `:focus-visible` outline.
|
|
141
|
+
- It carries `aria-label="Dismiss notification"` and `type="button"` — the explicit type keeps a toast rendered inside a `<form>` from submitting it when the toast is closed.
|
|
142
|
+
- Toast content is projected through the `title` and `action` slots. Provide the title as text (e.g. `<p slot="title">`) so screen readers announce the message.
|
|
143
|
+
- Dismissing runs a fade-out animation and then removes the host element from the DOM, so a dismissed toast leaves nothing behind in the accessibility tree.
|
|
144
|
+
|
|
145
|
+
> **Elevation shadow (interim):** Figma specs the toast shadow as the single "Shadow 4" elevation style (`y=20`, `blur=25`, color `background-surface-transparent-10`). Foundation has no elevation/shadow tokens yet, so the shadow geometry is hand-authored and its color uses the primitive `--xpl-color-transparent-neutral-10 / -5`. This migrates to the purpose-specific `--xpl-background-surface-transparent-10` (theme-aware) once elevation tokens land — tracked in `TECH_DEBT.md`.
|
|
146
|
+
|
|
68
147
|
<!-- Auto Generated Below -->
|
|
69
148
|
|
|
70
149
|
|
|
71
150
|
## Properties
|
|
72
151
|
|
|
73
|
-
| Property | Attribute | Description
|
|
74
|
-
| ------------- | ------------- |
|
|
75
|
-
| `caption` | `caption` |
|
|
76
|
-
| `dismissable` | `dismissable` |
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
152
|
+
| Property | Attribute | Description | Type | Default |
|
|
153
|
+
| ------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------- |
|
|
154
|
+
| `caption` | `caption` | The caption of the toast, limited to 85 characters. | `string` | `''` |
|
|
155
|
+
| `dismissable` | `dismissable` | <span style="color:red">**[DEPRECATED]**</span> Misspelled. Use `dismissible` instead. When both are set, `dismissable` wins so existing markup keeps working; `dismissable` is removed in the next major version.<br/><br/>Whether the toast shows a dismiss (close) button. | `boolean` | `undefined` |
|
|
156
|
+
| `dismissible` | `dismissible` | Whether the toast shows a dismiss (close) button. | `boolean` | `true` |
|
|
157
|
+
| `showIcon` | `show-icon` | Whether to show the leading sentiment icon. | `boolean` | `true` |
|
|
158
|
+
| `timeout` | `timeout` | How long the toast waits before auto-dismissing, in ms. Set to `0` to disable auto-dismiss. Ignored when the `action` slot has content. | `number` | `8000` |
|
|
159
|
+
| `variant` | `variant` | The sentiment of the toast. | `"neutral" \| "success" \| "warning"` | `'neutral'` |
|
|
80
160
|
|
|
81
161
|
|
|
82
162
|
## Dependencies
|
|
@@ -84,11 +164,14 @@ The mobile breakpoint (≤ 768px) resets the toast to bottom-center. If your app
|
|
|
84
164
|
### Depends on
|
|
85
165
|
|
|
86
166
|
- [xpl-icon](../xpl-icon)
|
|
167
|
+
- [xpl-button](../xpl-button)
|
|
87
168
|
|
|
88
169
|
### Graph
|
|
89
170
|
```mermaid
|
|
90
171
|
graph TD;
|
|
91
172
|
xpl-toast --> xpl-icon
|
|
173
|
+
xpl-toast --> xpl-button
|
|
174
|
+
xpl-button --> xpl-icon
|
|
92
175
|
style xpl-toast fill:#f9f,stroke:#333,stroke-width:4px
|
|
93
176
|
```
|
|
94
177
|
|
|
@@ -2,6 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
A Toggle is a type of form control that is used to switch between enabled and disabled states of an element.
|
|
4
4
|
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<xpl-toggle heading="Notifications" label="Email me" checked></xpl-toggle>
|
|
9
|
+
<xpl-toggle label="Compact" variant="small"></xpl-toggle>
|
|
10
|
+
<xpl-toggle label="Unavailable" disabled></xpl-toggle>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Design Tokens
|
|
14
|
+
|
|
15
|
+
The toggle uses Apollo Foundation purpose-specific tokens so it themes automatically
|
|
16
|
+
in light and dark mode (no `.dark` overrides).
|
|
17
|
+
|
|
18
|
+
| Element / state | Property | Token |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Track (off) | `background-color` | `--xpl-background-accent-neutral` |
|
|
21
|
+
| Track (off, hover) | `background-color` | `--xpl-background-accent-neutral-bold` |
|
|
22
|
+
| Track (on) | `background-color` | `--xpl-background-action-primary-default` |
|
|
23
|
+
| Track (on, hover) | `background-color` | `--xpl-background-action-primary-hover` |
|
|
24
|
+
| Track (disabled, on/off) | `background-color` | `--xpl-background-action-disabled` |
|
|
25
|
+
| Track border | `border-color` | `--xpl-border-default` |
|
|
26
|
+
| Knob (all states) | `background-color` | `--xpl-background-surface-inverse-on-dark` (always-light — resolves to neutral-0 in both modes) |
|
|
27
|
+
| Knob shadow | `box-shadow` color | `--xpl-color-transparent-neutral-10` |
|
|
28
|
+
| Focus ring | `outline-color` | `--xpl-border-focus` (2px outline, 2px offset) |
|
|
29
|
+
| Heading | `color` | `--xpl-text-strong` |
|
|
30
|
+
| Heading | typography | `@extend .xpl-text-title-5` — 14px / medium / 1.4286 (via shared `label.css`) |
|
|
31
|
+
| Trailing label | `color` | `--xpl-text-strong` |
|
|
32
|
+
| Trailing label | typography | `@extend .xpl-text-body` — 14px / normal / 1.4286 |
|
|
33
|
+
| Label (disabled) | `color` | `--xpl-text-disabled` |
|
|
34
|
+
| Description (`small`) | `color` | `--xpl-text-subdued` |
|
|
35
|
+
| Description (`small`) | typography | `@extend .xpl-text-callout` — 12px / normal / 1.3333 (via shared `label.css`) |
|
|
36
|
+
|
|
37
|
+
**Sizing:** knob (`--xpl-size-125` / small `--xpl-size-075`), default track height
|
|
38
|
+
(`--xpl-size-150`), small track height/radius (`--xpl-size-100` / `--xpl-border-radius-default`),
|
|
39
|
+
default track + knob radius (`--xpl-border-radius-full`), inset (`--xpl-space-2`), knob travel
|
|
40
|
+
(`translateX(--xpl-size-125)` / small `--xpl-size-075`). The `44px`/`28px` track widths have no
|
|
41
|
+
matching Foundation token and remain literals (see TECH_DEBT.md).
|
|
42
|
+
|
|
43
|
+
The knob glyphs (X / check marks) remain hardcoded data-URI SVGs; a `mask-image` +
|
|
44
|
+
`var(--xpl-icon-*)` refactor is tracked in TECH_DEBT.md.
|
|
45
|
+
|
|
46
|
+
## Accessibility
|
|
47
|
+
|
|
48
|
+
The toggle renders a native `<input type="checkbox">`, so it is keyboard-focusable and
|
|
49
|
+
operable with Tab and Space. The `:focus-visible` outline is applied to the control itself.
|
|
50
|
+
|
|
5
51
|
<!-- Auto Generated Below -->
|
|
6
52
|
|
|
7
53
|
|
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
> **Note:** This component is currently in beta. Use with caution as it may have breaking changes in future releases.
|
|
4
4
|
|
|
5
|
+
## Design Tokens
|
|
6
|
+
|
|
7
|
+
The toolbar is an **always-dark** selection bar (nav-rail pattern) — its surface stays dark
|
|
8
|
+
in both light and dark themes. Styling comes from Apollo Foundation tokens
|
|
9
|
+
(`packages/apollo-core/src/css/toolbar.css`):
|
|
10
|
+
|
|
11
|
+
| Element | Property | Token | Resolves (light / dark) |
|
|
12
|
+
| --- | --- | --- | --- |
|
|
13
|
+
| `.toolbar` surface | `background-color` | `--xpl-background-surface-inverse-on-light` | neutral-1000 / neutral-1000 |
|
|
14
|
+
| `.toolbar` top/bottom border | `border-color` | `--xpl-border-default` | neutral-600 (always-dark host) |
|
|
15
|
+
| `.toolbar` elevation | `box-shadow` | `--xpl-color-transparent-neutral-10`, `--xpl-color-transparent-neutral-5` | fixed neutral transparent |
|
|
16
|
+
| `.toolbar` height | `height` | `--xpl-size-350` | 56px |
|
|
17
|
+
| `.selected-item-count` text | `color` | `--xpl-text-inverse-on-dark` | white / white |
|
|
18
|
+
| `.selected-item-count` divider | `border-color` | `--xpl-border-default` | neutral-600 (always-dark host) |
|
|
19
|
+
| `.selected-item-count` label | `font-size` / `font-weight` / `line-height` | `@extend .xpl-text-title-5` (14px, medium, 1.4286) | — |
|
|
20
|
+
|
|
21
|
+
> **Design note:** the always-dark surface decision is confirmed (there is no
|
|
22
|
+
> toolbar node in `figma-manifest.json`). Foundation defines no shadow tokens, so the
|
|
23
|
+
> elevation uses the neutral transparent primitives. See `TECH_DEBT.md`.
|
|
5
24
|
|
|
6
25
|
<!-- Auto Generated Below -->
|
|
7
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# xpl-top-nav
|
|
2
2
|
|
|
3
|
-
Top navigation shell for brand,
|
|
3
|
+
Top navigation shell for navigating between Xplor applications and account controls — brand, cross-app navigation, right-side actions, and an optional account menu. In Xplor's primary use case it switches between Xplor products within one account, while the side navigation handles primary navigation within a single app.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
@@ -51,6 +51,9 @@ Use the same tags in any HTML page that loads Apollo styles and the component bu
|
|
|
51
51
|
- On **narrow viewports**, **`slot="right-aside"`** is hidden in the bar. Duplicate those actions into **`xpl-nav-header-menu`** **`slot="right-aside-mobile"`** (narrow-only strip below profile, above the list) so they stay reachable from the account menu.
|
|
52
52
|
- On **`xpl-top-nav-item`**, use **`selected`** for the current page (**`aria-current="page"`**) and optional **`active`** for extra accent styling; see the item readme for modifier details.
|
|
53
53
|
- **`slot="dropdown"`** does not implement arrow-key roving focus; put focusable elements inside the panel or treat full “menu” keyboard behavior as a future enhancement.
|
|
54
|
+
- **Grouping nav items:** put an **`xpl-top-nav-menu`** in a parent **`xpl-top-nav-item`**'s **`slot="dropdown"`** to render a desktop flyout of **`xpl-top-nav-item`** rows (e.g. grouping by product). The same markup also drives the **mobile cascade** below — see **`xpl-top-nav-menu`**'s readme for the full interaction model (back row, focus management, Escape / drawer-close lifecycle).
|
|
55
|
+
- **Mobile cascade:** below **`md`**, tapping a **`left-aside`** parent that has a menu swaps the drawer's Level 1 list for that group's Level 2 rows **in place** (no second panel) — the group's **`xpl-top-nav-menu`** auto-renders a back row (leading `chevron-left` + its `label`) as the first row. Tapping the back row, or pressing **Escape** once, pops back to Level 1; a second **Escape**, or the hamburger toggle, closes the drawer (and resets any still-drilled-in group so the drawer reopens at Level 1). Cascade depth is capped at 2 levels and is mobile-only — the desktop flyout is always a single level of links.
|
|
56
|
+
- **Child-location context on small screens:** for a "Change Account" style row (a plain **`xpl-top-nav-item`** you author in **`slot="user-menu"`**), set **`description`** to the current child-location's name so it reads e.g. "Change Account" / "Acme Corp — Downtown Location" on narrow viewports where that context isn't otherwise visible in the bar. This is a content pattern (see the **`TopNavigation`** story), not a separate framework feature — **`description`** already exists on **`xpl-top-nav-item`**.
|
|
54
57
|
|
|
55
58
|
## Theming
|
|
56
59
|
|
|
@@ -100,6 +103,7 @@ Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-a
|
|
|
100
103
|
Optional **`nav-control`** and **`navOpen`**. **`left-aside`** uses **`role="list"`** for primary **`xpl-top-nav-item`** rows (**`role="listitem"`** on each item host). The built-in **`xpl-top-nav__brand`** item omits **`listitem`** (it is not a child of that list). **`label`** maps to **`nav`** **`aria-label`**. Opening state is internal (not a prop) — use **`navOpen`** and host **`xpl-top-nav--open`** for styling.
|
|
101
104
|
|
|
102
105
|
**Escape:** With **`nav-control`**, **Escape** closes the mobile drawer and emits **`navOpen`** **`false`** (skips while **any** descendant **`xpl-popover`** is open — detected from each popover’s inner **`.xpl-popover--is-open`** marker — or when a **`xpl-top-nav-item`** dropdown is open — capture/bubble order). Focus returns to the nav toggle after the drawer closes (**Escape** or second toggle click).
|
|
106
|
+
**Outside click:** With **`nav-control`**, a click outside the drawer panel (**`.xpl-top-nav__left-primary`**) also closes it and emits **`navOpen`** **`false`** (document **capture**, mirroring **`xpl-top-nav-item`**); it skips clicks on the hamburger toggle and while a descendant **`xpl-popover`** is open, and does not move focus.
|
|
103
107
|
**`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
|
|
104
108
|
on **`ownerDocument`** so nested dropdowns close before the drawer.
|
|
105
109
|
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Behavior
|
|
4
4
|
|
|
5
|
-
- **Plain item:** **`label`** / **`icon
|
|
6
|
-
- **Dropdown:** Put content in **`slot="dropdown"`** (e.g. `<
|
|
5
|
+
- **Plain item:** **`label`** / **`icon`** (or **`slot="leading-icon"`**), default slot, or **`href`** link. Renders a native **`<button type="button">`** (or **`<a href>`** in link mode) and fires **`navItemClick`** (**`detail`**: **`MouseEvent`**) on click and **Enter** / **Space** — the native button handles keyboard activation, and link-mode **Space** maps to a programmatic **`.click()`**.
|
|
6
|
+
- **Dropdown trigger:** Put content in **`slot="dropdown"`** (e.g. `<xpl-top-nav-menu>`). Shows an auto **`chevron-down`** (unless **`slot="trailing-icon"`** is provided) and toggles **`.xpl-top-nav-item__dropdown`** in the host light DOM — **not** **`xpl-dropdown`** / **`xpl-popover`**; use those for standalone floating menus (e.g. account in top-nav stories). **`navItemClick`** is not emitted. See **`TECH_DEBT.md`** for tradeoffs.
|
|
7
|
+
- **Disclosure ARIA:** A dropdown trigger's inner control carries **`aria-expanded`** (open state), **`aria-haspopup="true"`**, and **`aria-controls`** pointing at the **`.xpl-top-nav-item__dropdown`** panel's generated id. Plain items omit all three. **`aria-haspopup`** is the generic **`true`** (disclosure), not **`menu`** — the panel (**`xpl-top-nav-menu`**) is a **`role="list"`** of link rows navigated by **Tab**, not an ARIA menu with arrow-key roving.
|
|
8
|
+
- **Menu row:** The same component reused inside **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`** — add **`description`** for a two-line row, and **`slot="trailing-icon"`** for a functional icon (e.g. `external-link` for "opens in new window").
|
|
9
|
+
- **Open API:** **`open`** (controlled/uncontrolled, reflected) + **`openChange`** event + **`openMenu()`** / **`closeMenu()`** / **`toggleMenu()`** methods — all equivalent ways to drive the dropdown panel.
|
|
10
|
+
- **`openMode`:** **`click`** (default) or **`hover`** — hover only activates on hover-capable, fine-pointer, **`md`**-and-up devices; keyboard (Enter/Space) always toggles regardless.
|
|
7
11
|
- **One open dropdown:** Outside click uses **`ownerDocument`** capture; siblings close via internal **`CustomEvent`** (reliable with JSDOM / **`stopPropagation`**).
|
|
8
|
-
- **Escape:** Document **capture** **`keydown`** — **`preventDefault`** / **`stopPropagation`** so parent shells (**`xpl-top-nav`** mobile drawer, **`xpl-popover`**, modal) do not also react on the same keypress. **`xpl-top-nav`** closes its drawer on **Escape** in **bubble** phase, after this handler runs.
|
|
12
|
+
- **Escape:** Document **capture** **`keydown`** — **`preventDefault`** / **`stopPropagation`** so parent shells (**`xpl-top-nav`** mobile drawer, **`xpl-popover`**, modal) do not also react on the same keypress, then returns focus to the trigger control. **`xpl-top-nav`** closes its drawer on **Escape** in **bubble** phase, after this handler runs.
|
|
9
13
|
|
|
10
14
|
## Host modifier classes (BEM)
|
|
11
15
|
|
|
@@ -13,25 +17,28 @@
|
|
|
13
17
|
| --- | --- |
|
|
14
18
|
| **`xpl-top-nav-item--selected`** | **`selected`** prop |
|
|
15
19
|
| **`xpl-top-nav-item--has-dropdown`** | **`slot="dropdown"`** content present |
|
|
16
|
-
| **`xpl-top-nav-item--dropdown-open`** | Dropdown panel is open |
|
|
20
|
+
| **`xpl-top-nav-item--dropdown-open`** | Dropdown panel is open (**`open`** prop) |
|
|
17
21
|
| **`xpl-top-nav-item--active`** | **`active`** prop (or add the class on the host for edge cases) |
|
|
22
|
+
| **`xpl-top-nav-item--has-active-descendant`** | A descendant row inside **`slot="dropdown"`** is **`active`** / **`selected`** — accents the trigger like **`--active`**. Synced at connect / load / this item's own re-renders, not via a live descendant-class observer (see the JSDoc on **`hasActiveDescendant`** for why). |
|
|
18
23
|
|
|
19
24
|
## Slots
|
|
20
25
|
|
|
21
26
|
| Slot | Description |
|
|
22
27
|
| --- | --- |
|
|
23
28
|
| (default) | Custom trigger when **`label`** is omitted. |
|
|
24
|
-
| `
|
|
29
|
+
| `leading-icon` | Illustrative icon before the label. Overrides the **`icon`** prop when present. |
|
|
30
|
+
| `trailing-icon` | Functional icon after the label. Overrides the auto **`chevron-down`** on a dropdown trigger. |
|
|
31
|
+
| `dropdown` | Panel content (e.g. `<xpl-top-nav-menu>…</xpl-top-nav-menu>`). |
|
|
25
32
|
|
|
26
33
|
<!-- Auto Generated Below -->
|
|
27
34
|
|
|
28
35
|
|
|
29
36
|
## Overview
|
|
30
37
|
|
|
31
|
-
Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses
|
|
32
|
-
participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
|
|
33
|
-
**`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
|
|
34
|
-
under **`xpl-nav-header-menu`**. That flag is
|
|
38
|
+
Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. The host uses
|
|
39
|
+
**`role="listitem"`** when the row participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
|
|
40
|
+
**`xpl-top-nav`** (list host is **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
|
|
41
|
+
**`xpl-top-nav`**), or default-slot rows under **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. That flag is
|
|
35
42
|
kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
|
|
36
43
|
on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
|
|
37
44
|
without a full reconnect still re-sync. The internal
|
|
@@ -39,6 +46,10 @@ without a full reconnect still re-sync. The internal
|
|
|
39
46
|
as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
|
|
40
47
|
panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
|
|
41
48
|
|
|
49
|
+
**This component does triple duty:** a plain bar item, a dropdown trigger (**`slot="dropdown"`** present), and a
|
|
50
|
+
dropdown/menu **row** (nested inside **`xpl-nav-header-menu`** or **`xpl-top-nav-menu`**). The **`description`** prop
|
|
51
|
+
only applies in the row context — bar items and triggers do not show it in Figma.
|
|
52
|
+
|
|
42
53
|
**Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
|
|
43
54
|
custom trigger content — the component renders the inner wrapper and BEM elements.
|
|
44
55
|
|
|
@@ -47,21 +58,67 @@ values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
|
47
58
|
|
|
48
59
|
## Properties
|
|
49
60
|
|
|
50
|
-
| Property | Attribute | Description | Type
|
|
51
|
-
| --------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
|
-
| `active` | `active` | When true, adds **`xpl-top-nav-item--active`** for persistent accent styling (e.g. link color on the bar, or chrome inside **`xpl-nav-header-menu`**). Separate from **`selected`**, which sets **`aria-current="page"`** and **`--selected`**. Use both when the design needs “current page” semantics plus the active visual treatment. | `boolean`
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
61
|
+
| Property | Attribute | Description | Type | Default |
|
|
62
|
+
| --------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------- |
|
|
63
|
+
| `active` | `active` | When true, adds **`xpl-top-nav-item--active`** for persistent accent styling (e.g. link color on the bar, or chrome inside **`xpl-nav-header-menu`**). Separate from **`selected`**, which sets **`aria-current="page"`** and **`--selected`**. Use both when the design needs “current page” semantics plus the active visual treatment. | `boolean` | `false` |
|
|
64
|
+
| `description` | `description` | Optional description line shown below **`label`** (row context only, e.g. inside **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**). Ignored when **`label`** is not set. | `string` | `undefined` |
|
|
65
|
+
| `href` | `href` | If set without **`slot="dropdown"`**, the inner control renders as a native **`<a href>`** (link mode). | `string` | `undefined` |
|
|
66
|
+
| `icon` | `icon` | Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set). Ignored when **`slot="leading-icon"`** content is present. | `string` | `''` |
|
|
67
|
+
| `itemAriaLabel` | `item-aria-label` | Accessible name for the inner control when there is no **`label`** and no default-slot text (e.g. icon-only). If omitted in that case, **`aria-label`** defaults to **`Navigation item`**. Ignored when **`label`** or default-slot content supplies a visible name. | `string` | `undefined` |
|
|
68
|
+
| `label` | `label` | Text label. If omitted, use the default slot for custom trigger content. Long labels use **`text-ellipsis`** on **`.xpl-top-nav-item__label`** (see `top-nav.css`); **`title`** is set to the full string for hover tooltips when the visual line clips. | `string` | `undefined` |
|
|
69
|
+
| `open` | `open` | Whether the **`slot="dropdown"`** panel is open. Reflected to the **`open`** attribute so consumers can drive it (controlled) or read it back (uncontrolled, toggled internally on click / hover / keyboard activation). Prefer **`openMenu()`** / **`closeMenu()`** / **`toggleMenu()`** over setting this directly from event handlers. | `boolean` | `false` |
|
|
70
|
+
| `openMode` | `open-mode` | How the **`slot="dropdown"`** panel opens. **`hover`** is gated on **`TOP_NAV_ITEM_HOVER_OPEN_MQ`** (hover-capable, fine pointer, **`md`** and up) — below that, or on touch / coarse-pointer devices, **`hover`** falls back to click/tap. Keyboard activation (Enter / Space) always toggles regardless of **`openMode`**. | `"click" \| "hover"` | `'click'` |
|
|
71
|
+
| `selected` | `selected` | When true, sets **`aria-current="page"`** and selected styling. | `boolean` | `false` |
|
|
58
72
|
|
|
59
73
|
|
|
60
74
|
## Events
|
|
61
75
|
|
|
62
|
-
| Event | Description
|
|
63
|
-
| -------------- |
|
|
64
|
-
| `navItemClick` | Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click
|
|
76
|
+
| Event | Description | Type |
|
|
77
|
+
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
|
78
|
+
| `navItemClick` | Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`**: the native **`<button>`** fires a real **`click`** on **Enter** / **Space**, a native **`<a href>`** on **Enter**, and **Space** on a link maps to a programmatic **`.click()`**. **`detail`** is always the real **`MouseEvent`** from that activation (keyboard-driven clicks have **`detail === 0`**). Not emitted when **`slot="dropdown"`** is used. | `CustomEvent<MouseEvent>` |
|
|
79
|
+
| `openChange` | Emitted whenever **`open`** changes (click, hover, keyboard, Escape, outside click, or programmatic). | `CustomEvent<boolean>` |
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Methods
|
|
83
|
+
|
|
84
|
+
### `closeMenu() => Promise<void>`
|
|
85
|
+
|
|
86
|
+
No-op when there is no **`slot="dropdown"`** panel to open.
|
|
87
|
+
|
|
88
|
+
#### Returns
|
|
89
|
+
|
|
90
|
+
Type: `Promise<void>`
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
### `openMenu() => Promise<void>`
|
|
95
|
+
|
|
96
|
+
No-op when there is no **`slot="dropdown"`** panel to open.
|
|
97
|
+
|
|
98
|
+
#### Returns
|
|
99
|
+
|
|
100
|
+
Type: `Promise<void>`
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### `toggleMenu() => Promise<void>`
|
|
105
|
+
|
|
106
|
+
No-op when there is no **`slot="dropdown"`** panel to open.
|
|
107
|
+
|
|
108
|
+
#### Returns
|
|
109
|
+
|
|
110
|
+
Type: `Promise<void>`
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
## Slots
|
|
116
|
+
|
|
117
|
+
| Slot | Description |
|
|
118
|
+
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `"dropdown"` | Panel content (e.g. `<xpl-top-nav-menu>`). Presence of this slot makes the row a disclosure trigger. |
|
|
120
|
+
| `"leading-icon"` | Illustrative icon before the label. Overrides the **`icon`** prop when present. |
|
|
121
|
+
| `"trailing-icon"` | Functional icon after the label (e.g. **`external-link`** for "opens in new window"). When **`slot="dropdown"`** is present and no **`trailing-icon`** content is slotted, an auto chevron renders here: **`chevron-down`** on the desktop flyout, **`chevron-right`** on the mobile cascade (drill-in). |
|
|
65
122
|
|
|
66
123
|
|
|
67
124
|
## Dependencies
|
|
@@ -69,6 +126,7 @@ values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
|
69
126
|
### Used by
|
|
70
127
|
|
|
71
128
|
- [xpl-top-nav](..)
|
|
129
|
+
- [xpl-top-nav-menu](../xpl-top-nav-menu)
|
|
72
130
|
|
|
73
131
|
### Depends on
|
|
74
132
|
|
|
@@ -79,6 +137,7 @@ values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
|
79
137
|
graph TD;
|
|
80
138
|
xpl-top-nav-item --> xpl-icon
|
|
81
139
|
xpl-top-nav --> xpl-top-nav-item
|
|
140
|
+
xpl-top-nav-menu --> xpl-top-nav-item
|
|
82
141
|
style xpl-top-nav-item fill:#f9f,stroke:#333,stroke-width:4px
|
|
83
142
|
```
|
|
84
143
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# xpl-top-nav-menu
|
|
2
|
+
|
|
3
|
+
## Behavior
|
|
4
|
+
|
|
5
|
+
- **Thin grouping container only.** No item logic lives here — put **`xpl-top-nav-item`** rows in the default slot. This component owns list semantics (**`role="list"`**) and shared panel chrome (width, surface, shadow, radius, padding), nothing else.
|
|
6
|
+
- **One authoring markup, two renderings:** the same **`<xpl-top-nav-menu>`** renders as the **desktop flyout** (nested in a parent **`xpl-top-nav-item`**'s **`slot="dropdown"`** — the panel opens absolutely-positioned under the trigger) and, below the **`md`** breakpoint, drives the **mobile cascade**: the parent's dropdown content swaps in **in place** of the top-level nav list (no second panel), with an auto **back row** as the first row.
|
|
7
|
+
- **`label`** is the accessible name for the list (**`aria-label`**) and, on mobile, the text shown in the auto-rendered back row (leading **`chevron-left`**) when drilling back out of this group. Tapping the back row calls **`closeMenu()`** on the parent trigger (pop to Level 1) and restores focus to it.
|
|
8
|
+
- The back row only renders below **`md`** (synced from a **`matchMedia`** listener) — desktop never sees it, since the flyout there is a single level of links.
|
|
9
|
+
- **Cascade lifecycle** (owned by **`xpl-top-nav`**, the shell): pressing **Escape** while drilled in pops the cascade before it closes the mobile drawer (two separate presses); closing the drawer via the hamburger toggle while still drilled in resets the group closed so the drawer reopens at Level 1 next time.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<xpl-top-nav-item slot="left-aside" label="Xplor Ops" open-mode="hover">
|
|
15
|
+
<xpl-top-nav-menu slot="dropdown" label="Xplor Ops">
|
|
16
|
+
<xpl-top-nav-item label="Payroll" href="/payroll"></xpl-top-nav-item>
|
|
17
|
+
<xpl-top-nav-item label="Capital" href="/capital">
|
|
18
|
+
<xpl-icon slot="trailing-icon" icon="open-rect-arrow-out"></xpl-icon>
|
|
19
|
+
</xpl-top-nav-item>
|
|
20
|
+
</xpl-top-nav-menu>
|
|
21
|
+
</xpl-top-nav-item>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Host modifier classes (BEM)
|
|
25
|
+
|
|
26
|
+
None on the host itself. Row-level state (`active`, `selected`, description, icons) lives entirely on the slotted `xpl-top-nav-item` rows.
|
|
27
|
+
|
|
28
|
+
| Class | Source |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| `.xpl-top-nav-menu__back` | Auto-rendered on the back-row `xpl-top-nav-item` (mobile only, `label` set). Not a hook to restyle — it uses the same row treatment as any other `xpl-top-nav-item` in this list. |
|
|
31
|
+
|
|
32
|
+
## Slots
|
|
33
|
+
|
|
34
|
+
| Slot | Description |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| (default) | `xpl-top-nav-item` rows. |
|
|
37
|
+
|
|
38
|
+
<!-- Auto Generated Below -->
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Overview
|
|
42
|
+
|
|
43
|
+
Thin grouping container for **`xpl-top-nav-item`** rows — the panel content for a desktop flyout
|
|
44
|
+
(**`slot="dropdown"`** on the parent **`xpl-top-nav-item`**) and, on small screens, the **mobile
|
|
45
|
+
cascade**: the same markup drills in to a **Level 2** view in place, with an auto-rendered **back
|
|
46
|
+
row** (leading **`chevron-left`** + this component's **`label`**) as the first row. Tapping the back
|
|
47
|
+
row closes the parent trigger's dropdown (**`closeMenu()`**), returning to **Level 1** and restoring
|
|
48
|
+
focus to the parent trigger. No item logic otherwise lives here — row behavior (icons, description,
|
|
49
|
+
links, nested dropdowns) is entirely **`xpl-top-nav-item`**.
|
|
50
|
+
|
|
51
|
+
**One authoring markup, two renderings:** consumers write this once; **`isMobileCascade`** (synced
|
|
52
|
+
from **`TOP_NAV_MOBILE_MQ`**) decides whether the back row renders. Desktop never sees it — the
|
|
53
|
+
flyout is a single level of links (see `xpl-top-nav-item`'s cascade-depth notes).
|
|
54
|
+
|
|
55
|
+
**Panel chrome** is shared with **`xpl-nav-header-menu`** (the account menu): width
|
|
56
|
+
(**`--xpl-top-nav-panel-width`**), surface, shadow, radius, and vertical padding all come from the
|
|
57
|
+
same selector in `top-nav.css` so the desktop flyout, mobile cascade, and account menu read as one
|
|
58
|
+
visual family.
|
|
59
|
+
|
|
60
|
+
**Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens
|
|
61
|
+
resolve to dark-mode values even when the page root is light (consistent with the rest of the
|
|
62
|
+
**`xpl-top-nav`** family).
|
|
63
|
+
|
|
64
|
+
## Properties
|
|
65
|
+
|
|
66
|
+
| Property | Attribute | Description | Type | Default |
|
|
67
|
+
| -------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |
|
|
68
|
+
| `label` | `label` | Accessible name for the list (**`aria-label`** on the host) and the label shown in the mobile cascade back row when drilling back out of this group. | `string` | `undefined` |
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## Slots
|
|
72
|
+
|
|
73
|
+
| Slot | Description |
|
|
74
|
+
| ------------- | ---------------------------- |
|
|
75
|
+
| `"(default)"` | **`xpl-top-nav-item`** rows. |
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## Dependencies
|
|
79
|
+
|
|
80
|
+
### Depends on
|
|
81
|
+
|
|
82
|
+
- [xpl-top-nav-item](../xpl-top-nav-item)
|
|
83
|
+
- [xpl-icon](../../xpl-icon)
|
|
84
|
+
|
|
85
|
+
### Graph
|
|
86
|
+
```mermaid
|
|
87
|
+
graph TD;
|
|
88
|
+
xpl-top-nav-menu --> xpl-top-nav-item
|
|
89
|
+
xpl-top-nav-menu --> xpl-icon
|
|
90
|
+
xpl-top-nav-item --> xpl-icon
|
|
91
|
+
style xpl-top-nav-menu fill:#f9f,stroke:#333,stroke-width:4px
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
----------------------------------------------
|
|
95
|
+
|
|
96
|
+
*Built with [StencilJS](https://stenciljs.com/)*
|
|
@@ -19,6 +19,18 @@ To add content to the slots, just create a `<ul>` tag and target the desired slo
|
|
|
19
19
|
|
|
20
20
|
`<ul slot="aside">...</ul>`
|
|
21
21
|
|
|
22
|
+
## Design Tokens
|
|
23
|
+
|
|
24
|
+
The utility bar uses Apollo Foundation purpose-specific tokens, which theme automatically in light and dark mode (no `.dark` overrides).
|
|
25
|
+
|
|
26
|
+
| Element | Property | Token |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `.xpl-utility-bar` | `background-color` | `--xpl-background-surface-default` |
|
|
29
|
+
| `.xpl-utility-bar` | `color` (muted text) | `--xpl-text-subdued` |
|
|
30
|
+
| `.xpl-utility-nav__bars` | `color` (nav-control icon) | `--xpl-icon-default` |
|
|
31
|
+
| `.xpl-utility-nav__bars` | `height` | `--xpl-size-100` |
|
|
32
|
+
| `.xpl-utility-bar__nav-control` `:focus-visible` | `outline-color` | `--xpl-border-focus` |
|
|
33
|
+
|
|
22
34
|
<!-- Auto Generated Below -->
|
|
23
35
|
|
|
24
36
|
|