@xplortech/apollo-core 2.5.0 → 2.7.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 +1156 -115
- package/build/style.css +12151 -5333
- package/dist/apollo-core/apollo-core.css +68 -37
- package/dist/apollo-core/apollo-core.esm.js +1 -1
- package/dist/apollo-core/{p-f4c2626d.entry.js → p-084d26ed.entry.js} +1 -1
- package/dist/apollo-core/p-146d5d55.entry.js +1 -0
- package/dist/apollo-core/p-16742606.entry.js +1 -0
- package/dist/apollo-core/{p-0ac33b3a.entry.js → p-28d12fd3.entry.js} +1 -1
- package/dist/apollo-core/{p-7d245bf0.entry.js → p-3eb5eb7c.entry.js} +1 -1
- package/dist/apollo-core/p-4882f0bd.entry.js +1 -0
- package/dist/apollo-core/p-64b34268.entry.js +1 -0
- package/dist/apollo-core/p-6c956d4e.entry.js +1 -0
- package/dist/apollo-core/p-71b75f36.entry.js +1 -0
- package/dist/apollo-core/p-7eb86c63.entry.js +1 -0
- package/dist/apollo-core/{p-0e1877a2.entry.js → p-84254a24.entry.js} +1 -1
- package/dist/apollo-core/p-9f2a0321.entry.js +1 -0
- package/dist/apollo-core/p-C7bgJs6C.js +2 -0
- package/dist/apollo-core/p-cde83ab0.entry.js +1 -0
- package/dist/apollo-core/p-e7363036.entry.js +1 -0
- package/dist/cjs/apollo-core.cjs.js +3 -3
- package/dist/cjs/{index-D__N_vw2.js → index-BQ97-AWw.js} +149 -96
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/xpl-accordion.cjs.entry.js +5 -5
- package/dist/cjs/xpl-application-shell.cjs.entry.js +4 -4
- package/dist/cjs/{xpl-avatar_41.cjs.entry.js → xpl-avatar_61.cjs.entry.js} +9154 -1989
- package/dist/cjs/xpl-button-row.cjs.entry.js +4 -4
- package/dist/cjs/xpl-calendar.cjs.entry.js +4 -4
- package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +5 -5
- package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +5 -5
- package/dist/cjs/xpl-dynamic-table.cjs.entry.js +4 -4
- package/dist/cjs/xpl-grid-item.cjs.entry.js +4 -4
- package/dist/cjs/xpl-grid.cjs.entry.js +4 -4
- package/dist/cjs/xpl-large-card.cjs.entry.js +4 -4
- package/dist/cjs/xpl-main-nav.cjs.entry.js +4 -4
- package/dist/cjs/xpl-toggle.cjs.entry.js +6 -6
- package/dist/cjs/xpl-toolbar.cjs.entry.js +5 -5
- package/dist/collection/collection-manifest.json +26 -8
- package/dist/collection/components/xpl-accordion/accordion.stories.js +4 -0
- package/dist/collection/components/xpl-accordion/xpl-accordion.js +3 -3
- package/dist/collection/components/xpl-application-shell/application-shell.stories.js +4 -0
- package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +2 -2
- package/dist/collection/components/xpl-avatar/avatar.stories.js +122 -103
- package/dist/collection/components/xpl-avatar/xpl-avatar.js +250 -16
- package/dist/collection/components/xpl-backdrop/backdrop.stories.js +4 -0
- package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +2 -2
- package/dist/collection/components/xpl-badge/badge.stories.js +76 -33
- package/dist/collection/components/xpl-badge/xpl-badge.js +122 -14
- package/dist/collection/components/xpl-banner/banner.stories.js +64 -0
- package/dist/collection/components/xpl-banner/xpl-banner.js +296 -0
- package/dist/collection/components/xpl-breadcrumbs/breadcrumbs.stories.js +4 -0
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +2 -2
- package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +2 -2
- package/dist/collection/components/xpl-button/button.stories.js +102 -98
- package/dist/collection/components/xpl-button/xpl-button.js +201 -93
- package/dist/collection/components/xpl-button-row/xpl-button-row.js +2 -2
- package/dist/collection/components/xpl-calendar/calendar.stories.js +4 -0
- package/dist/collection/components/xpl-calendar/xpl-calendar.js +2 -2
- package/dist/collection/components/xpl-checkbox/checkbox.stories.js +4 -0
- package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +48 -26
- package/dist/collection/components/xpl-choicelist/choicelist.stories.js +4 -0
- package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +2 -2
- package/dist/collection/components/xpl-content-area/xpl-content-area.js +2 -2
- package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +2 -2
- package/dist/collection/components/xpl-data-card/data-card.stories.js +4 -0
- package/dist/collection/components/xpl-data-card/xpl-data-card.js +3 -3
- package/dist/collection/components/xpl-divider/divider.stories.js +4 -0
- package/dist/collection/components/xpl-divider/xpl-divider.js +2 -2
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +2 -2
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +2 -2
- package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +29 -4
- package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +120 -79
- package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +2 -2
- package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +3 -3
- package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +3 -3
- package/dist/collection/components/xpl-grid/xpl-grid.js +2 -2
- package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +2 -2
- package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +47 -54
- package/dist/collection/components/xpl-icon/xpl-icon.js +3 -3
- package/dist/collection/components/xpl-input/input.stories.js +170 -9
- package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +9 -9
- package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +55 -17
- package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +5 -5
- package/dist/collection/components/xpl-input/xpl-input-phone/phone-country-data.js +58 -0
- package/dist/collection/components/xpl-input/xpl-input-phone/phone-format.js +219 -0
- package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +469 -0
- package/dist/collection/components/xpl-input/xpl-input-search/xpl-input-search.js +485 -0
- package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +3 -3
- package/dist/collection/components/xpl-input/xpl-input.js +223 -17
- package/dist/collection/components/xpl-large-card/large-card.stories.js +4 -0
- package/dist/collection/components/xpl-large-card/xpl-large-card.js +2 -2
- package/dist/collection/components/xpl-list/list.stories.js +300 -63
- package/dist/collection/components/xpl-list/xpl-list-item/xpl-list-item.js +818 -0
- package/dist/collection/components/xpl-list/xpl-list.js +580 -22
- package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +2 -2
- package/dist/collection/components/xpl-modal/modal.stories.js +4 -0
- package/dist/collection/components/xpl-modal/xpl-modal.js +2 -2
- package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +3 -3
- package/dist/collection/components/xpl-pagination/pagination.stories.js +4 -0
- package/dist/collection/components/xpl-pagination/xpl-pagination.js +4 -4
- package/dist/collection/components/xpl-panel/panel.stories.js +53 -0
- package/dist/collection/components/xpl-panel/xpl-panel.js +60 -0
- package/dist/collection/components/xpl-popover/popover.stories.js +4 -0
- package/dist/collection/components/xpl-popover/xpl-popover.js +5 -5
- package/dist/collection/components/xpl-progress-bar/progress-bar.stories.js +96 -0
- package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +158 -0
- package/dist/collection/components/xpl-progress-indicator/progress-indicator.stories.js +118 -0
- package/dist/collection/components/xpl-progress-indicator/xpl-progress-indicator.js +171 -0
- package/dist/collection/components/xpl-radio/xpl-radio.js +4 -4
- package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +2 -2
- package/dist/collection/components/xpl-select/xpl-select.js +7 -7
- package/dist/collection/components/xpl-side-nav/side-nav.stories.js +519 -0
- package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +259 -0
- package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +32 -0
- package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +2 -2
- package/dist/collection/components/xpl-slideout/xpl-slideout.js +2 -2
- package/dist/collection/components/xpl-spotlight/spotlight.stories.js +385 -0
- package/dist/collection/components/xpl-spotlight/xpl-spotlight.js +1085 -0
- package/dist/collection/components/xpl-tab/xpl-tab.js +262 -9
- package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +23 -16
- package/dist/collection/components/xpl-table/table.stories.js +319 -67
- package/dist/collection/components/xpl-table/utils/move-row-dom.js +50 -0
- package/dist/collection/components/xpl-table/utils/table-internal.js +58 -0
- package/dist/collection/components/xpl-table/xpl-table-body/xpl-table-body.js +7 -0
- package/dist/collection/components/xpl-table/xpl-table-cell/xpl-table-cell.js +155 -0
- package/dist/collection/components/xpl-table/xpl-table-footer/xpl-table-footer.js +7 -0
- package/dist/collection/components/xpl-table/xpl-table-footer-cell/xpl-table-footer-cell.js +37 -0
- package/dist/collection/components/xpl-table/xpl-table-header/table-header.stories.js +131 -0
- package/dist/collection/components/xpl-table/xpl-table-header/xpl-table-header.js +7 -0
- package/dist/collection/components/xpl-table/xpl-table-header-cell/table-header-cell.stories.js +105 -0
- package/dist/collection/components/xpl-table/xpl-table-header-cell/xpl-table-header-cell.js +402 -0
- package/dist/collection/components/xpl-table/xpl-table-row/xpl-table-row.js +121 -0
- package/dist/collection/components/xpl-table/xpl-table.js +1449 -144
- package/dist/collection/components/xpl-tabs/segment-control.stories.js +31 -0
- package/dist/collection/components/xpl-tabs/tabs.shared.js +156 -0
- package/dist/collection/components/xpl-tabs/tabs.stories.js +10 -60
- package/dist/collection/components/xpl-tabs/xpl-tabs.js +339 -63
- package/dist/collection/components/xpl-tag/tag.stories.js +153 -0
- package/dist/collection/components/xpl-tag/xpl-tag.js +313 -10
- package/dist/collection/components/xpl-toast/xpl-toast.js +3 -3
- package/dist/collection/components/xpl-toggle/xpl-toggle.js +4 -4
- package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +3 -3
- package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +2 -2
- package/dist/collection/components/xpl-top-nav/top-nav.stories.js +625 -0
- package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +122 -0
- package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +481 -0
- package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +433 -0
- package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +2 -2
- package/dist/collection/utils/layout-ancestors.js +22 -0
- package/dist/collection/utils/lifecycle.js +79 -0
- package/dist/collection/utils/tab-a11y-ids.js +22 -0
- package/dist/components/floating-ui.dom.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/lifecycle.js +1 -0
- package/dist/components/tab-a11y-ids.js +1 -0
- 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-avatar2.js +1 -1
- package/dist/components/xpl-backdrop.js +1 -1
- package/dist/components/xpl-backdrop2.js +1 -1
- package/dist/components/xpl-badge.js +1 -1
- package/dist/components/xpl-badge2.js +1 -1
- package/dist/components/xpl-banner.d.ts +11 -0
- package/dist/components/xpl-banner.js +1 -0
- 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-button2.js +1 -1
- package/dist/components/xpl-calendar.js +1 -1
- package/dist/components/xpl-checkbox.js +1 -1
- package/dist/components/xpl-checkbox2.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-divider2.js +1 -1
- package/dist/components/xpl-dropdown-group.js +1 -1
- package/dist/components/xpl-dropdown-group2.js +1 -1
- package/dist/components/xpl-dropdown-heading.js +1 -1
- package/dist/components/xpl-dropdown-heading2.js +1 -1
- package/dist/components/xpl-dropdown-option.js +1 -1
- package/dist/components/xpl-dropdown-option2.js +1 -1
- package/dist/components/xpl-dropdown.js +1 -1
- package/dist/components/xpl-dropdown2.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-icon2.js +1 -1
- package/dist/components/xpl-input-date.js +1 -1
- package/dist/components/xpl-input-date2.js +1 -1
- package/dist/components/xpl-input-file.js +1 -1
- package/dist/components/xpl-input-file2.js +1 -1
- package/dist/components/xpl-input-phone.d.ts +11 -0
- package/dist/components/xpl-input-phone.js +1 -0
- package/dist/components/xpl-input-search.d.ts +11 -0
- package/dist/components/xpl-input-search.js +1 -0
- package/dist/components/xpl-input-search2.js +1 -0
- package/dist/components/xpl-input-time.js +1 -1
- package/dist/components/xpl-input.js +1 -1
- package/dist/components/xpl-input2.js +1 -1
- package/dist/components/xpl-large-card.js +1 -1
- package/dist/components/{xpl-progress.d.ts → xpl-list-item.d.ts} +4 -4
- package/dist/components/xpl-list-item.js +1 -0
- package/dist/components/xpl-list-item2.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/xpl-nav-header-menu.js +1 -0
- package/dist/components/xpl-nav-item.js +1 -1
- package/dist/components/xpl-pagination.js +1 -1
- package/dist/components/xpl-panel.d.ts +11 -0
- package/dist/components/xpl-panel.js +1 -0
- package/dist/components/xpl-popover.js +1 -1
- package/dist/components/xpl-popover2.js +1 -1
- package/dist/components/xpl-progress-bar.d.ts +11 -0
- package/dist/components/xpl-progress-bar.js +1 -0
- package/dist/components/xpl-progress-indicator.d.ts +11 -0
- package/dist/components/xpl-progress-indicator.js +1 -0
- package/dist/components/xpl-radio.js +1 -1
- package/dist/components/xpl-radio2.js +1 -1
- package/dist/components/xpl-secondary-nav.js +1 -1
- package/dist/components/xpl-select.js +1 -1
- package/dist/components/xpl-select2.js +1 -1
- package/dist/components/xpl-side-nav-item.d.ts +11 -0
- package/dist/components/xpl-side-nav-item.js +1 -0
- package/dist/components/xpl-side-nav.d.ts +11 -0
- package/dist/components/xpl-side-nav.js +1 -0
- package/dist/components/xpl-skeleton.js +1 -1
- package/dist/components/xpl-slideout.js +1 -1
- package/dist/components/xpl-spotlight.d.ts +11 -0
- package/dist/components/xpl-spotlight.js +1 -0
- package/dist/components/xpl-tab-panel.js +1 -1
- package/dist/components/xpl-tab.js +1 -1
- package/dist/components/xpl-table-body.d.ts +11 -0
- package/dist/components/xpl-table-body.js +1 -0
- package/dist/components/xpl-table-cell.d.ts +11 -0
- package/dist/components/xpl-table-cell.js +1 -0
- package/dist/components/xpl-table-cell2.js +1 -0
- package/dist/components/xpl-table-footer-cell.d.ts +11 -0
- package/dist/components/xpl-table-footer-cell.js +1 -0
- package/dist/components/xpl-table-footer-cell2.js +1 -0
- package/dist/components/xpl-table-footer.d.ts +11 -0
- package/dist/components/xpl-table-footer.js +1 -0
- package/dist/components/xpl-table-header-cell.js +1 -1
- package/dist/components/xpl-table-header-cell2.js +1 -0
- package/dist/components/xpl-table-header.js +1 -1
- package/dist/components/xpl-table-row.d.ts +11 -0
- package/dist/components/xpl-table-row.js +1 -0
- 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-tag2.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-tooltip2.js +1 -1
- package/dist/components/xpl-top-nav-item.d.ts +11 -0
- package/dist/components/xpl-top-nav-item.js +1 -0
- package/dist/components/xpl-top-nav-item2.js +1 -0
- package/dist/components/xpl-top-nav.d.ts +11 -0
- package/dist/components/xpl-top-nav.js +1 -0
- package/dist/components/xpl-utility-bar.js +1 -1
- package/dist/docs/xpl-accordion/readme.md +4 -0
- package/dist/docs/xpl-avatar/readme.md +291 -12
- package/dist/docs/xpl-backdrop/readme.md +1 -1
- package/dist/docs/xpl-badge/readme.md +104 -6
- package/dist/docs/xpl-banner/readme.md +203 -0
- package/dist/docs/xpl-button/readme.md +161 -14
- package/dist/docs/xpl-button-row/readme.md +1 -0
- package/dist/docs/xpl-calendar/readme.md +2 -1
- package/dist/docs/xpl-checkbox/readme.md +19 -14
- package/dist/docs/xpl-choicelist/readme.md +1 -0
- package/dist/docs/xpl-data-card/readme.md +2 -2
- package/dist/docs/xpl-divider/readme.md +6 -4
- package/dist/docs/xpl-dropdown/readme.md +15 -12
- package/dist/docs/xpl-dropdown/xpl-dropdown-group/readme.md +1 -0
- package/dist/docs/xpl-dropdown/xpl-dropdown-option/readme.md +6 -0
- package/dist/docs/xpl-dynamic-table/readme.md +22 -19
- package/dist/docs/xpl-dynamic-table-cell/readme.md +20 -18
- package/dist/docs/xpl-dynamic-table-row/readme.md +21 -19
- package/dist/docs/xpl-icon/readme.md +27 -3
- package/dist/docs/xpl-input/readme.md +72 -37
- package/dist/docs/xpl-input/xpl-input-color/readme.md +5 -0
- package/dist/docs/xpl-input/xpl-input-phone/readme.md +168 -0
- package/dist/docs/xpl-input/xpl-input-search/readme.md +175 -0
- package/dist/docs/xpl-input/xpl-input-time/readme.md +5 -0
- package/dist/docs/xpl-large-card/readme.md +1 -1
- package/dist/docs/xpl-list/readme.md +320 -10
- package/dist/docs/xpl-list/xpl-list-item/readme.md +99 -0
- package/dist/docs/xpl-modal/readme.md +3 -0
- package/dist/docs/xpl-pagination/readme.md +4 -0
- package/dist/docs/xpl-panel/readme.md +174 -0
- package/dist/docs/xpl-popover/readme.md +3 -1
- package/dist/docs/xpl-progress-bar/readme.md +145 -0
- package/dist/docs/xpl-progress-indicator/readme.md +234 -0
- package/dist/docs/xpl-radio/readme.md +6 -4
- package/dist/docs/xpl-select/readme.md +3 -1
- package/dist/docs/xpl-side-nav/readme.md +71 -0
- package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +115 -0
- package/dist/docs/xpl-slideout/readme.md +2 -1
- package/dist/docs/xpl-spotlight/readme.md +235 -0
- package/dist/docs/xpl-tab/readme.md +43 -7
- package/dist/docs/xpl-tab-panel/readme.md +42 -0
- package/dist/docs/xpl-table/readme.md +110 -46
- package/dist/docs/xpl-table/xpl-table-body/readme.md +10 -0
- package/dist/docs/xpl-table/xpl-table-cell/readme.md +33 -0
- package/dist/docs/xpl-table/xpl-table-footer/readme.md +10 -0
- package/dist/docs/xpl-table/xpl-table-footer-cell/readme.md +30 -0
- package/dist/docs/{xpl-table-header → xpl-table/xpl-table-header}/readme.md +13 -13
- package/dist/docs/xpl-table/xpl-table-header-cell/readme.md +66 -0
- package/dist/docs/xpl-table/xpl-table-row/readme.md +19 -0
- package/dist/docs/xpl-tabs/readme.md +63 -8
- package/dist/docs/xpl-tag/readme.md +379 -4
- package/dist/docs/xpl-toast/readme.md +56 -1
- package/dist/docs/xpl-top-nav/readme.md +179 -0
- package/dist/docs/xpl-top-nav/xpl-nav-header-menu/readme.md +81 -0
- package/dist/docs/xpl-top-nav/xpl-top-nav-item/readme.md +87 -0
- package/dist/esm/apollo-core.js +4 -4
- package/dist/esm/{index-DhZas3eX.js → index-C7bgJs6C.js} +149 -97
- package/dist/esm/loader.js +3 -3
- package/dist/esm/xpl-accordion.entry.js +5 -5
- package/dist/esm/xpl-application-shell.entry.js +4 -4
- package/dist/esm/{xpl-avatar_41.entry.js → xpl-avatar_61.entry.js} +9087 -1942
- package/dist/esm/xpl-button-row.entry.js +4 -4
- package/dist/esm/xpl-calendar.entry.js +4 -4
- package/dist/esm/xpl-dynamic-table-cell.entry.js +5 -5
- package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
- package/dist/esm/xpl-dynamic-table.entry.js +4 -4
- package/dist/esm/xpl-grid-item.entry.js +4 -4
- package/dist/esm/xpl-grid.entry.js +4 -4
- package/dist/esm/xpl-large-card.entry.js +4 -4
- package/dist/esm/xpl-main-nav.entry.js +4 -4
- package/dist/esm/xpl-toggle.entry.js +6 -6
- package/dist/esm/xpl-toolbar.entry.js +5 -5
- package/dist/types/components/xpl-accordion/xpl-accordion.d.ts +1 -1
- package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +4 -0
- package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
- package/dist/types/components/xpl-avatar/avatar.stories.d.ts +90 -27
- package/dist/types/components/xpl-avatar/xpl-avatar.d.ts +30 -3
- package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +4 -0
- package/dist/types/components/xpl-backdrop/xpl-backdrop.d.ts +1 -1
- package/dist/types/components/xpl-badge/badge.stories.d.ts +47 -11
- package/dist/types/components/xpl-badge/xpl-badge.d.ts +9 -2
- package/dist/types/components/xpl-banner/banner.stories.d.ts +77 -0
- package/dist/types/components/xpl-banner/xpl-banner.d.ts +20 -0
- package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +4 -0
- package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.d.ts +1 -1
- package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.d.ts +1 -1
- package/dist/types/components/xpl-button/button.stories.d.ts +68 -30
- package/dist/types/components/xpl-button/xpl-button.d.ts +21 -8
- package/dist/types/components/xpl-button-row/xpl-button-row.d.ts +1 -1
- package/dist/types/components/xpl-calendar/calendar.stories.d.ts +4 -0
- package/dist/types/components/xpl-calendar/xpl-calendar.d.ts +1 -1
- package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +4 -0
- package/dist/types/components/xpl-checkbox/xpl-checkbox.d.ts +5 -4
- package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +4 -0
- package/dist/types/components/xpl-choicelist/xpl-choicelist.d.ts +1 -1
- package/dist/types/components/xpl-content-area/xpl-content-area.d.ts +1 -1
- package/dist/types/components/xpl-dashboard/xpl-dashboard.d.ts +1 -1
- package/dist/types/components/xpl-data-card/data-card.stories.d.ts +4 -0
- package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +1 -1
- package/dist/types/components/xpl-divider/divider.stories.d.ts +4 -0
- package/dist/types/components/xpl-divider/xpl-divider.d.ts +1 -1
- package/dist/types/components/xpl-dropdown/dropdown-option.d.ts +1 -0
- package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +1 -1
- package/dist/types/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.d.ts +1 -1
- package/dist/types/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.d.ts +1 -1
- package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +3 -2
- package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +11 -8
- package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +1 -1
- package/dist/types/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.d.ts +1 -1
- package/dist/types/components/xpl-dynamic-table-row/xpl-dynamic-table-row.d.ts +1 -1
- package/dist/types/components/xpl-grid/xpl-grid.d.ts +1 -1
- package/dist/types/components/xpl-grid-item/xpl-grid-item.d.ts +1 -1
- package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +10 -11
- package/dist/types/components/xpl-icon/xpl-icon.d.ts +1 -1
- package/dist/types/components/xpl-input/input.stories.d.ts +37 -7
- package/dist/types/components/xpl-input/xpl-input-color/xpl-input-color.d.ts +1 -1
- package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +10 -3
- 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/phone-country-data.d.ts +13 -0
- package/dist/types/components/xpl-input/xpl-input-phone/phone-format.d.ts +5 -0
- package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +48 -0
- package/dist/types/components/xpl-input/xpl-input-search/xpl-input-search.d.ts +39 -0
- 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 +23 -5
- package/dist/types/components/xpl-large-card/large-card.stories.d.ts +4 -0
- package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +1 -1
- package/dist/types/components/xpl-list/list.stories.d.ts +299 -13
- package/dist/types/components/xpl-list/listitem.d.ts +13 -0
- package/dist/types/components/xpl-list/xpl-list-item/xpl-list-item.d.ts +71 -0
- package/dist/types/components/xpl-list/xpl-list.d.ts +56 -3
- package/dist/types/components/xpl-main-nav/xpl-main-nav.d.ts +1 -1
- package/dist/types/components/xpl-modal/modal.stories.d.ts +4 -0
- package/dist/types/components/xpl-modal/xpl-modal.d.ts +1 -1
- package/dist/types/components/xpl-nav-item/xpl-nav-item.d.ts +1 -1
- package/dist/types/components/xpl-pagination/pagination.stories.d.ts +4 -0
- package/dist/types/components/xpl-pagination/xpl-pagination.d.ts +1 -1
- package/dist/types/components/xpl-panel/panel.stories.d.ts +22 -0
- package/dist/types/components/xpl-panel/xpl-panel.d.ts +5 -0
- package/dist/types/components/xpl-popover/xpl-popover.d.ts +1 -1
- package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +73 -0
- package/dist/types/components/xpl-progress-bar/xpl-progress-bar.d.ts +15 -0
- package/dist/types/components/xpl-progress-indicator/progress-indicator.stories.d.ts +62 -0
- package/dist/types/components/xpl-progress-indicator/xpl-progress-indicator.d.ts +11 -0
- package/dist/types/components/xpl-radio/xpl-radio.d.ts +1 -1
- package/dist/types/components/xpl-secondary-nav/xpl-secondary-nav.d.ts +1 -1
- package/dist/types/components/xpl-select/xpl-select.d.ts +1 -1
- package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +80 -0
- package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +20 -0
- package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +4 -0
- package/dist/types/components/xpl-skeleton/xpl-skeleton.d.ts +1 -1
- package/dist/types/components/xpl-slideout/xpl-slideout.d.ts +1 -1
- package/dist/types/components/xpl-spotlight/spotlight.stories.d.ts +197 -0
- package/dist/types/components/xpl-spotlight/xpl-spotlight.d.ts +101 -0
- package/dist/types/components/xpl-tab/xpl-tab.d.ts +15 -2
- package/dist/types/components/xpl-tab-panel/xpl-tab-panel.d.ts +3 -2
- package/dist/types/components/xpl-table/table.stories.d.ts +161 -19
- package/dist/types/components/xpl-table/utils/move-row-dom.d.ts +3 -0
- package/dist/types/components/xpl-table/utils/table-internal.d.ts +8 -0
- package/dist/types/components/xpl-table/xpl-table-body/xpl-table-body.d.ts +3 -0
- package/dist/types/components/xpl-table/xpl-table-cell/xpl-table-cell.d.ts +11 -0
- package/dist/types/components/xpl-table/xpl-table-footer/xpl-table-footer.d.ts +3 -0
- package/dist/types/components/xpl-table/xpl-table-footer-cell/xpl-table-footer-cell.d.ts +4 -0
- package/dist/types/components/{xpl-table-header → xpl-table/xpl-table-header}/table-header.stories.d.ts +13 -16
- package/dist/types/components/xpl-table/xpl-table-header/xpl-table-header.d.ts +3 -0
- package/dist/types/components/{xpl-table-header-cell → xpl-table/xpl-table-header-cell}/table-header-cell.stories.d.ts +24 -20
- package/dist/types/components/xpl-table/xpl-table-header-cell/xpl-table-header-cell.d.ts +32 -0
- package/dist/types/components/xpl-table/xpl-table-row/xpl-table-row.d.ts +13 -0
- package/dist/types/components/xpl-table/xpl-table.d.ts +124 -22
- package/dist/types/components/xpl-tabs/segment-control.stories.d.ts +112 -0
- package/dist/types/components/xpl-tabs/tabs.shared.d.ts +156 -0
- package/dist/types/components/xpl-tabs/tabs.stories.d.ts +65 -12
- package/dist/types/components/xpl-tabs/xpl-tabs.d.ts +38 -19
- package/dist/types/components/xpl-tag/tag.stories.d.ts +65 -0
- package/dist/types/components/xpl-tag/xpl-tag.d.ts +37 -2
- package/dist/types/components/xpl-toast/xpl-toast.d.ts +1 -1
- package/dist/types/components/xpl-toggle/xpl-toggle.d.ts +1 -1
- package/dist/types/components/xpl-toolbar/xpl-toolbar.d.ts +1 -1
- package/dist/types/components/xpl-tooltip/xpl-tooltip.d.ts +1 -1
- package/dist/types/components/xpl-top-nav/top-nav.stories.d.ts +471 -0
- package/dist/types/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.d.ts +18 -0
- package/dist/types/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.d.ts +48 -0
- package/dist/types/components/xpl-top-nav/xpl-top-nav.d.ts +51 -0
- package/dist/types/components/xpl-utility-bar/xpl-utility-bar.d.ts +1 -1
- package/dist/types/components.d.ts +3059 -278
- package/dist/types/stencil-public-runtime.d.ts +23 -2
- package/dist/types/utils/layout-ancestors.d.ts +2 -0
- package/dist/types/utils/lifecycle.d.ts +16 -0
- package/dist/types/utils/tab-a11y-ids.d.ts +4 -0
- package/package.json +42 -28
- package/dist/apollo-core/p-1c2e4034.entry.js +0 -1
- package/dist/apollo-core/p-3b5f8989.entry.js +0 -1
- package/dist/apollo-core/p-4fab8172.entry.js +0 -1
- package/dist/apollo-core/p-576ce90f.entry.js +0 -1
- package/dist/apollo-core/p-5ec45742.entry.js +0 -1
- package/dist/apollo-core/p-77f0fd4a.entry.js +0 -1
- package/dist/apollo-core/p-7b7db57a.entry.js +0 -1
- package/dist/apollo-core/p-7c22b842.entry.js +0 -1
- package/dist/apollo-core/p-812bb0e4.entry.js +0 -1
- package/dist/apollo-core/p-845eef0d.entry.js +0 -1
- package/dist/apollo-core/p-9853028c.entry.js +0 -1
- package/dist/apollo-core/p-9d65ece7.entry.js +0 -1
- package/dist/apollo-core/p-DhZas3eX.js +0 -2
- package/dist/apollo-core/p-be292555.entry.js +0 -1
- package/dist/cjs/xpl-list.cjs.entry.js +0 -32
- package/dist/cjs/xpl-table-header-cell.cjs.entry.js +0 -57
- package/dist/cjs/xpl-table-header.cjs.entry.js +0 -14
- package/dist/collection/components/xpl-progress/progress.stories.js +0 -106
- package/dist/collection/components/xpl-progress/xpl-progress.js +0 -60
- package/dist/collection/components/xpl-table-header/table-header.stories.js +0 -126
- package/dist/collection/components/xpl-table-header/xpl-table-header.js +0 -7
- package/dist/collection/components/xpl-table-header-cell/table-header-cell.stories.js +0 -75
- package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +0 -188
- package/dist/components/xpl-progress.js +0 -1
- package/dist/docs/xpl-progress/readme.md +0 -22
- package/dist/docs/xpl-table-header-cell/readme.md +0 -47
- package/dist/esm/xpl-list.entry.js +0 -30
- package/dist/esm/xpl-table-header-cell.entry.js +0 -55
- package/dist/esm/xpl-table-header.entry.js +0 -12
- package/dist/types/components/xpl-progress/progress.stories.d.ts +0 -38
- package/dist/types/components/xpl-progress/xpl-progress.d.ts +0 -6
- package/dist/types/components/xpl-table-header/xpl-table-header.d.ts +0 -3
- package/dist/types/components/xpl-table-header-cell/xpl-table-header-cell.d.ts +0 -13
|
@@ -5,14 +5,28 @@
|
|
|
5
5
|
* It contains typing information for all components that exist in this project.
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
|
+
import { AvatarColor, AvatarGroupItem, AvatarStatus, AvatarVariant } from "./components/xpl-avatar/xpl-avatar";
|
|
9
|
+
import { BadgeVariantProp } from "./components/xpl-badge/xpl-badge";
|
|
8
10
|
import { Choice } from "./components/xpl-choicelist/choice";
|
|
9
11
|
import { DropdownItem, DropdownOptionGroup } from "./components/xpl-dropdown/dropdown-option";
|
|
10
|
-
import { ListItem } from "./components/xpl-list/listitem";
|
|
12
|
+
import { ListItem, XplListOrderChangeDetail } from "./components/xpl-list/listitem";
|
|
13
|
+
import { BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
|
|
11
14
|
import { PopoverPosition } from "./components/xpl-popover/xpl-popover";
|
|
15
|
+
import { SpotlightActionLayout, SpotlightAnchorPosition } from "./components/xpl-spotlight/xpl-spotlight";
|
|
16
|
+
import { XplTableRowOrderChangeDetail, XplTableSortChangedDetail } from "./components/xpl-table/xpl-table";
|
|
17
|
+
import { HeaderSortChangeDetail } from "./components/xpl-table/xpl-table-header-cell/xpl-table-header-cell";
|
|
18
|
+
import { TagDragEndDetail, TagDragStartDetail } from "./components/xpl-tag/xpl-tag";
|
|
19
|
+
export { AvatarColor, AvatarGroupItem, AvatarStatus, AvatarVariant } from "./components/xpl-avatar/xpl-avatar";
|
|
20
|
+
export { BadgeVariantProp } from "./components/xpl-badge/xpl-badge";
|
|
12
21
|
export { Choice } from "./components/xpl-choicelist/choice";
|
|
13
22
|
export { DropdownItem, DropdownOptionGroup } from "./components/xpl-dropdown/dropdown-option";
|
|
14
|
-
export { ListItem } from "./components/xpl-list/listitem";
|
|
23
|
+
export { ListItem, XplListOrderChangeDetail } from "./components/xpl-list/listitem";
|
|
24
|
+
export { BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
|
|
15
25
|
export { PopoverPosition } from "./components/xpl-popover/xpl-popover";
|
|
26
|
+
export { SpotlightActionLayout, SpotlightAnchorPosition } from "./components/xpl-spotlight/xpl-spotlight";
|
|
27
|
+
export { XplTableRowOrderChangeDetail, XplTableSortChangedDetail } from "./components/xpl-table/xpl-table";
|
|
28
|
+
export { HeaderSortChangeDetail } from "./components/xpl-table/xpl-table-header-cell/xpl-table-header-cell";
|
|
29
|
+
export { TagDragEndDetail, TagDragStartDetail } from "./components/xpl-tag/xpl-tag";
|
|
16
30
|
export namespace Components {
|
|
17
31
|
interface XplAccordion {
|
|
18
32
|
/**
|
|
@@ -74,22 +88,26 @@ export namespace Components {
|
|
|
74
88
|
/**
|
|
75
89
|
* Background color when there is no image src
|
|
76
90
|
*/
|
|
77
|
-
"color"?:
|
|
91
|
+
"color"?: AvatarColor;
|
|
78
92
|
/**
|
|
79
93
|
* Sets a disabled state on the avatar when set to true
|
|
80
94
|
* @default false
|
|
81
95
|
*/
|
|
82
96
|
"disabled"?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* When `variant` is `group`, data for each face (max 4 visible + overflow count). Each item: { src?, name?, color? }.
|
|
99
|
+
*/
|
|
100
|
+
"groupData"?: AvatarGroupItem[] | string;
|
|
83
101
|
/**
|
|
84
102
|
* The URL if the avatar should be hyperlinked
|
|
85
103
|
*/
|
|
86
104
|
"href"?: string;
|
|
87
105
|
/**
|
|
88
|
-
* Alt text for the image
|
|
106
|
+
* Alt text for the image; also used for initials when no image and no slot.
|
|
89
107
|
*/
|
|
90
108
|
"name"?: string;
|
|
91
109
|
/**
|
|
92
|
-
* Size of the avatar
|
|
110
|
+
* Size of the avatar (and of each avatar in a group).
|
|
93
111
|
*/
|
|
94
112
|
"size"?: 'md' | 'sm';
|
|
95
113
|
/**
|
|
@@ -97,13 +115,22 @@ export namespace Components {
|
|
|
97
115
|
*/
|
|
98
116
|
"src"?: string;
|
|
99
117
|
/**
|
|
100
|
-
*
|
|
118
|
+
* Shown for the default avatar, `profile`, and `with-text`; not shown when `variant` is `group`. **Legacy
|
|
119
|
+
* @deprecated :** `active`, `warning`, and `inactive` still map to `green`, `red`, and `gray` for existing consumers. Prefer palette names; legacy values are scheduled for removal in the next **major** release.
|
|
120
|
+
*/
|
|
121
|
+
"status"?: AvatarStatus;
|
|
122
|
+
/**
|
|
123
|
+
* Secondary text shown when `variant` is `with-text` (e.g. email).
|
|
101
124
|
*/
|
|
102
|
-
"
|
|
125
|
+
"subText"?: string;
|
|
103
126
|
/**
|
|
104
127
|
* Where to open the URL chosen for the `href` prop: `_self` (default), `_blank`, `_parent`, or `_top`
|
|
105
128
|
*/
|
|
106
129
|
"target"?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Optional layout: `profile` (large profile sizes), `group` (stacked faces + `groupData`; `status` not shown), `with-text` (avatar with `name` / `subText` beside it). Omit for the default single avatar.
|
|
132
|
+
*/
|
|
133
|
+
"variant"?: AvatarVariant;
|
|
107
134
|
}
|
|
108
135
|
interface XplBackdrop {
|
|
109
136
|
/**
|
|
@@ -114,13 +141,77 @@ export namespace Components {
|
|
|
114
141
|
}
|
|
115
142
|
interface XplBadge {
|
|
116
143
|
/**
|
|
117
|
-
* Whether badge shows a
|
|
144
|
+
* Whether badge shows a bordered ring
|
|
145
|
+
* @default false
|
|
146
|
+
*/
|
|
147
|
+
"bordered"?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Whether badge shows a dot icon before the text (inside the pill)
|
|
118
150
|
*/
|
|
119
151
|
"dot"?: boolean;
|
|
120
152
|
/**
|
|
121
|
-
*
|
|
153
|
+
* When true, render a compact badge built around the dot. - With no children: just a dot (status/dot badge) - With children: a small dot badge with the text/number inside
|
|
154
|
+
* @default false
|
|
155
|
+
*/
|
|
156
|
+
"dotOnly"?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Badge shape rounded (pill) boxy (rounded corners)
|
|
159
|
+
* @default 'rounded'
|
|
160
|
+
*/
|
|
161
|
+
"shape": 'rounded' | 'boxy';
|
|
162
|
+
/**
|
|
163
|
+
* Badge size default | small
|
|
164
|
+
* @default 'default'
|
|
165
|
+
*/
|
|
166
|
+
"size": 'default' | 'small';
|
|
167
|
+
/**
|
|
168
|
+
* Badge variant (color). Preferred values: `purple`, `green`, `yellow`, `orange`, `gray`, `red`, `blue`. The legacy semantic names `success`, `warning`, `inactive`, and `error` are still accepted and map to `green`, `yellow`, `gray`, and `red` respectively. Prefer the color names for new code.
|
|
169
|
+
* @default 'purple'
|
|
170
|
+
*/
|
|
171
|
+
"variant": BadgeVariantProp;
|
|
172
|
+
}
|
|
173
|
+
interface XplBanner {
|
|
174
|
+
/**
|
|
175
|
+
* Primary action label. When provided, an action button is rendered.
|
|
176
|
+
*/
|
|
177
|
+
"actionText"?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Controls the visual appearance and semantic meaning of the banner. These values map to messaging background/border token sets in `banner.css`. Banner icons use `--xpl-icon-default`, except `error` which uses inverse icon/text tokens for contrast on dark backgrounds.
|
|
180
|
+
* @default 'information'
|
|
181
|
+
*/
|
|
182
|
+
"appearance": 'information' | 'positive' | 'warning' | 'error';
|
|
183
|
+
/**
|
|
184
|
+
* Optional supporting message shown after the heading. Description text uses `--xpl-text-default`.
|
|
185
|
+
*/
|
|
186
|
+
"description"?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Whether to render the leading icon in section layout. Ignored in bar layout — bar banners always show the icon.
|
|
189
|
+
* @default true
|
|
190
|
+
*/
|
|
191
|
+
"hasIcon": boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Primary banner message shown with stronger title typography.
|
|
194
|
+
*/
|
|
195
|
+
"heading"?: string;
|
|
196
|
+
/**
|
|
197
|
+
* Whether to show the trailing dismiss control.
|
|
198
|
+
* @default true
|
|
199
|
+
*/
|
|
200
|
+
"isDismissible": boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Renders the section-style banner layout when true.
|
|
203
|
+
* @default false
|
|
204
|
+
*/
|
|
205
|
+
"isSection": boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Secondary action label. When provided, a second action button is rendered.
|
|
208
|
+
*/
|
|
209
|
+
"secondaryActionText"?: string;
|
|
210
|
+
/**
|
|
211
|
+
* When true, `description` is constrained to one line with ellipsis so banner height stays stable.
|
|
212
|
+
* @default false
|
|
122
213
|
*/
|
|
123
|
-
"
|
|
214
|
+
"truncateDesc": boolean;
|
|
124
215
|
}
|
|
125
216
|
interface XplBreadcrumbItem {
|
|
126
217
|
}
|
|
@@ -128,52 +219,84 @@ export namespace Components {
|
|
|
128
219
|
}
|
|
129
220
|
interface XplButton {
|
|
130
221
|
/**
|
|
131
|
-
*
|
|
222
|
+
* Attributes to apply to the inner native `<button>` (e.g., tab a11y wiring). Use this instead of setting `id` / `role` / `aria-*` on the host when the inner control is the element that needs them (e.g., WAI-ARIA composite widgets).
|
|
132
223
|
*/
|
|
133
|
-
"
|
|
224
|
+
"controlAttrs"?: {
|
|
225
|
+
id?: string;
|
|
226
|
+
role?: string;
|
|
227
|
+
'aria-controls'?: string;
|
|
228
|
+
'aria-selected'?: 'true' | 'false';
|
|
229
|
+
'aria-current'?: string;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Whether button should be disabled
|
|
233
|
+
* @default false
|
|
234
|
+
*/
|
|
235
|
+
"disabled": boolean;
|
|
134
236
|
/**
|
|
135
|
-
*
|
|
237
|
+
* An optional form attribute for the button if type is submit
|
|
136
238
|
*/
|
|
137
239
|
"form"?: string;
|
|
138
240
|
/**
|
|
139
|
-
*
|
|
241
|
+
* Whether the button should be of full width as per parent container.
|
|
242
|
+
* @default false
|
|
140
243
|
*/
|
|
141
|
-
"fullWidth"
|
|
244
|
+
"fullWidth": boolean;
|
|
142
245
|
/**
|
|
143
|
-
*
|
|
246
|
+
* Icon to render - icon name as string (from xpl-icon library).
|
|
247
|
+
* @default ''
|
|
144
248
|
*/
|
|
145
|
-
"
|
|
249
|
+
"icon": string;
|
|
250
|
+
/**
|
|
251
|
+
* When true, the button renders in icon-only circular style. Use for icon-only buttons.
|
|
252
|
+
* @default false
|
|
253
|
+
*/
|
|
254
|
+
"iconOnly": boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Icon position relative to slot content. Ignored if no icon is provided.
|
|
257
|
+
* @default 'start'
|
|
258
|
+
*/
|
|
259
|
+
"iconPosition": 'start' | 'end';
|
|
260
|
+
/**
|
|
261
|
+
* When true, shows a loading overlay with spinner over the button. Button is non-interactive.
|
|
262
|
+
* @default false
|
|
263
|
+
*/
|
|
264
|
+
"isLoading": boolean;
|
|
146
265
|
/**
|
|
147
266
|
* whether button should yield a slot for a link tag
|
|
148
267
|
*/
|
|
149
268
|
"link"?: boolean;
|
|
150
269
|
/**
|
|
151
|
-
*
|
|
270
|
+
* Name of the button, submitted with form data. Passed through to the native button element.
|
|
152
271
|
*/
|
|
153
272
|
"name"?: string;
|
|
154
273
|
/**
|
|
155
|
-
*
|
|
274
|
+
* Sentiment of the button, which applies different color schemes to indicate purpose/intent.
|
|
275
|
+
* @default 'neutral'
|
|
276
|
+
*/
|
|
277
|
+
"sentiment": 'neutral' | 'negative' | 'positive';
|
|
278
|
+
/**
|
|
279
|
+
* Button size. Use 'default', 'xs' (extra small), or 'sm' (small).
|
|
156
280
|
* @default 'default'
|
|
157
281
|
*/
|
|
158
|
-
"size": 'default' | '
|
|
282
|
+
"size": 'default' | 'xs' | 'sm';
|
|
159
283
|
/**
|
|
160
|
-
* @
|
|
161
|
-
* @default 'neutral'
|
|
284
|
+
* @deprecated : Use `sentiment` with values "neutral", "negative", "positive" instead of `state` .
|
|
162
285
|
*/
|
|
163
|
-
"state"
|
|
286
|
+
"state"?: 'neutral' | 'warning' | 'success';
|
|
164
287
|
/**
|
|
165
|
-
*
|
|
288
|
+
* HTML button type attribute.
|
|
166
289
|
*/
|
|
167
290
|
"type"?: 'submit' | 'reset' | 'button';
|
|
168
291
|
/**
|
|
169
|
-
*
|
|
292
|
+
* Value of the button, submitted with form data. Passed through to the native button element.
|
|
170
293
|
*/
|
|
171
294
|
"value"?: string;
|
|
172
295
|
/**
|
|
173
|
-
*
|
|
296
|
+
* Button variant/style. Use "primary", "secondary", "tertiary" for new usage. "subtle" is deprecated but still supported for backward compatibility.
|
|
174
297
|
* @default 'primary'
|
|
175
298
|
*/
|
|
176
|
-
"variant": 'primary' | 'secondary' | 'subtle';
|
|
299
|
+
"variant": 'primary' | 'secondary' | 'tertiary' | 'subtle';
|
|
177
300
|
}
|
|
178
301
|
interface XplButtonRow {
|
|
179
302
|
/**
|
|
@@ -223,6 +346,11 @@ export namespace Components {
|
|
|
223
346
|
"setDate": (date: string | string[]) => Promise<void>;
|
|
224
347
|
}
|
|
225
348
|
interface XplCheckbox {
|
|
349
|
+
/**
|
|
350
|
+
* Accessible name for the native checkbox input (sets `aria-label` on the `input`). Use when there is no visible label text in the default slot. Defaults to `''`; empty or whitespace-only values omit `aria-label` on the input so a visible `<label>` remains the sole name source.
|
|
351
|
+
* @default ''
|
|
352
|
+
*/
|
|
353
|
+
"ariaLabel": string;
|
|
226
354
|
/**
|
|
227
355
|
* Whether the input is checked
|
|
228
356
|
*/
|
|
@@ -404,7 +532,7 @@ export namespace Components {
|
|
|
404
532
|
/**
|
|
405
533
|
* call back function invoked when a selection is made
|
|
406
534
|
*/
|
|
407
|
-
"update"?: (e, { component }: { component:
|
|
535
|
+
"update"?: (e, { component }: { component: Dropdown }) => void;
|
|
408
536
|
}
|
|
409
537
|
interface XplDropdownGroup {
|
|
410
538
|
/**
|
|
@@ -423,6 +551,10 @@ export namespace Components {
|
|
|
423
551
|
"label": string;
|
|
424
552
|
}
|
|
425
553
|
interface XplDropdownOption {
|
|
554
|
+
/**
|
|
555
|
+
* optional icon name to display before the label (uses xpl-icon)
|
|
556
|
+
*/
|
|
557
|
+
"icon"?: string;
|
|
426
558
|
/**
|
|
427
559
|
* whether option is disabled
|
|
428
560
|
*/
|
|
@@ -444,8 +576,16 @@ export namespace Components {
|
|
|
444
576
|
*/
|
|
445
577
|
"value"?: string;
|
|
446
578
|
}
|
|
579
|
+
/**
|
|
580
|
+
* @deprecated Use the compositional `<xpl-table>` API instead.
|
|
581
|
+
* This component will be removed in a future major release.
|
|
582
|
+
*/
|
|
447
583
|
interface XplDynamicTable {
|
|
448
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* @deprecated Use `<xpl-table-cell>` instead.
|
|
587
|
+
* This component will be removed in a future major release.
|
|
588
|
+
*/
|
|
449
589
|
interface XplDynamicTableCell {
|
|
450
590
|
/**
|
|
451
591
|
* Whether the cell and its contents are disabled.
|
|
@@ -453,6 +593,10 @@ export namespace Components {
|
|
|
453
593
|
*/
|
|
454
594
|
"disabled": boolean;
|
|
455
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* @deprecated Use `<xpl-table-row>` instead.
|
|
598
|
+
* This component will be removed in a future major release.
|
|
599
|
+
*/
|
|
456
600
|
interface XplDynamicTableRow {
|
|
457
601
|
/**
|
|
458
602
|
* Whether the row and its cells are disabled.
|
|
@@ -546,7 +690,12 @@ export namespace Components {
|
|
|
546
690
|
*/
|
|
547
691
|
"allowCustomOption"?: boolean;
|
|
548
692
|
/**
|
|
549
|
-
*
|
|
693
|
+
* Accessible name for search inputs when there is no visible `label` (after trim). Ignored for naming when a visible label is shown. Defaults to `''`; whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed when there is no visible label. Applies to search inputs (`type="search"`).
|
|
694
|
+
* @default ''
|
|
695
|
+
*/
|
|
696
|
+
"ariaLabel": string;
|
|
697
|
+
/**
|
|
698
|
+
* Hint for form autofill feature Applies to text, password, number, and search inputs.
|
|
550
699
|
*/
|
|
551
700
|
"autocomplete"?: string;
|
|
552
701
|
/**
|
|
@@ -554,6 +703,11 @@ export namespace Components {
|
|
|
554
703
|
* @default 'Y-m-d'
|
|
555
704
|
*/
|
|
556
705
|
"dateFormat"?: string;
|
|
706
|
+
/**
|
|
707
|
+
* Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US". Applies to phone inputs.
|
|
708
|
+
* @default 'US'
|
|
709
|
+
*/
|
|
710
|
+
"defaultCountry"?: string;
|
|
557
711
|
/**
|
|
558
712
|
* Optional text that appears below the input label. Applies to all input types.
|
|
559
713
|
*/
|
|
@@ -585,6 +739,11 @@ export namespace Components {
|
|
|
585
739
|
* @default false
|
|
586
740
|
*/
|
|
587
741
|
"hideTriggerOnSelect"?: boolean;
|
|
742
|
+
/**
|
|
743
|
+
* Enables international mode with country selector for phone inputs. When false, the phone input is locked to defaultCountry with no country picker.
|
|
744
|
+
* @default true Applies to phone inputs.
|
|
745
|
+
*/
|
|
746
|
+
"isInternational"?: boolean;
|
|
588
747
|
/**
|
|
589
748
|
* Label text for the field Applies to all input types.
|
|
590
749
|
*/
|
|
@@ -621,7 +780,7 @@ export namespace Components {
|
|
|
621
780
|
*/
|
|
622
781
|
"name"?: string;
|
|
623
782
|
/**
|
|
624
|
-
* Placeholder text that appears when the field has no value Applies to text, password, number, and
|
|
783
|
+
* Placeholder text that appears when the field has no value Applies to text, password, number, date, and search inputs.
|
|
625
784
|
*/
|
|
626
785
|
"placeholder"?: string;
|
|
627
786
|
/**
|
|
@@ -633,13 +792,25 @@ export namespace Components {
|
|
|
633
792
|
*/
|
|
634
793
|
"pre"?: string;
|
|
635
794
|
/**
|
|
636
|
-
*
|
|
795
|
+
* Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"]. Applies to phone inputs.
|
|
796
|
+
*/
|
|
797
|
+
"preferredCountries"?: string[];
|
|
798
|
+
/**
|
|
799
|
+
* Whether the input is editable Applies to text, password, number, date, and search inputs.
|
|
637
800
|
*/
|
|
638
801
|
"readonly"?: boolean;
|
|
639
802
|
/**
|
|
640
803
|
* Whether the input is required Applies to all input types.
|
|
641
804
|
*/
|
|
642
805
|
"required"?: boolean;
|
|
806
|
+
/**
|
|
807
|
+
* Moves keyboard focus to the native control (text field, textarea, or search inner input).
|
|
808
|
+
*/
|
|
809
|
+
"setFocus": () => Promise<void>;
|
|
810
|
+
/**
|
|
811
|
+
* Shell corner radius for search inputs: `rounded` (pill) or `box` (rounded rectangle). Applies to search inputs (`type="search"`).
|
|
812
|
+
*/
|
|
813
|
+
"shape"?: 'rounded' | 'box';
|
|
643
814
|
/**
|
|
644
815
|
* The granularity that the value in a `number` input must adhere to when incrementing or decrementing. The default stepping value for number inputs is 1 Applies to number and time inputs.
|
|
645
816
|
*/
|
|
@@ -653,9 +824,17 @@ export namespace Components {
|
|
|
653
824
|
* The type of form control
|
|
654
825
|
* @default 'text'
|
|
655
826
|
*/
|
|
656
|
-
"type"?:
|
|
827
|
+
"type"?: | 'date'
|
|
828
|
+
| 'time'
|
|
829
|
+
| 'text'
|
|
830
|
+
| 'number'
|
|
831
|
+
| 'password'
|
|
832
|
+
| 'file'
|
|
833
|
+
| 'color'
|
|
834
|
+
| 'phone'
|
|
835
|
+
| 'search';
|
|
657
836
|
/**
|
|
658
|
-
* Including a `value` will pre-populate the input with the given string. Applies to text, password, number, and
|
|
837
|
+
* Including a `value` will pre-populate the input with the given string. Applies to text, password, number, date, and search inputs.
|
|
659
838
|
*/
|
|
660
839
|
"value"?: string;
|
|
661
840
|
}
|
|
@@ -785,6 +964,118 @@ export namespace Components {
|
|
|
785
964
|
*/
|
|
786
965
|
"removeFileByIndex": (fileIndex: number) => Promise<void>;
|
|
787
966
|
}
|
|
967
|
+
interface XplInputPhone {
|
|
968
|
+
/**
|
|
969
|
+
* Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US".
|
|
970
|
+
* @default 'US'
|
|
971
|
+
*/
|
|
972
|
+
"defaultCountry"?: string;
|
|
973
|
+
/**
|
|
974
|
+
* Whether the field is disabled
|
|
975
|
+
*/
|
|
976
|
+
"disabled"?: boolean;
|
|
977
|
+
/**
|
|
978
|
+
* The `inputId` is used to associate the input with a label.
|
|
979
|
+
*/
|
|
980
|
+
"inputId"?: string;
|
|
981
|
+
/**
|
|
982
|
+
* Enables international mode with a country selector and dial code prefix. When false, the input is locked to `defaultCountry` with no country picker and no dial code shown in the display value. Emitted value is still E.164.
|
|
983
|
+
* @default true
|
|
984
|
+
*/
|
|
985
|
+
"isInternational"?: boolean;
|
|
986
|
+
/**
|
|
987
|
+
* Most inputs are used in forms, and should have a `name` associated with the input for handling form data.
|
|
988
|
+
*/
|
|
989
|
+
"name"?: string;
|
|
990
|
+
/**
|
|
991
|
+
* Placeholder text that appears when the field has no value
|
|
992
|
+
*/
|
|
993
|
+
"placeholder"?: string;
|
|
994
|
+
/**
|
|
995
|
+
* Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"].
|
|
996
|
+
*/
|
|
997
|
+
"preferredCountries"?: string[];
|
|
998
|
+
/**
|
|
999
|
+
* Whether the input is editable
|
|
1000
|
+
*/
|
|
1001
|
+
"readonly"?: boolean;
|
|
1002
|
+
/**
|
|
1003
|
+
* Whether the input is required
|
|
1004
|
+
*/
|
|
1005
|
+
"required"?: boolean;
|
|
1006
|
+
/**
|
|
1007
|
+
* Including a `value` will pre-populate the input (E.164 format, e.g. +14155551234).
|
|
1008
|
+
*/
|
|
1009
|
+
"value"?: string;
|
|
1010
|
+
}
|
|
1011
|
+
interface XplInputSearch {
|
|
1012
|
+
/**
|
|
1013
|
+
* Accessible name when there is no visible label from the parent; maps to `aria-label` on the input. When the parent provides a visible label, the input is named by `<label for="…">` — this prop is ignored for naming. Empty or whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed.
|
|
1014
|
+
* @default 'Search'
|
|
1015
|
+
*/
|
|
1016
|
+
"ariaLabel": string;
|
|
1017
|
+
/**
|
|
1018
|
+
* Passed to the native input (`autocomplete` attribute). Default `off` matches common inline-search UX; browsers may still apply heuristics.
|
|
1019
|
+
* @default 'off'
|
|
1020
|
+
*/
|
|
1021
|
+
"autocomplete": string;
|
|
1022
|
+
/**
|
|
1023
|
+
* Disables the field and clear control.
|
|
1024
|
+
* @default false
|
|
1025
|
+
*/
|
|
1026
|
+
"disabled": boolean;
|
|
1027
|
+
/**
|
|
1028
|
+
* Element id for `aria-describedby` when `hasError` (error message lives on `xpl-input`).
|
|
1029
|
+
*/
|
|
1030
|
+
"errorMessageId"?: string;
|
|
1031
|
+
/**
|
|
1032
|
+
* Set by `xpl-input` when `error` is shown — drives `aria-invalid` / `aria-describedby`.
|
|
1033
|
+
* @default false
|
|
1034
|
+
*/
|
|
1035
|
+
"hasError": boolean;
|
|
1036
|
+
/**
|
|
1037
|
+
* When true, parent `xpl-input` renders a visible label — omit `aria-label` on the input.
|
|
1038
|
+
* @default false
|
|
1039
|
+
*/
|
|
1040
|
+
"hasVisibleLabel": boolean;
|
|
1041
|
+
/**
|
|
1042
|
+
* Associates the control with the parent `xpl-input` label (`for` / `id`).
|
|
1043
|
+
*/
|
|
1044
|
+
"inputId": string;
|
|
1045
|
+
/**
|
|
1046
|
+
* Form field `name` on the native input.
|
|
1047
|
+
*/
|
|
1048
|
+
"name"?: string;
|
|
1049
|
+
/**
|
|
1050
|
+
* Placeholder shown when the value is empty.
|
|
1051
|
+
* @default 'Search'
|
|
1052
|
+
*/
|
|
1053
|
+
"placeholder": string;
|
|
1054
|
+
/**
|
|
1055
|
+
* Whether the input is editable.
|
|
1056
|
+
* @default false
|
|
1057
|
+
*/
|
|
1058
|
+
"readonly": boolean;
|
|
1059
|
+
/**
|
|
1060
|
+
* Whether the input is required.
|
|
1061
|
+
* @default false
|
|
1062
|
+
*/
|
|
1063
|
+
"required": boolean;
|
|
1064
|
+
/**
|
|
1065
|
+
* Moves keyboard focus to the search field.
|
|
1066
|
+
*/
|
|
1067
|
+
"setFocus": () => Promise<void>;
|
|
1068
|
+
/**
|
|
1069
|
+
* Shell corner radius: `rounded` (pill) or `box` (rounded rectangle).
|
|
1070
|
+
* @default 'rounded'
|
|
1071
|
+
*/
|
|
1072
|
+
"shape": 'rounded' | 'box';
|
|
1073
|
+
/**
|
|
1074
|
+
* Current value (controlled-friendly).
|
|
1075
|
+
* @default ''
|
|
1076
|
+
*/
|
|
1077
|
+
"value": string;
|
|
1078
|
+
}
|
|
788
1079
|
interface XplInputTime {
|
|
789
1080
|
/**
|
|
790
1081
|
* For time inputs, whether to allow custom option in the input even if not available in the dropdown. Example: A step of 30 minutes will allow 15:03, 15:37, etc. Applies to time inputs.
|
|
@@ -861,10 +1152,94 @@ export namespace Components {
|
|
|
861
1152
|
}
|
|
862
1153
|
interface XplList {
|
|
863
1154
|
/**
|
|
864
|
-
*
|
|
1155
|
+
* Clears all radio selections in the list. Also runs when `selectable` is true, the user presses Escape, and focus is on the selected row. Emits `itemSelect` once per row that was selected (checked radio or `selected` prop), typically one.
|
|
1156
|
+
*/
|
|
1157
|
+
"clearSelection": () => Promise<void>;
|
|
1158
|
+
/**
|
|
1159
|
+
* Array of list items to render. Each item should follow the ListItem interface. **Deprecated.** Use slot-based xpl-list-item children instead.
|
|
865
1160
|
* @default []
|
|
866
1161
|
*/
|
|
867
|
-
"items"
|
|
1162
|
+
"items": ListItem[];
|
|
1163
|
+
/**
|
|
1164
|
+
* Accessible name for the list, exposed as `aria-label` on the host when set. Use when the list has no visible heading. Ignored when `labelledBy` is set (see `labelledBy` for precedence).
|
|
1165
|
+
*/
|
|
1166
|
+
"label"?: string;
|
|
1167
|
+
/**
|
|
1168
|
+
* Element id(s) that label this list (space-separated), exposed as `aria-labelledby` when set. When set, `label` is not applied as `aria-label` so the list has a single naming source.
|
|
1169
|
+
*/
|
|
1170
|
+
"labelledBy"?: string;
|
|
1171
|
+
/**
|
|
1172
|
+
* When true, enables reorder UI and behavior for **slot-based** child rows (drag handle + keyboard). Legacy rows rendered from the deprecated `items` prop do **not** show a drag handle; migrate to slots if reorder is required.
|
|
1173
|
+
* @default false
|
|
1174
|
+
*/
|
|
1175
|
+
"reorderable": boolean;
|
|
1176
|
+
/**
|
|
1177
|
+
* Determines if this list is selectable (shows `xpl-radio` per row in a shared group). Press Escape while focus is on the **selected** row to clear selection (same as `clearSelection()`).
|
|
1178
|
+
* @default false
|
|
1179
|
+
*/
|
|
1180
|
+
"selectable": boolean;
|
|
1181
|
+
}
|
|
1182
|
+
interface XplListItem {
|
|
1183
|
+
/**
|
|
1184
|
+
* Whether the item is disabled.
|
|
1185
|
+
* @default false
|
|
1186
|
+
*/
|
|
1187
|
+
"disabled"?: boolean;
|
|
1188
|
+
/**
|
|
1189
|
+
* Whether to show the item in an error state.
|
|
1190
|
+
* @default false
|
|
1191
|
+
*/
|
|
1192
|
+
"error"?: boolean;
|
|
1193
|
+
/**
|
|
1194
|
+
* When true, the row is not shown and does not participate in visible-only list behavior (e.g. `orderChange` / `orderedItemIds`, reorder targets). Use for filtering, conditional display, or keeping stable `item-id` while the row is off-screen. See `xpl-list` readme “Hidden rows”. **Accessibility:** Renders an empty host with the native `hidden` attribute only (no `role="listitem"`), consistent with the row not participating as a list item while hidden.
|
|
1195
|
+
* @default false
|
|
1196
|
+
*/
|
|
1197
|
+
"hidden": boolean;
|
|
1198
|
+
/**
|
|
1199
|
+
* URL for link behavior. When provided, the entire row becomes clickable. Clicks on `actions` or `avatar` slots are prevented from triggering navigation.
|
|
1200
|
+
*/
|
|
1201
|
+
"href"?: string;
|
|
1202
|
+
/**
|
|
1203
|
+
* Optional item data for prop-based rendering. When provided, this takes precedence over slotted content and renders using the legacy ListItem interface. **Deprecated.** Prefer slot-based composition (named slots on `xpl-list-item`).
|
|
1204
|
+
*/
|
|
1205
|
+
"item"?: ListItem;
|
|
1206
|
+
/**
|
|
1207
|
+
* Unique identifier for this item. Used for selection and drag/drop. Mutable so the host can sync from `item-id` / `id` in `componentWillLoad` without breaking one-way data flow.
|
|
1208
|
+
*/
|
|
1209
|
+
"itemId"?: string;
|
|
1210
|
+
/**
|
|
1211
|
+
* When set by the parent, indicates this item is the active keyboard reorder item.
|
|
1212
|
+
* @default false
|
|
1213
|
+
*/
|
|
1214
|
+
"keyboardActive"?: boolean;
|
|
1215
|
+
/**
|
|
1216
|
+
* Name attribute for radio inputs (shared across selectable items in a list).
|
|
1217
|
+
*/
|
|
1218
|
+
"radioName"?: string;
|
|
1219
|
+
/**
|
|
1220
|
+
* Whether this item is reorderable (shows a drag handle in **slot-based** layout). When the deprecated `item` prop is used, legacy markup has **no** reorder handle even if this is true.
|
|
1221
|
+
* @default false
|
|
1222
|
+
*/
|
|
1223
|
+
"reorderable"?: boolean;
|
|
1224
|
+
/**
|
|
1225
|
+
* Whether this item is selectable (shows `xpl-radio` in a shared group).
|
|
1226
|
+
* @default false
|
|
1227
|
+
*/
|
|
1228
|
+
"selectable"?: boolean;
|
|
1229
|
+
/**
|
|
1230
|
+
* Whether this item is selected (radio checked state).
|
|
1231
|
+
* @default false
|
|
1232
|
+
*/
|
|
1233
|
+
"selected"?: boolean;
|
|
1234
|
+
/**
|
|
1235
|
+
* Whether to show a divider below the item.
|
|
1236
|
+
* @default false
|
|
1237
|
+
*/
|
|
1238
|
+
"showDivider"?: boolean;
|
|
1239
|
+
/**
|
|
1240
|
+
* Optional badge to display next to the title (dot badge). Only used when `item` prop is not provided (slot mode). Matches `xpl-badge` variant values (e.g. purple, green, red).
|
|
1241
|
+
*/
|
|
1242
|
+
"titleBadgeVariant"?: BadgeVariantProp1;
|
|
868
1243
|
}
|
|
869
1244
|
interface XplMainNav {
|
|
870
1245
|
/**
|
|
@@ -890,6 +1265,34 @@ export namespace Components {
|
|
|
890
1265
|
*/
|
|
891
1266
|
"variant": 'default' | 'warning';
|
|
892
1267
|
}
|
|
1268
|
+
/**
|
|
1269
|
+
* Profile / account block (username, email, default slot for **`xpl-top-nav-item`** / **`xpl-divider`**).
|
|
1270
|
+
* Tag **`xpl-nav-header-menu`**; implementation folder **`xpl-nav-header-menu`**. **`.xpl-nav-header-menu__slot`** is
|
|
1271
|
+
* **`role="list"`** for slotted **`xpl-top-nav-item`** (**`role="listitem"`**).
|
|
1272
|
+
* **Slotted content:** do not add **`xpl-nav-header-menu__*`** BEM classes on nodes you pass into the default slot —
|
|
1273
|
+
* profile, list shell, and **`xpl-top-nav-item`** **`role="listitem"`** are handled by the component. Use
|
|
1274
|
+
* **`xpl-top-nav-item`** (or plain elements that are not Apollo **`xpl-*`** BEM hooks) in the slot only.
|
|
1275
|
+
* **`slot="right-aside-mobile"`** — optional block **between** the profile header and the default-slot list (e.g. narrow-only
|
|
1276
|
+
* duplicate of **every** **`slot="right-aside"`** control per Figma when **`xpl-top-nav`** hides **`right-aside`** on narrow viewports (always)).
|
|
1277
|
+
* Not **`role="list"`**; use **`xpl-button`** / **`xpl-top-nav-item`** as needed. Shown only on **narrow viewports** (one pixel below Tailwind **`md`** — **`top-nav.css`**) so bar actions stay in **`slot="right-aside"`** on wider viewports.
|
|
1278
|
+
* Light-DOM **`slotchange`** is unreliable; a host **`MutationObserver`** (child / subtree / **`slot`** attribute) keeps
|
|
1279
|
+
* **`xpl-nav-header-menu--has-right-aside-mobile`** in sync when nodes are added or retargeted after mount (same pattern as **`xpl-top-nav`**).
|
|
1280
|
+
* Stencil **`newSpecPage`** / mock-doc does not define **`MutationObserver`**; slot presence still updates on the next
|
|
1281
|
+
* deferred flush (**`setTimeout(0)`** coalesced with **`componentDidRender`**). In real browsers the observer handles child /
|
|
1282
|
+
* **`slot`** mutations without stacking uncancellable microtasks.
|
|
1283
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
1284
|
+
* values even when the page root is light (same contract as **`xpl-top-nav`** / **`xpl-top-nav-item`**).
|
|
1285
|
+
*/
|
|
1286
|
+
interface XplNavHeaderMenu {
|
|
1287
|
+
/**
|
|
1288
|
+
* Email address shown below the username.
|
|
1289
|
+
*/
|
|
1290
|
+
"email"?: string;
|
|
1291
|
+
/**
|
|
1292
|
+
* Display name shown in the profile block.
|
|
1293
|
+
*/
|
|
1294
|
+
"username"?: string;
|
|
1295
|
+
}
|
|
893
1296
|
interface XplNavItem {
|
|
894
1297
|
/**
|
|
895
1298
|
* @property {boolean} - Whether or not the item should control the main nav state on click
|
|
@@ -924,6 +1327,22 @@ export namespace Components {
|
|
|
924
1327
|
*/
|
|
925
1328
|
"withPageControl": boolean;
|
|
926
1329
|
}
|
|
1330
|
+
/**
|
|
1331
|
+
* A stateless container that defines a section on a page and can house any
|
|
1332
|
+
* type of content. Panels are not dismissible and may contain a top accent.
|
|
1333
|
+
*/
|
|
1334
|
+
interface XplPanel {
|
|
1335
|
+
/**
|
|
1336
|
+
* Color accent bar displayed at the top of the panel. - `none` – no accent (default) - `primary` – brand primary color - `secondary` – brand secondary color - `positive` – positive / success color - `negative` – negative / error color - `highlight` – highlight / warning color
|
|
1337
|
+
* @default 'none'
|
|
1338
|
+
*/
|
|
1339
|
+
"accent": 'none' | 'primary' | 'secondary' | 'positive' | 'negative' | 'highlight';
|
|
1340
|
+
/**
|
|
1341
|
+
* Padding density applied to the content area. (default and tight keep desktop padding through tablet; mobile ≤480px). - `default` – 24 px desktop & tablet / 16 px mobile - `tight` – 16 px desktop & tablet / 8 px mobile - `loose` – 40 px desktop / 32 px tablet / 24 px mobile
|
|
1342
|
+
* @default 'default'
|
|
1343
|
+
*/
|
|
1344
|
+
"padding": 'default' | 'tight' | 'loose';
|
|
1345
|
+
}
|
|
927
1346
|
interface XplPopover {
|
|
928
1347
|
/**
|
|
929
1348
|
* Whether the popover is disabled or not.
|
|
@@ -946,36 +1365,81 @@ export namespace Components {
|
|
|
946
1365
|
*/
|
|
947
1366
|
"position": PopoverPosition;
|
|
948
1367
|
}
|
|
949
|
-
interface
|
|
1368
|
+
interface XplProgressBar {
|
|
950
1369
|
/**
|
|
951
|
-
*
|
|
952
|
-
* @default 0
|
|
1370
|
+
* The helper text displayed below the progress bar (recommended for error state)
|
|
953
1371
|
*/
|
|
954
|
-
"
|
|
1372
|
+
"helperText"?: string;
|
|
955
1373
|
/**
|
|
956
|
-
* The
|
|
1374
|
+
* The label text displayed above the progress bar
|
|
957
1375
|
*/
|
|
958
|
-
"
|
|
959
|
-
}
|
|
960
|
-
interface XplRadio {
|
|
1376
|
+
"label"?: string;
|
|
961
1377
|
/**
|
|
962
|
-
*
|
|
1378
|
+
* The maximum value of the progress (mirrors native <progress> max attribute)
|
|
1379
|
+
* @default 100
|
|
963
1380
|
*/
|
|
964
|
-
"
|
|
1381
|
+
"max": number;
|
|
965
1382
|
/**
|
|
966
|
-
*
|
|
1383
|
+
* The size of the progress bar height: sm = 4px, lg = 6px
|
|
1384
|
+
* @default 'lg'
|
|
967
1385
|
*/
|
|
968
|
-
"
|
|
1386
|
+
"size": 'sm' | 'lg';
|
|
969
1387
|
/**
|
|
970
|
-
*
|
|
1388
|
+
* The current value of the progress (mirrors native <progress> value attribute)
|
|
1389
|
+
* @default 0
|
|
971
1390
|
*/
|
|
972
|
-
"
|
|
1391
|
+
"value": number;
|
|
973
1392
|
/**
|
|
974
|
-
* The
|
|
1393
|
+
* The visual variant of the progress bar
|
|
1394
|
+
* @default 'default'
|
|
975
1395
|
*/
|
|
976
|
-
"
|
|
1396
|
+
"variant": 'default' | 'success' | 'error' | 'indeterminate';
|
|
1397
|
+
}
|
|
1398
|
+
interface XplProgressIndicator {
|
|
977
1399
|
/**
|
|
978
|
-
*
|
|
1400
|
+
* Current step index. Steps with index < currentStep are "finished", the step at currentStep is "active", and steps beyond are "waiting". Set to steps.length to mark all steps as finished. Automatically clamped to [0, steps.length].
|
|
1401
|
+
* @default 0
|
|
1402
|
+
*/
|
|
1403
|
+
"currentStep": number;
|
|
1404
|
+
/**
|
|
1405
|
+
* Layout direction - 'horizontal' or 'vertical'
|
|
1406
|
+
* @default 'horizontal'
|
|
1407
|
+
*/
|
|
1408
|
+
"layout": 'horizontal' | 'vertical';
|
|
1409
|
+
/**
|
|
1410
|
+
* Whether to show step labels
|
|
1411
|
+
* @default true
|
|
1412
|
+
*/
|
|
1413
|
+
"showLabels": boolean;
|
|
1414
|
+
/**
|
|
1415
|
+
* Whether to show step numbers inside circles
|
|
1416
|
+
* @default true
|
|
1417
|
+
*/
|
|
1418
|
+
"showNumbers": boolean;
|
|
1419
|
+
/**
|
|
1420
|
+
* The steps is an array of the steps name.
|
|
1421
|
+
*/
|
|
1422
|
+
"steps"?: string[];
|
|
1423
|
+
}
|
|
1424
|
+
interface XplRadio {
|
|
1425
|
+
/**
|
|
1426
|
+
* Whether the input is "on"
|
|
1427
|
+
*/
|
|
1428
|
+
"checked"?: boolean;
|
|
1429
|
+
/**
|
|
1430
|
+
* Description text for the field
|
|
1431
|
+
*/
|
|
1432
|
+
"description"?: string;
|
|
1433
|
+
/**
|
|
1434
|
+
* Whether the input is disabled
|
|
1435
|
+
*/
|
|
1436
|
+
"disabled"?: boolean;
|
|
1437
|
+
/**
|
|
1438
|
+
* The name attribute for the html input. (submittted in form as name/value pair)
|
|
1439
|
+
*/
|
|
1440
|
+
"name"?: string;
|
|
1441
|
+
/**
|
|
1442
|
+
* Whether the input is required
|
|
979
1443
|
*/
|
|
980
1444
|
"required"?: boolean;
|
|
981
1445
|
/**
|
|
@@ -1051,6 +1515,52 @@ export namespace Components {
|
|
|
1051
1515
|
*/
|
|
1052
1516
|
"truncate"?: boolean;
|
|
1053
1517
|
}
|
|
1518
|
+
interface XplSideNav {
|
|
1519
|
+
/**
|
|
1520
|
+
* Accessible label for the navigation landmark. Maps to `aria-label` on the `<nav>` element. Recommended when multiple navigation landmarks exist on a page (e.g., side nav + top nav + breadcrumbs) to help screen readers distinguish them.
|
|
1521
|
+
*/
|
|
1522
|
+
"label"?: string;
|
|
1523
|
+
}
|
|
1524
|
+
interface XplSideNavItem {
|
|
1525
|
+
/**
|
|
1526
|
+
* Whether the component is disabled
|
|
1527
|
+
* @default false
|
|
1528
|
+
*/
|
|
1529
|
+
"disabled": boolean;
|
|
1530
|
+
/**
|
|
1531
|
+
* Whether the item is currently expanded (only applies when hasChildren is true)
|
|
1532
|
+
* @default false
|
|
1533
|
+
*/
|
|
1534
|
+
"expanded": boolean;
|
|
1535
|
+
/**
|
|
1536
|
+
* Whether the item has child items; when true, shows expand/collapse and a default slot for nested items. Mutually exclusive with <code>link</code>. If <code>link</code> is already true, setting <code>has-children</code> is reverted (<code>@Watch('hasChildren')</code>, <code>@Watch('link')</code>, <code>componentWillLoad</code>, and <code>componentWillRender</code>) so reflected attributes match CSS.
|
|
1537
|
+
* @default false
|
|
1538
|
+
*/
|
|
1539
|
+
"hasChildren": boolean;
|
|
1540
|
+
/**
|
|
1541
|
+
* Whether the component is hidden
|
|
1542
|
+
* @default false
|
|
1543
|
+
*/
|
|
1544
|
+
"hidden": boolean;
|
|
1545
|
+
/**
|
|
1546
|
+
* Optional icon name; default content for <code>slot="icon"</code> (leaf and footer rows only). Expandable parents (<code>has-children</code>) do not show an icon column — only the chevron and label. Omit for nested children under a <code>has-children</code> parent — the icon column is hidden for sub-items.
|
|
1547
|
+
*/
|
|
1548
|
+
"icon"?: string;
|
|
1549
|
+
/**
|
|
1550
|
+
* The display label for the navigation item (button / expandable rows; omit in <code>link</code> mode).
|
|
1551
|
+
*/
|
|
1552
|
+
"label"?: string;
|
|
1553
|
+
/**
|
|
1554
|
+
* When true, the row becomes a slot-only container for consumer-provided links. The consumer provides the full anchor element (or router link) via the default slot. In link mode, <code>label</code> and <code>icon</code> props should not be used. Link mode does not support <code>has-children</code>; use the default button mode for expandable items. When <code>link</code> is true, <code>hasChildren</code> is always false (enforced by <code>@Watch('link')</code>, <code>@Watch('hasChildren')</code>, <code>componentWillLoad</code>, and <code>componentWillRender</code>).
|
|
1555
|
+
* @default false
|
|
1556
|
+
*/
|
|
1557
|
+
"link": boolean;
|
|
1558
|
+
/**
|
|
1559
|
+
* Whether the item is currently in a selected state
|
|
1560
|
+
* @default false
|
|
1561
|
+
*/
|
|
1562
|
+
"selected": boolean;
|
|
1563
|
+
}
|
|
1054
1564
|
interface XplSkeleton {
|
|
1055
1565
|
/**
|
|
1056
1566
|
* A CSS class name to apply to the component.
|
|
@@ -1112,16 +1622,126 @@ export namespace Components {
|
|
|
1112
1622
|
*/
|
|
1113
1623
|
"variant": 'default' | 'warning';
|
|
1114
1624
|
}
|
|
1625
|
+
interface XplSpotlight {
|
|
1626
|
+
/**
|
|
1627
|
+
* Footer action layout. `default` and `dual` both render the standard Back/Next layout, while `single` renders a single acknowledgement CTA (e.g. "Got it!"). Only applies when `showActions` is `true`.
|
|
1628
|
+
* @default 'default'
|
|
1629
|
+
*/
|
|
1630
|
+
"actionLayout": SpotlightActionLayout;
|
|
1631
|
+
/**
|
|
1632
|
+
* Which corner of the card the anchor dot uses when not using `target`, or as the preferred side for Floating UI.
|
|
1633
|
+
* @default 'top-left'
|
|
1634
|
+
*/
|
|
1635
|
+
"anchorPosition": SpotlightAnchorPosition;
|
|
1636
|
+
/**
|
|
1637
|
+
* Body copy when the `body` slot has no slotted content. Whitespace-only values are treated as empty (no fallback paragraph).
|
|
1638
|
+
*/
|
|
1639
|
+
"body"?: string;
|
|
1640
|
+
/**
|
|
1641
|
+
* Current step index (1-based). Used with `totalSteps` for the step label and for disabling default Back/Next when `showSteps` is true.
|
|
1642
|
+
* @default 1
|
|
1643
|
+
*/
|
|
1644
|
+
"currentStep": number;
|
|
1645
|
+
/**
|
|
1646
|
+
* Heading when the `title` slot has no slotted content. Whitespace-only values are treated as empty (no fallback title span).
|
|
1647
|
+
*/
|
|
1648
|
+
"heading"?: string;
|
|
1649
|
+
/**
|
|
1650
|
+
* Whether to show the dismiss (close) control.
|
|
1651
|
+
* @default true
|
|
1652
|
+
*/
|
|
1653
|
+
"isDismissible": boolean;
|
|
1654
|
+
/**
|
|
1655
|
+
* Controls whether the spotlight is rendered. When false, the host remains in the DOM but the spotlight UI is hidden.
|
|
1656
|
+
* @default true
|
|
1657
|
+
*/
|
|
1658
|
+
"isOpen": boolean;
|
|
1659
|
+
/**
|
|
1660
|
+
* Label used for the default primary action button. Only applies when `showActions` is `true`.
|
|
1661
|
+
* @default 'Next'
|
|
1662
|
+
*/
|
|
1663
|
+
"primaryActionLabel": string;
|
|
1664
|
+
/**
|
|
1665
|
+
* Label used for the default secondary action button. Only applies when `showActions` is `true`.
|
|
1666
|
+
* @default 'Back'
|
|
1667
|
+
*/
|
|
1668
|
+
"secondaryActionLabel": string;
|
|
1669
|
+
/**
|
|
1670
|
+
* Whether to show the actions row (primary / secondary and optional step counter). When `false`, the spotlight has no action buttons — useful for single-step informational callouts that rely solely on the dismiss control.
|
|
1671
|
+
* @default true
|
|
1672
|
+
*/
|
|
1673
|
+
"showActions": boolean;
|
|
1674
|
+
/**
|
|
1675
|
+
* When true, the media region is shown. Slotted `image` content is rendered when present; otherwise the built-in placeholder UI is shown. When false, the entire media block is hidden.
|
|
1676
|
+
* @default true
|
|
1677
|
+
*/
|
|
1678
|
+
"showImage": boolean;
|
|
1679
|
+
/**
|
|
1680
|
+
* Whether to show the step counter between actions (`currentStep` of `totalSteps`) and whether default Back/Next use step-based disabled state.
|
|
1681
|
+
* @default true
|
|
1682
|
+
*/
|
|
1683
|
+
"showSteps": boolean;
|
|
1684
|
+
/**
|
|
1685
|
+
* CSS selector for the element this spotlight anchors to. When set, placement uses Floating UI (`computePosition` with `strategy: 'fixed'`, plus `flip`, `shift`, `offset`) and `autoUpdate` for scroll/resize. The host receives `left` / `top` and the `xpl-spotlight--anchored` class. Invalid selectors are ignored; layout falls back to `anchor-position`.
|
|
1686
|
+
*/
|
|
1687
|
+
"target"?: string;
|
|
1688
|
+
/**
|
|
1689
|
+
* Total number of steps (1-based upper bound). Used with `currentStep` for the step label and for disabling default Back/Next when `showSteps` is true.
|
|
1690
|
+
* @default 1
|
|
1691
|
+
*/
|
|
1692
|
+
"totalSteps": number;
|
|
1693
|
+
}
|
|
1115
1694
|
interface XplTab {
|
|
1695
|
+
/**
|
|
1696
|
+
* Disables this tab (pill or underline).
|
|
1697
|
+
* @default false
|
|
1698
|
+
*/
|
|
1699
|
+
"disabled": boolean;
|
|
1700
|
+
/**
|
|
1701
|
+
* Focuses the tab's trigger button.
|
|
1702
|
+
*/
|
|
1703
|
+
"focusTrigger": () => Promise<void>;
|
|
1704
|
+
/**
|
|
1705
|
+
* Whether the tab should take full width (set by parent `xpl-tabs` when fullWidth is true).
|
|
1706
|
+
* @default false
|
|
1707
|
+
*/
|
|
1708
|
+
"fullWidth": boolean;
|
|
1709
|
+
/**
|
|
1710
|
+
* Returns the focusable button element for this tab (underline `<button>` or segment `xpl-button` inner button).
|
|
1711
|
+
*/
|
|
1712
|
+
"getFocusableElement": () => Promise<HTMLButtonElement | null>;
|
|
1713
|
+
/**
|
|
1714
|
+
* Set when the parent `xpl-tabs` has `disabled` (group-disabled).
|
|
1715
|
+
* @default false
|
|
1716
|
+
*/
|
|
1717
|
+
"groupDisabled": boolean;
|
|
1718
|
+
/**
|
|
1719
|
+
* Optional icon name for segment-style pills (`type="segment"` on parent `xpl-tabs`). Ignored for default tabs.
|
|
1720
|
+
*/
|
|
1721
|
+
"icon"?: string;
|
|
1722
|
+
/**
|
|
1723
|
+
* Icon position for segment-style pills.
|
|
1724
|
+
* @default 'start'
|
|
1725
|
+
*/
|
|
1726
|
+
"iconPosition": 'start' | 'end';
|
|
1116
1727
|
/**
|
|
1117
1728
|
* Whether the tab is selected
|
|
1118
1729
|
* @default false
|
|
1119
1730
|
*/
|
|
1120
1731
|
"selected": boolean;
|
|
1732
|
+
/**
|
|
1733
|
+
* Sets the tabindex on the focusable button element.
|
|
1734
|
+
*/
|
|
1735
|
+
"setTabIndex": (value: number) => Promise<void>;
|
|
1121
1736
|
/**
|
|
1122
1737
|
* The target of the tab, required for the tab to be selected
|
|
1123
1738
|
*/
|
|
1124
1739
|
"target": string;
|
|
1740
|
+
/**
|
|
1741
|
+
* Visual variant: 'tabs' for underline tabs, 'segment' for pill controls. Set by the parent `xpl-tabs` component based on its `type` prop.
|
|
1742
|
+
* @default 'tabs'
|
|
1743
|
+
*/
|
|
1744
|
+
"variant": 'tabs' | 'segment';
|
|
1125
1745
|
}
|
|
1126
1746
|
interface XplTabPanel {
|
|
1127
1747
|
/**
|
|
@@ -1134,39 +1754,62 @@ export namespace Components {
|
|
|
1134
1754
|
*/
|
|
1135
1755
|
"target": string;
|
|
1136
1756
|
}
|
|
1757
|
+
/**
|
|
1758
|
+
* Compositional tables use CSS grid on the host (`role="grid"`). Legacy mode uses a `<table>`.
|
|
1759
|
+
*/
|
|
1137
1760
|
interface XplTable {
|
|
1138
1761
|
/**
|
|
1139
|
-
* The header values for each column.
|
|
1762
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The header values for each column.
|
|
1140
1763
|
*/
|
|
1141
1764
|
"columns"?: string[];
|
|
1142
1765
|
/**
|
|
1143
|
-
* The data for the body of the table.
|
|
1766
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The data for the body of the table.
|
|
1144
1767
|
*/
|
|
1145
1768
|
"data"?: string[][];
|
|
1146
1769
|
/**
|
|
1147
|
-
* The data for the footer of the table.
|
|
1770
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The data for the footer of the table.
|
|
1148
1771
|
*/
|
|
1149
1772
|
"footer"?: string[][];
|
|
1150
1773
|
/**
|
|
1151
|
-
* When true, the first column
|
|
1774
|
+
* When true, the first **data** column (per row) is sticky during horizontal scroll. Leading compositional columns are skipped: `selectable` (checkbox) and/or `row-reorderable` (grip) are not frozen so they scroll with the grid; the next column stays pinned at `left: 0`.
|
|
1152
1775
|
*/
|
|
1153
1776
|
"freeze"?: boolean;
|
|
1154
1777
|
/**
|
|
1155
|
-
* Toggles to show the sort button on each table head
|
|
1778
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. Toggles to show the sort button on each table head.
|
|
1156
1779
|
* @default false
|
|
1157
1780
|
*/
|
|
1158
1781
|
"isSortable"?: boolean;
|
|
1159
1782
|
/**
|
|
1160
|
-
*
|
|
1783
|
+
* Accessible label for the table. Maps to `aria-label` in compositional mode.
|
|
1784
|
+
*/
|
|
1785
|
+
"label"?: string;
|
|
1786
|
+
/**
|
|
1787
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. Toggles a selectable checkbox for each row in the table.
|
|
1161
1788
|
*/
|
|
1162
1789
|
"multiselect"?: boolean;
|
|
1163
1790
|
/**
|
|
1164
|
-
*
|
|
1791
|
+
* Icon name for the optional `xpl-icon` inside each **managed** reorder grip when the row is **not** in keyboard reorder mode (pointer / idle). Set to `""` to omit the icon so you can style the button or author a fully custom reorder column in markup. When omitted, defaults to `grip-dots-vertical`.
|
|
1792
|
+
*/
|
|
1793
|
+
"reorderHandleIcon"?: string;
|
|
1794
|
+
/**
|
|
1795
|
+
* Icon name for the managed reorder grip **while that row is in keyboard reorder mode** (after the user activates the grip with Enter or Space). Use a different icon than `reorder-handle-icon` so users can see they should use arrow keys. When omitted, defaults to `caret-expand-y` (same as `xpl-list` keyboard reorder). Set to `""` to show no icon in keyboard mode only (combine with CSS on `.xpl-table__row-drag-handle--keyboard-mode` if needed).
|
|
1796
|
+
*/
|
|
1797
|
+
"reorderHandleIconKeyboard"?: string;
|
|
1798
|
+
/**
|
|
1799
|
+
* When true (compositional mode only), **prepends** a managed reorder column as the **first** grid column (empty header + grip button per body row) and enables HTML5 drag-and-drop row reordering (same interaction model as `xpl-list`). With `selectable`, DOM order is **reorder | selection | data** unless you author a custom reorder column. The table updates the DOM and emits `rowOrderChange`; consumers should persist order if needed. Ignored in legacy `columns`/`data` mode.
|
|
1800
|
+
*/
|
|
1801
|
+
"rowReorderable"?: boolean;
|
|
1802
|
+
/**
|
|
1803
|
+
* When true (compositional mode only), enables row selection state, the selection toolbar (“N Selected”), and `rowSelectionChange`. **You must add the selection column in your markup:** a header cell with `type="checkbox"`, a body cell containing `xpl-checkbox` per row (aligned with that column), and matching `xpl-table-footer-cell` cells when you use a footer. Each body row should use `row-id` on `xpl-table-row` (or accept auto-generated ids) so `rowSelectionChange` can report `selectedRowIds`. The toolbar uses the same layout as `xpl-toolbar` and is visible only while at least one row is selected. Use `toolbar-actions-left` / `toolbar-actions-right` slots on this host for bulk actions.
|
|
1804
|
+
*/
|
|
1805
|
+
"selectable"?: boolean;
|
|
1806
|
+
/**
|
|
1807
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. The values for the input for each row when multiselect is activated.
|
|
1165
1808
|
* @default []
|
|
1166
1809
|
*/
|
|
1167
1810
|
"selectedValues"?: string[];
|
|
1168
1811
|
/**
|
|
1169
|
-
* Manually determined if the column is sortable
|
|
1812
|
+
* @deprecated Use the compositional slot-based API instead. Will be removed in a future major release. Manually determined if the column is sortable.
|
|
1170
1813
|
* @default []
|
|
1171
1814
|
*/
|
|
1172
1815
|
"sortableColumns"?: boolean[];
|
|
@@ -1175,45 +1818,159 @@ export namespace Components {
|
|
|
1175
1818
|
*/
|
|
1176
1819
|
"striped"?: boolean;
|
|
1177
1820
|
}
|
|
1821
|
+
interface XplTableBody {
|
|
1822
|
+
}
|
|
1823
|
+
interface XplTableCell {
|
|
1824
|
+
/**
|
|
1825
|
+
* Horizontal text alignment within the cell.
|
|
1826
|
+
* @default 'left'
|
|
1827
|
+
*/
|
|
1828
|
+
"align": 'left' | 'right' | 'center';
|
|
1829
|
+
/**
|
|
1830
|
+
* Renders cell text in bold (--xpl-font-weight-semibold).
|
|
1831
|
+
* @default false
|
|
1832
|
+
*/
|
|
1833
|
+
"bold": boolean;
|
|
1834
|
+
/**
|
|
1835
|
+
* Whether the cell and its interactive children are disabled. Set automatically by xpl-table-row.
|
|
1836
|
+
* @default false
|
|
1837
|
+
*/
|
|
1838
|
+
"disabled": boolean;
|
|
1839
|
+
/**
|
|
1840
|
+
* Adds an underline to cell text.
|
|
1841
|
+
* @default false
|
|
1842
|
+
*/
|
|
1843
|
+
"underline": boolean;
|
|
1844
|
+
}
|
|
1845
|
+
interface XplTableFooter {
|
|
1846
|
+
}
|
|
1847
|
+
interface XplTableFooterCell {
|
|
1848
|
+
/**
|
|
1849
|
+
* Horizontal text alignment within the cell.
|
|
1850
|
+
* @default 'left'
|
|
1851
|
+
*/
|
|
1852
|
+
"align": 'left' | 'right' | 'center';
|
|
1853
|
+
}
|
|
1178
1854
|
interface XplTableHeader {
|
|
1179
1855
|
}
|
|
1180
1856
|
interface XplTableHeaderCell {
|
|
1857
|
+
/**
|
|
1858
|
+
* Horizontal text alignment within the header cell.
|
|
1859
|
+
* @default 'left'
|
|
1860
|
+
*/
|
|
1861
|
+
"align": 'left' | 'right' | 'center';
|
|
1862
|
+
/**
|
|
1863
|
+
* Accessible name for the header checkbox (native `aria-label`). Defaults to “Select all rows” when `type` is `checkbox`.
|
|
1864
|
+
*/
|
|
1865
|
+
"checkboxAriaLabel"?: string;
|
|
1866
|
+
/**
|
|
1867
|
+
* Whether the header checkbox is checked
|
|
1868
|
+
* @default false
|
|
1869
|
+
*/
|
|
1870
|
+
"checked": boolean;
|
|
1871
|
+
/**
|
|
1872
|
+
* CSS grid track size for this column (e.g. `1fr`, `minmax(120px, 1fr)`, `auto`). When set, overrides `width`. Use this when you need flexible columns; default layout uses `auto` per column unless you set a track here.
|
|
1873
|
+
*/
|
|
1874
|
+
"columnWidth"?: string;
|
|
1181
1875
|
/**
|
|
1182
1876
|
* Icon to display in the cell. See [xpl-icon available icons](../xpl-icon/ICONS.md) for valid icon names.
|
|
1183
1877
|
*/
|
|
1184
1878
|
"icon"?: string;
|
|
1185
1879
|
/**
|
|
1186
|
-
*
|
|
1880
|
+
* Whether the checkbox is in indeterminate (partially selected) state
|
|
1881
|
+
* @default false
|
|
1882
|
+
*/
|
|
1883
|
+
"indeterminate": boolean;
|
|
1884
|
+
/**
|
|
1885
|
+
* Text to display in the cell.
|
|
1187
1886
|
* @default ''
|
|
1188
1887
|
*/
|
|
1189
1888
|
"label"?: string;
|
|
1190
1889
|
/**
|
|
1191
|
-
*
|
|
1890
|
+
* Active sort direction for this column when `sortable`. Set by `xpl-table` when used inside a compositional table; may be set by the app for controlled updates.
|
|
1891
|
+
*/
|
|
1892
|
+
"sortDirection"?: 'asc' | 'desc' | null;
|
|
1893
|
+
/**
|
|
1894
|
+
* When `sortable` is true, optional stable id used as the key in `sortChanged`’s detail object. Falls back to a slug of `label` when omitted.
|
|
1895
|
+
*/
|
|
1896
|
+
"sortKey"?: string;
|
|
1897
|
+
/**
|
|
1898
|
+
* When true (and `type` is `label`), renders a sort control (button + affordance icon).
|
|
1192
1899
|
* @default false
|
|
1193
1900
|
*/
|
|
1194
|
-
"sortable"
|
|
1901
|
+
"sortable": boolean;
|
|
1195
1902
|
/**
|
|
1196
|
-
*
|
|
1903
|
+
* The type of cell to render.
|
|
1197
1904
|
* @default 'label'
|
|
1198
1905
|
*/
|
|
1199
|
-
"type": 'label' | 'checkbox' | 'icon';
|
|
1906
|
+
"type": 'label' | 'checkbox' | 'icon' | 'empty';
|
|
1200
1907
|
/**
|
|
1201
|
-
*
|
|
1908
|
+
* Fixed width for this column in pixels (minimum 48px). Sets the grid track to `Npx`. Ignored when `columnWidth` is set. When omitted, the column track defaults to `auto` (content-sized).
|
|
1202
1909
|
*/
|
|
1203
1910
|
"width"?: number;
|
|
1204
1911
|
}
|
|
1912
|
+
interface XplTableRow {
|
|
1913
|
+
/**
|
|
1914
|
+
* Whether the row and its cells are disabled.
|
|
1915
|
+
* @default false
|
|
1916
|
+
*/
|
|
1917
|
+
"disabled": boolean;
|
|
1918
|
+
/**
|
|
1919
|
+
* Stable identifier for this row when used with a selectable compositional `xpl-table`. If omitted, the parent table assigns a unique id.
|
|
1920
|
+
*/
|
|
1921
|
+
"rowId"?: string;
|
|
1922
|
+
/**
|
|
1923
|
+
* Whether the row is visually selected.
|
|
1924
|
+
* @default false
|
|
1925
|
+
*/
|
|
1926
|
+
"selected": boolean;
|
|
1927
|
+
}
|
|
1205
1928
|
interface XplTabs {
|
|
1929
|
+
/**
|
|
1930
|
+
* Disables the whole tab group (headings, mobile select, and segment pills).
|
|
1931
|
+
* @default false
|
|
1932
|
+
*/
|
|
1933
|
+
"disabled": boolean;
|
|
1206
1934
|
/**
|
|
1207
1935
|
* Whether to make the tabs full width
|
|
1208
1936
|
* @default false
|
|
1209
1937
|
*/
|
|
1210
1938
|
"fullWidth": boolean;
|
|
1939
|
+
/**
|
|
1940
|
+
* Visual and layout variant: classic underline tabs or segment (pill) controls.
|
|
1941
|
+
* @default 'tabs'
|
|
1942
|
+
*/
|
|
1943
|
+
"type": 'tabs' | 'segment';
|
|
1211
1944
|
/**
|
|
1212
1945
|
* The selected tab target value, defaults to the first tab
|
|
1213
1946
|
*/
|
|
1214
1947
|
"value": string;
|
|
1215
1948
|
}
|
|
1216
1949
|
interface XplTag {
|
|
1950
|
+
/**
|
|
1951
|
+
* Whether the tag is disabled
|
|
1952
|
+
* @default false
|
|
1953
|
+
*/
|
|
1954
|
+
"disabled": boolean;
|
|
1955
|
+
/**
|
|
1956
|
+
* Whether the tag shows a dismiss button
|
|
1957
|
+
* @default true
|
|
1958
|
+
*/
|
|
1959
|
+
"dismissible": boolean;
|
|
1960
|
+
/**
|
|
1961
|
+
* When true, the tag label uses native HTML5 drag (the inner label is the drag source). Named `isDraggable` so the Stencil prop does not collide with the native `HTMLElement.draggable` API. `reflect: false` avoids syncing a `draggable` attribute onto the host; the inner label remains the drag source. Host `onDragStart` still suppresses stray native drags from host chrome.
|
|
1962
|
+
* @default false
|
|
1963
|
+
*/
|
|
1964
|
+
"isDraggable": boolean;
|
|
1965
|
+
/**
|
|
1966
|
+
* The size of the tag
|
|
1967
|
+
* @default 'default'
|
|
1968
|
+
*/
|
|
1969
|
+
"size": 'default' | 'sm';
|
|
1970
|
+
/**
|
|
1971
|
+
* Optional stable id for the tag. When set, it is included in `tagDragStart` / `tagDragEnd` detail and written to `dataTransfer` as `application/x-tag-id`.
|
|
1972
|
+
*/
|
|
1973
|
+
"tagId"?: string;
|
|
1217
1974
|
}
|
|
1218
1975
|
interface XplToast {
|
|
1219
1976
|
/**
|
|
@@ -1302,6 +2059,99 @@ export namespace Components {
|
|
|
1302
2059
|
*/
|
|
1303
2060
|
"text": string;
|
|
1304
2061
|
}
|
|
2062
|
+
/**
|
|
2063
|
+
* Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-aside`** then **user menu**
|
|
2064
|
+
* (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
|
|
2065
|
+
* 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.
|
|
2066
|
+
* **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).
|
|
2067
|
+
* **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
|
|
2068
|
+
* on **`ownerDocument`** so nested dropdowns close before the drawer.
|
|
2069
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
|
|
2070
|
+
* resolve to dark-mode values even when the page root is light. Floating overlays (e.g. **`xpl-popover`** / **`xpl-dropdown`**
|
|
2071
|
+
* content teleported outside the host) do not inherit this scope — add **`dark`** on those panels if they should match.
|
|
2072
|
+
* **Layout:** **`right-aside`** and the user-menu region are wrapped internally (**`.xpl-top-nav__right-lead`**, etc.).
|
|
2073
|
+
* Consumers should not add those BEM classes — slot content only.
|
|
2074
|
+
* **Brand logo:** use **`brand-logo`** (URL) for a built-in **`<img>`**, or **`slot="brand-logo"`** for custom markup (e.g. **`xpl-icon`**, SVG). When the URL prop is set, it takes precedence and the slot is not used for the image. On **narrow viewports** (one pixel below Tailwind **`md`** — see **`top-nav.css`**), **`brand-name`** text is hidden in the bar (logo / slot mark only); keep a meaningful **`alt`** on **`brand-logo`** or accessible slotted mark for context.
|
|
2075
|
+
* **Narrow / mobile** (same breakpoint as above): **`slot="left-aside"`** is **hidden** in the bar until **`nav-control`**
|
|
2076
|
+
* is set **and** the drawer is open (floating panel per Figma). **Without **`nav-control`**, there is no mobile drawer** —
|
|
2077
|
+
* primary links remain hidden below **`md`** until the viewport is wide enough for the horizontal bar. The built-in **brand**
|
|
2078
|
+
* stays in the top bar (**hamburger → brand** when **`nav-control`** is set). **`right-aside`** is hidden in the bar on narrow
|
|
2079
|
+
* viewports (**`top-nav.css`**, one pixel below Tailwind **`md`**); duplicate those actions into **`xpl-nav-header-menu`**
|
|
2080
|
+
* **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
|
|
2081
|
+
* **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
|
|
2082
|
+
* and emits **`navOpen(false)`** so the two layers do not stack.
|
|
2083
|
+
*/
|
|
2084
|
+
interface XplTopNav {
|
|
2085
|
+
/**
|
|
2086
|
+
* Destination URL for the brand control when using native navigation (**`<a href>`**). When unset, the brand is a **`role="button"`** control and **`brandClick`** fires on activation instead.
|
|
2087
|
+
*/
|
|
2088
|
+
"brandHref"?: string;
|
|
2089
|
+
/**
|
|
2090
|
+
* Optional image URL for the brand mark (leading the brand row, before **`brand-name`** text). When set, renders **`<img class="xpl-top-nav__brand-logo">`** and ignores **`slot="brand-logo"`** for the mark. When unset, use **`slot="brand-logo"`** for custom logo content.
|
|
2091
|
+
*/
|
|
2092
|
+
"brandLogo"?: string;
|
|
2093
|
+
/**
|
|
2094
|
+
* Visible product / app name next to **`brand-logo`**. Omit for logo-only; provide **`brand-logo`** and/or this string to show the built-in brand row (**`left-aside`** is then primary nav links only).
|
|
2095
|
+
*/
|
|
2096
|
+
"brandName"?: string;
|
|
2097
|
+
/**
|
|
2098
|
+
* Label text for the built-in account menu trigger (shown **before** the **`chevron-down`** icon) when **`slot="user-menu"`** is present and **`slot="user-menu-trigger"`** is not used. When empty or whitespace-only, the trigger shows only the chevron and uses **`aria-label="Open account menu"`** on the button.
|
|
2099
|
+
*/
|
|
2100
|
+
"childAccountLabel"?: string;
|
|
2101
|
+
/**
|
|
2102
|
+
* Accessible name for the `<nav>` landmark (maps to `aria-label`). Use a unique label when the page has multiple navigation regions (e.g. side nav + top nav). When unset, defaults to `top-navigation-bar`.
|
|
2103
|
+
*/
|
|
2104
|
+
"label"?: string;
|
|
2105
|
+
/**
|
|
2106
|
+
* When true, renders the navigation control (hamburger) for toggling the left slot on small viewports. The control is **hidden from the Tailwind `md` breakpoint up**; collapse/show for **`left-aside`** uses **`max-width: calc(theme('screens.md') - 1px)`** in **`top-nav.css`** (Figma’s 767px at a 16px root and default **`screens.md`**). Reflected to the **`nav-control`** attribute so host updates (framework props) re-run **`@Watch`**: drawer state and document **Escape** handling stay in sync, the host **`xpl-top-nav--nav-control`** class toggles for **`top-nav.css`**, and **`navOpen(false)`** is emitted if **`nav-control`** is cleared while the drawer was open.
|
|
2107
|
+
*/
|
|
2108
|
+
"navControl"?: boolean;
|
|
2109
|
+
}
|
|
2110
|
+
/**
|
|
2111
|
+
* Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
|
|
2112
|
+
* participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
|
|
2113
|
+
* **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
|
|
2114
|
+
* under **`xpl-nav-header-menu`**. That flag is
|
|
2115
|
+
* kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
|
|
2116
|
+
* on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
|
|
2117
|
+
* without a full reconnect still re-sync. The internal
|
|
2118
|
+
* **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
|
|
2119
|
+
* as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
|
|
2120
|
+
* panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
|
|
2121
|
+
* **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
|
|
2122
|
+
* custom trigger content — the component renders the inner wrapper and BEM elements.
|
|
2123
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
2124
|
+
* values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
2125
|
+
*/
|
|
2126
|
+
interface XplTopNavItem {
|
|
2127
|
+
/**
|
|
2128
|
+
* 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.
|
|
2129
|
+
* @default false
|
|
2130
|
+
*/
|
|
2131
|
+
"active": boolean;
|
|
2132
|
+
/**
|
|
2133
|
+
* If set without **`slot="dropdown"`**, the inner control renders as a native **`<a href>`** (link mode).
|
|
2134
|
+
*/
|
|
2135
|
+
"href"?: string;
|
|
2136
|
+
/**
|
|
2137
|
+
* Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set).
|
|
2138
|
+
* @default ''
|
|
2139
|
+
*/
|
|
2140
|
+
"icon": string;
|
|
2141
|
+
/**
|
|
2142
|
+
* 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.
|
|
2143
|
+
*/
|
|
2144
|
+
"itemAriaLabel"?: string;
|
|
2145
|
+
/**
|
|
2146
|
+
* 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.
|
|
2147
|
+
*/
|
|
2148
|
+
"label"?: string;
|
|
2149
|
+
/**
|
|
2150
|
+
* When true, sets **`aria-current="page"`** and selected styling.
|
|
2151
|
+
* @default false
|
|
2152
|
+
*/
|
|
2153
|
+
"selected": boolean;
|
|
2154
|
+
}
|
|
1305
2155
|
interface XplUtilityBar {
|
|
1306
2156
|
/**
|
|
1307
2157
|
* @property {boolean} - Optional property that defines whether or not the main nav is open at startup.
|
|
@@ -1313,6 +2163,10 @@ export namespace Components {
|
|
|
1313
2163
|
"navControl"?: boolean;
|
|
1314
2164
|
}
|
|
1315
2165
|
}
|
|
2166
|
+
export interface XplBannerCustomEvent<T> extends CustomEvent<T> {
|
|
2167
|
+
detail: T;
|
|
2168
|
+
target: HTMLXplBannerElement;
|
|
2169
|
+
}
|
|
1316
2170
|
export interface XplButtonRowCustomEvent<T> extends CustomEvent<T> {
|
|
1317
2171
|
detail: T;
|
|
1318
2172
|
target: HTMLXplButtonRowElement;
|
|
@@ -1353,11 +2207,27 @@ export interface XplInputFileCustomEvent<T> extends CustomEvent<T> {
|
|
|
1353
2207
|
detail: T;
|
|
1354
2208
|
target: HTMLXplInputFileElement;
|
|
1355
2209
|
}
|
|
1356
|
-
export interface
|
|
2210
|
+
export interface XplInputPhoneCustomEvent<T> extends CustomEvent<T> {
|
|
1357
2211
|
detail: T;
|
|
1358
|
-
target:
|
|
2212
|
+
target: HTMLXplInputPhoneElement;
|
|
1359
2213
|
}
|
|
1360
|
-
export interface
|
|
2214
|
+
export interface XplInputSearchCustomEvent<T> extends CustomEvent<T> {
|
|
2215
|
+
detail: T;
|
|
2216
|
+
target: HTMLXplInputSearchElement;
|
|
2217
|
+
}
|
|
2218
|
+
export interface XplInputTimeCustomEvent<T> extends CustomEvent<T> {
|
|
2219
|
+
detail: T;
|
|
2220
|
+
target: HTMLXplInputTimeElement;
|
|
2221
|
+
}
|
|
2222
|
+
export interface XplListCustomEvent<T> extends CustomEvent<T> {
|
|
2223
|
+
detail: T;
|
|
2224
|
+
target: HTMLXplListElement;
|
|
2225
|
+
}
|
|
2226
|
+
export interface XplListItemCustomEvent<T> extends CustomEvent<T> {
|
|
2227
|
+
detail: T;
|
|
2228
|
+
target: HTMLXplListItemElement;
|
|
2229
|
+
}
|
|
2230
|
+
export interface XplMainNavCustomEvent<T> extends CustomEvent<T> {
|
|
1361
2231
|
detail: T;
|
|
1362
2232
|
target: HTMLXplMainNavElement;
|
|
1363
2233
|
}
|
|
@@ -1385,10 +2255,18 @@ export interface XplSelectCustomEvent<T> extends CustomEvent<T> {
|
|
|
1385
2255
|
detail: T;
|
|
1386
2256
|
target: HTMLXplSelectElement;
|
|
1387
2257
|
}
|
|
2258
|
+
export interface XplSideNavItemCustomEvent<T> extends CustomEvent<T> {
|
|
2259
|
+
detail: T;
|
|
2260
|
+
target: HTMLXplSideNavItemElement;
|
|
2261
|
+
}
|
|
1388
2262
|
export interface XplSlideoutCustomEvent<T> extends CustomEvent<T> {
|
|
1389
2263
|
detail: T;
|
|
1390
2264
|
target: HTMLXplSlideoutElement;
|
|
1391
2265
|
}
|
|
2266
|
+
export interface XplSpotlightCustomEvent<T> extends CustomEvent<T> {
|
|
2267
|
+
detail: T;
|
|
2268
|
+
target: HTMLXplSpotlightElement;
|
|
2269
|
+
}
|
|
1392
2270
|
export interface XplTabCustomEvent<T> extends CustomEvent<T> {
|
|
1393
2271
|
detail: T;
|
|
1394
2272
|
target: HTMLXplTabElement;
|
|
@@ -1409,6 +2287,14 @@ export interface XplTagCustomEvent<T> extends CustomEvent<T> {
|
|
|
1409
2287
|
detail: T;
|
|
1410
2288
|
target: HTMLXplTagElement;
|
|
1411
2289
|
}
|
|
2290
|
+
export interface XplTopNavCustomEvent<T> extends CustomEvent<T> {
|
|
2291
|
+
detail: T;
|
|
2292
|
+
target: HTMLXplTopNavElement;
|
|
2293
|
+
}
|
|
2294
|
+
export interface XplTopNavItemCustomEvent<T> extends CustomEvent<T> {
|
|
2295
|
+
detail: T;
|
|
2296
|
+
target: HTMLXplTopNavItemElement;
|
|
2297
|
+
}
|
|
1412
2298
|
export interface XplUtilityBarCustomEvent<T> extends CustomEvent<T> {
|
|
1413
2299
|
detail: T;
|
|
1414
2300
|
target: HTMLXplUtilityBarElement;
|
|
@@ -1444,6 +2330,25 @@ declare global {
|
|
|
1444
2330
|
prototype: HTMLXplBadgeElement;
|
|
1445
2331
|
new (): HTMLXplBadgeElement;
|
|
1446
2332
|
};
|
|
2333
|
+
interface HTMLXplBannerElementEventMap {
|
|
2334
|
+
"action": void;
|
|
2335
|
+
"dismiss": void;
|
|
2336
|
+
"secondaryAction": void;
|
|
2337
|
+
}
|
|
2338
|
+
interface HTMLXplBannerElement extends Components.XplBanner, HTMLStencilElement {
|
|
2339
|
+
addEventListener<K extends keyof HTMLXplBannerElementEventMap>(type: K, listener: (this: HTMLXplBannerElement, ev: XplBannerCustomEvent<HTMLXplBannerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2340
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2341
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2342
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2343
|
+
removeEventListener<K extends keyof HTMLXplBannerElementEventMap>(type: K, listener: (this: HTMLXplBannerElement, ev: XplBannerCustomEvent<HTMLXplBannerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2344
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2345
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2346
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2347
|
+
}
|
|
2348
|
+
var HTMLXplBannerElement: {
|
|
2349
|
+
prototype: HTMLXplBannerElement;
|
|
2350
|
+
new (): HTMLXplBannerElement;
|
|
2351
|
+
};
|
|
1447
2352
|
interface HTMLXplBreadcrumbItemElement extends Components.XplBreadcrumbItem, HTMLStencilElement {
|
|
1448
2353
|
}
|
|
1449
2354
|
var HTMLXplBreadcrumbItemElement: {
|
|
@@ -1595,6 +2500,10 @@ declare global {
|
|
|
1595
2500
|
interface HTMLXplDynamicTableElementEventMap {
|
|
1596
2501
|
"selectedItemCountChange": string[];
|
|
1597
2502
|
}
|
|
2503
|
+
/**
|
|
2504
|
+
* @deprecated Use the compositional `<xpl-table>` API instead.
|
|
2505
|
+
* This component will be removed in a future major release.
|
|
2506
|
+
*/
|
|
1598
2507
|
interface HTMLXplDynamicTableElement extends Components.XplDynamicTable, HTMLStencilElement {
|
|
1599
2508
|
addEventListener<K extends keyof HTMLXplDynamicTableElementEventMap>(type: K, listener: (this: HTMLXplDynamicTableElement, ev: XplDynamicTableCustomEvent<HTMLXplDynamicTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1600
2509
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1609,12 +2518,20 @@ declare global {
|
|
|
1609
2518
|
prototype: HTMLXplDynamicTableElement;
|
|
1610
2519
|
new (): HTMLXplDynamicTableElement;
|
|
1611
2520
|
};
|
|
2521
|
+
/**
|
|
2522
|
+
* @deprecated Use `<xpl-table-cell>` instead.
|
|
2523
|
+
* This component will be removed in a future major release.
|
|
2524
|
+
*/
|
|
1612
2525
|
interface HTMLXplDynamicTableCellElement extends Components.XplDynamicTableCell, HTMLStencilElement {
|
|
1613
2526
|
}
|
|
1614
2527
|
var HTMLXplDynamicTableCellElement: {
|
|
1615
2528
|
prototype: HTMLXplDynamicTableCellElement;
|
|
1616
2529
|
new (): HTMLXplDynamicTableCellElement;
|
|
1617
2530
|
};
|
|
2531
|
+
/**
|
|
2532
|
+
* @deprecated Use `<xpl-table-row>` instead.
|
|
2533
|
+
* This component will be removed in a future major release.
|
|
2534
|
+
*/
|
|
1618
2535
|
interface HTMLXplDynamicTableRowElement extends Components.XplDynamicTableRow, HTMLStencilElement {
|
|
1619
2536
|
}
|
|
1620
2537
|
var HTMLXplDynamicTableRowElement: {
|
|
@@ -1650,6 +2567,7 @@ declare global {
|
|
|
1650
2567
|
"blurEvent": FocusEvent;
|
|
1651
2568
|
"valueChange": string;
|
|
1652
2569
|
"inputEvent": string;
|
|
2570
|
+
"search": string;
|
|
1653
2571
|
}
|
|
1654
2572
|
interface HTMLXplInputElement extends Components.XplInput, HTMLStencilElement {
|
|
1655
2573
|
addEventListener<K extends keyof HTMLXplInputElementEventMap>(type: K, listener: (this: HTMLXplInputElement, ev: XplInputCustomEvent<HTMLXplInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1725,6 +2643,45 @@ declare global {
|
|
|
1725
2643
|
prototype: HTMLXplInputFileElement;
|
|
1726
2644
|
new (): HTMLXplInputFileElement;
|
|
1727
2645
|
};
|
|
2646
|
+
interface HTMLXplInputPhoneElementEventMap {
|
|
2647
|
+
"hasErrorStateChanged": string | null;
|
|
2648
|
+
"valueChange": string;
|
|
2649
|
+
}
|
|
2650
|
+
interface HTMLXplInputPhoneElement extends Components.XplInputPhone, HTMLStencilElement {
|
|
2651
|
+
addEventListener<K extends keyof HTMLXplInputPhoneElementEventMap>(type: K, listener: (this: HTMLXplInputPhoneElement, ev: XplInputPhoneCustomEvent<HTMLXplInputPhoneElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2652
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2653
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2654
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2655
|
+
removeEventListener<K extends keyof HTMLXplInputPhoneElementEventMap>(type: K, listener: (this: HTMLXplInputPhoneElement, ev: XplInputPhoneCustomEvent<HTMLXplInputPhoneElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2656
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2657
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2658
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2659
|
+
}
|
|
2660
|
+
var HTMLXplInputPhoneElement: {
|
|
2661
|
+
prototype: HTMLXplInputPhoneElement;
|
|
2662
|
+
new (): HTMLXplInputPhoneElement;
|
|
2663
|
+
};
|
|
2664
|
+
interface HTMLXplInputSearchElementEventMap {
|
|
2665
|
+
"blurEvent": FocusEvent;
|
|
2666
|
+
"focusEvent": FocusEvent;
|
|
2667
|
+
"inputEvent": string;
|
|
2668
|
+
"search": string;
|
|
2669
|
+
"valueChange": string;
|
|
2670
|
+
}
|
|
2671
|
+
interface HTMLXplInputSearchElement extends Components.XplInputSearch, HTMLStencilElement {
|
|
2672
|
+
addEventListener<K extends keyof HTMLXplInputSearchElementEventMap>(type: K, listener: (this: HTMLXplInputSearchElement, ev: XplInputSearchCustomEvent<HTMLXplInputSearchElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2673
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2674
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2675
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2676
|
+
removeEventListener<K extends keyof HTMLXplInputSearchElementEventMap>(type: K, listener: (this: HTMLXplInputSearchElement, ev: XplInputSearchCustomEvent<HTMLXplInputSearchElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2677
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2678
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2679
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2680
|
+
}
|
|
2681
|
+
var HTMLXplInputSearchElement: {
|
|
2682
|
+
prototype: HTMLXplInputSearchElement;
|
|
2683
|
+
new (): HTMLXplInputSearchElement;
|
|
2684
|
+
};
|
|
1728
2685
|
interface HTMLXplInputTimeElementEventMap {
|
|
1729
2686
|
"valueChange": string;
|
|
1730
2687
|
"hasErrorStateChanged": string | null;
|
|
@@ -1749,12 +2706,44 @@ declare global {
|
|
|
1749
2706
|
prototype: HTMLXplLargeCardElement;
|
|
1750
2707
|
new (): HTMLXplLargeCardElement;
|
|
1751
2708
|
};
|
|
2709
|
+
interface HTMLXplListElementEventMap {
|
|
2710
|
+
"itemSelect": { itemId?: string };
|
|
2711
|
+
"orderChange": XplListOrderChangeDetail;
|
|
2712
|
+
}
|
|
1752
2713
|
interface HTMLXplListElement extends Components.XplList, HTMLStencilElement {
|
|
2714
|
+
addEventListener<K extends keyof HTMLXplListElementEventMap>(type: K, listener: (this: HTMLXplListElement, ev: XplListCustomEvent<HTMLXplListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2715
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2716
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2717
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2718
|
+
removeEventListener<K extends keyof HTMLXplListElementEventMap>(type: K, listener: (this: HTMLXplListElement, ev: XplListCustomEvent<HTMLXplListElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2719
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2720
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2721
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1753
2722
|
}
|
|
1754
2723
|
var HTMLXplListElement: {
|
|
1755
2724
|
prototype: HTMLXplListElement;
|
|
1756
2725
|
new (): HTMLXplListElement;
|
|
1757
2726
|
};
|
|
2727
|
+
interface HTMLXplListItemElementEventMap {
|
|
2728
|
+
"itemDragEnd": { itemId?: string; item: HTMLElement };
|
|
2729
|
+
"itemDragStart": { itemId?: string; item: HTMLElement };
|
|
2730
|
+
"itemDrop": { itemId?: string; item: HTMLElement };
|
|
2731
|
+
"itemSelect": { itemId?: string };
|
|
2732
|
+
}
|
|
2733
|
+
interface HTMLXplListItemElement extends Components.XplListItem, HTMLStencilElement {
|
|
2734
|
+
addEventListener<K extends keyof HTMLXplListItemElementEventMap>(type: K, listener: (this: HTMLXplListItemElement, ev: XplListItemCustomEvent<HTMLXplListItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2735
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2736
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2737
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2738
|
+
removeEventListener<K extends keyof HTMLXplListItemElementEventMap>(type: K, listener: (this: HTMLXplListItemElement, ev: XplListItemCustomEvent<HTMLXplListItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2739
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2740
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2741
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2742
|
+
}
|
|
2743
|
+
var HTMLXplListItemElement: {
|
|
2744
|
+
prototype: HTMLXplListItemElement;
|
|
2745
|
+
new (): HTMLXplListItemElement;
|
|
2746
|
+
};
|
|
1758
2747
|
interface HTMLXplMainNavElementEventMap {
|
|
1759
2748
|
"navWidth": string;
|
|
1760
2749
|
}
|
|
@@ -1789,6 +2778,30 @@ declare global {
|
|
|
1789
2778
|
prototype: HTMLXplModalElement;
|
|
1790
2779
|
new (): HTMLXplModalElement;
|
|
1791
2780
|
};
|
|
2781
|
+
/**
|
|
2782
|
+
* Profile / account block (username, email, default slot for **`xpl-top-nav-item`** / **`xpl-divider`**).
|
|
2783
|
+
* Tag **`xpl-nav-header-menu`**; implementation folder **`xpl-nav-header-menu`**. **`.xpl-nav-header-menu__slot`** is
|
|
2784
|
+
* **`role="list"`** for slotted **`xpl-top-nav-item`** (**`role="listitem"`**).
|
|
2785
|
+
* **Slotted content:** do not add **`xpl-nav-header-menu__*`** BEM classes on nodes you pass into the default slot —
|
|
2786
|
+
* profile, list shell, and **`xpl-top-nav-item`** **`role="listitem"`** are handled by the component. Use
|
|
2787
|
+
* **`xpl-top-nav-item`** (or plain elements that are not Apollo **`xpl-*`** BEM hooks) in the slot only.
|
|
2788
|
+
* **`slot="right-aside-mobile"`** — optional block **between** the profile header and the default-slot list (e.g. narrow-only
|
|
2789
|
+
* duplicate of **every** **`slot="right-aside"`** control per Figma when **`xpl-top-nav`** hides **`right-aside`** on narrow viewports (always)).
|
|
2790
|
+
* Not **`role="list"`**; use **`xpl-button`** / **`xpl-top-nav-item`** as needed. Shown only on **narrow viewports** (one pixel below Tailwind **`md`** — **`top-nav.css`**) so bar actions stay in **`slot="right-aside"`** on wider viewports.
|
|
2791
|
+
* Light-DOM **`slotchange`** is unreliable; a host **`MutationObserver`** (child / subtree / **`slot`** attribute) keeps
|
|
2792
|
+
* **`xpl-nav-header-menu--has-right-aside-mobile`** in sync when nodes are added or retargeted after mount (same pattern as **`xpl-top-nav`**).
|
|
2793
|
+
* Stencil **`newSpecPage`** / mock-doc does not define **`MutationObserver`**; slot presence still updates on the next
|
|
2794
|
+
* deferred flush (**`setTimeout(0)`** coalesced with **`componentDidRender`**). In real browsers the observer handles child /
|
|
2795
|
+
* **`slot`** mutations without stacking uncancellable microtasks.
|
|
2796
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
2797
|
+
* values even when the page root is light (same contract as **`xpl-top-nav`** / **`xpl-top-nav-item`**).
|
|
2798
|
+
*/
|
|
2799
|
+
interface HTMLXplNavHeaderMenuElement extends Components.XplNavHeaderMenu, HTMLStencilElement {
|
|
2800
|
+
}
|
|
2801
|
+
var HTMLXplNavHeaderMenuElement: {
|
|
2802
|
+
prototype: HTMLXplNavHeaderMenuElement;
|
|
2803
|
+
new (): HTMLXplNavHeaderMenuElement;
|
|
2804
|
+
};
|
|
1792
2805
|
interface HTMLXplNavItemElementEventMap {
|
|
1793
2806
|
"navOpen": boolean;
|
|
1794
2807
|
}
|
|
@@ -1824,6 +2837,16 @@ declare global {
|
|
|
1824
2837
|
prototype: HTMLXplPaginationElement;
|
|
1825
2838
|
new (): HTMLXplPaginationElement;
|
|
1826
2839
|
};
|
|
2840
|
+
/**
|
|
2841
|
+
* A stateless container that defines a section on a page and can house any
|
|
2842
|
+
* type of content. Panels are not dismissible and may contain a top accent.
|
|
2843
|
+
*/
|
|
2844
|
+
interface HTMLXplPanelElement extends Components.XplPanel, HTMLStencilElement {
|
|
2845
|
+
}
|
|
2846
|
+
var HTMLXplPanelElement: {
|
|
2847
|
+
prototype: HTMLXplPanelElement;
|
|
2848
|
+
new (): HTMLXplPanelElement;
|
|
2849
|
+
};
|
|
1827
2850
|
interface HTMLXplPopoverElementEventMap {
|
|
1828
2851
|
"isOpenChange": boolean;
|
|
1829
2852
|
}
|
|
@@ -1841,11 +2864,17 @@ declare global {
|
|
|
1841
2864
|
prototype: HTMLXplPopoverElement;
|
|
1842
2865
|
new (): HTMLXplPopoverElement;
|
|
1843
2866
|
};
|
|
1844
|
-
interface
|
|
2867
|
+
interface HTMLXplProgressBarElement extends Components.XplProgressBar, HTMLStencilElement {
|
|
2868
|
+
}
|
|
2869
|
+
var HTMLXplProgressBarElement: {
|
|
2870
|
+
prototype: HTMLXplProgressBarElement;
|
|
2871
|
+
new (): HTMLXplProgressBarElement;
|
|
2872
|
+
};
|
|
2873
|
+
interface HTMLXplProgressIndicatorElement extends Components.XplProgressIndicator, HTMLStencilElement {
|
|
1845
2874
|
}
|
|
1846
|
-
var
|
|
1847
|
-
prototype:
|
|
1848
|
-
new ():
|
|
2875
|
+
var HTMLXplProgressIndicatorElement: {
|
|
2876
|
+
prototype: HTMLXplProgressIndicatorElement;
|
|
2877
|
+
new (): HTMLXplProgressIndicatorElement;
|
|
1849
2878
|
};
|
|
1850
2879
|
interface HTMLXplRadioElementEventMap {
|
|
1851
2880
|
"radioChange": string | boolean;
|
|
@@ -1893,6 +2922,30 @@ declare global {
|
|
|
1893
2922
|
prototype: HTMLXplSelectElement;
|
|
1894
2923
|
new (): HTMLXplSelectElement;
|
|
1895
2924
|
};
|
|
2925
|
+
interface HTMLXplSideNavElement extends Components.XplSideNav, HTMLStencilElement {
|
|
2926
|
+
}
|
|
2927
|
+
var HTMLXplSideNavElement: {
|
|
2928
|
+
prototype: HTMLXplSideNavElement;
|
|
2929
|
+
new (): HTMLXplSideNavElement;
|
|
2930
|
+
};
|
|
2931
|
+
interface HTMLXplSideNavItemElementEventMap {
|
|
2932
|
+
"expandedChange": boolean;
|
|
2933
|
+
"navClick": void;
|
|
2934
|
+
}
|
|
2935
|
+
interface HTMLXplSideNavItemElement extends Components.XplSideNavItem, HTMLStencilElement {
|
|
2936
|
+
addEventListener<K extends keyof HTMLXplSideNavItemElementEventMap>(type: K, listener: (this: HTMLXplSideNavItemElement, ev: XplSideNavItemCustomEvent<HTMLXplSideNavItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2937
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2938
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2939
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2940
|
+
removeEventListener<K extends keyof HTMLXplSideNavItemElementEventMap>(type: K, listener: (this: HTMLXplSideNavItemElement, ev: XplSideNavItemCustomEvent<HTMLXplSideNavItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2941
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2942
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2943
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2944
|
+
}
|
|
2945
|
+
var HTMLXplSideNavItemElement: {
|
|
2946
|
+
prototype: HTMLXplSideNavItemElement;
|
|
2947
|
+
new (): HTMLXplSideNavItemElement;
|
|
2948
|
+
};
|
|
1896
2949
|
interface HTMLXplSkeletonElement extends Components.XplSkeleton, HTMLStencilElement {
|
|
1897
2950
|
}
|
|
1898
2951
|
var HTMLXplSkeletonElement: {
|
|
@@ -1916,6 +2969,26 @@ declare global {
|
|
|
1916
2969
|
prototype: HTMLXplSlideoutElement;
|
|
1917
2970
|
new (): HTMLXplSlideoutElement;
|
|
1918
2971
|
};
|
|
2972
|
+
interface HTMLXplSpotlightElementEventMap {
|
|
2973
|
+
"dismiss": void;
|
|
2974
|
+
"primaryAction": void;
|
|
2975
|
+
"secondaryAction": void;
|
|
2976
|
+
"targetClick": void;
|
|
2977
|
+
}
|
|
2978
|
+
interface HTMLXplSpotlightElement extends Components.XplSpotlight, HTMLStencilElement {
|
|
2979
|
+
addEventListener<K extends keyof HTMLXplSpotlightElementEventMap>(type: K, listener: (this: HTMLXplSpotlightElement, ev: XplSpotlightCustomEvent<HTMLXplSpotlightElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2980
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2981
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2982
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2983
|
+
removeEventListener<K extends keyof HTMLXplSpotlightElementEventMap>(type: K, listener: (this: HTMLXplSpotlightElement, ev: XplSpotlightCustomEvent<HTMLXplSpotlightElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2984
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2985
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2986
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2987
|
+
}
|
|
2988
|
+
var HTMLXplSpotlightElement: {
|
|
2989
|
+
prototype: HTMLXplSpotlightElement;
|
|
2990
|
+
new (): HTMLXplSpotlightElement;
|
|
2991
|
+
};
|
|
1919
2992
|
interface HTMLXplTabElementEventMap {
|
|
1920
2993
|
"tabChange": string;
|
|
1921
2994
|
}
|
|
@@ -1940,13 +3013,14 @@ declare global {
|
|
|
1940
3013
|
new (): HTMLXplTabPanelElement;
|
|
1941
3014
|
};
|
|
1942
3015
|
interface HTMLXplTableElementEventMap {
|
|
3016
|
+
"rowOrderChange": XplTableRowOrderChangeDetail;
|
|
3017
|
+
"rowSelectionChange": { selectedRowIds: string[] };
|
|
3018
|
+
"sortChanged": XplTableSortChangedDetail;
|
|
1943
3019
|
"tableSelect": any;
|
|
1944
|
-
"sortChanged": {
|
|
1945
|
-
colNum: number;
|
|
1946
|
-
colName: string;
|
|
1947
|
-
sortTypeArr: string[];
|
|
1948
|
-
};
|
|
1949
3020
|
}
|
|
3021
|
+
/**
|
|
3022
|
+
* Compositional tables use CSS grid on the host (`role="grid"`). Legacy mode uses a `<table>`.
|
|
3023
|
+
*/
|
|
1950
3024
|
interface HTMLXplTableElement extends Components.XplTable, HTMLStencilElement {
|
|
1951
3025
|
addEventListener<K extends keyof HTMLXplTableElementEventMap>(type: K, listener: (this: HTMLXplTableElement, ev: XplTableCustomEvent<HTMLXplTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1952
3026
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1961,6 +3035,30 @@ declare global {
|
|
|
1961
3035
|
prototype: HTMLXplTableElement;
|
|
1962
3036
|
new (): HTMLXplTableElement;
|
|
1963
3037
|
};
|
|
3038
|
+
interface HTMLXplTableBodyElement extends Components.XplTableBody, HTMLStencilElement {
|
|
3039
|
+
}
|
|
3040
|
+
var HTMLXplTableBodyElement: {
|
|
3041
|
+
prototype: HTMLXplTableBodyElement;
|
|
3042
|
+
new (): HTMLXplTableBodyElement;
|
|
3043
|
+
};
|
|
3044
|
+
interface HTMLXplTableCellElement extends Components.XplTableCell, HTMLStencilElement {
|
|
3045
|
+
}
|
|
3046
|
+
var HTMLXplTableCellElement: {
|
|
3047
|
+
prototype: HTMLXplTableCellElement;
|
|
3048
|
+
new (): HTMLXplTableCellElement;
|
|
3049
|
+
};
|
|
3050
|
+
interface HTMLXplTableFooterElement extends Components.XplTableFooter, HTMLStencilElement {
|
|
3051
|
+
}
|
|
3052
|
+
var HTMLXplTableFooterElement: {
|
|
3053
|
+
prototype: HTMLXplTableFooterElement;
|
|
3054
|
+
new (): HTMLXplTableFooterElement;
|
|
3055
|
+
};
|
|
3056
|
+
interface HTMLXplTableFooterCellElement extends Components.XplTableFooterCell, HTMLStencilElement {
|
|
3057
|
+
}
|
|
3058
|
+
var HTMLXplTableFooterCellElement: {
|
|
3059
|
+
prototype: HTMLXplTableFooterCellElement;
|
|
3060
|
+
new (): HTMLXplTableFooterCellElement;
|
|
3061
|
+
};
|
|
1964
3062
|
interface HTMLXplTableHeaderElement extends Components.XplTableHeader, HTMLStencilElement {
|
|
1965
3063
|
}
|
|
1966
3064
|
var HTMLXplTableHeaderElement: {
|
|
@@ -1968,7 +3066,8 @@ declare global {
|
|
|
1968
3066
|
new (): HTMLXplTableHeaderElement;
|
|
1969
3067
|
};
|
|
1970
3068
|
interface HTMLXplTableHeaderCellElementEventMap {
|
|
1971
|
-
"
|
|
3069
|
+
"headerCheckboxChange": boolean;
|
|
3070
|
+
"headerSortChange": HeaderSortChangeDetail;
|
|
1972
3071
|
}
|
|
1973
3072
|
interface HTMLXplTableHeaderCellElement extends Components.XplTableHeaderCell, HTMLStencilElement {
|
|
1974
3073
|
addEventListener<K extends keyof HTMLXplTableHeaderCellElementEventMap>(type: K, listener: (this: HTMLXplTableHeaderCellElement, ev: XplTableHeaderCellCustomEvent<HTMLXplTableHeaderCellElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1984,6 +3083,12 @@ declare global {
|
|
|
1984
3083
|
prototype: HTMLXplTableHeaderCellElement;
|
|
1985
3084
|
new (): HTMLXplTableHeaderCellElement;
|
|
1986
3085
|
};
|
|
3086
|
+
interface HTMLXplTableRowElement extends Components.XplTableRow, HTMLStencilElement {
|
|
3087
|
+
}
|
|
3088
|
+
var HTMLXplTableRowElement: {
|
|
3089
|
+
prototype: HTMLXplTableRowElement;
|
|
3090
|
+
new (): HTMLXplTableRowElement;
|
|
3091
|
+
};
|
|
1987
3092
|
interface HTMLXplTabsElementEventMap {
|
|
1988
3093
|
"tabChange": string;
|
|
1989
3094
|
}
|
|
@@ -2002,7 +3107,10 @@ declare global {
|
|
|
2002
3107
|
new (): HTMLXplTabsElement;
|
|
2003
3108
|
};
|
|
2004
3109
|
interface HTMLXplTagElementEventMap {
|
|
2005
|
-
"close":
|
|
3110
|
+
"close": void;
|
|
3111
|
+
"tagDragEnd": TagDragEndDetail;
|
|
3112
|
+
"tagDragStart": TagDragStartDetail;
|
|
3113
|
+
"tagRemove": void;
|
|
2006
3114
|
}
|
|
2007
3115
|
interface HTMLXplTagElement extends Components.XplTag, HTMLStencilElement {
|
|
2008
3116
|
addEventListener<K extends keyof HTMLXplTagElementEventMap>(type: K, listener: (this: HTMLXplTagElement, ev: XplTagCustomEvent<HTMLXplTagElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -2042,6 +3150,79 @@ declare global {
|
|
|
2042
3150
|
prototype: HTMLXplTooltipElement;
|
|
2043
3151
|
new (): HTMLXplTooltipElement;
|
|
2044
3152
|
};
|
|
3153
|
+
interface HTMLXplTopNavElementEventMap {
|
|
3154
|
+
"brandClick": MouseEvent;
|
|
3155
|
+
"navOpen": boolean;
|
|
3156
|
+
}
|
|
3157
|
+
/**
|
|
3158
|
+
* Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-aside`** then **user menu**
|
|
3159
|
+
* (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
|
|
3160
|
+
* 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.
|
|
3161
|
+
* **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).
|
|
3162
|
+
* **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
|
|
3163
|
+
* on **`ownerDocument`** so nested dropdowns close before the drawer.
|
|
3164
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
|
|
3165
|
+
* resolve to dark-mode values even when the page root is light. Floating overlays (e.g. **`xpl-popover`** / **`xpl-dropdown`**
|
|
3166
|
+
* content teleported outside the host) do not inherit this scope — add **`dark`** on those panels if they should match.
|
|
3167
|
+
* **Layout:** **`right-aside`** and the user-menu region are wrapped internally (**`.xpl-top-nav__right-lead`**, etc.).
|
|
3168
|
+
* Consumers should not add those BEM classes — slot content only.
|
|
3169
|
+
* **Brand logo:** use **`brand-logo`** (URL) for a built-in **`<img>`**, or **`slot="brand-logo"`** for custom markup (e.g. **`xpl-icon`**, SVG). When the URL prop is set, it takes precedence and the slot is not used for the image. On **narrow viewports** (one pixel below Tailwind **`md`** — see **`top-nav.css`**), **`brand-name`** text is hidden in the bar (logo / slot mark only); keep a meaningful **`alt`** on **`brand-logo`** or accessible slotted mark for context.
|
|
3170
|
+
* **Narrow / mobile** (same breakpoint as above): **`slot="left-aside"`** is **hidden** in the bar until **`nav-control`**
|
|
3171
|
+
* is set **and** the drawer is open (floating panel per Figma). **Without **`nav-control`**, there is no mobile drawer** —
|
|
3172
|
+
* primary links remain hidden below **`md`** until the viewport is wide enough for the horizontal bar. The built-in **brand**
|
|
3173
|
+
* stays in the top bar (**hamburger → brand** when **`nav-control`** is set). **`right-aside`** is hidden in the bar on narrow
|
|
3174
|
+
* viewports (**`top-nav.css`**, one pixel below Tailwind **`md`**); duplicate those actions into **`xpl-nav-header-menu`**
|
|
3175
|
+
* **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
|
|
3176
|
+
* **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
|
|
3177
|
+
* and emits **`navOpen(false)`** so the two layers do not stack.
|
|
3178
|
+
*/
|
|
3179
|
+
interface HTMLXplTopNavElement extends Components.XplTopNav, HTMLStencilElement {
|
|
3180
|
+
addEventListener<K extends keyof HTMLXplTopNavElementEventMap>(type: K, listener: (this: HTMLXplTopNavElement, ev: XplTopNavCustomEvent<HTMLXplTopNavElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3181
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3182
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3183
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3184
|
+
removeEventListener<K extends keyof HTMLXplTopNavElementEventMap>(type: K, listener: (this: HTMLXplTopNavElement, ev: XplTopNavCustomEvent<HTMLXplTopNavElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
3185
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3186
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3187
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
3188
|
+
}
|
|
3189
|
+
var HTMLXplTopNavElement: {
|
|
3190
|
+
prototype: HTMLXplTopNavElement;
|
|
3191
|
+
new (): HTMLXplTopNavElement;
|
|
3192
|
+
};
|
|
3193
|
+
interface HTMLXplTopNavItemElementEventMap {
|
|
3194
|
+
"navItemClick": MouseEvent;
|
|
3195
|
+
}
|
|
3196
|
+
/**
|
|
3197
|
+
* Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
|
|
3198
|
+
* participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
|
|
3199
|
+
* **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
|
|
3200
|
+
* under **`xpl-nav-header-menu`**. That flag is
|
|
3201
|
+
* kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
|
|
3202
|
+
* on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
|
|
3203
|
+
* without a full reconnect still re-sync. The internal
|
|
3204
|
+
* **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
|
|
3205
|
+
* as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
|
|
3206
|
+
* panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
|
|
3207
|
+
* **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
|
|
3208
|
+
* custom trigger content — the component renders the inner wrapper and BEM elements.
|
|
3209
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
3210
|
+
* values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
3211
|
+
*/
|
|
3212
|
+
interface HTMLXplTopNavItemElement extends Components.XplTopNavItem, HTMLStencilElement {
|
|
3213
|
+
addEventListener<K extends keyof HTMLXplTopNavItemElementEventMap>(type: K, listener: (this: HTMLXplTopNavItemElement, ev: XplTopNavItemCustomEvent<HTMLXplTopNavItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3214
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3215
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3216
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3217
|
+
removeEventListener<K extends keyof HTMLXplTopNavItemElementEventMap>(type: K, listener: (this: HTMLXplTopNavItemElement, ev: XplTopNavItemCustomEvent<HTMLXplTopNavItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
3218
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3219
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3220
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
3221
|
+
}
|
|
3222
|
+
var HTMLXplTopNavItemElement: {
|
|
3223
|
+
prototype: HTMLXplTopNavItemElement;
|
|
3224
|
+
new (): HTMLXplTopNavItemElement;
|
|
3225
|
+
};
|
|
2045
3226
|
interface HTMLXplUtilityBarElementEventMap {
|
|
2046
3227
|
"navOpen": boolean;
|
|
2047
3228
|
}
|
|
@@ -2065,6 +3246,7 @@ declare global {
|
|
|
2065
3246
|
"xpl-avatar": HTMLXplAvatarElement;
|
|
2066
3247
|
"xpl-backdrop": HTMLXplBackdropElement;
|
|
2067
3248
|
"xpl-badge": HTMLXplBadgeElement;
|
|
3249
|
+
"xpl-banner": HTMLXplBannerElement;
|
|
2068
3250
|
"xpl-breadcrumb-item": HTMLXplBreadcrumbItemElement;
|
|
2069
3251
|
"xpl-breadcrumbs": HTMLXplBreadcrumbsElement;
|
|
2070
3252
|
"xpl-button": HTMLXplButtonElement;
|
|
@@ -2091,35 +3273,53 @@ declare global {
|
|
|
2091
3273
|
"xpl-input-color": HTMLXplInputColorElement;
|
|
2092
3274
|
"xpl-input-date": HTMLXplInputDateElement;
|
|
2093
3275
|
"xpl-input-file": HTMLXplInputFileElement;
|
|
3276
|
+
"xpl-input-phone": HTMLXplInputPhoneElement;
|
|
3277
|
+
"xpl-input-search": HTMLXplInputSearchElement;
|
|
2094
3278
|
"xpl-input-time": HTMLXplInputTimeElement;
|
|
2095
3279
|
"xpl-large-card": HTMLXplLargeCardElement;
|
|
2096
3280
|
"xpl-list": HTMLXplListElement;
|
|
3281
|
+
"xpl-list-item": HTMLXplListItemElement;
|
|
2097
3282
|
"xpl-main-nav": HTMLXplMainNavElement;
|
|
2098
3283
|
"xpl-modal": HTMLXplModalElement;
|
|
3284
|
+
"xpl-nav-header-menu": HTMLXplNavHeaderMenuElement;
|
|
2099
3285
|
"xpl-nav-item": HTMLXplNavItemElement;
|
|
2100
3286
|
"xpl-pagination": HTMLXplPaginationElement;
|
|
3287
|
+
"xpl-panel": HTMLXplPanelElement;
|
|
2101
3288
|
"xpl-popover": HTMLXplPopoverElement;
|
|
2102
|
-
"xpl-progress":
|
|
3289
|
+
"xpl-progress-bar": HTMLXplProgressBarElement;
|
|
3290
|
+
"xpl-progress-indicator": HTMLXplProgressIndicatorElement;
|
|
2103
3291
|
"xpl-radio": HTMLXplRadioElement;
|
|
2104
3292
|
"xpl-secondary-nav": HTMLXplSecondaryNavElement;
|
|
2105
3293
|
"xpl-select": HTMLXplSelectElement;
|
|
3294
|
+
"xpl-side-nav": HTMLXplSideNavElement;
|
|
3295
|
+
"xpl-side-nav-item": HTMLXplSideNavItemElement;
|
|
2106
3296
|
"xpl-skeleton": HTMLXplSkeletonElement;
|
|
2107
3297
|
"xpl-slideout": HTMLXplSlideoutElement;
|
|
3298
|
+
"xpl-spotlight": HTMLXplSpotlightElement;
|
|
2108
3299
|
"xpl-tab": HTMLXplTabElement;
|
|
2109
3300
|
"xpl-tab-panel": HTMLXplTabPanelElement;
|
|
2110
3301
|
"xpl-table": HTMLXplTableElement;
|
|
3302
|
+
"xpl-table-body": HTMLXplTableBodyElement;
|
|
3303
|
+
"xpl-table-cell": HTMLXplTableCellElement;
|
|
3304
|
+
"xpl-table-footer": HTMLXplTableFooterElement;
|
|
3305
|
+
"xpl-table-footer-cell": HTMLXplTableFooterCellElement;
|
|
2111
3306
|
"xpl-table-header": HTMLXplTableHeaderElement;
|
|
2112
3307
|
"xpl-table-header-cell": HTMLXplTableHeaderCellElement;
|
|
3308
|
+
"xpl-table-row": HTMLXplTableRowElement;
|
|
2113
3309
|
"xpl-tabs": HTMLXplTabsElement;
|
|
2114
3310
|
"xpl-tag": HTMLXplTagElement;
|
|
2115
3311
|
"xpl-toast": HTMLXplToastElement;
|
|
2116
3312
|
"xpl-toggle": HTMLXplToggleElement;
|
|
2117
3313
|
"xpl-toolbar": HTMLXplToolbarElement;
|
|
2118
3314
|
"xpl-tooltip": HTMLXplTooltipElement;
|
|
3315
|
+
"xpl-top-nav": HTMLXplTopNavElement;
|
|
3316
|
+
"xpl-top-nav-item": HTMLXplTopNavItemElement;
|
|
2119
3317
|
"xpl-utility-bar": HTMLXplUtilityBarElement;
|
|
2120
3318
|
}
|
|
2121
3319
|
}
|
|
2122
3320
|
declare namespace LocalJSX {
|
|
3321
|
+
type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
|
|
3322
|
+
|
|
2123
3323
|
interface XplAccordion {
|
|
2124
3324
|
/**
|
|
2125
3325
|
* set the border of the accordion none: there’s no border wrapping the header bottom:there’s a border below the header bordered: the header is wrapped by a white panel with a rounded border around it on every side
|
|
@@ -2175,22 +3375,26 @@ declare namespace LocalJSX {
|
|
|
2175
3375
|
/**
|
|
2176
3376
|
* Background color when there is no image src
|
|
2177
3377
|
*/
|
|
2178
|
-
"color"?:
|
|
3378
|
+
"color"?: AvatarColor;
|
|
2179
3379
|
/**
|
|
2180
3380
|
* Sets a disabled state on the avatar when set to true
|
|
2181
3381
|
* @default false
|
|
2182
3382
|
*/
|
|
2183
3383
|
"disabled"?: boolean;
|
|
3384
|
+
/**
|
|
3385
|
+
* When `variant` is `group`, data for each face (max 4 visible + overflow count). Each item: { src?, name?, color? }.
|
|
3386
|
+
*/
|
|
3387
|
+
"groupData"?: AvatarGroupItem[] | string;
|
|
2184
3388
|
/**
|
|
2185
3389
|
* The URL if the avatar should be hyperlinked
|
|
2186
3390
|
*/
|
|
2187
3391
|
"href"?: string;
|
|
2188
3392
|
/**
|
|
2189
|
-
* Alt text for the image
|
|
3393
|
+
* Alt text for the image; also used for initials when no image and no slot.
|
|
2190
3394
|
*/
|
|
2191
3395
|
"name"?: string;
|
|
2192
3396
|
/**
|
|
2193
|
-
* Size of the avatar
|
|
3397
|
+
* Size of the avatar (and of each avatar in a group).
|
|
2194
3398
|
*/
|
|
2195
3399
|
"size"?: 'md' | 'sm';
|
|
2196
3400
|
/**
|
|
@@ -2198,13 +3402,22 @@ declare namespace LocalJSX {
|
|
|
2198
3402
|
*/
|
|
2199
3403
|
"src"?: string;
|
|
2200
3404
|
/**
|
|
2201
|
-
*
|
|
3405
|
+
* Shown for the default avatar, `profile`, and `with-text`; not shown when `variant` is `group`. **Legacy
|
|
3406
|
+
* @deprecated :** `active`, `warning`, and `inactive` still map to `green`, `red`, and `gray` for existing consumers. Prefer palette names; legacy values are scheduled for removal in the next **major** release.
|
|
2202
3407
|
*/
|
|
2203
|
-
"status"?:
|
|
3408
|
+
"status"?: AvatarStatus;
|
|
3409
|
+
/**
|
|
3410
|
+
* Secondary text shown when `variant` is `with-text` (e.g. email).
|
|
3411
|
+
*/
|
|
3412
|
+
"subText"?: string;
|
|
2204
3413
|
/**
|
|
2205
3414
|
* Where to open the URL chosen for the `href` prop: `_self` (default), `_blank`, `_parent`, or `_top`
|
|
2206
3415
|
*/
|
|
2207
3416
|
"target"?: string;
|
|
3417
|
+
/**
|
|
3418
|
+
* Optional layout: `profile` (large profile sizes), `group` (stacked faces + `groupData`; `status` not shown), `with-text` (avatar with `name` / `subText` beside it). Omit for the default single avatar.
|
|
3419
|
+
*/
|
|
3420
|
+
"variant"?: AvatarVariant;
|
|
2208
3421
|
}
|
|
2209
3422
|
interface XplBackdrop {
|
|
2210
3423
|
/**
|
|
@@ -2215,13 +3428,89 @@ declare namespace LocalJSX {
|
|
|
2215
3428
|
}
|
|
2216
3429
|
interface XplBadge {
|
|
2217
3430
|
/**
|
|
2218
|
-
* Whether badge shows a
|
|
3431
|
+
* Whether badge shows a bordered ring
|
|
3432
|
+
* @default false
|
|
3433
|
+
*/
|
|
3434
|
+
"bordered"?: boolean;
|
|
3435
|
+
/**
|
|
3436
|
+
* Whether badge shows a dot icon before the text (inside the pill)
|
|
2219
3437
|
*/
|
|
2220
3438
|
"dot"?: boolean;
|
|
2221
3439
|
/**
|
|
2222
|
-
*
|
|
3440
|
+
* When true, render a compact badge built around the dot. - With no children: just a dot (status/dot badge) - With children: a small dot badge with the text/number inside
|
|
3441
|
+
* @default false
|
|
3442
|
+
*/
|
|
3443
|
+
"dotOnly"?: boolean;
|
|
3444
|
+
/**
|
|
3445
|
+
* Badge shape rounded (pill) boxy (rounded corners)
|
|
3446
|
+
* @default 'rounded'
|
|
3447
|
+
*/
|
|
3448
|
+
"shape"?: 'rounded' | 'boxy';
|
|
3449
|
+
/**
|
|
3450
|
+
* Badge size default | small
|
|
3451
|
+
* @default 'default'
|
|
3452
|
+
*/
|
|
3453
|
+
"size"?: 'default' | 'small';
|
|
3454
|
+
/**
|
|
3455
|
+
* Badge variant (color). Preferred values: `purple`, `green`, `yellow`, `orange`, `gray`, `red`, `blue`. The legacy semantic names `success`, `warning`, `inactive`, and `error` are still accepted and map to `green`, `yellow`, `gray`, and `red` respectively. Prefer the color names for new code.
|
|
3456
|
+
* @default 'purple'
|
|
3457
|
+
*/
|
|
3458
|
+
"variant"?: BadgeVariantProp;
|
|
3459
|
+
}
|
|
3460
|
+
interface XplBanner {
|
|
3461
|
+
/**
|
|
3462
|
+
* Primary action label. When provided, an action button is rendered.
|
|
3463
|
+
*/
|
|
3464
|
+
"actionText"?: string;
|
|
3465
|
+
/**
|
|
3466
|
+
* Controls the visual appearance and semantic meaning of the banner. These values map to messaging background/border token sets in `banner.css`. Banner icons use `--xpl-icon-default`, except `error` which uses inverse icon/text tokens for contrast on dark backgrounds.
|
|
3467
|
+
* @default 'information'
|
|
2223
3468
|
*/
|
|
2224
|
-
"
|
|
3469
|
+
"appearance"?: 'information' | 'positive' | 'warning' | 'error';
|
|
3470
|
+
/**
|
|
3471
|
+
* Optional supporting message shown after the heading. Description text uses `--xpl-text-default`.
|
|
3472
|
+
*/
|
|
3473
|
+
"description"?: string;
|
|
3474
|
+
/**
|
|
3475
|
+
* Whether to render the leading icon in section layout. Ignored in bar layout — bar banners always show the icon.
|
|
3476
|
+
* @default true
|
|
3477
|
+
*/
|
|
3478
|
+
"hasIcon"?: boolean;
|
|
3479
|
+
/**
|
|
3480
|
+
* Primary banner message shown with stronger title typography.
|
|
3481
|
+
*/
|
|
3482
|
+
"heading"?: string;
|
|
3483
|
+
/**
|
|
3484
|
+
* Whether to show the trailing dismiss control.
|
|
3485
|
+
* @default true
|
|
3486
|
+
*/
|
|
3487
|
+
"isDismissible"?: boolean;
|
|
3488
|
+
/**
|
|
3489
|
+
* Renders the section-style banner layout when true.
|
|
3490
|
+
* @default false
|
|
3491
|
+
*/
|
|
3492
|
+
"isSection"?: boolean;
|
|
3493
|
+
/**
|
|
3494
|
+
* Emitted when the primary action is clicked.
|
|
3495
|
+
*/
|
|
3496
|
+
"onAction"?: (event: XplBannerCustomEvent<void>) => void;
|
|
3497
|
+
/**
|
|
3498
|
+
* Emitted when the dismiss button is clicked.
|
|
3499
|
+
*/
|
|
3500
|
+
"onDismiss"?: (event: XplBannerCustomEvent<void>) => void;
|
|
3501
|
+
/**
|
|
3502
|
+
* Emitted when the secondary action is clicked.
|
|
3503
|
+
*/
|
|
3504
|
+
"onSecondaryAction"?: (event: XplBannerCustomEvent<void>) => void;
|
|
3505
|
+
/**
|
|
3506
|
+
* Secondary action label. When provided, a second action button is rendered.
|
|
3507
|
+
*/
|
|
3508
|
+
"secondaryActionText"?: string;
|
|
3509
|
+
/**
|
|
3510
|
+
* When true, `description` is constrained to one line with ellipsis so banner height stays stable.
|
|
3511
|
+
* @default false
|
|
3512
|
+
*/
|
|
3513
|
+
"truncateDesc"?: boolean;
|
|
2225
3514
|
}
|
|
2226
3515
|
interface XplBreadcrumbItem {
|
|
2227
3516
|
}
|
|
@@ -2229,52 +3518,84 @@ declare namespace LocalJSX {
|
|
|
2229
3518
|
}
|
|
2230
3519
|
interface XplButton {
|
|
2231
3520
|
/**
|
|
2232
|
-
*
|
|
3521
|
+
* Attributes to apply to the inner native `<button>` (e.g., tab a11y wiring). Use this instead of setting `id` / `role` / `aria-*` on the host when the inner control is the element that needs them (e.g., WAI-ARIA composite widgets).
|
|
3522
|
+
*/
|
|
3523
|
+
"controlAttrs"?: {
|
|
3524
|
+
id?: string;
|
|
3525
|
+
role?: string;
|
|
3526
|
+
'aria-controls'?: string;
|
|
3527
|
+
'aria-selected'?: 'true' | 'false';
|
|
3528
|
+
'aria-current'?: string;
|
|
3529
|
+
};
|
|
3530
|
+
/**
|
|
3531
|
+
* Whether button should be disabled
|
|
3532
|
+
* @default false
|
|
2233
3533
|
*/
|
|
2234
3534
|
"disabled"?: boolean;
|
|
2235
3535
|
/**
|
|
2236
|
-
*
|
|
3536
|
+
* An optional form attribute for the button if type is submit
|
|
2237
3537
|
*/
|
|
2238
3538
|
"form"?: string;
|
|
2239
3539
|
/**
|
|
2240
|
-
*
|
|
3540
|
+
* Whether the button should be of full width as per parent container.
|
|
3541
|
+
* @default false
|
|
2241
3542
|
*/
|
|
2242
3543
|
"fullWidth"?: boolean;
|
|
2243
3544
|
/**
|
|
2244
|
-
*
|
|
3545
|
+
* Icon to render - icon name as string (from xpl-icon library).
|
|
3546
|
+
* @default ''
|
|
3547
|
+
*/
|
|
3548
|
+
"icon"?: string;
|
|
3549
|
+
/**
|
|
3550
|
+
* When true, the button renders in icon-only circular style. Use for icon-only buttons.
|
|
3551
|
+
* @default false
|
|
2245
3552
|
*/
|
|
2246
3553
|
"iconOnly"?: boolean;
|
|
3554
|
+
/**
|
|
3555
|
+
* Icon position relative to slot content. Ignored if no icon is provided.
|
|
3556
|
+
* @default 'start'
|
|
3557
|
+
*/
|
|
3558
|
+
"iconPosition"?: 'start' | 'end';
|
|
3559
|
+
/**
|
|
3560
|
+
* When true, shows a loading overlay with spinner over the button. Button is non-interactive.
|
|
3561
|
+
* @default false
|
|
3562
|
+
*/
|
|
3563
|
+
"isLoading"?: boolean;
|
|
2247
3564
|
/**
|
|
2248
3565
|
* whether button should yield a slot for a link tag
|
|
2249
3566
|
*/
|
|
2250
3567
|
"link"?: boolean;
|
|
2251
3568
|
/**
|
|
2252
|
-
*
|
|
3569
|
+
* Name of the button, submitted with form data. Passed through to the native button element.
|
|
2253
3570
|
*/
|
|
2254
3571
|
"name"?: string;
|
|
2255
3572
|
/**
|
|
2256
|
-
*
|
|
3573
|
+
* Sentiment of the button, which applies different color schemes to indicate purpose/intent.
|
|
3574
|
+
* @default 'neutral'
|
|
3575
|
+
*/
|
|
3576
|
+
"sentiment"?: 'neutral' | 'negative' | 'positive';
|
|
3577
|
+
/**
|
|
3578
|
+
* Button size. Use 'default', 'xs' (extra small), or 'sm' (small).
|
|
2257
3579
|
* @default 'default'
|
|
2258
3580
|
*/
|
|
2259
|
-
"size"?: 'default' | '
|
|
3581
|
+
"size"?: 'default' | 'xs' | 'sm';
|
|
2260
3582
|
/**
|
|
2261
|
-
* @
|
|
2262
|
-
* @default 'neutral'
|
|
3583
|
+
* @deprecated : Use `sentiment` with values "neutral", "negative", "positive" instead of `state` .
|
|
2263
3584
|
*/
|
|
2264
3585
|
"state"?: 'neutral' | 'warning' | 'success';
|
|
2265
3586
|
/**
|
|
2266
|
-
*
|
|
3587
|
+
* HTML button type attribute.
|
|
2267
3588
|
*/
|
|
2268
3589
|
"type"?: 'submit' | 'reset' | 'button';
|
|
2269
3590
|
/**
|
|
2270
|
-
*
|
|
3591
|
+
* Value of the button, submitted with form data. Passed through to the native button element.
|
|
2271
3592
|
*/
|
|
2272
3593
|
"value"?: string;
|
|
2273
3594
|
/**
|
|
2274
|
-
*
|
|
3595
|
+
* Button variant/style. Use "primary", "secondary", "tertiary" for new usage. "subtle" is deprecated but still supported for backward compatibility.
|
|
2275
3596
|
* @default 'primary'
|
|
2276
3597
|
*/
|
|
2277
|
-
"variant"?: 'primary' | 'secondary' | 'subtle';
|
|
3598
|
+
"variant"?: 'primary' | 'secondary' | 'tertiary' | 'subtle';
|
|
2278
3599
|
}
|
|
2279
3600
|
interface XplButtonRow {
|
|
2280
3601
|
/**
|
|
@@ -2336,6 +3657,11 @@ declare namespace LocalJSX {
|
|
|
2336
3657
|
"onDateSelected"?: (event: XplCalendarCustomEvent<string | string[]>) => void;
|
|
2337
3658
|
}
|
|
2338
3659
|
interface XplCheckbox {
|
|
3660
|
+
/**
|
|
3661
|
+
* Accessible name for the native checkbox input (sets `aria-label` on the `input`). Use when there is no visible label text in the default slot. Defaults to `''`; empty or whitespace-only values omit `aria-label` on the input so a visible `<label>` remains the sole name source.
|
|
3662
|
+
* @default ''
|
|
3663
|
+
*/
|
|
3664
|
+
"ariaLabel"?: string;
|
|
2339
3665
|
/**
|
|
2340
3666
|
* Whether the input is checked
|
|
2341
3667
|
*/
|
|
@@ -2529,7 +3855,7 @@ declare namespace LocalJSX {
|
|
|
2529
3855
|
/**
|
|
2530
3856
|
* call back function invoked when a selection is made
|
|
2531
3857
|
*/
|
|
2532
|
-
"update"?: (e, { component }: { component:
|
|
3858
|
+
"update"?: (e, { component }: { component: Dropdown }) => void;
|
|
2533
3859
|
}
|
|
2534
3860
|
interface XplDropdownGroup {
|
|
2535
3861
|
/**
|
|
@@ -2548,6 +3874,10 @@ declare namespace LocalJSX {
|
|
|
2548
3874
|
"label"?: string;
|
|
2549
3875
|
}
|
|
2550
3876
|
interface XplDropdownOption {
|
|
3877
|
+
/**
|
|
3878
|
+
* optional icon name to display before the label (uses xpl-icon)
|
|
3879
|
+
*/
|
|
3880
|
+
"icon"?: string;
|
|
2551
3881
|
/**
|
|
2552
3882
|
* whether option is disabled
|
|
2553
3883
|
*/
|
|
@@ -2569,12 +3899,20 @@ declare namespace LocalJSX {
|
|
|
2569
3899
|
*/
|
|
2570
3900
|
"value"?: string;
|
|
2571
3901
|
}
|
|
3902
|
+
/**
|
|
3903
|
+
* @deprecated Use the compositional `<xpl-table>` API instead.
|
|
3904
|
+
* This component will be removed in a future major release.
|
|
3905
|
+
*/
|
|
2572
3906
|
interface XplDynamicTable {
|
|
2573
3907
|
/**
|
|
2574
3908
|
* Emitted when the number of selected items changes.
|
|
2575
3909
|
*/
|
|
2576
3910
|
"onSelectedItemCountChange"?: (event: XplDynamicTableCustomEvent<string[]>) => void;
|
|
2577
3911
|
}
|
|
3912
|
+
/**
|
|
3913
|
+
* @deprecated Use `<xpl-table-cell>` instead.
|
|
3914
|
+
* This component will be removed in a future major release.
|
|
3915
|
+
*/
|
|
2578
3916
|
interface XplDynamicTableCell {
|
|
2579
3917
|
/**
|
|
2580
3918
|
* Whether the cell and its contents are disabled.
|
|
@@ -2582,6 +3920,10 @@ declare namespace LocalJSX {
|
|
|
2582
3920
|
*/
|
|
2583
3921
|
"disabled"?: boolean;
|
|
2584
3922
|
}
|
|
3923
|
+
/**
|
|
3924
|
+
* @deprecated Use `<xpl-table-row>` instead.
|
|
3925
|
+
* This component will be removed in a future major release.
|
|
3926
|
+
*/
|
|
2585
3927
|
interface XplDynamicTableRow {
|
|
2586
3928
|
/**
|
|
2587
3929
|
* Whether the row and its cells are disabled.
|
|
@@ -2675,7 +4017,12 @@ declare namespace LocalJSX {
|
|
|
2675
4017
|
*/
|
|
2676
4018
|
"allowCustomOption"?: boolean;
|
|
2677
4019
|
/**
|
|
2678
|
-
*
|
|
4020
|
+
* Accessible name for search inputs when there is no visible `label` (after trim). Ignored for naming when a visible label is shown. Defaults to `''`; whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed when there is no visible label. Applies to search inputs (`type="search"`).
|
|
4021
|
+
* @default ''
|
|
4022
|
+
*/
|
|
4023
|
+
"ariaLabel"?: string;
|
|
4024
|
+
/**
|
|
4025
|
+
* Hint for form autofill feature Applies to text, password, number, and search inputs.
|
|
2679
4026
|
*/
|
|
2680
4027
|
"autocomplete"?: string;
|
|
2681
4028
|
/**
|
|
@@ -2683,6 +4030,11 @@ declare namespace LocalJSX {
|
|
|
2683
4030
|
* @default 'Y-m-d'
|
|
2684
4031
|
*/
|
|
2685
4032
|
"dateFormat"?: string;
|
|
4033
|
+
/**
|
|
4034
|
+
* Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US". Applies to phone inputs.
|
|
4035
|
+
* @default 'US'
|
|
4036
|
+
*/
|
|
4037
|
+
"defaultCountry"?: string;
|
|
2686
4038
|
/**
|
|
2687
4039
|
* Optional text that appears below the input label. Applies to all input types.
|
|
2688
4040
|
*/
|
|
@@ -2714,6 +4066,11 @@ declare namespace LocalJSX {
|
|
|
2714
4066
|
* @default false
|
|
2715
4067
|
*/
|
|
2716
4068
|
"hideTriggerOnSelect"?: boolean;
|
|
4069
|
+
/**
|
|
4070
|
+
* Enables international mode with country selector for phone inputs. When false, the phone input is locked to defaultCountry with no country picker.
|
|
4071
|
+
* @default true Applies to phone inputs.
|
|
4072
|
+
*/
|
|
4073
|
+
"isInternational"?: boolean;
|
|
2717
4074
|
/**
|
|
2718
4075
|
* Label text for the field Applies to all input types.
|
|
2719
4076
|
*/
|
|
@@ -2758,15 +4115,19 @@ declare namespace LocalJSX {
|
|
|
2758
4115
|
*/
|
|
2759
4116
|
"onFocusEvent"?: (event: XplInputCustomEvent<FocusEvent>) => void;
|
|
2760
4117
|
/**
|
|
2761
|
-
* Event that emits the current value of the input Applies to text
|
|
4118
|
+
* Event that emits the current value of the input Applies to text-like inputs and search inputs.
|
|
2762
4119
|
*/
|
|
2763
4120
|
"onInputEvent"?: (event: XplInputCustomEvent<string>) => void;
|
|
2764
4121
|
/**
|
|
2765
|
-
*
|
|
4122
|
+
* Emitted when the user commits a search (Enter with no enclosing form owner, or submit of the internal search form). `event.detail` is the trimmed query string. Applies to search inputs (`type="search"`).
|
|
4123
|
+
*/
|
|
4124
|
+
"onSearch"?: (event: XplInputCustomEvent<string>) => void;
|
|
4125
|
+
/**
|
|
4126
|
+
* Event that emits the current value of the input (including search fields).
|
|
2766
4127
|
*/
|
|
2767
4128
|
"onValueChange"?: (event: XplInputCustomEvent<string>) => void;
|
|
2768
4129
|
/**
|
|
2769
|
-
* Placeholder text that appears when the field has no value Applies to text, password, number, and
|
|
4130
|
+
* Placeholder text that appears when the field has no value Applies to text, password, number, date, and search inputs.
|
|
2770
4131
|
*/
|
|
2771
4132
|
"placeholder"?: string;
|
|
2772
4133
|
/**
|
|
@@ -2778,13 +4139,21 @@ declare namespace LocalJSX {
|
|
|
2778
4139
|
*/
|
|
2779
4140
|
"pre"?: string;
|
|
2780
4141
|
/**
|
|
2781
|
-
*
|
|
4142
|
+
* Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"]. Applies to phone inputs.
|
|
4143
|
+
*/
|
|
4144
|
+
"preferredCountries"?: string[];
|
|
4145
|
+
/**
|
|
4146
|
+
* Whether the input is editable Applies to text, password, number, date, and search inputs.
|
|
2782
4147
|
*/
|
|
2783
4148
|
"readonly"?: boolean;
|
|
2784
4149
|
/**
|
|
2785
4150
|
* Whether the input is required Applies to all input types.
|
|
2786
4151
|
*/
|
|
2787
4152
|
"required"?: boolean;
|
|
4153
|
+
/**
|
|
4154
|
+
* Shell corner radius for search inputs: `rounded` (pill) or `box` (rounded rectangle). Applies to search inputs (`type="search"`).
|
|
4155
|
+
*/
|
|
4156
|
+
"shape"?: 'rounded' | 'box';
|
|
2788
4157
|
/**
|
|
2789
4158
|
* The granularity that the value in a `number` input must adhere to when incrementing or decrementing. The default stepping value for number inputs is 1 Applies to number and time inputs.
|
|
2790
4159
|
*/
|
|
@@ -2798,9 +4167,17 @@ declare namespace LocalJSX {
|
|
|
2798
4167
|
* The type of form control
|
|
2799
4168
|
* @default 'text'
|
|
2800
4169
|
*/
|
|
2801
|
-
"type"?:
|
|
4170
|
+
"type"?: | 'date'
|
|
4171
|
+
| 'time'
|
|
4172
|
+
| 'text'
|
|
4173
|
+
| 'number'
|
|
4174
|
+
| 'password'
|
|
4175
|
+
| 'file'
|
|
4176
|
+
| 'color'
|
|
4177
|
+
| 'phone'
|
|
4178
|
+
| 'search';
|
|
2802
4179
|
/**
|
|
2803
|
-
* Including a `value` will pre-populate the input with the given string. Applies to text, password, number, and
|
|
4180
|
+
* Including a `value` will pre-populate the input with the given string. Applies to text, password, number, date, and search inputs.
|
|
2804
4181
|
*/
|
|
2805
4182
|
"value"?: string;
|
|
2806
4183
|
}
|
|
@@ -2952,12 +4329,12 @@ declare namespace LocalJSX {
|
|
|
2952
4329
|
value: File[] | null;
|
|
2953
4330
|
}>) => void;
|
|
2954
4331
|
}
|
|
2955
|
-
interface
|
|
4332
|
+
interface XplInputPhone {
|
|
2956
4333
|
/**
|
|
2957
|
-
*
|
|
2958
|
-
* @default
|
|
4334
|
+
* Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US".
|
|
4335
|
+
* @default 'US'
|
|
2959
4336
|
*/
|
|
2960
|
-
"
|
|
4337
|
+
"defaultCountry"?: string;
|
|
2961
4338
|
/**
|
|
2962
4339
|
* Whether the field is disabled
|
|
2963
4340
|
*/
|
|
@@ -2967,30 +4344,166 @@ declare namespace LocalJSX {
|
|
|
2967
4344
|
*/
|
|
2968
4345
|
"inputId"?: string;
|
|
2969
4346
|
/**
|
|
2970
|
-
*
|
|
2971
|
-
* @default
|
|
4347
|
+
* Enables international mode with a country selector and dial code prefix. When false, the input is locked to `defaultCountry` with no country picker and no dial code shown in the display value. Emitted value is still E.164.
|
|
4348
|
+
* @default true
|
|
2972
4349
|
*/
|
|
2973
|
-
"
|
|
4350
|
+
"isInternational"?: boolean;
|
|
2974
4351
|
/**
|
|
2975
|
-
*
|
|
2976
|
-
* @default '00:00'
|
|
4352
|
+
* Most inputs are used in forms, and should have a `name` associated with the input for handling form data.
|
|
2977
4353
|
*/
|
|
2978
|
-
"
|
|
4354
|
+
"name"?: string;
|
|
2979
4355
|
/**
|
|
2980
|
-
*
|
|
2981
|
-
* @default 'single'
|
|
4356
|
+
* Event that is emitted when the hasErrorState state changes.
|
|
2982
4357
|
*/
|
|
2983
|
-
"
|
|
4358
|
+
"onHasErrorStateChanged"?: (event: XplInputPhoneCustomEvent<string | null>) => void;
|
|
2984
4359
|
/**
|
|
2985
|
-
*
|
|
4360
|
+
* Event that emits the current value of the input (E.164 format).
|
|
2986
4361
|
*/
|
|
2987
|
-
"
|
|
4362
|
+
"onValueChange"?: (event: XplInputPhoneCustomEvent<string>) => void;
|
|
2988
4363
|
/**
|
|
2989
|
-
*
|
|
4364
|
+
* Placeholder text that appears when the field has no value
|
|
2990
4365
|
*/
|
|
2991
|
-
"
|
|
4366
|
+
"placeholder"?: string;
|
|
2992
4367
|
/**
|
|
2993
|
-
*
|
|
4368
|
+
* Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"].
|
|
4369
|
+
*/
|
|
4370
|
+
"preferredCountries"?: string[];
|
|
4371
|
+
/**
|
|
4372
|
+
* Whether the input is editable
|
|
4373
|
+
*/
|
|
4374
|
+
"readonly"?: boolean;
|
|
4375
|
+
/**
|
|
4376
|
+
* Whether the input is required
|
|
4377
|
+
*/
|
|
4378
|
+
"required"?: boolean;
|
|
4379
|
+
/**
|
|
4380
|
+
* Including a `value` will pre-populate the input (E.164 format, e.g. +14155551234).
|
|
4381
|
+
*/
|
|
4382
|
+
"value"?: string;
|
|
4383
|
+
}
|
|
4384
|
+
interface XplInputSearch {
|
|
4385
|
+
/**
|
|
4386
|
+
* Accessible name when there is no visible label from the parent; maps to `aria-label` on the input. When the parent provides a visible label, the input is named by `<label for="…">` — this prop is ignored for naming. Empty or whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed.
|
|
4387
|
+
* @default 'Search'
|
|
4388
|
+
*/
|
|
4389
|
+
"ariaLabel"?: string;
|
|
4390
|
+
/**
|
|
4391
|
+
* Passed to the native input (`autocomplete` attribute). Default `off` matches common inline-search UX; browsers may still apply heuristics.
|
|
4392
|
+
* @default 'off'
|
|
4393
|
+
*/
|
|
4394
|
+
"autocomplete"?: string;
|
|
4395
|
+
/**
|
|
4396
|
+
* Disables the field and clear control.
|
|
4397
|
+
* @default false
|
|
4398
|
+
*/
|
|
4399
|
+
"disabled"?: boolean;
|
|
4400
|
+
/**
|
|
4401
|
+
* Element id for `aria-describedby` when `hasError` (error message lives on `xpl-input`).
|
|
4402
|
+
*/
|
|
4403
|
+
"errorMessageId"?: string;
|
|
4404
|
+
/**
|
|
4405
|
+
* Set by `xpl-input` when `error` is shown — drives `aria-invalid` / `aria-describedby`.
|
|
4406
|
+
* @default false
|
|
4407
|
+
*/
|
|
4408
|
+
"hasError"?: boolean;
|
|
4409
|
+
/**
|
|
4410
|
+
* When true, parent `xpl-input` renders a visible label — omit `aria-label` on the input.
|
|
4411
|
+
* @default false
|
|
4412
|
+
*/
|
|
4413
|
+
"hasVisibleLabel"?: boolean;
|
|
4414
|
+
/**
|
|
4415
|
+
* Associates the control with the parent `xpl-input` label (`for` / `id`).
|
|
4416
|
+
*/
|
|
4417
|
+
"inputId": string;
|
|
4418
|
+
/**
|
|
4419
|
+
* Form field `name` on the native input.
|
|
4420
|
+
*/
|
|
4421
|
+
"name"?: string;
|
|
4422
|
+
/**
|
|
4423
|
+
* Emitted when the inner control loses focus. When nested under `xpl-input type="search"`, this event bubbles to the `xpl-input` host (same event name as other input types).
|
|
4424
|
+
*/
|
|
4425
|
+
"onBlurEvent"?: (event: XplInputSearchCustomEvent<FocusEvent>) => void;
|
|
4426
|
+
/**
|
|
4427
|
+
* Emitted when the inner control receives focus. When nested under `xpl-input type="search"`, this event bubbles to the `xpl-input` host (same event name as other input types).
|
|
4428
|
+
*/
|
|
4429
|
+
"onFocusEvent"?: (event: XplInputSearchCustomEvent<FocusEvent>) => void;
|
|
4430
|
+
/**
|
|
4431
|
+
* Fired on every input change (typing, paste) and when the value is cleared — mirrors `xpl-input` text fields. When nested under `xpl-input type="search"`, bubbles to the `xpl-input` host.
|
|
4432
|
+
*/
|
|
4433
|
+
"onInputEvent"?: (event: XplInputSearchCustomEvent<string>) => void;
|
|
4434
|
+
/**
|
|
4435
|
+
* Emitted when the user commits a search (Enter with no enclosing form owner, or submit of the inner search form). `event.detail` is the trimmed query string. When nested under `xpl-input type="search"`, the parent listens with `onSearch` and re-emits so the canonical `search` `@Event` stays on `xpl-input`.
|
|
4436
|
+
*/
|
|
4437
|
+
"onSearch"?: (event: XplInputSearchCustomEvent<string>) => void;
|
|
4438
|
+
/**
|
|
4439
|
+
* Fired on every input change (typing, paste) and when the value is cleared. `event.detail` is the raw `value` string (not trimmed). When nested under `xpl-input type="search"`, bubbles to the `xpl-input` host.
|
|
4440
|
+
*/
|
|
4441
|
+
"onValueChange"?: (event: XplInputSearchCustomEvent<string>) => void;
|
|
4442
|
+
/**
|
|
4443
|
+
* Placeholder shown when the value is empty.
|
|
4444
|
+
* @default 'Search'
|
|
4445
|
+
*/
|
|
4446
|
+
"placeholder"?: string;
|
|
4447
|
+
/**
|
|
4448
|
+
* Whether the input is editable.
|
|
4449
|
+
* @default false
|
|
4450
|
+
*/
|
|
4451
|
+
"readonly"?: boolean;
|
|
4452
|
+
/**
|
|
4453
|
+
* Whether the input is required.
|
|
4454
|
+
* @default false
|
|
4455
|
+
*/
|
|
4456
|
+
"required"?: boolean;
|
|
4457
|
+
/**
|
|
4458
|
+
* Shell corner radius: `rounded` (pill) or `box` (rounded rectangle).
|
|
4459
|
+
* @default 'rounded'
|
|
4460
|
+
*/
|
|
4461
|
+
"shape"?: 'rounded' | 'box';
|
|
4462
|
+
/**
|
|
4463
|
+
* Current value (controlled-friendly).
|
|
4464
|
+
* @default ''
|
|
4465
|
+
*/
|
|
4466
|
+
"value"?: string;
|
|
4467
|
+
}
|
|
4468
|
+
interface XplInputTime {
|
|
4469
|
+
/**
|
|
4470
|
+
* For time inputs, whether to allow custom option in the input even if not available in the dropdown. Example: A step of 30 minutes will allow 15:03, 15:37, etc. Applies to time inputs.
|
|
4471
|
+
* @default false
|
|
4472
|
+
*/
|
|
4473
|
+
"allowCustomOption"?: boolean;
|
|
4474
|
+
/**
|
|
4475
|
+
* Whether the field is disabled
|
|
4476
|
+
*/
|
|
4477
|
+
"disabled"?: boolean;
|
|
4478
|
+
/**
|
|
4479
|
+
* The `inputId` is used to associate the input with a label.
|
|
4480
|
+
*/
|
|
4481
|
+
"inputId"?: string;
|
|
4482
|
+
/**
|
|
4483
|
+
* Maximum value for the input.
|
|
4484
|
+
* @default '23:59'
|
|
4485
|
+
*/
|
|
4486
|
+
"max"?: number | string;
|
|
4487
|
+
/**
|
|
4488
|
+
* The minimum value for the input.
|
|
4489
|
+
* @default '00:00'
|
|
4490
|
+
*/
|
|
4491
|
+
"min"?: number | string;
|
|
4492
|
+
/**
|
|
4493
|
+
* Whether the input is a single time or a range of times. Currently, only single time is supported.
|
|
4494
|
+
* @default 'single'
|
|
4495
|
+
*/
|
|
4496
|
+
"mode"?: 'single' | 'range';
|
|
4497
|
+
/**
|
|
4498
|
+
* Most inputs are used in forms, and should have a `name` associated with the input for handling form data. Applies to all input types.
|
|
4499
|
+
*/
|
|
4500
|
+
"name"?: string;
|
|
4501
|
+
/**
|
|
4502
|
+
* Event that is emitted when the hasErrorState state changes.
|
|
4503
|
+
*/
|
|
4504
|
+
"onHasErrorStateChanged"?: (event: XplInputTimeCustomEvent<string | null>) => void;
|
|
4505
|
+
/**
|
|
4506
|
+
* Event that emits the current value of the input
|
|
2994
4507
|
*/
|
|
2995
4508
|
"onValueChange"?: (event: XplInputTimeCustomEvent<string>) => void;
|
|
2996
4509
|
/**
|
|
@@ -3036,10 +4549,114 @@ declare namespace LocalJSX {
|
|
|
3036
4549
|
}
|
|
3037
4550
|
interface XplList {
|
|
3038
4551
|
/**
|
|
3039
|
-
*
|
|
4552
|
+
* Array of list items to render. Each item should follow the ListItem interface. **Deprecated.** Use slot-based xpl-list-item children instead.
|
|
3040
4553
|
* @default []
|
|
3041
4554
|
*/
|
|
3042
4555
|
"items"?: ListItem[];
|
|
4556
|
+
/**
|
|
4557
|
+
* Accessible name for the list, exposed as `aria-label` on the host when set. Use when the list has no visible heading. Ignored when `labelledBy` is set (see `labelledBy` for precedence).
|
|
4558
|
+
*/
|
|
4559
|
+
"label"?: string;
|
|
4560
|
+
/**
|
|
4561
|
+
* Element id(s) that label this list (space-separated), exposed as `aria-labelledby` when set. When set, `label` is not applied as `aria-label` so the list has a single naming source.
|
|
4562
|
+
*/
|
|
4563
|
+
"labelledBy"?: string;
|
|
4564
|
+
/**
|
|
4565
|
+
* Emitted when an item is selected.
|
|
4566
|
+
*/
|
|
4567
|
+
"onItemSelect"?: (event: XplListCustomEvent<{ itemId?: string }>) => void;
|
|
4568
|
+
/**
|
|
4569
|
+
* Emitted when the order of items changes (after the DOM has been updated). `orderedItemIds` lists **visible** row ids only (hidden rows excluded).
|
|
4570
|
+
*/
|
|
4571
|
+
"onOrderChange"?: (event: XplListCustomEvent<XplListOrderChangeDetail>) => void;
|
|
4572
|
+
/**
|
|
4573
|
+
* When true, enables reorder UI and behavior for **slot-based** child rows (drag handle + keyboard). Legacy rows rendered from the deprecated `items` prop do **not** show a drag handle; migrate to slots if reorder is required.
|
|
4574
|
+
* @default false
|
|
4575
|
+
*/
|
|
4576
|
+
"reorderable"?: boolean;
|
|
4577
|
+
/**
|
|
4578
|
+
* Determines if this list is selectable (shows `xpl-radio` per row in a shared group). Press Escape while focus is on the **selected** row to clear selection (same as `clearSelection()`).
|
|
4579
|
+
* @default false
|
|
4580
|
+
*/
|
|
4581
|
+
"selectable"?: boolean;
|
|
4582
|
+
}
|
|
4583
|
+
interface XplListItem {
|
|
4584
|
+
/**
|
|
4585
|
+
* Whether the item is disabled.
|
|
4586
|
+
* @default false
|
|
4587
|
+
*/
|
|
4588
|
+
"disabled"?: boolean;
|
|
4589
|
+
/**
|
|
4590
|
+
* Whether to show the item in an error state.
|
|
4591
|
+
* @default false
|
|
4592
|
+
*/
|
|
4593
|
+
"error"?: boolean;
|
|
4594
|
+
/**
|
|
4595
|
+
* When true, the row is not shown and does not participate in visible-only list behavior (e.g. `orderChange` / `orderedItemIds`, reorder targets). Use for filtering, conditional display, or keeping stable `item-id` while the row is off-screen. See `xpl-list` readme “Hidden rows”. **Accessibility:** Renders an empty host with the native `hidden` attribute only (no `role="listitem"`), consistent with the row not participating as a list item while hidden.
|
|
4596
|
+
* @default false
|
|
4597
|
+
*/
|
|
4598
|
+
"hidden"?: boolean;
|
|
4599
|
+
/**
|
|
4600
|
+
* URL for link behavior. When provided, the entire row becomes clickable. Clicks on `actions` or `avatar` slots are prevented from triggering navigation.
|
|
4601
|
+
*/
|
|
4602
|
+
"href"?: string;
|
|
4603
|
+
/**
|
|
4604
|
+
* Optional item data for prop-based rendering. When provided, this takes precedence over slotted content and renders using the legacy ListItem interface. **Deprecated.** Prefer slot-based composition (named slots on `xpl-list-item`).
|
|
4605
|
+
*/
|
|
4606
|
+
"item"?: ListItem;
|
|
4607
|
+
/**
|
|
4608
|
+
* Unique identifier for this item. Used for selection and drag/drop. Mutable so the host can sync from `item-id` / `id` in `componentWillLoad` without breaking one-way data flow.
|
|
4609
|
+
*/
|
|
4610
|
+
"itemId"?: string;
|
|
4611
|
+
/**
|
|
4612
|
+
* When set by the parent, indicates this item is the active keyboard reorder item.
|
|
4613
|
+
* @default false
|
|
4614
|
+
*/
|
|
4615
|
+
"keyboardActive"?: boolean;
|
|
4616
|
+
/**
|
|
4617
|
+
* Emitted when a drag operation ends on this item (after drop or cancel).
|
|
4618
|
+
*/
|
|
4619
|
+
"onItemDragEnd"?: (event: XplListItemCustomEvent<{ itemId?: string; item: HTMLElement }>) => void;
|
|
4620
|
+
/**
|
|
4621
|
+
* Emitted when drag starts on this item.
|
|
4622
|
+
*/
|
|
4623
|
+
"onItemDragStart"?: (event: XplListItemCustomEvent<{ itemId?: string; item: HTMLElement }>) => void;
|
|
4624
|
+
/**
|
|
4625
|
+
* Emitted when an item is dropped on this item.
|
|
4626
|
+
*/
|
|
4627
|
+
"onItemDrop"?: (event: XplListItemCustomEvent<{ itemId?: string; item: HTMLElement }>) => void;
|
|
4628
|
+
/**
|
|
4629
|
+
* Emitted when the item is selected (radio change).
|
|
4630
|
+
*/
|
|
4631
|
+
"onItemSelect"?: (event: XplListItemCustomEvent<{ itemId?: string }>) => void;
|
|
4632
|
+
/**
|
|
4633
|
+
* Name attribute for radio inputs (shared across selectable items in a list).
|
|
4634
|
+
*/
|
|
4635
|
+
"radioName"?: string;
|
|
4636
|
+
/**
|
|
4637
|
+
* Whether this item is reorderable (shows a drag handle in **slot-based** layout). When the deprecated `item` prop is used, legacy markup has **no** reorder handle even if this is true.
|
|
4638
|
+
* @default false
|
|
4639
|
+
*/
|
|
4640
|
+
"reorderable"?: boolean;
|
|
4641
|
+
/**
|
|
4642
|
+
* Whether this item is selectable (shows `xpl-radio` in a shared group).
|
|
4643
|
+
* @default false
|
|
4644
|
+
*/
|
|
4645
|
+
"selectable"?: boolean;
|
|
4646
|
+
/**
|
|
4647
|
+
* Whether this item is selected (radio checked state).
|
|
4648
|
+
* @default false
|
|
4649
|
+
*/
|
|
4650
|
+
"selected"?: boolean;
|
|
4651
|
+
/**
|
|
4652
|
+
* Whether to show a divider below the item.
|
|
4653
|
+
* @default false
|
|
4654
|
+
*/
|
|
4655
|
+
"showDivider"?: boolean;
|
|
4656
|
+
/**
|
|
4657
|
+
* Optional badge to display next to the title (dot badge). Only used when `item` prop is not provided (slot mode). Matches `xpl-badge` variant values (e.g. purple, green, red).
|
|
4658
|
+
*/
|
|
4659
|
+
"titleBadgeVariant"?: BadgeVariantProp1;
|
|
3043
4660
|
}
|
|
3044
4661
|
interface XplMainNav {
|
|
3045
4662
|
/**
|
|
@@ -3073,6 +4690,34 @@ declare namespace LocalJSX {
|
|
|
3073
4690
|
*/
|
|
3074
4691
|
"variant"?: 'default' | 'warning';
|
|
3075
4692
|
}
|
|
4693
|
+
/**
|
|
4694
|
+
* Profile / account block (username, email, default slot for **`xpl-top-nav-item`** / **`xpl-divider`**).
|
|
4695
|
+
* Tag **`xpl-nav-header-menu`**; implementation folder **`xpl-nav-header-menu`**. **`.xpl-nav-header-menu__slot`** is
|
|
4696
|
+
* **`role="list"`** for slotted **`xpl-top-nav-item`** (**`role="listitem"`**).
|
|
4697
|
+
* **Slotted content:** do not add **`xpl-nav-header-menu__*`** BEM classes on nodes you pass into the default slot —
|
|
4698
|
+
* profile, list shell, and **`xpl-top-nav-item`** **`role="listitem"`** are handled by the component. Use
|
|
4699
|
+
* **`xpl-top-nav-item`** (or plain elements that are not Apollo **`xpl-*`** BEM hooks) in the slot only.
|
|
4700
|
+
* **`slot="right-aside-mobile"`** — optional block **between** the profile header and the default-slot list (e.g. narrow-only
|
|
4701
|
+
* duplicate of **every** **`slot="right-aside"`** control per Figma when **`xpl-top-nav`** hides **`right-aside`** on narrow viewports (always)).
|
|
4702
|
+
* Not **`role="list"`**; use **`xpl-button`** / **`xpl-top-nav-item`** as needed. Shown only on **narrow viewports** (one pixel below Tailwind **`md`** — **`top-nav.css`**) so bar actions stay in **`slot="right-aside"`** on wider viewports.
|
|
4703
|
+
* Light-DOM **`slotchange`** is unreliable; a host **`MutationObserver`** (child / subtree / **`slot`** attribute) keeps
|
|
4704
|
+
* **`xpl-nav-header-menu--has-right-aside-mobile`** in sync when nodes are added or retargeted after mount (same pattern as **`xpl-top-nav`**).
|
|
4705
|
+
* Stencil **`newSpecPage`** / mock-doc does not define **`MutationObserver`**; slot presence still updates on the next
|
|
4706
|
+
* deferred flush (**`setTimeout(0)`** coalesced with **`componentDidRender`**). In real browsers the observer handles child /
|
|
4707
|
+
* **`slot`** mutations without stacking uncancellable microtasks.
|
|
4708
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
4709
|
+
* values even when the page root is light (same contract as **`xpl-top-nav`** / **`xpl-top-nav-item`**).
|
|
4710
|
+
*/
|
|
4711
|
+
interface XplNavHeaderMenu {
|
|
4712
|
+
/**
|
|
4713
|
+
* Email address shown below the username.
|
|
4714
|
+
*/
|
|
4715
|
+
"email"?: string;
|
|
4716
|
+
/**
|
|
4717
|
+
* Display name shown in the profile block.
|
|
4718
|
+
*/
|
|
4719
|
+
"username"?: string;
|
|
4720
|
+
}
|
|
3076
4721
|
interface XplNavItem {
|
|
3077
4722
|
/**
|
|
3078
4723
|
* @property {boolean} - Whether or not the item should control the main nav state on click
|
|
@@ -3119,6 +4764,22 @@ declare namespace LocalJSX {
|
|
|
3119
4764
|
*/
|
|
3120
4765
|
"withPageControl"?: boolean;
|
|
3121
4766
|
}
|
|
4767
|
+
/**
|
|
4768
|
+
* A stateless container that defines a section on a page and can house any
|
|
4769
|
+
* type of content. Panels are not dismissible and may contain a top accent.
|
|
4770
|
+
*/
|
|
4771
|
+
interface XplPanel {
|
|
4772
|
+
/**
|
|
4773
|
+
* Color accent bar displayed at the top of the panel. - `none` – no accent (default) - `primary` – brand primary color - `secondary` – brand secondary color - `positive` – positive / success color - `negative` – negative / error color - `highlight` – highlight / warning color
|
|
4774
|
+
* @default 'none'
|
|
4775
|
+
*/
|
|
4776
|
+
"accent"?: 'none' | 'primary' | 'secondary' | 'positive' | 'negative' | 'highlight';
|
|
4777
|
+
/**
|
|
4778
|
+
* Padding density applied to the content area. (default and tight keep desktop padding through tablet; mobile ≤480px). - `default` – 24 px desktop & tablet / 16 px mobile - `tight` – 16 px desktop & tablet / 8 px mobile - `loose` – 40 px desktop / 32 px tablet / 24 px mobile
|
|
4779
|
+
* @default 'default'
|
|
4780
|
+
*/
|
|
4781
|
+
"padding"?: 'default' | 'tight' | 'loose';
|
|
4782
|
+
}
|
|
3122
4783
|
interface XplPopover {
|
|
3123
4784
|
/**
|
|
3124
4785
|
* Whether the popover is disabled or not.
|
|
@@ -3145,12 +4806,57 @@ declare namespace LocalJSX {
|
|
|
3145
4806
|
*/
|
|
3146
4807
|
"position"?: PopoverPosition;
|
|
3147
4808
|
}
|
|
3148
|
-
interface
|
|
4809
|
+
interface XplProgressBar {
|
|
4810
|
+
/**
|
|
4811
|
+
* The helper text displayed below the progress bar (recommended for error state)
|
|
4812
|
+
*/
|
|
4813
|
+
"helperText"?: string;
|
|
4814
|
+
/**
|
|
4815
|
+
* The label text displayed above the progress bar
|
|
4816
|
+
*/
|
|
4817
|
+
"label"?: string;
|
|
4818
|
+
/**
|
|
4819
|
+
* The maximum value of the progress (mirrors native <progress> max attribute)
|
|
4820
|
+
* @default 100
|
|
4821
|
+
*/
|
|
4822
|
+
"max"?: number;
|
|
4823
|
+
/**
|
|
4824
|
+
* The size of the progress bar height: sm = 4px, lg = 6px
|
|
4825
|
+
* @default 'lg'
|
|
4826
|
+
*/
|
|
4827
|
+
"size"?: 'sm' | 'lg';
|
|
4828
|
+
/**
|
|
4829
|
+
* The current value of the progress (mirrors native <progress> value attribute)
|
|
4830
|
+
* @default 0
|
|
4831
|
+
*/
|
|
4832
|
+
"value"?: number;
|
|
4833
|
+
/**
|
|
4834
|
+
* The visual variant of the progress bar
|
|
4835
|
+
* @default 'default'
|
|
4836
|
+
*/
|
|
4837
|
+
"variant"?: 'default' | 'success' | 'error' | 'indeterminate';
|
|
4838
|
+
}
|
|
4839
|
+
interface XplProgressIndicator {
|
|
3149
4840
|
/**
|
|
3150
|
-
* Current step
|
|
4841
|
+
* Current step index. Steps with index < currentStep are "finished", the step at currentStep is "active", and steps beyond are "waiting". Set to steps.length to mark all steps as finished. Automatically clamped to [0, steps.length].
|
|
3151
4842
|
* @default 0
|
|
3152
4843
|
*/
|
|
3153
4844
|
"currentStep"?: number;
|
|
4845
|
+
/**
|
|
4846
|
+
* Layout direction - 'horizontal' or 'vertical'
|
|
4847
|
+
* @default 'horizontal'
|
|
4848
|
+
*/
|
|
4849
|
+
"layout"?: 'horizontal' | 'vertical';
|
|
4850
|
+
/**
|
|
4851
|
+
* Whether to show step labels
|
|
4852
|
+
* @default true
|
|
4853
|
+
*/
|
|
4854
|
+
"showLabels"?: boolean;
|
|
4855
|
+
/**
|
|
4856
|
+
* Whether to show step numbers inside circles
|
|
4857
|
+
* @default true
|
|
4858
|
+
*/
|
|
4859
|
+
"showNumbers"?: boolean;
|
|
3154
4860
|
/**
|
|
3155
4861
|
* The steps is an array of the steps name.
|
|
3156
4862
|
*/
|
|
@@ -3269,6 +4975,60 @@ declare namespace LocalJSX {
|
|
|
3269
4975
|
*/
|
|
3270
4976
|
"truncate"?: boolean;
|
|
3271
4977
|
}
|
|
4978
|
+
interface XplSideNav {
|
|
4979
|
+
/**
|
|
4980
|
+
* Accessible label for the navigation landmark. Maps to `aria-label` on the `<nav>` element. Recommended when multiple navigation landmarks exist on a page (e.g., side nav + top nav + breadcrumbs) to help screen readers distinguish them.
|
|
4981
|
+
*/
|
|
4982
|
+
"label"?: string;
|
|
4983
|
+
}
|
|
4984
|
+
interface XplSideNavItem {
|
|
4985
|
+
/**
|
|
4986
|
+
* Whether the component is disabled
|
|
4987
|
+
* @default false
|
|
4988
|
+
*/
|
|
4989
|
+
"disabled"?: boolean;
|
|
4990
|
+
/**
|
|
4991
|
+
* Whether the item is currently expanded (only applies when hasChildren is true)
|
|
4992
|
+
* @default false
|
|
4993
|
+
*/
|
|
4994
|
+
"expanded"?: boolean;
|
|
4995
|
+
/**
|
|
4996
|
+
* Whether the item has child items; when true, shows expand/collapse and a default slot for nested items. Mutually exclusive with <code>link</code>. If <code>link</code> is already true, setting <code>has-children</code> is reverted (<code>@Watch('hasChildren')</code>, <code>@Watch('link')</code>, <code>componentWillLoad</code>, and <code>componentWillRender</code>) so reflected attributes match CSS.
|
|
4997
|
+
* @default false
|
|
4998
|
+
*/
|
|
4999
|
+
"hasChildren"?: boolean;
|
|
5000
|
+
/**
|
|
5001
|
+
* Whether the component is hidden
|
|
5002
|
+
* @default false
|
|
5003
|
+
*/
|
|
5004
|
+
"hidden"?: boolean;
|
|
5005
|
+
/**
|
|
5006
|
+
* Optional icon name; default content for <code>slot="icon"</code> (leaf and footer rows only). Expandable parents (<code>has-children</code>) do not show an icon column — only the chevron and label. Omit for nested children under a <code>has-children</code> parent — the icon column is hidden for sub-items.
|
|
5007
|
+
*/
|
|
5008
|
+
"icon"?: string;
|
|
5009
|
+
/**
|
|
5010
|
+
* The display label for the navigation item (button / expandable rows; omit in <code>link</code> mode).
|
|
5011
|
+
*/
|
|
5012
|
+
"label"?: string;
|
|
5013
|
+
/**
|
|
5014
|
+
* When true, the row becomes a slot-only container for consumer-provided links. The consumer provides the full anchor element (or router link) via the default slot. In link mode, <code>label</code> and <code>icon</code> props should not be used. Link mode does not support <code>has-children</code>; use the default button mode for expandable items. When <code>link</code> is true, <code>hasChildren</code> is always false (enforced by <code>@Watch('link')</code>, <code>@Watch('hasChildren')</code>, <code>componentWillLoad</code>, and <code>componentWillRender</code>).
|
|
5015
|
+
* @default false
|
|
5016
|
+
*/
|
|
5017
|
+
"link"?: boolean;
|
|
5018
|
+
/**
|
|
5019
|
+
* Emitted when the expanded state changes (hasChildren items only). Detail is the new expanded value.
|
|
5020
|
+
*/
|
|
5021
|
+
"onExpandedChange"?: (event: XplSideNavItemCustomEvent<boolean>) => void;
|
|
5022
|
+
/**
|
|
5023
|
+
* Emitted when a leaf item is clicked. Expandable parents use expandedChange instead.
|
|
5024
|
+
*/
|
|
5025
|
+
"onNavClick"?: (event: XplSideNavItemCustomEvent<void>) => void;
|
|
5026
|
+
/**
|
|
5027
|
+
* Whether the item is currently in a selected state
|
|
5028
|
+
* @default false
|
|
5029
|
+
*/
|
|
5030
|
+
"selected"?: boolean;
|
|
5031
|
+
}
|
|
3272
5032
|
interface XplSkeleton {
|
|
3273
5033
|
/**
|
|
3274
5034
|
* A CSS class name to apply to the component.
|
|
@@ -3334,77 +5094,208 @@ declare namespace LocalJSX {
|
|
|
3334
5094
|
*/
|
|
3335
5095
|
"variant"?: 'default' | 'warning';
|
|
3336
5096
|
}
|
|
3337
|
-
interface
|
|
5097
|
+
interface XplSpotlight {
|
|
3338
5098
|
/**
|
|
3339
|
-
*
|
|
5099
|
+
* Footer action layout. `default` and `dual` both render the standard Back/Next layout, while `single` renders a single acknowledgement CTA (e.g. "Got it!"). Only applies when `showActions` is `true`.
|
|
5100
|
+
* @default 'default'
|
|
3340
5101
|
*/
|
|
3341
|
-
"
|
|
5102
|
+
"actionLayout"?: SpotlightActionLayout;
|
|
3342
5103
|
/**
|
|
3343
|
-
*
|
|
3344
|
-
* @default
|
|
5104
|
+
* Which corner of the card the anchor dot uses when not using `target`, or as the preferred side for Floating UI.
|
|
5105
|
+
* @default 'top-left'
|
|
3345
5106
|
*/
|
|
3346
|
-
"
|
|
5107
|
+
"anchorPosition"?: SpotlightAnchorPosition;
|
|
3347
5108
|
/**
|
|
3348
|
-
*
|
|
5109
|
+
* Body copy when the `body` slot has no slotted content. Whitespace-only values are treated as empty (no fallback paragraph).
|
|
3349
5110
|
*/
|
|
3350
|
-
"
|
|
3351
|
-
}
|
|
3352
|
-
interface XplTabPanel {
|
|
5111
|
+
"body"?: string;
|
|
3353
5112
|
/**
|
|
3354
|
-
*
|
|
3355
|
-
* @default
|
|
5113
|
+
* Current step index (1-based). Used with `totalSteps` for the step label and for disabling default Back/Next when `showSteps` is true.
|
|
5114
|
+
* @default 1
|
|
3356
5115
|
*/
|
|
3357
|
-
"
|
|
5116
|
+
"currentStep"?: number;
|
|
3358
5117
|
/**
|
|
3359
|
-
*
|
|
5118
|
+
* Heading when the `title` slot has no slotted content. Whitespace-only values are treated as empty (no fallback title span).
|
|
3360
5119
|
*/
|
|
3361
|
-
"
|
|
5120
|
+
"heading"?: string;
|
|
5121
|
+
/**
|
|
5122
|
+
* Whether to show the dismiss (close) control.
|
|
5123
|
+
* @default true
|
|
5124
|
+
*/
|
|
5125
|
+
"isDismissible"?: boolean;
|
|
5126
|
+
/**
|
|
5127
|
+
* Controls whether the spotlight is rendered. When false, the host remains in the DOM but the spotlight UI is hidden.
|
|
5128
|
+
* @default true
|
|
5129
|
+
*/
|
|
5130
|
+
"isOpen"?: boolean;
|
|
5131
|
+
/**
|
|
5132
|
+
* Emitted when the dismiss control is activated or Escape is pressed (when dismissible).
|
|
5133
|
+
*/
|
|
5134
|
+
"onDismiss"?: (event: XplSpotlightCustomEvent<void>) => void;
|
|
5135
|
+
/**
|
|
5136
|
+
* Emitted when the primary action control is activated (default: Next).
|
|
5137
|
+
*/
|
|
5138
|
+
"onPrimaryAction"?: (event: XplSpotlightCustomEvent<void>) => void;
|
|
5139
|
+
/**
|
|
5140
|
+
* Emitted when the secondary action control is activated (default: Back).
|
|
5141
|
+
*/
|
|
5142
|
+
"onSecondaryAction"?: (event: XplSpotlightCustomEvent<void>) => void;
|
|
5143
|
+
/**
|
|
5144
|
+
* Emitted when the target indicator is clicked. Consumers typically toggle `isOpen` in response.
|
|
5145
|
+
*/
|
|
5146
|
+
"onTargetClick"?: (event: XplSpotlightCustomEvent<void>) => void;
|
|
5147
|
+
/**
|
|
5148
|
+
* Label used for the default primary action button. Only applies when `showActions` is `true`.
|
|
5149
|
+
* @default 'Next'
|
|
5150
|
+
*/
|
|
5151
|
+
"primaryActionLabel"?: string;
|
|
5152
|
+
/**
|
|
5153
|
+
* Label used for the default secondary action button. Only applies when `showActions` is `true`.
|
|
5154
|
+
* @default 'Back'
|
|
5155
|
+
*/
|
|
5156
|
+
"secondaryActionLabel"?: string;
|
|
5157
|
+
/**
|
|
5158
|
+
* Whether to show the actions row (primary / secondary and optional step counter). When `false`, the spotlight has no action buttons — useful for single-step informational callouts that rely solely on the dismiss control.
|
|
5159
|
+
* @default true
|
|
5160
|
+
*/
|
|
5161
|
+
"showActions"?: boolean;
|
|
5162
|
+
/**
|
|
5163
|
+
* When true, the media region is shown. Slotted `image` content is rendered when present; otherwise the built-in placeholder UI is shown. When false, the entire media block is hidden.
|
|
5164
|
+
* @default true
|
|
5165
|
+
*/
|
|
5166
|
+
"showImage"?: boolean;
|
|
5167
|
+
/**
|
|
5168
|
+
* Whether to show the step counter between actions (`currentStep` of `totalSteps`) and whether default Back/Next use step-based disabled state.
|
|
5169
|
+
* @default true
|
|
5170
|
+
*/
|
|
5171
|
+
"showSteps"?: boolean;
|
|
5172
|
+
/**
|
|
5173
|
+
* CSS selector for the element this spotlight anchors to. When set, placement uses Floating UI (`computePosition` with `strategy: 'fixed'`, plus `flip`, `shift`, `offset`) and `autoUpdate` for scroll/resize. The host receives `left` / `top` and the `xpl-spotlight--anchored` class. Invalid selectors are ignored; layout falls back to `anchor-position`.
|
|
5174
|
+
*/
|
|
5175
|
+
"target"?: string;
|
|
5176
|
+
/**
|
|
5177
|
+
* Total number of steps (1-based upper bound). Used with `currentStep` for the step label and for disabling default Back/Next when `showSteps` is true.
|
|
5178
|
+
* @default 1
|
|
5179
|
+
*/
|
|
5180
|
+
"totalSteps"?: number;
|
|
5181
|
+
}
|
|
5182
|
+
interface XplTab {
|
|
5183
|
+
/**
|
|
5184
|
+
* Disables this tab (pill or underline).
|
|
5185
|
+
* @default false
|
|
5186
|
+
*/
|
|
5187
|
+
"disabled"?: boolean;
|
|
5188
|
+
/**
|
|
5189
|
+
* Set when the parent `xpl-tabs` has `disabled` (group-disabled).
|
|
5190
|
+
* @default false
|
|
5191
|
+
*/
|
|
5192
|
+
"groupDisabled"?: boolean;
|
|
5193
|
+
/**
|
|
5194
|
+
* Optional icon name for segment-style pills (`type="segment"` on parent `xpl-tabs`). Ignored for default tabs.
|
|
5195
|
+
*/
|
|
5196
|
+
"icon"?: string;
|
|
5197
|
+
/**
|
|
5198
|
+
* Icon position for segment-style pills.
|
|
5199
|
+
* @default 'start'
|
|
5200
|
+
*/
|
|
5201
|
+
"iconPosition"?: 'start' | 'end';
|
|
5202
|
+
/**
|
|
5203
|
+
* Emitted when this tab is activated (if not disabled). The event `detail` is this tab’s `target` string. Parent `xpl-tabs` listens and updates selection; use `tabChange` on `xpl-tabs` for the group-level event.
|
|
5204
|
+
*/
|
|
5205
|
+
"onTabChange"?: (event: XplTabCustomEvent<string>) => void;
|
|
5206
|
+
/**
|
|
5207
|
+
* Whether the tab is selected
|
|
5208
|
+
* @default false
|
|
5209
|
+
*/
|
|
5210
|
+
"selected"?: boolean;
|
|
5211
|
+
/**
|
|
5212
|
+
* The target of the tab, required for the tab to be selected
|
|
5213
|
+
*/
|
|
5214
|
+
"target"?: string;
|
|
3362
5215
|
}
|
|
5216
|
+
interface XplTabPanel {
|
|
5217
|
+
/**
|
|
5218
|
+
* Whether the panel is selected
|
|
5219
|
+
* @default false
|
|
5220
|
+
*/
|
|
5221
|
+
"selected"?: boolean;
|
|
5222
|
+
/**
|
|
5223
|
+
* The target of the tab, required for the tab to be selected
|
|
5224
|
+
*/
|
|
5225
|
+
"target"?: string;
|
|
5226
|
+
}
|
|
5227
|
+
/**
|
|
5228
|
+
* Compositional tables use CSS grid on the host (`role="grid"`). Legacy mode uses a `<table>`.
|
|
5229
|
+
*/
|
|
3363
5230
|
interface XplTable {
|
|
3364
5231
|
/**
|
|
3365
|
-
* The header values for each column.
|
|
5232
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The header values for each column.
|
|
3366
5233
|
*/
|
|
3367
5234
|
"columns"?: string[];
|
|
3368
5235
|
/**
|
|
3369
|
-
* The data for the body of the table.
|
|
5236
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The data for the body of the table.
|
|
3370
5237
|
*/
|
|
3371
5238
|
"data"?: string[][];
|
|
3372
5239
|
/**
|
|
3373
|
-
* The data for the footer of the table.
|
|
5240
|
+
* @deprecated Legacy data-driven table API only (`columns` / `data` / `footer`). May be removed in a future major release. The data for the footer of the table.
|
|
3374
5241
|
*/
|
|
3375
5242
|
"footer"?: string[][];
|
|
3376
5243
|
/**
|
|
3377
|
-
* When true, the first column
|
|
5244
|
+
* When true, the first **data** column (per row) is sticky during horizontal scroll. Leading compositional columns are skipped: `selectable` (checkbox) and/or `row-reorderable` (grip) are not frozen so they scroll with the grid; the next column stays pinned at `left: 0`.
|
|
3378
5245
|
*/
|
|
3379
5246
|
"freeze"?: boolean;
|
|
3380
5247
|
/**
|
|
3381
|
-
* Toggles to show the sort button on each table head
|
|
5248
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. Toggles to show the sort button on each table head.
|
|
3382
5249
|
* @default false
|
|
3383
5250
|
*/
|
|
3384
5251
|
"isSortable"?: boolean;
|
|
3385
5252
|
/**
|
|
3386
|
-
*
|
|
5253
|
+
* Accessible label for the table. Maps to `aria-label` in compositional mode.
|
|
5254
|
+
*/
|
|
5255
|
+
"label"?: string;
|
|
5256
|
+
/**
|
|
5257
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. Toggles a selectable checkbox for each row in the table.
|
|
3387
5258
|
*/
|
|
3388
5259
|
"multiselect"?: boolean;
|
|
3389
5260
|
/**
|
|
3390
|
-
*
|
|
5261
|
+
* Emitted after body rows are reordered via drag-and-drop (compositional `row-reorderable` mode).
|
|
3391
5262
|
*/
|
|
3392
|
-
"
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
5263
|
+
"onRowOrderChange"?: (event: XplTableCustomEvent<XplTableRowOrderChangeDetail>) => void;
|
|
5264
|
+
/**
|
|
5265
|
+
* Emitted when row selection changes in compositional `selectable` mode. Listen on this `xpl-table` instance only; the event does not bubble to parents—use `table.addEventListener('rowSelectionChange', …)` on the same element. When wiring from a script in static HTML, wait for `customElements.whenDefined('xpl-table')` so the host is ready. (Named `rowSelectionChange` to avoid clashing with the native `selectionchange` event.)
|
|
5266
|
+
*/
|
|
5267
|
+
"onRowSelectionChange"?: (event: XplTableCustomEvent<{ selectedRowIds: string[] }>) => void;
|
|
5268
|
+
/**
|
|
5269
|
+
* Emitted when sort changes in **legacy** or **compositional** mode. `event.detail` is a plain object: **sort-key slug → `'asc' | 'desc' | null`** (null = that column not sorted). Keys match legacy column titles (slugified) or compositional `sort-key` / label slugs. Call `event.preventDefault()` in legacy mode to skip built-in row sorting; compositional tables do not reorder rows automatically.
|
|
5270
|
+
*/
|
|
5271
|
+
"onSortChanged"?: (event: XplTableCustomEvent<XplTableSortChangedDetail>) => void;
|
|
3397
5272
|
/**
|
|
3398
|
-
* Callback function that is called when the checkbox for a row of a `multiselect` table is checked
|
|
5273
|
+
* Callback function that is called when the checkbox for a row of a `multiselect` table is checked.
|
|
3399
5274
|
*/
|
|
3400
5275
|
"onTableSelect"?: (event: XplTableCustomEvent<any>) => void;
|
|
3401
5276
|
/**
|
|
3402
|
-
*
|
|
5277
|
+
* Icon name for the optional `xpl-icon` inside each **managed** reorder grip when the row is **not** in keyboard reorder mode (pointer / idle). Set to `""` to omit the icon so you can style the button or author a fully custom reorder column in markup. When omitted, defaults to `grip-dots-vertical`.
|
|
5278
|
+
*/
|
|
5279
|
+
"reorderHandleIcon"?: string;
|
|
5280
|
+
/**
|
|
5281
|
+
* Icon name for the managed reorder grip **while that row is in keyboard reorder mode** (after the user activates the grip with Enter or Space). Use a different icon than `reorder-handle-icon` so users can see they should use arrow keys. When omitted, defaults to `caret-expand-y` (same as `xpl-list` keyboard reorder). Set to `""` to show no icon in keyboard mode only (combine with CSS on `.xpl-table__row-drag-handle--keyboard-mode` if needed).
|
|
5282
|
+
*/
|
|
5283
|
+
"reorderHandleIconKeyboard"?: string;
|
|
5284
|
+
/**
|
|
5285
|
+
* When true (compositional mode only), **prepends** a managed reorder column as the **first** grid column (empty header + grip button per body row) and enables HTML5 drag-and-drop row reordering (same interaction model as `xpl-list`). With `selectable`, DOM order is **reorder | selection | data** unless you author a custom reorder column. The table updates the DOM and emits `rowOrderChange`; consumers should persist order if needed. Ignored in legacy `columns`/`data` mode.
|
|
5286
|
+
*/
|
|
5287
|
+
"rowReorderable"?: boolean;
|
|
5288
|
+
/**
|
|
5289
|
+
* When true (compositional mode only), enables row selection state, the selection toolbar (“N Selected”), and `rowSelectionChange`. **You must add the selection column in your markup:** a header cell with `type="checkbox"`, a body cell containing `xpl-checkbox` per row (aligned with that column), and matching `xpl-table-footer-cell` cells when you use a footer. Each body row should use `row-id` on `xpl-table-row` (or accept auto-generated ids) so `rowSelectionChange` can report `selectedRowIds`. The toolbar uses the same layout as `xpl-toolbar` and is visible only while at least one row is selected. Use `toolbar-actions-left` / `toolbar-actions-right` slots on this host for bulk actions.
|
|
5290
|
+
*/
|
|
5291
|
+
"selectable"?: boolean;
|
|
5292
|
+
/**
|
|
5293
|
+
* @deprecated Legacy data-driven table API only. May be removed in a future major release. The values for the input for each row when multiselect is activated.
|
|
3403
5294
|
* @default []
|
|
3404
5295
|
*/
|
|
3405
5296
|
"selectedValues"?: string[];
|
|
3406
5297
|
/**
|
|
3407
|
-
* Manually determined if the column is sortable
|
|
5298
|
+
* @deprecated Use the compositional slot-based API instead. Will be removed in a future major release. Manually determined if the column is sortable.
|
|
3408
5299
|
* @default []
|
|
3409
5300
|
*/
|
|
3410
5301
|
"sortableColumns"?: boolean[];
|
|
@@ -3413,47 +5304,141 @@ declare namespace LocalJSX {
|
|
|
3413
5304
|
*/
|
|
3414
5305
|
"striped"?: boolean;
|
|
3415
5306
|
}
|
|
5307
|
+
interface XplTableBody {
|
|
5308
|
+
}
|
|
5309
|
+
interface XplTableCell {
|
|
5310
|
+
/**
|
|
5311
|
+
* Horizontal text alignment within the cell.
|
|
5312
|
+
* @default 'left'
|
|
5313
|
+
*/
|
|
5314
|
+
"align"?: 'left' | 'right' | 'center';
|
|
5315
|
+
/**
|
|
5316
|
+
* Renders cell text in bold (--xpl-font-weight-semibold).
|
|
5317
|
+
* @default false
|
|
5318
|
+
*/
|
|
5319
|
+
"bold"?: boolean;
|
|
5320
|
+
/**
|
|
5321
|
+
* Whether the cell and its interactive children are disabled. Set automatically by xpl-table-row.
|
|
5322
|
+
* @default false
|
|
5323
|
+
*/
|
|
5324
|
+
"disabled"?: boolean;
|
|
5325
|
+
/**
|
|
5326
|
+
* Adds an underline to cell text.
|
|
5327
|
+
* @default false
|
|
5328
|
+
*/
|
|
5329
|
+
"underline"?: boolean;
|
|
5330
|
+
}
|
|
5331
|
+
interface XplTableFooter {
|
|
5332
|
+
}
|
|
5333
|
+
interface XplTableFooterCell {
|
|
5334
|
+
/**
|
|
5335
|
+
* Horizontal text alignment within the cell.
|
|
5336
|
+
* @default 'left'
|
|
5337
|
+
*/
|
|
5338
|
+
"align"?: 'left' | 'right' | 'center';
|
|
5339
|
+
}
|
|
3416
5340
|
interface XplTableHeader {
|
|
3417
5341
|
}
|
|
3418
5342
|
interface XplTableHeaderCell {
|
|
5343
|
+
/**
|
|
5344
|
+
* Horizontal text alignment within the header cell.
|
|
5345
|
+
* @default 'left'
|
|
5346
|
+
*/
|
|
5347
|
+
"align"?: 'left' | 'right' | 'center';
|
|
5348
|
+
/**
|
|
5349
|
+
* Accessible name for the header checkbox (native `aria-label`). Defaults to “Select all rows” when `type` is `checkbox`.
|
|
5350
|
+
*/
|
|
5351
|
+
"checkboxAriaLabel"?: string;
|
|
5352
|
+
/**
|
|
5353
|
+
* Whether the header checkbox is checked
|
|
5354
|
+
* @default false
|
|
5355
|
+
*/
|
|
5356
|
+
"checked"?: boolean;
|
|
5357
|
+
/**
|
|
5358
|
+
* CSS grid track size for this column (e.g. `1fr`, `minmax(120px, 1fr)`, `auto`). When set, overrides `width`. Use this when you need flexible columns; default layout uses `auto` per column unless you set a track here.
|
|
5359
|
+
*/
|
|
5360
|
+
"columnWidth"?: string;
|
|
3419
5361
|
/**
|
|
3420
5362
|
* Icon to display in the cell. See [xpl-icon available icons](../xpl-icon/ICONS.md) for valid icon names.
|
|
3421
5363
|
*/
|
|
3422
5364
|
"icon"?: string;
|
|
3423
5365
|
/**
|
|
3424
|
-
*
|
|
5366
|
+
* Whether the checkbox is in indeterminate (partially selected) state
|
|
5367
|
+
* @default false
|
|
5368
|
+
*/
|
|
5369
|
+
"indeterminate"?: boolean;
|
|
5370
|
+
/**
|
|
5371
|
+
* Text to display in the cell.
|
|
3425
5372
|
* @default ''
|
|
3426
5373
|
*/
|
|
3427
5374
|
"label"?: string;
|
|
3428
5375
|
/**
|
|
3429
|
-
* Emitted when
|
|
5376
|
+
* Emitted when header checkbox changes
|
|
5377
|
+
*/
|
|
5378
|
+
"onHeaderCheckboxChange"?: (event: XplTableHeaderCellCustomEvent<boolean>) => void;
|
|
5379
|
+
/**
|
|
5380
|
+
* Emitted when a sortable label header is activated. Parent `xpl-table` coordinates columns and emits `sortChanged`.
|
|
5381
|
+
*/
|
|
5382
|
+
"onHeaderSortChange"?: (event: XplTableHeaderCellCustomEvent<HeaderSortChangeDetail>) => void;
|
|
5383
|
+
/**
|
|
5384
|
+
* Active sort direction for this column when `sortable`. Set by `xpl-table` when used inside a compositional table; may be set by the app for controlled updates.
|
|
3430
5385
|
*/
|
|
3431
|
-
"
|
|
5386
|
+
"sortDirection"?: 'asc' | 'desc' | null;
|
|
3432
5387
|
/**
|
|
3433
|
-
*
|
|
5388
|
+
* When `sortable` is true, optional stable id used as the key in `sortChanged`’s detail object. Falls back to a slug of `label` when omitted.
|
|
5389
|
+
*/
|
|
5390
|
+
"sortKey"?: string;
|
|
5391
|
+
/**
|
|
5392
|
+
* When true (and `type` is `label`), renders a sort control (button + affordance icon).
|
|
3434
5393
|
* @default false
|
|
3435
5394
|
*/
|
|
3436
5395
|
"sortable"?: boolean;
|
|
3437
5396
|
/**
|
|
3438
|
-
*
|
|
5397
|
+
* The type of cell to render.
|
|
3439
5398
|
* @default 'label'
|
|
3440
5399
|
*/
|
|
3441
|
-
"type"?: 'label' | 'checkbox' | 'icon';
|
|
5400
|
+
"type"?: 'label' | 'checkbox' | 'icon' | 'empty';
|
|
3442
5401
|
/**
|
|
3443
|
-
*
|
|
5402
|
+
* Fixed width for this column in pixels (minimum 48px). Sets the grid track to `Npx`. Ignored when `columnWidth` is set. When omitted, the column track defaults to `auto` (content-sized).
|
|
3444
5403
|
*/
|
|
3445
5404
|
"width"?: number;
|
|
3446
5405
|
}
|
|
5406
|
+
interface XplTableRow {
|
|
5407
|
+
/**
|
|
5408
|
+
* Whether the row and its cells are disabled.
|
|
5409
|
+
* @default false
|
|
5410
|
+
*/
|
|
5411
|
+
"disabled"?: boolean;
|
|
5412
|
+
/**
|
|
5413
|
+
* Stable identifier for this row when used with a selectable compositional `xpl-table`. If omitted, the parent table assigns a unique id.
|
|
5414
|
+
*/
|
|
5415
|
+
"rowId"?: string;
|
|
5416
|
+
/**
|
|
5417
|
+
* Whether the row is visually selected.
|
|
5418
|
+
* @default false
|
|
5419
|
+
*/
|
|
5420
|
+
"selected"?: boolean;
|
|
5421
|
+
}
|
|
3447
5422
|
interface XplTabs {
|
|
5423
|
+
/**
|
|
5424
|
+
* Disables the whole tab group (headings, mobile select, and segment pills).
|
|
5425
|
+
* @default false
|
|
5426
|
+
*/
|
|
5427
|
+
"disabled"?: boolean;
|
|
3448
5428
|
/**
|
|
3449
5429
|
* Whether to make the tabs full width
|
|
3450
5430
|
* @default false
|
|
3451
5431
|
*/
|
|
3452
5432
|
"fullWidth"?: boolean;
|
|
3453
5433
|
/**
|
|
3454
|
-
*
|
|
5434
|
+
* Emitted when the selected tab changes (click, keyboard, or mobile `xpl-select`). The event `detail` is the selected tab’s `target` string. Always dispatched from this host (including after heading clicks) so `event.target` is consistent for listeners on `xpl-tabs` or bubbling ancestors.
|
|
3455
5435
|
*/
|
|
3456
5436
|
"onTabChange"?: (event: XplTabsCustomEvent<string>) => void;
|
|
5437
|
+
/**
|
|
5438
|
+
* Visual and layout variant: classic underline tabs or segment (pill) controls.
|
|
5439
|
+
* @default 'tabs'
|
|
5440
|
+
*/
|
|
5441
|
+
"type"?: 'tabs' | 'segment';
|
|
3457
5442
|
/**
|
|
3458
5443
|
* The selected tab target value, defaults to the first tab
|
|
3459
5444
|
*/
|
|
@@ -3461,9 +5446,46 @@ declare namespace LocalJSX {
|
|
|
3461
5446
|
}
|
|
3462
5447
|
interface XplTag {
|
|
3463
5448
|
/**
|
|
3464
|
-
*
|
|
5449
|
+
* Whether the tag is disabled
|
|
5450
|
+
* @default false
|
|
3465
5451
|
*/
|
|
3466
|
-
"
|
|
5452
|
+
"disabled"?: boolean;
|
|
5453
|
+
/**
|
|
5454
|
+
* Whether the tag shows a dismiss button
|
|
5455
|
+
* @default true
|
|
5456
|
+
*/
|
|
5457
|
+
"dismissible"?: boolean;
|
|
5458
|
+
/**
|
|
5459
|
+
* When true, the tag label uses native HTML5 drag (the inner label is the drag source). Named `isDraggable` so the Stencil prop does not collide with the native `HTMLElement.draggable` API. `reflect: false` avoids syncing a `draggable` attribute onto the host; the inner label remains the drag source. Host `onDragStart` still suppresses stray native drags from host chrome.
|
|
5460
|
+
* @default false
|
|
5461
|
+
*/
|
|
5462
|
+
"isDraggable"?: boolean;
|
|
5463
|
+
/**
|
|
5464
|
+
* Emitted when the tag is dismissed (content click when `isDraggable` is false, or dismiss button click).
|
|
5465
|
+
* @deprecated Use `tagRemove` for dismiss button clicks only. The `close` event will be removed in a future major version.
|
|
5466
|
+
*/
|
|
5467
|
+
"onClose"?: (event: XplTagCustomEvent<void>) => void;
|
|
5468
|
+
/**
|
|
5469
|
+
* Emitted when a drag operation ends. `event.detail`: `{ tagId?, dropped, originalEvent }`. `dropped` is `true` when `dataTransfer.dropEffect === 'move'`. `originalEvent` is the native `DragEvent`; browsers may clear `dataTransfer` after the synchronous handler runs — do not read `originalEvent.dataTransfer.getData(...)` asynchronously.
|
|
5470
|
+
*/
|
|
5471
|
+
"onTagDragEnd"?: (event: XplTagCustomEvent<TagDragEndDetail>) => void;
|
|
5472
|
+
/**
|
|
5473
|
+
* Emitted when a drag operation starts (native `dragstart` on the inner label). `event.detail`: `{ tagId?, content, originalEvent }`. `originalEvent` is the native `DragEvent`; browsers may clear `dataTransfer` after the synchronous handler runs — do not read `originalEvent.dataTransfer.getData(...)` asynchronously.
|
|
5474
|
+
*/
|
|
5475
|
+
"onTagDragStart"?: (event: XplTagCustomEvent<TagDragStartDetail>) => void;
|
|
5476
|
+
/**
|
|
5477
|
+
* Emitted when the tag dismiss (×) button is clicked
|
|
5478
|
+
*/
|
|
5479
|
+
"onTagRemove"?: (event: XplTagCustomEvent<void>) => void;
|
|
5480
|
+
/**
|
|
5481
|
+
* The size of the tag
|
|
5482
|
+
* @default 'default'
|
|
5483
|
+
*/
|
|
5484
|
+
"size"?: 'default' | 'sm';
|
|
5485
|
+
/**
|
|
5486
|
+
* Optional stable id for the tag. When set, it is included in `tagDragStart` / `tagDragEnd` detail and written to `dataTransfer` as `application/x-tag-id`.
|
|
5487
|
+
*/
|
|
5488
|
+
"tagId"?: string;
|
|
3467
5489
|
}
|
|
3468
5490
|
interface XplToast {
|
|
3469
5491
|
/**
|
|
@@ -3552,6 +5574,111 @@ declare namespace LocalJSX {
|
|
|
3552
5574
|
*/
|
|
3553
5575
|
"text"?: string;
|
|
3554
5576
|
}
|
|
5577
|
+
/**
|
|
5578
|
+
* Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-aside`** then **user menu**
|
|
5579
|
+
* (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
|
|
5580
|
+
* 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.
|
|
5581
|
+
* **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).
|
|
5582
|
+
* **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
|
|
5583
|
+
* on **`ownerDocument`** so nested dropdowns close before the drawer.
|
|
5584
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
|
|
5585
|
+
* resolve to dark-mode values even when the page root is light. Floating overlays (e.g. **`xpl-popover`** / **`xpl-dropdown`**
|
|
5586
|
+
* content teleported outside the host) do not inherit this scope — add **`dark`** on those panels if they should match.
|
|
5587
|
+
* **Layout:** **`right-aside`** and the user-menu region are wrapped internally (**`.xpl-top-nav__right-lead`**, etc.).
|
|
5588
|
+
* Consumers should not add those BEM classes — slot content only.
|
|
5589
|
+
* **Brand logo:** use **`brand-logo`** (URL) for a built-in **`<img>`**, or **`slot="brand-logo"`** for custom markup (e.g. **`xpl-icon`**, SVG). When the URL prop is set, it takes precedence and the slot is not used for the image. On **narrow viewports** (one pixel below Tailwind **`md`** — see **`top-nav.css`**), **`brand-name`** text is hidden in the bar (logo / slot mark only); keep a meaningful **`alt`** on **`brand-logo`** or accessible slotted mark for context.
|
|
5590
|
+
* **Narrow / mobile** (same breakpoint as above): **`slot="left-aside"`** is **hidden** in the bar until **`nav-control`**
|
|
5591
|
+
* is set **and** the drawer is open (floating panel per Figma). **Without **`nav-control`**, there is no mobile drawer** —
|
|
5592
|
+
* primary links remain hidden below **`md`** until the viewport is wide enough for the horizontal bar. The built-in **brand**
|
|
5593
|
+
* stays in the top bar (**hamburger → brand** when **`nav-control`** is set). **`right-aside`** is hidden in the bar on narrow
|
|
5594
|
+
* viewports (**`top-nav.css`**, one pixel below Tailwind **`md`**); duplicate those actions into **`xpl-nav-header-menu`**
|
|
5595
|
+
* **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
|
|
5596
|
+
* **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
|
|
5597
|
+
* and emits **`navOpen(false)`** so the two layers do not stack.
|
|
5598
|
+
*/
|
|
5599
|
+
interface XplTopNav {
|
|
5600
|
+
/**
|
|
5601
|
+
* Destination URL for the brand control when using native navigation (**`<a href>`**). When unset, the brand is a **`role="button"`** control and **`brandClick`** fires on activation instead.
|
|
5602
|
+
*/
|
|
5603
|
+
"brandHref"?: string;
|
|
5604
|
+
/**
|
|
5605
|
+
* Optional image URL for the brand mark (leading the brand row, before **`brand-name`** text). When set, renders **`<img class="xpl-top-nav__brand-logo">`** and ignores **`slot="brand-logo"`** for the mark. When unset, use **`slot="brand-logo"`** for custom logo content.
|
|
5606
|
+
*/
|
|
5607
|
+
"brandLogo"?: string;
|
|
5608
|
+
/**
|
|
5609
|
+
* Visible product / app name next to **`brand-logo`**. Omit for logo-only; provide **`brand-logo`** and/or this string to show the built-in brand row (**`left-aside`** is then primary nav links only).
|
|
5610
|
+
*/
|
|
5611
|
+
"brandName"?: string;
|
|
5612
|
+
/**
|
|
5613
|
+
* Label text for the built-in account menu trigger (shown **before** the **`chevron-down`** icon) when **`slot="user-menu"`** is present and **`slot="user-menu-trigger"`** is not used. When empty or whitespace-only, the trigger shows only the chevron and uses **`aria-label="Open account menu"`** on the button.
|
|
5614
|
+
*/
|
|
5615
|
+
"childAccountLabel"?: string;
|
|
5616
|
+
/**
|
|
5617
|
+
* Accessible name for the `<nav>` landmark (maps to `aria-label`). Use a unique label when the page has multiple navigation regions (e.g. side nav + top nav). When unset, defaults to `top-navigation-bar`.
|
|
5618
|
+
*/
|
|
5619
|
+
"label"?: string;
|
|
5620
|
+
/**
|
|
5621
|
+
* When true, renders the navigation control (hamburger) for toggling the left slot on small viewports. The control is **hidden from the Tailwind `md` breakpoint up**; collapse/show for **`left-aside`** uses **`max-width: calc(theme('screens.md') - 1px)`** in **`top-nav.css`** (Figma’s 767px at a 16px root and default **`screens.md`**). Reflected to the **`nav-control`** attribute so host updates (framework props) re-run **`@Watch`**: drawer state and document **Escape** handling stay in sync, the host **`xpl-top-nav--nav-control`** class toggles for **`top-nav.css`**, and **`navOpen(false)`** is emitted if **`nav-control`** is cleared while the drawer was open.
|
|
5622
|
+
*/
|
|
5623
|
+
"navControl"?: boolean;
|
|
5624
|
+
/**
|
|
5625
|
+
* Emitted when the brand control is activated and **`brandHref`** is **not** set (SPA / in-app navigation). **`detail`** is the **`MouseEvent`** from **`xpl-top-nav-item`** **`navItemClick`**. Not emitted when **`brandHref`** is set (use native link navigation).
|
|
5626
|
+
*/
|
|
5627
|
+
"onBrandClick"?: (event: XplTopNavCustomEvent<MouseEvent>) => void;
|
|
5628
|
+
/**
|
|
5629
|
+
* Emitted when the mobile nav open state changes: hamburger toggle, or **Escape** closing the drawer (when **`nav-control`** is set and the bar was open). Detail is the new open state (**`true`** = open, **`false`** = closed).
|
|
5630
|
+
*/
|
|
5631
|
+
"onNavOpen"?: (event: XplTopNavCustomEvent<boolean>) => void;
|
|
5632
|
+
}
|
|
5633
|
+
/**
|
|
5634
|
+
* Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
|
|
5635
|
+
* participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
|
|
5636
|
+
* **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
|
|
5637
|
+
* under **`xpl-nav-header-menu`**. That flag is
|
|
5638
|
+
* kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
|
|
5639
|
+
* on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
|
|
5640
|
+
* without a full reconnect still re-sync. The internal
|
|
5641
|
+
* **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
|
|
5642
|
+
* as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
|
|
5643
|
+
* panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
|
|
5644
|
+
* **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
|
|
5645
|
+
* custom trigger content — the component renders the inner wrapper and BEM elements.
|
|
5646
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
5647
|
+
* values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
5648
|
+
*/
|
|
5649
|
+
interface XplTopNavItem {
|
|
5650
|
+
/**
|
|
5651
|
+
* 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.
|
|
5652
|
+
* @default false
|
|
5653
|
+
*/
|
|
5654
|
+
"active"?: boolean;
|
|
5655
|
+
/**
|
|
5656
|
+
* If set without **`slot="dropdown"`**, the inner control renders as a native **`<a href>`** (link mode).
|
|
5657
|
+
*/
|
|
5658
|
+
"href"?: string;
|
|
5659
|
+
/**
|
|
5660
|
+
* Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set).
|
|
5661
|
+
* @default ''
|
|
5662
|
+
*/
|
|
5663
|
+
"icon"?: string;
|
|
5664
|
+
/**
|
|
5665
|
+
* 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.
|
|
5666
|
+
*/
|
|
5667
|
+
"itemAriaLabel"?: string;
|
|
5668
|
+
/**
|
|
5669
|
+
* 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.
|
|
5670
|
+
*/
|
|
5671
|
+
"label"?: string;
|
|
5672
|
+
/**
|
|
5673
|
+
* Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`** (native for **Enter** on **`<a href>`**, or programmatic **`.click()`** for **Space** on links). **`detail`** is the **`MouseEvent`** from that activation (synthetic only for **`<div role="button">`** via **Enter** / **Space**). Not emitted when **`slot="dropdown"`** is used.
|
|
5674
|
+
*/
|
|
5675
|
+
"onNavItemClick"?: (event: XplTopNavItemCustomEvent<MouseEvent>) => void;
|
|
5676
|
+
/**
|
|
5677
|
+
* When true, sets **`aria-current="page"`** and selected styling.
|
|
5678
|
+
* @default false
|
|
5679
|
+
*/
|
|
5680
|
+
"selected"?: boolean;
|
|
5681
|
+
}
|
|
3555
5682
|
interface XplUtilityBar {
|
|
3556
5683
|
/**
|
|
3557
5684
|
* @property {boolean} - Optional property that defines whether or not the main nav is open at startup.
|
|
@@ -3566,130 +5693,784 @@ declare namespace LocalJSX {
|
|
|
3566
5693
|
*/
|
|
3567
5694
|
"onNavOpen"?: (event: XplUtilityBarCustomEvent<boolean>) => void;
|
|
3568
5695
|
}
|
|
5696
|
+
|
|
5697
|
+
interface XplAccordionAttributes {
|
|
5698
|
+
"contentId": string;
|
|
5699
|
+
"header": string;
|
|
5700
|
+
"description": string;
|
|
5701
|
+
"initialExpanded": boolean;
|
|
5702
|
+
"size": '1' | '2' | '3';
|
|
5703
|
+
"borderType": '' | 'none' | 'bottom' | 'bordered';
|
|
5704
|
+
}
|
|
5705
|
+
interface XplApplicationShellAttributes {
|
|
5706
|
+
"withSubnav": boolean;
|
|
5707
|
+
"withUtility": boolean;
|
|
5708
|
+
"navWidth": string;
|
|
5709
|
+
"isNavOpenAtStartup": boolean;
|
|
5710
|
+
}
|
|
5711
|
+
interface XplAvatarAttributes {
|
|
5712
|
+
"color": AvatarColor;
|
|
5713
|
+
"disabled": boolean;
|
|
5714
|
+
"groupData": AvatarGroupItem[] | string;
|
|
5715
|
+
"href": string;
|
|
5716
|
+
"name": string;
|
|
5717
|
+
"size": 'md' | 'sm';
|
|
5718
|
+
"src": string;
|
|
5719
|
+
"status": AvatarStatus;
|
|
5720
|
+
"subText": string;
|
|
5721
|
+
"target": string;
|
|
5722
|
+
"variant": AvatarVariant;
|
|
5723
|
+
}
|
|
5724
|
+
interface XplBackdropAttributes {
|
|
5725
|
+
"relative": boolean;
|
|
5726
|
+
}
|
|
5727
|
+
interface XplBadgeAttributes {
|
|
5728
|
+
"bordered": boolean;
|
|
5729
|
+
"dot": boolean;
|
|
5730
|
+
"dotOnly": boolean;
|
|
5731
|
+
"shape": 'rounded' | 'boxy';
|
|
5732
|
+
"size": 'default' | 'small';
|
|
5733
|
+
"variant": BadgeVariantProp;
|
|
5734
|
+
}
|
|
5735
|
+
interface XplBannerAttributes {
|
|
5736
|
+
"actionText": string;
|
|
5737
|
+
"appearance": 'information' | 'positive' | 'warning' | 'error';
|
|
5738
|
+
"description": string;
|
|
5739
|
+
"hasIcon": boolean;
|
|
5740
|
+
"heading": string;
|
|
5741
|
+
"isDismissible": boolean;
|
|
5742
|
+
"isSection": boolean;
|
|
5743
|
+
"secondaryActionText": string;
|
|
5744
|
+
"truncateDesc": boolean;
|
|
5745
|
+
}
|
|
5746
|
+
interface XplButtonAttributes {
|
|
5747
|
+
"disabled": boolean;
|
|
5748
|
+
"form": string;
|
|
5749
|
+
"fullWidth": boolean;
|
|
5750
|
+
"icon": string;
|
|
5751
|
+
"iconOnly": boolean;
|
|
5752
|
+
"iconPosition": 'start' | 'end';
|
|
5753
|
+
"isLoading": boolean;
|
|
5754
|
+
"link": boolean;
|
|
5755
|
+
"name": string;
|
|
5756
|
+
"sentiment": 'neutral' | 'negative' | 'positive';
|
|
5757
|
+
"size": 'default' | 'xs' | 'sm';
|
|
5758
|
+
"state": 'neutral' | 'warning' | 'success';
|
|
5759
|
+
"type": 'submit' | 'reset' | 'button';
|
|
5760
|
+
"value": string;
|
|
5761
|
+
"variant": 'primary' | 'secondary' | 'tertiary' | 'subtle';
|
|
5762
|
+
}
|
|
5763
|
+
interface XplButtonRowAttributes {
|
|
5764
|
+
"primary": 'string';
|
|
5765
|
+
"secondary": 'string';
|
|
5766
|
+
"tertiary": 'string';
|
|
5767
|
+
}
|
|
5768
|
+
interface XplCalendarAttributes {
|
|
5769
|
+
"inputId": string;
|
|
5770
|
+
"dateFormat": string;
|
|
5771
|
+
"max": string;
|
|
5772
|
+
"min": string;
|
|
5773
|
+
"mode": 'single' | 'range';
|
|
5774
|
+
"defaultDate": string;
|
|
5775
|
+
}
|
|
5776
|
+
interface XplCheckboxAttributes {
|
|
5777
|
+
"ariaLabel": string;
|
|
5778
|
+
"checked": boolean;
|
|
5779
|
+
"dataId": string;
|
|
5780
|
+
"description": string;
|
|
5781
|
+
"disabled": boolean;
|
|
5782
|
+
"indeterminate": boolean;
|
|
5783
|
+
"name": string;
|
|
5784
|
+
"required": boolean;
|
|
5785
|
+
"styled": boolean;
|
|
5786
|
+
"value": string;
|
|
5787
|
+
}
|
|
5788
|
+
interface XplChoicelistAttributes {
|
|
5789
|
+
"description": string;
|
|
5790
|
+
"heading": string;
|
|
5791
|
+
"multi": boolean;
|
|
5792
|
+
"name": string;
|
|
5793
|
+
"styled": boolean;
|
|
5794
|
+
}
|
|
5795
|
+
interface XplContentAreaAttributes {
|
|
5796
|
+
"size": 'wide' | 'narrow' | 'full';
|
|
5797
|
+
}
|
|
5798
|
+
interface XplDataCardAttributes {
|
|
5799
|
+
"link": boolean;
|
|
5800
|
+
"name": string;
|
|
5801
|
+
"stat": string;
|
|
5802
|
+
"shortStat": string;
|
|
5803
|
+
"variant": 'primary' | 'secondary';
|
|
5804
|
+
"leadingIcon": boolean;
|
|
5805
|
+
"icon": string;
|
|
5806
|
+
"smallStat": string;
|
|
5807
|
+
"smallStatIcon": string;
|
|
5808
|
+
"detail": string;
|
|
5809
|
+
"smallStatVariant": 'positive' | 'negative' | 'neutral';
|
|
5810
|
+
"tooltipTextSmallStat": string;
|
|
5811
|
+
"tooltipTextStat": string;
|
|
5812
|
+
}
|
|
5813
|
+
interface XplDividerAttributes {
|
|
5814
|
+
"tier": number;
|
|
5815
|
+
}
|
|
5816
|
+
interface XplDropdownAttributes {
|
|
5817
|
+
"isOpen": boolean;
|
|
5818
|
+
"closeOnSelect": boolean;
|
|
5819
|
+
"mode": 'single' | 'multi';
|
|
5820
|
+
"anchorToTrigger": boolean;
|
|
5821
|
+
"selectedValues": string | string[];
|
|
5822
|
+
"selectOnFocus": boolean;
|
|
5823
|
+
"triggerId": string;
|
|
5824
|
+
}
|
|
5825
|
+
interface XplDropdownGroupAttributes {
|
|
5826
|
+
"groupName": string;
|
|
5827
|
+
}
|
|
5828
|
+
interface XplDropdownHeadingAttributes {
|
|
5829
|
+
"label": string;
|
|
5830
|
+
}
|
|
5831
|
+
interface XplDropdownOptionAttributes {
|
|
5832
|
+
"isDisabled": boolean;
|
|
5833
|
+
"label": string;
|
|
5834
|
+
"value": string;
|
|
5835
|
+
"subtitle": string;
|
|
5836
|
+
"icon": string;
|
|
5837
|
+
"isSelected": boolean;
|
|
5838
|
+
}
|
|
5839
|
+
interface XplDynamicTableCellAttributes {
|
|
5840
|
+
"disabled": boolean;
|
|
5841
|
+
}
|
|
5842
|
+
interface XplDynamicTableRowAttributes {
|
|
5843
|
+
"disabled": boolean;
|
|
5844
|
+
"selected": boolean;
|
|
5845
|
+
}
|
|
5846
|
+
interface XplGridItemAttributes {
|
|
5847
|
+
"xs": number;
|
|
5848
|
+
"sm": number;
|
|
5849
|
+
"md": number;
|
|
5850
|
+
"lg": number;
|
|
5851
|
+
}
|
|
5852
|
+
interface XplHeaderAccordionAttributes {
|
|
5853
|
+
"contentId": string;
|
|
5854
|
+
"disabled": boolean;
|
|
5855
|
+
"hasCheckbox": boolean;
|
|
5856
|
+
"initialExpanded": boolean;
|
|
5857
|
+
"selectedCount": number;
|
|
5858
|
+
}
|
|
5859
|
+
interface XplIconAttributes {
|
|
5860
|
+
"icon": string;
|
|
5861
|
+
"size": number;
|
|
5862
|
+
"backgroundColor": string;
|
|
5863
|
+
}
|
|
5864
|
+
interface XplInputAttributes {
|
|
5865
|
+
"_id": string;
|
|
5866
|
+
"description": string;
|
|
5867
|
+
"disabled": boolean;
|
|
5868
|
+
"error": string;
|
|
5869
|
+
"label": string;
|
|
5870
|
+
"name": string;
|
|
5871
|
+
"required": boolean;
|
|
5872
|
+
"readonly": boolean;
|
|
5873
|
+
"value": string;
|
|
5874
|
+
"autocomplete": string;
|
|
5875
|
+
"placeholder": string;
|
|
5876
|
+
"post": string;
|
|
5877
|
+
"pre": string;
|
|
5878
|
+
"max": string;
|
|
5879
|
+
"min": string;
|
|
5880
|
+
"step": number;
|
|
5881
|
+
"multiline": boolean;
|
|
5882
|
+
"maxCharacterCount": number;
|
|
5883
|
+
"dateFormat": string;
|
|
5884
|
+
"timeFormat": '12h' | '24h';
|
|
5885
|
+
"allowCustomOption": boolean;
|
|
5886
|
+
"mode": 'single' | /* "multiple" | */ 'range';
|
|
5887
|
+
"accept": string;
|
|
5888
|
+
"multiple": boolean;
|
|
5889
|
+
"hideTriggerOnSelect": boolean;
|
|
5890
|
+
"hideFileNames": boolean;
|
|
5891
|
+
"hideAcceptText": boolean;
|
|
5892
|
+
"hideEyeDropper": boolean;
|
|
5893
|
+
"defaultCountry": string;
|
|
5894
|
+
"isInternational": boolean;
|
|
5895
|
+
"ariaLabel": string;
|
|
5896
|
+
"shape": 'rounded' | 'box';
|
|
5897
|
+
"type": | 'date'
|
|
5898
|
+
| 'time'
|
|
5899
|
+
| 'text'
|
|
5900
|
+
| 'number'
|
|
5901
|
+
| 'password'
|
|
5902
|
+
| 'file'
|
|
5903
|
+
| 'color'
|
|
5904
|
+
| 'phone'
|
|
5905
|
+
| 'search';
|
|
5906
|
+
}
|
|
5907
|
+
interface XplInputColorAttributes {
|
|
5908
|
+
"value": string;
|
|
5909
|
+
"placeholder": string;
|
|
5910
|
+
"disabled": boolean;
|
|
5911
|
+
"required": boolean;
|
|
5912
|
+
"hideEyeDropper": boolean;
|
|
5913
|
+
}
|
|
5914
|
+
interface XplInputDateAttributes {
|
|
5915
|
+
"inputId": string;
|
|
5916
|
+
"disabled": boolean;
|
|
5917
|
+
"name": string;
|
|
5918
|
+
"required": boolean;
|
|
5919
|
+
"readonly": boolean;
|
|
5920
|
+
"value": string;
|
|
5921
|
+
"placeholder": string;
|
|
5922
|
+
"post": string;
|
|
5923
|
+
"pre": string;
|
|
5924
|
+
"max": string;
|
|
5925
|
+
"min": string;
|
|
5926
|
+
"dateFormat": string;
|
|
5927
|
+
"mode": 'single' | /* "multiple" | */ 'range';
|
|
5928
|
+
}
|
|
5929
|
+
interface XplInputFileAttributes {
|
|
5930
|
+
"disabled": boolean;
|
|
5931
|
+
"name": string;
|
|
5932
|
+
"_id": string;
|
|
5933
|
+
"accept": string;
|
|
5934
|
+
"multiple": boolean;
|
|
5935
|
+
"hideTriggerOnSelect": boolean;
|
|
5936
|
+
"hideFileNames": boolean;
|
|
5937
|
+
"hideAcceptText": boolean;
|
|
5938
|
+
}
|
|
5939
|
+
interface XplInputPhoneAttributes {
|
|
5940
|
+
"defaultCountry": string;
|
|
5941
|
+
"disabled": boolean;
|
|
5942
|
+
"inputId": string;
|
|
5943
|
+
"isInternational": boolean;
|
|
5944
|
+
"name": string;
|
|
5945
|
+
"placeholder": string;
|
|
5946
|
+
"readonly": boolean;
|
|
5947
|
+
"required": boolean;
|
|
5948
|
+
"value": string;
|
|
5949
|
+
}
|
|
5950
|
+
interface XplInputSearchAttributes {
|
|
5951
|
+
"ariaLabel": string;
|
|
5952
|
+
"autocomplete": string;
|
|
5953
|
+
"disabled": boolean;
|
|
5954
|
+
"errorMessageId": string;
|
|
5955
|
+
"hasError": boolean;
|
|
5956
|
+
"hasVisibleLabel": boolean;
|
|
5957
|
+
"inputId": string;
|
|
5958
|
+
"name": string;
|
|
5959
|
+
"placeholder": string;
|
|
5960
|
+
"readonly": boolean;
|
|
5961
|
+
"required": boolean;
|
|
5962
|
+
"shape": 'rounded' | 'box';
|
|
5963
|
+
"value": string;
|
|
5964
|
+
}
|
|
5965
|
+
interface XplInputTimeAttributes {
|
|
5966
|
+
"inputId": string;
|
|
5967
|
+
"disabled": boolean;
|
|
5968
|
+
"name": string;
|
|
5969
|
+
"required": boolean;
|
|
5970
|
+
"readonly": boolean;
|
|
5971
|
+
"value": string;
|
|
5972
|
+
"placeholder": string;
|
|
5973
|
+
"max": string;
|
|
5974
|
+
"min": string;
|
|
5975
|
+
"step": number;
|
|
5976
|
+
"mode": 'single' | 'range';
|
|
5977
|
+
"timeFormat": '12h' | '24h';
|
|
5978
|
+
"allowCustomOption": boolean;
|
|
5979
|
+
}
|
|
5980
|
+
interface XplLargeCardAttributes {
|
|
5981
|
+
"link": boolean;
|
|
5982
|
+
"name": string;
|
|
5983
|
+
"description": string;
|
|
5984
|
+
}
|
|
5985
|
+
interface XplListAttributes {
|
|
5986
|
+
"label": string;
|
|
5987
|
+
"labelledBy": string;
|
|
5988
|
+
"reorderable": boolean;
|
|
5989
|
+
"selectable": boolean;
|
|
5990
|
+
}
|
|
5991
|
+
interface XplListItemAttributes {
|
|
5992
|
+
"disabled": boolean;
|
|
5993
|
+
"error": boolean;
|
|
5994
|
+
"hidden": boolean;
|
|
5995
|
+
"href": string;
|
|
5996
|
+
"itemId": string;
|
|
5997
|
+
"keyboardActive": boolean;
|
|
5998
|
+
"radioName": string;
|
|
5999
|
+
"reorderable": boolean;
|
|
6000
|
+
"selectable": boolean;
|
|
6001
|
+
"selected": boolean;
|
|
6002
|
+
"showDivider": boolean;
|
|
6003
|
+
"titleBadgeVariant": BadgeVariantProp;
|
|
6004
|
+
}
|
|
6005
|
+
interface XplMainNavAttributes {
|
|
6006
|
+
"width": 'default' | 'md' | 'sm';
|
|
6007
|
+
}
|
|
6008
|
+
interface XplModalAttributes {
|
|
6009
|
+
"isOpen": boolean;
|
|
6010
|
+
"size": 'large' | 'medium' | 'small';
|
|
6011
|
+
"variant": 'default' | 'warning';
|
|
6012
|
+
}
|
|
6013
|
+
interface XplNavHeaderMenuAttributes {
|
|
6014
|
+
"email": string;
|
|
6015
|
+
"username": string;
|
|
6016
|
+
}
|
|
6017
|
+
interface XplNavItemAttributes {
|
|
6018
|
+
"navControl": boolean;
|
|
6019
|
+
}
|
|
6020
|
+
interface XplPaginationAttributes {
|
|
6021
|
+
"totalPages": number;
|
|
6022
|
+
"withPageControl": boolean;
|
|
6023
|
+
"currentPage": number;
|
|
6024
|
+
"rowsPerPageOptions": string;
|
|
6025
|
+
"selectedRowsPerPage": number;
|
|
6026
|
+
}
|
|
6027
|
+
interface XplPanelAttributes {
|
|
6028
|
+
"accent": 'none' | 'primary' | 'secondary' | 'positive' | 'negative' | 'highlight';
|
|
6029
|
+
"padding": 'default' | 'tight' | 'loose';
|
|
6030
|
+
}
|
|
6031
|
+
interface XplPopoverAttributes {
|
|
6032
|
+
"isOpen": boolean;
|
|
6033
|
+
"disabled": boolean;
|
|
6034
|
+
"position": PopoverPosition;
|
|
6035
|
+
"display": 'arrow' | 'menu';
|
|
6036
|
+
}
|
|
6037
|
+
interface XplProgressBarAttributes {
|
|
6038
|
+
"helperText": string;
|
|
6039
|
+
"label": string;
|
|
6040
|
+
"max": number;
|
|
6041
|
+
"size": 'sm' | 'lg';
|
|
6042
|
+
"value": number;
|
|
6043
|
+
"variant": 'default' | 'success' | 'error' | 'indeterminate';
|
|
6044
|
+
}
|
|
6045
|
+
interface XplProgressIndicatorAttributes {
|
|
6046
|
+
"currentStep": number;
|
|
6047
|
+
"layout": 'horizontal' | 'vertical';
|
|
6048
|
+
"showLabels": boolean;
|
|
6049
|
+
"showNumbers": boolean;
|
|
6050
|
+
}
|
|
6051
|
+
interface XplRadioAttributes {
|
|
6052
|
+
"checked": boolean;
|
|
6053
|
+
"description": string;
|
|
6054
|
+
"disabled": boolean;
|
|
6055
|
+
"name": string;
|
|
6056
|
+
"value": string;
|
|
6057
|
+
"required": boolean;
|
|
6058
|
+
"styled": boolean;
|
|
6059
|
+
}
|
|
6060
|
+
interface XplSelectAttributes {
|
|
6061
|
+
"selectIcon": string;
|
|
6062
|
+
"description": string;
|
|
6063
|
+
"disabled": boolean;
|
|
6064
|
+
"error": string;
|
|
6065
|
+
"label": string;
|
|
6066
|
+
"mode": 'single' | 'multi';
|
|
6067
|
+
"name": string;
|
|
6068
|
+
"placeholder": string;
|
|
6069
|
+
"truncate": boolean;
|
|
6070
|
+
"customDisplayValue": boolean;
|
|
6071
|
+
"selectedValues": string | string[];
|
|
6072
|
+
"classNames": string;
|
|
6073
|
+
}
|
|
6074
|
+
interface XplSideNavAttributes {
|
|
6075
|
+
"label": string;
|
|
6076
|
+
}
|
|
6077
|
+
interface XplSideNavItemAttributes {
|
|
6078
|
+
"disabled": boolean;
|
|
6079
|
+
"expanded": boolean;
|
|
6080
|
+
"hasChildren": boolean;
|
|
6081
|
+
"hidden": boolean;
|
|
6082
|
+
"icon": string;
|
|
6083
|
+
"label": string;
|
|
6084
|
+
"link": boolean;
|
|
6085
|
+
"selected": boolean;
|
|
6086
|
+
}
|
|
6087
|
+
interface XplSkeletonAttributes {
|
|
6088
|
+
"classNames": string;
|
|
6089
|
+
"fullWidth": boolean;
|
|
6090
|
+
"height": CSSStyleDeclaration['height'];
|
|
6091
|
+
"width": CSSStyleDeclaration['width'];
|
|
6092
|
+
"margin": CSSStyleDeclaration['margin'];
|
|
6093
|
+
"shape": 'rectangle' | 'circle' | 'square';
|
|
6094
|
+
"size": | 'display'
|
|
6095
|
+
| 'title-1'
|
|
6096
|
+
| 'title-2'
|
|
6097
|
+
| 'title-3'
|
|
6098
|
+
| 'title-4'
|
|
6099
|
+
| 'title-5'
|
|
6100
|
+
| 'body'
|
|
6101
|
+
| 'custom';
|
|
6102
|
+
}
|
|
6103
|
+
interface XplSlideoutAttributes {
|
|
6104
|
+
"isOpen": boolean;
|
|
6105
|
+
"backdrop": boolean;
|
|
6106
|
+
"variant": 'default' | 'warning';
|
|
6107
|
+
"showFooter": boolean;
|
|
6108
|
+
}
|
|
6109
|
+
interface XplSpotlightAttributes {
|
|
6110
|
+
"actionLayout": SpotlightActionLayout;
|
|
6111
|
+
"anchorPosition": SpotlightAnchorPosition;
|
|
6112
|
+
"body": string;
|
|
6113
|
+
"currentStep": number;
|
|
6114
|
+
"heading": string;
|
|
6115
|
+
"isDismissible": boolean;
|
|
6116
|
+
"isOpen": boolean;
|
|
6117
|
+
"primaryActionLabel": string;
|
|
6118
|
+
"secondaryActionLabel": string;
|
|
6119
|
+
"showActions": boolean;
|
|
6120
|
+
"showImage": boolean;
|
|
6121
|
+
"showSteps": boolean;
|
|
6122
|
+
"target": string;
|
|
6123
|
+
"totalSteps": number;
|
|
6124
|
+
}
|
|
6125
|
+
interface XplTabAttributes {
|
|
6126
|
+
"disabled": boolean;
|
|
6127
|
+
"groupDisabled": boolean;
|
|
6128
|
+
"icon": string;
|
|
6129
|
+
"iconPosition": 'start' | 'end';
|
|
6130
|
+
"selected": boolean;
|
|
6131
|
+
"target": string;
|
|
6132
|
+
}
|
|
6133
|
+
interface XplTabPanelAttributes {
|
|
6134
|
+
"selected": boolean;
|
|
6135
|
+
"target": string;
|
|
6136
|
+
}
|
|
6137
|
+
interface XplTableAttributes {
|
|
6138
|
+
"freeze": boolean;
|
|
6139
|
+
"isSortable": boolean;
|
|
6140
|
+
"label": string;
|
|
6141
|
+
"multiselect": boolean;
|
|
6142
|
+
"reorderHandleIcon": string;
|
|
6143
|
+
"reorderHandleIconKeyboard": string;
|
|
6144
|
+
"rowReorderable": boolean;
|
|
6145
|
+
"selectable": boolean;
|
|
6146
|
+
"striped": boolean;
|
|
6147
|
+
}
|
|
6148
|
+
interface XplTableCellAttributes {
|
|
6149
|
+
"align": 'left' | 'right' | 'center';
|
|
6150
|
+
"bold": boolean;
|
|
6151
|
+
"disabled": boolean;
|
|
6152
|
+
"underline": boolean;
|
|
6153
|
+
}
|
|
6154
|
+
interface XplTableFooterCellAttributes {
|
|
6155
|
+
"align": 'left' | 'right' | 'center';
|
|
6156
|
+
}
|
|
6157
|
+
interface XplTableHeaderCellAttributes {
|
|
6158
|
+
"align": 'left' | 'right' | 'center';
|
|
6159
|
+
"checkboxAriaLabel": string;
|
|
6160
|
+
"checked": boolean;
|
|
6161
|
+
"columnWidth": string;
|
|
6162
|
+
"icon": string;
|
|
6163
|
+
"indeterminate": boolean;
|
|
6164
|
+
"label": string;
|
|
6165
|
+
"sortable": boolean;
|
|
6166
|
+
"sortDirection": 'asc' | 'desc' | null;
|
|
6167
|
+
"sortKey": string;
|
|
6168
|
+
"type": 'label' | 'checkbox' | 'icon' | 'empty';
|
|
6169
|
+
"width": number;
|
|
6170
|
+
}
|
|
6171
|
+
interface XplTableRowAttributes {
|
|
6172
|
+
"disabled": boolean;
|
|
6173
|
+
"rowId": string;
|
|
6174
|
+
"selected": boolean;
|
|
6175
|
+
}
|
|
6176
|
+
interface XplTabsAttributes {
|
|
6177
|
+
"disabled": boolean;
|
|
6178
|
+
"fullWidth": boolean;
|
|
6179
|
+
"type": 'tabs' | 'segment';
|
|
6180
|
+
"value": string;
|
|
6181
|
+
}
|
|
6182
|
+
interface XplTagAttributes {
|
|
6183
|
+
"disabled": boolean;
|
|
6184
|
+
"dismissible": boolean;
|
|
6185
|
+
"isDraggable": boolean;
|
|
6186
|
+
"size": 'default' | 'sm';
|
|
6187
|
+
"tagId": string;
|
|
6188
|
+
}
|
|
6189
|
+
interface XplToastAttributes {
|
|
6190
|
+
"variant": 'neutral' | 'warning' | 'success';
|
|
6191
|
+
"showIcon": boolean;
|
|
6192
|
+
"caption": string;
|
|
6193
|
+
"dismissable": boolean;
|
|
6194
|
+
"timeout": number;
|
|
6195
|
+
}
|
|
6196
|
+
interface XplToggleAttributes {
|
|
6197
|
+
"checked": boolean;
|
|
6198
|
+
"description": string;
|
|
6199
|
+
"disabled": boolean;
|
|
6200
|
+
"heading": string;
|
|
6201
|
+
"label": string;
|
|
6202
|
+
"name": string;
|
|
6203
|
+
"variant": 'default' | 'small';
|
|
6204
|
+
}
|
|
6205
|
+
interface XplToolbarAttributes {
|
|
6206
|
+
"selectedItemCount": number;
|
|
6207
|
+
}
|
|
6208
|
+
interface XplTooltipAttributes {
|
|
6209
|
+
"text": string;
|
|
6210
|
+
"position": | 'top-middle'
|
|
6211
|
+
| 'right'
|
|
6212
|
+
| 'bottom-middle'
|
|
6213
|
+
| 'left'
|
|
6214
|
+
| 'top-left'
|
|
6215
|
+
| 'top-right'
|
|
6216
|
+
| 'bottom-left'
|
|
6217
|
+
| 'bottom-right';
|
|
6218
|
+
"hideArrow": boolean;
|
|
6219
|
+
}
|
|
6220
|
+
interface XplTopNavAttributes {
|
|
6221
|
+
"brandHref": string;
|
|
6222
|
+
"brandLogo": string;
|
|
6223
|
+
"brandName": string;
|
|
6224
|
+
"childAccountLabel": string;
|
|
6225
|
+
"label": string;
|
|
6226
|
+
"navControl": boolean;
|
|
6227
|
+
}
|
|
6228
|
+
interface XplTopNavItemAttributes {
|
|
6229
|
+
"active": boolean;
|
|
6230
|
+
"href": string;
|
|
6231
|
+
"icon": string;
|
|
6232
|
+
"itemAriaLabel": string;
|
|
6233
|
+
"label": string;
|
|
6234
|
+
"selected": boolean;
|
|
6235
|
+
}
|
|
6236
|
+
interface XplUtilityBarAttributes {
|
|
6237
|
+
"navControl": boolean;
|
|
6238
|
+
"isNavOpenAtStartup": boolean;
|
|
6239
|
+
}
|
|
6240
|
+
|
|
3569
6241
|
interface IntrinsicElements {
|
|
3570
|
-
"xpl-accordion": XplAccordion;
|
|
3571
|
-
"xpl-application-shell": XplApplicationShell;
|
|
3572
|
-
"xpl-avatar": XplAvatar;
|
|
3573
|
-
"xpl-backdrop": XplBackdrop;
|
|
3574
|
-
"xpl-badge": XplBadge;
|
|
6242
|
+
"xpl-accordion": Omit<XplAccordion, keyof XplAccordionAttributes> & { [K in keyof XplAccordion & keyof XplAccordionAttributes]?: XplAccordion[K] } & { [K in keyof XplAccordion & keyof XplAccordionAttributes as `attr:${K}`]?: XplAccordionAttributes[K] } & { [K in keyof XplAccordion & keyof XplAccordionAttributes as `prop:${K}`]?: XplAccordion[K] };
|
|
6243
|
+
"xpl-application-shell": Omit<XplApplicationShell, keyof XplApplicationShellAttributes> & { [K in keyof XplApplicationShell & keyof XplApplicationShellAttributes]?: XplApplicationShell[K] } & { [K in keyof XplApplicationShell & keyof XplApplicationShellAttributes as `attr:${K}`]?: XplApplicationShellAttributes[K] } & { [K in keyof XplApplicationShell & keyof XplApplicationShellAttributes as `prop:${K}`]?: XplApplicationShell[K] };
|
|
6244
|
+
"xpl-avatar": Omit<XplAvatar, keyof XplAvatarAttributes> & { [K in keyof XplAvatar & keyof XplAvatarAttributes]?: XplAvatar[K] } & { [K in keyof XplAvatar & keyof XplAvatarAttributes as `attr:${K}`]?: XplAvatarAttributes[K] } & { [K in keyof XplAvatar & keyof XplAvatarAttributes as `prop:${K}`]?: XplAvatar[K] };
|
|
6245
|
+
"xpl-backdrop": Omit<XplBackdrop, keyof XplBackdropAttributes> & { [K in keyof XplBackdrop & keyof XplBackdropAttributes]?: XplBackdrop[K] } & { [K in keyof XplBackdrop & keyof XplBackdropAttributes as `attr:${K}`]?: XplBackdropAttributes[K] } & { [K in keyof XplBackdrop & keyof XplBackdropAttributes as `prop:${K}`]?: XplBackdrop[K] };
|
|
6246
|
+
"xpl-badge": Omit<XplBadge, keyof XplBadgeAttributes> & { [K in keyof XplBadge & keyof XplBadgeAttributes]?: XplBadge[K] } & { [K in keyof XplBadge & keyof XplBadgeAttributes as `attr:${K}`]?: XplBadgeAttributes[K] } & { [K in keyof XplBadge & keyof XplBadgeAttributes as `prop:${K}`]?: XplBadge[K] };
|
|
6247
|
+
"xpl-banner": Omit<XplBanner, keyof XplBannerAttributes> & { [K in keyof XplBanner & keyof XplBannerAttributes]?: XplBanner[K] } & { [K in keyof XplBanner & keyof XplBannerAttributes as `attr:${K}`]?: XplBannerAttributes[K] } & { [K in keyof XplBanner & keyof XplBannerAttributes as `prop:${K}`]?: XplBanner[K] };
|
|
3575
6248
|
"xpl-breadcrumb-item": XplBreadcrumbItem;
|
|
3576
6249
|
"xpl-breadcrumbs": XplBreadcrumbs;
|
|
3577
|
-
"xpl-button": XplButton;
|
|
3578
|
-
"xpl-button-row": XplButtonRow;
|
|
3579
|
-
"xpl-calendar": XplCalendar;
|
|
3580
|
-
"xpl-checkbox": XplCheckbox;
|
|
3581
|
-
"xpl-choicelist": XplChoicelist;
|
|
3582
|
-
"xpl-content-area": XplContentArea;
|
|
6250
|
+
"xpl-button": Omit<XplButton, keyof XplButtonAttributes> & { [K in keyof XplButton & keyof XplButtonAttributes]?: XplButton[K] } & { [K in keyof XplButton & keyof XplButtonAttributes as `attr:${K}`]?: XplButtonAttributes[K] } & { [K in keyof XplButton & keyof XplButtonAttributes as `prop:${K}`]?: XplButton[K] };
|
|
6251
|
+
"xpl-button-row": Omit<XplButtonRow, keyof XplButtonRowAttributes> & { [K in keyof XplButtonRow & keyof XplButtonRowAttributes]?: XplButtonRow[K] } & { [K in keyof XplButtonRow & keyof XplButtonRowAttributes as `attr:${K}`]?: XplButtonRowAttributes[K] } & { [K in keyof XplButtonRow & keyof XplButtonRowAttributes as `prop:${K}`]?: XplButtonRow[K] };
|
|
6252
|
+
"xpl-calendar": Omit<XplCalendar, keyof XplCalendarAttributes> & { [K in keyof XplCalendar & keyof XplCalendarAttributes]?: XplCalendar[K] } & { [K in keyof XplCalendar & keyof XplCalendarAttributes as `attr:${K}`]?: XplCalendarAttributes[K] } & { [K in keyof XplCalendar & keyof XplCalendarAttributes as `prop:${K}`]?: XplCalendar[K] };
|
|
6253
|
+
"xpl-checkbox": Omit<XplCheckbox, keyof XplCheckboxAttributes> & { [K in keyof XplCheckbox & keyof XplCheckboxAttributes]?: XplCheckbox[K] } & { [K in keyof XplCheckbox & keyof XplCheckboxAttributes as `attr:${K}`]?: XplCheckboxAttributes[K] } & { [K in keyof XplCheckbox & keyof XplCheckboxAttributes as `prop:${K}`]?: XplCheckbox[K] };
|
|
6254
|
+
"xpl-choicelist": Omit<XplChoicelist, keyof XplChoicelistAttributes> & { [K in keyof XplChoicelist & keyof XplChoicelistAttributes]?: XplChoicelist[K] } & { [K in keyof XplChoicelist & keyof XplChoicelistAttributes as `attr:${K}`]?: XplChoicelistAttributes[K] } & { [K in keyof XplChoicelist & keyof XplChoicelistAttributes as `prop:${K}`]?: XplChoicelist[K] };
|
|
6255
|
+
"xpl-content-area": Omit<XplContentArea, keyof XplContentAreaAttributes> & { [K in keyof XplContentArea & keyof XplContentAreaAttributes]?: XplContentArea[K] } & { [K in keyof XplContentArea & keyof XplContentAreaAttributes as `attr:${K}`]?: XplContentAreaAttributes[K] } & { [K in keyof XplContentArea & keyof XplContentAreaAttributes as `prop:${K}`]?: XplContentArea[K] };
|
|
3583
6256
|
"xpl-dashboard": XplDashboard;
|
|
3584
|
-
"xpl-data-card": XplDataCard;
|
|
3585
|
-
"xpl-divider": XplDivider;
|
|
3586
|
-
"xpl-dropdown": XplDropdown;
|
|
3587
|
-
"xpl-dropdown-group": XplDropdownGroup;
|
|
3588
|
-
"xpl-dropdown-heading": XplDropdownHeading;
|
|
3589
|
-
"xpl-dropdown-option": XplDropdownOption;
|
|
6257
|
+
"xpl-data-card": Omit<XplDataCard, keyof XplDataCardAttributes> & { [K in keyof XplDataCard & keyof XplDataCardAttributes]?: XplDataCard[K] } & { [K in keyof XplDataCard & keyof XplDataCardAttributes as `attr:${K}`]?: XplDataCardAttributes[K] } & { [K in keyof XplDataCard & keyof XplDataCardAttributes as `prop:${K}`]?: XplDataCard[K] };
|
|
6258
|
+
"xpl-divider": Omit<XplDivider, keyof XplDividerAttributes> & { [K in keyof XplDivider & keyof XplDividerAttributes]?: XplDivider[K] } & { [K in keyof XplDivider & keyof XplDividerAttributes as `attr:${K}`]?: XplDividerAttributes[K] } & { [K in keyof XplDivider & keyof XplDividerAttributes as `prop:${K}`]?: XplDivider[K] };
|
|
6259
|
+
"xpl-dropdown": Omit<XplDropdown, keyof XplDropdownAttributes> & { [K in keyof XplDropdown & keyof XplDropdownAttributes]?: XplDropdown[K] } & { [K in keyof XplDropdown & keyof XplDropdownAttributes as `attr:${K}`]?: XplDropdownAttributes[K] } & { [K in keyof XplDropdown & keyof XplDropdownAttributes as `prop:${K}`]?: XplDropdown[K] };
|
|
6260
|
+
"xpl-dropdown-group": Omit<XplDropdownGroup, keyof XplDropdownGroupAttributes> & { [K in keyof XplDropdownGroup & keyof XplDropdownGroupAttributes]?: XplDropdownGroup[K] } & { [K in keyof XplDropdownGroup & keyof XplDropdownGroupAttributes as `attr:${K}`]?: XplDropdownGroupAttributes[K] } & { [K in keyof XplDropdownGroup & keyof XplDropdownGroupAttributes as `prop:${K}`]?: XplDropdownGroup[K] };
|
|
6261
|
+
"xpl-dropdown-heading": Omit<XplDropdownHeading, keyof XplDropdownHeadingAttributes> & { [K in keyof XplDropdownHeading & keyof XplDropdownHeadingAttributes]?: XplDropdownHeading[K] } & { [K in keyof XplDropdownHeading & keyof XplDropdownHeadingAttributes as `attr:${K}`]?: XplDropdownHeadingAttributes[K] } & { [K in keyof XplDropdownHeading & keyof XplDropdownHeadingAttributes as `prop:${K}`]?: XplDropdownHeading[K] };
|
|
6262
|
+
"xpl-dropdown-option": Omit<XplDropdownOption, keyof XplDropdownOptionAttributes> & { [K in keyof XplDropdownOption & keyof XplDropdownOptionAttributes]?: XplDropdownOption[K] } & { [K in keyof XplDropdownOption & keyof XplDropdownOptionAttributes as `attr:${K}`]?: XplDropdownOptionAttributes[K] } & { [K in keyof XplDropdownOption & keyof XplDropdownOptionAttributes as `prop:${K}`]?: XplDropdownOption[K] };
|
|
3590
6263
|
"xpl-dynamic-table": XplDynamicTable;
|
|
3591
|
-
"xpl-dynamic-table-cell": XplDynamicTableCell;
|
|
3592
|
-
"xpl-dynamic-table-row": XplDynamicTableRow;
|
|
6264
|
+
"xpl-dynamic-table-cell": Omit<XplDynamicTableCell, keyof XplDynamicTableCellAttributes> & { [K in keyof XplDynamicTableCell & keyof XplDynamicTableCellAttributes]?: XplDynamicTableCell[K] } & { [K in keyof XplDynamicTableCell & keyof XplDynamicTableCellAttributes as `attr:${K}`]?: XplDynamicTableCellAttributes[K] } & { [K in keyof XplDynamicTableCell & keyof XplDynamicTableCellAttributes as `prop:${K}`]?: XplDynamicTableCell[K] };
|
|
6265
|
+
"xpl-dynamic-table-row": Omit<XplDynamicTableRow, keyof XplDynamicTableRowAttributes> & { [K in keyof XplDynamicTableRow & keyof XplDynamicTableRowAttributes]?: XplDynamicTableRow[K] } & { [K in keyof XplDynamicTableRow & keyof XplDynamicTableRowAttributes as `attr:${K}`]?: XplDynamicTableRowAttributes[K] } & { [K in keyof XplDynamicTableRow & keyof XplDynamicTableRowAttributes as `prop:${K}`]?: XplDynamicTableRow[K] };
|
|
3593
6266
|
"xpl-grid": XplGrid;
|
|
3594
|
-
"xpl-grid-item": XplGridItem;
|
|
3595
|
-
"xpl-header-accordion": XplHeaderAccordion;
|
|
3596
|
-
"xpl-icon": XplIcon
|
|
3597
|
-
"xpl-input": XplInput;
|
|
3598
|
-
"xpl-input-color": XplInputColor;
|
|
3599
|
-
"xpl-input-date": XplInputDate;
|
|
3600
|
-
"xpl-input-file": XplInputFile;
|
|
3601
|
-
"xpl-input-
|
|
3602
|
-
"xpl-
|
|
3603
|
-
"xpl-
|
|
3604
|
-
"xpl-
|
|
3605
|
-
"xpl-
|
|
3606
|
-
"xpl-
|
|
3607
|
-
"xpl-
|
|
3608
|
-
"xpl-
|
|
3609
|
-
"xpl-
|
|
3610
|
-
"xpl-
|
|
6267
|
+
"xpl-grid-item": Omit<XplGridItem, keyof XplGridItemAttributes> & { [K in keyof XplGridItem & keyof XplGridItemAttributes]?: XplGridItem[K] } & { [K in keyof XplGridItem & keyof XplGridItemAttributes as `attr:${K}`]?: XplGridItemAttributes[K] } & { [K in keyof XplGridItem & keyof XplGridItemAttributes as `prop:${K}`]?: XplGridItem[K] };
|
|
6268
|
+
"xpl-header-accordion": Omit<XplHeaderAccordion, keyof XplHeaderAccordionAttributes> & { [K in keyof XplHeaderAccordion & keyof XplHeaderAccordionAttributes]?: XplHeaderAccordion[K] } & { [K in keyof XplHeaderAccordion & keyof XplHeaderAccordionAttributes as `attr:${K}`]?: XplHeaderAccordionAttributes[K] } & { [K in keyof XplHeaderAccordion & keyof XplHeaderAccordionAttributes as `prop:${K}`]?: XplHeaderAccordion[K] };
|
|
6269
|
+
"xpl-icon": Omit<XplIcon, keyof XplIconAttributes> & { [K in keyof XplIcon & keyof XplIconAttributes]?: XplIcon[K] } & { [K in keyof XplIcon & keyof XplIconAttributes as `attr:${K}`]?: XplIconAttributes[K] } & { [K in keyof XplIcon & keyof XplIconAttributes as `prop:${K}`]?: XplIcon[K] } & OneOf<"icon", XplIcon["icon"], XplIconAttributes["icon"]>;
|
|
6270
|
+
"xpl-input": Omit<XplInput, keyof XplInputAttributes> & { [K in keyof XplInput & keyof XplInputAttributes]?: XplInput[K] } & { [K in keyof XplInput & keyof XplInputAttributes as `attr:${K}`]?: XplInputAttributes[K] } & { [K in keyof XplInput & keyof XplInputAttributes as `prop:${K}`]?: XplInput[K] };
|
|
6271
|
+
"xpl-input-color": Omit<XplInputColor, keyof XplInputColorAttributes> & { [K in keyof XplInputColor & keyof XplInputColorAttributes]?: XplInputColor[K] } & { [K in keyof XplInputColor & keyof XplInputColorAttributes as `attr:${K}`]?: XplInputColorAttributes[K] } & { [K in keyof XplInputColor & keyof XplInputColorAttributes as `prop:${K}`]?: XplInputColor[K] };
|
|
6272
|
+
"xpl-input-date": Omit<XplInputDate, keyof XplInputDateAttributes> & { [K in keyof XplInputDate & keyof XplInputDateAttributes]?: XplInputDate[K] } & { [K in keyof XplInputDate & keyof XplInputDateAttributes as `attr:${K}`]?: XplInputDateAttributes[K] } & { [K in keyof XplInputDate & keyof XplInputDateAttributes as `prop:${K}`]?: XplInputDate[K] };
|
|
6273
|
+
"xpl-input-file": Omit<XplInputFile, keyof XplInputFileAttributes> & { [K in keyof XplInputFile & keyof XplInputFileAttributes]?: XplInputFile[K] } & { [K in keyof XplInputFile & keyof XplInputFileAttributes as `attr:${K}`]?: XplInputFileAttributes[K] } & { [K in keyof XplInputFile & keyof XplInputFileAttributes as `prop:${K}`]?: XplInputFile[K] };
|
|
6274
|
+
"xpl-input-phone": Omit<XplInputPhone, keyof XplInputPhoneAttributes> & { [K in keyof XplInputPhone & keyof XplInputPhoneAttributes]?: XplInputPhone[K] } & { [K in keyof XplInputPhone & keyof XplInputPhoneAttributes as `attr:${K}`]?: XplInputPhoneAttributes[K] } & { [K in keyof XplInputPhone & keyof XplInputPhoneAttributes as `prop:${K}`]?: XplInputPhone[K] };
|
|
6275
|
+
"xpl-input-search": Omit<XplInputSearch, keyof XplInputSearchAttributes> & { [K in keyof XplInputSearch & keyof XplInputSearchAttributes]?: XplInputSearch[K] } & { [K in keyof XplInputSearch & keyof XplInputSearchAttributes as `attr:${K}`]?: XplInputSearchAttributes[K] } & { [K in keyof XplInputSearch & keyof XplInputSearchAttributes as `prop:${K}`]?: XplInputSearch[K] } & OneOf<"inputId", XplInputSearch["inputId"], XplInputSearchAttributes["inputId"]>;
|
|
6276
|
+
"xpl-input-time": Omit<XplInputTime, keyof XplInputTimeAttributes> & { [K in keyof XplInputTime & keyof XplInputTimeAttributes]?: XplInputTime[K] } & { [K in keyof XplInputTime & keyof XplInputTimeAttributes as `attr:${K}`]?: XplInputTimeAttributes[K] } & { [K in keyof XplInputTime & keyof XplInputTimeAttributes as `prop:${K}`]?: XplInputTime[K] };
|
|
6277
|
+
"xpl-large-card": Omit<XplLargeCard, keyof XplLargeCardAttributes> & { [K in keyof XplLargeCard & keyof XplLargeCardAttributes]?: XplLargeCard[K] } & { [K in keyof XplLargeCard & keyof XplLargeCardAttributes as `attr:${K}`]?: XplLargeCardAttributes[K] } & { [K in keyof XplLargeCard & keyof XplLargeCardAttributes as `prop:${K}`]?: XplLargeCard[K] };
|
|
6278
|
+
"xpl-list": Omit<XplList, keyof XplListAttributes> & { [K in keyof XplList & keyof XplListAttributes]?: XplList[K] } & { [K in keyof XplList & keyof XplListAttributes as `attr:${K}`]?: XplListAttributes[K] } & { [K in keyof XplList & keyof XplListAttributes as `prop:${K}`]?: XplList[K] };
|
|
6279
|
+
"xpl-list-item": Omit<XplListItem, keyof XplListItemAttributes> & { [K in keyof XplListItem & keyof XplListItemAttributes]?: XplListItem[K] } & { [K in keyof XplListItem & keyof XplListItemAttributes as `attr:${K}`]?: XplListItemAttributes[K] } & { [K in keyof XplListItem & keyof XplListItemAttributes as `prop:${K}`]?: XplListItem[K] };
|
|
6280
|
+
"xpl-main-nav": Omit<XplMainNav, keyof XplMainNavAttributes> & { [K in keyof XplMainNav & keyof XplMainNavAttributes]?: XplMainNav[K] } & { [K in keyof XplMainNav & keyof XplMainNavAttributes as `attr:${K}`]?: XplMainNavAttributes[K] } & { [K in keyof XplMainNav & keyof XplMainNavAttributes as `prop:${K}`]?: XplMainNav[K] };
|
|
6281
|
+
"xpl-modal": Omit<XplModal, keyof XplModalAttributes> & { [K in keyof XplModal & keyof XplModalAttributes]?: XplModal[K] } & { [K in keyof XplModal & keyof XplModalAttributes as `attr:${K}`]?: XplModalAttributes[K] } & { [K in keyof XplModal & keyof XplModalAttributes as `prop:${K}`]?: XplModal[K] };
|
|
6282
|
+
"xpl-nav-header-menu": Omit<XplNavHeaderMenu, keyof XplNavHeaderMenuAttributes> & { [K in keyof XplNavHeaderMenu & keyof XplNavHeaderMenuAttributes]?: XplNavHeaderMenu[K] } & { [K in keyof XplNavHeaderMenu & keyof XplNavHeaderMenuAttributes as `attr:${K}`]?: XplNavHeaderMenuAttributes[K] } & { [K in keyof XplNavHeaderMenu & keyof XplNavHeaderMenuAttributes as `prop:${K}`]?: XplNavHeaderMenu[K] };
|
|
6283
|
+
"xpl-nav-item": Omit<XplNavItem, keyof XplNavItemAttributes> & { [K in keyof XplNavItem & keyof XplNavItemAttributes]?: XplNavItem[K] } & { [K in keyof XplNavItem & keyof XplNavItemAttributes as `attr:${K}`]?: XplNavItemAttributes[K] } & { [K in keyof XplNavItem & keyof XplNavItemAttributes as `prop:${K}`]?: XplNavItem[K] };
|
|
6284
|
+
"xpl-pagination": Omit<XplPagination, keyof XplPaginationAttributes> & { [K in keyof XplPagination & keyof XplPaginationAttributes]?: XplPagination[K] } & { [K in keyof XplPagination & keyof XplPaginationAttributes as `attr:${K}`]?: XplPaginationAttributes[K] } & { [K in keyof XplPagination & keyof XplPaginationAttributes as `prop:${K}`]?: XplPagination[K] };
|
|
6285
|
+
"xpl-panel": Omit<XplPanel, keyof XplPanelAttributes> & { [K in keyof XplPanel & keyof XplPanelAttributes]?: XplPanel[K] } & { [K in keyof XplPanel & keyof XplPanelAttributes as `attr:${K}`]?: XplPanelAttributes[K] } & { [K in keyof XplPanel & keyof XplPanelAttributes as `prop:${K}`]?: XplPanel[K] };
|
|
6286
|
+
"xpl-popover": Omit<XplPopover, keyof XplPopoverAttributes> & { [K in keyof XplPopover & keyof XplPopoverAttributes]?: XplPopover[K] } & { [K in keyof XplPopover & keyof XplPopoverAttributes as `attr:${K}`]?: XplPopoverAttributes[K] } & { [K in keyof XplPopover & keyof XplPopoverAttributes as `prop:${K}`]?: XplPopover[K] };
|
|
6287
|
+
"xpl-progress-bar": Omit<XplProgressBar, keyof XplProgressBarAttributes> & { [K in keyof XplProgressBar & keyof XplProgressBarAttributes]?: XplProgressBar[K] } & { [K in keyof XplProgressBar & keyof XplProgressBarAttributes as `attr:${K}`]?: XplProgressBarAttributes[K] } & { [K in keyof XplProgressBar & keyof XplProgressBarAttributes as `prop:${K}`]?: XplProgressBar[K] };
|
|
6288
|
+
"xpl-progress-indicator": Omit<XplProgressIndicator, keyof XplProgressIndicatorAttributes> & { [K in keyof XplProgressIndicator & keyof XplProgressIndicatorAttributes]?: XplProgressIndicator[K] } & { [K in keyof XplProgressIndicator & keyof XplProgressIndicatorAttributes as `attr:${K}`]?: XplProgressIndicatorAttributes[K] } & { [K in keyof XplProgressIndicator & keyof XplProgressIndicatorAttributes as `prop:${K}`]?: XplProgressIndicator[K] };
|
|
6289
|
+
"xpl-radio": Omit<XplRadio, keyof XplRadioAttributes> & { [K in keyof XplRadio & keyof XplRadioAttributes]?: XplRadio[K] } & { [K in keyof XplRadio & keyof XplRadioAttributes as `attr:${K}`]?: XplRadioAttributes[K] } & { [K in keyof XplRadio & keyof XplRadioAttributes as `prop:${K}`]?: XplRadio[K] };
|
|
3611
6290
|
"xpl-secondary-nav": XplSecondaryNav;
|
|
3612
|
-
"xpl-select": XplSelect;
|
|
3613
|
-
"xpl-
|
|
3614
|
-
"xpl-
|
|
3615
|
-
"xpl-
|
|
3616
|
-
"xpl-
|
|
3617
|
-
"xpl-
|
|
6291
|
+
"xpl-select": Omit<XplSelect, keyof XplSelectAttributes> & { [K in keyof XplSelect & keyof XplSelectAttributes]?: XplSelect[K] } & { [K in keyof XplSelect & keyof XplSelectAttributes as `attr:${K}`]?: XplSelectAttributes[K] } & { [K in keyof XplSelect & keyof XplSelectAttributes as `prop:${K}`]?: XplSelect[K] };
|
|
6292
|
+
"xpl-side-nav": Omit<XplSideNav, keyof XplSideNavAttributes> & { [K in keyof XplSideNav & keyof XplSideNavAttributes]?: XplSideNav[K] } & { [K in keyof XplSideNav & keyof XplSideNavAttributes as `attr:${K}`]?: XplSideNavAttributes[K] } & { [K in keyof XplSideNav & keyof XplSideNavAttributes as `prop:${K}`]?: XplSideNav[K] };
|
|
6293
|
+
"xpl-side-nav-item": Omit<XplSideNavItem, keyof XplSideNavItemAttributes> & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes]?: XplSideNavItem[K] } & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes as `attr:${K}`]?: XplSideNavItemAttributes[K] } & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes as `prop:${K}`]?: XplSideNavItem[K] };
|
|
6294
|
+
"xpl-skeleton": Omit<XplSkeleton, keyof XplSkeletonAttributes> & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes]?: XplSkeleton[K] } & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes as `attr:${K}`]?: XplSkeletonAttributes[K] } & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes as `prop:${K}`]?: XplSkeleton[K] };
|
|
6295
|
+
"xpl-slideout": Omit<XplSlideout, keyof XplSlideoutAttributes> & { [K in keyof XplSlideout & keyof XplSlideoutAttributes]?: XplSlideout[K] } & { [K in keyof XplSlideout & keyof XplSlideoutAttributes as `attr:${K}`]?: XplSlideoutAttributes[K] } & { [K in keyof XplSlideout & keyof XplSlideoutAttributes as `prop:${K}`]?: XplSlideout[K] };
|
|
6296
|
+
"xpl-spotlight": Omit<XplSpotlight, keyof XplSpotlightAttributes> & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes]?: XplSpotlight[K] } & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes as `attr:${K}`]?: XplSpotlightAttributes[K] } & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes as `prop:${K}`]?: XplSpotlight[K] };
|
|
6297
|
+
"xpl-tab": Omit<XplTab, keyof XplTabAttributes> & { [K in keyof XplTab & keyof XplTabAttributes]?: XplTab[K] } & { [K in keyof XplTab & keyof XplTabAttributes as `attr:${K}`]?: XplTabAttributes[K] } & { [K in keyof XplTab & keyof XplTabAttributes as `prop:${K}`]?: XplTab[K] };
|
|
6298
|
+
"xpl-tab-panel": Omit<XplTabPanel, keyof XplTabPanelAttributes> & { [K in keyof XplTabPanel & keyof XplTabPanelAttributes]?: XplTabPanel[K] } & { [K in keyof XplTabPanel & keyof XplTabPanelAttributes as `attr:${K}`]?: XplTabPanelAttributes[K] } & { [K in keyof XplTabPanel & keyof XplTabPanelAttributes as `prop:${K}`]?: XplTabPanel[K] };
|
|
6299
|
+
"xpl-table": Omit<XplTable, keyof XplTableAttributes> & { [K in keyof XplTable & keyof XplTableAttributes]?: XplTable[K] } & { [K in keyof XplTable & keyof XplTableAttributes as `attr:${K}`]?: XplTableAttributes[K] } & { [K in keyof XplTable & keyof XplTableAttributes as `prop:${K}`]?: XplTable[K] };
|
|
6300
|
+
"xpl-table-body": XplTableBody;
|
|
6301
|
+
"xpl-table-cell": Omit<XplTableCell, keyof XplTableCellAttributes> & { [K in keyof XplTableCell & keyof XplTableCellAttributes]?: XplTableCell[K] } & { [K in keyof XplTableCell & keyof XplTableCellAttributes as `attr:${K}`]?: XplTableCellAttributes[K] } & { [K in keyof XplTableCell & keyof XplTableCellAttributes as `prop:${K}`]?: XplTableCell[K] };
|
|
6302
|
+
"xpl-table-footer": XplTableFooter;
|
|
6303
|
+
"xpl-table-footer-cell": Omit<XplTableFooterCell, keyof XplTableFooterCellAttributes> & { [K in keyof XplTableFooterCell & keyof XplTableFooterCellAttributes]?: XplTableFooterCell[K] } & { [K in keyof XplTableFooterCell & keyof XplTableFooterCellAttributes as `attr:${K}`]?: XplTableFooterCellAttributes[K] } & { [K in keyof XplTableFooterCell & keyof XplTableFooterCellAttributes as `prop:${K}`]?: XplTableFooterCell[K] };
|
|
3618
6304
|
"xpl-table-header": XplTableHeader;
|
|
3619
|
-
"xpl-table-header-cell": XplTableHeaderCell;
|
|
3620
|
-
"xpl-
|
|
3621
|
-
"xpl-
|
|
3622
|
-
"xpl-
|
|
3623
|
-
"xpl-
|
|
3624
|
-
"xpl-
|
|
3625
|
-
"xpl-
|
|
3626
|
-
"xpl-
|
|
6305
|
+
"xpl-table-header-cell": Omit<XplTableHeaderCell, keyof XplTableHeaderCellAttributes> & { [K in keyof XplTableHeaderCell & keyof XplTableHeaderCellAttributes]?: XplTableHeaderCell[K] } & { [K in keyof XplTableHeaderCell & keyof XplTableHeaderCellAttributes as `attr:${K}`]?: XplTableHeaderCellAttributes[K] } & { [K in keyof XplTableHeaderCell & keyof XplTableHeaderCellAttributes as `prop:${K}`]?: XplTableHeaderCell[K] };
|
|
6306
|
+
"xpl-table-row": Omit<XplTableRow, keyof XplTableRowAttributes> & { [K in keyof XplTableRow & keyof XplTableRowAttributes]?: XplTableRow[K] } & { [K in keyof XplTableRow & keyof XplTableRowAttributes as `attr:${K}`]?: XplTableRowAttributes[K] } & { [K in keyof XplTableRow & keyof XplTableRowAttributes as `prop:${K}`]?: XplTableRow[K] };
|
|
6307
|
+
"xpl-tabs": Omit<XplTabs, keyof XplTabsAttributes> & { [K in keyof XplTabs & keyof XplTabsAttributes]?: XplTabs[K] } & { [K in keyof XplTabs & keyof XplTabsAttributes as `attr:${K}`]?: XplTabsAttributes[K] } & { [K in keyof XplTabs & keyof XplTabsAttributes as `prop:${K}`]?: XplTabs[K] };
|
|
6308
|
+
"xpl-tag": Omit<XplTag, keyof XplTagAttributes> & { [K in keyof XplTag & keyof XplTagAttributes]?: XplTag[K] } & { [K in keyof XplTag & keyof XplTagAttributes as `attr:${K}`]?: XplTagAttributes[K] } & { [K in keyof XplTag & keyof XplTagAttributes as `prop:${K}`]?: XplTag[K] };
|
|
6309
|
+
"xpl-toast": Omit<XplToast, keyof XplToastAttributes> & { [K in keyof XplToast & keyof XplToastAttributes]?: XplToast[K] } & { [K in keyof XplToast & keyof XplToastAttributes as `attr:${K}`]?: XplToastAttributes[K] } & { [K in keyof XplToast & keyof XplToastAttributes as `prop:${K}`]?: XplToast[K] };
|
|
6310
|
+
"xpl-toggle": Omit<XplToggle, keyof XplToggleAttributes> & { [K in keyof XplToggle & keyof XplToggleAttributes]?: XplToggle[K] } & { [K in keyof XplToggle & keyof XplToggleAttributes as `attr:${K}`]?: XplToggleAttributes[K] } & { [K in keyof XplToggle & keyof XplToggleAttributes as `prop:${K}`]?: XplToggle[K] };
|
|
6311
|
+
"xpl-toolbar": Omit<XplToolbar, keyof XplToolbarAttributes> & { [K in keyof XplToolbar & keyof XplToolbarAttributes]?: XplToolbar[K] } & { [K in keyof XplToolbar & keyof XplToolbarAttributes as `attr:${K}`]?: XplToolbarAttributes[K] } & { [K in keyof XplToolbar & keyof XplToolbarAttributes as `prop:${K}`]?: XplToolbar[K] };
|
|
6312
|
+
"xpl-tooltip": Omit<XplTooltip, keyof XplTooltipAttributes> & { [K in keyof XplTooltip & keyof XplTooltipAttributes]?: XplTooltip[K] } & { [K in keyof XplTooltip & keyof XplTooltipAttributes as `attr:${K}`]?: XplTooltipAttributes[K] } & { [K in keyof XplTooltip & keyof XplTooltipAttributes as `prop:${K}`]?: XplTooltip[K] };
|
|
6313
|
+
"xpl-top-nav": Omit<XplTopNav, keyof XplTopNavAttributes> & { [K in keyof XplTopNav & keyof XplTopNavAttributes]?: XplTopNav[K] } & { [K in keyof XplTopNav & keyof XplTopNavAttributes as `attr:${K}`]?: XplTopNavAttributes[K] } & { [K in keyof XplTopNav & keyof XplTopNavAttributes as `prop:${K}`]?: XplTopNav[K] };
|
|
6314
|
+
"xpl-top-nav-item": Omit<XplTopNavItem, keyof XplTopNavItemAttributes> & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes]?: XplTopNavItem[K] } & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes as `attr:${K}`]?: XplTopNavItemAttributes[K] } & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes as `prop:${K}`]?: XplTopNavItem[K] };
|
|
6315
|
+
"xpl-utility-bar": Omit<XplUtilityBar, keyof XplUtilityBarAttributes> & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes]?: XplUtilityBar[K] } & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes as `attr:${K}`]?: XplUtilityBarAttributes[K] } & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes as `prop:${K}`]?: XplUtilityBar[K] };
|
|
3627
6316
|
}
|
|
3628
6317
|
}
|
|
3629
6318
|
export { LocalJSX as JSX };
|
|
3630
6319
|
declare module "@stencil/core" {
|
|
3631
6320
|
export namespace JSX {
|
|
3632
6321
|
interface IntrinsicElements {
|
|
3633
|
-
"xpl-accordion": LocalJSX.
|
|
3634
|
-
"xpl-application-shell": LocalJSX.
|
|
3635
|
-
"xpl-avatar": LocalJSX.
|
|
3636
|
-
"xpl-backdrop": LocalJSX.
|
|
3637
|
-
"xpl-badge": LocalJSX.
|
|
3638
|
-
"xpl-
|
|
3639
|
-
"xpl-
|
|
3640
|
-
"xpl-
|
|
3641
|
-
"xpl-button
|
|
3642
|
-
"xpl-
|
|
3643
|
-
"xpl-
|
|
3644
|
-
"xpl-
|
|
3645
|
-
"xpl-
|
|
3646
|
-
"xpl-
|
|
3647
|
-
"xpl-
|
|
3648
|
-
"xpl-
|
|
3649
|
-
"xpl-
|
|
3650
|
-
"xpl-dropdown
|
|
3651
|
-
"xpl-dropdown-
|
|
3652
|
-
"xpl-dropdown-
|
|
3653
|
-
"xpl-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
"xpl-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
6322
|
+
"xpl-accordion": LocalJSX.IntrinsicElements["xpl-accordion"] & JSXBase.HTMLAttributes<HTMLXplAccordionElement>;
|
|
6323
|
+
"xpl-application-shell": LocalJSX.IntrinsicElements["xpl-application-shell"] & JSXBase.HTMLAttributes<HTMLXplApplicationShellElement>;
|
|
6324
|
+
"xpl-avatar": LocalJSX.IntrinsicElements["xpl-avatar"] & JSXBase.HTMLAttributes<HTMLXplAvatarElement>;
|
|
6325
|
+
"xpl-backdrop": LocalJSX.IntrinsicElements["xpl-backdrop"] & JSXBase.HTMLAttributes<HTMLXplBackdropElement>;
|
|
6326
|
+
"xpl-badge": LocalJSX.IntrinsicElements["xpl-badge"] & JSXBase.HTMLAttributes<HTMLXplBadgeElement>;
|
|
6327
|
+
"xpl-banner": LocalJSX.IntrinsicElements["xpl-banner"] & JSXBase.HTMLAttributes<HTMLXplBannerElement>;
|
|
6328
|
+
"xpl-breadcrumb-item": LocalJSX.IntrinsicElements["xpl-breadcrumb-item"] & JSXBase.HTMLAttributes<HTMLXplBreadcrumbItemElement>;
|
|
6329
|
+
"xpl-breadcrumbs": LocalJSX.IntrinsicElements["xpl-breadcrumbs"] & JSXBase.HTMLAttributes<HTMLXplBreadcrumbsElement>;
|
|
6330
|
+
"xpl-button": LocalJSX.IntrinsicElements["xpl-button"] & JSXBase.HTMLAttributes<HTMLXplButtonElement>;
|
|
6331
|
+
"xpl-button-row": LocalJSX.IntrinsicElements["xpl-button-row"] & JSXBase.HTMLAttributes<HTMLXplButtonRowElement>;
|
|
6332
|
+
"xpl-calendar": LocalJSX.IntrinsicElements["xpl-calendar"] & JSXBase.HTMLAttributes<HTMLXplCalendarElement>;
|
|
6333
|
+
"xpl-checkbox": LocalJSX.IntrinsicElements["xpl-checkbox"] & JSXBase.HTMLAttributes<HTMLXplCheckboxElement>;
|
|
6334
|
+
"xpl-choicelist": LocalJSX.IntrinsicElements["xpl-choicelist"] & JSXBase.HTMLAttributes<HTMLXplChoicelistElement>;
|
|
6335
|
+
"xpl-content-area": LocalJSX.IntrinsicElements["xpl-content-area"] & JSXBase.HTMLAttributes<HTMLXplContentAreaElement>;
|
|
6336
|
+
"xpl-dashboard": LocalJSX.IntrinsicElements["xpl-dashboard"] & JSXBase.HTMLAttributes<HTMLXplDashboardElement>;
|
|
6337
|
+
"xpl-data-card": LocalJSX.IntrinsicElements["xpl-data-card"] & JSXBase.HTMLAttributes<HTMLXplDataCardElement>;
|
|
6338
|
+
"xpl-divider": LocalJSX.IntrinsicElements["xpl-divider"] & JSXBase.HTMLAttributes<HTMLXplDividerElement>;
|
|
6339
|
+
"xpl-dropdown": LocalJSX.IntrinsicElements["xpl-dropdown"] & JSXBase.HTMLAttributes<HTMLXplDropdownElement>;
|
|
6340
|
+
"xpl-dropdown-group": LocalJSX.IntrinsicElements["xpl-dropdown-group"] & JSXBase.HTMLAttributes<HTMLXplDropdownGroupElement>;
|
|
6341
|
+
"xpl-dropdown-heading": LocalJSX.IntrinsicElements["xpl-dropdown-heading"] & JSXBase.HTMLAttributes<HTMLXplDropdownHeadingElement>;
|
|
6342
|
+
"xpl-dropdown-option": LocalJSX.IntrinsicElements["xpl-dropdown-option"] & JSXBase.HTMLAttributes<HTMLXplDropdownOptionElement>;
|
|
6343
|
+
/**
|
|
6344
|
+
* @deprecated Use the compositional `<xpl-table>` API instead.
|
|
6345
|
+
* This component will be removed in a future major release.
|
|
6346
|
+
*/
|
|
6347
|
+
"xpl-dynamic-table": LocalJSX.IntrinsicElements["xpl-dynamic-table"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableElement>;
|
|
6348
|
+
/**
|
|
6349
|
+
* @deprecated Use `<xpl-table-cell>` instead.
|
|
6350
|
+
* This component will be removed in a future major release.
|
|
6351
|
+
*/
|
|
6352
|
+
"xpl-dynamic-table-cell": LocalJSX.IntrinsicElements["xpl-dynamic-table-cell"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableCellElement>;
|
|
6353
|
+
/**
|
|
6354
|
+
* @deprecated Use `<xpl-table-row>` instead.
|
|
6355
|
+
* This component will be removed in a future major release.
|
|
6356
|
+
*/
|
|
6357
|
+
"xpl-dynamic-table-row": LocalJSX.IntrinsicElements["xpl-dynamic-table-row"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableRowElement>;
|
|
6358
|
+
"xpl-grid": LocalJSX.IntrinsicElements["xpl-grid"] & JSXBase.HTMLAttributes<HTMLXplGridElement>;
|
|
6359
|
+
"xpl-grid-item": LocalJSX.IntrinsicElements["xpl-grid-item"] & JSXBase.HTMLAttributes<HTMLXplGridItemElement>;
|
|
6360
|
+
"xpl-header-accordion": LocalJSX.IntrinsicElements["xpl-header-accordion"] & JSXBase.HTMLAttributes<HTMLXplHeaderAccordionElement>;
|
|
6361
|
+
"xpl-icon": LocalJSX.IntrinsicElements["xpl-icon"] & JSXBase.HTMLAttributes<HTMLXplIconElement>;
|
|
6362
|
+
"xpl-input": LocalJSX.IntrinsicElements["xpl-input"] & JSXBase.HTMLAttributes<HTMLXplInputElement>;
|
|
6363
|
+
"xpl-input-color": LocalJSX.IntrinsicElements["xpl-input-color"] & JSXBase.HTMLAttributes<HTMLXplInputColorElement>;
|
|
6364
|
+
"xpl-input-date": LocalJSX.IntrinsicElements["xpl-input-date"] & JSXBase.HTMLAttributes<HTMLXplInputDateElement>;
|
|
3663
6365
|
/**
|
|
3664
6366
|
* `xpl-input-file` is a component that allows users to upload files.
|
|
3665
6367
|
*/
|
|
3666
|
-
"xpl-input-file": LocalJSX.
|
|
3667
|
-
"xpl-input-
|
|
3668
|
-
"xpl-
|
|
3669
|
-
"xpl-
|
|
3670
|
-
"xpl-
|
|
3671
|
-
"xpl-
|
|
3672
|
-
"xpl-
|
|
3673
|
-
"xpl-
|
|
3674
|
-
"xpl-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
6368
|
+
"xpl-input-file": LocalJSX.IntrinsicElements["xpl-input-file"] & JSXBase.HTMLAttributes<HTMLXplInputFileElement>;
|
|
6369
|
+
"xpl-input-phone": LocalJSX.IntrinsicElements["xpl-input-phone"] & JSXBase.HTMLAttributes<HTMLXplInputPhoneElement>;
|
|
6370
|
+
"xpl-input-search": LocalJSX.IntrinsicElements["xpl-input-search"] & JSXBase.HTMLAttributes<HTMLXplInputSearchElement>;
|
|
6371
|
+
"xpl-input-time": LocalJSX.IntrinsicElements["xpl-input-time"] & JSXBase.HTMLAttributes<HTMLXplInputTimeElement>;
|
|
6372
|
+
"xpl-large-card": LocalJSX.IntrinsicElements["xpl-large-card"] & JSXBase.HTMLAttributes<HTMLXplLargeCardElement>;
|
|
6373
|
+
"xpl-list": LocalJSX.IntrinsicElements["xpl-list"] & JSXBase.HTMLAttributes<HTMLXplListElement>;
|
|
6374
|
+
"xpl-list-item": LocalJSX.IntrinsicElements["xpl-list-item"] & JSXBase.HTMLAttributes<HTMLXplListItemElement>;
|
|
6375
|
+
"xpl-main-nav": LocalJSX.IntrinsicElements["xpl-main-nav"] & JSXBase.HTMLAttributes<HTMLXplMainNavElement>;
|
|
6376
|
+
"xpl-modal": LocalJSX.IntrinsicElements["xpl-modal"] & JSXBase.HTMLAttributes<HTMLXplModalElement>;
|
|
6377
|
+
/**
|
|
6378
|
+
* Profile / account block (username, email, default slot for **`xpl-top-nav-item`** / **`xpl-divider`**).
|
|
6379
|
+
* Tag **`xpl-nav-header-menu`**; implementation folder **`xpl-nav-header-menu`**. **`.xpl-nav-header-menu__slot`** is
|
|
6380
|
+
* **`role="list"`** for slotted **`xpl-top-nav-item`** (**`role="listitem"`**).
|
|
6381
|
+
* **Slotted content:** do not add **`xpl-nav-header-menu__*`** BEM classes on nodes you pass into the default slot —
|
|
6382
|
+
* profile, list shell, and **`xpl-top-nav-item`** **`role="listitem"`** are handled by the component. Use
|
|
6383
|
+
* **`xpl-top-nav-item`** (or plain elements that are not Apollo **`xpl-*`** BEM hooks) in the slot only.
|
|
6384
|
+
* **`slot="right-aside-mobile"`** — optional block **between** the profile header and the default-slot list (e.g. narrow-only
|
|
6385
|
+
* duplicate of **every** **`slot="right-aside"`** control per Figma when **`xpl-top-nav`** hides **`right-aside`** on narrow viewports (always)).
|
|
6386
|
+
* Not **`role="list"`**; use **`xpl-button`** / **`xpl-top-nav-item`** as needed. Shown only on **narrow viewports** (one pixel below Tailwind **`md`** — **`top-nav.css`**) so bar actions stay in **`slot="right-aside"`** on wider viewports.
|
|
6387
|
+
* Light-DOM **`slotchange`** is unreliable; a host **`MutationObserver`** (child / subtree / **`slot`** attribute) keeps
|
|
6388
|
+
* **`xpl-nav-header-menu--has-right-aside-mobile`** in sync when nodes are added or retargeted after mount (same pattern as **`xpl-top-nav`**).
|
|
6389
|
+
* Stencil **`newSpecPage`** / mock-doc does not define **`MutationObserver`**; slot presence still updates on the next
|
|
6390
|
+
* deferred flush (**`setTimeout(0)`** coalesced with **`componentDidRender`**). In real browsers the observer handles child /
|
|
6391
|
+
* **`slot`** mutations without stacking uncancellable microtasks.
|
|
6392
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
6393
|
+
* values even when the page root is light (same contract as **`xpl-top-nav`** / **`xpl-top-nav-item`**).
|
|
6394
|
+
*/
|
|
6395
|
+
"xpl-nav-header-menu": LocalJSX.IntrinsicElements["xpl-nav-header-menu"] & JSXBase.HTMLAttributes<HTMLXplNavHeaderMenuElement>;
|
|
6396
|
+
"xpl-nav-item": LocalJSX.IntrinsicElements["xpl-nav-item"] & JSXBase.HTMLAttributes<HTMLXplNavItemElement>;
|
|
6397
|
+
"xpl-pagination": LocalJSX.IntrinsicElements["xpl-pagination"] & JSXBase.HTMLAttributes<HTMLXplPaginationElement>;
|
|
6398
|
+
/**
|
|
6399
|
+
* A stateless container that defines a section on a page and can house any
|
|
6400
|
+
* type of content. Panels are not dismissible and may contain a top accent.
|
|
6401
|
+
*/
|
|
6402
|
+
"xpl-panel": LocalJSX.IntrinsicElements["xpl-panel"] & JSXBase.HTMLAttributes<HTMLXplPanelElement>;
|
|
6403
|
+
"xpl-popover": LocalJSX.IntrinsicElements["xpl-popover"] & JSXBase.HTMLAttributes<HTMLXplPopoverElement>;
|
|
6404
|
+
"xpl-progress-bar": LocalJSX.IntrinsicElements["xpl-progress-bar"] & JSXBase.HTMLAttributes<HTMLXplProgressBarElement>;
|
|
6405
|
+
"xpl-progress-indicator": LocalJSX.IntrinsicElements["xpl-progress-indicator"] & JSXBase.HTMLAttributes<HTMLXplProgressIndicatorElement>;
|
|
6406
|
+
"xpl-radio": LocalJSX.IntrinsicElements["xpl-radio"] & JSXBase.HTMLAttributes<HTMLXplRadioElement>;
|
|
6407
|
+
"xpl-secondary-nav": LocalJSX.IntrinsicElements["xpl-secondary-nav"] & JSXBase.HTMLAttributes<HTMLXplSecondaryNavElement>;
|
|
6408
|
+
"xpl-select": LocalJSX.IntrinsicElements["xpl-select"] & JSXBase.HTMLAttributes<HTMLXplSelectElement>;
|
|
6409
|
+
"xpl-side-nav": LocalJSX.IntrinsicElements["xpl-side-nav"] & JSXBase.HTMLAttributes<HTMLXplSideNavElement>;
|
|
6410
|
+
"xpl-side-nav-item": LocalJSX.IntrinsicElements["xpl-side-nav-item"] & JSXBase.HTMLAttributes<HTMLXplSideNavItemElement>;
|
|
6411
|
+
"xpl-skeleton": LocalJSX.IntrinsicElements["xpl-skeleton"] & JSXBase.HTMLAttributes<HTMLXplSkeletonElement>;
|
|
6412
|
+
"xpl-slideout": LocalJSX.IntrinsicElements["xpl-slideout"] & JSXBase.HTMLAttributes<HTMLXplSlideoutElement>;
|
|
6413
|
+
"xpl-spotlight": LocalJSX.IntrinsicElements["xpl-spotlight"] & JSXBase.HTMLAttributes<HTMLXplSpotlightElement>;
|
|
6414
|
+
"xpl-tab": LocalJSX.IntrinsicElements["xpl-tab"] & JSXBase.HTMLAttributes<HTMLXplTabElement>;
|
|
6415
|
+
"xpl-tab-panel": LocalJSX.IntrinsicElements["xpl-tab-panel"] & JSXBase.HTMLAttributes<HTMLXplTabPanelElement>;
|
|
6416
|
+
/**
|
|
6417
|
+
* Compositional tables use CSS grid on the host (`role="grid"`). Legacy mode uses a `<table>`.
|
|
6418
|
+
*/
|
|
6419
|
+
"xpl-table": LocalJSX.IntrinsicElements["xpl-table"] & JSXBase.HTMLAttributes<HTMLXplTableElement>;
|
|
6420
|
+
"xpl-table-body": LocalJSX.IntrinsicElements["xpl-table-body"] & JSXBase.HTMLAttributes<HTMLXplTableBodyElement>;
|
|
6421
|
+
"xpl-table-cell": LocalJSX.IntrinsicElements["xpl-table-cell"] & JSXBase.HTMLAttributes<HTMLXplTableCellElement>;
|
|
6422
|
+
"xpl-table-footer": LocalJSX.IntrinsicElements["xpl-table-footer"] & JSXBase.HTMLAttributes<HTMLXplTableFooterElement>;
|
|
6423
|
+
"xpl-table-footer-cell": LocalJSX.IntrinsicElements["xpl-table-footer-cell"] & JSXBase.HTMLAttributes<HTMLXplTableFooterCellElement>;
|
|
6424
|
+
"xpl-table-header": LocalJSX.IntrinsicElements["xpl-table-header"] & JSXBase.HTMLAttributes<HTMLXplTableHeaderElement>;
|
|
6425
|
+
"xpl-table-header-cell": LocalJSX.IntrinsicElements["xpl-table-header-cell"] & JSXBase.HTMLAttributes<HTMLXplTableHeaderCellElement>;
|
|
6426
|
+
"xpl-table-row": LocalJSX.IntrinsicElements["xpl-table-row"] & JSXBase.HTMLAttributes<HTMLXplTableRowElement>;
|
|
6427
|
+
"xpl-tabs": LocalJSX.IntrinsicElements["xpl-tabs"] & JSXBase.HTMLAttributes<HTMLXplTabsElement>;
|
|
6428
|
+
"xpl-tag": LocalJSX.IntrinsicElements["xpl-tag"] & JSXBase.HTMLAttributes<HTMLXplTagElement>;
|
|
6429
|
+
"xpl-toast": LocalJSX.IntrinsicElements["xpl-toast"] & JSXBase.HTMLAttributes<HTMLXplToastElement>;
|
|
6430
|
+
"xpl-toggle": LocalJSX.IntrinsicElements["xpl-toggle"] & JSXBase.HTMLAttributes<HTMLXplToggleElement>;
|
|
6431
|
+
"xpl-toolbar": LocalJSX.IntrinsicElements["xpl-toolbar"] & JSXBase.HTMLAttributes<HTMLXplToolbarElement>;
|
|
6432
|
+
"xpl-tooltip": LocalJSX.IntrinsicElements["xpl-tooltip"] & JSXBase.HTMLAttributes<HTMLXplTooltipElement>;
|
|
6433
|
+
/**
|
|
6434
|
+
* Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-aside`** then **user menu**
|
|
6435
|
+
* (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
|
|
6436
|
+
* 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.
|
|
6437
|
+
* **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).
|
|
6438
|
+
* **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
|
|
6439
|
+
* on **`ownerDocument`** so nested dropdowns close before the drawer.
|
|
6440
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
|
|
6441
|
+
* resolve to dark-mode values even when the page root is light. Floating overlays (e.g. **`xpl-popover`** / **`xpl-dropdown`**
|
|
6442
|
+
* content teleported outside the host) do not inherit this scope — add **`dark`** on those panels if they should match.
|
|
6443
|
+
* **Layout:** **`right-aside`** and the user-menu region are wrapped internally (**`.xpl-top-nav__right-lead`**, etc.).
|
|
6444
|
+
* Consumers should not add those BEM classes — slot content only.
|
|
6445
|
+
* **Brand logo:** use **`brand-logo`** (URL) for a built-in **`<img>`**, or **`slot="brand-logo"`** for custom markup (e.g. **`xpl-icon`**, SVG). When the URL prop is set, it takes precedence and the slot is not used for the image. On **narrow viewports** (one pixel below Tailwind **`md`** — see **`top-nav.css`**), **`brand-name`** text is hidden in the bar (logo / slot mark only); keep a meaningful **`alt`** on **`brand-logo`** or accessible slotted mark for context.
|
|
6446
|
+
* **Narrow / mobile** (same breakpoint as above): **`slot="left-aside"`** is **hidden** in the bar until **`nav-control`**
|
|
6447
|
+
* is set **and** the drawer is open (floating panel per Figma). **Without **`nav-control`**, there is no mobile drawer** —
|
|
6448
|
+
* primary links remain hidden below **`md`** until the viewport is wide enough for the horizontal bar. The built-in **brand**
|
|
6449
|
+
* stays in the top bar (**hamburger → brand** when **`nav-control`** is set). **`right-aside`** is hidden in the bar on narrow
|
|
6450
|
+
* viewports (**`top-nav.css`**, one pixel below Tailwind **`md`**); duplicate those actions into **`xpl-nav-header-menu`**
|
|
6451
|
+
* **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
|
|
6452
|
+
* **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
|
|
6453
|
+
* and emits **`navOpen(false)`** so the two layers do not stack.
|
|
6454
|
+
*/
|
|
6455
|
+
"xpl-top-nav": LocalJSX.IntrinsicElements["xpl-top-nav"] & JSXBase.HTMLAttributes<HTMLXplTopNavElement>;
|
|
6456
|
+
/**
|
|
6457
|
+
* Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
|
|
6458
|
+
* participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
|
|
6459
|
+
* **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
|
|
6460
|
+
* under **`xpl-nav-header-menu`**. That flag is
|
|
6461
|
+
* kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
|
|
6462
|
+
* on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
|
|
6463
|
+
* without a full reconnect still re-sync. The internal
|
|
6464
|
+
* **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
|
|
6465
|
+
* as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
|
|
6466
|
+
* panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
|
|
6467
|
+
* **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
|
|
6468
|
+
* custom trigger content — the component renders the inner wrapper and BEM elements.
|
|
6469
|
+
* **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
|
|
6470
|
+
* values even when the page root is light (consistent with **`xpl-top-nav`**).
|
|
6471
|
+
*/
|
|
6472
|
+
"xpl-top-nav-item": LocalJSX.IntrinsicElements["xpl-top-nav-item"] & JSXBase.HTMLAttributes<HTMLXplTopNavItemElement>;
|
|
6473
|
+
"xpl-utility-bar": LocalJSX.IntrinsicElements["xpl-utility-bar"] & JSXBase.HTMLAttributes<HTMLXplUtilityBarElement>;
|
|
3693
6474
|
}
|
|
3694
6475
|
}
|
|
3695
6476
|
}
|