@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
|
@@ -1,128 +1,147 @@
|
|
|
1
|
-
import { v4 as uuid } from "uuid";
|
|
2
1
|
export default {
|
|
3
2
|
title: 'Components/Avatar',
|
|
4
3
|
};
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
attrs
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
4
|
+
const defaultGroupData = [
|
|
5
|
+
{ name: 'Alex', color: 'green' },
|
|
6
|
+
{ name: 'Jordan', color: 'yellow' },
|
|
7
|
+
{ name: 'Sam', color: 'pink' },
|
|
8
|
+
{ src: 'https://placebear.com/128/128', name: 'D' },
|
|
9
|
+
{ src: 'https://placebear.com/128/128', name: 'E' },
|
|
10
|
+
];
|
|
11
|
+
function statusToBadgeVariant(s) {
|
|
12
|
+
var _a;
|
|
13
|
+
const map = {
|
|
14
|
+
active: 'green',
|
|
15
|
+
inactive: 'gray',
|
|
16
|
+
warning: 'red',
|
|
17
|
+
};
|
|
18
|
+
return (_a = map[s]) !== null && _a !== void 0 ? _a : s;
|
|
19
|
+
}
|
|
20
|
+
function buildAttrs(args) {
|
|
21
|
+
var _a;
|
|
22
|
+
const attrs = [];
|
|
23
|
+
if (args.variant && args.variant !== 'default') {
|
|
24
|
+
attrs.push(`variant="${args.variant}"`);
|
|
25
|
+
}
|
|
26
|
+
if (args.size) {
|
|
27
|
+
attrs.push(`size="${args.size}"`);
|
|
28
|
+
}
|
|
29
|
+
if (args.color) {
|
|
30
|
+
attrs.push(`color="${args.color}"`);
|
|
31
|
+
}
|
|
32
|
+
if (args.variant === 'group') {
|
|
33
|
+
const data = JSON.stringify((_a = args.groupData) !== null && _a !== void 0 ? _a : defaultGroupData);
|
|
34
|
+
attrs.push(`group-data='${data.replace(/'/g, ''')}'`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
if (args.src)
|
|
38
|
+
attrs.push(`src="${args.src}"`);
|
|
39
|
+
if (args.name)
|
|
40
|
+
attrs.push(`name="${args.name}"`);
|
|
41
|
+
if (args.variant === 'with-text' && args.subText) {
|
|
42
|
+
attrs.push(`sub-text="${args.subText}"`);
|
|
43
|
+
}
|
|
44
|
+
if (args.status) {
|
|
45
|
+
attrs.push(`status="${args.status}"`);
|
|
46
|
+
}
|
|
47
|
+
if (args.href)
|
|
48
|
+
attrs.push('href="https://xplor.com/"');
|
|
49
|
+
if (args.disabled)
|
|
50
|
+
attrs.push('disabled');
|
|
51
|
+
}
|
|
52
|
+
return attrs.join(' ');
|
|
53
|
+
}
|
|
54
|
+
export const Avatar = (args) => {
|
|
55
|
+
const attrs = buildAttrs(args);
|
|
56
|
+
return `<xpl-avatar ${attrs}></xpl-avatar>`;
|
|
31
57
|
};
|
|
32
58
|
Avatar.argTypes = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
name: {
|
|
37
|
-
type: { name: 'string', required: false },
|
|
59
|
+
variant: {
|
|
60
|
+
options: ['default', 'profile', 'group', 'with-text'],
|
|
61
|
+
control: { type: 'select' },
|
|
38
62
|
},
|
|
39
63
|
size: {
|
|
40
|
-
options: ['
|
|
41
|
-
control: {
|
|
42
|
-
type: 'select',
|
|
43
|
-
},
|
|
64
|
+
options: ['md', 'sm'],
|
|
65
|
+
control: { type: 'select' },
|
|
44
66
|
},
|
|
45
67
|
color: {
|
|
46
68
|
options: ['green', 'yellow', 'pink', 'primary', 'secondary'],
|
|
47
|
-
control: {
|
|
48
|
-
type: 'select',
|
|
49
|
-
},
|
|
69
|
+
control: { type: 'select' },
|
|
50
70
|
},
|
|
51
71
|
status: {
|
|
52
|
-
options: [
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
options: [
|
|
73
|
+
'purple',
|
|
74
|
+
'green',
|
|
75
|
+
'yellow',
|
|
76
|
+
'orange',
|
|
77
|
+
'gray',
|
|
78
|
+
'red',
|
|
79
|
+
'blue',
|
|
80
|
+
'active',
|
|
81
|
+
'warning',
|
|
82
|
+
'inactive',
|
|
83
|
+
],
|
|
84
|
+
control: { type: 'select' },
|
|
85
|
+
description: 'Status dot (badge palette). Legacy: active→green, warning→red, inactive→gray (deprecated, removed next major).',
|
|
66
86
|
},
|
|
87
|
+
src: { control: { type: 'text' } },
|
|
88
|
+
name: { control: { type: 'text' } },
|
|
89
|
+
subText: { control: { type: 'text' }, description: 'Secondary text (with-text variant only)' },
|
|
90
|
+
href: { control: { type: 'boolean' }, description: 'Make avatar a link' },
|
|
91
|
+
disabled: { control: { type: 'boolean' } },
|
|
92
|
+
groupData: { control: { type: 'object' }, description: 'Array of items (group variant only)' },
|
|
67
93
|
};
|
|
68
94
|
Avatar.args = {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
95
|
+
variant: 'default',
|
|
96
|
+
src: 'https://placebear.com/128/128',
|
|
97
|
+
name: 'Katie Wilson',
|
|
98
|
+
subText: 'katie01@email.com',
|
|
99
|
+
size: undefined,
|
|
100
|
+
color: undefined,
|
|
101
|
+
status: undefined,
|
|
102
|
+
href: false,
|
|
75
103
|
disabled: false,
|
|
104
|
+
groupData: defaultGroupData,
|
|
76
105
|
};
|
|
77
|
-
|
|
106
|
+
const commonParameters = {
|
|
78
107
|
layout: 'centered',
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (placeholder === '')
|
|
83
|
-
attrs += ` src="image.png"`;
|
|
84
|
-
if (name !== '')
|
|
85
|
-
attrs += ` name="${name}"`;
|
|
86
|
-
if (size !== 'default')
|
|
87
|
-
attrs += ` size="${size}"`;
|
|
88
|
-
if (color !== 'secondary')
|
|
89
|
-
attrs += ` color="${color}"`;
|
|
90
|
-
if (status !== 'none')
|
|
91
|
-
attrs += ` status="${status}"`;
|
|
92
|
-
if (link)
|
|
93
|
-
attrs += ` href="#"`;
|
|
94
|
-
if (disabled)
|
|
95
|
-
attrs += ` disabled`;
|
|
96
|
-
return `<xpl-avatar${attrs}>${placeholder}</xpl-avatar>`;
|
|
97
|
-
})(Avatar.args),
|
|
108
|
+
design: {
|
|
109
|
+
type: 'figma',
|
|
110
|
+
url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=6-1394',
|
|
98
111
|
},
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
};
|
|
113
|
+
Avatar.parameters = Object.assign(Object.assign({}, commonParameters), { 'web-component': {
|
|
114
|
+
render: Avatar(Avatar.args),
|
|
115
|
+
}, html: {
|
|
116
|
+
render: ((args) => {
|
|
117
|
+
const hasImage = !!args.src;
|
|
118
|
+
const name = args.name || 'Profile';
|
|
119
|
+
const placeholder = !hasImage
|
|
120
|
+
? args.name
|
|
121
|
+
? (() => {
|
|
122
|
+
var _a, _b, _c;
|
|
123
|
+
const p = args.name.trim().split(/\s+/).filter(Boolean);
|
|
124
|
+
if (p.length === 0)
|
|
125
|
+
return '';
|
|
126
|
+
if (p.length === 1)
|
|
127
|
+
return p[0].slice(0, 3).toUpperCase();
|
|
128
|
+
return `${(_a = p[0][0]) !== null && _a !== void 0 ? _a : ''}${p.length > 2 ? ((_b = p[1][0]) !== null && _b !== void 0 ? _b : '') : ''}${(_c = p[p.length - 1][0]) !== null && _c !== void 0 ? _c : ''}`
|
|
129
|
+
.slice(0, 3)
|
|
130
|
+
.toUpperCase();
|
|
131
|
+
})()
|
|
132
|
+
: 'KW'
|
|
133
|
+
: '';
|
|
114
134
|
return `
|
|
115
|
-
|
|
135
|
+
<div class="xpl-avatar ${args.color ? `xpl-avatar--${args.color}` : ''} ${args.size ? `xpl-avatar--${args.size}` : ''}">
|
|
116
136
|
<div>
|
|
117
|
-
|
|
118
|
-
?
|
|
119
|
-
:
|
|
120
|
-
|
|
121
|
-
|
|
137
|
+
${hasImage
|
|
138
|
+
? `<img alt="${name}" src="${args.src}">`
|
|
139
|
+
: `<div class="xpl-avatar__placeholder" role="img" aria-label="${name}">${placeholder}</div>`}
|
|
140
|
+
${args.status
|
|
141
|
+
? `<xpl-badge dot-only bordered variant="${statusToBadgeVariant(args.status)}" aria-hidden="true"></xpl-badge>`
|
|
122
142
|
: ''}
|
|
143
|
+
</div>
|
|
123
144
|
</div>
|
|
124
|
-
</${tag}>
|
|
125
145
|
`;
|
|
126
146
|
})(Avatar.args),
|
|
127
|
-
}
|
|
128
|
-
};
|
|
147
|
+
} });
|
|
@@ -1,16 +1,153 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
-
|
|
2
|
+
const LEGACY_STATUS_TO_BADGE = {
|
|
3
|
+
active: 'green',
|
|
4
|
+
inactive: 'gray',
|
|
5
|
+
warning: 'red',
|
|
6
|
+
};
|
|
7
|
+
const MAX_GROUP_VISIBLE = 4;
|
|
8
|
+
const MAX_INITIALS = 3;
|
|
9
|
+
function getInitials(name) {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
if (!name || !name.trim())
|
|
12
|
+
return '';
|
|
13
|
+
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
14
|
+
if (parts.length === 0)
|
|
15
|
+
return '';
|
|
16
|
+
if (parts.length === 1)
|
|
17
|
+
return parts[0].slice(0, MAX_INITIALS).toUpperCase();
|
|
18
|
+
const first = (_a = parts[0][0]) !== null && _a !== void 0 ? _a : '';
|
|
19
|
+
const last = (_b = parts[parts.length - 1][0]) !== null && _b !== void 0 ? _b : '';
|
|
20
|
+
const mid = parts.length > 2 ? ((_c = parts[1][0]) !== null && _c !== void 0 ? _c : '') : '';
|
|
21
|
+
return (first + mid + last).slice(0, MAX_INITIALS).toUpperCase();
|
|
22
|
+
}
|
|
23
|
+
function formatRemainingCount(n) {
|
|
24
|
+
if (n <= 0)
|
|
25
|
+
return '';
|
|
26
|
+
if (n <= 999)
|
|
27
|
+
return `+${n}`;
|
|
28
|
+
const rounded = Math.round(n / 500) * 500;
|
|
29
|
+
const k = rounded / 1000;
|
|
30
|
+
const label = k % 1 === 0 ? `${k}k` : `${k.toFixed(1)}k`;
|
|
31
|
+
return `+${label}`;
|
|
32
|
+
}
|
|
33
|
+
export class Avatar {
|
|
3
34
|
constructor() {
|
|
35
|
+
this.cachedGroupItems = [];
|
|
36
|
+
this.cachedSlotContent = '';
|
|
4
37
|
this.disabled = false;
|
|
5
38
|
}
|
|
39
|
+
onGroupDataChange(newValue) {
|
|
40
|
+
this.cachedGroupItems = Avatar.parseGroupData(newValue);
|
|
41
|
+
}
|
|
42
|
+
componentWillLoad() {
|
|
43
|
+
var _a, _b, _c;
|
|
44
|
+
this.cachedSlotContent = (_c = (_b = (_a = this.el) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim().slice(0, MAX_INITIALS)) !== null && _c !== void 0 ? _c : '';
|
|
45
|
+
this.onGroupDataChange(this.groupData);
|
|
46
|
+
}
|
|
47
|
+
static parseGroupData(raw) {
|
|
48
|
+
if (raw == null)
|
|
49
|
+
return [];
|
|
50
|
+
if (typeof raw === 'string') {
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse(raw);
|
|
53
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
54
|
+
}
|
|
55
|
+
catch (_a) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return Array.isArray(raw) ? raw : [];
|
|
60
|
+
}
|
|
61
|
+
get groupItems() {
|
|
62
|
+
return this.cachedGroupItems;
|
|
63
|
+
}
|
|
64
|
+
get statusBadgeVariant() {
|
|
65
|
+
var _a;
|
|
66
|
+
const s = this.status;
|
|
67
|
+
if (s === undefined)
|
|
68
|
+
return undefined;
|
|
69
|
+
return ((_a = LEGACY_STATUS_TO_BADGE[s]) !== null && _a !== void 0 ? _a : s);
|
|
70
|
+
}
|
|
71
|
+
getPlaceholderText() {
|
|
72
|
+
if (this.cachedSlotContent.length > 0)
|
|
73
|
+
return this.cachedSlotContent;
|
|
74
|
+
return getInitials(this.name);
|
|
75
|
+
}
|
|
76
|
+
static getSingleAvatarClasses(size, color, isProfileSize, disabled) {
|
|
77
|
+
return {
|
|
78
|
+
'xpl-avatar': true,
|
|
79
|
+
[`xpl-avatar--${size}`]: !!size,
|
|
80
|
+
[`xpl-avatar--${color}`]: !!color,
|
|
81
|
+
'xpl-avatar--profile': !!isProfileSize,
|
|
82
|
+
'xpl-avatar--disabled': !!disabled,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
getAnchorProps(className) {
|
|
86
|
+
var _a;
|
|
87
|
+
return {
|
|
88
|
+
href: this.href,
|
|
89
|
+
target: this.target,
|
|
90
|
+
rel: this.target === '_blank' ? 'noopener noreferrer' : undefined,
|
|
91
|
+
'aria-label': (_a = this.name) !== null && _a !== void 0 ? _a : 'Profile',
|
|
92
|
+
class: className,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
static renderAvatarMedia(src, name, placeholderText, ariaLabelFallback, showSlot = true) {
|
|
96
|
+
if (src) {
|
|
97
|
+
return h("img", { alt: name !== null && name !== void 0 ? name : '', src: src });
|
|
98
|
+
}
|
|
99
|
+
return (h("div", { class: "xpl-avatar__placeholder", role: "img", "aria-label": name !== null && name !== void 0 ? name : ariaLabelFallback }, placeholderText || (showSlot ? h("slot", null) : null)));
|
|
100
|
+
}
|
|
101
|
+
renderAvatarMediaWithStatusBadge(wrapperClass) {
|
|
102
|
+
const placeholderText = this.getPlaceholderText();
|
|
103
|
+
return (h("div", Object.assign({}, (wrapperClass ? { class: wrapperClass } : {})), Avatar.renderAvatarMedia(this.src, this.name, placeholderText, 'Profile', true), this.statusBadgeVariant && (h("xpl-badge", { dotOnly: true, bordered: true, variant: this.statusBadgeVariant, "aria-hidden": "true" }))));
|
|
104
|
+
}
|
|
105
|
+
renderGroupItem(item, index) {
|
|
106
|
+
const placeholderText = item.name ? getInitials(item.name) : '';
|
|
107
|
+
return (h("div", { class: {
|
|
108
|
+
'xpl-avatar-group__item': true,
|
|
109
|
+
'xpl-avatar': true,
|
|
110
|
+
[`xpl-avatar--${this.size}`]: !!this.size,
|
|
111
|
+
[`xpl-avatar--${item.color}`]: !!item.color,
|
|
112
|
+
} }, h("div", null, Avatar.renderAvatarMedia(item.src, item.name, placeholderText, `Member ${index + 1}`, false))));
|
|
113
|
+
}
|
|
114
|
+
renderWithTextContent() {
|
|
115
|
+
return (h("div", { class: "xpl-avatar__with-text-content" }, h("div", { class: "xpl-avatar__with-text-name" }, this.name), this.subText && h("div", { class: "xpl-avatar__with-text-sub" }, this.subText)));
|
|
116
|
+
}
|
|
6
117
|
render() {
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
118
|
+
const v = this.variant;
|
|
119
|
+
if (v === 'group') {
|
|
120
|
+
const items = this.groupItems;
|
|
121
|
+
const visible = items.slice(0, MAX_GROUP_VISIBLE);
|
|
122
|
+
const remaining = items.length - MAX_GROUP_VISIBLE;
|
|
123
|
+
const showCount = remaining > 0;
|
|
124
|
+
const countLabel = showCount ? formatRemainingCount(remaining) : '';
|
|
125
|
+
return (h(Host, null, h("div", { class: {
|
|
126
|
+
'xpl-avatar-group': true,
|
|
127
|
+
[`xpl-avatar-group--${this.size}`]: !!this.size,
|
|
128
|
+
}, role: "group", "aria-label": `${items.length} members` }, visible.map((item, i) => (h("div", { key: i, class: "xpl-avatar-group__wrap" }, this.renderGroupItem(item, i)))), showCount && (h("div", { class: {
|
|
129
|
+
'xpl-avatar-group__count': true,
|
|
130
|
+
[`xpl-avatar-group__count--${this.size}`]: !!this.size,
|
|
131
|
+
}, "aria-label": `${remaining} more` }, countLabel)))));
|
|
132
|
+
}
|
|
133
|
+
if (v === 'with-text') {
|
|
134
|
+
const avatarBlock = this.renderAvatarMediaWithStatusBadge('xpl-avatar__with-text-avatar');
|
|
135
|
+
const withTextClasses = {
|
|
136
|
+
'xpl-avatar': true,
|
|
137
|
+
'xpl-avatar--with-text': true,
|
|
138
|
+
[`xpl-avatar--${this.color}`]: !!this.color,
|
|
139
|
+
'xpl-avatar--disabled': !!this.disabled,
|
|
140
|
+
};
|
|
141
|
+
return (h(Host, null, this.href && !this.disabled ? (h("a", Object.assign({}, this.getAnchorProps('xpl-avatar__with-text-link')), h("div", { class: withTextClasses }, avatarBlock, this.renderWithTextContent()))) : (h("div", { class: withTextClasses, "aria-disabled": this.disabled ? 'true' : undefined }, avatarBlock, this.renderWithTextContent()))));
|
|
142
|
+
}
|
|
143
|
+
const isProfile = v === 'profile';
|
|
144
|
+
const singleSize = isProfile && this.size === 'md' ? undefined : this.size;
|
|
145
|
+
const singleClasses = Avatar.getSingleAvatarClasses(singleSize, this.color, isProfile, this.disabled);
|
|
146
|
+
const content = this.renderAvatarMediaWithStatusBadge();
|
|
147
|
+
if (this.href && !this.disabled) {
|
|
148
|
+
return (h(Host, null, h("a", Object.assign({}, this.getAnchorProps(singleClasses)), content)));
|
|
149
|
+
}
|
|
150
|
+
return (h(Host, null, h("div", { class: singleClasses, "aria-disabled": this.disabled ? 'true' : undefined }, content)));
|
|
14
151
|
}
|
|
15
152
|
static get is() { return "xpl-avatar"; }
|
|
16
153
|
static get properties() {
|
|
@@ -19,9 +156,15 @@ export class XplAvatar {
|
|
|
19
156
|
"type": "string",
|
|
20
157
|
"mutable": false,
|
|
21
158
|
"complexType": {
|
|
22
|
-
"original": "
|
|
159
|
+
"original": "AvatarColor",
|
|
23
160
|
"resolved": "\"green\" | \"pink\" | \"primary\" | \"secondary\" | \"yellow\"",
|
|
24
|
-
"references": {
|
|
161
|
+
"references": {
|
|
162
|
+
"AvatarColor": {
|
|
163
|
+
"location": "local",
|
|
164
|
+
"path": "/home/runner/work/apollo/apollo/packages/apollo-core/src/components/components/xpl-avatar/xpl-avatar.tsx",
|
|
165
|
+
"id": "src/components/components/xpl-avatar/xpl-avatar.tsx::AvatarColor"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
25
168
|
},
|
|
26
169
|
"required": false,
|
|
27
170
|
"optional": true,
|
|
@@ -54,6 +197,31 @@ export class XplAvatar {
|
|
|
54
197
|
"attribute": "disabled",
|
|
55
198
|
"defaultValue": "false"
|
|
56
199
|
},
|
|
200
|
+
"groupData": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"mutable": false,
|
|
203
|
+
"complexType": {
|
|
204
|
+
"original": "AvatarGroupItem[] | string",
|
|
205
|
+
"resolved": "AvatarGroupItem[] | string",
|
|
206
|
+
"references": {
|
|
207
|
+
"AvatarGroupItem": {
|
|
208
|
+
"location": "local",
|
|
209
|
+
"path": "/home/runner/work/apollo/apollo/packages/apollo-core/src/components/components/xpl-avatar/xpl-avatar.tsx",
|
|
210
|
+
"id": "src/components/components/xpl-avatar/xpl-avatar.tsx::AvatarGroupItem"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"required": false,
|
|
215
|
+
"optional": true,
|
|
216
|
+
"docs": {
|
|
217
|
+
"tags": [],
|
|
218
|
+
"text": "When `variant` is `group`, data for each face (max 4 visible + overflow count). Each item: { src?, name?, color? }."
|
|
219
|
+
},
|
|
220
|
+
"getter": false,
|
|
221
|
+
"setter": false,
|
|
222
|
+
"reflect": false,
|
|
223
|
+
"attribute": "group-data"
|
|
224
|
+
},
|
|
57
225
|
"href": {
|
|
58
226
|
"type": "string",
|
|
59
227
|
"mutable": false,
|
|
@@ -85,7 +253,7 @@ export class XplAvatar {
|
|
|
85
253
|
"optional": true,
|
|
86
254
|
"docs": {
|
|
87
255
|
"tags": [],
|
|
88
|
-
"text": "Alt text for the image
|
|
256
|
+
"text": "Alt text for the image; also used for initials when no image and no slot."
|
|
89
257
|
},
|
|
90
258
|
"getter": false,
|
|
91
259
|
"setter": false,
|
|
@@ -104,7 +272,7 @@ export class XplAvatar {
|
|
|
104
272
|
"optional": true,
|
|
105
273
|
"docs": {
|
|
106
274
|
"tags": [],
|
|
107
|
-
"text": "Size of the avatar"
|
|
275
|
+
"text": "Size of the avatar (and of each avatar in a group)."
|
|
108
276
|
},
|
|
109
277
|
"getter": false,
|
|
110
278
|
"setter": false,
|
|
@@ -134,20 +302,48 @@ export class XplAvatar {
|
|
|
134
302
|
"type": "string",
|
|
135
303
|
"mutable": false,
|
|
136
304
|
"complexType": {
|
|
137
|
-
"original": "
|
|
138
|
-
"resolved": "\"active\" | \"inactive\" | \"warning\"",
|
|
305
|
+
"original": "AvatarStatus",
|
|
306
|
+
"resolved": "\"active\" | \"blue\" | \"gray\" | \"green\" | \"inactive\" | \"orange\" | \"purple\" | \"red\" | \"warning\" | \"yellow\"",
|
|
307
|
+
"references": {
|
|
308
|
+
"AvatarStatus": {
|
|
309
|
+
"location": "local",
|
|
310
|
+
"path": "/home/runner/work/apollo/apollo/packages/apollo-core/src/components/components/xpl-avatar/xpl-avatar.tsx",
|
|
311
|
+
"id": "src/components/components/xpl-avatar/xpl-avatar.tsx::AvatarStatus"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"required": false,
|
|
316
|
+
"optional": true,
|
|
317
|
+
"docs": {
|
|
318
|
+
"tags": [{
|
|
319
|
+
"name": "deprecated",
|
|
320
|
+
"text": ":** `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."
|
|
321
|
+
}],
|
|
322
|
+
"text": "Shown for the default avatar, `profile`, and `with-text`; not shown when `variant` is `group`.\n**Legacy"
|
|
323
|
+
},
|
|
324
|
+
"getter": false,
|
|
325
|
+
"setter": false,
|
|
326
|
+
"reflect": false,
|
|
327
|
+
"attribute": "status"
|
|
328
|
+
},
|
|
329
|
+
"subText": {
|
|
330
|
+
"type": "string",
|
|
331
|
+
"mutable": false,
|
|
332
|
+
"complexType": {
|
|
333
|
+
"original": "string",
|
|
334
|
+
"resolved": "string",
|
|
139
335
|
"references": {}
|
|
140
336
|
},
|
|
141
337
|
"required": false,
|
|
142
338
|
"optional": true,
|
|
143
339
|
"docs": {
|
|
144
340
|
"tags": [],
|
|
145
|
-
"text": "
|
|
341
|
+
"text": "Secondary text shown when `variant` is `with-text` (e.g. email)."
|
|
146
342
|
},
|
|
147
343
|
"getter": false,
|
|
148
344
|
"setter": false,
|
|
149
345
|
"reflect": false,
|
|
150
|
-
"attribute": "
|
|
346
|
+
"attribute": "sub-text"
|
|
151
347
|
},
|
|
152
348
|
"target": {
|
|
153
349
|
"type": "string",
|
|
@@ -167,7 +363,45 @@ export class XplAvatar {
|
|
|
167
363
|
"setter": false,
|
|
168
364
|
"reflect": false,
|
|
169
365
|
"attribute": "target"
|
|
366
|
+
},
|
|
367
|
+
"variant": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"mutable": false,
|
|
370
|
+
"complexType": {
|
|
371
|
+
"original": "AvatarVariant",
|
|
372
|
+
"resolved": "\"group\" | \"profile\" | \"with-text\"",
|
|
373
|
+
"references": {
|
|
374
|
+
"AvatarVariant": {
|
|
375
|
+
"location": "local",
|
|
376
|
+
"path": "/home/runner/work/apollo/apollo/packages/apollo-core/src/components/components/xpl-avatar/xpl-avatar.tsx",
|
|
377
|
+
"id": "src/components/components/xpl-avatar/xpl-avatar.tsx::AvatarVariant"
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"required": false,
|
|
382
|
+
"optional": true,
|
|
383
|
+
"docs": {
|
|
384
|
+
"tags": [],
|
|
385
|
+
"text": "Optional layout: `profile` (large profile sizes), `group` (stacked faces + `groupData`; `status` not shown),\n`with-text` (avatar with `name` / `subText` beside it). Omit for the default single avatar."
|
|
386
|
+
},
|
|
387
|
+
"getter": false,
|
|
388
|
+
"setter": false,
|
|
389
|
+
"reflect": false,
|
|
390
|
+
"attribute": "variant"
|
|
170
391
|
}
|
|
171
392
|
};
|
|
172
393
|
}
|
|
394
|
+
static get states() {
|
|
395
|
+
return {
|
|
396
|
+
"cachedGroupItems": {},
|
|
397
|
+
"cachedSlotContent": {}
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
static get elementRef() { return "el"; }
|
|
401
|
+
static get watchers() {
|
|
402
|
+
return [{
|
|
403
|
+
"propName": "groupData",
|
|
404
|
+
"methodName": "onGroupDataChange"
|
|
405
|
+
}];
|
|
406
|
+
}
|
|
173
407
|
}
|
|
@@ -17,4 +17,8 @@ Backdrop.parameters = {
|
|
|
17
17
|
html: {
|
|
18
18
|
render: ((_) => `<div class="xpl-backdrop" aria-hidden="true"></div>`)(Backdrop.args),
|
|
19
19
|
},
|
|
20
|
+
design: {
|
|
21
|
+
type: 'figma',
|
|
22
|
+
url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=1536-181330&p=f&t=aZipOZlFAFwtMW1r-11',
|
|
23
|
+
},
|
|
20
24
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
-
export class
|
|
2
|
+
export class Backdrop {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.relative = false;
|
|
5
5
|
}
|
|
6
6
|
render() {
|
|
7
|
-
return (h(Host, { key: '
|
|
7
|
+
return (h(Host, { key: 'ce11926c0ef08f0ae9d77fecfa813f20b6eee229', class: {
|
|
8
8
|
'xpl-backdrop': true,
|
|
9
9
|
'xpl-backdrop--fixed': !this.relative,
|
|
10
10
|
'xpl-backdrop--relative': this.relative,
|