@0001-labs/design-system-1 0.0.0-stage → 0.3.0-alpha.13
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/control.ts +99 -0
- package/DS1/0-face/define.ts +5 -0
- package/DS1/0-face/device.ts +414 -0
- package/DS1/0-face/grid-fit.ts +63 -0
- package/DS1/0-face/grid.ts +144 -0
- package/DS1/0-face/i18n.ts +1023 -0
- package/DS1/0-face/language-routing.ts +135 -0
- package/DS1/0-face/language-validator.ts +46 -0
- package/DS1/0-face/languages.ts +242 -0
- package/DS1/0-face/layout-inspector.ts +184 -0
- package/DS1/0-face/preferences.ts +39 -0
- package/DS1/0-face/pricing.ts +57 -0
- package/DS1/0-face/scaling.ts +25 -0
- package/DS1/0-face/shared-words.ts +45 -0
- package/DS1/0-face/theme.ts +58 -0
- package/DS1/0-face/tooltips.ts +82 -0
- package/DS1/0-face/translations/da.json +63 -0
- package/DS1/0-face/translations/de.json +63 -0
- package/DS1/0-face/translations/en.json +63 -0
- package/DS1/0-face/translations/es.json +63 -0
- package/DS1/0-face/translations/fi.json +63 -0
- package/DS1/0-face/translations/fr.json +63 -0
- package/DS1/0-face/translations/is.json +56 -0
- package/DS1/0-face/translations/it.json +63 -0
- package/DS1/0-face/translations/ja.json +63 -0
- package/DS1/0-face/translations/ko.json +63 -0
- package/DS1/0-face/translations/nb.json +63 -0
- package/DS1/0-face/translations/pt-BR.json +63 -0
- package/DS1/0-face/translations/pt.json +63 -0
- package/DS1/0-face/translations/sv.json +63 -0
- package/DS1/0-face/translations/zh.json +63 -0
- package/DS1/0-face/translations-format.ts +216 -0
- package/DS1/1-root/component-appearance.css +32 -0
- package/DS1/1-root/component-metrics.css +21 -0
- package/DS1/1-root/component-tokens.css +90 -0
- package/DS1/1-root/controls.css +261 -0
- package/DS1/1-root/fonts/GT-America-Compressed-Regular.woff2 +0 -0
- package/DS1/1-root/fonts/GT-America-Standard-Medium.woff2 +0 -0
- package/DS1/1-root/fonts/GT-America-Standard-Regular.woff2 +0 -0
- package/DS1/1-root/fonts/GT-Canon-M-Standard-Medium-Trial.woff2 +0 -0
- package/DS1/1-root/fonts/Inter-Arrows.woff2 +0 -0
- package/DS1/1-root/fonts/Inter-LICENSE.md +7 -0
- package/DS1/1-root/fonts/Iosevka-LICENSE.md +7 -0
- package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
- package/DS1/1-root/grid.css +31 -0
- package/DS1/1-root/one.css +602 -0
- package/DS1/1-root/one.semantic.css +683 -0
- package/DS1/1-root/palette.ts +91 -0
- package/DS1/2-core/ds-avatar.ts +130 -0
- package/DS1/2-core/ds-badge.ts +77 -0
- package/DS1/2-core/ds-banner.ts +122 -0
- package/DS1/2-core/ds-button.ts +163 -0
- package/DS1/2-core/ds-card.ts +137 -0
- package/DS1/2-core/ds-checkbox.ts +14 -0
- package/DS1/2-core/ds-color.ts +32 -0
- package/DS1/2-core/ds-composer.ts +182 -0
- package/DS1/2-core/ds-cycle.ts +628 -0
- package/DS1/2-core/ds-date.ts +24 -0
- package/DS1/2-core/ds-file-picker.ts +83 -0
- package/DS1/2-core/ds-gap.ts +34 -0
- package/DS1/2-core/ds-icon.ts +161 -0
- package/DS1/2-core/ds-input.ts +518 -0
- package/DS1/2-core/ds-language.ts +94 -0
- package/DS1/2-core/ds-pagedots.ts +52 -0
- package/DS1/2-core/ds-radio.ts +25 -0
- package/DS1/2-core/ds-select.ts +44 -0
- package/DS1/2-core/ds-split.ts +122 -0
- package/DS1/2-core/ds-swatch.ts +20 -0
- package/DS1/2-core/ds-switch.ts +13 -0
- package/DS1/2-core/ds-text.ts +190 -0
- package/DS1/2-core/ds-textarea.ts +136 -0
- package/DS1/2-core/ds-token.ts +40 -0
- package/DS1/2-core/ds-tooltip.ts +115 -0
- package/DS1/2-core/generated/ds-icon-map.ts +583 -0
- package/DS1/2-core/generated/icons-extra.ts +243 -0
- package/DS1/2-core/generated/icons-immediate.ts +49 -0
- package/DS1/2-core/styles/ds-avatar.css +125 -0
- package/DS1/2-core/styles/ds-badge.css +26 -0
- package/DS1/2-core/styles/ds-banner.css +77 -0
- package/DS1/2-core/styles/ds-button-host.css +214 -0
- package/DS1/2-core/styles/ds-button.css +131 -0
- package/DS1/2-core/styles/ds-checkbox.css +48 -0
- package/DS1/2-core/styles/ds-color.css +24 -0
- package/DS1/2-core/styles/ds-composer-frame.css +11 -0
- package/DS1/2-core/styles/ds-composer.css +55 -0
- package/DS1/2-core/styles/ds-cycle.css +18 -0
- package/DS1/2-core/styles/ds-date.css +9 -0
- package/DS1/2-core/styles/ds-file-picker.css +66 -0
- package/DS1/2-core/styles/ds-gap.css +71 -0
- package/DS1/2-core/styles/ds-icon.css +44 -0
- package/DS1/2-core/styles/ds-input.css +233 -0
- package/DS1/2-core/styles/ds-language.css +78 -0
- package/DS1/2-core/styles/ds-pagedots.css +31 -0
- package/DS1/2-core/styles/ds-radio.css +83 -0
- package/DS1/2-core/styles/ds-select.css +95 -0
- package/DS1/2-core/styles/ds-split.css +62 -0
- package/DS1/2-core/styles/ds-switch.css +50 -0
- package/DS1/2-core/styles/ds-text.css +87 -0
- package/DS1/2-core/styles/ds-textarea.css +27 -0
- package/DS1/2-core/styles/ds-token.css +9 -0
- package/DS1/2-core/styles/ds-tooltip.css +37 -0
- package/DS1/3-unit/context-trigger.ts +104 -0
- package/DS1/3-unit/ds-accordion.ts +120 -0
- package/DS1/3-unit/ds-avatar-group.ts +99 -0
- package/DS1/3-unit/ds-form.ts +304 -0
- package/DS1/3-unit/ds-list.ts +36 -0
- package/DS1/3-unit/ds-menu.ts +482 -0
- package/DS1/3-unit/ds-row.ts +48 -0
- package/DS1/3-unit/ds-table.ts +68 -0
- package/DS1/3-unit/ds-tabs.ts +77 -0
- package/DS1/3-unit/ds-token-field.ts +127 -0
- package/DS1/3-unit/styles/context-trigger.css +6 -0
- package/DS1/3-unit/styles/ds-accordion.css +64 -0
- package/DS1/3-unit/styles/ds-avatar-group.css +51 -0
- package/DS1/3-unit/styles/ds-list.css +26 -0
- package/DS1/3-unit/styles/ds-menu.css +97 -0
- package/DS1/3-unit/styles/ds-row.css +37 -0
- package/DS1/3-unit/styles/ds-table.css +80 -0
- package/DS1/3-unit/styles/ds-tabs.css +44 -0
- package/DS1/3-unit/styles/ds-token-field.css +11 -0
- package/DS1/4-page/ds-container.ts +28 -0
- package/DS1/4-page/ds-dialog.ts +331 -0
- package/DS1/4-page/ds-grid.ts +74 -0
- package/DS1/4-page/ds-layout.ts +949 -0
- package/DS1/4-page/ds-panel.ts +38 -0
- package/DS1/4-page/email.ts +170 -0
- package/DS1/4-page/styles/ds-container.css +35 -0
- package/DS1/4-page/styles/ds-dialog.css +94 -0
- package/DS1/4-page/styles/ds-grid.css +95 -0
- package/DS1/4-page/styles/ds-layout.css +246 -0
- package/DS1/4-page/styles/ds-panel.css +31 -0
- package/DS1/components.ts +13 -0
- package/DS1/index.ts +86 -0
- package/DS1/react/accordion.ts +33 -0
- package/DS1/react/avatar-group.ts +11 -0
- package/DS1/react/avatar.ts +42 -0
- package/DS1/react/badge.ts +7 -0
- package/DS1/react/button.ts +63 -0
- package/DS1/react/choice.ts +64 -0
- package/DS1/react/composer.ts +18 -0
- package/DS1/react/context-menu.ts +167 -0
- package/DS1/react/dialog.ts +102 -0
- package/DS1/react/file-picker.ts +34 -0
- package/DS1/react/input.ts +184 -0
- package/DS1/react/menu.ts +28 -0
- package/DS1/react/split.ts +42 -0
- package/DS1/react/token-field.ts +32 -0
- package/DS1/vite-env.d.ts +13 -0
- package/DS1/x-icon/1x.svg +4 -0
- package/DS1/x-icon/1xdots.svg +11 -0
- package/DS1/x-icon/1xgrid.svg +8 -0
- package/DS1/x-icon/1xlines.svg +5 -0
- package/DS1/x-icon/2x.svg +4 -0
- package/DS1/x-icon/2xdots.svg +18 -0
- package/DS1/x-icon/2xgrid-alt-2.svg +9 -0
- package/DS1/x-icon/2xgrid-alt-3.svg +8 -0
- package/DS1/x-icon/2xgrid-alt.svg +15 -0
- package/DS1/x-icon/2xgrid.svg +6 -0
- package/DS1/x-icon/2xlines.svg +6 -0
- package/DS1/x-icon/4x4.svg +18 -0
- package/DS1/x-icon/app.svg +4 -0
- package/DS1/x-icon/apple.svg +3 -0
- package/DS1/x-icon/archive-alt.svg +4 -0
- package/DS1/x-icon/archive.svg +4 -0
- package/DS1/x-icon/arrange-archive.svg +1 -0
- package/DS1/x-icon/arrange-check.svg +1 -0
- package/DS1/x-icon/arrange-chevron.svg +1 -0
- package/DS1/x-icon/arrange-connect.svg +1 -0
- package/DS1/x-icon/arrange-draft.svg +1 -0
- package/DS1/x-icon/arrange-dropdown.svg +1 -0
- package/DS1/x-icon/arrange-home.svg +1 -0
- package/DS1/x-icon/arrange-link.svg +1 -0
- package/DS1/x-icon/arrange-menu.svg +1 -0
- package/DS1/x-icon/arrange-more.svg +1 -0
- package/DS1/x-icon/arrange-page.svg +1 -0
- package/DS1/x-icon/arrange-plus.svg +1 -0
- package/DS1/x-icon/arrange-site.svg +1 -0
- package/DS1/x-icon/avatar.svg +4 -0
- package/DS1/x-icon/badge-bands-3d.svg +1 -0
- package/DS1/x-icon/badge-bands.svg +1 -0
- package/DS1/x-icon/badge-blue-fan-3d.svg +1 -0
- package/DS1/x-icon/badge-blue-fan.svg +1 -0
- package/DS1/x-icon/badge-bricks-3d.svg +1 -0
- package/DS1/x-icon/badge-bricks.svg +1 -0
- package/DS1/x-icon/badge-broken-stripes-3d.svg +1 -0
- package/DS1/x-icon/badge-broken-stripes.svg +1 -0
- package/DS1/x-icon/badge-checker-3d.svg +1 -0
- package/DS1/x-icon/badge-checker.svg +1 -0
- package/DS1/x-icon/badge-diamond-3d.svg +1 -0
- package/DS1/x-icon/badge-diamond.svg +1 -0
- package/DS1/x-icon/badge-fan-3d.svg +1 -0
- package/DS1/x-icon/badge-fan-dark-3d.svg +1 -0
- package/DS1/x-icon/badge-fan-dark.svg +1 -0
- package/DS1/x-icon/badge-fan.svg +1 -0
- package/DS1/x-icon/badge-halves-3d.svg +1 -0
- package/DS1/x-icon/badge-halves-green-3d.svg +1 -0
- package/DS1/x-icon/badge-halves-green.svg +1 -0
- package/DS1/x-icon/badge-halves.svg +1 -0
- package/DS1/x-icon/badge-red-3d.svg +1 -0
- package/DS1/x-icon/badge-red-blue-bricks-3d.svg +1 -0
- package/DS1/x-icon/badge-red-blue-bricks.svg +1 -0
- package/DS1/x-icon/badge-red.svg +1 -0
- package/DS1/x-icon/badge-round-fan-3d.svg +1 -0
- package/DS1/x-icon/badge-round-fan.svg +1 -0
- package/DS1/x-icon/badge-shard-3d.svg +1 -0
- package/DS1/x-icon/badge-shard.svg +1 -0
- package/DS1/x-icon/badge-split-circle-3d.svg +1 -0
- package/DS1/x-icon/badge-split-circle.svg +1 -0
- package/DS1/x-icon/badge-tall-bricks-3d.svg +1 -0
- package/DS1/x-icon/badge-tall-bricks.svg +1 -0
- package/DS1/x-icon/badge-weave-3d.svg +1 -0
- package/DS1/x-icon/badge-weave.svg +1 -0
- package/DS1/x-icon/bag.svg +4 -0
- package/DS1/x-icon/block-accordion.svg +1 -0
- package/DS1/x-icon/block-banner.svg +1 -0
- package/DS1/x-icon/block-breadcrumbs.svg +1 -0
- package/DS1/x-icon/block-button.svg +1 -0
- package/DS1/x-icon/block-divider.svg +1 -0
- package/DS1/x-icon/block-forms.svg +1 -0
- package/DS1/x-icon/block-group.svg +1 -0
- package/DS1/x-icon/block-heading.svg +1 -0
- package/DS1/x-icon/block-image.svg +1 -0
- package/DS1/x-icon/block-logo-marquee.svg +1 -0
- package/DS1/x-icon/block-page-progress.svg +1 -0
- package/DS1/x-icon/block-section.svg +1 -0
- package/DS1/x-icon/block-table.svg +1 -0
- package/DS1/x-icon/block-tabs.svg +1 -0
- package/DS1/x-icon/block-text.svg +1 -0
- package/DS1/x-icon/bold.svg +3 -0
- package/DS1/x-icon/bullet.svg +5 -0
- package/DS1/x-icon/calendar.svg +6 -0
- package/DS1/x-icon/callout.svg +5 -0
- package/DS1/x-icon/camera.svg +5 -0
- package/DS1/x-icon/categories.svg +12 -0
- package/DS1/x-icon/check-alt.svg +3 -0
- package/DS1/x-icon/check.svg +3 -0
- package/DS1/x-icon/close.svg +3 -0
- package/DS1/x-icon/code-block.svg +4 -0
- package/DS1/x-icon/code.svg +3 -0
- package/DS1/x-icon/collapse.svg +3 -0
- package/DS1/x-icon/color.svg +4 -0
- package/DS1/x-icon/column.svg +3 -0
- package/DS1/x-icon/comment.svg +3 -0
- package/DS1/x-icon/compose.svg +4 -0
- package/DS1/x-icon/connect.svg +5 -0
- package/DS1/x-icon/content.svg +6 -0
- package/DS1/x-icon/default.svg +4 -0
- package/DS1/x-icon/delete.svg +5 -0
- package/DS1/x-icon/dictate.svg +6 -0
- package/DS1/x-icon/divider.svg +3 -0
- package/DS1/x-icon/down.svg +3 -0
- package/DS1/x-icon/duplicate.svg +8 -0
- package/DS1/x-icon/email.svg +3 -0
- package/DS1/x-icon/equation.svg +3 -0
- package/DS1/x-icon/exercise.svg +3 -0
- package/DS1/x-icon/expand.svg +3 -0
- package/DS1/x-icon/ezo-accordion-chevron.svg +11 -0
- package/DS1/x-icon/ezo-account-close.svg +1 -0
- package/DS1/x-icon/ezo-android-screen-archive.svg +4 -0
- package/DS1/x-icon/ezo-android-screen-calendar.svg +6 -0
- package/DS1/x-icon/ezo-android-screen-camera.svg +5 -0
- package/DS1/x-icon/ezo-android-screen-check.svg +3 -0
- package/DS1/x-icon/ezo-android-screen-compose.svg +4 -0
- package/DS1/x-icon/ezo-android-screen-globe.svg +1 -0
- package/DS1/x-icon/ezo-android-screen-lists.svg +3 -0
- package/DS1/x-icon/ezo-android-screen-shared.svg +5 -0
- package/DS1/x-icon/ezo-android-screen-stats.svg +3 -0
- package/DS1/x-icon/ezo-android-screen-store.svg +4 -0
- package/DS1/x-icon/ezo-android-screen-views.svg +4 -0
- package/DS1/x-icon/ezo-android-screen-work.svg +3 -0
- package/DS1/x-icon/ezo-arrow-cursor.svg +8 -0
- package/DS1/x-icon/ezo-block-accordion.svg +1 -0
- package/DS1/x-icon/ezo-block-divider.svg +1 -0
- package/DS1/x-icon/ezo-block-group.svg +1 -0
- package/DS1/x-icon/ezo-block-image.svg +1 -0
- package/DS1/x-icon/ezo-block-section.svg +1 -0
- package/DS1/x-icon/ezo-block-table.svg +1 -0
- package/DS1/x-icon/ezo-code.svg +14 -0
- package/DS1/x-icon/ezo-down.svg +3 -0
- package/DS1/x-icon/ezo-figma-premium-star.svg +5 -0
- package/DS1/x-icon/ezo-item-button-complete.svg +4 -0
- package/DS1/x-icon/ezo-item-button-header.svg +3 -0
- package/DS1/x-icon/ezo-item-button-open.svg +3 -0
- package/DS1/x-icon/ezo-item-button-reopen.svg +3 -0
- package/DS1/x-icon/ezo-item-button-star.svg +3 -0
- package/DS1/x-icon/ezo-item-button-start.svg +3 -0
- package/DS1/x-icon/ezo-item-button-unheader.svg +7 -0
- package/DS1/x-icon/ezo-item-button-unstar.svg +5 -0
- package/DS1/x-icon/ezo-item-star.svg +5 -0
- package/DS1/x-icon/ezo-left.svg +3 -0
- package/DS1/x-icon/ezo-logo.svg +1 -0
- package/DS1/x-icon/ezo-mic.svg +8 -0
- package/DS1/x-icon/ezo-move-column.svg +14 -0
- package/DS1/x-icon/ezo-move-row.svg +18 -0
- package/DS1/x-icon/ezo-navigation-check.svg +1 -0
- package/DS1/x-icon/ezo-note-back.svg +5 -0
- package/DS1/x-icon/ezo-note-menu-complete.svg +11 -0
- package/DS1/x-icon/ezo-note-menu-delete.svg +4 -0
- package/DS1/x-icon/ezo-note-menu-duplicate.svg +8 -0
- package/DS1/x-icon/ezo-note-menu-note.svg +5 -0
- package/DS1/x-icon/ezo-note-menu-page.svg +3 -0
- package/DS1/x-icon/ezo-note-menu-star.svg +5 -0
- package/DS1/x-icon/ezo-note-menu-start.svg +6 -0
- package/DS1/x-icon/ezo-note-menu-stop.svg +6 -0
- package/DS1/x-icon/ezo-note-more.svg +7 -0
- package/DS1/x-icon/ezo-note-star.svg +5 -0
- package/DS1/x-icon/ezo-password-visibility-see.svg +6 -0
- package/DS1/x-icon/ezo-password-visibility-unsee.svg +9 -0
- package/DS1/x-icon/ezo-pattern-call-to-action.svg +1 -0
- package/DS1/x-icon/ezo-play.svg +5 -0
- package/DS1/x-icon/ezo-premium-star.svg +5 -0
- package/DS1/x-icon/ezo-setting-1xdots.svg +13 -0
- package/DS1/x-icon/ezo-setting-1xgrid.svg +10 -0
- package/DS1/x-icon/ezo-setting-1xlines.svg +7 -0
- package/DS1/x-icon/ezo-setting-2xdots.svg +8 -0
- package/DS1/x-icon/ezo-setting-2xgrid.svg +8 -0
- package/DS1/x-icon/ezo-setting-2xlines.svg +6 -0
- package/DS1/x-icon/ezo-setting-blank.svg +5 -0
- package/DS1/x-icon/ezo-store-chevron.svg +1 -0
- package/DS1/x-icon/ezo-upgrade-close.svg +5 -0
- package/DS1/x-icon/folder.svg +3 -0
- package/DS1/x-icon/form.svg +5 -0
- package/DS1/x-icon/gallery.svg +3 -0
- package/DS1/x-icon/globe.svg +1 -0
- package/DS1/x-icon/google.svg +6 -0
- package/DS1/x-icon/group-alt-2.svg +3 -0
- package/DS1/x-icon/group-alt.svg +7 -0
- package/DS1/x-icon/group.svg +3 -0
- package/DS1/x-icon/h1.svg +3 -0
- package/DS1/x-icon/h2.svg +3 -0
- package/DS1/x-icon/h3.svg +3 -0
- package/DS1/x-icon/handle.svg +8 -0
- package/DS1/x-icon/head.svg +3 -0
- package/DS1/x-icon/help-alt.svg +3 -0
- package/DS1/x-icon/help.svg +5 -0
- package/DS1/x-icon/home.svg +3 -0
- package/DS1/x-icon/icon.svg +4 -0
- package/DS1/x-icon/image.svg +5 -0
- package/DS1/x-icon/in.svg +4 -0
- package/DS1/x-icon/indent.svg +4 -0
- package/DS1/x-icon/italic.svg +3 -0
- package/DS1/x-icon/item.svg +3 -0
- package/DS1/x-icon/left.svg +4 -0
- package/DS1/x-icon/life.svg +8 -0
- package/DS1/x-icon/link.svg +3 -0
- package/DS1/x-icon/list-line.svg +3 -0
- package/DS1/x-icon/lists.svg +3 -0
- package/DS1/x-icon/lock-filled.svg +3 -0
- package/DS1/x-icon/lock.svg +3 -0
- package/DS1/x-icon/logo-marquee.svg +5 -0
- package/DS1/x-icon/loop.svg +6 -0
- package/DS1/x-icon/mention.svg +4 -0
- package/DS1/x-icon/menu.svg +3 -0
- package/DS1/x-icon/mic.svg +5 -0
- package/DS1/x-icon/minimize-alt.svg +4 -0
- package/DS1/x-icon/minimize.svg +4 -0
- package/DS1/x-icon/money.svg +6 -0
- package/DS1/x-icon/more.svg +5 -0
- package/DS1/x-icon/navigation-check.svg +1 -0
- package/DS1/x-icon/note-alt-2.svg +6 -0
- package/DS1/x-icon/note-alt.svg +4 -0
- package/DS1/x-icon/note-lines.svg +6 -0
- package/DS1/x-icon/note.svg +4 -0
- package/DS1/x-icon/notifications.svg +3 -0
- package/DS1/x-icon/numbered.svg +4 -0
- package/DS1/x-icon/open-alt.svg +3 -0
- package/DS1/x-icon/open-source.svg +3 -0
- package/DS1/x-icon/open.svg +3 -0
- package/DS1/x-icon/outdent.svg +4 -0
- package/DS1/x-icon/pad.svg +8 -0
- package/DS1/x-icon/page-18.svg +3 -0
- package/DS1/x-icon/page-alt.svg +3 -0
- package/DS1/x-icon/page-note.svg +1 -0
- package/DS1/x-icon/page.svg +3 -0
- package/DS1/x-icon/panel.svg +4 -0
- package/DS1/x-icon/pattern-call-to-action.svg +1 -0
- package/DS1/x-icon/pattern-card.svg +1 -0
- package/DS1/x-icon/pattern-feature.svg +1 -0
- package/DS1/x-icon/pattern-hero.svg +1 -0
- package/DS1/x-icon/pen.svg +4 -0
- package/DS1/x-icon/play-alt.svg +3 -0
- package/DS1/x-icon/plus.svg +3 -0
- package/DS1/x-icon/product-sources.json +2557 -0
- package/DS1/x-icon/quote.svg +3 -0
- package/DS1/x-icon/redo.svg +3 -0
- package/DS1/x-icon/relationships.svg +3 -0
- package/DS1/x-icon/rewind-30-alt.svg +4 -0
- package/DS1/x-icon/rewind-30.svg +5 -0
- package/DS1/x-icon/rewind.svg +5 -0
- package/DS1/x-icon/right.svg +3 -0
- package/DS1/x-icon/row.svg +3 -0
- package/DS1/x-icon/school.svg +4 -0
- package/DS1/x-icon/sdown.svg +3 -0
- package/DS1/x-icon/search-30.svg +4 -0
- package/DS1/x-icon/search.svg +3 -0
- package/DS1/x-icon/see-30.svg +4 -0
- package/DS1/x-icon/see.svg +4 -0
- package/DS1/x-icon/settings.svg +8 -0
- package/DS1/x-icon/shared.svg +5 -0
- package/DS1/x-icon/slash.svg +3 -0
- package/DS1/x-icon/star-alt-2.svg +3 -0
- package/DS1/x-icon/star-alt.svg +3 -0
- package/DS1/x-icon/star.svg +3 -0
- package/DS1/x-icon/stats.svg +3 -0
- package/DS1/x-icon/status-alt.svg +11 -0
- package/DS1/x-icon/status-filled.svg +26 -0
- package/DS1/x-icon/status.svg +10 -0
- package/DS1/x-icon/store.svg +4 -0
- package/DS1/x-icon/strike.svg +3 -0
- package/DS1/x-icon/sup.svg +3 -0
- package/DS1/x-icon/table.svg +4 -0
- package/DS1/x-icon/template.svg +4 -0
- package/DS1/x-icon/templates.svg +4 -0
- package/DS1/x-icon/text.svg +3 -0
- package/DS1/x-icon/title.svg +3 -0
- package/DS1/x-icon/titlestyle.svg +11 -0
- package/DS1/x-icon/todo.svg +5 -0
- package/DS1/x-icon/toggle.svg +4 -0
- package/DS1/x-icon/triangle.svg +3 -0
- package/DS1/x-icon/underline.svg +3 -0
- package/DS1/x-icon/undo.svg +3 -0
- package/DS1/x-icon/ungroup.svg +4 -0
- package/DS1/x-icon/unhead.svg +7 -0
- package/DS1/x-icon/unicon.svg +6 -0
- package/DS1/x-icon/unlock.svg +3 -0
- package/DS1/x-icon/unmic.svg +6 -0
- package/DS1/x-icon/unsee.svg +5 -0
- package/DS1/x-icon/unstar.svg +5 -0
- package/DS1/x-icon/untitle.svg +7 -0
- package/DS1/x-icon/up-right.svg +3 -0
- package/DS1/x-icon/up.svg +3 -0
- package/DS1/x-icon/views.svg +4 -0
- package/DS1/x-icon/warning.svg +3 -0
- package/DS1/x-icon/work.svg +3 -0
- package/LICENSE +21 -0
- package/README.md +240 -2
- package/dist/0-face/control.d.ts +24 -0
- package/dist/0-face/control.d.ts.map +1 -0
- package/dist/0-face/control.js +117 -0
- package/dist/0-face/define.d.ts +3 -0
- package/dist/0-face/define.d.ts.map +1 -0
- package/dist/0-face/define.js +7 -0
- package/dist/0-face/device.d.ts +71 -0
- package/dist/0-face/device.d.ts.map +1 -0
- package/dist/0-face/device.js +318 -0
- package/dist/0-face/grid-fit.d.ts +3 -0
- package/dist/0-face/grid-fit.d.ts.map +1 -0
- package/dist/0-face/grid-fit.js +73 -0
- package/dist/0-face/grid.d.ts +3 -0
- package/dist/0-face/grid.d.ts.map +1 -0
- package/dist/0-face/grid.js +144 -0
- package/dist/0-face/i18n.d.ts +138 -0
- package/dist/0-face/i18n.d.ts.map +1 -0
- package/dist/0-face/i18n.js +725 -0
- package/dist/0-face/language-routing.d.ts +47 -0
- package/dist/0-face/language-routing.d.ts.map +1 -0
- package/dist/0-face/language-routing.js +91 -0
- package/dist/0-face/language-validator.d.ts +11 -0
- package/dist/0-face/language-validator.d.ts.map +1 -0
- package/dist/0-face/language-validator.js +31 -0
- package/dist/0-face/languages.d.ts +53 -0
- package/dist/0-face/languages.d.ts.map +1 -0
- package/dist/0-face/languages.js +192 -0
- package/dist/0-face/layout-inspector.d.ts +6 -0
- package/dist/0-face/layout-inspector.d.ts.map +1 -0
- package/dist/0-face/layout-inspector.js +197 -0
- package/dist/0-face/preferences.d.ts +20 -0
- package/dist/0-face/preferences.d.ts.map +1 -0
- package/dist/0-face/preferences.js +19 -0
- package/dist/0-face/pricing.d.ts +15 -0
- package/dist/0-face/pricing.d.ts.map +1 -0
- package/dist/0-face/pricing.js +46 -0
- package/dist/0-face/scaling.d.ts +10 -0
- package/dist/0-face/scaling.d.ts.map +1 -0
- package/dist/0-face/scaling.js +14 -0
- package/dist/0-face/shared-words.d.ts +14 -0
- package/dist/0-face/shared-words.d.ts.map +1 -0
- package/dist/0-face/shared-words.js +32 -0
- package/dist/0-face/theme.d.ts +4 -0
- package/dist/0-face/theme.d.ts.map +1 -0
- package/dist/0-face/theme.js +48 -0
- package/dist/0-face/tooltips.d.ts +8 -0
- package/dist/0-face/tooltips.d.ts.map +1 -0
- package/dist/0-face/tooltips.js +90 -0
- package/dist/0-face/translations/da.json +63 -0
- package/dist/0-face/translations/de.json +63 -0
- package/dist/0-face/translations/en.json +63 -0
- package/dist/0-face/translations/es.json +63 -0
- package/dist/0-face/translations/fi.json +63 -0
- package/dist/0-face/translations/fr.json +63 -0
- package/dist/0-face/translations/is.json +56 -0
- package/dist/0-face/translations/it.json +63 -0
- package/dist/0-face/translations/ja.json +63 -0
- package/dist/0-face/translations/ko.json +63 -0
- package/dist/0-face/translations/nb.json +63 -0
- package/dist/0-face/translations/pt-BR.json +63 -0
- package/dist/0-face/translations/pt.json +63 -0
- package/dist/0-face/translations/sv.json +63 -0
- package/dist/0-face/translations/zh.json +63 -0
- package/dist/0-face/translations-format.d.ts +62 -0
- package/dist/0-face/translations-format.d.ts.map +1 -0
- package/dist/0-face/translations-format.js +159 -0
- package/dist/1-root/palette.d.ts +31 -0
- package/dist/1-root/palette.d.ts.map +1 -0
- package/dist/1-root/palette.js +83 -0
- package/dist/2-core/ds-avatar.d.ts +82 -0
- package/dist/2-core/ds-avatar.d.ts.map +1 -0
- package/dist/2-core/ds-avatar.js +102 -0
- package/dist/2-core/ds-badge.d.ts +33 -0
- package/dist/2-core/ds-badge.d.ts.map +1 -0
- package/dist/2-core/ds-badge.js +77 -0
- package/dist/2-core/ds-banner.d.ts +68 -0
- package/dist/2-core/ds-banner.d.ts.map +1 -0
- package/dist/2-core/ds-banner.js +98 -0
- package/dist/2-core/ds-button.d.ts +102 -0
- package/dist/2-core/ds-button.d.ts.map +1 -0
- package/dist/2-core/ds-button.js +133 -0
- package/dist/2-core/ds-card.d.ts +39 -0
- package/dist/2-core/ds-card.d.ts.map +1 -0
- package/dist/2-core/ds-card.js +119 -0
- package/dist/2-core/ds-checkbox.d.ts +13 -0
- package/dist/2-core/ds-checkbox.d.ts.map +1 -0
- package/dist/2-core/ds-checkbox.js +11 -0
- package/dist/2-core/ds-color.d.ts +15 -0
- package/dist/2-core/ds-color.d.ts.map +1 -0
- package/dist/2-core/ds-color.js +30 -0
- package/dist/2-core/ds-composer.d.ts +69 -0
- package/dist/2-core/ds-composer.d.ts.map +1 -0
- package/dist/2-core/ds-composer.js +183 -0
- package/dist/2-core/ds-cycle.d.ts +85 -0
- package/dist/2-core/ds-cycle.d.ts.map +1 -0
- package/dist/2-core/ds-cycle.js +497 -0
- package/dist/2-core/ds-date.d.ts +16 -0
- package/dist/2-core/ds-date.d.ts.map +1 -0
- package/dist/2-core/ds-date.js +15 -0
- package/dist/2-core/ds-file-picker.d.ts +65 -0
- package/dist/2-core/ds-file-picker.d.ts.map +1 -0
- package/dist/2-core/ds-file-picker.js +80 -0
- package/dist/2-core/ds-gap.d.ts +27 -0
- package/dist/2-core/ds-gap.d.ts.map +1 -0
- package/dist/2-core/ds-gap.js +22 -0
- package/dist/2-core/ds-icon.d.ts +58 -0
- package/dist/2-core/ds-icon.d.ts.map +1 -0
- package/dist/2-core/ds-icon.js +128 -0
- package/dist/2-core/ds-input.d.ts +97 -0
- package/dist/2-core/ds-input.d.ts.map +1 -0
- package/dist/2-core/ds-input.js +429 -0
- package/dist/2-core/ds-language.d.ts +75 -0
- package/dist/2-core/ds-language.d.ts.map +1 -0
- package/dist/2-core/ds-language.js +74 -0
- package/dist/2-core/ds-pagedots.d.ts +32 -0
- package/dist/2-core/ds-pagedots.d.ts.map +1 -0
- package/dist/2-core/ds-pagedots.js +36 -0
- package/dist/2-core/ds-radio.d.ts +35 -0
- package/dist/2-core/ds-radio.d.ts.map +1 -0
- package/dist/2-core/ds-radio.js +19 -0
- package/dist/2-core/ds-select.d.ts +30 -0
- package/dist/2-core/ds-select.d.ts.map +1 -0
- package/dist/2-core/ds-select.js +45 -0
- package/dist/2-core/ds-split.d.ts +75 -0
- package/dist/2-core/ds-split.d.ts.map +1 -0
- package/dist/2-core/ds-split.js +101 -0
- package/dist/2-core/ds-swatch.d.ts +24 -0
- package/dist/2-core/ds-swatch.d.ts.map +1 -0
- package/dist/2-core/ds-swatch.js +16 -0
- package/dist/2-core/ds-switch.d.ts +13 -0
- package/dist/2-core/ds-switch.d.ts.map +1 -0
- package/dist/2-core/ds-switch.js +10 -0
- package/dist/2-core/ds-text.d.ts +75 -0
- package/dist/2-core/ds-text.d.ts.map +1 -0
- package/dist/2-core/ds-text.js +142 -0
- package/dist/2-core/ds-textarea.d.ts +46 -0
- package/dist/2-core/ds-textarea.d.ts.map +1 -0
- package/dist/2-core/ds-textarea.js +121 -0
- package/dist/2-core/ds-token.d.ts +48 -0
- package/dist/2-core/ds-token.d.ts.map +1 -0
- package/dist/2-core/ds-token.js +44 -0
- package/dist/2-core/ds-tooltip.d.ts +48 -0
- package/dist/2-core/ds-tooltip.d.ts.map +1 -0
- package/dist/2-core/ds-tooltip.js +99 -0
- package/dist/2-core/generated/ds-icon-map.d.ts +295 -0
- package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -0
- package/dist/2-core/generated/ds-icon-map.js +579 -0
- package/dist/2-core/generated/icons-extra.d.ts +2 -0
- package/dist/2-core/generated/icons-extra.d.ts.map +1 -0
- package/dist/2-core/generated/icons-extra.js +243 -0
- package/dist/2-core/generated/icons-immediate.d.ts +3 -0
- package/dist/2-core/generated/icons-immediate.d.ts.map +1 -0
- package/dist/2-core/generated/icons-immediate.js +49 -0
- package/dist/3-unit/context-trigger.d.ts +22 -0
- package/dist/3-unit/context-trigger.d.ts.map +1 -0
- package/dist/3-unit/context-trigger.js +130 -0
- package/dist/3-unit/ds-accordion.d.ts +55 -0
- package/dist/3-unit/ds-accordion.d.ts.map +1 -0
- package/dist/3-unit/ds-accordion.js +105 -0
- package/dist/3-unit/ds-avatar-group.d.ts +40 -0
- package/dist/3-unit/ds-avatar-group.d.ts.map +1 -0
- package/dist/3-unit/ds-avatar-group.js +84 -0
- package/dist/3-unit/ds-form.d.ts +70 -0
- package/dist/3-unit/ds-form.d.ts.map +1 -0
- package/dist/3-unit/ds-form.js +232 -0
- package/dist/3-unit/ds-list.d.ts +25 -0
- package/dist/3-unit/ds-list.d.ts.map +1 -0
- package/dist/3-unit/ds-list.js +25 -0
- package/dist/3-unit/ds-menu.d.ts +162 -0
- package/dist/3-unit/ds-menu.d.ts.map +1 -0
- package/dist/3-unit/ds-menu.js +607 -0
- package/dist/3-unit/ds-row.d.ts +43 -0
- package/dist/3-unit/ds-row.d.ts.map +1 -0
- package/dist/3-unit/ds-row.js +32 -0
- package/dist/3-unit/ds-table.d.ts +33 -0
- package/dist/3-unit/ds-table.d.ts.map +1 -0
- package/dist/3-unit/ds-table.js +43 -0
- package/dist/3-unit/ds-tabs.d.ts +50 -0
- package/dist/3-unit/ds-tabs.d.ts.map +1 -0
- package/dist/3-unit/ds-tabs.js +64 -0
- package/dist/3-unit/ds-token-field.d.ts +64 -0
- package/dist/3-unit/ds-token-field.d.ts.map +1 -0
- package/dist/3-unit/ds-token-field.js +184 -0
- package/dist/4-page/ds-container.d.ts +17 -0
- package/dist/4-page/ds-container.d.ts.map +1 -0
- package/dist/4-page/ds-container.js +11 -0
- package/dist/4-page/ds-dialog.d.ts +105 -0
- package/dist/4-page/ds-dialog.d.ts.map +1 -0
- package/dist/4-page/ds-dialog.js +358 -0
- package/dist/4-page/ds-grid.d.ts +28 -0
- package/dist/4-page/ds-grid.d.ts.map +1 -0
- package/dist/4-page/ds-grid.js +49 -0
- package/dist/4-page/ds-layout.d.ts +31 -0
- package/dist/4-page/ds-layout.d.ts.map +1 -0
- package/dist/4-page/ds-layout.js +930 -0
- package/dist/4-page/ds-panel.d.ts +26 -0
- package/dist/4-page/ds-panel.d.ts.map +1 -0
- package/dist/4-page/ds-panel.js +29 -0
- package/dist/4-page/email.d.ts +49 -0
- package/dist/4-page/email.d.ts.map +1 -0
- package/dist/4-page/email.js +134 -0
- package/dist/components.d.ts +14 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +13 -0
- package/dist/design-system-1.bundle.js +9115 -0
- package/dist/design-system-1.bundle.js.map +1 -0
- package/dist/design-system-1.bundle.min.js +6879 -0
- package/dist/design-system-1.bundle.min.js.map +1 -0
- package/dist/design-system-1.css +2 -0
- package/dist/icons-extra-BoAACA4X.js +944 -0
- package/dist/icons-extra-BoAACA4X.js.map +1 -0
- package/dist/icons-extra-DlxTo_Y4.js +247 -0
- package/dist/icons-extra-DlxTo_Y4.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/react/accordion.d.ts +21 -0
- package/dist/react/accordion.d.ts.map +1 -0
- package/dist/react/accordion.js +30 -0
- package/dist/react/avatar-group.d.ts +6 -0
- package/dist/react/avatar-group.d.ts.map +1 -0
- package/dist/react/avatar-group.js +5 -0
- package/dist/react/avatar.d.ts +13 -0
- package/dist/react/avatar.d.ts.map +1 -0
- package/dist/react/avatar.js +18 -0
- package/dist/react/badge.d.ts +11 -0
- package/dist/react/badge.d.ts.map +1 -0
- package/dist/react/badge.js +4 -0
- package/dist/react/button.d.ts +13 -0
- package/dist/react/button.d.ts.map +1 -0
- package/dist/react/button.js +37 -0
- package/dist/react/choice.d.ts +43 -0
- package/dist/react/choice.d.ts.map +1 -0
- package/dist/react/choice.js +32 -0
- package/dist/react/composer.d.ts +17 -0
- package/dist/react/composer.d.ts.map +1 -0
- package/dist/react/composer.js +8 -0
- package/dist/react/context-menu.d.ts +657 -0
- package/dist/react/context-menu.d.ts.map +1 -0
- package/dist/react/context-menu.js +133 -0
- package/dist/react/dialog.d.ts +1173 -0
- package/dist/react/dialog.d.ts.map +1 -0
- package/dist/react/dialog.js +79 -0
- package/dist/react/file-picker.d.ts +29 -0
- package/dist/react/file-picker.d.ts.map +1 -0
- package/dist/react/file-picker.js +17 -0
- package/dist/react/input.d.ts +35 -0
- package/dist/react/input.d.ts.map +1 -0
- package/dist/react/input.js +128 -0
- package/dist/react/menu.d.ts +37 -0
- package/dist/react/menu.d.ts.map +1 -0
- package/dist/react/menu.js +31 -0
- package/dist/react/split.d.ts +15 -0
- package/dist/react/split.d.ts.map +1 -0
- package/dist/react/split.js +32 -0
- package/dist/react/token-field.d.ts +36 -0
- package/dist/react/token-field.d.ts.map +1 -0
- package/dist/react/token-field.js +33 -0
- package/dist/shared-words-Cg6Phtx0.js +915 -0
- package/dist/shared-words-Cg6Phtx0.js.map +1 -0
- package/dist/shared-words-Ddz0yUEF.js +933 -0
- package/dist/shared-words-Ddz0yUEF.js.map +1 -0
- package/package.json +149 -3
package/README.md
CHANGED
|
@@ -1,3 +1,241 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Design system 1 (0.3.0-alpha.13)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A plug and play design system
|
|
4
|
+
|
|
5
|
+
> A component-based design system built with Lit that provides reusable UI components with built-in theming, internationalization, and accessibility features.
|
|
6
|
+
|
|
7
|
+
**Design system 1** is a comprehensive modern design system that provides a set of reusable UI components built with Web Components via Lit. Available via CDN or npm.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Using Vite+ (recommended)
|
|
13
|
+
vp add @0001-labs/design-system-1@alpha
|
|
14
|
+
|
|
15
|
+
# Using npm
|
|
16
|
+
npm install @0001-labs/design-system-1@alpha
|
|
17
|
+
|
|
18
|
+
# Using yarn
|
|
19
|
+
yarn add @0001-labs/design-system-1@alpha
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Note**: The package is being renamed from `ds-one` to `design-system-1`. The installation commands and CDN URLs below target the new name and will work after its first npm publication.
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Classless CSS usage
|
|
28
|
+
|
|
29
|
+
Load the separate semantic stylesheet and write ordinary HTML. Elements such as
|
|
30
|
+
`button`, `input`, `section`, headings, tables, and code blocks are styled
|
|
31
|
+
directly, so no component classes or JavaScript are required.
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<link
|
|
35
|
+
rel="stylesheet"
|
|
36
|
+
href="https://cdn.jsdelivr.net/npm/@0001-labs/design-system-1@alpha/DS1/1-root/one.semantic.css"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<section>
|
|
40
|
+
<h2>Welcome</h2>
|
|
41
|
+
<p>A native HTML interface styled by Design system 1.</p>
|
|
42
|
+
<label for="email">Email</label>
|
|
43
|
+
<input id="email" type="email" placeholder="you@example.com" />
|
|
44
|
+
<button type="button">Get started</button>
|
|
45
|
+
</section>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The complete file is organized with comments for Root, Reset, Layout,
|
|
49
|
+
Typography, Buttons, Forms, Sections, Tables, Code, Feedback, and Motion. It is
|
|
50
|
+
an additional distribution: the existing `one.css` stylesheet and Lit Web
|
|
51
|
+
Components remain unchanged.
|
|
52
|
+
|
|
53
|
+
### Web Components via CDN
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<!DOCTYPE html>
|
|
57
|
+
<html>
|
|
58
|
+
<head>
|
|
59
|
+
<!-- CSS -->
|
|
60
|
+
<link
|
|
61
|
+
rel="stylesheet"
|
|
62
|
+
href="https://cdn.jsdelivr.net/npm/@0001-labs/design-system-1@alpha/DS1/1-root/one.css"
|
|
63
|
+
/>
|
|
64
|
+
<!-- Bundle -->
|
|
65
|
+
<script type="module">
|
|
66
|
+
import "https://cdn.jsdelivr.net/npm/@0001-labs/design-system-1@alpha/dist/design-system-1.bundle.min.js";
|
|
67
|
+
</script>
|
|
68
|
+
</head>
|
|
69
|
+
<body>
|
|
70
|
+
<ds-button variant="primary" text="Get Started"></ds-button>
|
|
71
|
+
<ds-text text="Welcome"></ds-text>
|
|
72
|
+
</body>
|
|
73
|
+
</html>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### NPM Usage
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
import "design-system-1/styles";
|
|
80
|
+
import "design-system-1";
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For the classless version, import only the semantic stylesheet:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import "design-system-1/DS1/1-root/one.semantic.css";
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Source snapshots in products
|
|
90
|
+
|
|
91
|
+
Products can select shared Lit components without loading the full system's
|
|
92
|
+
page, device or theme setup. `sync.exports.mjs` says what a product may copy:
|
|
93
|
+
`languages`, `components`, `email` and `icons`. 0001's products copy them with
|
|
94
|
+
Sync 1, naming what they take in their `sync.json`:
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{ "sources": { "Design system 1": { "components": { "to": "src/design", "components": ["button", "text", "row"] } } } }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Import the generated `components.ts` and `1-root/component-tokens.css` in the
|
|
101
|
+
consumer. The copy carries the relative dependency graph
|
|
102
|
+
(`scripts/component-graph.mjs`), including shared languages and SVG maps, and a
|
|
103
|
+
`components-manifest.json` for the adoption report. Sync 1 records every file's
|
|
104
|
+
hash in the product's `sync.lock.json`, and `sync1 check` fails on missing
|
|
105
|
+
files or local drift. Files the copy did not write stay owned by the consumer.
|
|
106
|
+
All component edits happen here, then consumers sync.
|
|
107
|
+
|
|
108
|
+
Components use scoped `--ds-*` tokens so an embedded document can keep its own
|
|
109
|
+
scale and theme. A product may configure those tokens at its surface.
|
|
110
|
+
`ds-button control="host"` makes the custom element the accessible control
|
|
111
|
+
for React event handlers and roles; the default keeps a native shadow button.
|
|
112
|
+
`ds-text literal` preserves renderer-owned light DOM children; the default
|
|
113
|
+
looks up translation keys. `ds-panel` provides header and footer slots around
|
|
114
|
+
its body. The shared native-control sheet serves elements that need native
|
|
115
|
+
form or third-party focus semantics.
|
|
116
|
+
|
|
117
|
+
`ds-tooltip literal text="…"` accepts product-translated copy; omit `literal`
|
|
118
|
+
for a shared translation key. It labels its slotted control, supports top and
|
|
119
|
+
bottom placement, and dismisses on Escape. `ds-tabs` owns arrow, Home and End
|
|
120
|
+
navigation for its tab controls; the product handles their clicks to select
|
|
121
|
+
the corresponding content. Set `role="group"` for standalone filter choices.
|
|
122
|
+
Host buttons accept `icon` and `trailing` slots for glyphs and counts.
|
|
123
|
+
|
|
124
|
+
Reload the page after changing registered custom-element classes during
|
|
125
|
+
development; the browser defines each element once per document.
|
|
126
|
+
|
|
127
|
+
## Documentation
|
|
128
|
+
|
|
129
|
+
See the full documentation for Design system 1 at: [**designsystem1.com**](https://designsystem1.com/)
|
|
130
|
+
|
|
131
|
+
The Astro + Starlight site lives in `website/`. Run `vp run docs:dev` locally;
|
|
132
|
+
see the [documentation contributor guide](website/README.md) for build and authoring instructions.
|
|
133
|
+
|
|
134
|
+
The site uses Astro and Starlight. Run `vp run docs:dev` locally; see the
|
|
135
|
+
[documentation authoring guide](website/README.md) and [issue list](docs/issue-list.md).
|
|
136
|
+
|
|
137
|
+
## Design system 1 app
|
|
138
|
+
|
|
139
|
+
The repository includes a React-based component workbench for refining semantic
|
|
140
|
+
elements one at a time. The right panel always shows the complete
|
|
141
|
+
`one.semantic.css` file and updates its root variables as spacing and theme
|
|
142
|
+
controls change. Exports contain plain HTML and require no JavaScript runtime.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
vp run app:dev
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
The app and documentation belong to this single project. The documentation lives
|
|
149
|
+
at `/`, and the app lives at `/app/` on `designsystem1.com`. Both are built into
|
|
150
|
+
`website/dist` and deployed together to the Cloudflare Worker named `designsystem1`.
|
|
151
|
+
|
|
152
|
+
Build the complete website locally:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
vp run site:build
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Deploy the complete website from the repository root:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
vp run deploy
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The `app:deploy`, `docs:deploy`, and subproject `deploy` commands all use this same
|
|
165
|
+
combined release. Cloudflare settings are defined in the root `wrangler.jsonc`.
|
|
166
|
+
The same Worker serves published CSS at `/ds1/*` and authenticated publishing
|
|
167
|
+
at `/api/artifacts/*`, using the existing R2 library bucket. Convex remains the
|
|
168
|
+
backend for accounts and library metadata. All Cloudflare deployment commands
|
|
169
|
+
release this single Worker. The legacy `dsone.dev/*` route also belongs to this
|
|
170
|
+
Worker: documentation redirects to the new domain, while existing `/ds1/*`
|
|
171
|
+
stylesheet URLs remain served directly. The public workbench is available at
|
|
172
|
+
`/app/` and `/app/playground`.
|
|
173
|
+
|
|
174
|
+
The existing Convex deployment is still `aromatic-lapwing-453` (development).
|
|
175
|
+
Its publishing URLs point to `designsystem1.com`; development login-link capture
|
|
176
|
+
is disabled. Account sign-in requires an email provider before it can be used
|
|
177
|
+
on the public site. The workbench does not require an account.
|
|
178
|
+
|
|
179
|
+
## Features
|
|
180
|
+
|
|
181
|
+
### Internationalization
|
|
182
|
+
|
|
183
|
+
- **Language keys**: Add a `translations.json` to your project and everything is translatable with the cycle type language button
|
|
184
|
+
- **Multi-language**: Automatically switches language based on browser language settings
|
|
185
|
+
|
|
186
|
+
### Core Components
|
|
187
|
+
|
|
188
|
+
- **Web Components**: Built with Lit for maximum compatibility
|
|
189
|
+
- **Responsive design**: Mobile-first approach with scaling factor
|
|
190
|
+
- **Theme system**: CSS custom properties for easy customization
|
|
191
|
+
|
|
192
|
+
### Completed Features
|
|
193
|
+
|
|
194
|
+
- ✅ Core component library (ds-button, ds-text, ds-icon, etc.)
|
|
195
|
+
- ✅ Theming system with accent colors
|
|
196
|
+
- ✅ Internationalization with language keys
|
|
197
|
+
- ✅ Responsive design with mobile scaling
|
|
198
|
+
- ✅ CDN delivery via jsDelivr
|
|
199
|
+
- ✅ NPM package published
|
|
200
|
+
|
|
201
|
+
### In Progress
|
|
202
|
+
|
|
203
|
+
- 🚧 Starlight documentation coverage and manual review ([issue list](docs/issue-list.md))
|
|
204
|
+
- 🚧 Additional component variants and states defined in Figma
|
|
205
|
+
|
|
206
|
+
## Architecture
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
Design system 1/
|
|
210
|
+
├── dist/ # Built files for NPM
|
|
211
|
+
├── DS1/
|
|
212
|
+
│ ├── 0-face/ # Utilities for device detection, internationalization,
|
|
213
|
+
│ │ # localStorage preferences, pricing and theme
|
|
214
|
+
│ ├── 1-root/ # Core styles, fonts, and design tokens
|
|
215
|
+
│ │ # (everything as CSS variables)
|
|
216
|
+
│ ├── 2-core/ # Core components (banner, buttons, text, cycle,
|
|
217
|
+
│ │ # date, icon, input, tooltip)
|
|
218
|
+
│ ├── 3-unit/ # Composite components (list, row, table)
|
|
219
|
+
│ ├── 4-page/ # Page-level components for layout (layout, grid)
|
|
220
|
+
│ └── x-icon/ # SVG icon library
|
|
221
|
+
├── app/ # React workbench and account/library screens at /app/
|
|
222
|
+
├── website/ # Documentation at /; combined site output in website/dist
|
|
223
|
+
├── convex/ # Backend, authentication, libraries, and publishing actions
|
|
224
|
+
├── services/ # Asset-serving and publishing routes
|
|
225
|
+
├── packages/ # Shared CSS validation package
|
|
226
|
+
├── e2e/ # End-to-end checks
|
|
227
|
+
├── tests/ # Project checks
|
|
228
|
+
└── wrangler.jsonc # Shared website deployment configuration
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## License
|
|
233
|
+
|
|
234
|
+
MIT © [Design system 1](https://github.com/0001-labs/Design-system-1)
|
|
235
|
+
|
|
236
|
+
## 🔗 Links
|
|
237
|
+
|
|
238
|
+
- [**Website**](https://designsystem1.com/) - Official website
|
|
239
|
+
- [**GitHub**](https://github.com/0001-labs/Design-system-1) - Source code and issues
|
|
240
|
+
- [**NPM Package**](https://www.npmjs.com/package/design-system-1) - Install with `@alpha` tag
|
|
241
|
+
- [**CDN**](https://cdn.jsdelivr.net/npm/@0001-labs/design-system-1@alpha/) - Direct browser usage
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { LitElement, type PropertyDeclarations } from "lit";
|
|
2
|
+
/**
|
|
3
|
+
* The element is the control.
|
|
4
|
+
*
|
|
5
|
+
* A host control carries the role,
|
|
6
|
+
* takes focus, answers Enter and Space, and reports itself disabled. React's
|
|
7
|
+
* handlers, the accessibility tree and Testing Library then all meet one node
|
|
8
|
+
* in the light DOM, and there is no second interactive element nested inside
|
|
9
|
+
* the first.
|
|
10
|
+
*
|
|
11
|
+
* The role defaults to `button`; an element that is a tab, an option or a menu
|
|
12
|
+
* item says so with its own `role` attribute, which is left as written.
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class Control extends LitElement {
|
|
15
|
+
#private;
|
|
16
|
+
static properties: PropertyDeclarations;
|
|
17
|
+
protected get hostControl(): boolean;
|
|
18
|
+
protected syncControl(): void;
|
|
19
|
+
get disabled(): boolean;
|
|
20
|
+
set disabled(value: boolean);
|
|
21
|
+
constructor();
|
|
22
|
+
connectedCallback(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../DS1/0-face/control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,KAAK,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,8BAAsB,OAAQ,SAAQ,UAAU;;IAC5C,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAKrC;IAIF,SAAS,KAAK,WAAW,IAAI,OAAO,CAAiB;IACrD,SAAS,CAAC,WAAW,IAAI,IAAI;IAE7B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAO1B;;IAWD,iBAAiB,IAAI,IAAI;CAiD5B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
+
};
|
|
12
|
+
var _Control_instances, _Control_disabled, _Control_enabledTabIndex, _Control_syncDisabled, _Control_onClick, _Control_onKeyDown, _Control_onKeyUp;
|
|
13
|
+
import { LitElement } from "lit";
|
|
14
|
+
/**
|
|
15
|
+
* The element is the control.
|
|
16
|
+
*
|
|
17
|
+
* A host control carries the role,
|
|
18
|
+
* takes focus, answers Enter and Space, and reports itself disabled. React's
|
|
19
|
+
* handlers, the accessibility tree and Testing Library then all meet one node
|
|
20
|
+
* in the light DOM, and there is no second interactive element nested inside
|
|
21
|
+
* the first.
|
|
22
|
+
*
|
|
23
|
+
* The role defaults to `button`; an element that is a tab, an option or a menu
|
|
24
|
+
* item says so with its own `role` attribute, which is left as written.
|
|
25
|
+
*/
|
|
26
|
+
export class Control extends LitElement {
|
|
27
|
+
get hostControl() { return true; }
|
|
28
|
+
syncControl() { if (this.isConnected)
|
|
29
|
+
__classPrivateFieldGet(this, _Control_instances, "m", _Control_syncDisabled).call(this); }
|
|
30
|
+
get disabled() {
|
|
31
|
+
return __classPrivateFieldGet(this, _Control_disabled, "f");
|
|
32
|
+
}
|
|
33
|
+
set disabled(value) {
|
|
34
|
+
const old = __classPrivateFieldGet(this, _Control_disabled, "f");
|
|
35
|
+
__classPrivateFieldSet(this, _Control_disabled, Boolean(value), "f");
|
|
36
|
+
// An element may not gain attributes before it is in a document; React
|
|
37
|
+
// sets properties first, and connectedCallback catches up.
|
|
38
|
+
if (this.isConnected)
|
|
39
|
+
__classPrivateFieldGet(this, _Control_instances, "m", _Control_syncDisabled).call(this);
|
|
40
|
+
this.requestUpdate("disabled", old);
|
|
41
|
+
}
|
|
42
|
+
constructor() {
|
|
43
|
+
super();
|
|
44
|
+
_Control_instances.add(this);
|
|
45
|
+
_Control_disabled.set(this, false);
|
|
46
|
+
_Control_enabledTabIndex.set(this, void 0);
|
|
47
|
+
_Control_onClick.set(this, (event) => {
|
|
48
|
+
if (!this.disabled)
|
|
49
|
+
return;
|
|
50
|
+
event.preventDefault();
|
|
51
|
+
event.stopImmediatePropagation();
|
|
52
|
+
});
|
|
53
|
+
_Control_onKeyDown.set(this, (event) => {
|
|
54
|
+
if (!this.hostControl || this.disabled || event.target !== this)
|
|
55
|
+
return;
|
|
56
|
+
if (event.key === "Enter") {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
this.click();
|
|
59
|
+
}
|
|
60
|
+
else if (event.key === " ") {
|
|
61
|
+
// Space clicks on release, as a native button does; stop the page from
|
|
62
|
+
// scrolling in the meantime.
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
_Control_onKeyUp.set(this, (event) => {
|
|
67
|
+
if (!this.hostControl || this.disabled || event.target !== this)
|
|
68
|
+
return;
|
|
69
|
+
if (event.key === " ") {
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
this.click();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
this.addEventListener("keydown", __classPrivateFieldGet(this, _Control_onKeyDown, "f"));
|
|
75
|
+
this.addEventListener("keyup", __classPrivateFieldGet(this, _Control_onKeyUp, "f"));
|
|
76
|
+
// Registered on the element itself so it runs before the click reaches
|
|
77
|
+
// React's root listener.
|
|
78
|
+
this.addEventListener("click", __classPrivateFieldGet(this, _Control_onClick, "f"), { capture: true });
|
|
79
|
+
}
|
|
80
|
+
connectedCallback() {
|
|
81
|
+
super.connectedCallback();
|
|
82
|
+
if (this.hostControl && !this.hasAttribute("role"))
|
|
83
|
+
this.setAttribute("role", "button");
|
|
84
|
+
__classPrivateFieldGet(this, _Control_instances, "m", _Control_syncDisabled).call(this);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
_Control_disabled = new WeakMap(), _Control_enabledTabIndex = new WeakMap(), _Control_onClick = new WeakMap(), _Control_onKeyDown = new WeakMap(), _Control_onKeyUp = new WeakMap(), _Control_instances = new WeakSet(), _Control_syncDisabled = function _Control_syncDisabled() {
|
|
88
|
+
this.toggleAttribute("disabled", __classPrivateFieldGet(this, _Control_disabled, "f"));
|
|
89
|
+
if (!this.hostControl)
|
|
90
|
+
return;
|
|
91
|
+
if (!this.hasAttribute("role"))
|
|
92
|
+
this.setAttribute("role", "button");
|
|
93
|
+
if (__classPrivateFieldGet(this, _Control_disabled, "f")) {
|
|
94
|
+
if (__classPrivateFieldGet(this, _Control_enabledTabIndex, "f") === undefined)
|
|
95
|
+
__classPrivateFieldSet(this, _Control_enabledTabIndex, this.getAttribute("tabindex"), "f");
|
|
96
|
+
this.setAttribute("aria-disabled", "true");
|
|
97
|
+
this.setAttribute("tabindex", "-1");
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.removeAttribute("aria-disabled");
|
|
101
|
+
if (__classPrivateFieldGet(this, _Control_enabledTabIndex, "f") !== undefined) {
|
|
102
|
+
if (__classPrivateFieldGet(this, _Control_enabledTabIndex, "f") === null)
|
|
103
|
+
this.setAttribute("tabindex", "0");
|
|
104
|
+
else
|
|
105
|
+
this.setAttribute("tabindex", __classPrivateFieldGet(this, _Control_enabledTabIndex, "f"));
|
|
106
|
+
__classPrivateFieldSet(this, _Control_enabledTabIndex, undefined, "f");
|
|
107
|
+
}
|
|
108
|
+
else if (!this.hasAttribute("tabindex"))
|
|
109
|
+
this.setAttribute("tabindex", "0");
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
Control.properties = {
|
|
113
|
+
// The accessor is our own: disabled changes what the element does and
|
|
114
|
+
// what assistive technology hears, so it reaches the DOM at once rather
|
|
115
|
+
// than on Lit's next update.
|
|
116
|
+
disabled: { type: Boolean, reflect: true, noAccessor: true },
|
|
117
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../DS1/0-face/define.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAG5E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type ScalingConfig } from "./scaling";
|
|
2
|
+
export type { ScalingConfig, ScalingMode } from "./scaling";
|
|
3
|
+
export type DeviceType = "mobile" | "tablet" | "desktop";
|
|
4
|
+
export interface DeviceInfo {
|
|
5
|
+
isMobile: boolean;
|
|
6
|
+
isTablet: boolean;
|
|
7
|
+
isDesktop: boolean;
|
|
8
|
+
isTouchCapable: boolean;
|
|
9
|
+
deviceType: DeviceType;
|
|
10
|
+
userAgent: string;
|
|
11
|
+
screenWidth: number;
|
|
12
|
+
screenHeight: number;
|
|
13
|
+
}
|
|
14
|
+
/** Reactive scaling factor signal */
|
|
15
|
+
export declare const scalingFactor: import("@lit-labs/signals").Signal.State<number>;
|
|
16
|
+
/** Current scaling configuration */
|
|
17
|
+
export declare const scalingConfig: import("@lit-labs/signals").Signal.State<ScalingConfig>;
|
|
18
|
+
/**
|
|
19
|
+
* Comprehensive mobile device detection
|
|
20
|
+
* Combines user agent detection, touch capability, and viewport size
|
|
21
|
+
*/
|
|
22
|
+
export declare function detectMobileDevice(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Get detailed device information
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDeviceInfo(): DeviceInfo;
|
|
27
|
+
/**
|
|
28
|
+
* Calculate the scaling factor based on viewport width
|
|
29
|
+
* @param viewportWidth - Current viewport width in pixels
|
|
30
|
+
* @param config - Scaling configuration
|
|
31
|
+
* @returns The calculated scaling factor
|
|
32
|
+
*/
|
|
33
|
+
export declare function calculateScalingFactor(viewportWidth: number, config?: ScalingConfig): number;
|
|
34
|
+
/**
|
|
35
|
+
* Set the scaling configuration
|
|
36
|
+
* @param config - Partial scaling configuration to apply
|
|
37
|
+
*/
|
|
38
|
+
export declare function setScalingConfig(config: Partial<ScalingConfig>): void;
|
|
39
|
+
/**
|
|
40
|
+
* Update the scaling factor based on current viewport
|
|
41
|
+
* Desktop always uses factor 1; mobile uses computed factor
|
|
42
|
+
*/
|
|
43
|
+
export declare function updateScalingFactor(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get the current scaling factor
|
|
46
|
+
* @returns The current scaling factor
|
|
47
|
+
*/
|
|
48
|
+
export declare function getScalingFactor(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Convert a design pixel value to scaled pixels
|
|
51
|
+
* @param designPx - The design pixel value (based on 280px width)
|
|
52
|
+
* @returns The scaled pixel value
|
|
53
|
+
*/
|
|
54
|
+
export declare function scale(designPx: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* Convert a scaled pixel value back to design pixels
|
|
57
|
+
* @param scaledPx - The scaled pixel value
|
|
58
|
+
* @returns The design pixel value
|
|
59
|
+
*/
|
|
60
|
+
export declare function unscale(scaledPx: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* Initialize device detection and scaling
|
|
63
|
+
* Sets CSS classes (.mobile/.desktop) and --sf custom property
|
|
64
|
+
*/
|
|
65
|
+
export declare function initDeviceDetection(): DeviceInfo;
|
|
66
|
+
/**
|
|
67
|
+
* Disable double-tap to zoom in the browser (app-like behavior)
|
|
68
|
+
* Prevents all zoom gestures including double-tap and pinch-to-zoom
|
|
69
|
+
*/
|
|
70
|
+
export declare function applike(): void;
|
|
71
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../DS1/0-face/device.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/G,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAM5D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qCAAqC;AACrC,eAAO,MAAM,aAAa,kDAAoB,CAAC;AAE/C,oCAAoC;AACpC,eAAO,MAAM,aAAa,yDAA8C,CAAC;AAMzE;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA0B5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,aAAmC,GAC1C,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CASrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAiC1C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGhD;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CA8ChD;AAiCD;;;GAGG;AACH,wBAAgB,OAAO,IAAI,IAAI,CA4H9B"}
|