@reddb-io/ui-kit 0.3.3 → 0.3.5
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/package.json +11 -13
- package/src/lib/Badge.svelte +7 -27
- package/src/lib/Button.svelte +10 -33
- package/src/lib/Card.svelte +5 -20
- package/src/lib/EmptyState.svelte +5 -26
- package/src/lib/ListRow.svelte +14 -49
- package/src/lib/NodeBadge.svelte +6 -14
- package/src/lib/Pill.svelte +7 -25
- package/src/lib/SectionHeading.svelte +7 -20
- package/src/lib/index.ts +7 -18
- package/src/lib/tone.ts +11 -0
- package/src/tokens/index.ts +40 -17
- package/src/tokens/styles.css +4 -0
- package/src/tokens/tokens.css +68 -89
- package/vendor/ds/assets/fonts/jetbrains-mono-variable.woff2 +0 -0
- package/vendor/ds/assets/fonts/space-grotesk-variable.woff2 +0 -0
- package/vendor/ds/assets/fonts.css +38 -0
- package/vendor/ds/design-system.receipt.json +871 -0
- package/vendor/ds/kits/app/README.md +601 -0
- package/vendor/ds/kits/app/interaction-allowlist.json +35 -0
- package/vendor/ds/kits/app/kit.json +5 -0
- package/vendor/ds/kits/app/src/composites/ActionPanel.svelte +66 -0
- package/vendor/ds/kits/app/src/composites/ActivityFeed.svelte +29 -0
- package/vendor/ds/kits/app/src/composites/ApplicationShell.svelte +99 -0
- package/vendor/ds/kits/app/src/composites/BottomNavigation.svelte +68 -0
- package/vendor/ds/kits/app/src/composites/CardHeading.svelte +44 -0
- package/vendor/ds/kits/app/src/composites/CategoryFilter.svelte +83 -0
- package/vendor/ds/kits/app/src/composites/CategoryPreview.svelte +45 -0
- package/vendor/ds/kits/app/src/composites/ChatMessage.svelte +53 -0
- package/vendor/ds/kits/app/src/composites/CheckoutForm.svelte +91 -0
- package/vendor/ds/kits/app/src/composites/CommandPalette.svelte +80 -0
- package/vendor/ds/kits/app/src/composites/ContextMenu.svelte +138 -0
- package/vendor/ds/kits/app/src/composites/Diff.svelte +146 -0
- package/vendor/ds/kits/app/src/composites/EntityInspector.svelte +40 -0
- package/vendor/ds/kits/app/src/composites/EntityJourney.svelte +60 -0
- package/vendor/ds/kits/app/src/composites/Filter.svelte +42 -0
- package/vendor/ds/kits/app/src/composites/Incentive.svelte +61 -0
- package/vendor/ds/kits/app/src/composites/Menubar.svelte +121 -0
- package/vendor/ds/kits/app/src/composites/MultiColumnLayout.svelte +51 -0
- package/vendor/ds/kits/app/src/composites/OrderHistory.svelte +70 -0
- package/vendor/ds/kits/app/src/composites/OrderSummary.svelte +60 -0
- package/vendor/ds/kits/app/src/composites/PageHeading.svelte +46 -0
- package/vendor/ds/kits/app/src/composites/PhaseSummary.svelte +38 -0
- package/vendor/ds/kits/app/src/composites/PlaybackControls.svelte +62 -0
- package/vendor/ds/kits/app/src/composites/ProductFeature.svelte +71 -0
- package/vendor/ds/kits/app/src/composites/ProductList.svelte +74 -0
- package/vendor/ds/kits/app/src/composites/ProductOverview.svelte +77 -0
- package/vendor/ds/kits/app/src/composites/ProductQuickview.svelte +62 -0
- package/vendor/ds/kits/app/src/composites/PropertyPanel.svelte +42 -0
- package/vendor/ds/kits/app/src/composites/Review.svelte +68 -0
- package/vendor/ds/kits/app/src/composites/SettingsRow.svelte +38 -0
- package/vendor/ds/kits/app/src/composites/ShoppingCart.svelte +136 -0
- package/vendor/ds/kits/app/src/composites/SidebarLayout.svelte +349 -0
- package/vendor/ds/kits/app/src/composites/SidebarNavigation.svelte +74 -0
- package/vendor/ds/kits/app/src/composites/SidebarPanel.svelte +50 -0
- package/vendor/ds/kits/app/src/composites/SidebarRail.svelte +162 -0
- package/vendor/ds/kits/app/src/composites/SpeedDial.svelte +67 -0
- package/vendor/ds/kits/app/src/composites/StoreNavigation.svelte +53 -0
- package/vendor/ds/kits/app/src/composites/TaskCard.svelte +71 -0
- package/vendor/ds/kits/app/src/composites/TaskList.svelte +52 -0
- package/vendor/ds/kits/app/src/composites/TelemetryRow.svelte +41 -0
- package/vendor/ds/kits/app/src/composites/Toolbar.svelte +67 -0
- package/vendor/ds/kits/app/src/composites/action-panel.variants.ts +12 -0
- package/vendor/ds/kits/app/src/composites/activity-feed.variants.ts +10 -0
- package/vendor/ds/kits/app/src/composites/application-shell.behavior.ts +25 -0
- package/vendor/ds/kits/app/src/composites/application-shell.variants.ts +35 -0
- package/vendor/ds/kits/app/src/composites/bottom-navigation.variants.ts +20 -0
- package/vendor/ds/kits/app/src/composites/card-heading.variants.ts +7 -0
- package/vendor/ds/kits/app/src/composites/category-filter.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/category-preview.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/chat-message.variants.ts +16 -0
- package/vendor/ds/kits/app/src/composites/checkout-form.appearance.ts +19 -0
- package/vendor/ds/kits/app/src/composites/checkout-form.variants.ts +7 -0
- package/vendor/ds/kits/app/src/composites/command-palette.behavior.ts +11 -0
- package/vendor/ds/kits/app/src/composites/command-palette.variants.ts +15 -0
- package/vendor/ds/kits/app/src/composites/command-surfaces.behavior.ts +24 -0
- package/vendor/ds/kits/app/src/composites/context-menu.variants.ts +19 -0
- package/vendor/ds/kits/app/src/composites/diff.variants.ts +31 -0
- package/vendor/ds/kits/app/src/composites/filter.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/incentive.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/main-landmark.ts +23 -0
- package/vendor/ds/kits/app/src/composites/menubar.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/multi-column-layout.variants.ts +39 -0
- package/vendor/ds/kits/app/src/composites/navigation.behavior.ts +84 -0
- package/vendor/ds/kits/app/src/composites/order-history.variants.ts +38 -0
- package/vendor/ds/kits/app/src/composites/order-summary.variants.ts +23 -0
- package/vendor/ds/kits/app/src/composites/page-heading.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/product-feature.variants.ts +37 -0
- package/vendor/ds/kits/app/src/composites/product-list.behavior.ts +4 -0
- package/vendor/ds/kits/app/src/composites/product-list.variants.ts +35 -0
- package/vendor/ds/kits/app/src/composites/product-overview.variants.ts +23 -0
- package/vendor/ds/kits/app/src/composites/product-quickview.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/review.variants.ts +17 -0
- package/vendor/ds/kits/app/src/composites/settings-row.variants.ts +17 -0
- package/vendor/ds/kits/app/src/composites/shopping-cart.appearance.ts +32 -0
- package/vendor/ds/kits/app/src/composites/shopping-cart.variants.ts +5 -0
- package/vendor/ds/kits/app/src/composites/sidebar-layout.variants.ts +211 -0
- package/vendor/ds/kits/app/src/composites/sidebar-navigation.variants.ts +12 -0
- package/vendor/ds/kits/app/src/composites/sidebar-panel.variants.ts +13 -0
- package/vendor/ds/kits/app/src/composites/sidebar-rail.variants.ts +58 -0
- package/vendor/ds/kits/app/src/composites/speed-dial.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/store-navigation.variants.ts +15 -0
- package/vendor/ds/kits/app/src/composites/task-list.behavior.ts +51 -0
- package/vendor/ds/kits/app/src/composites/task-list.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/toolbar.variants.ts +27 -0
- package/vendor/ds/kits/app/src/core/category-filter.ts +4 -0
- package/vendor/ds/kits/app/src/core/checkout-form.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/actionpanel.ts +24 -0
- package/vendor/ds/kits/app/src/core/contracts/activityfeed.ts +10 -0
- package/vendor/ds/kits/app/src/core/contracts/applicationshell.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/bottomnavigation.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/cardheading.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/categoryfilter.ts +21 -0
- package/vendor/ds/kits/app/src/core/contracts/categorypreview.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/chatmessage.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/checkoutform.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/commandpalette.ts +24 -0
- package/vendor/ds/kits/app/src/core/contracts/contextmenu.ts +30 -0
- package/vendor/ds/kits/app/src/core/contracts/diff.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/entityinspector.ts +25 -0
- package/vendor/ds/kits/app/src/core/contracts/entityjourney.ts +14 -0
- package/vendor/ds/kits/app/src/core/contracts/filter.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/incentive.ts +11 -0
- package/vendor/ds/kits/app/src/core/contracts/listrow.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/menubar.ts +28 -0
- package/vendor/ds/kits/app/src/core/contracts/multicolumnlayout.ts +7 -0
- package/vendor/ds/kits/app/src/core/contracts/navitem.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/nodebadge.ts +11 -0
- package/vendor/ds/kits/app/src/core/contracts/orderhistory.ts +25 -0
- package/vendor/ds/kits/app/src/core/contracts/ordersummary.ts +19 -0
- package/vendor/ds/kits/app/src/core/contracts/pageheading.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/phasesummary.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/pill.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/playbackcontrols.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/productfeature.ts +14 -0
- package/vendor/ds/kits/app/src/core/contracts/productlist.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/productoverview.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/productquickview.ts +16 -0
- package/vendor/ds/kits/app/src/core/contracts/propertypanel.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/review.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/settingsrow.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/shoppingcart.ts +29 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarlayout.ts +40 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarnavigation.ts +16 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarpanel.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarrail.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/speeddial.ts +32 -0
- package/vendor/ds/kits/app/src/core/contracts/splitview.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/storenavigation.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/taskcard.ts +7 -0
- package/vendor/ds/kits/app/src/core/contracts/tasklist.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/telemetryrow.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/toolbar.ts +25 -0
- package/vendor/ds/kits/app/src/core/diff.ts +7 -0
- package/vendor/ds/kits/app/src/core/entity-inspector.ts +26 -0
- package/vendor/ds/kits/app/src/core/entity-journey.ts +52 -0
- package/vendor/ds/kits/app/src/core/measure.ts +7 -0
- package/vendor/ds/kits/app/src/core/operational.ts +42 -0
- package/vendor/ds/kits/app/src/core/product-list.ts +16 -0
- package/vendor/ds/kits/app/src/core/settings-row.ts +9 -0
- package/vendor/ds/kits/app/src/core/shopping-cart.ts +17 -0
- package/vendor/ds/kits/app/src/core/sidebar-rail.ts +58 -0
- package/vendor/ds/kits/app/src/entity-inspector.variants.ts +14 -0
- package/vendor/ds/kits/app/src/entity-journey.variants.ts +38 -0
- package/vendor/ds/kits/app/src/index.ts +429 -0
- package/vendor/ds/kits/app/src/operational.variants.ts +20 -0
- package/vendor/ds/kits/app/src/primitives/ListRow.svelte +95 -0
- package/vendor/ds/kits/app/src/primitives/NavItem.svelte +87 -0
- package/vendor/ds/kits/app/src/primitives/NodeBadge.svelte +47 -0
- package/vendor/ds/kits/app/src/primitives/Pill.svelte +81 -0
- package/vendor/ds/kits/app/src/primitives/SplitView.svelte +148 -0
- package/vendor/ds/kits/app/src/primitives/list-row.variants.ts +82 -0
- package/vendor/ds/kits/app/src/primitives/nav-item.variants.ts +56 -0
- package/vendor/ds/kits/app/src/primitives/node-badge.variants.ts +73 -0
- package/vendor/ds/kits/app/src/primitives/pill.variants.ts +117 -0
- package/vendor/ds/kits/app/src/primitives/split-view.behavior.ts +113 -0
- package/vendor/ds/kits/app/src/primitives/split-view.variants.ts +60 -0
- package/vendor/ds/kits/app/src/recipes.ts +44 -0
- package/vendor/ds/kits/app/svelte.config.js +6 -0
- package/vendor/ds/kits/app/test/action-panel.test.ts +63 -0
- package/vendor/ds/kits/app/test/activity-feed.test.ts +74 -0
- package/vendor/ds/kits/app/test/application-shell.test.ts +147 -0
- package/vendor/ds/kits/app/test/base-contraction.test.ts +60 -0
- package/vendor/ds/kits/app/test/button-migration.test.ts +134 -0
- package/vendor/ds/kits/app/test/card-heading.test.ts +53 -0
- package/vendor/ds/kits/app/test/category-filter.test.ts +84 -0
- package/vendor/ds/kits/app/test/category-preview.test.ts +75 -0
- package/vendor/ds/kits/app/test/chat-message.test.ts +70 -0
- package/vendor/ds/kits/app/test/checkout-form.test.ts +134 -0
- package/vendor/ds/kits/app/test/coherence.test.ts +193 -0
- package/vendor/ds/kits/app/test/command-palette.test.ts +177 -0
- package/vendor/ds/kits/app/test/command-surface-failures.test.ts +28 -0
- package/vendor/ds/kits/app/test/commerce-readiness.ts +54 -0
- package/vendor/ds/kits/app/test/consumer-check.test.ts +61 -0
- package/vendor/ds/kits/app/test/context-menu.test.ts +96 -0
- package/vendor/ds/kits/app/test/density.test.ts +487 -0
- package/vendor/ds/kits/app/test/diff.test.ts +121 -0
- package/vendor/ds/kits/app/test/elevation.test.ts +77 -0
- package/vendor/ds/kits/app/test/entity-inspector.test.ts +97 -0
- package/vendor/ds/kits/app/test/entity-journey.test.ts +100 -0
- package/vendor/ds/kits/app/test/event-dialect.test.ts +183 -0
- package/vendor/ds/kits/app/test/filter.test.ts +161 -0
- package/vendor/ds/kits/app/test/fixtures/ApplicationLayoutsConsumer.svelte +26 -0
- package/vendor/ds/kits/app/test/fixtures/ApplicationLayoutsContractFailures.svelte +19 -0
- package/vendor/ds/kits/app/test/fixtures/CommandPaletteConsumer.svelte +22 -0
- package/vendor/ds/kits/app/test/fixtures/CommandPaletteContractFailures.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/CommandSurfaceContractFailures.svelte +24 -0
- package/vendor/ds/kits/app/test/fixtures/CommerceContractFailures.svelte +17 -0
- package/vendor/ds/kits/app/test/fixtures/CommerceSurfacesConsumer.svelte +30 -0
- package/vendor/ds/kits/app/test/fixtures/DiffConsumer.svelte +18 -0
- package/vendor/ds/kits/app/test/fixtures/DiffContractFailures.svelte +5 -0
- package/vendor/ds/kits/app/test/fixtures/EntityInspector.svelte +7 -0
- package/vendor/ds/kits/app/test/fixtures/EntityJourney.svelte +11 -0
- package/vendor/ds/kits/app/test/fixtures/FilterContractFailures.svelte +16 -0
- package/vendor/ds/kits/app/test/fixtures/FilterSurfacesConsumer.svelte +24 -0
- package/vendor/ds/kits/app/test/fixtures/FrameworkApp.svelte +28 -0
- package/vendor/ds/kits/app/test/fixtures/HeadingContractFailures.svelte +10 -0
- package/vendor/ds/kits/app/test/fixtures/MainOwnershipConsumer.svelte +35 -0
- package/vendor/ds/kits/app/test/fixtures/MerchandisingContractFailures.svelte +3 -0
- package/vendor/ds/kits/app/test/fixtures/MerchandisingSurfacesConsumer.svelte +28 -0
- package/vendor/ds/kits/app/test/fixtures/NavigationContractFailures.svelte +22 -0
- package/vendor/ds/kits/app/test/fixtures/NavigationSurfacesConsumer.svelte +23 -0
- package/vendor/ds/kits/app/test/fixtures/NestedSplitViewConsumer.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/Operational.svelte +34 -0
- package/vendor/ds/kits/app/test/fixtures/ProductCatalogueConsumer.svelte +58 -0
- package/vendor/ds/kits/app/test/fixtures/ProductCatalogueContractFailures.svelte +29 -0
- package/vendor/ds/kits/app/test/fixtures/SettingsRows.svelte +10 -0
- package/vendor/ds/kits/app/test/fixtures/ShellBrandComposition.svelte +52 -0
- package/vendor/ds/kits/app/test/fixtures/SocialContractFailures.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/SocialSurfacesConsumer.svelte +43 -0
- package/vendor/ds/kits/app/test/fixtures/TestGlyph.svelte +9 -0
- package/vendor/ds/kits/app/test/fixtures/TitlingSurfacesConsumer.svelte +21 -0
- package/vendor/ds/kits/app/test/fixtures/command-surfaces-consumer.ts +14 -0
- package/vendor/ds/kits/app/test/fixtures/consumer-check/Unfixed.svelte +50 -0
- package/vendor/ds/kits/app/test/fixtures/consumer-check/tsconfig.json +4 -0
- package/vendor/ds/kits/app/test/fixtures/markers/fixture-badge.variants.ts +12 -0
- package/vendor/ds/kits/app/test/fixtures/markers/fixture-chip.variants.ts +8 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/button-only.ts +7 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/menu-only.ts +9 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/number-field-only.ts +1 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/task-list-only.ts +1 -0
- package/vendor/ds/kits/app/test/framework-app.test.ts +140 -0
- package/vendor/ds/kits/app/test/framework-operational.test.ts +97 -0
- package/vendor/ds/kits/app/test/heading-level.test.ts +38 -0
- package/vendor/ds/kits/app/test/incentive.test.ts +60 -0
- package/vendor/ds/kits/app/test/label-in-name.ts +43 -0
- package/vendor/ds/kits/app/test/layout-readiness.ts +49 -0
- package/vendor/ds/kits/app/test/lint.test.ts +54 -0
- package/vendor/ds/kits/app/test/list-row.test.ts +117 -0
- package/vendor/ds/kits/app/test/main-ownership.test.ts +56 -0
- package/vendor/ds/kits/app/test/markers.test.ts +94 -0
- package/vendor/ds/kits/app/test/markers.ts +94 -0
- package/vendor/ds/kits/app/test/menubar.test.ts +93 -0
- package/vendor/ds/kits/app/test/mount.ts +86 -0
- package/vendor/ds/kits/app/test/multi-column-layout.test.ts +106 -0
- package/vendor/ds/kits/app/test/nav-item.test.ts +125 -0
- package/vendor/ds/kits/app/test/navigation-markers.test.ts +31 -0
- package/vendor/ds/kits/app/test/node-badge.test.ts +81 -0
- package/vendor/ds/kits/app/test/order-history.test.ts +78 -0
- package/vendor/ds/kits/app/test/order-summary.test.ts +77 -0
- package/vendor/ds/kits/app/test/page-heading.test.ts +90 -0
- package/vendor/ds/kits/app/test/pill.test.ts +63 -0
- package/vendor/ds/kits/app/test/product-feature.test.ts +76 -0
- package/vendor/ds/kits/app/test/product-list.test.ts +95 -0
- package/vendor/ds/kits/app/test/product-overview.test.ts +92 -0
- package/vendor/ds/kits/app/test/product-quickview.test.ts +116 -0
- package/vendor/ds/kits/app/test/react-consumer.tsx +36 -0
- package/vendor/ds/kits/app/test/review.test.ts +84 -0
- package/vendor/ds/kits/app/test/settings-row.test.ts +34 -0
- package/vendor/ds/kits/app/test/shell-brand.test.ts +22 -0
- package/vendor/ds/kits/app/test/shopping-cart.test.ts +172 -0
- package/vendor/ds/kits/app/test/sidebar-layout.test.ts +133 -0
- package/vendor/ds/kits/app/test/sidebar-navigation-bottom-navigation-store-navigation.test.ts +245 -0
- package/vendor/ds/kits/app/test/sidebar-panel.test.ts +29 -0
- package/vendor/ds/kits/app/test/sidebar-rail.test.ts +320 -0
- package/vendor/ds/kits/app/test/speed-dial.test.ts +53 -0
- package/vendor/ds/kits/app/test/split-view.behavior.test.ts +137 -0
- package/vendor/ds/kits/app/test/split-view.dense-tooling.test.ts +66 -0
- package/vendor/ds/kits/app/test/split-view.test.ts +210 -0
- package/vendor/ds/kits/app/test/task-list.test.ts +26 -0
- package/vendor/ds/kits/app/test/taxonomy.test.ts +149 -0
- package/vendor/ds/kits/app/test/toolbar.test.ts +42 -0
- package/vendor/ds/kits/app/test/tree-shaking.test.ts +381 -0
- package/vendor/ds/kits/app/test/vocabulary.test.ts +182 -0
- package/vendor/ds/kits/app/tools/build-cli.ts +34 -0
- package/vendor/ds/kits/app/tools/check-cli.ts +33 -0
- package/vendor/ds/kits/app/tools/consumer-check.ts +117 -0
- package/vendor/ds/kits/app/tools/lint-cli.ts +19 -0
- package/vendor/ds/kits/app/tools/paths.ts +47 -0
- package/vendor/ds/kits/app/tsconfig.consumer.json +30 -0
- package/vendor/ds/kits/app/tsconfig.json +26 -0
- package/vendor/ds/kits/app/type-ledger.json +4 -0
- package/vendor/ds/kits/app/vite.config.ts +28 -0
- package/vendor/ds/kits/base/README.md +1482 -0
- package/vendor/ds/kits/base/interaction-allowlist.json +106 -0
- package/vendor/ds/kits/base/kit.json +4 -0
- package/vendor/ds/kits/base/src/Accordion.svelte +113 -0
- package/vendor/ds/kits/base/src/Alert.svelte +51 -0
- package/vendor/ds/kits/base/src/AlertDialog.svelte +77 -0
- package/vendor/ds/kits/base/src/AppearanceSwitch.svelte +73 -0
- package/vendor/ds/kits/base/src/AspectRatio.svelte +32 -0
- package/vendor/ds/kits/base/src/Avatar.svelte +75 -0
- package/vendor/ds/kits/base/src/Badge.svelte +63 -0
- package/vendor/ds/kits/base/src/Breadcrumbs.svelte +57 -0
- package/vendor/ds/kits/base/src/BrowserMockup.svelte +53 -0
- package/vendor/ds/kits/base/src/BulletsSlide.svelte +60 -0
- package/vendor/ds/kits/base/src/Button.svelte +123 -0
- package/vendor/ds/kits/base/src/Calendar.svelte +156 -0
- package/vendor/ds/kits/base/src/Card.svelte +213 -0
- package/vendor/ds/kits/base/src/Carousel.svelte +172 -0
- package/vendor/ds/kits/base/src/Checkbox.svelte +99 -0
- package/vendor/ds/kits/base/src/CodeBlock.svelte +113 -0
- package/vendor/ds/kits/base/src/Combobox.svelte +124 -0
- package/vendor/ds/kits/base/src/Container.svelte +29 -0
- package/vendor/ds/kits/base/src/ContentMask.svelte +32 -0
- package/vendor/ds/kits/base/src/ControlGroup.svelte +42 -0
- package/vendor/ds/kits/base/src/Countdown.svelte +55 -0
- package/vendor/ds/kits/base/src/DateField.svelte +157 -0
- package/vendor/ds/kits/base/src/DatePicker.svelte +112 -0
- package/vendor/ds/kits/base/src/DateRangeField.svelte +81 -0
- package/vendor/ds/kits/base/src/DateRangePicker.svelte +137 -0
- package/vendor/ds/kits/base/src/Deck.svelte +24 -0
- package/vendor/ds/kits/base/src/DescriptionList.svelte +40 -0
- package/vendor/ds/kits/base/src/Dialog.svelte +143 -0
- package/vendor/ds/kits/base/src/Disclosure.svelte +85 -0
- package/vendor/ds/kits/base/src/Divider.svelte +22 -0
- package/vendor/ds/kits/base/src/Drawer.svelte +17 -0
- package/vendor/ds/kits/base/src/DropdownMenu.svelte +192 -0
- package/vendor/ds/kits/base/src/EmptyState.svelte +54 -0
- package/vendor/ds/kits/base/src/Eyebrow.svelte +21 -0
- package/vendor/ds/kits/base/src/Field.svelte +75 -0
- package/vendor/ds/kits/base/src/Fieldset.svelte +70 -0
- package/vendor/ds/kits/base/src/FigureSlide.svelte +70 -0
- package/vendor/ds/kits/base/src/FileInput.svelte +104 -0
- package/vendor/ds/kits/base/src/Form.svelte +21 -0
- package/vendor/ds/kits/base/src/GridList.svelte +51 -0
- package/vendor/ds/kits/base/src/Heading.svelte +41 -0
- package/vendor/ds/kits/base/src/Icon.svelte +75 -0
- package/vendor/ds/kits/base/src/Image.svelte +133 -0
- package/vendor/ds/kits/base/src/Indicator.svelte +35 -0
- package/vendor/ds/kits/base/src/InlineEdit.svelte +86 -0
- package/vendor/ds/kits/base/src/Input.svelte +84 -0
- package/vendor/ds/kits/base/src/Kbd.svelte +41 -0
- package/vendor/ds/kits/base/src/Label.svelte +21 -0
- package/vendor/ds/kits/base/src/Link.svelte +21 -0
- package/vendor/ds/kits/base/src/LinkPreview.svelte +95 -0
- package/vendor/ds/kits/base/src/List.svelte +28 -0
- package/vendor/ds/kits/base/src/ListContainer.svelte +51 -0
- package/vendor/ds/kits/base/src/LoadingIndicator.svelte +48 -0
- package/vendor/ds/kits/base/src/Logo.svelte +183 -0
- package/vendor/ds/kits/base/src/MediaObject.svelte +46 -0
- package/vendor/ds/kits/base/src/Meter.svelte +130 -0
- package/vendor/ds/kits/base/src/Navbar.svelte +176 -0
- package/vendor/ds/kits/base/src/NavigationMenu.svelte +124 -0
- package/vendor/ds/kits/base/src/NavigationScope.svelte +57 -0
- package/vendor/ds/kits/base/src/Notification.svelte +74 -0
- package/vendor/ds/kits/base/src/NumberField.svelte +104 -0
- package/vendor/ds/kits/base/src/OneTimeCodeInput.svelte +176 -0
- package/vendor/ds/kits/base/src/Pagination.svelte +40 -0
- package/vendor/ds/kits/base/src/PhoneInput.svelte +96 -0
- package/vendor/ds/kits/base/src/PhoneMockup.svelte +42 -0
- package/vendor/ds/kits/base/src/Popover.svelte +116 -0
- package/vendor/ds/kits/base/src/Progress.svelte +115 -0
- package/vendor/ds/kits/base/src/Prose.svelte +40 -0
- package/vendor/ds/kits/base/src/QuoteSlide.svelte +60 -0
- package/vendor/ds/kits/base/src/RadialProgress.svelte +85 -0
- package/vendor/ds/kits/base/src/RadioGroup.svelte +117 -0
- package/vendor/ds/kits/base/src/RangeCalendar.svelte +171 -0
- package/vendor/ds/kits/base/src/Rating.svelte +126 -0
- package/vendor/ds/kits/base/src/Reveal.svelte +36 -0
- package/vendor/ds/kits/base/src/ScrollArea.svelte +40 -0
- package/vendor/ds/kits/base/src/SearchSelect.svelte +203 -0
- package/vendor/ds/kits/base/src/SectionHeading.svelte +59 -0
- package/vendor/ds/kits/base/src/SectionSlide.svelte +56 -0
- package/vendor/ds/kits/base/src/Select.svelte +95 -0
- package/vendor/ds/kits/base/src/Skeleton.svelte +35 -0
- package/vendor/ds/kits/base/src/SkipLink.svelte +39 -0
- package/vendor/ds/kits/base/src/SlideFrame.svelte +63 -0
- package/vendor/ds/kits/base/src/Slider.svelte +107 -0
- package/vendor/ds/kits/base/src/Stack.svelte +57 -0
- package/vendor/ds/kits/base/src/Statistic.svelte +74 -0
- package/vendor/ds/kits/base/src/StatusIndicator.svelte +52 -0
- package/vendor/ds/kits/base/src/Steps.svelte +51 -0
- package/vendor/ds/kits/base/src/Swap.svelte +85 -0
- package/vendor/ds/kits/base/src/Switch.svelte +91 -0
- package/vendor/ds/kits/base/src/Table.svelte +96 -0
- package/vendor/ds/kits/base/src/Tabs.svelte +131 -0
- package/vendor/ds/kits/base/src/Text.svelte +45 -0
- package/vendor/ds/kits/base/src/Textarea.svelte +63 -0
- package/vendor/ds/kits/base/src/TimeField.svelte +118 -0
- package/vendor/ds/kits/base/src/TimeRangeField.svelte +81 -0
- package/vendor/ds/kits/base/src/Timeline.svelte +49 -0
- package/vendor/ds/kits/base/src/TitleSlide.svelte +63 -0
- package/vendor/ds/kits/base/src/ToggleButton.svelte +78 -0
- package/vendor/ds/kits/base/src/ToggleGroup.svelte +79 -0
- package/vendor/ds/kits/base/src/Tooltip.svelte +109 -0
- package/vendor/ds/kits/base/src/Transfer.svelte +31 -0
- package/vendor/ds/kits/base/src/TwoColumnSlide.svelte +63 -0
- package/vendor/ds/kits/base/src/WindowMockup.svelte +51 -0
- package/vendor/ds/kits/base/src/a11y.ts +21 -0
- package/vendor/ds/kits/base/src/accordion.variants.ts +26 -0
- package/vendor/ds/kits/base/src/alert-dialog.variants.ts +17 -0
- package/vendor/ds/kits/base/src/alert.variants.ts +36 -0
- package/vendor/ds/kits/base/src/appearance-switch.behavior.ts +29 -0
- package/vendor/ds/kits/base/src/aspect-ratio.variants.ts +14 -0
- package/vendor/ds/kits/base/src/avatar.variants.ts +29 -0
- package/vendor/ds/kits/base/src/badge.variants.ts +89 -0
- package/vendor/ds/kits/base/src/breadcrumbs.variants.ts +15 -0
- package/vendor/ds/kits/base/src/browser-mockup.variants.ts +18 -0
- package/vendor/ds/kits/base/src/button.variants.ts +186 -0
- package/vendor/ds/kits/base/src/calendar.variants.ts +35 -0
- package/vendor/ds/kits/base/src/card.variants.ts +293 -0
- package/vendor/ds/kits/base/src/carousel.variants.ts +19 -0
- package/vendor/ds/kits/base/src/checkbox.variants.ts +64 -0
- package/vendor/ds/kits/base/src/code-block.variants.ts +58 -0
- package/vendor/ds/kits/base/src/collapsible.style.ts +15 -0
- package/vendor/ds/kits/base/src/combobox.variants.ts +62 -0
- package/vendor/ds/kits/base/src/container.variants.ts +27 -0
- package/vendor/ds/kits/base/src/content-mask.variants.ts +57 -0
- package/vendor/ds/kits/base/src/control-group.variants.ts +22 -0
- package/vendor/ds/kits/base/src/core/a11y.ts +106 -0
- package/vendor/ds/kits/base/src/core/appearance-switch.ts +39 -0
- package/vendor/ds/kits/base/src/core/avatar.ts +27 -0
- package/vendor/ds/kits/base/src/core/breadcrumbs.ts +11 -0
- package/vendor/ds/kits/base/src/core/calendar.ts +95 -0
- package/vendor/ds/kits/base/src/core/carousel.ts +8 -0
- package/vendor/ds/kits/base/src/core/choices.ts +29 -0
- package/vendor/ds/kits/base/src/core/code-block.ts +23 -0
- package/vendor/ds/kits/base/src/core/confirmation.ts +24 -0
- package/vendor/ds/kits/base/src/core/contracts/accordion.ts +28 -0
- package/vendor/ds/kits/base/src/core/contracts/carousel.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/combobox.ts +35 -0
- package/vendor/ds/kits/base/src/core/contracts/datefield.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/datepicker.ts +62 -0
- package/vendor/ds/kits/base/src/core/contracts/daterangefield.ts +33 -0
- package/vendor/ds/kits/base/src/core/contracts/daterangepicker.ts +88 -0
- package/vendor/ds/kits/base/src/core/contracts/dialog.ts +24 -0
- package/vendor/ds/kits/base/src/core/contracts/disclosure.ts +15 -0
- package/vendor/ds/kits/base/src/core/contracts/linkpreview.ts +29 -0
- package/vendor/ds/kits/base/src/core/contracts/navbar.ts +30 -0
- package/vendor/ds/kits/base/src/core/contracts/navigationmenu.ts +35 -0
- package/vendor/ds/kits/base/src/core/contracts/phoneinput.ts +55 -0
- package/vendor/ds/kits/base/src/core/contracts/popover.ts +29 -0
- package/vendor/ds/kits/base/src/core/contracts/searchselect.ts +38 -0
- package/vendor/ds/kits/base/src/core/contracts/tabs.ts +26 -0
- package/vendor/ds/kits/base/src/core/contracts/timefield.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/timerangefield.ts +33 -0
- package/vendor/ds/kits/base/src/core/contracts/tooltip.ts +12 -0
- package/vendor/ds/kits/base/src/core/contracts/transfer.ts +13 -0
- package/vendor/ds/kits/base/src/core/date-segments.ts +18 -0
- package/vendor/ds/kits/base/src/core/description-list.ts +5 -0
- package/vendor/ds/kits/base/src/core/dropdown-menu.ts +55 -0
- package/vendor/ds/kits/base/src/core/feedback.ts +5 -0
- package/vendor/ds/kits/base/src/core/field.ts +57 -0
- package/vendor/ds/kits/base/src/core/fieldset.ts +10 -0
- package/vendor/ds/kits/base/src/core/focus-scope.ts +27 -0
- package/vendor/ds/kits/base/src/core/icon.ts +15 -0
- package/vendor/ds/kits/base/src/core/index.ts +2 -0
- package/vendor/ds/kits/base/src/core/inline-edit.ts +86 -0
- package/vendor/ds/kits/base/src/core/input.ts +9 -0
- package/vendor/ds/kits/base/src/core/modal.ts +73 -0
- package/vendor/ds/kits/base/src/core/native-controls.ts +43 -0
- package/vendor/ds/kits/base/src/core/navbar.ts +16 -0
- package/vendor/ds/kits/base/src/core/navigation-disclosures.ts +10 -0
- package/vendor/ds/kits/base/src/core/navigation.ts +48 -0
- package/vendor/ds/kits/base/src/core/number-field.ts +8 -0
- package/vendor/ds/kits/base/src/core/one-time-code.ts +17 -0
- package/vendor/ds/kits/base/src/core/operational-motion.ts +174 -0
- package/vendor/ds/kits/base/src/core/pagination.ts +8 -0
- package/vendor/ds/kits/base/src/core/phone-input.ts +106 -0
- package/vendor/ds/kits/base/src/core/portal-appearance.ts +15 -0
- package/vendor/ds/kits/base/src/core/reveal.ts +60 -0
- package/vendor/ds/kits/base/src/core/segments.ts +28 -0
- package/vendor/ds/kits/base/src/core/skip-link.ts +7 -0
- package/vendor/ds/kits/base/src/core/slider.ts +23 -0
- package/vendor/ds/kits/base/src/core/steps.ts +12 -0
- package/vendor/ds/kits/base/src/core/table.ts +21 -0
- package/vendor/ds/kits/base/src/core/timeline.ts +14 -0
- package/vendor/ds/kits/base/src/core/toggle-group.ts +41 -0
- package/vendor/ds/kits/base/src/countdown.behavior.ts +26 -0
- package/vendor/ds/kits/base/src/countdown.variants.ts +11 -0
- package/vendor/ds/kits/base/src/date-field.variants.ts +24 -0
- package/vendor/ds/kits/base/src/date-picker.variants.ts +16 -0
- package/vendor/ds/kits/base/src/date-range-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/date-range-picker.variants.ts +15 -0
- package/vendor/ds/kits/base/src/deck.variants.ts +10 -0
- package/vendor/ds/kits/base/src/deprecation.ts +24 -0
- package/vendor/ds/kits/base/src/description-list.appearance.ts +32 -0
- package/vendor/ds/kits/base/src/description-list.variants.ts +6 -0
- package/vendor/ds/kits/base/src/dialog.variants.ts +30 -0
- package/vendor/ds/kits/base/src/disclosure.variants.ts +14 -0
- package/vendor/ds/kits/base/src/divider.variants.ts +17 -0
- package/vendor/ds/kits/base/src/drawer.variants.ts +48 -0
- package/vendor/ds/kits/base/src/dropdown-menu.behavior.ts +6 -0
- package/vendor/ds/kits/base/src/dropdown-menu.variants.ts +38 -0
- package/vendor/ds/kits/base/src/empty-state.variants.ts +41 -0
- package/vendor/ds/kits/base/src/eyebrow.variants.ts +14 -0
- package/vendor/ds/kits/base/src/field.variants.ts +54 -0
- package/vendor/ds/kits/base/src/fieldset.variants.ts +29 -0
- package/vendor/ds/kits/base/src/file-input.variants.ts +18 -0
- package/vendor/ds/kits/base/src/form.variants.ts +13 -0
- package/vendor/ds/kits/base/src/grid-list.variants.ts +38 -0
- package/vendor/ds/kits/base/src/heading.variants.ts +35 -0
- package/vendor/ds/kits/base/src/image.variants.ts +121 -0
- package/vendor/ds/kits/base/src/index.ts +1039 -0
- package/vendor/ds/kits/base/src/indicator.variants.ts +35 -0
- package/vendor/ds/kits/base/src/inline-edit.variants.ts +33 -0
- package/vendor/ds/kits/base/src/input.variants.ts +33 -0
- package/vendor/ds/kits/base/src/interaction.ts +3 -0
- package/vendor/ds/kits/base/src/kbd.variants.ts +25 -0
- package/vendor/ds/kits/base/src/label.variants.ts +8 -0
- package/vendor/ds/kits/base/src/link-preview.variants.ts +10 -0
- package/vendor/ds/kits/base/src/link.variants.ts +20 -0
- package/vendor/ds/kits/base/src/list.variants.ts +17 -0
- package/vendor/ds/kits/base/src/loading-indicator.variants.ts +31 -0
- package/vendor/ds/kits/base/src/logo.box.ts +128 -0
- package/vendor/ds/kits/base/src/logo.marks.ts +248 -0
- package/vendor/ds/kits/base/src/logo.surface.ts +45 -0
- package/vendor/ds/kits/base/src/logo.variants.ts +53 -0
- package/vendor/ds/kits/base/src/marks/reddb-horizontal-color.svg +14 -0
- package/vendor/ds/kits/base/src/marks/reddb-horizontal-inverse.svg +14 -0
- package/vendor/ds/kits/base/src/marks/reddb-icon-color.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-stacked-color.svg +16 -0
- package/vendor/ds/kits/base/src/marks/reddb-stacked-inverse.svg +16 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-black.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-color.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-knockout.svg +4 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-white.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-wordmark-black.svg +10 -0
- package/vendor/ds/kits/base/src/marks/reddb-wordmark-white.svg +10 -0
- package/vendor/ds/kits/base/src/media-object.variants.ts +29 -0
- package/vendor/ds/kits/base/src/meter.variants.ts +55 -0
- package/vendor/ds/kits/base/src/navbar.variants.ts +78 -0
- package/vendor/ds/kits/base/src/navigation-menu.behavior.ts +24 -0
- package/vendor/ds/kits/base/src/navigation-menu.variants.ts +39 -0
- package/vendor/ds/kits/base/src/navigation.ts +45 -0
- package/vendor/ds/kits/base/src/notification.variants.ts +14 -0
- package/vendor/ds/kits/base/src/number-field.variants.ts +10 -0
- package/vendor/ds/kits/base/src/one-time-code-input.variants.ts +23 -0
- package/vendor/ds/kits/base/src/pagination.variants.ts +19 -0
- package/vendor/ds/kits/base/src/phone-input.variants.ts +17 -0
- package/vendor/ds/kits/base/src/phone-mockup.variants.ts +16 -0
- package/vendor/ds/kits/base/src/popover.variants.ts +12 -0
- package/vendor/ds/kits/base/src/portal-appearance.svelte.ts +12 -0
- package/vendor/ds/kits/base/src/progress.behavior.ts +37 -0
- package/vendor/ds/kits/base/src/progress.variants.ts +31 -0
- package/vendor/ds/kits/base/src/prose.variants.ts +231 -0
- package/vendor/ds/kits/base/src/quiet-control.variants.ts +90 -0
- package/vendor/ds/kits/base/src/radial-progress.variants.ts +47 -0
- package/vendor/ds/kits/base/src/radio-group.variants.ts +59 -0
- package/vendor/ds/kits/base/src/rating.variants.ts +22 -0
- package/vendor/ds/kits/base/src/recipes.ts +100 -0
- package/vendor/ds/kits/base/src/reduced-motion.svelte.ts +40 -0
- package/vendor/ds/kits/base/src/reveal.variants.ts +43 -0
- package/vendor/ds/kits/base/src/scroll-area.variants.ts +29 -0
- package/vendor/ds/kits/base/src/search-select.variants.ts +39 -0
- package/vendor/ds/kits/base/src/section-heading.variants.ts +41 -0
- package/vendor/ds/kits/base/src/segments.variants.ts +8 -0
- package/vendor/ds/kits/base/src/select.variants.ts +30 -0
- package/vendor/ds/kits/base/src/skeleton.variants.ts +17 -0
- package/vendor/ds/kits/base/src/skip-link.variants.ts +17 -0
- package/vendor/ds/kits/base/src/slide-frame.variants.ts +94 -0
- package/vendor/ds/kits/base/src/slide-layout.variants.ts +43 -0
- package/vendor/ds/kits/base/src/slider.variants.ts +16 -0
- package/vendor/ds/kits/base/src/stack.variants.ts +65 -0
- package/vendor/ds/kits/base/src/statistic.variants.ts +12 -0
- package/vendor/ds/kits/base/src/status-indicator.variants.ts +52 -0
- package/vendor/ds/kits/base/src/steps.variants.ts +18 -0
- package/vendor/ds/kits/base/src/structured-data.ts +94 -0
- package/vendor/ds/kits/base/src/swap.variants.ts +13 -0
- package/vendor/ds/kits/base/src/switch.variants.ts +20 -0
- package/vendor/ds/kits/base/src/table.variants.ts +31 -0
- package/vendor/ds/kits/base/src/tabs.variants.ts +32 -0
- package/vendor/ds/kits/base/src/text.variants.ts +51 -0
- package/vendor/ds/kits/base/src/textarea.variants.ts +19 -0
- package/vendor/ds/kits/base/src/time-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/time-range-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/timeline.variants.ts +22 -0
- package/vendor/ds/kits/base/src/toggle-button.variants.ts +26 -0
- package/vendor/ds/kits/base/src/toggle-group.variants.ts +38 -0
- package/vendor/ds/kits/base/src/tone.ts +24 -0
- package/vendor/ds/kits/base/src/tooltip.variants.ts +14 -0
- package/vendor/ds/kits/base/src/transfer.variants.ts +5 -0
- package/vendor/ds/kits/base/src/type-roles.ts +22 -0
- package/vendor/ds/kits/base/src/window-mockup.variants.ts +18 -0
- package/vendor/ds/kits/base/svelte.config.js +6 -0
- package/vendor/ds/kits/base/test/accessible-name.test.ts +66 -0
- package/vendor/ds/kits/base/test/accordion.test.ts +81 -0
- package/vendor/ds/kits/base/test/alert-dialog.test.ts +81 -0
- package/vendor/ds/kits/base/test/alert.test.ts +75 -0
- package/vendor/ds/kits/base/test/appearance-switch.test.ts +124 -0
- package/vendor/ds/kits/base/test/avatar-media-object-carousel-failures.test.ts +25 -0
- package/vendor/ds/kits/base/test/avatar.test.ts +75 -0
- package/vendor/ds/kits/base/test/badge.test.ts +99 -0
- package/vendor/ds/kits/base/test/breadcrumbs.test.ts +45 -0
- package/vendor/ds/kits/base/test/browser-mockup.test.ts +57 -0
- package/vendor/ds/kits/base/test/browser-phone-window-mockup.test.ts +58 -0
- package/vendor/ds/kits/base/test/button.test.ts +340 -0
- package/vendor/ds/kits/base/test/calendar.test.ts +86 -0
- package/vendor/ds/kits/base/test/card-busy.test.ts +25 -0
- package/vendor/ds/kits/base/test/card-divider-aspect-ratio-failures.test.ts +29 -0
- package/vendor/ds/kits/base/test/card-divider-aspect-ratio.test.ts +201 -0
- package/vendor/ds/kits/base/test/card-media.test.ts +113 -0
- package/vendor/ds/kits/base/test/card-tone-api.test.ts +12 -0
- package/vendor/ds/kits/base/test/card-tone-contrast.test.ts +120 -0
- package/vendor/ds/kits/base/test/card-tone.test.ts +103 -0
- package/vendor/ds/kits/base/test/carousel.test.ts +63 -0
- package/vendor/ds/kits/base/test/checkbox.test.ts +165 -0
- package/vendor/ds/kits/base/test/code-block.test.ts +148 -0
- package/vendor/ds/kits/base/test/coherence.test.ts +124 -0
- package/vendor/ds/kits/base/test/combobox.test.ts +172 -0
- package/vendor/ds/kits/base/test/components.test.ts +113 -0
- package/vendor/ds/kits/base/test/consumer-check.test.ts +42 -0
- package/vendor/ds/kits/base/test/container-stack-skip-link-failures.test.ts +31 -0
- package/vendor/ds/kits/base/test/container.test.ts +41 -0
- package/vendor/ds/kits/base/test/content-mask-failures.test.ts +24 -0
- package/vendor/ds/kits/base/test/content-mask.test.ts +134 -0
- package/vendor/ds/kits/base/test/control-group.test.ts +51 -0
- package/vendor/ds/kits/base/test/control-size.test.ts +60 -0
- package/vendor/ds/kits/base/test/countdown.test.ts +70 -0
- package/vendor/ds/kits/base/test/date-field.test.ts +126 -0
- package/vendor/ds/kits/base/test/date-picker.test.ts +122 -0
- package/vendor/ds/kits/base/test/date-range-field.test.ts +96 -0
- package/vendor/ds/kits/base/test/date-range-picker.test.ts +104 -0
- package/vendor/ds/kits/base/test/description-list.test.ts +84 -0
- package/vendor/ds/kits/base/test/dialog-tooltip-failures.test.ts +52 -0
- package/vendor/ds/kits/base/test/dialog.test.ts +122 -0
- package/vendor/ds/kits/base/test/disclosure.test.ts +51 -0
- package/vendor/ds/kits/base/test/drawer-alert-dialog-appearance.test.ts +25 -0
- package/vendor/ds/kits/base/test/drawer-alert-dialog-failures.test.ts +36 -0
- package/vendor/ds/kits/base/test/drawer.test.ts +49 -0
- package/vendor/ds/kits/base/test/dropdown-menu.test.ts +344 -0
- package/vendor/ds/kits/base/test/dropdown-navigation-menu-failures.test.ts +29 -0
- package/vendor/ds/kits/base/test/elevation.test.ts +81 -0
- package/vendor/ds/kits/base/test/empty-state.test.ts +126 -0
- package/vendor/ds/kits/base/test/event-dialect.test.ts +239 -0
- package/vendor/ds/kits/base/test/field.test.ts +106 -0
- package/vendor/ds/kits/base/test/fieldset.test.ts +95 -0
- package/vendor/ds/kits/base/test/file-input.test.ts +99 -0
- package/vendor/ds/kits/base/test/fixtures/AccessibleNameConsumer.svelte +65 -0
- package/vendor/ds/kits/base/test/fixtures/BinaryChoiceConsumer.svelte +63 -0
- package/vendor/ds/kits/base/test/fixtures/BinaryChoiceContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/BindingConsumer.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/CalendarConsumer.svelte +9 -0
- package/vendor/ds/kits/base/test/fixtures/CalendarContractFailures.svelte +27 -0
- package/vendor/ds/kits/base/test/fixtures/CardActionsConsumer.svelte +12 -0
- package/vendor/ds/kits/base/test/fixtures/CardHorizontalConsumer.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/CollectionStructureConsumer.svelte +37 -0
- package/vendor/ds/kits/base/test/fixtures/CollectionStructureContractFailures.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/ComboboxConsumer.svelte +43 -0
- package/vendor/ds/kits/base/test/fixtures/ComboboxContractFailures.svelte +27 -0
- package/vendor/ds/kits/base/test/fixtures/ContainerStackSkipLinkFailures.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/ContentMaskConsumer.svelte +25 -0
- package/vendor/ds/kits/base/test/fixtures/ContentMaskContractFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/ControlledDialogConsumer.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/DateEntryConsumer.svelte +45 -0
- package/vendor/ds/kits/base/test/fixtures/DateEntryContractFailures.svelte +31 -0
- package/vendor/ds/kits/base/test/fixtures/DatePickerConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/DatePickerContractFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/DialogTooltipBehaviorFailures.svelte +33 -0
- package/vendor/ds/kits/base/test/fixtures/DisclosureFamilyConsumer.svelte +68 -0
- package/vendor/ds/kits/base/test/fixtures/DisclosureFamilyContractFailures.svelte +21 -0
- package/vendor/ds/kits/base/test/fixtures/DrawerAlertDialogBehaviorFailures.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/DrawerAlertDialogConsumer.svelte +18 -0
- package/vendor/ds/kits/base/test/fixtures/FieldInputAccessibilityFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/FieldInputConsumer.svelte +33 -0
- package/vendor/ds/kits/base/test/fixtures/FormScaffoldingConsumer.svelte +55 -0
- package/vendor/ds/kits/base/test/fixtures/FormScaffoldingFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkBase.svelte +52 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkChoices.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkCodeActions.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkComposition.svelte +36 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkEditReveal.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkField.svelte +10 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkIdentityControls.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkInput.svelte +8 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkManaged.svelte +43 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkMedia.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkNativeControls.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkNumericEntry.svelte +12 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkPrimitive.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkReadings.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkSlides.svelte +31 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkTextarea.svelte +8 -0
- package/vendor/ds/kits/base/test/fixtures/InlineTextConsumer.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/InlineTextContractFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/LayoutConsumer.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/MediaPresentationConsumer.svelte +41 -0
- package/vendor/ds/kits/base/test/fixtures/MediaPresentationContractFailures.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/MenuBehaviorFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/MockupConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/MockupContractFailures.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/NavbarMasthead.svelte +55 -0
- package/vendor/ds/kits/base/test/fixtures/NavigationScopeConsumer.svelte +40 -0
- package/vendor/ds/kits/base/test/fixtures/NotificationEmptyStateConsumer.svelte +28 -0
- package/vendor/ds/kits/base/test/fixtures/NotificationEmptyStateContractFailures.svelte +21 -0
- package/vendor/ds/kits/base/test/fixtures/NumberFieldConsumer.svelte +9 -0
- package/vendor/ds/kits/base/test/fixtures/NumericChronologyConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/NumericChronologyContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/Operational.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/PopoverLinkPreviewFailures.svelte +38 -0
- package/vendor/ds/kits/base/test/fixtures/ProgressFeedbackConsumer.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/ProgressLoadingContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/RangePressedConsumer.svelte +67 -0
- package/vendor/ds/kits/base/test/fixtures/RangePressedContractFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/RevealAppearanceConsumer.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/SpecializedEntryConsumer.svelte +56 -0
- package/vendor/ds/kits/base/test/fixtures/SpecializedEntryContractFailures.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/StatusVocabularyConsumer.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/StatusVocabularyContractFailures.svelte +5 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceControlsConsumer.svelte +35 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceControlsContractFailures.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceSeparationConsumer.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceSeparationContractFailures.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/TableConsumer.svelte +25 -0
- package/vendor/ds/kits/base/test/fixtures/TableContractFailures.svelte +22 -0
- package/vendor/ds/kits/base/test/fixtures/TabsFragmentConsumer.svelte +18 -0
- package/vendor/ds/kits/base/test/fixtures/TestGlyph.svelte +22 -0
- package/vendor/ds/kits/base/test/fixtures/TextareaSelectConsumer.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/TextareaSelectContractFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/TimeEntryConsumer.svelte +45 -0
- package/vendor/ds/kits/base/test/fixtures/TimeEntryContractFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/TooltipChildConsumer.svelte +10 -0
- package/vendor/ds/kits/base/test/fixtures/UncontrolledFieldConsumer.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/WayfindingConsumer.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/WayfindingContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/alert-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/binary-choice-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/button-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/calendar-consumer.ts +7 -0
- package/vendor/ds/kits/base/test/fixtures/collection-structure-consumer.ts +17 -0
- package/vendor/ds/kits/base/test/fixtures/combobox-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/content-mask-consumer.ts +10 -0
- package/vendor/ds/kits/base/test/fixtures/date-entry-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/date-picker-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/dialog-tooltip-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/disclosure-family-consumer.ts +14 -0
- package/vendor/ds/kits/base/test/fixtures/drawer-alert-dialog-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/field-input-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/form-scaffolding-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/layout-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/media-presentation-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/menu-consumer.ts +20 -0
- package/vendor/ds/kits/base/test/fixtures/mockup-consumer.ts +14 -0
- package/vendor/ds/kits/base/test/fixtures/notification-empty-state-consumer.ts +12 -0
- package/vendor/ds/kits/base/test/fixtures/numeric-chronology-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/popover-link-preview-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/progress-feedback-consumer.ts +21 -0
- package/vendor/ds/kits/base/test/fixtures/range-pressed-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/specialized-entry-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/status-vocabulary-consumer.ts +22 -0
- package/vendor/ds/kits/base/test/fixtures/surface-controls-consumer.ts +22 -0
- package/vendor/ds/kits/base/test/fixtures/surface-separation-consumer.ts +31 -0
- package/vendor/ds/kits/base/test/fixtures/textarea-select-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/time-entry-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/form.test.ts +72 -0
- package/vendor/ds/kits/base/test/framework-appearance.test.ts +53 -0
- package/vendor/ds/kits/base/test/framework-base.test.ts +128 -0
- package/vendor/ds/kits/base/test/framework-choices.test.ts +137 -0
- package/vendor/ds/kits/base/test/framework-code-actions.test.ts +123 -0
- package/vendor/ds/kits/base/test/framework-composition.test.ts +91 -0
- package/vendor/ds/kits/base/test/framework-contracts.test.ts +126 -0
- package/vendor/ds/kits/base/test/framework-edit-reveal.test.ts +183 -0
- package/vendor/ds/kits/base/test/framework-identity-controls.test.ts +162 -0
- package/vendor/ds/kits/base/test/framework-managed.test.ts +256 -0
- package/vendor/ds/kits/base/test/framework-media.test.ts +96 -0
- package/vendor/ds/kits/base/test/framework-native-controls.test.ts +156 -0
- package/vendor/ds/kits/base/test/framework-numeric-entry.test.ts +146 -0
- package/vendor/ds/kits/base/test/framework-operational.test.ts +162 -0
- package/vendor/ds/kits/base/test/framework-readings.test.ts +110 -0
- package/vendor/ds/kits/base/test/framework-slides.test.ts +100 -0
- package/vendor/ds/kits/base/test/grid-list.test.ts +64 -0
- package/vendor/ds/kits/base/test/icon.test.ts +59 -0
- package/vendor/ds/kits/base/test/image.test.ts +120 -0
- package/vendor/ds/kits/base/test/indicator.test.ts +68 -0
- package/vendor/ds/kits/base/test/inline-edit.test.ts +56 -0
- package/vendor/ds/kits/base/test/input.test.ts +82 -0
- package/vendor/ds/kits/base/test/kbd.test.ts +32 -0
- package/vendor/ds/kits/base/test/label-in-name.ts +43 -0
- package/vendor/ds/kits/base/test/label.test.ts +68 -0
- package/vendor/ds/kits/base/test/link-kbd-code-block-appearance.test.ts +31 -0
- package/vendor/ds/kits/base/test/link-preview.test.ts +80 -0
- package/vendor/ds/kits/base/test/link.test.ts +63 -0
- package/vendor/ds/kits/base/test/lint.test.ts +60 -0
- package/vendor/ds/kits/base/test/list-container.test.ts +45 -0
- package/vendor/ds/kits/base/test/list.test.ts +60 -0
- package/vendor/ds/kits/base/test/loading-indicator.test.ts +57 -0
- package/vendor/ds/kits/base/test/logo.test.ts +484 -0
- package/vendor/ds/kits/base/test/marks.test.ts +140 -0
- package/vendor/ds/kits/base/test/media-object.test.ts +58 -0
- package/vendor/ds/kits/base/test/meter.test.ts +79 -0
- package/vendor/ds/kits/base/test/mount.ts +79 -0
- package/vendor/ds/kits/base/test/navbar.test.ts +419 -0
- package/vendor/ds/kits/base/test/navigation-menu.test.ts +118 -0
- package/vendor/ds/kits/base/test/navigation-scope.test.ts +62 -0
- package/vendor/ds/kits/base/test/notification.test.ts +94 -0
- package/vendor/ds/kits/base/test/number-field.test.ts +38 -0
- package/vendor/ds/kits/base/test/one-time-code-input.test.ts +123 -0
- package/vendor/ds/kits/base/test/pagination.test.ts +50 -0
- package/vendor/ds/kits/base/test/phone-input.test.ts +95 -0
- package/vendor/ds/kits/base/test/phone-mockup.test.ts +51 -0
- package/vendor/ds/kits/base/test/popover-link-preview-failures.test.ts +43 -0
- package/vendor/ds/kits/base/test/popover.test.ts +79 -0
- package/vendor/ds/kits/base/test/progress-loading-failures.test.ts +27 -0
- package/vendor/ds/kits/base/test/progress.test.ts +70 -0
- package/vendor/ds/kits/base/test/prose.test.ts +138 -0
- package/vendor/ds/kits/base/test/quiet-control.test.ts +89 -0
- package/vendor/ds/kits/base/test/radial-progress.test.ts +52 -0
- package/vendor/ds/kits/base/test/radio-cards.test.ts +21 -0
- package/vendor/ds/kits/base/test/radio-group.test.ts +180 -0
- package/vendor/ds/kits/base/test/range-calendar.test.ts +102 -0
- package/vendor/ds/kits/base/test/rating.test.ts +98 -0
- package/vendor/ds/kits/base/test/react-accessible-name.test.ts +44 -0
- package/vendor/ds/kits/base/test/react-consumer.tsx +283 -0
- package/vendor/ds/kits/base/test/react.test.ts +110 -0
- package/vendor/ds/kits/base/test/reveal.test.ts +148 -0
- package/vendor/ds/kits/base/test/scroll-area.test.ts +58 -0
- package/vendor/ds/kits/base/test/search-select.test.ts +40 -0
- package/vendor/ds/kits/base/test/section-heading.test.ts +59 -0
- package/vendor/ds/kits/base/test/select.test.ts +125 -0
- package/vendor/ds/kits/base/test/setup-storage.ts +14 -0
- package/vendor/ds/kits/base/test/skeleton.test.ts +56 -0
- package/vendor/ds/kits/base/test/skip-link.test.ts +49 -0
- package/vendor/ds/kits/base/test/slider.test.ts +89 -0
- package/vendor/ds/kits/base/test/slides.test.ts +207 -0
- package/vendor/ds/kits/base/test/stack.test.ts +87 -0
- package/vendor/ds/kits/base/test/statistic.test.ts +37 -0
- package/vendor/ds/kits/base/test/status-indicator.test.ts +102 -0
- package/vendor/ds/kits/base/test/steps.test.ts +38 -0
- package/vendor/ds/kits/base/test/structured-data.test.ts +88 -0
- package/vendor/ds/kits/base/test/swap.test.ts +70 -0
- package/vendor/ds/kits/base/test/switch.test.ts +89 -0
- package/vendor/ds/kits/base/test/table.test.ts +108 -0
- package/vendor/ds/kits/base/test/tabs.test.ts +130 -0
- package/vendor/ds/kits/base/test/taxonomy.test.ts +41 -0
- package/vendor/ds/kits/base/test/textarea.test.ts +106 -0
- package/vendor/ds/kits/base/test/time-field.test.ts +108 -0
- package/vendor/ds/kits/base/test/time-range-field.test.ts +91 -0
- package/vendor/ds/kits/base/test/timeline.test.ts +75 -0
- package/vendor/ds/kits/base/test/toggle-button.test.ts +70 -0
- package/vendor/ds/kits/base/test/toggle-group.test.ts +177 -0
- package/vendor/ds/kits/base/test/tooltip.test.ts +61 -0
- package/vendor/ds/kits/base/test/type-primitives.test.ts +191 -0
- package/vendor/ds/kits/base/test/vocabulary-contrast.test.ts +258 -0
- package/vendor/ds/kits/base/test/wave2-bindings-overlays.test.ts +174 -0
- package/vendor/ds/kits/base/test/window-mockup.test.ts +49 -0
- package/vendor/ds/kits/base/tools/build-cli.ts +29 -0
- package/vendor/ds/kits/base/tools/lint-cli.ts +18 -0
- package/vendor/ds/kits/base/tools/paths.ts +46 -0
- package/vendor/ds/kits/base/tsconfig.consumer.json +19 -0
- package/vendor/ds/kits/base/tsconfig.json +26 -0
- package/vendor/ds/kits/base/type-ledger.json +4 -0
- package/vendor/ds/kits/base/types/marks.d.ts +20 -0
- package/vendor/ds/kits/base/vite.config.ts +29 -0
- package/vendor/ds/package.json +51 -0
- package/vendor/ds/styles/all.css +12 -0
- package/vendor/ds/styles/application.css +12 -0
- package/vendor/ds/styles/base.css +11 -0
- package/vendor/ds/theme/print.css +65 -0
- package/vendor/ds/theme/scheme-dark.css +77 -0
- package/vendor/ds/theme/scheme-light.css +78 -0
- package/vendor/ds/theme/theme-application.css +29 -0
- package/vendor/ds/theme/theme-base.css +180 -0
- package/vendor/ds/theme/theme.css +283 -0
- package/vendor/ds/tokens/density-comfortable.css +51 -0
- package/vendor/ds/tokens/density-compact.css +49 -0
- package/vendor/ds/tokens/density-spacious.css +49 -0
- package/vendor/ds/tokens/density-tiny.css +49 -0
- package/vendor/ds/tokens/tokens.css +182 -0
- package/src/lib/Kbd.svelte +0 -8
- package/src/lib/LoadingState.svelte +0 -20
- package/src/lib/NavItem.svelte +0 -53
- package/src/lib/SplitView.svelte +0 -145
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- Native control naming; content and the target id remain caller-owned. -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
|
+
import type { HTMLLabelAttributes } from "svelte/elements";
|
|
5
|
+
import { label } from "./label.variants";
|
|
6
|
+
|
|
7
|
+
interface Props extends Omit<HTMLLabelAttributes, "children" | "class"> {
|
|
8
|
+
/** The native label element for rare imperative access. */
|
|
9
|
+
ref?: HTMLLabelElement;
|
|
10
|
+
/** Extra classes merged onto the canonical label appearance. */
|
|
11
|
+
class?: string;
|
|
12
|
+
/** The label's content, usually the text naming the control it targets. */
|
|
13
|
+
children?: Snippet;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
let { ref = $bindable(), class: className, children, ...rest }: Props = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<label {...rest} bind:this={ref} class={label({ class: className })}>
|
|
20
|
+
{@render children?.()}
|
|
21
|
+
</label>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- A native link whose underline keeps it distinguishable without colour. -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
5
|
+
import { link } from "./link.variants";
|
|
6
|
+
|
|
7
|
+
interface Props extends Omit<HTMLAnchorAttributes, "children" | "class" | "href"> {
|
|
8
|
+
/** Destination of the link. Required: the element is always a native anchor. */
|
|
9
|
+
href: string;
|
|
10
|
+
/** Extra classes merged onto the canonical link appearance. */
|
|
11
|
+
class?: string;
|
|
12
|
+
/** The link text or content. */
|
|
13
|
+
children?: Snippet;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const { href, class: className, children, ...rest }: Props = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<a {...rest} {href} data-link class={link({ class: className })}>
|
|
20
|
+
{@render children?.()}
|
|
21
|
+
</a>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<!-- A native link with a collision-aware, non-focusable preview surface. -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import { portalAppearance } from "./portal-appearance.svelte";
|
|
4
|
+
import type { LinkPreviewContract } from "./core/contracts/linkpreview";
|
|
5
|
+
import type { Snippet } from "svelte";
|
|
6
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
7
|
+
import { LinkPreview as Bits } from "bits-ui";
|
|
8
|
+
import { link } from "./link.variants";
|
|
9
|
+
import { linkPreview as linkPreviewAppearance } from "./link-preview.variants";
|
|
10
|
+
|
|
11
|
+
interface Props
|
|
12
|
+
extends LinkPreviewContract, Omit<
|
|
13
|
+
HTMLAnchorAttributes,
|
|
14
|
+
"aria-controls" | "aria-expanded" | "aria-haspopup" | "children" | "class" | "href" | "role"
|
|
15
|
+
> {
|
|
16
|
+
/** Called with the next open state (ADR 0026's open dialect). */
|
|
17
|
+
onopenchange?: (open: boolean) => void;
|
|
18
|
+
/** Optional custom link content. */
|
|
19
|
+
trigger?: Snippet;
|
|
20
|
+
/** Caller-owned preview content. */
|
|
21
|
+
children?: Snippet;
|
|
22
|
+
/** Extra classes merged onto the preview surface. */
|
|
23
|
+
class?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
href,
|
|
28
|
+
label,
|
|
29
|
+
previewLabel,
|
|
30
|
+
open = $bindable(false),
|
|
31
|
+
onopenchange,
|
|
32
|
+
openDelay = 700,
|
|
33
|
+
closeDelay = 300,
|
|
34
|
+
side = "top",
|
|
35
|
+
align = "center",
|
|
36
|
+
sideOffset = 8,
|
|
37
|
+
collisionPadding = 8,
|
|
38
|
+
trigger,
|
|
39
|
+
children,
|
|
40
|
+
class: className,
|
|
41
|
+
triggerClass,
|
|
42
|
+
...rest
|
|
43
|
+
}: Props = $props();
|
|
44
|
+
|
|
45
|
+
const uid = $props.id();
|
|
46
|
+
const contentId = `${uid}-content`;
|
|
47
|
+
const portal = portalAppearance(() => open);
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<Bits.Root bind:open onOpenChange={onopenchange} {openDelay} {closeDelay}>
|
|
51
|
+
<Bits.Trigger>
|
|
52
|
+
{#snippet child({ props })}
|
|
53
|
+
<!-- svelte-ignore a11y_no_redundant_roles (Bits assigns role=button; the override preserves native link semantics.) -->
|
|
54
|
+
<a
|
|
55
|
+
{...portal.anchor}
|
|
56
|
+
{...(rest as Record<string, unknown>)}
|
|
57
|
+
{...props}
|
|
58
|
+
{href}
|
|
59
|
+
data-link-preview-trigger
|
|
60
|
+
role="link"
|
|
61
|
+
class={link({ class: triggerClass })}
|
|
62
|
+
>
|
|
63
|
+
{#if trigger}{@render trigger()}{:else}{label}{/if}
|
|
64
|
+
</a>
|
|
65
|
+
{/snippet}
|
|
66
|
+
</Bits.Trigger>
|
|
67
|
+
|
|
68
|
+
<Bits.Portal to={portal.container}>
|
|
69
|
+
<Bits.Content
|
|
70
|
+
id={contentId}
|
|
71
|
+
{side}
|
|
72
|
+
{align}
|
|
73
|
+
{sideOffset}
|
|
74
|
+
avoidCollisions={true}
|
|
75
|
+
{collisionPadding}
|
|
76
|
+
>
|
|
77
|
+
{#snippet child({ props, wrapperProps })}
|
|
78
|
+
<div {...wrapperProps} {...portal.attributes}>
|
|
79
|
+
<div
|
|
80
|
+
{...props}
|
|
81
|
+
id={contentId}
|
|
82
|
+
data-link-preview-surface
|
|
83
|
+
data-avoid-collisions="true"
|
|
84
|
+
data-collision-padding={collisionPadding}
|
|
85
|
+
role="dialog"
|
|
86
|
+
aria-label={previewLabel}
|
|
87
|
+
class={linkPreviewAppearance({ class: className })}
|
|
88
|
+
>
|
|
89
|
+
{@render children?.()}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
{/snippet}
|
|
93
|
+
</Bits.Content>
|
|
94
|
+
</Bits.Portal>
|
|
95
|
+
</Bits.Root>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
+
import { list, type ListGap } from "./list.variants";
|
|
5
|
+
|
|
6
|
+
interface Props extends Omit<HTMLAttributes<HTMLUListElement>, "class"> {
|
|
7
|
+
/** Render an ordered list instead of the default unordered list. */
|
|
8
|
+
ordered?: boolean;
|
|
9
|
+
/** Density-owned space between items. */
|
|
10
|
+
gap?: ListGap;
|
|
11
|
+
/** Extra classes merged onto the semantic collection. */
|
|
12
|
+
class?: string;
|
|
13
|
+
/** The list items, usually `li` elements. */
|
|
14
|
+
children?: Snippet;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let { ordered = false, gap = "md", class: className, children, ...rest }: Props = $props();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
{#if ordered}
|
|
21
|
+
<ol {...(rest as Record<string, unknown>)} data-list class={list({ gap, class: className })}>
|
|
22
|
+
{@render children?.()}
|
|
23
|
+
</ol>
|
|
24
|
+
{:else}
|
|
25
|
+
<ul {...(rest as Record<string, unknown>)} data-list class={list({ gap, class: className })}>
|
|
26
|
+
{@render children?.()}
|
|
27
|
+
</ul>
|
|
28
|
+
{/if}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
+
import Card from "./Card.svelte";
|
|
5
|
+
import type { CardPadding, CardVariant } from "./card.variants";
|
|
6
|
+
|
|
7
|
+
interface Props extends Omit<HTMLAttributes<HTMLDivElement>, "class" | "title"> {
|
|
8
|
+
/** Edge treatment of the underlying Card: `outline` (the default) or `plain`. */
|
|
9
|
+
variant?: CardVariant;
|
|
10
|
+
/** Density-owned inset applied to every Card section. Defaults to `md`. */
|
|
11
|
+
padding?: CardPadding;
|
|
12
|
+
/** Header title, rendered when no `header` snippet is given. */
|
|
13
|
+
title?: string;
|
|
14
|
+
/** Supporting line under the title. */
|
|
15
|
+
description?: string;
|
|
16
|
+
/** Full control over the header. Replaces `title` and `description`. */
|
|
17
|
+
header?: Snippet;
|
|
18
|
+
/** Caller-owned actions or content rendered after the list. */
|
|
19
|
+
footer?: Snippet;
|
|
20
|
+
/** Extra classes merged onto the underlying Card surface. */
|
|
21
|
+
class?: string;
|
|
22
|
+
/** The list itself, rendered in the Card body. */
|
|
23
|
+
children?: Snippet;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
variant = "outline",
|
|
28
|
+
padding = "md",
|
|
29
|
+
title,
|
|
30
|
+
description,
|
|
31
|
+
header,
|
|
32
|
+
footer,
|
|
33
|
+
class: className,
|
|
34
|
+
children,
|
|
35
|
+
...rest
|
|
36
|
+
}: Props = $props();
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Card
|
|
40
|
+
{...rest}
|
|
41
|
+
data-list-container
|
|
42
|
+
{variant}
|
|
43
|
+
{padding}
|
|
44
|
+
{title}
|
|
45
|
+
{description}
|
|
46
|
+
{header}
|
|
47
|
+
{footer}
|
|
48
|
+
class={className}
|
|
49
|
+
>
|
|
50
|
+
{@render children?.()}
|
|
51
|
+
</Card>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
+
import {
|
|
4
|
+
loadingIndicator,
|
|
5
|
+
type LoadingIndicatorSize,
|
|
6
|
+
} from "./loading-indicator.variants";
|
|
7
|
+
|
|
8
|
+
interface Props extends Omit<HTMLAttributes<HTMLDivElement>, "class"> {
|
|
9
|
+
/** What is being waited for. */
|
|
10
|
+
label?: string;
|
|
11
|
+
/** Spinner and label size: `sm`, `md` (the default) or `lg`. */
|
|
12
|
+
size?: LoadingIndicatorSize;
|
|
13
|
+
/** Keep the announcement while visually hiding its sentence. */
|
|
14
|
+
labelHidden?: boolean;
|
|
15
|
+
/** Extra classes merged onto the indicator root. */
|
|
16
|
+
class?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
label = "Loading…",
|
|
21
|
+
size = "md",
|
|
22
|
+
labelHidden = false,
|
|
23
|
+
class: className,
|
|
24
|
+
...rest
|
|
25
|
+
}: Props = $props();
|
|
26
|
+
|
|
27
|
+
const slots = $derived(loadingIndicator({ size, labelHidden }));
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<div
|
|
31
|
+
{...(rest as Record<string, unknown>)}
|
|
32
|
+
data-loading-indicator
|
|
33
|
+
class={slots.root({ class: className })}
|
|
34
|
+
role="status"
|
|
35
|
+
aria-live="polite"
|
|
36
|
+
aria-busy="true"
|
|
37
|
+
>
|
|
38
|
+
<svg class={slots.spinner()} viewBox="0 0 24 24" aria-hidden="true">
|
|
39
|
+
<circle class={slots.track()} cx="12" cy="12" r="9" stroke-width="3" />
|
|
40
|
+
<path
|
|
41
|
+
class={slots.head()}
|
|
42
|
+
d="M21 12a9 9 0 0 0-9-9"
|
|
43
|
+
stroke-width="3"
|
|
44
|
+
stroke-linecap="round"
|
|
45
|
+
/>
|
|
46
|
+
</svg>
|
|
47
|
+
<span class={slots.label()}>{label}</span>
|
|
48
|
+
</div>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Logo — the Base Kit's first component, and a Primitive: it imports no other
|
|
3
|
+
Kit component.
|
|
4
|
+
|
|
5
|
+
The Brand owns the Mark; the DS owns the Logo that places it (ADR 0004). So
|
|
6
|
+
this component does exactly four things, and refuses rather than improvising
|
|
7
|
+
at each of them:
|
|
8
|
+
|
|
9
|
+
* it SELECTS a Mark, by layout and by the surface behind it — `on` names
|
|
10
|
+
the local background, not the global Theme, and defaults from the active
|
|
11
|
+
Theme when the caller does not say (logo.surface.ts);
|
|
12
|
+
* it REFUSES, loudly and by name, when the pinned Assets release ships no
|
|
13
|
+
such Mark (today: the icon on dark). It never falls back to the other
|
|
14
|
+
surface's drawing and never recolors one — both are licence violations,
|
|
15
|
+
so neither has a code path (logo.marks.ts);
|
|
16
|
+
* it holds the CLEARSPACE — 25% of the symbol's height — inside its own
|
|
17
|
+
box, so a caller laying the Logo out cannot place anything in it, and
|
|
18
|
+
cannot ask for the Mark without it. Below the minimum size is an error,
|
|
19
|
+
not a smaller Logo (logo.box.ts);
|
|
20
|
+
* given an `href` it becomes the accessible home link: a real <a>, an
|
|
21
|
+
aria-label saying where it goes, and a focus ring on the box — which
|
|
22
|
+
already includes the clearspace, so the ring falls outside it.
|
|
23
|
+
|
|
24
|
+
When `on` is omitted, one small observer follows root Color Scheme changes so
|
|
25
|
+
a persistent Logo swaps Mark as the document changes contrast.
|
|
26
|
+
-->
|
|
27
|
+
<script lang="ts">
|
|
28
|
+
import type { HTMLAnchorAttributes, HTMLAttributes } from "svelte/elements";
|
|
29
|
+
import { DEFAULT_SYMBOL_PX, logoBox, px } from "./logo.box";
|
|
30
|
+
import { selectMark, type LogoLayout, type LogoSurface } from "./logo.marks";
|
|
31
|
+
import { activeSurface, observeActiveSurface } from "./logo.surface";
|
|
32
|
+
import { logo, logoMark } from "./logo.variants";
|
|
33
|
+
|
|
34
|
+
interface Common {
|
|
35
|
+
/** How the Mark is laid out. Defaults to `horizontal`. */
|
|
36
|
+
layout?: LogoLayout;
|
|
37
|
+
/**
|
|
38
|
+
* The surface behind the Mark — the LOCAL background, not the Theme. A
|
|
39
|
+
* dark hero on a light marketing page is `on="dark"`. Defaults from the
|
|
40
|
+
* active Color Scheme.
|
|
41
|
+
*/
|
|
42
|
+
on?: LogoSurface;
|
|
43
|
+
/**
|
|
44
|
+
* The symbol's height in CSS pixels — the red glyph, which is the same
|
|
45
|
+
* drawing in every layout, so one number means the same thing across
|
|
46
|
+
* layouts. The rendered box is larger by the clearspace on every side.
|
|
47
|
+
*/
|
|
48
|
+
size?: number;
|
|
49
|
+
/**
|
|
50
|
+
* When the browser should fetch the Mark. `eager` by default, because the
|
|
51
|
+
* Logo's commonest home is a masthead above the fold, where lazy would
|
|
52
|
+
* defer the one image the page is identified by. A footer Logo is the case
|
|
53
|
+
* for `lazy` — and it is the caller's to make, because the component
|
|
54
|
+
* cannot see where it was placed.
|
|
55
|
+
*/
|
|
56
|
+
loading?: "eager" | "lazy";
|
|
57
|
+
/**
|
|
58
|
+
* How the Mark's fetch is prioritised against the rest of the page. Left
|
|
59
|
+
* to the browser by default; `high` is for the masthead Logo that should
|
|
60
|
+
* not queue behind content below it.
|
|
61
|
+
*/
|
|
62
|
+
fetchpriority?: "high" | "low" | "auto";
|
|
63
|
+
/** Extra classes, merged over the component's own. */
|
|
64
|
+
class?: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Without an `href`: the pure Mark — a footer, a chatbot avatar. */
|
|
68
|
+
interface MarkMode extends Common, Omit<HTMLAttributes<HTMLSpanElement>, "class"> {
|
|
69
|
+
href?: never;
|
|
70
|
+
label?: never;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** With an `href`: the accessible home link, as a navbar wears it. */
|
|
74
|
+
interface LinkMode extends Common, Omit<HTMLAnchorAttributes, "class"> {
|
|
75
|
+
/** Where it goes. Its presence is what makes this an <a>. */
|
|
76
|
+
href: string;
|
|
77
|
+
/**
|
|
78
|
+
* What the link says it does, for anyone who cannot see the Mark. A
|
|
79
|
+
* drawing has no text to fall back on, so the label is not optional — it
|
|
80
|
+
* only has a default.
|
|
81
|
+
*/
|
|
82
|
+
label?: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
type Props = MarkMode | LinkMode;
|
|
86
|
+
|
|
87
|
+
const {
|
|
88
|
+
layout = "horizontal",
|
|
89
|
+
on,
|
|
90
|
+
size = DEFAULT_SYMBOL_PX,
|
|
91
|
+
loading = "eager",
|
|
92
|
+
fetchpriority,
|
|
93
|
+
href,
|
|
94
|
+
label = "reddb.io home",
|
|
95
|
+
class: className,
|
|
96
|
+
...rest
|
|
97
|
+
}: Props = $props();
|
|
98
|
+
|
|
99
|
+
// Both of these throw on a Logo that cannot be placed honestly: a Mark the
|
|
100
|
+
// release does not ship, and a size below the minimum. Deliberately at
|
|
101
|
+
// render, and deliberately not caught — a Logo missing from a page is a bug
|
|
102
|
+
// somebody files, and a wrong one is not.
|
|
103
|
+
let observedSurface = $state(activeSurface());
|
|
104
|
+
let markImageElement: HTMLImageElement | undefined = $state();
|
|
105
|
+
$effect(() => {
|
|
106
|
+
if (on !== undefined) return;
|
|
107
|
+
return observeActiveSurface((next) => {
|
|
108
|
+
observedSurface = next;
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
const surface = $derived(on ?? observedSurface);
|
|
113
|
+
const mark = $derived(selectMark(layout, surface));
|
|
114
|
+
const box = $derived(logoBox(mark, size));
|
|
115
|
+
|
|
116
|
+
// An SSR render has no document and therefore begins on the light technical
|
|
117
|
+
// fallback. Keep the opaque image URL synchronized explicitly when hydration
|
|
118
|
+
// discovers that the real document is dark; metadata changing without the
|
|
119
|
+
// decoded image changing would display the wrong licensed Mark.
|
|
120
|
+
$effect(() => {
|
|
121
|
+
if (markImageElement && markImageElement.src !== mark.src) {
|
|
122
|
+
markImageElement.src = mark.src;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
const tag = $derived(href !== undefined ? "a" : "span");
|
|
127
|
+
</script>
|
|
128
|
+
|
|
129
|
+
<!--
|
|
130
|
+
`rest` is spread as a plain record for the reason Button's is: its type is
|
|
131
|
+
the remainder of a two-armed union of platform props, and re-deriving that
|
|
132
|
+
against what <span> and <a> each accept is a computation TypeScript gives up
|
|
133
|
+
on. Callers are still typed where they write, at `Props`.
|
|
134
|
+
|
|
135
|
+
The clearspace is padding on this box, so the Mark's own size and the box's
|
|
136
|
+
size stay separately true: the <img> is the drawing, the padding is the space
|
|
137
|
+
the licence keeps around it, and there is no prop that removes it.
|
|
138
|
+
-->
|
|
139
|
+
<svelte:element
|
|
140
|
+
this={tag}
|
|
141
|
+
{...rest as Record<string, unknown>}
|
|
142
|
+
{href}
|
|
143
|
+
class={logo({ interactive: href !== undefined, class: className })}
|
|
144
|
+
style="padding:{px(box.clearspace)}"
|
|
145
|
+
aria-label={href !== undefined ? label : undefined}
|
|
146
|
+
data-logo-layout={layout}
|
|
147
|
+
data-logo-on={surface}
|
|
148
|
+
data-logo-mark={mark.file}
|
|
149
|
+
>
|
|
150
|
+
<!--
|
|
151
|
+
In link mode the <a> already says where it goes, so the Mark is decorative
|
|
152
|
+
and an alt would say the same thing twice. On its own the Mark IS the
|
|
153
|
+
content, and carries the Brand's name.
|
|
154
|
+
|
|
155
|
+
The fetch hints below are named props rather than part of `rest`, and that
|
|
156
|
+
is the whole reason they exist here: `rest` is spread on the BOX, so an
|
|
157
|
+
image attribute travelling in it would land on a <span> or an <a>, which
|
|
158
|
+
have no use for one — dropped without a word, leaving the caller believing
|
|
159
|
+
it took. `decoding` is fixed instead of a prop because no Logo's
|
|
160
|
+
correctness depends on the decode landing in the same frame as the markup
|
|
161
|
+
around it, which is all `sync` buys; `loading` and `fetchpriority` are the
|
|
162
|
+
caller's, because their right answer is the one fact this component cannot
|
|
163
|
+
know — where on the page it was placed.
|
|
164
|
+
-->
|
|
165
|
+
{#key mark.file}
|
|
166
|
+
<!-- The key replaces the opaque image node when the active surface changes.
|
|
167
|
+
The Brand bytes stay untouched; the browser receives the newly selected
|
|
168
|
+
asset rather than retaining the previously decoded data URL. -->
|
|
169
|
+
<img
|
|
170
|
+
bind:this={markImageElement}
|
|
171
|
+
src={mark.src}
|
|
172
|
+
alt={href !== undefined ? "" : "RedDB"}
|
|
173
|
+
width={Math.round(box.markWidth)}
|
|
174
|
+
height={Math.round(box.markHeight)}
|
|
175
|
+
style="width:{px(box.markWidth)};height:{px(box.markHeight)}"
|
|
176
|
+
class={logoMark()}
|
|
177
|
+
{loading}
|
|
178
|
+
{fetchpriority}
|
|
179
|
+
decoding="async"
|
|
180
|
+
aria-hidden={href !== undefined ? "true" : undefined}
|
|
181
|
+
/>
|
|
182
|
+
{/key}
|
|
183
|
+
</svelte:element>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- A generic media/content relationship with no page or business vocabulary. -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
5
|
+
import {
|
|
6
|
+
mediaObject,
|
|
7
|
+
type MediaObjectAlign,
|
|
8
|
+
type MediaObjectGap,
|
|
9
|
+
} from "./media-object.variants";
|
|
10
|
+
|
|
11
|
+
interface Props extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "class"> {
|
|
12
|
+
/** Caller-owned leading media, commonly an Avatar or image. */
|
|
13
|
+
media: Snippet;
|
|
14
|
+
/** Caller-owned heading, metadata, actions, and body. */
|
|
15
|
+
children: Snippet;
|
|
16
|
+
/** Cross-axis alignment of media and content. */
|
|
17
|
+
align?: MediaObjectAlign;
|
|
18
|
+
/** Density-owned separation between media and content. */
|
|
19
|
+
gap?: MediaObjectGap;
|
|
20
|
+
/** Extra classes merged onto the relationship root. */
|
|
21
|
+
class?: string;
|
|
22
|
+
/** Extra classes merged onto the wrapper around the `media` snippet, over its own. */
|
|
23
|
+
mediaClass?: string;
|
|
24
|
+
/** Extra classes merged onto the wrapper around `children`, over its own. */
|
|
25
|
+
contentClass?: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const {
|
|
29
|
+
media,
|
|
30
|
+
children,
|
|
31
|
+
align = "start",
|
|
32
|
+
gap = "md",
|
|
33
|
+
class: className,
|
|
34
|
+
mediaClass,
|
|
35
|
+
contentClass,
|
|
36
|
+
...rest
|
|
37
|
+
}: Props = $props();
|
|
38
|
+
const styles = $derived(mediaObject({ align, gap }));
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<div {...rest} data-media-object class={styles.root({ class: className })}>
|
|
42
|
+
<div data-media-object-media class={styles.media({ class: mediaClass })}>{@render media()}</div>
|
|
43
|
+
<div data-media-object-content class={styles.content({ class: contentClass })}>
|
|
44
|
+
{@render children()}
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
+
import { warnDeprecated } from "./deprecation";
|
|
4
|
+
import {
|
|
5
|
+
meter,
|
|
6
|
+
type DeprecatedMeterTone,
|
|
7
|
+
type MeterTone,
|
|
8
|
+
} from "./meter.variants";
|
|
9
|
+
import { formatPercent, normalizeRange } from "./progress.behavior";
|
|
10
|
+
|
|
11
|
+
import { segmentGeometry } from "./core/segments";
|
|
12
|
+
import { segments as segmentStyles } from "./segments.variants";
|
|
13
|
+
interface Props extends Omit<HTMLAttributes<HTMLDivElement>, "class"> {
|
|
14
|
+
/**
|
|
15
|
+
* The measured reading, clamped into `min` through `max`; becomes `aria-valuenow` and drives
|
|
16
|
+
* the fill width.
|
|
17
|
+
*/
|
|
18
|
+
value: number;
|
|
19
|
+
/** Lower bound of the scale, exposed as `aria-valuemin`; defaults to `0`. */
|
|
20
|
+
min?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Upper bound of the scale, exposed as `aria-valuemax`; defaults to `100`. A `max` not above
|
|
23
|
+
* `min` is widened to one unit.
|
|
24
|
+
*/
|
|
25
|
+
max?: number;
|
|
26
|
+
/** Accessible name of the meter, also shown beside the reading; defaults to `Meter`. */
|
|
27
|
+
label?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Formats the clamped value for the visible reading and `aria-valuetext`; defaults to a
|
|
30
|
+
* rounded percentage.
|
|
31
|
+
*/
|
|
32
|
+
formatValue?: (value: number) => string;
|
|
33
|
+
/**
|
|
34
|
+
* What the fill means: the shared tone vocabulary (ADR 0026), ink when
|
|
35
|
+
* `neutral` (the default). `primary` is deprecated for one release.
|
|
36
|
+
*/
|
|
37
|
+
tone?: MeterTone | DeprecatedMeterTone;
|
|
38
|
+
/** Arrange the track beside the reading (`inline`) or below its summary (`stacked`, the default). */
|
|
39
|
+
layout?: "stacked" | "inline";
|
|
40
|
+
/** Hide the visible label when a table column or surrounding heading supplies it. The meter retains its accessible name. */
|
|
41
|
+
labelHidden?: boolean;
|
|
42
|
+
/** Decorative divisions, bounded to 128; omitted, uses the continuous track. The exact value remains accessible. */
|
|
43
|
+
segments?: number;
|
|
44
|
+
/** Maximum segments per row; omitted, keeps one row. */
|
|
45
|
+
segmentColumns?: number;
|
|
46
|
+
/** Extra classes, merged over the root slot's own. */
|
|
47
|
+
class?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const {
|
|
51
|
+
value,
|
|
52
|
+
min = 0,
|
|
53
|
+
max = 100,
|
|
54
|
+
label = "Meter",
|
|
55
|
+
formatValue,
|
|
56
|
+
tone = "neutral",
|
|
57
|
+
layout = "stacked",
|
|
58
|
+
labelHidden = false,
|
|
59
|
+
segments,
|
|
60
|
+
segmentColumns,
|
|
61
|
+
class: className,
|
|
62
|
+
...rest
|
|
63
|
+
}: Props = $props();
|
|
64
|
+
|
|
65
|
+
const range = $derived(normalizeRange(value, min, max));
|
|
66
|
+
const valueText = $derived(
|
|
67
|
+
formatValue?.(range.value) ?? formatPercent(range),
|
|
68
|
+
);
|
|
69
|
+
const slots = $derived(meter({ tone, layout, labelHidden }));
|
|
70
|
+
|
|
71
|
+
$effect(() => {
|
|
72
|
+
if (tone === "primary") {
|
|
73
|
+
warnDeprecated(
|
|
74
|
+
"Meter",
|
|
75
|
+
'tone="primary"',
|
|
76
|
+
'tone="neutral" (ink) or the Feedback Role the reading means',
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
const discrete = $derived(
|
|
81
|
+
segments === undefined
|
|
82
|
+
? undefined
|
|
83
|
+
: segmentGeometry(segments, range.percent, segmentColumns),
|
|
84
|
+
);
|
|
85
|
+
const discreteSlots = segmentStyles();
|
|
86
|
+
</script>
|
|
87
|
+
|
|
88
|
+
<div
|
|
89
|
+
{...rest as Record<string, unknown>}
|
|
90
|
+
data-meter
|
|
91
|
+
data-tone={tone}
|
|
92
|
+
class={slots.root({ class: className })}
|
|
93
|
+
role="meter"
|
|
94
|
+
aria-label={label}
|
|
95
|
+
aria-valuemin={range.min}
|
|
96
|
+
aria-valuemax={range.max}
|
|
97
|
+
aria-valuenow={range.value}
|
|
98
|
+
aria-valuetext={valueText}
|
|
99
|
+
>
|
|
100
|
+
<div data-meter-summary class={slots.summary()} aria-hidden="true">
|
|
101
|
+
<span class={slots.label()}>{label}</span>
|
|
102
|
+
<span class={slots.value()}>{valueText}</span>
|
|
103
|
+
</div>
|
|
104
|
+
{#if discrete}
|
|
105
|
+
<div
|
|
106
|
+
data-meter-track
|
|
107
|
+
data-segmented
|
|
108
|
+
data-aggregated={discrete.aggregated || undefined}
|
|
109
|
+
class={discreteSlots.track()}
|
|
110
|
+
style:grid-template-columns={`repeat(${discrete.columns}, minmax(0, 1fr))`}
|
|
111
|
+
aria-hidden="true"
|
|
112
|
+
>
|
|
113
|
+
{#each discrete.fills as fill, i (i)}<div class={discreteSlots.cell()}>
|
|
114
|
+
<div
|
|
115
|
+
data-segment-fill
|
|
116
|
+
class={slots.indicator({ class: discreteSlots.fill() })}
|
|
117
|
+
style:width={`${fill}%`}
|
|
118
|
+
></div>
|
|
119
|
+
</div>{/each}
|
|
120
|
+
</div>
|
|
121
|
+
{:else}
|
|
122
|
+
<div data-meter-track class={slots.track()} aria-hidden="true">
|
|
123
|
+
<div
|
|
124
|
+
data-meter-indicator
|
|
125
|
+
class={slots.indicator()}
|
|
126
|
+
style:width={`${range.percent}%`}
|
|
127
|
+
></div>
|
|
128
|
+
</div>
|
|
129
|
+
{/if}
|
|
130
|
+
</div>
|