@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,43 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const reveal = tv({
|
|
4
|
+
base: [
|
|
5
|
+
"opacity-0 will-change-[opacity,transform]",
|
|
6
|
+
"[transform:translate3d(var(--reveal-x),var(--reveal-y),0)]",
|
|
7
|
+
"motion-reduce:!opacity-100 motion-reduce:!transform-none motion-reduce:transition-none",
|
|
8
|
+
],
|
|
9
|
+
variants: {
|
|
10
|
+
direction: {
|
|
11
|
+
up: "[--reveal-x:0px] [--reveal-y:var(--reddb-spatial-inset-lg)]",
|
|
12
|
+
down: "[--reveal-x:0px] [--reveal-y:calc(-1*var(--reddb-spatial-inset-lg))]",
|
|
13
|
+
left: "[--reveal-x:calc(-1*var(--reddb-spatial-inset-lg))] [--reveal-y:0px]",
|
|
14
|
+
right: "[--reveal-x:var(--reddb-spatial-inset-lg)] [--reveal-y:0px]",
|
|
15
|
+
none: "[--reveal-x:0px] [--reveal-y:0px]",
|
|
16
|
+
},
|
|
17
|
+
path: {
|
|
18
|
+
css: "",
|
|
19
|
+
js: [
|
|
20
|
+
"transition-[opacity,transform]",
|
|
21
|
+
"[transition-duration:600ms]",
|
|
22
|
+
"[transition-delay:var(--reveal-delay)]",
|
|
23
|
+
"[transition-timing-function:cubic-bezier(0.22,1,0.36,1)]",
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
entered: {
|
|
27
|
+
true: "opacity-100 transform-none",
|
|
28
|
+
false: "",
|
|
29
|
+
},
|
|
30
|
+
debug: {
|
|
31
|
+
true: "ring-1 ring-current",
|
|
32
|
+
false: "",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
direction: "up",
|
|
37
|
+
path: "css",
|
|
38
|
+
entered: false,
|
|
39
|
+
debug: false,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export type RevealVariants = VariantProps<typeof reveal>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ScrollArea's structural overflow seam. Its inset stays a live Density role.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
const ORIENTATION = {
|
|
5
|
+
vertical: "overflow-x-hidden overflow-y-auto",
|
|
6
|
+
horizontal: "overflow-x-auto overflow-y-hidden",
|
|
7
|
+
both: "overflow-auto",
|
|
8
|
+
} as const;
|
|
9
|
+
|
|
10
|
+
export const scrollArea = tv({
|
|
11
|
+
base: [
|
|
12
|
+
"relative text-foreground",
|
|
13
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
14
|
+
].join(" "),
|
|
15
|
+
variants: {
|
|
16
|
+
orientation: ORIENTATION,
|
|
17
|
+
variant: {
|
|
18
|
+
outline: "rounded-md border border-muted bg-background p-[var(--reddb-spatial-inset-sm)]",
|
|
19
|
+
plain: "p-0 focus-visible:-outline-offset-2",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: { orientation: "vertical", variant: "outline" },
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export type ScrollAreaVariants = VariantProps<typeof scrollArea>;
|
|
26
|
+
export type ScrollAreaOrientation = NonNullable<ScrollAreaVariants["orientation"]>;
|
|
27
|
+
export const SCROLL_AREA_ORIENTATIONS = Object.keys(
|
|
28
|
+
ORIENTATION,
|
|
29
|
+
) as readonly ScrollAreaOrientation[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { tv } from "tailwind-variants";
|
|
2
|
+
import type { ComboboxOption } from "./combobox.variants";
|
|
3
|
+
|
|
4
|
+
export interface SearchSelectOption extends ComboboxOption {
|
|
5
|
+
/** Supporting text shown beneath the option label and included in search. */
|
|
6
|
+
description?: string;
|
|
7
|
+
/** Additional caller-owned search terms, such as codes or aliases. */
|
|
8
|
+
keywords?: readonly string[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** Accent-insensitive search over labels, descriptions and explicit aliases. */
|
|
12
|
+
export function searchSelectOptions(options: readonly SearchSelectOption[], query: string): readonly SearchSelectOption[] {
|
|
13
|
+
const normalize = (text: string) => text.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLocaleLowerCase();
|
|
14
|
+
const terms = normalize(query).trim().split(/\s+/).filter(Boolean);
|
|
15
|
+
return terms.length ? options.filter(option => {
|
|
16
|
+
const text = normalize([option.label, option.description, ...(option.keywords ?? [])].filter(Boolean).join(" "));
|
|
17
|
+
return terms.every(term => text.includes(term));
|
|
18
|
+
}) : options;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const searchSelect = tv({
|
|
22
|
+
slots: {
|
|
23
|
+
root: "min-w-0",
|
|
24
|
+
row: "flex min-w-0 items-center gap-[var(--reddb-spatial-gap-sm)]",
|
|
25
|
+
trigger: "min-w-0 flex-1 justify-between text-start font-regular",
|
|
26
|
+
summary: "min-w-0 truncate",
|
|
27
|
+
placeholder: "text-ink-muted",
|
|
28
|
+
content: "w-[max(20rem,var(--bits-popover-anchor-width))] max-w-[calc(100vw-2*var(--reddb-spatial-inset-md))] max-h-[min(70dvh,var(--bits-popover-content-available-height))] overflow-y-auto min-w-0 p-[var(--reddb-spatial-inset-sm)]",
|
|
29
|
+
search: "sticky top-0 z-10 mb-[var(--reddb-spatial-gap-sm)]",
|
|
30
|
+
list: "min-w-0",
|
|
31
|
+
item: "group flex min-h-[var(--reddb-spatial-control-height-md)] cursor-default items-center justify-between gap-[var(--reddb-spatial-gap-md)] rounded-md px-[var(--reddb-spatial-inset-sm)] py-[var(--reddb-spatial-inset-sm)] text-body text-foreground data-[highlighted]:bg-foreground/10 data-[selected]:font-medium data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50",
|
|
32
|
+
option: "min-w-0 break-words",
|
|
33
|
+
description: "block text-caption font-regular text-ink-muted group-data-[highlighted]:text-foreground",
|
|
34
|
+
empty: "block px-[var(--reddb-spatial-inset-sm)] py-[var(--reddb-spatial-inset-md)] text-body text-ink-muted",
|
|
35
|
+
chips: "m-0 flex list-none flex-wrap gap-[var(--reddb-spatial-gap-sm)] p-0",
|
|
36
|
+
chip: "max-w-full justify-between gap-[var(--reddb-spatial-gap-sm)] rounded-md bg-muted text-foreground",
|
|
37
|
+
clear: "aspect-square shrink-0 p-0",
|
|
38
|
+
},
|
|
39
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// SectionHeading keeps outline depth independent from visual size.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
import { typeRoleMerge } from "./type-roles";
|
|
4
|
+
|
|
5
|
+
const SIZE = {
|
|
6
|
+
sm: { title: "text-base font-medium leading-tight" },
|
|
7
|
+
md: { title: "text-lg font-medium leading-tight" },
|
|
8
|
+
lg: { title: "text-2xl font-medium leading-tight" },
|
|
9
|
+
// The Theme's display role (ADR 0025): 5xl in Base and Application, and in
|
|
10
|
+
// Marketing a size that grows to the Brand display tier with the heading's
|
|
11
|
+
// own container width (ADR 0021) rather than the window's.
|
|
12
|
+
display: {
|
|
13
|
+
title: "text-display",
|
|
14
|
+
description: "text-lg",
|
|
15
|
+
},
|
|
16
|
+
} as const;
|
|
17
|
+
|
|
18
|
+
const RULE = {
|
|
19
|
+
true: { root: "border-b border-muted pb-[var(--reddb-spatial-inset-sm)]" },
|
|
20
|
+
false: { root: "border-b border-transparent pb-0" },
|
|
21
|
+
} as const;
|
|
22
|
+
|
|
23
|
+
export const sectionHeading = tv({
|
|
24
|
+
slots: {
|
|
25
|
+
root: "@container/section-heading flex flex-wrap items-end justify-between gap-[var(--reddb-spatial-gap-lg)]",
|
|
26
|
+
text: "flex flex-col gap-[var(--reddb-spatial-gap-sm)]",
|
|
27
|
+
// Weight and line height come with each size: the display role bundles
|
|
28
|
+
// its own, which a shared class here would override.
|
|
29
|
+
title: "text-foreground",
|
|
30
|
+
description: "max-w-prose text-sm text-ink-muted",
|
|
31
|
+
actions: "flex flex-wrap items-center gap-[var(--reddb-spatial-gap-md)]",
|
|
32
|
+
},
|
|
33
|
+
variants: { size: SIZE, rule: RULE },
|
|
34
|
+
defaultVariants: { size: "md", rule: true },
|
|
35
|
+
}, typeRoleMerge);
|
|
36
|
+
|
|
37
|
+
export type SectionHeadingVariants = VariantProps<typeof sectionHeading>;
|
|
38
|
+
export type SectionHeadingSize = NonNullable<SectionHeadingVariants["size"]>;
|
|
39
|
+
export const SECTION_HEADING_SIZES = Object.keys(SIZE) as readonly SectionHeadingSize[];
|
|
40
|
+
export const SECTION_HEADING_LEVELS = [1, 2, 3, 4, 5, 6] as const;
|
|
41
|
+
export type SectionHeadingLevel = (typeof SECTION_HEADING_LEVELS)[number];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Select's public appearance seam. The component keeps the platform's own
|
|
2
|
+
// popup and keyboard model while giving the closed control a canonical skin.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
import { typeRoleMerge } from "./type-roles";
|
|
6
|
+
|
|
7
|
+
export const select = tv({
|
|
8
|
+
base: [
|
|
9
|
+
"flex w-full cursor-pointer [&[multiple]]:h-auto",
|
|
10
|
+
"rounded-md border border-control-edge bg-background",
|
|
11
|
+
"text-foreground",
|
|
12
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
13
|
+
"aria-invalid:border-feedback-danger-border",
|
|
14
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
15
|
+
].join(" "),
|
|
16
|
+
variants: {
|
|
17
|
+
// The same three steps as Button, so a field and the action beside it
|
|
18
|
+
// share one control height at every Density stop. Named `controlSize` on
|
|
19
|
+
// the component: the native \`size\` attribute is still spread through.
|
|
20
|
+
size: {
|
|
21
|
+
sm: "h-[var(--reddb-spatial-control-height-sm)] px-[var(--reddb-spatial-inset-sm)] text-editable-sm",
|
|
22
|
+
md: "h-[var(--reddb-spatial-control-height-md)] px-[var(--reddb-spatial-inset-md)] text-editable-md",
|
|
23
|
+
lg: "h-[var(--reddb-spatial-control-height-lg)] px-[var(--reddb-spatial-inset-lg)] text-editable-lg",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: { size: "md" },
|
|
27
|
+
}, typeRoleMerge);
|
|
28
|
+
|
|
29
|
+
export type SelectVariants = VariantProps<typeof select>;
|
|
30
|
+
export type SelectSize = NonNullable<SelectVariants["size"]>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
const SHAPE = {
|
|
4
|
+
text: "h-4 w-full rounded-md",
|
|
5
|
+
rectangle: "min-h-[var(--reddb-spatial-control-height-lg)] w-full rounded-md",
|
|
6
|
+
circle: "aspect-square size-12 rounded-full",
|
|
7
|
+
} as const;
|
|
8
|
+
|
|
9
|
+
export const skeleton = tv({
|
|
10
|
+
base: "bg-muted motion-safe:animate-pulse motion-reduce:opacity-75",
|
|
11
|
+
variants: { shape: SHAPE },
|
|
12
|
+
defaultVariants: { shape: "text" },
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type SkeletonVariants = VariantProps<typeof skeleton>;
|
|
16
|
+
export type SkeletonShape = NonNullable<SkeletonVariants["shape"]>;
|
|
17
|
+
export const SKELETON_SHAPES = Object.keys(SHAPE) as readonly SkeletonShape[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// The bypass is visually absent until focus, then becomes a token-painted
|
|
2
|
+
// fixed control above ordinary page content. Motion has an explicit off-ramp.
|
|
3
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
4
|
+
|
|
5
|
+
export const skipLink = tv({
|
|
6
|
+
base: [
|
|
7
|
+
"sr-only focus:not-sr-only",
|
|
8
|
+
"focus:fixed focus:start-[var(--reddb-spatial-inset-md)] focus:top-[var(--reddb-spatial-inset-md)] focus:z-50",
|
|
9
|
+
"focus:h-auto focus:w-auto focus:overflow-visible focus:whitespace-normal",
|
|
10
|
+
"focus:rounded-md focus:border focus:border-muted focus:bg-background focus:text-foreground",
|
|
11
|
+
"focus:px-[var(--reddb-spatial-inset-md)] focus:py-[var(--reddb-spatial-inset-sm)]",
|
|
12
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
13
|
+
"transition-opacity motion-reduce:transition-none",
|
|
14
|
+
].join(" "),
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export type SkipLinkVariants = VariantProps<typeof skipLink>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// SlideFrame: a fixed 16:9 frame for presentations (ADR 0027), a fixed-aspect
|
|
2
|
+
// size container (ADR 0021) whose content scales with the frame's own width.
|
|
3
|
+
//
|
|
4
|
+
// HOW CONTENT SCALES — A ZOOMED CANVAS, NOT A TRANSFORM AND NOT PER-ROLE cqi.
|
|
5
|
+
//
|
|
6
|
+
// Inside the frame sits a stage: a fixed 60rem × 33.75rem canvas (the 16:9
|
|
7
|
+
// page every slide tool uses, 13.33in at 72pt/in) that is laid out exactly once
|
|
8
|
+
// and scaled to the frame with CSS `zoom`. The zoom factor is the ratio of the
|
|
9
|
+
// frame's width to the canvas width, computed in CSS alone:
|
|
10
|
+
// `tan(atan2(100cqi, 60rem))` turns two lengths into a unitless number (atan2
|
|
11
|
+
// takes the two lengths, tan gives back their ratio), and `100cqi` is the
|
|
12
|
+
// frame's inline size because the frame root is the size container.
|
|
13
|
+
//
|
|
14
|
+
// - Why not per-role cqi type. Scaling only the type roles leaves every
|
|
15
|
+
// Density inset, gap and control height at page size: a 360px frame is
|
|
16
|
+
// 202px tall, and fixed rhythm overflows it long before the type does. The
|
|
17
|
+
// Marketing roles are already fluid against their container, so a cqi
|
|
18
|
+
// multiplier would scale them twice. A canvas scales type, rhythm, borders
|
|
19
|
+
// and nested components together, so a slide that fits at one width fits
|
|
20
|
+
// at every width.
|
|
21
|
+
// - Why not `transform: scale()`. A transform leaves the layout box at
|
|
22
|
+
// canvas size, so the frame needs a measured wrapper height, hit testing
|
|
23
|
+
// and focus rings answer to the unscaled box, and text is rasterised once
|
|
24
|
+
// and resampled. `zoom` changes the used size of everything inside, so the
|
|
25
|
+
// browser lays text out at the size it paints it — crisp at every width —
|
|
26
|
+
// and the frame's own box stays the 16:9 the page asked for.
|
|
27
|
+
//
|
|
28
|
+
// The Theme's type roles are untouched: a slide reads in the roles of whatever
|
|
29
|
+
// Theme surrounds it, measured on the canvas. Marketing's fluid display and
|
|
30
|
+
// title interpolate against the stage (a 60rem container), so on a slide they
|
|
31
|
+
// sit near their large stop at every frame width instead of shrinking twice.
|
|
32
|
+
// Without trigonometric CSS functions the zoom is ignored, and the root's
|
|
33
|
+
// aspect ratio and overflow clip keep the frame 16:9 rather than letting the
|
|
34
|
+
// canvas push the page wide.
|
|
35
|
+
//
|
|
36
|
+
// RHYTHM IS PINNED TO THE FRAME, NOT TO DENSITY. A slide is a fixed
|
|
37
|
+
// composition like a printed page: the deck an author fitted at one Density
|
|
38
|
+
// must not overflow at `spacious` on a reader's machine. The stage re-declares
|
|
39
|
+
// the layout and section tiers (ADR 0024) at the neutral stop's Brand steps,
|
|
40
|
+
// so the safe area and every layout inside a slide keep the same proportions
|
|
41
|
+
// at every Density. The component tier is not pinned: a Badge or a Button
|
|
42
|
+
// placed on a slide still follows the surrounding Density, scaled with the
|
|
43
|
+
// canvas. The frame never selects an axis — it sets no `data-density`, and a
|
|
44
|
+
// caller's own Density island inside a slide still re-resolves.
|
|
45
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
46
|
+
import { typeRoleMerge } from "./type-roles";
|
|
47
|
+
|
|
48
|
+
/** The canvas a slide is composed on, in rem: 60rem × 33.75rem (16:9). */
|
|
49
|
+
export const SLIDE_CANVAS_WIDTH_REM = 60;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The layout and section tiers on a slide, pinned to the `comfortable` stop's
|
|
53
|
+
* Brand steps (ADR 0024) so slide rhythm is the frame's, not the Density's.
|
|
54
|
+
*/
|
|
55
|
+
const PINNED_RHYTHM = [
|
|
56
|
+
"[--reddb-spatial-layout-gap-sm:var(--reddb-spacing-4)]",
|
|
57
|
+
"[--reddb-spatial-layout-gap-md:var(--reddb-spacing-6)]",
|
|
58
|
+
"[--reddb-spatial-layout-gap-lg:var(--reddb-spacing-8)]",
|
|
59
|
+
"[--reddb-spatial-section-gap:var(--reddb-spacing-16)]",
|
|
60
|
+
"[--reddb-spatial-section-inset:var(--reddb-spacing-12)]",
|
|
61
|
+
].join(" ");
|
|
62
|
+
|
|
63
|
+
/** The ground a slide is set on: the page background or the raised elevation. */
|
|
64
|
+
const SURFACE = {
|
|
65
|
+
background: { root: "bg-background after:border-muted" },
|
|
66
|
+
raised: { root: "bg-elevation-raised-surface after:border-elevation-raised-border shadow-elevation-raised" },
|
|
67
|
+
} as const;
|
|
68
|
+
|
|
69
|
+
export const slideFrame = tv(
|
|
70
|
+
{
|
|
71
|
+
slots: {
|
|
72
|
+
// The size container the stage measures. `w-full` because a size
|
|
73
|
+
// container takes its width from its parent (ADR 0021); the aspect ratio
|
|
74
|
+
// and clip hold the frame even if the zoom is unsupported. The hairline
|
|
75
|
+
// edge is drawn on an overlay, not as a border, so the frame's content
|
|
76
|
+
// box is exactly 16:9 and the canvas fills it without a sliver.
|
|
77
|
+
root: "@container/slide-frame relative block w-full min-w-0 aspect-video overflow-hidden rounded-lg text-foreground break-inside-avoid after:pointer-events-none after:absolute after:inset-0 after:rounded-lg after:border after:content-['']",
|
|
78
|
+
// The canvas, zoomed to the frame. It is itself a container, so anything
|
|
79
|
+
// composed on a slide lays out against the slide (ADR 0021).
|
|
80
|
+
stage: `@container/slide relative box-border flex w-[60rem] aspect-video flex-col [zoom:tan(atan2(100cqi,60rem))] p-[var(--reddb-spatial-section-inset)] text-body ${PINNED_RHYTHM}`,
|
|
81
|
+
// The safe title area: everything a layout places stays inside it.
|
|
82
|
+
safeArea: "relative flex min-h-0 min-w-0 flex-1 flex-col",
|
|
83
|
+
// The slide number sits in the bottom margin, outside the safe area.
|
|
84
|
+
number: "absolute inset-x-0 bottom-0 flex h-[var(--reddb-spatial-section-inset)] items-center justify-end px-[var(--reddb-spatial-section-inset)] text-caption tabular-nums text-ink-muted",
|
|
85
|
+
},
|
|
86
|
+
variants: { surface: SURFACE },
|
|
87
|
+
defaultVariants: { surface: "background" },
|
|
88
|
+
},
|
|
89
|
+
typeRoleMerge,
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
export type SlideFrameVariants = VariantProps<typeof slideFrame>;
|
|
93
|
+
export type SlideSurface = NonNullable<SlideFrameVariants["surface"]>;
|
|
94
|
+
export const SLIDE_SURFACES = Object.keys(SURFACE) as readonly SlideSurface[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// The slide layouts: TitleSlide, SectionSlide, TwoColumnSlide, FigureSlide,
|
|
2
|
+
// QuoteSlide and BulletsSlide (ADR 0027).
|
|
3
|
+
//
|
|
4
|
+
// Each is a SlideFrame with its parts placed inside the safe title area. Type
|
|
5
|
+
// comes only from the Theme's roles (ADR 0025): a slide title is display or
|
|
6
|
+
// title, supporting copy heading or body, attribution and captions caption.
|
|
7
|
+
// Rhythm comes from the layout tier (ADR 0024), which the SlideFrame pins to
|
|
8
|
+
// the frame, so a layout keeps its proportions at every Density and scales
|
|
9
|
+
// with the frame like everything else on the canvas.
|
|
10
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
11
|
+
import { typeRoleMerge } from "./type-roles";
|
|
12
|
+
|
|
13
|
+
export const slideLayout = tv(
|
|
14
|
+
{
|
|
15
|
+
slots: {
|
|
16
|
+
// The layout fills the safe area; its parts never push past it.
|
|
17
|
+
body: "flex min-h-0 min-w-0 flex-1 flex-col gap-[var(--reddb-spatial-layout-gap-lg)]",
|
|
18
|
+
// An eyebrow, title and lede read as one group.
|
|
19
|
+
header: "flex min-w-0 flex-col gap-[var(--reddb-spatial-layout-gap-sm)]",
|
|
20
|
+
// A title or section slide centres its header group in the safe area.
|
|
21
|
+
centred: "my-auto",
|
|
22
|
+
// Supporting copy under a title: the heading role in secondary ink.
|
|
23
|
+
lede: "text-heading text-ink-muted text-pretty",
|
|
24
|
+
// The presenter line or attribution at the foot of the slide.
|
|
25
|
+
foot: "mt-auto",
|
|
26
|
+
// Two equal columns that share the remaining height.
|
|
27
|
+
columns: "grid min-h-0 flex-1 grid-cols-2 gap-[var(--reddb-spatial-layout-gap-lg)]",
|
|
28
|
+
column: "flex min-h-0 min-w-0 flex-col gap-[var(--reddb-spatial-layout-gap-sm)]",
|
|
29
|
+
// A figure takes the remaining height; its caption sits under it.
|
|
30
|
+
figure: "flex min-h-0 flex-1 flex-col gap-[var(--reddb-spatial-layout-gap-sm)]",
|
|
31
|
+
figureBody: "relative min-h-0 min-w-0 flex-1",
|
|
32
|
+
// A quotation, in the title role, set as a pull quote.
|
|
33
|
+
quote: "my-auto flex min-w-0 flex-col gap-[var(--reddb-spatial-layout-gap-md)]",
|
|
34
|
+
quoteText: "text-title text-foreground text-balance",
|
|
35
|
+
// Points at the heading role, markers in secondary ink.
|
|
36
|
+
list: "flex min-w-0 list-disc flex-col gap-[var(--reddb-spatial-layout-gap-sm)] ps-[var(--reddb-spatial-layout-gap-md)] text-heading text-foreground marker:text-ink-muted",
|
|
37
|
+
item: "ps-[var(--reddb-spatial-gap-sm)] text-pretty",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
typeRoleMerge,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
export type SlideLayoutVariants = VariantProps<typeof slideLayout>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Slider's token-only appearance seam; native range semantics stay in the component.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export const slider = tv({
|
|
5
|
+
slots: {
|
|
6
|
+
root: "grid min-w-0 gap-[var(--reddb-spatial-gap-sm)]",
|
|
7
|
+
control: [
|
|
8
|
+
"h-[var(--reddb-spatial-control-height-sm)] w-full cursor-pointer accent-primary",
|
|
9
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus",
|
|
10
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
11
|
+
].join(" "),
|
|
12
|
+
output: "text-sm tabular-nums text-ink-muted",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type SliderVariants = VariantProps<typeof slider>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Stack's public appearance seam: one flow, in either direction, whose child
|
|
2
|
+
// to child rhythm is the Stack's own (ADR 0024) and is drawn from a Density
|
|
3
|
+
// role at every tier:
|
|
4
|
+
// - sm | md | lg — the component tier, for the parts of one thing;
|
|
5
|
+
// - layout-sm | layout-md | layout-lg — the layout tier, between fields,
|
|
6
|
+
// stacked groups, and a group's heading and its content;
|
|
7
|
+
// - section — the section tier, between page sections.
|
|
8
|
+
// A caller places the Stack; it never re-spaces the Stack's children.
|
|
9
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
10
|
+
|
|
11
|
+
const GAP = {
|
|
12
|
+
none: "gap-0",
|
|
13
|
+
sm: "gap-[var(--reddb-spatial-gap-sm)]",
|
|
14
|
+
md: "gap-[var(--reddb-spatial-gap-md)]",
|
|
15
|
+
lg: "gap-[var(--reddb-spatial-gap-lg)]",
|
|
16
|
+
"layout-sm": "gap-[var(--reddb-spatial-layout-gap-sm)]",
|
|
17
|
+
"layout-md": "gap-[var(--reddb-spatial-layout-gap-md)]",
|
|
18
|
+
"layout-lg": "gap-[var(--reddb-spatial-layout-gap-lg)]",
|
|
19
|
+
section: "gap-[var(--reddb-spatial-section-gap)]",
|
|
20
|
+
} as const;
|
|
21
|
+
|
|
22
|
+
/** The flow's main axis. `column` (the default) stacks; `row` runs inline. */
|
|
23
|
+
const DIRECTION = {
|
|
24
|
+
column: "flex-col",
|
|
25
|
+
row: "flex-row",
|
|
26
|
+
} as const;
|
|
27
|
+
|
|
28
|
+
/** Cross-axis alignment of the children. `stretch` is the flex default, so it adds no class. */
|
|
29
|
+
const ALIGN = {
|
|
30
|
+
stretch: "",
|
|
31
|
+
start: "items-start",
|
|
32
|
+
center: "items-center",
|
|
33
|
+
end: "items-end",
|
|
34
|
+
baseline: "items-baseline",
|
|
35
|
+
} as const;
|
|
36
|
+
|
|
37
|
+
/** Main-axis distribution of the children. `start` is the flex default. */
|
|
38
|
+
const JUSTIFY = {
|
|
39
|
+
start: "",
|
|
40
|
+
center: "justify-center",
|
|
41
|
+
end: "justify-end",
|
|
42
|
+
between: "justify-between",
|
|
43
|
+
} as const;
|
|
44
|
+
|
|
45
|
+
/** Whether children wrap onto a new line when the flow runs out of room. */
|
|
46
|
+
const WRAP = {
|
|
47
|
+
true: "flex-wrap",
|
|
48
|
+
false: "",
|
|
49
|
+
} as const;
|
|
50
|
+
|
|
51
|
+
export const stack = tv({
|
|
52
|
+
base: "flex",
|
|
53
|
+
variants: { direction: DIRECTION, gap: GAP, align: ALIGN, justify: JUSTIFY, wrap: WRAP },
|
|
54
|
+
defaultVariants: { direction: "column", gap: "layout-md", align: "stretch", justify: "start", wrap: false },
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
export type StackVariants = VariantProps<typeof stack>;
|
|
58
|
+
export type StackGap = NonNullable<StackVariants["gap"]>;
|
|
59
|
+
export type StackDirection = NonNullable<StackVariants["direction"]>;
|
|
60
|
+
export type StackAlign = NonNullable<StackVariants["align"]>;
|
|
61
|
+
export type StackJustify = NonNullable<StackVariants["justify"]>;
|
|
62
|
+
export const STACK_GAPS = Object.keys(GAP) as readonly StackGap[];
|
|
63
|
+
export const STACK_DIRECTIONS = Object.keys(DIRECTION) as readonly StackDirection[];
|
|
64
|
+
export const STACK_ALIGNMENTS = Object.keys(ALIGN) as readonly StackAlign[];
|
|
65
|
+
export const STACK_JUSTIFICATIONS = Object.keys(JUSTIFY) as readonly StackJustify[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const statistic = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "min-w-0",
|
|
6
|
+
detail: "grid gap-[var(--reddb-spatial-gap-sm)]",
|
|
7
|
+
value: "font-mono text-2xl font-medium tabular-nums text-foreground",
|
|
8
|
+
description: "text-sm text-ink-muted",
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export type StatisticVariants = VariantProps<typeof statistic>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
import { TONES, type Tone } from "./tone";
|
|
3
|
+
|
|
4
|
+
/** The tones a StatusIndicator accepts: the shared vocabulary (ADR 0026). */
|
|
5
|
+
export const STATUS_INDICATOR_TONES = TONES;
|
|
6
|
+
export type StatusIndicatorTone = Tone;
|
|
7
|
+
/** @deprecated StatusIndicator's meaning is `tone` (ADR 0026); use `STATUS_INDICATOR_TONES`. Removed next release. */
|
|
8
|
+
export const STATUS_INDICATOR_STATUSES = TONES;
|
|
9
|
+
/** @deprecated StatusIndicator's meaning is `tone` (ADR 0026); use `StatusIndicatorTone`. Removed next release. */
|
|
10
|
+
export type StatusIndicatorStatus = Tone;
|
|
11
|
+
|
|
12
|
+
// Every mark is a non-text graphic that, with the label hidden, stands in for
|
|
13
|
+
// it, so each fill holds 3:1 on every ground (WCAG 1.4.11). Neutral follows the
|
|
14
|
+
// feedback anatomy — the edge stop rings the text-grade fill — in the neutral
|
|
15
|
+
// roles: `muted` is a surface role at 8% ink (ADR 0019), 1.19:1 as a mark.
|
|
16
|
+
const TONE: Record<Tone, { mark: string }> = {
|
|
17
|
+
neutral: { mark: "border-control-edge bg-ink-muted" },
|
|
18
|
+
info: {
|
|
19
|
+
mark:
|
|
20
|
+
"border-[var(--reddb-color-feedback-info-border)] bg-[var(--reddb-color-feedback-info-foreground)]",
|
|
21
|
+
},
|
|
22
|
+
success: {
|
|
23
|
+
mark:
|
|
24
|
+
"border-[var(--reddb-color-feedback-success-border)] bg-[var(--reddb-color-feedback-success-foreground)]",
|
|
25
|
+
},
|
|
26
|
+
warning: {
|
|
27
|
+
mark:
|
|
28
|
+
"border-[var(--reddb-color-feedback-warning-border)] bg-[var(--reddb-color-feedback-warning-foreground)]",
|
|
29
|
+
},
|
|
30
|
+
danger: {
|
|
31
|
+
mark:
|
|
32
|
+
"border-[var(--reddb-color-feedback-danger-border)] bg-[var(--reddb-color-feedback-danger-foreground)]",
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const statusIndicator = tv({
|
|
37
|
+
slots: {
|
|
38
|
+
root: "inline-flex min-w-0 max-w-full items-center gap-[var(--reddb-spatial-gap-sm)] text-sm text-foreground",
|
|
39
|
+
mark: "size-2 shrink-0 rounded-full border",
|
|
40
|
+
label: "min-w-0 [overflow-wrap:anywhere]",
|
|
41
|
+
},
|
|
42
|
+
variants: {
|
|
43
|
+
tone: TONE,
|
|
44
|
+
labelled: {
|
|
45
|
+
true: { label: "" },
|
|
46
|
+
false: { label: "sr-only" },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
defaultVariants: { tone: "neutral", labelled: true },
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
export type StatusIndicatorVariants = VariantProps<typeof statusIndicator>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const steps = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "text-foreground",
|
|
6
|
+
list: "m-0 grid list-none gap-[var(--reddb-spatial-gap-md)] ps-0",
|
|
7
|
+
item: "min-w-0",
|
|
8
|
+
content: "flex items-center gap-[var(--reddb-spatial-gap-sm)]",
|
|
9
|
+
marker: [
|
|
10
|
+
"inline-flex size-[var(--reddb-spatial-control-height-sm)] shrink-0 items-center justify-center",
|
|
11
|
+
"rounded-full border border-muted text-sm",
|
|
12
|
+
].join(" "),
|
|
13
|
+
current: "font-medium text-foreground",
|
|
14
|
+
status: "text-sm text-ink-muted",
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type StepsVariants = VariantProps<typeof steps>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// Structured Data (ADR 0028): the JSON-LD a page hands to search engines.
|
|
2
|
+
//
|
|
3
|
+
// Base carries only what a Base component needs to emit its own entity — the
|
|
4
|
+
// safe serializer and the BreadcrumbList builder Breadcrumbs uses — because a
|
|
5
|
+
// Base component may not import a child Kit. The Marketing Kit builds the rest
|
|
6
|
+
// (Organization, WebSite, articles, FAQ, products) on this serializer and adds
|
|
7
|
+
// the `JsonLd` and `SeoHead` components.
|
|
8
|
+
|
|
9
|
+
/** The vocabulary every DS-built node speaks. */
|
|
10
|
+
export const SCHEMA_ORG = "https://schema.org";
|
|
11
|
+
|
|
12
|
+
/** One schema.org node: a `@type` plus its properties. */
|
|
13
|
+
export interface JsonLdNode {
|
|
14
|
+
"@context"?: typeof SCHEMA_ORG;
|
|
15
|
+
"@type": string;
|
|
16
|
+
"@id"?: string;
|
|
17
|
+
[property: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** A top-level JSON-LD document: one node, or a `@graph` of several. */
|
|
21
|
+
export type JsonLdDocument =
|
|
22
|
+
| JsonLdNode
|
|
23
|
+
| { "@context": typeof SCHEMA_ORG; "@graph": readonly JsonLdNode[] };
|
|
24
|
+
|
|
25
|
+
// Characters that could close the surrounding <script> element, open an HTML
|
|
26
|
+
// comment, or break a JavaScript string literal if the block is ever inlined.
|
|
27
|
+
// Their JSON escapes keep the parsed value identical.
|
|
28
|
+
const UNSAFE = /[<>&\u2028\u2029]/g;
|
|
29
|
+
const ESCAPES: Record<string, string> = {
|
|
30
|
+
"<": "\\u003c",
|
|
31
|
+
">": "\\u003e",
|
|
32
|
+
"&": "\\u0026",
|
|
33
|
+
"\u2028": "\\u2028",
|
|
34
|
+
"\u2029": "\\u2029",
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Serialize a JSON-LD document so it is safe inside `<script type="application/ld+json">`.
|
|
39
|
+
* Every `<`, `>` and `&` becomes its JSON unicode escape, so caller text containing
|
|
40
|
+
* `</script` or `<!--` can neither close the element nor open a comment, and
|
|
41
|
+
* `JSON.parse` still returns the original value. `undefined` properties are dropped.
|
|
42
|
+
*/
|
|
43
|
+
export function serializeJsonLd(document: JsonLdDocument): string {
|
|
44
|
+
return JSON.stringify(document).replace(UNSAFE, (character) => ESCAPES[character]!);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** The complete `<script type="application/ld+json">` element for a document, serialized safely. */
|
|
48
|
+
export function jsonLdScript(document: JsonLdDocument): string {
|
|
49
|
+
return `<script type="application/ld+json">${serializeJsonLd(document)}</script>`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** One crumb: the visible label and, except for the current page, its destination. */
|
|
53
|
+
export interface BreadcrumbListInput {
|
|
54
|
+
label: string;
|
|
55
|
+
href?: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Options for {@link breadcrumbList}. */
|
|
59
|
+
export interface BreadcrumbListOptions {
|
|
60
|
+
/** Absolute origin (`https://example.com`) that resolves root-relative `href`s. */
|
|
61
|
+
origin?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Resolve `href` against `origin` when it is root-relative; absolute URLs pass through. */
|
|
65
|
+
export function absoluteUrl(href: string, origin?: string): string {
|
|
66
|
+
if (/^[a-z][a-z\d+.-]*:/i.test(href) || origin === undefined) return href;
|
|
67
|
+
return new URL(href, origin.endsWith("/") ? origin : `${origin}/`).href;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** True when `url` is an absolute `http(s)` URL. */
|
|
71
|
+
export function isAbsoluteUrl(url: string): boolean {
|
|
72
|
+
return /^https?:\/\/[^/\s]+/i.test(url);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* A schema.org `BreadcrumbList` from Breadcrumbs-shaped items, in trail order. Each item
|
|
77
|
+
* becomes a `ListItem` with its 1-based `position`; an item without `href` (the current page)
|
|
78
|
+
* omits `item`, which schema.org allows for the last crumb.
|
|
79
|
+
*/
|
|
80
|
+
export function breadcrumbList(
|
|
81
|
+
items: readonly BreadcrumbListInput[],
|
|
82
|
+
options: BreadcrumbListOptions = {},
|
|
83
|
+
): JsonLdNode {
|
|
84
|
+
return {
|
|
85
|
+
"@context": SCHEMA_ORG,
|
|
86
|
+
"@type": "BreadcrumbList",
|
|
87
|
+
itemListElement: items.map((crumb, index) => ({
|
|
88
|
+
"@type": "ListItem",
|
|
89
|
+
position: index + 1,
|
|
90
|
+
name: crumb.label,
|
|
91
|
+
...(crumb.href === undefined ? {} : { item: absoluteUrl(crumb.href, options.origin) }),
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Swap adds only the stable one-cell boundary around ToggleButton's appearance.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export const swap = tv({
|
|
5
|
+
base: "inline-grid place-items-center",
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// A face is one grid item even when its content contains an icon and text.
|
|
9
|
+
export const swapFace = tv({
|
|
10
|
+
base: "inline-flex items-center justify-center gap-[var(--reddb-spatial-gap-md)]",
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export type SwapVariants = VariantProps<typeof swap>;
|