@0001-labs/design-system-1 0.3.0-alpha.13 → 0.3.0-alpha.14
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/DS1/0-face/calendar.ts +194 -0
- package/DS1/0-face/carousel.ts +623 -0
- package/DS1/0-face/component-visibility.ts +13 -0
- package/DS1/0-face/copy-text.ts +96 -0
- package/DS1/0-face/device.ts +8 -58
- package/DS1/0-face/dialog-swipe.ts +249 -0
- package/DS1/0-face/dialogs.ts +208 -0
- package/DS1/0-face/drawer.ts +258 -0
- package/DS1/0-face/feedback-words.ts +36 -0
- package/DS1/0-face/feedback.ts +40 -0
- package/DS1/0-face/format.ts +700 -0
- package/DS1/0-face/generated/toast-assets.ts +18 -0
- package/DS1/0-face/grid-fit.ts +1 -1
- package/DS1/0-face/grid.ts +3 -2
- package/DS1/0-face/header.ts +78 -0
- package/DS1/0-face/i18n.ts +93 -18
- package/DS1/0-face/keys.ts +276 -0
- package/DS1/0-face/languages.ts +4 -4
- package/DS1/0-face/layout-inspector.ts +6 -6
- package/DS1/0-face/library-styles.ts +33 -0
- package/DS1/0-face/load-toaster.ts +7 -0
- package/DS1/0-face/preference-options.ts +29 -0
- package/DS1/0-face/preferences.ts +3 -11
- package/DS1/0-face/pricing.ts +98 -43
- package/DS1/0-face/scaling.ts +160 -4
- package/DS1/0-face/shared-words.ts +9 -4
- package/DS1/0-face/sidebar.ts +201 -0
- package/DS1/0-face/theme-bootstrap.js +184 -0
- package/DS1/0-face/theme.ts +89 -47
- package/DS1/0-face/toast-queue.ts +157 -0
- package/DS1/0-face/toaster.ts +384 -0
- package/DS1/0-face/tooltips.ts +157 -15
- package/DS1/0-face/translations/da.json +60 -1
- package/DS1/0-face/translations/de.json +60 -1
- package/DS1/0-face/translations/en.json +60 -1
- package/DS1/0-face/translations/es.json +60 -1
- package/DS1/0-face/translations/fi.json +60 -1
- package/DS1/0-face/translations/fr.json +60 -1
- package/DS1/0-face/translations/is.json +60 -1
- package/DS1/0-face/translations/it.json +60 -1
- package/DS1/0-face/translations/ja.json +60 -1
- package/DS1/0-face/translations/ko.json +60 -1
- package/DS1/0-face/translations/nb.json +60 -1
- package/DS1/0-face/translations/pt-BR.json +60 -1
- package/DS1/0-face/translations/pt.json +60 -1
- package/DS1/0-face/translations/sv.json +60 -1
- package/DS1/0-face/translations/zh.json +60 -1
- package/DS1/0-face/translations-format.ts +3 -4
- package/DS1/1-root/card.css +192 -0
- package/DS1/1-root/carousel.css +136 -0
- package/DS1/1-root/cjk.css +23 -0
- package/DS1/1-root/component-metrics.css +1 -0
- package/DS1/1-root/component-tokens.css +51 -8
- package/DS1/1-root/controls.css +887 -14
- package/DS1/1-root/dialog-placement.css +191 -0
- package/DS1/1-root/document.css +183 -0
- package/DS1/1-root/drawer.css +83 -0
- package/DS1/1-root/empty.css +83 -0
- package/DS1/1-root/figures.css +141 -0
- package/DS1/1-root/fonts/Iosevka-LICENSE.md +3 -1
- package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
- package/DS1/1-root/fonts.css +69 -0
- package/DS1/1-root/footer.css +186 -0
- package/DS1/1-root/header.css +165 -0
- package/DS1/1-root/kbd.css +46 -0
- package/DS1/1-root/library-tokens.ts +91 -0
- package/DS1/1-root/measures.ts +53 -0
- package/DS1/1-root/notice.css +165 -0
- package/DS1/1-root/one.css +14 -84
- package/DS1/1-root/one.semantic.css +200 -148
- package/DS1/1-root/palette.css +58 -0
- package/DS1/1-root/palette.ts +19 -0
- package/DS1/1-root/progress.css +356 -0
- package/DS1/1-root/prose.css +202 -0
- package/DS1/1-root/row.css +297 -0
- package/DS1/1-root/table.css +111 -0
- package/DS1/1-root/text.css +70 -0
- package/DS1/2-core/button-split.ts +55 -0
- package/DS1/2-core/chart/chart.css +169 -0
- package/DS1/2-core/chart/grid-chart.ts +554 -0
- package/DS1/2-core/ds-avatar.ts +25 -6
- package/DS1/2-core/ds-badge.ts +10 -10
- package/DS1/2-core/ds-button.ts +111 -26
- package/DS1/2-core/ds-card.ts +135 -105
- package/DS1/2-core/ds-chart.ts +327 -0
- package/DS1/2-core/ds-composer.ts +8 -2
- package/DS1/2-core/ds-cycle.ts +97 -21
- package/DS1/2-core/ds-empty.ts +120 -0
- package/DS1/2-core/ds-icon.ts +11 -2
- package/DS1/2-core/ds-input.ts +165 -6
- package/DS1/2-core/ds-kbd.ts +78 -0
- package/DS1/2-core/ds-loading.ts +72 -0
- package/DS1/2-core/ds-notice.ts +180 -0
- package/DS1/2-core/ds-progress.ts +380 -0
- package/DS1/2-core/ds-spacing-handle.ts +22 -0
- package/DS1/2-core/ds-stat.ts +174 -0
- package/DS1/2-core/ds-switch.ts +1 -0
- package/DS1/2-core/ds-text.ts +15 -2
- package/DS1/2-core/ds-toast.ts +354 -0
- package/DS1/2-core/figures.ts +105 -0
- package/DS1/2-core/generated/ds-icon-map.ts +234 -128
- package/DS1/2-core/generated/icon-avatar.ts +2 -0
- package/DS1/2-core/generated/icons-extra.ts +118 -65
- package/DS1/2-core/generated/icons-immediate.ts +1 -1
- package/DS1/2-core/spacing-handle.ts +95 -0
- package/DS1/2-core/styles/ds-avatar.css +9 -8
- package/DS1/2-core/styles/ds-button-host.css +26 -3
- package/DS1/2-core/styles/ds-button-split.css +67 -0
- package/DS1/2-core/styles/ds-button.css +49 -15
- package/DS1/2-core/styles/ds-card.css +34 -0
- package/DS1/2-core/styles/ds-composer.css +13 -0
- package/DS1/2-core/styles/ds-cycle.css +69 -0
- package/DS1/2-core/styles/ds-empty.css +18 -0
- package/DS1/2-core/styles/ds-gap.css +1 -0
- package/DS1/2-core/styles/ds-icon.css +1 -0
- package/DS1/2-core/styles/ds-input.css +59 -6
- package/DS1/2-core/styles/ds-kbd.css +12 -0
- package/DS1/2-core/styles/ds-loading.css +13 -0
- package/DS1/2-core/styles/ds-notice.css +30 -0
- package/DS1/2-core/styles/ds-progress.css +25 -0
- package/DS1/2-core/styles/ds-select.css +2 -2
- package/DS1/2-core/styles/ds-spacing-handle.css +8 -0
- package/DS1/2-core/styles/ds-split.css +2 -62
- package/DS1/2-core/styles/ds-stat.css +34 -0
- package/DS1/2-core/styles/ds-switch.css +16 -1
- package/DS1/2-core/styles/ds-text.css +43 -12
- package/DS1/2-core/styles/ds-toast.css +182 -0
- package/DS1/2-core/styles/ds-tooltip.css +1 -0
- package/DS1/3-unit/calendar-base.ts +263 -0
- package/DS1/3-unit/ds-accordion.ts +9 -1
- package/DS1/3-unit/ds-avatar-group.ts +1 -0
- package/DS1/3-unit/ds-calendar-large.ts +349 -0
- package/DS1/3-unit/ds-calendar.ts +344 -0
- package/DS1/3-unit/ds-carousel.ts +368 -0
- package/DS1/3-unit/ds-date-picker.ts +540 -0
- package/DS1/3-unit/ds-form.ts +45 -37
- package/DS1/3-unit/ds-list.ts +48 -1
- package/DS1/3-unit/ds-matrix.ts +318 -0
- package/DS1/3-unit/ds-menu.ts +8 -4
- package/DS1/3-unit/ds-row.ts +84 -1
- package/DS1/3-unit/ds-sidebar.ts +280 -0
- package/DS1/3-unit/ds-table.ts +75 -34
- package/DS1/3-unit/styles/ds-accordion.css +1 -0
- package/DS1/3-unit/styles/ds-avatar-group.css +2 -4
- package/DS1/3-unit/styles/ds-calendar-large.css +165 -0
- package/DS1/3-unit/styles/ds-calendar.css +238 -0
- package/DS1/3-unit/styles/ds-carousel.css +30 -0
- package/DS1/3-unit/styles/ds-date-picker.css +124 -0
- package/DS1/3-unit/styles/ds-list.css +1 -0
- package/DS1/3-unit/styles/ds-matrix.css +203 -0
- package/DS1/3-unit/styles/ds-menu.css +31 -6
- package/DS1/3-unit/styles/ds-row.css +84 -2
- package/DS1/3-unit/styles/ds-sidebar.css +117 -0
- package/DS1/3-unit/styles/ds-table.css +3 -74
- package/DS1/4-page/ds-dialog.ts +40 -4
- package/DS1/4-page/ds-document.ts +240 -0
- package/DS1/4-page/ds-footer.ts +165 -0
- package/DS1/4-page/ds-grid.ts +39 -59
- package/DS1/4-page/ds-header.ts +171 -0
- package/DS1/4-page/ds-page.ts +184 -0
- package/DS1/4-page/email.ts +2 -3
- package/DS1/4-page/styles/ds-container.css +1 -0
- package/DS1/4-page/styles/ds-document.css +18 -0
- package/DS1/4-page/styles/ds-footer.css +29 -0
- package/DS1/4-page/styles/ds-grid.css +31 -85
- package/DS1/4-page/styles/ds-header.css +57 -0
- package/DS1/4-page/styles/ds-page.css +214 -0
- package/DS1/components.ts +7 -1
- package/DS1/index.ts +26 -6
- package/DS1/react/avatar.ts +4 -5
- package/DS1/react/button-split.ts +29 -0
- package/DS1/react/button.ts +32 -13
- package/DS1/react/carousel.ts +76 -0
- package/DS1/react/dialog.ts +36 -5
- package/DS1/react/document.ts +14 -0
- package/DS1/react/empty.ts +32 -0
- package/DS1/react/footer.ts +17 -0
- package/DS1/react/header.ts +15 -0
- package/DS1/react/input.ts +28 -17
- package/DS1/react/kbd.ts +21 -0
- package/DS1/react/loading.ts +18 -0
- package/DS1/react/notice.ts +59 -0
- package/DS1/react/page.ts +13 -0
- package/DS1/react/progress.ts +99 -0
- package/DS1/react/sidebar.ts +60 -0
- package/DS1/react/spacing-handle.ts +21 -0
- package/DS1/react/stat.ts +73 -0
- package/DS1/react/toast.ts +82 -0
- package/DS1/x-icon/Tabler-LICENSE.md +27 -0
- package/DS1/x-icon/airtable.svg +5 -0
- package/DS1/x-icon/attach.svg +3 -0
- package/DS1/x-icon/audio.svg +3 -0
- package/DS1/x-icon/bag-alt.svg +3 -0
- package/DS1/x-icon/bank.svg +3 -0
- package/DS1/x-icon/banknote.svg +3 -0
- package/DS1/x-icon/bolt.svg +3 -0
- package/DS1/x-icon/book-alt.svg +3 -0
- package/DS1/x-icon/book.svg +4 -0
- package/DS1/x-icon/box.svg +3 -0
- package/DS1/x-icon/briefcase.svg +3 -0
- package/DS1/x-icon/building.svg +4 -0
- package/DS1/x-icon/car.svg +3 -0
- package/DS1/x-icon/card.svg +3 -0
- package/DS1/x-icon/cart.svg +3 -0
- package/DS1/x-icon/{ezo-item-button-start.svg → chevron-left.svg} +1 -1
- package/DS1/x-icon/{ezo-android-screen-stats.svg → chevron-right.svg} +1 -1
- package/DS1/x-icon/cloud.svg +3 -0
- package/DS1/x-icon/coffee.svg +3 -0
- package/DS1/x-icon/coins.svg +3 -0
- package/DS1/x-icon/cursor.svg +3 -0
- package/DS1/x-icon/curve.svg +7 -0
- package/DS1/x-icon/dislike.svg +4 -0
- package/DS1/x-icon/dot-bank.svg +3 -0
- package/DS1/x-icon/dot-banknote.svg +3 -0
- package/DS1/x-icon/dot-banknotes.svg +3 -0
- package/DS1/x-icon/dot-card.svg +3 -0
- package/DS1/x-icon/dot-coin.svg +3 -0
- package/DS1/x-icon/dot-coins.svg +3 -0
- package/DS1/x-icon/dot-receipt.svg +3 -0
- package/DS1/x-icon/dot-safe.svg +3 -0
- package/DS1/x-icon/dot-transfer.svg +3 -0
- package/DS1/x-icon/dot-wallet.svg +3 -0
- package/DS1/x-icon/download.svg +4 -0
- package/DS1/x-icon/drive.svg +5 -0
- package/DS1/x-icon/drop.svg +3 -0
- package/DS1/x-icon/dropbox.svg +3 -0
- package/DS1/x-icon/dumbbell.svg +3 -0
- package/DS1/x-icon/eye-off.svg +3 -0
- package/DS1/x-icon/eye.svg +3 -0
- package/DS1/x-icon/facebook.svg +3 -0
- package/DS1/x-icon/figma.svg +5 -0
- package/DS1/x-icon/flame.svg +3 -0
- package/DS1/x-icon/flip.svg +5 -0
- package/DS1/x-icon/food.svg +3 -0
- package/DS1/x-icon/fuel.svg +3 -0
- package/DS1/x-icon/game.svg +3 -0
- package/DS1/x-icon/gift.svg +3 -0
- package/DS1/x-icon/github.svg +3 -0
- package/DS1/x-icon/heart.svg +3 -0
- package/DS1/x-icon/history.svg +3 -0
- package/DS1/x-icon/home-alt.svg +3 -0
- package/DS1/x-icon/income.svg +3 -0
- package/DS1/x-icon/info.svg +5 -0
- package/DS1/x-icon/instagram.svg +5 -0
- package/DS1/x-icon/jpbank.svg +3 -0
- package/DS1/x-icon/key.svg +4 -0
- package/DS1/x-icon/keyboard.svg +3 -0
- package/DS1/x-icon/like.svg +4 -0
- package/DS1/x-icon/linkedin.svg +7 -0
- package/DS1/x-icon/loom.svg +6 -0
- package/DS1/x-icon/map.svg +4 -0
- package/DS1/x-icon/medical.svg +3 -0
- package/DS1/x-icon/{ezo-android-screen-lists.svg → minus.svg} +1 -1
- package/DS1/x-icon/moon.svg +3 -0
- package/DS1/x-icon/move.svg +3 -0
- package/DS1/x-icon/music-alt.svg +3 -0
- package/DS1/x-icon/music.svg +5 -0
- package/DS1/x-icon/notion.svg +6 -0
- package/DS1/x-icon/offline.svg +3 -0
- package/DS1/x-icon/pause.svg +4 -0
- package/DS1/x-icon/paw.svg +3 -0
- package/DS1/x-icon/pdf.svg +3 -0
- package/DS1/x-icon/people.svg +5 -0
- package/DS1/x-icon/percent.svg +3 -0
- package/DS1/x-icon/phone.svg +3 -0
- package/DS1/x-icon/pill.svg +3 -0
- package/DS1/x-icon/plane.svg +3 -0
- package/DS1/x-icon/postal.svg +3 -0
- package/DS1/x-icon/present.svg +4 -0
- package/DS1/x-icon/reaction.svg +5 -0
- package/DS1/x-icon/receipt.svg +3 -0
- package/DS1/x-icon/refresh.svg +3 -0
- package/DS1/x-icon/refund.svg +3 -0
- package/DS1/x-icon/repeat.svg +3 -0
- package/DS1/x-icon/rotate.svg +4 -0
- package/DS1/x-icon/safe.svg +3 -0
- package/DS1/x-icon/school-alt.svg +3 -0
- package/DS1/x-icon/shield-alt.svg +3 -0
- package/DS1/x-icon/shield.svg +4 -0
- package/DS1/x-icon/shirt.svg +3 -0
- package/DS1/x-icon/shop.svg +3 -0
- package/DS1/x-icon/sign-in.svg +3 -0
- package/DS1/x-icon/sign-out.svg +3 -0
- package/DS1/x-icon/slack.svg +6 -0
- package/DS1/x-icon/sparkle.svg +3 -0
- package/DS1/x-icon/start.svg +4 -0
- package/DS1/x-icon/{ezo-item-button-reopen.svg → stop.svg} +1 -1
- package/DS1/x-icon/sun.svg +3 -0
- package/DS1/x-icon/system.svg +4 -0
- package/DS1/x-icon/tag.svg +3 -0
- package/DS1/x-icon/ticket.svg +3 -0
- package/DS1/x-icon/title-struck.svg +4 -0
- package/DS1/x-icon/train.svg +3 -0
- package/DS1/x-icon/transfer.svg +3 -0
- package/DS1/x-icon/tv.svg +3 -0
- package/DS1/x-icon/upload.svg +4 -0
- package/DS1/x-icon/video.svg +4 -0
- package/DS1/x-icon/vimeo.svg +3 -0
- package/DS1/x-icon/wallet.svg +3 -0
- package/DS1/x-icon/wifi.svg +3 -0
- package/DS1/x-icon/window.svg +4 -0
- package/DS1/x-icon/wrench.svg +3 -0
- package/DS1/x-icon/x-brand.svg +4 -0
- package/DS1/x-icon/youtube.svg +4 -0
- package/README.md +3 -3
- package/dist/0-face/calendar.d.ts +75 -0
- package/dist/0-face/calendar.d.ts.map +1 -0
- package/dist/0-face/calendar.js +149 -0
- package/dist/0-face/carousel.d.ts +174 -0
- package/dist/0-face/carousel.d.ts.map +1 -0
- package/dist/0-face/carousel.js +583 -0
- package/dist/0-face/component-visibility.d.ts +7 -0
- package/dist/0-face/component-visibility.d.ts.map +1 -0
- package/dist/0-face/component-visibility.js +10 -0
- package/dist/0-face/copy-text.d.ts +11 -0
- package/dist/0-face/copy-text.d.ts.map +1 -0
- package/dist/0-face/copy-text.js +97 -0
- package/dist/0-face/device.d.ts +3 -7
- package/dist/0-face/device.d.ts.map +1 -1
- package/dist/0-face/device.js +7 -41
- package/dist/0-face/dialog-swipe.d.ts +49 -0
- package/dist/0-face/dialog-swipe.d.ts.map +1 -0
- package/dist/0-face/dialog-swipe.js +239 -0
- package/dist/0-face/dialogs.d.ts +33 -0
- package/dist/0-face/dialogs.d.ts.map +1 -0
- package/dist/0-face/dialogs.js +173 -0
- package/dist/0-face/drawer.d.ts +64 -0
- package/dist/0-face/drawer.d.ts.map +1 -0
- package/dist/0-face/drawer.js +256 -0
- package/dist/0-face/feedback-words.d.ts +21 -0
- package/dist/0-face/feedback-words.d.ts.map +1 -0
- package/dist/0-face/feedback-words.js +30 -0
- package/dist/0-face/feedback.d.ts +41 -0
- package/dist/0-face/feedback.d.ts.map +1 -0
- package/dist/0-face/feedback.js +35 -0
- package/dist/0-face/format.d.ts +166 -0
- package/dist/0-face/format.d.ts.map +1 -0
- package/dist/0-face/format.js +445 -0
- package/dist/0-face/generated/toast-assets.d.ts +11 -0
- package/dist/0-face/generated/toast-assets.d.ts.map +1 -0
- package/dist/0-face/generated/toast-assets.js +14 -0
- package/dist/0-face/grid-fit.js +1 -1
- package/dist/0-face/grid.d.ts.map +1 -1
- package/dist/0-face/grid.js +2 -1
- package/dist/0-face/header.d.ts +38 -0
- package/dist/0-face/header.d.ts.map +1 -0
- package/dist/0-face/header.js +80 -0
- package/dist/0-face/i18n.d.ts +32 -2
- package/dist/0-face/i18n.d.ts.map +1 -1
- package/dist/0-face/i18n.js +65 -19
- package/dist/0-face/keys.d.ts +104 -0
- package/dist/0-face/keys.d.ts.map +1 -0
- package/dist/0-face/keys.js +253 -0
- package/dist/0-face/languages.d.ts +2 -2
- package/dist/0-face/languages.js +3 -3
- package/dist/0-face/layout-inspector.js +6 -6
- package/dist/0-face/library-styles.d.ts +7 -0
- package/dist/0-face/library-styles.d.ts.map +1 -0
- package/dist/0-face/library-styles.js +29 -0
- package/dist/0-face/load-toaster.d.ts +8 -0
- package/dist/0-face/load-toaster.d.ts.map +1 -0
- package/dist/0-face/load-toaster.js +7 -0
- package/dist/0-face/preference-options.d.ts +34 -0
- package/dist/0-face/preference-options.d.ts.map +1 -0
- package/dist/0-face/preference-options.js +1 -0
- package/dist/0-face/preferences.d.ts +3 -12
- package/dist/0-face/preferences.d.ts.map +1 -1
- package/dist/0-face/pricing.d.ts +19 -9
- package/dist/0-face/pricing.d.ts.map +1 -1
- package/dist/0-face/pricing.js +81 -40
- package/dist/0-face/scaling.d.ts +71 -1
- package/dist/0-face/scaling.d.ts.map +1 -1
- package/dist/0-face/scaling.js +108 -3
- package/dist/0-face/shared-words.d.ts +9 -4
- package/dist/0-face/shared-words.d.ts.map +1 -1
- package/dist/0-face/sidebar.d.ts +69 -0
- package/dist/0-face/sidebar.d.ts.map +1 -0
- package/dist/0-face/sidebar.js +191 -0
- package/dist/0-face/theme-bootstrap.d.ts +1 -0
- package/dist/0-face/theme-bootstrap.d.ts.map +1 -0
- package/dist/0-face/theme-bootstrap.js +214 -0
- package/dist/0-face/theme.d.ts +32 -0
- package/dist/0-face/theme.d.ts.map +1 -1
- package/dist/0-face/theme.js +69 -43
- package/dist/0-face/toast-queue.d.ts +110 -0
- package/dist/0-face/toast-queue.d.ts.map +1 -0
- package/dist/0-face/toast-queue.js +98 -0
- package/dist/0-face/toaster.d.ts +27 -0
- package/dist/0-face/toaster.d.ts.map +1 -0
- package/dist/0-face/toaster.js +373 -0
- package/dist/0-face/tooltips.d.ts +24 -1
- package/dist/0-face/tooltips.d.ts.map +1 -1
- package/dist/0-face/tooltips.js +155 -16
- package/dist/0-face/translations/da.json +60 -1
- package/dist/0-face/translations/de.json +60 -1
- package/dist/0-face/translations/en.json +60 -1
- package/dist/0-face/translations/es.json +60 -1
- package/dist/0-face/translations/fi.json +60 -1
- package/dist/0-face/translations/fr.json +60 -1
- package/dist/0-face/translations/is.json +60 -1
- package/dist/0-face/translations/it.json +60 -1
- package/dist/0-face/translations/ja.json +60 -1
- package/dist/0-face/translations/ko.json +60 -1
- package/dist/0-face/translations/nb.json +60 -1
- package/dist/0-face/translations/pt-BR.json +60 -1
- package/dist/0-face/translations/pt.json +60 -1
- package/dist/0-face/translations/sv.json +60 -1
- package/dist/0-face/translations/zh.json +60 -1
- package/dist/0-face/translations-format.d.ts.map +1 -1
- package/dist/0-face/translations-format.js +3 -4
- package/dist/0-face/tree.d.ts +69 -0
- package/dist/0-face/tree.d.ts.map +1 -0
- package/dist/0-face/tree.js +191 -0
- package/dist/1-root/library-tokens.d.ts +31 -0
- package/dist/1-root/library-tokens.d.ts.map +1 -0
- package/dist/1-root/library-tokens.js +84 -0
- package/dist/1-root/measures.d.ts +52 -0
- package/dist/1-root/measures.d.ts.map +1 -0
- package/dist/1-root/measures.js +49 -0
- package/dist/1-root/palette.d.ts +5 -0
- package/dist/1-root/palette.d.ts.map +1 -1
- package/dist/1-root/palette.js +18 -0
- package/dist/2-core/button-split.d.ts +21 -0
- package/dist/2-core/button-split.d.ts.map +1 -0
- package/dist/2-core/button-split.js +48 -0
- package/dist/2-core/chart/grid-chart.d.ts +113 -0
- package/dist/2-core/chart/grid-chart.d.ts.map +1 -0
- package/dist/2-core/chart/grid-chart.js +466 -0
- package/dist/2-core/ds-avatar.d.ts +20 -3
- package/dist/2-core/ds-avatar.d.ts.map +1 -1
- package/dist/2-core/ds-avatar.js +19 -5
- package/dist/2-core/ds-badge.js +10 -13
- package/dist/2-core/ds-banner.d.ts +23 -7
- package/dist/2-core/ds-banner.d.ts.map +1 -1
- package/dist/2-core/ds-banner.js +48 -12
- package/dist/2-core/ds-button.d.ts +76 -0
- package/dist/2-core/ds-button.d.ts.map +1 -1
- package/dist/2-core/ds-button.js +101 -26
- package/dist/2-core/ds-card.d.ts +76 -11
- package/dist/2-core/ds-card.d.ts.map +1 -1
- package/dist/2-core/ds-card.js +129 -105
- package/dist/2-core/ds-chart.d.ts +105 -0
- package/dist/2-core/ds-chart.d.ts.map +1 -0
- package/dist/2-core/ds-chart.js +390 -0
- package/dist/2-core/ds-composer.d.ts +7 -0
- package/dist/2-core/ds-composer.d.ts.map +1 -1
- package/dist/2-core/ds-composer.js +1 -1
- package/dist/2-core/ds-cycle.d.ts +36 -2
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +95 -18
- package/dist/2-core/ds-empty.d.ts +74 -0
- package/dist/2-core/ds-empty.d.ts.map +1 -0
- package/dist/2-core/ds-empty.js +96 -0
- package/dist/2-core/ds-icon.d.ts +6 -0
- package/dist/2-core/ds-icon.d.ts.map +1 -1
- package/dist/2-core/ds-icon.js +12 -2
- package/dist/2-core/ds-input.d.ts +39 -1
- package/dist/2-core/ds-input.d.ts.map +1 -1
- package/dist/2-core/ds-input.js +150 -6
- package/dist/2-core/ds-kbd.d.ts +48 -0
- package/dist/2-core/ds-kbd.d.ts.map +1 -0
- package/dist/2-core/ds-kbd.js +65 -0
- package/dist/2-core/ds-language.d.ts +8 -1
- package/dist/2-core/ds-language.d.ts.map +1 -1
- package/dist/2-core/ds-language.js +2 -2
- package/dist/2-core/ds-loading.d.ts +40 -0
- package/dist/2-core/ds-loading.d.ts.map +1 -0
- package/dist/2-core/ds-loading.js +63 -0
- package/dist/2-core/ds-meter.d.ts +103 -0
- package/dist/2-core/ds-meter.d.ts.map +1 -0
- package/dist/2-core/ds-meter.js +124 -0
- package/dist/2-core/ds-notice.d.ts +103 -0
- package/dist/2-core/ds-notice.d.ts.map +1 -0
- package/dist/2-core/ds-notice.js +152 -0
- package/dist/2-core/ds-pagedots.d.ts +64 -7
- package/dist/2-core/ds-pagedots.d.ts.map +1 -1
- package/dist/2-core/ds-pagedots.js +124 -18
- package/dist/2-core/ds-progress.d.ts +200 -0
- package/dist/2-core/ds-progress.d.ts.map +1 -0
- package/dist/2-core/ds-progress.js +319 -0
- package/dist/2-core/ds-spacing-handle.d.ts +25 -0
- package/dist/2-core/ds-spacing-handle.d.ts.map +1 -0
- package/dist/2-core/ds-spacing-handle.js +25 -0
- package/dist/2-core/ds-split.d.ts +4 -67
- package/dist/2-core/ds-split.d.ts.map +1 -1
- package/dist/2-core/ds-split.js +4 -98
- package/dist/2-core/ds-stat.d.ts +126 -0
- package/dist/2-core/ds-stat.d.ts.map +1 -0
- package/dist/2-core/ds-stat.js +137 -0
- package/dist/2-core/ds-steps.d.ts +72 -0
- package/dist/2-core/ds-steps.d.ts.map +1 -0
- package/dist/2-core/ds-steps.js +114 -0
- package/dist/2-core/ds-switch.d.ts +1 -0
- package/dist/2-core/ds-switch.d.ts.map +1 -1
- package/dist/2-core/ds-switch.js +1 -0
- package/dist/2-core/ds-text.d.ts +15 -2
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +13 -0
- package/dist/2-core/ds-textarea.d.ts.map +1 -1
- package/dist/2-core/ds-textarea.js +1 -0
- package/dist/2-core/ds-toast.d.ts +139 -0
- package/dist/2-core/ds-toast.d.ts.map +1 -0
- package/dist/2-core/ds-toast.js +329 -0
- package/dist/2-core/ds-toggle.d.ts +11 -0
- package/dist/2-core/ds-toggle.d.ts.map +1 -0
- package/dist/2-core/ds-toggle.js +10 -0
- package/dist/2-core/figures.d.ts +56 -0
- package/dist/2-core/figures.d.ts.map +1 -0
- package/dist/2-core/figures.js +70 -0
- package/dist/2-core/generated/ds-icon-map.d.ts +118 -65
- package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -1
- package/dist/2-core/generated/ds-icon-map.js +234 -128
- package/dist/2-core/generated/icon-avatar.d.ts +2 -0
- package/dist/2-core/generated/icon-avatar.d.ts.map +1 -0
- package/dist/2-core/generated/icon-avatar.js +2 -0
- package/dist/2-core/generated/icons-extra.d.ts.map +1 -1
- package/dist/2-core/generated/icons-extra.js +118 -65
- package/dist/2-core/generated/icons-immediate.d.ts +1 -1
- package/dist/2-core/generated/icons-immediate.d.ts.map +1 -1
- package/dist/2-core/generated/icons-immediate.js +1 -1
- package/dist/2-core/spacing-handle.d.ts +28 -0
- package/dist/2-core/spacing-handle.d.ts.map +1 -0
- package/dist/2-core/spacing-handle.js +146 -0
- package/dist/3-unit/calendar-base.d.ts +149 -0
- package/dist/3-unit/calendar-base.d.ts.map +1 -0
- package/dist/3-unit/calendar-base.js +172 -0
- package/dist/3-unit/ds-accordion.d.ts +9 -0
- package/dist/3-unit/ds-accordion.d.ts.map +1 -1
- package/dist/3-unit/ds-accordion.js +7 -1
- package/dist/3-unit/ds-avatar-group.d.ts +1 -0
- package/dist/3-unit/ds-avatar-group.d.ts.map +1 -1
- package/dist/3-unit/ds-calendar-large.d.ts +138 -0
- package/dist/3-unit/ds-calendar-large.d.ts.map +1 -0
- package/dist/3-unit/ds-calendar-large.js +305 -0
- package/dist/3-unit/ds-calendar.d.ts +175 -0
- package/dist/3-unit/ds-calendar.d.ts.map +1 -0
- package/dist/3-unit/ds-calendar.js +303 -0
- package/dist/3-unit/ds-carousel.d.ts +182 -0
- package/dist/3-unit/ds-carousel.d.ts.map +1 -0
- package/dist/3-unit/ds-carousel.js +327 -0
- package/dist/3-unit/ds-date-picker.d.ts +203 -0
- package/dist/3-unit/ds-date-picker.d.ts.map +1 -0
- package/dist/3-unit/ds-date-picker.js +499 -0
- package/dist/3-unit/ds-form.d.ts.map +1 -1
- package/dist/3-unit/ds-form.js +38 -28
- package/dist/3-unit/ds-list.d.ts +12 -0
- package/dist/3-unit/ds-list.d.ts.map +1 -1
- package/dist/3-unit/ds-list.js +52 -1
- package/dist/3-unit/ds-matrix.d.ts +146 -0
- package/dist/3-unit/ds-matrix.d.ts.map +1 -0
- package/dist/3-unit/ds-matrix.js +248 -0
- package/dist/3-unit/ds-menu.d.ts +1 -1
- package/dist/3-unit/ds-menu.d.ts.map +1 -1
- package/dist/3-unit/ds-menu.js +7 -4
- package/dist/3-unit/ds-row.d.ts +66 -0
- package/dist/3-unit/ds-row.d.ts.map +1 -1
- package/dist/3-unit/ds-row.js +80 -1
- package/dist/3-unit/ds-sidebar.d.ts +108 -0
- package/dist/3-unit/ds-sidebar.d.ts.map +1 -0
- package/dist/3-unit/ds-sidebar.js +268 -0
- package/dist/3-unit/ds-table.d.ts +28 -10
- package/dist/3-unit/ds-table.d.ts.map +1 -1
- package/dist/3-unit/ds-table.js +53 -25
- package/dist/3-unit/ds-tree.d.ts +69 -0
- package/dist/3-unit/ds-tree.d.ts.map +1 -0
- package/dist/3-unit/ds-tree.js +136 -0
- package/dist/4-page/ds-dialog.d.ts +16 -1
- package/dist/4-page/ds-dialog.d.ts.map +1 -1
- package/dist/4-page/ds-dialog.js +39 -3
- package/dist/4-page/ds-document.d.ts +98 -0
- package/dist/4-page/ds-document.d.ts.map +1 -0
- package/dist/4-page/ds-document.js +213 -0
- package/dist/4-page/ds-footer.d.ts +100 -0
- package/dist/4-page/ds-footer.d.ts.map +1 -0
- package/dist/4-page/ds-footer.js +119 -0
- package/dist/4-page/ds-grid.d.ts +32 -12
- package/dist/4-page/ds-grid.d.ts.map +1 -1
- package/dist/4-page/ds-grid.js +30 -39
- package/dist/4-page/ds-header.d.ts +84 -0
- package/dist/4-page/ds-header.d.ts.map +1 -0
- package/dist/4-page/ds-header.js +143 -0
- package/dist/4-page/ds-layout.d.ts +1 -0
- package/dist/4-page/ds-layout.d.ts.map +1 -1
- package/dist/4-page/ds-layout.js +1 -1
- package/dist/4-page/ds-page.d.ts +110 -0
- package/dist/4-page/ds-page.d.ts.map +1 -0
- package/dist/4-page/ds-page.js +155 -0
- package/dist/4-page/email.d.ts +2 -3
- package/dist/4-page/email.d.ts.map +1 -1
- package/dist/4-page/email.js +2 -3
- package/dist/components.d.ts +4 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +4 -1
- package/dist/design-system-1.bundle.js +11304 -4322
- package/dist/design-system-1.bundle.js.map +1 -1
- package/dist/design-system-1.bundle.min.js +8867 -4132
- package/dist/design-system-1.bundle.min.js.map +1 -1
- package/dist/design-system-1.css +1 -1
- package/dist/feedback.js +541 -0
- package/dist/feedback.js.map +1 -0
- package/dist/icons-extra-B4Iotc7s.js +298 -0
- package/dist/icons-extra-B4Iotc7s.js.map +1 -0
- package/dist/icons-extra-C4sCgoUj.js +185 -0
- package/dist/icons-extra-C4sCgoUj.js.map +1 -0
- package/dist/icons-extra-DSav6uTU.js +300 -0
- package/dist/icons-extra-DSav6uTU.js.map +1 -0
- package/dist/icons-extra-Dc_yVWIz.js +1024 -0
- package/dist/icons-extra-Dc_yVWIz.js.map +1 -0
- package/dist/icons-extra-cfzoudMf.js +1030 -0
- package/dist/icons-extra-cfzoudMf.js.map +1 -0
- package/dist/icons-extra-g_xpwZhZ.js +631 -0
- package/dist/icons-extra-g_xpwZhZ.js.map +1 -0
- package/dist/index.d.ts +23 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -6
- package/dist/react/avatar.d.ts +5 -9
- package/dist/react/avatar.d.ts.map +1 -1
- package/dist/react/avatar.js +2 -2
- package/dist/react/button-split.d.ts +19 -0
- package/dist/react/button-split.d.ts.map +1 -0
- package/dist/react/button-split.js +35 -0
- package/dist/react/button.d.ts +18 -7
- package/dist/react/button.d.ts.map +1 -1
- package/dist/react/button.js +13 -4
- package/dist/react/carousel.d.ts +63 -0
- package/dist/react/carousel.d.ts.map +1 -0
- package/dist/react/carousel.js +47 -0
- package/dist/react/choice.d.ts +1 -1
- package/dist/react/context-menu.d.ts +337 -337
- package/dist/react/dialog.d.ts +684 -678
- package/dist/react/dialog.d.ts.map +1 -1
- package/dist/react/dialog.js +29 -3
- package/dist/react/document.d.ts +11 -0
- package/dist/react/document.d.ts.map +1 -0
- package/dist/react/document.js +10 -0
- package/dist/react/empty.d.ts +34 -0
- package/dist/react/empty.d.ts.map +1 -0
- package/dist/react/empty.js +8 -0
- package/dist/react/file-picker.d.ts +1 -1
- package/dist/react/footer.d.ts +13 -0
- package/dist/react/footer.d.ts.map +1 -0
- package/dist/react/footer.js +12 -0
- package/dist/react/header.d.ts +12 -0
- package/dist/react/header.d.ts.map +1 -0
- package/dist/react/header.js +11 -0
- package/dist/react/input.d.ts +31 -9
- package/dist/react/input.d.ts.map +1 -1
- package/dist/react/input.js +94 -94
- package/dist/react/kbd.d.ts +26 -0
- package/dist/react/kbd.d.ts.map +1 -0
- package/dist/react/kbd.js +8 -0
- package/dist/react/loading.d.ts +14 -0
- package/dist/react/loading.d.ts.map +1 -0
- package/dist/react/loading.js +14 -0
- package/dist/react/meter.d.ts +64 -0
- package/dist/react/meter.d.ts.map +1 -0
- package/dist/react/meter.js +15 -0
- package/dist/react/notice.d.ts +45 -0
- package/dist/react/notice.d.ts.map +1 -0
- package/dist/react/notice.js +34 -0
- package/dist/react/page.d.ts +10 -0
- package/dist/react/page.d.ts.map +1 -0
- package/dist/react/page.js +9 -0
- package/dist/react/progress.d.ts +107 -0
- package/dist/react/progress.d.ts.map +1 -0
- package/dist/react/progress.js +47 -0
- package/dist/react/sidebar.d.ts +44 -0
- package/dist/react/sidebar.d.ts.map +1 -0
- package/dist/react/sidebar.js +41 -0
- package/dist/react/spacing-handle.d.ts +13 -0
- package/dist/react/spacing-handle.d.ts.map +1 -0
- package/dist/react/spacing-handle.js +18 -0
- package/dist/react/split.d.ts +6 -14
- package/dist/react/split.d.ts.map +1 -1
- package/dist/react/split.js +5 -31
- package/dist/react/stat.d.ts +78 -0
- package/dist/react/stat.d.ts.map +1 -0
- package/dist/react/stat.js +25 -0
- package/dist/react/steps.d.ts +36 -0
- package/dist/react/steps.d.ts.map +1 -0
- package/dist/react/steps.js +10 -0
- package/dist/react/toast.d.ts +37 -0
- package/dist/react/toast.d.ts.map +1 -0
- package/dist/react/toast.js +55 -0
- package/dist/react/tree.d.ts +31 -0
- package/dist/react/tree.d.ts.map +1 -0
- package/dist/react/tree.js +37 -0
- package/dist/shared-words-BfnT24Fe.js +1635 -0
- package/dist/shared-words-BfnT24Fe.js.map +1 -0
- package/dist/shared-words-CyZYc_De.js +1818 -0
- package/dist/shared-words-CyZYc_De.js.map +1 -0
- package/dist/shared-words-DAVSET4Z.js +1800 -0
- package/dist/shared-words-DAVSET4Z.js.map +1 -0
- package/dist/shared-words-UCvnkctb.js +1653 -0
- package/dist/shared-words-UCvnkctb.js.map +1 -0
- package/package.json +16 -5
- package/DS1/2-core/ds-banner.ts +0 -122
- package/DS1/2-core/ds-date.ts +0 -24
- package/DS1/2-core/ds-language.ts +0 -94
- package/DS1/2-core/ds-pagedots.ts +0 -52
- package/DS1/2-core/ds-split.ts +0 -122
- package/DS1/2-core/ds-textarea.ts +0 -136
- package/DS1/2-core/styles/ds-banner.css +0 -77
- package/DS1/2-core/styles/ds-date.css +0 -9
- package/DS1/2-core/styles/ds-language.css +0 -78
- package/DS1/2-core/styles/ds-pagedots.css +0 -31
- package/DS1/2-core/styles/ds-textarea.css +0 -27
- package/DS1/4-page/ds-layout.ts +0 -949
- package/DS1/4-page/styles/ds-layout.css +0 -246
- package/DS1/react/split.ts +0 -42
- package/DS1/x-icon/ezo-accordion-chevron.svg +0 -11
- package/DS1/x-icon/ezo-account-close.svg +0 -1
- package/DS1/x-icon/ezo-android-screen-archive.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-calendar.svg +0 -6
- package/DS1/x-icon/ezo-android-screen-camera.svg +0 -5
- package/DS1/x-icon/ezo-android-screen-check.svg +0 -3
- package/DS1/x-icon/ezo-android-screen-compose.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-globe.svg +0 -1
- package/DS1/x-icon/ezo-android-screen-shared.svg +0 -5
- package/DS1/x-icon/ezo-android-screen-store.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-views.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-work.svg +0 -3
- package/DS1/x-icon/ezo-arrow-cursor.svg +0 -8
- package/DS1/x-icon/ezo-block-accordion.svg +0 -1
- package/DS1/x-icon/ezo-block-divider.svg +0 -1
- package/DS1/x-icon/ezo-block-group.svg +0 -1
- package/DS1/x-icon/ezo-block-image.svg +0 -1
- package/DS1/x-icon/ezo-block-section.svg +0 -1
- package/DS1/x-icon/ezo-block-table.svg +0 -1
- package/DS1/x-icon/ezo-code.svg +0 -14
- package/DS1/x-icon/ezo-down.svg +0 -3
- package/DS1/x-icon/ezo-figma-premium-star.svg +0 -5
- package/DS1/x-icon/ezo-item-button-complete.svg +0 -4
- package/DS1/x-icon/ezo-item-button-header.svg +0 -3
- package/DS1/x-icon/ezo-item-button-open.svg +0 -3
- package/DS1/x-icon/ezo-item-button-star.svg +0 -3
- package/DS1/x-icon/ezo-item-button-unheader.svg +0 -7
- package/DS1/x-icon/ezo-item-button-unstar.svg +0 -5
- package/DS1/x-icon/ezo-item-star.svg +0 -5
- package/DS1/x-icon/ezo-left.svg +0 -3
- package/DS1/x-icon/ezo-logo.svg +0 -1
- package/DS1/x-icon/ezo-mic.svg +0 -8
- package/DS1/x-icon/ezo-move-column.svg +0 -14
- package/DS1/x-icon/ezo-move-row.svg +0 -18
- package/DS1/x-icon/ezo-navigation-check.svg +0 -1
- package/DS1/x-icon/ezo-note-back.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-complete.svg +0 -11
- package/DS1/x-icon/ezo-note-menu-delete.svg +0 -4
- package/DS1/x-icon/ezo-note-menu-duplicate.svg +0 -8
- package/DS1/x-icon/ezo-note-menu-note.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-page.svg +0 -3
- package/DS1/x-icon/ezo-note-menu-star.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-start.svg +0 -6
- package/DS1/x-icon/ezo-note-menu-stop.svg +0 -6
- package/DS1/x-icon/ezo-note-more.svg +0 -7
- package/DS1/x-icon/ezo-note-star.svg +0 -5
- package/DS1/x-icon/ezo-pattern-call-to-action.svg +0 -1
- package/DS1/x-icon/ezo-play.svg +0 -5
- package/DS1/x-icon/ezo-premium-star.svg +0 -5
- package/DS1/x-icon/ezo-setting-1xdots.svg +0 -13
- package/DS1/x-icon/ezo-setting-1xgrid.svg +0 -10
- package/DS1/x-icon/ezo-setting-1xlines.svg +0 -7
- package/DS1/x-icon/ezo-setting-2xdots.svg +0 -8
- package/DS1/x-icon/ezo-setting-2xgrid.svg +0 -8
- package/DS1/x-icon/ezo-setting-2xlines.svg +0 -6
- package/DS1/x-icon/ezo-setting-blank.svg +0 -5
- package/DS1/x-icon/ezo-store-chevron.svg +0 -1
- package/DS1/x-icon/ezo-upgrade-close.svg +0 -5
- package/DS1/x-icon/product-sources.json +0 -2557
- /package/DS1/x-icon/{ezo-password-visibility-see.svg → password-see.svg} +0 -0
- /package/DS1/x-icon/{ezo-password-visibility-unsee.svg → password-unsee.svg} +0 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
// ds-carousel.ts
|
|
2
|
+
// Slides side by side that snap sideways, one to a stop, tied to a row of
|
|
3
|
+
// page dots and optional previous and next buttons; or, with slides of their
|
|
4
|
+
// own width, a strip of several in view that can run on to the window's
|
|
5
|
+
// edges, loop without an end and, when asked, move on by itself. Drawn by
|
|
6
|
+
// 1-root/carousel.css, the same classes a page without scripts writes, and
|
|
7
|
+
// moved by the helpers it shares with 0-face/carousel.ts.
|
|
8
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
9
|
+
import { getText } from "../0-face/i18n";
|
|
10
|
+
import { define } from "../0-face/define";
|
|
11
|
+
import { COPY, autoplayInterval, bleedOf, driveCarousel, nearestSlide, prefersReducedMotion, scrollToSlide } from "../0-face/carousel";
|
|
12
|
+
import "../2-core/ds-icon";
|
|
13
|
+
import "../2-core/ds-progress";
|
|
14
|
+
import metrics from "../1-root/component-metrics.css?inline";
|
|
15
|
+
import controls from "../1-root/controls.css?inline";
|
|
16
|
+
import carousel from "../1-root/carousel.css?inline";
|
|
17
|
+
import styles from "./styles/ds-carousel.css?inline";
|
|
18
|
+
/** A whole number of squares, or `undefined` for a value that is not one. */
|
|
19
|
+
const squares = (value, least) => typeof value === "number" && Number.isFinite(value) && value >= least ? Math.floor(value) : undefined;
|
|
20
|
+
/**
|
|
21
|
+
* @element ds-carousel
|
|
22
|
+
* @prop {string} label - The region's name: a translation key, or literal
|
|
23
|
+
* words. Name what the slides show ("Colours", "What people say").
|
|
24
|
+
* @prop {boolean} literal - Show `label` as written, never looked up.
|
|
25
|
+
* @prop {number} current - The slide in view, from 0. Setting it scrolls there.
|
|
26
|
+
* @prop {boolean} buttons - Show previous and next buttons beside the dots.
|
|
27
|
+
* @prop {boolean} noDots - Leave the dots out (`no-dots`).
|
|
28
|
+
* @prop {boolean} end - Draw the last dot as an end marker.
|
|
29
|
+
* @prop {number | "auto"} slideWidth - Each slide's width in whole squares
|
|
30
|
+
* (`slide-width`); the carousel's own width when not set; `auto` for slides
|
|
31
|
+
* of their own width, a strip of several in view.
|
|
32
|
+
* @prop {number} gap - Squares between slides; one by default.
|
|
33
|
+
* @prop {string} bleed - `none` (the default) keeps the strip in its box;
|
|
34
|
+
* `end` runs it on to the window's end edge, the first slide still on the
|
|
35
|
+
* box's start; `both` runs it to both edges.
|
|
36
|
+
* @prop {boolean} loop - Hold the slides three times over, so the strip has no
|
|
37
|
+
* end. The copies are hidden from assistive technology and never focused;
|
|
38
|
+
* a looping carousel draws no dots.
|
|
39
|
+
* @prop {string} autoplay - Move on a slide at a time by itself: empty for
|
|
40
|
+
* every five seconds, or a number of milliseconds. Held while a person is
|
|
41
|
+
* in the strip or cannot see it, never under reduced motion, and always
|
|
42
|
+
* with a pause button.
|
|
43
|
+
* @prop {boolean} free - Slide freely, without stopping at slides.
|
|
44
|
+
*
|
|
45
|
+
* @slot - The slides, one element each.
|
|
46
|
+
*
|
|
47
|
+
* @fires change - A person moved to another slide: by swiping, scrolling, a
|
|
48
|
+
* dot or a button. `detail` is `{ index, previous }`. Setting `current` or
|
|
49
|
+
* calling `goTo()` does not fire it.
|
|
50
|
+
*
|
|
51
|
+
* The element is a region described as a carousel, named by `label`; each
|
|
52
|
+
* slide is a group labelled "2 of 5" unless the page labels it, and the
|
|
53
|
+
* current slide is announced politely when it changes. It moves on its own
|
|
54
|
+
* only with `autoplay`. `bleed`, `loop` and `autoplay` are read when the
|
|
55
|
+
* element first draws; put a new element in its place to change them.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* <ds-carousel label="Colours" slide-width="12" buttons>
|
|
59
|
+
* <figure>…</figure>
|
|
60
|
+
* <figure>…</figure>
|
|
61
|
+
* </ds-carousel>
|
|
62
|
+
*/
|
|
63
|
+
export class Carousel extends LitElement {
|
|
64
|
+
constructor() {
|
|
65
|
+
super();
|
|
66
|
+
/** The strip's drive: the bleed's measures, the loop's copies and autoplay. */
|
|
67
|
+
this.drive = null;
|
|
68
|
+
/** Attributes this element wrote, so what the page wrote is left alone. */
|
|
69
|
+
this.own = new Map();
|
|
70
|
+
this.frame = 0;
|
|
71
|
+
/** `current` changed from inside: the track is already there or on its way. */
|
|
72
|
+
this.moving = false;
|
|
73
|
+
this.relabel = () => { this.labelSlides(); this.requestUpdate(); };
|
|
74
|
+
this.scrolled = () => {
|
|
75
|
+
cancelAnimationFrame(this.frame);
|
|
76
|
+
// A loop has no place to point to: nothing to follow.
|
|
77
|
+
if (this.loop)
|
|
78
|
+
return;
|
|
79
|
+
this.frame = requestAnimationFrame(() => {
|
|
80
|
+
if (this.pending !== undefined) {
|
|
81
|
+
// A scroll asked for by a dot or a button: wait for it to stop before following the track again.
|
|
82
|
+
clearTimeout(this.settle);
|
|
83
|
+
this.settle = setTimeout(() => { this.pending = undefined; }, 150);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const track = this.track;
|
|
87
|
+
if (track)
|
|
88
|
+
this.show(nearestSlide(track, this.slides, this.index));
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
this.ended = () => { this.pending = undefined; };
|
|
92
|
+
this.picked = (event) => {
|
|
93
|
+
// The dots are this carousel's own; their pick becomes its change.
|
|
94
|
+
event.stopPropagation();
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
this.move(event.detail.index);
|
|
97
|
+
};
|
|
98
|
+
this.literal = false;
|
|
99
|
+
this.current = 0;
|
|
100
|
+
this.buttons = false;
|
|
101
|
+
this.noDots = false;
|
|
102
|
+
this.end = false;
|
|
103
|
+
this.bleed = "none";
|
|
104
|
+
this.loop = false;
|
|
105
|
+
this.autoplay = null;
|
|
106
|
+
this.free = false;
|
|
107
|
+
this.count = 0;
|
|
108
|
+
this.announcement = "";
|
|
109
|
+
this.paused = false;
|
|
110
|
+
}
|
|
111
|
+
/** The slides: the elements given to the carousel, without a loop's copies. */
|
|
112
|
+
get slides() {
|
|
113
|
+
return [...this.children].filter((child) => child instanceof HTMLElement && !child.hasAttribute("slot") && !child.hasAttribute(COPY));
|
|
114
|
+
}
|
|
115
|
+
/** Milliseconds between autoplay steps; 0 for none. */
|
|
116
|
+
get every() {
|
|
117
|
+
return autoplayInterval(this.autoplay);
|
|
118
|
+
}
|
|
119
|
+
/** Slides of their own width: a strip. */
|
|
120
|
+
get strip() {
|
|
121
|
+
return this.slideWidth === "auto";
|
|
122
|
+
}
|
|
123
|
+
get track() {
|
|
124
|
+
return this.renderRoot.querySelector(".ds-carousel__track");
|
|
125
|
+
}
|
|
126
|
+
/** The slide in view, inside the count. */
|
|
127
|
+
get index() {
|
|
128
|
+
const current = Number.isFinite(this.current) ? Math.floor(this.current) : 0;
|
|
129
|
+
return Math.max(0, Math.min(this.count - 1, current));
|
|
130
|
+
}
|
|
131
|
+
connectedCallback() {
|
|
132
|
+
super.connectedCallback();
|
|
133
|
+
window.addEventListener("language-changed", this.relabel);
|
|
134
|
+
window.addEventListener("translations-loaded", this.relabel);
|
|
135
|
+
}
|
|
136
|
+
disconnectedCallback() {
|
|
137
|
+
window.removeEventListener("language-changed", this.relabel);
|
|
138
|
+
window.removeEventListener("translations-loaded", this.relabel);
|
|
139
|
+
cancelAnimationFrame(this.frame);
|
|
140
|
+
clearTimeout(this.settle);
|
|
141
|
+
this.drive?.stop();
|
|
142
|
+
this.drive = null;
|
|
143
|
+
super.disconnectedCallback();
|
|
144
|
+
}
|
|
145
|
+
words(value, fallback, params) {
|
|
146
|
+
const text = value && this.literal ? value : getText(value || fallback, params) || value || fallback;
|
|
147
|
+
return params ? text.replace(/\{\{?(\w+)\}?\}/g, (whole, name) => (name in params ? String(params[name]) : whole)) : text;
|
|
148
|
+
}
|
|
149
|
+
/** Writes an attribute the page has not written, and remembers it as this element's. */
|
|
150
|
+
write(element, name, value) {
|
|
151
|
+
const mine = this.own.get(element) ?? new Set();
|
|
152
|
+
if (element.hasAttribute(name) && !mine.has(name))
|
|
153
|
+
return;
|
|
154
|
+
mine.add(name);
|
|
155
|
+
this.own.set(element, mine);
|
|
156
|
+
if (element.getAttribute(name) !== value)
|
|
157
|
+
element.setAttribute(name, value);
|
|
158
|
+
}
|
|
159
|
+
labelSlides() {
|
|
160
|
+
const slides = this.slides;
|
|
161
|
+
const labelled = (slide) => slide.hasAttribute("aria-labelledby");
|
|
162
|
+
slides.forEach((slide, index) => {
|
|
163
|
+
this.write(slide, "role", "group");
|
|
164
|
+
this.write(slide, "aria-roledescription", this.words(undefined, "Slide"));
|
|
165
|
+
if (!labelled(slide))
|
|
166
|
+
this.write(slide, "aria-label", this.words(undefined, "{index} of {count}", { index: index + 1, count: slides.length }));
|
|
167
|
+
});
|
|
168
|
+
this.count = slides.length;
|
|
169
|
+
}
|
|
170
|
+
willUpdate(changed) {
|
|
171
|
+
super.willUpdate(changed);
|
|
172
|
+
// The slides are counted before the first paint, so `current` can start on any of them.
|
|
173
|
+
if (!this.hasUpdated)
|
|
174
|
+
this.labelSlides();
|
|
175
|
+
this.write(this, "role", "region");
|
|
176
|
+
this.write(this, "aria-roledescription", this.words(undefined, "Carousel"));
|
|
177
|
+
if (!this.hasAttribute("aria-labelledby"))
|
|
178
|
+
this.write(this, "aria-label", this.words(this.label, "Carousel"));
|
|
179
|
+
const width = squares(typeof this.slideWidth === "string" && this.slideWidth !== "auto" ? Number(this.slideWidth) : typeof this.slideWidth === "number" ? this.slideWidth : undefined, 1);
|
|
180
|
+
const gap = squares(this.gap, 0);
|
|
181
|
+
if (this.strip)
|
|
182
|
+
this.style.setProperty("--ds-carousel-slide", "max-content");
|
|
183
|
+
else if (width)
|
|
184
|
+
this.style.setProperty("--ds-carousel-slide", `calc(var(--ds-unit) * ${width})`);
|
|
185
|
+
else
|
|
186
|
+
this.style.removeProperty("--ds-carousel-slide");
|
|
187
|
+
if (gap !== undefined)
|
|
188
|
+
this.style.setProperty("--ds-carousel-gap", `calc(var(--ds-unit) * ${gap})`);
|
|
189
|
+
else
|
|
190
|
+
this.style.removeProperty("--ds-carousel-gap");
|
|
191
|
+
}
|
|
192
|
+
firstUpdated() {
|
|
193
|
+
// The strip's drive starts once, from the options the element was given.
|
|
194
|
+
const track = this.track;
|
|
195
|
+
const bleed = bleedOf(this.bleed);
|
|
196
|
+
if (track && (bleed !== "none" || this.loop || this.every > 0)) {
|
|
197
|
+
this.drive = driveCarousel(this, track, this, { bleed, loop: this.loop, autoplay: this.every });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
updated(changed) {
|
|
201
|
+
super.updated(changed);
|
|
202
|
+
if (this.loop)
|
|
203
|
+
return;
|
|
204
|
+
if (changed.has("current")) {
|
|
205
|
+
if (this.moving) {
|
|
206
|
+
this.moving = false;
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// The page set `current`: go there, at once on the first paint and smoothly after.
|
|
210
|
+
this.travel(this.index, changed.get("current") !== undefined);
|
|
211
|
+
}
|
|
212
|
+
else if (changed.has("count") && !changed.get("count") && this.index > 0) {
|
|
213
|
+
// The slides arrived after the first paint: stand on the current one.
|
|
214
|
+
this.travel(this.index, false);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/** Goes to a slide: smoothly, unless the reader asks for reduced motion. Fires no `change`. */
|
|
218
|
+
goTo(index) {
|
|
219
|
+
this.current = index;
|
|
220
|
+
}
|
|
221
|
+
/** Goes to the next slide, as the next button does. */
|
|
222
|
+
next() {
|
|
223
|
+
if (this.drive)
|
|
224
|
+
this.drive.step(1);
|
|
225
|
+
else
|
|
226
|
+
this.move(this.index + 1);
|
|
227
|
+
}
|
|
228
|
+
/** Goes to the previous slide, as the previous button does. */
|
|
229
|
+
previous() {
|
|
230
|
+
if (this.drive)
|
|
231
|
+
this.drive.step(-1);
|
|
232
|
+
else
|
|
233
|
+
this.move(this.index - 1);
|
|
234
|
+
}
|
|
235
|
+
togglePause() {
|
|
236
|
+
this.paused = !this.paused;
|
|
237
|
+
this.drive?.pause(this.paused);
|
|
238
|
+
}
|
|
239
|
+
travel(index, smooth) {
|
|
240
|
+
const track = this.track;
|
|
241
|
+
const slide = this.slides[index];
|
|
242
|
+
if (!track || !slide || !scrollToSlide(track, slide, smooth))
|
|
243
|
+
return;
|
|
244
|
+
this.pending = index;
|
|
245
|
+
clearTimeout(this.settle);
|
|
246
|
+
this.settle = setTimeout(() => { this.pending = undefined; }, 600);
|
|
247
|
+
}
|
|
248
|
+
/** A person moved to `index`: show it, say it, and fire `change`. */
|
|
249
|
+
show(index) {
|
|
250
|
+
const target = Math.max(0, Math.min(this.count - 1, index));
|
|
251
|
+
const previous = this.index;
|
|
252
|
+
if (target === previous || this.count === 0)
|
|
253
|
+
return;
|
|
254
|
+
this.moving = true;
|
|
255
|
+
this.current = target;
|
|
256
|
+
this.announcement = this.words(undefined, "{index} of {count}", { index: target + 1, count: this.count });
|
|
257
|
+
this.dispatchEvent(new CustomEvent("change", { bubbles: true, composed: true, detail: { index: target, previous } }));
|
|
258
|
+
}
|
|
259
|
+
move(index) {
|
|
260
|
+
const target = Math.max(0, Math.min(this.count - 1, index));
|
|
261
|
+
this.travel(target, true);
|
|
262
|
+
this.show(target);
|
|
263
|
+
}
|
|
264
|
+
render() {
|
|
265
|
+
const index = this.index;
|
|
266
|
+
// A drive steps on and back without an end to stop at.
|
|
267
|
+
const driven = this.drive !== null || bleedOf(this.bleed) !== "none" || this.loop || this.every > 0;
|
|
268
|
+
const button = (which) => html `<button
|
|
269
|
+
class="ds-button ds-button--icon ds-carousel__${which}"
|
|
270
|
+
part=${which}
|
|
271
|
+
type="button"
|
|
272
|
+
aria-label=${this.words(undefined, which === "previous" ? "Previous slide" : "Next slide")}
|
|
273
|
+
?disabled=${!driven && (which === "previous" ? index <= 0 : index >= this.count - 1)}
|
|
274
|
+
@click=${() => (which === "previous" ? this.previous() : this.next())}
|
|
275
|
+
><ds-icon type=${which === "previous" ? "left" : "right"} aria-hidden="true"></ds-icon></button>`;
|
|
276
|
+
const moving = this.every > 0 && !prefersReducedMotion();
|
|
277
|
+
const dots = !this.noDots && !this.loop;
|
|
278
|
+
const controls = this.buttons || dots || moving;
|
|
279
|
+
const bleed = bleedOf(this.bleed);
|
|
280
|
+
return html `<div class="ds-carousel" part="carousel" data-slides=${this.strip ? "auto" : nothing} data-bleed=${bleed === "none" ? nothing : bleed} data-snap=${this.free ? "none" : nothing}>
|
|
281
|
+
<div class="ds-carousel__track" part="track" @scroll=${this.scrolled} @scrollend=${this.ended}>
|
|
282
|
+
<slot @slotchange=${() => this.labelSlides()}></slot>
|
|
283
|
+
</div>
|
|
284
|
+
${controls && this.count > 1
|
|
285
|
+
? html `<div class="ds-carousel__controls" part="controls">
|
|
286
|
+
${moving
|
|
287
|
+
? html `<button
|
|
288
|
+
class="ds-button ds-button--icon ds-carousel__pause"
|
|
289
|
+
part="pause"
|
|
290
|
+
type="button"
|
|
291
|
+
aria-pressed=${String(this.paused)}
|
|
292
|
+
aria-label=${this.words(undefined, this.paused ? "Play" : "Pause")}
|
|
293
|
+
@click=${this.togglePause}
|
|
294
|
+
><ds-icon type=${this.paused ? "play-alt" : "pause"} aria-hidden="true"></ds-icon></button>`
|
|
295
|
+
: nothing}
|
|
296
|
+
${this.buttons ? button("previous") : nothing}
|
|
297
|
+
${dots ? html `<ds-progress part="dots" .dots=${this.count} .active=${index} ?end=${this.end} @select=${this.picked}></ds-progress>` : nothing}
|
|
298
|
+
${this.buttons ? button("next") : nothing}
|
|
299
|
+
</div>`
|
|
300
|
+
: nothing}
|
|
301
|
+
<span class="ds-carousel__status" part="status" aria-live="polite" aria-atomic="true">${this.announcement}</span>
|
|
302
|
+
</div>`;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
Carousel.properties = {
|
|
306
|
+
label: { type: String },
|
|
307
|
+
literal: { type: Boolean, reflect: true },
|
|
308
|
+
current: { type: Number, reflect: true },
|
|
309
|
+
buttons: { type: Boolean, reflect: true },
|
|
310
|
+
noDots: { type: Boolean, reflect: true, attribute: "no-dots" },
|
|
311
|
+
end: { type: Boolean, reflect: true },
|
|
312
|
+
// A number of squares, or "auto" for slides of their own width.
|
|
313
|
+
slideWidth: { attribute: "slide-width", reflect: true, converter: {
|
|
314
|
+
fromAttribute: (value) => (value === null ? undefined : value === "auto" ? "auto" : Number(value)),
|
|
315
|
+
toAttribute: (value) => (value === undefined ? null : String(value)),
|
|
316
|
+
} },
|
|
317
|
+
gap: { type: Number },
|
|
318
|
+
bleed: { type: String, reflect: true },
|
|
319
|
+
loop: { type: Boolean, reflect: true },
|
|
320
|
+
autoplay: { type: String, reflect: true },
|
|
321
|
+
free: { type: Boolean, reflect: true },
|
|
322
|
+
count: { state: true },
|
|
323
|
+
announcement: { state: true },
|
|
324
|
+
paused: { state: true },
|
|
325
|
+
};
|
|
326
|
+
Carousel.styles = [unsafeCSS(metrics), unsafeCSS(controls), unsafeCSS(carousel), unsafeCSS(styles)];
|
|
327
|
+
define("ds-carousel", Carousel);
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { LitElement, type PropertyValues } from "lit";
|
|
2
|
+
import { type DateLength } from "../0-face/format";
|
|
3
|
+
import { type Day } from "../0-face/calendar";
|
|
4
|
+
import "../2-core/ds-icon";
|
|
5
|
+
import "./ds-calendar";
|
|
6
|
+
/** Detail of `change` and `input`: the value now and before; each is empty when there is none. */
|
|
7
|
+
export interface DatePickerChangeDetail {
|
|
8
|
+
value: string;
|
|
9
|
+
previous: string;
|
|
10
|
+
}
|
|
11
|
+
/** One end of a value: its day and, when it has one, its time (`14:30`). */
|
|
12
|
+
export interface DatePickerEnd {
|
|
13
|
+
day: Day;
|
|
14
|
+
time: string;
|
|
15
|
+
}
|
|
16
|
+
/** Reads a value: `2026-10-21`, `2026-10-21T14:30`, or two of them joined by `/`. */
|
|
17
|
+
export declare function readDateValue(value: string | null | undefined): {
|
|
18
|
+
start?: DatePickerEnd;
|
|
19
|
+
end?: DatePickerEnd;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Writes a value from its ends, the times only with `time`. An end that is
|
|
23
|
+
* the same moment as the start leaves the value one day.
|
|
24
|
+
*/
|
|
25
|
+
export declare function writeDateValue(start: DatePickerEnd | undefined, end: DatePickerEnd | undefined, options: {
|
|
26
|
+
time: boolean;
|
|
27
|
+
}): string;
|
|
28
|
+
/** Reads what a person typed: a day written `YYYY-MM-DD`, or a date the browser can read ("Oct 21, 2026"). */
|
|
29
|
+
export declare function parseTypedDay(text: string): Day | null;
|
|
30
|
+
/**
|
|
31
|
+
* @element ds-date-picker
|
|
32
|
+
* @prop {string} value - `YYYY-MM-DD`, `YYYY-MM-DDTHH:MM`, or two joined by
|
|
33
|
+
* `/` for a range; empty for none.
|
|
34
|
+
* @prop {string} name - The form field's name.
|
|
35
|
+
* @prop {string} label - The field's accessible name: a translation key, or
|
|
36
|
+
* literal words.
|
|
37
|
+
* @prop {boolean} literal - Show `label` and `placeholder` as written.
|
|
38
|
+
* @prop {string} placeholder - The words before a day is chosen; the shared
|
|
39
|
+
* "Choose a date" by default.
|
|
40
|
+
* @prop {string} length - How a day is written: `short`, `medium` (the
|
|
41
|
+
* default) or `long`.
|
|
42
|
+
* @prop {boolean} time - Choose a time with each day (the Include time switch).
|
|
43
|
+
* @prop {boolean} noOptions - Leave the Include time switch out (`no-options`);
|
|
44
|
+
* `time` still applies.
|
|
45
|
+
* @prop {string} min - The first day a person may choose.
|
|
46
|
+
* @prop {string} max - The last day a person may choose.
|
|
47
|
+
* @prop {string} weekStart - The week's first day (`week-start`); the
|
|
48
|
+
* language's own by default.
|
|
49
|
+
* @prop {string} today - The day drawn as today; the reader's own by default.
|
|
50
|
+
* @prop {boolean} required - A form needs a value; Clear is left out.
|
|
51
|
+
* @prop {boolean} disabled - The field cannot be opened.
|
|
52
|
+
* @prop {boolean} open - The panel is open.
|
|
53
|
+
*
|
|
54
|
+
* @fires change - A person changed the value; `{ value, previous }`.
|
|
55
|
+
* @fires input - The same moment, for code listening as to a field.
|
|
56
|
+
* @fires ds-date-picker-toggle - The panel opened or closed; `{ open }`.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* <ds-date-picker label="When" literal name="when" value="2026-10-21/2026-10-24"></ds-date-picker>
|
|
60
|
+
*/
|
|
61
|
+
export declare class DatePicker extends LitElement {
|
|
62
|
+
static formAssociated: boolean;
|
|
63
|
+
static properties: {
|
|
64
|
+
value: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
reflect: boolean;
|
|
67
|
+
};
|
|
68
|
+
name: {
|
|
69
|
+
type: StringConstructor;
|
|
70
|
+
reflect: boolean;
|
|
71
|
+
};
|
|
72
|
+
label: {
|
|
73
|
+
type: StringConstructor;
|
|
74
|
+
};
|
|
75
|
+
literal: {
|
|
76
|
+
type: BooleanConstructor;
|
|
77
|
+
reflect: boolean;
|
|
78
|
+
};
|
|
79
|
+
placeholder: {
|
|
80
|
+
type: StringConstructor;
|
|
81
|
+
};
|
|
82
|
+
length: {
|
|
83
|
+
type: StringConstructor;
|
|
84
|
+
};
|
|
85
|
+
time: {
|
|
86
|
+
type: BooleanConstructor;
|
|
87
|
+
reflect: boolean;
|
|
88
|
+
};
|
|
89
|
+
noOptions: {
|
|
90
|
+
type: BooleanConstructor;
|
|
91
|
+
attribute: string;
|
|
92
|
+
reflect: boolean;
|
|
93
|
+
};
|
|
94
|
+
min: {
|
|
95
|
+
type: StringConstructor;
|
|
96
|
+
};
|
|
97
|
+
max: {
|
|
98
|
+
type: StringConstructor;
|
|
99
|
+
};
|
|
100
|
+
weekStart: {
|
|
101
|
+
type: StringConstructor;
|
|
102
|
+
attribute: string;
|
|
103
|
+
};
|
|
104
|
+
today: {
|
|
105
|
+
type: StringConstructor;
|
|
106
|
+
};
|
|
107
|
+
required: {
|
|
108
|
+
type: BooleanConstructor;
|
|
109
|
+
reflect: boolean;
|
|
110
|
+
};
|
|
111
|
+
disabled: {
|
|
112
|
+
type: BooleanConstructor;
|
|
113
|
+
reflect: boolean;
|
|
114
|
+
};
|
|
115
|
+
open: {
|
|
116
|
+
type: BooleanConstructor;
|
|
117
|
+
reflect: boolean;
|
|
118
|
+
};
|
|
119
|
+
awaitingEnd: {
|
|
120
|
+
state: boolean;
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
static styles: import("lit").CSSResult[];
|
|
124
|
+
value: string;
|
|
125
|
+
name: string | undefined;
|
|
126
|
+
label: string | undefined;
|
|
127
|
+
literal: boolean;
|
|
128
|
+
placeholder: string | undefined;
|
|
129
|
+
length: DateLength | undefined;
|
|
130
|
+
time: boolean;
|
|
131
|
+
noOptions: boolean;
|
|
132
|
+
min: string | undefined;
|
|
133
|
+
max: string | undefined;
|
|
134
|
+
weekStart: string | undefined;
|
|
135
|
+
today: string | undefined;
|
|
136
|
+
required: boolean;
|
|
137
|
+
disabled: boolean;
|
|
138
|
+
open: boolean;
|
|
139
|
+
/** A first day has been pressed in this opening and the last is still to come. */
|
|
140
|
+
awaitingEnd: boolean;
|
|
141
|
+
private readonly internals;
|
|
142
|
+
/** The value the field started with, for a form's reset. */
|
|
143
|
+
private initial;
|
|
144
|
+
private shown;
|
|
145
|
+
/** Whether opening should move focus into the month (a key opened it). */
|
|
146
|
+
private focusMonth;
|
|
147
|
+
private readonly relabel;
|
|
148
|
+
constructor();
|
|
149
|
+
connectedCallback(): void;
|
|
150
|
+
disconnectedCallback(): void;
|
|
151
|
+
protected firstUpdated(): void;
|
|
152
|
+
/** The form was reset: back to the value it started with. */
|
|
153
|
+
formResetCallback(): void;
|
|
154
|
+
formDisabledCallback(disabled: boolean): void;
|
|
155
|
+
private words;
|
|
156
|
+
private get trigger();
|
|
157
|
+
private get panel();
|
|
158
|
+
private get calendar();
|
|
159
|
+
private get ends();
|
|
160
|
+
protected willUpdate(changed: PropertyValues<this>): void;
|
|
161
|
+
protected updated(changed: PropertyValues<this>): void;
|
|
162
|
+
/** Opens the panel. */
|
|
163
|
+
show(): void;
|
|
164
|
+
/** Closes the panel, giving focus back to the field when it was inside. */
|
|
165
|
+
hide(restore?: boolean): void;
|
|
166
|
+
private focusDay;
|
|
167
|
+
/** Below the field, half a square from it, or above when there is more room there; held inside the screen. */
|
|
168
|
+
private place;
|
|
169
|
+
private onOutside;
|
|
170
|
+
private toggle;
|
|
171
|
+
private onTriggerKey;
|
|
172
|
+
private onPanelKey;
|
|
173
|
+
private onFocusOut;
|
|
174
|
+
/** Takes a new value and says so. */
|
|
175
|
+
private commit;
|
|
176
|
+
private write;
|
|
177
|
+
/**
|
|
178
|
+
* A day pressed in the month. The first press of an opening starts the range
|
|
179
|
+
* (the value is that day until another is pressed); the second ends it and,
|
|
180
|
+
* without times to set, closes the panel.
|
|
181
|
+
*/
|
|
182
|
+
private picked;
|
|
183
|
+
/** A day typed in a field, read when the person leaves it or presses Enter. */
|
|
184
|
+
private typed;
|
|
185
|
+
private timed;
|
|
186
|
+
private setTime;
|
|
187
|
+
/** Pressing the switch's row presses the switch, as a label would. */
|
|
188
|
+
private passPress;
|
|
189
|
+
private clear;
|
|
190
|
+
private moment;
|
|
191
|
+
private formatter;
|
|
192
|
+
private fieldText;
|
|
193
|
+
/** The face's words: one day, or a range written as the language writes one ("Oct 21 – 24, 2026"). */
|
|
194
|
+
private faceText;
|
|
195
|
+
private renderEnd;
|
|
196
|
+
render(): import("lit").TemplateResult<1>;
|
|
197
|
+
}
|
|
198
|
+
declare global {
|
|
199
|
+
interface HTMLElementTagNameMap {
|
|
200
|
+
"ds-date-picker": DatePicker;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=ds-date-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-date-picker.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-date-picker.ts"],"names":[],"mappings":"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"}
|