@0001-labs/design-system-1 0.3.0-alpha.13 → 0.3.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DS1/0-face/calendar.ts +194 -0
- package/DS1/0-face/carousel.ts +623 -0
- package/DS1/0-face/component-visibility.ts +13 -0
- package/DS1/0-face/copy-text.ts +96 -0
- package/DS1/0-face/device.ts +8 -58
- package/DS1/0-face/dialog-swipe.ts +249 -0
- package/DS1/0-face/dialogs.ts +208 -0
- package/DS1/0-face/drawer.ts +258 -0
- package/DS1/0-face/feedback-words.ts +36 -0
- package/DS1/0-face/feedback.ts +40 -0
- package/DS1/0-face/format.ts +700 -0
- package/DS1/0-face/generated/toast-assets.ts +18 -0
- package/DS1/0-face/grid-fit.ts +1 -1
- package/DS1/0-face/grid.ts +3 -2
- package/DS1/0-face/header.ts +78 -0
- package/DS1/0-face/i18n.ts +93 -18
- package/DS1/0-face/keys.ts +276 -0
- package/DS1/0-face/languages.ts +4 -4
- package/DS1/0-face/layout-inspector.ts +6 -6
- package/DS1/0-face/library-styles.ts +33 -0
- package/DS1/0-face/load-toaster.ts +7 -0
- package/DS1/0-face/preference-options.ts +29 -0
- package/DS1/0-face/preferences.ts +3 -11
- package/DS1/0-face/pricing.ts +98 -43
- package/DS1/0-face/scaling.ts +160 -4
- package/DS1/0-face/shared-words.ts +9 -4
- package/DS1/0-face/sidebar.ts +201 -0
- package/DS1/0-face/theme-bootstrap.js +184 -0
- package/DS1/0-face/theme.ts +89 -47
- package/DS1/0-face/toast-queue.ts +157 -0
- package/DS1/0-face/toaster.ts +384 -0
- package/DS1/0-face/tooltips.ts +157 -15
- package/DS1/0-face/translations/da.json +60 -1
- package/DS1/0-face/translations/de.json +60 -1
- package/DS1/0-face/translations/en.json +60 -1
- package/DS1/0-face/translations/es.json +60 -1
- package/DS1/0-face/translations/fi.json +60 -1
- package/DS1/0-face/translations/fr.json +60 -1
- package/DS1/0-face/translations/is.json +60 -1
- package/DS1/0-face/translations/it.json +60 -1
- package/DS1/0-face/translations/ja.json +60 -1
- package/DS1/0-face/translations/ko.json +60 -1
- package/DS1/0-face/translations/nb.json +60 -1
- package/DS1/0-face/translations/pt-BR.json +60 -1
- package/DS1/0-face/translations/pt.json +60 -1
- package/DS1/0-face/translations/sv.json +60 -1
- package/DS1/0-face/translations/zh.json +60 -1
- package/DS1/0-face/translations-format.ts +3 -4
- package/DS1/1-root/card.css +192 -0
- package/DS1/1-root/carousel.css +136 -0
- package/DS1/1-root/cjk.css +23 -0
- package/DS1/1-root/component-metrics.css +1 -0
- package/DS1/1-root/component-tokens.css +51 -8
- package/DS1/1-root/controls.css +887 -14
- package/DS1/1-root/dialog-placement.css +191 -0
- package/DS1/1-root/document.css +183 -0
- package/DS1/1-root/drawer.css +83 -0
- package/DS1/1-root/empty.css +83 -0
- package/DS1/1-root/figures.css +141 -0
- package/DS1/1-root/fonts/Iosevka-LICENSE.md +3 -1
- package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
- package/DS1/1-root/fonts.css +69 -0
- package/DS1/1-root/footer.css +186 -0
- package/DS1/1-root/header.css +165 -0
- package/DS1/1-root/kbd.css +46 -0
- package/DS1/1-root/library-tokens.ts +91 -0
- package/DS1/1-root/measures.ts +53 -0
- package/DS1/1-root/notice.css +165 -0
- package/DS1/1-root/one.css +14 -84
- package/DS1/1-root/one.semantic.css +200 -148
- package/DS1/1-root/palette.css +58 -0
- package/DS1/1-root/palette.ts +19 -0
- package/DS1/1-root/progress.css +356 -0
- package/DS1/1-root/prose.css +202 -0
- package/DS1/1-root/row.css +297 -0
- package/DS1/1-root/table.css +111 -0
- package/DS1/1-root/text.css +70 -0
- package/DS1/2-core/button-split.ts +55 -0
- package/DS1/2-core/chart/chart.css +169 -0
- package/DS1/2-core/chart/grid-chart.ts +554 -0
- package/DS1/2-core/ds-avatar.ts +25 -6
- package/DS1/2-core/ds-badge.ts +10 -10
- package/DS1/2-core/ds-button.ts +111 -26
- package/DS1/2-core/ds-card.ts +135 -105
- package/DS1/2-core/ds-chart.ts +327 -0
- package/DS1/2-core/ds-composer.ts +8 -2
- package/DS1/2-core/ds-cycle.ts +97 -21
- package/DS1/2-core/ds-empty.ts +120 -0
- package/DS1/2-core/ds-icon.ts +11 -2
- package/DS1/2-core/ds-input.ts +165 -6
- package/DS1/2-core/ds-kbd.ts +78 -0
- package/DS1/2-core/ds-loading.ts +72 -0
- package/DS1/2-core/ds-notice.ts +180 -0
- package/DS1/2-core/ds-progress.ts +380 -0
- package/DS1/2-core/ds-spacing-handle.ts +22 -0
- package/DS1/2-core/ds-stat.ts +174 -0
- package/DS1/2-core/ds-switch.ts +1 -0
- package/DS1/2-core/ds-text.ts +15 -2
- package/DS1/2-core/ds-toast.ts +354 -0
- package/DS1/2-core/figures.ts +105 -0
- package/DS1/2-core/generated/ds-icon-map.ts +234 -128
- package/DS1/2-core/generated/icon-avatar.ts +2 -0
- package/DS1/2-core/generated/icons-extra.ts +118 -65
- package/DS1/2-core/generated/icons-immediate.ts +1 -1
- package/DS1/2-core/spacing-handle.ts +95 -0
- package/DS1/2-core/styles/ds-avatar.css +9 -8
- package/DS1/2-core/styles/ds-button-host.css +26 -3
- package/DS1/2-core/styles/ds-button-split.css +67 -0
- package/DS1/2-core/styles/ds-button.css +49 -15
- package/DS1/2-core/styles/ds-card.css +34 -0
- package/DS1/2-core/styles/ds-composer.css +13 -0
- package/DS1/2-core/styles/ds-cycle.css +69 -0
- package/DS1/2-core/styles/ds-empty.css +18 -0
- package/DS1/2-core/styles/ds-gap.css +1 -0
- package/DS1/2-core/styles/ds-icon.css +1 -0
- package/DS1/2-core/styles/ds-input.css +59 -6
- package/DS1/2-core/styles/ds-kbd.css +12 -0
- package/DS1/2-core/styles/ds-loading.css +13 -0
- package/DS1/2-core/styles/ds-notice.css +30 -0
- package/DS1/2-core/styles/ds-progress.css +25 -0
- package/DS1/2-core/styles/ds-select.css +2 -2
- package/DS1/2-core/styles/ds-spacing-handle.css +8 -0
- package/DS1/2-core/styles/ds-split.css +2 -62
- package/DS1/2-core/styles/ds-stat.css +34 -0
- package/DS1/2-core/styles/ds-switch.css +16 -1
- package/DS1/2-core/styles/ds-text.css +43 -12
- package/DS1/2-core/styles/ds-toast.css +182 -0
- package/DS1/2-core/styles/ds-tooltip.css +1 -0
- package/DS1/3-unit/calendar-base.ts +263 -0
- package/DS1/3-unit/ds-accordion.ts +9 -1
- package/DS1/3-unit/ds-avatar-group.ts +1 -0
- package/DS1/3-unit/ds-calendar-large.ts +349 -0
- package/DS1/3-unit/ds-calendar.ts +344 -0
- package/DS1/3-unit/ds-carousel.ts +368 -0
- package/DS1/3-unit/ds-date-picker.ts +540 -0
- package/DS1/3-unit/ds-form.ts +45 -37
- package/DS1/3-unit/ds-list.ts +48 -1
- package/DS1/3-unit/ds-matrix.ts +318 -0
- package/DS1/3-unit/ds-menu.ts +8 -4
- package/DS1/3-unit/ds-row.ts +84 -1
- package/DS1/3-unit/ds-sidebar.ts +280 -0
- package/DS1/3-unit/ds-table.ts +75 -34
- package/DS1/3-unit/styles/ds-accordion.css +1 -0
- package/DS1/3-unit/styles/ds-avatar-group.css +2 -4
- package/DS1/3-unit/styles/ds-calendar-large.css +165 -0
- package/DS1/3-unit/styles/ds-calendar.css +238 -0
- package/DS1/3-unit/styles/ds-carousel.css +30 -0
- package/DS1/3-unit/styles/ds-date-picker.css +124 -0
- package/DS1/3-unit/styles/ds-list.css +1 -0
- package/DS1/3-unit/styles/ds-matrix.css +203 -0
- package/DS1/3-unit/styles/ds-menu.css +31 -6
- package/DS1/3-unit/styles/ds-row.css +84 -2
- package/DS1/3-unit/styles/ds-sidebar.css +117 -0
- package/DS1/3-unit/styles/ds-table.css +3 -74
- package/DS1/4-page/ds-dialog.ts +40 -4
- package/DS1/4-page/ds-document.ts +240 -0
- package/DS1/4-page/ds-footer.ts +165 -0
- package/DS1/4-page/ds-grid.ts +39 -59
- package/DS1/4-page/ds-header.ts +171 -0
- package/DS1/4-page/ds-page.ts +184 -0
- package/DS1/4-page/email.ts +2 -3
- package/DS1/4-page/styles/ds-container.css +1 -0
- package/DS1/4-page/styles/ds-document.css +18 -0
- package/DS1/4-page/styles/ds-footer.css +29 -0
- package/DS1/4-page/styles/ds-grid.css +31 -85
- package/DS1/4-page/styles/ds-header.css +57 -0
- package/DS1/4-page/styles/ds-page.css +214 -0
- package/DS1/components.ts +7 -1
- package/DS1/index.ts +26 -6
- package/DS1/react/avatar.ts +4 -5
- package/DS1/react/button-split.ts +29 -0
- package/DS1/react/button.ts +32 -13
- package/DS1/react/carousel.ts +76 -0
- package/DS1/react/dialog.ts +36 -5
- package/DS1/react/document.ts +14 -0
- package/DS1/react/empty.ts +32 -0
- package/DS1/react/footer.ts +17 -0
- package/DS1/react/header.ts +15 -0
- package/DS1/react/input.ts +28 -17
- package/DS1/react/kbd.ts +21 -0
- package/DS1/react/loading.ts +18 -0
- package/DS1/react/notice.ts +59 -0
- package/DS1/react/page.ts +13 -0
- package/DS1/react/progress.ts +99 -0
- package/DS1/react/sidebar.ts +60 -0
- package/DS1/react/spacing-handle.ts +21 -0
- package/DS1/react/stat.ts +73 -0
- package/DS1/react/toast.ts +82 -0
- package/DS1/x-icon/Tabler-LICENSE.md +27 -0
- package/DS1/x-icon/airtable.svg +5 -0
- package/DS1/x-icon/attach.svg +3 -0
- package/DS1/x-icon/audio.svg +3 -0
- package/DS1/x-icon/bag-alt.svg +3 -0
- package/DS1/x-icon/bank.svg +3 -0
- package/DS1/x-icon/banknote.svg +3 -0
- package/DS1/x-icon/bolt.svg +3 -0
- package/DS1/x-icon/book-alt.svg +3 -0
- package/DS1/x-icon/book.svg +4 -0
- package/DS1/x-icon/box.svg +3 -0
- package/DS1/x-icon/briefcase.svg +3 -0
- package/DS1/x-icon/building.svg +4 -0
- package/DS1/x-icon/car.svg +3 -0
- package/DS1/x-icon/card.svg +3 -0
- package/DS1/x-icon/cart.svg +3 -0
- package/DS1/x-icon/{ezo-item-button-start.svg → chevron-left.svg} +1 -1
- package/DS1/x-icon/{ezo-android-screen-stats.svg → chevron-right.svg} +1 -1
- package/DS1/x-icon/cloud.svg +3 -0
- package/DS1/x-icon/coffee.svg +3 -0
- package/DS1/x-icon/coins.svg +3 -0
- package/DS1/x-icon/cursor.svg +3 -0
- package/DS1/x-icon/curve.svg +7 -0
- package/DS1/x-icon/dislike.svg +4 -0
- package/DS1/x-icon/dot-bank.svg +3 -0
- package/DS1/x-icon/dot-banknote.svg +3 -0
- package/DS1/x-icon/dot-banknotes.svg +3 -0
- package/DS1/x-icon/dot-card.svg +3 -0
- package/DS1/x-icon/dot-coin.svg +3 -0
- package/DS1/x-icon/dot-coins.svg +3 -0
- package/DS1/x-icon/dot-receipt.svg +3 -0
- package/DS1/x-icon/dot-safe.svg +3 -0
- package/DS1/x-icon/dot-transfer.svg +3 -0
- package/DS1/x-icon/dot-wallet.svg +3 -0
- package/DS1/x-icon/download.svg +4 -0
- package/DS1/x-icon/drive.svg +5 -0
- package/DS1/x-icon/drop.svg +3 -0
- package/DS1/x-icon/dropbox.svg +3 -0
- package/DS1/x-icon/dumbbell.svg +3 -0
- package/DS1/x-icon/eye-off.svg +3 -0
- package/DS1/x-icon/eye.svg +3 -0
- package/DS1/x-icon/facebook.svg +3 -0
- package/DS1/x-icon/figma.svg +5 -0
- package/DS1/x-icon/flame.svg +3 -0
- package/DS1/x-icon/flip.svg +5 -0
- package/DS1/x-icon/food.svg +3 -0
- package/DS1/x-icon/fuel.svg +3 -0
- package/DS1/x-icon/game.svg +3 -0
- package/DS1/x-icon/gift.svg +3 -0
- package/DS1/x-icon/github.svg +3 -0
- package/DS1/x-icon/heart.svg +3 -0
- package/DS1/x-icon/history.svg +3 -0
- package/DS1/x-icon/home-alt.svg +3 -0
- package/DS1/x-icon/income.svg +3 -0
- package/DS1/x-icon/info.svg +5 -0
- package/DS1/x-icon/instagram.svg +5 -0
- package/DS1/x-icon/jpbank.svg +3 -0
- package/DS1/x-icon/key.svg +4 -0
- package/DS1/x-icon/keyboard.svg +3 -0
- package/DS1/x-icon/like.svg +4 -0
- package/DS1/x-icon/linkedin.svg +7 -0
- package/DS1/x-icon/loom.svg +6 -0
- package/DS1/x-icon/map.svg +4 -0
- package/DS1/x-icon/medical.svg +3 -0
- package/DS1/x-icon/{ezo-android-screen-lists.svg → minus.svg} +1 -1
- package/DS1/x-icon/moon.svg +3 -0
- package/DS1/x-icon/move.svg +3 -0
- package/DS1/x-icon/music-alt.svg +3 -0
- package/DS1/x-icon/music.svg +5 -0
- package/DS1/x-icon/notion.svg +6 -0
- package/DS1/x-icon/offline.svg +3 -0
- package/DS1/x-icon/pause.svg +4 -0
- package/DS1/x-icon/paw.svg +3 -0
- package/DS1/x-icon/pdf.svg +3 -0
- package/DS1/x-icon/people.svg +5 -0
- package/DS1/x-icon/percent.svg +3 -0
- package/DS1/x-icon/phone.svg +3 -0
- package/DS1/x-icon/pill.svg +3 -0
- package/DS1/x-icon/plane.svg +3 -0
- package/DS1/x-icon/postal.svg +3 -0
- package/DS1/x-icon/present.svg +4 -0
- package/DS1/x-icon/reaction.svg +5 -0
- package/DS1/x-icon/receipt.svg +3 -0
- package/DS1/x-icon/refresh.svg +3 -0
- package/DS1/x-icon/refund.svg +3 -0
- package/DS1/x-icon/repeat.svg +3 -0
- package/DS1/x-icon/rotate.svg +4 -0
- package/DS1/x-icon/safe.svg +3 -0
- package/DS1/x-icon/school-alt.svg +3 -0
- package/DS1/x-icon/shield-alt.svg +3 -0
- package/DS1/x-icon/shield.svg +4 -0
- package/DS1/x-icon/shirt.svg +3 -0
- package/DS1/x-icon/shop.svg +3 -0
- package/DS1/x-icon/sign-in.svg +3 -0
- package/DS1/x-icon/sign-out.svg +3 -0
- package/DS1/x-icon/slack.svg +6 -0
- package/DS1/x-icon/sparkle.svg +3 -0
- package/DS1/x-icon/start.svg +4 -0
- package/DS1/x-icon/{ezo-item-button-reopen.svg → stop.svg} +1 -1
- package/DS1/x-icon/sun.svg +3 -0
- package/DS1/x-icon/system.svg +4 -0
- package/DS1/x-icon/tag.svg +3 -0
- package/DS1/x-icon/ticket.svg +3 -0
- package/DS1/x-icon/title-struck.svg +4 -0
- package/DS1/x-icon/train.svg +3 -0
- package/DS1/x-icon/transfer.svg +3 -0
- package/DS1/x-icon/tv.svg +3 -0
- package/DS1/x-icon/upload.svg +4 -0
- package/DS1/x-icon/video.svg +4 -0
- package/DS1/x-icon/vimeo.svg +3 -0
- package/DS1/x-icon/wallet.svg +3 -0
- package/DS1/x-icon/wifi.svg +3 -0
- package/DS1/x-icon/window.svg +4 -0
- package/DS1/x-icon/wrench.svg +3 -0
- package/DS1/x-icon/x-brand.svg +4 -0
- package/DS1/x-icon/youtube.svg +4 -0
- package/README.md +3 -3
- package/dist/0-face/calendar.d.ts +75 -0
- package/dist/0-face/calendar.d.ts.map +1 -0
- package/dist/0-face/calendar.js +149 -0
- package/dist/0-face/carousel.d.ts +174 -0
- package/dist/0-face/carousel.d.ts.map +1 -0
- package/dist/0-face/carousel.js +583 -0
- package/dist/0-face/component-visibility.d.ts +7 -0
- package/dist/0-face/component-visibility.d.ts.map +1 -0
- package/dist/0-face/component-visibility.js +10 -0
- package/dist/0-face/copy-text.d.ts +11 -0
- package/dist/0-face/copy-text.d.ts.map +1 -0
- package/dist/0-face/copy-text.js +97 -0
- package/dist/0-face/device.d.ts +3 -7
- package/dist/0-face/device.d.ts.map +1 -1
- package/dist/0-face/device.js +7 -41
- package/dist/0-face/dialog-swipe.d.ts +49 -0
- package/dist/0-face/dialog-swipe.d.ts.map +1 -0
- package/dist/0-face/dialog-swipe.js +239 -0
- package/dist/0-face/dialogs.d.ts +33 -0
- package/dist/0-face/dialogs.d.ts.map +1 -0
- package/dist/0-face/dialogs.js +173 -0
- package/dist/0-face/drawer.d.ts +64 -0
- package/dist/0-face/drawer.d.ts.map +1 -0
- package/dist/0-face/drawer.js +256 -0
- package/dist/0-face/feedback-words.d.ts +21 -0
- package/dist/0-face/feedback-words.d.ts.map +1 -0
- package/dist/0-face/feedback-words.js +30 -0
- package/dist/0-face/feedback.d.ts +41 -0
- package/dist/0-face/feedback.d.ts.map +1 -0
- package/dist/0-face/feedback.js +35 -0
- package/dist/0-face/format.d.ts +166 -0
- package/dist/0-face/format.d.ts.map +1 -0
- package/dist/0-face/format.js +445 -0
- package/dist/0-face/generated/toast-assets.d.ts +11 -0
- package/dist/0-face/generated/toast-assets.d.ts.map +1 -0
- package/dist/0-face/generated/toast-assets.js +14 -0
- package/dist/0-face/grid-fit.js +1 -1
- package/dist/0-face/grid.d.ts.map +1 -1
- package/dist/0-face/grid.js +2 -1
- package/dist/0-face/header.d.ts +38 -0
- package/dist/0-face/header.d.ts.map +1 -0
- package/dist/0-face/header.js +80 -0
- package/dist/0-face/i18n.d.ts +32 -2
- package/dist/0-face/i18n.d.ts.map +1 -1
- package/dist/0-face/i18n.js +65 -19
- package/dist/0-face/keys.d.ts +104 -0
- package/dist/0-face/keys.d.ts.map +1 -0
- package/dist/0-face/keys.js +253 -0
- package/dist/0-face/languages.d.ts +2 -2
- package/dist/0-face/languages.js +3 -3
- package/dist/0-face/layout-inspector.js +6 -6
- package/dist/0-face/library-styles.d.ts +7 -0
- package/dist/0-face/library-styles.d.ts.map +1 -0
- package/dist/0-face/library-styles.js +29 -0
- package/dist/0-face/load-toaster.d.ts +8 -0
- package/dist/0-face/load-toaster.d.ts.map +1 -0
- package/dist/0-face/load-toaster.js +7 -0
- package/dist/0-face/preference-options.d.ts +34 -0
- package/dist/0-face/preference-options.d.ts.map +1 -0
- package/dist/0-face/preference-options.js +1 -0
- package/dist/0-face/preferences.d.ts +3 -12
- package/dist/0-face/preferences.d.ts.map +1 -1
- package/dist/0-face/pricing.d.ts +19 -9
- package/dist/0-face/pricing.d.ts.map +1 -1
- package/dist/0-face/pricing.js +81 -40
- package/dist/0-face/scaling.d.ts +71 -1
- package/dist/0-face/scaling.d.ts.map +1 -1
- package/dist/0-face/scaling.js +108 -3
- package/dist/0-face/shared-words.d.ts +9 -4
- package/dist/0-face/shared-words.d.ts.map +1 -1
- package/dist/0-face/sidebar.d.ts +69 -0
- package/dist/0-face/sidebar.d.ts.map +1 -0
- package/dist/0-face/sidebar.js +191 -0
- package/dist/0-face/theme-bootstrap.d.ts +1 -0
- package/dist/0-face/theme-bootstrap.d.ts.map +1 -0
- package/dist/0-face/theme-bootstrap.js +214 -0
- package/dist/0-face/theme.d.ts +32 -0
- package/dist/0-face/theme.d.ts.map +1 -1
- package/dist/0-face/theme.js +69 -43
- package/dist/0-face/toast-queue.d.ts +110 -0
- package/dist/0-face/toast-queue.d.ts.map +1 -0
- package/dist/0-face/toast-queue.js +98 -0
- package/dist/0-face/toaster.d.ts +27 -0
- package/dist/0-face/toaster.d.ts.map +1 -0
- package/dist/0-face/toaster.js +373 -0
- package/dist/0-face/tooltips.d.ts +24 -1
- package/dist/0-face/tooltips.d.ts.map +1 -1
- package/dist/0-face/tooltips.js +155 -16
- package/dist/0-face/translations/da.json +60 -1
- package/dist/0-face/translations/de.json +60 -1
- package/dist/0-face/translations/en.json +60 -1
- package/dist/0-face/translations/es.json +60 -1
- package/dist/0-face/translations/fi.json +60 -1
- package/dist/0-face/translations/fr.json +60 -1
- package/dist/0-face/translations/is.json +60 -1
- package/dist/0-face/translations/it.json +60 -1
- package/dist/0-face/translations/ja.json +60 -1
- package/dist/0-face/translations/ko.json +60 -1
- package/dist/0-face/translations/nb.json +60 -1
- package/dist/0-face/translations/pt-BR.json +60 -1
- package/dist/0-face/translations/pt.json +60 -1
- package/dist/0-face/translations/sv.json +60 -1
- package/dist/0-face/translations/zh.json +60 -1
- package/dist/0-face/translations-format.d.ts.map +1 -1
- package/dist/0-face/translations-format.js +3 -4
- package/dist/0-face/tree.d.ts +69 -0
- package/dist/0-face/tree.d.ts.map +1 -0
- package/dist/0-face/tree.js +191 -0
- package/dist/1-root/library-tokens.d.ts +31 -0
- package/dist/1-root/library-tokens.d.ts.map +1 -0
- package/dist/1-root/library-tokens.js +84 -0
- package/dist/1-root/measures.d.ts +52 -0
- package/dist/1-root/measures.d.ts.map +1 -0
- package/dist/1-root/measures.js +49 -0
- package/dist/1-root/palette.d.ts +5 -0
- package/dist/1-root/palette.d.ts.map +1 -1
- package/dist/1-root/palette.js +18 -0
- package/dist/2-core/button-split.d.ts +21 -0
- package/dist/2-core/button-split.d.ts.map +1 -0
- package/dist/2-core/button-split.js +48 -0
- package/dist/2-core/chart/grid-chart.d.ts +113 -0
- package/dist/2-core/chart/grid-chart.d.ts.map +1 -0
- package/dist/2-core/chart/grid-chart.js +466 -0
- package/dist/2-core/ds-avatar.d.ts +20 -3
- package/dist/2-core/ds-avatar.d.ts.map +1 -1
- package/dist/2-core/ds-avatar.js +19 -5
- package/dist/2-core/ds-badge.js +10 -13
- package/dist/2-core/ds-banner.d.ts +23 -7
- package/dist/2-core/ds-banner.d.ts.map +1 -1
- package/dist/2-core/ds-banner.js +48 -12
- package/dist/2-core/ds-button.d.ts +76 -0
- package/dist/2-core/ds-button.d.ts.map +1 -1
- package/dist/2-core/ds-button.js +101 -26
- package/dist/2-core/ds-card.d.ts +76 -11
- package/dist/2-core/ds-card.d.ts.map +1 -1
- package/dist/2-core/ds-card.js +129 -105
- package/dist/2-core/ds-chart.d.ts +105 -0
- package/dist/2-core/ds-chart.d.ts.map +1 -0
- package/dist/2-core/ds-chart.js +390 -0
- package/dist/2-core/ds-composer.d.ts +7 -0
- package/dist/2-core/ds-composer.d.ts.map +1 -1
- package/dist/2-core/ds-composer.js +1 -1
- package/dist/2-core/ds-cycle.d.ts +36 -2
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +95 -18
- package/dist/2-core/ds-empty.d.ts +74 -0
- package/dist/2-core/ds-empty.d.ts.map +1 -0
- package/dist/2-core/ds-empty.js +96 -0
- package/dist/2-core/ds-icon.d.ts +6 -0
- package/dist/2-core/ds-icon.d.ts.map +1 -1
- package/dist/2-core/ds-icon.js +12 -2
- package/dist/2-core/ds-input.d.ts +39 -1
- package/dist/2-core/ds-input.d.ts.map +1 -1
- package/dist/2-core/ds-input.js +150 -6
- package/dist/2-core/ds-kbd.d.ts +48 -0
- package/dist/2-core/ds-kbd.d.ts.map +1 -0
- package/dist/2-core/ds-kbd.js +65 -0
- package/dist/2-core/ds-language.d.ts +8 -1
- package/dist/2-core/ds-language.d.ts.map +1 -1
- package/dist/2-core/ds-language.js +2 -2
- package/dist/2-core/ds-loading.d.ts +40 -0
- package/dist/2-core/ds-loading.d.ts.map +1 -0
- package/dist/2-core/ds-loading.js +63 -0
- package/dist/2-core/ds-meter.d.ts +103 -0
- package/dist/2-core/ds-meter.d.ts.map +1 -0
- package/dist/2-core/ds-meter.js +124 -0
- package/dist/2-core/ds-notice.d.ts +103 -0
- package/dist/2-core/ds-notice.d.ts.map +1 -0
- package/dist/2-core/ds-notice.js +152 -0
- package/dist/2-core/ds-pagedots.d.ts +64 -7
- package/dist/2-core/ds-pagedots.d.ts.map +1 -1
- package/dist/2-core/ds-pagedots.js +124 -18
- package/dist/2-core/ds-progress.d.ts +200 -0
- package/dist/2-core/ds-progress.d.ts.map +1 -0
- package/dist/2-core/ds-progress.js +319 -0
- package/dist/2-core/ds-spacing-handle.d.ts +25 -0
- package/dist/2-core/ds-spacing-handle.d.ts.map +1 -0
- package/dist/2-core/ds-spacing-handle.js +25 -0
- package/dist/2-core/ds-split.d.ts +4 -67
- package/dist/2-core/ds-split.d.ts.map +1 -1
- package/dist/2-core/ds-split.js +4 -98
- package/dist/2-core/ds-stat.d.ts +126 -0
- package/dist/2-core/ds-stat.d.ts.map +1 -0
- package/dist/2-core/ds-stat.js +137 -0
- package/dist/2-core/ds-steps.d.ts +72 -0
- package/dist/2-core/ds-steps.d.ts.map +1 -0
- package/dist/2-core/ds-steps.js +114 -0
- package/dist/2-core/ds-switch.d.ts +1 -0
- package/dist/2-core/ds-switch.d.ts.map +1 -1
- package/dist/2-core/ds-switch.js +1 -0
- package/dist/2-core/ds-text.d.ts +15 -2
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +13 -0
- package/dist/2-core/ds-textarea.d.ts.map +1 -1
- package/dist/2-core/ds-textarea.js +1 -0
- package/dist/2-core/ds-toast.d.ts +139 -0
- package/dist/2-core/ds-toast.d.ts.map +1 -0
- package/dist/2-core/ds-toast.js +329 -0
- package/dist/2-core/ds-toggle.d.ts +11 -0
- package/dist/2-core/ds-toggle.d.ts.map +1 -0
- package/dist/2-core/ds-toggle.js +10 -0
- package/dist/2-core/figures.d.ts +56 -0
- package/dist/2-core/figures.d.ts.map +1 -0
- package/dist/2-core/figures.js +70 -0
- package/dist/2-core/generated/ds-icon-map.d.ts +118 -65
- package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -1
- package/dist/2-core/generated/ds-icon-map.js +234 -128
- package/dist/2-core/generated/icon-avatar.d.ts +2 -0
- package/dist/2-core/generated/icon-avatar.d.ts.map +1 -0
- package/dist/2-core/generated/icon-avatar.js +2 -0
- package/dist/2-core/generated/icons-extra.d.ts.map +1 -1
- package/dist/2-core/generated/icons-extra.js +118 -65
- package/dist/2-core/generated/icons-immediate.d.ts +1 -1
- package/dist/2-core/generated/icons-immediate.d.ts.map +1 -1
- package/dist/2-core/generated/icons-immediate.js +1 -1
- package/dist/2-core/spacing-handle.d.ts +28 -0
- package/dist/2-core/spacing-handle.d.ts.map +1 -0
- package/dist/2-core/spacing-handle.js +146 -0
- package/dist/3-unit/calendar-base.d.ts +149 -0
- package/dist/3-unit/calendar-base.d.ts.map +1 -0
- package/dist/3-unit/calendar-base.js +172 -0
- package/dist/3-unit/ds-accordion.d.ts +9 -0
- package/dist/3-unit/ds-accordion.d.ts.map +1 -1
- package/dist/3-unit/ds-accordion.js +7 -1
- package/dist/3-unit/ds-avatar-group.d.ts +1 -0
- package/dist/3-unit/ds-avatar-group.d.ts.map +1 -1
- package/dist/3-unit/ds-calendar-large.d.ts +138 -0
- package/dist/3-unit/ds-calendar-large.d.ts.map +1 -0
- package/dist/3-unit/ds-calendar-large.js +305 -0
- package/dist/3-unit/ds-calendar.d.ts +175 -0
- package/dist/3-unit/ds-calendar.d.ts.map +1 -0
- package/dist/3-unit/ds-calendar.js +303 -0
- package/dist/3-unit/ds-carousel.d.ts +182 -0
- package/dist/3-unit/ds-carousel.d.ts.map +1 -0
- package/dist/3-unit/ds-carousel.js +327 -0
- package/dist/3-unit/ds-date-picker.d.ts +203 -0
- package/dist/3-unit/ds-date-picker.d.ts.map +1 -0
- package/dist/3-unit/ds-date-picker.js +499 -0
- package/dist/3-unit/ds-form.d.ts.map +1 -1
- package/dist/3-unit/ds-form.js +38 -28
- package/dist/3-unit/ds-list.d.ts +12 -0
- package/dist/3-unit/ds-list.d.ts.map +1 -1
- package/dist/3-unit/ds-list.js +52 -1
- package/dist/3-unit/ds-matrix.d.ts +146 -0
- package/dist/3-unit/ds-matrix.d.ts.map +1 -0
- package/dist/3-unit/ds-matrix.js +248 -0
- package/dist/3-unit/ds-menu.d.ts +1 -1
- package/dist/3-unit/ds-menu.d.ts.map +1 -1
- package/dist/3-unit/ds-menu.js +7 -4
- package/dist/3-unit/ds-row.d.ts +66 -0
- package/dist/3-unit/ds-row.d.ts.map +1 -1
- package/dist/3-unit/ds-row.js +80 -1
- package/dist/3-unit/ds-sidebar.d.ts +108 -0
- package/dist/3-unit/ds-sidebar.d.ts.map +1 -0
- package/dist/3-unit/ds-sidebar.js +268 -0
- package/dist/3-unit/ds-table.d.ts +28 -10
- package/dist/3-unit/ds-table.d.ts.map +1 -1
- package/dist/3-unit/ds-table.js +53 -25
- package/dist/3-unit/ds-tree.d.ts +69 -0
- package/dist/3-unit/ds-tree.d.ts.map +1 -0
- package/dist/3-unit/ds-tree.js +136 -0
- package/dist/4-page/ds-dialog.d.ts +16 -1
- package/dist/4-page/ds-dialog.d.ts.map +1 -1
- package/dist/4-page/ds-dialog.js +39 -3
- package/dist/4-page/ds-document.d.ts +98 -0
- package/dist/4-page/ds-document.d.ts.map +1 -0
- package/dist/4-page/ds-document.js +213 -0
- package/dist/4-page/ds-footer.d.ts +100 -0
- package/dist/4-page/ds-footer.d.ts.map +1 -0
- package/dist/4-page/ds-footer.js +119 -0
- package/dist/4-page/ds-grid.d.ts +32 -12
- package/dist/4-page/ds-grid.d.ts.map +1 -1
- package/dist/4-page/ds-grid.js +30 -39
- package/dist/4-page/ds-header.d.ts +84 -0
- package/dist/4-page/ds-header.d.ts.map +1 -0
- package/dist/4-page/ds-header.js +143 -0
- package/dist/4-page/ds-layout.d.ts +1 -0
- package/dist/4-page/ds-layout.d.ts.map +1 -1
- package/dist/4-page/ds-layout.js +1 -1
- package/dist/4-page/ds-page.d.ts +110 -0
- package/dist/4-page/ds-page.d.ts.map +1 -0
- package/dist/4-page/ds-page.js +155 -0
- package/dist/4-page/email.d.ts +2 -3
- package/dist/4-page/email.d.ts.map +1 -1
- package/dist/4-page/email.js +2 -3
- package/dist/components.d.ts +4 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +4 -1
- package/dist/design-system-1.bundle.js +11304 -4322
- package/dist/design-system-1.bundle.js.map +1 -1
- package/dist/design-system-1.bundle.min.js +8867 -4132
- package/dist/design-system-1.bundle.min.js.map +1 -1
- package/dist/design-system-1.css +1 -1
- package/dist/feedback.js +541 -0
- package/dist/feedback.js.map +1 -0
- package/dist/icons-extra-B4Iotc7s.js +298 -0
- package/dist/icons-extra-B4Iotc7s.js.map +1 -0
- package/dist/icons-extra-C4sCgoUj.js +185 -0
- package/dist/icons-extra-C4sCgoUj.js.map +1 -0
- package/dist/icons-extra-DSav6uTU.js +300 -0
- package/dist/icons-extra-DSav6uTU.js.map +1 -0
- package/dist/icons-extra-Dc_yVWIz.js +1024 -0
- package/dist/icons-extra-Dc_yVWIz.js.map +1 -0
- package/dist/icons-extra-cfzoudMf.js +1030 -0
- package/dist/icons-extra-cfzoudMf.js.map +1 -0
- package/dist/icons-extra-g_xpwZhZ.js +631 -0
- package/dist/icons-extra-g_xpwZhZ.js.map +1 -0
- package/dist/index.d.ts +23 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -6
- package/dist/react/avatar.d.ts +5 -9
- package/dist/react/avatar.d.ts.map +1 -1
- package/dist/react/avatar.js +2 -2
- package/dist/react/button-split.d.ts +19 -0
- package/dist/react/button-split.d.ts.map +1 -0
- package/dist/react/button-split.js +35 -0
- package/dist/react/button.d.ts +18 -7
- package/dist/react/button.d.ts.map +1 -1
- package/dist/react/button.js +13 -4
- package/dist/react/carousel.d.ts +63 -0
- package/dist/react/carousel.d.ts.map +1 -0
- package/dist/react/carousel.js +47 -0
- package/dist/react/choice.d.ts +1 -1
- package/dist/react/context-menu.d.ts +337 -337
- package/dist/react/dialog.d.ts +684 -678
- package/dist/react/dialog.d.ts.map +1 -1
- package/dist/react/dialog.js +29 -3
- package/dist/react/document.d.ts +11 -0
- package/dist/react/document.d.ts.map +1 -0
- package/dist/react/document.js +10 -0
- package/dist/react/empty.d.ts +34 -0
- package/dist/react/empty.d.ts.map +1 -0
- package/dist/react/empty.js +8 -0
- package/dist/react/file-picker.d.ts +1 -1
- package/dist/react/footer.d.ts +13 -0
- package/dist/react/footer.d.ts.map +1 -0
- package/dist/react/footer.js +12 -0
- package/dist/react/header.d.ts +12 -0
- package/dist/react/header.d.ts.map +1 -0
- package/dist/react/header.js +11 -0
- package/dist/react/input.d.ts +31 -9
- package/dist/react/input.d.ts.map +1 -1
- package/dist/react/input.js +94 -94
- package/dist/react/kbd.d.ts +26 -0
- package/dist/react/kbd.d.ts.map +1 -0
- package/dist/react/kbd.js +8 -0
- package/dist/react/loading.d.ts +14 -0
- package/dist/react/loading.d.ts.map +1 -0
- package/dist/react/loading.js +14 -0
- package/dist/react/meter.d.ts +64 -0
- package/dist/react/meter.d.ts.map +1 -0
- package/dist/react/meter.js +15 -0
- package/dist/react/notice.d.ts +45 -0
- package/dist/react/notice.d.ts.map +1 -0
- package/dist/react/notice.js +34 -0
- package/dist/react/page.d.ts +10 -0
- package/dist/react/page.d.ts.map +1 -0
- package/dist/react/page.js +9 -0
- package/dist/react/progress.d.ts +107 -0
- package/dist/react/progress.d.ts.map +1 -0
- package/dist/react/progress.js +47 -0
- package/dist/react/sidebar.d.ts +44 -0
- package/dist/react/sidebar.d.ts.map +1 -0
- package/dist/react/sidebar.js +41 -0
- package/dist/react/spacing-handle.d.ts +13 -0
- package/dist/react/spacing-handle.d.ts.map +1 -0
- package/dist/react/spacing-handle.js +18 -0
- package/dist/react/split.d.ts +6 -14
- package/dist/react/split.d.ts.map +1 -1
- package/dist/react/split.js +5 -31
- package/dist/react/stat.d.ts +78 -0
- package/dist/react/stat.d.ts.map +1 -0
- package/dist/react/stat.js +25 -0
- package/dist/react/steps.d.ts +36 -0
- package/dist/react/steps.d.ts.map +1 -0
- package/dist/react/steps.js +10 -0
- package/dist/react/toast.d.ts +37 -0
- package/dist/react/toast.d.ts.map +1 -0
- package/dist/react/toast.js +55 -0
- package/dist/react/tree.d.ts +31 -0
- package/dist/react/tree.d.ts.map +1 -0
- package/dist/react/tree.js +37 -0
- package/dist/shared-words-BfnT24Fe.js +1635 -0
- package/dist/shared-words-BfnT24Fe.js.map +1 -0
- package/dist/shared-words-CyZYc_De.js +1818 -0
- package/dist/shared-words-CyZYc_De.js.map +1 -0
- package/dist/shared-words-DAVSET4Z.js +1800 -0
- package/dist/shared-words-DAVSET4Z.js.map +1 -0
- package/dist/shared-words-UCvnkctb.js +1653 -0
- package/dist/shared-words-UCvnkctb.js.map +1 -0
- package/package.json +16 -5
- package/DS1/2-core/ds-banner.ts +0 -122
- package/DS1/2-core/ds-date.ts +0 -24
- package/DS1/2-core/ds-language.ts +0 -94
- package/DS1/2-core/ds-pagedots.ts +0 -52
- package/DS1/2-core/ds-split.ts +0 -122
- package/DS1/2-core/ds-textarea.ts +0 -136
- package/DS1/2-core/styles/ds-banner.css +0 -77
- package/DS1/2-core/styles/ds-date.css +0 -9
- package/DS1/2-core/styles/ds-language.css +0 -78
- package/DS1/2-core/styles/ds-pagedots.css +0 -31
- package/DS1/2-core/styles/ds-textarea.css +0 -27
- package/DS1/4-page/ds-layout.ts +0 -949
- package/DS1/4-page/styles/ds-layout.css +0 -246
- package/DS1/react/split.ts +0 -42
- package/DS1/x-icon/ezo-accordion-chevron.svg +0 -11
- package/DS1/x-icon/ezo-account-close.svg +0 -1
- package/DS1/x-icon/ezo-android-screen-archive.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-calendar.svg +0 -6
- package/DS1/x-icon/ezo-android-screen-camera.svg +0 -5
- package/DS1/x-icon/ezo-android-screen-check.svg +0 -3
- package/DS1/x-icon/ezo-android-screen-compose.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-globe.svg +0 -1
- package/DS1/x-icon/ezo-android-screen-shared.svg +0 -5
- package/DS1/x-icon/ezo-android-screen-store.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-views.svg +0 -4
- package/DS1/x-icon/ezo-android-screen-work.svg +0 -3
- package/DS1/x-icon/ezo-arrow-cursor.svg +0 -8
- package/DS1/x-icon/ezo-block-accordion.svg +0 -1
- package/DS1/x-icon/ezo-block-divider.svg +0 -1
- package/DS1/x-icon/ezo-block-group.svg +0 -1
- package/DS1/x-icon/ezo-block-image.svg +0 -1
- package/DS1/x-icon/ezo-block-section.svg +0 -1
- package/DS1/x-icon/ezo-block-table.svg +0 -1
- package/DS1/x-icon/ezo-code.svg +0 -14
- package/DS1/x-icon/ezo-down.svg +0 -3
- package/DS1/x-icon/ezo-figma-premium-star.svg +0 -5
- package/DS1/x-icon/ezo-item-button-complete.svg +0 -4
- package/DS1/x-icon/ezo-item-button-header.svg +0 -3
- package/DS1/x-icon/ezo-item-button-open.svg +0 -3
- package/DS1/x-icon/ezo-item-button-star.svg +0 -3
- package/DS1/x-icon/ezo-item-button-unheader.svg +0 -7
- package/DS1/x-icon/ezo-item-button-unstar.svg +0 -5
- package/DS1/x-icon/ezo-item-star.svg +0 -5
- package/DS1/x-icon/ezo-left.svg +0 -3
- package/DS1/x-icon/ezo-logo.svg +0 -1
- package/DS1/x-icon/ezo-mic.svg +0 -8
- package/DS1/x-icon/ezo-move-column.svg +0 -14
- package/DS1/x-icon/ezo-move-row.svg +0 -18
- package/DS1/x-icon/ezo-navigation-check.svg +0 -1
- package/DS1/x-icon/ezo-note-back.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-complete.svg +0 -11
- package/DS1/x-icon/ezo-note-menu-delete.svg +0 -4
- package/DS1/x-icon/ezo-note-menu-duplicate.svg +0 -8
- package/DS1/x-icon/ezo-note-menu-note.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-page.svg +0 -3
- package/DS1/x-icon/ezo-note-menu-star.svg +0 -5
- package/DS1/x-icon/ezo-note-menu-start.svg +0 -6
- package/DS1/x-icon/ezo-note-menu-stop.svg +0 -6
- package/DS1/x-icon/ezo-note-more.svg +0 -7
- package/DS1/x-icon/ezo-note-star.svg +0 -5
- package/DS1/x-icon/ezo-pattern-call-to-action.svg +0 -1
- package/DS1/x-icon/ezo-play.svg +0 -5
- package/DS1/x-icon/ezo-premium-star.svg +0 -5
- package/DS1/x-icon/ezo-setting-1xdots.svg +0 -13
- package/DS1/x-icon/ezo-setting-1xgrid.svg +0 -10
- package/DS1/x-icon/ezo-setting-1xlines.svg +0 -7
- package/DS1/x-icon/ezo-setting-2xdots.svg +0 -8
- package/DS1/x-icon/ezo-setting-2xgrid.svg +0 -8
- package/DS1/x-icon/ezo-setting-2xlines.svg +0 -6
- package/DS1/x-icon/ezo-setting-blank.svg +0 -5
- package/DS1/x-icon/ezo-store-chevron.svg +0 -1
- package/DS1/x-icon/ezo-upgrade-close.svg +0 -5
- package/DS1/x-icon/product-sources.json +0 -2557
- /package/DS1/x-icon/{ezo-password-visibility-see.svg → password-see.svg} +0 -0
- /package/DS1/x-icon/{ezo-password-visibility-unsee.svg → password-unsee.svg} +0 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The keyboard and pointer of a tree, shared by `<ds-tree>` and the native
|
|
3
|
+
* `.ds-tree` classes of `row.css`.
|
|
4
|
+
*
|
|
5
|
+
* A tree is one stop for Tab: the row that has the focus (the selected row
|
|
6
|
+
* at first, otherwise the first) carries `tabindex="0"` and every other row
|
|
7
|
+
* `-1`. Up and Down move between rows that are not disabled, Home and End to
|
|
8
|
+
* the first and last; Right opens a closed row and enters an open one; Left
|
|
9
|
+
* closes an open row and moves to its parent; a printed character moves to
|
|
10
|
+
* the next row whose label starts with it. Space selects the row, Enter
|
|
11
|
+
* selects and activates it, as a double click does.
|
|
12
|
+
*
|
|
13
|
+
* `treeStep()` is that model alone, on the visible rows. `connectTree()`
|
|
14
|
+
* puts it on a native tree: rows with `role="treeitem"` and `aria-level`,
|
|
15
|
+
* flat, in order, inside an element with `role="tree"`. It dispatches the
|
|
16
|
+
* same events as `<ds-tree>` (`ds-tree-toggle`, `ds-tree-select`,
|
|
17
|
+
* `ds-tree-activate`, each with `{ id }`), and unless the page cancels one
|
|
18
|
+
* it does what the event asks: opens or closes the row, hiding the rows
|
|
19
|
+
* inside it, or selects it.
|
|
20
|
+
*/
|
|
21
|
+
const available = (rows, from, step) => {
|
|
22
|
+
for (let index = from; index >= 0 && index < rows.length; index += step)
|
|
23
|
+
if (!rows[index].disabled)
|
|
24
|
+
return index;
|
|
25
|
+
return undefined;
|
|
26
|
+
};
|
|
27
|
+
/** The next row after `index` whose label starts with `letter`, from the top again after the last. */
|
|
28
|
+
function typeahead(rows, index, letter) {
|
|
29
|
+
const wanted = letter.toLocaleLowerCase();
|
|
30
|
+
for (let offset = 1; offset <= rows.length; offset++) {
|
|
31
|
+
const at = (index + offset) % rows.length;
|
|
32
|
+
const row = rows[at];
|
|
33
|
+
if (!row.disabled && (row.label ?? "").trim().toLocaleLowerCase().startsWith(wanted))
|
|
34
|
+
return at;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* What `key` does on the row at `index` of the visible `rows`, or
|
|
40
|
+
* `undefined` when the tree leaves the key alone.
|
|
41
|
+
*/
|
|
42
|
+
export function treeStep(rows, index, key) {
|
|
43
|
+
const row = rows[index];
|
|
44
|
+
if (!row)
|
|
45
|
+
return undefined;
|
|
46
|
+
switch (key) {
|
|
47
|
+
case "ArrowDown": return { focus: available(rows, index + 1, 1) ?? index };
|
|
48
|
+
case "ArrowUp": return { focus: available(rows, index - 1, -1) ?? index };
|
|
49
|
+
case "Home": return { focus: available(rows, 0, 1) ?? index };
|
|
50
|
+
case "End": return { focus: available(rows, rows.length - 1, -1) ?? index };
|
|
51
|
+
case "ArrowRight":
|
|
52
|
+
if (row.expanded === false)
|
|
53
|
+
return row.disabled ? {} : { toggle: true };
|
|
54
|
+
if (row.expanded && (rows[index + 1]?.level ?? 0) > row.level)
|
|
55
|
+
return { focus: available(rows, index + 1, 1) ?? index };
|
|
56
|
+
return {};
|
|
57
|
+
case "ArrowLeft": {
|
|
58
|
+
if (row.expanded && !row.disabled)
|
|
59
|
+
return { toggle: false };
|
|
60
|
+
for (let at = index - 1; at >= 0; at--)
|
|
61
|
+
if (rows[at].level < row.level)
|
|
62
|
+
return rows[at].disabled ? {} : { focus: at };
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
case "Enter": return row.disabled ? {} : { select: true, activate: true };
|
|
66
|
+
case " ": return row.disabled ? {} : { select: true };
|
|
67
|
+
default: {
|
|
68
|
+
// One printed character, a letter outside the basic plane included; named keys are longer.
|
|
69
|
+
if (!/^\S$/u.test(key))
|
|
70
|
+
return undefined;
|
|
71
|
+
const at = typeahead(rows, index, key);
|
|
72
|
+
return at === undefined ? {} : { focus: at };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const ITEM = '[role="treeitem"]';
|
|
77
|
+
const level = (item) => Math.max(1, Number.parseInt(item.getAttribute("aria-level") ?? "1", 10) || 1);
|
|
78
|
+
const expandedOf = (item) => {
|
|
79
|
+
const value = item.getAttribute("aria-expanded");
|
|
80
|
+
return value === null ? undefined : value === "true";
|
|
81
|
+
};
|
|
82
|
+
const disabledOf = (item) => item.getAttribute("aria-disabled") === "true";
|
|
83
|
+
const labelOf = (item) => (item.querySelector(".ds-tree__label") ?? item).textContent ?? "";
|
|
84
|
+
/** A row's name in the events: `data-id`, else its `id`. */
|
|
85
|
+
const idOf = (item) => item.dataset.id ?? item.id;
|
|
86
|
+
/**
|
|
87
|
+
* Gives a native tree its keyboard and pointer. Returns a function that
|
|
88
|
+
* takes them away again.
|
|
89
|
+
*
|
|
90
|
+
* <ul class="ds-tree" role="tree" aria-label="Files">
|
|
91
|
+
* <li class="ds-tree__item" role="treeitem" aria-level="1" aria-expanded="true" data-id="src">
|
|
92
|
+
* <span class="ds-tree__disclosure" aria-hidden="true"></span>
|
|
93
|
+
* <span class="ds-tree__label">src</span>
|
|
94
|
+
* </li>
|
|
95
|
+
* <li class="ds-tree__item" role="treeitem" aria-level="2" data-id="main">…</li>
|
|
96
|
+
* </ul>
|
|
97
|
+
*/
|
|
98
|
+
export function connectTree(tree) {
|
|
99
|
+
const items = () => [...tree.querySelectorAll(ITEM)];
|
|
100
|
+
const visible = () => items().filter(item => !item.hidden && !item.closest("[hidden]"));
|
|
101
|
+
/** Exactly one visible row is the Tab stop: the focused one, else the selected one, else the first available. */
|
|
102
|
+
const rove = (focus) => {
|
|
103
|
+
const rows = visible();
|
|
104
|
+
const current = focus ?? rows.find(item => item.tabIndex === 0 && !disabledOf(item)) ?? rows.find(item => item.getAttribute("aria-selected") === "true") ?? rows.find(item => !disabledOf(item)) ?? rows[0];
|
|
105
|
+
for (const item of items())
|
|
106
|
+
item.tabIndex = item === current ? 0 : -1;
|
|
107
|
+
return current;
|
|
108
|
+
};
|
|
109
|
+
const send = (name, detail) => tree.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true, cancelable: true }));
|
|
110
|
+
/** Opens or closes a row and shows or hides the rows inside it, keeping closed rows inside it closed. */
|
|
111
|
+
const toggle = (item, expanded) => {
|
|
112
|
+
if (!send("ds-tree-toggle", { id: idOf(item), expanded }))
|
|
113
|
+
return;
|
|
114
|
+
item.setAttribute("aria-expanded", String(expanded));
|
|
115
|
+
const all = items();
|
|
116
|
+
const own = level(item);
|
|
117
|
+
let closedAt = Infinity;
|
|
118
|
+
for (const row of all.slice(all.indexOf(item) + 1)) {
|
|
119
|
+
const depth = level(row);
|
|
120
|
+
if (depth <= own)
|
|
121
|
+
break;
|
|
122
|
+
if (depth <= closedAt)
|
|
123
|
+
closedAt = Infinity;
|
|
124
|
+
row.hidden = !expanded || depth > closedAt;
|
|
125
|
+
if (expanded && !row.hidden && row.getAttribute("aria-expanded") === "false")
|
|
126
|
+
closedAt = depth;
|
|
127
|
+
}
|
|
128
|
+
rove(item);
|
|
129
|
+
};
|
|
130
|
+
const select = (item) => {
|
|
131
|
+
if (!send("ds-tree-select", { id: idOf(item) }))
|
|
132
|
+
return;
|
|
133
|
+
for (const row of items())
|
|
134
|
+
if (row.hasAttribute("aria-selected") || row === item)
|
|
135
|
+
row.setAttribute("aria-selected", String(row === item));
|
|
136
|
+
};
|
|
137
|
+
const focus = (item) => { rove(item); item.focus(); };
|
|
138
|
+
const keydown = (event) => {
|
|
139
|
+
if (event.altKey || event.ctrlKey || event.metaKey)
|
|
140
|
+
return;
|
|
141
|
+
const item = event.target?.closest(ITEM);
|
|
142
|
+
if (!item || !tree.contains(item))
|
|
143
|
+
return;
|
|
144
|
+
const rows = visible();
|
|
145
|
+
const step = treeStep(rows.map(row => ({ level: level(row), expanded: expandedOf(row), disabled: disabledOf(row), label: labelOf(row) })), rows.indexOf(item), event.key);
|
|
146
|
+
if (!step)
|
|
147
|
+
return;
|
|
148
|
+
event.preventDefault();
|
|
149
|
+
if (step.toggle !== undefined)
|
|
150
|
+
toggle(item, step.toggle);
|
|
151
|
+
if (step.select)
|
|
152
|
+
select(item);
|
|
153
|
+
if (step.activate)
|
|
154
|
+
send("ds-tree-activate", { id: idOf(item) });
|
|
155
|
+
if (step.focus !== undefined && rows[step.focus])
|
|
156
|
+
focus(rows[step.focus]);
|
|
157
|
+
};
|
|
158
|
+
const click = (event) => {
|
|
159
|
+
const item = event.target?.closest(ITEM);
|
|
160
|
+
if (!item || !tree.contains(item) || disabledOf(item))
|
|
161
|
+
return;
|
|
162
|
+
const disclosure = event.target.closest(".ds-tree__disclosure");
|
|
163
|
+
if (disclosure && expandedOf(item) !== undefined)
|
|
164
|
+
toggle(item, !expandedOf(item));
|
|
165
|
+
else
|
|
166
|
+
select(item);
|
|
167
|
+
focus(item);
|
|
168
|
+
};
|
|
169
|
+
const dblclick = (event) => {
|
|
170
|
+
const item = event.target?.closest(ITEM);
|
|
171
|
+
if (!item || !tree.contains(item) || disabledOf(item) || event.target.closest(".ds-tree__disclosure"))
|
|
172
|
+
return;
|
|
173
|
+
send("ds-tree-activate", { id: idOf(item) });
|
|
174
|
+
};
|
|
175
|
+
if (!tree.hasAttribute("role"))
|
|
176
|
+
tree.setAttribute("role", "tree");
|
|
177
|
+
rove();
|
|
178
|
+
// Rows the page adds or removes keep one Tab stop.
|
|
179
|
+
const observer = typeof MutationObserver === "undefined" ? undefined : new MutationObserver(() => { if (!items().some(item => item.tabIndex === 0 && !item.hidden))
|
|
180
|
+
rove(); });
|
|
181
|
+
observer?.observe(tree, { childList: true, subtree: true });
|
|
182
|
+
tree.addEventListener("keydown", keydown);
|
|
183
|
+
tree.addEventListener("click", click);
|
|
184
|
+
tree.addEventListener("dblclick", dblclick);
|
|
185
|
+
return () => {
|
|
186
|
+
observer?.disconnect();
|
|
187
|
+
tree.removeEventListener("keydown", keydown);
|
|
188
|
+
tree.removeEventListener("click", click);
|
|
189
|
+
tree.removeEventListener("dblclick", dblclick);
|
|
190
|
+
};
|
|
191
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** `[component token, library token]`: each component token takes the library token's value. */
|
|
2
|
+
export declare const LIBRARY_TOKENS: readonly [readonly ["--ds-accent-color", "--one-accent-color"], readonly ["--ds-button-background-color-primary", "--one-button-primary-background"], readonly ["--ds-button-text-color-on-accent", "--one-button-primary-text"], readonly ["--ds-button-background-color-secondary", "--one-button-neutral-background"], readonly ["--ds-button-text-color", "--one-button-neutral-text"], readonly ["--ds-fill-hover", "--one-button-neutral-background-hover"], readonly ["--ds-paper", "--one-background"], readonly ["--ds-fill", "--one-surface"], readonly ["--ds-text-color", "--one-text"], readonly ["--ds-text-color-muted", "--one-text-muted"], readonly ["--ds-border-color", "--one-border"], readonly ["--ds-focus-ring", "--one-color-focus"], readonly ["--ds-input-background", "--one-input-background"], readonly ["--ds-input-color", "--one-input-text"], readonly ["--ds-input-placeholder-color", "--one-input-placeholder"], readonly ["--ds-input-disabled-color", "--one-input-disabled-text"], readonly ["--accent-color", "--one-accent-color"], readonly ["--button-background-color-primary", "--one-button-primary-background"], readonly ["--button-text-color-on-light", "--one-button-primary-text"], readonly ["--button-background-color-secondary", "--one-button-neutral-background"], readonly ["--button-text-color", "--one-button-neutral-text"], readonly ["--base-light-grey", "--one-input-background"], readonly ["--base-slate", "--one-input-text"], readonly ["--ds-typeface-regular", "--one-font"], readonly ["--ds-typeface-medium", "--one-font-medium"], readonly ["--ds-typeface-mono", "--one-font-mono"], readonly ["--ds-text-size", "--one-font-size"], readonly ["--ds-small-text-size", "--one-font-size-small"], readonly ["--ds-heading-text-size", "--one-heading-size"], readonly ["--ds-display-text-size", "--one-display-size"], readonly ["--ds-text-tracking", "--one-letter-spacing"], readonly ["--ds-control-size", "--one-control-height"], readonly ["--ds-corner-size", "--one-radius"], readonly ["--ds-card-corner-size", "--one-radius"], readonly ["--ds-button-inset", "--one-button-padding-inline"], readonly ["--ds-1", "--one-unit"]];
|
|
3
|
+
/**
|
|
4
|
+
* A link drawn as a button: `<a data-library-button>`. Publishing gives it the library's button
|
|
5
|
+
* faces (every `button` selector also matches it, `a` selectors leave it out) and
|
|
6
|
+
* `aria-disabled="true"` on it the disabled face, while it stays a link: navigation, selection and
|
|
7
|
+
* modifier-click are the browser's.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LIBRARY_BUTTON_LINK = "data-library-button";
|
|
10
|
+
/** The selector rewrites publishing applies, by what they replace. Specificity is kept: additions are in `:where()`. */
|
|
11
|
+
export declare const LIBRARY_SELECTORS: {
|
|
12
|
+
readonly button: ":is(button, :where(a[data-library-button]))";
|
|
13
|
+
readonly a: "a:not(:where([data-library-button]))";
|
|
14
|
+
readonly ":disabled": ":is(:disabled, :where([data-library-button][aria-disabled=\"true\"]))";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* What a button-link takes from the browser's button rather than its link, before any library
|
|
18
|
+
* rule: no underline, a box, centred words. Without specificity, so every library rule wins.
|
|
19
|
+
*/
|
|
20
|
+
export declare const LIBRARY_BUTTON_LINK_BASE = ":where(a[data-library-button]) { display: inline-block; text-align: center; text-decoration: none; }";
|
|
21
|
+
/**
|
|
22
|
+
* The revision of the rules above: `sha256:` and the first 12 hex digits of the sha256 of
|
|
23
|
+
* `JSON.stringify({ tokens: LIBRARY_TOKENS, selectors: LIBRARY_SELECTORS, base: LIBRARY_BUTTON_LINK_BASE })`. Every published
|
|
24
|
+
* version is stamped with it, and Sync 1 records it when a product pins the version.
|
|
25
|
+
*/
|
|
26
|
+
export declare const LIBRARY_REVISION = "sha256:8a0b55ce3acd";
|
|
27
|
+
/** The first line of a prepared library. */
|
|
28
|
+
export declare const libraryStamp: (revision?: string) => string;
|
|
29
|
+
/** The revision a prepared library was stamped with, or undefined for a library published before stamping. */
|
|
30
|
+
export declare function libraryRevision(css: string): string | undefined;
|
|
31
|
+
//# sourceMappingURL=library-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-tokens.d.ts","sourceRoot":"","sources":["../../DS1/1-root/library-tokens.ts"],"names":[],"mappings":"AAYA,gGAAgG;AAChG,eAAO,MAAM,cAAc,8lEAyCoD,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,wHAAwH;AACxH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yGAA4G,CAAC;AAElJ;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,4CAA4C;AAC5C,eAAO,MAAM,YAAY,GAAI,WAA+B,MAAM,WAA0D,CAAC;AAE7H,8GAA8G;AAC9G,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// How a published design library reaches Design system 1's components. A library is a stylesheet
|
|
2
|
+
// its owner edits in the libraries app, written in the classless sheet's `--one-*` tokens
|
|
3
|
+
// (one.semantic.css) and its native selectors. DS1's components draw from `--ds-*` tokens
|
|
4
|
+
// (component-tokens.css, component-metrics.css) and, in some faces, one.css's own names
|
|
5
|
+
// (`--accent-color`). Publishing prepares the library
|
|
6
|
+
// (packages/css-validate/src/library.ts): after each `--one-*` token below that the library
|
|
7
|
+
// declares, it writes the component token that follows it, in the same rule, so the library's
|
|
8
|
+
// corners, fills, accent and type reach the components wherever the library sets them. A page
|
|
9
|
+
// without a library loads none of this, so DS1's own defaults never change.
|
|
10
|
+
//
|
|
11
|
+
// Change the bridge here, then update LIBRARY_REVISION: packages/css-validate/test/library.test.ts recomputes it.
|
|
12
|
+
/** `[component token, library token]`: each component token takes the library token's value. */
|
|
13
|
+
export const LIBRARY_TOKENS = [
|
|
14
|
+
// Colours.
|
|
15
|
+
["--ds-accent-color", "--one-accent-color"],
|
|
16
|
+
["--ds-button-background-color-primary", "--one-button-primary-background"],
|
|
17
|
+
["--ds-button-text-color-on-accent", "--one-button-primary-text"],
|
|
18
|
+
["--ds-button-background-color-secondary", "--one-button-neutral-background"],
|
|
19
|
+
["--ds-button-text-color", "--one-button-neutral-text"],
|
|
20
|
+
["--ds-fill-hover", "--one-button-neutral-background-hover"],
|
|
21
|
+
["--ds-paper", "--one-background"],
|
|
22
|
+
["--ds-fill", "--one-surface"],
|
|
23
|
+
["--ds-text-color", "--one-text"],
|
|
24
|
+
["--ds-text-color-muted", "--one-text-muted"],
|
|
25
|
+
["--ds-border-color", "--one-border"],
|
|
26
|
+
["--ds-focus-ring", "--one-color-focus"],
|
|
27
|
+
["--ds-input-background", "--one-input-background"],
|
|
28
|
+
["--ds-input-color", "--one-input-text"],
|
|
29
|
+
["--ds-input-placeholder-color", "--one-input-placeholder"],
|
|
30
|
+
["--ds-input-disabled-color", "--one-input-disabled-text"],
|
|
31
|
+
// The same colours under one.css's names, which the faces of ds-button and ds-input read.
|
|
32
|
+
["--accent-color", "--one-accent-color"],
|
|
33
|
+
["--button-background-color-primary", "--one-button-primary-background"],
|
|
34
|
+
["--button-text-color-on-light", "--one-button-primary-text"],
|
|
35
|
+
["--button-background-color-secondary", "--one-button-neutral-background"],
|
|
36
|
+
["--button-text-color", "--one-button-neutral-text"],
|
|
37
|
+
["--base-light-grey", "--one-input-background"],
|
|
38
|
+
["--base-slate", "--one-input-text"],
|
|
39
|
+
// Type.
|
|
40
|
+
["--ds-typeface-regular", "--one-font"],
|
|
41
|
+
["--ds-typeface-medium", "--one-font-medium"],
|
|
42
|
+
["--ds-typeface-mono", "--one-font-mono"],
|
|
43
|
+
// Measures, unscaled: component-metrics.css multiplies each by the component's --ds-sf.
|
|
44
|
+
["--ds-text-size", "--one-font-size"],
|
|
45
|
+
["--ds-small-text-size", "--one-font-size-small"],
|
|
46
|
+
["--ds-heading-text-size", "--one-heading-size"],
|
|
47
|
+
["--ds-display-text-size", "--one-display-size"],
|
|
48
|
+
["--ds-text-tracking", "--one-letter-spacing"],
|
|
49
|
+
["--ds-control-size", "--one-control-height"],
|
|
50
|
+
["--ds-corner-size", "--one-radius"],
|
|
51
|
+
["--ds-card-corner-size", "--one-radius"],
|
|
52
|
+
["--ds-button-inset", "--one-button-padding-inline"],
|
|
53
|
+
["--ds-1", "--one-unit"],
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* A link drawn as a button: `<a data-library-button>`. Publishing gives it the library's button
|
|
57
|
+
* faces (every `button` selector also matches it, `a` selectors leave it out) and
|
|
58
|
+
* `aria-disabled="true"` on it the disabled face, while it stays a link: navigation, selection and
|
|
59
|
+
* modifier-click are the browser's.
|
|
60
|
+
*/
|
|
61
|
+
export const LIBRARY_BUTTON_LINK = "data-library-button";
|
|
62
|
+
/** The selector rewrites publishing applies, by what they replace. Specificity is kept: additions are in `:where()`. */
|
|
63
|
+
export const LIBRARY_SELECTORS = {
|
|
64
|
+
button: `:is(button, :where(a[${LIBRARY_BUTTON_LINK}]))`,
|
|
65
|
+
a: `a:not(:where([${LIBRARY_BUTTON_LINK}]))`,
|
|
66
|
+
":disabled": `:is(:disabled, :where([${LIBRARY_BUTTON_LINK}][aria-disabled="true"]))`,
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* What a button-link takes from the browser's button rather than its link, before any library
|
|
70
|
+
* rule: no underline, a box, centred words. Without specificity, so every library rule wins.
|
|
71
|
+
*/
|
|
72
|
+
export const LIBRARY_BUTTON_LINK_BASE = `:where(a[${LIBRARY_BUTTON_LINK}]) { display: inline-block; text-align: center; text-decoration: none; }`;
|
|
73
|
+
/**
|
|
74
|
+
* The revision of the rules above: `sha256:` and the first 12 hex digits of the sha256 of
|
|
75
|
+
* `JSON.stringify({ tokens: LIBRARY_TOKENS, selectors: LIBRARY_SELECTORS, base: LIBRARY_BUTTON_LINK_BASE })`. Every published
|
|
76
|
+
* version is stamped with it, and Sync 1 records it when a product pins the version.
|
|
77
|
+
*/
|
|
78
|
+
export const LIBRARY_REVISION = "sha256:8a0b55ce3acd";
|
|
79
|
+
/** The first line of a prepared library. */
|
|
80
|
+
export const libraryStamp = (revision = LIBRARY_REVISION) => `/* Design system 1 library, revision ${revision} */`;
|
|
81
|
+
/** The revision a prepared library was stamped with, or undefined for a library published before stamping. */
|
|
82
|
+
export function libraryRevision(css) {
|
|
83
|
+
return /^(?:\uFEFF)?(?:@charset "[^"]*";\s*)?\/\* Design system 1 library, revision (sha256:[0-9a-f]{12}) \*\//.exec(css)?.[1];
|
|
84
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare const measures: {
|
|
2
|
+
/** One square, `--1` and `--ds-1`. */
|
|
3
|
+
readonly square: 20;
|
|
4
|
+
/** Half a square, `--half`: the smallest gap. */
|
|
5
|
+
readonly half: 10;
|
|
6
|
+
/** A control: a switch's height, a toast's line, a small avatar. `--ds-08`. */
|
|
7
|
+
readonly control: 16;
|
|
8
|
+
/** A row, an item, a header, a menu entry: one square. */
|
|
9
|
+
readonly row: 20;
|
|
10
|
+
/** An item is drawn one point short of its pitch, so its outline lands on the grid line. */
|
|
11
|
+
readonly item: {
|
|
12
|
+
readonly width: 79;
|
|
13
|
+
readonly height: 19;
|
|
14
|
+
readonly correction: 1;
|
|
15
|
+
};
|
|
16
|
+
readonly type: {
|
|
17
|
+
/** Text, `--type-size-default` and `--ds-type-size-default`. */
|
|
18
|
+
readonly default: 14;
|
|
19
|
+
readonly small: 10;
|
|
20
|
+
readonly heading: 13;
|
|
21
|
+
/** A display title, set on two squares. */
|
|
22
|
+
readonly display: 20;
|
|
23
|
+
};
|
|
24
|
+
/** A line of text's own box, `--type-lineheight-default`; the line it stands on is one square. */
|
|
25
|
+
readonly leading: 16;
|
|
26
|
+
/** Letter spacing of text, `--type-letterspacing-default`. */
|
|
27
|
+
readonly tracking: -0.3;
|
|
28
|
+
/** Letter spacing of a display title. */
|
|
29
|
+
readonly displayTracking: -0.4;
|
|
30
|
+
readonly weight: {
|
|
31
|
+
readonly default: 400;
|
|
32
|
+
readonly bold: 500;
|
|
33
|
+
};
|
|
34
|
+
/** Lines and outlines. */
|
|
35
|
+
readonly line: 1;
|
|
36
|
+
/** Corners of pictures, buttons and fields; rows and items stay square. */
|
|
37
|
+
readonly radius: 4;
|
|
38
|
+
/**
|
|
39
|
+
* The device scale (`--sf`, DS1/0-face/scaling.ts): the width over `base`, between `min` and
|
|
40
|
+
* `max`, rounded to `decimals`. A computer stays at 1.
|
|
41
|
+
*/
|
|
42
|
+
readonly scale: {
|
|
43
|
+
readonly base: 280;
|
|
44
|
+
readonly min: 0.75;
|
|
45
|
+
readonly max: 2;
|
|
46
|
+
readonly decimals: 3;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type Measures = typeof measures;
|
|
50
|
+
/** The device scale for a screen `width` wide, as scaling.ts computes it without snapping. */
|
|
51
|
+
export declare function deviceScale(width: number): number;
|
|
52
|
+
//# sourceMappingURL=measures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measures.d.ts","sourceRoot":"","sources":["../../DS1/1-root/measures.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ;IACnB,sCAAsC;;IAEtC,iDAAiD;;IAEjD,+EAA+E;;IAE/E,0DAA0D;;IAE1D,4FAA4F;;;;;;;QAG1F,gEAAgE;;;;QAIhE,2CAA2C;;;IAG7C,kGAAkG;;IAElG,8DAA8D;;IAE9D,yCAAyC;;;;;;IAGzC,0BAA0B;;IAE1B,2EAA2E;;IAE3E;;;OAGG;;;;;;;CAEK,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AAEvC,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Design system 1's measures in one place, as palette.ts holds its colours. The stylesheets keep
|
|
2
|
+
// their own values (grid.css, one.css, text.css, component-tokens.css, component-metrics.css) and
|
|
3
|
+
// tests/measures.test.ts fails when one of them and this file disagree. The native packages are
|
|
4
|
+
// written from this file by scripts/write-native-tokens.ts: change a measure here and in the CSS,
|
|
5
|
+
// then run that script.
|
|
6
|
+
//
|
|
7
|
+
// Every length is in CSS pixels at a scale of 1: points on Apple platforms, dp on Android. On a
|
|
8
|
+
// phone or tablet each is multiplied by the device scale.
|
|
9
|
+
export const measures = {
|
|
10
|
+
/** One square, `--1` and `--ds-1`. */
|
|
11
|
+
square: 20,
|
|
12
|
+
/** Half a square, `--half`: the smallest gap. */
|
|
13
|
+
half: 10,
|
|
14
|
+
/** A control: a switch's height, a toast's line, a small avatar. `--ds-08`. */
|
|
15
|
+
control: 16,
|
|
16
|
+
/** A row, an item, a header, a menu entry: one square. */
|
|
17
|
+
row: 20,
|
|
18
|
+
/** An item is drawn one point short of its pitch, so its outline lands on the grid line. */
|
|
19
|
+
item: { width: 79, height: 19, correction: 1 },
|
|
20
|
+
type: {
|
|
21
|
+
/** Text, `--type-size-default` and `--ds-type-size-default`. */
|
|
22
|
+
default: 14,
|
|
23
|
+
small: 10,
|
|
24
|
+
heading: 13,
|
|
25
|
+
/** A display title, set on two squares. */
|
|
26
|
+
display: 20,
|
|
27
|
+
},
|
|
28
|
+
/** A line of text's own box, `--type-lineheight-default`; the line it stands on is one square. */
|
|
29
|
+
leading: 16,
|
|
30
|
+
/** Letter spacing of text, `--type-letterspacing-default`. */
|
|
31
|
+
tracking: -0.3,
|
|
32
|
+
/** Letter spacing of a display title. */
|
|
33
|
+
displayTracking: -0.4,
|
|
34
|
+
weight: { default: 400, bold: 500 },
|
|
35
|
+
/** Lines and outlines. */
|
|
36
|
+
line: 1,
|
|
37
|
+
/** Corners of pictures, buttons and fields; rows and items stay square. */
|
|
38
|
+
radius: 4,
|
|
39
|
+
/**
|
|
40
|
+
* The device scale (`--sf`, DS1/0-face/scaling.ts): the width over `base`, between `min` and
|
|
41
|
+
* `max`, rounded to `decimals`. A computer stays at 1.
|
|
42
|
+
*/
|
|
43
|
+
scale: { base: 280, min: 0.75, max: 2, decimals: 3 },
|
|
44
|
+
};
|
|
45
|
+
/** The device scale for a screen `width` wide, as scaling.ts computes it without snapping. */
|
|
46
|
+
export function deviceScale(width) {
|
|
47
|
+
const { base, min, max, decimals } = measures.scale;
|
|
48
|
+
return Number(Math.max(min, Math.min(max, width / base)).toFixed(decimals));
|
|
49
|
+
}
|
package/dist/1-root/palette.d.ts
CHANGED
|
@@ -27,5 +27,10 @@ export declare const paletteStart = " /* Palette: written by scripts/write-pale
|
|
|
27
27
|
export declare const paletteEnd = " /* Palette: end */";
|
|
28
28
|
/** The CLASSless tokens: each colour and its pastel, both following the reader's light or dark mode. */
|
|
29
29
|
export declare function paletteCss(): string;
|
|
30
|
+
/**
|
|
31
|
+
* The palette on its own, for a page that does not take the classless sheet: palette.css,
|
|
32
|
+
* imported by one.css and copied by Sync 1's `root` and `tokens` exports.
|
|
33
|
+
*/
|
|
34
|
+
export declare function paletteSheet(): string;
|
|
30
35
|
export {};
|
|
31
36
|
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../DS1/1-root/palette.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAOnC,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzD,CAAC;AAEF,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpC,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAOtC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,eAAO,MAAM,KAAK,GAAI,UAAU,GAAG,KAAG,OAA+B,CAAC;AAEtE,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxC;AACD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAwD;AACnG,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAA+D;AAEvG,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAmE,CAAC;AAE7G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;CAC3D;AAED;8EAC8E;AAC9E,wBAAgB,OAAO,IAAI,aAAa,EAAE,CAezC;AAED,eAAO,MAAM,YAAY,yFAAyF,CAAC;AACnH,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAEjD,wGAAwG;AACxG,wBAAgB,UAAU,IAAI,MAAM,CAUnC"}
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../DS1/1-root/palette.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAOnC,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzD,CAAC;AAEF,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpC,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAOtC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,eAAO,MAAM,KAAK,GAAI,UAAU,GAAG,KAAG,OAA+B,CAAC;AAEtE,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxC;AACD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAwD;AACnG,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAA+D;AAEvG,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAmE,CAAC;AAE7G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;CAC3D;AAED;8EAC8E;AAC9E,wBAAgB,OAAO,IAAI,aAAa,EAAE,CAezC;AAED,eAAO,MAAM,YAAY,yFAAyF,CAAC;AACnH,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAEjD,wGAAwG;AACxG,wBAAgB,UAAU,IAAI,MAAM,CAUnC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAarC"}
|
package/dist/1-root/palette.js
CHANGED
|
@@ -81,3 +81,21 @@ export function paletteCss() {
|
|
|
81
81
|
lines.push(paletteEnd);
|
|
82
82
|
return lines.join('\n');
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* The palette on its own, for a page that does not take the classless sheet: palette.css,
|
|
86
|
+
* imported by one.css and copied by Sync 1's `root` and `tokens` exports.
|
|
87
|
+
*/
|
|
88
|
+
export function paletteSheet() {
|
|
89
|
+
return [
|
|
90
|
+
'/* Design system 1\'s named colours as tokens: --one-<colour> and --one-<colour>-pastel,',
|
|
91
|
+
' each light-dark(light, dark), and the named pastels (--one-zenith-blue,',
|
|
92
|
+
' --one-comfortable-green). light-dark() follows the page\'s color-scheme, which',
|
|
93
|
+
' one.css sets. Written by scripts/write-palette-css.ts from palette.ts; never edit it',
|
|
94
|
+
' by hand. */',
|
|
95
|
+
'',
|
|
96
|
+
':root {',
|
|
97
|
+
paletteCss(),
|
|
98
|
+
'}',
|
|
99
|
+
'',
|
|
100
|
+
].join('\n');
|
|
101
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "./ds-icon";
|
|
2
|
+
import "./ds-text";
|
|
3
|
+
export interface SplitSegment<T extends string = string> {
|
|
4
|
+
value: T;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SplitButtonState extends HTMLElement {
|
|
10
|
+
options: string;
|
|
11
|
+
segments: ReadonlyArray<SplitSegment> | undefined;
|
|
12
|
+
value: string;
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
splitDisabled: boolean;
|
|
15
|
+
actions: boolean;
|
|
16
|
+
literal: boolean;
|
|
17
|
+
renderRoot: HTMLElement | DocumentFragment;
|
|
18
|
+
}
|
|
19
|
+
export declare function focusSplit(host: SplitButtonState, options?: FocusOptions): void;
|
|
20
|
+
export declare function renderSplit(host: SplitButtonState): import("lit").TemplateResult<1>;
|
|
21
|
+
//# sourceMappingURL=button-split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-split.d.ts","sourceRoot":"","sources":["../../DS1/2-core/button-split.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,CAAC;AACnB,OAAO,WAAW,CAAC;AACnB,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACnE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAC;IACzD,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,WAAW,GAAG,gBAAgB,CAAC;CAChF;AAuBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,YAAY,QAGxE;AACD,wBAAgB,WAAW,CAAC,IAAI,EAAE,gBAAgB,mCAYjD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { html, nothing } from "lit";
|
|
2
|
+
import { getText } from "../0-face/i18n";
|
|
3
|
+
import "./ds-icon";
|
|
4
|
+
import "./ds-text";
|
|
5
|
+
function choices(host) {
|
|
6
|
+
return host.segments ?? host.options.split(",").map(part => part.trim()).filter(Boolean).map(part => {
|
|
7
|
+
const colon = part.indexOf(":");
|
|
8
|
+
if (colon < 0)
|
|
9
|
+
return { value: part.toLowerCase(), label: part };
|
|
10
|
+
const value = part.slice(0, colon).trim();
|
|
11
|
+
const label = part.slice(colon + 1).trim();
|
|
12
|
+
if (!label.startsWith("@"))
|
|
13
|
+
return { value, label };
|
|
14
|
+
const end = label.indexOf(":");
|
|
15
|
+
return { value, icon: label.slice(1, end < 0 ? undefined : end).trim(), label: end < 0 ? value : label.slice(end + 1).trim() };
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function press(host, segment) {
|
|
19
|
+
if (host.splitDisabled || segment.disabled)
|
|
20
|
+
return;
|
|
21
|
+
if (host.actions) {
|
|
22
|
+
host.dispatchEvent(new CustomEvent("press", { detail: { value: segment.value }, bubbles: true, composed: true }));
|
|
23
|
+
}
|
|
24
|
+
else if (segment.value !== host.value) {
|
|
25
|
+
const accepted = host.dispatchEvent(new CustomEvent("change", {
|
|
26
|
+
detail: { value: segment.value }, bubbles: true, composed: true, cancelable: true,
|
|
27
|
+
}));
|
|
28
|
+
if (accepted)
|
|
29
|
+
host.value = segment.value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function focusSplit(host, options) {
|
|
33
|
+
const buttons = [...host.renderRoot.querySelectorAll("button:not(:disabled)")];
|
|
34
|
+
(buttons.find(button => button.getAttribute("aria-pressed") === "true") ?? buttons[0])?.focus(options);
|
|
35
|
+
}
|
|
36
|
+
export function renderSplit(host) {
|
|
37
|
+
return html `${choices(host).map(segment => html `<button
|
|
38
|
+
type="button" part="segment" value=${segment.value}
|
|
39
|
+
aria-pressed=${host.actions ? nothing : String(segment.value === host.value)}
|
|
40
|
+
aria-label=${segment.icon ? (host.literal ? segment.label : getText(segment.label)) : nothing}
|
|
41
|
+
?data-icon=${!!segment.icon}
|
|
42
|
+
?data-short=${segment.label.length === 1}
|
|
43
|
+
?disabled=${host.splitDisabled || segment.disabled}
|
|
44
|
+
@click=${() => press(host, segment)}
|
|
45
|
+
>${segment.icon
|
|
46
|
+
? html `<ds-icon type=${segment.icon} aria-hidden="true"></ds-icon>`
|
|
47
|
+
: html `<ds-text .text=${segment.label} .literal=${host.literal}></ds-text>`}</button>`)}`;
|
|
48
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grid chart: a numeric chart drawn one pixel column at a time on the 20px grid.
|
|
3
|
+
*
|
|
4
|
+
* The API follows lightweight-charts (createChart → addSeries → setData,
|
|
5
|
+
* subscribeCrosshairMove), with pixel-aligned rendering:
|
|
6
|
+
* - every row line of the chart is a price level, chosen so the scale lands on the grid;
|
|
7
|
+
* - each pixel column holds the min/max of the points inside it, so a minute series
|
|
8
|
+
* and a five-year series draw with the same one-pixel stroke and never blur;
|
|
9
|
+
* - fills are one-pixel strokes at two-pixel intervals, for a patterned fill.
|
|
10
|
+
*/
|
|
11
|
+
export interface DataPoint {
|
|
12
|
+
/** Unix seconds */
|
|
13
|
+
time: number;
|
|
14
|
+
value: number;
|
|
15
|
+
}
|
|
16
|
+
export type SeriesKind = "area" | "line" | "baseline";
|
|
17
|
+
export interface SeriesOptions {
|
|
18
|
+
kind?: SeriesKind;
|
|
19
|
+
/** CSS color or palette name (e.g. "--ds-chart-up"). Area and line series. */
|
|
20
|
+
color?: string;
|
|
21
|
+
/** Baseline series: values above draw in the positive colour, below in the negative colour. */
|
|
22
|
+
baseValue?: number;
|
|
23
|
+
/** Hatch spacing in pixels; 0 turns the fill off. */
|
|
24
|
+
hatch?: number;
|
|
25
|
+
hatchOpacity?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface Marker {
|
|
28
|
+
time: number;
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ChartOptions {
|
|
32
|
+
unit?: number;
|
|
33
|
+
/** Price labels on every nth row line, in a two-square gutter on the right. */
|
|
34
|
+
scaleLabels?: boolean;
|
|
35
|
+
labelEvery?: number;
|
|
36
|
+
/** High and low callouts on the visible range. */
|
|
37
|
+
extremes?: boolean;
|
|
38
|
+
grid?: "full" | "rows" | "none";
|
|
39
|
+
format?: (value: number) => string;
|
|
40
|
+
}
|
|
41
|
+
export interface CrosshairEvent {
|
|
42
|
+
point: DataPoint | null;
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
}
|
|
46
|
+
export declare class Series {
|
|
47
|
+
private chart;
|
|
48
|
+
options: SeriesOptions;
|
|
49
|
+
data: DataPoint[];
|
|
50
|
+
markers: Marker[];
|
|
51
|
+
constructor(chart: GridChart, options: SeriesOptions);
|
|
52
|
+
setData(data: DataPoint[]): void;
|
|
53
|
+
update(point: DataPoint): void;
|
|
54
|
+
setMarkers(markers: Marker[]): void;
|
|
55
|
+
applyOptions(options: SeriesOptions): void;
|
|
56
|
+
}
|
|
57
|
+
export declare class GridChart {
|
|
58
|
+
private canvas;
|
|
59
|
+
private ctx;
|
|
60
|
+
private width;
|
|
61
|
+
private height;
|
|
62
|
+
private dpr;
|
|
63
|
+
private series;
|
|
64
|
+
private crosshairX;
|
|
65
|
+
private crosshair;
|
|
66
|
+
private listeners;
|
|
67
|
+
private progress;
|
|
68
|
+
private frame;
|
|
69
|
+
private timeRange;
|
|
70
|
+
private palette;
|
|
71
|
+
private lastDrawn;
|
|
72
|
+
options: Required<ChartOptions>;
|
|
73
|
+
constructor(canvas: HTMLCanvasElement, options?: ChartOptions);
|
|
74
|
+
addSeries(options?: SeriesOptions): Series;
|
|
75
|
+
removeSeries(series: Series): void;
|
|
76
|
+
applyOptions(options: ChartOptions): void;
|
|
77
|
+
/** Fixes the visible time range, e.g. a whole trading day while only the morning has data. */
|
|
78
|
+
setTimeRange(range: [number, number] | null): void;
|
|
79
|
+
resize(width: number, height: number): void;
|
|
80
|
+
refreshTheme(): void;
|
|
81
|
+
subscribeCrosshairMove(listener: (event: CrosshairEvent) => void): void;
|
|
82
|
+
unsubscribeCrosshairMove(listener: (event: CrosshairEvent) => void): void;
|
|
83
|
+
/** Moves the crosshair to a pixel column (null hides it) and tells subscribers. */
|
|
84
|
+
setCrosshair(x: number | null): void;
|
|
85
|
+
/** Draws the series in from the left. */
|
|
86
|
+
animateIn(duration?: number): void;
|
|
87
|
+
/** Position of the newest drawn value, for a live marker laid over the canvas. */
|
|
88
|
+
lastPoint(): {
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
} | null;
|
|
92
|
+
destroy(): void;
|
|
93
|
+
private plotWidth;
|
|
94
|
+
private readPalette;
|
|
95
|
+
private resolve;
|
|
96
|
+
/** Type at its size on a 20px square, scaled with the square. */
|
|
97
|
+
private font;
|
|
98
|
+
private scale;
|
|
99
|
+
private columns;
|
|
100
|
+
draw(): void;
|
|
101
|
+
private strokeBox;
|
|
102
|
+
private callout;
|
|
103
|
+
}
|
|
104
|
+
export declare function createChart(canvas: HTMLCanvasElement, options?: ChartOptions): GridChart;
|
|
105
|
+
/** A one-row sparkline: the same column renderer, scaled to its cell. */
|
|
106
|
+
export declare function drawSparkline(canvas: HTMLCanvasElement, values: number[], options: {
|
|
107
|
+
width: number;
|
|
108
|
+
height: number;
|
|
109
|
+
color: string;
|
|
110
|
+
base?: number;
|
|
111
|
+
faint?: string;
|
|
112
|
+
}): void;
|
|
113
|
+
//# sourceMappingURL=grid-chart.d.ts.map
|