@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
|
@@ -11,6 +11,9 @@ import styles from "./styles/ds-accordion.css?inline";
|
|
|
11
11
|
* Usage (with translation text):
|
|
12
12
|
* <ds-accordion summary="How it began" details="Designed in Hokkaido"></ds-accordion>
|
|
13
13
|
*
|
|
14
|
+
* Usage (with text someone wrote, shown as it stands and never translated):
|
|
15
|
+
* <ds-accordion literal summary="Ideas for spring" details="Plant the bulbs"></ds-accordion>
|
|
16
|
+
*
|
|
14
17
|
* Usage (with slotted details content):
|
|
15
18
|
* <ds-accordion summary="How it began">
|
|
16
19
|
* <div slot="details">Rich HTML content here</div>
|
|
@@ -34,6 +37,7 @@ export class Accordion extends LitElement {
|
|
|
34
37
|
};
|
|
35
38
|
this.summary = "";
|
|
36
39
|
this.details = "";
|
|
40
|
+
this.literal = false;
|
|
37
41
|
this.open = false;
|
|
38
42
|
this.control = "native";
|
|
39
43
|
this._hasSlottedContent = false;
|
|
@@ -64,7 +68,7 @@ export class Accordion extends LitElement {
|
|
|
64
68
|
<details ?open=${this.open}>
|
|
65
69
|
<summary>
|
|
66
70
|
<ds-row class="summaryRow" centered>
|
|
67
|
-
<ds-text .text=${this.summary}></ds-text>
|
|
71
|
+
<ds-text .text=${this.summary} ?literal=${this.literal}></ds-text>
|
|
68
72
|
<ds-icon class="chevron" aria-hidden="true">
|
|
69
73
|
<svg
|
|
70
74
|
viewBox="0 0 10.157 8.219"
|
|
@@ -87,6 +91,7 @@ export class Accordion extends LitElement {
|
|
|
87
91
|
? html `<ds-text
|
|
88
92
|
class="detailsText"
|
|
89
93
|
.text=${this.details}
|
|
94
|
+
?literal=${this.literal}
|
|
90
95
|
></ds-text>`
|
|
91
96
|
: ""}
|
|
92
97
|
</div>
|
|
@@ -97,6 +102,7 @@ export class Accordion extends LitElement {
|
|
|
97
102
|
Accordion.properties = {
|
|
98
103
|
summary: { type: String },
|
|
99
104
|
details: { type: String },
|
|
105
|
+
literal: { type: Boolean, reflect: true },
|
|
100
106
|
open: { type: Boolean, reflect: true },
|
|
101
107
|
control: { type: String, reflect: true },
|
|
102
108
|
_hasSlottedContent: { type: Boolean, state: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-avatar-group.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-avatar-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,gFAAgF;AAChF,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;MAKf;
|
|
1
|
+
{"version":3,"file":"ds-avatar-group.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-avatar-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,gFAAgF;AAChF,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;MAKf;IACF,gFAAgF;IACxE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAC1B,QAAgB,OAAO,CAAU;IACjC,QAAgB,UAAU,CAAU;IACpC,MAAM,CAAC,MAAM,0BAAqB;IAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAA2C;IAChE,OAAO,CAAC,KAAK,CAAyD;IACtE,OAAO,CAAC,QAAQ,CAA8C;;IAQ9D,iBAAiB;IAYjB,oBAAoB;IAKpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,OAAO,CAiCb;IACF,MAAM;CAMP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,WAAW,CAAC;KAChC;CACF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { type PropertyValues } from "lit";
|
|
2
|
+
import { type CalendarEvent, type Day } from "../0-face/calendar";
|
|
3
|
+
import { CalendarBase } from "./calendar-base";
|
|
4
|
+
import "../2-core/ds-icon";
|
|
5
|
+
export * from "./calendar-base";
|
|
6
|
+
/**
|
|
7
|
+
* @element ds-calendar-large
|
|
8
|
+
* @prop {string} start - The first month drawn, `YYYY-MM`; the month before
|
|
9
|
+
* today's by default.
|
|
10
|
+
* @prop {number} months - How many months are drawn: 6 by default.
|
|
11
|
+
* @prop {number} scale - How many times the grid it is drawn: 1.5 by default.
|
|
12
|
+
* @prop {string} value - The selected day, `YYYY-MM-DD`.
|
|
13
|
+
* @prop {boolean} selectable - Pressing a day selects it and fires `change`.
|
|
14
|
+
* @prop {boolean} noHeader - Leave out the title and arrows (`no-header`).
|
|
15
|
+
* @prop {string} min - The first day a person may choose.
|
|
16
|
+
* @prop {string} max - The last day a person may choose.
|
|
17
|
+
* @prop {string} weekStart - The week's first day (`week-start`); the
|
|
18
|
+
* language's own by default.
|
|
19
|
+
* @prop {string} today - The day drawn as today; the reader's own by default.
|
|
20
|
+
* @prop {CalendarEvent[]} events - What happens on the days (property only).
|
|
21
|
+
*
|
|
22
|
+
* @fires day-press - A day was pressed or chosen with Enter or Space; `{ day, events }`.
|
|
23
|
+
* @fires change - A person selected a day; `{ value, previous }`.
|
|
24
|
+
* @fires navigate - The months drawn moved on or back; `{ month }`, the first one.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* <ds-calendar-large start="2026-09" months="6"></ds-calendar-large>
|
|
28
|
+
*/
|
|
29
|
+
export declare class CalendarLarge extends CalendarBase {
|
|
30
|
+
static properties: {
|
|
31
|
+
start: {
|
|
32
|
+
type: StringConstructor;
|
|
33
|
+
reflect: boolean;
|
|
34
|
+
};
|
|
35
|
+
months: {
|
|
36
|
+
type: NumberConstructor;
|
|
37
|
+
};
|
|
38
|
+
scale: {
|
|
39
|
+
type: NumberConstructor;
|
|
40
|
+
};
|
|
41
|
+
noHeader: {
|
|
42
|
+
type: BooleanConstructor;
|
|
43
|
+
attribute: string;
|
|
44
|
+
reflect: boolean;
|
|
45
|
+
};
|
|
46
|
+
visible: {
|
|
47
|
+
state: boolean;
|
|
48
|
+
};
|
|
49
|
+
value: {
|
|
50
|
+
type: StringConstructor;
|
|
51
|
+
reflect: boolean;
|
|
52
|
+
};
|
|
53
|
+
min: {
|
|
54
|
+
type: StringConstructor;
|
|
55
|
+
};
|
|
56
|
+
max: {
|
|
57
|
+
type: StringConstructor;
|
|
58
|
+
};
|
|
59
|
+
today: {
|
|
60
|
+
type: StringConstructor;
|
|
61
|
+
};
|
|
62
|
+
weekStart: {
|
|
63
|
+
type: StringConstructor;
|
|
64
|
+
attribute: string;
|
|
65
|
+
};
|
|
66
|
+
selectable: {
|
|
67
|
+
type: BooleanConstructor;
|
|
68
|
+
reflect: boolean;
|
|
69
|
+
};
|
|
70
|
+
range: {
|
|
71
|
+
type: BooleanConstructor;
|
|
72
|
+
reflect: boolean;
|
|
73
|
+
};
|
|
74
|
+
label: {
|
|
75
|
+
type: StringConstructor;
|
|
76
|
+
};
|
|
77
|
+
literal: {
|
|
78
|
+
type: BooleanConstructor;
|
|
79
|
+
reflect: boolean;
|
|
80
|
+
};
|
|
81
|
+
events: {
|
|
82
|
+
attribute: boolean;
|
|
83
|
+
};
|
|
84
|
+
focusDay: {
|
|
85
|
+
state: boolean;
|
|
86
|
+
};
|
|
87
|
+
hoverDay: {
|
|
88
|
+
state: boolean;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
static styles: import("lit").CSSResult[];
|
|
92
|
+
start: string | undefined;
|
|
93
|
+
months: number | undefined;
|
|
94
|
+
scale: number | undefined;
|
|
95
|
+
noHeader: boolean;
|
|
96
|
+
/** The month at the start of the view, named in the title. */
|
|
97
|
+
visible: Day | undefined;
|
|
98
|
+
protected readonly weeksRun: "columns";
|
|
99
|
+
private byDay;
|
|
100
|
+
private placed;
|
|
101
|
+
private frame;
|
|
102
|
+
constructor();
|
|
103
|
+
/** The first of the first month drawn. */
|
|
104
|
+
get firstMonth(): Day;
|
|
105
|
+
private get monthCount();
|
|
106
|
+
/** The first day of each week drawn, from the week holding the first month's first day. */
|
|
107
|
+
private get weekStarts();
|
|
108
|
+
private get lastDay();
|
|
109
|
+
protected eventsOn(day: Day): CalendarEvent[];
|
|
110
|
+
protected willUpdate(changed: PropertyValues<this>): void;
|
|
111
|
+
protected firstUpdated(): void;
|
|
112
|
+
disconnectedCallback(): void;
|
|
113
|
+
private get scroller();
|
|
114
|
+
private columnOf;
|
|
115
|
+
/** Scrolls the week holding `day` to the start of the view. */
|
|
116
|
+
scrollToDay(day: Day, smooth?: boolean): void;
|
|
117
|
+
/** Moves the view a month back or on; past the months drawn, the months move with it. */
|
|
118
|
+
private step;
|
|
119
|
+
/** The month before, as the previous arrow does. */
|
|
120
|
+
previousMonth(): void;
|
|
121
|
+
/** The month after, as the next arrow does. */
|
|
122
|
+
nextMonth(): void;
|
|
123
|
+
/** Brings today into view, moving the months drawn when it is outside them. */
|
|
124
|
+
showToday(): void;
|
|
125
|
+
private onScroll;
|
|
126
|
+
private get tabDay();
|
|
127
|
+
private onKeyDown;
|
|
128
|
+
private onClick;
|
|
129
|
+
private renderHeader;
|
|
130
|
+
render(): import("lit").TemplateResult<1>;
|
|
131
|
+
protected updated(changed: PropertyValues<this>): void;
|
|
132
|
+
}
|
|
133
|
+
declare global {
|
|
134
|
+
interface HTMLElementTagNameMap {
|
|
135
|
+
"ds-calendar-large": CalendarLarge;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=ds-calendar-large.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-calendar-large.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-calendar-large.ts"],"names":[],"mappings":"AAOA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEpE,OAAO,EAUL,KAAK,aAAa,EAClB,KAAK,GAAG,EACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAa,MAAM,iBAAiB,CAAC;AAC1D,OAAO,mBAAmB,CAAC;AAK3B,cAAc,iBAAiB,CAAC;AAWhC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOf;IAEF,MAAM,CAAC,MAAM,4BAAgE;IAErE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IACtD,OAAO,EAAE,GAAG,GAAG,SAAS,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IAEjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAK;;IAOlB,0CAA0C;IAC1C,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,OAAO,KAAK,UAAU,GAGrB;IAED,2FAA2F;IAC3F,OAAO,KAAK,UAAU,GAOrB;IAED,OAAO,KAAK,OAAO,GAElB;IAED,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,EAAE;IAI7C,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAMlD,SAAS,CAAC,YAAY;IAOtB,oBAAoB;IAKpB,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,QAAQ;IAIhB,+DAA+D;IAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,UAAO;IAWnC,yFAAyF;IACzF,OAAO,CAAC,IAAI;IAaZ,oDAAoD;IACpD,aAAa;IAEb,+CAA+C;IAC/C,SAAS;IAET,+EAA+E;IAC/E,SAAS;IAaT,OAAO,CAAC,QAAQ,CAUd;IAEF,OAAO,KAAK,MAAM,GAIjB;IAED,OAAO,CAAC,SAAS,CAmBf;IAEF,OAAO,CAAC,OAAO,CAMb;IAEF,OAAO,CAAC,YAAY;IAmBpB,MAAM;IA8EN,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;CAIhD;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,aAAa,CAAC;KACpC;CACF"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
// ds-calendar-large.ts
|
|
2
|
+
// Months side by side as squares: a week to a column, the seven days down it,
|
|
3
|
+
// drawn one and a half times the grid (a square of 30px, lines of 1.5px)
|
|
4
|
+
// inside a rounded frame that scrolls sideways. A day on which something
|
|
5
|
+
// happens is filled with its colour, split into bands when several share it;
|
|
6
|
+
// a date is written only on today and where an event starts or ends.
|
|
7
|
+
import { html, nothing, unsafeCSS } from "lit";
|
|
8
|
+
import { define } from "../0-face/define";
|
|
9
|
+
import { addDays, addMonths, dateNumber, eventsByDay, monthName, monthTitle, startOfMonth, weekdayNames, weekdayOf, } from "../0-face/calendar";
|
|
10
|
+
import { CalendarBase, readMonth } from "./calendar-base";
|
|
11
|
+
import "../2-core/ds-icon";
|
|
12
|
+
import metrics from "../1-root/component-metrics.css?inline";
|
|
13
|
+
import controls from "../1-root/controls.css?inline";
|
|
14
|
+
import styles from "./styles/ds-calendar-large.css?inline";
|
|
15
|
+
export * from "./calendar-base";
|
|
16
|
+
/** The fill for a day: one colour, or bands side by side. */
|
|
17
|
+
function fillOf(events) {
|
|
18
|
+
if (!events.length)
|
|
19
|
+
return undefined;
|
|
20
|
+
const colours = [...new Set(events.map(event => event.color || "var(--ds-calendar-event-fill)"))];
|
|
21
|
+
if (colours.length === 1)
|
|
22
|
+
return colours[0];
|
|
23
|
+
const share = 100 / colours.length;
|
|
24
|
+
return `linear-gradient(90deg, ${colours.map((colour, index) => `${colour} ${index * share}% ${(index + 1) * share}%`).join(", ")})`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @element ds-calendar-large
|
|
28
|
+
* @prop {string} start - The first month drawn, `YYYY-MM`; the month before
|
|
29
|
+
* today's by default.
|
|
30
|
+
* @prop {number} months - How many months are drawn: 6 by default.
|
|
31
|
+
* @prop {number} scale - How many times the grid it is drawn: 1.5 by default.
|
|
32
|
+
* @prop {string} value - The selected day, `YYYY-MM-DD`.
|
|
33
|
+
* @prop {boolean} selectable - Pressing a day selects it and fires `change`.
|
|
34
|
+
* @prop {boolean} noHeader - Leave out the title and arrows (`no-header`).
|
|
35
|
+
* @prop {string} min - The first day a person may choose.
|
|
36
|
+
* @prop {string} max - The last day a person may choose.
|
|
37
|
+
* @prop {string} weekStart - The week's first day (`week-start`); the
|
|
38
|
+
* language's own by default.
|
|
39
|
+
* @prop {string} today - The day drawn as today; the reader's own by default.
|
|
40
|
+
* @prop {CalendarEvent[]} events - What happens on the days (property only).
|
|
41
|
+
*
|
|
42
|
+
* @fires day-press - A day was pressed or chosen with Enter or Space; `{ day, events }`.
|
|
43
|
+
* @fires change - A person selected a day; `{ value, previous }`.
|
|
44
|
+
* @fires navigate - The months drawn moved on or back; `{ month }`, the first one.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* <ds-calendar-large start="2026-09" months="6"></ds-calendar-large>
|
|
48
|
+
*/
|
|
49
|
+
export class CalendarLarge extends CalendarBase {
|
|
50
|
+
constructor() {
|
|
51
|
+
super();
|
|
52
|
+
this.weeksRun = "columns";
|
|
53
|
+
this.byDay = new Map();
|
|
54
|
+
this.placed = false;
|
|
55
|
+
this.frame = 0;
|
|
56
|
+
this.onScroll = () => {
|
|
57
|
+
cancelAnimationFrame(this.frame);
|
|
58
|
+
this.frame = requestAnimationFrame(() => {
|
|
59
|
+
const scroller = this.scroller;
|
|
60
|
+
const cell = scroller?.querySelector(".cell")?.getBoundingClientRect().width;
|
|
61
|
+
if (!scroller || !cell)
|
|
62
|
+
return;
|
|
63
|
+
const column = Math.min(this.weekStarts.length - 1, Math.max(0, Math.round(Math.abs(scroller.scrollLeft) / cell)));
|
|
64
|
+
// The month that owns most of the first week in view.
|
|
65
|
+
this.visible = startOfMonth(addDays(this.weekStarts[column], 3));
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
this.onKeyDown = (event) => {
|
|
69
|
+
const cell = event.target.closest("[data-day]");
|
|
70
|
+
if (!cell)
|
|
71
|
+
return;
|
|
72
|
+
const day = cell.dataset.day;
|
|
73
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
this.press(day);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const target = this.keyTarget(event, day);
|
|
79
|
+
if (!target)
|
|
80
|
+
return;
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
if (target < this.weekStarts[0] || target > this.lastDay) {
|
|
83
|
+
const by = target < this.weekStarts[0] ? -1 : 1;
|
|
84
|
+
const first = addMonths(this.firstMonth, by);
|
|
85
|
+
this.start = first.slice(0, 7);
|
|
86
|
+
this.announceMonth(first);
|
|
87
|
+
}
|
|
88
|
+
void this.focusCell(target);
|
|
89
|
+
};
|
|
90
|
+
this.onClick = (event) => {
|
|
91
|
+
const cell = event.composedPath().find(node => node instanceof HTMLElement && node.dataset?.day);
|
|
92
|
+
if (!cell)
|
|
93
|
+
return;
|
|
94
|
+
const day = cell.dataset.day;
|
|
95
|
+
this.focusDay = day;
|
|
96
|
+
this.press(day);
|
|
97
|
+
};
|
|
98
|
+
this.noHeader = false;
|
|
99
|
+
}
|
|
100
|
+
/** The first of the first month drawn. */
|
|
101
|
+
get firstMonth() {
|
|
102
|
+
return readMonth(this.start) ?? addMonths(startOfMonth(this.todayDay), -1);
|
|
103
|
+
}
|
|
104
|
+
get monthCount() {
|
|
105
|
+
const count = this.months;
|
|
106
|
+
return typeof count === "number" && Number.isFinite(count) ? Math.max(1, Math.min(36, Math.floor(count))) : 6;
|
|
107
|
+
}
|
|
108
|
+
/** The first day of each week drawn, from the week holding the first month's first day. */
|
|
109
|
+
get weekStarts() {
|
|
110
|
+
const first = this.firstMonth;
|
|
111
|
+
const from = addDays(first, -((weekdayOf(first) - this.firstDay + 7) % 7));
|
|
112
|
+
const last = addDays(addMonths(first, this.monthCount), -1);
|
|
113
|
+
const weeks = [];
|
|
114
|
+
for (let day = from; day <= last; day = addDays(day, 7))
|
|
115
|
+
weeks.push(day);
|
|
116
|
+
return weeks;
|
|
117
|
+
}
|
|
118
|
+
get lastDay() {
|
|
119
|
+
return addDays(this.weekStarts.at(-1), 6);
|
|
120
|
+
}
|
|
121
|
+
eventsOn(day) {
|
|
122
|
+
return this.byDay.get(day) ?? [];
|
|
123
|
+
}
|
|
124
|
+
willUpdate(changed) {
|
|
125
|
+
super.willUpdate(changed);
|
|
126
|
+
const scale = typeof this.scale === "number" && Number.isFinite(this.scale) && this.scale > 0 ? this.scale : 1.5;
|
|
127
|
+
this.style.setProperty("--ds-calendar-scale", String(scale));
|
|
128
|
+
}
|
|
129
|
+
firstUpdated() {
|
|
130
|
+
// Open on today's month when it is drawn, else on the first.
|
|
131
|
+
const today = this.todayDay;
|
|
132
|
+
this.scrollToDay(today >= this.weekStarts[0] && today <= this.lastDay ? startOfMonth(today) : this.firstMonth, false);
|
|
133
|
+
this.placed = true;
|
|
134
|
+
}
|
|
135
|
+
disconnectedCallback() {
|
|
136
|
+
cancelAnimationFrame(this.frame);
|
|
137
|
+
super.disconnectedCallback();
|
|
138
|
+
}
|
|
139
|
+
get scroller() {
|
|
140
|
+
return this.renderRoot.querySelector(".scroller");
|
|
141
|
+
}
|
|
142
|
+
columnOf(day) {
|
|
143
|
+
return this.weekStarts.findIndex(start => day >= start && day <= addDays(start, 6));
|
|
144
|
+
}
|
|
145
|
+
/** Scrolls the week holding `day` to the start of the view. */
|
|
146
|
+
scrollToDay(day, smooth = true) {
|
|
147
|
+
const scroller = this.scroller;
|
|
148
|
+
const column = this.columnOf(day);
|
|
149
|
+
if (!scroller || column < 0)
|
|
150
|
+
return;
|
|
151
|
+
const cell = scroller.querySelector(".cell")?.getBoundingClientRect().width ?? 30;
|
|
152
|
+
const reduce = matchMedia?.("(prefers-reduced-motion: reduce)").matches;
|
|
153
|
+
const rtl = getComputedStyle(this).direction === "rtl";
|
|
154
|
+
scroller.scrollTo({ left: (rtl ? -1 : 1) * column * cell, behavior: smooth && !reduce ? "smooth" : "auto" });
|
|
155
|
+
this.visible = startOfMonth(day);
|
|
156
|
+
}
|
|
157
|
+
/** Moves the view a month back or on; past the months drawn, the months move with it. */
|
|
158
|
+
step(by) {
|
|
159
|
+
const target = addMonths(this.visible ?? this.firstMonth, by);
|
|
160
|
+
const first = this.firstMonth;
|
|
161
|
+
const end = addMonths(first, this.monthCount);
|
|
162
|
+
if (target < first || target >= end) {
|
|
163
|
+
this.start = addMonths(first, by).slice(0, 7);
|
|
164
|
+
this.announceMonth(addMonths(first, by));
|
|
165
|
+
void this.updateComplete.then(() => this.scrollToDay(target, false));
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.scrollToDay(target);
|
|
169
|
+
}
|
|
170
|
+
/** The month before, as the previous arrow does. */
|
|
171
|
+
previousMonth() { this.step(-1); }
|
|
172
|
+
/** The month after, as the next arrow does. */
|
|
173
|
+
nextMonth() { this.step(1); }
|
|
174
|
+
/** Brings today into view, moving the months drawn when it is outside them. */
|
|
175
|
+
showToday() {
|
|
176
|
+
const today = this.todayDay;
|
|
177
|
+
if (today < this.weekStarts[0] || today > this.lastDay) {
|
|
178
|
+
const first = addMonths(startOfMonth(today), -1);
|
|
179
|
+
this.start = first.slice(0, 7);
|
|
180
|
+
this.announceMonth(first);
|
|
181
|
+
void this.updateComplete.then(() => this.scrollToDay(startOfMonth(today), false));
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.scrollToDay(startOfMonth(today));
|
|
185
|
+
}
|
|
186
|
+
this.focusDay = today;
|
|
187
|
+
}
|
|
188
|
+
get tabDay() {
|
|
189
|
+
const first = this.weekStarts[0], last = this.lastDay;
|
|
190
|
+
for (const day of [this.focusDay, this.chosen.start, this.todayDay])
|
|
191
|
+
if (day && day >= first && day <= last)
|
|
192
|
+
return day;
|
|
193
|
+
return this.firstMonth;
|
|
194
|
+
}
|
|
195
|
+
renderHeader() {
|
|
196
|
+
if (this.noHeader)
|
|
197
|
+
return nothing;
|
|
198
|
+
const arrow = (which) => html `<button
|
|
199
|
+
class="ds-button ds-button--icon nav"
|
|
200
|
+
part=${which}
|
|
201
|
+
type="button"
|
|
202
|
+
aria-label=${this.words(which === "previous" ? "Previous month" : "Next month")}
|
|
203
|
+
@click=${() => (which === "previous" ? this.previousMonth() : this.nextMonth())}
|
|
204
|
+
><ds-icon type=${which === "previous" ? "chevron-left" : "chevron-right"} size="large" aria-hidden="true"></ds-icon></button>`;
|
|
205
|
+
return html `<div class="header" part="header">
|
|
206
|
+
<span class="title" aria-live="polite">${monthTitle(this.visible ?? this.firstMonth)}</span>
|
|
207
|
+
<span class="controls">
|
|
208
|
+
${arrow("previous")}
|
|
209
|
+
<button class="ds-button ds-button--secondary" part="today" type="button" @click=${() => this.showToday()}>${this.words("Today")}</button>
|
|
210
|
+
${arrow("next")}
|
|
211
|
+
</span>
|
|
212
|
+
</div>`;
|
|
213
|
+
}
|
|
214
|
+
render() {
|
|
215
|
+
const weeks = this.weekStarts;
|
|
216
|
+
const first = weeks[0], last = this.lastDay;
|
|
217
|
+
this.byDay = eventsByDay(this.events ?? [], first, last);
|
|
218
|
+
const short = weekdayNames(this.firstDay, "short");
|
|
219
|
+
const narrow = weekdayNames(this.firstDay, "narrow");
|
|
220
|
+
const long = weekdayNames(this.firstDay, "long");
|
|
221
|
+
const today = this.todayDay;
|
|
222
|
+
const tab = this.tabDay;
|
|
223
|
+
// Each month's name stands over the week holding its first day.
|
|
224
|
+
const labels = [];
|
|
225
|
+
for (let month = this.firstMonth, index = 0; index < this.monthCount; index++, month = addMonths(month, 1)) {
|
|
226
|
+
const column = this.columnOf(month);
|
|
227
|
+
const next = this.columnOf(addMonths(month, 1));
|
|
228
|
+
labels.push({ column, span: Math.max(1, (next < 0 ? weeks.length : next) - column), day: month });
|
|
229
|
+
}
|
|
230
|
+
const ends = new Set();
|
|
231
|
+
for (const event of this.events ?? []) {
|
|
232
|
+
ends.add(event.start);
|
|
233
|
+
if (event.end)
|
|
234
|
+
ends.add(event.end);
|
|
235
|
+
}
|
|
236
|
+
return html `<div class="calendar" part="calendar" style=${`--ds-calendar-weeks: ${weeks.length}`}>
|
|
237
|
+
${this.renderHeader()}
|
|
238
|
+
<div class="body">
|
|
239
|
+
<div class="rail" part="weekdays" aria-hidden="true">
|
|
240
|
+
${short.map((name, row) => html `<span class="weekday" data-narrow=${narrow[row]}>${row % 2 === 1 ? name : ""}</span>`)}
|
|
241
|
+
</div>
|
|
242
|
+
<div class="scroller" part="scroller" @scroll=${this.onScroll}>
|
|
243
|
+
<div class="months" aria-hidden="true">
|
|
244
|
+
${labels.map(({ column, span, day }) => html `<span class="month" style=${`grid-column: ${column + 1} / span ${span}`}>${day.slice(5, 7) === "01" || day === this.firstMonth ? monthTitle(day, "short") : monthName(day, "short")}</span>`)}
|
|
245
|
+
</div>
|
|
246
|
+
<div class="frame" part="frame">
|
|
247
|
+
<div
|
|
248
|
+
class="grid"
|
|
249
|
+
part="grid"
|
|
250
|
+
role="grid"
|
|
251
|
+
aria-label=${this.nameOr(`${monthTitle(this.firstMonth)} – ${monthTitle(addMonths(this.firstMonth, this.monthCount - 1))}`)}
|
|
252
|
+
@keydown=${this.onKeyDown}
|
|
253
|
+
@click=${this.onClick}
|
|
254
|
+
>
|
|
255
|
+
${short.map((_, row) => html `<div role="row" class="row">
|
|
256
|
+
<span role="rowheader" class="hidden">${long[row]}</span>
|
|
257
|
+
${weeks.map((start, column) => {
|
|
258
|
+
const day = addDays(start, row);
|
|
259
|
+
const events = this.eventsOn(day);
|
|
260
|
+
const isToday = day === today;
|
|
261
|
+
const { selected, inside } = this.selection(day);
|
|
262
|
+
const written = isToday || selected || (events.length > 0 && ends.has(day));
|
|
263
|
+
const fill = fillOf(events);
|
|
264
|
+
return html `<div
|
|
265
|
+
role="gridcell"
|
|
266
|
+
class="cell"
|
|
267
|
+
part=${["cell", isToday ? "today" : "", selected ? "selected" : "", events.length ? "filled" : ""].filter(Boolean).join(" ")}
|
|
268
|
+
data-day=${day}
|
|
269
|
+
tabindex=${day === tab ? 0 : -1}
|
|
270
|
+
aria-label=${this.cellLabel(day, events)}
|
|
271
|
+
aria-selected=${this.selectable ? String(selected || inside) : nothing}
|
|
272
|
+
aria-current=${isToday ? "date" : nothing}
|
|
273
|
+
aria-disabled=${this.allowed(day) ? nothing : "true"}
|
|
274
|
+
?data-today=${isToday}
|
|
275
|
+
?data-selected=${selected}
|
|
276
|
+
?data-inside=${inside}
|
|
277
|
+
?data-filled=${events.length > 0}
|
|
278
|
+
?data-first-row=${row === 0}
|
|
279
|
+
?data-first-column=${column === 0}
|
|
280
|
+
style=${`grid-row: ${row + 1}; grid-column: ${column + 1};${fill ? ` --ds-calendar-cell-fill: ${fill};` : ""}`}
|
|
281
|
+
>${written ? html `<span class="date" aria-hidden="true">${dateNumber(day)}</span>` : nothing}</div>`;
|
|
282
|
+
})}
|
|
283
|
+
</div>`)}
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>`;
|
|
289
|
+
}
|
|
290
|
+
updated(changed) {
|
|
291
|
+
super.updated(changed);
|
|
292
|
+
if (this.placed && changed.has("start") && this.visible && !this.focusDay)
|
|
293
|
+
this.scrollToDay(this.visible, false);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
CalendarLarge.properties = {
|
|
297
|
+
...CalendarBase.properties,
|
|
298
|
+
start: { type: String, reflect: true },
|
|
299
|
+
months: { type: Number },
|
|
300
|
+
scale: { type: Number },
|
|
301
|
+
noHeader: { type: Boolean, attribute: "no-header", reflect: true },
|
|
302
|
+
visible: { state: true },
|
|
303
|
+
};
|
|
304
|
+
CalendarLarge.styles = [unsafeCSS(metrics), unsafeCSS(controls), unsafeCSS(styles)];
|
|
305
|
+
define("ds-calendar-large", CalendarLarge);
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { type PropertyValues } from "lit";
|
|
2
|
+
import { type CalendarEvent, type Day } from "../0-face/calendar";
|
|
3
|
+
import { CalendarBase } from "./calendar-base";
|
|
4
|
+
import "../2-core/ds-icon";
|
|
5
|
+
export * from "./calendar-base";
|
|
6
|
+
/**
|
|
7
|
+
* @element ds-calendar
|
|
8
|
+
* @prop {string} month - The month shown, `YYYY-MM` (or a day in it). The
|
|
9
|
+
* selected day's month, or today's, when left out; the arrows change it.
|
|
10
|
+
* @prop {string} value - The selected day, `YYYY-MM-DD`.
|
|
11
|
+
* @prop {boolean} selectable - Pressing a day selects it and fires `change`.
|
|
12
|
+
* @prop {boolean} compact - One square per day, no events written out: the
|
|
13
|
+
* small month.
|
|
14
|
+
* @prop {number} dayWidth - Squares per day (`day-width`): 4 by default, 1
|
|
15
|
+
* when compact.
|
|
16
|
+
* @prop {number} lines - Lines of events under a day's date: 2 by default.
|
|
17
|
+
* @prop {boolean} weekNumbers - Write the week's number (`week-numbers`) on
|
|
18
|
+
* its first day.
|
|
19
|
+
* @prop {boolean} fixed - Always draw six weeks, so the month keeps its height.
|
|
20
|
+
* @prop {boolean} outsideDays - Draw the days of the months before and after
|
|
21
|
+
* in the title grey (`outside-days`); pressing one moves there.
|
|
22
|
+
* @prop {boolean} range - A selectable calendar chooses a first and a last
|
|
23
|
+
* day; `value` is then `YYYY-MM-DD/YYYY-MM-DD`.
|
|
24
|
+
* @prop {boolean} noHeader - Leave out the title and arrows (`no-header`).
|
|
25
|
+
* @prop {boolean} noToday - Leave out the Today button (`no-today`).
|
|
26
|
+
* @prop {string} min - The first day a person may choose.
|
|
27
|
+
* @prop {string} max - The last day a person may choose.
|
|
28
|
+
* @prop {string} weekStart - The week's first day (`week-start`), 0–6 from
|
|
29
|
+
* Sunday or its English name; the language's own by default.
|
|
30
|
+
* @prop {string} today - The day drawn as today; the reader's own by default.
|
|
31
|
+
* @prop {CalendarEvent[]} events - What happens on the days (property only).
|
|
32
|
+
*
|
|
33
|
+
* @fires day-press - A day was pressed or chosen with Enter or Space;
|
|
34
|
+
* `{ day, events }`. Cancelable: cancelled, a selectable calendar keeps its value.
|
|
35
|
+
* @fires change - A person selected a day; `{ value, previous }`.
|
|
36
|
+
* @fires event-press - An event was pressed; `{ event, day }`.
|
|
37
|
+
* @fires navigate - A person moved to another month; `{ month }`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* <ds-calendar month="2026-10" week-numbers></ds-calendar>
|
|
41
|
+
* <ds-calendar compact selectable value="2026-10-18"></ds-calendar>
|
|
42
|
+
* <ds-calendar compact selectable range value="2026-10-18/2026-10-24"></ds-calendar>
|
|
43
|
+
*/
|
|
44
|
+
export declare class Calendar extends CalendarBase {
|
|
45
|
+
static properties: {
|
|
46
|
+
month: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
reflect: boolean;
|
|
49
|
+
};
|
|
50
|
+
compact: {
|
|
51
|
+
type: BooleanConstructor;
|
|
52
|
+
reflect: boolean;
|
|
53
|
+
};
|
|
54
|
+
dayWidth: {
|
|
55
|
+
type: NumberConstructor;
|
|
56
|
+
attribute: string;
|
|
57
|
+
};
|
|
58
|
+
lines: {
|
|
59
|
+
type: NumberConstructor;
|
|
60
|
+
};
|
|
61
|
+
weekNumbers: {
|
|
62
|
+
type: BooleanConstructor;
|
|
63
|
+
attribute: string;
|
|
64
|
+
reflect: boolean;
|
|
65
|
+
};
|
|
66
|
+
fixed: {
|
|
67
|
+
type: BooleanConstructor;
|
|
68
|
+
reflect: boolean;
|
|
69
|
+
};
|
|
70
|
+
outsideDays: {
|
|
71
|
+
type: BooleanConstructor;
|
|
72
|
+
attribute: string;
|
|
73
|
+
reflect: boolean;
|
|
74
|
+
};
|
|
75
|
+
noHeader: {
|
|
76
|
+
type: BooleanConstructor;
|
|
77
|
+
attribute: string;
|
|
78
|
+
reflect: boolean;
|
|
79
|
+
};
|
|
80
|
+
noToday: {
|
|
81
|
+
type: BooleanConstructor;
|
|
82
|
+
attribute: string;
|
|
83
|
+
reflect: boolean;
|
|
84
|
+
};
|
|
85
|
+
open: {
|
|
86
|
+
state: boolean;
|
|
87
|
+
};
|
|
88
|
+
value: {
|
|
89
|
+
type: StringConstructor;
|
|
90
|
+
reflect: boolean;
|
|
91
|
+
};
|
|
92
|
+
min: {
|
|
93
|
+
type: StringConstructor;
|
|
94
|
+
};
|
|
95
|
+
max: {
|
|
96
|
+
type: StringConstructor;
|
|
97
|
+
};
|
|
98
|
+
today: {
|
|
99
|
+
type: StringConstructor;
|
|
100
|
+
};
|
|
101
|
+
weekStart: {
|
|
102
|
+
type: StringConstructor;
|
|
103
|
+
attribute: string;
|
|
104
|
+
};
|
|
105
|
+
selectable: {
|
|
106
|
+
type: BooleanConstructor;
|
|
107
|
+
reflect: boolean;
|
|
108
|
+
};
|
|
109
|
+
range: {
|
|
110
|
+
type: BooleanConstructor;
|
|
111
|
+
reflect: boolean;
|
|
112
|
+
};
|
|
113
|
+
label: {
|
|
114
|
+
type: StringConstructor;
|
|
115
|
+
};
|
|
116
|
+
literal: {
|
|
117
|
+
type: BooleanConstructor;
|
|
118
|
+
reflect: boolean;
|
|
119
|
+
};
|
|
120
|
+
events: {
|
|
121
|
+
attribute: boolean;
|
|
122
|
+
};
|
|
123
|
+
focusDay: {
|
|
124
|
+
state: boolean;
|
|
125
|
+
};
|
|
126
|
+
hoverDay: {
|
|
127
|
+
state: boolean;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
static styles: import("lit").CSSResult[];
|
|
131
|
+
month: string | undefined;
|
|
132
|
+
compact: boolean;
|
|
133
|
+
dayWidth: number | undefined;
|
|
134
|
+
lines: number | undefined;
|
|
135
|
+
weekNumbers: boolean;
|
|
136
|
+
fixed: boolean;
|
|
137
|
+
outsideDays: boolean;
|
|
138
|
+
noHeader: boolean;
|
|
139
|
+
noToday: boolean;
|
|
140
|
+
/** The day whose hidden events are unfolded. */
|
|
141
|
+
open: Day | undefined;
|
|
142
|
+
protected readonly weeksRun: "rows";
|
|
143
|
+
private byDay;
|
|
144
|
+
constructor();
|
|
145
|
+
/** The first of the month shown. */
|
|
146
|
+
get shownMonth(): Day;
|
|
147
|
+
private get squaresPerDay();
|
|
148
|
+
private get eventLines();
|
|
149
|
+
protected eventsOn(day: Day): CalendarEvent[];
|
|
150
|
+
protected willUpdate(changed: PropertyValues<this>): void;
|
|
151
|
+
/** Shows another month and says so with `navigate`. */
|
|
152
|
+
showMonth(month: string, announce?: boolean): void;
|
|
153
|
+
/** The month before, as the previous arrow does. */
|
|
154
|
+
previousMonth(): void;
|
|
155
|
+
/** The month after, as the next arrow does. */
|
|
156
|
+
nextMonth(): void;
|
|
157
|
+
/** Today's month, as the Today button does. */
|
|
158
|
+
showToday(): void;
|
|
159
|
+
/** The day holding the Tab stop: the one moved to, the selected day, today, or the first. */
|
|
160
|
+
private get tabDay();
|
|
161
|
+
private onKeyDown;
|
|
162
|
+
private onClick;
|
|
163
|
+
/** While a range waits for its end, the day under the pointer previews it. */
|
|
164
|
+
private onPointerOver;
|
|
165
|
+
private onFocusOut;
|
|
166
|
+
private renderHeader;
|
|
167
|
+
private renderDay;
|
|
168
|
+
render(): import("lit").TemplateResult<1>;
|
|
169
|
+
}
|
|
170
|
+
declare global {
|
|
171
|
+
interface HTMLElementTagNameMap {
|
|
172
|
+
"ds-calendar": Calendar;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=ds-calendar.d.ts.map
|