@roadtrip/components 3.32.4 → 3.33.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/loader.cjs.js +1 -1
- package/dist/cjs/road-badge_14.cjs.entry.js +17 -15
- package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
- package/dist/cjs/road-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/road-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/road-phone-number-input.cjs.entry.js +26 -61
- 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-profil-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/road-progress-indicator-horizontal.cjs.entry.js +1 -1
- package/dist/cjs/road-progress-indicator-vertical-item.cjs.entry.js +1 -1
- package/dist/cjs/road-progress-indicator-vertical.cjs.entry.js +1 -1
- package/dist/cjs/road-progress-tracker-item.cjs.entry.js +1 -1
- package/dist/cjs/road-progress-tracker.cjs.entry.js +1 -1
- package/dist/cjs/road-progress.cjs.entry.js +1 -1
- package/dist/cjs/road-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/road-radio.cjs.entry.js +1 -1
- package/dist/cjs/road-range.cjs.entry.js +2 -2
- package/dist/cjs/road-rating.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button-bar.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js +2 -2
- package/dist/cjs/road-segmented-buttons.cjs.entry.js +1 -1
- package/dist/cjs/road-select-filter.cjs.entry.js +2 -2
- package/dist/cjs/road-select.cjs.entry.js +1 -1
- package/dist/cjs/road-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/road-spinner.cjs.entry.js +1 -1
- package/dist/cjs/road-switch.cjs.entry.js +2 -2
- package/dist/cjs/road-tab-bar.cjs.entry.js +2 -2
- package/dist/cjs/road-tab-button.cjs.entry.js +2 -2
- package/dist/cjs/road-tab.cjs.entry.js +2 -2
- package/dist/cjs/road-table.cjs.entry.js +1 -1
- package/dist/cjs/road-tabs.cjs.entry.js +1 -1
- package/dist/cjs/road-tag.cjs.entry.js +1 -1
- package/dist/cjs/road-text.cjs.entry.js +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js +1 -1
- package/dist/cjs/road-toast.cjs.entry.js +1 -1
- package/dist/cjs/road-toggle.cjs.entry.js +2 -2
- package/dist/cjs/road-toolbar-title-page.cjs.entry.js +1 -1
- package/dist/cjs/road-toolbar-title.cjs.entry.js +1 -1
- package/dist/cjs/road-toolbar-v2.cjs.entry.js +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/roadtrip.cjs.js +1 -1
- package/dist/collection/components/accordion/accordion.stories.js +38 -4
- package/dist/collection/components/alert/alert.stories.js +7 -0
- package/dist/collection/components/asset/asset.stories.js +6 -0
- package/dist/collection/components/autocomplete/autocomplete.stories.js +43 -47
- package/dist/collection/components/avatar/avatar.stories.js +6 -0
- package/dist/collection/components/badge/badge.stories.js +6 -0
- package/dist/collection/components/banner/banner.stories.js +33 -3
- package/dist/collection/components/button/button.stories.js +58 -67
- package/dist/collection/components/button-floating/button-floating.stories.js +32 -23
- package/dist/collection/components/card/card.stories.js +25 -15
- package/dist/collection/components/carousel/carousel.stories.js +72 -280
- package/dist/collection/components/checkbox/checkbox.stories.js +54 -33
- package/dist/collection/components/chip/chip.stories.js +32 -47
- package/dist/collection/components/collapse/collapse.stories.js +88 -78
- package/dist/collection/components/content-card/content-card.stories.js +30 -11
- package/dist/collection/components/counter/counter.stories.js +40 -11
- package/dist/collection/components/dialog/dialog.stories.js +37 -51
- package/dist/collection/components/drawer/drawer.css +9 -0
- package/dist/collection/components/drawer/drawer.js +34 -12
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/drawer/drawer.stories.js +70 -134
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown/dropdown.stories.js +69 -53
- package/dist/collection/components/duration/duration.stories.js +49 -45
- package/dist/collection/components/flap/flap.stories.js +22 -10
- package/dist/collection/components/input/input.stories.js +33 -0
- package/dist/collection/components/item/item.stories.js +25 -0
- package/dist/collection/components/list/list.stories.js +2 -0
- package/dist/collection/components/modal/modal.stories.js +14 -0
- package/dist/collection/components/navbar/navbar.stories.js +3 -0
- package/dist/collection/components/navbar-v2/navbar-v2.stories.js +4 -0
- package/dist/collection/components/phone-number-input/constants.js +3 -0
- package/dist/collection/components/phone-number-input/constants.js.map +1 -0
- package/dist/collection/components/phone-number-input/phone-number-input.css +198 -129
- package/dist/collection/components/phone-number-input/phone-number-input.js +23 -63
- package/dist/collection/components/phone-number-input/phone-number-input.js.map +1 -1
- package/dist/collection/components/phone-number-input/phone-number-input.stories.js +15 -1
- package/dist/collection/components/plate-number/plate-number.js +2 -2
- package/dist/collection/components/plate-number/plate-number.stories.js +13 -0
- package/dist/collection/components/profil-dropdown/profil-dropdown.js +1 -1
- package/dist/collection/components/profil-dropdown/profil-dropdown.stories.js +8 -0
- package/dist/collection/components/progress/progress.js +1 -1
- package/dist/collection/components/progress/progress.stories.js +12 -0
- package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.js +1 -1
- package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.stories.js +8 -0
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.js +1 -1
- package/dist/collection/components/progress-indicator-vertical/progress-indicator-vertical.stories.js +1 -0
- package/dist/collection/components/progress-indicator-vertical-item/progress-indicator-vertical-item.js +1 -1
- package/dist/collection/components/progress-tracker/progress-tracker.js +1 -1
- package/dist/collection/components/progress-tracker/progress-tracker.stories.js +1 -0
- package/dist/collection/components/progress-tracker-item/progress-tracker-item.js +1 -1
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/radio/radio.stories.js +13 -0
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/range/range.js +2 -2
- package/dist/collection/components/range/range.stories.js +11 -0
- package/dist/collection/components/rating/rating.js +1 -1
- package/dist/collection/components/rating/rating.stories.js +7 -0
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js +2 -2
- package/dist/collection/components/segmented-button-bar/segmented-button-bar.js +1 -1
- package/dist/collection/components/segmented-buttons/segmented-buttons.js +1 -1
- package/dist/collection/components/segmented-buttons/segmented-buttons.stories.js +2 -0
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/select/select.stories.js +13 -0
- package/dist/collection/components/select-filter/select-filter.js +2 -2
- package/dist/collection/components/select-filter/select-filter.stories.js +5 -0
- package/dist/collection/components/skeleton/skeleton.js +1 -1
- package/dist/collection/components/skeleton/skeleton.stories.js +2 -0
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/spinner/spinner.stories.js +2 -0
- package/dist/collection/components/switch/switch.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/table/table.stories.js +1 -0
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/tabs/tabs.stories.js +2 -0
- package/dist/collection/components/tag/tag.js +1 -1
- package/dist/collection/components/tag/tag.stories.js +3 -0
- package/dist/collection/components/text/text.js +1 -1
- package/dist/collection/components/text/text.stories.js +2 -0
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/textarea/textarea.stories.js +26 -0
- package/dist/collection/components/toast/toast.js +1 -1
- package/dist/collection/components/toast/toast.stories.js +6 -0
- package/dist/collection/components/toggle/toggle.js +2 -2
- package/dist/collection/components/toggle/toggle.stories.js +14 -0
- package/dist/collection/components/toolbar/toolbar.js +1 -1
- package/dist/collection/components/toolbar/toolbar.stories.js +6 -0
- package/dist/collection/components/toolbar-title/toolbar-title.js +1 -1
- package/dist/collection/components/toolbar-title-page/toolbar-title-page.js +1 -1
- package/dist/collection/components/toolbar-v2/toolbar-v2.js +1 -1
- package/dist/collection/components/toolbar-v2/toolbar-v2.stories.js +5 -0
- package/dist/collection/components/tooltip/tooltip.js +3 -3
- package/dist/collection/components/tooltip/tooltip.stories.js +11 -0
- package/dist/collection/components/utilities/text.stories.js +2 -0
- package/dist/collection/fonts/Muli-Black.woff +0 -0
- package/dist/collection/fonts/Muli-Black.woff2 +0 -0
- package/dist/collection/fonts/Muli-SemiBold.woff +0 -0
- package/dist/collection/fonts/Muli-SemiBold.woff2 +0 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/road-badge_14.entry.js +17 -15
- package/dist/esm/road-badge_14.entry.js.map +1 -1
- package/dist/esm/road-dropdown.entry.js +1 -1
- package/dist/esm/road-dropdown.entry.js.map +1 -1
- package/dist/esm/road-phone-number-input.entry.js +26 -61
- package/dist/esm/road-phone-number-input.entry.js.map +1 -1
- package/dist/esm/road-plate-number.entry.js +2 -2
- package/dist/esm/road-profil-dropdown.entry.js +1 -1
- package/dist/esm/road-progress-indicator-horizontal.entry.js +1 -1
- package/dist/esm/road-progress-indicator-vertical-item.entry.js +1 -1
- package/dist/esm/road-progress-indicator-vertical.entry.js +1 -1
- package/dist/esm/road-progress-tracker-item.entry.js +1 -1
- package/dist/esm/road-progress-tracker.entry.js +1 -1
- package/dist/esm/road-progress.entry.js +1 -1
- package/dist/esm/road-radio-group.entry.js +1 -1
- package/dist/esm/road-radio.entry.js +1 -1
- package/dist/esm/road-range.entry.js +2 -2
- package/dist/esm/road-rating.entry.js +1 -1
- package/dist/esm/road-segmented-button-bar.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js +2 -2
- package/dist/esm/road-segmented-buttons.entry.js +1 -1
- package/dist/esm/road-select-filter.entry.js +2 -2
- package/dist/esm/road-select.entry.js +1 -1
- package/dist/esm/road-skeleton.entry.js +1 -1
- package/dist/esm/road-spinner.entry.js +1 -1
- package/dist/esm/road-switch.entry.js +2 -2
- package/dist/esm/road-tab-bar.entry.js +2 -2
- package/dist/esm/road-tab-button.entry.js +2 -2
- package/dist/esm/road-tab.entry.js +2 -2
- package/dist/esm/road-table.entry.js +1 -1
- package/dist/esm/road-tabs.entry.js +1 -1
- package/dist/esm/road-tag.entry.js +1 -1
- package/dist/esm/road-text.entry.js +1 -1
- package/dist/esm/road-textarea.entry.js +1 -1
- package/dist/esm/road-toast.entry.js +1 -1
- package/dist/esm/road-toggle.entry.js +2 -2
- package/dist/esm/road-toolbar-title-page.entry.js +1 -1
- package/dist/esm/road-toolbar-title.entry.js +1 -1
- package/dist/esm/road-toolbar-v2.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js +3 -3
- package/dist/esm/roadtrip.js +1 -1
- package/dist/html.html-data.json +4 -0
- package/dist/roadtrip/fonts/Muli-Black.woff +0 -0
- package/dist/roadtrip/fonts/Muli-Black.woff2 +0 -0
- package/dist/roadtrip/fonts/Muli-SemiBold.woff +0 -0
- package/dist/roadtrip/fonts/Muli-SemiBold.woff2 +0 -0
- package/dist/roadtrip/{p-c1e2aa67.entry.js → p-04913d58.entry.js} +2 -2
- package/dist/roadtrip/{p-494aab48.entry.js → p-06fbd2ea.entry.js} +2 -2
- package/dist/roadtrip/{p-2a4a0928.entry.js → p-167cd2fc.entry.js} +2 -2
- package/dist/roadtrip/p-215afdbd.entry.js +2 -0
- package/dist/roadtrip/{p-8f7375bc.entry.js → p-2e049c8e.entry.js} +2 -2
- package/dist/roadtrip/{p-8ca23318.entry.js → p-37430583.entry.js} +2 -2
- package/dist/roadtrip/{p-9fce16aa.entry.js → p-3dcaa947.entry.js} +2 -2
- package/dist/roadtrip/{p-1e61ca1f.entry.js → p-3f5dff96.entry.js} +2 -2
- package/dist/roadtrip/{p-f8817c0e.entry.js → p-449affa6.entry.js} +2 -2
- package/dist/roadtrip/p-4675ea6d.entry.js +2 -0
- package/dist/roadtrip/{p-4a47999a.entry.js → p-5fea6a74.entry.js} +2 -2
- package/dist/roadtrip/{p-f9754547.entry.js → p-60bd73ad.entry.js} +2 -2
- package/dist/roadtrip/p-65f9bd9c.entry.js +2 -0
- package/dist/roadtrip/{p-c68fc795.entry.js → p-6c617506.entry.js} +2 -2
- package/dist/roadtrip/{p-4e779fd6.entry.js → p-6ff3b37c.entry.js} +2 -2
- package/dist/roadtrip/p-85b1e505.entry.js +2 -0
- package/dist/roadtrip/{p-a990a8b6.entry.js → p-862c1831.entry.js} +2 -2
- package/dist/roadtrip/{p-a990a8b6.entry.js.map → p-862c1831.entry.js.map} +1 -1
- package/dist/roadtrip/p-8b04fc62.entry.js +2 -0
- package/dist/roadtrip/{p-e2a00f9c.entry.js → p-913b72de.entry.js} +3 -3
- package/dist/roadtrip/p-913b72de.entry.js.map +1 -0
- package/dist/roadtrip/{p-87c1ff76.entry.js → p-99a6faae.entry.js} +2 -2
- package/dist/roadtrip/{p-bba18327.entry.js → p-b5fa8c5a.entry.js} +2 -2
- package/dist/roadtrip/{p-db243855.entry.js → p-b8c5d292.entry.js} +2 -2
- package/dist/roadtrip/{p-d68e64a8.entry.js → p-c28e7add.entry.js} +2 -2
- package/dist/roadtrip/{p-10e65612.entry.js → p-c47ccbf2.entry.js} +2 -2
- package/dist/roadtrip/{p-c3ef32ef.entry.js → p-c6824205.entry.js} +2 -2
- package/dist/roadtrip/{p-833c1e78.entry.js → p-cfd2919e.entry.js} +2 -2
- package/dist/roadtrip/{p-a0a95c0a.entry.js → p-d80e7563.entry.js} +2 -2
- package/dist/roadtrip/p-db77c354.entry.js +2 -0
- package/dist/roadtrip/{p-5fab1bc3.entry.js.map → p-db77c354.entry.js.map} +1 -1
- package/dist/roadtrip/{p-0cacf829.entry.js → p-ddfe088f.entry.js} +2 -2
- package/dist/roadtrip/p-ddfe088f.entry.js.map +1 -0
- package/dist/roadtrip/{p-4bbc889b.entry.js → p-e6c4c576.entry.js} +2 -2
- package/dist/roadtrip/{p-01be5517.entry.js → p-e6e9882b.entry.js} +2 -2
- package/dist/roadtrip/{p-5a6fbd7f.entry.js → p-e75ec60f.entry.js} +2 -2
- package/dist/roadtrip/{p-edbbe884.entry.js → p-ea1a175d.entry.js} +2 -2
- package/dist/roadtrip/{p-2903bdc0.entry.js → p-eac313e4.entry.js} +2 -2
- package/dist/roadtrip/{p-fb26ed7e.entry.js → p-f1b53143.entry.js} +2 -2
- package/dist/roadtrip/{p-b18cda16.entry.js → p-fd3c58b6.entry.js} +2 -2
- package/dist/roadtrip/{p-32845e72.entry.js → p-fe40ab3d.entry.js} +2 -2
- 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/types/components/drawer/drawer.d.ts +4 -1
- package/dist/types/components/phone-number-input/constants.d.ts +1 -0
- package/dist/types/components/phone-number-input/phone-number-input.d.ts +3 -9
- package/dist/types/components-react.d.ts +4 -4
- package/dist/types/components.d.ts +16 -0
- package/hydrate/index.js +305 -318
- package/hydrate/index.mjs +305 -318
- package/package.json +1 -1
- package/dist/roadtrip/p-0cacf829.entry.js.map +0 -1
- package/dist/roadtrip/p-427bd935.entry.js +0 -2
- package/dist/roadtrip/p-5fab1bc3.entry.js +0 -2
- package/dist/roadtrip/p-78b51033.entry.js +0 -2
- package/dist/roadtrip/p-9737182c.entry.js +0 -2
- package/dist/roadtrip/p-a925ff64.entry.js +0 -2
- package/dist/roadtrip/p-e2a00f9c.entry.js.map +0 -1
- package/dist/roadtrip/p-ee92b78d.entry.js +0 -2
- /package/dist/roadtrip/{p-c1e2aa67.entry.js.map → p-04913d58.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-494aab48.entry.js.map → p-06fbd2ea.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-2a4a0928.entry.js.map → p-167cd2fc.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-427bd935.entry.js.map → p-215afdbd.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-8f7375bc.entry.js.map → p-2e049c8e.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-8ca23318.entry.js.map → p-37430583.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-9fce16aa.entry.js.map → p-3dcaa947.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-1e61ca1f.entry.js.map → p-3f5dff96.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-f8817c0e.entry.js.map → p-449affa6.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-ee92b78d.entry.js.map → p-4675ea6d.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-4a47999a.entry.js.map → p-5fea6a74.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-f9754547.entry.js.map → p-60bd73ad.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-a925ff64.entry.js.map → p-65f9bd9c.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-c68fc795.entry.js.map → p-6c617506.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-4e779fd6.entry.js.map → p-6ff3b37c.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-9737182c.entry.js.map → p-85b1e505.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-78b51033.entry.js.map → p-8b04fc62.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-87c1ff76.entry.js.map → p-99a6faae.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-bba18327.entry.js.map → p-b5fa8c5a.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-db243855.entry.js.map → p-b8c5d292.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-d68e64a8.entry.js.map → p-c28e7add.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-10e65612.entry.js.map → p-c47ccbf2.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-c3ef32ef.entry.js.map → p-c6824205.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-833c1e78.entry.js.map → p-cfd2919e.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-a0a95c0a.entry.js.map → p-d80e7563.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-4bbc889b.entry.js.map → p-e6c4c576.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-01be5517.entry.js.map → p-e6e9882b.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-5a6fbd7f.entry.js.map → p-e75ec60f.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-edbbe884.entry.js.map → p-ea1a175d.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-2903bdc0.entry.js.map → p-eac313e4.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-fb26ed7e.entry.js.map → p-f1b53143.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-b18cda16.entry.js.map → p-fd3c58b6.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-32845e72.entry.js.map → p-fe40ab3d.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/components/drawer/drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Listen, Method, Prop, h, Host, Watch } from '@stencil/core';\nimport { navigationClose, navigationChevron } from '../../../icons';\n\n/**\n * @slot - Content of the drawer.\n * @slot title - replace the title with a custom title section when `'drawerTitle'` is not set\n * @slot footer - footer of the drawer\n * `<div slot=\"footer\">`\n `<road-button color=\"primary\" outline=\"true\" expand=\"true\">Annuler</road-button>`\n `<road-button color=\"primary\" expand=\"true\" class=\"mb-0\">Valider</road-button>`\n ` </div>`\n */\n\n\n@Component({\n tag: 'road-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class Drawer {\n\n /**\n * Current reference of the drawer\n */\n @Element() el!: HTMLRoadDrawerElement;\n\n /**\n * Set isOpen property to true to open the drawer\n */\n @Prop({ mutable: true }) isOpen: boolean = false;\n\n /**\n * position of the drawer. e.g. left, right, bottom\n */\n @Prop() position: string = 'left';\n\n /**\n * Width of the drawer\n */\n @Prop() drawerWidth: number = 480;\n\n /**\n * Inverse header colors\n */\n @Prop() hasInverseHeader: boolean = false;\n\n /**\n * Show / hide back icon\n */\n @Prop() hasBackIcon: boolean = false;\n\n /**\n * Show / hide back icon\n */\n @Prop() backText?: string;\n\n /**\n * Title of the drawer in the header bar\n */\n @Prop() drawerTitle?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabel?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabelBack?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabelClose?: string;\n\n /**\n * Show / hide close icon\n */\n @Prop() hasCloseIcon: boolean = true;\n\n /**\n * Indicate when opening the drawer\n */\n @Event({ eventName: 'open' }) onOpen!: EventEmitter<void>;\n\n /**\n * Indicate when closing the drawer\n */\n @Event({ eventName: 'close' }) onClose!: EventEmitter<void>;\n\n /**\n * Indicate when return to previous state of the drawer content\n */\n @Event({ eventName: 'back' }) onBack!: EventEmitter<void>;\n\n /**\n * Open the drawer\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * Close the drawer\n */\n @Method()\n async close() {\n this.isOpen = false;\n }\n\n /**\n * Return to previous state of the drawer content\n */\n @Method()\n async back() {\n this.onBack.emit();\n }\n\n // @Watch('isOpen')\n // handleOpen(openValue: boolean) {\n // if(openValue === true) {\n // this.onOpen.emit();\n // } else {\n // this.el.addEventListener('transitionend', () => {\n // this.onClose.emit();\n // this.el.shadowRoot && ((this.el.shadowRoot.querySelector('.drawer-body') as HTMLElement).scrollTop = 0);\n // }, { once: true});\n // }\n // }\n\n\n @Watch('isOpen')\n handleOpen(openValue: boolean) {\n if(openValue === true) {\n this.onOpen.emit();\n // Focus the first button element after the drawer is opened\n setTimeout(() => this.focusFirstButton(), 50); // Add a slight delay to ensure the element is rendered\n } else {\n this.el.addEventListener('transitionend', () => {\n this.onClose.emit();\n this.el.shadowRoot && ((this.el.shadowRoot.querySelector('.drawer-body') as HTMLElement).scrollTop = 0);\n }, { once: true });\n }\n }\n \n /**\n * Find and focus the first button element in the drawer\n */\n private focusFirstButton() {\n const buttonElement = this.el.shadowRoot?.querySelector('button') as HTMLElement;\n \n if (buttonElement) {\n buttonElement.focus(); // Focus the first button element\n }\n }\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 clicking on the cross or layer\n */\n private onClickBack = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n this.back();\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 private hasFooterContent(): boolean {\n const footerSlot = this.el.querySelector('[slot=\"footer\"]');\n return footerSlot !== null && footerSlot.childElementCount > 0;\n }\n\n render() {\n const drawerIsOpenClass = this.isOpen ? 'drawer-open' : '';\n const inverseHeaderClass = this.hasInverseHeader ? 'drawer-header-inverse' : '';\n const ariaLabel = this.ariaLabel !== undefined ? this.ariaLabel : 'drawer';\n const ariaLabelBack = this.ariaLabelBack !== undefined ? this.ariaLabelBack : 'Back';\n const ariaLabelClose = this.ariaLabelClose !== undefined ? this.ariaLabelClose : 'Close';\n const drawerDelimiterClass = this.drawerTitle !== undefined && !this.hasInverseHeader ? 'drawer-delimiter' : '';\n const backIconElement = this.hasBackIcon ? <button type=\"button\" class=\"drawer-action\" aria-label={`${ariaLabelBack}`} onClick={this.onClickBack}><road-icon icon={navigationChevron} rotate=\"180\"></road-icon>{this.backText}</button> : '';\n const closeIconElement = this.hasCloseIcon ? <button type=\"button\" class=\"drawer-close\" onClick={this.onClick} aria-label={`${ariaLabelClose}`}><road-icon icon={navigationClose} aria-hidden=\"true\"></road-icon></button> : '';\n const drawerWidthValue = this.position === 'bottom' ? '100%' : this.drawerWidth + 'px';\n\n return (\n <Host class={`${drawerIsOpenClass} drawer-${this.position}`} tabindex=\"0\" role=\"dialog\" aria-label={`${ariaLabel}`}>\n <div class=\"drawer-overlay\" onClick={this.onClick} tabindex=\"-1\"></div>\n <div class=\"drawer-dialog\" style={{ maxWidth: `${drawerWidthValue}` }} role=\"document\" tabindex=\"0\">\n <div class=\"drawer-content\">\n <header class={`drawer-header ${inverseHeaderClass} ${drawerDelimiterClass}`}>\n {backIconElement}\n {this.drawerTitle !== undefined ? <h2 class=\"drawer-title\">{this.drawerTitle}</h2> : <div class=\"drawer-title\"><slot name=\"title\" /></div>}\n {closeIconElement}\n </header>\n <div class=\"drawer-body\">\n <slot/>\n </div>\n {this.hasFooterContent() && (\n <footer class=\"drawer-footer\">\n <slot name=\"footer\"/>\n </footer>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/components/drawer/drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Listen, Method, Prop, h, Host, Watch } from '@stencil/core';\nimport { navigationClose, navigationChevron } from '../../../icons';\n\n/**\n * @slot - Content of the drawer.\n * @slot title - replace the title with a custom title section when `'drawerTitle'` is not set\n * @slot footer - footer of the drawer\n * `<div slot=\"footer\">`\n `<road-button color=\"primary\" outline=\"true\" expand=\"true\">Annuler</road-button>`\n `<road-button color=\"primary\" expand=\"true\" class=\"mb-0\">Valider</road-button>`\n ` </div>`\n */\n\n\n@Component({\n tag: 'road-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class Drawer {\n\n /**\n * Current reference of the drawer\n */\n @Element() el!: HTMLRoadDrawerElement;\n\n /**\n * Set isOpen property to true to open the drawer\n */\n @Prop({ mutable: true }) isOpen: boolean = false;\n\n /**\n * Set removePadding property to true to remove padding for drawer body\n */\n @Prop({ mutable: true }) removePadding: boolean = false;\n\n /**\n * position of the drawer. e.g. left, right, bottom\n */\n @Prop() position: string = 'left';\n\n /**\n * Width of the drawer\n */\n @Prop() drawerWidth: number = 480;\n\n /**\n * Inverse header colors\n */\n @Prop() hasInverseHeader: boolean = false;\n\n /**\n * Show / hide back icon\n */\n @Prop() hasBackIcon: boolean = false;\n\n /**\n * Show / hide back icon\n */\n @Prop() backText?: string;\n\n /**\n * Title of the drawer in the header bar\n */\n @Prop() drawerTitle?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabel?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabelBack?: string;\n\n /**\n * Aria label of the drawer\n */\n @Prop() ariaLabelClose?: string;\n\n /**\n * Show / hide close icon\n */\n @Prop() hasCloseIcon: boolean = true;\n\n /**\n * Indicate when opening the drawer\n */\n @Event({ eventName: 'open' }) onOpen!: EventEmitter<void>;\n\n /**\n * Indicate when closing the drawer\n */\n @Event({ eventName: 'close' }) onClose!: EventEmitter<void>;\n\n /**\n * Indicate when return to previous state of the drawer content\n */\n @Event({ eventName: 'back' }) onBack!: EventEmitter<void>;\n\n /**\n * Open the drawer\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * Close the drawer\n */\n @Method()\n async close() {\n this.isOpen = false;\n }\n\n /**\n * Return to previous state of the drawer content\n */\n @Method()\n async back() {\n this.onBack.emit();\n }\n\n // @Watch('isOpen')\n // handleOpen(openValue: boolean) {\n // if(openValue === true) {\n // this.onOpen.emit();\n // } else {\n // this.el.addEventListener('transitionend', () => {\n // this.onClose.emit();\n // this.el.shadowRoot && ((this.el.shadowRoot.querySelector('.drawer-body') as HTMLElement).scrollTop = 0);\n // }, { once: true});\n // }\n // }\n\n\n @Watch('isOpen')\n handleOpen(openValue: boolean) {\n if(openValue === true) {\n this.onOpen.emit();\n // Focus the first button element after the drawer is opened\n setTimeout(() => this.focusFirstButton(), 50); // Add a slight delay to ensure the element is rendered\n } else {\n this.el.addEventListener('transitionend', () => {\n this.onClose.emit();\n this.el.shadowRoot && ((this.el.shadowRoot.querySelector('.drawer-body') as HTMLElement).scrollTop = 0);\n }, { once: true });\n }\n }\n \n /**\n * Find and focus the first button element in the drawer\n */\n private focusFirstButton() {\n const buttonElement = this.el.shadowRoot?.querySelector('button') as HTMLElement;\n \n if (buttonElement) {\n buttonElement.focus(); // Focus the first button element\n }\n }\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 clicking on the cross or layer\n */\n private onClickBack = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n this.back();\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 drawerIsOpenClass = this.isOpen ? 'drawer-open' : '';\n const removePaddingClass = this.removePadding ? 'remove-padding' : '';\n const inverseHeaderClass = this.hasInverseHeader ? 'drawer-header-inverse' : '';\n const ariaLabel = this.ariaLabel ?? 'drawer';\n const ariaLabelBack = this.ariaLabelBack ?? 'Back';\n const ariaLabelClose = this.ariaLabelClose ?? 'Close';\n const drawerDelimiterClass = this.drawerTitle && !this.hasInverseHeader ? 'drawer-delimiter' : '';\n const backIconElement = this.hasBackIcon ? (\n <button type=\"button\" class=\"drawer-action\" aria-label={ariaLabelBack} onClick={this.onClickBack}>\n <road-icon icon={navigationChevron} rotate=\"180\"></road-icon>\n {this.backText}\n </button>\n ) : null;\n const closeIconElement = this.hasCloseIcon ? (\n <button type=\"button\" class=\"drawer-close\" onClick={this.onClick} aria-label={ariaLabelClose}>\n <road-icon icon={navigationClose} aria-hidden=\"true\"></road-icon>\n </button>\n ) : null;\n const drawerWidthValue = this.position === 'bottom' ? '100%' : `${this.drawerWidth}px`;\n \n return (\n <Host class={`${drawerIsOpenClass} drawer-${this.position}`} tabindex=\"0\" role=\"dialog\" aria-label={ariaLabel}>\n <div class=\"drawer-overlay\" onClick={this.onClick} tabindex=\"-1\"></div>\n <div class=\"drawer-dialog\" style={{ maxWidth: drawerWidthValue }} role=\"document\" tabindex=\"0\">\n <div class=\"drawer-content\">\n <header class={`drawer-header ${inverseHeaderClass} ${drawerDelimiterClass}`}>\n {backIconElement}\n {this.drawerTitle ? (\n <h2 class=\"drawer-title\">{this.drawerTitle}</h2>\n ) : (\n <div class=\"drawer-title\">\n <slot name=\"title\" />\n </div>\n )}\n {closeIconElement}\n </header>\n <div class={`drawer-body ${removePaddingClass}`}>\n <slot />\n </div>\n <footer class=\"drawer-footer\">\n <slot name=\"footer\" />\n </footer>\n </div>\n </div>\n </Host>\n );\n }\n \n}"]}
|
|
@@ -17,198 +17,135 @@ export default {
|
|
|
17
17
|
argTypes: {
|
|
18
18
|
'is-open': {
|
|
19
19
|
control: 'boolean',
|
|
20
|
+
description: 'Defines whether the drawer is open or closed.',
|
|
21
|
+
},
|
|
22
|
+
'remove-padding': {
|
|
23
|
+
control: 'boolean',
|
|
24
|
+
description: 'If true add padding for drawer body',
|
|
20
25
|
},
|
|
21
26
|
'has-back-icon': {
|
|
22
27
|
control: 'boolean',
|
|
28
|
+
description: 'Displays a back arrow icon in the header.',
|
|
23
29
|
},
|
|
24
30
|
'back-text': {
|
|
25
31
|
control: 'text',
|
|
32
|
+
description: 'Text label for the back button.',
|
|
26
33
|
},
|
|
27
34
|
'has-close-icon': {
|
|
28
35
|
control: 'boolean',
|
|
36
|
+
description: 'Displays a close (X) icon in the header.',
|
|
29
37
|
},
|
|
30
38
|
'has-inverse-header': {
|
|
31
39
|
control: 'boolean',
|
|
40
|
+
description: 'Uses an inverse color scheme for the header.',
|
|
32
41
|
},
|
|
33
42
|
position: {
|
|
34
43
|
options: ['left', 'bottom', 'right'],
|
|
35
|
-
control: {
|
|
36
|
-
|
|
37
|
-
},
|
|
44
|
+
control: { type: 'radio' },
|
|
45
|
+
description: 'Defines the drawer position.',
|
|
38
46
|
},
|
|
39
47
|
'drawer-width': {
|
|
40
48
|
control: 'number',
|
|
41
|
-
|
|
49
|
+
description: 'Sets the width of the drawer (only applicable for side drawers).',
|
|
50
|
+
table: {
|
|
51
|
+
defaultValue: { summary: 480 },
|
|
52
|
+
},
|
|
42
53
|
},
|
|
43
54
|
'drawer-title': {
|
|
44
55
|
control: 'text',
|
|
56
|
+
description: 'Defines the title displayed in the drawer header.',
|
|
45
57
|
},
|
|
46
|
-
|
|
58
|
+
footer: {
|
|
47
59
|
control: 'text',
|
|
60
|
+
description: ' `<div slot="footer"><road-button color="primary" outline="true" expand="true">Annuler</road-button>`\n` <road-button color="primary" expand="true">Envoyer</road-button></div>`',
|
|
48
61
|
},
|
|
49
|
-
|
|
50
|
-
// options: ['light', 'dark'],
|
|
51
|
-
// control: {
|
|
52
|
-
// type: null,
|
|
53
|
-
// },
|
|
54
|
-
// },
|
|
55
|
-
'title': {
|
|
62
|
+
title: {
|
|
56
63
|
control: 'text',
|
|
64
|
+
description: 'Custom title slot for advanced customization.',
|
|
57
65
|
},
|
|
58
66
|
'aria-label': {
|
|
59
67
|
control: 'text',
|
|
68
|
+
description: 'ARIA label for accessibility.',
|
|
60
69
|
},
|
|
61
70
|
'aria-label-back': {
|
|
62
71
|
control: 'text',
|
|
72
|
+
description: 'ARIA label for the back button.',
|
|
63
73
|
},
|
|
64
74
|
'aria-label-close': {
|
|
65
75
|
control: 'text',
|
|
76
|
+
description: 'ARIA label for the close button.',
|
|
66
77
|
},
|
|
67
78
|
' ': {
|
|
68
79
|
control: 'text',
|
|
80
|
+
description: 'Main content inside the drawer.',
|
|
69
81
|
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
close: {
|
|
76
|
-
control: {
|
|
77
|
-
type: null,
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
back: {
|
|
81
|
-
control: {
|
|
82
|
-
type: null,
|
|
83
|
-
},
|
|
82
|
+
'--z-index': {
|
|
83
|
+
table: { defaultValue: { summary: '10' } },
|
|
84
|
+
control: 'text',
|
|
85
|
+
description: 'Defines the z-index of the drawer.',
|
|
84
86
|
},
|
|
85
87
|
'--background': {
|
|
86
|
-
table: {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
control: {
|
|
90
|
-
type: null,
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
'--color': {
|
|
94
|
-
table: {
|
|
95
|
-
defaultValue: { summary: 'var(--road-grey-900)' },
|
|
96
|
-
},
|
|
97
|
-
control: {
|
|
98
|
-
type: null,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
'--header-icon': {
|
|
102
|
-
table: {
|
|
103
|
-
defaultValue: { summary: 'var(--road-grey-900)' },
|
|
104
|
-
},
|
|
105
|
-
control: {
|
|
106
|
-
type: null,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
'--header-color': {
|
|
110
|
-
table: {
|
|
111
|
-
defaultValue: { summary: 'var(--road-grey-900)' },
|
|
112
|
-
},
|
|
113
|
-
control: {
|
|
114
|
-
type: null,
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
'--header-background': {
|
|
118
|
-
table: {
|
|
119
|
-
defaultValue: { summary: 'var(--road-grey-000)' },
|
|
120
|
-
},
|
|
121
|
-
control: {
|
|
122
|
-
type: null,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
'--header-delimiter': {
|
|
126
|
-
table: {
|
|
127
|
-
defaultValue: { summary: '0' },
|
|
128
|
-
},
|
|
129
|
-
control: {
|
|
130
|
-
type: null,
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
'--back-chevron-color': {
|
|
134
|
-
table: {
|
|
135
|
-
defaultValue: { summary: 'var(--road-grey-900)' },
|
|
136
|
-
},
|
|
137
|
-
control: {
|
|
138
|
-
type: null,
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
'--max-height': {
|
|
142
|
-
table: {
|
|
143
|
-
defaultValue: { summary: 'auto' },
|
|
144
|
-
},
|
|
145
|
-
control: {
|
|
146
|
-
type: null,
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
'--z-index': {
|
|
150
|
-
table: {
|
|
151
|
-
defaultValue: { summary: '10' },
|
|
152
|
-
},
|
|
153
|
-
control: {
|
|
154
|
-
type: null,
|
|
155
|
-
},
|
|
88
|
+
table: { defaultValue: { summary: 'var(--road-grey-000)' } },
|
|
89
|
+
control: 'text',
|
|
90
|
+
description: 'Sets the background color of the drawer.',
|
|
156
91
|
},
|
|
157
92
|
},
|
|
158
93
|
args: {
|
|
159
94
|
'is-open': true,
|
|
160
|
-
|
|
161
|
-
'
|
|
162
|
-
'
|
|
163
|
-
'has-
|
|
164
|
-
'has-
|
|
95
|
+
'remove-padding': false,
|
|
96
|
+
position: 'right',
|
|
97
|
+
'drawer-width': 480,
|
|
98
|
+
'has-inverse-header': false,
|
|
99
|
+
'has-back-icon': false,
|
|
100
|
+
'has-close-icon': true,
|
|
101
|
+
'drawer-title': 'Drawer title',
|
|
102
|
+
' ': `<div>
|
|
103
|
+
<p>This is the drawer content.</p>
|
|
104
|
+
<road-button color="primary" expand>Confirm</road-button>
|
|
105
|
+
</div>`,
|
|
165
106
|
},
|
|
166
107
|
};
|
|
167
108
|
|
|
168
109
|
const Template = (args) => html`
|
|
169
|
-
<road-drawer
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
110
|
+
<road-drawer
|
|
111
|
+
?is-open="${args['is-open']}"
|
|
112
|
+
?remove-padding="${args['remove-padding']}"
|
|
113
|
+
?has-back-icon="${args['has-back-icon']}"
|
|
114
|
+
?has-close-icon="${args['has-close-icon']}"
|
|
115
|
+
?has-inverse-header="${args['has-inverse-header']}"
|
|
116
|
+
position="${ifDefined(args.position)}"
|
|
117
|
+
drawer-width="${ifDefined(args['drawer-width'])}"
|
|
118
|
+
drawer-title="${ifDefined(args['drawer-title'])}"
|
|
119
|
+
back-text="${ifDefined(args['back-text'])}"
|
|
120
|
+
aria-label="${ifDefined(args['aria-label'])}"
|
|
121
|
+
aria-label-back="${ifDefined(args['aria-label-back'])}"
|
|
122
|
+
aria-label-close="${ifDefined(args['aria-label-close'])}"
|
|
123
|
+
style="
|
|
124
|
+
--z-index: ${ifDefined(args['--z-index'])};
|
|
125
|
+
--background: ${ifDefined(args['--background'])};
|
|
126
|
+
"
|
|
127
|
+
>
|
|
128
|
+
${unsafeHTML(args.title)}
|
|
129
|
+
${unsafeHTML(args[' '])}
|
|
130
|
+
${unsafeHTML(args.footer)}
|
|
131
|
+
</road-drawer>
|
|
186
132
|
`;
|
|
187
133
|
|
|
188
134
|
export const Playground = Template.bind({});
|
|
189
135
|
|
|
190
136
|
export const HeaderInverse = Template.bind({});
|
|
191
137
|
HeaderInverse.args = {
|
|
192
|
-
'
|
|
193
|
-
position: 'right',
|
|
194
|
-
'drawer-width': 480,
|
|
195
|
-
'drawer-title': 'Drawer title',
|
|
138
|
+
'has-inverse-header': true,
|
|
196
139
|
};
|
|
197
140
|
|
|
198
141
|
export const WithBackButton = Template.bind({});
|
|
199
142
|
WithBackButton.args = {
|
|
200
|
-
'is-open': true,
|
|
201
|
-
position: 'right',
|
|
202
|
-
'drawer-width': 480,
|
|
203
|
-
'drawer-title': 'Drawer title',
|
|
204
143
|
'has-back-icon': true,
|
|
144
|
+
'back-text': 'Back',
|
|
205
145
|
};
|
|
206
146
|
|
|
207
|
-
export const
|
|
208
|
-
|
|
209
|
-
'is-open': true,
|
|
210
|
-
position: 'right',
|
|
211
|
-
'drawer-width': 480,
|
|
147
|
+
export const CustomTitle = Template.bind({});
|
|
148
|
+
CustomTitle.args = {
|
|
212
149
|
title: `<div slot="title" class="d-flex align-items-center">
|
|
213
150
|
<road-icon name="key" color="secondary" class="mr-16" role="img"></road-icon>
|
|
214
151
|
<road-text color="secondary">618</road-text>
|
|
@@ -216,9 +153,8 @@ customTitle.args = {
|
|
|
216
153
|
</div>`,
|
|
217
154
|
};
|
|
218
155
|
|
|
219
|
-
export const
|
|
220
|
-
|
|
221
|
-
'is-open': true,
|
|
156
|
+
export const BottomDrawer = Template.bind({});
|
|
157
|
+
BottomDrawer.args = {
|
|
222
158
|
position: 'bottom',
|
|
223
159
|
title: `<strong slot="title">Contact by SMS</strong>`,
|
|
224
160
|
' ': `<div class="bg-light p-16">
|
|
@@ -8,84 +8,100 @@ export default {
|
|
|
8
8
|
argTypes: {
|
|
9
9
|
'is-open': {
|
|
10
10
|
control: 'boolean',
|
|
11
|
+
description: 'Defines whether the dropdown is open or closed.',
|
|
11
12
|
},
|
|
12
13
|
'is-light': {
|
|
13
14
|
control: 'boolean',
|
|
15
|
+
description: 'Applies a light style to the dropdown.',
|
|
14
16
|
},
|
|
15
17
|
'is-medium': {
|
|
16
18
|
control: 'boolean',
|
|
19
|
+
description: 'Applies a medium-sized style to the dropdown.',
|
|
17
20
|
},
|
|
18
21
|
position: {
|
|
19
22
|
options: ['left', 'right'],
|
|
20
|
-
control: {
|
|
21
|
-
|
|
23
|
+
control: { type: 'radio' },
|
|
24
|
+
description: 'Sets the horizontal position of the dropdown.',
|
|
25
|
+
table: {
|
|
26
|
+
defaultValue: { summary: 'left' },
|
|
22
27
|
},
|
|
23
28
|
},
|
|
24
29
|
direction: {
|
|
25
30
|
options: ['top', 'bottom'],
|
|
26
|
-
control: {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
' ': {
|
|
31
|
-
control: {
|
|
32
|
-
type: null,
|
|
31
|
+
control: { type: 'radio' },
|
|
32
|
+
description: 'Sets the vertical direction in which the dropdown expands.',
|
|
33
|
+
table: {
|
|
34
|
+
defaultValue: { summary: 'bottom' },
|
|
33
35
|
},
|
|
34
36
|
},
|
|
35
37
|
list: {
|
|
36
|
-
control:
|
|
37
|
-
|
|
38
|
-
},
|
|
38
|
+
control: 'text',
|
|
39
|
+
description: 'Defines the list of items inside the dropdown.',
|
|
39
40
|
},
|
|
40
41
|
'--margin-top': {
|
|
41
|
-
table: {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
control: {
|
|
45
|
-
type: null,
|
|
46
|
-
},
|
|
42
|
+
table: { defaultValue: { summary: '0.5rem' } },
|
|
43
|
+
control: 'text',
|
|
44
|
+
description: 'Sets the margin-top of the dropdown.',
|
|
47
45
|
},
|
|
48
46
|
},
|
|
49
47
|
args: {
|
|
48
|
+
'is-open': true,
|
|
49
|
+
'is-light': false,
|
|
50
|
+
'is-medium': false,
|
|
50
51
|
position: 'left',
|
|
51
52
|
direction: 'bottom',
|
|
52
|
-
'is-open': true,
|
|
53
|
-
'is-light': null,
|
|
54
|
-
'is-medium': null,
|
|
55
53
|
list: `<road-list slot="list">
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
<road-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
</road-item>
|
|
74
|
-
<road-item button class="border-0">
|
|
75
|
-
<road-icon slot="start" name="picture" size="md" aria-hidden="true"></road-icon>
|
|
76
|
-
<road-label>
|
|
77
|
-
Label
|
|
78
|
-
</road-label>
|
|
79
|
-
</road-item>
|
|
80
|
-
</road-list>`,
|
|
54
|
+
<road-item button class="border-0">
|
|
55
|
+
<road-icon slot="start" name="picture" size="md" aria-hidden="true"></road-icon>
|
|
56
|
+
<road-label>Label</road-label>
|
|
57
|
+
</road-item>
|
|
58
|
+
<road-item button class="border-0">
|
|
59
|
+
<road-icon slot="start" name="picture" size="md" aria-hidden="true"></road-icon>
|
|
60
|
+
<road-label>Label</road-label>
|
|
61
|
+
</road-item>
|
|
62
|
+
<road-item button class="border-0">
|
|
63
|
+
<road-icon slot="start" name="picture" size="md" aria-hidden="true"></road-icon>
|
|
64
|
+
<road-label>Label</road-label>
|
|
65
|
+
</road-item>
|
|
66
|
+
<road-item button class="border-0">
|
|
67
|
+
<road-icon slot="start" name="picture" size="md" aria-hidden="true"></road-icon>
|
|
68
|
+
<road-label>Label</road-label>
|
|
69
|
+
</road-item>
|
|
70
|
+
</road-list>`,
|
|
81
71
|
},
|
|
82
72
|
};
|
|
83
73
|
|
|
84
|
-
|
|
85
|
-
<road-dropdown
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
74
|
+
const Template = (args) => html`
|
|
75
|
+
<road-dropdown
|
|
76
|
+
?is-open="${args['is-open']}"
|
|
77
|
+
?is-light="${args['is-light']}"
|
|
78
|
+
?is-medium="${args['is-medium']}"
|
|
79
|
+
position="${ifDefined(args.position)}"
|
|
80
|
+
direction="${ifDefined(args.direction)}"
|
|
81
|
+
style="--margin-top: ${ifDefined(args['--margin-top'])};"
|
|
82
|
+
>
|
|
83
|
+
${unsafeHTML(args.list)}
|
|
84
|
+
</road-dropdown>
|
|
91
85
|
`;
|
|
86
|
+
|
|
87
|
+
export const Playground = Template.bind({});
|
|
88
|
+
|
|
89
|
+
export const RightPosition = Template.bind({});
|
|
90
|
+
RightPosition.args = {
|
|
91
|
+
position: 'right',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const TopDirection = Template.bind({});
|
|
95
|
+
TopDirection.args = {
|
|
96
|
+
direction: 'top',
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const LightDropdown = Template.bind({});
|
|
100
|
+
LightDropdown.args = {
|
|
101
|
+
'is-light': true,
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export const MediumDropdown = Template.bind({});
|
|
105
|
+
MediumDropdown.args = {
|
|
106
|
+
'is-medium': true,
|
|
107
|
+
};
|
|
@@ -10,93 +10,97 @@ export default {
|
|
|
10
10
|
},
|
|
11
11
|
layout: 'fullscreen',
|
|
12
12
|
actions: {
|
|
13
|
-
handles: ['open', 'close'],
|
|
13
|
+
handles: ['open', 'close', 'roadselected'],
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
argTypes: {
|
|
17
17
|
'is-open': {
|
|
18
18
|
control: 'boolean',
|
|
19
|
+
description: 'Defines whether the duration picker is open or closed.',
|
|
19
20
|
},
|
|
20
21
|
header: {
|
|
21
22
|
control: 'text',
|
|
23
|
+
description: 'Title displayed in the duration picker.',
|
|
22
24
|
},
|
|
23
25
|
min: {
|
|
24
26
|
control: 'number',
|
|
27
|
+
description: 'Minimum selectable duration in minutes.',
|
|
25
28
|
},
|
|
26
29
|
max: {
|
|
27
30
|
control: 'number',
|
|
31
|
+
description: 'Maximum selectable duration in minutes.',
|
|
28
32
|
},
|
|
29
33
|
step: {
|
|
30
34
|
control: 'number',
|
|
31
35
|
min: 15,
|
|
36
|
+
description: 'Step interval for selecting the duration (in minutes).',
|
|
37
|
+
table: {
|
|
38
|
+
defaultValue: { summary: 15 },
|
|
39
|
+
},
|
|
32
40
|
},
|
|
33
41
|
roadselected: {
|
|
34
42
|
action: 'roadselected',
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
description: 'Triggered when a duration is selected.',
|
|
44
|
+
table: {
|
|
45
|
+
category: 'Events',
|
|
46
|
+
type: { summary: 'CustomEvent<{ value: number, label: string }>' },
|
|
37
47
|
},
|
|
38
48
|
},
|
|
39
|
-
open
|
|
40
|
-
description: '
|
|
49
|
+
open: {
|
|
50
|
+
description: 'Opens the duration picker.',
|
|
41
51
|
table: {
|
|
42
|
-
category: '
|
|
43
|
-
type: {
|
|
44
|
-
summary: 'void',
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
defaultValue: {
|
|
48
|
-
summary: null,
|
|
52
|
+
category: 'Methods',
|
|
53
|
+
type: { summary: 'void' },
|
|
49
54
|
},
|
|
50
55
|
},
|
|
51
|
-
close
|
|
52
|
-
description: '
|
|
56
|
+
close: {
|
|
57
|
+
description: 'Closes the duration picker.',
|
|
53
58
|
table: {
|
|
54
|
-
category: '
|
|
55
|
-
type: {
|
|
56
|
-
summary: 'void',
|
|
57
|
-
},
|
|
58
|
-
defaultValue: {
|
|
59
|
-
summary: null,
|
|
60
|
-
},
|
|
59
|
+
category: 'Methods',
|
|
60
|
+
type: { summary: 'void' },
|
|
61
61
|
},
|
|
62
62
|
},
|
|
63
63
|
},
|
|
64
64
|
args: {
|
|
65
65
|
'is-open': true,
|
|
66
|
+
header: 'Select a duration',
|
|
67
|
+
min: 15,
|
|
68
|
+
max: 240,
|
|
69
|
+
step: 15,
|
|
66
70
|
},
|
|
67
71
|
};
|
|
68
72
|
|
|
69
73
|
const Template = (args) => html`
|
|
70
|
-
<road-duration
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
></road-duration>
|
|
74
|
+
<road-duration
|
|
75
|
+
?is-open="${args['is-open']}"
|
|
76
|
+
header="${ifDefined(args.header)}"
|
|
77
|
+
min="${ifDefined(args.min)}"
|
|
78
|
+
max="${ifDefined(args.max)}"
|
|
79
|
+
step="${ifDefined(args.step)}"
|
|
80
|
+
@roadselected=${event => args.roadselected(event.detail)}
|
|
81
|
+
></road-duration>
|
|
78
82
|
`;
|
|
79
83
|
|
|
80
84
|
export const Playground = Template.bind({});
|
|
81
85
|
|
|
82
86
|
export const Example = () => html`
|
|
83
|
-
<road-label class="mb-8">Duration of the service</road-label>
|
|
84
|
-
<div class="d-flex align-items-center">
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
</div>
|
|
87
|
+
<road-label class="mb-8">Duration of the service</road-label>
|
|
88
|
+
<div class="d-flex align-items-center">
|
|
89
|
+
<road-input
|
|
90
|
+
class="input"
|
|
91
|
+
aria-label="Duration of the service"
|
|
92
|
+
style="width: 100px"
|
|
93
|
+
placeholder="00:15"
|
|
94
|
+
@roadfocus=${() => document.querySelector('.duration').open()}
|
|
95
|
+
></road-input>
|
|
96
|
+
<div class="text-content ml-8">hour(s)</div>
|
|
97
|
+
</div>
|
|
94
98
|
|
|
95
|
-
<road-duration
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
></road-duration>
|
|
99
|
+
<road-duration
|
|
100
|
+
class="duration"
|
|
101
|
+
header="Duration of the service"
|
|
102
|
+
@roadselected=${event => document.querySelector('.input').value = event.detail.label}
|
|
103
|
+
></road-duration>
|
|
100
104
|
`;
|
|
101
105
|
Example.parameters = {
|
|
102
106
|
docs: {
|