@roadtrip/components 3.17.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index-fb57f684.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/road-accordion.cjs.entry.js +1 -1
- package/dist/cjs/road-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/road-autocomplete.cjs.entry.js +1 -1
- package/dist/cjs/road-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/road-badge_14.cjs.entry.js +40 -8
- package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
- package/dist/cjs/road-banner.cjs.entry.js +1 -1
- package/dist/cjs/road-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/road-button-floating.cjs.entry.js +1 -1
- package/dist/cjs/road-button-floating.cjs.entry.js.map +1 -1
- package/dist/cjs/road-card.cjs.entry.js +1 -1
- package/dist/cjs/road-card.cjs.entry.js.map +1 -1
- package/dist/cjs/road-carousel.cjs.entry.js +30 -118
- package/dist/cjs/road-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/road-chip.cjs.entry.js +2 -2
- package/dist/cjs/road-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/road-collapse.cjs.entry.js +1 -1
- package/dist/cjs/road-collapse.cjs.entry.js.map +1 -1
- package/dist/cjs/road-dialog.cjs.entry.js +2 -2
- package/dist/cjs/road-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/road-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/road-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/road-global-navigation.cjs.entry.js +1 -1
- package/dist/cjs/road-global-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/road-illustration.cjs.entry.js +1 -1
- package/dist/cjs/road-illustration.cjs.entry.js.map +1 -1
- package/dist/cjs/road-modal.cjs.entry.js +2 -2
- package/dist/cjs/road-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/road-navbar-item.cjs.entry.js +1 -1
- package/dist/cjs/road-navbar-item.cjs.entry.js.map +1 -1
- package/dist/cjs/road-navbar.cjs.entry.js +1 -1
- package/dist/cjs/road-navbar.cjs.entry.js.map +1 -1
- package/dist/cjs/road-phone-number-input.cjs.entry.js +41 -5
- package/dist/cjs/road-phone-number-input.cjs.entry.js.map +1 -1
- package/dist/cjs/road-plate-number.cjs.entry.js +2 -2
- package/dist/cjs/road-plate-number.cjs.entry.js.map +1 -1
- package/dist/cjs/road-profil-dropdown.cjs.entry.js +10 -1
- package/dist/cjs/road-profil-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js +2 -2
- package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress-tracker.cjs.entry.js +2 -2
- package/dist/cjs/road-progress-tracker.cjs.entry.js.map +1 -1
- package/dist/cjs/road-progress.cjs.entry.js +1 -1
- package/dist/cjs/road-progress.cjs.entry.js.map +1 -1
- package/dist/cjs/road-range.cjs.entry.js +26 -2
- package/dist/cjs/road-range.cjs.entry.js.map +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js.map +1 -1
- package/dist/cjs/road-select-filter.cjs.entry.js +34 -4
- package/dist/cjs/road-select-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/road-select.cjs.entry.js +1 -1
- package/dist/cjs/road-select.cjs.entry.js.map +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/roadtrip.cjs.js +1 -1
- package/dist/collection/components/accordion/accordion.css +4 -0
- package/dist/collection/components/accordion/accordion.stories.js +1 -1
- package/dist/collection/components/alert/alert.stories.js +1 -1
- package/dist/collection/components/autocomplete/autocomplete.js +1 -1
- package/dist/collection/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/collection/components/autocomplete/autocomplete.stories.js +2 -2
- package/dist/collection/components/avatar/avatar.stories.js +1 -1
- package/dist/collection/components/badge/badge.stories.js +2 -2
- package/dist/collection/components/banner/banner.js +1 -1
- package/dist/collection/components/banner/banner.js.map +1 -1
- package/dist/collection/components/button/button.stories.js +6 -6
- package/dist/collection/components/button-floating/button-floating.css +0 -4
- package/dist/collection/components/button-floating/button-floating.stories.js +2 -2
- package/dist/collection/components/card/card.css +4 -0
- package/dist/collection/components/card/card.stories.js +4 -4
- package/dist/collection/components/carousel/carousel.css +4 -1
- package/dist/collection/components/carousel/carousel.js +93 -250
- package/dist/collection/components/carousel/carousel.js.map +1 -1
- package/dist/collection/components/chip/chip.css +2 -2
- package/dist/collection/components/chip/chip.js +1 -1
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/chip/chip.stories.js +26 -1
- package/dist/collection/components/collapse/collapse.css +4 -0
- package/dist/collection/components/collapse/collapse.stories.js +8 -8
- package/dist/collection/components/counter/counter.css +5 -0
- package/dist/collection/components/counter/counter.js +19 -1
- package/dist/collection/components/counter/counter.js.map +1 -1
- package/dist/collection/components/dialog/dialog.js +2 -2
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/drawer/drawer.js +1 -1
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/drawer/drawer.stories.js +2 -2
- package/dist/collection/components/dropdown/dropdown.css +9 -4
- package/dist/collection/components/dropdown/dropdown.js +3 -3
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.stories.js +4 -4
- package/dist/collection/components/global-navigation/global-navigation.js +1 -1
- package/dist/collection/components/global-navigation/global-navigation.js.map +1 -1
- package/dist/collection/components/global-navigation/global-navigation.stories.js +39 -39
- package/dist/collection/components/icon/icon.stories.js +44 -43
- package/dist/collection/components/icon/svg/fuel-air-supply-color.svg +1 -1
- package/dist/collection/components/icon/svg/fuel-air-supply-outline.svg +1 -1
- package/dist/collection/components/icon/svg/funding-best-price-color.svg +1 -1
- package/dist/collection/components/icon/svg/funding-best-price-outline.svg +1 -1
- package/dist/collection/components/icon/svg/helmet-cross-color.svg +1 -1
- package/dist/collection/components/icon/svg/helmet-cross-outline.svg +1 -1
- package/dist/collection/components/icon/svg/ice-color.svg +1 -1
- package/dist/collection/components/icon/svg/ice-outline.svg +1 -1
- package/dist/collection/components/icon/svg/ice-solid-color.svg +1 -1
- package/dist/collection/components/icon/svg/ice-solid.svg +1 -1
- package/dist/collection/components/icon/svg/light-beam-signal-color.svg +1 -1
- package/dist/collection/components/icon/svg/light-beam-signal-outline.svg +1 -1
- package/dist/collection/components/icon/svg/social-facebook-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-google-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-instagram-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-instagramWithinCircle.svg +1 -1
- package/dist/collection/components/icon/svg/social-linkedin-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-paypal-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-tiktok-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-twitter-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-whatsapp-badge.svg +1 -1
- package/dist/collection/components/icon/svg/social-youtube-badge.svg +1 -1
- package/dist/collection/components/icon/svg/tire-ice-color.svg +1 -1
- package/dist/collection/components/icon/svg/tire-ice-outline.svg +1 -1
- package/dist/collection/components/icon/svg/tire-ice-solid.svg +1 -1
- package/dist/collection/components/icon/svg/vehicle-car-unselected-color.svg +1 -1
- package/dist/collection/components/icon/svg/vehicle-car-unselected-outline.svg +1 -1
- package/dist/collection/components/icon/svg/wrench-twin-color.svg +1 -1
- package/dist/collection/components/icon/svg/wrench-twin-outline.svg +1 -1
- package/dist/collection/components/icon/svg/wrench-twin-solid.svg +1 -1
- package/dist/collection/components/illustration/illustration.js +1 -1
- package/dist/collection/components/illustration/illustration.js.map +1 -1
- package/dist/collection/components/input/input.css +8 -2
- package/dist/collection/components/input/input.js +16 -2
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/input-group/input-group.js +1 -1
- package/dist/collection/components/input-group/input-group.js.map +1 -1
- package/dist/collection/components/input-group/input-group.stories.js +4 -4
- package/dist/collection/components/item/item.stories.js +9 -9
- package/dist/collection/components/list/list.stories.js +8 -8
- package/dist/collection/components/modal/modal.css +2 -2
- package/dist/collection/components/modal/modal.js +1 -1
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/navbar/navbar.js +1 -1
- package/dist/collection/components/navbar/navbar.js.map +1 -1
- package/dist/collection/components/navbar/navbar.stories.js +84 -63
- package/dist/collection/components/navbar-item/navbar-item.js +1 -1
- package/dist/collection/components/navbar-item/navbar-item.js.map +1 -1
- package/dist/collection/components/patterns/link.stories.js +2 -2
- package/dist/collection/components/phone-number-input/phone-number-input.css +0 -1
- package/dist/collection/components/phone-number-input/phone-number-input.js +40 -4
- package/dist/collection/components/phone-number-input/phone-number-input.js.map +1 -1
- package/dist/collection/components/plate-number/plate-number.css +1 -1
- package/dist/collection/components/plate-number/plate-number.js +1 -1
- package/dist/collection/components/plate-number/plate-number.js.map +1 -1
- package/dist/collection/components/profil-dropdown/profil-dropdown.css +8 -0
- package/dist/collection/components/profil-dropdown/profil-dropdown.js +18 -0
- package/dist/collection/components/profil-dropdown/profil-dropdown.js.map +1 -1
- package/dist/collection/components/profil-dropdown/profil-dropdown.stories.js +4 -4
- package/dist/collection/components/progress/progress.js +1 -1
- package/dist/collection/components/progress/progress.js.map +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.css +5 -0
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js.map +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.stories.js +20 -20
- package/dist/collection/components/progress-tracker/progress-tracker.css +4 -0
- package/dist/collection/components/progress-tracker/progress-tracker.js +1 -1
- package/dist/collection/components/progress-tracker/progress-tracker.js.map +1 -1
- package/dist/collection/components/range/range.css +17 -2
- package/dist/collection/components/range/range.js +41 -2
- package/dist/collection/components/range/range.js.map +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js.map +1 -1
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select-filter/select-filter.css +5 -0
- package/dist/collection/components/select-filter/select-filter.js +43 -9
- package/dist/collection/components/select-filter/select-filter.js.map +1 -1
- package/dist/collection/components/select-filter/select-filter.stories.js +8 -8
- package/dist/collection/components/tabs/tabs.stories.js +5 -5
- package/dist/collection/components/textarea/textarea.css +2 -2
- package/dist/collection/components/toolbar/toolbar.css +0 -2
- package/dist/collection/components/toolbar/toolbar.stories.js +8 -8
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.stories.js +3 -3
- package/dist/esm/{index-891decf5.js → index-7a0158a4.js} +2 -2
- package/dist/esm/index-7a0158a4.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/road-accordion.entry.js +2 -2
- package/dist/esm/road-accordion.entry.js.map +1 -1
- package/dist/esm/road-autocomplete.entry.js +1 -1
- package/dist/esm/road-autocomplete.entry.js.map +1 -1
- package/dist/esm/road-badge_14.entry.js +41 -9
- package/dist/esm/road-badge_14.entry.js.map +1 -1
- package/dist/esm/road-banner.entry.js +2 -2
- package/dist/esm/road-banner.entry.js.map +1 -1
- package/dist/esm/road-button-floating.entry.js +1 -1
- package/dist/esm/road-button-floating.entry.js.map +1 -1
- package/dist/esm/road-card.entry.js +1 -1
- package/dist/esm/road-card.entry.js.map +1 -1
- package/dist/esm/road-carousel.entry.js +31 -119
- package/dist/esm/road-carousel.entry.js.map +1 -1
- package/dist/esm/road-checkbox.entry.js +1 -1
- package/dist/esm/road-chip.entry.js +3 -3
- package/dist/esm/road-chip.entry.js.map +1 -1
- package/dist/esm/road-collapse.entry.js +1 -1
- package/dist/esm/road-collapse.entry.js.map +1 -1
- package/dist/esm/road-dialog.entry.js +3 -3
- package/dist/esm/road-dialog.entry.js.map +1 -1
- package/dist/esm/road-dropdown.entry.js +4 -4
- package/dist/esm/road-dropdown.entry.js.map +1 -1
- package/dist/esm/road-global-navigation.entry.js +1 -1
- package/dist/esm/road-global-navigation.entry.js.map +1 -1
- package/dist/esm/road-illustration.entry.js +1 -1
- package/dist/esm/road-illustration.entry.js.map +1 -1
- package/dist/esm/road-modal.entry.js +3 -3
- package/dist/esm/road-modal.entry.js.map +1 -1
- package/dist/esm/road-navbar-item.entry.js +1 -1
- package/dist/esm/road-navbar-item.entry.js.map +1 -1
- package/dist/esm/road-navbar.entry.js +1 -1
- package/dist/esm/road-navbar.entry.js.map +1 -1
- package/dist/esm/road-phone-number-input.entry.js +41 -5
- package/dist/esm/road-phone-number-input.entry.js.map +1 -1
- package/dist/esm/road-plate-number.entry.js +3 -3
- package/dist/esm/road-plate-number.entry.js.map +1 -1
- package/dist/esm/road-profil-dropdown.entry.js +11 -2
- package/dist/esm/road-profil-dropdown.entry.js.map +1 -1
- package/dist/esm/road-progress-indicator-vertical.entry.js +2 -2
- package/dist/esm/road-progress-indicator-vertical.entry.js.map +1 -1
- package/dist/esm/road-progress-tracker.entry.js +2 -2
- package/dist/esm/road-progress-tracker.entry.js.map +1 -1
- package/dist/esm/road-progress.entry.js +1 -1
- package/dist/esm/road-progress.entry.js.map +1 -1
- package/dist/esm/road-range.entry.js +28 -4
- package/dist/esm/road-range.entry.js.map +1 -1
- package/dist/esm/road-rating.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js.map +1 -1
- package/dist/esm/road-select-filter.entry.js +34 -4
- package/dist/esm/road-select-filter.entry.js.map +1 -1
- package/dist/esm/road-select.entry.js +1 -1
- package/dist/esm/road-select.entry.js.map +1 -1
- package/dist/esm/road-textarea.entry.js +1 -1
- package/dist/esm/road-textarea.entry.js.map +1 -1
- package/dist/esm/road-toast.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js.map +1 -1
- package/dist/esm/roadtrip.js +1 -1
- package/dist/html.html-data.json +3 -3
- package/dist/icons/index.js +30 -30
- package/dist/roadtrip/p-054acf61.entry.js +2 -0
- package/dist/roadtrip/p-054acf61.entry.js.map +1 -0
- package/dist/roadtrip/{p-ea28a425.entry.js → p-08b0be1b.entry.js} +2 -2
- package/dist/roadtrip/p-08b0be1b.entry.js.map +1 -0
- package/dist/roadtrip/{p-1a761fc0.entry.js → p-0fd454dc.entry.js} +2 -2
- package/dist/roadtrip/p-0fd454dc.entry.js.map +1 -0
- package/dist/roadtrip/{p-60e25858.entry.js → p-14ecc91e.entry.js} +2 -2
- package/dist/roadtrip/{p-60e25858.entry.js.map → p-14ecc91e.entry.js.map} +1 -1
- package/dist/roadtrip/{p-82919e58.entry.js → p-16c934bc.entry.js} +2 -2
- package/dist/roadtrip/p-17ae87b0.entry.js +2 -0
- package/dist/roadtrip/p-17ae87b0.entry.js.map +1 -0
- package/dist/roadtrip/{p-6e3e0b40.entry.js → p-18967429.entry.js} +2 -2
- package/dist/roadtrip/{p-6e3e0b40.entry.js.map → p-18967429.entry.js.map} +1 -1
- package/dist/roadtrip/{p-a73ef7de.entry.js → p-233eb25c.entry.js} +2 -2
- package/dist/roadtrip/p-233eb25c.entry.js.map +1 -0
- package/dist/roadtrip/p-27d2770a.entry.js +2 -0
- package/dist/roadtrip/p-27d2770a.entry.js.map +1 -0
- package/dist/roadtrip/{p-4f47f4f7.entry.js → p-31cf9b61.entry.js} +2 -2
- package/dist/roadtrip/p-31cf9b61.entry.js.map +1 -0
- package/dist/roadtrip/{p-dcb280e3.entry.js → p-3bce3bdc.entry.js} +2 -2
- package/dist/roadtrip/p-3bce3bdc.entry.js.map +1 -0
- package/dist/roadtrip/p-4a2f2612.entry.js +2 -0
- package/dist/roadtrip/p-4a2f2612.entry.js.map +1 -0
- package/dist/roadtrip/p-5203acea.entry.js +2 -0
- package/dist/roadtrip/p-5203acea.entry.js.map +1 -0
- package/dist/roadtrip/p-6ad5091d.entry.js +2 -0
- package/dist/roadtrip/p-6ad5091d.entry.js.map +1 -0
- package/dist/roadtrip/{p-2c132382.entry.js → p-72b3b34a.entry.js} +2 -2
- package/dist/roadtrip/p-72b3b34a.entry.js.map +1 -0
- package/dist/roadtrip/p-7a14e5b7.entry.js +2 -0
- package/dist/roadtrip/p-7a14e5b7.entry.js.map +1 -0
- package/dist/roadtrip/{p-c3c92152.entry.js → p-7f1d9286.entry.js} +2 -2
- package/dist/roadtrip/p-7f1d9286.entry.js.map +1 -0
- package/dist/roadtrip/p-9a929988.entry.js +2 -0
- package/dist/roadtrip/p-9a929988.entry.js.map +1 -0
- package/dist/roadtrip/{p-336aa5f6.entry.js → p-9ff79904.entry.js} +2 -2
- package/dist/roadtrip/{p-336aa5f6.entry.js.map → p-9ff79904.entry.js.map} +1 -1
- package/dist/roadtrip/p-a5eee655.entry.js +2 -0
- package/dist/roadtrip/{p-40daa53b.entry.js.map → p-a5eee655.entry.js.map} +1 -1
- package/dist/roadtrip/{p-73fe2357.js → p-ac7a8bca.js} +2 -2
- package/dist/roadtrip/p-ac7a8bca.js.map +1 -0
- package/dist/roadtrip/{p-6177bb46.entry.js → p-b510e552.entry.js} +2 -2
- package/dist/roadtrip/{p-6177bb46.entry.js.map → p-b510e552.entry.js.map} +1 -1
- package/dist/roadtrip/{p-46cccafc.entry.js → p-c096723c.entry.js} +2 -2
- package/dist/roadtrip/{p-46cccafc.entry.js.map → p-c096723c.entry.js.map} +1 -1
- package/dist/roadtrip/p-c7866ae4.entry.js +2 -0
- package/dist/roadtrip/p-c7866ae4.entry.js.map +1 -0
- package/dist/roadtrip/p-cdefa79c.entry.js +2 -0
- package/dist/roadtrip/p-cdefa79c.entry.js.map +1 -0
- package/dist/roadtrip/{p-cbc00bfb.entry.js → p-cfc0a3a7.entry.js} +2 -2
- package/dist/roadtrip/p-dcbaee2f.entry.js +2 -0
- package/dist/roadtrip/p-dcbaee2f.entry.js.map +1 -0
- package/dist/roadtrip/{p-7048f786.entry.js → p-dcbb0d20.entry.js} +2 -2
- package/dist/roadtrip/p-dcbb0d20.entry.js.map +1 -0
- package/dist/roadtrip/{p-414a2791.entry.js → p-e8c9c816.entry.js} +2 -2
- package/dist/roadtrip/{p-f5cce766.entry.js → p-ebd19369.entry.js} +2 -2
- package/dist/roadtrip/{p-f5cce766.entry.js.map → p-ebd19369.entry.js.map} +1 -1
- package/dist/roadtrip/p-f7b4f1fa.entry.js +2 -0
- package/dist/roadtrip/p-f7b4f1fa.entry.js.map +1 -0
- package/dist/roadtrip/p-f90af0e1.entry.js +2 -0
- package/dist/roadtrip/p-f90af0e1.entry.js.map +1 -0
- package/dist/roadtrip/roadtrip.css +1 -1
- package/dist/roadtrip/roadtrip.esm.js +1 -1
- package/dist/roadtrip/roadtrip.esm.js.map +1 -1
- package/dist/roadtrip/svg/fuel-air-supply-color.svg +1 -1
- package/dist/roadtrip/svg/fuel-air-supply-outline.svg +1 -1
- package/dist/roadtrip/svg/funding-best-price-color.svg +1 -1
- package/dist/roadtrip/svg/funding-best-price-outline.svg +1 -1
- package/dist/roadtrip/svg/helmet-cross-color.svg +1 -1
- package/dist/roadtrip/svg/helmet-cross-outline.svg +1 -1
- package/dist/roadtrip/svg/ice-color.svg +1 -1
- package/dist/roadtrip/svg/ice-outline.svg +1 -1
- package/dist/roadtrip/svg/ice-solid-color.svg +1 -1
- package/dist/roadtrip/svg/ice-solid.svg +1 -1
- package/dist/roadtrip/svg/light-beam-signal-color.svg +1 -1
- package/dist/roadtrip/svg/light-beam-signal-outline.svg +1 -1
- package/dist/roadtrip/svg/social-facebook-badge.svg +1 -1
- package/dist/roadtrip/svg/social-google-badge.svg +1 -1
- package/dist/roadtrip/svg/social-instagram-badge.svg +1 -1
- package/dist/roadtrip/svg/social-instagramWithinCircle.svg +1 -1
- package/dist/roadtrip/svg/social-linkedin-badge.svg +1 -1
- package/dist/roadtrip/svg/social-paypal-badge.svg +1 -1
- package/dist/roadtrip/svg/social-tiktok-badge.svg +1 -1
- package/dist/roadtrip/svg/social-twitter-badge.svg +1 -1
- package/dist/roadtrip/svg/social-whatsapp-badge.svg +1 -1
- package/dist/roadtrip/svg/social-youtube-badge.svg +1 -1
- package/dist/roadtrip/svg/tire-ice-color.svg +1 -1
- package/dist/roadtrip/svg/tire-ice-outline.svg +1 -1
- package/dist/roadtrip/svg/tire-ice-solid.svg +1 -1
- package/dist/roadtrip/svg/vehicle-car-unselected-color.svg +1 -1
- package/dist/roadtrip/svg/vehicle-car-unselected-outline.svg +1 -1
- package/dist/roadtrip/svg/wrench-twin-color.svg +1 -1
- package/dist/roadtrip/svg/wrench-twin-outline.svg +1 -1
- package/dist/roadtrip/svg/wrench-twin-solid.svg +1 -1
- package/dist/types/components/carousel/carousel.d.ts +1 -131
- package/dist/types/components/counter/counter.d.ts +1 -0
- package/dist/types/components/phone-number-input/phone-number-input.d.ts +1 -0
- package/dist/types/components/profil-dropdown/profil-dropdown.d.ts +2 -0
- package/dist/types/components/range/range.d.ts +3 -0
- package/dist/types/components/select-filter/select-filter.d.ts +16 -4
- package/dist/types/components.d.ts +4 -128
- package/hydrate/index.js +217 -176
- package/icons/index.js +30 -30
- package/package.json +1 -1
- package/dist/esm/index-891decf5.js.map +0 -1
- package/dist/roadtrip/p-1a761fc0.entry.js.map +0 -1
- package/dist/roadtrip/p-2b5974fc.entry.js +0 -2
- package/dist/roadtrip/p-2b5974fc.entry.js.map +0 -1
- package/dist/roadtrip/p-2c132382.entry.js.map +0 -1
- package/dist/roadtrip/p-2c8a6854.entry.js +0 -2
- package/dist/roadtrip/p-2c8a6854.entry.js.map +0 -1
- package/dist/roadtrip/p-2e25c08d.entry.js +0 -2
- package/dist/roadtrip/p-2e25c08d.entry.js.map +0 -1
- package/dist/roadtrip/p-33002e9d.entry.js +0 -2
- package/dist/roadtrip/p-33002e9d.entry.js.map +0 -1
- package/dist/roadtrip/p-372fcb4d.entry.js +0 -2
- package/dist/roadtrip/p-372fcb4d.entry.js.map +0 -1
- package/dist/roadtrip/p-40daa53b.entry.js +0 -2
- package/dist/roadtrip/p-4f47f4f7.entry.js.map +0 -1
- package/dist/roadtrip/p-5053b01a.entry.js +0 -2
- package/dist/roadtrip/p-5053b01a.entry.js.map +0 -1
- package/dist/roadtrip/p-7048f786.entry.js.map +0 -1
- package/dist/roadtrip/p-73fe2357.js.map +0 -1
- package/dist/roadtrip/p-9bef58e1.entry.js +0 -2
- package/dist/roadtrip/p-9bef58e1.entry.js.map +0 -1
- package/dist/roadtrip/p-a44a569a.entry.js +0 -2
- package/dist/roadtrip/p-a44a569a.entry.js.map +0 -1
- package/dist/roadtrip/p-a73ef7de.entry.js.map +0 -1
- package/dist/roadtrip/p-acbc0a14.entry.js +0 -2
- package/dist/roadtrip/p-acbc0a14.entry.js.map +0 -1
- package/dist/roadtrip/p-b2e7bfcb.entry.js +0 -2
- package/dist/roadtrip/p-b2e7bfcb.entry.js.map +0 -1
- package/dist/roadtrip/p-c3c92152.entry.js.map +0 -1
- package/dist/roadtrip/p-dcb280e3.entry.js.map +0 -1
- package/dist/roadtrip/p-e2149bdf.entry.js +0 -2
- package/dist/roadtrip/p-e2149bdf.entry.js.map +0 -1
- package/dist/roadtrip/p-ea28a425.entry.js.map +0 -1
- package/dist/roadtrip/p-ee7aaee5.entry.js +0 -2
- package/dist/roadtrip/p-ee7aaee5.entry.js.map +0 -1
- package/dist/roadtrip/p-faba450c.entry.js +0 -2
- package/dist/roadtrip/p-faba450c.entry.js.map +0 -1
- /package/dist/roadtrip/{p-82919e58.entry.js.map → p-16c934bc.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-cbc00bfb.entry.js.map → p-cfc0a3a7.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-414a2791.entry.js.map → p-e8c9c816.entry.js.map} +0 -0
|
@@ -6,7 +6,7 @@ const index = require('./index-12592729.js');
|
|
|
6
6
|
const index$1 = require('./index-fb57f684.js');
|
|
7
7
|
require('./polyfill-b1fff766.js');
|
|
8
8
|
|
|
9
|
-
const chipCss = ":host{box-sizing:border-box;display:inline-flex;align-items:center;height:1.5rem;padding:0.25rem 0.5rem;margin-bottom:0.5rem;font-size:var(--road-font-size-14);cursor:pointer;border:0;border-radius:1.625rem;outline:0;transition:background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.chip-description{display:inline-flex;align-items:center;padding:0 0.5rem}:host(.chip-outline){border-style:solid;border-width:1px}::slotted(road-icon){width:1.25rem;height:1.25rem;margin-right:0.5rem;margin-left:-0.5rem}.chip-close{width:1rem;height:1rem;margin-right:-0.25rem;color:var(--road-surface);background:var(--road-on-surface-weak);border-radius:50%;transition:background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}:host(.chip-lg){height:2.5rem;padding:0 0.75rem;font-size:var(--road-font-size-16)}:host(.chip-lg) ::slotted(road-icon){width:1.5rem;height:1.5rem;margin-right:0.75rem;margin-left:-0.75rem}:host(.chip-lg) .chip-description{padding:0 0.75rem}:host(.chip-lg) .chip-close{width:1.5rem;height:1.5rem}:host(.chip-default){color:var(--road-on-surface);background:var(--road-grey-200)}:host(.chip-outline.chip-default){background:var(--road-surface);border-color:var(--road-outline)}:host(.chip-secondary){color:var(--road-
|
|
9
|
+
const chipCss = ":host{box-sizing:border-box;display:inline-flex;align-items:center;height:1.5rem;padding:0.25rem 0.5rem;margin-bottom:0.5rem;font-size:var(--road-font-size-14);cursor:pointer;border:0;border-radius:1.625rem;outline:0;transition:background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.chip-description{display:inline-flex;align-items:center;padding:0 0.5rem}:host(.chip-outline){border-style:solid;border-width:1px}::slotted(road-icon){width:1.25rem;height:1.25rem;margin-right:0.5rem;margin-left:-0.5rem}.chip-close{width:1rem;height:1rem;margin-right:-0.25rem;color:var(--road-surface);background:var(--road-on-surface-weak);border-radius:50%;transition:background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}:host(.chip-lg){height:2.5rem;padding:0 0.75rem;font-size:var(--road-font-size-16)}:host(.chip-lg) ::slotted(road-icon){width:1.5rem;height:1.5rem;margin-right:0.75rem;margin-left:-0.75rem}:host(.chip-lg) .chip-description{padding:0 0.75rem}:host(.chip-lg) .chip-close{width:1.5rem;height:1.5rem}:host(.chip-default){color:var(--road-on-surface);background:var(--road-grey-200)}:host(.chip-outline.chip-default){background:var(--road-surface);border-color:var(--road-outline)}:host(.chip-secondary){color:var(--road-on-button-primary);background:var(--road-button-primary);border-color:transparent}:host(.chip-secondary) .chip-close{color:var(--road-primary);background:var(--road-surface)}@media (any-hover: hover){:host(.chip-outline:hover){border-color:var(--road-outline-variant)}:host(.chip-secondary:hover){background:var(--road-button-primary-variant)}:host(.chip-secondary:hover) .chip-close{color:var(--road-primary)}}:host(.chip-outline:focus-visible){border-color:var(--road-outline-variant)}:host(.chip-secondary.focus-visible){background:var(--road-button-primary-variant)}";
|
|
10
10
|
|
|
11
11
|
const Chip = class {
|
|
12
12
|
constructor(hostRef) {
|
|
@@ -18,7 +18,7 @@ const Chip = class {
|
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
20
|
const outlineClass = this.outline ? 'chip-outline' : '';
|
|
21
|
-
return (index.h(index.Host, { class: `${outlineClass} chip-${this.color} chip-${this.size}
|
|
21
|
+
return (index.h(index.Host, { class: `${outlineClass} chip-${this.color} chip-${this.size}`, tabindex: "0" }, index.h("div", { class: "chip-description" }, index.h("slot", null)), this.hasCloseIcon && index.h("road-icon", { class: "chip-close", icon: index$1.navigationClose })));
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
Chip.style = chipCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-chip.entry.cjs.js","mappings":";;;;;;;;AAAA,MAAM,OAAO,GAAG,
|
|
1
|
+
{"file":"road-chip.entry.cjs.js","mappings":";;;;;;;;AAAA,MAAM,OAAO,GAAG,2yDAA2yD;;MCa9yD,IAAI;;;iBAI2B,SAAS;mBAKxB,KAAK;gBAKJ,IAAI;wBAKA,KAAK;;EAErC,MAAM;IACJ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc,GAAG,EAAE,CAAC;IAExD,QACEA,QAACC,UAAI,IACH,KAAK,EAAE,GAAG,YAAY,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAC,GAAG,IAE3ED,iBAAK,KAAK,EAAC,kBAAkB,IAC3BA,qBAAO,CACH,EACL,IAAI,CAAC,YAAY,IAAIA,uBAAW,KAAK,EAAC,YAAY,EAAC,IAAI,EAAEE,uBAAe,GAAc,CAClF,EACP;GACH;;;;;;","names":["h","Host","navigationClose"],"sources":["src/components/chip/chip.css?tag=road-chip&encapsulation=shadow","src/components/chip/chip.tsx"],"sourcesContent":["/*\n * Chip\n *\n * Index\n * - Outline\n * - Icon\n * - Close\n * - Size\n * - Color\n */\n\n:host {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n height: 1.5rem;\n padding: 0.25rem 0.5rem;\n margin-bottom: 0.5rem;\n font-size: var(--road-font-size-14);\n cursor: pointer;\n border: 0;\n border-radius: 1.625rem;\n outline: 0;\n transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n}\n\n.chip-description {\n display: inline-flex;\n align-items: center;\n padding: 0 0.5rem;\n}\n\n/* OUTLINE\n -------------------- */\n\n:host(.chip-outline) {\n border-style: solid;\n border-width: 1px;\n}\n\n/* ICON\n -------------------- */\n\n::slotted(road-icon) {\n width: 1.25rem;\n height: 1.25rem;\n margin-right: 0.5rem;\n margin-left: -0.5rem;\n}\n\n/* CLOSE\n -------------------- */\n\n.chip-close {\n width: 1rem;\n height: 1rem;\n margin-right: -0.25rem;\n color: var(--road-surface);\n background: var(--road-on-surface-weak);\n border-radius: 50%;\n transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n}\n\n/* SIZE\n -------------------- */\n\n:host(.chip-lg) {\n height: 2.5rem;\n padding: 0 0.75rem;\n font-size: var(--road-font-size-16);\n}\n\n:host(.chip-lg) ::slotted(road-icon) {\n width: 1.5rem;\n height: 1.5rem;\n margin-right: 0.75rem;\n margin-left: -0.75rem;\n}\n\n:host(.chip-lg) .chip-description {\n padding: 0 0.75rem;\n}\n\n:host(.chip-lg) .chip-close {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n/* COLOR\n -------------------- */\n\n:host(.chip-default) {\n color: var(--road-on-surface);\n background: var(--road-grey-200);\n}\n\n:host(.chip-outline.chip-default) {\n background: var(--road-surface);\n border-color: var(--road-outline);\n}\n\n:host(.chip-secondary) {\n color: var(--road-on-button-primary);\n background: var(--road-button-primary);\n border-color: transparent;\n}\n\n:host(.chip-secondary) .chip-close {\n color: var(--road-primary);\n background: var(--road-surface);\n}\n\n/**\n * Hover state\n */\n\n@media (any-hover: hover) {\n\n :host(.chip-outline:hover) {\n border-color: var(--road-outline-variant);\n }\n\n :host(.chip-secondary:hover) {\n background: var(--road-button-primary-variant);\n }\n\n :host(.chip-secondary:hover) .chip-close {\n color: var(--road-primary);\n }\n}\n\n/**\n * Focus state\n */\n\n:host(.chip-outline:focus-visible) {\n border-color: var(--road-outline-variant);\n}\n\n:host(.chip-secondary.focus-visible) {\n background: var(--road-button-primary-variant);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { navigationClose } from '../../../icons';\nimport './../../utils/polyfill';\n\n/**\n * @slot - Content of the chip.\n */\n\n@Component({\n tag: 'road-chip',\n styleUrl: 'chip.css',\n shadow: true,\n})\nexport class Chip {\n /**\n * The color to use from your application's color palette.\n */\n @Prop() color?: 'default' | 'secondary' = 'default';\n\n /**\n * Display an outline style chip.\n */\n @Prop() outline: boolean = false;\n\n /**\n * The chip size.\n */\n @Prop() size: 'md' | 'lg' = 'md';\n\n /**\n * Display a close icon\n */\n @Prop() hasCloseIcon: boolean = false;\n\n render() {\n const outlineClass = this.outline ? 'chip-outline' : '';\n\n return (\n <Host\n class={`${outlineClass} chip-${this.color} chip-${this.size}`} tabindex=\"0\"\n >\n <div class=\"chip-description\">\n <slot/>\n </div>\n {this.hasCloseIcon && <road-icon class=\"chip-close\" icon={navigationClose}></road-icon>}\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-12592729.js');
|
|
6
6
|
|
|
7
|
-
const collapseCss = ":host{--btn-margin-bottom:1rem;--btn-padding-start:1rem;--btn-padding-end:1rem;--btn-font-size:1rem;--max-height:500px;display:block}.collapsed-content{max-height:0;overflow:hidden;transition:max-height 0.4s ease-in-out}.collapse-open{max-height:var(--max-height)}.collapse-btn{--margin-bottom:var(--btn-margin-bottom);--border-radius:var(--btn-border-radius);--padding-start:var(--btn-padding-start);--padding-end:var(--btn-padding-end);--font-size:var(--btn-font-size)}.collapse-btn-centered{display:flex;justify-content:center}";
|
|
7
|
+
const collapseCss = ":host{--btn-margin-bottom:1rem;--btn-padding-start:1rem;--btn-padding-end:1rem;--btn-font-size:1rem;--max-height:500px;display:block}.collapsed-content{max-height:0;overflow:hidden;transition:max-height 0.4s ease-in-out}.collapse-open{max-height:var(--max-height)}.collapse-btn{--margin-bottom:var(--btn-margin-bottom);--border-radius:var(--btn-border-radius);--padding-start:var(--btn-padding-start);--padding-end:var(--btn-padding-end);--font-size:var(--btn-font-size)}.collapse-btn:focus{outline:1px solid var(--road-link-primary)}.collapse-btn-centered{display:flex;justify-content:center}";
|
|
8
8
|
|
|
9
9
|
const Collapse = class {
|
|
10
10
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-collapse.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,
|
|
1
|
+
{"file":"road-collapse.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,mlBAAmlB;;MCY1lB,QAAQ;;;;;;IAyBX,YAAO,GAAG;MAChB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC;kBAtB0C,KAAK;oBAKrB,WAAW;oBAKX,WAAW;oBAKX,KAAK;;EASjC,MAAM;IACJ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAE,QAAQ,CAAC;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,uBAAuB,GAAG,EAAE,CAAC;IAEjE,QACEA,QAACC,UAAI,QACHD,qBAAO,EACPA,iBAAK,KAAK,EAAE,qBAAqB,WAAW,EAAE,IAC5CA,kBAAM,IAAI,EAAC,mBAAmB,GAAE,CAC5B,EACNA,iBAAK,KAAK,EAAE,wBAAwB,WAAW,EAAE,IAC/CA,yBAAa,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC,uBAAuB,IAAE,UAAU,CAAe,CACxF,CACD,EACP;GACH;;;;;;","names":["h","Host"],"sources":["src/components/collapse/collapse.css?tag=road-collapse&encapsulation=shadow","src/components/collapse/collapse.tsx"],"sourcesContent":["/*\n * Collapse\n *\n * Index\n * - Collapse\n * - Content\n * - Button\n */\n\n/**\n * @prop --btn-padding-start: Left padding of the button\n * @prop --btn-padding-end: Right padding of the button\n * @prop --btn-margin-bottom: Bottom margin of the button\n * @prop --btn-font-size: Font size of the text button\n * @prop --max-height: maximum height of the collapse content\n */\n\n/* COLLAPSE\n -------------------- */\n\n:host {\n --btn-margin-bottom: 1rem;\n --btn-padding-start: 1rem;\n --btn-padding-end: 1rem;\n --btn-font-size: 1rem;\n --max-height: 500px;\n\n display: block;\n}\n\n/* CONTENT\n -------------------- */\n\n.collapsed-content {\n max-height: 0;\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n}\n\n/**\n * Open state\n */\n\n.collapse-open {\n max-height: var(--max-height);\n}\n\n/* BUTTON\n -------------------- */\n\n.collapse-btn {\n --margin-bottom: var(--btn-margin-bottom);\n --border-radius: var(--btn-border-radius);\n --padding-start: var(--btn-padding-start);\n --padding-end: var(--btn-padding-end);\n --font-size: var(--btn-font-size);\n}\n\n.collapse-btn:focus {\n outline: 1px solid var(--road-link-primary);\n}\n\n.collapse-btn-centered {\n display: flex;\n justify-content: center;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * @slot - Content visible when collapsed.\n * @slot collapsed-content - content not visible when collapsed.\n */\n\n@Component({\n tag: 'road-collapse',\n styleUrl: 'collapse.css',\n shadow: true,\n})\nexport class Collapse {\n\n /**\n * Set to `true` to display the collapsed part and to `false` to hide it.\n */\n @Prop({ mutable: true }) isOpen : boolean = false;\n\n /**\n * Text displayed in the button when the content is collapsed\n */\n @Prop() showMore : string = 'show more';\n\n /**\n * Text displayed in the button when the content is not collapsed\n */\n @Prop() showLess : string = 'show less';\n\n /**\n * if `true` the button will be centered\n */\n @Prop() centered: boolean = false;\n\n /**\n * Toggle the display when clicking header\n */\n private onClick = () => {\n this.isOpen = !this.isOpen;\n };\n\n render() {\n const isOpenClass = this.isOpen ? 'collapse-open' : '';\n const buttonText = this.isOpen ? this.showLess : this .showMore;\n const centerClass = this.centered ? 'collapse-btn-centered' : '';\n\n return (\n <Host>\n <slot/>\n <div class={`collapsed-content ${isOpenClass}`}>\n <slot name=\"collapsed-content\"/>\n </div>\n <div class={`collapse-btn-wrapper ${centerClass}`}>\n <road-button onClick={this.onClick} class=\"collapse-btn btn-link\">{buttonText}</road-button>\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
|
|
@@ -83,11 +83,11 @@ const Dialog = class {
|
|
|
83
83
|
break;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
return (index.h(index.Host, { class: `dialog ${modalIsOpenClass} ${modalhasClose}`, role: "alertdialog", "aria-modal": "true", tabindex: "-1", "aria-
|
|
86
|
+
return (index.h(index.Host, { class: `dialog ${modalIsOpenClass} ${modalhasClose}`, role: "alertdialog", "aria-modal": "true", tabindex: "-1", "aria-label": "dialogLabel" }, index.h("div", { class: "dialog-overlay", onClick: this.hasCloseIcon === true ? this.onClick : undefined, tabindex: "-1" }), index.h("div", { class: "dialog-modal", role: "document", tabindex: "0" }, index.h("div", { class: "dialog-content" }, index.h("header", { class: "dialog-header" }, this.hasCloseIcon
|
|
87
87
|
? index.h("button", { type: "button", class: "dialog-close", onClick: this.onClick, "aria-label": "Close" }, index.h("road-icon", { icon: index$1.navigationClose, "aria-hidden": "true" }))
|
|
88
88
|
: ''), index.h("div", { class: "dialog-body" }, this.color !== undefined
|
|
89
89
|
? index.h("road-icon", { class: "dialog-icon", part: "dialog-icon", color: this.color, icon: icon, "aria-hidden": "true" })
|
|
90
|
-
: '', index.h("h2", { class: "dialog-title"
|
|
90
|
+
: '', index.h("h2", { class: "dialog-title" }, this.label), index.h("p", { class: "dialog-description", id: "dialogDesc" }, this.description)), index.h("footer", { class: "dialog-footer" }, index.h("slot", null))))));
|
|
91
91
|
}
|
|
92
92
|
get el() { return index.getElement(this); }
|
|
93
93
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-dialog.entry.cjs.js","mappings":"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","names":["alertInfoOutline","alertSuccessOutline","alertWarningOutline","alertDangerOutline","h","Host","navigationClose"],"sources":["src/components/dialog/dialog.css?tag=road-dialog&encapsulation=shadow","src/components/dialog/dialog.tsx"],"sourcesContent":["/*\n * Dialog\n *\n * Index\n * - Overlay\n * - Dialog\n * - Content\n * - Header\n * - Close\n * - Body\n * - Title\n * - Description\n * - Footer\n */\n\n/**\n * @prop --z-index: The z-index of the Dialog.\n */\n\n:host {\n --z-index: 3;\n\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--z-index);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-family: var(--road-font, sans-serif);\n line-height: 1.5;\n color: var(--road-on-surface);\n visibility: hidden !important;\n opacity: 0;\n transition: opacity 0.15s linear, visibility 0.15s;\n}\n\n/* OVERLAY\n -------------------- */\n\n.dialog-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n touch-action: none;\n background: var(--road-overlay);\n}\n\n:host(.dialog-has-close) .dialog-overlay {\n cursor: pointer;\n}\n\n/* DIALOG\n -------------------- */\n\n.dialog-modal {\n position: relative;\n width: auto;\n margin: 1rem;\n pointer-events: none;\n transition: transform 0.3s ease-out;\n transform: translateY(50px);\n}\n\n/**\n * Open state\n */\n\n:host(.dialog-open) {\n visibility: visible !important;\n opacity: 1;\n}\n\n:host(.dialog-open) .dialog-modal {\n transform: none;\n}\n\n/* CONTENT\n -------------------- */\n\n.dialog-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 0 1.5rem;\n pointer-events: auto;\n background: var(--road-surface);\n background-clip: padding-box;\n border-radius: 0.25rem;\n outline: 0;\n box-shadow: var(--road-elevation-highest);\n}\n\n@media (min-width: 576px) {\n\n .dialog-content {\n max-width: 454px;\n }\n}\n\n/* HEADER\n -------------------- */\n\n.dialog-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: 100%;\n max-height: 2.75rem;\n margin-bottom: 2rem;\n}\n\n/* CLOSE\n -------------------- */\n\n.dialog-close {\n display: flex;\n align-items: center;\n align-self: flex-start;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n appearance: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.dialog-icon {\n display: inline-block;\n width: 3rem;\n height: 3rem;\n font-size: var(--road-font-size-48);\n}\n\n/* BODY\n -------------------- */\n\n.dialog-body {\n padding: 0 1.5rem;\n text-align: center;\n}\n\n@media (min-width: 768px) {\n\n .dialog-body {\n padding: 0 3rem;\n }\n}\n\n/* TITLE\n -------------------- */\n\n.dialog-title {\n padding: 0;\n margin: 0 0 1rem;\n font-size: var(--road-body-medium);\n font-weight: 700;\n line-height: 1.2;\n}\n\n/* DESCRIPTION\n -------------------- */\n\n.dialog-description {\n margin: 0 0 0.5rem;\n overflow: auto;\n font-size: var(--road-body-medium);\n}\n\n/* FOOTER\n -------------------- */\n\n.dialog-footer {\n display: flex;\n justify-content: center;\n padding: 0 1.5rem;\n}\n\n.dialog-footer ::slotted(road-button) {\n margin-top: 1rem;\n}\n\n/**\n * Footer buttons\n */\n\n.dialog-footer .btn {\n min-width: 130px;\n max-width: calc(50% - 0.5rem);\n}\n","import { Component, Element, Event, EventEmitter, Listen, Method, Prop, h, Host } from '@stencil/core';\nimport { FeedbackColors } from '../../interface';\nimport { navigationClose, alertDangerOutline, alertInfoOutline, alertSuccessOutline, alertWarningOutline } from '../../../icons';\n\n/**\n * @slot - Content of the footer dialog if it's an action dialog add action buttons here.\n *\n * @part dialog-icon - main icon of the dialog\n */\n\n@Component({\n tag: 'road-dialog',\n styleUrl: 'dialog.css',\n shadow: true,\n})\nexport class Dialog {\n\n /**\n * Current reference of the dialog\n */\n @Element() el!: HTMLRoadDialogElement;\n\n /**\n * Set isOpen property to true to open the dialog\n */\n @Prop({ mutable: true }) isOpen: boolean = false;\n\n /**\n * Show / hide the close icon\n */\n @Prop() hasCloseIcon: boolean = true;\n\n /**\n * Set the color of information dialog. e.g. info, success, warning, danger\n */\n @Prop() color?: FeedbackColors;\n\n /**\n * override default icon\n */\n @Prop() icon?: string;\n\n /**\n * Text to the top\n */\n @Prop() label?: string;\n\n /**\n * Content description of the dialog\n */\n @Prop() description?: string;\n\n /**\n * Indicate when closing the dialog\n */\n @Event({ eventName: 'close' }) onClose!: EventEmitter<void>;\n\n /**\n * Open the dialog\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * Close the dialog\n */\n @Method()\n async close() {\n this.isOpen = false;\n this.el.addEventListener('transitionend', () => {\n this.onClose.emit();\n }, { once: true});\n }\n\n /**\n * Close the dialog when clicking on the cross or layer\n */\n private onClick = (ev: UIEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n\n this.close();\n };\n\n /**\n * Close the dialog when press Escape key\n */\n @Listen('keyup', { target: 'document' })\n onEscape(event: KeyboardEvent) {\n if ((event.key === 'Escape' || event.key === \"Esc\") && this.isOpen && this.hasCloseIcon) {\n this.close();\n }\n }\n\n /**\n * Call close function when clicking an element with data-dismiss=\"modal\" attribute\n */\n componentDidLoad() {\n this.el.querySelectorAll('[data-dismiss=\"modal\"]').forEach(item => {\n item.addEventListener('click', () => this.close());\n });\n }\n\n render() {\n const modalIsOpenClass = this.isOpen ? 'dialog-open' : '';\n const modalhasClose = this.hasCloseIcon ? 'dialog-has-close' : '';\n\n let icon;\n\n if(this.icon) {\n icon = this.icon;\n } else {\n switch(this.color) {\n case 'info':\n icon = alertInfoOutline;\n break;\n case 'success':\n icon = alertSuccessOutline;\n break;\n case 'warning':\n icon = alertWarningOutline;\n break;\n case 'danger':\n icon = alertDangerOutline;\n break;\n default:\n icon = alertInfoOutline;\n break;\n }\n }\n\n return (\n <Host class={`dialog ${modalIsOpenClass} ${modalhasClose}`} role=\"alertdialog\" aria-modal=\"true\" tabindex=\"-1\" aria-labelledby=\"dialogLabel\" aria-describedby=\"dialogDesc\">\n <div class=\"dialog-overlay\" onClick={this.hasCloseIcon === true ? this.onClick : undefined} tabindex=\"-1\"></div>\n <div class=\"dialog-modal\" role=\"document\" tabindex=\"0\">\n <div class=\"dialog-content\">\n <header class=\"dialog-header\">\n {this.hasCloseIcon\n ? <button type=\"button\" class=\"dialog-close\" onClick={this.onClick} aria-label=\"Close\"><road-icon icon={navigationClose} aria-hidden=\"true\"></road-icon></button>\n : ''}\n </header>\n <div class=\"dialog-body\">\n {this.color !== undefined\n ? <road-icon class=\"dialog-icon\" part=\"dialog-icon\" color={this.color} icon={icon} aria-hidden=\"true\"></road-icon>\n : ''}\n <h2 class=\"dialog-title\" id=\"dialogLabel\">{this.label}</h2>\n <p class=\"dialog-description\" id=\"dialogDesc\">{this.description}</p>\n </div>\n <footer class=\"dialog-footer\">\n <slot/>\n </footer>\n </div>\n </div>\n </Host>\n );\n }\n}"],"version":3}
|
|
1
|
+
{"file":"road-dialog.entry.cjs.js","mappings":"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","names":["alertInfoOutline","alertSuccessOutline","alertWarningOutline","alertDangerOutline","h","Host","navigationClose"],"sources":["src/components/dialog/dialog.css?tag=road-dialog&encapsulation=shadow","src/components/dialog/dialog.tsx"],"sourcesContent":["/*\n * Dialog\n *\n * Index\n * - Overlay\n * - Dialog\n * - Content\n * - Header\n * - Close\n * - Body\n * - Title\n * - Description\n * - Footer\n */\n\n/**\n * @prop --z-index: The z-index of the Dialog.\n */\n\n:host {\n --z-index: 3;\n\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--z-index);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-family: var(--road-font, sans-serif);\n line-height: 1.5;\n color: var(--road-on-surface);\n visibility: hidden !important;\n opacity: 0;\n transition: opacity 0.15s linear, visibility 0.15s;\n}\n\n/* OVERLAY\n -------------------- */\n\n.dialog-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n touch-action: none;\n background: var(--road-overlay);\n}\n\n:host(.dialog-has-close) .dialog-overlay {\n cursor: pointer;\n}\n\n/* DIALOG\n -------------------- */\n\n.dialog-modal {\n position: relative;\n width: auto;\n margin: 1rem;\n pointer-events: none;\n transition: transform 0.3s ease-out;\n transform: translateY(50px);\n}\n\n/**\n * Open state\n */\n\n:host(.dialog-open) {\n visibility: visible !important;\n opacity: 1;\n}\n\n:host(.dialog-open) .dialog-modal {\n transform: none;\n}\n\n/* CONTENT\n -------------------- */\n\n.dialog-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 0 1.5rem;\n pointer-events: auto;\n background: var(--road-surface);\n background-clip: padding-box;\n border-radius: 0.25rem;\n outline: 0;\n box-shadow: var(--road-elevation-highest);\n}\n\n@media (min-width: 576px) {\n\n .dialog-content {\n max-width: 454px;\n }\n}\n\n/* HEADER\n -------------------- */\n\n.dialog-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: 100%;\n max-height: 2.75rem;\n margin-bottom: 2rem;\n}\n\n/* CLOSE\n -------------------- */\n\n.dialog-close {\n display: flex;\n align-items: center;\n align-self: flex-start;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n appearance: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.dialog-icon {\n display: inline-block;\n width: 3rem;\n height: 3rem;\n font-size: var(--road-font-size-48);\n}\n\n/* BODY\n -------------------- */\n\n.dialog-body {\n padding: 0 1.5rem;\n text-align: center;\n}\n\n@media (min-width: 768px) {\n\n .dialog-body {\n padding: 0 3rem;\n }\n}\n\n/* TITLE\n -------------------- */\n\n.dialog-title {\n padding: 0;\n margin: 0 0 1rem;\n font-size: var(--road-body-medium);\n font-weight: 700;\n line-height: 1.2;\n}\n\n/* DESCRIPTION\n -------------------- */\n\n.dialog-description {\n margin: 0 0 0.5rem;\n overflow: auto;\n font-size: var(--road-body-medium);\n}\n\n/* FOOTER\n -------------------- */\n\n.dialog-footer {\n display: flex;\n justify-content: center;\n padding: 0 1.5rem;\n}\n\n.dialog-footer ::slotted(road-button) {\n margin-top: 1rem;\n}\n\n/**\n * Footer buttons\n */\n\n.dialog-footer .btn {\n min-width: 130px;\n max-width: calc(50% - 0.5rem);\n}\n","import { Component, Element, Event, EventEmitter, Listen, Method, Prop, h, Host } from '@stencil/core';\nimport { FeedbackColors } from '../../interface';\nimport { navigationClose, alertDangerOutline, alertInfoOutline, alertSuccessOutline, alertWarningOutline } from '../../../icons';\n\n/**\n * @slot - Content of the footer dialog if it's an action dialog add action buttons here.\n *\n * @part dialog-icon - main icon of the dialog\n */\n\n@Component({\n tag: 'road-dialog',\n styleUrl: 'dialog.css',\n shadow: true,\n})\nexport class Dialog {\n\n /**\n * Current reference of the dialog\n */\n @Element() el!: HTMLRoadDialogElement;\n\n /**\n * Set isOpen property to true to open the dialog\n */\n @Prop({ mutable: true }) isOpen: boolean = false;\n\n /**\n * Show / hide the close icon\n */\n @Prop() hasCloseIcon: boolean = true;\n\n /**\n * Set the color of information dialog. e.g. info, success, warning, danger\n */\n @Prop() color?: FeedbackColors;\n\n /**\n * override default icon\n */\n @Prop() icon?: string;\n\n /**\n * Text to the top\n */\n @Prop() label?: string;\n\n /**\n * Content description of the dialog\n */\n @Prop() description?: string;\n\n /**\n * Indicate when closing the dialog\n */\n @Event({ eventName: 'close' }) onClose!: EventEmitter<void>;\n\n /**\n * Open the dialog\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * Close the dialog\n */\n @Method()\n async close() {\n this.isOpen = false;\n this.el.addEventListener('transitionend', () => {\n this.onClose.emit();\n }, { once: true});\n }\n\n /**\n * Close the dialog when clicking on the cross or layer\n */\n private onClick = (ev: UIEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n\n this.close();\n };\n\n /**\n * Close the dialog when press Escape key\n */\n @Listen('keyup', { target: 'document' })\n onEscape(event: KeyboardEvent) {\n if ((event.key === 'Escape' || event.key === \"Esc\") && this.isOpen && this.hasCloseIcon) {\n this.close();\n }\n }\n\n /**\n * Call close function when clicking an element with data-dismiss=\"modal\" attribute\n */\n componentDidLoad() {\n this.el.querySelectorAll('[data-dismiss=\"modal\"]').forEach(item => {\n item.addEventListener('click', () => this.close());\n });\n }\n\n render() {\n const modalIsOpenClass = this.isOpen ? 'dialog-open' : '';\n const modalhasClose = this.hasCloseIcon ? 'dialog-has-close' : '';\n\n let icon;\n\n if(this.icon) {\n icon = this.icon;\n } else {\n switch(this.color) {\n case 'info':\n icon = alertInfoOutline;\n break;\n case 'success':\n icon = alertSuccessOutline;\n break;\n case 'warning':\n icon = alertWarningOutline;\n break;\n case 'danger':\n icon = alertDangerOutline;\n break;\n default:\n icon = alertInfoOutline;\n break;\n }\n }\n\n return (\n <Host class={`dialog ${modalIsOpenClass} ${modalhasClose}`} role=\"alertdialog\" aria-modal=\"true\" tabindex=\"-1\" aria-label=\"dialogLabel\">\n <div class=\"dialog-overlay\" onClick={this.hasCloseIcon === true ? this.onClick : undefined} tabindex=\"-1\"></div>\n <div class=\"dialog-modal\" role=\"document\" tabindex=\"0\">\n <div class=\"dialog-content\">\n <header class=\"dialog-header\">\n {this.hasCloseIcon\n ? <button type=\"button\" class=\"dialog-close\" onClick={this.onClick} aria-label=\"Close\"><road-icon icon={navigationClose} aria-hidden=\"true\"></road-icon></button>\n : ''}\n </header>\n <div class=\"dialog-body\">\n {this.color !== undefined\n ? <road-icon class=\"dialog-icon\" part=\"dialog-icon\" color={this.color} icon={icon} aria-hidden=\"true\"></road-icon>\n : ''}\n <h2 class=\"dialog-title\">{this.label}</h2>\n <p class=\"dialog-description\" id=\"dialogDesc\">{this.description}</p>\n </div>\n <footer class=\"dialog-footer\">\n <slot/>\n </footer>\n </div>\n </div>\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-12592729.js');
|
|
6
6
|
|
|
7
|
-
const dropdownCss = ":host{--margin-top:0.5rem;display:block}.dropdown{position:relative;font-family:var(--road-font)}.dropdown summary{display:block;outline:none}.dropdown summary::-webkit-details-marker{display:none}.dropdown-button{position:relative;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;cursor:pointer;border-radius:0.25rem}.dropdown-medium-button{width:2.5rem;height:2.5rem}.
|
|
7
|
+
const dropdownCss = ":host{--margin-top:0.5rem;display:block}.dropdown{position:relative;font-family:var(--road-font)}.dropdown summary{display:block;width:max-content;background-color:var(--road-surface);border-radius:0.25rem;outline:none}.dropdown summary:focus,.dropdown summary.focus-visible,.dropdown summary:focus-within{background:var(--road-surface-inverse)}.dropdown summary::-webkit-details-marker{display:none}.dropdown-button{position:relative;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;cursor:pointer;border-radius:0.25rem}.dropdown-medium-button{width:2.5rem;height:2.5rem}.position-right{display:flex;justify-content:flex-end}.bg-white{background:var(--road-grey-000)}.dropdown-button-icon{width:2.5rem;height:2.5rem}.dropdown-medium-button .dropdown-button-icon{width:1.75rem;height:1.75rem}.dropdown[open] .dropdown-menu{transform:scaleY(1)}.dropdown[open] .dropdown-menu.direction-top{position:absolute;bottom:0;left:0;transform:translate3d(0, -56px, 0);will-change:transform}.dropdown-menu{position:absolute;z-index:1;display:flex;flex-direction:column;width:100%;min-width:16.875rem;padding:0.5rem 0;color:var(--road-on-surface);background:var(--road-surface);border:1px solid;border-color:var(--road-outline-weak);border-radius:0.25rem;box-shadow:var(--road-elevation-low);transition:transform 0.2s ease-in-out;transform:scaleY(0);transform-origin:0 0}.dropdown-left{left:0}.dropdown-right{right:0}.dropdown-item{min-height:40px;padding:0 1rem;font-size:var(--road-body-medium);line-height:1.5;color:var(--road-on-surface);text-align:left;text-decoration:none;cursor:pointer;background:var(--road-surface);border:none;outline:none}.dropdown-item-border{border-color:var(--road-outline-weak);border-bottom:1px solid}.dropdown-item:hover,.dropdown-item.focus-visible{background:var(--road-surface-inverse)}";
|
|
8
8
|
|
|
9
9
|
const Dropdown = class {
|
|
10
10
|
constructor(hostRef) {
|
|
@@ -27,12 +27,12 @@ const Dropdown = class {
|
|
|
27
27
|
this.isOpen = false;
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
const isLightButtonDropDown = this.isLight ? 'dropdown-button' : 'dropdown-button
|
|
31
|
-
const isMediumButtonDropDown = this.isMedium ? 'dropdown-medium-button dropdown-button' : 'dropdown-button
|
|
30
|
+
const isLightButtonDropDown = this.isLight ? 'dropdown-button' : 'dropdown-button';
|
|
31
|
+
const isMediumButtonDropDown = this.isMedium ? 'dropdown-medium-button dropdown-button' : 'dropdown-button';
|
|
32
32
|
const positionClass = this.position ? `position-${this.position}` : '';
|
|
33
33
|
const dropdownClass = this.position ? `dropdown-${this.position}` : '';
|
|
34
34
|
const directionClass = this.direction ? `direction-${this.direction}` : '';
|
|
35
|
-
return (index.h("details", { class: "dropdown", open: this.isOpen }, index.h("summary", { "aria-expanded": this.isOpen.toString(), tabindex: "0", role: "button", onClick: this.onClick }, index.h("div", { class: `d-flex ${positionClass}` }, index.h("div", { class: `${isLightButtonDropDown} ${isMediumButtonDropDown}` }, index.h("road-icon", { name: "navigation-more", class: "dropdown-button-icon" })))), index.h("div", { class: `dropdown-menu ${directionClass} ${dropdownClass}` }, index.h("slot", { name: "list" }))));
|
|
35
|
+
return (index.h("details", { class: "dropdown", open: this.isOpen }, index.h("summary", { "aria-expanded": this.isOpen.toString(), tabindex: "0", role: "button", onClick: this.onClick, "tab-index": "0" }, index.h("div", { class: `d-flex ${positionClass}` }, index.h("div", { class: `${isLightButtonDropDown} ${isMediumButtonDropDown}` }, index.h("road-icon", { name: "navigation-more", class: "dropdown-button-icon", "aria-hidden": "true" })))), index.h("div", { class: `dropdown-menu ${directionClass} ${dropdownClass}` }, index.h("slot", { name: "list" }))));
|
|
36
36
|
}
|
|
37
37
|
get el() { return index.getElement(this); }
|
|
38
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-dropdown.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,
|
|
1
|
+
{"file":"road-dropdown.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,qzDAAqzD;;MCO5zD,QAAQ;;;IAWX,YAAO,GAAG;MAChB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC;kBARyC,KAAK;mBACrB,KAAK;oBACJ,KAAK;;qBAEuB,QAAQ;;EAOhE,mBAAmB,CAAC,EAAc;;IAEhC,IAAK,EAAE,CAAC,MAAsB,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE;MACnE,OAAO;KACR;;IAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;GACrB;EAED,MAAM;IACJ,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IACnF,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,GAAG,wCAAwC,GAAG,iBAAiB,CAAC;IAC5G,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,YAAY,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;IACvE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,YAAY,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC;IAE3E,QACEA,qBAAS,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IACzCA,sCAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,eAAY,GAAG,IAC7GA,iBAAK,KAAK,EAAE,UAAU,aAAa,EAAE,IACnCA,iBAAK,KAAK,EAAE,GAAG,qBAAqB,IAAI,sBAAsB,EAAE,IAC9DA,uBAAW,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,sBAAsB,iBAAa,MAAM,GAAa,CAC1F,CACF,CACE,EACVA,iBAAK,KAAK,EAAE,iBAAiB,cAAc,IAAI,aAAa,EAAE,IAC5DA,kBAAM,IAAI,EAAC,MAAM,GAAG,CAChB,CACE,EACV;GACH;;;;;;;","names":["h"],"sources":["src/components/dropdown/dropdown.css?tag=road-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.tsx"],"sourcesContent":["/*\n * Dropdown\n *\n * Index\n * - Dropdown\n * - Dropdown menu\n */\n\n/**\n * @prop --margin-top: Top margin of the menu\n */\n\n/* DROPDOWN\n -------------------- */\n\n:host {\n --margin-top: 0.5rem;\n display: block;\n}\n\n.dropdown {\n position: relative;\n font-family: var(--road-font);\n}\n\n.dropdown summary {\n display: block;\n width: max-content;\n background-color: var(--road-surface);\n border-radius: 0.25rem;\n outline: none;\n}\n\n.dropdown summary:focus,\n.dropdown summary.focus-visible,\n.dropdown summary:focus-within{\n background: var(--road-surface-inverse);\n}\n\n.dropdown summary::-webkit-details-marker { /* remove native arrow */\n display: none;\n}\n\n.dropdown-button{\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n cursor: pointer;\n border-radius: 0.25rem;\n}\n\n.dropdown-medium-button{\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.position-right{\n display: flex;\n justify-content: flex-end;\n}\n\n.bg-white{\n background: var(--road-grey-000);\n}\n\n.dropdown-button-icon{\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.dropdown-medium-button .dropdown-button-icon{\n width: 1.75rem;\n height: 1.75rem;\n}\n\n/**\n * Open state\n */\n\n.dropdown[open] .dropdown-menu {\n transform: scaleY(1);\n}\n\n.dropdown[open] .dropdown-menu.direction-top {\n position: absolute;\n bottom: 0;\n left: 0;\n transform: translate3d(0, -56px, 0);\n will-change: transform;\n}\n\n/* MENU\n -------------------- */\n\n.dropdown-menu {\n position: absolute;\n z-index: 1;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 16.875rem;\n padding: 0.5rem 0;\n color: var(--road-on-surface);\n background: var(--road-surface);\n border: 1px solid;\n border-color: var(--road-outline-weak);\n border-radius: 0.25rem;\n box-shadow: var(--road-elevation-low);\n transition: transform 0.2s ease-in-out;\n transform: scaleY(0);\n transform-origin: 0 0;\n}\n\n.dropdown-left {\n left: 0;\n}\n\n.dropdown-right {\n right: 0;\n}\n\n\n/* ITEM\n -------------------- */\n\n.dropdown-item {\n min-height: 40px;\n padding: 0 1rem;\n font-size: var(--road-body-medium);\n line-height: 1.5;\n color: var(--road-on-surface);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n background: var(--road-surface);\n border: none;\n outline: none;\n}\n\n.dropdown-item-border {\n border-color: var(--road-outline-weak);\n border-bottom: 1px solid;\n}\n\n/**\n * Hover state\n */\n\n.dropdown-item:hover,\n.dropdown-item.focus-visible {\n background: var(--road-surface-inverse);\n}\n\n\n","import { Component, h, Element, Prop, Listen } from '@stencil/core';\n\n@Component({\n tag: 'road-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown {\n\n @Element() el!: HTMLRoadDropdownElement;\n\n\n @Prop({ mutable: true }) isOpen: boolean = false;\n @Prop() isLight: boolean = false;\n @Prop() isMedium: boolean = false;\n @Prop({ reflect: true }) position?: 'left' | 'right';\n @Prop({ reflect: true }) direction?: 'top' | 'bottom' = 'bottom';\n\n private onClick = () => {\n this.isOpen = !this.isOpen;\n };\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(ev: MouseEvent) {\n // Check if the clicked element is the dropdown button\n if ((ev.target as HTMLElement).closest('road-dropdown') === this.el) {\n return; // Do nothing if clicked element is the dropdown button\n }\n // Close dropdown if click is outside the dropdown\n this.isOpen = false;\n }\n\n render() {\n const isLightButtonDropDown = this.isLight ? 'dropdown-button' : 'dropdown-button';\n const isMediumButtonDropDown = this.isMedium ? 'dropdown-medium-button dropdown-button' : 'dropdown-button';\n const positionClass = this.position ? `position-${this.position}` : '';\n const dropdownClass = this.position ? `dropdown-${this.position}` : '';\n const directionClass = this.direction ? `direction-${this.direction}` : '';\n\n return (\n <details class=\"dropdown\" open={this.isOpen}>\n <summary aria-expanded={this.isOpen.toString()} tabindex=\"0\" role=\"button\" onClick={this.onClick} tab-index=\"0\">\n <div class={`d-flex ${positionClass}`}>\n <div class={`${isLightButtonDropDown} ${isMediumButtonDropDown}`}>\n <road-icon name=\"navigation-more\" class=\"dropdown-button-icon\" aria-hidden=\"true\"></road-icon>\n </div>\n </div>\n </summary>\n <div class={`dropdown-menu ${directionClass} ${dropdownClass}`}>\n <slot name=\"list\" />\n </div>\n </details>\n );\n }\n}\n"],"version":3}
|
|
@@ -31,7 +31,7 @@ const GlobalNavigation = class {
|
|
|
31
31
|
this.selectedTabChanged();
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
|
-
return (index.h(index.Host, { role: "
|
|
34
|
+
return (index.h(index.Host, { role: "application" }, index.h("slot", null)));
|
|
35
35
|
}
|
|
36
36
|
static get watchers() { return {
|
|
37
37
|
"selectedTab": ["selectedTabChanged"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-global-navigation.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,mBAAmB,GAAG,kDAAkD;;MCYjE,gBAAgB;;;;;;;EAO3B,kBAAkB;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;MAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;KACJ;GACF;EASD,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAClC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAED,MAAM;IACJ,QACEA,QAACC,UAAI,IACH,IAAI,EAAC,
|
|
1
|
+
{"file":"road-global-navigation.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,mBAAmB,GAAG,kDAAkD;;MCYjE,gBAAgB;;;;;;;EAO3B,kBAAkB;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;MAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;KACJ;GACF;EASD,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAClC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAED,MAAM;IACJ,QACEA,QAACC,UAAI,IACH,IAAI,EAAC,aAAa,IAElBD,qBAAO,CACF,EACP;GACH;;;;;;;;;","names":["h","Host"],"sources":["src/components/global-navigation/global-navigation.css?tag=road-global-navigation&encapsulation=shadow","src/components/global-navigation/global-navigation.tsx"],"sourcesContent":["/*\n * Global Navigation\n *\n */\n\n:host {\n position: fixed;\n top: 0;\n z-index: 2;\n width: 100%;\n}\n\n","import { Component, Host, h, Prop, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport './../../utils/polyfill';\n\n/**\n * @slot navbar - it should be road-navbar-item elements. Max 5 items on Mobile or add them to the drawer\n */\n\n@Component({\n tag: 'road-global-navigation',\n styleUrl: 'global-navigation.css',\n shadow: true,\n})\nexport class GlobalNavigation {\n\n /**\n * The selected tab component\n */\n @Prop() selectedTab?: string;\n @Watch('selectedTab')\n selectedTabChanged() {\n if (this.selectedTab !== undefined) {\n this.roadnavbarchanged.emit({\n tab: this.selectedTab,\n });\n this.roadNavbarChanged.emit({\n tab: this.selectedTab,\n });\n }\n }\n\n /** @internal */\n @Event() roadnavbarchanged!: EventEmitter;\n /** @internal */\n @Event() roadNavbarChanged!: EventEmitter;\n\n @Listen('roadNavbarItemClick')\n @Listen('roadnavbaritemclick')\n onNavbarChanged(ev: CustomEvent) {\n this.selectedTab = ev.detail.tab;\n }\n\n componentWillLoad() {\n this.selectedTabChanged();\n }\n\n render() {\n return (\n <Host\n role=\"application\"\n >\n <slot/>\n </Host>\n );\n }\n\n}\n"],"version":3}
|
|
@@ -152,7 +152,7 @@ const Illustration = class {
|
|
|
152
152
|
render() {
|
|
153
153
|
const sizeClass = this.size !== undefined ? `illustration-${this.size}` : '';
|
|
154
154
|
const rotateClass = this.rotate !== undefined ? `illustration-rotate-${this.rotate}` : '';
|
|
155
|
-
return (index.h(index.Host, { class: `${sizeClass} ${rotateClass}`, "aria-hidden": "true" }, ((this.illustrationSvgContent !== '')
|
|
155
|
+
return (index.h(index.Host, { class: `${sizeClass} ${rotateClass}`, "aria-hidden": "true", role: "img" }, ((this.illustrationSvgContent !== '')
|
|
156
156
|
? index.h("div", { class: "icon-inner", innerHTML: this.illustrationSvgContent })
|
|
157
157
|
: index.h("div", { class: "icon-inner" }))));
|
|
158
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-illustration.entry.cjs.js","mappings":"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","names":["isStr","getUrl","getName","h","Host"],"sources":["src/components/illustration/validate.ts","src/components/illustration/request.ts","src/components/illustration/illustration.css?tag=road-illustration&encapsulation=shadow","src/components/illustration/illustration.tsx"],"sourcesContent":["import { isStr } from './utils';\n\nexport const validateContent = (svgContent: string) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm as any)) {\n return div.innerHTML;\n }\n }\n return '';\n};\n\nexport const isValid = (elm: HTMLElement) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n for (let i = 0; i < elm.attributes.length; i++) {\n const val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i] as any)) {\n return false;\n }\n }\n }\n return true;\n};\n","import { validateContent } from './validate';\n\nexport const roadillustrationContent = new Map<string, string>();\nconst requests = new Map<string, Promise<any>>();\n\nexport const getIllustrationSvgContent = (url: string, sanitize: boolean) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n\n if (!req) {\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n // we don't already have a request\n // @ts-ignore\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n roadillustrationContent.set(url, svgContent || '');\n });\n }\n roadillustrationContent.set(url, '');\n });\n\n // cache for the same requests\n requests.set(url, req);\n } else {\n // set to empty for ssr scenarios and resolve promise\n roadillustrationContent.set(url, '');\n return Promise.resolve();\n }\n }\n\n return req;\n};\n","/*\n * Illustration\n *\n * Index\n * - Sizes\n * - Colors\n * - Rotation\n */\n\n:host {\n box-sizing: content-box;\n display: inline-block;\n color: var(--road-icon);\n transition: fill 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n fill: currentColor;\n contain: strict;\n}\n\n:host svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* SIZES\n -------------------- */\n\n:host(.illustration-sm) {\n width: 4rem;\n height: 4rem;\n}\n\n:host(.illustration-md) {\n width: 8rem;\n height: 8rem;\n}\n\n:host(.illustration-lg) {\n width: 16rem;\n height: 16rem;\n}\n\n:host(.illustration-2x) {\n width: 32rem;\n height: 32rem;\n}\n\n/* ROTATION\n -------------------- */\n\n:host(.illustration-rotate-90) {\n transform: rotate(90deg);\n}\n\n:host(.illustration-rotate-180) {\n transform: rotate(180deg);\n}\n\n:host(.illustration-rotate-270) {\n transform: rotate(270deg);\n}\n","import { Build, Component, Element, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { getIllustrationSvgContent, roadillustrationContent } from './request';\nimport { getName, getUrl } from './utils';\n\n@Component({\n tag: 'road-illustration',\n assetsDirs: ['svg'],\n styleUrl: 'illustration.css',\n shadow: true,\n})\nexport class Illustration {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLRoadIllustrationElement;\n\n @State() private illustrationSvgContent?: string;\n\n @State() private isVisible = false;\n\n\n\n /**\n * Specifies the label to use for accessibility. Defaults to the illustration name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel?: string;\n\n /**\n * Set the illustration to hidden, respectively `true`, to remove it from the accessibility tree.\n */\n @Prop({ reflect: true }) ariaHidden?: string;\n\n /**\n * Specifies which illustration to use from the built-in set of illustrations.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() illustration?: any;\n\n /**\n * The size of the illustration.\n * Available options are: `\"sm\"`, `\"md\"`, `\"lg\"`, `\"2x\"`.\n */\n @Prop() size?: 'sm' | 'md' | 'lg' | '2x' = \"2x\";\n\n /**\n * The rotation of the illustration.\n * Available options are: `\"90\"`, `\"180\"`, `\"270\"`.\n */\n @Prop() rotate?: '90' | '180' | '270';\n\n /**\n * If enabled, road-illustration will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n @Prop() lazy: boolean = false;\n\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `<script>` elements, or any attributes\n * that start with `on`, such as `onclick`.\n */\n @Prop() sanitize = true;\n\n componentWillLoad() {\n\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIllustration();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n private waitUntilVisible(el: HTMLRoadIllustrationElement, rootMargin: string, cb: () => void) {\n if (this.lazy && (window as any).IntersectionObserver) {\n const io = this.io = new (window as any).IntersectionObserver((data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin });\n\n io.observe(el);\n\n } else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('illustration')\n loadIllustration() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (roadillustrationContent.has(url)) {\n // sync if it's already loaded\n this.illustrationSvgContent = roadillustrationContent.get(url);\n } else {\n // async if it hasn't been loaded\n getIllustrationSvgContent(url, this.sanitize).then(() => (this.illustrationSvgContent = roadillustrationContent.get(url)));\n }\n }\n }\n\n if (!this.ariaLabel && this.ariaHidden !== 'true') {\n const label = getName(this.name, this.illustration);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.replace(/-/g, ' ');\n }\n }\n }\n\n render() {\n const sizeClass = this.size !== undefined ? `illustration-${this.size}` : '';\n const rotateClass = this.rotate !== undefined ? `illustration-rotate-${this.rotate}` : '';\n\n return (\n <Host class={`${sizeClass} ${rotateClass}`} aria-hidden=\"true\">\n {(\n (this.illustrationSvgContent !== '')\n ? <div class=\"icon-inner\" innerHTML={this.illustrationSvgContent}></div>\n : <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}"],"version":3}
|
|
1
|
+
{"file":"road-illustration.entry.cjs.js","mappings":"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","names":["isStr","getUrl","getName","h","Host"],"sources":["src/components/illustration/validate.ts","src/components/illustration/request.ts","src/components/illustration/illustration.css?tag=road-illustration&encapsulation=shadow","src/components/illustration/illustration.tsx"],"sourcesContent":["import { isStr } from './utils';\n\nexport const validateContent = (svgContent: string) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm as any)) {\n return div.innerHTML;\n }\n }\n return '';\n};\n\nexport const isValid = (elm: HTMLElement) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n for (let i = 0; i < elm.attributes.length; i++) {\n const val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i] as any)) {\n return false;\n }\n }\n }\n return true;\n};\n","import { validateContent } from './validate';\n\nexport const roadillustrationContent = new Map<string, string>();\nconst requests = new Map<string, Promise<any>>();\n\nexport const getIllustrationSvgContent = (url: string, sanitize: boolean) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n\n if (!req) {\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n // we don't already have a request\n // @ts-ignore\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n roadillustrationContent.set(url, svgContent || '');\n });\n }\n roadillustrationContent.set(url, '');\n });\n\n // cache for the same requests\n requests.set(url, req);\n } else {\n // set to empty for ssr scenarios and resolve promise\n roadillustrationContent.set(url, '');\n return Promise.resolve();\n }\n }\n\n return req;\n};\n","/*\n * Illustration\n *\n * Index\n * - Sizes\n * - Colors\n * - Rotation\n */\n\n:host {\n box-sizing: content-box;\n display: inline-block;\n color: var(--road-icon);\n transition: fill 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n fill: currentColor;\n contain: strict;\n}\n\n:host svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* SIZES\n -------------------- */\n\n:host(.illustration-sm) {\n width: 4rem;\n height: 4rem;\n}\n\n:host(.illustration-md) {\n width: 8rem;\n height: 8rem;\n}\n\n:host(.illustration-lg) {\n width: 16rem;\n height: 16rem;\n}\n\n:host(.illustration-2x) {\n width: 32rem;\n height: 32rem;\n}\n\n/* ROTATION\n -------------------- */\n\n:host(.illustration-rotate-90) {\n transform: rotate(90deg);\n}\n\n:host(.illustration-rotate-180) {\n transform: rotate(180deg);\n}\n\n:host(.illustration-rotate-270) {\n transform: rotate(270deg);\n}\n","import { Build, Component, Element, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { getIllustrationSvgContent, roadillustrationContent } from './request';\nimport { getName, getUrl } from './utils';\n\n@Component({\n tag: 'road-illustration',\n assetsDirs: ['svg'],\n styleUrl: 'illustration.css',\n shadow: true,\n})\nexport class Illustration {\n private io?: IntersectionObserver;\n\n @Element() el!: HTMLRoadIllustrationElement;\n\n @State() private illustrationSvgContent?: string;\n\n @State() private isVisible = false;\n\n\n\n /**\n * Specifies the label to use for accessibility. Defaults to the illustration name.\n */\n @Prop({ mutable: true, reflect: true }) ariaLabel?: string;\n\n /**\n * Set the illustration to hidden, respectively `true`, to remove it from the accessibility tree.\n */\n @Prop({ reflect: true }) ariaHidden?: string;\n\n /**\n * Specifies which illustration to use from the built-in set of illustrations.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the exact `src` of an SVG file to use.\n */\n @Prop() src?: string;\n\n /**\n * A combination of both `name` and `src`. If a `src` url is detected\n * it will set the `src` property. Otherwise it assumes it's a built-in named\n * SVG and set the `name` property.\n */\n @Prop() illustration?: any;\n\n /**\n * The size of the illustration.\n * Available options are: `\"sm\"`, `\"md\"`, `\"lg\"`, `\"2x\"`.\n */\n @Prop() size?: 'sm' | 'md' | 'lg' | '2x' = \"2x\";\n\n /**\n * The rotation of the illustration.\n * Available options are: `\"90\"`, `\"180\"`, `\"270\"`.\n */\n @Prop() rotate?: '90' | '180' | '270';\n\n /**\n * If enabled, road-illustration will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n @Prop() lazy: boolean = false;\n\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `<script>` elements, or any attributes\n * that start with `on`, such as `onclick`.\n */\n @Prop() sanitize = true;\n\n componentWillLoad() {\n\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIllustration();\n });\n }\n\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n\n private waitUntilVisible(el: HTMLRoadIllustrationElement, rootMargin: string, cb: () => void) {\n if (this.lazy && (window as any).IntersectionObserver) {\n const io = this.io = new (window as any).IntersectionObserver((data: IntersectionObserverEntry[]) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin });\n\n io.observe(el);\n\n } else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n\n @Watch('name')\n @Watch('src')\n @Watch('illustration')\n loadIllustration() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (roadillustrationContent.has(url)) {\n // sync if it's already loaded\n this.illustrationSvgContent = roadillustrationContent.get(url);\n } else {\n // async if it hasn't been loaded\n getIllustrationSvgContent(url, this.sanitize).then(() => (this.illustrationSvgContent = roadillustrationContent.get(url)));\n }\n }\n }\n\n if (!this.ariaLabel && this.ariaHidden !== 'true') {\n const label = getName(this.name, this.illustration);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label.replace(/-/g, ' ');\n }\n }\n }\n\n render() {\n const sizeClass = this.size !== undefined ? `illustration-${this.size}` : '';\n const rotateClass = this.rotate !== undefined ? `illustration-rotate-${this.rotate}` : '';\n\n return (\n <Host class={`${sizeClass} ${rotateClass}`} aria-hidden=\"true\" role=\"img\">\n {(\n (this.illustrationSvgContent !== '')\n ? <div class=\"icon-inner\" innerHTML={this.illustrationSvgContent}></div>\n : <div class=\"icon-inner\"></div>\n )}\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const index = require('./index-12592729.js');
|
|
6
6
|
const index$1 = require('./index-fb57f684.js');
|
|
7
7
|
|
|
8
|
-
const modalCss = ":host{--z-index:3;position:fixed;top:0;left:0;z-index:var(--z-index);display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;font-family:var(--road-font, sans-serif);line-height:1.5;color:var(--road-grey-900);visibility:hidden !important;opacity:0;transition:opacity 0.15s linear, visibility 0.15s}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block;touch-action:none;cursor:pointer;background:var(--road-overlay)}.modal-dialog{position:relative;width:100%;pointer-events:none;transition:transform 0.3s ease-out;transform:translateY(50px)}:host(.modal-open){visibility:visible !important;opacity:1}:host(.modal-open) .modal-dialog{transform:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;height:100vh;pointer-events:auto;background:var(--road-surface);background-clip:padding-box;box-shadow:var(--road-elevation-hight)}@media (min-width: 768px){.modal-content{height:auto;border-radius:0.25rem}}.modal-header{display:flex;align-items:center;justify-content:flex-end;color:var(--road-on-header-surface);background:var(--road-header-surface)}.modal-header road-icon{color:var(--road-header-icon)}@media (min-width: 768px){.modal-header{border-radius:0.25rem 0.25rem 0 0}}.modal-header-inverse{color:var(--road-on-surface);background:none}.modal-header-inverse road-icon{color:var(--road-icon)}.modal-action,.modal-close{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;padding:0;font-weight:700;color:inherit;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.modal-action~.modal-title,.modal-close~.modal-title{padding-left:0}.modal-action-left,.modal-close-left{margin-right:auto}.modal-title{display:flex;flex-grow:1;align-items:center;justify-content:center;height:3.5rem;padding-left:3.5rem;margin:0;font-size:var(--road-body-medium);font-weight:400}.modal-body{padding:2.5rem 0.5rem;overflow-y:auto}.modal-header-inverse+.modal-body{padding-top:0}@media (min-width: 768px){.modal-body{max-height:86vh;padding-right:
|
|
8
|
+
const modalCss = ":host{--z-index:3;position:fixed;top:0;left:0;z-index:var(--z-index);display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;font-family:var(--road-font, sans-serif);line-height:1.5;color:var(--road-grey-900);visibility:hidden !important;opacity:0;transition:opacity 0.15s linear, visibility 0.15s}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block;touch-action:none;cursor:pointer;background:var(--road-overlay)}.modal-dialog{position:relative;width:100%;pointer-events:none;transition:transform 0.3s ease-out;transform:translateY(50px)}:host(.modal-open){visibility:visible !important;opacity:1}:host(.modal-open) .modal-dialog{transform:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;height:100vh;pointer-events:auto;background:var(--road-surface);background-clip:padding-box;box-shadow:var(--road-elevation-hight)}@media (min-width: 768px){.modal-content{height:auto;border-radius:0.25rem}}.modal-header{display:flex;align-items:center;justify-content:flex-end;color:var(--road-on-header-surface);background:var(--road-header-surface)}.modal-header road-icon{color:var(--road-header-icon)}@media (min-width: 768px){.modal-header{border-radius:0.25rem 0.25rem 0 0}}.modal-header-inverse{color:var(--road-on-surface);background:none}.modal-header-inverse road-icon{color:var(--road-icon)}.modal-action,.modal-close{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;padding:0;font-weight:700;color:inherit;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.modal-action~.modal-title,.modal-close~.modal-title{padding-left:0}.modal-action-left,.modal-close-left{margin-right:auto}.modal-title{display:flex;flex-grow:1;align-items:center;justify-content:center;height:3.5rem;padding-left:3.5rem;margin:0;font-size:var(--road-body-medium);font-weight:400}.modal-body{padding:2.5rem 0.5rem;overflow-y:auto}.modal-header-inverse+.modal-body{padding-top:0}@media (min-width: 768px){.modal-body{max-height:86vh;padding-right:var(--road-spacing-06);padding-left:var(--road-spacing-06)}}";
|
|
9
9
|
|
|
10
10
|
const Modal = class {
|
|
11
11
|
constructor(hostRef) {
|
|
@@ -60,7 +60,7 @@ const Modal = class {
|
|
|
60
60
|
const modalIsOpenClass = this.isOpen ? 'modal-open' : '';
|
|
61
61
|
const inverseHeaderClass = this.hasInverseHeader ? 'modal-header-inverse' : '';
|
|
62
62
|
const closeIconElement = this.hasCloseIcon ? index.h("button", { type: "button", class: "modal-close", onClick: this.onClick, "aria-label": "Close" }, index.h("road-icon", { icon: index$1.navigationClose, "aria-hidden": "true" })) : '';
|
|
63
|
-
return (index.h(index.Host, { class: `modal ${modalIsOpenClass}`, tabindex: "-1", role: "dialog" }, index.h("div", { class: "modal-overlay", onClick: this.onClick, tabindex: "-1" }), index.h("div", { class: "modal-dialog", style: { maxWidth: `${this.maxWidth}px` }, role: "document", tabindex: "0" }, index.h("div", { class: "modal-content" }, index.h("header", { class: `modal-header ${inverseHeaderClass}` }, index.h("h2", { class: "modal-title" }, this.modalTitle), closeIconElement), index.h("div", { class: "modal-body" }, index.h("slot", null))))));
|
|
63
|
+
return (index.h(index.Host, { class: `modal ${modalIsOpenClass}`, tabindex: "-1", role: "dialog", "aria-label": "modal" }, index.h("div", { class: "modal-overlay", onClick: this.onClick, tabindex: "-1" }), index.h("div", { class: "modal-dialog", style: { maxWidth: `${this.maxWidth}px` }, role: "document", tabindex: "0" }, index.h("div", { class: "modal-content" }, index.h("header", { class: `modal-header ${inverseHeaderClass}` }, index.h("h2", { class: "modal-title" }, this.modalTitle), closeIconElement), index.h("div", { class: "modal-body" }, index.h("slot", null))))));
|
|
64
64
|
}
|
|
65
65
|
get el() { return index.getElement(this); }
|
|
66
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-modal.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"file":"road-modal.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,opEAAopE;;MCYxpE,KAAK;;;;;;;IA2DR,YAAO,GAAG,CAAC,EAAW;MAC5B,EAAE,CAAC,eAAe,EAAE,CAAC;MACrB,EAAE,CAAC,cAAc,EAAE,CAAC;MAEpB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd,CAAC;oBAtDyB,GAAG;kBAKa,KAAK;4BAKZ,KAAK;;wBAUT,IAAI;;;;;EAWpC,MAAM,IAAI;IACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;GACpB;;;;EAMD,MAAM,KAAK;IACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE;MACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;GACnB;;;;EAgBD,QAAQ,CAAC,KAAoB;IAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;MACjD,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;GACF;;;;EAKD,gBAAgB;IACd,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,IAAI;MAC7D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACpD,CAAC,CAAC;GACJ;EAED,MAAM;IACJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,EAAE,CAAC;IACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,GAAG,EAAE,CAAC;IAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAGA,oBAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,gBAAa,OAAO,IAACA,uBAAW,IAAI,EAAEC,uBAAe,iBAAc,MAAM,GAAa,CAAS,GAAG,EAAE,CAAC;IAEjN,QACED,QAACE,UAAI,IAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAAE,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,gBAAY,OAAO,IACtFF,iBAAK,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAC,IAAI,GAAO,EACtEA,iBAAK,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,IAC/FA,iBAAK,KAAK,EAAC,eAAe,IACxBA,oBAAQ,KAAK,EAAE,gBAAgB,kBAAkB,EAAE,IACjDA,gBAAI,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,UAAU,CAAM,EAC7C,gBAAgB,CACV,EACTA,iBAAK,KAAK,EAAC,YAAY,IACrBA,qBAAO,CACH,CACF,CACF,CACD,EACP;GACH;;;;;;;","names":["h","navigationClose","Host"],"sources":["src/components/modal/modal.css?tag=road-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/*\n * Modal\n *\n * Index\n * - Overlay\n * - Modal\n * - Content\n * - Header\n * - Actions\n * - Title\n * - Body\n */\n\n/**\n * @prop --z-index: The z-index of the Modal.\n */\n\n\n/* OVERLAY\n -------------------- */\n\n:host {\n --z-index: 3;\n\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--z-index);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-family: var(--road-font, sans-serif);\n line-height: 1.5;\n color: var(--road-grey-900);\n visibility: hidden !important;\n opacity: 0;\n transition: opacity 0.15s linear, visibility 0.15s;\n}\n\n/* OVERLAY\n -------------------- */\n\n.modal-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n touch-action: none;\n cursor: pointer;\n background: var(--road-overlay);\n}\n\n/* MODAL\n -------------------- */\n\n.modal-dialog {\n position: relative;\n width: 100%;\n pointer-events: none;\n transition: transform 0.3s ease-out;\n transform: translateY(50px);\n}\n\n/**\n * Open state\n */\n\n:host(.modal-open) {\n visibility: visible !important;\n opacity: 1;\n}\n\n:host(.modal-open) .modal-dialog {\n transform: none;\n}\n\n/* CONTENT\n -------------------- */\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100vh;\n pointer-events: auto;\n background: var(--road-surface);\n background-clip: padding-box;\n box-shadow: var(--road-elevation-hight);\n}\n\n@media (min-width: 768px) {\n\n .modal-content {\n height: auto;\n border-radius: 0.25rem;\n }\n}\n\n/* HEADER\n -------------------- */\n\n.modal-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n color: var(--road-on-header-surface);\n background: var(--road-header-surface);\n}\n\n.modal-header road-icon {\n color: var(--road-header-icon);\n}\n\n@media (min-width: 768px) {\n\n .modal-header {\n border-radius: 0.25rem 0.25rem 0 0;\n }\n}\n\n/**\n * Modal header inverse colors\n */\n\n.modal-header-inverse {\n color: var(--road-on-surface);\n background: none;\n}\n\n.modal-header-inverse road-icon {\n color: var(--road-icon);\n}\n\n/* ACTIONS\n -------------------- */\n\n.modal-action,\n.modal-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n padding: 0;\n font-weight: 700;\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n appearance: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.modal-action ~ .modal-title,\n.modal-close ~ .modal-title {\n padding-left: 0;\n}\n\n.modal-action-left,\n.modal-close-left {\n margin-right: auto;\n}\n\n/* TITLE\n -------------------- */\n\n.modal-title {\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n height: 3.5rem;\n padding-left: 3.5rem;\n margin: 0;\n font-size: var(--road-body-medium);\n font-weight: 400;\n}\n\n/* BODY\n -------------------- */\n\n.modal-body {\n padding: 2.5rem 0.5rem;\n overflow-y: auto;\n}\n\n.modal-header-inverse + .modal-body {\n padding-top: 0;\n}\n\n@media (min-width: 768px) {\n\n .modal-body {\n max-height: 86vh;\n padding-right: var(--road-spacing-06);\n padding-left: var(--road-spacing-06);\n }\n}\n","import { Component, Element, Event, EventEmitter, Listen, Method, Prop, h, Host } from '@stencil/core';\nimport { navigationClose } from '../../../icons';\n\n/**\n * @slot - Content of the modal.\n */\n\n@Component({\n tag: 'road-modal',\n styleUrl: 'modal.css',\n shadow: true,\n})\nexport class Modal {\n\n /**\n * Current reference of the modal\n */\n @Element() el!: HTMLRoadModalElement;\n\n /**\n * Max width of the modal on desktop\n */\n @Prop() maxWidth: number = 696;\n\n /**\n * Set isOpen propertie to true to show the modal\n */\n @Prop({ mutable: true }) isOpen: boolean = false;\n\n /**\n * inverse header colors\n */\n @Prop() hasInverseHeader: boolean = false;\n\n /**\n * Title of the modal in the header bar\n */\n @Prop() modalTitle?: string;\n\n /**\n * Show / hide close icon\n */\n @Prop() hasCloseIcon: boolean = true;\n\n /**\n * Indicate when closing the modal\n */\n @Event({ eventName: 'close' }) onClose!: EventEmitter<void>;\n\n /**\n * Open the modal\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * Close the modal\n */\n @Method()\n async close() {\n this.isOpen = false;\n this.el.addEventListener('transitionend', () => {\n this.onClose.emit();\n }, { once: true});\n }\n\n /**\n * Close the dialog when clicking on the cross or layer\n */\n private onClick = (ev: UIEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n\n this.close();\n };\n\n /**\n * Close the dialog when press Escape key\n */\n @Listen('keyup', { target: 'document' })\n onEscape(event: KeyboardEvent) {\n if (event.key === 'Escape' || event.key === \"Esc\") {\n this.close();\n }\n }\n\n /**\n * Call close function when clicking an element with data-dismiss=\"modal\" attribute\n */\n componentDidLoad() {\n this.el.querySelectorAll('[data-dismiss=\"modal\"]').forEach(item => {\n item.addEventListener('click', () => this.close());\n });\n }\n\n render() {\n const modalIsOpenClass = this.isOpen ? 'modal-open' : '';\n const inverseHeaderClass = this.hasInverseHeader ? 'modal-header-inverse' : '';\n const closeIconElement = this.hasCloseIcon ? <button type=\"button\" class=\"modal-close\" onClick={this.onClick} aria-label=\"Close\"><road-icon icon={navigationClose} aria-hidden=\"true\"></road-icon></button> : '';\n\n return (\n <Host class={`modal ${modalIsOpenClass}`} tabindex=\"-1\" role=\"dialog\" aria-label=\"modal\">\n <div class=\"modal-overlay\" onClick={this.onClick} tabindex=\"-1\"></div>\n <div class=\"modal-dialog\" style={{ maxWidth: `${this.maxWidth}px` }} role=\"document\" tabindex=\"0\">\n <div class=\"modal-content\">\n <header class={`modal-header ${inverseHeaderClass}`}>\n <h2 class=\"modal-title\">{this.modalTitle}</h2>\n {closeIconElement}\n </header>\n <div class=\"modal-body\">\n <slot/>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -57,7 +57,7 @@ const NavbarItem = class {
|
|
|
57
57
|
rel,
|
|
58
58
|
target,
|
|
59
59
|
};
|
|
60
|
-
return (index.h(index.Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "
|
|
60
|
+
return (index.h(index.Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "menu", tabindex: "0", "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `navbar-item-${tab}` : null, disabled: disabled, class: {
|
|
61
61
|
'navbar-item': true,
|
|
62
62
|
'tab-selected': selected,
|
|
63
63
|
'tab-disabled': disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-navbar-item.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,aAAa,GAAG,kiGAAkiG;;MCa3iG,UAAU;;;;;IAiFb,YAAO,GAAG,CAAC,EAAiB;MAClC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;KACF,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS;MAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACpB,CAAC;oBAlFiB,KAAK;;;;oBAyBY,KAAK;;;;EAyBzC,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAC5C;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;OACJ;MACD,IAAG,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,EAAE,CAAC,cAAc,EAAE,CAAC;OACrB;KACF;GACF;EAYD,MAAM;IACJ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG;MACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,IAAI;MACJ,GAAG;MACH,MAAM;KACP,CAAC;IAEF,QACEA,QAACC,UAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,
|
|
1
|
+
{"file":"road-navbar-item.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,aAAa,GAAG,kiGAAkiG;;MCa3iG,UAAU;;;;;IAiFb,YAAO,GAAG,CAAC,EAAiB;MAClC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;OACpB;KACF,CAAC;IAEM,YAAO,GAAG,CAAC,EAAS;MAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACpB,CAAC;oBAlFiB,KAAK;;;;oBAyBY,KAAK;;;;EAyBzC,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAC5C;EAEO,SAAS,CAAC,EAAyB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;MAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;UAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;UACb,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;OACJ;MACD,IAAG,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,EAAE,CAAC,cAAc,EAAE,CAAC;OACrB;KACF;GACF;EAYD,MAAM;IACJ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG;MACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,IAAI;MACJ,GAAG;MACH,MAAM;KACP,CAAC;IAEF,QACEA,QAACC,UAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,GAAG,mBACG,QAAQ,GAAG,MAAM,GAAG,IAAI,EACvC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,eAAe,GAAG,EAAE,GAAG,IAAI,EACnD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QACL,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;OACzB,IAEDD,+BAAO,KAAK,IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,KAC7DA,kBAAM,KAAK,EAAC,cAAc,IACxBA,qBAAO,CACF,CACL,CACC,EACP;GACH;;;;;;;","names":["h","Host"],"sources":["src/components/navbar-item/navbar-item.css?tag=road-navbar-item&encapsulation=shadow","src/components/navbar-item/navbar-item.tsx"],"sourcesContent":["/*\n * Navbar item\n *\n * Index\n * - Native\n * - Inner\n * - Icon\n * - Badge\n */\n\n\n:host {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-basis: 0;\n flex-direction: column;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n text-align: center;\n white-space: nowrap;\n}\n\n@media (min-width: 1200px) {\n\n :host {\n flex-grow: inherit;\n width: 100%;\n padding: 0.5rem;\n }\n\n}\n\n/**\n * Disabled\n */\n\n:host(.tab-disabled),\n:host(.tab-disabled) road-tooltip,\n:host(.tab-disabled) road-tooltip road-icon,\n:host(.tab-disabled) ::slotted(road-icon) {\n color: var(--road-on-surface-disabled);\n cursor: not-allowed;\n fill: var(--road-on-surface-disabled);\n}\n\n/**\n * Selected state\n */\n\n:host(.tab-selected),\n:host(.tab-selected) road-tooltip road-icon,\n:host(.tab-selected) ::slotted(road-icon) {\n color: var(--road-on-button-tertiary);\n fill: var(--road-on-button-tertiary);\n}\n\n:host(.tab-selected)::after {\n position: absolute;\n bottom: -12px;\n left: 0;\n display: block;\n width: 100%;\n height: 4px;\n color: var(--road-on-button-tertiary);\n content: \"\";\n background-color: var(--road-on-button-tertiary);\n}\n\n@media (min-width: 1200px) {\n\n :host(.tab-selected)::after {\n bottom: auto;\n left: 0;\n width: 4px;\n height: 100%;\n }\n\n}\n\n\n/**\n * Focus on Tab state\n */\n\n:host(.focus-visible) ::slotted(road-icon),\n:host(.focus-visible) ::slotted(road-icon)::after,\n:host(.focus-visible) ::slotted(road-label),\n:host(.focus-visible) ::slotted(road-label)::after,\n:host(:hover) ::slotted(road-icon),\n:host(:hover) ::slotted(road-icon)::after,\n:host(:hover) ::slotted(road-label),\n:host(:hover) ::slotted(road-label)::after {\n color: var(--road-on-button-tertiary);\n}\n\n:host(.tab-disabled.focus-visible) ::slotted(road-icon),\n:host(.tab-disabled.focus-visible) ::slotted(road-label),\n:host(.tab-disabled:hover) ::slotted(road-icon),\n:host(.tab-disabled:hover) ::slotted(road-label) {\n color: var(--road-on-surface-disabled);\n cursor: not-allowed;\n fill: var(--road-on-surface-disabled);\n}\n\n\n/* NATIVE\n -------------------- */\n\n.button-native {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: inherit;\n align-items: inherit;\n justify-content: inherit;\n width: 100%;\n height: 100%;\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n color: inherit;\n text-align: inherit;\n text-decoration: none;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n cursor: pointer;\n background: transparent;\n border-color: initial;\n border-style: initial;\n border-width: 0;\n border-radius: inherit;\n border-image: initial;\n outline: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n:host(.tab-disabled) .button-native {\n cursor: not-allowed;\n}\n\n/* INNER\n -------------------- */\n\n.button-inner {\n position: relative;\n z-index: 1;\n display: flex;\n flex-flow: inherit;\n align-items: inherit;\n justify-content: inherit;\n width: 100%;\n height: 100%;\n}\n\n/* ICON\n -------------------- */\n\n::slotted(road-icon) {\n display: block;\n width: 2rem;\n height: 2rem;\n margin-right: auto;\n margin-bottom: 0.25rem;\n margin-left: auto;\n fill: currentColor;\n}\n\n/* TOOLTIP\n -------------------- */\n\n@media (min-width: 1200px) {\n\n :host ::slotted(road-tooltip) {\n width: 100%;\n }\n\n}\n\n/* LABEL\n -------------------- */\n\n::slotted(road-label) {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-direction: column;\n font-size: var(--road-label-small);\n font-weight: 700;\n text-align: center;\n white-space: nowrap;\n}\n\n@media (min-width: 1200px) {\n\n ::slotted(road-label) {\n display: block;\n }\n}\n\n/* BADGE\n -------------------- */\n\n::slotted(road-badge) {\n position: absolute;\n top: 4px;\n left: calc(50% + 0.375rem);\n z-index: 1;\n box-sizing: border-box;\n height: auto;\n font-size: var(--road-font-size-10);\n font-weight: 400;\n}\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\n\n/**\n * @slot - Content of the item, it should be road-icon and road-label elements.\n *\n * @part native - The native HTML anchor element that wraps all child elements.\n */\n\n@Component({\n tag: 'road-navbar-item',\n styleUrl: 'navbar-item.css',\n shadow: true,\n})\nexport class NavbarItem {\n\n @Element() el!: HTMLRoadNavbarItemElement;\n\n /**\n * If `true`, the user cannot interact with the tab button.\n */\n @Prop() disabled = false;\n\n /**\n * This attribute instructs browsers to download a URL instead of navigating to\n * it, so the user will be prompted to save it as a local file. If the attribute\n * has a value, it is used as the pre-filled file name in the Save prompt\n * (the user can still change the file name if they want).\n */\n @Prop() download: string | undefined;\n\n /**\n * Contains a URL or a URL fragment that the hyperlink points to.\n * If this property is set, an anchor tag will be rendered.\n */\n @Prop() href: string | undefined;\n\n /**\n * Specifies the relationship of the target object to the link object.\n * The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\n */\n @Prop() rel: string | undefined;\n\n /**\n * The selected tab component\n */\n @Prop({ mutable: true }) selected = false;\n\n /**\n * A tab id must be provided for each `road-tab`. It's used internally to reference\n * the selected tab.\n */\n @Prop() tab?: string;\n\n /**\n * Specifies where to display the linked URL.\n * Only applies when an `href` is provided.\n * Special keywords: `\"_blank\"`, `\"_self\"`, `\"_parent\"`, `\"_top\"`.\n */\n @Prop() target: string | undefined;\n\n /**\n * Emitted when the tab bar is clicked\n * @internal\n */\n @Event() roadnavbaritemclick!: EventEmitter;\n /** @internal */\n @Event() roadNavbarItemClick!: EventEmitter;\n\n @Listen('roadNavbarChanged', { target: 'window' })\n @Listen('roadnavbarchanged', { target: 'window' })\n onNavbarChanged(ev: CustomEvent) {\n this.selected = this.tab === ev.detail.tab;\n }\n\n private selectTab(ev: Event | KeyboardEvent) {\n if (this.tab !== undefined) {\n if (!this.disabled) {\n this.roadnavbaritemclick.emit({\n tab: this.tab,\n href: this.href,\n selected: this.selected,\n });\n this.roadNavbarItemClick.emit({\n tab: this.tab,\n href: this.href,\n selected: this.selected,\n });\n }\n if(this.href === undefined) {\n ev.preventDefault();\n }\n }\n }\n\n private onKeyUp = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.selectTab(ev);\n }\n };\n\n private onClick = (ev: Event) => {\n this.selectTab(ev);\n };\n\n render() {\n const { href, rel, target, selected, tab, disabled } = this;\n const attrs = {\n download: this.download,\n href,\n rel,\n target,\n };\n\n return (\n <Host\n onClick={this.onClick}\n onKeyup={this.onKeyUp}\n role=\"menu\"\n tabindex=\"0\"\n aria-selected={selected ? 'true' : null}\n id={tab !== undefined ? `navbar-item-${tab}` : null}\n disabled={disabled}\n class={{\n 'navbar-item': true,\n 'tab-selected': selected,\n 'tab-disabled': disabled,\n }}\n >\n <a {...attrs} tabIndex={-1} class=\"button-native\" part=\"native\">\n <span class=\"button-inner\">\n <slot/>\n </span>\n </a>\n </Host>\n );\n }\n\n}\n"],"version":3}
|
|
@@ -31,7 +31,7 @@ const Navbar = class {
|
|
|
31
31
|
this.selectedTabChanged();
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
|
-
return (index.h(index.Host, { role: "
|
|
34
|
+
return (index.h(index.Host, { role: "menubar" }, index.h("slot", null)));
|
|
35
35
|
}
|
|
36
36
|
static get watchers() { return {
|
|
37
37
|
"selectedTab": ["selectedTabChanged"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"road-navbar.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,ukBAAukB;;MCY5kB,MAAM;;;;;;;EAOjB,kBAAkB;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;MAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;KACJ;GACF;EASD,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAClC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAED,MAAM;IACJ,QACEA,QAACC,UAAI,IACH,IAAI,EAAC,SAAS,IAEdD,qBAAO,CACF,EACP;GACH;;;;;;;;;","names":["h","Host"],"sources":["src/components/navbar/navbar.css?tag=road-navbar&encapsulation=shadow","src/components/navbar/navbar.tsx"],"sourcesContent":["/*\n * Navbar\n *\n */\n\n/**\n * @prop --z-index: The z-index of the Navbar.\n */\n\n:host {\n --z-index: 3;\n\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--z-index);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n width: 100%;\n height: 5.125rem;\n padding-left: 0;\n margin: 0;\n text-align: center;\n user-select: none;\n background-color: var(--road-surface);\n border-top: 1px solid var(--road-outline);\n}\n\n@media (max-width: 576px) {\n\n :host {\n overflow-x: auto;\n }\n}\n\n@media (min-width: 1200px) {\n\n :host {\n bottom: auto;\n flex-direction: column;\n width: 104px;\n height: 100%;\n border-top: 0;\n border-right: 1px solid var(--road-outline);\n }\n}\n\n/**\n * Button save drawer.\n */\n\n::slotted(.drawer-button-save) {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n","import { Component, Host, h, Prop, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport './../../utils/polyfill';\n\n/**\n * @slot - Content of the navbar, it should be road-navbar-item elements. Max 5 items on Mobile\n */\n\n@Component({\n tag: 'road-navbar',\n styleUrl: 'navbar.css',\n shadow: true,\n})\nexport class Navbar {\n\n /**\n * The selected tab component\n */\n @Prop() selectedTab?: string;\n @Watch('selectedTab')\n selectedTabChanged() {\n if (this.selectedTab !== undefined) {\n this.roadnavbarchanged.emit({\n tab: this.selectedTab,\n });\n this.roadNavbarChanged.emit({\n tab: this.selectedTab,\n });\n }\n }\n\n /** @internal */\n @Event() roadnavbarchanged!: EventEmitter;\n /** @internal */\n @Event() roadNavbarChanged!: EventEmitter;\n\n @Listen('roadNavbarItemClick')\n @Listen('roadnavbaritemclick')\n onNavbarChanged(ev: CustomEvent) {\n this.selectedTab = ev.detail.tab;\n }\n\n componentWillLoad() {\n this.selectedTabChanged();\n }\n\n render() {\n return (\n <Host\n role=\"
|
|
1
|
+
{"file":"road-navbar.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,ukBAAukB;;MCY5kB,MAAM;;;;;;;EAOjB,kBAAkB;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;MAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;KACJ;GACF;EASD,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;GAClC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAED,MAAM;IACJ,QACEA,QAACC,UAAI,IACH,IAAI,EAAC,SAAS,IAEdD,qBAAO,CACF,EACP;GACH;;;;;;;;;","names":["h","Host"],"sources":["src/components/navbar/navbar.css?tag=road-navbar&encapsulation=shadow","src/components/navbar/navbar.tsx"],"sourcesContent":["/*\n * Navbar\n *\n */\n\n/**\n * @prop --z-index: The z-index of the Navbar.\n */\n\n:host {\n --z-index: 3;\n\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--z-index);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n width: 100%;\n height: 5.125rem;\n padding-left: 0;\n margin: 0;\n text-align: center;\n user-select: none;\n background-color: var(--road-surface);\n border-top: 1px solid var(--road-outline);\n}\n\n@media (max-width: 576px) {\n\n :host {\n overflow-x: auto;\n }\n}\n\n@media (min-width: 1200px) {\n\n :host {\n bottom: auto;\n flex-direction: column;\n width: 104px;\n height: 100%;\n border-top: 0;\n border-right: 1px solid var(--road-outline);\n }\n}\n\n/**\n * Button save drawer.\n */\n\n::slotted(.drawer-button-save) {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n","import { Component, Host, h, Prop, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport './../../utils/polyfill';\n\n/**\n * @slot - Content of the navbar, it should be road-navbar-item elements. Max 5 items on Mobile\n */\n\n@Component({\n tag: 'road-navbar',\n styleUrl: 'navbar.css',\n shadow: true,\n})\nexport class Navbar {\n\n /**\n * The selected tab component\n */\n @Prop() selectedTab?: string;\n @Watch('selectedTab')\n selectedTabChanged() {\n if (this.selectedTab !== undefined) {\n this.roadnavbarchanged.emit({\n tab: this.selectedTab,\n });\n this.roadNavbarChanged.emit({\n tab: this.selectedTab,\n });\n }\n }\n\n /** @internal */\n @Event() roadnavbarchanged!: EventEmitter;\n /** @internal */\n @Event() roadNavbarChanged!: EventEmitter;\n\n @Listen('roadNavbarItemClick')\n @Listen('roadnavbaritemclick')\n onNavbarChanged(ev: CustomEvent) {\n this.selectedTab = ev.detail.tab;\n }\n\n componentWillLoad() {\n this.selectedTabChanged();\n }\n\n render() {\n return (\n <Host\n role=\"menubar\"\n >\n <slot/>\n </Host>\n );\n }\n\n}\n"],"version":3}
|