@reddb-io/ui-kit 0.3.4 → 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,20 @@
|
|
|
1
|
+
// Switch's optional appearance seam. The native checkbox supplies binary and
|
|
2
|
+
// form semantics; the moving thumb makes that state visible without color.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
|
|
6
|
+
export const switchControl = tv({
|
|
7
|
+
base: [
|
|
8
|
+
"relative h-[var(--reddb-spatial-control-height-sm)] w-[max(var(--reddb-spatial-target-min),calc(var(--reddb-spatial-switch-track-height)*1.75))] shrink-0 appearance-none",
|
|
9
|
+
"cursor-pointer rounded-full border-0 bg-transparent",
|
|
10
|
+
"after:pointer-events-none after:absolute after:start-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2 rtl:after:translate-x-1/2",
|
|
11
|
+
"after:h-[var(--reddb-spatial-switch-track-height)] after:w-[calc(var(--reddb-spatial-switch-track-height)*1.75)] after:rounded-full after:border after:border-control-edge after:bg-muted checked:after:bg-primary enabled:hover:after:border-foreground enabled:checked:hover:after:bg-primary-active",
|
|
12
|
+
"before:pointer-events-none before:absolute before:z-10 before:top-1/2 before:-translate-y-1/2 before:start-[calc(50%-var(--reddb-spatial-switch-track-height)*0.875+(var(--reddb-spatial-switch-track-height)-var(--reddb-spatial-switch-thumb-size))*0.5)]",
|
|
13
|
+
"before:h-[var(--reddb-spatial-switch-thumb-size)] before:aspect-square before:rounded-full before:bg-ink-muted checked:before:bg-on-primary before:transition-transform checked:before:translate-x-[calc(var(--reddb-spatial-switch-track-height)*0.75)] rtl:checked:before:-translate-x-[calc(var(--reddb-spatial-switch-track-height)*0.75)]",
|
|
14
|
+
"motion-reduce:before:transition-none",
|
|
15
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
16
|
+
"aria-invalid:after:border-feedback-danger-border disabled:cursor-not-allowed disabled:opacity-50",
|
|
17
|
+
].join(" "),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export type SwitchVariants = VariantProps<typeof switchControl>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Table's token-only appearance seam; native table elements own semantics.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export const table = tv({
|
|
5
|
+
slots: {
|
|
6
|
+
root: [
|
|
7
|
+
// A wide native table must not enlarge an ancestor grid/flex item's
|
|
8
|
+
// automatic minimum width. Isolate its inline intrinsic size while
|
|
9
|
+
// retaining native block sizing, sticky headers and scroll behavior.
|
|
10
|
+
"min-w-0 max-w-full overflow-x-auto rounded-md [contain:inline-size]",
|
|
11
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
12
|
+
].join(" "),
|
|
13
|
+
table: "w-full min-w-max text-left text-sm text-foreground",
|
|
14
|
+
caption: [
|
|
15
|
+
"caption-top px-[var(--reddb-spatial-inset-md)]",
|
|
16
|
+
"pb-[var(--reddb-spatial-inset-sm)] text-left font-medium text-foreground",
|
|
17
|
+
].join(" "),
|
|
18
|
+
header: "sticky top-0 z-10 border-b border-elevation-sunken-border bg-elevation-sunken-surface shadow-elevation-sunken",
|
|
19
|
+
row: "border-b border-muted",
|
|
20
|
+
head: [
|
|
21
|
+
"px-[var(--reddb-spatial-inset-md)] py-[var(--reddb-spatial-inset-sm)]",
|
|
22
|
+
"align-middle font-medium text-foreground",
|
|
23
|
+
].join(" "),
|
|
24
|
+
cell: [
|
|
25
|
+
"px-[var(--reddb-spatial-inset-md)] py-[var(--reddb-spatial-inset-sm)]",
|
|
26
|
+
"align-middle text-foreground",
|
|
27
|
+
].join(" "),
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export type TableVariants = VariantProps<typeof table>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Tabs' token-only appearance seam; Bits UI owns selection and roving focus.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export interface TabItem {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const tabs = tv({
|
|
11
|
+
slots: {
|
|
12
|
+
root: "min-w-0",
|
|
13
|
+
list: "flex flex-wrap gap-[var(--reddb-spatial-gap-sm)] border-b border-muted",
|
|
14
|
+
// The active tab wears the shared selection language (DESIGN.md,
|
|
15
|
+
// "Interactive states"): a neutral surface, full-weight ink, and a 2px
|
|
16
|
+
// ink underline on the edge it shares with the list's rule. Every
|
|
17
|
+
// trigger carries the same 2px edge — transparent until active — so
|
|
18
|
+
// selecting a tab moves nothing.
|
|
19
|
+
trigger: [
|
|
20
|
+
"-mb-px h-[var(--reddb-spatial-control-height-sm)] rounded-b-none border-0 border-b-2 border-transparent",
|
|
21
|
+
"data-[state=active]:border-foreground data-[state=active]:bg-foreground/10",
|
|
22
|
+
"data-[state=active]:font-medium data-[state=active]:text-foreground",
|
|
23
|
+
"data-[state=inactive]:text-ink-muted",
|
|
24
|
+
].join(" "),
|
|
25
|
+
content: [
|
|
26
|
+
"py-[var(--reddb-spatial-inset-md)] text-foreground",
|
|
27
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
28
|
+
].join(" "),
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export type TabsVariants = VariantProps<typeof tabs>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Text: running copy in one of the Theme's reading roles (ADR 0025).
|
|
2
|
+
//
|
|
3
|
+
// Body is the reading role; caption is the smaller, supporting one. Size, line
|
|
4
|
+
// height, tracking and weight are the role's, so Application reads at 14px,
|
|
5
|
+
// Marketing at 18px and a document at 16px with no prop changing.
|
|
6
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
7
|
+
import { typeRoleMerge } from "./type-roles";
|
|
8
|
+
|
|
9
|
+
const ROLE = {
|
|
10
|
+
body: "text-body",
|
|
11
|
+
caption: "text-caption",
|
|
12
|
+
} as const;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Ink, or the secondary reading role (`ink-muted`, never the `muted` surface).
|
|
16
|
+
* It is `ink`, not `tone`: `tone` is the semantic vocabulary (ADR 0026).
|
|
17
|
+
*/
|
|
18
|
+
const INK = {
|
|
19
|
+
default: "text-foreground",
|
|
20
|
+
muted: "text-ink-muted",
|
|
21
|
+
} as const;
|
|
22
|
+
|
|
23
|
+
export const text = tv(
|
|
24
|
+
{
|
|
25
|
+
base: "",
|
|
26
|
+
variants: { role: ROLE, ink: INK },
|
|
27
|
+
defaultVariants: { role: "body", ink: "default" },
|
|
28
|
+
},
|
|
29
|
+
typeRoleMerge,
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
export type TextVariants = VariantProps<typeof text>;
|
|
33
|
+
export type TextRole = NonNullable<TextVariants["role"]>;
|
|
34
|
+
export type TextInk = NonNullable<TextVariants["ink"]>;
|
|
35
|
+
export const TEXT_ROLES = Object.keys(ROLE) as readonly TextRole[];
|
|
36
|
+
export const TEXT_INKS = Object.keys(INK) as readonly TextInk[];
|
|
37
|
+
/** The elements Text may render: block copy, an inline run, or fine print. */
|
|
38
|
+
export const TEXT_ELEMENTS = ["p", "span", "div", "small"] as const;
|
|
39
|
+
export type TextElement = (typeof TEXT_ELEMENTS)[number];
|
|
40
|
+
|
|
41
|
+
/** A caption supports what it sits under, so it reads muted unless told otherwise. */
|
|
42
|
+
export function defaultTextInk(role: TextRole): TextInk {
|
|
43
|
+
return role === "caption" ? "muted" : "default";
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** @deprecated Text's ink is `ink` (ADR 0026); use `TextInk`. Removed next release. */
|
|
47
|
+
export type TextTone = TextInk;
|
|
48
|
+
/** @deprecated Text's ink is `ink` (ADR 0026); use `TEXT_INKS`. Removed next release. */
|
|
49
|
+
export const TEXT_TONES = TEXT_INKS;
|
|
50
|
+
/** @deprecated Text's ink is `ink` (ADR 0026); use `defaultTextInk`. Removed next release. */
|
|
51
|
+
export const defaultTextTone = defaultTextInk;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Textarea's public appearance seam. The native multiline behavior stays in
|
|
2
|
+
// the element; consumers can extend this appearance without copying it.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
import { typeRoleMerge } from "./type-roles";
|
|
6
|
+
|
|
7
|
+
export const textarea = tv({
|
|
8
|
+
base: [
|
|
9
|
+
"flex min-h-[var(--reddb-spatial-control-height-lg)] w-full resize-y",
|
|
10
|
+
"rounded-md border border-control-edge bg-background",
|
|
11
|
+
"px-[var(--reddb-spatial-inset-md)] py-[var(--reddb-spatial-inset-sm)]",
|
|
12
|
+
"text-editable-md text-foreground placeholder:text-ink-muted",
|
|
13
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
14
|
+
"aria-invalid:border-feedback-danger-border",
|
|
15
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
16
|
+
].join(" "),
|
|
17
|
+
}, typeRoleMerge);
|
|
18
|
+
|
|
19
|
+
export type TextareaVariants = VariantProps<typeof textarea>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// TimeField's appearance seam composes the canonical Field and Input skins;
|
|
2
|
+
// only the segmented clock arrangement is new.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
import { typeRoleMerge } from "./type-roles";
|
|
6
|
+
import { field } from "./field.variants";
|
|
7
|
+
import { input } from "./input.variants";
|
|
8
|
+
|
|
9
|
+
export const timeField = tv({
|
|
10
|
+
slots: {
|
|
11
|
+
root: field().root(),
|
|
12
|
+
segments: "flex items-center gap-[var(--reddb-spatial-gap-sm)]",
|
|
13
|
+
segment: [
|
|
14
|
+
input(),
|
|
15
|
+
"w-[var(--reddb-spatial-control-height-md)] px-0 text-center tabular-nums",
|
|
16
|
+
].join(" "),
|
|
17
|
+
separator: "text-foreground",
|
|
18
|
+
},
|
|
19
|
+
}, typeRoleMerge);
|
|
20
|
+
|
|
21
|
+
export type TimeFieldVariants = VariantProps<typeof timeField>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// TimeRangeField composes Fieldset and TimeField; this seam only owns the
|
|
2
|
+
// relationship between the two fields and the group's supporting text.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
import { fieldset } from "./fieldset.variants";
|
|
6
|
+
|
|
7
|
+
export const timeRangeField = tv({
|
|
8
|
+
slots: {
|
|
9
|
+
root: fieldset().root(),
|
|
10
|
+
// The pair answers to the width it is given, not the window (ADR 0021):
|
|
11
|
+
// side by side from the DS's `md` container step (28rem), stacked below.
|
|
12
|
+
// The size container is a wrapper of its own, so the native fieldset —
|
|
13
|
+
// the component's root — keeps its rendering and its intrinsic width.
|
|
14
|
+
frame: "@container/range-field min-w-0",
|
|
15
|
+
fields: "grid gap-[var(--reddb-spatial-layout-gap-sm)] @md/range-field:grid-cols-2",
|
|
16
|
+
help: fieldset().help(),
|
|
17
|
+
error: fieldset().error(),
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export type TimeRangeFieldVariants = VariantProps<typeof timeRangeField>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const timeline = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "m-0 grid list-none gap-[var(--reddb-spatial-gap-md)] ps-0 text-foreground",
|
|
6
|
+
// The connector is placed from the marker's own size, named once, instead of
|
|
7
|
+
// offsets that only happened to match a 12px dot (0.3125rem, top-4).
|
|
8
|
+
item: "group relative grid min-w-0 grid-cols-[auto_1fr] gap-[var(--reddb-spatial-gap-sm)] [--timeline-marker:0.75rem]",
|
|
9
|
+
marker: [
|
|
10
|
+
"mt-1 size-[var(--timeline-marker)] rounded-full border-2 border-foreground bg-background",
|
|
11
|
+
"after:absolute after:bottom-[calc(-1*var(--reddb-spatial-gap-md))] after:start-[calc(var(--timeline-marker)/2-0.5px)]",
|
|
12
|
+
"after:top-[calc(0.25rem+var(--timeline-marker))] after:border-s after:border-muted",
|
|
13
|
+
"group-last:after:hidden",
|
|
14
|
+
].join(" "),
|
|
15
|
+
content: "grid min-w-0 gap-[var(--reddb-spatial-gap-sm)]",
|
|
16
|
+
time: "font-mono text-sm tabular-nums text-ink-muted",
|
|
17
|
+
title: "font-medium text-foreground",
|
|
18
|
+
description: "m-0 text-sm text-ink-muted",
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export type TimelineVariants = VariantProps<typeof timeline>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// ToggleButton extends canonical Button appearance with a perceivable pressed state.
|
|
2
|
+
//
|
|
3
|
+
// Pressed is a selection, not the view's primary action, so it wears the
|
|
4
|
+
// shared selection language (DESIGN.md, "Interactive states"): a neutral
|
|
5
|
+
// surface, full-weight foreground ink, and a 2px ink indicator on the bottom
|
|
6
|
+
// edge. The indicator is ink, not the Brand red, because it is the non-text
|
|
7
|
+
// mark of the state and must hold 3:1 (WCAG 1.4.11) against the pressed
|
|
8
|
+
// surface in every appearance: the red edge measured 2.76:1 on the Marketing
|
|
9
|
+
// light surface (wave 5A). The Brand red never fills a pressed control.
|
|
10
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
11
|
+
|
|
12
|
+
export const toggleButton = tv({
|
|
13
|
+
base: [
|
|
14
|
+
"aria-pressed:bg-foreground/10 aria-pressed:text-foreground",
|
|
15
|
+
"aria-pressed:border-b-2 aria-pressed:border-b-foreground",
|
|
16
|
+
].join(" "),
|
|
17
|
+
variants: {
|
|
18
|
+
pressed: {
|
|
19
|
+
true: "font-medium",
|
|
20
|
+
false: "",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: { pressed: false },
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export type ToggleButtonVariants = VariantProps<typeof toggleButton>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// ToggleGroup's public option contract and token-only group appearance seam.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export interface ToggleGroupOption {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const toggleGroup = tv({
|
|
11
|
+
slots: {
|
|
12
|
+
root: "min-w-0",
|
|
13
|
+
// The standard segmented control (maintainer decision, 2026-10-06): the
|
|
14
|
+
// group is exactly one Button tall — `control-height-md`, its border
|
|
15
|
+
// included — and its segments sit flush, split by control-edge dividers.
|
|
16
|
+
// This deliberately drops the inset the group carried since issue 423.
|
|
17
|
+
list: [
|
|
18
|
+
"box-border inline-flex h-[var(--reddb-spatial-control-height-md)] flex-nowrap items-stretch gap-0 rounded-md",
|
|
19
|
+
"border border-control-edge",
|
|
20
|
+
].join(" "),
|
|
21
|
+
// Every option carries the 2px bottom edge the pressed indicator paints,
|
|
22
|
+
// transparent until pressed, so choosing an option moves nothing. Each
|
|
23
|
+
// option but the last draws the divider on its inline end; the outer
|
|
24
|
+
// segments follow the group's rounding so a pressed fill stays inside it.
|
|
25
|
+
option: [
|
|
26
|
+
"h-auto rounded-none border-0 border-b-2 border-e border-transparent border-e-control-edge last:border-e-0",
|
|
27
|
+
"first:rounded-s-md last:rounded-e-md",
|
|
28
|
+
"px-[var(--reddb-spatial-inset-md)] leading-normal",
|
|
29
|
+
].join(" "),
|
|
30
|
+
},
|
|
31
|
+
variants: {
|
|
32
|
+
// An error edges the whole group in the danger role, as an invalid Input
|
|
33
|
+
// is edged; the separators between options keep the control edge.
|
|
34
|
+
invalid: { true: { list: "border-feedback-danger-border" } },
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export type ToggleGroupVariants = VariantProps<typeof toggleGroup>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// The one semantic vocabulary every Kit speaks (ADR 0026).
|
|
2
|
+
//
|
|
3
|
+
// A component that expresses meaning takes `tone`, and every value resolves to
|
|
4
|
+
// the same Feedback Role in every component: `info` is feedback-info on a Card
|
|
5
|
+
// exactly as on an Alert, a Badge or a Button. How strongly a tone is drawn —
|
|
6
|
+
// filled, tinted, outlined or plain — is a separate emphasis axis owned by each
|
|
7
|
+
// component (Button's `variant`, Badge's `variant`), never a tone value, so the
|
|
8
|
+
// accent (`primary`, `brand`) is not a tone.
|
|
9
|
+
//
|
|
10
|
+
// Base declares the vocabulary once; child Kits import it from here rather
|
|
11
|
+
// than restating it, so the list cannot drift between components.
|
|
12
|
+
|
|
13
|
+
/** The tone vocabulary: neutral plus the four Feedback Roles. */
|
|
14
|
+
export const TONES = ["neutral", "info", "success", "warning", "danger"] as const;
|
|
15
|
+
export type Tone = (typeof TONES)[number];
|
|
16
|
+
|
|
17
|
+
/** The tones that name a Feedback Role (ADR 0009) — every tone except neutral. */
|
|
18
|
+
export const FEEDBACK_TONES = ["info", "success", "warning", "danger"] as const satisfies readonly Tone[];
|
|
19
|
+
export type FeedbackTone = (typeof FEEDBACK_TONES)[number];
|
|
20
|
+
|
|
21
|
+
/** Whether a value belongs to the tone vocabulary. */
|
|
22
|
+
export function isTone(value: unknown): value is Tone {
|
|
23
|
+
return typeof value === "string" && (TONES as readonly string[]).includes(value);
|
|
24
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
/** Token-only supplemental content appearance; behavior remains in Tooltip.svelte. */
|
|
4
|
+
export const tooltip = tv({
|
|
5
|
+
base: [
|
|
6
|
+
"z-50 whitespace-nowrap rounded-md border border-elevation-overlay-border bg-elevation-overlay-surface text-foreground shadow-elevation-overlay",
|
|
7
|
+
// One line of xs copy on a control-height-sm band: it measured 40px at the
|
|
8
|
+
// neutral stop with inset padding above and below.
|
|
9
|
+
"flex min-h-[var(--reddb-spatial-control-height-sm)] items-center px-[var(--reddb-spatial-inset-sm)] text-xs",
|
|
10
|
+
"motion-safe:transition-opacity motion-reduce:transition-none",
|
|
11
|
+
].join(" "),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export type TooltipVariants = VariantProps<typeof tooltip>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// The Theme's type roles as the Kit's class merger must see them (ADR 0025).
|
|
2
|
+
//
|
|
3
|
+
// tailwind-variants resolves conflicting classes with tailwind-merge, which
|
|
4
|
+
// only knows Tailwind's default type scale. To it, `text-display` is an
|
|
5
|
+
// unknown text utility and so a colour — it would silently drop either the role or
|
|
6
|
+
// `text-foreground` from the same element. Declaring the roles as font sizes
|
|
7
|
+
// keeps both, and lets a caller's `class="text-caption"` replace a role
|
|
8
|
+
// rather than stack on it.
|
|
9
|
+
|
|
10
|
+
/** The Theme's type role utilities (text-display … text-eyebrow), by role name. */
|
|
11
|
+
export const TYPE_ROLE_UTILITIES = ["display", "title", "heading", "body", "caption", "eyebrow"] as const;
|
|
12
|
+
|
|
13
|
+
/** The tailwind-variants config every type-role recipe passes as its second argument. */
|
|
14
|
+
export const typeRoleMerge = {
|
|
15
|
+
twMergeConfig: {
|
|
16
|
+
extend: {
|
|
17
|
+
classGroups: {
|
|
18
|
+
"font-size": [{ text: [...TYPE_ROLE_UTILITIES, "editable-sm", "editable-md", "editable-lg"] }],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_WINDOW_MOCKUP_RATIO = 16 / 9;
|
|
4
|
+
|
|
5
|
+
export const windowMockup = tv({
|
|
6
|
+
slots: {
|
|
7
|
+
root: "overflow-hidden rounded-lg border border-muted bg-background text-foreground shadow-lg",
|
|
8
|
+
chrome:
|
|
9
|
+
"flex min-h-[var(--reddb-spatial-control-height-sm)] items-center gap-[var(--reddb-spatial-gap-sm)] border-b border-muted bg-muted px-[var(--reddb-spatial-inset-sm)]",
|
|
10
|
+
controls: "flex shrink-0 gap-[var(--reddb-spatial-gap-sm)]",
|
|
11
|
+
control: "size-2 rounded-full bg-muted",
|
|
12
|
+
title: "min-w-0 flex-1 truncate text-center text-xs text-ink-muted",
|
|
13
|
+
balance: "w-10 shrink-0",
|
|
14
|
+
viewport: "bg-background",
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type WindowMockupVariants = VariantProps<typeof windowMockup>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// The Kit ships plain Svelte 5 source with no preprocessor: `lang="ts"` in a
|
|
2
|
+
// component is handled by the compiler itself, and styling comes from the
|
|
3
|
+
// Theme Layer's utilities rather than from anything that would need a CSS
|
|
4
|
+
// pipeline. The config exists so the Svelte plugin stops guessing.
|
|
5
|
+
/** @type {import('@sveltejs/vite-plugin-svelte').SvelteConfig} */
|
|
6
|
+
export default {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// The accessible-name contract (wave 5A), proven through the public Base subpath.
|
|
2
|
+
//
|
|
3
|
+
// Input, Textarea and Select are named by a Field, `aria-label`,
|
|
4
|
+
// `aria-labelledby` or a native <label>; an icon-only Button by `aria-label`.
|
|
5
|
+
// The props stay optional in the type (requiring them is a later, breaking
|
|
6
|
+
// decision), so a control that reaches the page unnamed warns once in
|
|
7
|
+
// development through `warnA11y`, the sibling of `warnDeprecated`.
|
|
8
|
+
|
|
9
|
+
import { afterEach, beforeEach, describe, expect, it, vi, type MockInstance } from "vitest";
|
|
10
|
+
import { warnA11y } from "@reddb-io/design-system/base";
|
|
11
|
+
import AccessibleNameConsumer from "./fixtures/AccessibleNameConsumer.svelte";
|
|
12
|
+
import { render } from "./mount";
|
|
13
|
+
|
|
14
|
+
let warn: MockInstance<typeof console.warn>;
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
warn = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
warn.mockRestore();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const warnings = () => warn.mock.calls.map(([message]) => String(message));
|
|
23
|
+
type Case = Parameters<typeof AccessibleNameConsumer>[1]["case"];
|
|
24
|
+
|
|
25
|
+
describe("the accessible-name contract", () => {
|
|
26
|
+
it.each<Case>(["field", "aria-label", "aria-labelledby", "label-for", "wrapping-label"])(
|
|
27
|
+
"stays silent for a field named through %s",
|
|
28
|
+
(which) => {
|
|
29
|
+
render(AccessibleNameConsumer, { case: which });
|
|
30
|
+
expect(warnings()).toEqual([]);
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
it.each<[Case, string]>([
|
|
35
|
+
["unnamed-input", "Input"],
|
|
36
|
+
["unnamed-textarea", "Textarea"],
|
|
37
|
+
["unnamed-select", "Select"],
|
|
38
|
+
])("warns once in development when %s has no name", (which, component) => {
|
|
39
|
+
render(AccessibleNameConsumer, { case: which });
|
|
40
|
+
render(AccessibleNameConsumer, { case: which });
|
|
41
|
+
const mine = warnings().filter((message) => message.startsWith(`[reddb ${component}]`));
|
|
42
|
+
// Two unnamed mounts, one warning: once per session.
|
|
43
|
+
expect(mine).toEqual([expect.stringMatching(/no accessible name/)]);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("warns when a Field's label is empty", () => {
|
|
47
|
+
render(AccessibleNameConsumer, { case: "empty-field" });
|
|
48
|
+
expect(warnings()).toEqual([expect.stringMatching(/^\[reddb Field\] has an empty `label`/)]);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it.each<Case>(["text-button", "sr-only-button", "labelled-icon-button"])("stays silent for a named %s", (which) => {
|
|
52
|
+
render(AccessibleNameConsumer, { case: which });
|
|
53
|
+
expect(warnings()).toEqual([]);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("warns when an icon-only Button has no aria-label", () => {
|
|
57
|
+
render(AccessibleNameConsumer, { case: "icon-button" });
|
|
58
|
+
expect(warnings()).toEqual([expect.stringMatching(/^\[reddb Button\] .*no accessible name.*aria-label/)]);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("is exported beside warnDeprecated and dedupes per component and problem", () => {
|
|
62
|
+
warnA11y("Probe", "is unnamed", "Name it.");
|
|
63
|
+
warnA11y("Probe", "is unnamed", "Name it.");
|
|
64
|
+
expect(warnings()).toEqual(["[reddb Probe] is unnamed. Name it."]);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { flushSync } from "svelte";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import DisclosureFamilyConsumer from "./fixtures/DisclosureFamilyConsumer.svelte";
|
|
4
|
+
import DisclosureFamilyContractFailures from "./fixtures/DisclosureFamilyContractFailures.svelte";
|
|
5
|
+
import { Accordion, accordion } from "./fixtures/disclosure-family-consumer";
|
|
6
|
+
import { classes, classesOf, render, rendered } from "./mount";
|
|
7
|
+
|
|
8
|
+
const ITEMS = [
|
|
9
|
+
{ value: "changes", label: "What changed?" },
|
|
10
|
+
{ value: "impact", label: "Who is affected?" },
|
|
11
|
+
] as const;
|
|
12
|
+
|
|
13
|
+
function expandedStateFailures(root: HTMLElement): string[] {
|
|
14
|
+
const controls = [...root.querySelectorAll<HTMLButtonElement>("button")];
|
|
15
|
+
return controls.length > 0 && controls.every((control) => control.hasAttribute("aria-expanded"))
|
|
16
|
+
? []
|
|
17
|
+
: ["accordion triggers do not expose expanded state"];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
describe("the Base Accordion", () => {
|
|
21
|
+
it("is available with its Extension Seam through the Base consumer subpath", () => {
|
|
22
|
+
expect(Accordion).toBeDefined();
|
|
23
|
+
expect(accordion).toBeTypeOf("function");
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("associates every trigger with a region and exposes expanded state", () => {
|
|
27
|
+
const root = rendered(render(Accordion, {
|
|
28
|
+
label: "Release questions",
|
|
29
|
+
items: ITEMS,
|
|
30
|
+
expanded: ["changes"],
|
|
31
|
+
}));
|
|
32
|
+
const controls = [...root.querySelectorAll<HTMLButtonElement>("button[aria-expanded]")];
|
|
33
|
+
|
|
34
|
+
expect(root.getAttribute("aria-label")).toBe("Release questions");
|
|
35
|
+
expect(controls.map(({ ariaExpanded }) => ariaExpanded)).toEqual(["true", "false"]);
|
|
36
|
+
expect(root.querySelector(`#${controls[0]!.getAttribute("aria-controls")}`)?.getAttribute("role")).toBe("region");
|
|
37
|
+
expect(expandedStateFailures(root)).toEqual([]);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("toggles sections while single mode keeps at most one expanded", () => {
|
|
41
|
+
const onchange = vi.fn();
|
|
42
|
+
const root = rendered(render(Accordion, {
|
|
43
|
+
label: "Release questions",
|
|
44
|
+
items: ITEMS,
|
|
45
|
+
expanded: ["changes"],
|
|
46
|
+
onchange,
|
|
47
|
+
}));
|
|
48
|
+
const controls = [...root.querySelectorAll<HTMLButtonElement>("button[aria-expanded]")];
|
|
49
|
+
|
|
50
|
+
controls[1]!.click();
|
|
51
|
+
flushSync();
|
|
52
|
+
expect(controls.map(({ ariaExpanded }) => ariaExpanded)).toEqual(["false", "true"]);
|
|
53
|
+
expect(onchange).toHaveBeenLastCalledWith(["impact"]);
|
|
54
|
+
controls[1]!.click();
|
|
55
|
+
flushSync();
|
|
56
|
+
expect(controls.map(({ ariaExpanded }) => ariaExpanded)).toEqual(["false", "false"]);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("keeps token appearance and every appearance axis live in a nested scope", () => {
|
|
60
|
+
const consumer = rendered(render(DisclosureFamilyConsumer, {}));
|
|
61
|
+
const root = consumer.querySelector<HTMLElement>("[data-appearance-scope] [data-accordion]")!;
|
|
62
|
+
const styles = accordion();
|
|
63
|
+
|
|
64
|
+
expect(classes(root)).toEqual(classesOf(styles.root()));
|
|
65
|
+
expect(classes(root.querySelector("button")!).has("min-h-[var(--reddb-spatial-control-height-sm)]")).toBe(true);
|
|
66
|
+
expect(root.hasAttribute("data-theme")).toBe(false);
|
|
67
|
+
expect(root.hasAttribute("data-color-scheme")).toBe(false);
|
|
68
|
+
expect(root.hasAttribute("data-density")).toBe(false);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe("the deliberately failing Accordion fixture", () => {
|
|
73
|
+
it("diagnoses an accordion without expanded state", () => {
|
|
74
|
+
const root = rendered(render(DisclosureFamilyContractFailures, {
|
|
75
|
+
failure: "accordion-without-expanded-state",
|
|
76
|
+
}));
|
|
77
|
+
expect(expandedStateFailures(root)).toEqual([
|
|
78
|
+
"accordion triggers do not expose expanded state",
|
|
79
|
+
]);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createRawSnippet } from "svelte";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import {
|
|
4
|
+
AlertDialog,
|
|
5
|
+
alertDialog as alertDialogAppearance,
|
|
6
|
+
alertDialogActions,
|
|
7
|
+
button,
|
|
8
|
+
} from "./fixtures/drawer-alert-dialog-consumer";
|
|
9
|
+
import { classes, classesOf, render } from "./mount";
|
|
10
|
+
|
|
11
|
+
function text(content: string) {
|
|
12
|
+
return createRawSnippet(() => ({ render: () => `<p>${content}</p>` }));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
describe("the Base AlertDialog", () => {
|
|
16
|
+
it("keeps destructive confirmation open when the outside surface is clicked", () => {
|
|
17
|
+
const root = render(AlertDialog, {
|
|
18
|
+
triggerLabel: "Delete deployment",
|
|
19
|
+
title: "Delete deployment?",
|
|
20
|
+
confirmLabel: "Delete",
|
|
21
|
+
children: text("This cannot be undone."),
|
|
22
|
+
});
|
|
23
|
+
root.querySelector<HTMLButtonElement>("[data-dialog-trigger]")!.click();
|
|
24
|
+
const dialog = root.querySelector<HTMLDialogElement>("dialog")!;
|
|
25
|
+
|
|
26
|
+
expect(dialog.getAttribute("role")).toBe("alertdialog");
|
|
27
|
+
dialog.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
28
|
+
expect(dialog.open).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("focuses the safe action and restores invoking focus after either decision", () => {
|
|
32
|
+
const onconfirm = vi.fn();
|
|
33
|
+
const root = render(AlertDialog, {
|
|
34
|
+
triggerLabel: "Delete deployment",
|
|
35
|
+
title: "Delete deployment?",
|
|
36
|
+
confirmLabel: "Delete",
|
|
37
|
+
cancelLabel: "Keep deployment",
|
|
38
|
+
onconfirm,
|
|
39
|
+
children: text("This cannot be undone."),
|
|
40
|
+
});
|
|
41
|
+
const trigger = root.querySelector<HTMLButtonElement>("[data-dialog-trigger]")!;
|
|
42
|
+
trigger.focus();
|
|
43
|
+
trigger.click();
|
|
44
|
+
const dialog = root.querySelector<HTMLDialogElement>("dialog")!;
|
|
45
|
+
const cancel = root.querySelector<HTMLButtonElement>("[data-alert-dialog-cancel]")!;
|
|
46
|
+
|
|
47
|
+
expect(document.activeElement).toBe(cancel);
|
|
48
|
+
cancel.click();
|
|
49
|
+
expect(dialog.open).toBe(false);
|
|
50
|
+
expect(document.activeElement).toBe(trigger);
|
|
51
|
+
expect(onconfirm).not.toHaveBeenCalled();
|
|
52
|
+
|
|
53
|
+
trigger.click();
|
|
54
|
+
root.querySelector<HTMLButtonElement>("[data-alert-dialog-confirm]")!.click();
|
|
55
|
+
expect(dialog.open).toBe(false);
|
|
56
|
+
expect(document.activeElement).toBe(trigger);
|
|
57
|
+
expect(onconfirm).toHaveBeenCalledTimes(1);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("wears its exported token appearance and canonical Button actions", () => {
|
|
61
|
+
const root = render(AlertDialog, {
|
|
62
|
+
triggerLabel: "Delete deployment",
|
|
63
|
+
title: "Delete deployment?",
|
|
64
|
+
confirmLabel: "Delete",
|
|
65
|
+
class: "consumer-alert-dialog",
|
|
66
|
+
});
|
|
67
|
+
const dialog = root.querySelector("dialog")!;
|
|
68
|
+
const actions = root.querySelector("[data-alert-dialog-actions]")!;
|
|
69
|
+
const cancel = root.querySelector("[data-alert-dialog-cancel]")!;
|
|
70
|
+
const confirm = root.querySelector("[data-alert-dialog-confirm]")!;
|
|
71
|
+
|
|
72
|
+
expect(classes(dialog)).toEqual(
|
|
73
|
+
classesOf(alertDialogAppearance({ class: "consumer-alert-dialog" })),
|
|
74
|
+
);
|
|
75
|
+
expect(classes(actions)).toEqual(classesOf(alertDialogActions()));
|
|
76
|
+
expect(classes(actions).has("gap-[var(--reddb-spatial-gap-md)]")).toBe(true);
|
|
77
|
+
expect(classes(cancel)).toEqual(classesOf(button({ variant: "secondary", size: "sm" })));
|
|
78
|
+
expect(classes(confirm)).toEqual(classesOf(button({ variant: "primary", tone: "danger", size: "sm" })));
|
|
79
|
+
expect(classes(dialog).has("motion-reduce:transition-none")).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
});
|