@reddb-io/ui-kit 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -13
- package/src/lib/Badge.svelte +7 -27
- package/src/lib/Button.svelte +10 -33
- package/src/lib/Card.svelte +5 -20
- package/src/lib/EmptyState.svelte +5 -26
- package/src/lib/ListRow.svelte +14 -49
- package/src/lib/NodeBadge.svelte +6 -14
- package/src/lib/Pill.svelte +7 -25
- package/src/lib/SectionHeading.svelte +7 -20
- package/src/lib/index.ts +7 -18
- package/src/lib/tone.ts +11 -0
- package/src/tokens/index.ts +40 -17
- package/src/tokens/styles.css +4 -0
- package/src/tokens/tokens.css +68 -89
- package/vendor/ds/assets/fonts/jetbrains-mono-variable.woff2 +0 -0
- package/vendor/ds/assets/fonts/space-grotesk-variable.woff2 +0 -0
- package/vendor/ds/assets/fonts.css +38 -0
- package/vendor/ds/design-system.receipt.json +871 -0
- package/vendor/ds/kits/app/README.md +601 -0
- package/vendor/ds/kits/app/interaction-allowlist.json +35 -0
- package/vendor/ds/kits/app/kit.json +5 -0
- package/vendor/ds/kits/app/src/composites/ActionPanel.svelte +66 -0
- package/vendor/ds/kits/app/src/composites/ActivityFeed.svelte +29 -0
- package/vendor/ds/kits/app/src/composites/ApplicationShell.svelte +99 -0
- package/vendor/ds/kits/app/src/composites/BottomNavigation.svelte +68 -0
- package/vendor/ds/kits/app/src/composites/CardHeading.svelte +44 -0
- package/vendor/ds/kits/app/src/composites/CategoryFilter.svelte +83 -0
- package/vendor/ds/kits/app/src/composites/CategoryPreview.svelte +45 -0
- package/vendor/ds/kits/app/src/composites/ChatMessage.svelte +53 -0
- package/vendor/ds/kits/app/src/composites/CheckoutForm.svelte +91 -0
- package/vendor/ds/kits/app/src/composites/CommandPalette.svelte +80 -0
- package/vendor/ds/kits/app/src/composites/ContextMenu.svelte +138 -0
- package/vendor/ds/kits/app/src/composites/Diff.svelte +146 -0
- package/vendor/ds/kits/app/src/composites/EntityInspector.svelte +40 -0
- package/vendor/ds/kits/app/src/composites/EntityJourney.svelte +60 -0
- package/vendor/ds/kits/app/src/composites/Filter.svelte +42 -0
- package/vendor/ds/kits/app/src/composites/Incentive.svelte +61 -0
- package/vendor/ds/kits/app/src/composites/Menubar.svelte +121 -0
- package/vendor/ds/kits/app/src/composites/MultiColumnLayout.svelte +51 -0
- package/vendor/ds/kits/app/src/composites/OrderHistory.svelte +70 -0
- package/vendor/ds/kits/app/src/composites/OrderSummary.svelte +60 -0
- package/vendor/ds/kits/app/src/composites/PageHeading.svelte +46 -0
- package/vendor/ds/kits/app/src/composites/PhaseSummary.svelte +38 -0
- package/vendor/ds/kits/app/src/composites/PlaybackControls.svelte +62 -0
- package/vendor/ds/kits/app/src/composites/ProductFeature.svelte +71 -0
- package/vendor/ds/kits/app/src/composites/ProductList.svelte +74 -0
- package/vendor/ds/kits/app/src/composites/ProductOverview.svelte +77 -0
- package/vendor/ds/kits/app/src/composites/ProductQuickview.svelte +62 -0
- package/vendor/ds/kits/app/src/composites/PropertyPanel.svelte +42 -0
- package/vendor/ds/kits/app/src/composites/Review.svelte +68 -0
- package/vendor/ds/kits/app/src/composites/SettingsRow.svelte +38 -0
- package/vendor/ds/kits/app/src/composites/ShoppingCart.svelte +136 -0
- package/vendor/ds/kits/app/src/composites/SidebarLayout.svelte +349 -0
- package/vendor/ds/kits/app/src/composites/SidebarNavigation.svelte +74 -0
- package/vendor/ds/kits/app/src/composites/SidebarPanel.svelte +50 -0
- package/vendor/ds/kits/app/src/composites/SidebarRail.svelte +162 -0
- package/vendor/ds/kits/app/src/composites/SpeedDial.svelte +67 -0
- package/vendor/ds/kits/app/src/composites/StoreNavigation.svelte +53 -0
- package/vendor/ds/kits/app/src/composites/TaskCard.svelte +71 -0
- package/vendor/ds/kits/app/src/composites/TaskList.svelte +52 -0
- package/vendor/ds/kits/app/src/composites/TelemetryRow.svelte +41 -0
- package/vendor/ds/kits/app/src/composites/Toolbar.svelte +67 -0
- package/vendor/ds/kits/app/src/composites/action-panel.variants.ts +12 -0
- package/vendor/ds/kits/app/src/composites/activity-feed.variants.ts +10 -0
- package/vendor/ds/kits/app/src/composites/application-shell.behavior.ts +25 -0
- package/vendor/ds/kits/app/src/composites/application-shell.variants.ts +35 -0
- package/vendor/ds/kits/app/src/composites/bottom-navigation.variants.ts +20 -0
- package/vendor/ds/kits/app/src/composites/card-heading.variants.ts +7 -0
- package/vendor/ds/kits/app/src/composites/category-filter.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/category-preview.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/chat-message.variants.ts +16 -0
- package/vendor/ds/kits/app/src/composites/checkout-form.appearance.ts +19 -0
- package/vendor/ds/kits/app/src/composites/checkout-form.variants.ts +7 -0
- package/vendor/ds/kits/app/src/composites/command-palette.behavior.ts +11 -0
- package/vendor/ds/kits/app/src/composites/command-palette.variants.ts +15 -0
- package/vendor/ds/kits/app/src/composites/command-surfaces.behavior.ts +24 -0
- package/vendor/ds/kits/app/src/composites/context-menu.variants.ts +19 -0
- package/vendor/ds/kits/app/src/composites/diff.variants.ts +31 -0
- package/vendor/ds/kits/app/src/composites/filter.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/incentive.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/main-landmark.ts +23 -0
- package/vendor/ds/kits/app/src/composites/menubar.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/multi-column-layout.variants.ts +39 -0
- package/vendor/ds/kits/app/src/composites/navigation.behavior.ts +84 -0
- package/vendor/ds/kits/app/src/composites/order-history.variants.ts +38 -0
- package/vendor/ds/kits/app/src/composites/order-summary.variants.ts +23 -0
- package/vendor/ds/kits/app/src/composites/page-heading.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/product-feature.variants.ts +37 -0
- package/vendor/ds/kits/app/src/composites/product-list.behavior.ts +4 -0
- package/vendor/ds/kits/app/src/composites/product-list.variants.ts +35 -0
- package/vendor/ds/kits/app/src/composites/product-overview.variants.ts +23 -0
- package/vendor/ds/kits/app/src/composites/product-quickview.variants.ts +21 -0
- package/vendor/ds/kits/app/src/composites/review.variants.ts +17 -0
- package/vendor/ds/kits/app/src/composites/settings-row.variants.ts +17 -0
- package/vendor/ds/kits/app/src/composites/shopping-cart.appearance.ts +32 -0
- package/vendor/ds/kits/app/src/composites/shopping-cart.variants.ts +5 -0
- package/vendor/ds/kits/app/src/composites/sidebar-layout.variants.ts +211 -0
- package/vendor/ds/kits/app/src/composites/sidebar-navigation.variants.ts +12 -0
- package/vendor/ds/kits/app/src/composites/sidebar-panel.variants.ts +13 -0
- package/vendor/ds/kits/app/src/composites/sidebar-rail.variants.ts +58 -0
- package/vendor/ds/kits/app/src/composites/speed-dial.variants.ts +22 -0
- package/vendor/ds/kits/app/src/composites/store-navigation.variants.ts +15 -0
- package/vendor/ds/kits/app/src/composites/task-list.behavior.ts +51 -0
- package/vendor/ds/kits/app/src/composites/task-list.variants.ts +18 -0
- package/vendor/ds/kits/app/src/composites/toolbar.variants.ts +27 -0
- package/vendor/ds/kits/app/src/core/category-filter.ts +4 -0
- package/vendor/ds/kits/app/src/core/checkout-form.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/actionpanel.ts +24 -0
- package/vendor/ds/kits/app/src/core/contracts/activityfeed.ts +10 -0
- package/vendor/ds/kits/app/src/core/contracts/applicationshell.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/bottomnavigation.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/cardheading.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/categoryfilter.ts +21 -0
- package/vendor/ds/kits/app/src/core/contracts/categorypreview.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/chatmessage.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/checkoutform.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/commandpalette.ts +24 -0
- package/vendor/ds/kits/app/src/core/contracts/contextmenu.ts +30 -0
- package/vendor/ds/kits/app/src/core/contracts/diff.ts +18 -0
- package/vendor/ds/kits/app/src/core/contracts/entityinspector.ts +25 -0
- package/vendor/ds/kits/app/src/core/contracts/entityjourney.ts +14 -0
- package/vendor/ds/kits/app/src/core/contracts/filter.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/incentive.ts +11 -0
- package/vendor/ds/kits/app/src/core/contracts/listrow.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/menubar.ts +28 -0
- package/vendor/ds/kits/app/src/core/contracts/multicolumnlayout.ts +7 -0
- package/vendor/ds/kits/app/src/core/contracts/navitem.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/nodebadge.ts +11 -0
- package/vendor/ds/kits/app/src/core/contracts/orderhistory.ts +25 -0
- package/vendor/ds/kits/app/src/core/contracts/ordersummary.ts +19 -0
- package/vendor/ds/kits/app/src/core/contracts/pageheading.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/phasesummary.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/pill.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/playbackcontrols.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/productfeature.ts +14 -0
- package/vendor/ds/kits/app/src/core/contracts/productlist.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/productoverview.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/productquickview.ts +16 -0
- package/vendor/ds/kits/app/src/core/contracts/propertypanel.ts +9 -0
- package/vendor/ds/kits/app/src/core/contracts/review.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/settingsrow.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/shoppingcart.ts +29 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarlayout.ts +40 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarnavigation.ts +16 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarpanel.ts +22 -0
- package/vendor/ds/kits/app/src/core/contracts/sidebarrail.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/speeddial.ts +32 -0
- package/vendor/ds/kits/app/src/core/contracts/splitview.ts +15 -0
- package/vendor/ds/kits/app/src/core/contracts/storenavigation.ts +20 -0
- package/vendor/ds/kits/app/src/core/contracts/taskcard.ts +7 -0
- package/vendor/ds/kits/app/src/core/contracts/tasklist.ts +13 -0
- package/vendor/ds/kits/app/src/core/contracts/telemetryrow.ts +17 -0
- package/vendor/ds/kits/app/src/core/contracts/toolbar.ts +25 -0
- package/vendor/ds/kits/app/src/core/diff.ts +7 -0
- package/vendor/ds/kits/app/src/core/entity-inspector.ts +26 -0
- package/vendor/ds/kits/app/src/core/entity-journey.ts +52 -0
- package/vendor/ds/kits/app/src/core/measure.ts +7 -0
- package/vendor/ds/kits/app/src/core/operational.ts +42 -0
- package/vendor/ds/kits/app/src/core/product-list.ts +16 -0
- package/vendor/ds/kits/app/src/core/settings-row.ts +9 -0
- package/vendor/ds/kits/app/src/core/shopping-cart.ts +17 -0
- package/vendor/ds/kits/app/src/core/sidebar-rail.ts +58 -0
- package/vendor/ds/kits/app/src/entity-inspector.variants.ts +14 -0
- package/vendor/ds/kits/app/src/entity-journey.variants.ts +38 -0
- package/vendor/ds/kits/app/src/index.ts +429 -0
- package/vendor/ds/kits/app/src/operational.variants.ts +20 -0
- package/vendor/ds/kits/app/src/primitives/ListRow.svelte +95 -0
- package/vendor/ds/kits/app/src/primitives/NavItem.svelte +87 -0
- package/vendor/ds/kits/app/src/primitives/NodeBadge.svelte +47 -0
- package/vendor/ds/kits/app/src/primitives/Pill.svelte +81 -0
- package/vendor/ds/kits/app/src/primitives/SplitView.svelte +148 -0
- package/vendor/ds/kits/app/src/primitives/list-row.variants.ts +82 -0
- package/vendor/ds/kits/app/src/primitives/nav-item.variants.ts +56 -0
- package/vendor/ds/kits/app/src/primitives/node-badge.variants.ts +73 -0
- package/vendor/ds/kits/app/src/primitives/pill.variants.ts +117 -0
- package/vendor/ds/kits/app/src/primitives/split-view.behavior.ts +113 -0
- package/vendor/ds/kits/app/src/primitives/split-view.variants.ts +60 -0
- package/vendor/ds/kits/app/src/recipes.ts +44 -0
- package/vendor/ds/kits/app/svelte.config.js +6 -0
- package/vendor/ds/kits/app/test/action-panel.test.ts +63 -0
- package/vendor/ds/kits/app/test/activity-feed.test.ts +74 -0
- package/vendor/ds/kits/app/test/application-shell.test.ts +147 -0
- package/vendor/ds/kits/app/test/base-contraction.test.ts +60 -0
- package/vendor/ds/kits/app/test/button-migration.test.ts +134 -0
- package/vendor/ds/kits/app/test/card-heading.test.ts +53 -0
- package/vendor/ds/kits/app/test/category-filter.test.ts +84 -0
- package/vendor/ds/kits/app/test/category-preview.test.ts +75 -0
- package/vendor/ds/kits/app/test/chat-message.test.ts +70 -0
- package/vendor/ds/kits/app/test/checkout-form.test.ts +134 -0
- package/vendor/ds/kits/app/test/coherence.test.ts +193 -0
- package/vendor/ds/kits/app/test/command-palette.test.ts +177 -0
- package/vendor/ds/kits/app/test/command-surface-failures.test.ts +28 -0
- package/vendor/ds/kits/app/test/commerce-readiness.ts +54 -0
- package/vendor/ds/kits/app/test/consumer-check.test.ts +61 -0
- package/vendor/ds/kits/app/test/context-menu.test.ts +96 -0
- package/vendor/ds/kits/app/test/density.test.ts +487 -0
- package/vendor/ds/kits/app/test/diff.test.ts +121 -0
- package/vendor/ds/kits/app/test/elevation.test.ts +77 -0
- package/vendor/ds/kits/app/test/entity-inspector.test.ts +97 -0
- package/vendor/ds/kits/app/test/entity-journey.test.ts +100 -0
- package/vendor/ds/kits/app/test/event-dialect.test.ts +183 -0
- package/vendor/ds/kits/app/test/filter.test.ts +161 -0
- package/vendor/ds/kits/app/test/fixtures/ApplicationLayoutsConsumer.svelte +26 -0
- package/vendor/ds/kits/app/test/fixtures/ApplicationLayoutsContractFailures.svelte +19 -0
- package/vendor/ds/kits/app/test/fixtures/CommandPaletteConsumer.svelte +22 -0
- package/vendor/ds/kits/app/test/fixtures/CommandPaletteContractFailures.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/CommandSurfaceContractFailures.svelte +24 -0
- package/vendor/ds/kits/app/test/fixtures/CommerceContractFailures.svelte +17 -0
- package/vendor/ds/kits/app/test/fixtures/CommerceSurfacesConsumer.svelte +30 -0
- package/vendor/ds/kits/app/test/fixtures/DiffConsumer.svelte +18 -0
- package/vendor/ds/kits/app/test/fixtures/DiffContractFailures.svelte +5 -0
- package/vendor/ds/kits/app/test/fixtures/EntityInspector.svelte +7 -0
- package/vendor/ds/kits/app/test/fixtures/EntityJourney.svelte +11 -0
- package/vendor/ds/kits/app/test/fixtures/FilterContractFailures.svelte +16 -0
- package/vendor/ds/kits/app/test/fixtures/FilterSurfacesConsumer.svelte +24 -0
- package/vendor/ds/kits/app/test/fixtures/FrameworkApp.svelte +28 -0
- package/vendor/ds/kits/app/test/fixtures/HeadingContractFailures.svelte +10 -0
- package/vendor/ds/kits/app/test/fixtures/MainOwnershipConsumer.svelte +35 -0
- package/vendor/ds/kits/app/test/fixtures/MerchandisingContractFailures.svelte +3 -0
- package/vendor/ds/kits/app/test/fixtures/MerchandisingSurfacesConsumer.svelte +28 -0
- package/vendor/ds/kits/app/test/fixtures/NavigationContractFailures.svelte +22 -0
- package/vendor/ds/kits/app/test/fixtures/NavigationSurfacesConsumer.svelte +23 -0
- package/vendor/ds/kits/app/test/fixtures/NestedSplitViewConsumer.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/Operational.svelte +34 -0
- package/vendor/ds/kits/app/test/fixtures/ProductCatalogueConsumer.svelte +58 -0
- package/vendor/ds/kits/app/test/fixtures/ProductCatalogueContractFailures.svelte +29 -0
- package/vendor/ds/kits/app/test/fixtures/SettingsRows.svelte +10 -0
- package/vendor/ds/kits/app/test/fixtures/ShellBrandComposition.svelte +52 -0
- package/vendor/ds/kits/app/test/fixtures/SocialContractFailures.svelte +20 -0
- package/vendor/ds/kits/app/test/fixtures/SocialSurfacesConsumer.svelte +43 -0
- package/vendor/ds/kits/app/test/fixtures/TestGlyph.svelte +9 -0
- package/vendor/ds/kits/app/test/fixtures/TitlingSurfacesConsumer.svelte +21 -0
- package/vendor/ds/kits/app/test/fixtures/command-surfaces-consumer.ts +14 -0
- package/vendor/ds/kits/app/test/fixtures/consumer-check/Unfixed.svelte +50 -0
- package/vendor/ds/kits/app/test/fixtures/consumer-check/tsconfig.json +4 -0
- package/vendor/ds/kits/app/test/fixtures/markers/fixture-badge.variants.ts +12 -0
- package/vendor/ds/kits/app/test/fixtures/markers/fixture-chip.variants.ts +8 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/button-only.ts +7 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/menu-only.ts +9 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/number-field-only.ts +1 -0
- package/vendor/ds/kits/app/test/fixtures/tree-shaking/task-list-only.ts +1 -0
- package/vendor/ds/kits/app/test/framework-app.test.ts +140 -0
- package/vendor/ds/kits/app/test/framework-operational.test.ts +97 -0
- package/vendor/ds/kits/app/test/heading-level.test.ts +38 -0
- package/vendor/ds/kits/app/test/incentive.test.ts +60 -0
- package/vendor/ds/kits/app/test/label-in-name.ts +43 -0
- package/vendor/ds/kits/app/test/layout-readiness.ts +49 -0
- package/vendor/ds/kits/app/test/lint.test.ts +54 -0
- package/vendor/ds/kits/app/test/list-row.test.ts +117 -0
- package/vendor/ds/kits/app/test/main-ownership.test.ts +56 -0
- package/vendor/ds/kits/app/test/markers.test.ts +94 -0
- package/vendor/ds/kits/app/test/markers.ts +94 -0
- package/vendor/ds/kits/app/test/menubar.test.ts +93 -0
- package/vendor/ds/kits/app/test/mount.ts +86 -0
- package/vendor/ds/kits/app/test/multi-column-layout.test.ts +106 -0
- package/vendor/ds/kits/app/test/nav-item.test.ts +125 -0
- package/vendor/ds/kits/app/test/navigation-markers.test.ts +31 -0
- package/vendor/ds/kits/app/test/node-badge.test.ts +81 -0
- package/vendor/ds/kits/app/test/order-history.test.ts +78 -0
- package/vendor/ds/kits/app/test/order-summary.test.ts +77 -0
- package/vendor/ds/kits/app/test/page-heading.test.ts +90 -0
- package/vendor/ds/kits/app/test/pill.test.ts +63 -0
- package/vendor/ds/kits/app/test/product-feature.test.ts +76 -0
- package/vendor/ds/kits/app/test/product-list.test.ts +95 -0
- package/vendor/ds/kits/app/test/product-overview.test.ts +92 -0
- package/vendor/ds/kits/app/test/product-quickview.test.ts +116 -0
- package/vendor/ds/kits/app/test/react-consumer.tsx +36 -0
- package/vendor/ds/kits/app/test/review.test.ts +84 -0
- package/vendor/ds/kits/app/test/settings-row.test.ts +34 -0
- package/vendor/ds/kits/app/test/shell-brand.test.ts +22 -0
- package/vendor/ds/kits/app/test/shopping-cart.test.ts +172 -0
- package/vendor/ds/kits/app/test/sidebar-layout.test.ts +133 -0
- package/vendor/ds/kits/app/test/sidebar-navigation-bottom-navigation-store-navigation.test.ts +245 -0
- package/vendor/ds/kits/app/test/sidebar-panel.test.ts +29 -0
- package/vendor/ds/kits/app/test/sidebar-rail.test.ts +320 -0
- package/vendor/ds/kits/app/test/speed-dial.test.ts +53 -0
- package/vendor/ds/kits/app/test/split-view.behavior.test.ts +137 -0
- package/vendor/ds/kits/app/test/split-view.dense-tooling.test.ts +66 -0
- package/vendor/ds/kits/app/test/split-view.test.ts +210 -0
- package/vendor/ds/kits/app/test/task-list.test.ts +26 -0
- package/vendor/ds/kits/app/test/taxonomy.test.ts +149 -0
- package/vendor/ds/kits/app/test/toolbar.test.ts +42 -0
- package/vendor/ds/kits/app/test/tree-shaking.test.ts +381 -0
- package/vendor/ds/kits/app/test/vocabulary.test.ts +182 -0
- package/vendor/ds/kits/app/tools/build-cli.ts +34 -0
- package/vendor/ds/kits/app/tools/check-cli.ts +33 -0
- package/vendor/ds/kits/app/tools/consumer-check.ts +117 -0
- package/vendor/ds/kits/app/tools/lint-cli.ts +19 -0
- package/vendor/ds/kits/app/tools/paths.ts +47 -0
- package/vendor/ds/kits/app/tsconfig.consumer.json +30 -0
- package/vendor/ds/kits/app/tsconfig.json +26 -0
- package/vendor/ds/kits/app/type-ledger.json +4 -0
- package/vendor/ds/kits/app/vite.config.ts +28 -0
- package/vendor/ds/kits/base/README.md +1482 -0
- package/vendor/ds/kits/base/interaction-allowlist.json +106 -0
- package/vendor/ds/kits/base/kit.json +4 -0
- package/vendor/ds/kits/base/src/Accordion.svelte +113 -0
- package/vendor/ds/kits/base/src/Alert.svelte +51 -0
- package/vendor/ds/kits/base/src/AlertDialog.svelte +77 -0
- package/vendor/ds/kits/base/src/AppearanceSwitch.svelte +73 -0
- package/vendor/ds/kits/base/src/AspectRatio.svelte +32 -0
- package/vendor/ds/kits/base/src/Avatar.svelte +75 -0
- package/vendor/ds/kits/base/src/Badge.svelte +63 -0
- package/vendor/ds/kits/base/src/Breadcrumbs.svelte +57 -0
- package/vendor/ds/kits/base/src/BrowserMockup.svelte +53 -0
- package/vendor/ds/kits/base/src/BulletsSlide.svelte +60 -0
- package/vendor/ds/kits/base/src/Button.svelte +123 -0
- package/vendor/ds/kits/base/src/Calendar.svelte +156 -0
- package/vendor/ds/kits/base/src/Card.svelte +213 -0
- package/vendor/ds/kits/base/src/Carousel.svelte +172 -0
- package/vendor/ds/kits/base/src/Checkbox.svelte +99 -0
- package/vendor/ds/kits/base/src/CodeBlock.svelte +113 -0
- package/vendor/ds/kits/base/src/Combobox.svelte +124 -0
- package/vendor/ds/kits/base/src/Container.svelte +29 -0
- package/vendor/ds/kits/base/src/ContentMask.svelte +32 -0
- package/vendor/ds/kits/base/src/ControlGroup.svelte +42 -0
- package/vendor/ds/kits/base/src/Countdown.svelte +55 -0
- package/vendor/ds/kits/base/src/DateField.svelte +157 -0
- package/vendor/ds/kits/base/src/DatePicker.svelte +112 -0
- package/vendor/ds/kits/base/src/DateRangeField.svelte +81 -0
- package/vendor/ds/kits/base/src/DateRangePicker.svelte +137 -0
- package/vendor/ds/kits/base/src/Deck.svelte +24 -0
- package/vendor/ds/kits/base/src/DescriptionList.svelte +40 -0
- package/vendor/ds/kits/base/src/Dialog.svelte +143 -0
- package/vendor/ds/kits/base/src/Disclosure.svelte +85 -0
- package/vendor/ds/kits/base/src/Divider.svelte +22 -0
- package/vendor/ds/kits/base/src/Drawer.svelte +17 -0
- package/vendor/ds/kits/base/src/DropdownMenu.svelte +192 -0
- package/vendor/ds/kits/base/src/EmptyState.svelte +54 -0
- package/vendor/ds/kits/base/src/Eyebrow.svelte +21 -0
- package/vendor/ds/kits/base/src/Field.svelte +75 -0
- package/vendor/ds/kits/base/src/Fieldset.svelte +70 -0
- package/vendor/ds/kits/base/src/FigureSlide.svelte +70 -0
- package/vendor/ds/kits/base/src/FileInput.svelte +104 -0
- package/vendor/ds/kits/base/src/Form.svelte +21 -0
- package/vendor/ds/kits/base/src/GridList.svelte +51 -0
- package/vendor/ds/kits/base/src/Heading.svelte +41 -0
- package/vendor/ds/kits/base/src/Icon.svelte +75 -0
- package/vendor/ds/kits/base/src/Image.svelte +133 -0
- package/vendor/ds/kits/base/src/Indicator.svelte +35 -0
- package/vendor/ds/kits/base/src/InlineEdit.svelte +86 -0
- package/vendor/ds/kits/base/src/Input.svelte +84 -0
- package/vendor/ds/kits/base/src/Kbd.svelte +41 -0
- package/vendor/ds/kits/base/src/Label.svelte +21 -0
- package/vendor/ds/kits/base/src/Link.svelte +21 -0
- package/vendor/ds/kits/base/src/LinkPreview.svelte +95 -0
- package/vendor/ds/kits/base/src/List.svelte +28 -0
- package/vendor/ds/kits/base/src/ListContainer.svelte +51 -0
- package/vendor/ds/kits/base/src/LoadingIndicator.svelte +48 -0
- package/vendor/ds/kits/base/src/Logo.svelte +183 -0
- package/vendor/ds/kits/base/src/MediaObject.svelte +46 -0
- package/vendor/ds/kits/base/src/Meter.svelte +130 -0
- package/vendor/ds/kits/base/src/Navbar.svelte +176 -0
- package/vendor/ds/kits/base/src/NavigationMenu.svelte +124 -0
- package/vendor/ds/kits/base/src/NavigationScope.svelte +57 -0
- package/vendor/ds/kits/base/src/Notification.svelte +74 -0
- package/vendor/ds/kits/base/src/NumberField.svelte +104 -0
- package/vendor/ds/kits/base/src/OneTimeCodeInput.svelte +176 -0
- package/vendor/ds/kits/base/src/Pagination.svelte +40 -0
- package/vendor/ds/kits/base/src/PhoneInput.svelte +96 -0
- package/vendor/ds/kits/base/src/PhoneMockup.svelte +42 -0
- package/vendor/ds/kits/base/src/Popover.svelte +116 -0
- package/vendor/ds/kits/base/src/Progress.svelte +115 -0
- package/vendor/ds/kits/base/src/Prose.svelte +40 -0
- package/vendor/ds/kits/base/src/QuoteSlide.svelte +60 -0
- package/vendor/ds/kits/base/src/RadialProgress.svelte +85 -0
- package/vendor/ds/kits/base/src/RadioGroup.svelte +117 -0
- package/vendor/ds/kits/base/src/RangeCalendar.svelte +171 -0
- package/vendor/ds/kits/base/src/Rating.svelte +126 -0
- package/vendor/ds/kits/base/src/Reveal.svelte +36 -0
- package/vendor/ds/kits/base/src/ScrollArea.svelte +40 -0
- package/vendor/ds/kits/base/src/SearchSelect.svelte +203 -0
- package/vendor/ds/kits/base/src/SectionHeading.svelte +59 -0
- package/vendor/ds/kits/base/src/SectionSlide.svelte +56 -0
- package/vendor/ds/kits/base/src/Select.svelte +95 -0
- package/vendor/ds/kits/base/src/Skeleton.svelte +35 -0
- package/vendor/ds/kits/base/src/SkipLink.svelte +39 -0
- package/vendor/ds/kits/base/src/SlideFrame.svelte +63 -0
- package/vendor/ds/kits/base/src/Slider.svelte +107 -0
- package/vendor/ds/kits/base/src/Stack.svelte +57 -0
- package/vendor/ds/kits/base/src/Statistic.svelte +74 -0
- package/vendor/ds/kits/base/src/StatusIndicator.svelte +52 -0
- package/vendor/ds/kits/base/src/Steps.svelte +51 -0
- package/vendor/ds/kits/base/src/Swap.svelte +85 -0
- package/vendor/ds/kits/base/src/Switch.svelte +91 -0
- package/vendor/ds/kits/base/src/Table.svelte +96 -0
- package/vendor/ds/kits/base/src/Tabs.svelte +131 -0
- package/vendor/ds/kits/base/src/Text.svelte +45 -0
- package/vendor/ds/kits/base/src/Textarea.svelte +63 -0
- package/vendor/ds/kits/base/src/TimeField.svelte +118 -0
- package/vendor/ds/kits/base/src/TimeRangeField.svelte +81 -0
- package/vendor/ds/kits/base/src/Timeline.svelte +49 -0
- package/vendor/ds/kits/base/src/TitleSlide.svelte +63 -0
- package/vendor/ds/kits/base/src/ToggleButton.svelte +78 -0
- package/vendor/ds/kits/base/src/ToggleGroup.svelte +79 -0
- package/vendor/ds/kits/base/src/Tooltip.svelte +109 -0
- package/vendor/ds/kits/base/src/Transfer.svelte +31 -0
- package/vendor/ds/kits/base/src/TwoColumnSlide.svelte +63 -0
- package/vendor/ds/kits/base/src/WindowMockup.svelte +51 -0
- package/vendor/ds/kits/base/src/a11y.ts +21 -0
- package/vendor/ds/kits/base/src/accordion.variants.ts +26 -0
- package/vendor/ds/kits/base/src/alert-dialog.variants.ts +17 -0
- package/vendor/ds/kits/base/src/alert.variants.ts +36 -0
- package/vendor/ds/kits/base/src/appearance-switch.behavior.ts +29 -0
- package/vendor/ds/kits/base/src/aspect-ratio.variants.ts +14 -0
- package/vendor/ds/kits/base/src/avatar.variants.ts +29 -0
- package/vendor/ds/kits/base/src/badge.variants.ts +89 -0
- package/vendor/ds/kits/base/src/breadcrumbs.variants.ts +15 -0
- package/vendor/ds/kits/base/src/browser-mockup.variants.ts +18 -0
- package/vendor/ds/kits/base/src/button.variants.ts +186 -0
- package/vendor/ds/kits/base/src/calendar.variants.ts +35 -0
- package/vendor/ds/kits/base/src/card.variants.ts +293 -0
- package/vendor/ds/kits/base/src/carousel.variants.ts +19 -0
- package/vendor/ds/kits/base/src/checkbox.variants.ts +64 -0
- package/vendor/ds/kits/base/src/code-block.variants.ts +58 -0
- package/vendor/ds/kits/base/src/collapsible.style.ts +15 -0
- package/vendor/ds/kits/base/src/combobox.variants.ts +62 -0
- package/vendor/ds/kits/base/src/container.variants.ts +27 -0
- package/vendor/ds/kits/base/src/content-mask.variants.ts +57 -0
- package/vendor/ds/kits/base/src/control-group.variants.ts +22 -0
- package/vendor/ds/kits/base/src/core/a11y.ts +106 -0
- package/vendor/ds/kits/base/src/core/appearance-switch.ts +39 -0
- package/vendor/ds/kits/base/src/core/avatar.ts +27 -0
- package/vendor/ds/kits/base/src/core/breadcrumbs.ts +11 -0
- package/vendor/ds/kits/base/src/core/calendar.ts +95 -0
- package/vendor/ds/kits/base/src/core/carousel.ts +8 -0
- package/vendor/ds/kits/base/src/core/choices.ts +29 -0
- package/vendor/ds/kits/base/src/core/code-block.ts +23 -0
- package/vendor/ds/kits/base/src/core/confirmation.ts +24 -0
- package/vendor/ds/kits/base/src/core/contracts/accordion.ts +28 -0
- package/vendor/ds/kits/base/src/core/contracts/carousel.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/combobox.ts +35 -0
- package/vendor/ds/kits/base/src/core/contracts/datefield.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/datepicker.ts +62 -0
- package/vendor/ds/kits/base/src/core/contracts/daterangefield.ts +33 -0
- package/vendor/ds/kits/base/src/core/contracts/daterangepicker.ts +88 -0
- package/vendor/ds/kits/base/src/core/contracts/dialog.ts +24 -0
- package/vendor/ds/kits/base/src/core/contracts/disclosure.ts +15 -0
- package/vendor/ds/kits/base/src/core/contracts/linkpreview.ts +29 -0
- package/vendor/ds/kits/base/src/core/contracts/navbar.ts +30 -0
- package/vendor/ds/kits/base/src/core/contracts/navigationmenu.ts +35 -0
- package/vendor/ds/kits/base/src/core/contracts/phoneinput.ts +55 -0
- package/vendor/ds/kits/base/src/core/contracts/popover.ts +29 -0
- package/vendor/ds/kits/base/src/core/contracts/searchselect.ts +38 -0
- package/vendor/ds/kits/base/src/core/contracts/tabs.ts +26 -0
- package/vendor/ds/kits/base/src/core/contracts/timefield.ts +23 -0
- package/vendor/ds/kits/base/src/core/contracts/timerangefield.ts +33 -0
- package/vendor/ds/kits/base/src/core/contracts/tooltip.ts +12 -0
- package/vendor/ds/kits/base/src/core/contracts/transfer.ts +13 -0
- package/vendor/ds/kits/base/src/core/date-segments.ts +18 -0
- package/vendor/ds/kits/base/src/core/description-list.ts +5 -0
- package/vendor/ds/kits/base/src/core/dropdown-menu.ts +55 -0
- package/vendor/ds/kits/base/src/core/feedback.ts +5 -0
- package/vendor/ds/kits/base/src/core/field.ts +57 -0
- package/vendor/ds/kits/base/src/core/fieldset.ts +10 -0
- package/vendor/ds/kits/base/src/core/focus-scope.ts +27 -0
- package/vendor/ds/kits/base/src/core/icon.ts +15 -0
- package/vendor/ds/kits/base/src/core/index.ts +2 -0
- package/vendor/ds/kits/base/src/core/inline-edit.ts +86 -0
- package/vendor/ds/kits/base/src/core/input.ts +9 -0
- package/vendor/ds/kits/base/src/core/modal.ts +73 -0
- package/vendor/ds/kits/base/src/core/native-controls.ts +43 -0
- package/vendor/ds/kits/base/src/core/navbar.ts +16 -0
- package/vendor/ds/kits/base/src/core/navigation-disclosures.ts +10 -0
- package/vendor/ds/kits/base/src/core/navigation.ts +48 -0
- package/vendor/ds/kits/base/src/core/number-field.ts +8 -0
- package/vendor/ds/kits/base/src/core/one-time-code.ts +17 -0
- package/vendor/ds/kits/base/src/core/operational-motion.ts +174 -0
- package/vendor/ds/kits/base/src/core/pagination.ts +8 -0
- package/vendor/ds/kits/base/src/core/phone-input.ts +106 -0
- package/vendor/ds/kits/base/src/core/portal-appearance.ts +15 -0
- package/vendor/ds/kits/base/src/core/reveal.ts +60 -0
- package/vendor/ds/kits/base/src/core/segments.ts +28 -0
- package/vendor/ds/kits/base/src/core/skip-link.ts +7 -0
- package/vendor/ds/kits/base/src/core/slider.ts +23 -0
- package/vendor/ds/kits/base/src/core/steps.ts +12 -0
- package/vendor/ds/kits/base/src/core/table.ts +21 -0
- package/vendor/ds/kits/base/src/core/timeline.ts +14 -0
- package/vendor/ds/kits/base/src/core/toggle-group.ts +41 -0
- package/vendor/ds/kits/base/src/countdown.behavior.ts +26 -0
- package/vendor/ds/kits/base/src/countdown.variants.ts +11 -0
- package/vendor/ds/kits/base/src/date-field.variants.ts +24 -0
- package/vendor/ds/kits/base/src/date-picker.variants.ts +16 -0
- package/vendor/ds/kits/base/src/date-range-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/date-range-picker.variants.ts +15 -0
- package/vendor/ds/kits/base/src/deck.variants.ts +10 -0
- package/vendor/ds/kits/base/src/deprecation.ts +24 -0
- package/vendor/ds/kits/base/src/description-list.appearance.ts +32 -0
- package/vendor/ds/kits/base/src/description-list.variants.ts +6 -0
- package/vendor/ds/kits/base/src/dialog.variants.ts +30 -0
- package/vendor/ds/kits/base/src/disclosure.variants.ts +14 -0
- package/vendor/ds/kits/base/src/divider.variants.ts +17 -0
- package/vendor/ds/kits/base/src/drawer.variants.ts +48 -0
- package/vendor/ds/kits/base/src/dropdown-menu.behavior.ts +6 -0
- package/vendor/ds/kits/base/src/dropdown-menu.variants.ts +38 -0
- package/vendor/ds/kits/base/src/empty-state.variants.ts +41 -0
- package/vendor/ds/kits/base/src/eyebrow.variants.ts +14 -0
- package/vendor/ds/kits/base/src/field.variants.ts +54 -0
- package/vendor/ds/kits/base/src/fieldset.variants.ts +29 -0
- package/vendor/ds/kits/base/src/file-input.variants.ts +18 -0
- package/vendor/ds/kits/base/src/form.variants.ts +13 -0
- package/vendor/ds/kits/base/src/grid-list.variants.ts +38 -0
- package/vendor/ds/kits/base/src/heading.variants.ts +35 -0
- package/vendor/ds/kits/base/src/image.variants.ts +121 -0
- package/vendor/ds/kits/base/src/index.ts +1039 -0
- package/vendor/ds/kits/base/src/indicator.variants.ts +35 -0
- package/vendor/ds/kits/base/src/inline-edit.variants.ts +33 -0
- package/vendor/ds/kits/base/src/input.variants.ts +33 -0
- package/vendor/ds/kits/base/src/interaction.ts +3 -0
- package/vendor/ds/kits/base/src/kbd.variants.ts +25 -0
- package/vendor/ds/kits/base/src/label.variants.ts +8 -0
- package/vendor/ds/kits/base/src/link-preview.variants.ts +10 -0
- package/vendor/ds/kits/base/src/link.variants.ts +20 -0
- package/vendor/ds/kits/base/src/list.variants.ts +17 -0
- package/vendor/ds/kits/base/src/loading-indicator.variants.ts +31 -0
- package/vendor/ds/kits/base/src/logo.box.ts +128 -0
- package/vendor/ds/kits/base/src/logo.marks.ts +248 -0
- package/vendor/ds/kits/base/src/logo.surface.ts +45 -0
- package/vendor/ds/kits/base/src/logo.variants.ts +53 -0
- package/vendor/ds/kits/base/src/marks/reddb-horizontal-color.svg +14 -0
- package/vendor/ds/kits/base/src/marks/reddb-horizontal-inverse.svg +14 -0
- package/vendor/ds/kits/base/src/marks/reddb-icon-color.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-stacked-color.svg +16 -0
- package/vendor/ds/kits/base/src/marks/reddb-stacked-inverse.svg +16 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-black.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-color.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-knockout.svg +4 -0
- package/vendor/ds/kits/base/src/marks/reddb-symbol-white.svg +5 -0
- package/vendor/ds/kits/base/src/marks/reddb-wordmark-black.svg +10 -0
- package/vendor/ds/kits/base/src/marks/reddb-wordmark-white.svg +10 -0
- package/vendor/ds/kits/base/src/media-object.variants.ts +29 -0
- package/vendor/ds/kits/base/src/meter.variants.ts +55 -0
- package/vendor/ds/kits/base/src/navbar.variants.ts +78 -0
- package/vendor/ds/kits/base/src/navigation-menu.behavior.ts +24 -0
- package/vendor/ds/kits/base/src/navigation-menu.variants.ts +39 -0
- package/vendor/ds/kits/base/src/navigation.ts +45 -0
- package/vendor/ds/kits/base/src/notification.variants.ts +14 -0
- package/vendor/ds/kits/base/src/number-field.variants.ts +10 -0
- package/vendor/ds/kits/base/src/one-time-code-input.variants.ts +23 -0
- package/vendor/ds/kits/base/src/pagination.variants.ts +19 -0
- package/vendor/ds/kits/base/src/phone-input.variants.ts +17 -0
- package/vendor/ds/kits/base/src/phone-mockup.variants.ts +16 -0
- package/vendor/ds/kits/base/src/popover.variants.ts +12 -0
- package/vendor/ds/kits/base/src/portal-appearance.svelte.ts +12 -0
- package/vendor/ds/kits/base/src/progress.behavior.ts +37 -0
- package/vendor/ds/kits/base/src/progress.variants.ts +31 -0
- package/vendor/ds/kits/base/src/prose.variants.ts +231 -0
- package/vendor/ds/kits/base/src/quiet-control.variants.ts +90 -0
- package/vendor/ds/kits/base/src/radial-progress.variants.ts +47 -0
- package/vendor/ds/kits/base/src/radio-group.variants.ts +59 -0
- package/vendor/ds/kits/base/src/rating.variants.ts +22 -0
- package/vendor/ds/kits/base/src/recipes.ts +100 -0
- package/vendor/ds/kits/base/src/reduced-motion.svelte.ts +40 -0
- package/vendor/ds/kits/base/src/reveal.variants.ts +43 -0
- package/vendor/ds/kits/base/src/scroll-area.variants.ts +29 -0
- package/vendor/ds/kits/base/src/search-select.variants.ts +39 -0
- package/vendor/ds/kits/base/src/section-heading.variants.ts +41 -0
- package/vendor/ds/kits/base/src/segments.variants.ts +8 -0
- package/vendor/ds/kits/base/src/select.variants.ts +30 -0
- package/vendor/ds/kits/base/src/skeleton.variants.ts +17 -0
- package/vendor/ds/kits/base/src/skip-link.variants.ts +17 -0
- package/vendor/ds/kits/base/src/slide-frame.variants.ts +94 -0
- package/vendor/ds/kits/base/src/slide-layout.variants.ts +43 -0
- package/vendor/ds/kits/base/src/slider.variants.ts +16 -0
- package/vendor/ds/kits/base/src/stack.variants.ts +65 -0
- package/vendor/ds/kits/base/src/statistic.variants.ts +12 -0
- package/vendor/ds/kits/base/src/status-indicator.variants.ts +52 -0
- package/vendor/ds/kits/base/src/steps.variants.ts +18 -0
- package/vendor/ds/kits/base/src/structured-data.ts +94 -0
- package/vendor/ds/kits/base/src/swap.variants.ts +13 -0
- package/vendor/ds/kits/base/src/switch.variants.ts +20 -0
- package/vendor/ds/kits/base/src/table.variants.ts +31 -0
- package/vendor/ds/kits/base/src/tabs.variants.ts +32 -0
- package/vendor/ds/kits/base/src/text.variants.ts +51 -0
- package/vendor/ds/kits/base/src/textarea.variants.ts +19 -0
- package/vendor/ds/kits/base/src/time-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/time-range-field.variants.ts +21 -0
- package/vendor/ds/kits/base/src/timeline.variants.ts +22 -0
- package/vendor/ds/kits/base/src/toggle-button.variants.ts +26 -0
- package/vendor/ds/kits/base/src/toggle-group.variants.ts +38 -0
- package/vendor/ds/kits/base/src/tone.ts +24 -0
- package/vendor/ds/kits/base/src/tooltip.variants.ts +14 -0
- package/vendor/ds/kits/base/src/transfer.variants.ts +5 -0
- package/vendor/ds/kits/base/src/type-roles.ts +22 -0
- package/vendor/ds/kits/base/src/window-mockup.variants.ts +18 -0
- package/vendor/ds/kits/base/svelte.config.js +6 -0
- package/vendor/ds/kits/base/test/accessible-name.test.ts +66 -0
- package/vendor/ds/kits/base/test/accordion.test.ts +81 -0
- package/vendor/ds/kits/base/test/alert-dialog.test.ts +81 -0
- package/vendor/ds/kits/base/test/alert.test.ts +75 -0
- package/vendor/ds/kits/base/test/appearance-switch.test.ts +124 -0
- package/vendor/ds/kits/base/test/avatar-media-object-carousel-failures.test.ts +25 -0
- package/vendor/ds/kits/base/test/avatar.test.ts +75 -0
- package/vendor/ds/kits/base/test/badge.test.ts +99 -0
- package/vendor/ds/kits/base/test/breadcrumbs.test.ts +45 -0
- package/vendor/ds/kits/base/test/browser-mockup.test.ts +57 -0
- package/vendor/ds/kits/base/test/browser-phone-window-mockup.test.ts +58 -0
- package/vendor/ds/kits/base/test/button.test.ts +340 -0
- package/vendor/ds/kits/base/test/calendar.test.ts +86 -0
- package/vendor/ds/kits/base/test/card-busy.test.ts +25 -0
- package/vendor/ds/kits/base/test/card-divider-aspect-ratio-failures.test.ts +29 -0
- package/vendor/ds/kits/base/test/card-divider-aspect-ratio.test.ts +201 -0
- package/vendor/ds/kits/base/test/card-media.test.ts +113 -0
- package/vendor/ds/kits/base/test/card-tone-api.test.ts +12 -0
- package/vendor/ds/kits/base/test/card-tone-contrast.test.ts +120 -0
- package/vendor/ds/kits/base/test/card-tone.test.ts +103 -0
- package/vendor/ds/kits/base/test/carousel.test.ts +63 -0
- package/vendor/ds/kits/base/test/checkbox.test.ts +165 -0
- package/vendor/ds/kits/base/test/code-block.test.ts +148 -0
- package/vendor/ds/kits/base/test/coherence.test.ts +124 -0
- package/vendor/ds/kits/base/test/combobox.test.ts +172 -0
- package/vendor/ds/kits/base/test/components.test.ts +113 -0
- package/vendor/ds/kits/base/test/consumer-check.test.ts +42 -0
- package/vendor/ds/kits/base/test/container-stack-skip-link-failures.test.ts +31 -0
- package/vendor/ds/kits/base/test/container.test.ts +41 -0
- package/vendor/ds/kits/base/test/content-mask-failures.test.ts +24 -0
- package/vendor/ds/kits/base/test/content-mask.test.ts +134 -0
- package/vendor/ds/kits/base/test/control-group.test.ts +51 -0
- package/vendor/ds/kits/base/test/control-size.test.ts +60 -0
- package/vendor/ds/kits/base/test/countdown.test.ts +70 -0
- package/vendor/ds/kits/base/test/date-field.test.ts +126 -0
- package/vendor/ds/kits/base/test/date-picker.test.ts +122 -0
- package/vendor/ds/kits/base/test/date-range-field.test.ts +96 -0
- package/vendor/ds/kits/base/test/date-range-picker.test.ts +104 -0
- package/vendor/ds/kits/base/test/description-list.test.ts +84 -0
- package/vendor/ds/kits/base/test/dialog-tooltip-failures.test.ts +52 -0
- package/vendor/ds/kits/base/test/dialog.test.ts +122 -0
- package/vendor/ds/kits/base/test/disclosure.test.ts +51 -0
- package/vendor/ds/kits/base/test/drawer-alert-dialog-appearance.test.ts +25 -0
- package/vendor/ds/kits/base/test/drawer-alert-dialog-failures.test.ts +36 -0
- package/vendor/ds/kits/base/test/drawer.test.ts +49 -0
- package/vendor/ds/kits/base/test/dropdown-menu.test.ts +344 -0
- package/vendor/ds/kits/base/test/dropdown-navigation-menu-failures.test.ts +29 -0
- package/vendor/ds/kits/base/test/elevation.test.ts +81 -0
- package/vendor/ds/kits/base/test/empty-state.test.ts +126 -0
- package/vendor/ds/kits/base/test/event-dialect.test.ts +239 -0
- package/vendor/ds/kits/base/test/field.test.ts +106 -0
- package/vendor/ds/kits/base/test/fieldset.test.ts +95 -0
- package/vendor/ds/kits/base/test/file-input.test.ts +99 -0
- package/vendor/ds/kits/base/test/fixtures/AccessibleNameConsumer.svelte +65 -0
- package/vendor/ds/kits/base/test/fixtures/BinaryChoiceConsumer.svelte +63 -0
- package/vendor/ds/kits/base/test/fixtures/BinaryChoiceContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/BindingConsumer.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/CalendarConsumer.svelte +9 -0
- package/vendor/ds/kits/base/test/fixtures/CalendarContractFailures.svelte +27 -0
- package/vendor/ds/kits/base/test/fixtures/CardActionsConsumer.svelte +12 -0
- package/vendor/ds/kits/base/test/fixtures/CardHorizontalConsumer.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/CollectionStructureConsumer.svelte +37 -0
- package/vendor/ds/kits/base/test/fixtures/CollectionStructureContractFailures.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/ComboboxConsumer.svelte +43 -0
- package/vendor/ds/kits/base/test/fixtures/ComboboxContractFailures.svelte +27 -0
- package/vendor/ds/kits/base/test/fixtures/ContainerStackSkipLinkFailures.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/ContentMaskConsumer.svelte +25 -0
- package/vendor/ds/kits/base/test/fixtures/ContentMaskContractFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/ControlledDialogConsumer.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/DateEntryConsumer.svelte +45 -0
- package/vendor/ds/kits/base/test/fixtures/DateEntryContractFailures.svelte +31 -0
- package/vendor/ds/kits/base/test/fixtures/DatePickerConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/DatePickerContractFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/DialogTooltipBehaviorFailures.svelte +33 -0
- package/vendor/ds/kits/base/test/fixtures/DisclosureFamilyConsumer.svelte +68 -0
- package/vendor/ds/kits/base/test/fixtures/DisclosureFamilyContractFailures.svelte +21 -0
- package/vendor/ds/kits/base/test/fixtures/DrawerAlertDialogBehaviorFailures.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/DrawerAlertDialogConsumer.svelte +18 -0
- package/vendor/ds/kits/base/test/fixtures/FieldInputAccessibilityFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/FieldInputConsumer.svelte +33 -0
- package/vendor/ds/kits/base/test/fixtures/FormScaffoldingConsumer.svelte +55 -0
- package/vendor/ds/kits/base/test/fixtures/FormScaffoldingFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkBase.svelte +52 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkChoices.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkCodeActions.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkComposition.svelte +36 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkEditReveal.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkField.svelte +10 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkIdentityControls.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkInput.svelte +8 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkManaged.svelte +43 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkMedia.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkNativeControls.svelte +11 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkNumericEntry.svelte +12 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkPrimitive.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkReadings.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkSlides.svelte +31 -0
- package/vendor/ds/kits/base/test/fixtures/FrameworkTextarea.svelte +8 -0
- package/vendor/ds/kits/base/test/fixtures/InlineTextConsumer.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/InlineTextContractFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/LayoutConsumer.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/MediaPresentationConsumer.svelte +41 -0
- package/vendor/ds/kits/base/test/fixtures/MediaPresentationContractFailures.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/MenuBehaviorFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/MockupConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/MockupContractFailures.svelte +23 -0
- package/vendor/ds/kits/base/test/fixtures/NavbarMasthead.svelte +55 -0
- package/vendor/ds/kits/base/test/fixtures/NavigationScopeConsumer.svelte +40 -0
- package/vendor/ds/kits/base/test/fixtures/NotificationEmptyStateConsumer.svelte +28 -0
- package/vendor/ds/kits/base/test/fixtures/NotificationEmptyStateContractFailures.svelte +21 -0
- package/vendor/ds/kits/base/test/fixtures/NumberFieldConsumer.svelte +9 -0
- package/vendor/ds/kits/base/test/fixtures/NumericChronologyConsumer.svelte +34 -0
- package/vendor/ds/kits/base/test/fixtures/NumericChronologyContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/Operational.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/PopoverLinkPreviewFailures.svelte +38 -0
- package/vendor/ds/kits/base/test/fixtures/ProgressFeedbackConsumer.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/ProgressLoadingContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/RangePressedConsumer.svelte +67 -0
- package/vendor/ds/kits/base/test/fixtures/RangePressedContractFailures.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/RevealAppearanceConsumer.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/SpecializedEntryConsumer.svelte +56 -0
- package/vendor/ds/kits/base/test/fixtures/SpecializedEntryContractFailures.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/StatusVocabularyConsumer.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/StatusVocabularyContractFailures.svelte +5 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceControlsConsumer.svelte +35 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceControlsContractFailures.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceSeparationConsumer.svelte +20 -0
- package/vendor/ds/kits/base/test/fixtures/SurfaceSeparationContractFailures.svelte +15 -0
- package/vendor/ds/kits/base/test/fixtures/TableConsumer.svelte +25 -0
- package/vendor/ds/kits/base/test/fixtures/TableContractFailures.svelte +22 -0
- package/vendor/ds/kits/base/test/fixtures/TabsFragmentConsumer.svelte +18 -0
- package/vendor/ds/kits/base/test/fixtures/TestGlyph.svelte +22 -0
- package/vendor/ds/kits/base/test/fixtures/TextareaSelectConsumer.svelte +30 -0
- package/vendor/ds/kits/base/test/fixtures/TextareaSelectContractFailures.svelte +19 -0
- package/vendor/ds/kits/base/test/fixtures/TimeEntryConsumer.svelte +45 -0
- package/vendor/ds/kits/base/test/fixtures/TimeEntryContractFailures.svelte +29 -0
- package/vendor/ds/kits/base/test/fixtures/TooltipChildConsumer.svelte +10 -0
- package/vendor/ds/kits/base/test/fixtures/UncontrolledFieldConsumer.svelte +16 -0
- package/vendor/ds/kits/base/test/fixtures/WayfindingConsumer.svelte +26 -0
- package/vendor/ds/kits/base/test/fixtures/WayfindingContractFailures.svelte +17 -0
- package/vendor/ds/kits/base/test/fixtures/alert-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/binary-choice-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/button-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/calendar-consumer.ts +7 -0
- package/vendor/ds/kits/base/test/fixtures/collection-structure-consumer.ts +17 -0
- package/vendor/ds/kits/base/test/fixtures/combobox-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/content-mask-consumer.ts +10 -0
- package/vendor/ds/kits/base/test/fixtures/date-entry-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/date-picker-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/dialog-tooltip-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/disclosure-family-consumer.ts +14 -0
- package/vendor/ds/kits/base/test/fixtures/drawer-alert-dialog-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/field-input-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/form-scaffolding-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/layout-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/media-presentation-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/menu-consumer.ts +20 -0
- package/vendor/ds/kits/base/test/fixtures/mockup-consumer.ts +14 -0
- package/vendor/ds/kits/base/test/fixtures/notification-empty-state-consumer.ts +12 -0
- package/vendor/ds/kits/base/test/fixtures/numeric-chronology-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/fixtures/popover-link-preview-consumer.ts +9 -0
- package/vendor/ds/kits/base/test/fixtures/progress-feedback-consumer.ts +21 -0
- package/vendor/ds/kits/base/test/fixtures/range-pressed-consumer.ts +16 -0
- package/vendor/ds/kits/base/test/fixtures/specialized-entry-consumer.ts +15 -0
- package/vendor/ds/kits/base/test/fixtures/status-vocabulary-consumer.ts +22 -0
- package/vendor/ds/kits/base/test/fixtures/surface-controls-consumer.ts +22 -0
- package/vendor/ds/kits/base/test/fixtures/surface-separation-consumer.ts +31 -0
- package/vendor/ds/kits/base/test/fixtures/textarea-select-consumer.ts +13 -0
- package/vendor/ds/kits/base/test/fixtures/time-entry-consumer.ts +11 -0
- package/vendor/ds/kits/base/test/form.test.ts +72 -0
- package/vendor/ds/kits/base/test/framework-appearance.test.ts +53 -0
- package/vendor/ds/kits/base/test/framework-base.test.ts +128 -0
- package/vendor/ds/kits/base/test/framework-choices.test.ts +137 -0
- package/vendor/ds/kits/base/test/framework-code-actions.test.ts +123 -0
- package/vendor/ds/kits/base/test/framework-composition.test.ts +91 -0
- package/vendor/ds/kits/base/test/framework-contracts.test.ts +126 -0
- package/vendor/ds/kits/base/test/framework-edit-reveal.test.ts +183 -0
- package/vendor/ds/kits/base/test/framework-identity-controls.test.ts +162 -0
- package/vendor/ds/kits/base/test/framework-managed.test.ts +256 -0
- package/vendor/ds/kits/base/test/framework-media.test.ts +96 -0
- package/vendor/ds/kits/base/test/framework-native-controls.test.ts +156 -0
- package/vendor/ds/kits/base/test/framework-numeric-entry.test.ts +146 -0
- package/vendor/ds/kits/base/test/framework-operational.test.ts +162 -0
- package/vendor/ds/kits/base/test/framework-readings.test.ts +110 -0
- package/vendor/ds/kits/base/test/framework-slides.test.ts +100 -0
- package/vendor/ds/kits/base/test/grid-list.test.ts +64 -0
- package/vendor/ds/kits/base/test/icon.test.ts +59 -0
- package/vendor/ds/kits/base/test/image.test.ts +120 -0
- package/vendor/ds/kits/base/test/indicator.test.ts +68 -0
- package/vendor/ds/kits/base/test/inline-edit.test.ts +56 -0
- package/vendor/ds/kits/base/test/input.test.ts +82 -0
- package/vendor/ds/kits/base/test/kbd.test.ts +32 -0
- package/vendor/ds/kits/base/test/label-in-name.ts +43 -0
- package/vendor/ds/kits/base/test/label.test.ts +68 -0
- package/vendor/ds/kits/base/test/link-kbd-code-block-appearance.test.ts +31 -0
- package/vendor/ds/kits/base/test/link-preview.test.ts +80 -0
- package/vendor/ds/kits/base/test/link.test.ts +63 -0
- package/vendor/ds/kits/base/test/lint.test.ts +60 -0
- package/vendor/ds/kits/base/test/list-container.test.ts +45 -0
- package/vendor/ds/kits/base/test/list.test.ts +60 -0
- package/vendor/ds/kits/base/test/loading-indicator.test.ts +57 -0
- package/vendor/ds/kits/base/test/logo.test.ts +484 -0
- package/vendor/ds/kits/base/test/marks.test.ts +140 -0
- package/vendor/ds/kits/base/test/media-object.test.ts +58 -0
- package/vendor/ds/kits/base/test/meter.test.ts +79 -0
- package/vendor/ds/kits/base/test/mount.ts +79 -0
- package/vendor/ds/kits/base/test/navbar.test.ts +419 -0
- package/vendor/ds/kits/base/test/navigation-menu.test.ts +118 -0
- package/vendor/ds/kits/base/test/navigation-scope.test.ts +62 -0
- package/vendor/ds/kits/base/test/notification.test.ts +94 -0
- package/vendor/ds/kits/base/test/number-field.test.ts +38 -0
- package/vendor/ds/kits/base/test/one-time-code-input.test.ts +123 -0
- package/vendor/ds/kits/base/test/pagination.test.ts +50 -0
- package/vendor/ds/kits/base/test/phone-input.test.ts +95 -0
- package/vendor/ds/kits/base/test/phone-mockup.test.ts +51 -0
- package/vendor/ds/kits/base/test/popover-link-preview-failures.test.ts +43 -0
- package/vendor/ds/kits/base/test/popover.test.ts +79 -0
- package/vendor/ds/kits/base/test/progress-loading-failures.test.ts +27 -0
- package/vendor/ds/kits/base/test/progress.test.ts +70 -0
- package/vendor/ds/kits/base/test/prose.test.ts +138 -0
- package/vendor/ds/kits/base/test/quiet-control.test.ts +89 -0
- package/vendor/ds/kits/base/test/radial-progress.test.ts +52 -0
- package/vendor/ds/kits/base/test/radio-cards.test.ts +21 -0
- package/vendor/ds/kits/base/test/radio-group.test.ts +180 -0
- package/vendor/ds/kits/base/test/range-calendar.test.ts +102 -0
- package/vendor/ds/kits/base/test/rating.test.ts +98 -0
- package/vendor/ds/kits/base/test/react-accessible-name.test.ts +44 -0
- package/vendor/ds/kits/base/test/react-consumer.tsx +283 -0
- package/vendor/ds/kits/base/test/react.test.ts +110 -0
- package/vendor/ds/kits/base/test/reveal.test.ts +148 -0
- package/vendor/ds/kits/base/test/scroll-area.test.ts +58 -0
- package/vendor/ds/kits/base/test/search-select.test.ts +40 -0
- package/vendor/ds/kits/base/test/section-heading.test.ts +59 -0
- package/vendor/ds/kits/base/test/select.test.ts +125 -0
- package/vendor/ds/kits/base/test/setup-storage.ts +14 -0
- package/vendor/ds/kits/base/test/skeleton.test.ts +56 -0
- package/vendor/ds/kits/base/test/skip-link.test.ts +49 -0
- package/vendor/ds/kits/base/test/slider.test.ts +89 -0
- package/vendor/ds/kits/base/test/slides.test.ts +207 -0
- package/vendor/ds/kits/base/test/stack.test.ts +87 -0
- package/vendor/ds/kits/base/test/statistic.test.ts +37 -0
- package/vendor/ds/kits/base/test/status-indicator.test.ts +102 -0
- package/vendor/ds/kits/base/test/steps.test.ts +38 -0
- package/vendor/ds/kits/base/test/structured-data.test.ts +88 -0
- package/vendor/ds/kits/base/test/swap.test.ts +70 -0
- package/vendor/ds/kits/base/test/switch.test.ts +89 -0
- package/vendor/ds/kits/base/test/table.test.ts +108 -0
- package/vendor/ds/kits/base/test/tabs.test.ts +130 -0
- package/vendor/ds/kits/base/test/taxonomy.test.ts +41 -0
- package/vendor/ds/kits/base/test/textarea.test.ts +106 -0
- package/vendor/ds/kits/base/test/time-field.test.ts +108 -0
- package/vendor/ds/kits/base/test/time-range-field.test.ts +91 -0
- package/vendor/ds/kits/base/test/timeline.test.ts +75 -0
- package/vendor/ds/kits/base/test/toggle-button.test.ts +70 -0
- package/vendor/ds/kits/base/test/toggle-group.test.ts +177 -0
- package/vendor/ds/kits/base/test/tooltip.test.ts +61 -0
- package/vendor/ds/kits/base/test/type-primitives.test.ts +191 -0
- package/vendor/ds/kits/base/test/vocabulary-contrast.test.ts +258 -0
- package/vendor/ds/kits/base/test/wave2-bindings-overlays.test.ts +174 -0
- package/vendor/ds/kits/base/test/window-mockup.test.ts +49 -0
- package/vendor/ds/kits/base/tools/build-cli.ts +29 -0
- package/vendor/ds/kits/base/tools/lint-cli.ts +18 -0
- package/vendor/ds/kits/base/tools/paths.ts +46 -0
- package/vendor/ds/kits/base/tsconfig.consumer.json +19 -0
- package/vendor/ds/kits/base/tsconfig.json +26 -0
- package/vendor/ds/kits/base/type-ledger.json +4 -0
- package/vendor/ds/kits/base/types/marks.d.ts +20 -0
- package/vendor/ds/kits/base/vite.config.ts +29 -0
- package/vendor/ds/package.json +51 -0
- package/vendor/ds/styles/all.css +12 -0
- package/vendor/ds/styles/application.css +12 -0
- package/vendor/ds/styles/base.css +11 -0
- package/vendor/ds/theme/print.css +65 -0
- package/vendor/ds/theme/scheme-dark.css +77 -0
- package/vendor/ds/theme/scheme-light.css +78 -0
- package/vendor/ds/theme/theme-application.css +29 -0
- package/vendor/ds/theme/theme-base.css +180 -0
- package/vendor/ds/theme/theme.css +283 -0
- package/vendor/ds/tokens/density-comfortable.css +51 -0
- package/vendor/ds/tokens/density-compact.css +49 -0
- package/vendor/ds/tokens/density-spacious.css +49 -0
- package/vendor/ds/tokens/density-tiny.css +49 -0
- package/vendor/ds/tokens/tokens.css +182 -0
- package/src/lib/Kbd.svelte +0 -8
- package/src/lib/LoadingState.svelte +0 -20
- package/src/lib/NavItem.svelte +0 -53
- package/src/lib/SplitView.svelte +0 -145
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const REVEAL_DIRECTIONS = ["up", "down", "left", "right", "none"] as const;
|
|
2
|
+
export type RevealDirection = typeof REVEAL_DIRECTIONS[number];
|
|
3
|
+
export interface RevealState { path: "css" | "js"; entered: boolean; reducedMotion: boolean }
|
|
4
|
+
/** Useful, visible SSR; adapters adopt the same initial state before native effects run. */
|
|
5
|
+
export function initialRevealState(): RevealState { return { path: "js", entered: true, reducedMotion: false }; }
|
|
6
|
+
export function revealDelay(delay: number): number {
|
|
7
|
+
if (!Number.isFinite(delay) || delay < 0) throw new Error("Reveal: delay must be finite and nonnegative.");
|
|
8
|
+
return delay;
|
|
9
|
+
}
|
|
10
|
+
const offsets: Record<RevealDirection, readonly [string, string]> = {
|
|
11
|
+
up: ["0px", "var(--reddb-spatial-inset-lg)"],
|
|
12
|
+
down: ["0px", "calc(-1 * var(--reddb-spatial-inset-lg))"],
|
|
13
|
+
left: ["calc(-1 * var(--reddb-spatial-inset-lg))", "0px"],
|
|
14
|
+
right: ["var(--reddb-spatial-inset-lg)", "0px"],
|
|
15
|
+
none: ["0px", "0px"],
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/** Native browser behavior with no rendering runtime; disposed by each adapter. */
|
|
19
|
+
export function mountReveal(element: HTMLElement, direction: RevealDirection, delay: number, changed: (state: RevealState) => void): () => void {
|
|
20
|
+
// Millisecond delays belong to a timed entry transition, not a progress timeline.
|
|
21
|
+
const path = delay === 0 && typeof CSS !== "undefined" && CSS.supports("animation-timeline: view()") ? "css" : "js";
|
|
22
|
+
const preference = typeof matchMedia === "function" ? matchMedia("(prefers-reduced-motion: reduce)") : undefined;
|
|
23
|
+
let animation: Animation | undefined, observer: IntersectionObserver | undefined;
|
|
24
|
+
let disposed = false, settled = false;
|
|
25
|
+
function stop() { animation?.cancel(); animation = undefined; observer?.disconnect(); observer = undefined; }
|
|
26
|
+
function sync() {
|
|
27
|
+
stop();
|
|
28
|
+
const reducedMotion = preference?.matches ?? false;
|
|
29
|
+
if (reducedMotion || settled) { settled = true; changed({ path, entered: true, reducedMotion }); return; }
|
|
30
|
+
if (path === "css") {
|
|
31
|
+
const ViewTimeline = (globalThis as typeof globalThis & { ViewTimeline?: new (options: { subject: Element }) => AnimationTimeline }).ViewTimeline;
|
|
32
|
+
if (typeof element.animate !== "function" || !ViewTimeline) { changed({ path, entered: true, reducedMotion }); return; }
|
|
33
|
+
try {
|
|
34
|
+
const [x, y] = offsets[direction];
|
|
35
|
+
animation = element.animate([{ opacity: 0, transform: `translate3d(${x}, ${y}, 0)` }, { opacity: 1, transform: "translate3d(0, 0, 0)" }], {
|
|
36
|
+
duration: 1, easing: "cubic-bezier(0.22, 1, 0.36, 1)", fill: "both", timeline: new ViewTimeline({ subject: element }), rangeStart: "entry 0%", rangeEnd: "entry 35%",
|
|
37
|
+
} as KeyframeAnimationOptions);
|
|
38
|
+
changed({ path, entered: false, reducedMotion });
|
|
39
|
+
} catch { changed({ path, entered: true, reducedMotion }); }
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (typeof IntersectionObserver === "undefined") { changed({ path, entered: true, reducedMotion }); return; }
|
|
43
|
+
changed({ path, entered: false, reducedMotion });
|
|
44
|
+
observer = new IntersectionObserver(entries => {
|
|
45
|
+
if (disposed || !entries.some(entry => entry.isIntersecting)) return;
|
|
46
|
+
settled = true;
|
|
47
|
+
changed({ path, entered: true, reducedMotion: preference?.matches ?? false });
|
|
48
|
+
observer?.disconnect(); observer = undefined;
|
|
49
|
+
});
|
|
50
|
+
observer.observe(element);
|
|
51
|
+
}
|
|
52
|
+
sync();
|
|
53
|
+
if (preference?.addEventListener) preference.addEventListener("change", sync);
|
|
54
|
+
else preference?.addListener(sync);
|
|
55
|
+
return () => {
|
|
56
|
+
disposed = true; stop();
|
|
57
|
+
if (preference?.removeEventListener) preference.removeEventListener("change", sync);
|
|
58
|
+
else preference?.removeListener(sync);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Bounded decorative representation; accessible readings retain exact values. */
|
|
2
|
+
export function segmentGeometry(
|
|
3
|
+
count: number,
|
|
4
|
+
percent: number,
|
|
5
|
+
columns?: number,
|
|
6
|
+
) {
|
|
7
|
+
if (!Number.isFinite(count) || count < 1)
|
|
8
|
+
throw new Error("segments must be a positive finite number");
|
|
9
|
+
const total = Math.min(128, Math.max(1, Math.floor(count)));
|
|
10
|
+
const perRow =
|
|
11
|
+
columns === undefined
|
|
12
|
+
? total
|
|
13
|
+
: Math.min(
|
|
14
|
+
total,
|
|
15
|
+
Math.max(1, Math.floor(Number.isFinite(columns) ? columns : total)),
|
|
16
|
+
);
|
|
17
|
+
const fill =
|
|
18
|
+
(Math.min(100, Math.max(0, Number.isFinite(percent) ? percent : 0)) / 100) *
|
|
19
|
+
total;
|
|
20
|
+
return {
|
|
21
|
+
columns: perRow,
|
|
22
|
+
aggregated: count > total,
|
|
23
|
+
fills: Array.from(
|
|
24
|
+
{ length: total },
|
|
25
|
+
(_, i) => Math.min(1, Math.max(0, fill - i)) * 100,
|
|
26
|
+
),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Focus only a valid in-page target and respect consumer cancellation. */
|
|
2
|
+
export function focusSkipTarget(event: { defaultPrevented: boolean }, href: string, document: { getElementById(id: string): { focus(): void } | null }): void {
|
|
3
|
+
if (event.defaultPrevented || !href.startsWith("#")) return;
|
|
4
|
+
let id: string;
|
|
5
|
+
try { id = decodeURIComponent(href.slice(1)); } catch { return; }
|
|
6
|
+
document.getElementById(id)?.focus();
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Exact decimal parts keep range step ties independent of floating-point noise. */
|
|
2
|
+
function decimal(value: number) {
|
|
3
|
+
const [mantissa, exponent = "0"] = String(value).split("e");
|
|
4
|
+
const fraction = mantissa!.split(".")[1]?.length ?? 0;
|
|
5
|
+
return { coefficient: BigInt(mantissa!.replace(".", "")), exponent: Number(exponent) - fraction };
|
|
6
|
+
}
|
|
7
|
+
/** Match native range sanitization so the SSR readout agrees with the browser. */
|
|
8
|
+
export function rangeValue(value: number, min: number, max: number, step: number | "any"): number {
|
|
9
|
+
const lower = Number.isFinite(min) ? min : 0;
|
|
10
|
+
const upper = Math.max(lower, Number.isFinite(max) ? max : 100);
|
|
11
|
+
const next = Math.min(upper, Math.max(lower, Number.isFinite(value) ? value : lower / 2 + upper / 2));
|
|
12
|
+
if (step === "any") return next;
|
|
13
|
+
const increment = Number.isFinite(step) && step > 0 ? step : 1;
|
|
14
|
+
const parts = [next, lower, upper, increment].map(decimal);
|
|
15
|
+
const exponent = Math.min(...parts.map(part => part.exponent));
|
|
16
|
+
const [chosen, first, last, stride] = parts.map(part => part.coefficient * 10n ** BigInt(part.exponent - exponent)) as [bigint, bigint, bigint, bigint];
|
|
17
|
+
const offset = chosen - first;
|
|
18
|
+
let index = offset / stride;
|
|
19
|
+
if ((offset % stride) * 2n >= stride) index++;
|
|
20
|
+
const maximum = (last - first) / stride;
|
|
21
|
+
if (index > maximum) index = maximum;
|
|
22
|
+
return Number(`${first + index * stride}e${exponent}`);
|
|
23
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type StepState = "complete" | "current" | "upcoming";
|
|
2
|
+
|
|
3
|
+
export interface StepItem {
|
|
4
|
+
/** Stable step identity. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Visible step name. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Optional destination for a non-current step. */
|
|
9
|
+
href?: string;
|
|
10
|
+
/** Progress state, independent of appearance axes. */
|
|
11
|
+
state: StepState;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type TableCellValue = string | number | null | undefined;
|
|
2
|
+
|
|
3
|
+
export interface TableColumn {
|
|
4
|
+
/** Stable key used to read this column from each row. */
|
|
5
|
+
key: string;
|
|
6
|
+
/** Visible column heading. */
|
|
7
|
+
header: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type TableRow = Readonly<Record<string, TableCellValue>>;
|
|
11
|
+
|
|
12
|
+
export interface TableCellContext {
|
|
13
|
+
/** Current canonical column. */
|
|
14
|
+
column: TableColumn;
|
|
15
|
+
/** Current caller-owned row. */
|
|
16
|
+
row: TableRow;
|
|
17
|
+
/** Cell value read from the column key. */
|
|
18
|
+
value: TableCellValue;
|
|
19
|
+
/** Zero-based position in the current rows. */
|
|
20
|
+
rowIndex: number;
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface TimelineItem {
|
|
2
|
+
/** Stable entry identity. */
|
|
3
|
+
id: string;
|
|
4
|
+
/** Visible entry heading. */
|
|
5
|
+
title: string;
|
|
6
|
+
/** Machine-readable date or time accepted by native `<time>`. */
|
|
7
|
+
datetime: string;
|
|
8
|
+
/** Caller-owned visible rendering of the date or time. */
|
|
9
|
+
time: string;
|
|
10
|
+
/** Supporting event detail. */
|
|
11
|
+
description?: string;
|
|
12
|
+
/** Optional destination for the entry heading. */
|
|
13
|
+
href?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ToggleGroupOption } from "../toggle-group.variants";
|
|
2
|
+
|
|
3
|
+
export interface ToggleGroupContract {
|
|
4
|
+
/** Visible group name, rendered as the native legend. */
|
|
5
|
+
legend: string;
|
|
6
|
+
/** Caller-owned choices; exactly one enabled option is pressed when available. */
|
|
7
|
+
options: readonly ToggleGroupOption[];
|
|
8
|
+
/** Selected option; an absent or unavailable value resolves to the first enabled option. */
|
|
9
|
+
value?: string;
|
|
10
|
+
/** Initial uncontrolled value, restored by native form reset. */
|
|
11
|
+
defaultValue?: string;
|
|
12
|
+
/** Optional native form name for the selected value. */
|
|
13
|
+
name?: string;
|
|
14
|
+
/** Disables the whole group, so no option can be chosen. */
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/** Supporting text announced with every option. */
|
|
17
|
+
help?: string;
|
|
18
|
+
/** Current validation error, announced with every option. */
|
|
19
|
+
error?: string;
|
|
20
|
+
/** Extra classes merged onto the segmented row. */
|
|
21
|
+
listClass?: string;
|
|
22
|
+
/** Extra classes merged onto each option's ToggleButton. */
|
|
23
|
+
optionClass?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function toggleGroupValue(options: readonly ToggleGroupOption[], value?: string): string {
|
|
27
|
+
return options.find(option => !option.disabled && option.value === value)?.value ?? options.find(option => !option.disabled)?.value ?? "";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Roving selection skips disabled options, wraps, and respects inline direction. */
|
|
31
|
+
export function toggleGroupTarget(options: readonly ToggleGroupOption[], current: number, key: string, rtl = false): number | undefined {
|
|
32
|
+
const enabled = options.map((option, index) => ({ option, index })).filter(({ option }) => !option.disabled);
|
|
33
|
+
const position = enabled.findIndex(({ index }) => index === current);
|
|
34
|
+
if (position < 0) return undefined;
|
|
35
|
+
let next: number | undefined;
|
|
36
|
+
if (key === "ArrowDown" || key === (rtl ? "ArrowLeft" : "ArrowRight")) next = (position + 1) % enabled.length;
|
|
37
|
+
if (key === "ArrowUp" || key === (rtl ? "ArrowRight" : "ArrowLeft")) next = (position - 1 + enabled.length) % enabled.length;
|
|
38
|
+
if (key === "Home") next = 0;
|
|
39
|
+
if (key === "End") next = enabled.length - 1;
|
|
40
|
+
return next === undefined ? undefined : enabled[next]!.index;
|
|
41
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Clamp caller-owned remaining time to whole, non-negative seconds. */
|
|
2
|
+
export function normalizeRemaining(remaining: number): number {
|
|
3
|
+
if (!Number.isFinite(remaining)) return 0;
|
|
4
|
+
return Math.max(0, Math.floor(remaining));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/** A compact clock rendering that keeps hours when a duration crosses one hour. */
|
|
8
|
+
export function formatDuration(remaining: number): string {
|
|
9
|
+
const seconds = normalizeRemaining(remaining);
|
|
10
|
+
const hours = Math.floor(seconds / 3600);
|
|
11
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
12
|
+
const rest = seconds % 60;
|
|
13
|
+
const pair = (value: number): string => String(value).padStart(2, "0");
|
|
14
|
+
|
|
15
|
+
return hours > 0 ? `${hours}:${pair(minutes)}:${pair(rest)}` : `${minutes}:${pair(rest)}`;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** The same normalized duration in the machine-readable form native `<time>` expects. */
|
|
19
|
+
export function durationAttribute(remaining: number): string {
|
|
20
|
+
const seconds = normalizeRemaining(remaining);
|
|
21
|
+
const hours = Math.floor(seconds / 3600);
|
|
22
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
23
|
+
const rest = seconds % 60;
|
|
24
|
+
|
|
25
|
+
return `PT${hours > 0 ? `${hours}H` : ""}${minutes > 0 ? `${minutes}M` : ""}${rest > 0 || seconds === 0 ? `${rest}S` : ""}`;
|
|
26
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const countdown = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "inline-flex items-baseline gap-[var(--reddb-spatial-gap-sm)] text-foreground",
|
|
6
|
+
label: "text-sm text-ink-muted",
|
|
7
|
+
value: "font-mono text-2xl font-medium tabular-nums",
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export type CountdownVariants = VariantProps<typeof countdown>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// DateField's appearance seam composes the canonical Field and Input skins;
|
|
2
|
+
// only the segmented calendar 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
|
+
const segment = [
|
|
10
|
+
input(),
|
|
11
|
+
"w-[var(--reddb-spatial-control-height-md)] px-0 text-center tabular-nums",
|
|
12
|
+
].join(" ");
|
|
13
|
+
|
|
14
|
+
export const dateField = tv({
|
|
15
|
+
slots: {
|
|
16
|
+
root: field().root(),
|
|
17
|
+
segments: "flex items-center gap-[var(--reddb-spatial-gap-sm)]",
|
|
18
|
+
year: [segment, "w-[calc(var(--reddb-spatial-control-height-md)*1.5)]"].join(" "),
|
|
19
|
+
segment,
|
|
20
|
+
separator: "text-foreground",
|
|
21
|
+
},
|
|
22
|
+
}, typeRoleMerge);
|
|
23
|
+
|
|
24
|
+
export type DateFieldVariants = VariantProps<typeof dateField>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// DatePicker composes DateField, Popover, and Calendar appearance. This seam
|
|
2
|
+
// owns only their arrangement and removes the redundant nested Calendar frame.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
|
|
6
|
+
export const datePicker = tv({
|
|
7
|
+
slots: {
|
|
8
|
+
root: "flex min-w-0 items-end gap-[var(--reddb-spatial-gap-sm)]",
|
|
9
|
+
field: "min-w-0 flex-1",
|
|
10
|
+
trigger: "shrink-0",
|
|
11
|
+
content: "w-fit max-w-none",
|
|
12
|
+
calendar: "border-0 p-0",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type DatePickerVariants = VariantProps<typeof datePicker>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// DateRangeField composes Fieldset and DateField; 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 dateRangeField = 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 DateRangeFieldVariants = VariantProps<typeof dateRangeField>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// DateRangePicker composes DateRangeField, Popover, and RangeCalendar. This
|
|
2
|
+
// seam owns only their arrangement and removes the redundant calendar frame.
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
|
|
6
|
+
export const dateRangePicker = tv({
|
|
7
|
+
slots: {
|
|
8
|
+
root: "flex min-w-0 items-end gap-[var(--reddb-spatial-gap-sm)]",
|
|
9
|
+
field: "min-w-0 flex-1",
|
|
10
|
+
trigger: "shrink-0",
|
|
11
|
+
calendar: "border-0 p-0",
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type DateRangePickerVariants = VariantProps<typeof dateRangePicker>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Deck: slides stacked in reading order (ADR 0027). The space between slides
|
|
2
|
+
// is page layout, so it follows Density from the layout tier (ADR 0024); the
|
|
3
|
+
// rhythm inside each slide is the SlideFrame's own.
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
|
|
6
|
+
export const deck = tv({
|
|
7
|
+
base: "flex w-full min-w-0 flex-col gap-[var(--reddb-spatial-layout-gap-lg)]",
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export type DeckVariants = VariantProps<typeof deck>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// The DS deprecation window, as code (ADR 0026).
|
|
2
|
+
//
|
|
3
|
+
// A public rename keeps the old name as a working alias for exactly one CalVer
|
|
4
|
+
// release, and that release's notes carry a **BREAKING:** line. While the
|
|
5
|
+
// alias lives, using it warns once per session in a development build (the
|
|
6
|
+
// consumer's bundler sets `import.meta.env.DEV`); production keeps the alias
|
|
7
|
+
// silently. The next release removes the alias.
|
|
8
|
+
|
|
9
|
+
const warned = new Set<string>();
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Warn, once per session and only in development, that `component` received a
|
|
13
|
+
* deprecated name. `used` is what the caller wrote (`intent="danger"`),
|
|
14
|
+
* `instead` the canonical spelling (`tone="danger"`).
|
|
15
|
+
*/
|
|
16
|
+
export function warnDeprecated(component: string, used: string, instead: string): void {
|
|
17
|
+
if (!(import.meta as ImportMeta & { readonly env?: { readonly DEV?: boolean } }).env?.DEV) return;
|
|
18
|
+
const key = `${component}\u0000${used}`;
|
|
19
|
+
if (warned.has(key)) return;
|
|
20
|
+
warned.add(key);
|
|
21
|
+
console.warn(
|
|
22
|
+
`[reddb ${component}] ${used} is deprecated and is removed in the next release. Use ${instead}.`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
const GAP = {
|
|
4
|
+
sm: "gap-[var(--reddb-spatial-gap-sm)]",
|
|
5
|
+
md: "gap-[var(--reddb-spatial-gap-md)]",
|
|
6
|
+
lg: "gap-[var(--reddb-spatial-gap-lg)]",
|
|
7
|
+
} as const;
|
|
8
|
+
|
|
9
|
+
// Container-first (ADR 0021): the list is a named size container, and each
|
|
10
|
+
// item sets its term beside its detail from the DS's `md` container step
|
|
11
|
+
// (28rem) — so a list in a narrow pane stacks even on a wide window.
|
|
12
|
+
export const descriptionList = tv({
|
|
13
|
+
slots: {
|
|
14
|
+
root: "@container/description-list grid",
|
|
15
|
+
item: "grid @md/description-list:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]",
|
|
16
|
+
term: "font-medium text-foreground",
|
|
17
|
+
detail: "m-0 text-ink-muted",
|
|
18
|
+
},
|
|
19
|
+
variants: {
|
|
20
|
+
gap: {
|
|
21
|
+
sm: { root: GAP.sm, item: GAP.sm },
|
|
22
|
+
md: { root: GAP.md, item: GAP.md },
|
|
23
|
+
lg: { root: GAP.lg, item: GAP.lg },
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: { gap: "md" },
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export type DescriptionListVariants = VariantProps<typeof descriptionList>;
|
|
30
|
+
export type DescriptionListGap = NonNullable<DescriptionListVariants["gap"]>;
|
|
31
|
+
export const DESCRIPTION_LIST_GAPS = Object.keys(GAP) as readonly DescriptionListGap[];
|
|
32
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import type { DescriptionListEntry } from "./core/description-list";
|
|
3
|
+
export * from "./description-list.appearance";
|
|
4
|
+
|
|
5
|
+
export type DescriptionListContent = string | Snippet;
|
|
6
|
+
export interface DescriptionListItem extends DescriptionListEntry<DescriptionListContent> {}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
/** Token-only modal surface appearance; behavior remains in Dialog.svelte. */
|
|
4
|
+
export const dialog = tv({
|
|
5
|
+
base: [
|
|
6
|
+
"m-auto w-full rounded-lg border border-elevation-overlay-border bg-elevation-overlay-surface text-foreground shadow-elevation-overlay",
|
|
7
|
+
"p-[var(--reddb-spatial-inset-lg)]",
|
|
8
|
+
"focus:outline-hidden",
|
|
9
|
+
"backdrop:bg-scrim/60",
|
|
10
|
+
"motion-safe:transition-opacity motion-reduce:transition-none",
|
|
11
|
+
].join(" "),
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
sm: "max-w-sm",
|
|
15
|
+
md: "max-w-lg",
|
|
16
|
+
lg: "max-w-2xl",
|
|
17
|
+
xl: "max-w-[var(--reddb-container-wide)]",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: { size: "md" },
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
/** The standard close control, pinned to the surface's top trailing corner. */
|
|
24
|
+
export const dialogClose = tv({
|
|
25
|
+
base: "absolute top-[var(--reddb-spatial-inset-sm)] right-[var(--reddb-spatial-inset-sm)]",
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export type DialogVariants = VariantProps<typeof dialog>;
|
|
29
|
+
export type DialogSize = NonNullable<DialogVariants["size"]>;
|
|
30
|
+
export const DIALOG_SIZES = ["sm", "md", "lg", "xl"] as const satisfies readonly DialogSize[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Disclosure's token-only appearance seam; Collapsible owns expanded state.
|
|
2
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
3
|
+
|
|
4
|
+
export const disclosure = tv({
|
|
5
|
+
slots: {
|
|
6
|
+
root: "min-w-0 rounded-md border border-muted",
|
|
7
|
+
// `group` is what the indicator's expanded-state rotation reads.
|
|
8
|
+
trigger: "group w-full justify-between",
|
|
9
|
+
indicator: "ml-auto text-ink-muted transition-transform group-aria-expanded:rotate-180 motion-reduce:transition-none",
|
|
10
|
+
content: "border-t border-muted p-[var(--reddb-spatial-inset-md)] text-foreground",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export type DisclosureVariants = VariantProps<typeof disclosure>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const DIVIDER_ORIENTATIONS = ["horizontal", "vertical"] as const;
|
|
4
|
+
export type DividerOrientation = (typeof DIVIDER_ORIENTATIONS)[number];
|
|
5
|
+
|
|
6
|
+
export const divider = tv({
|
|
7
|
+
base: "shrink-0 bg-muted",
|
|
8
|
+
variants: {
|
|
9
|
+
orientation: {
|
|
10
|
+
horizontal: "my-[var(--reddb-spatial-gap-sm)] h-px w-full",
|
|
11
|
+
vertical: "mx-[var(--reddb-spatial-gap-sm)] h-full w-px self-stretch",
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: { orientation: "horizontal" },
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export type DividerVariants = VariantProps<typeof divider>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
import { dialog } from "./dialog.variants";
|
|
3
|
+
|
|
4
|
+
export const DRAWER_SIDES = ["top", "right", "bottom", "left"] as const;
|
|
5
|
+
export type DrawerSide = (typeof DRAWER_SIDES)[number];
|
|
6
|
+
|
|
7
|
+
// A modal <dialog> arrives from the user agent with `inset: 0` on every edge,
|
|
8
|
+
// so pinning one edge is not enough: the sized panel is over-constrained and
|
|
9
|
+
// keeps its top and inline-start edges, opening a `right` Drawer on the left
|
|
10
|
+
// and a `bottom` one at the top. Each side pins its own edge and releases the
|
|
11
|
+
// opposite one, which also holds the panel in place while it leaves the top
|
|
12
|
+
// layer. Closed, and in its first frame, the panel sits just past that edge,
|
|
13
|
+
// so it enters from it and leaves toward it; under reduced motion it never moves.
|
|
14
|
+
const SIDE: Record<DrawerSide, string> = {
|
|
15
|
+
top: [
|
|
16
|
+
"inset-x-0 top-0 bottom-auto w-full max-w-none",
|
|
17
|
+
"motion-safe:not-open:-translate-y-full motion-safe:starting:open:-translate-y-full",
|
|
18
|
+
].join(" "),
|
|
19
|
+
right: [
|
|
20
|
+
"inset-y-0 right-0 left-auto h-full w-full max-w-md",
|
|
21
|
+
"motion-safe:not-open:translate-x-full motion-safe:starting:open:translate-x-full",
|
|
22
|
+
].join(" "),
|
|
23
|
+
bottom: [
|
|
24
|
+
"inset-x-0 top-auto bottom-0 w-full max-w-none",
|
|
25
|
+
"motion-safe:not-open:translate-y-full motion-safe:starting:open:translate-y-full",
|
|
26
|
+
].join(" "),
|
|
27
|
+
left: [
|
|
28
|
+
"inset-y-0 left-0 right-auto h-full w-full max-w-md",
|
|
29
|
+
"motion-safe:not-open:-translate-x-full motion-safe:starting:open:-translate-x-full",
|
|
30
|
+
].join(" "),
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/** Dialog appearance specialized into an edge-anchored surface. */
|
|
34
|
+
export const drawer = tv({
|
|
35
|
+
base: [
|
|
36
|
+
dialog(),
|
|
37
|
+
// An over-tall sheet scrolls inside the viewport instead of running past it.
|
|
38
|
+
"fixed m-0 max-h-full overflow-y-auto rounded-none",
|
|
39
|
+
// `display` and `overlay` change discretely, so the panel stays painted in
|
|
40
|
+
// the top layer until its slide out has finished.
|
|
41
|
+
"motion-safe:transition-[translate,display,overlay] motion-safe:transition-discrete",
|
|
42
|
+
"motion-safe:duration-[var(--reddb-duration-normal)] motion-safe:ease-exit motion-safe:open:ease-entrance",
|
|
43
|
+
].join(" "),
|
|
44
|
+
variants: { side: SIDE },
|
|
45
|
+
defaultVariants: { side: "right" },
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export type DrawerVariants = VariantProps<typeof drawer>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IconGlyph } from "./Icon.svelte";
|
|
2
|
+
import type * as Portable from "./core/dropdown-menu";
|
|
3
|
+
export { dropdownMenuGroups, dropdownMenuItems, isDropdownMenuGroup } from "./core/dropdown-menu";
|
|
4
|
+
export type DropdownMenuItem = Portable.DropdownMenuItem<IconGlyph>;
|
|
5
|
+
export type DropdownMenuGroup = Portable.DropdownMenuGroup<IconGlyph>;
|
|
6
|
+
export type DropdownMenuEntry = Portable.DropdownMenuEntry<IconGlyph>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
2
|
+
|
|
3
|
+
export const dropdownMenu = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
content: "min-w-48 overflow-hidden p-[var(--reddb-spatial-inset-sm)]",
|
|
6
|
+
group: "flex flex-col",
|
|
7
|
+
heading: "px-[var(--reddb-spatial-inset-sm)] py-1 text-xs font-medium text-ink-muted",
|
|
8
|
+
separator: "my-1 h-px bg-muted",
|
|
9
|
+
item: [
|
|
10
|
+
"flex w-full select-none items-center rounded-md text-start text-foreground outline-hidden",
|
|
11
|
+
"data-[highlighted]:bg-foreground/10 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
12
|
+
].join(" "),
|
|
13
|
+
icon: "me-[var(--reddb-spatial-gap-sm)] inline-flex shrink-0",
|
|
14
|
+
label: "min-w-0 truncate",
|
|
15
|
+
shortcut: "ms-auto shrink-0 ps-[var(--reddb-spatial-inset-md)]",
|
|
16
|
+
},
|
|
17
|
+
variants: {
|
|
18
|
+
size: {
|
|
19
|
+
sm: {
|
|
20
|
+
item: "h-[var(--reddb-spatial-control-height-sm)] px-[var(--reddb-spatial-inset-sm)] text-sm",
|
|
21
|
+
icon: "size-[var(--reddb-spatial-icon-size-sm)]",
|
|
22
|
+
},
|
|
23
|
+
md: {
|
|
24
|
+
item: "h-[var(--reddb-spatial-control-height-md)] px-[var(--reddb-spatial-inset-md)] text-sm",
|
|
25
|
+
icon: "size-[var(--reddb-spatial-icon-size-md)]",
|
|
26
|
+
},
|
|
27
|
+
lg: {
|
|
28
|
+
item: "h-[var(--reddb-spatial-control-height-lg)] px-[var(--reddb-spatial-inset-lg)] text-base",
|
|
29
|
+
icon: "size-[var(--reddb-spatial-icon-size-lg)]",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
defaultVariants: { size: "md" },
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export type DropdownMenuVariants = VariantProps<typeof dropdownMenu>;
|
|
37
|
+
export type DropdownMenuSize = NonNullable<DropdownMenuVariants["size"]>;
|
|
38
|
+
export const DROPDOWN_MENU_SIZES = ["sm", "md", "lg"] as const satisfies readonly DropdownMenuSize[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// EmptyState's appearance is one coordinated slot contract. The size axis
|
|
2
|
+
// changes typography and Density-owned space together; bordered only decides
|
|
3
|
+
// whether the otherwise empty region needs to draw its own boundary.
|
|
4
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
5
|
+
|
|
6
|
+
const SIZE = {
|
|
7
|
+
sm: {
|
|
8
|
+
root: "gap-[var(--reddb-spatial-gap-md)] px-[var(--reddb-spatial-inset-md)] py-[var(--reddb-spatial-inset-lg)]",
|
|
9
|
+
title: "text-sm",
|
|
10
|
+
description: "text-xs",
|
|
11
|
+
hint: "text-xs",
|
|
12
|
+
},
|
|
13
|
+
md: {
|
|
14
|
+
root: "gap-[var(--reddb-spatial-gap-lg)] px-[var(--reddb-spatial-inset-lg)] py-10",
|
|
15
|
+
title: "text-base",
|
|
16
|
+
description: "text-sm",
|
|
17
|
+
hint: "text-xs",
|
|
18
|
+
},
|
|
19
|
+
} as const;
|
|
20
|
+
|
|
21
|
+
const BORDERED = {
|
|
22
|
+
true: { root: "border-dashed border-muted" },
|
|
23
|
+
false: { root: "border-transparent" },
|
|
24
|
+
} as const;
|
|
25
|
+
|
|
26
|
+
export const emptyState = tv({
|
|
27
|
+
slots: {
|
|
28
|
+
root: "flex flex-col items-center justify-center rounded-lg border text-center",
|
|
29
|
+
media: "text-ink-muted",
|
|
30
|
+
title: "font-medium leading-tight text-foreground",
|
|
31
|
+
description: "max-w-prose text-ink-muted",
|
|
32
|
+
hint: "max-w-full rounded-md border border-muted px-2 py-1 font-mono text-ink-muted",
|
|
33
|
+
actions: "flex flex-wrap items-center justify-center gap-[var(--reddb-spatial-gap-md)] pt-1",
|
|
34
|
+
},
|
|
35
|
+
variants: { size: SIZE, bordered: BORDERED },
|
|
36
|
+
defaultVariants: { size: "md", bordered: true },
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export type EmptyStateVariants = VariantProps<typeof emptyState>;
|
|
40
|
+
export type EmptyStateSize = NonNullable<EmptyStateVariants["size"]>;
|
|
41
|
+
export const EMPTY_STATE_SIZES = Object.keys(SIZE) as readonly EmptyStateSize[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Eyebrow: the uppercase micro-label above a heading (ADR 0025, DESIGN.md).
|
|
2
|
+
//
|
|
3
|
+
// Size, tracking and weight are the Theme's eyebrow role — one tracking, the
|
|
4
|
+
// Brand's `wide`, instead of the three the Kits used to spell by hand — and
|
|
5
|
+
// the colour is the secondary reading role, `ink-muted`.
|
|
6
|
+
import { tv, type VariantProps } from "tailwind-variants";
|
|
7
|
+
import { typeRoleMerge } from "./type-roles";
|
|
8
|
+
|
|
9
|
+
export const eyebrow = tv({ base: "text-eyebrow uppercase text-ink-muted" }, typeRoleMerge);
|
|
10
|
+
|
|
11
|
+
export type EyebrowVariants = VariantProps<typeof eyebrow>;
|
|
12
|
+
/** The elements an Eyebrow may render: it labels a heading, it is never one. */
|
|
13
|
+
export const EYEBROW_ELEMENTS = ["p", "span", "div"] as const;
|
|
14
|
+
export type EyebrowElement = (typeof EYEBROW_ELEMENTS)[number];
|