voa-ds-core 1.0.3
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/dist/cjs/icons-zJ6d3Dsx.js +43 -0
- package/dist/cjs/icons-zJ6d3Dsx.js.map +1 -0
- package/dist/cjs/index-TzstRlIU.js +1895 -0
- package/dist/cjs/index-TzstRlIU.js.map +1 -0
- package/dist/cjs/index.cjs.js +3 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +13 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/voa-accordion.cjs.entry.js +75 -0
- package/dist/cjs/voa-accordion.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-alert.cjs.entry.js +73 -0
- package/dist/cjs/voa-alert.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-avatar.cjs.entry.js +80 -0
- package/dist/cjs/voa-avatar.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-badge.cjs.entry.js +99 -0
- package/dist/cjs/voa-badge.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-breadcrumbs-divider.cjs.entry.js +40 -0
- package/dist/cjs/voa-breadcrumbs-divider.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-breadcrumbs-item.cjs.entry.js +27 -0
- package/dist/cjs/voa-breadcrumbs-item.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-breadcrumbs.cjs.entry.js +26 -0
- package/dist/cjs/voa-breadcrumbs.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-button.cjs.entry.js +90 -0
- package/dist/cjs/voa-button.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-card.cjs.entry.js +18 -0
- package/dist/cjs/voa-card.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-checkbox.cjs.entry.js +124 -0
- package/dist/cjs/voa-checkbox.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-container-multi-select.cjs.entry.js +90 -0
- package/dist/cjs/voa-container-multi-select.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-datepicker.cjs.entry.js +22 -0
- package/dist/cjs/voa-datepicker.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-drawer.cjs.entry.js +23 -0
- package/dist/cjs/voa-drawer.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-dropdown.cjs.entry.js +27 -0
- package/dist/cjs/voa-dropdown.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-input-addon.cjs.entry.js +123 -0
- package/dist/cjs/voa-input-addon.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-input.cjs.entry.js +191 -0
- package/dist/cjs/voa-input.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-keybinding.cjs.entry.js +30 -0
- package/dist/cjs/voa-keybinding.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-link.cjs.entry.js +19 -0
- package/dist/cjs/voa-link.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-list.cjs.entry.js +19 -0
- package/dist/cjs/voa-list.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-modal.cjs.entry.js +23 -0
- package/dist/cjs/voa-modal.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-option.cjs.entry.js +85 -0
- package/dist/cjs/voa-option.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-pagination-item.cjs.entry.js +53 -0
- package/dist/cjs/voa-pagination-item.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-pagination.cjs.entry.js +82 -0
- package/dist/cjs/voa-pagination.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-progress.cjs.entry.js +19 -0
- package/dist/cjs/voa-progress.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-radio.cjs.entry.js +61 -0
- package/dist/cjs/voa-radio.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-select-base.cjs.entry.js +177 -0
- package/dist/cjs/voa-select-base.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-select.cjs.entry.js +142 -0
- package/dist/cjs/voa-select.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-skeleton.cjs.entry.js +24 -0
- package/dist/cjs/voa-skeleton.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-stepper.cjs.entry.js +26 -0
- package/dist/cjs/voa-stepper.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-switch.cjs.entry.js +107 -0
- package/dist/cjs/voa-switch.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-tab-item.cjs.entry.js +85 -0
- package/dist/cjs/voa-tab-item.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-tab.cjs.entry.js +129 -0
- package/dist/cjs/voa-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-table.cjs.entry.js +20 -0
- package/dist/cjs/voa-table.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-tag.cjs.entry.js +45 -0
- package/dist/cjs/voa-tag.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-text-area.cjs.entry.js +118 -0
- package/dist/cjs/voa-text-area.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-timepicker.cjs.entry.js +18 -0
- package/dist/cjs/voa-timepicker.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-tooltip-arrow.cjs.entry.js +32 -0
- package/dist/cjs/voa-tooltip-arrow.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-tooltip.cjs.entry.js +78 -0
- package/dist/cjs/voa-tooltip.entry.cjs.js.map +1 -0
- package/dist/cjs/voa-upload.cjs.entry.js +18 -0
- package/dist/cjs/voa-upload.entry.cjs.js.map +1 -0
- package/dist/cjs/voa.cjs.js +25 -0
- package/dist/cjs/voa.cjs.js.map +1 -0
- package/dist/collection/Stories/SaasDashboard.stories.js +527 -0
- package/dist/collection/Stories/SaasDashboard.stories.js.map +1 -0
- package/dist/collection/Stories/styles/voa-radio.styles.js +155 -0
- package/dist/collection/Stories/styles/voa-radio.styles.js.map +1 -0
- package/dist/collection/collection-manifest.json +50 -0
- package/dist/collection/components/GetStarted/AddingNewBrand.stories.js +214 -0
- package/dist/collection/components/GetStarted/AddingNewBrand.stories.js.map +1 -0
- package/dist/collection/components/GetStarted/ComoUsar.stories.js +486 -0
- package/dist/collection/components/GetStarted/ComoUsar.stories.js.map +1 -0
- package/dist/collection/components/GetStarted/GetStarted.stories.js +202 -0
- package/dist/collection/components/GetStarted/GetStarted.stories.js.map +1 -0
- package/dist/collection/components/SaasDashboard/SaasDashboard.stories.js +693 -0
- package/dist/collection/components/SaasDashboard/SaasDashboard.stories.js.map +1 -0
- package/dist/collection/components/Theme/ThemeProvider.js +71 -0
- package/dist/collection/components/Theme/ThemeProvider.js.map +1 -0
- package/dist/collection/components/Theme/generate-css-variables.js +32 -0
- package/dist/collection/components/Theme/generate-css-variables.js.map +1 -0
- package/dist/collection/components/voa-accordion/voa-accordion.css +75 -0
- package/dist/collection/components/voa-accordion/voa-accordion.js +188 -0
- package/dist/collection/components/voa-accordion/voa-accordion.js.map +1 -0
- package/dist/collection/components/voa-accordion/voa-accordion.stories.js +332 -0
- package/dist/collection/components/voa-accordion/voa-accordion.stories.js.map +1 -0
- package/dist/collection/components/voa-alert/voa-alert.css +78 -0
- package/dist/collection/components/voa-alert/voa-alert.js +342 -0
- package/dist/collection/components/voa-alert/voa-alert.js.map +1 -0
- package/dist/collection/components/voa-alert/voa-alert.stories.js +495 -0
- package/dist/collection/components/voa-alert/voa-alert.stories.js.map +1 -0
- package/dist/collection/components/voa-avatar/voa-avatar.css +103 -0
- package/dist/collection/components/voa-avatar/voa-avatar.js +221 -0
- package/dist/collection/components/voa-avatar/voa-avatar.js.map +1 -0
- package/dist/collection/components/voa-avatar/voa-avatar.stories.js +423 -0
- package/dist/collection/components/voa-avatar/voa-avatar.stories.js.map +1 -0
- package/dist/collection/components/voa-badge/voa-badge.css +59 -0
- package/dist/collection/components/voa-badge/voa-badge.js +266 -0
- package/dist/collection/components/voa-badge/voa-badge.js.map +1 -0
- package/dist/collection/components/voa-badge/voa-badge.stories.js +387 -0
- package/dist/collection/components/voa-badge/voa-badge.stories.js.map +1 -0
- package/dist/collection/components/voa-breadcrumbs/voa-breadcrumbs.css +29 -0
- package/dist/collection/components/voa-breadcrumbs/voa-breadcrumbs.js +58 -0
- package/dist/collection/components/voa-breadcrumbs/voa-breadcrumbs.js.map +1 -0
- package/dist/collection/components/voa-breadcrumbs/voa-breadcrumbs.stories.js +410 -0
- package/dist/collection/components/voa-breadcrumbs/voa-breadcrumbs.stories.js.map +1 -0
- package/dist/collection/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.css +39 -0
- package/dist/collection/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.js +77 -0
- package/dist/collection/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.js.map +1 -0
- package/dist/collection/components/voa-breadcrumbs-item/voa-breadcrumbs-item.css +62 -0
- package/dist/collection/components/voa-breadcrumbs-item/voa-breadcrumbs-item.js +92 -0
- package/dist/collection/components/voa-breadcrumbs-item/voa-breadcrumbs-item.js.map +1 -0
- package/dist/collection/components/voa-button/voa-button.css +95 -0
- package/dist/collection/components/voa-button/voa-button.js +292 -0
- package/dist/collection/components/voa-button/voa-button.js.map +1 -0
- package/dist/collection/components/voa-button/voa-button.stories.js +435 -0
- package/dist/collection/components/voa-button/voa-button.stories.js.map +1 -0
- package/dist/collection/components/voa-card/voa-card.css +22 -0
- package/dist/collection/components/voa-card/voa-card.js +19 -0
- package/dist/collection/components/voa-card/voa-card.js.map +1 -0
- package/dist/collection/components/voa-card/voa-card.stories.js +270 -0
- package/dist/collection/components/voa-card/voa-card.stories.js.map +1 -0
- package/dist/collection/components/voa-checkbox/voa-checkbox.css +75 -0
- package/dist/collection/components/voa-checkbox/voa-checkbox.js +275 -0
- package/dist/collection/components/voa-checkbox/voa-checkbox.js.map +1 -0
- package/dist/collection/components/voa-checkbox/voa-checkbox.stories.js +377 -0
- package/dist/collection/components/voa-checkbox/voa-checkbox.stories.js.map +1 -0
- package/dist/collection/components/voa-datepicker/datepicker.css +7 -0
- package/dist/collection/components/voa-datepicker/datepicker.js +53 -0
- package/dist/collection/components/voa-datepicker/datepicker.js.map +1 -0
- package/dist/collection/components/voa-datepicker/datepicker.stories.js +23 -0
- package/dist/collection/components/voa-datepicker/datepicker.stories.js.map +1 -0
- package/dist/collection/components/voa-drawer/drawer.css +16 -0
- package/dist/collection/components/voa-drawer/drawer.js +55 -0
- package/dist/collection/components/voa-drawer/drawer.js.map +1 -0
- package/dist/collection/components/voa-drawer/drawer.stories.js +25 -0
- package/dist/collection/components/voa-drawer/drawer.stories.js.map +1 -0
- package/dist/collection/components/voa-dropdown/dropdown.css +36 -0
- package/dist/collection/components/voa-dropdown/dropdown.js +58 -0
- package/dist/collection/components/voa-dropdown/dropdown.js.map +1 -0
- package/dist/collection/components/voa-dropdown/dropdown.stories.js +23 -0
- package/dist/collection/components/voa-dropdown/dropdown.stories.js.map +1 -0
- package/dist/collection/components/voa-input/voa-input.css +90 -0
- package/dist/collection/components/voa-input/voa-input.js +640 -0
- package/dist/collection/components/voa-input/voa-input.js.map +1 -0
- package/dist/collection/components/voa-input/voa-input.stories.js +448 -0
- package/dist/collection/components/voa-input/voa-input.stories.js.map +1 -0
- package/dist/collection/components/voa-input-addon/voa-input-addon.css +58 -0
- package/dist/collection/components/voa-input-addon/voa-input-addon.js +346 -0
- package/dist/collection/components/voa-input-addon/voa-input-addon.js.map +1 -0
- package/dist/collection/components/voa-input-addon/voa-input-addon.stories.js +380 -0
- package/dist/collection/components/voa-input-addon/voa-input-addon.stories.js.map +1 -0
- package/dist/collection/components/voa-keybinding/voa-keybinding.css +25 -0
- package/dist/collection/components/voa-keybinding/voa-keybinding.js +87 -0
- package/dist/collection/components/voa-keybinding/voa-keybinding.js.map +1 -0
- package/dist/collection/components/voa-keybinding/voa-keybinding.stories.js +241 -0
- package/dist/collection/components/voa-keybinding/voa-keybinding.stories.js.map +1 -0
- package/dist/collection/components/voa-link/link.css +9 -0
- package/dist/collection/components/voa-link/link.js +65 -0
- package/dist/collection/components/voa-link/link.js.map +1 -0
- package/dist/collection/components/voa-link/link.stories.js +21 -0
- package/dist/collection/components/voa-link/link.stories.js.map +1 -0
- package/dist/collection/components/voa-list/list.css +14 -0
- package/dist/collection/components/voa-list/list.js +44 -0
- package/dist/collection/components/voa-list/list.js.map +1 -0
- package/dist/collection/components/voa-list/list.stories.js +16 -0
- package/dist/collection/components/voa-list/list.stories.js.map +1 -0
- package/dist/collection/components/voa-modal/modal.css +40 -0
- package/dist/collection/components/voa-modal/modal.js +55 -0
- package/dist/collection/components/voa-modal/modal.js.map +1 -0
- package/dist/collection/components/voa-modal/modal.stories.js +18 -0
- package/dist/collection/components/voa-modal/modal.stories.js.map +1 -0
- package/dist/collection/components/voa-option/voa-option.css +55 -0
- package/dist/collection/components/voa-option/voa-option.js +222 -0
- package/dist/collection/components/voa-option/voa-option.js.map +1 -0
- package/dist/collection/components/voa-option/voa-option.stories.js +581 -0
- package/dist/collection/components/voa-option/voa-option.stories.js.map +1 -0
- package/dist/collection/components/voa-pagination/voa-pagination-item.css +34 -0
- package/dist/collection/components/voa-pagination/voa-pagination-item.js +137 -0
- package/dist/collection/components/voa-pagination/voa-pagination-item.js.map +1 -0
- package/dist/collection/components/voa-pagination/voa-pagination.css +20 -0
- package/dist/collection/components/voa-pagination/voa-pagination.js +174 -0
- package/dist/collection/components/voa-pagination/voa-pagination.js.map +1 -0
- package/dist/collection/components/voa-pagination/voa-pagination.stories.js +257 -0
- package/dist/collection/components/voa-pagination/voa-pagination.stories.js.map +1 -0
- package/dist/collection/components/voa-progress/progress.css +12 -0
- package/dist/collection/components/voa-progress/progress.js +46 -0
- package/dist/collection/components/voa-progress/progress.js.map +1 -0
- package/dist/collection/components/voa-progress/progress.stories.js +16 -0
- package/dist/collection/components/voa-progress/progress.stories.js.map +1 -0
- package/dist/collection/components/voa-radio/voa-radio.css +82 -0
- package/dist/collection/components/voa-radio/voa-radio.js +227 -0
- package/dist/collection/components/voa-radio/voa-radio.js.map +1 -0
- package/dist/collection/components/voa-radio/voa-radio.stories.js +363 -0
- package/dist/collection/components/voa-radio/voa-radio.stories.js.map +1 -0
- package/dist/collection/components/voa-select/voa-container-multi-select.css +177 -0
- package/dist/collection/components/voa-select/voa-container-multi-select.js +192 -0
- package/dist/collection/components/voa-select/voa-container-multi-select.js.map +1 -0
- package/dist/collection/components/voa-select/voa-container-multi-select.stories.js +218 -0
- package/dist/collection/components/voa-select/voa-container-multi-select.stories.js.map +1 -0
- package/dist/collection/components/voa-select/voa-select-base.css +170 -0
- package/dist/collection/components/voa-select/voa-select-base.js +357 -0
- package/dist/collection/components/voa-select/voa-select-base.js.map +1 -0
- package/dist/collection/components/voa-select/voa-select.css +109 -0
- package/dist/collection/components/voa-select/voa-select.js +449 -0
- package/dist/collection/components/voa-select/voa-select.js.map +1 -0
- package/dist/collection/components/voa-select/voa-select.stories.js +581 -0
- package/dist/collection/components/voa-select/voa-select.stories.js.map +1 -0
- package/dist/collection/components/voa-skeleton/skeleton.css +30 -0
- package/dist/collection/components/voa-skeleton/skeleton.js +90 -0
- package/dist/collection/components/voa-skeleton/skeleton.js.map +1 -0
- package/dist/collection/components/voa-skeleton/skeleton.stories.js +36 -0
- package/dist/collection/components/voa-skeleton/skeleton.stories.js.map +1 -0
- package/dist/collection/components/voa-stepper/stepper.css +23 -0
- package/dist/collection/components/voa-stepper/stepper.js +93 -0
- package/dist/collection/components/voa-stepper/stepper.js.map +1 -0
- package/dist/collection/components/voa-stepper/stepper.stories.js +21 -0
- package/dist/collection/components/voa-stepper/stepper.stories.js.map +1 -0
- package/dist/collection/components/voa-switch/voa-switch.css +81 -0
- package/dist/collection/components/voa-switch/voa-switch.js +232 -0
- package/dist/collection/components/voa-switch/voa-switch.js.map +1 -0
- package/dist/collection/components/voa-switch/voa-switch.stories.js +359 -0
- package/dist/collection/components/voa-switch/voa-switch.stories.js.map +1 -0
- package/dist/collection/components/voa-tab/voa-tab.css +32 -0
- package/dist/collection/components/voa-tab/voa-tab.js +209 -0
- package/dist/collection/components/voa-tab/voa-tab.js.map +1 -0
- package/dist/collection/components/voa-tab/voa-tab.stories.js +405 -0
- package/dist/collection/components/voa-tab/voa-tab.stories.js.map +1 -0
- package/dist/collection/components/voa-tab-item/voa-tab-item.css +52 -0
- package/dist/collection/components/voa-tab-item/voa-tab-item.js +261 -0
- package/dist/collection/components/voa-tab-item/voa-tab-item.js.map +1 -0
- package/dist/collection/components/voa-table/table.css +15 -0
- package/dist/collection/components/voa-table/table.js +63 -0
- package/dist/collection/components/voa-table/table.js.map +1 -0
- package/dist/collection/components/voa-table/table.stories.js +21 -0
- package/dist/collection/components/voa-table/table.stories.js.map +1 -0
- package/dist/collection/components/voa-tag/voa-tag.css +31 -0
- package/dist/collection/components/voa-tag/voa-tag.js +183 -0
- package/dist/collection/components/voa-tag/voa-tag.js.map +1 -0
- package/dist/collection/components/voa-tag/voa-tag.stories.js +347 -0
- package/dist/collection/components/voa-tag/voa-tag.stories.js.map +1 -0
- package/dist/collection/components/voa-text-area/voa-text-area.css +68 -0
- package/dist/collection/components/voa-text-area/voa-text-area.js +519 -0
- package/dist/collection/components/voa-text-area/voa-text-area.js.map +1 -0
- package/dist/collection/components/voa-text-area/voa-text-area.stories.js +390 -0
- package/dist/collection/components/voa-text-area/voa-text-area.stories.js.map +1 -0
- package/dist/collection/components/voa-timepicker/timepicker.css +7 -0
- package/dist/collection/components/voa-timepicker/timepicker.js +42 -0
- package/dist/collection/components/voa-timepicker/timepicker.js.map +1 -0
- package/dist/collection/components/voa-timepicker/timepicker.stories.js +16 -0
- package/dist/collection/components/voa-timepicker/timepicker.stories.js.map +1 -0
- package/dist/collection/components/voa-tooltip/voa-tooltip.css +283 -0
- package/dist/collection/components/voa-tooltip/voa-tooltip.js +230 -0
- package/dist/collection/components/voa-tooltip/voa-tooltip.js.map +1 -0
- package/dist/collection/components/voa-tooltip/voa-tooltip.stories.js +471 -0
- package/dist/collection/components/voa-tooltip/voa-tooltip.stories.js.map +1 -0
- package/dist/collection/components/voa-tooltip-arrow/voa-tooltip-arrow.css +158 -0
- package/dist/collection/components/voa-tooltip-arrow/voa-tooltip-arrow.js +89 -0
- package/dist/collection/components/voa-tooltip-arrow/voa-tooltip-arrow.js.map +1 -0
- package/dist/collection/components/voa-upload/upload.css +28 -0
- package/dist/collection/components/voa-upload/upload.js +19 -0
- package/dist/collection/components/voa-upload/upload.js.map +1 -0
- package/dist/collection/components/voa-upload/upload.stories.js +8 -0
- package/dist/collection/components/voa-upload/upload.stories.js.map +1 -0
- package/dist/collection/icons/arrow.svg +3 -0
- package/dist/collection/icons/bell.svg +1 -0
- package/dist/collection/icons/calendar.svg +1 -0
- package/dist/collection/icons/check.svg +4 -0
- package/dist/collection/icons/chevron-right.svg +3 -0
- package/dist/collection/icons/circle.svg +4 -0
- package/dist/collection/icons/clear.svg +1 -0
- package/dist/collection/icons/close.svg +3 -0
- package/dist/collection/icons/error.svg +3 -0
- package/dist/collection/icons/eye-off.svg +1 -0
- package/dist/collection/icons/eye.svg +1 -0
- package/dist/collection/icons/home.svg +3 -0
- package/dist/collection/icons/index.js +18 -0
- package/dist/collection/icons/index.js.map +1 -0
- package/dist/collection/icons/info.svg +3 -0
- package/dist/collection/icons/loading.svg +1 -0
- package/dist/collection/icons/person.svg +4 -0
- package/dist/collection/icons/resize-handle.svg +3 -0
- package/dist/collection/icons/search.svg +1 -0
- package/dist/collection/icons/settings.svg +1 -0
- package/dist/collection/icons/warning.svg +3 -0
- package/dist/collection/token/base/colors.js +42 -0
- package/dist/collection/token/base/colors.js.map +1 -0
- package/dist/collection/token/base/mediaQueries.js +12 -0
- package/dist/collection/token/base/mediaQueries.js.map +1 -0
- package/dist/collection/token/base/radius.js +8 -0
- package/dist/collection/token/base/radius.js.map +1 -0
- package/dist/collection/token/base/spacing.js +13 -0
- package/dist/collection/token/base/spacing.js.map +1 -0
- package/dist/collection/token/branding/coi.js +58 -0
- package/dist/collection/token/branding/coi.js.map +1 -0
- package/dist/collection/token/branding/devops.js +58 -0
- package/dist/collection/token/branding/devops.js.map +1 -0
- package/dist/collection/token/branding/godrive.js +58 -0
- package/dist/collection/token/branding/godrive.js.map +1 -0
- package/dist/collection/token/branding/index.js +9 -0
- package/dist/collection/token/branding/index.js.map +1 -0
- package/dist/collection/token/branding/type.js +2 -0
- package/dist/collection/token/branding/type.js.map +1 -0
- package/dist/collection/token/colors.js +84 -0
- package/dist/collection/token/colors.js.map +1 -0
- package/dist/collection/tokens/global.css +867 -0
- package/dist/collection/tokens/voa-tokens.css +776 -0
- package/dist/collection/utils/icons.js +35 -0
- package/dist/collection/utils/icons.js.map +1 -0
- package/dist/collection/utils/utils.js +4 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/custom-elements/index.d.ts +33 -0
- package/dist/custom-elements/index.js +1463 -0
- package/dist/custom-elements/index.js.map +1 -0
- package/dist/custom-elements/p-B2P7cgN3.js +125 -0
- package/dist/custom-elements/p-B2P7cgN3.js.map +1 -0
- package/dist/custom-elements/p-CQr0ZKZZ.js +75 -0
- package/dist/custom-elements/p-CQr0ZKZZ.js.map +1 -0
- package/dist/custom-elements/p-Cp28eWhS.js +40 -0
- package/dist/custom-elements/p-Cp28eWhS.js.map +1 -0
- package/dist/custom-elements/p-DKnM_Ozb.js +207 -0
- package/dist/custom-elements/p-DKnM_Ozb.js.map +1 -0
- package/dist/custom-elements/p-DPyVgztA.js +51 -0
- package/dist/custom-elements/p-DPyVgztA.js.map +1 -0
- package/dist/custom-elements/p-Dto9R8Te.js +117 -0
- package/dist/custom-elements/p-Dto9R8Te.js.map +1 -0
- package/dist/custom-elements/voa-accordion.d.ts +11 -0
- package/dist/custom-elements/voa-accordion.js +104 -0
- package/dist/custom-elements/voa-accordion.js.map +1 -0
- package/dist/custom-elements/voa-alert.d.ts +11 -0
- package/dist/custom-elements/voa-alert.js +111 -0
- package/dist/custom-elements/voa-alert.js.map +1 -0
- package/dist/custom-elements/voa-avatar.d.ts +11 -0
- package/dist/custom-elements/voa-avatar.js +108 -0
- package/dist/custom-elements/voa-avatar.js.map +1 -0
- package/dist/custom-elements/voa-badge.d.ts +11 -0
- package/dist/custom-elements/voa-badge.js +9 -0
- package/dist/custom-elements/voa-badge.js.map +1 -0
- package/dist/custom-elements/voa-breadcrumbs-divider.d.ts +11 -0
- package/dist/custom-elements/voa-breadcrumbs-divider.js +63 -0
- package/dist/custom-elements/voa-breadcrumbs-divider.js.map +1 -0
- package/dist/custom-elements/voa-breadcrumbs-item.d.ts +11 -0
- package/dist/custom-elements/voa-breadcrumbs-item.js +52 -0
- package/dist/custom-elements/voa-breadcrumbs-item.js.map +1 -0
- package/dist/custom-elements/voa-breadcrumbs.d.ts +11 -0
- package/dist/custom-elements/voa-breadcrumbs.js +49 -0
- package/dist/custom-elements/voa-breadcrumbs.js.map +1 -0
- package/dist/custom-elements/voa-button.d.ts +11 -0
- package/dist/custom-elements/voa-button.js +9 -0
- package/dist/custom-elements/voa-button.js.map +1 -0
- package/dist/custom-elements/voa-card.d.ts +11 -0
- package/dist/custom-elements/voa-card.js +39 -0
- package/dist/custom-elements/voa-card.js.map +1 -0
- package/dist/custom-elements/voa-checkbox.d.ts +11 -0
- package/dist/custom-elements/voa-checkbox.js +149 -0
- package/dist/custom-elements/voa-checkbox.js.map +1 -0
- package/dist/custom-elements/voa-container-multi-select.d.ts +11 -0
- package/dist/custom-elements/voa-container-multi-select.js +122 -0
- package/dist/custom-elements/voa-container-multi-select.js.map +1 -0
- package/dist/custom-elements/voa-datepicker.d.ts +11 -0
- package/dist/custom-elements/voa-datepicker.js +46 -0
- package/dist/custom-elements/voa-datepicker.js.map +1 -0
- package/dist/custom-elements/voa-drawer.d.ts +11 -0
- package/dist/custom-elements/voa-drawer.js +47 -0
- package/dist/custom-elements/voa-drawer.js.map +1 -0
- package/dist/custom-elements/voa-dropdown.d.ts +11 -0
- package/dist/custom-elements/voa-dropdown.js +52 -0
- package/dist/custom-elements/voa-dropdown.js.map +1 -0
- package/dist/custom-elements/voa-input-addon.d.ts +11 -0
- package/dist/custom-elements/voa-input-addon.js +160 -0
- package/dist/custom-elements/voa-input-addon.js.map +1 -0
- package/dist/custom-elements/voa-input.d.ts +11 -0
- package/dist/custom-elements/voa-input.js +237 -0
- package/dist/custom-elements/voa-input.js.map +1 -0
- package/dist/custom-elements/voa-keybinding.d.ts +11 -0
- package/dist/custom-elements/voa-keybinding.js +9 -0
- package/dist/custom-elements/voa-keybinding.js.map +1 -0
- package/dist/custom-elements/voa-link.d.ts +11 -0
- package/dist/custom-elements/voa-link.js +43 -0
- package/dist/custom-elements/voa-link.js.map +1 -0
- package/dist/custom-elements/voa-list.d.ts +11 -0
- package/dist/custom-elements/voa-list.js +42 -0
- package/dist/custom-elements/voa-list.js.map +1 -0
- package/dist/custom-elements/voa-modal.d.ts +11 -0
- package/dist/custom-elements/voa-modal.js +47 -0
- package/dist/custom-elements/voa-modal.js.map +1 -0
- package/dist/custom-elements/voa-option.d.ts +11 -0
- package/dist/custom-elements/voa-option.js +109 -0
- package/dist/custom-elements/voa-option.js.map +1 -0
- package/dist/custom-elements/voa-pagination-item.d.ts +11 -0
- package/dist/custom-elements/voa-pagination-item.js +9 -0
- package/dist/custom-elements/voa-pagination-item.js.map +1 -0
- package/dist/custom-elements/voa-pagination.d.ts +11 -0
- package/dist/custom-elements/voa-pagination.js +116 -0
- package/dist/custom-elements/voa-pagination.js.map +1 -0
- package/dist/custom-elements/voa-progress.d.ts +11 -0
- package/dist/custom-elements/voa-progress.js +42 -0
- package/dist/custom-elements/voa-progress.js.map +1 -0
- package/dist/custom-elements/voa-radio.d.ts +11 -0
- package/dist/custom-elements/voa-radio.js +88 -0
- package/dist/custom-elements/voa-radio.js.map +1 -0
- package/dist/custom-elements/voa-select-base.d.ts +11 -0
- package/dist/custom-elements/voa-select-base.js +9 -0
- package/dist/custom-elements/voa-select-base.js.map +1 -0
- package/dist/custom-elements/voa-select.d.ts +11 -0
- package/dist/custom-elements/voa-select.js +189 -0
- package/dist/custom-elements/voa-select.js.map +1 -0
- package/dist/custom-elements/voa-skeleton.d.ts +11 -0
- package/dist/custom-elements/voa-skeleton.js +48 -0
- package/dist/custom-elements/voa-skeleton.js.map +1 -0
- package/dist/custom-elements/voa-stepper.d.ts +11 -0
- package/dist/custom-elements/voa-stepper.js +51 -0
- package/dist/custom-elements/voa-stepper.js.map +1 -0
- package/dist/custom-elements/voa-switch.d.ts +11 -0
- package/dist/custom-elements/voa-switch.js +131 -0
- package/dist/custom-elements/voa-switch.js.map +1 -0
- package/dist/custom-elements/voa-tab-item.d.ts +11 -0
- package/dist/custom-elements/voa-tab-item.js +114 -0
- package/dist/custom-elements/voa-tab-item.js.map +1 -0
- package/dist/custom-elements/voa-tab.d.ts +11 -0
- package/dist/custom-elements/voa-tab.js +156 -0
- package/dist/custom-elements/voa-tab.js.map +1 -0
- package/dist/custom-elements/voa-table.d.ts +11 -0
- package/dist/custom-elements/voa-table.js +44 -0
- package/dist/custom-elements/voa-table.js.map +1 -0
- package/dist/custom-elements/voa-tag.d.ts +11 -0
- package/dist/custom-elements/voa-tag.js +73 -0
- package/dist/custom-elements/voa-tag.js.map +1 -0
- package/dist/custom-elements/voa-text-area.d.ts +11 -0
- package/dist/custom-elements/voa-text-area.js +155 -0
- package/dist/custom-elements/voa-text-area.js.map +1 -0
- package/dist/custom-elements/voa-timepicker.d.ts +11 -0
- package/dist/custom-elements/voa-timepicker.js +41 -0
- package/dist/custom-elements/voa-timepicker.js.map +1 -0
- package/dist/custom-elements/voa-tooltip-arrow.d.ts +11 -0
- package/dist/custom-elements/voa-tooltip-arrow.js +56 -0
- package/dist/custom-elements/voa-tooltip-arrow.js.map +1 -0
- package/dist/custom-elements/voa-tooltip.d.ts +11 -0
- package/dist/custom-elements/voa-tooltip.js +107 -0
- package/dist/custom-elements/voa-tooltip.js.map +1 -0
- package/dist/custom-elements/voa-upload.d.ts +11 -0
- package/dist/custom-elements/voa-upload.js +39 -0
- package/dist/custom-elements/voa-upload.js.map +1 -0
- package/dist/esm/icons-Bjdap-bM.js +40 -0
- package/dist/esm/icons-Bjdap-bM.js.map +1 -0
- package/dist/esm/index-Dh8480Ec.js +1867 -0
- package/dist/esm/index-Dh8480Ec.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/voa-accordion.entry.js +73 -0
- package/dist/esm/voa-accordion.entry.js.map +1 -0
- package/dist/esm/voa-alert.entry.js +71 -0
- package/dist/esm/voa-alert.entry.js.map +1 -0
- package/dist/esm/voa-avatar.entry.js +78 -0
- package/dist/esm/voa-avatar.entry.js.map +1 -0
- package/dist/esm/voa-badge.entry.js +97 -0
- package/dist/esm/voa-badge.entry.js.map +1 -0
- package/dist/esm/voa-breadcrumbs-divider.entry.js +38 -0
- package/dist/esm/voa-breadcrumbs-divider.entry.js.map +1 -0
- package/dist/esm/voa-breadcrumbs-item.entry.js +25 -0
- package/dist/esm/voa-breadcrumbs-item.entry.js.map +1 -0
- package/dist/esm/voa-breadcrumbs.entry.js +24 -0
- package/dist/esm/voa-breadcrumbs.entry.js.map +1 -0
- package/dist/esm/voa-button.entry.js +88 -0
- package/dist/esm/voa-button.entry.js.map +1 -0
- package/dist/esm/voa-card.entry.js +16 -0
- package/dist/esm/voa-card.entry.js.map +1 -0
- package/dist/esm/voa-checkbox.entry.js +122 -0
- package/dist/esm/voa-checkbox.entry.js.map +1 -0
- package/dist/esm/voa-container-multi-select.entry.js +88 -0
- package/dist/esm/voa-container-multi-select.entry.js.map +1 -0
- package/dist/esm/voa-datepicker.entry.js +20 -0
- package/dist/esm/voa-datepicker.entry.js.map +1 -0
- package/dist/esm/voa-drawer.entry.js +21 -0
- package/dist/esm/voa-drawer.entry.js.map +1 -0
- package/dist/esm/voa-dropdown.entry.js +25 -0
- package/dist/esm/voa-dropdown.entry.js.map +1 -0
- package/dist/esm/voa-input-addon.entry.js +121 -0
- package/dist/esm/voa-input-addon.entry.js.map +1 -0
- package/dist/esm/voa-input.entry.js +189 -0
- package/dist/esm/voa-input.entry.js.map +1 -0
- package/dist/esm/voa-keybinding.entry.js +28 -0
- package/dist/esm/voa-keybinding.entry.js.map +1 -0
- package/dist/esm/voa-link.entry.js +17 -0
- package/dist/esm/voa-link.entry.js.map +1 -0
- package/dist/esm/voa-list.entry.js +17 -0
- package/dist/esm/voa-list.entry.js.map +1 -0
- package/dist/esm/voa-modal.entry.js +21 -0
- package/dist/esm/voa-modal.entry.js.map +1 -0
- package/dist/esm/voa-option.entry.js +83 -0
- package/dist/esm/voa-option.entry.js.map +1 -0
- package/dist/esm/voa-pagination-item.entry.js +51 -0
- package/dist/esm/voa-pagination-item.entry.js.map +1 -0
- package/dist/esm/voa-pagination.entry.js +80 -0
- package/dist/esm/voa-pagination.entry.js.map +1 -0
- package/dist/esm/voa-progress.entry.js +17 -0
- package/dist/esm/voa-progress.entry.js.map +1 -0
- package/dist/esm/voa-radio.entry.js +59 -0
- package/dist/esm/voa-radio.entry.js.map +1 -0
- package/dist/esm/voa-select-base.entry.js +175 -0
- package/dist/esm/voa-select-base.entry.js.map +1 -0
- package/dist/esm/voa-select.entry.js +140 -0
- package/dist/esm/voa-select.entry.js.map +1 -0
- package/dist/esm/voa-skeleton.entry.js +22 -0
- package/dist/esm/voa-skeleton.entry.js.map +1 -0
- package/dist/esm/voa-stepper.entry.js +24 -0
- package/dist/esm/voa-stepper.entry.js.map +1 -0
- package/dist/esm/voa-switch.entry.js +105 -0
- package/dist/esm/voa-switch.entry.js.map +1 -0
- package/dist/esm/voa-tab-item.entry.js +83 -0
- package/dist/esm/voa-tab-item.entry.js.map +1 -0
- package/dist/esm/voa-tab.entry.js +127 -0
- package/dist/esm/voa-tab.entry.js.map +1 -0
- package/dist/esm/voa-table.entry.js +18 -0
- package/dist/esm/voa-table.entry.js.map +1 -0
- package/dist/esm/voa-tag.entry.js +43 -0
- package/dist/esm/voa-tag.entry.js.map +1 -0
- package/dist/esm/voa-text-area.entry.js +116 -0
- package/dist/esm/voa-text-area.entry.js.map +1 -0
- package/dist/esm/voa-timepicker.entry.js +16 -0
- package/dist/esm/voa-timepicker.entry.js.map +1 -0
- package/dist/esm/voa-tooltip-arrow.entry.js +30 -0
- package/dist/esm/voa-tooltip-arrow.entry.js.map +1 -0
- package/dist/esm/voa-tooltip.entry.js +76 -0
- package/dist/esm/voa-tooltip.entry.js.map +1 -0
- package/dist/esm/voa-upload.entry.js +16 -0
- package/dist/esm/voa-upload.entry.js.map +1 -0
- package/dist/esm/voa.js +21 -0
- package/dist/esm/voa.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/styles/voa-components.css +4839 -0
- package/dist/types/Stories/SaasDashboard.stories.d.ts +22 -0
- package/dist/types/Stories/styles/voa-radio.styles.d.ts +1 -0
- package/dist/types/components/GetStarted/AddingNewBrand.stories.d.ts +4 -0
- package/dist/types/components/GetStarted/ComoUsar.stories.d.ts +4 -0
- package/dist/types/components/GetStarted/GetStarted.stories.d.ts +4 -0
- package/dist/types/components/SaasDashboard/SaasDashboard.stories.d.ts +17 -0
- package/dist/types/components/Theme/ThemeProvider.d.ts +26 -0
- package/dist/types/components/Theme/generate-css-variables.d.ts +2 -0
- package/dist/types/components/voa-accordion/voa-accordion.d.ts +29 -0
- package/dist/types/components/voa-accordion/voa-accordion.stories.d.ts +70 -0
- package/dist/types/components/voa-alert/voa-alert.d.ts +82 -0
- package/dist/types/components/voa-alert/voa-alert.stories.d.ts +88 -0
- package/dist/types/components/voa-avatar/voa-avatar.d.ts +48 -0
- package/dist/types/components/voa-avatar/voa-avatar.stories.d.ts +73 -0
- package/dist/types/components/voa-badge/voa-badge.d.ts +91 -0
- package/dist/types/components/voa-badge/voa-badge.stories.d.ts +21 -0
- package/dist/types/components/voa-breadcrumbs/voa-breadcrumbs.d.ts +13 -0
- package/dist/types/components/voa-breadcrumbs/voa-breadcrumbs.stories.d.ts +57 -0
- package/dist/types/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.d.ts +19 -0
- package/dist/types/components/voa-breadcrumbs-item/voa-breadcrumbs-item.d.ts +17 -0
- package/dist/types/components/voa-button/voa-button.d.ts +69 -0
- package/dist/types/components/voa-button/voa-button.stories.d.ts +78 -0
- package/dist/types/components/voa-card/voa-card.d.ts +3 -0
- package/dist/types/components/voa-card/voa-card.stories.d.ts +30 -0
- package/dist/types/components/voa-checkbox/voa-checkbox.d.ts +73 -0
- package/dist/types/components/voa-checkbox/voa-checkbox.stories.d.ts +126 -0
- package/dist/types/components/voa-datepicker/datepicker.d.ts +6 -0
- package/dist/types/components/voa-datepicker/datepicker.stories.d.ts +4 -0
- package/dist/types/components/voa-drawer/drawer.d.ts +6 -0
- package/dist/types/components/voa-drawer/drawer.stories.d.ts +4 -0
- package/dist/types/components/voa-dropdown/dropdown.d.ts +8 -0
- package/dist/types/components/voa-dropdown/dropdown.stories.d.ts +4 -0
- package/dist/types/components/voa-input/voa-input.d.ts +153 -0
- package/dist/types/components/voa-input/voa-input.stories.d.ts +140 -0
- package/dist/types/components/voa-input-addon/voa-input-addon.d.ts +70 -0
- package/dist/types/components/voa-input-addon/voa-input-addon.stories.d.ts +139 -0
- package/dist/types/components/voa-keybinding/voa-keybinding.d.ts +22 -0
- package/dist/types/components/voa-keybinding/voa-keybinding.stories.d.ts +58 -0
- package/dist/types/components/voa-link/link.d.ts +5 -0
- package/dist/types/components/voa-link/link.stories.d.ts +4 -0
- package/dist/types/components/voa-list/list.d.ts +4 -0
- package/dist/types/components/voa-list/list.stories.d.ts +4 -0
- package/dist/types/components/voa-modal/modal.d.ts +6 -0
- package/dist/types/components/voa-modal/modal.stories.d.ts +4 -0
- package/dist/types/components/voa-option/voa-option.d.ts +58 -0
- package/dist/types/components/voa-option/voa-option.stories.d.ts +114 -0
- package/dist/types/components/voa-pagination/voa-pagination-item.d.ts +23 -0
- package/dist/types/components/voa-pagination/voa-pagination.d.ts +21 -0
- package/dist/types/components/voa-pagination/voa-pagination.stories.d.ts +28 -0
- package/dist/types/components/voa-progress/progress.d.ts +4 -0
- package/dist/types/components/voa-progress/progress.stories.d.ts +4 -0
- package/dist/types/components/voa-radio/voa-radio.d.ts +56 -0
- package/dist/types/components/voa-radio/voa-radio.stories.d.ts +42 -0
- package/dist/types/components/voa-select/voa-container-multi-select.d.ts +53 -0
- package/dist/types/components/voa-select/voa-container-multi-select.stories.d.ts +33 -0
- package/dist/types/components/voa-select/voa-select-base.d.ts +76 -0
- package/dist/types/components/voa-select/voa-select.d.ts +115 -0
- package/dist/types/components/voa-select/voa-select.stories.d.ts +100 -0
- package/dist/types/components/voa-skeleton/skeleton.d.ts +7 -0
- package/dist/types/components/voa-skeleton/skeleton.stories.d.ts +6 -0
- package/dist/types/components/voa-stepper/stepper.d.ts +9 -0
- package/dist/types/components/voa-stepper/stepper.stories.d.ts +4 -0
- package/dist/types/components/voa-switch/voa-switch.d.ts +28 -0
- package/dist/types/components/voa-switch/voa-switch.stories.d.ts +124 -0
- package/dist/types/components/voa-tab/voa-tab.d.ts +38 -0
- package/dist/types/components/voa-tab/voa-tab.stories.d.ts +81 -0
- package/dist/types/components/voa-tab-item/voa-tab-item.d.ts +66 -0
- package/dist/types/components/voa-table/table.d.ts +5 -0
- package/dist/types/components/voa-table/table.stories.d.ts +4 -0
- package/dist/types/components/voa-tag/voa-tag.d.ts +40 -0
- package/dist/types/components/voa-tag/voa-tag.stories.d.ts +66 -0
- package/dist/types/components/voa-text-area/voa-text-area.d.ts +47 -0
- package/dist/types/components/voa-text-area/voa-text-area.stories.d.ts +74 -0
- package/dist/types/components/voa-timepicker/timepicker.d.ts +4 -0
- package/dist/types/components/voa-timepicker/timepicker.stories.d.ts +4 -0
- package/dist/types/components/voa-tooltip/voa-tooltip.d.ts +54 -0
- package/dist/types/components/voa-tooltip/voa-tooltip.stories.d.ts +69 -0
- package/dist/types/components/voa-tooltip-arrow/voa-tooltip-arrow.d.ts +24 -0
- package/dist/types/components/voa-upload/upload.d.ts +3 -0
- package/dist/types/components/voa-upload/upload.stories.d.ts +4 -0
- package/dist/types/components.d.ts +2731 -0
- package/dist/types/icons/index.d.ts +16 -0
- package/dist/types/stencil-public-runtime.d.ts +1756 -0
- package/dist/types/token/base/colors.d.ts +2 -0
- package/dist/types/token/base/mediaQueries.d.ts +11 -0
- package/dist/types/token/base/radius.d.ts +7 -0
- package/dist/types/token/base/spacing.d.ts +12 -0
- package/dist/types/token/branding/coi.d.ts +2 -0
- package/dist/types/token/branding/devops.d.ts +2 -0
- package/dist/types/token/branding/godrive.d.ts +2 -0
- package/dist/types/token/branding/index.d.ts +2 -0
- package/dist/types/token/branding/type.d.ts +102 -0
- package/dist/types/token/colors.d.ts +16 -0
- package/dist/types/utils/icons.d.ts +45 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/dist/voa/index.esm.js +2 -0
- package/dist/voa/index.esm.js.map +1 -0
- package/dist/voa/loader.esm.js.map +1 -0
- package/dist/voa/p-01b6b7f5.entry.js +2 -0
- package/dist/voa/p-01b6b7f5.entry.js.map +1 -0
- package/dist/voa/p-0470367c.entry.js +2 -0
- package/dist/voa/p-0470367c.entry.js.map +1 -0
- package/dist/voa/p-17dfc5c3.entry.js +2 -0
- package/dist/voa/p-17dfc5c3.entry.js.map +1 -0
- package/dist/voa/p-19e64a8c.entry.js +2 -0
- package/dist/voa/p-19e64a8c.entry.js.map +1 -0
- package/dist/voa/p-3830cf95.entry.js +2 -0
- package/dist/voa/p-3830cf95.entry.js.map +1 -0
- package/dist/voa/p-3a2ad02b.entry.js +2 -0
- package/dist/voa/p-3a2ad02b.entry.js.map +1 -0
- package/dist/voa/p-41fce5ed.entry.js +2 -0
- package/dist/voa/p-41fce5ed.entry.js.map +1 -0
- package/dist/voa/p-4fdf73ab.entry.js +2 -0
- package/dist/voa/p-4fdf73ab.entry.js.map +1 -0
- package/dist/voa/p-52c0c7b6.entry.js +2 -0
- package/dist/voa/p-52c0c7b6.entry.js.map +1 -0
- package/dist/voa/p-5e5cadf6.entry.js +2 -0
- package/dist/voa/p-5e5cadf6.entry.js.map +1 -0
- package/dist/voa/p-61ff0737.entry.js +2 -0
- package/dist/voa/p-61ff0737.entry.js.map +1 -0
- package/dist/voa/p-6216d4ee.entry.js +2 -0
- package/dist/voa/p-6216d4ee.entry.js.map +1 -0
- package/dist/voa/p-6dbe9bf2.entry.js +2 -0
- package/dist/voa/p-6dbe9bf2.entry.js.map +1 -0
- package/dist/voa/p-77a4cdda.entry.js +2 -0
- package/dist/voa/p-77a4cdda.entry.js.map +1 -0
- package/dist/voa/p-788024a5.entry.js +2 -0
- package/dist/voa/p-788024a5.entry.js.map +1 -0
- package/dist/voa/p-8ba8f569.entry.js +2 -0
- package/dist/voa/p-8ba8f569.entry.js.map +1 -0
- package/dist/voa/p-8e0271ec.entry.js +2 -0
- package/dist/voa/p-8e0271ec.entry.js.map +1 -0
- package/dist/voa/p-8e20a0ce.entry.js +2 -0
- package/dist/voa/p-8e20a0ce.entry.js.map +1 -0
- package/dist/voa/p-9409e8a0.entry.js +2 -0
- package/dist/voa/p-9409e8a0.entry.js.map +1 -0
- package/dist/voa/p-Dh8480Ec.js +3 -0
- package/dist/voa/p-Dh8480Ec.js.map +1 -0
- package/dist/voa/p-Du_B3oI3.js +2 -0
- package/dist/voa/p-Du_B3oI3.js.map +1 -0
- package/dist/voa/p-a9d14872.entry.js +2 -0
- package/dist/voa/p-a9d14872.entry.js.map +1 -0
- package/dist/voa/p-b305463b.entry.js +2 -0
- package/dist/voa/p-b305463b.entry.js.map +1 -0
- package/dist/voa/p-b36a6198.entry.js +2 -0
- package/dist/voa/p-b36a6198.entry.js.map +1 -0
- package/dist/voa/p-b7133c1f.entry.js +2 -0
- package/dist/voa/p-b7133c1f.entry.js.map +1 -0
- package/dist/voa/p-ba6839f4.entry.js +2 -0
- package/dist/voa/p-ba6839f4.entry.js.map +1 -0
- package/dist/voa/p-c1226e48.entry.js +2 -0
- package/dist/voa/p-c1226e48.entry.js.map +1 -0
- package/dist/voa/p-c1481257.entry.js +2 -0
- package/dist/voa/p-c1481257.entry.js.map +1 -0
- package/dist/voa/p-c3867e8e.entry.js +2 -0
- package/dist/voa/p-c3867e8e.entry.js.map +1 -0
- package/dist/voa/p-c9b7e0e5.entry.js +2 -0
- package/dist/voa/p-c9b7e0e5.entry.js.map +1 -0
- package/dist/voa/p-cc7ec720.entry.js +2 -0
- package/dist/voa/p-cc7ec720.entry.js.map +1 -0
- package/dist/voa/p-d5d426cc.entry.js +2 -0
- package/dist/voa/p-d5d426cc.entry.js.map +1 -0
- package/dist/voa/p-dce8719e.entry.js +2 -0
- package/dist/voa/p-dce8719e.entry.js.map +1 -0
- package/dist/voa/p-de0944ab.entry.js +2 -0
- package/dist/voa/p-de0944ab.entry.js.map +1 -0
- package/dist/voa/p-decd2e4d.entry.js +2 -0
- package/dist/voa/p-decd2e4d.entry.js.map +1 -0
- package/dist/voa/p-e56f72ee.entry.js +2 -0
- package/dist/voa/p-e56f72ee.entry.js.map +1 -0
- package/dist/voa/p-f28e13b2.entry.js +2 -0
- package/dist/voa/p-f28e13b2.entry.js.map +1 -0
- package/dist/voa/p-f432a015.entry.js +2 -0
- package/dist/voa/p-f432a015.entry.js.map +1 -0
- package/dist/voa/p-f5c3d298.entry.js +2 -0
- package/dist/voa/p-f5c3d298.entry.js.map +1 -0
- package/dist/voa/p-faec36a5.entry.js +2 -0
- package/dist/voa/p-faec36a5.entry.js.map +1 -0
- package/dist/voa/p-fd7aa1e3.entry.js +2 -0
- package/dist/voa/p-fd7aa1e3.entry.js.map +1 -0
- package/dist/voa/tokens/global.css +867 -0
- package/dist/voa/tokens/voa-tokens.css +776 -0
- package/dist/voa/voa-accordion.entry.esm.js.map +1 -0
- package/dist/voa/voa-alert.entry.esm.js.map +1 -0
- package/dist/voa/voa-avatar.entry.esm.js.map +1 -0
- package/dist/voa/voa-badge.entry.esm.js.map +1 -0
- package/dist/voa/voa-breadcrumbs-divider.entry.esm.js.map +1 -0
- package/dist/voa/voa-breadcrumbs-item.entry.esm.js.map +1 -0
- package/dist/voa/voa-breadcrumbs.entry.esm.js.map +1 -0
- package/dist/voa/voa-button.entry.esm.js.map +1 -0
- package/dist/voa/voa-card.entry.esm.js.map +1 -0
- package/dist/voa/voa-checkbox.entry.esm.js.map +1 -0
- package/dist/voa/voa-container-multi-select.entry.esm.js.map +1 -0
- package/dist/voa/voa-datepicker.entry.esm.js.map +1 -0
- package/dist/voa/voa-drawer.entry.esm.js.map +1 -0
- package/dist/voa/voa-dropdown.entry.esm.js.map +1 -0
- package/dist/voa/voa-input-addon.entry.esm.js.map +1 -0
- package/dist/voa/voa-input.entry.esm.js.map +1 -0
- package/dist/voa/voa-keybinding.entry.esm.js.map +1 -0
- package/dist/voa/voa-link.entry.esm.js.map +1 -0
- package/dist/voa/voa-list.entry.esm.js.map +1 -0
- package/dist/voa/voa-modal.entry.esm.js.map +1 -0
- package/dist/voa/voa-option.entry.esm.js.map +1 -0
- package/dist/voa/voa-pagination-item.entry.esm.js.map +1 -0
- package/dist/voa/voa-pagination.entry.esm.js.map +1 -0
- package/dist/voa/voa-progress.entry.esm.js.map +1 -0
- package/dist/voa/voa-radio.entry.esm.js.map +1 -0
- package/dist/voa/voa-select-base.entry.esm.js.map +1 -0
- package/dist/voa/voa-select.entry.esm.js.map +1 -0
- package/dist/voa/voa-skeleton.entry.esm.js.map +1 -0
- package/dist/voa/voa-stepper.entry.esm.js.map +1 -0
- package/dist/voa/voa-switch.entry.esm.js.map +1 -0
- package/dist/voa/voa-tab-item.entry.esm.js.map +1 -0
- package/dist/voa/voa-tab.entry.esm.js.map +1 -0
- package/dist/voa/voa-table.entry.esm.js.map +1 -0
- package/dist/voa/voa-tag.entry.esm.js.map +1 -0
- package/dist/voa/voa-text-area.entry.esm.js.map +1 -0
- package/dist/voa/voa-timepicker.entry.esm.js.map +1 -0
- package/dist/voa/voa-tooltip-arrow.entry.esm.js.map +1 -0
- package/dist/voa/voa-tooltip.entry.esm.js.map +1 -0
- package/dist/voa/voa-upload.entry.esm.js.map +1 -0
- package/dist/voa/voa.css +1 -0
- package/dist/voa/voa.esm.js +2 -0
- package/dist/voa/voa.esm.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
|
|
5
|
+
const defineCustomElements = async (win, options) => {
|
|
6
|
+
if (typeof window === 'undefined') return undefined;
|
|
7
|
+
await index.globalScripts();
|
|
8
|
+
return index.bootstrapLazy([["voa-alert.cjs",[[257,"voa-alert",{"variant":[513],"type":[513],"closable":[4],"closeButtonLabel":[1,"close-button-label"],"alertTitle":[1,"alert-title"],"description":[1],"showButtons":[4,"show-buttons"],"primaryButtonText":[1,"primary-button-text"],"secondaryButtonText":[1,"secondary-button-text"],"setFocus":[64]}]]],["voa-container-multi-select.cjs",[[257,"voa-container-multi-select",{"items":[16],"disabled":[4],"placeholder":[1],"selectedItems":[32]}]]],["voa-input-addon.cjs",[[257,"voa-input-addon",{"variant":[513],"prependContent":[1,"prepend-content"],"countryCode":[1,"country-code"],"buttonLabel":[1,"button-label"],"currency":[1],"currencyName":[1,"currency-name"],"shortcut":[1],"platform":[1],"setFocus":[64]}]]],["voa-pagination.cjs",[[257,"voa-pagination",{"currentPage":[2,"current-page"],"totalPages":[2,"total-pages"],"siblingCount":[2,"sibling-count"],"internalPage":[32]},null,{"currentPage":["handlePageChange"]}]]],["voa-select.cjs",[[257,"voa-select",{"type":[513],"label":[1],"showLabel":[4,"show-label"],"info":[4],"infoMessage":[1,"info-message"],"error":[4],"errorMessage":[1,"error-message"],"placeholder":[1],"value":[1],"options":[16],"disabled":[4],"innerValue":[32],"isFocused":[32],"currentState":[32],"setFocus":[64]},[[2,"focus","handleFocus"],[2,"blur","handleBlur"]],{"value":["syncValue"],"disabled":["updateState"],"isFocused":["updateState"]}]]],["voa-accordion.cjs",[[257,"voa-accordion",{"open":[516],"size":[513],"divider":[516],"isExpanded":[32],"setFocus":[64]},null,{"open":["watchOpenHandler"]}]]],["voa-avatar.cjs",[[257,"voa-avatar",{"type":[1],"size":[1],"initials":[1],"src":[1],"alt":[1],"setFocus":[64]}]]],["voa-breadcrumbs.cjs",[[257,"voa-breadcrumbs",{"type":[513]}]]],["voa-breadcrumbs-divider.cjs",[[257,"voa-breadcrumbs-divider",{"icon":[513]}]]],["voa-breadcrumbs-item.cjs",[[257,"voa-breadcrumbs-item",{"href":[1],"target":[1],"active":[516]}]]],["voa-card.cjs",[[257,"voa-card"]]],["voa-checkbox.cjs",[[337,"voa-checkbox",{"state":[513],"disabled":[516],"showLabel":[4,"show-label"],"name":[1],"value":[1],"internalState":[32]},null,{"state":["stateChanged"],"internalState":["internalStateChanged"]}]]],["voa-datepicker.cjs",[[257,"voa-datepicker",{"value":[1],"selectedDate":[32]}]]],["voa-drawer.cjs",[[257,"voa-drawer",{"open":[4],"isOpen":[32]}]]],["voa-dropdown.cjs",[[257,"voa-dropdown",{"options":[16],"isOpen":[32],"selected":[32]}]]],["voa-input.cjs",[[257,"voa-input",{"inputId":[1,"input-id"],"type":[1],"name":[1],"value":[1],"placeholder":[1],"label":[1],"helperText":[1,"helper-text"],"error":[516],"valid":[516],"warning":[516],"disabled":[516],"readonly":[516],"required":[516],"fill":[516],"size":[513],"showInfoIcon":[4,"show-info-icon"],"isFocused":[32],"hasPrefix":[32],"hasSuffix":[32],"hasInfo":[32],"internalValue":[32],"setFocus":[64]},null,{"value":["valueChanged"]}]]],["voa-link.cjs",[[257,"voa-link",{"href":[1],"target":[1]}]]],["voa-list.cjs",[[257,"voa-list",{"items":[16]}]]],["voa-modal.cjs",[[257,"voa-modal",{"open":[4],"isOpen":[32]}]]],["voa-option.cjs",[[337,"voa-option",{"checked":[516],"disabled":[516],"label":[1],"name":[1],"value":[1],"internalChecked":[32]},null,{"checked":["checkedChanged"]}]]],["voa-progress.cjs",[[257,"voa-progress",{"value":[2]}]]],["voa-radio.cjs",[[257,"voa-radio",{"checked":[516],"disabled":[516],"name":[1],"value":[1],"setFocus":[64]}]]],["voa-skeleton.cjs",[[256,"voa-skeleton",{"width":[1],"height":[1],"variant":[1]}]]],["voa-stepper.cjs",[[257,"voa-stepper",{"steps":[16],"currentStep":[2,"current-step"],"activeStep":[32]}]]],["voa-switch.cjs",[[337,"voa-switch",{"checked":[4],"disabled":[4],"showLabel":[4,"show-label"],"name":[1],"value":[1],"internalChecked":[32]},null,{"checked":["checkedChanged"]}]]],["voa-tab.cjs",[[257,"voa-tab",{"direction":[513],"activeIndex":[2,"active-index"],"internalIndex":[32]},[[0,"tabClick","handleTabSelected"]],{"activeIndex":["handleActiveIndexChange"]}]]],["voa-tab-item.cjs",[[257,"voa-tab-item",{"state":[513],"position":[513],"showBadge":[516,"show-badge"],"badgeCount":[2,"badge-count"],"disabled":[516],"itemIndex":[514,"item-index"],"setFocus":[64]}]]],["voa-table.cjs",[[257,"voa-table",{"data":[16],"columns":[16]}]]],["voa-tag.cjs",[[257,"voa-tag",{"label":[513],"variant":[513],"shape":[513],"size":[513],"iconLeft":[516,"icon-left"],"iconRight":[516,"icon-right"]}]]],["voa-text-area.cjs",[[337,"voa-text-area",{"textareaId":[1,"textarea-id"],"name":[1],"label":[1],"info":[4],"infoText":[1,"info-text"],"placeholder":[1],"value":[1],"maxLength":[2,"max-length"],"disabled":[516],"readonly":[516],"required":[4],"rows":[2],"cols":[2],"errorMessage":[1,"error-message"],"hasError":[516,"has-error"],"internalValue":[32],"isFocused":[32],"characterCount":[32],"setFocus":[64]},null,{"value":["valueChanged"]}]]],["voa-timepicker.cjs",[[257,"voa-timepicker",{"value":[1]}]]],["voa-tooltip.cjs",[[257,"voa-tooltip",{"position":[513],"theme":[513],"icon":[516],"text":[1],"ariaLabel":[1,"aria-label"],"isVisible":[32],"setFocus":[64]}]]],["voa-tooltip-arrow.cjs",[[257,"voa-tooltip-arrow",{"position":[513],"theme":[513]}]]],["voa-upload.cjs",[[257,"voa-upload"]]],["voa-badge.cjs",[[257,"voa-badge",{"label":[513],"count":[2],"icon":[513],"variant":[1],"shape":[513],"size":[1],"setFocus":[64]}]]],["voa-button.cjs",[[257,"voa-button",{"variant":[513],"size":[513],"disabled":[516],"loading":[516],"label":[1],"ariaLabel":[1,"aria-label"],"type":[1],"setFocus":[64]}]]],["voa-keybinding.cjs",[[257,"voa-keybinding",{"shortcut":[1],"platform":[1]}]]],["voa-pagination-item.cjs",[[257,"voa-pagination-item",{"type":[513],"active":[516],"disabled":[516]}]]],["voa-select-base.cjs",[[257,"voa-select-base",{"options":[16],"placeholder":[1],"disabled":[516],"error":[516],"value":[1],"innerValue":[32],"isOpen":[32],"activeIndex":[32],"setFocus":[64]},[[8,"click","handleOutsideClick"]],{"value":["syncValue"]}]]]], options);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.setNonce = index.setNonce;
|
|
12
|
+
exports.defineCustomElements = defineCustomElements;
|
|
13
|
+
//# sourceMappingURL=loader.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.cjs.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":["globalScripts","bootstrapLazy"],"mappings":";;;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAMA,mBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
|
|
5
|
+
const voaAccordionCss = ":host{display:block;width:100%}.voa-accordion{display:flex;flex-direction:column}.voa-accordion__trigger{appearance:none;background:transparent;border:none;width:100%;padding:0;cursor:pointer;text-align:left}.voa-accordion__header-content{display:flex;align-items:center;justify-content:space-between;width:100%}.voa-accordion__title{flex-grow:1}.voa-accordion__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.voa-accordion__content{display:grid;grid-template-rows:1fr;}.voa-accordion__content-inner{overflow:hidden;min-height:0}";
|
|
6
|
+
|
|
7
|
+
// Helper for unique IDs
|
|
8
|
+
let accordionIds = 0;
|
|
9
|
+
const VoaAccordion = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.voaToggle = index.createEvent(this, "voaToggle");
|
|
13
|
+
this.componentId = `voa-accordion-${accordionIds++}`;
|
|
14
|
+
/**
|
|
15
|
+
* If true, the accordion is expanded.
|
|
16
|
+
*/
|
|
17
|
+
this.open = false;
|
|
18
|
+
/**
|
|
19
|
+
* Size variant.
|
|
20
|
+
*/
|
|
21
|
+
this.size = 'md';
|
|
22
|
+
/**
|
|
23
|
+
* Shows the top divider.
|
|
24
|
+
*/
|
|
25
|
+
this.divider = true;
|
|
26
|
+
// Internal state ensures the component works even if the parent doesn't update the prop immediately
|
|
27
|
+
this.isExpanded = false;
|
|
28
|
+
this.handleToggle = () => {
|
|
29
|
+
// Invert internal state immediately for UI responsiveness
|
|
30
|
+
this.isExpanded = !this.isExpanded;
|
|
31
|
+
// Update the open prop to reflect in the DOM attribute (for CSS selectors)
|
|
32
|
+
this.open = this.isExpanded;
|
|
33
|
+
// Tell the world what happened
|
|
34
|
+
this.voaToggle.emit(this.isExpanded);
|
|
35
|
+
};
|
|
36
|
+
this.handleKeyDown = (ev) => {
|
|
37
|
+
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
38
|
+
ev.preventDefault();
|
|
39
|
+
this.handleToggle();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
watchOpenHandler(newValue) {
|
|
44
|
+
this.isExpanded = newValue;
|
|
45
|
+
}
|
|
46
|
+
componentWillLoad() {
|
|
47
|
+
this.isExpanded = this.open;
|
|
48
|
+
}
|
|
49
|
+
async setFocus() {
|
|
50
|
+
var _a;
|
|
51
|
+
const button = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
52
|
+
button === null || button === void 0 ? void 0 : button.focus();
|
|
53
|
+
}
|
|
54
|
+
render() {
|
|
55
|
+
const headerId = `${this.componentId}-header`;
|
|
56
|
+
const contentId = `${this.componentId}-content`;
|
|
57
|
+
return (index.h(index.Host, { key: '9e50265508e1515149432b8d619a780735bf88d2' }, index.h("div", { key: 'b6ce00c6185e8fc23e3263eb926cf6f40696a3a4', part: "base", class: {
|
|
58
|
+
'voa-accordion': true,
|
|
59
|
+
[`voa-accordion--${this.size}`]: true,
|
|
60
|
+
'voa-accordion--open': this.isExpanded,
|
|
61
|
+
'voa-accordion--closed': !this.isExpanded,
|
|
62
|
+
'voa-accordion--divider': this.divider,
|
|
63
|
+
} }, index.h("div", { key: '57ed4fa16a27073d90106ffd92c5c1192ad14327', class: "voa-accordion__header-wrapper" }, index.h("button", { key: '08ed553d1436df26f636b1b2756c00f4a2911a25', part: "header", id: headerId, class: "voa-accordion__trigger", onClick: this.handleToggle, onKeyDown: this.handleKeyDown, "aria-expanded": this.isExpanded ? 'true' : 'false', "aria-controls": contentId }, index.h("div", { key: 'a5af08c83ebad9df32032d7dac6ff99234a08069', part: "header-content", class: "voa-accordion__header-content" }, index.h("span", { key: 'c4347d7274f9d8a03f55074dd2dee707991fa77a', part: "title", class: "voa-accordion__title" }, index.h("slot", { key: '5bd0e7b181595ad554b4fa477e442ad77f88d24e', name: "header" }, "Title")), index.h("span", { key: '37957ebe29ddde5e45c6f40e030ac2c10d75b791', part: "icon", class: "voa-accordion__icon" }, index.h("slot", { key: '99258f2cd2f0c3e8e75521757499007054c6264f', name: "icon" }, index.h("svg", { key: 'ae58b580cadc0d25042fd3d14938f6f1c47711e2', width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", style: {
|
|
64
|
+
transform: this.isExpanded ? 'rotate(180deg)' : 'rotate(0deg)'
|
|
65
|
+
} }, index.h("path", { key: '7be1b4f5f63665e22d5e0adeabcc156d0dc8fbb0', d: "M7 10L12 15L17 10", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))), index.h("div", { key: 'e4602e8b9d42936dd0d69f4c56601197ac5182ab', part: "content", id: contentId, class: "voa-accordion__content", role: "region", "aria-labelledby": headerId, "aria-hidden": !this.isExpanded ? 'true' : 'false' }, index.h("div", { key: 'fe6de94d8c6394e9ff3bac0476bb9a43c4751d66', class: "voa-accordion__content-inner" }, index.h("slot", { key: '20f6ab4c9ea0656c9d8ed81c1335694507765634' }))))));
|
|
66
|
+
}
|
|
67
|
+
get host() { return index.getElement(this); }
|
|
68
|
+
static get watchers() { return {
|
|
69
|
+
"open": ["watchOpenHandler"]
|
|
70
|
+
}; }
|
|
71
|
+
};
|
|
72
|
+
VoaAccordion.style = voaAccordionCss;
|
|
73
|
+
|
|
74
|
+
exports.voa_accordion = VoaAccordion;
|
|
75
|
+
//# sourceMappingURL=voa-accordion.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-accordion.entry.cjs.js","sources":["src/components/voa-accordion/voa-accordion.css?tag=voa-accordion&encapsulation=shadow","src/components/voa-accordion/voa-accordion.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n width: 100%;\r\n}\r\n\r\n.voa-accordion {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.voa-accordion__trigger {\r\n appearance: none;\r\n background: transparent;\r\n border: none;\r\n width: 100%;\r\n padding: 0;\r\n cursor: pointer;\r\n text-align: left;\r\n}\r\n\r\n.voa-accordion__header-content {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 100%;\r\n}\r\n\r\n.voa-accordion__title {\r\n flex-grow: 1;\r\n}\r\n\r\n.voa-accordion__icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n /* Removed fixed width/height. Let the SVG or the Part define it. */\r\n flex-shrink: 0;\r\n}\r\n\r\n/* ============================================\r\n ANIMATION ARCHITECTURE\r\n ============================================\r\n \r\n This component uses CSS Grid to enable smooth height animations.\r\n \r\n STRUCTURAL (Internal CSS):\r\n - Sets up grid context: display: grid; grid-template-rows: 1fr;\r\n - Provides .voa-accordion__content-inner wrapper for height calculation\r\n \r\n ANIMATION (External CSS):\r\n - Consumer controls transition timing via ::part(content)\r\n - Consumer defines closed state: grid-template-rows: 0fr;\r\n - Consumer handles prefers-reduced-motion\r\n \r\n Why? Performance, Accessibility, and Brand Flexibility.\r\n ============================================ */\r\n\r\n.voa-accordion__content {\r\n /* STRUCTURAL PREP FOR ANIMATION */\r\n display: grid;\r\n \r\n /* Default state is open structurally to allow the 'fr' transition to work.\r\n We control the 'closed' state via the grid-template-rows property. */\r\n grid-template-rows: 1fr;\r\n \r\n /* IMPORTANT: We do NOT use display: none here.\r\n If we did, the external CSS couldn't animate the opening. */\r\n}\r\n\r\n.voa-accordion__content-inner {\r\n /* This inner wrapper is required for the grid trick to work.\r\n The parent animates the grid track, this container calculates the height. */\r\n overflow: hidden;\r\n min-height: 0;\r\n}","import { Component, h, Prop, State, Event, EventEmitter, Method, Element, Host, Watch } from '@stencil/core';\r\n\r\n// Helper for unique IDs\r\nlet accordionIds = 0;\r\n\r\n@Component({\r\n tag: 'voa-accordion',\r\n styleUrl: 'voa-accordion.css',\r\n shadow: true,\r\n})\r\nexport class VoaAccordion {\r\n @Element() host: HTMLVoaAccordionElement;\r\n\r\n private componentId = `voa-accordion-${accordionIds++}`;\r\n\r\n /**\r\n * If true, the accordion is expanded.\r\n */\r\n @Prop({ reflect: true }) open: boolean = false;\r\n\r\n /**\r\n * Size variant.\r\n */\r\n @Prop({ reflect: true }) size: 'md' | 'lg' = 'md';\r\n\r\n /**\r\n * Shows the top divider.\r\n */\r\n @Prop({ reflect: true }) divider: boolean = true;\r\n\r\n /**\r\n * Emitted when the user interacts with the header.\r\n * Payload: the requested new state (boolean).\r\n */\r\n @Event() voaToggle: EventEmitter<boolean>;\r\n\r\n // Internal state ensures the component works even if the parent doesn't update the prop immediately\r\n @State() isExpanded: boolean = false;\r\n\r\n @Watch('open')\r\n watchOpenHandler(newValue: boolean) {\r\n this.isExpanded = newValue;\r\n }\r\n\r\n componentWillLoad() {\r\n this.isExpanded = this.open;\r\n }\r\n\r\n private handleToggle = () => {\r\n // Invert internal state immediately for UI responsiveness\r\n this.isExpanded = !this.isExpanded;\r\n // Update the open prop to reflect in the DOM attribute (for CSS selectors)\r\n this.open = this.isExpanded;\r\n // Tell the world what happened\r\n this.voaToggle.emit(this.isExpanded);\r\n };\r\n\r\n private handleKeyDown = (ev: KeyboardEvent) => {\r\n if (ev.key === 'Enter' || ev.key === ' ') {\r\n ev.preventDefault();\r\n this.handleToggle();\r\n }\r\n };\r\n\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const button = this.host.shadowRoot?.querySelector('button');\r\n button?.focus();\r\n }\r\n\r\n render() {\r\n const headerId = `${this.componentId}-header`;\r\n const contentId = `${this.componentId}-content`;\r\n\r\n return (\r\n <Host>\r\n <div\r\n part=\"base\"\r\n class={{\r\n 'voa-accordion': true,\r\n [`voa-accordion--${this.size}`]: true,\r\n 'voa-accordion--open': this.isExpanded,\r\n 'voa-accordion--closed': !this.isExpanded,\r\n 'voa-accordion--divider': this.divider,\r\n }}\r\n >\r\n {/* Header wraps a button for semantics */}\r\n <div class=\"voa-accordion__header-wrapper\">\r\n <button\r\n part=\"header\"\r\n id={headerId}\r\n class=\"voa-accordion__trigger\"\r\n onClick={this.handleToggle}\r\n onKeyDown={this.handleKeyDown}\r\n aria-expanded={this.isExpanded ? 'true' : 'false'}\r\n aria-controls={contentId}\r\n >\r\n <div part=\"header-content\" class=\"voa-accordion__header-content\">\r\n <span part=\"title\" class=\"voa-accordion__title\">\r\n <slot name=\"header\">Title</slot>\r\n </span>\r\n\r\n {/* ICON SLOT: Allows external replacement */}\r\n <span part=\"icon\" class=\"voa-accordion__icon\">\r\n <slot name=\"icon\">\r\n {/* Default Fallback Icon (Chevron) */}\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n style={{\r\n transform: this.isExpanded ? 'rotate(180deg)' : 'rotate(0deg)'\r\n }}\r\n >\r\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </slot>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n\r\n {/* CONTENT: Kept in DOM for animation support via CSS Grid Trick */}\r\n <div\r\n part=\"content\"\r\n id={contentId}\r\n class=\"voa-accordion__content\"\r\n role=\"region\"\r\n aria-labelledby={headerId}\r\n aria-hidden={!this.isExpanded ? 'true' : 'false'}\r\n >\r\n <div class=\"voa-accordion__content-inner\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}"],"names":["h","Host"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
var icons = require('./icons-zJ6d3Dsx.js');
|
|
5
|
+
|
|
6
|
+
const voaAlertCss = ":host{display:block;box-sizing:border-box;width:100%}.alert-container{display:flex;flex-direction:column;position:relative;box-sizing:border-box;width:100%}.alert-inline{flex-direction:row;align-items:center}.content-wrapper{display:flex;align-items:flex-start;flex:1;width:100%;box-sizing:border-box}.alert-inline .content-wrapper{align-items:center}.alert-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.content{flex:1;display:flex;flex-direction:column;box-sizing:border-box;min-width:0;}.alert-inline .content{flex-direction:row;align-items:center}.text-group{display:flex;flex-direction:column}.close-button{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;margin:0;flex-shrink:0}.actions-wrapper{display:flex;justify-content:flex-end;align-items:center;width:100%;box-sizing:border-box;flex-wrap:wrap}";
|
|
7
|
+
|
|
8
|
+
const VoaAlert = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
index.registerInstance(this, hostRef);
|
|
11
|
+
this.voaDismiss = index.createEvent(this, "voaDismiss");
|
|
12
|
+
this.voaPrimaryClick = index.createEvent(this, "voaPrimaryClick");
|
|
13
|
+
this.voaSecondaryClick = index.createEvent(this, "voaSecondaryClick");
|
|
14
|
+
/**
|
|
15
|
+
* Variante do alerta: 'default' (layout vertical) ou 'inline' (layout horizontal).
|
|
16
|
+
* Padrão é 'default'.
|
|
17
|
+
*/
|
|
18
|
+
this.variant = 'default';
|
|
19
|
+
/**
|
|
20
|
+
* O tipo de alerta a ser exibido. Influencia a cor e o ícone.
|
|
21
|
+
* Padrão é 'info'.
|
|
22
|
+
*/
|
|
23
|
+
this.type = 'info';
|
|
24
|
+
/**
|
|
25
|
+
* Determina se o alerta pode ser fechado pelo usuário.
|
|
26
|
+
*/
|
|
27
|
+
this.closable = false;
|
|
28
|
+
/**
|
|
29
|
+
* Texto do rótulo para o botão de fechar, para acessibilidade.
|
|
30
|
+
* Padrão é "Fechar alerta".
|
|
31
|
+
*/
|
|
32
|
+
this.closeButtonLabel = 'Fechar alerta';
|
|
33
|
+
/**
|
|
34
|
+
* Determina se os botões devem ser exibidos.
|
|
35
|
+
* Se true, os botões serão exibidos (desde que pelo menos primaryButtonText seja fornecido).
|
|
36
|
+
* Se false, os botões não serão exibidos, independente das outras props.
|
|
37
|
+
*/
|
|
38
|
+
this.showButtons = false;
|
|
39
|
+
this.handleClose = (e) => {
|
|
40
|
+
e.stopPropagation();
|
|
41
|
+
this.voaDismiss.emit();
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Método para acessibilidade WCAG 2.2 AA
|
|
46
|
+
* Delega foco ao botão de fechar se existir
|
|
47
|
+
*/
|
|
48
|
+
async setFocus() {
|
|
49
|
+
var _a;
|
|
50
|
+
const closeBtn = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[part="close-button"]');
|
|
51
|
+
if (closeBtn) {
|
|
52
|
+
closeBtn.focus();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
renderIcon() {
|
|
56
|
+
const iconType = this.variant === 'inline' && this.type === 'warning' ? 'warning-inline' : this.type;
|
|
57
|
+
const IconComponent = icons.getAlertIcon(iconType, this.variant);
|
|
58
|
+
return (index.h("div", { part: "icon", class: "alert-icon" }, index.h(IconComponent, null)));
|
|
59
|
+
}
|
|
60
|
+
render() {
|
|
61
|
+
const hasButtons = this.variant === 'default' && this.showButtons && !!this.primaryButtonText;
|
|
62
|
+
return (index.h(index.Host, { key: '3e04be2859dc5ef25212fd5df6cba4ba2eff5c88', role: "alert", "aria-hidden": !this.closable ? null : "false" }, index.h("div", { key: '98f0d6a88ef58e7692818154090ca4150e2ce404', part: "base", class: {
|
|
63
|
+
'alert-container': true,
|
|
64
|
+
[`alert-${this.variant}`]: true,
|
|
65
|
+
[`alert-type-${this.type}`]: true
|
|
66
|
+
} }, index.h("div", { key: '41ba5dcd37cdf3fbf4afb4593f4eea352f30453c', part: "content-wrapper", class: "content-wrapper" }, this.renderIcon(), index.h("div", { key: '274c21ee707d150d83ee405b62464f98c31d34f4', part: "content", class: "content" }, (this.alertTitle || this.description) ? (index.h("div", { class: "text-group" }, this.alertTitle && index.h("div", { part: "title", class: "title" }, this.alertTitle), this.variant === 'default' && this.description && (index.h("div", { part: "description", class: "description" }, this.description)))) : (index.h("slot", null))), this.closable && (index.h("button", { key: '03da877fab62fab406fac41e4c94e71298af132c', part: "close-button", type: "button", class: "close-button", onClick: this.handleClose, "aria-label": this.closeButtonLabel }, icons.getAlertIcon('close', this.variant)()))), hasButtons && (index.h("div", { key: '98b4b495e98dc4bb7105df40e34071ffb03965cb', part: "actions", class: "actions-wrapper" }, this.secondaryButtonText && (index.h("voa-button", { key: '8006d6fbdb687ce60b7dc832eb0bb91e28bf5195', variant: "ghost", size: "sm", onDsClick: () => this.voaSecondaryClick.emit(), exportparts: "base: secondary-btn-base" }, this.secondaryButtonText)), index.h("voa-button", { key: '9917cb71af08d6956dc0359b8a66bfb094d5c18c', variant: "primary", size: "sm", onDsClick: () => this.voaPrimaryClick.emit(), exportparts: "base: primary-btn-base" }, this.primaryButtonText))))));
|
|
67
|
+
}
|
|
68
|
+
get host() { return index.getElement(this); }
|
|
69
|
+
};
|
|
70
|
+
VoaAlert.style = voaAlertCss;
|
|
71
|
+
|
|
72
|
+
exports.voa_alert = VoaAlert;
|
|
73
|
+
//# sourceMappingURL=voa-alert.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-alert.entry.cjs.js","sources":["src/components/voa-alert/voa-alert.css?tag=voa-alert&encapsulation=shadow","src/components/voa-alert/voa-alert.tsx"],"sourcesContent":["/* UNSTYLED PATTERN: Structural Only */\r\n\r\n:host {\r\n display: block;\r\n box-sizing: border-box;\r\n width: 100%;\r\n}\r\n\r\n.alert-container {\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n box-sizing: border-box;\r\n width: 100%;\r\n}\r\n\r\n.alert-inline {\r\n flex-direction: row;\r\n align-items: center;\r\n}\r\n\r\n.content-wrapper {\r\n display: flex;\r\n align-items: flex-start;\r\n flex: 1;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n.alert-inline .content-wrapper {\r\n align-items: center;\r\n}\r\n\r\n.alert-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n}\r\n\r\n.content {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n min-width: 0; /* Prevents text overflow issues */\r\n}\r\n\r\n.alert-inline .content {\r\n flex-direction: row;\r\n align-items: center;\r\n}\r\n\r\n.text-group {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.close-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n padding: 0;\r\n margin: 0;\r\n flex-shrink: 0;\r\n}\r\n\r\n.actions-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n width: 100%;\r\n box-sizing: border-box;\r\n flex-wrap: wrap;\r\n}\r\n","import { Component, Event, EventEmitter, Prop, h, Element, Method, Host } from '@stencil/core';\r\nimport { getAlertIcon } from '../../utils/icons';\r\n\r\n/**\r\n * O componente voa-alert é usado para exibir mensagens importantes para o usuário.\r\n * Pode ser de diferentes tipos (success, warning, error, info, basic) e opcionalmente dispensável.\r\n * Suporta variantes default (layout vertical) e inline (layout horizontal).\r\n * \r\n * @part base - O elemento raiz do alerta\r\n * @part content-wrapper - Wrapper do conteúdo principal\r\n * @part icon - Container do ícone\r\n * @part content - Container do conteúdo (slot padrão)\r\n * @part title - Container do título\r\n * @part description - Container da descrição\r\n * @part close-button - Botão de fechar\r\n * @part actions - Container dos botões de ação\r\n * @part primary-btn-base - Expõe o part \"base\" do botão primário para estilização externa\r\n * @part secondary-btn-base - Expõe o part \"base\" do botão secundário para estilização externa\r\n */\r\n@Component({\r\n tag: 'voa-alert',\r\n styleUrl: 'voa-alert.css',\r\n shadow: true,\r\n})\r\nexport class VoaAlert {\r\n @Element() host: HTMLVoaAlertElement;\r\n\r\n /**\r\n * Variante do alerta: 'default' (layout vertical) ou 'inline' (layout horizontal).\r\n * Padrão é 'default'.\r\n */\r\n @Prop({ reflect: true }) variant: 'default' | 'inline' = 'default';\r\n\r\n /**\r\n * O tipo de alerta a ser exibido. Influencia a cor e o ícone.\r\n * Padrão é 'info'.\r\n */\r\n @Prop({ reflect: true }) type: 'basic' | 'success' | 'warning' | 'warning-inline' | 'error' | 'info' = 'info';\r\n\r\n /**\r\n * Determina se o alerta pode ser fechado pelo usuário.\r\n */\r\n @Prop() closable: boolean = false;\r\n\r\n /**\r\n * Texto do rótulo para o botão de fechar, para acessibilidade.\r\n * Padrão é \"Fechar alerta\".\r\n */\r\n @Prop() closeButtonLabel: string = 'Fechar alerta';\r\n\r\n /**\r\n * Título do alerta. Quando fornecido, será exibido como título principal.\r\n * Para variant inline, apenas o título é exibido.\r\n */\r\n @Prop() alertTitle?: string;\r\n\r\n /**\r\n * Descrição do alerta. Apenas exibida na variante default.\r\n */\r\n @Prop() description?: string;\r\n\r\n /**\r\n * Determina se os botões devem ser exibidos.\r\n * Se true, os botões serão exibidos (desde que pelo menos primaryButtonText seja fornecido).\r\n * Se false, os botões não serão exibidos, independente das outras props.\r\n */\r\n @Prop() showButtons: boolean = false;\r\n\r\n /**\r\n * Texto do botão primário. Só será exibido se showButtons for true.\r\n */\r\n @Prop() primaryButtonText?: string;\r\n\r\n /**\r\n * Texto do botão secundário. Só será exibido se showButtons for true e primaryButtonText também for fornecido.\r\n */\r\n @Prop() secondaryButtonText?: string;\r\n\r\n /**\r\n * Evento emitido quando o alerta é dispensado (fechado).\r\n */\r\n @Event() voaDismiss: EventEmitter<void>;\r\n\r\n /**\r\n * Evento emitido quando o botão primário é clicado.\r\n */\r\n @Event() voaPrimaryClick: EventEmitter<void>;\r\n\r\n /**\r\n * Evento emitido quando o botão secundário é clicado.\r\n */\r\n @Event() voaSecondaryClick: EventEmitter<void>;\r\n\r\n /**\r\n * Método para acessibilidade WCAG 2.2 AA\r\n * Delega foco ao botão de fechar se existir\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const closeBtn = this.host.shadowRoot?.querySelector('[part=\"close-button\"]') as HTMLElement;\r\n if (closeBtn) {\r\n closeBtn.focus();\r\n }\r\n }\r\n\r\n private handleClose = (e: Event) => {\r\n e.stopPropagation();\r\n this.voaDismiss.emit();\r\n };\r\n\r\n private renderIcon() {\r\n const iconType = this.variant === 'inline' && this.type === 'warning' ? 'warning-inline' : this.type;\r\n const IconComponent = getAlertIcon(iconType, this.variant);\r\n \r\n return (\r\n <div part=\"icon\" class=\"alert-icon\">\r\n <IconComponent />\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n const hasButtons = this.variant === 'default' && this.showButtons && !!this.primaryButtonText;\r\n\r\n return (\r\n <Host \r\n role=\"alert\" \r\n aria-hidden={!this.closable ? null : \"false\"}\r\n >\r\n <div\r\n part=\"base\"\r\n class={{\r\n 'alert-container': true,\r\n [`alert-${this.variant}`]: true,\r\n [`alert-type-${this.type}`]: true\r\n }}\r\n >\r\n <div part=\"content-wrapper\" class=\"content-wrapper\">\r\n {this.renderIcon()}\r\n \r\n <div part=\"content\" class=\"content\">\r\n {(this.alertTitle || this.description) ? (\r\n <div class=\"text-group\">\r\n {this.alertTitle && <div part=\"title\" class=\"title\">{this.alertTitle}</div>}\r\n {this.variant === 'default' && this.description && (\r\n <div part=\"description\" class=\"description\">{this.description}</div>\r\n )}\r\n </div>\r\n ) : (\r\n <slot />\r\n )}\r\n </div>\r\n\r\n {this.closable && (\r\n <button\r\n part=\"close-button\"\r\n type=\"button\"\r\n class=\"close-button\"\r\n onClick={this.handleClose}\r\n aria-label={this.closeButtonLabel}\r\n >\r\n {getAlertIcon('close', this.variant)()}\r\n </button>\r\n )}\r\n </div>\r\n\r\n {/* Action Buttons */}\r\n {hasButtons && (\r\n <div part=\"actions\" class=\"actions-wrapper\">\r\n {this.secondaryButtonText && (\r\n <voa-button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onDsClick={() => this.voaSecondaryClick.emit()}\r\n exportparts=\"base: secondary-btn-base\" \r\n >\r\n {this.secondaryButtonText}\r\n </voa-button>\r\n )}\r\n \r\n <voa-button\r\n variant=\"primary\"\r\n size=\"sm\"\r\n onDsClick={() => this.voaPrimaryClick.emit()}\r\n exportparts=\"base: primary-btn-base\"\r\n >\r\n {this.primaryButtonText}\r\n </voa-button>\r\n </div>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n} "],"names":["getAlertIcon","h","Host"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
|
|
5
|
+
const voaAvatarCss = ":host{display:inline-block;--avatar-size-xs:var(--spacing-spacing-md);--avatar-size-sm:var(--spacing-spacing-lg);--avatar-size-md:var(--spacing-spacing-xl);--avatar-size-lg:var(--spacing-spacing-xxl);--avatar-size-xl:var(--spacing-spacing-xxxl);}.voa-avatar{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0;box-sizing:border-box;}.voa-avatar--xs{width:var(--avatar-size-xs);height:var(--avatar-size-xs)}.voa-avatar--sm{width:var(--avatar-size-sm);height:var(--avatar-size-sm)}.voa-avatar--md{width:var(--avatar-size-md);height:var(--avatar-size-md)}.voa-avatar--lg{width:var(--avatar-size-lg);height:var(--avatar-size-lg)}.voa-avatar--xl{width:var(--avatar-size-xl);height:var(--avatar-size-xl)}.voa-avatar img{width:100%;height:100%;object-fit:cover;display:block;box-sizing:border-box}.avatar-initials{display:inline-block;text-transform:uppercase;user-select:none;line-height:1;box-sizing:border-box;}.avatar-icon{width:60%;height:60%;display:block;box-sizing:border-box;}";
|
|
6
|
+
|
|
7
|
+
const VoaAvatar = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
/**
|
|
11
|
+
* Tipo de avatar a ser exibido.
|
|
12
|
+
* - 'icon': Exibe um ícone de usuário padrão
|
|
13
|
+
* - 'photo': Exibe uma imagem (requer prop src)
|
|
14
|
+
* - 'initials': Exibe iniciais de texto (requer prop initials)
|
|
15
|
+
*/
|
|
16
|
+
this.type = 'icon';
|
|
17
|
+
/**
|
|
18
|
+
* Tamanho do avatar.
|
|
19
|
+
* Mapeado do Figma: xs (16px), sm (24px), md (32px), lg (48px), xl (56px)
|
|
20
|
+
*/
|
|
21
|
+
this.size = 'md';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Método para acessibilidade WCAG 2.2 AA.
|
|
25
|
+
* Delega foco ao elemento interno do avatar.
|
|
26
|
+
*/
|
|
27
|
+
async setFocus() {
|
|
28
|
+
var _a;
|
|
29
|
+
const focusable = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[part="base"]');
|
|
30
|
+
if (focusable) {
|
|
31
|
+
focusable.focus();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
getAriaLabel() {
|
|
35
|
+
if (this.alt) {
|
|
36
|
+
return this.alt;
|
|
37
|
+
}
|
|
38
|
+
if (this.type === 'initials' && this.initials) {
|
|
39
|
+
return `Avatar com iniciais ${this.initials}`;
|
|
40
|
+
}
|
|
41
|
+
if (this.type === 'photo' && this.src) {
|
|
42
|
+
return 'Avatar com foto de perfil';
|
|
43
|
+
}
|
|
44
|
+
return 'Avatar de usuário';
|
|
45
|
+
}
|
|
46
|
+
renderContent() {
|
|
47
|
+
switch (this.type) {
|
|
48
|
+
case 'photo':
|
|
49
|
+
if (this.src) {
|
|
50
|
+
return index.h("img", { part: "image", src: this.src, alt: this.alt || 'Avatar' });
|
|
51
|
+
}
|
|
52
|
+
// Fallback para icon se src não fornecido
|
|
53
|
+
return this.renderIcon();
|
|
54
|
+
case 'initials':
|
|
55
|
+
if (this.initials) {
|
|
56
|
+
return index.h("span", { class: "avatar-initials", part: "initials" }, this.initials);
|
|
57
|
+
}
|
|
58
|
+
// Fallback para icon se initials não fornecido
|
|
59
|
+
return this.renderIcon();
|
|
60
|
+
case 'icon':
|
|
61
|
+
default:
|
|
62
|
+
return this.renderIcon();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
renderIcon() {
|
|
66
|
+
return (index.h("svg", { class: "avatar-icon", part: "icon", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true" }, index.h("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })));
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
return (index.h(index.Host, { key: '3da67acafc6bd4af69d45ae6ee662e2e2bc3aa10', role: "img", "aria-label": this.getAriaLabel() }, index.h("div", { key: '32391b690e317f36d4a8b5cc4ad9956c70cea493', part: "base", class: {
|
|
70
|
+
'voa-avatar': true,
|
|
71
|
+
[`voa-avatar--${this.size}`]: true,
|
|
72
|
+
[`voa-avatar--${this.type}`]: true,
|
|
73
|
+
} }, this.renderContent())));
|
|
74
|
+
}
|
|
75
|
+
get host() { return index.getElement(this); }
|
|
76
|
+
};
|
|
77
|
+
VoaAvatar.style = voaAvatarCss;
|
|
78
|
+
|
|
79
|
+
exports.voa_avatar = VoaAvatar;
|
|
80
|
+
//# sourceMappingURL=voa-avatar.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-avatar.entry.cjs.js","sources":["src/components/voa-avatar/voa-avatar.css?tag=voa-avatar&encapsulation=shadow","src/components/voa-avatar/voa-avatar.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n * \r\n * Design Tokens utilizados (aplicados externamente):\r\n * - --structure-colors-bg-elevated: Background do avatar (✅ existe em voa-tokens.css)\r\n * - --text-primary: Cor do texto/iniciais (✅ existe em voa-tokens.css, valor: #0b1215)\r\n * - --spacing-spacing-md: 16px (xs) (✅ existe em voa-tokens.css)\r\n * - --spacing-spacing-lg: 24px (sm) (✅ existe em voa-tokens.css)\r\n * - --spacing-spacing-xl: 32px (md) (✅ existe em voa-tokens.css)\r\n * - --spacing-spacing-xxl: 48px (lg) (✅ existe em voa-tokens.css)\r\n * - --spacing-spacing-xxxl: 56px (xl) (✅ existe em voa-tokens.css)\r\n * - --radius-round: Border-radius circular (✅ existe em voa-tokens.css, valor: 64rem)\r\n * \r\n * Exemplo de estilização externa:\r\n * voa-avatar::part(base) {\r\n * background-color: var(--structure-colors-bg-elevated);\r\n * border-radius: var(--radius-round);\r\n * }\r\n * voa-avatar::part(initials) {\r\n * color: var(--text-primary);\r\n * font-family: var(--font-family-body);\r\n * font-weight: var(--font-weight-semibold);\r\n * }\r\n */\r\n\r\n:host {\r\n display: inline-block;\r\n \r\n /* Definir variáveis CSS para tamanhos usando tokens semânticos */\r\n --avatar-size-xs: var(--spacing-spacing-md); /* 16px */\r\n --avatar-size-sm: var(--spacing-spacing-lg); /* 24px */\r\n --avatar-size-md: var(--spacing-spacing-xl); /* 32px */\r\n --avatar-size-lg: var(--spacing-spacing-xxl); /* 48px */\r\n --avatar-size-xl: var(--spacing-spacing-xxxl); /* 56px */\r\n}\r\n\r\n.voa-avatar {\r\n /* APENAS estilos estruturais */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n overflow: hidden;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n /* Border-radius será aplicado externamente via tokens */\r\n}\r\n\r\n/* Tamanhos do Avatar - usando tokens semânticos */\r\n.voa-avatar--xs {\r\n width: var(--avatar-size-xs);\r\n height: var(--avatar-size-xs);\r\n}\r\n\r\n.voa-avatar--sm {\r\n width: var(--avatar-size-sm);\r\n height: var(--avatar-size-sm);\r\n}\r\n\r\n.voa-avatar--md {\r\n width: var(--avatar-size-md);\r\n height: var(--avatar-size-md);\r\n}\r\n\r\n.voa-avatar--lg {\r\n width: var(--avatar-size-lg);\r\n height: var(--avatar-size-lg);\r\n}\r\n\r\n.voa-avatar--xl {\r\n width: var(--avatar-size-xl);\r\n height: var(--avatar-size-xl);\r\n}\r\n\r\n/* Estilos estruturais para imagem */\r\n.voa-avatar img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Estilos estruturais para iniciais */\r\n.avatar-initials {\r\n display: inline-block;\r\n text-transform: uppercase;\r\n user-select: none;\r\n line-height: 1;\r\n box-sizing: border-box;\r\n /* Font-size, color, font-weight serão aplicados externamente via tokens */\r\n}\r\n\r\n/* Estilos estruturais para ícone */\r\n.avatar-icon {\r\n width: 60%;\r\n height: 60%;\r\n display: block;\r\n box-sizing: border-box;\r\n /* Color será aplicado externamente via tokens */\r\n} ","import { Component, Host, Prop, Element, Method, h } from '@stencil/core';\r\n\r\n/**\r\n * Componente Avatar do Voa Design System, baseado no design do Figma.\r\n * Suporta exibição de ícone, iniciais ou imagem de perfil.\r\n * \r\n * O componente segue o padrão \"unstyled\" - apenas estrutura e lógica.\r\n * Estilos visuais devem ser aplicados externamente via CSS Parts API usando design tokens.\r\n * \r\n * @part base - O elemento raiz do avatar (container circular)\r\n * @part image - O elemento de imagem (quando type=\"photo\" e src é fornecido)\r\n * @part initials - O wrapper do texto de iniciais (quando type=\"initials\")\r\n * @part icon - O wrapper do ícone SVG padrão (quando type=\"icon\")\r\n */\r\n@Component({\r\n tag: 'voa-avatar',\r\n styleUrl: 'voa-avatar.css',\r\n shadow: true,\r\n scoped: false, // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaAvatar {\r\n @Element() host: HTMLVoaAvatarElement;\r\n\r\n /**\r\n * Tipo de avatar a ser exibido.\r\n * - 'icon': Exibe um ícone de usuário padrão\r\n * - 'photo': Exibe uma imagem (requer prop src)\r\n * - 'initials': Exibe iniciais de texto (requer prop initials)\r\n */\r\n @Prop() type: 'icon' | 'photo' | 'initials' = 'icon';\r\n\r\n /**\r\n * Tamanho do avatar.\r\n * Mapeado do Figma: xs (16px), sm (24px), md (32px), lg (48px), xl (56px)\r\n */\r\n @Prop() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n\r\n /**\r\n * As iniciais a serem exibidas quando type=\"initials\".\r\n */\r\n @Prop() initials?: string;\r\n\r\n /**\r\n * URL da imagem do avatar quando type=\"photo\".\r\n */\r\n @Prop() src?: string;\r\n\r\n /**\r\n * Texto alternativo para a imagem do avatar.\r\n */\r\n @Prop() alt?: string;\r\n\r\n /**\r\n * Método para acessibilidade WCAG 2.2 AA.\r\n * Delega foco ao elemento interno do avatar.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const focusable = this.host.shadowRoot?.querySelector('[part=\"base\"]') as HTMLElement;\r\n if (focusable) {\r\n focusable.focus();\r\n }\r\n }\r\n\r\n private getAriaLabel(): string {\r\n if (this.alt) {\r\n return this.alt;\r\n }\r\n if (this.type === 'initials' && this.initials) {\r\n return `Avatar com iniciais ${this.initials}`;\r\n }\r\n if (this.type === 'photo' && this.src) {\r\n return 'Avatar com foto de perfil';\r\n }\r\n return 'Avatar de usuário';\r\n }\r\n\r\n private renderContent() {\r\n switch (this.type) {\r\n case 'photo':\r\n if (this.src) {\r\n return <img part=\"image\" src={this.src} alt={this.alt || 'Avatar'} />;\r\n }\r\n // Fallback para icon se src não fornecido\r\n return this.renderIcon();\r\n \r\n case 'initials':\r\n if (this.initials) {\r\n return <span class=\"avatar-initials\" part=\"initials\">{this.initials}</span>;\r\n }\r\n // Fallback para icon se initials não fornecido\r\n return this.renderIcon();\r\n \r\n case 'icon':\r\n default:\r\n return this.renderIcon();\r\n }\r\n }\r\n\r\n private renderIcon() {\r\n return (\r\n <svg class=\"avatar-icon\" part=\"icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"/>\r\n </svg>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n role=\"img\"\r\n aria-label={this.getAriaLabel()}\r\n >\r\n <div\r\n part=\"base\"\r\n class={{\r\n 'voa-avatar': true,\r\n [`voa-avatar--${this.size}`]: true,\r\n [`voa-avatar--${this.type}`]: true,\r\n }}\r\n >\r\n {this.renderContent()}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n} "],"names":["h","Host"],"mappings":";;;;AAAA,MAAM,YAAY,GAAG,ugCAAugC;;MCoB/gC,SAAS,GAAA,MAAA;AANtB,IAAA,WAAA,CAAA,OAAA,EAAA;;AASE;;;;;AAKG;AACK,QAAA,IAAI,CAAA,IAAA,GAAkC,MAAM;AAEpD;;;AAGG;AACK,QAAA,IAAI,CAAA,IAAA,GAAqC,IAAI;AA2FtD;AA1EC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;;AACZ,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,eAAe,CAAgB;QACrF,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,KAAK,EAAE;;;IAIb,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,GAAG;;QAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAA,OAAO,CAAuB,oBAAA,EAAA,IAAI,CAAC,QAAQ,EAAE;;QAE/C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE;AACrC,YAAA,OAAO,2BAA2B;;AAEpC,QAAA,OAAO,mBAAmB;;IAGpB,aAAa,GAAA;AACnB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,IAAI,CAAC,GAAG,EAAE;oBACZ,OAAOA,iBAAK,IAAI,EAAC,OAAO,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,QAAQ,GAAI;;;AAGvE,gBAAA,OAAO,IAAI,CAAC,UAAU,EAAE;AAE1B,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,OAAOA,OAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,UAAU,EAAE,EAAA,IAAI,CAAC,QAAQ,CAAQ;;;AAG7E,gBAAA,OAAO,IAAI,CAAC,UAAU,EAAE;AAE1B,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,UAAU,EAAE;;;IAItB,UAAU,GAAA;AAChB,QAAA,QACEA,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,iBAAa,MAAM,EAAA,EAC7FA,OAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,+GAA+G,EAAE,CAAA,CACrH;;IAIV,MAAM,GAAA;AACJ,QAAA,QACEA,OAAC,CAAAC,UAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,KAAK,EACE,YAAA,EAAA,IAAI,CAAC,YAAY,EAAE,EAAA,EAE/BD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE;AACL,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,CAAC,eAAe,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AAClC,gBAAA,CAAC,eAAe,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;aACnC,EAAA,EAEA,IAAI,CAAC,aAAa,EAAE,CACjB,CACD;;;;;;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
var icons = require('./icons-zJ6d3Dsx.js');
|
|
5
|
+
|
|
6
|
+
const voaBadgeCss = ":host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.voa-badge__container{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.voa-badge__label{display:inline-block}.voa-badge__counter{display:inline-flex;align-items:center;justify-content:center}.voa-badge__indicator{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:pre-wrap}.voa-badge__indicator-only{display:inline-block}.voa-badge__icon,.voa-badge__icon-leading,.voa-badge__icon-trailing{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.voa-badge__icon svg,.voa-badge__icon-leading svg,.voa-badge__icon-trailing svg{display:inline-flex;align-items:center;justify-content:center}";
|
|
7
|
+
|
|
8
|
+
const VoaBadgeComponent = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
index.registerInstance(this, hostRef);
|
|
11
|
+
/**
|
|
12
|
+
* A variante do badge conforme design do Figma
|
|
13
|
+
*/
|
|
14
|
+
this.variant = 'plain';
|
|
15
|
+
/**
|
|
16
|
+
* Forma do badge conforme design do Figma
|
|
17
|
+
*/
|
|
18
|
+
this.shape = 'default';
|
|
19
|
+
/**
|
|
20
|
+
* Tamanho do badge conforme design do Figma
|
|
21
|
+
*/
|
|
22
|
+
this.size = 'md';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Método para acessibilidade WCAG 2.2 AA
|
|
26
|
+
* Delega foco ao elemento interno nativo
|
|
27
|
+
*/
|
|
28
|
+
async setFocus() {
|
|
29
|
+
var _a;
|
|
30
|
+
const focusable = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[tabindex]');
|
|
31
|
+
if (focusable) {
|
|
32
|
+
focusable.focus();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
renderIcon(iconName) {
|
|
36
|
+
const IconComponent = icons.Icons[iconName];
|
|
37
|
+
if (!IconComponent) {
|
|
38
|
+
console.warn(`Ícone não encontrado: ${iconName}`);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return index.h(IconComponent, null);
|
|
42
|
+
}
|
|
43
|
+
getAriaLabel() {
|
|
44
|
+
if (this.variant === 'indicator' || this.variant === 'indicator-overlay') {
|
|
45
|
+
return `${this.count || 0} items`;
|
|
46
|
+
}
|
|
47
|
+
if (this.variant === 'indicator-only') {
|
|
48
|
+
return 'Notification indicator';
|
|
49
|
+
}
|
|
50
|
+
if (this.variant === 'icon-only') {
|
|
51
|
+
return 'Icon badge';
|
|
52
|
+
}
|
|
53
|
+
return this.label || 'Badge';
|
|
54
|
+
}
|
|
55
|
+
getRole() {
|
|
56
|
+
// All indicator variants use role="status" for dynamic updates
|
|
57
|
+
// Non-indicator variants use role="status" as 'badge' is not a valid ARIA role
|
|
58
|
+
return 'status';
|
|
59
|
+
}
|
|
60
|
+
getAriaLive() {
|
|
61
|
+
// Only indicator variants need live region announcements
|
|
62
|
+
if (this.variant === 'indicator' || this.variant === 'indicator-overlay' || this.variant === 'indicator-only') {
|
|
63
|
+
return 'polite';
|
|
64
|
+
}
|
|
65
|
+
return 'off';
|
|
66
|
+
}
|
|
67
|
+
render() {
|
|
68
|
+
const containerClasses = {
|
|
69
|
+
'voa-badge__container': true,
|
|
70
|
+
[`voa-badge--${this.variant}`]: true,
|
|
71
|
+
[`voa-badge--${this.shape}`]: true,
|
|
72
|
+
[`voa-badge--${this.size}`]: true,
|
|
73
|
+
};
|
|
74
|
+
const renderContent = () => {
|
|
75
|
+
switch (this.variant) {
|
|
76
|
+
case 'plain':
|
|
77
|
+
return index.h("span", { part: "label", class: "voa-badge__label" }, this.label);
|
|
78
|
+
case 'icons':
|
|
79
|
+
return (index.h("div", null, index.h("span", { part: "icon-leading", class: "voa-badge__icon-leading" }, index.h("slot", { name: "start" }, this.icon && this.renderIcon(this.icon))), index.h("span", { part: "label", class: "voa-badge__label" }, this.label), index.h("span", { part: "icon-trailing", class: "voa-badge__icon-trailing" }, index.h("slot", { name: "end" }, this.icon && this.renderIcon(this.icon)))));
|
|
80
|
+
case 'icon-only':
|
|
81
|
+
return (index.h("span", { part: "icon", class: "voa-badge__icon" }, this.icon && this.renderIcon(this.icon)));
|
|
82
|
+
case 'indicator':
|
|
83
|
+
return (index.h("span", { part: "indicator", class: "voa-badge__indicator", role: "status", "aria-live": "polite" }, this.count !== undefined ? this.count : 0));
|
|
84
|
+
case 'indicator-overlay':
|
|
85
|
+
return (index.h("span", { part: "indicator", class: "voa-badge__indicator", role: "status", "aria-live": "polite" }, this.count !== undefined ? this.count : 0));
|
|
86
|
+
case 'indicator-only':
|
|
87
|
+
return index.h("span", { part: "indicator", class: "voa-badge__indicator-only", "aria-hidden": "true" });
|
|
88
|
+
default:
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
return (index.h(index.Host, { role: this.getRole(), "aria-label": this.getAriaLabel(), "aria-live": this.getAriaLive() }, index.h("div", { part: "base", class: containerClasses }, renderContent())));
|
|
93
|
+
}
|
|
94
|
+
get host() { return index.getElement(this); }
|
|
95
|
+
};
|
|
96
|
+
VoaBadgeComponent.style = voaBadgeCss;
|
|
97
|
+
|
|
98
|
+
exports.voa_badge = VoaBadgeComponent;
|
|
99
|
+
//# sourceMappingURL=voa-badge.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-badge.entry.cjs.js","sources":["src/components/voa-badge/voa-badge.css?tag=voa-badge&encapsulation=shadow","src/components/voa-badge/voa-badge.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-badge__container {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-badge__label {\r\n display: inline-block;\r\n}\r\n\r\n.voa-badge__counter {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.voa-badge__indicator {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n white-space: pre-wrap;\r\n}\r\n\r\n.voa-badge__indicator-only {\r\n display: inline-block;\r\n}\r\n\r\n.voa-badge__icon,\r\n.voa-badge__icon-leading,\r\n.voa-badge__icon-trailing {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n}\r\n\r\n.voa-badge__icon svg,\r\n.voa-badge__icon-leading svg,\r\n.voa-badge__icon-trailing svg {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n","import { Component, Prop, h, Host, Element, Method } from '@stencil/core';\r\nimport { Icons } from '../../utils/icons';\r\n\r\nexport interface VoaBadge {\r\n /**\r\n * O texto a ser exibido no badge (mapeado do Figma como \"label\")\r\n */\r\n label?: string;\r\n\r\n /**\r\n * O número a ser exibido como contador (para variantes indicator e indicator-overlay)\r\n */\r\n count?: number;\r\n\r\n /**\r\n * O nome do ícone a ser exibido (para variantes icon-only e icons)\r\n */\r\n icon?: 'success' | 'warning' | 'error' | 'info' | 'close' | 'check' | 'star' | 'heart' | 'bell';\r\n\r\n /**\r\n * A variante do badge conforme design do Figma\r\n * - plain: Badge com texto apenas\r\n * - icons: Badge com texto e ícones (leading/trailing)\r\n * - icon-only: Badge apenas com ícone\r\n * - indicator: Badge numérico (contador)\r\n * - indicator-overlay: Badge numérico com fundo vermelho (danger)\r\n * - indicator-only: Badge apenas indicador (ponto vermelho)\r\n */\r\n variant?: 'plain' | 'icons' | 'icon-only' | 'indicator' | 'indicator-overlay' | 'indicator-only';\r\n\r\n /**\r\n * Forma do badge conforme design do Figma\r\n * - default: Forma retangular com bordas arredondadas\r\n * - pill: Forma completamente arredondada (pill-shaped)\r\n */\r\n shape?: 'default' | 'pill';\r\n\r\n /**\r\n * Tamanho do badge conforme design do Figma\r\n * - sm: Tamanho pequeno\r\n * - md: Tamanho médio (padrão)\r\n */\r\n size?: 'sm' | 'md';\r\n}\r\n\r\n/**\r\n * Badge component para exibir indicadores visuais como texto, contadores ou status.\r\n * Baseado no design do Figma (node-id: 397-3352).\r\n * \r\n * O componente segue o padrão \"unstyled\" - apenas estrutura e lógica.\r\n * Estilos visuais devem ser aplicados externamente via CSS Parts API usando design tokens.\r\n * \r\n * @part base - O container interno do badge (onde as classes são aplicadas)\r\n * @part label - O wrapper do texto (para variantes plain e icons)\r\n * @part counter - O wrapper do número (para variantes indicator e indicator-overlay)\r\n * @part icon-leading - Container do ícone à esquerda (para variante icons)\r\n * @part icon-trailing - Container do ícone à direita (para variante icons)\r\n * @part icon - Container do ícone (para variante icon-only)\r\n * @part indicator - O indicador numérico ou ponto (para variantes indicator, indicator-overlay, indicator-only)\r\n * \r\n * @slot start - Slot para ícone no início do badge (usado em variante icons)\r\n * @slot end - Slot para ícone no final do badge (usado em variante icons)\r\n */\r\n@Component({\r\n tag: 'voa-badge',\r\n styleUrl: 'voa-badge.css',\r\n shadow: true,\r\n scoped: false, // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaBadgeComponent implements VoaBadge {\r\n @Element() host: HTMLVoaBadgeElement;\r\n\r\n /**\r\n * O texto a ser exibido no badge (mapeado do Figma como \"label\")\r\n */\r\n @Prop({ reflect: true }) label?: string;\r\n\r\n /**\r\n * O número a ser exibido como contador (para variantes indicator e indicator-overlay)\r\n */\r\n @Prop() count?: number;\r\n\r\n /**\r\n * O nome do ícone a ser exibido (para variantes icon-only e icons)\r\n */\r\n @Prop({ reflect: true }) icon?: 'success' | 'warning' | 'error' | 'info' | 'close' | 'check' | 'star' | 'heart' | 'bell';\r\n\r\n /**\r\n * A variante do badge conforme design do Figma\r\n */\r\n @Prop() variant: 'plain' | 'icons' | 'icon-only' | 'indicator' | 'indicator-overlay' | 'indicator-only' = 'plain';\r\n\r\n /**\r\n * Forma do badge conforme design do Figma\r\n */\r\n @Prop({ reflect: true }) shape: 'default' | 'pill' = 'default';\r\n\r\n /**\r\n * Tamanho do badge conforme design do Figma\r\n */\r\n @Prop() size: 'sm' | 'md' = 'md';\r\n\r\n /**\r\n * Método para acessibilidade WCAG 2.2 AA\r\n * Delega foco ao elemento interno nativo\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const focusable = this.host.shadowRoot?.querySelector('[tabindex]') as HTMLElement;\r\n if (focusable) {\r\n focusable.focus();\r\n }\r\n }\r\n\r\n private renderIcon(iconName: string) {\r\n const IconComponent = Icons[iconName];\r\n if (!IconComponent) {\r\n console.warn(`Ícone não encontrado: ${iconName}`);\r\n return null;\r\n }\r\n return <IconComponent />;\r\n }\r\n\r\n private getAriaLabel(): string {\r\n if (this.variant === 'indicator' || this.variant === 'indicator-overlay') {\r\n return `${this.count || 0} items`;\r\n }\r\n if (this.variant === 'indicator-only') {\r\n return 'Notification indicator';\r\n }\r\n if (this.variant === 'icon-only') {\r\n return 'Icon badge';\r\n }\r\n return this.label || 'Badge';\r\n }\r\n\r\n private getRole(): string {\r\n // All indicator variants use role=\"status\" for dynamic updates\r\n // Non-indicator variants use role=\"status\" as 'badge' is not a valid ARIA role\r\n return 'status';\r\n }\r\n\r\n private getAriaLive(): 'polite' | 'off' {\r\n // Only indicator variants need live region announcements\r\n if (this.variant === 'indicator' || this.variant === 'indicator-overlay' || this.variant === 'indicator-only') {\r\n return 'polite';\r\n }\r\n return 'off';\r\n }\r\n\r\n render() {\r\n const containerClasses = {\r\n 'voa-badge__container': true,\r\n [`voa-badge--${this.variant}`]: true,\r\n [`voa-badge--${this.shape}`]: true,\r\n [`voa-badge--${this.size}`]: true,\r\n };\r\n\r\n const renderContent = () => {\r\n switch (this.variant) {\r\n case 'plain':\r\n return <span part=\"label\" class=\"voa-badge__label\">{this.label}</span>;\r\n\r\n case 'icons':\r\n return (\r\n <div>\r\n <span part=\"icon-leading\" class=\"voa-badge__icon-leading\">\r\n <slot name=\"start\">\r\n {this.icon && this.renderIcon(this.icon)}\r\n </slot>\r\n </span>\r\n <span part=\"label\" class=\"voa-badge__label\">{this.label}</span>\r\n <span part=\"icon-trailing\" class=\"voa-badge__icon-trailing\">\r\n <slot name=\"end\">\r\n {this.icon && this.renderIcon(this.icon)}\r\n </slot>\r\n </span>\r\n </div>\r\n );\r\n\r\n case 'icon-only':\r\n return (\r\n <span part=\"icon\" class=\"voa-badge__icon\">\r\n {this.icon && this.renderIcon(this.icon)}\r\n </span>\r\n );\r\n\r\n case 'indicator':\r\n return (\r\n <span part=\"indicator\" class=\"voa-badge__indicator\" role=\"status\" aria-live=\"polite\">\r\n {this.count !== undefined ? this.count : 0}\r\n </span>\r\n );\r\n\r\n case 'indicator-overlay':\r\n return (\r\n <span part=\"indicator\" class=\"voa-badge__indicator\" role=\"status\" aria-live=\"polite\">\r\n {this.count !== undefined ? this.count : 0}\r\n </span>\r\n );\r\n\r\n case 'indicator-only':\r\n return <span part=\"indicator\" class=\"voa-badge__indicator-only\" aria-hidden=\"true\"></span>;\r\n\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n <Host\r\n role={this.getRole()}\r\n aria-label={this.getAriaLabel()}\r\n aria-live={this.getAriaLive()}\r\n >\r\n <div part=\"base\" class={containerClasses}>\r\n {renderContent()}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"names":["Icons","h","Host"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
var icons = require('./icons-zJ6d3Dsx.js');
|
|
5
|
+
|
|
6
|
+
const voaBreadcrumbsDividerCss = ":host{display:inline-flex;box-sizing:border-box}.voa-breadcrumbs-divider{display:inline-flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box}.voa-breadcrumbs-divider__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.voa-breadcrumbs-divider__icon svg{display:block;width:100%;height:100%;flex-shrink:0}";
|
|
7
|
+
|
|
8
|
+
const VoaBreadcrumbsDivider = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
index.registerInstance(this, hostRef);
|
|
11
|
+
/**
|
|
12
|
+
* Tipo de ícone a ser exibido como divisor.
|
|
13
|
+
* Mapeia as variantes do Figma: chevron, arrow, arrow-alt.
|
|
14
|
+
*/
|
|
15
|
+
this.icon = 'chevron';
|
|
16
|
+
}
|
|
17
|
+
getIconComponent() {
|
|
18
|
+
switch (this.icon) {
|
|
19
|
+
case 'chevron':
|
|
20
|
+
return icons.Icons['chevron-right'];
|
|
21
|
+
case 'arrow':
|
|
22
|
+
return icons.Icons['arrow-right'];
|
|
23
|
+
case 'arrow-alt':
|
|
24
|
+
return icons.Icons['arrow-right-alt'];
|
|
25
|
+
default:
|
|
26
|
+
return icons.Icons['chevron-right'];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
render() {
|
|
30
|
+
const IconComponent = this.getIconComponent();
|
|
31
|
+
return (index.h(index.Host, { key: '3ca0a38193c0c6d61ec4905cd95e12209fa00a57', role: "separator", "aria-hidden": "true" }, index.h("div", { key: 'd6d136f7c9e8e4965938a4a23e77fe19ec16c369', part: "base", class: {
|
|
32
|
+
'voa-breadcrumbs-divider': true,
|
|
33
|
+
[`voa-breadcrumbs-divider--${this.icon}`]: true,
|
|
34
|
+
} }, index.h("span", { key: 'c57435ac5dd5fe8d1abc40f75676709b04b1e185', part: "icon", class: "voa-breadcrumbs-divider__icon" }, index.h(IconComponent, { key: '066b4d14c8e02969e04d43630329c7483a788ac5' })))));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
VoaBreadcrumbsDivider.style = voaBreadcrumbsDividerCss;
|
|
38
|
+
|
|
39
|
+
exports.voa_breadcrumbs_divider = VoaBreadcrumbsDivider;
|
|
40
|
+
//# sourceMappingURL=voa-breadcrumbs-divider.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-breadcrumbs-divider.entry.cjs.js","sources":["src/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.css?tag=voa-breadcrumbs-divider&encapsulation=shadow","src/components/voa-breadcrumbs-divider/voa-breadcrumbs-divider.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n * \r\n * IMPORTANT: NÃO incluir cores, fontes, espaçamentos ou valores hardcoded.\r\n * Apenas estrutura: display, position, flexbox, grid, box-sizing, cursor, etc.\r\n */\r\n\r\n:host {\r\n display: inline-flex;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-breadcrumbs-divider {\r\n /* APENAS estilos estruturais */\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-breadcrumbs-divider__icon {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n overflow: hidden;\r\n}\r\n\r\n/* Layout para o SVG interno */\r\n.voa-breadcrumbs-divider__icon svg {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n}\r\n\r\n","import { Component, Prop, h, Host } from '@stencil/core';\r\nimport { Icons } from '../../utils/icons';\r\n\r\n/**\r\n * Componente de divisor para breadcrumbs.\r\n * Baseado no design do Figma (node-id: 443-9825).\r\n * \r\n * O componente segue o padrão \"unstyled\" - apenas estrutura e lógica.\r\n * Estilos visuais devem ser aplicados externamente via CSS Parts API usando design tokens.\r\n * \r\n * @part base - O container interno do divisor\r\n * @part icon - O container do ícone SVG\r\n */\r\n@Component({\r\n tag: 'voa-breadcrumbs-divider',\r\n styleUrl: 'voa-breadcrumbs-divider.css',\r\n shadow: true,\r\n scoped: false, // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaBreadcrumbsDivider {\r\n /**\r\n * Tipo de ícone a ser exibido como divisor.\r\n * Mapeia as variantes do Figma: chevron, arrow, arrow-alt.\r\n */\r\n @Prop({ reflect: true }) icon: 'chevron' | 'arrow' | 'arrow-alt' = 'chevron';\r\n\r\n private getIconComponent() {\r\n switch (this.icon) {\r\n case 'chevron':\r\n return Icons['chevron-right'];\r\n case 'arrow':\r\n return Icons['arrow-right'];\r\n case 'arrow-alt':\r\n return Icons['arrow-right-alt'];\r\n default:\r\n return Icons['chevron-right'];\r\n }\r\n }\r\n\r\n render() {\r\n const IconComponent = this.getIconComponent();\r\n\r\n return (\r\n <Host\r\n role=\"separator\"\r\n aria-hidden=\"true\"\r\n >\r\n <div\r\n part=\"base\"\r\n class={{\r\n 'voa-breadcrumbs-divider': true,\r\n [`voa-breadcrumbs-divider--${this.icon}`]: true,\r\n }}\r\n >\r\n <span part=\"icon\" class=\"voa-breadcrumbs-divider__icon\">\r\n <IconComponent />\r\n </span>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n\r\n"],"names":["Icons","h","Host"],"mappings":";;;;;AAAA,MAAM,wBAAwB,GAAG,kYAAkY;;MCmBtZ,qBAAqB,GAAA,MAAA;AANlC,IAAA,WAAA,CAAA,OAAA,EAAA;;AAOE;;;AAGG;AACsB,QAAA,IAAI,CAAA,IAAA,GAAsC,SAAS;AAqC7E;IAnCS,gBAAgB,GAAA;AACtB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAOA,WAAK,CAAC,eAAe,CAAC;AAC/B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAOA,WAAK,CAAC,aAAa,CAAC;AAC7B,YAAA,KAAK,WAAW;AACd,gBAAA,OAAOA,WAAK,CAAC,iBAAiB,CAAC;AACjC,YAAA;AACE,gBAAA,OAAOA,WAAK,CAAC,eAAe,CAAC;;;IAInC,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE7C,QAAA,QACEC,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,IAAI,EAAC,WAAW,iBACJ,MAAM,EAAA,EAElBD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE;AACL,gBAAA,yBAAyB,EAAE,IAAI;AAC/B,gBAAA,CAAC,4BAA4B,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AAChD,aAAA,EAAA,EAEDA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,+BAA+B,EAAA,EACrDA,OAAA,CAAC,aAAa,EAAG,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACZ,CACH,CACD;;;;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-TzstRlIU.js');
|
|
4
|
+
|
|
5
|
+
const voaBreadcrumbsItemCss = ":host{display:inline-flex;align-items:center}.breadcrumbs-item-wrapper{display:inline-flex;align-items:center}.breadcrumbs-content{display:inline-flex;align-items:center;text-decoration:none;color:inherit;box-sizing:border-box;cursor:pointer}.breadcrumbs-content[aria-current=\"page\"]{cursor:default;pointer-events:none}.breadcrumbs-separator{display:inline-flex;align-items:center;justify-content:center;margin-inline:0;user-select:none}:host(:last-of-type) .breadcrumbs-separator{display:none}.voa-breadcrumbs-item__icon svg{display:block;width:16px;height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);flex-shrink:0}";
|
|
6
|
+
|
|
7
|
+
const VoaBreadcrumbsItem = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
/**
|
|
11
|
+
* Is this the current/active page?
|
|
12
|
+
*/
|
|
13
|
+
this.active = false;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
// Determine the tag type
|
|
17
|
+
const Tag = this.href && !this.active ? 'a' : 'span';
|
|
18
|
+
// Accessibility: Current page should rely on aria-current
|
|
19
|
+
const ariaCurrent = this.active ? 'page' : undefined;
|
|
20
|
+
return (index.h(index.Host, { key: 'f72dd6b4030693ed8e9b4b965ba3ae02dc957b47' }, index.h("li", { key: '75c354b98c337adb9fdaa7f4a538d45cb4db51fe', class: "breadcrumbs-item-wrapper" }, index.h(Tag, { key: '4dc895812b0facd3fe860e9038aeb4cde310d582', part: "content", class: "breadcrumbs-content", href: this.href, target: this.target, "aria-current": ariaCurrent }, index.h("slot", { key: '9f0886dcf1720ec06e5bdbd0c51f636c6c75f93d' })), index.h("span", { key: '82607218bc31771e6ba480e4259815792a02db3c', part: "separator", class: "breadcrumbs-separator", "aria-hidden": "true" }, index.h("slot", { key: 'b4e36ccdd8c24daa626366e3ec8b9a1f6c0d6e8e', name: "separator" }, index.h("svg", { key: '0740e3781c0a16a2f7de592f7bd6750a17af3dc9', width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("polyline", { key: '14ba6ed15eccf0e93104bd414e0db239c176be16', points: "9 18 15 12 9 6" })))))));
|
|
21
|
+
}
|
|
22
|
+
get host() { return index.getElement(this); }
|
|
23
|
+
};
|
|
24
|
+
VoaBreadcrumbsItem.style = voaBreadcrumbsItemCss;
|
|
25
|
+
|
|
26
|
+
exports.voa_breadcrumbs_item = VoaBreadcrumbsItem;
|
|
27
|
+
//# sourceMappingURL=voa-breadcrumbs-item.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voa-breadcrumbs-item.entry.cjs.js","sources":["src/components/voa-breadcrumbs-item/voa-breadcrumbs-item.css?tag=voa-breadcrumbs-item&encapsulation=shadow","src/components/voa-breadcrumbs-item/voa-breadcrumbs-item.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n * \r\n * IMPORTANT: NÃO incluir cores, fontes, espaçamentos ou valores hardcoded.\r\n * Apenas estrutura: display, position, flexbox, grid, box-sizing, cursor, etc.\r\n */\r\n\r\n:host {\r\n display: inline-flex;\r\n align-items: center;\r\n}\r\n\r\n.breadcrumbs-item-wrapper {\r\n display: inline-flex;\r\n align-items: center;\r\n}\r\n\r\n.breadcrumbs-content {\r\n display: inline-flex;\r\n align-items: center;\r\n text-decoration: none;\r\n color: inherit;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n}\r\n\r\n/* Remove pointer events/cursor for active (current) item */\r\n.breadcrumbs-content[aria-current=\"page\"] {\r\n cursor: default;\r\n pointer-events: none; \r\n}\r\n\r\n.breadcrumbs-separator {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-inline: 0; /* Spacing handled via CSS Parts */\r\n user-select: none;\r\n}\r\n\r\n/* * CRITICAL: Hide separator on the last item.\r\n * Since we are inside Shadow DOM, :host(:last-child) refers to the \r\n * custom element itself within the parent's light DOM/slot context.\r\n */\r\n:host(:last-of-type) .breadcrumbs-separator {\r\n display: none;\r\n}\r\n\r\n/* Layout para o SVG interno do ícone */\r\n.voa-breadcrumbs-item__icon svg {\r\n display: block;\r\n width: 16px;\r\n height: 16px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n flex-shrink: 0;\r\n}\r\n\r\n","import { Component, Prop, h, Host, Element } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'voa-breadcrumbs-item',\r\n styleUrl: 'voa-breadcrumbs-item.css',\r\n shadow: true,\r\n})\r\nexport class VoaBreadcrumbsItem {\r\n @Element() host: HTMLElement;\r\n\r\n /**\r\n * HREF destination. If provided, renders an anchor tag.\r\n * If missing, renders a span (current page or static item).\r\n */\r\n @Prop() href?: string;\r\n\r\n /**\r\n * Target for the link (e.g., _blank)\r\n */\r\n @Prop() target?: string;\r\n\r\n /**\r\n * Is this the current/active page?\r\n */\r\n @Prop({ reflect: true }) active: boolean = false;\r\n\r\n render() {\r\n // Determine the tag type\r\n const Tag = this.href && !this.active ? 'a' : 'span';\r\n \r\n // Accessibility: Current page should rely on aria-current\r\n const ariaCurrent = this.active ? 'page' : undefined;\r\n\r\n return (\r\n <Host>\r\n <li class=\"breadcrumbs-item-wrapper\">\r\n \r\n {/* 1. The Content Part */}\r\n <Tag \r\n part=\"content\" \r\n class=\"breadcrumbs-content\"\r\n href={this.href}\r\n target={this.target}\r\n aria-current={ariaCurrent}\r\n >\r\n <slot />\r\n </Tag>\r\n\r\n {/* 2. The Separator Part \r\n We render it always, and hide it via CSS for the last item.\r\n This is much more robust than JS logic.\r\n */}\r\n <span part=\"separator\" class=\"breadcrumbs-separator\" aria-hidden=\"true\">\r\n <slot name=\"separator\">\r\n {/* Default Icon: Chevron Right */}\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"9 18 15 12 9 6\"></polyline>\r\n </svg>\r\n </slot>\r\n </span>\r\n\r\n </li>\r\n </Host>\r\n );\r\n }\r\n}\r\n\r\n"],"names":["h","Host"],"mappings":";;;;AAAA,MAAM,qBAAqB,GAAG,woBAAwoB;;MCOzpB,kBAAkB,GAAA,MAAA;AAL/B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAmBE;;AAEG;AACsB,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AAyCjD;IAvCC,MAAM,GAAA;;AAEJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM;;AAGpD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS;AAEpD,QAAA,QACEA,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACHD,OAAI,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EAGlCA,OAAC,CAAA,GAAG,qDACF,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,cAAA,EACL,WAAW,EAAA,EAEzBA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACJ,EAMNA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,uBAAuB,iBAAa,MAAM,EAAA,EACpEA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EAEpBA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,EAAA,gBAAA,EAAgB,OAAO,EAAA,iBAAA,EAAiB,OAAO,EAAA,EAC/IA,OAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,MAAM,EAAC,gBAAgB,EAAY,CAAA,CACzC,CACD,CACH,CAEJ,CACA;;;;;;;;"}
|