@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
package/dist/2-core/ds-split.js
CHANGED
|
@@ -1,101 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Button } from "./ds-button";
|
|
2
2
|
import { define } from "../0-face/define";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import styles from "./styles/ds-split.css?inline";
|
|
7
|
-
/** A compact group of choices or repeated actions, sharing outside corners.
|
|
8
|
-
* `change` requests a choice; preventDefault keeps the current value. `press`
|
|
9
|
-
* reports every activation in actions mode. Neither mode submits a form.
|
|
10
|
-
*/
|
|
11
|
-
export class Split extends LitElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.languageChanged = () => this.requestUpdate();
|
|
15
|
-
// Association supplies native disabled-fieldset behavior, without adding
|
|
16
|
-
// a form value or making an action button into a submitter.
|
|
17
|
-
if (typeof this.attachInternals === "function")
|
|
18
|
-
this.attachInternals();
|
|
19
|
-
this.options = "";
|
|
20
|
-
this.value = "";
|
|
21
|
-
this.disabled = false;
|
|
22
|
-
this.actions = false;
|
|
23
|
-
this.literal = false;
|
|
24
|
-
this.compact = false;
|
|
25
|
-
this._fieldsetDisabled = false;
|
|
26
|
-
}
|
|
27
|
-
connectedCallback() {
|
|
28
|
-
super.connectedCallback();
|
|
29
|
-
if (!this.hasAttribute("role"))
|
|
30
|
-
this.setAttribute("role", "group");
|
|
31
|
-
window.addEventListener("language-changed", this.languageChanged);
|
|
32
|
-
window.addEventListener("translations-loaded", this.languageChanged);
|
|
33
|
-
}
|
|
34
|
-
disconnectedCallback() {
|
|
35
|
-
super.disconnectedCallback();
|
|
36
|
-
window.removeEventListener("language-changed", this.languageChanged);
|
|
37
|
-
window.removeEventListener("translations-loaded", this.languageChanged);
|
|
38
|
-
}
|
|
39
|
-
formDisabledCallback(disabled) { this._fieldsetDisabled = disabled; }
|
|
40
|
-
/** String convenience for HTML: day:Day,back:@left:Back. Use segments for
|
|
41
|
-
* labels containing commas/colons, translated product labels or disabling
|
|
42
|
-
* individual actions. An explicit empty array renders no choices.
|
|
43
|
-
*/
|
|
44
|
-
get choices() {
|
|
45
|
-
return this.segments ?? this.options.split(",").map(part => part.trim()).filter(Boolean).map(part => {
|
|
46
|
-
const colon = part.indexOf(":");
|
|
47
|
-
if (colon < 0)
|
|
48
|
-
return { value: part.toLowerCase(), label: part };
|
|
49
|
-
const value = part.slice(0, colon).trim();
|
|
50
|
-
const label = part.slice(colon + 1).trim();
|
|
51
|
-
if (!label.startsWith("@"))
|
|
52
|
-
return { value, label };
|
|
53
|
-
const end = label.indexOf(":");
|
|
54
|
-
return { value, icon: label.slice(1, end < 0 ? undefined : end).trim(), label: end < 0 ? value : label.slice(end + 1).trim() };
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
press(segment) {
|
|
58
|
-
if (this.disabled || this._fieldsetDisabled || segment.disabled)
|
|
59
|
-
return;
|
|
60
|
-
if (this.actions) {
|
|
61
|
-
this.dispatchEvent(new CustomEvent("press", { detail: { value: segment.value }, bubbles: true, composed: true }));
|
|
62
|
-
}
|
|
63
|
-
else if (segment.value !== this.value) {
|
|
64
|
-
const accepted = this.dispatchEvent(new CustomEvent("change", {
|
|
65
|
-
detail: { value: segment.value }, bubbles: true, composed: true, cancelable: true,
|
|
66
|
-
}));
|
|
67
|
-
if (accepted)
|
|
68
|
-
this.value = segment.value;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
focus(options) {
|
|
72
|
-
const buttons = [...this.renderRoot.querySelectorAll("button:not(:disabled)")];
|
|
73
|
-
(buttons.find(button => button.getAttribute("aria-pressed") === "true") ?? buttons[0])?.focus(options);
|
|
74
|
-
}
|
|
75
|
-
render() {
|
|
76
|
-
return html `${this.choices.map(segment => html `<button
|
|
77
|
-
type="button" part="segment" value=${segment.value}
|
|
78
|
-
aria-pressed=${this.actions ? nothing : String(segment.value === this.value)}
|
|
79
|
-
aria-label=${segment.icon ? (this.literal ? segment.label : getText(segment.label)) : nothing}
|
|
80
|
-
?data-icon=${!!segment.icon}
|
|
81
|
-
?data-short=${segment.label.length === 1}
|
|
82
|
-
?disabled=${this.disabled || this._fieldsetDisabled || segment.disabled}
|
|
83
|
-
@click=${() => this.press(segment)}
|
|
84
|
-
>${segment.icon
|
|
85
|
-
? html `<ds-icon type=${segment.icon} aria-hidden="true"></ds-icon>`
|
|
86
|
-
: html `<ds-text .text=${segment.label} .literal=${this.literal}></ds-text>`}</button>`)}`;
|
|
87
|
-
}
|
|
3
|
+
/** Compatibility name for Button's split mode. New usage is <ds-button split>. */
|
|
4
|
+
export class Split extends Button {
|
|
5
|
+
constructor() { super(); this.split = true; }
|
|
88
6
|
}
|
|
89
|
-
Split.formAssociated = true;
|
|
90
|
-
Split.properties = {
|
|
91
|
-
options: { type: String },
|
|
92
|
-
segments: { attribute: false },
|
|
93
|
-
value: { type: String, reflect: true },
|
|
94
|
-
disabled: { type: Boolean, reflect: true },
|
|
95
|
-
actions: { type: Boolean, reflect: true },
|
|
96
|
-
literal: { type: Boolean, reflect: true },
|
|
97
|
-
compact: { type: Boolean, reflect: true },
|
|
98
|
-
_fieldsetDisabled: { state: true },
|
|
99
|
-
};
|
|
100
|
-
Split.styles = unsafeCSS(styles);
|
|
101
7
|
define("ds-split", Split);
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import { type FigureFormat } from "./figures";
|
|
3
|
+
import "./ds-icon";
|
|
4
|
+
export type StatTone = "danger" | "warning";
|
|
5
|
+
/**
|
|
6
|
+
* @element ds-stat
|
|
7
|
+
* @prop {string} label - What the figure is: a translation key, or literal words.
|
|
8
|
+
* @prop {number} value - The figure, written as `format` says in the current language.
|
|
9
|
+
* @prop {string} figure - Words in place of the value ("Incomplete"): a key, or literal words.
|
|
10
|
+
* @prop {"number" | "compact" | "percent" | "money"} format - How the value is written. Number by default.
|
|
11
|
+
* @prop {string} currency - The ISO 4217 code for money.
|
|
12
|
+
* @prop {boolean} minor - The money is counted in the currency's minor unit (cents).
|
|
13
|
+
* @prop {boolean} whole - Money in whole units only.
|
|
14
|
+
* @prop {number} digits - Decimals, at least and at most.
|
|
15
|
+
* @prop {number} change - A change, written with its sign and an up or down icon before the caption.
|
|
16
|
+
* @prop {"number" | "compact" | "percent" | "money"} changeFormat - How the change is written (`change-format`). The value's format by default; `percent` reads a fraction.
|
|
17
|
+
* @prop {"danger" | "warning"} changeTone - The change in that colour (`change-tone`), where the page knows which way is bad.
|
|
18
|
+
* @prop {string} caption - A line under the figure: a key, or literal words.
|
|
19
|
+
* @prop {string} icon - An icon from the library on its own square before the label.
|
|
20
|
+
* @prop {"danger" | "warning"} tone - The figure in that colour.
|
|
21
|
+
* @prop {boolean} cells - Draw each digit in a cell of one width, for a face whose digits differ in width.
|
|
22
|
+
* @prop {boolean} literal - Show `label`, `figure` and `caption` as written, never looked up.
|
|
23
|
+
*
|
|
24
|
+
* @slot label - The label, as inline content.
|
|
25
|
+
* @slot figure - The figure, when the page writes it itself.
|
|
26
|
+
* @slot - Anything that belongs between the figure and the caption, such as a `ds-meter`.
|
|
27
|
+
* @slot caption - The caption, as inline content.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* <ds-stat label="Revenue" value="1234.5" format="money" currency="EUR" change="0.12" change-format="percent" caption="Since last month"></ds-stat>
|
|
31
|
+
*/
|
|
32
|
+
export declare class Stat extends LitElement {
|
|
33
|
+
static properties: {
|
|
34
|
+
label: {
|
|
35
|
+
type: StringConstructor;
|
|
36
|
+
};
|
|
37
|
+
value: {
|
|
38
|
+
type: NumberConstructor;
|
|
39
|
+
};
|
|
40
|
+
figure: {
|
|
41
|
+
type: StringConstructor;
|
|
42
|
+
};
|
|
43
|
+
format: {
|
|
44
|
+
type: StringConstructor;
|
|
45
|
+
reflect: boolean;
|
|
46
|
+
};
|
|
47
|
+
currency: {
|
|
48
|
+
type: StringConstructor;
|
|
49
|
+
};
|
|
50
|
+
minor: {
|
|
51
|
+
type: BooleanConstructor;
|
|
52
|
+
};
|
|
53
|
+
whole: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
};
|
|
56
|
+
digits: {
|
|
57
|
+
type: NumberConstructor;
|
|
58
|
+
};
|
|
59
|
+
change: {
|
|
60
|
+
type: NumberConstructor;
|
|
61
|
+
};
|
|
62
|
+
changeFormat: {
|
|
63
|
+
type: StringConstructor;
|
|
64
|
+
attribute: string;
|
|
65
|
+
};
|
|
66
|
+
changeTone: {
|
|
67
|
+
type: StringConstructor;
|
|
68
|
+
attribute: string;
|
|
69
|
+
reflect: boolean;
|
|
70
|
+
};
|
|
71
|
+
caption: {
|
|
72
|
+
type: StringConstructor;
|
|
73
|
+
};
|
|
74
|
+
icon: {
|
|
75
|
+
type: StringConstructor;
|
|
76
|
+
};
|
|
77
|
+
tone: {
|
|
78
|
+
type: StringConstructor;
|
|
79
|
+
reflect: boolean;
|
|
80
|
+
};
|
|
81
|
+
cells: {
|
|
82
|
+
type: BooleanConstructor;
|
|
83
|
+
reflect: boolean;
|
|
84
|
+
};
|
|
85
|
+
literal: {
|
|
86
|
+
type: BooleanConstructor;
|
|
87
|
+
reflect: boolean;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
static styles: import("lit").CSSResult[];
|
|
91
|
+
label: string | undefined;
|
|
92
|
+
value: number | undefined;
|
|
93
|
+
figure: string | undefined;
|
|
94
|
+
format: FigureFormat;
|
|
95
|
+
currency: string | undefined;
|
|
96
|
+
minor: boolean;
|
|
97
|
+
whole: boolean;
|
|
98
|
+
digits: number | undefined;
|
|
99
|
+
change: number | undefined;
|
|
100
|
+
changeFormat: FigureFormat | undefined;
|
|
101
|
+
changeTone: StatTone | undefined;
|
|
102
|
+
caption: string | undefined;
|
|
103
|
+
icon: string | undefined;
|
|
104
|
+
tone: StatTone | undefined;
|
|
105
|
+
cells: boolean;
|
|
106
|
+
literal: boolean;
|
|
107
|
+
private readonly relabel;
|
|
108
|
+
constructor();
|
|
109
|
+
connectedCallback(): void;
|
|
110
|
+
disconnectedCallback(): void;
|
|
111
|
+
private words;
|
|
112
|
+
private options;
|
|
113
|
+
/** The figure's text as it is drawn: the words given, or the value written in the current language. */
|
|
114
|
+
get text(): string;
|
|
115
|
+
/** The change's text with its sign, or empty without a change. */
|
|
116
|
+
get changeText(): string;
|
|
117
|
+
private slotted;
|
|
118
|
+
private drawFigure;
|
|
119
|
+
render(): import("lit").TemplateResult<1>;
|
|
120
|
+
}
|
|
121
|
+
declare global {
|
|
122
|
+
interface HTMLElementTagNameMap {
|
|
123
|
+
"ds-stat": Stat;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=ds-stat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-stat.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-stat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AAG3D,OAAO,EAA2C,KAAK,YAAY,EAAsB,MAAM,WAAW,CAAC;AAC3G,OAAO,WAAW,CAAC;AAKnB,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiBf;IAEF,MAAM,CAAC,MAAM,4BAA+D;IAEpE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAWtD,iBAAiB;IAOjB,oBAAoB;IAOpB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,OAAO;IAIf,uGAAuG;IACvG,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,kEAAkE;IAClE,IAAI,UAAU,IAAI,MAAM,CAIvB;IAED,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAMlB,MAAM;CAyBP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// ds-stat.ts
|
|
2
|
+
// A figure with its label and a line for its change or caption, written in
|
|
3
|
+
// the current language through 0-face/format.ts. Drawn by 1-root/figures.css,
|
|
4
|
+
// the same classes a page without scripts writes.
|
|
5
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
6
|
+
import { getText } from "../0-face/i18n";
|
|
7
|
+
import { define } from "../0-face/define";
|
|
8
|
+
import { figureCells, figureFormat, formatFigure } from "./figures";
|
|
9
|
+
import "./ds-icon";
|
|
10
|
+
import metrics from "../1-root/component-metrics.css?inline";
|
|
11
|
+
import figures from "../1-root/figures.css?inline";
|
|
12
|
+
import styles from "./styles/ds-stat.css?inline";
|
|
13
|
+
const TONES = ["danger", "warning"];
|
|
14
|
+
/**
|
|
15
|
+
* @element ds-stat
|
|
16
|
+
* @prop {string} label - What the figure is: a translation key, or literal words.
|
|
17
|
+
* @prop {number} value - The figure, written as `format` says in the current language.
|
|
18
|
+
* @prop {string} figure - Words in place of the value ("Incomplete"): a key, or literal words.
|
|
19
|
+
* @prop {"number" | "compact" | "percent" | "money"} format - How the value is written. Number by default.
|
|
20
|
+
* @prop {string} currency - The ISO 4217 code for money.
|
|
21
|
+
* @prop {boolean} minor - The money is counted in the currency's minor unit (cents).
|
|
22
|
+
* @prop {boolean} whole - Money in whole units only.
|
|
23
|
+
* @prop {number} digits - Decimals, at least and at most.
|
|
24
|
+
* @prop {number} change - A change, written with its sign and an up or down icon before the caption.
|
|
25
|
+
* @prop {"number" | "compact" | "percent" | "money"} changeFormat - How the change is written (`change-format`). The value's format by default; `percent` reads a fraction.
|
|
26
|
+
* @prop {"danger" | "warning"} changeTone - The change in that colour (`change-tone`), where the page knows which way is bad.
|
|
27
|
+
* @prop {string} caption - A line under the figure: a key, or literal words.
|
|
28
|
+
* @prop {string} icon - An icon from the library on its own square before the label.
|
|
29
|
+
* @prop {"danger" | "warning"} tone - The figure in that colour.
|
|
30
|
+
* @prop {boolean} cells - Draw each digit in a cell of one width, for a face whose digits differ in width.
|
|
31
|
+
* @prop {boolean} literal - Show `label`, `figure` and `caption` as written, never looked up.
|
|
32
|
+
*
|
|
33
|
+
* @slot label - The label, as inline content.
|
|
34
|
+
* @slot figure - The figure, when the page writes it itself.
|
|
35
|
+
* @slot - Anything that belongs between the figure and the caption, such as a `ds-meter`.
|
|
36
|
+
* @slot caption - The caption, as inline content.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <ds-stat label="Revenue" value="1234.5" format="money" currency="EUR" change="0.12" change-format="percent" caption="Since last month"></ds-stat>
|
|
40
|
+
*/
|
|
41
|
+
export class Stat extends LitElement {
|
|
42
|
+
constructor() {
|
|
43
|
+
super();
|
|
44
|
+
this.relabel = () => this.requestUpdate();
|
|
45
|
+
this.format = "number";
|
|
46
|
+
this.minor = false;
|
|
47
|
+
this.whole = false;
|
|
48
|
+
this.cells = false;
|
|
49
|
+
this.literal = false;
|
|
50
|
+
}
|
|
51
|
+
connectedCallback() {
|
|
52
|
+
super.connectedCallback();
|
|
53
|
+
window.addEventListener("language-changed", this.relabel);
|
|
54
|
+
window.addEventListener("translations-loaded", this.relabel);
|
|
55
|
+
window.addEventListener("translations-ready", this.relabel);
|
|
56
|
+
}
|
|
57
|
+
disconnectedCallback() {
|
|
58
|
+
window.removeEventListener("language-changed", this.relabel);
|
|
59
|
+
window.removeEventListener("translations-loaded", this.relabel);
|
|
60
|
+
window.removeEventListener("translations-ready", this.relabel);
|
|
61
|
+
super.disconnectedCallback();
|
|
62
|
+
}
|
|
63
|
+
words(value) {
|
|
64
|
+
if (!value)
|
|
65
|
+
return "";
|
|
66
|
+
return this.literal ? value : getText(value) || value;
|
|
67
|
+
}
|
|
68
|
+
options(format) {
|
|
69
|
+
return { format: figureFormat(format), currency: this.currency, minor: this.minor, whole: this.whole, digits: this.digits };
|
|
70
|
+
}
|
|
71
|
+
/** The figure's text as it is drawn: the words given, or the value written in the current language. */
|
|
72
|
+
get text() {
|
|
73
|
+
if (this.figure)
|
|
74
|
+
return this.words(this.figure);
|
|
75
|
+
return typeof this.value === "number" ? formatFigure(this.value, this.options(this.format)) : "";
|
|
76
|
+
}
|
|
77
|
+
/** The change's text with its sign, or empty without a change. */
|
|
78
|
+
get changeText() {
|
|
79
|
+
if (typeof this.change !== "number" || !Number.isFinite(this.change))
|
|
80
|
+
return "";
|
|
81
|
+
const format = this.changeFormat ?? this.format;
|
|
82
|
+
return formatFigure(this.change, { ...this.options(format), signed: true });
|
|
83
|
+
}
|
|
84
|
+
slotted(name) {
|
|
85
|
+
return [...this.children].some(node => (node.getAttribute("slot") ?? "") === name);
|
|
86
|
+
}
|
|
87
|
+
drawFigure(text) {
|
|
88
|
+
if (!this.cells || !text)
|
|
89
|
+
return text;
|
|
90
|
+
return html `<span class="hidden-words">${text}</span><span aria-hidden="true">${figureCells(text).map(cell => cell.digit ? html `<span class="ds-stat__digit">${cell.text}</span>` : cell.text)}</span>`;
|
|
91
|
+
}
|
|
92
|
+
render() {
|
|
93
|
+
const changed = () => this.requestUpdate();
|
|
94
|
+
const label = this.words(this.label);
|
|
95
|
+
const caption = this.words(this.caption);
|
|
96
|
+
const change = this.changeText;
|
|
97
|
+
const tone = TONES.includes(this.tone) ? this.tone : undefined;
|
|
98
|
+
const changeTone = TONES.includes(this.changeTone) ? this.changeTone : undefined;
|
|
99
|
+
const hasLabel = Boolean(label) || this.slotted("label");
|
|
100
|
+
const hasCaption = Boolean(caption) || Boolean(change) || this.slotted("caption");
|
|
101
|
+
const direction = typeof this.change === "number" && this.change !== 0 ? (this.change > 0 ? "up" : "down") : undefined;
|
|
102
|
+
return html `<div class="ds-stat${tone ? ` ds-stat--${tone}` : ""}" part="stat">
|
|
103
|
+
<div class="ds-stat__label" part="label" ?hidden=${!hasLabel}>
|
|
104
|
+
${this.icon ? html `<span class="ds-stat__icon" part="icon" aria-hidden="true"><ds-icon .type=${this.icon}></ds-icon></span>` : nothing}<slot name="label" @slotchange=${changed}>${label}</slot>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="ds-stat__figure" part="figure"><slot name="figure" @slotchange=${changed}>${this.drawFigure(this.text)}</slot></div>
|
|
107
|
+
<slot></slot>
|
|
108
|
+
<div class="ds-stat__caption" part="caption" ?hidden=${!hasCaption}>
|
|
109
|
+
${change
|
|
110
|
+
? html `<span class="ds-stat__change${changeTone ? ` ds-stat__change--${changeTone}` : ""}" part="change">${direction
|
|
111
|
+
? html `<ds-icon size="small" type=${direction} aria-hidden="true"></ds-icon>`
|
|
112
|
+
: nothing}${change}</span>`
|
|
113
|
+
: nothing}<slot name="caption" @slotchange=${changed}>${caption}</slot>
|
|
114
|
+
</div>
|
|
115
|
+
</div>`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
Stat.properties = {
|
|
119
|
+
label: { type: String },
|
|
120
|
+
value: { type: Number },
|
|
121
|
+
figure: { type: String },
|
|
122
|
+
format: { type: String, reflect: true },
|
|
123
|
+
currency: { type: String },
|
|
124
|
+
minor: { type: Boolean },
|
|
125
|
+
whole: { type: Boolean },
|
|
126
|
+
digits: { type: Number },
|
|
127
|
+
change: { type: Number },
|
|
128
|
+
changeFormat: { type: String, attribute: "change-format" },
|
|
129
|
+
changeTone: { type: String, attribute: "change-tone", reflect: true },
|
|
130
|
+
caption: { type: String },
|
|
131
|
+
icon: { type: String },
|
|
132
|
+
tone: { type: String, reflect: true },
|
|
133
|
+
cells: { type: Boolean, reflect: true },
|
|
134
|
+
literal: { type: Boolean, reflect: true },
|
|
135
|
+
};
|
|
136
|
+
Stat.styles = [unsafeCSS(metrics), unsafeCSS(figures), unsafeCSS(styles)];
|
|
137
|
+
define("ds-stat", Stat);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import "./ds-icon";
|
|
3
|
+
/** Where a step stands: before the current one, the current one, after it, or stopped. */
|
|
4
|
+
export type StepState = "done" | "current" | "upcoming" | "failed";
|
|
5
|
+
/** A step: its name (a translation key, or literal words), and optionally its own state and where it goes. */
|
|
6
|
+
export type Step = string | {
|
|
7
|
+
label: string;
|
|
8
|
+
state?: StepState;
|
|
9
|
+
href?: string;
|
|
10
|
+
};
|
|
11
|
+
/** Each step's state: its own if it names one, else done before `current`, current at it and upcoming after. */
|
|
12
|
+
export declare function stepStates(steps: readonly Step[], current: number): StepState[];
|
|
13
|
+
/**
|
|
14
|
+
* @element ds-steps
|
|
15
|
+
* @prop {Step[]} steps - The steps in order: names, or `{ label, state, href }`. As an attribute, a JSON array.
|
|
16
|
+
* @prop {number} current - The number of the current step, counted from 1. Past the last, every step is done; 0, none has started.
|
|
17
|
+
* @prop {boolean} vertical - One step to a row, with each step's `step-N` slot under it.
|
|
18
|
+
* @prop {string} label - The sequence's name for assistive technology: a translation key, or literal words.
|
|
19
|
+
* @prop {boolean} literal - Show the names and `label` as written, never looked up.
|
|
20
|
+
*
|
|
21
|
+
* @slot step-N - In a vertical sequence, what belongs under step N (counted from 1): a line of text, a form.
|
|
22
|
+
*
|
|
23
|
+
* The steps are an ordered list. The current one carries `aria-current="step"`;
|
|
24
|
+
* a done or failed step says so in hidden words ("Done", "Failed", the
|
|
25
|
+
* shared words). A step with `href` is a link around its mark and name, so it
|
|
26
|
+
* is reached with Tab; the others are not focusable.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* <ds-steps current="2" steps='["Apply", "Approval", "Connect payouts", "Start earning"]' label="Getting started" literal></ds-steps>
|
|
30
|
+
*/
|
|
31
|
+
export declare class Steps extends LitElement {
|
|
32
|
+
static properties: {
|
|
33
|
+
steps: {
|
|
34
|
+
type: ArrayConstructor;
|
|
35
|
+
};
|
|
36
|
+
current: {
|
|
37
|
+
type: NumberConstructor;
|
|
38
|
+
};
|
|
39
|
+
vertical: {
|
|
40
|
+
type: BooleanConstructor;
|
|
41
|
+
reflect: boolean;
|
|
42
|
+
};
|
|
43
|
+
label: {
|
|
44
|
+
type: StringConstructor;
|
|
45
|
+
};
|
|
46
|
+
literal: {
|
|
47
|
+
type: BooleanConstructor;
|
|
48
|
+
reflect: boolean;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
static styles: import("lit").CSSResult[];
|
|
52
|
+
steps: Step[];
|
|
53
|
+
current: number;
|
|
54
|
+
vertical: boolean;
|
|
55
|
+
label: string | undefined;
|
|
56
|
+
literal: boolean;
|
|
57
|
+
private readonly relabel;
|
|
58
|
+
constructor();
|
|
59
|
+
connectedCallback(): void;
|
|
60
|
+
disconnectedCallback(): void;
|
|
61
|
+
private words;
|
|
62
|
+
/** Each step's state, as drawn. */
|
|
63
|
+
get states(): StepState[];
|
|
64
|
+
private slotted;
|
|
65
|
+
render(): import("lit").TemplateResult<1>;
|
|
66
|
+
}
|
|
67
|
+
declare global {
|
|
68
|
+
interface HTMLElementTagNameMap {
|
|
69
|
+
"ds-steps": Steps;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=ds-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds-steps.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-steps.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AAI3D,OAAO,WAAW,CAAC;AAKnB,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAGnE,8GAA8G;AAC9G,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKhF,gHAAgH;AAChH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAO/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,KAAM,SAAQ,UAAU;IACnC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;MAMf;IAEF,MAAM,CAAC,MAAM,4BAA+D;IAEpE,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAUtD,iBAAiB;IAOjB,oBAAoB;IAOpB,OAAO,CAAC,KAAK;IAKb,mCAAmC;IACnC,IAAI,MAAM,IAAI,SAAS,EAAE,CAExB;IAED,OAAO,CAAC,OAAO;IAIf,MAAM;CA2BP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,KAAK,CAAC;KACnB;CACF"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// ds-steps.ts
|
|
2
|
+
// A numbered sequence of steps, one square high: those before the current
|
|
3
|
+
// one done, the current one marked with aria-current="step", the rest still
|
|
4
|
+
// to come. Drawn by 1-root/figures.css, the same classes a page without
|
|
5
|
+
// scripts writes on an <ol>.
|
|
6
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
7
|
+
import { getText } from "../0-face/i18n";
|
|
8
|
+
import { define } from "../0-face/define";
|
|
9
|
+
import { formatNumber } from "../0-face/format";
|
|
10
|
+
import "./ds-icon";
|
|
11
|
+
import metrics from "../1-root/component-metrics.css?inline";
|
|
12
|
+
import figures from "../1-root/figures.css?inline";
|
|
13
|
+
import styles from "./styles/ds-steps.css?inline";
|
|
14
|
+
const STATES = ["done", "current", "upcoming", "failed"];
|
|
15
|
+
/** The words assistive technology reads after a step's name for its state; aria-current says the current one. */
|
|
16
|
+
const STATE_WORDS = { done: "Done", failed: "Failed" };
|
|
17
|
+
/** Each step's state: its own if it names one, else done before `current`, current at it and upcoming after. */
|
|
18
|
+
export function stepStates(steps, current) {
|
|
19
|
+
return steps.map((step, index) => {
|
|
20
|
+
const own = typeof step === "object" && step ? step.state : undefined;
|
|
21
|
+
if (own && STATES.includes(own))
|
|
22
|
+
return own;
|
|
23
|
+
const number = index + 1;
|
|
24
|
+
return number < current ? "done" : number === current ? "current" : "upcoming";
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @element ds-steps
|
|
29
|
+
* @prop {Step[]} steps - The steps in order: names, or `{ label, state, href }`. As an attribute, a JSON array.
|
|
30
|
+
* @prop {number} current - The number of the current step, counted from 1. Past the last, every step is done; 0, none has started.
|
|
31
|
+
* @prop {boolean} vertical - One step to a row, with each step's `step-N` slot under it.
|
|
32
|
+
* @prop {string} label - The sequence's name for assistive technology: a translation key, or literal words.
|
|
33
|
+
* @prop {boolean} literal - Show the names and `label` as written, never looked up.
|
|
34
|
+
*
|
|
35
|
+
* @slot step-N - In a vertical sequence, what belongs under step N (counted from 1): a line of text, a form.
|
|
36
|
+
*
|
|
37
|
+
* The steps are an ordered list. The current one carries `aria-current="step"`;
|
|
38
|
+
* a done or failed step says so in hidden words ("Done", "Failed", the
|
|
39
|
+
* shared words). A step with `href` is a link around its mark and name, so it
|
|
40
|
+
* is reached with Tab; the others are not focusable.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* <ds-steps current="2" steps='["Apply", "Approval", "Connect payouts", "Start earning"]' label="Getting started" literal></ds-steps>
|
|
44
|
+
*/
|
|
45
|
+
export class Steps extends LitElement {
|
|
46
|
+
constructor() {
|
|
47
|
+
super();
|
|
48
|
+
this.relabel = () => this.requestUpdate();
|
|
49
|
+
this.steps = [];
|
|
50
|
+
this.current = 1;
|
|
51
|
+
this.vertical = false;
|
|
52
|
+
this.literal = false;
|
|
53
|
+
}
|
|
54
|
+
connectedCallback() {
|
|
55
|
+
super.connectedCallback();
|
|
56
|
+
window.addEventListener("language-changed", this.relabel);
|
|
57
|
+
window.addEventListener("translations-loaded", this.relabel);
|
|
58
|
+
window.addEventListener("translations-ready", this.relabel);
|
|
59
|
+
}
|
|
60
|
+
disconnectedCallback() {
|
|
61
|
+
window.removeEventListener("language-changed", this.relabel);
|
|
62
|
+
window.removeEventListener("translations-loaded", this.relabel);
|
|
63
|
+
window.removeEventListener("translations-ready", this.relabel);
|
|
64
|
+
super.disconnectedCallback();
|
|
65
|
+
}
|
|
66
|
+
words(value) {
|
|
67
|
+
if (!value)
|
|
68
|
+
return "";
|
|
69
|
+
return this.literal ? value : getText(value) || value;
|
|
70
|
+
}
|
|
71
|
+
/** Each step's state, as drawn. */
|
|
72
|
+
get states() {
|
|
73
|
+
return stepStates(Array.isArray(this.steps) ? this.steps : [], Number(this.current));
|
|
74
|
+
}
|
|
75
|
+
slotted(name) {
|
|
76
|
+
return [...this.children].some(node => node.getAttribute("slot") === name);
|
|
77
|
+
}
|
|
78
|
+
render() {
|
|
79
|
+
const steps = Array.isArray(this.steps) ? this.steps : [];
|
|
80
|
+
const states = this.states;
|
|
81
|
+
const label = this.words(this.label);
|
|
82
|
+
const changed = () => this.requestUpdate();
|
|
83
|
+
return html `<ol class="ds-steps${this.vertical ? " ds-steps--vertical" : ""}" part="steps" aria-label=${label || nothing}>
|
|
84
|
+
${steps.map((step, index) => {
|
|
85
|
+
const state = states[index];
|
|
86
|
+
const name = this.words(typeof step === "string" ? step : step?.label);
|
|
87
|
+
const href = typeof step === "object" && step ? step.href : undefined;
|
|
88
|
+
const number = index + 1;
|
|
89
|
+
const said = STATE_WORDS[state];
|
|
90
|
+
const mark = state === "done" || state === "failed"
|
|
91
|
+
? html `<ds-icon size="small" type=${state === "done" ? "check" : "warning"}></ds-icon>`
|
|
92
|
+
: formatNumber(number);
|
|
93
|
+
const face = html `<span class="ds-steps__mark" part="mark" aria-hidden="true">${mark}</span><span class="ds-steps__label" part="label">${name}</span>${said
|
|
94
|
+
? html `<span class="ds-steps__state"> ${getText(said) || said}</span>`
|
|
95
|
+
: nothing}`;
|
|
96
|
+
return html `<li class="ds-steps__step${state === "upcoming" ? "" : ` ds-steps__step--${state}`}" part="step" data-state=${state} aria-current=${state === "current" ? "step" : nothing}>
|
|
97
|
+
${href ? html `<a class="ds-steps__link" part="link" href=${href}>${face}</a>` : face}
|
|
98
|
+
${this.vertical
|
|
99
|
+
? html `<div class="ds-steps__body" part="body" ?hidden=${!this.slotted(`step-${number}`)}><slot name=${`step-${number}`} @slotchange=${changed}></slot></div>`
|
|
100
|
+
: nothing}
|
|
101
|
+
</li>`;
|
|
102
|
+
})}
|
|
103
|
+
</ol>`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
Steps.properties = {
|
|
107
|
+
steps: { type: Array },
|
|
108
|
+
current: { type: Number },
|
|
109
|
+
vertical: { type: Boolean, reflect: true },
|
|
110
|
+
label: { type: String },
|
|
111
|
+
literal: { type: Boolean, reflect: true },
|
|
112
|
+
};
|
|
113
|
+
Steps.styles = [unsafeCSS(metrics), unsafeCSS(figures), unsafeCSS(styles)];
|
|
114
|
+
define("ds-steps", Steps);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
/** The shared switch face. The slotted button retains native activation and refs. */
|
|
3
|
+
/** rounded selects a pill track, white circular thumb and darker-green on state. */
|
|
3
4
|
export declare class Switch extends LitElement {
|
|
4
5
|
static styles: import("lit").CSSResult;
|
|
5
6
|
focus(options?: FocusOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-switch.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,qFAAqF;AACrF,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,MAAM,0BAAqB;IAClC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAC5B,MAAM;CACP;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,WAAW,EAAE,MAAM,CAAA;KAAE;CAAE"}
|
|
1
|
+
{"version":3,"file":"ds-switch.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,qFAAqF;AACrF,oFAAoF;AACpF,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,MAAM,0BAAqB;IAClC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAC5B,MAAM;CACP;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,WAAW,EAAE,MAAM,CAAA;KAAE;CAAE"}
|
package/dist/2-core/ds-switch.js
CHANGED
|
@@ -2,6 +2,7 @@ import { LitElement, html, unsafeCSS } from "lit";
|
|
|
2
2
|
import { define } from "../0-face/define";
|
|
3
3
|
import styles from "./styles/ds-switch.css?inline";
|
|
4
4
|
/** The shared switch face. The slotted button retains native activation and refs. */
|
|
5
|
+
/** rounded selects a pill track, white circular thumb and darker-green on state. */
|
|
5
6
|
export class Switch extends LitElement {
|
|
6
7
|
focus(options) { this.querySelector(":scope > button")?.focus(options); }
|
|
7
8
|
render() { return html `<slot></slot>`; }
|
package/dist/2-core/ds-text.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ import { LitElement } from "lit";
|
|
|
6
6
|
* @prop {string} text - The translation key (optional if using slot content)
|
|
7
7
|
* @prop {boolean} literal - The text is what someone wrote, not a key: show it
|
|
8
8
|
* as it stands, never looked up, never translated
|
|
9
|
+
* @prop {"muted" | "title" | "warning" | "danger"} tone - A quieter colour, the
|
|
10
|
+
* title grey, the warning colour for something that needs care, or the
|
|
11
|
+
* danger colour for a failure or a loss
|
|
12
|
+
* @prop {"small" | "heading" | "display"} size - 10px, a 13px heading on one
|
|
13
|
+
* square, or a 20px title on two squares
|
|
14
|
+
* @prop {boolean} strong - The medium weight
|
|
15
|
+
* @prop {boolean} wrap - Let the text run over several lines, each one square
|
|
16
|
+
*
|
|
17
|
+
* The four work alike for a translation key and for literal text. For a
|
|
18
|
+
* heading, give the element `role="heading"` and `aria-level`.
|
|
9
19
|
*
|
|
10
20
|
* @example
|
|
11
21
|
* // Using slot content as the key (preferred)
|
|
@@ -16,6 +26,9 @@ import { LitElement } from "lit";
|
|
|
16
26
|
*
|
|
17
27
|
* // Something a person typed: a list title, an item, a search they saved
|
|
18
28
|
* <ds-text literal text="Marketing plan"></ds-text>
|
|
29
|
+
*
|
|
30
|
+
* // A translated message over several lines, in the danger colour
|
|
31
|
+
* <ds-text wrap tone="danger" role="alert">Couldn't save your changes</ds-text>
|
|
19
32
|
*/
|
|
20
33
|
export declare class Text extends LitElement {
|
|
21
34
|
static get properties(): {
|
|
@@ -50,8 +63,8 @@ export declare class Text extends LitElement {
|
|
|
50
63
|
};
|
|
51
64
|
text: string;
|
|
52
65
|
literal: boolean;
|
|
53
|
-
tone?: "muted" | "title";
|
|
54
|
-
size?: "small" | "heading";
|
|
66
|
+
tone?: "muted" | "title" | "warning" | "danger";
|
|
67
|
+
size?: "small" | "heading" | "display";
|
|
55
68
|
strong: boolean;
|
|
56
69
|
wrap: boolean;
|
|
57
70
|
_text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-text.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAKlD
|
|
1
|
+
{"version":3,"file":"ds-text.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUpB;IAEO,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAqC;;IAsB1D,MAAM,CAAC,MAAM,0BAAqB;IAElC,iBAAiB;IA8BjB,oBAAoB;IAYpB,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,wBAAwB;IA8BxB,SAAS;IA4BT,MAAM;CAIP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
|
package/dist/2-core/ds-text.js
CHANGED
|
@@ -9,6 +9,16 @@ import styles from "./styles/ds-text.css?inline";
|
|
|
9
9
|
* @prop {string} text - The translation key (optional if using slot content)
|
|
10
10
|
* @prop {boolean} literal - The text is what someone wrote, not a key: show it
|
|
11
11
|
* as it stands, never looked up, never translated
|
|
12
|
+
* @prop {"muted" | "title" | "warning" | "danger"} tone - A quieter colour, the
|
|
13
|
+
* title grey, the warning colour for something that needs care, or the
|
|
14
|
+
* danger colour for a failure or a loss
|
|
15
|
+
* @prop {"small" | "heading" | "display"} size - 10px, a 13px heading on one
|
|
16
|
+
* square, or a 20px title on two squares
|
|
17
|
+
* @prop {boolean} strong - The medium weight
|
|
18
|
+
* @prop {boolean} wrap - Let the text run over several lines, each one square
|
|
19
|
+
*
|
|
20
|
+
* The four work alike for a translation key and for literal text. For a
|
|
21
|
+
* heading, give the element `role="heading"` and `aria-level`.
|
|
12
22
|
*
|
|
13
23
|
* @example
|
|
14
24
|
* // Using slot content as the key (preferred)
|
|
@@ -19,6 +29,9 @@ import styles from "./styles/ds-text.css?inline";
|
|
|
19
29
|
*
|
|
20
30
|
* // Something a person typed: a list title, an item, a search they saved
|
|
21
31
|
* <ds-text literal text="Marketing plan"></ds-text>
|
|
32
|
+
*
|
|
33
|
+
* // A translated message over several lines, in the danger colour
|
|
34
|
+
* <ds-text wrap tone="danger" role="alert">Couldn't save your changes</ds-text>
|
|
22
35
|
*/
|
|
23
36
|
export class Text extends LitElement {
|
|
24
37
|
static get properties() {
|