@xenition/ui 0.1.0
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/LICENSE +21 -0
- package/README.md +495 -0
- package/dist/booking/BookingCalendar.d.ts +37 -0
- package/dist/booking/BookingCalendar.d.ts.map +1 -0
- package/dist/booking/BookingCalendar.js +186 -0
- package/dist/booking/BookingCalendar.js.map +1 -0
- package/dist/booking/BookingSummary.d.ts +25 -0
- package/dist/booking/BookingSummary.d.ts.map +1 -0
- package/dist/booking/BookingSummary.js +69 -0
- package/dist/booking/BookingSummary.js.map +1 -0
- package/dist/booking/SlotPicker.d.ts +28 -0
- package/dist/booking/SlotPicker.d.ts.map +1 -0
- package/dist/booking/SlotPicker.js +65 -0
- package/dist/booking/SlotPicker.js.map +1 -0
- package/dist/booking/datetime.d.ts +27 -0
- package/dist/booking/datetime.d.ts.map +1 -0
- package/dist/booking/datetime.js +81 -0
- package/dist/booking/datetime.js.map +1 -0
- package/dist/booking/index.d.ts +18 -0
- package/dist/booking/index.d.ts.map +1 -0
- package/dist/booking/index.js +27 -0
- package/dist/booking/index.js.map +1 -0
- package/dist/booking/types.d.ts +23 -0
- package/dist/booking/types.d.ts.map +1 -0
- package/dist/booking/types.js +9 -0
- package/dist/booking/types.js.map +1 -0
- package/dist/commerce/CartLineItem.d.ts +39 -0
- package/dist/commerce/CartLineItem.d.ts.map +1 -0
- package/dist/commerce/CartLineItem.js +52 -0
- package/dist/commerce/CartLineItem.js.map +1 -0
- package/dist/commerce/CartSummary.d.ts +29 -0
- package/dist/commerce/CartSummary.d.ts.map +1 -0
- package/dist/commerce/CartSummary.js +55 -0
- package/dist/commerce/CartSummary.js.map +1 -0
- package/dist/commerce/EmptyState.d.ts +18 -0
- package/dist/commerce/EmptyState.d.ts.map +1 -0
- package/dist/commerce/EmptyState.js +48 -0
- package/dist/commerce/EmptyState.js.map +1 -0
- package/dist/commerce/OrderSummary.d.ts +44 -0
- package/dist/commerce/OrderSummary.d.ts.map +1 -0
- package/dist/commerce/OrderSummary.js +55 -0
- package/dist/commerce/OrderSummary.js.map +1 -0
- package/dist/commerce/PriceTag.d.ts +22 -0
- package/dist/commerce/PriceTag.d.ts.map +1 -0
- package/dist/commerce/PriceTag.js +56 -0
- package/dist/commerce/PriceTag.js.map +1 -0
- package/dist/commerce/ProductCard.d.ts +34 -0
- package/dist/commerce/ProductCard.d.ts.map +1 -0
- package/dist/commerce/ProductCard.js +54 -0
- package/dist/commerce/ProductCard.js.map +1 -0
- package/dist/commerce/ProductGrid.d.ts +11 -0
- package/dist/commerce/ProductGrid.d.ts.map +1 -0
- package/dist/commerce/ProductGrid.js +53 -0
- package/dist/commerce/ProductGrid.js.map +1 -0
- package/dist/commerce/QuantityStepper.d.ts +29 -0
- package/dist/commerce/QuantityStepper.d.ts.map +1 -0
- package/dist/commerce/QuantityStepper.js +60 -0
- package/dist/commerce/QuantityStepper.js.map +1 -0
- package/dist/commerce/StatusBadge.d.ts +14 -0
- package/dist/commerce/StatusBadge.d.ts.map +1 -0
- package/dist/commerce/StatusBadge.js +61 -0
- package/dist/commerce/StatusBadge.js.map +1 -0
- package/dist/commerce/index.d.ts +31 -0
- package/dist/commerce/index.d.ts.map +1 -0
- package/dist/commerce/index.js +35 -0
- package/dist/commerce/index.js.map +1 -0
- package/dist/commerce/money.d.ts +26 -0
- package/dist/commerce/money.d.ts.map +1 -0
- package/dist/commerce/money.js +33 -0
- package/dist/commerce/money.js.map +1 -0
- package/dist/data/Resource.d.ts +31 -0
- package/dist/data/Resource.d.ts.map +1 -0
- package/dist/data/Resource.js +31 -0
- package/dist/data/Resource.js.map +1 -0
- package/dist/data/index.d.ts +14 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +18 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/use-resource.d.ts +28 -0
- package/dist/data/use-resource.d.ts.map +1 -0
- package/dist/data/use-resource.js +84 -0
- package/dist/data/use-resource.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/marketing/AnnouncementBar.d.ts +19 -0
- package/dist/marketing/AnnouncementBar.d.ts.map +1 -0
- package/dist/marketing/AnnouncementBar.js +55 -0
- package/dist/marketing/AnnouncementBar.js.map +1 -0
- package/dist/marketing/AuroraBackground.d.ts +25 -0
- package/dist/marketing/AuroraBackground.d.ts.map +1 -0
- package/dist/marketing/AuroraBackground.js +153 -0
- package/dist/marketing/AuroraBackground.js.map +1 -0
- package/dist/marketing/Bento.d.ts +40 -0
- package/dist/marketing/Bento.d.ts.map +1 -0
- package/dist/marketing/Bento.js +130 -0
- package/dist/marketing/Bento.js.map +1 -0
- package/dist/marketing/CTABanner.d.ts +20 -0
- package/dist/marketing/CTABanner.d.ts.map +1 -0
- package/dist/marketing/CTABanner.js +48 -0
- package/dist/marketing/CTABanner.js.map +1 -0
- package/dist/marketing/Carousel.d.ts +21 -0
- package/dist/marketing/Carousel.d.ts.map +1 -0
- package/dist/marketing/Carousel.js +106 -0
- package/dist/marketing/Carousel.js.map +1 -0
- package/dist/marketing/ComparisonTable.d.ts +30 -0
- package/dist/marketing/ComparisonTable.d.ts.map +1 -0
- package/dist/marketing/ComparisonTable.js +57 -0
- package/dist/marketing/ComparisonTable.js.map +1 -0
- package/dist/marketing/Countdown.d.ts +17 -0
- package/dist/marketing/Countdown.d.ts.map +1 -0
- package/dist/marketing/Countdown.js +81 -0
- package/dist/marketing/Countdown.js.map +1 -0
- package/dist/marketing/CoverGallery.d.ts +39 -0
- package/dist/marketing/CoverGallery.d.ts.map +1 -0
- package/dist/marketing/CoverGallery.js +61 -0
- package/dist/marketing/CoverGallery.js.map +1 -0
- package/dist/marketing/EditorialGrid.d.ts +45 -0
- package/dist/marketing/EditorialGrid.d.ts.map +1 -0
- package/dist/marketing/EditorialGrid.js +105 -0
- package/dist/marketing/EditorialGrid.js.map +1 -0
- package/dist/marketing/EntityCard.d.ts +46 -0
- package/dist/marketing/EntityCard.d.ts.map +1 -0
- package/dist/marketing/EntityCard.js +61 -0
- package/dist/marketing/EntityCard.js.map +1 -0
- package/dist/marketing/FAQ.d.ts +18 -0
- package/dist/marketing/FAQ.d.ts.map +1 -0
- package/dist/marketing/FAQ.js +62 -0
- package/dist/marketing/FAQ.js.map +1 -0
- package/dist/marketing/FeatureGrid.d.ts +17 -0
- package/dist/marketing/FeatureGrid.d.ts.map +1 -0
- package/dist/marketing/FeatureGrid.js +53 -0
- package/dist/marketing/FeatureGrid.js.map +1 -0
- package/dist/marketing/FeatureSplit.d.ts +20 -0
- package/dist/marketing/FeatureSplit.d.ts.map +1 -0
- package/dist/marketing/FeatureSplit.js +47 -0
- package/dist/marketing/FeatureSplit.js.map +1 -0
- package/dist/marketing/Footer.d.ts +19 -0
- package/dist/marketing/Footer.d.ts.map +1 -0
- package/dist/marketing/Footer.js +51 -0
- package/dist/marketing/Footer.js.map +1 -0
- package/dist/marketing/GenerativeCover.d.ts +37 -0
- package/dist/marketing/GenerativeCover.d.ts.map +1 -0
- package/dist/marketing/GenerativeCover.js +163 -0
- package/dist/marketing/GenerativeCover.js.map +1 -0
- package/dist/marketing/GradientHero.d.ts +29 -0
- package/dist/marketing/GradientHero.d.ts.map +1 -0
- package/dist/marketing/GradientHero.js +50 -0
- package/dist/marketing/GradientHero.js.map +1 -0
- package/dist/marketing/LocationBlock.d.ts +26 -0
- package/dist/marketing/LocationBlock.d.ts.map +1 -0
- package/dist/marketing/LocationBlock.js +45 -0
- package/dist/marketing/LocationBlock.js.map +1 -0
- package/dist/marketing/LogoCloud.d.ts +12 -0
- package/dist/marketing/LogoCloud.d.ts.map +1 -0
- package/dist/marketing/LogoCloud.js +49 -0
- package/dist/marketing/LogoCloud.js.map +1 -0
- package/dist/marketing/Navbar.d.ts +20 -0
- package/dist/marketing/Navbar.d.ts.map +1 -0
- package/dist/marketing/Navbar.js +72 -0
- package/dist/marketing/Navbar.js.map +1 -0
- package/dist/marketing/NewsletterSignup.d.ts +29 -0
- package/dist/marketing/NewsletterSignup.d.ts.map +1 -0
- package/dist/marketing/NewsletterSignup.js +77 -0
- package/dist/marketing/NewsletterSignup.js.map +1 -0
- package/dist/marketing/OrnamentRule.d.ts +17 -0
- package/dist/marketing/OrnamentRule.d.ts.map +1 -0
- package/dist/marketing/OrnamentRule.js +87 -0
- package/dist/marketing/OrnamentRule.js.map +1 -0
- package/dist/marketing/ParticleField.d.ts +42 -0
- package/dist/marketing/ParticleField.d.ts.map +1 -0
- package/dist/marketing/ParticleField.js +176 -0
- package/dist/marketing/ParticleField.js.map +1 -0
- package/dist/marketing/PointerHalo.d.ts +28 -0
- package/dist/marketing/PointerHalo.d.ts.map +1 -0
- package/dist/marketing/PointerHalo.js +153 -0
- package/dist/marketing/PointerHalo.js.map +1 -0
- package/dist/marketing/PriceList.d.ts +30 -0
- package/dist/marketing/PriceList.d.ts.map +1 -0
- package/dist/marketing/PriceList.js +72 -0
- package/dist/marketing/PriceList.js.map +1 -0
- package/dist/marketing/PricingTable.d.ts +25 -0
- package/dist/marketing/PricingTable.d.ts.map +1 -0
- package/dist/marketing/PricingTable.js +51 -0
- package/dist/marketing/PricingTable.js.map +1 -0
- package/dist/marketing/PricingToggle.d.ts +26 -0
- package/dist/marketing/PricingToggle.d.ts.map +1 -0
- package/dist/marketing/PricingToggle.js +53 -0
- package/dist/marketing/PricingToggle.js.map +1 -0
- package/dist/marketing/ProcessSteps.d.ts +16 -0
- package/dist/marketing/ProcessSteps.d.ts.map +1 -0
- package/dist/marketing/ProcessSteps.js +47 -0
- package/dist/marketing/ProcessSteps.js.map +1 -0
- package/dist/marketing/ProductMock.d.ts +46 -0
- package/dist/marketing/ProductMock.d.ts.map +1 -0
- package/dist/marketing/ProductMock.js +276 -0
- package/dist/marketing/ProductMock.js.map +1 -0
- package/dist/marketing/SectionDivider.d.ts +29 -0
- package/dist/marketing/SectionDivider.d.ts.map +1 -0
- package/dist/marketing/SectionDivider.js +65 -0
- package/dist/marketing/SectionDivider.js.map +1 -0
- package/dist/marketing/SectionHeading.d.ts +15 -0
- package/dist/marketing/SectionHeading.d.ts.map +1 -0
- package/dist/marketing/SectionHeading.js +44 -0
- package/dist/marketing/SectionHeading.js.map +1 -0
- package/dist/marketing/StatBar.d.ts +21 -0
- package/dist/marketing/StatBar.d.ts.map +1 -0
- package/dist/marketing/StatBar.js +49 -0
- package/dist/marketing/StatBar.js.map +1 -0
- package/dist/marketing/TeamGrid.d.ts +26 -0
- package/dist/marketing/TeamGrid.d.ts.map +1 -0
- package/dist/marketing/TeamGrid.js +50 -0
- package/dist/marketing/TeamGrid.js.map +1 -0
- package/dist/marketing/Testimonials.d.ts +22 -0
- package/dist/marketing/Testimonials.d.ts.map +1 -0
- package/dist/marketing/Testimonials.js +64 -0
- package/dist/marketing/Testimonials.js.map +1 -0
- package/dist/marketing/VideoEmbed.d.ts +14 -0
- package/dist/marketing/VideoEmbed.d.ts.map +1 -0
- package/dist/marketing/VideoEmbed.js +49 -0
- package/dist/marketing/VideoEmbed.js.map +1 -0
- package/dist/marketing/index.d.ts +76 -0
- package/dist/marketing/index.d.ts.map +1 -0
- package/dist/marketing/index.js +94 -0
- package/dist/marketing/index.js.map +1 -0
- package/dist/media/Gallery.d.ts +20 -0
- package/dist/media/Gallery.d.ts.map +1 -0
- package/dist/media/Gallery.js +74 -0
- package/dist/media/Gallery.js.map +1 -0
- package/dist/media/Lightbox.d.ts +32 -0
- package/dist/media/Lightbox.d.ts.map +1 -0
- package/dist/media/Lightbox.js +135 -0
- package/dist/media/Lightbox.js.map +1 -0
- package/dist/media/MediaFigure.d.ts +19 -0
- package/dist/media/MediaFigure.d.ts.map +1 -0
- package/dist/media/MediaFigure.js +52 -0
- package/dist/media/MediaFigure.js.map +1 -0
- package/dist/media/aspect.d.ts +9 -0
- package/dist/media/aspect.d.ts.map +1 -0
- package/dist/media/aspect.js +18 -0
- package/dist/media/aspect.js.map +1 -0
- package/dist/media/index.d.ts +17 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +19 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/types.d.ts +29 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/types.js +8 -0
- package/dist/media/types.js.map +1 -0
- package/dist/motion/AnimatedCounter.d.ts +20 -0
- package/dist/motion/AnimatedCounter.d.ts.map +1 -0
- package/dist/motion/AnimatedCounter.js +76 -0
- package/dist/motion/AnimatedCounter.js.map +1 -0
- package/dist/motion/Marquee.d.ts +15 -0
- package/dist/motion/Marquee.d.ts.map +1 -0
- package/dist/motion/Marquee.js +80 -0
- package/dist/motion/Marquee.js.map +1 -0
- package/dist/motion/Parallax.d.ts +15 -0
- package/dist/motion/Parallax.d.ts.map +1 -0
- package/dist/motion/Parallax.js +81 -0
- package/dist/motion/Parallax.js.map +1 -0
- package/dist/motion/Reveal.d.ts +22 -0
- package/dist/motion/Reveal.d.ts.map +1 -0
- package/dist/motion/Reveal.js +78 -0
- package/dist/motion/Reveal.js.map +1 -0
- package/dist/motion/Stagger.d.ts +24 -0
- package/dist/motion/Stagger.d.ts.map +1 -0
- package/dist/motion/Stagger.js +53 -0
- package/dist/motion/Stagger.js.map +1 -0
- package/dist/motion/TiltCard.d.ts +12 -0
- package/dist/motion/TiltCard.d.ts.map +1 -0
- package/dist/motion/TiltCard.js +76 -0
- package/dist/motion/TiltCard.js.map +1 -0
- package/dist/motion/index.d.ts +22 -0
- package/dist/motion/index.d.ts.map +1 -0
- package/dist/motion/index.js +26 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/internal/inject.d.ts +8 -0
- package/dist/motion/internal/inject.d.ts.map +1 -0
- package/dist/motion/internal/inject.js +20 -0
- package/dist/motion/internal/inject.js.map +1 -0
- package/dist/motion/internal/reduced-motion.d.ts +8 -0
- package/dist/motion/internal/reduced-motion.d.ts.map +1 -0
- package/dist/motion/internal/reduced-motion.js +70 -0
- package/dist/motion/internal/reduced-motion.js.map +1 -0
- package/dist/motion/internal/use-in-view.d.ts +17 -0
- package/dist/motion/internal/use-in-view.d.ts.map +1 -0
- package/dist/motion/internal/use-in-view.js +71 -0
- package/dist/motion/internal/use-in-view.js.map +1 -0
- package/dist/native/booking/BookingCalendar.d.ts +44 -0
- package/dist/native/booking/BookingCalendar.d.ts.map +1 -0
- package/dist/native/booking/BookingCalendar.js +172 -0
- package/dist/native/booking/BookingCalendar.js.map +1 -0
- package/dist/native/booking/BookingSummary.d.ts +30 -0
- package/dist/native/booking/BookingSummary.d.ts.map +1 -0
- package/dist/native/booking/BookingSummary.js +59 -0
- package/dist/native/booking/BookingSummary.js.map +1 -0
- package/dist/native/booking/SlotPicker.d.ts +37 -0
- package/dist/native/booking/SlotPicker.d.ts.map +1 -0
- package/dist/native/booking/SlotPicker.js +50 -0
- package/dist/native/booking/SlotPicker.js.map +1 -0
- package/dist/native/booking/index.d.ts +19 -0
- package/dist/native/booking/index.d.ts.map +1 -0
- package/dist/native/booking/index.js +28 -0
- package/dist/native/booking/index.js.map +1 -0
- package/dist/native/commerce/CartLineItem.d.ts +42 -0
- package/dist/native/commerce/CartLineItem.d.ts.map +1 -0
- package/dist/native/commerce/CartLineItem.js +37 -0
- package/dist/native/commerce/CartLineItem.js.map +1 -0
- package/dist/native/commerce/CartSummary.d.ts +31 -0
- package/dist/native/commerce/CartSummary.d.ts.map +1 -0
- package/dist/native/commerce/CartSummary.js +37 -0
- package/dist/native/commerce/CartSummary.js.map +1 -0
- package/dist/native/commerce/EmptyState.d.ts +20 -0
- package/dist/native/commerce/EmptyState.d.ts.map +1 -0
- package/dist/native/commerce/EmptyState.js +40 -0
- package/dist/native/commerce/EmptyState.js.map +1 -0
- package/dist/native/commerce/GenerativeCover.d.ts +18 -0
- package/dist/native/commerce/GenerativeCover.d.ts.map +1 -0
- package/dist/native/commerce/GenerativeCover.js +51 -0
- package/dist/native/commerce/GenerativeCover.js.map +1 -0
- package/dist/native/commerce/OrderSummary.d.ts +46 -0
- package/dist/native/commerce/OrderSummary.d.ts.map +1 -0
- package/dist/native/commerce/OrderSummary.js +39 -0
- package/dist/native/commerce/OrderSummary.js.map +1 -0
- package/dist/native/commerce/PriceTag.d.ts +24 -0
- package/dist/native/commerce/PriceTag.d.ts.map +1 -0
- package/dist/native/commerce/PriceTag.js +32 -0
- package/dist/native/commerce/PriceTag.js.map +1 -0
- package/dist/native/commerce/ProductCard.d.ts +36 -0
- package/dist/native/commerce/ProductCard.d.ts.map +1 -0
- package/dist/native/commerce/ProductCard.js +37 -0
- package/dist/native/commerce/ProductCard.js.map +1 -0
- package/dist/native/commerce/ProductGrid.d.ts +22 -0
- package/dist/native/commerce/ProductGrid.d.ts.map +1 -0
- package/dist/native/commerce/ProductGrid.js +52 -0
- package/dist/native/commerce/ProductGrid.js.map +1 -0
- package/dist/native/commerce/QuantityStepper.d.ts +30 -0
- package/dist/native/commerce/QuantityStepper.d.ts.map +1 -0
- package/dist/native/commerce/QuantityStepper.js +59 -0
- package/dist/native/commerce/QuantityStepper.js.map +1 -0
- package/dist/native/commerce/StatusBadge.d.ts +13 -0
- package/dist/native/commerce/StatusBadge.d.ts.map +1 -0
- package/dist/native/commerce/StatusBadge.js +45 -0
- package/dist/native/commerce/StatusBadge.js.map +1 -0
- package/dist/native/commerce/index.d.ts +32 -0
- package/dist/native/commerce/index.d.ts.map +1 -0
- package/dist/native/commerce/index.js +36 -0
- package/dist/native/commerce/index.js.map +1 -0
- package/dist/native/commerce/internal/Gradient.d.ts +25 -0
- package/dist/native/commerce/internal/Gradient.d.ts.map +1 -0
- package/dist/native/commerce/internal/Gradient.js +22 -0
- package/dist/native/commerce/internal/Gradient.js.map +1 -0
- package/dist/native/commerce/money.d.ts +9 -0
- package/dist/native/commerce/money.d.ts.map +1 -0
- package/dist/native/commerce/money.js +12 -0
- package/dist/native/commerce/money.js.map +1 -0
- package/dist/native/marketing/CTABanner.d.ts +28 -0
- package/dist/native/marketing/CTABanner.d.ts.map +1 -0
- package/dist/native/marketing/CTABanner.js +50 -0
- package/dist/native/marketing/CTABanner.js.map +1 -0
- package/dist/native/marketing/EntityCard.d.ts +40 -0
- package/dist/native/marketing/EntityCard.d.ts.map +1 -0
- package/dist/native/marketing/EntityCard.js +43 -0
- package/dist/native/marketing/EntityCard.js.map +1 -0
- package/dist/native/marketing/FAQ.d.ts +26 -0
- package/dist/native/marketing/FAQ.d.ts.map +1 -0
- package/dist/native/marketing/FAQ.js +84 -0
- package/dist/native/marketing/FAQ.js.map +1 -0
- package/dist/native/marketing/FeatureGrid.d.ts +25 -0
- package/dist/native/marketing/FeatureGrid.d.ts.map +1 -0
- package/dist/native/marketing/FeatureGrid.js +34 -0
- package/dist/native/marketing/FeatureGrid.js.map +1 -0
- package/dist/native/marketing/Footer.d.ts +35 -0
- package/dist/native/marketing/Footer.d.ts.map +1 -0
- package/dist/native/marketing/Footer.js +53 -0
- package/dist/native/marketing/Footer.js.map +1 -0
- package/dist/native/marketing/GradientHero.d.ts +30 -0
- package/dist/native/marketing/GradientHero.d.ts.map +1 -0
- package/dist/native/marketing/GradientHero.js +57 -0
- package/dist/native/marketing/GradientHero.js.map +1 -0
- package/dist/native/marketing/LogoCloud.d.ts +17 -0
- package/dist/native/marketing/LogoCloud.d.ts.map +1 -0
- package/dist/native/marketing/LogoCloud.js +33 -0
- package/dist/native/marketing/LogoCloud.js.map +1 -0
- package/dist/native/marketing/PricingTable.d.ts +37 -0
- package/dist/native/marketing/PricingTable.d.ts.map +1 -0
- package/dist/native/marketing/PricingTable.js +64 -0
- package/dist/native/marketing/PricingTable.js.map +1 -0
- package/dist/native/marketing/SectionHeading.d.ts +24 -0
- package/dist/native/marketing/SectionHeading.d.ts.map +1 -0
- package/dist/native/marketing/SectionHeading.js +33 -0
- package/dist/native/marketing/SectionHeading.js.map +1 -0
- package/dist/native/marketing/StatBar.d.ts +37 -0
- package/dist/native/marketing/StatBar.d.ts.map +1 -0
- package/dist/native/marketing/StatBar.js +93 -0
- package/dist/native/marketing/StatBar.js.map +1 -0
- package/dist/native/marketing/Testimonials.d.ts +28 -0
- package/dist/native/marketing/Testimonials.d.ts.map +1 -0
- package/dist/native/marketing/Testimonials.js +50 -0
- package/dist/native/marketing/Testimonials.js.map +1 -0
- package/dist/native/marketing/index.d.ts +30 -0
- package/dist/native/marketing/index.d.ts.map +1 -0
- package/dist/native/marketing/index.js +36 -0
- package/dist/native/marketing/index.js.map +1 -0
- package/dist/native/media/Gallery.d.ts +28 -0
- package/dist/native/media/Gallery.d.ts.map +1 -0
- package/dist/native/media/Gallery.js +37 -0
- package/dist/native/media/Gallery.js.map +1 -0
- package/dist/native/media/Lightbox.d.ts +33 -0
- package/dist/native/media/Lightbox.d.ts.map +1 -0
- package/dist/native/media/Lightbox.js +108 -0
- package/dist/native/media/Lightbox.js.map +1 -0
- package/dist/native/media/MediaFigure.d.ts +21 -0
- package/dist/native/media/MediaFigure.d.ts.map +1 -0
- package/dist/native/media/MediaFigure.js +27 -0
- package/dist/native/media/MediaFigure.js.map +1 -0
- package/dist/native/media/index.d.ts +18 -0
- package/dist/native/media/index.d.ts.map +1 -0
- package/dist/native/media/index.js +20 -0
- package/dist/native/media/index.js.map +1 -0
- package/dist/native/motion/Reveal.d.ts +30 -0
- package/dist/native/motion/Reveal.d.ts.map +1 -0
- package/dist/native/motion/Reveal.js +90 -0
- package/dist/native/motion/Reveal.js.map +1 -0
- package/dist/native/motion/Stagger.d.ts +30 -0
- package/dist/native/motion/Stagger.d.ts.map +1 -0
- package/dist/native/motion/Stagger.js +57 -0
- package/dist/native/motion/Stagger.js.map +1 -0
- package/dist/native/motion/index.d.ts +19 -0
- package/dist/native/motion/index.d.ts.map +1 -0
- package/dist/native/motion/index.js +23 -0
- package/dist/native/motion/index.js.map +1 -0
- package/dist/native/primitives/Accordion.d.ts +23 -0
- package/dist/native/primitives/Accordion.d.ts.map +1 -0
- package/dist/native/primitives/Accordion.js +81 -0
- package/dist/native/primitives/Accordion.js.map +1 -0
- package/dist/native/primitives/Alert.d.ts +24 -0
- package/dist/native/primitives/Alert.d.ts.map +1 -0
- package/dist/native/primitives/Alert.js +43 -0
- package/dist/native/primitives/Alert.js.map +1 -0
- package/dist/native/primitives/AppShell.d.ts +23 -0
- package/dist/native/primitives/AppShell.d.ts.map +1 -0
- package/dist/native/primitives/AppShell.js +72 -0
- package/dist/native/primitives/AppShell.js.map +1 -0
- package/dist/native/primitives/AuthCard.d.ts +18 -0
- package/dist/native/primitives/AuthCard.d.ts.map +1 -0
- package/dist/native/primitives/AuthCard.js +22 -0
- package/dist/native/primitives/AuthCard.js.map +1 -0
- package/dist/native/primitives/Avatar.d.ts +16 -0
- package/dist/native/primitives/Avatar.d.ts.map +1 -0
- package/dist/native/primitives/Avatar.js +39 -0
- package/dist/native/primitives/Avatar.js.map +1 -0
- package/dist/native/primitives/AvatarGroup.d.ts +20 -0
- package/dist/native/primitives/AvatarGroup.d.ts.map +1 -0
- package/dist/native/primitives/AvatarGroup.js +33 -0
- package/dist/native/primitives/AvatarGroup.js.map +1 -0
- package/dist/native/primitives/Badge.d.ts +14 -0
- package/dist/native/primitives/Badge.d.ts.map +1 -0
- package/dist/native/primitives/Badge.js +36 -0
- package/dist/native/primitives/Badge.js.map +1 -0
- package/dist/native/primitives/Breadcrumb.d.ts +18 -0
- package/dist/native/primitives/Breadcrumb.d.ts.map +1 -0
- package/dist/native/primitives/Breadcrumb.js +59 -0
- package/dist/native/primitives/Breadcrumb.js.map +1 -0
- package/dist/native/primitives/Button.d.ts +24 -0
- package/dist/native/primitives/Button.d.ts.map +1 -0
- package/dist/native/primitives/Button.js +52 -0
- package/dist/native/primitives/Button.js.map +1 -0
- package/dist/native/primitives/Card.d.ts +12 -0
- package/dist/native/primitives/Card.d.ts.map +1 -0
- package/dist/native/primitives/Card.js +24 -0
- package/dist/native/primitives/Card.js.map +1 -0
- package/dist/native/primitives/ChatBubble.d.ts +16 -0
- package/dist/native/primitives/ChatBubble.d.ts.map +1 -0
- package/dist/native/primitives/ChatBubble.js +27 -0
- package/dist/native/primitives/ChatBubble.js.map +1 -0
- package/dist/native/primitives/Checkbox.d.ts +22 -0
- package/dist/native/primitives/Checkbox.d.ts.map +1 -0
- package/dist/native/primitives/Checkbox.js +30 -0
- package/dist/native/primitives/Checkbox.js.map +1 -0
- package/dist/native/primitives/Combobox.d.ts +32 -0
- package/dist/native/primitives/Combobox.d.ts.map +1 -0
- package/dist/native/primitives/Combobox.js +128 -0
- package/dist/native/primitives/Combobox.js.map +1 -0
- package/dist/native/primitives/CrudTable.d.ts +43 -0
- package/dist/native/primitives/CrudTable.d.ts.map +1 -0
- package/dist/native/primitives/CrudTable.js +128 -0
- package/dist/native/primitives/CrudTable.js.map +1 -0
- package/dist/native/primitives/DataTable.d.ts +36 -0
- package/dist/native/primitives/DataTable.d.ts.map +1 -0
- package/dist/native/primitives/DataTable.js +131 -0
- package/dist/native/primitives/DataTable.js.map +1 -0
- package/dist/native/primitives/DatePicker.d.ts +32 -0
- package/dist/native/primitives/DatePicker.d.ts.map +1 -0
- package/dist/native/primitives/DatePicker.js +219 -0
- package/dist/native/primitives/DatePicker.js.map +1 -0
- package/dist/native/primitives/Descriptions.d.ts +18 -0
- package/dist/native/primitives/Descriptions.d.ts.map +1 -0
- package/dist/native/primitives/Descriptions.js +30 -0
- package/dist/native/primitives/Descriptions.js.map +1 -0
- package/dist/native/primitives/Drawer.d.ts +21 -0
- package/dist/native/primitives/Drawer.d.ts.map +1 -0
- package/dist/native/primitives/Drawer.js +93 -0
- package/dist/native/primitives/Drawer.js.map +1 -0
- package/dist/native/primitives/Eyebrow.d.ts +21 -0
- package/dist/native/primitives/Eyebrow.d.ts.map +1 -0
- package/dist/native/primitives/Eyebrow.js +33 -0
- package/dist/native/primitives/Eyebrow.js.map +1 -0
- package/dist/native/primitives/Field.d.ts +21 -0
- package/dist/native/primitives/Field.d.ts.map +1 -0
- package/dist/native/primitives/Field.js +17 -0
- package/dist/native/primitives/Field.js.map +1 -0
- package/dist/native/primitives/ForgotPasswordForm.d.ts +14 -0
- package/dist/native/primitives/ForgotPasswordForm.d.ts.map +1 -0
- package/dist/native/primitives/ForgotPasswordForm.js +73 -0
- package/dist/native/primitives/ForgotPasswordForm.js.map +1 -0
- package/dist/native/primitives/Form.d.ts +16 -0
- package/dist/native/primitives/Form.d.ts.map +1 -0
- package/dist/native/primitives/Form.js +23 -0
- package/dist/native/primitives/Form.js.map +1 -0
- package/dist/native/primitives/GlassPanel.d.ts +25 -0
- package/dist/native/primitives/GlassPanel.d.ts.map +1 -0
- package/dist/native/primitives/GlassPanel.js +35 -0
- package/dist/native/primitives/GlassPanel.js.map +1 -0
- package/dist/native/primitives/GradientText.d.ts +29 -0
- package/dist/native/primitives/GradientText.d.ts.map +1 -0
- package/dist/native/primitives/GradientText.js +27 -0
- package/dist/native/primitives/GradientText.js.map +1 -0
- package/dist/native/primitives/Input.d.ts +20 -0
- package/dist/native/primitives/Input.d.ts.map +1 -0
- package/dist/native/primitives/Input.js +30 -0
- package/dist/native/primitives/Input.js.map +1 -0
- package/dist/native/primitives/Label.d.ts +10 -0
- package/dist/native/primitives/Label.d.ts.map +1 -0
- package/dist/native/primitives/Label.js +15 -0
- package/dist/native/primitives/Label.js.map +1 -0
- package/dist/native/primitives/List.d.ts +23 -0
- package/dist/native/primitives/List.d.ts.map +1 -0
- package/dist/native/primitives/List.js +37 -0
- package/dist/native/primitives/List.js.map +1 -0
- package/dist/native/primitives/LoginForm.d.ts +20 -0
- package/dist/native/primitives/LoginForm.d.ts.map +1 -0
- package/dist/native/primitives/LoginForm.js +78 -0
- package/dist/native/primitives/LoginForm.js.map +1 -0
- package/dist/native/primitives/Menu.d.ts +25 -0
- package/dist/native/primitives/Menu.d.ts.map +1 -0
- package/dist/native/primitives/Menu.js +88 -0
- package/dist/native/primitives/Menu.js.map +1 -0
- package/dist/native/primitives/MessageList.d.ts +12 -0
- package/dist/native/primitives/MessageList.d.ts.map +1 -0
- package/dist/native/primitives/MessageList.js +15 -0
- package/dist/native/primitives/MessageList.js.map +1 -0
- package/dist/native/primitives/Modal.d.ts +14 -0
- package/dist/native/primitives/Modal.d.ts.map +1 -0
- package/dist/native/primitives/Modal.js +36 -0
- package/dist/native/primitives/Modal.js.map +1 -0
- package/dist/native/primitives/NumberInput.d.ts +19 -0
- package/dist/native/primitives/NumberInput.d.ts.map +1 -0
- package/dist/native/primitives/NumberInput.js +58 -0
- package/dist/native/primitives/NumberInput.js.map +1 -0
- package/dist/native/primitives/Pagination.d.ts +19 -0
- package/dist/native/primitives/Pagination.d.ts.map +1 -0
- package/dist/native/primitives/Pagination.js +45 -0
- package/dist/native/primitives/Pagination.js.map +1 -0
- package/dist/native/primitives/PinInput.d.ts +17 -0
- package/dist/native/primitives/PinInput.d.ts.map +1 -0
- package/dist/native/primitives/PinInput.js +77 -0
- package/dist/native/primitives/PinInput.js.map +1 -0
- package/dist/native/primitives/Popconfirm.d.ts +20 -0
- package/dist/native/primitives/Popconfirm.d.ts.map +1 -0
- package/dist/native/primitives/Popconfirm.js +85 -0
- package/dist/native/primitives/Popconfirm.js.map +1 -0
- package/dist/native/primitives/Popover.d.ts +23 -0
- package/dist/native/primitives/Popover.d.ts.map +1 -0
- package/dist/native/primitives/Popover.js +80 -0
- package/dist/native/primitives/Popover.js.map +1 -0
- package/dist/native/primitives/Progress.d.ts +22 -0
- package/dist/native/primitives/Progress.d.ts.map +1 -0
- package/dist/native/primitives/Progress.js +40 -0
- package/dist/native/primitives/Progress.js.map +1 -0
- package/dist/native/primitives/RadioGroup.d.ts +26 -0
- package/dist/native/primitives/RadioGroup.d.ts.map +1 -0
- package/dist/native/primitives/RadioGroup.js +47 -0
- package/dist/native/primitives/RadioGroup.js.map +1 -0
- package/dist/native/primitives/Rating.d.ts +28 -0
- package/dist/native/primitives/Rating.d.ts.map +1 -0
- package/dist/native/primitives/Rating.js +39 -0
- package/dist/native/primitives/Rating.js.map +1 -0
- package/dist/native/primitives/Segmented.d.ts +19 -0
- package/dist/native/primitives/Segmented.d.ts.map +1 -0
- package/dist/native/primitives/Segmented.js +38 -0
- package/dist/native/primitives/Segmented.js.map +1 -0
- package/dist/native/primitives/Select.d.ts +29 -0
- package/dist/native/primitives/Select.d.ts.map +1 -0
- package/dist/native/primitives/Select.js +100 -0
- package/dist/native/primitives/Select.js.map +1 -0
- package/dist/native/primitives/Sidebar.d.ts +36 -0
- package/dist/native/primitives/Sidebar.d.ts.map +1 -0
- package/dist/native/primitives/Sidebar.js +48 -0
- package/dist/native/primitives/Sidebar.js.map +1 -0
- package/dist/native/primitives/SignupForm.d.ts +20 -0
- package/dist/native/primitives/SignupForm.d.ts.map +1 -0
- package/dist/native/primitives/SignupForm.js +78 -0
- package/dist/native/primitives/SignupForm.js.map +1 -0
- package/dist/native/primitives/Skeleton.d.ts +21 -0
- package/dist/native/primitives/Skeleton.d.ts.map +1 -0
- package/dist/native/primitives/Skeleton.js +65 -0
- package/dist/native/primitives/Skeleton.js.map +1 -0
- package/dist/native/primitives/Slider.d.ts +20 -0
- package/dist/native/primitives/Slider.d.ts.map +1 -0
- package/dist/native/primitives/Slider.js +102 -0
- package/dist/native/primitives/Slider.js.map +1 -0
- package/dist/native/primitives/Spinner.d.ts +13 -0
- package/dist/native/primitives/Spinner.d.ts.map +1 -0
- package/dist/native/primitives/Spinner.js +16 -0
- package/dist/native/primitives/Spinner.js.map +1 -0
- package/dist/native/primitives/Stack.d.ts +24 -0
- package/dist/native/primitives/Stack.d.ts.map +1 -0
- package/dist/native/primitives/Stack.js +37 -0
- package/dist/native/primitives/Stack.js.map +1 -0
- package/dist/native/primitives/StatusDot.d.ts +25 -0
- package/dist/native/primitives/StatusDot.d.ts.map +1 -0
- package/dist/native/primitives/StatusDot.js +81 -0
- package/dist/native/primitives/StatusDot.js.map +1 -0
- package/dist/native/primitives/StatusMessage.d.ts +20 -0
- package/dist/native/primitives/StatusMessage.d.ts.map +1 -0
- package/dist/native/primitives/StatusMessage.js +39 -0
- package/dist/native/primitives/StatusMessage.js.map +1 -0
- package/dist/native/primitives/Steps.d.ts +19 -0
- package/dist/native/primitives/Steps.d.ts.map +1 -0
- package/dist/native/primitives/Steps.js +38 -0
- package/dist/native/primitives/Steps.js.map +1 -0
- package/dist/native/primitives/Switch.d.ts +17 -0
- package/dist/native/primitives/Switch.d.ts.map +1 -0
- package/dist/native/primitives/Switch.js +83 -0
- package/dist/native/primitives/Switch.js.map +1 -0
- package/dist/native/primitives/Table.d.ts +21 -0
- package/dist/native/primitives/Table.d.ts.map +1 -0
- package/dist/native/primitives/Table.js +41 -0
- package/dist/native/primitives/Table.js.map +1 -0
- package/dist/native/primitives/Tabs.d.ts +19 -0
- package/dist/native/primitives/Tabs.d.ts.map +1 -0
- package/dist/native/primitives/Tabs.js +32 -0
- package/dist/native/primitives/Tabs.js.map +1 -0
- package/dist/native/primitives/Tag.d.ts +17 -0
- package/dist/native/primitives/Tag.d.ts.map +1 -0
- package/dist/native/primitives/Tag.js +37 -0
- package/dist/native/primitives/Tag.js.map +1 -0
- package/dist/native/primitives/Textarea.d.ts +23 -0
- package/dist/native/primitives/Textarea.d.ts.map +1 -0
- package/dist/native/primitives/Textarea.js +33 -0
- package/dist/native/primitives/Textarea.js.map +1 -0
- package/dist/native/primitives/Timeline.d.ts +20 -0
- package/dist/native/primitives/Timeline.d.ts.map +1 -0
- package/dist/native/primitives/Timeline.js +33 -0
- package/dist/native/primitives/Timeline.js.map +1 -0
- package/dist/native/primitives/Toast.d.ts +28 -0
- package/dist/native/primitives/Toast.d.ts.map +1 -0
- package/dist/native/primitives/Toast.js +121 -0
- package/dist/native/primitives/Toast.js.map +1 -0
- package/dist/native/primitives/Tooltip.d.ts +19 -0
- package/dist/native/primitives/Tooltip.d.ts.map +1 -0
- package/dist/native/primitives/Tooltip.js +67 -0
- package/dist/native/primitives/Tooltip.js.map +1 -0
- package/dist/native/primitives/Upload.d.ts +51 -0
- package/dist/native/primitives/Upload.d.ts.map +1 -0
- package/dist/native/primitives/Upload.js +86 -0
- package/dist/native/primitives/Upload.js.map +1 -0
- package/dist/native/primitives/XenitionUIProvider.d.ts +24 -0
- package/dist/native/primitives/XenitionUIProvider.d.ts.map +1 -0
- package/dist/native/primitives/XenitionUIProvider.js +20 -0
- package/dist/native/primitives/XenitionUIProvider.js.map +1 -0
- package/dist/native/primitives/index.d.ts +137 -0
- package/dist/native/primitives/index.d.ts.map +1 -0
- package/dist/native/primitives/index.js +157 -0
- package/dist/native/primitives/index.js.map +1 -0
- package/dist/native/primitives/internal/color.d.ts +15 -0
- package/dist/native/primitives/internal/color.d.ts.map +1 -0
- package/dist/native/primitives/internal/color.js +32 -0
- package/dist/native/primitives/internal/color.js.map +1 -0
- package/dist/native/primitives/internal/useReducedMotion.d.ts +2 -0
- package/dist/native/primitives/internal/useReducedMotion.d.ts.map +1 -0
- package/dist/native/primitives/internal/useReducedMotion.js +34 -0
- package/dist/native/primitives/internal/useReducedMotion.js.map +1 -0
- package/dist/native/theme/index.d.ts +51 -0
- package/dist/native/theme/index.d.ts.map +1 -0
- package/dist/native/theme/index.js +90 -0
- package/dist/native/theme/index.js.map +1 -0
- package/dist/primitives/Accordion.d.ts +17 -0
- package/dist/primitives/Accordion.d.ts.map +1 -0
- package/dist/primitives/Accordion.js +49 -0
- package/dist/primitives/Accordion.js.map +1 -0
- package/dist/primitives/Alert.d.ts +14 -0
- package/dist/primitives/Alert.d.ts.map +1 -0
- package/dist/primitives/Alert.js +50 -0
- package/dist/primitives/Alert.js.map +1 -0
- package/dist/primitives/AppShell.d.ts +22 -0
- package/dist/primitives/AppShell.d.ts.map +1 -0
- package/dist/primitives/AppShell.js +52 -0
- package/dist/primitives/AppShell.js.map +1 -0
- package/dist/primitives/AuthCard.d.ts +11 -0
- package/dist/primitives/AuthCard.d.ts.map +1 -0
- package/dist/primitives/AuthCard.js +11 -0
- package/dist/primitives/AuthCard.js.map +1 -0
- package/dist/primitives/Avatar.d.ts +12 -0
- package/dist/primitives/Avatar.d.ts.map +1 -0
- package/dist/primitives/Avatar.js +55 -0
- package/dist/primitives/Avatar.js.map +1 -0
- package/dist/primitives/AvatarGroup.d.ts +15 -0
- package/dist/primitives/AvatarGroup.d.ts.map +1 -0
- package/dist/primitives/AvatarGroup.js +18 -0
- package/dist/primitives/AvatarGroup.js.map +1 -0
- package/dist/primitives/Badge.d.ts +8 -0
- package/dist/primitives/Badge.d.ts.map +1 -0
- package/dist/primitives/Badge.js +52 -0
- package/dist/primitives/Badge.js.map +1 -0
- package/dist/primitives/Breadcrumb.d.ts +14 -0
- package/dist/primitives/Breadcrumb.d.ts.map +1 -0
- package/dist/primitives/Breadcrumb.js +47 -0
- package/dist/primitives/Breadcrumb.js.map +1 -0
- package/dist/primitives/Button.d.ts +27 -0
- package/dist/primitives/Button.d.ts.map +1 -0
- package/dist/primitives/Button.js +69 -0
- package/dist/primitives/Button.js.map +1 -0
- package/dist/primitives/Card.d.ts +5 -0
- package/dist/primitives/Card.d.ts.map +1 -0
- package/dist/primitives/Card.js +44 -0
- package/dist/primitives/Card.js.map +1 -0
- package/dist/primitives/ChatBubble.d.ts +10 -0
- package/dist/primitives/ChatBubble.d.ts.map +1 -0
- package/dist/primitives/ChatBubble.js +45 -0
- package/dist/primitives/ChatBubble.js.map +1 -0
- package/dist/primitives/Checkbox.d.ts +8 -0
- package/dist/primitives/Checkbox.d.ts.map +1 -0
- package/dist/primitives/Checkbox.js +44 -0
- package/dist/primitives/Checkbox.js.map +1 -0
- package/dist/primitives/Combobox.d.ts +15 -0
- package/dist/primitives/Combobox.d.ts.map +1 -0
- package/dist/primitives/Combobox.js +57 -0
- package/dist/primitives/Combobox.js.map +1 -0
- package/dist/primitives/CrudTable.d.ts +41 -0
- package/dist/primitives/CrudTable.d.ts.map +1 -0
- package/dist/primitives/CrudTable.js +109 -0
- package/dist/primitives/CrudTable.js.map +1 -0
- package/dist/primitives/DataTable.d.ts +30 -0
- package/dist/primitives/DataTable.d.ts.map +1 -0
- package/dist/primitives/DataTable.js +88 -0
- package/dist/primitives/DataTable.js.map +1 -0
- package/dist/primitives/DatePicker.d.ts +14 -0
- package/dist/primitives/DatePicker.d.ts.map +1 -0
- package/dist/primitives/DatePicker.js +12 -0
- package/dist/primitives/DatePicker.js.map +1 -0
- package/dist/primitives/Descriptions.d.ts +13 -0
- package/dist/primitives/Descriptions.d.ts.map +1 -0
- package/dist/primitives/Descriptions.js +10 -0
- package/dist/primitives/Descriptions.js.map +1 -0
- package/dist/primitives/Drawer.d.ts +13 -0
- package/dist/primitives/Drawer.d.ts.map +1 -0
- package/dist/primitives/Drawer.js +63 -0
- package/dist/primitives/Drawer.js.map +1 -0
- package/dist/primitives/Eyebrow.d.ts +19 -0
- package/dist/primitives/Eyebrow.d.ts.map +1 -0
- package/dist/primitives/Eyebrow.js +55 -0
- package/dist/primitives/Eyebrow.js.map +1 -0
- package/dist/primitives/Field.d.ts +19 -0
- package/dist/primitives/Field.d.ts.map +1 -0
- package/dist/primitives/Field.js +48 -0
- package/dist/primitives/Field.js.map +1 -0
- package/dist/primitives/ForgotPasswordForm.d.ts +10 -0
- package/dist/primitives/ForgotPasswordForm.d.ts.map +1 -0
- package/dist/primitives/ForgotPasswordForm.js +67 -0
- package/dist/primitives/ForgotPasswordForm.js.map +1 -0
- package/dist/primitives/Form.d.ts +8 -0
- package/dist/primitives/Form.d.ts.map +1 -0
- package/dist/primitives/Form.js +47 -0
- package/dist/primitives/Form.js.map +1 -0
- package/dist/primitives/GlassPanel.d.ts +20 -0
- package/dist/primitives/GlassPanel.d.ts.map +1 -0
- package/dist/primitives/GlassPanel.js +66 -0
- package/dist/primitives/GlassPanel.js.map +1 -0
- package/dist/primitives/GradientText.d.ts +26 -0
- package/dist/primitives/GradientText.d.ts.map +1 -0
- package/dist/primitives/GradientText.js +79 -0
- package/dist/primitives/GradientText.js.map +1 -0
- package/dist/primitives/Input.d.ts +8 -0
- package/dist/primitives/Input.d.ts.map +1 -0
- package/dist/primitives/Input.js +46 -0
- package/dist/primitives/Input.js.map +1 -0
- package/dist/primitives/Label.d.ts +8 -0
- package/dist/primitives/Label.d.ts.map +1 -0
- package/dist/primitives/Label.js +44 -0
- package/dist/primitives/Label.js.map +1 -0
- package/dist/primitives/List.d.ts +18 -0
- package/dist/primitives/List.d.ts.map +1 -0
- package/dist/primitives/List.js +13 -0
- package/dist/primitives/List.js.map +1 -0
- package/dist/primitives/LoginForm.d.ts +19 -0
- package/dist/primitives/LoginForm.d.ts.map +1 -0
- package/dist/primitives/LoginForm.js +75 -0
- package/dist/primitives/LoginForm.js.map +1 -0
- package/dist/primitives/Menu.d.ts +18 -0
- package/dist/primitives/Menu.d.ts.map +1 -0
- package/dist/primitives/Menu.js +50 -0
- package/dist/primitives/Menu.js.map +1 -0
- package/dist/primitives/MessageList.d.ts +5 -0
- package/dist/primitives/MessageList.d.ts.map +1 -0
- package/dist/primitives/MessageList.js +44 -0
- package/dist/primitives/MessageList.js.map +1 -0
- package/dist/primitives/Modal.d.ts +11 -0
- package/dist/primitives/Modal.d.ts.map +1 -0
- package/dist/primitives/Modal.js +56 -0
- package/dist/primitives/Modal.js.map +1 -0
- package/dist/primitives/NumberInput.d.ts +13 -0
- package/dist/primitives/NumberInput.d.ts.map +1 -0
- package/dist/primitives/NumberInput.js +13 -0
- package/dist/primitives/NumberInput.js.map +1 -0
- package/dist/primitives/Pagination.d.ts +14 -0
- package/dist/primitives/Pagination.d.ts.map +1 -0
- package/dist/primitives/Pagination.js +28 -0
- package/dist/primitives/Pagination.js.map +1 -0
- package/dist/primitives/PinInput.d.ts +11 -0
- package/dist/primitives/PinInput.d.ts.map +1 -0
- package/dist/primitives/PinInput.js +59 -0
- package/dist/primitives/PinInput.js.map +1 -0
- package/dist/primitives/Popconfirm.d.ts +12 -0
- package/dist/primitives/Popconfirm.d.ts.map +1 -0
- package/dist/primitives/Popconfirm.js +49 -0
- package/dist/primitives/Popconfirm.js.map +1 -0
- package/dist/primitives/Popover.d.ts +11 -0
- package/dist/primitives/Popover.d.ts.map +1 -0
- package/dist/primitives/Popover.js +48 -0
- package/dist/primitives/Popover.js.map +1 -0
- package/dist/primitives/Progress.d.ts +14 -0
- package/dist/primitives/Progress.d.ts.map +1 -0
- package/dist/primitives/Progress.js +51 -0
- package/dist/primitives/Progress.js.map +1 -0
- package/dist/primitives/RadioGroup.d.ts +17 -0
- package/dist/primitives/RadioGroup.d.ts.map +1 -0
- package/dist/primitives/RadioGroup.js +10 -0
- package/dist/primitives/RadioGroup.js.map +1 -0
- package/dist/primitives/Rating.d.ts +27 -0
- package/dist/primitives/Rating.d.ts.map +1 -0
- package/dist/primitives/Rating.js +59 -0
- package/dist/primitives/Rating.js.map +1 -0
- package/dist/primitives/Segmented.d.ts +14 -0
- package/dist/primitives/Segmented.d.ts.map +1 -0
- package/dist/primitives/Segmented.js +13 -0
- package/dist/primitives/Segmented.js.map +1 -0
- package/dist/primitives/Select.d.ts +12 -0
- package/dist/primitives/Select.d.ts.map +1 -0
- package/dist/primitives/Select.js +50 -0
- package/dist/primitives/Select.js.map +1 -0
- package/dist/primitives/Sidebar.d.ts +37 -0
- package/dist/primitives/Sidebar.d.ts.map +1 -0
- package/dist/primitives/Sidebar.js +62 -0
- package/dist/primitives/Sidebar.js.map +1 -0
- package/dist/primitives/SignupForm.d.ts +17 -0
- package/dist/primitives/SignupForm.d.ts.map +1 -0
- package/dist/primitives/SignupForm.js +73 -0
- package/dist/primitives/SignupForm.js.map +1 -0
- package/dist/primitives/Skeleton.d.ts +14 -0
- package/dist/primitives/Skeleton.d.ts.map +1 -0
- package/dist/primitives/Skeleton.js +53 -0
- package/dist/primitives/Skeleton.js.map +1 -0
- package/dist/primitives/Slider.d.ts +13 -0
- package/dist/primitives/Slider.d.ts.map +1 -0
- package/dist/primitives/Slider.js +10 -0
- package/dist/primitives/Slider.js.map +1 -0
- package/dist/primitives/Spinner.d.ts +8 -0
- package/dist/primitives/Spinner.d.ts.map +1 -0
- package/dist/primitives/Spinner.js +49 -0
- package/dist/primitives/Spinner.js.map +1 -0
- package/dist/primitives/Stack.d.ts +14 -0
- package/dist/primitives/Stack.d.ts.map +1 -0
- package/dist/primitives/Stack.js +66 -0
- package/dist/primitives/Stack.js.map +1 -0
- package/dist/primitives/StatusDot.d.ts +21 -0
- package/dist/primitives/StatusDot.d.ts.map +1 -0
- package/dist/primitives/StatusDot.js +76 -0
- package/dist/primitives/StatusDot.js.map +1 -0
- package/dist/primitives/StatusMessage.d.ts +17 -0
- package/dist/primitives/StatusMessage.d.ts.map +1 -0
- package/dist/primitives/StatusMessage.js +80 -0
- package/dist/primitives/StatusMessage.js.map +1 -0
- package/dist/primitives/Steps.d.ts +14 -0
- package/dist/primitives/Steps.d.ts.map +1 -0
- package/dist/primitives/Steps.js +18 -0
- package/dist/primitives/Steps.js.map +1 -0
- package/dist/primitives/Switch.d.ts +8 -0
- package/dist/primitives/Switch.d.ts.map +1 -0
- package/dist/primitives/Switch.js +44 -0
- package/dist/primitives/Switch.js.map +1 -0
- package/dist/primitives/Table.d.ts +21 -0
- package/dist/primitives/Table.d.ts.map +1 -0
- package/dist/primitives/Table.js +11 -0
- package/dist/primitives/Table.js.map +1 -0
- package/dist/primitives/Tabs.d.ts +13 -0
- package/dist/primitives/Tabs.d.ts.map +1 -0
- package/dist/primitives/Tabs.js +49 -0
- package/dist/primitives/Tabs.js.map +1 -0
- package/dist/primitives/Tag.d.ts +10 -0
- package/dist/primitives/Tag.d.ts.map +1 -0
- package/dist/primitives/Tag.js +51 -0
- package/dist/primitives/Tag.js.map +1 -0
- package/dist/primitives/Textarea.d.ts +8 -0
- package/dist/primitives/Textarea.d.ts.map +1 -0
- package/dist/primitives/Textarea.js +46 -0
- package/dist/primitives/Textarea.js.map +1 -0
- package/dist/primitives/Timeline.d.ts +15 -0
- package/dist/primitives/Timeline.d.ts.map +1 -0
- package/dist/primitives/Timeline.js +20 -0
- package/dist/primitives/Timeline.js.map +1 -0
- package/dist/primitives/Toast.d.ts +25 -0
- package/dist/primitives/Toast.d.ts.map +1 -0
- package/dist/primitives/Toast.js +79 -0
- package/dist/primitives/Toast.js.map +1 -0
- package/dist/primitives/Tooltip.d.ts +12 -0
- package/dist/primitives/Tooltip.d.ts.map +1 -0
- package/dist/primitives/Tooltip.js +51 -0
- package/dist/primitives/Tooltip.js.map +1 -0
- package/dist/primitives/Upload.d.ts +12 -0
- package/dist/primitives/Upload.d.ts.map +1 -0
- package/dist/primitives/Upload.js +60 -0
- package/dist/primitives/Upload.js.map +1 -0
- package/dist/primitives/Wordmark.d.ts +20 -0
- package/dist/primitives/Wordmark.d.ts.map +1 -0
- package/dist/primitives/Wordmark.js +55 -0
- package/dist/primitives/Wordmark.js.map +1 -0
- package/dist/primitives/cn.d.ts +3 -0
- package/dist/primitives/cn.d.ts.map +1 -0
- package/dist/primitives/cn.js +8 -0
- package/dist/primitives/cn.js.map +1 -0
- package/dist/primitives/index.d.ts +129 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +137 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/useDismiss.d.ts +8 -0
- package/dist/primitives/useDismiss.d.ts.map +1 -0
- package/dist/primitives/useDismiss.js +65 -0
- package/dist/primitives/useDismiss.js.map +1 -0
- package/dist/primitives/useForm.d.ts +24 -0
- package/dist/primitives/useForm.d.ts.map +1 -0
- package/dist/primitives/useForm.js +66 -0
- package/dist/primitives/useForm.js.map +1 -0
- package/dist/provider.d.ts +27 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +70 -0
- package/dist/provider.js.map +1 -0
- package/dist/tailwind-preset/index.d.ts +20 -0
- package/dist/tailwind-preset/index.d.ts.map +1 -0
- package/dist/tailwind-preset/index.js +24 -0
- package/dist/tailwind-preset/index.js.map +1 -0
- package/dist/theme/color.d.ts +54 -0
- package/dist/theme/color.d.ts.map +1 -0
- package/dist/theme/color.js +161 -0
- package/dist/theme/color.js.map +1 -0
- package/dist/theme/compile.d.ts +23 -0
- package/dist/theme/compile.d.ts.map +1 -0
- package/dist/theme/compile.js +174 -0
- package/dist/theme/compile.js.map +1 -0
- package/dist/theme/index.d.ts +23 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +53 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/outputs.d.ts +62 -0
- package/dist/theme/outputs.d.ts.map +1 -0
- package/dist/theme/outputs.js +198 -0
- package/dist/theme/outputs.js.map +1 -0
- package/dist/theme/types.d.ts +111 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +14 -0
- package/dist/theme/types.js.map +1 -0
- package/package.json +161 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Xenition
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
# @xenition/ui
|
|
2
|
+
|
|
3
|
+
Official UI kit for apps generated by the Xenition no-code builder. One npm
|
|
4
|
+
package, subpath exports per concern: a **seed-token theme compiler** with
|
|
5
|
+
WCAG-AA auto-contrast, a **Tailwind preset** bound to CSS variables, themed
|
|
6
|
+
**React primitives** (web), a dependency-free **motion layer**, composed
|
|
7
|
+
**marketing sections**, and a **resolved token layer** for React Native.
|
|
8
|
+
|
|
9
|
+
The reliability argument that moved backend logic into
|
|
10
|
+
[`@xenition/sdk`](https://github.com/xenition/node-sdk) moves *interface*
|
|
11
|
+
into this kit: the builder LLM wires tested components and writes a ~5-value
|
|
12
|
+
theme seed — it does not hallucinate JSX or hand-pick colors.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Development builds
|
|
18
|
+
npm install "github:xenition/ui-kit#develop"
|
|
19
|
+
|
|
20
|
+
# Production builds
|
|
21
|
+
npm install "github:xenition/ui-kit"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
npm publishing will follow in `1.0.0`, alongside `@xenition/sdk`. `react`
|
|
25
|
+
(>= 18) is a peer dependency.
|
|
26
|
+
|
|
27
|
+
## Seed-token theming
|
|
28
|
+
|
|
29
|
+
An app's entire look is authored as a tiny `theme.seed.json` — the only
|
|
30
|
+
theme input the LLM (or a settings form) ever writes:
|
|
31
|
+
|
|
32
|
+
```jsonc
|
|
33
|
+
{
|
|
34
|
+
"primary": "#7C3AED", // brand color
|
|
35
|
+
"accent": "#F59E0B", // optional; defaults to primary hue +40°
|
|
36
|
+
"neutral": "warm", // warm | cool | pure — gray ramp temperature
|
|
37
|
+
"font": { "heading": "Inter", "body": "Inter" },
|
|
38
|
+
"shape": "rounded", // sharp | rounded | pill → radius scale
|
|
39
|
+
"mode": "both" // light | dark | both
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`compileTheme(seed)` is a pure, deterministic, unit-tested function that
|
|
44
|
+
derives everything else:
|
|
45
|
+
|
|
46
|
+
- **11-step color ramps** (50–950) for primary, accent, and neutral.
|
|
47
|
+
- **Semantic slots** per mode: `surface`, `on-surface`, `primary`,
|
|
48
|
+
`on-primary`, `accent`, `on-accent`, `muted`, `border`, and fixed-hue
|
|
49
|
+
`success` / `warn` / `danger`.
|
|
50
|
+
- **Auto-contrast:** every `on-X`/`X` pair is adjusted in lightness until it
|
|
51
|
+
passes WCAG 2.1 AA (≥ 4.5:1). The adjustment is guaranteed to terminate —
|
|
52
|
+
a compiled theme can never ship an unreadable button.
|
|
53
|
+
- **Dark mode** derived by ramp inversion (50 ↔ 950).
|
|
54
|
+
- **Radius** scale from `shape`, plus spacing and typography scales.
|
|
55
|
+
|
|
56
|
+
Three outputs from one compiled theme:
|
|
57
|
+
|
|
58
|
+
| Output | Function | Consumer |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| CSS custom properties (`--xen-*`) | `toCssVars(theme)` | web runtime (injected by the provider) |
|
|
61
|
+
| Tailwind preset (var-bound) | `toTailwindPreset(theme)` | generated web app's Tailwind build |
|
|
62
|
+
| Resolved token object | `toNativeTokens(theme)` | React Native `StyleSheet` |
|
|
63
|
+
|
|
64
|
+
Invalid seeds throw descriptive errors — a bad theme is rejected at compile
|
|
65
|
+
time, never "best-effort applied".
|
|
66
|
+
|
|
67
|
+
## Usage (web)
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
import { XenitionUIProvider, Button, Card, Input, Stack } from '@xenition/ui';
|
|
71
|
+
import seed from './theme.seed.json';
|
|
72
|
+
|
|
73
|
+
export function App() {
|
|
74
|
+
return (
|
|
75
|
+
<XenitionUIProvider theme={seed}>
|
|
76
|
+
<Card>
|
|
77
|
+
<Stack gap="md">
|
|
78
|
+
<Input placeholder="Email" />
|
|
79
|
+
<Button variant="primary" size="lg">Sign up</Button>
|
|
80
|
+
</Stack>
|
|
81
|
+
</Card>
|
|
82
|
+
</XenitionUIProvider>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
// tailwind.config.js
|
|
89
|
+
const { compileTheme } = require('@xenition/ui/theme');
|
|
90
|
+
const { toTailwindPreset } = require('@xenition/ui/tailwind-preset');
|
|
91
|
+
const seed = require('./theme.seed.json');
|
|
92
|
+
|
|
93
|
+
module.exports = {
|
|
94
|
+
presets: [toTailwindPreset(compileTheme(seed))],
|
|
95
|
+
content: [
|
|
96
|
+
'./src/**/*.{ts,tsx}',
|
|
97
|
+
'./node_modules/@xenition/ui/dist/**/*.js', // kit classes must be purge-visible
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Because the preset maps `bg-primary`, `text-on-surface`, radii, and spacing
|
|
103
|
+
to `var(--xen-*)` references, swapping the injected variables restyles a
|
|
104
|
+
built app live — "restyle by prompt" is a data change, not a rebuild.
|
|
105
|
+
|
|
106
|
+
## Motion (`@xenition/ui/motion`)
|
|
107
|
+
|
|
108
|
+
Dependency-free scroll and pointer motion — CSS transitions +
|
|
109
|
+
`IntersectionObserver`, no framer-motion. Every component is SSR-safe
|
|
110
|
+
(window/observer access is guarded) and honors `prefers-reduced-motion`:
|
|
111
|
+
reduced-motion users get the final state instantly, with no animation.
|
|
112
|
+
|
|
113
|
+
| Component | What it does |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| `Reveal` | scroll-triggered entrance (`effect`: `fade-up` \| `fade` \| `slide-left` \| `slide-right` \| `zoom` \| `blur-in`; `delay`, `duration`, `once`, `threshold`) |
|
|
116
|
+
| `Stagger` | cascades child `Reveal`s with incremental delays (`interval`, `delay`) |
|
|
117
|
+
| `Parallax` | subtle translateY on scroll (rAF + passive listener; `speed` clamped ±0.5) |
|
|
118
|
+
| `AnimatedCounter` | counts up when scrolled into view (`to`, `from`, `duration`, `format`) |
|
|
119
|
+
| `Marquee` | infinite horizontal loop (`speed` px/s, `pauseOnHover`; duplicate copy is `aria-hidden`) |
|
|
120
|
+
| `TiltCard` | pointer-tracked 3D tilt (`maxTilt`, default 8°; off for touch + reduced motion) |
|
|
121
|
+
|
|
122
|
+
The `usePrefersReducedMotion()` and `useInView()` hooks are exported for
|
|
123
|
+
custom motion built on the same rules.
|
|
124
|
+
|
|
125
|
+
## Marketing sections (`@xenition/ui/marketing`)
|
|
126
|
+
|
|
127
|
+
Composed, slot-based sections for marketing-grade template sites. Styled
|
|
128
|
+
**only** via `--xen-*` tokens and the var-bound Tailwind preset — no literal
|
|
129
|
+
colors anywhere (unit-enforced) — so an entire template restyles from the
|
|
130
|
+
theme seed alone, dark mode included.
|
|
131
|
+
|
|
132
|
+
| Component | What it does |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| `AuroraBackground` | animated layered gradient: blurred ramp-colored blobs (primary/accent 400–700) drifting on slow keyframes; `variant`: `aurora` \| `mesh` \| `radial`; optional `grain` (inline feTurbulence) and `pattern`: `dots` \| `grid` |
|
|
135
|
+
| `GradientHero` | full-bleed hero over the aurora; slots: `eyebrow`, `title`, `subtitle`, `actions`, `media` |
|
|
136
|
+
| `Navbar` | sticky, backdrop-blur once scrolled, mobile disclosure menu; slots: `logo`, links (children), `actions` |
|
|
137
|
+
| `SectionHeading` | eyebrow + title + lede, `align` left/center |
|
|
138
|
+
| `FeatureGrid` / `FeatureCard` | responsive feature cards (icon slot, title, body, hover-lift) |
|
|
139
|
+
| `StatBar` / `Stat` | row of `AnimatedCounter` stats with prefix/suffix + label |
|
|
140
|
+
| `Testimonials` / `Testimonial` | quote cards, avatar-initials fallback, `mode`: `grid` \| `marquee` |
|
|
141
|
+
| `PricingTable` / `PricingTier` | tier cards, featured emphasis (token ring/scale + badge), checklists, action slot |
|
|
142
|
+
| `FAQ` / `FAQItem` | accessible accordion (`aria-expanded` + labelled region, animated height) |
|
|
143
|
+
| `CTABanner` | compact gradient band reusing the aurora machinery |
|
|
144
|
+
| `Footer` / `FooterColumn` | multi-column link groups + bottom bar |
|
|
145
|
+
| `LogoCloud` | dimmed logo slots that restore on hover |
|
|
146
|
+
| `ProductMock` | configurable fake-product hero panel (`variant`: `analytics` \| `chat` \| `commerce` \| `calendar`; KPI tiles, `chart`: `bars` \| `sparkline` \| `rings` \| `scene`, live event feed, pulsing badge, 3D entrance tilt); CSS-only animation, deterministic, `aria-hidden` |
|
|
147
|
+
| `BentoGrid` / `BentoCard` | asymmetric span-config feature grid (per-card `span`/`rowSpan`, icon tile, metric chip, micro-`visual` slot, token hover energy wash) |
|
|
148
|
+
| `ParticleField` | ambient particles (`mood`: `ember` \| `snow` \| `fireflies` \| `sparks`; `density`, `seed`); deterministic golden-ratio layout, static scatter under reduced motion; `computeParticles()` exported |
|
|
149
|
+
| `OrnamentRule` | editorial divider — fading gradient rule with `diamond` \| `dot` \| `line` ornament, `tone`: `accent` \| `primary` \| `border` |
|
|
150
|
+
| `PriceList` / `PriceRow` | dotted-leader price rows with ornamented group headings (menus, service lists, rate cards) |
|
|
151
|
+
| `GenerativeCover` | deterministic SVG cover art from `{ seed, form: arc \| bands \| orbit \| grid \| wave \| stack, ink, paper }` — two token color roles, seeded PRNG geometry, no stock imagery |
|
|
152
|
+
| `PointerHalo` | optional custom-cursor affordance — accent halo trailing the pointer, tightens over links, swells with a label over `[data-halo="grow"]`; fine-pointer only, reduced-motion/touch → renders nothing |
|
|
153
|
+
| `EditorialGrid` / `EditorialItem` | 12-column asymmetric overlap layout (`span`/`start`/`offset` per item, surface-backed `caption` slot, automatic z-order so overlaps slide under captions) |
|
|
154
|
+
| `SectionDivider` | section separator (`hairline` \| `ornament` \| `fade`), optionally parallax-capable via `parallax` speed |
|
|
155
|
+
| `EntityCard` | generic content/entity card that collapses the templates' bespoke `PostCard` / `ServiceCard` / `SpeakerCard` / `ListingCard` / `ProgramCard` — slots `{ title, eyebrow?, description?, meta?, media?: { imageUrl?, seed?, aspect? }, badge?, footer?, href? }`; composes `Card` + media (`<img>` or a seeded `GenerativeCover`) + `Eyebrow`; one card expresses a blog post, a service, a speaker, a listing, or a program by props alone |
|
|
156
|
+
|
|
157
|
+
The display primitives that keep recurring across templates live in
|
|
158
|
+
`@xenition/ui/primitives` (also re-exported from the root):
|
|
159
|
+
|
|
160
|
+
| Component | What it does |
|
|
161
|
+
| --- | --- |
|
|
162
|
+
| `GradientText` | ramp-driven clipped gradient text (`ramp`: `primary` \| `accent` \| `primary-accent` \| `accent-primary`, `angle`) |
|
|
163
|
+
| `Eyebrow` | tracked small-caps kicker label (`tone`, optional flanking rules, `align`) |
|
|
164
|
+
| `GlassPanel` | `color-mix` translucent blurred surface over the `surface`/`border` tokens (`intensity`: `soft` \| `regular` \| `strong`) |
|
|
165
|
+
| `StatusDot` | pulsing semantic status dot (`tone`: `success` \| `warn` \| `danger` \| `primary` \| `accent`; echo disabled under reduced motion; optional accessible `label`) |
|
|
166
|
+
| `Rating` | ★ rating row (`value`, `max`=5, `size`, `showValue`, `label`) — filled `accent` glyphs up to the rounded value, `muted` after; announced as one `role="img"` |
|
|
167
|
+
| `StatusMessage` | loading / empty / error feedback (`state`, optional `message`) — `loading` = a reduced-motion-safe CSS spinner + `role="status"`, `empty` = a `muted` message, `error` = a `danger`-token message + `role="alert"`; pairs with `@xenition/ui/data`'s `useResource` |
|
|
168
|
+
|
|
169
|
+
`AuroraBackground` is exported directly so templates can build custom
|
|
170
|
+
striking sections from the same machinery.
|
|
171
|
+
|
|
172
|
+
## Domain blocks — booking / media / commerce
|
|
173
|
+
|
|
174
|
+
Presentational components for the module-backed template families. Like the
|
|
175
|
+
marketing sections they are **token-only** (no literal colors — unit-enforced,
|
|
176
|
+
both modes verified) and **motion/reduced-motion safe**, but they carry no
|
|
177
|
+
data layer: every component takes its **data as props** (the shapes below
|
|
178
|
+
mirror the SDK module DTOs) and never fetches or imports an SDK. A template
|
|
179
|
+
wires them to `@xenition/ui/data` + `@xenition/sdk`; the kit just renders.
|
|
180
|
+
|
|
181
|
+
### Booking (`@xenition/ui/booking`)
|
|
182
|
+
|
|
183
|
+
Prop shapes mirror the booking module — a resource is
|
|
184
|
+
`{ name, timezone, slotMinutes }` and a slot is
|
|
185
|
+
`{ startsAt, endsAt, spotsLeft }` (instants are ISO-8601 strings).
|
|
186
|
+
|
|
187
|
+
| Component | What it does |
|
|
188
|
+
| --- | --- |
|
|
189
|
+
| `BookingCalendar` | month or `week` view highlighting days with availability (derived from `slots`, or a per-day `availability` summary, bucketed in `timezone`); ARIA `grid` with roving-tabindex cells and full keyboard nav (arrows/Home/End/PageUp-Down/Enter), availability shown as a dot **and** in the `aria-label`; `selectedDate`, `onSelectDate` |
|
|
190
|
+
| `SlotPicker` | grid of bookable times for a day; `slots`, `onPick(slot)`, `selected`, a `formatTime` override (default timezone-aware), remaining-spots hint, and disabled/`Full` when `spotsLeft === 0` |
|
|
191
|
+
| `BookingSummary` | read-only recap of the chosen resource + slot (date, time range, duration, timezone), optional `action` slot |
|
|
192
|
+
|
|
193
|
+
### Media (`@xenition/ui/media`)
|
|
194
|
+
|
|
195
|
+
Prop shapes mirror the media module — an album `{ title }` and items
|
|
196
|
+
`{ url, kind, caption, alt, width, height }`.
|
|
197
|
+
|
|
198
|
+
| Component | What it does |
|
|
199
|
+
| --- | --- |
|
|
200
|
+
| `Gallery` | responsive grid (+ `masonry` variant) of media items; `columns`, `onOpen(index)`, `loading="lazy"` images, aspect-ratio boxes reserved from `width`/`height` |
|
|
201
|
+
| `Lightbox` | fullscreen overlay viewer; `items`, `index` (`null` = closed), `onClose`/`onPrev`/`onNext`, `loop`; `role="dialog" aria-modal`, focus trap (enter on open, cycle on Tab, restore on close), keyboard (Esc/←/→), token-styled backdrop, opacity-only fade dropped under reduced motion |
|
|
202
|
+
| `MediaFigure` | a single item with its `<figcaption>`, in a reserved aspect-ratio box |
|
|
203
|
+
|
|
204
|
+
### Commerce (`@xenition/ui/commerce`)
|
|
205
|
+
|
|
206
|
+
Prop shapes mirror the catalog/cart/order module — Product `{ slug, title,
|
|
207
|
+
imageUrl }`, Variant `{ title, priceCents, currency, compareAtCents }`,
|
|
208
|
+
CartItem `{ title, variantTitle, quantity, unitPriceCents, imageUrl }`. **Money
|
|
209
|
+
is always integer cents**, formatted through the single exported
|
|
210
|
+
`formatMoney(cents, currency)` home (overridable per component via a
|
|
211
|
+
`formatMoney` prop).
|
|
212
|
+
|
|
213
|
+
| Component | What it does |
|
|
214
|
+
| --- | --- |
|
|
215
|
+
| `formatMoney` | the one cents → localized currency string util (`1200` → `"$12.00"`) |
|
|
216
|
+
| `PriceTag` | formatted price with an optional struck-through `compareAt` |
|
|
217
|
+
| `ProductCard` | media (image, or a seeded `GenerativeCover` fallback when no `imageUrl`), title, `PriceTag`, optional `onAdd`/`href` |
|
|
218
|
+
| `ProductGrid` | responsive grid of `ProductCard`s (`columns`) |
|
|
219
|
+
| `QuantityStepper` | −/n/+ control with `min`/`max` clamping (boundary button self-disables), `onChange` |
|
|
220
|
+
| `CartLineItem` | thumbnail, title + variant, `QuantityStepper`, line total (unit × qty), remove |
|
|
221
|
+
| `CartSummary` | subtotal / shipping (`Free` at 0) / tax / discount / total rows (all cents), `onCheckout` |
|
|
222
|
+
| `OrderSummary` / `CheckoutSummary` | read-only order recap — line items + totals + `StatusBadge` |
|
|
223
|
+
| `StatusBadge` | order-status pill using contrast-checked `X`/`on-X` semantic pairs |
|
|
224
|
+
| `EmptyState` | generic empty / no-results (empty cart, no matches) — icon slot, title, description, action |
|
|
225
|
+
|
|
226
|
+
### Composition, not creation
|
|
227
|
+
|
|
228
|
+
The kit owns the design; apps only compose. Every "bespoke" visual trick the
|
|
229
|
+
flagship templates shipped — the fake dashboard product shot, the bento
|
|
230
|
+
grid's hover wash, the ember sky, brass rules and dotted price leaders, the
|
|
231
|
+
generative cover plates, the studio cursor, the overlapping editorial grid —
|
|
232
|
+
now lives here as a configurable, token-pure, reduced-motion-safe component.
|
|
233
|
+
The same rule extends to the **domain blocks**: a booking flow, a photo
|
|
234
|
+
gallery + lightbox, a storefront grid, a cart drawer, or an order recap is
|
|
235
|
+
composed from `@xenition/ui/booking` · `/media` · `/commerce`, never
|
|
236
|
+
hand-written per template. It also extends to the **per-template card zoo**:
|
|
237
|
+
the bespoke `PostCard` / `ServiceCard` / `SpeakerCard` / `ListingCard` /
|
|
238
|
+
`ProgramCard` each template used to hand-build now collapse into a single
|
|
239
|
+
token-only `EntityCard` (marketing, web + native), the `Stars` widget into
|
|
240
|
+
`Rating`, and hand-rolled loading/empty/error blocks into `StatusMessage` —
|
|
241
|
+
one contract, restyled by seed, contrast-checked, reduced-motion-safe. Those components take data as props (no fetching,
|
|
242
|
+
no SDK import) and are styled by tokens alone, so the same booking calendar or
|
|
243
|
+
product grid restyles — light and dark — from the theme seed.
|
|
244
|
+
Templates and the no-code builder must compose these components (and the
|
|
245
|
+
`/motion` layer) rather than writing their own motion or color CSS.
|
|
246
|
+
**Bespoke visual code in a generated app is an anti-pattern:** it can't be
|
|
247
|
+
restyled by seed, isn't contrast-checked, and won't respect reduced motion.
|
|
248
|
+
If a design needs something the kit can't express, the fix is a new prop or
|
|
249
|
+
component *in the kit* — never a one-off in the app.
|
|
250
|
+
|
|
251
|
+
## Building a beautiful template
|
|
252
|
+
|
|
253
|
+
The showpiece pattern — an aurora hero, staggered reveals, and a counting
|
|
254
|
+
stat bar — is pure composition; not a single color is written:
|
|
255
|
+
|
|
256
|
+
```tsx
|
|
257
|
+
import { XenitionUIProvider, Button } from '@xenition/ui';
|
|
258
|
+
import { Reveal, Stagger } from '@xenition/ui/motion';
|
|
259
|
+
import {
|
|
260
|
+
GradientHero,
|
|
261
|
+
SectionHeading,
|
|
262
|
+
FeatureGrid,
|
|
263
|
+
FeatureCard,
|
|
264
|
+
StatBar,
|
|
265
|
+
Stat,
|
|
266
|
+
CTABanner,
|
|
267
|
+
} from '@xenition/ui/marketing';
|
|
268
|
+
import seed from './theme.seed.json';
|
|
269
|
+
|
|
270
|
+
export function LandingPage() {
|
|
271
|
+
return (
|
|
272
|
+
<XenitionUIProvider theme={seed}>
|
|
273
|
+
<GradientHero
|
|
274
|
+
variant="aurora"
|
|
275
|
+
grain
|
|
276
|
+
pattern="dots"
|
|
277
|
+
eyebrow="Now in beta"
|
|
278
|
+
title="Launch a themed site in minutes"
|
|
279
|
+
subtitle="Every color on this page comes from a 5-value theme seed."
|
|
280
|
+
actions={
|
|
281
|
+
<>
|
|
282
|
+
<Button size="lg">Get started</Button>
|
|
283
|
+
<Button size="lg" variant="secondary">Live demo</Button>
|
|
284
|
+
</>
|
|
285
|
+
}
|
|
286
|
+
/>
|
|
287
|
+
|
|
288
|
+
<SectionHeading align="center" eyebrow="Features" title="Why it works" />
|
|
289
|
+
<Stagger interval={120}>
|
|
290
|
+
<Reveal effect="fade-up"><FeatureCard title="Token-driven">Restyle by seed.</FeatureCard></Reveal>
|
|
291
|
+
<Reveal effect="fade-up"><FeatureCard title="Accessible">WCAG-AA by construction.</FeatureCard></Reveal>
|
|
292
|
+
<Reveal effect="fade-up"><FeatureCard title="Fast">No animation library.</FeatureCard></Reveal>
|
|
293
|
+
</Stagger>
|
|
294
|
+
|
|
295
|
+
<Reveal effect="zoom">
|
|
296
|
+
<StatBar>
|
|
297
|
+
<Stat to={12000} suffix="+" label="Sites generated" />
|
|
298
|
+
<Stat to={99} suffix="%" label="Lighthouse a11y" />
|
|
299
|
+
</StatBar>
|
|
300
|
+
</Reveal>
|
|
301
|
+
|
|
302
|
+
<CTABanner title="Ready?" action={<Button size="lg">Start free</Button>} />
|
|
303
|
+
</XenitionUIProvider>
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Swap the seed, and the aurora, buttons, rings, and patterns all follow —
|
|
309
|
+
"restyle by prompt" now covers the marketing site, not just the app shell.
|
|
310
|
+
|
|
311
|
+
## Usage (React Native)
|
|
312
|
+
|
|
313
|
+
The token layer alone is still available for bespoke styling —
|
|
314
|
+
`useXenitionTheme()` returns resolved hex/px values (RN cannot read CSS
|
|
315
|
+
variables):
|
|
316
|
+
|
|
317
|
+
```tsx
|
|
318
|
+
import {
|
|
319
|
+
XenitionNativeThemeProvider,
|
|
320
|
+
useXenitionTheme,
|
|
321
|
+
} from '@xenition/ui/native/theme';
|
|
322
|
+
|
|
323
|
+
function BuyButton() {
|
|
324
|
+
const { colors, tokens } = useXenitionTheme();
|
|
325
|
+
return (
|
|
326
|
+
<Pressable
|
|
327
|
+
style={{
|
|
328
|
+
backgroundColor: colors.primary,
|
|
329
|
+
borderRadius: tokens.radius.md,
|
|
330
|
+
padding: tokens.spacing.md,
|
|
331
|
+
}}
|
|
332
|
+
>
|
|
333
|
+
<Text style={{ color: colors.onPrimary }}>Buy</Text>
|
|
334
|
+
</Pressable>
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
But the kit now ships **genuine React Native components** under
|
|
340
|
+
`@xenition/ui/native/*` that mirror the web prop contracts exactly — a
|
|
341
|
+
template's mobile screen composes them 1:1 like the web page, swapping
|
|
342
|
+
web→native by import path only (`onClick` → `onPress` is the one idiomatic
|
|
343
|
+
change). They are real RN components (`View` / `Text` / `Pressable` /
|
|
344
|
+
`TextInput` / `Image` / `FlatList` / `Animated` — no DOM), styled **only**
|
|
345
|
+
from the compiled theme tokens (light + dark, restyle-by-seed), and
|
|
346
|
+
reduced-motion-safe via `AccessibilityInfo`.
|
|
347
|
+
|
|
348
|
+
```tsx
|
|
349
|
+
import { XenitionUIProvider, Button, Card, Stack } from '@xenition/ui/native/primitives';
|
|
350
|
+
import { ProductGrid, ProductCard, CartSummary } from '@xenition/ui/native/commerce';
|
|
351
|
+
import seed from './theme.seed.json';
|
|
352
|
+
|
|
353
|
+
export function Storefront() {
|
|
354
|
+
return (
|
|
355
|
+
<XenitionUIProvider theme={seed}>
|
|
356
|
+
<ProductGrid columns={2}>
|
|
357
|
+
<ProductCard title="Ceramic Mug" priceCents={2400} compareAtCents={3200} onAdd={add} />
|
|
358
|
+
<ProductCard title="Linen Napkin" priceCents={1800} imageUrl={url} />
|
|
359
|
+
</ProductGrid>
|
|
360
|
+
<CartSummary subtotalCents={4200} shippingCents={0} taxCents={336} totalCents={4536} onCheckout={checkout} />
|
|
361
|
+
</XenitionUIProvider>
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### `@xenition/ui/native/primitives`
|
|
367
|
+
|
|
368
|
+
`XenitionUIProvider` (native root), `Button` (`variant` primary/secondary/ghost,
|
|
369
|
+
`size` sm/md/lg, `onPress`, `disabled`, `loading`), `Card`, `Stack`
|
|
370
|
+
(`direction`/`gap`/`align`, plus an additive `justify`), `Input`
|
|
371
|
+
(`invalid` + optional `label`), `Eyebrow`, `StatusDot` (`Animated` pulse,
|
|
372
|
+
reduced-motion-safe), `Rating` (★ row — same `value`/`max`/`size`/`showValue`/
|
|
373
|
+
`label` contract as web), `StatusMessage` (loading `ActivityIndicator` / empty
|
|
374
|
+
`muted` / error `danger` feedback — same `state`/`message` contract as web),
|
|
375
|
+
`GlassPanel` (translucent `rgba` derived from the `surface` token),
|
|
376
|
+
`GradientText`, `EmptyState`, `PriceTag`, and `formatMoney` (re-exported from
|
|
377
|
+
the single commerce home).
|
|
378
|
+
|
|
379
|
+
> **Gradients on native.** RN has no `background-clip: text`, so `GradientText`
|
|
380
|
+
> uses a tasteful **solid-token fallback** (the ramp's mid step) rather than
|
|
381
|
+
> pulling in a masked-view dependency; the `angle` prop is accepted for parity
|
|
382
|
+
> but inert. Real gradient *surfaces* (the commerce cover placeholder) use
|
|
383
|
+
> `expo-linear-gradient` — an **optional** peer that every Expo consumer already
|
|
384
|
+
> has; absent it, those surfaces degrade to a solid token fill.
|
|
385
|
+
|
|
386
|
+
### `@xenition/ui/native/commerce`
|
|
387
|
+
|
|
388
|
+
`formatMoney`, `PriceTag`, `ProductCard`, `ProductGrid` (`FlatList`-backed),
|
|
389
|
+
`QuantityStepper`, `CartLineItem`, `CartSummary`, `OrderSummary` /
|
|
390
|
+
`CheckoutSummary`, `StatusBadge`, `EmptyState`, and a native `GenerativeCover`
|
|
391
|
+
image placeholder — all matching the web `@xenition/ui/commerce` prop APIs.
|
|
392
|
+
Money is integer **cents** throughout.
|
|
393
|
+
|
|
394
|
+
`react-native` is a peer dependency; `expo-linear-gradient` is an optional peer
|
|
395
|
+
(used for gradient cover placeholders).
|
|
396
|
+
|
|
397
|
+
### `@xenition/ui/native/marketing`
|
|
398
|
+
|
|
399
|
+
`EntityCard` — the native mirror of the web marketing `EntityCard`, with the
|
|
400
|
+
same slot contract (`href`→`onPress` is the idiomatic swap). Composes the native
|
|
401
|
+
`Card` + media (`Image`, or a seeded `GenerativeCover`) + `Eyebrow`, so one card
|
|
402
|
+
expresses a blog post, a service, a speaker, a listing, or a program by props
|
|
403
|
+
alone — mobile screens compose it 1:1 with the web page.
|
|
404
|
+
|
|
405
|
+
### `@xenition/ui/native/booking`
|
|
406
|
+
|
|
407
|
+
`BookingCalendar` (`View`/`Pressable` month/week grid — availability dots,
|
|
408
|
+
selected/disabled cells, `accessibilityState`; header chevrons change month),
|
|
409
|
+
`SlotPicker` (`FlatList` of time chips — full slots disabled with a `Full`
|
|
410
|
+
label, low-stock "{n} left" hint, `onPick`), and `BookingSummary` (resource +
|
|
411
|
+
slot recap card) — all matching the web `@xenition/ui/booking` prop APIs
|
|
412
|
+
(`onSelectDate`/`onPick` are the native event idioms). The pure date helpers
|
|
413
|
+
(`toDayKey`/`dayKeyInTz`/`monthMatrix`/`weekRow`/…) are re-exported from the
|
|
414
|
+
single web home, never duplicated.
|
|
415
|
+
|
|
416
|
+
### `@xenition/ui/native/media`
|
|
417
|
+
|
|
418
|
+
`Gallery` (`FlatList` grid — `numColumns`, `grid`/`masonry` from
|
|
419
|
+
`width`/`height` via the RN `aspectRatio` style, windowing gives the web's lazy
|
|
420
|
+
loading; `onOpen(index)`), `Lightbox` (a reduced-motion-safe transparent RN
|
|
421
|
+
`Modal` — token-styled backdrop, prev/next `Pressable` controls, and horizontal
|
|
422
|
+
swipe via `PanResponder` from RN core with **no** extra gesture dependency; the
|
|
423
|
+
Android back button routes through `onRequestClose` → `onClose`; renders nothing
|
|
424
|
+
for a `null`/out-of-range `index`), and `MediaFigure` (single image + caption) —
|
|
425
|
+
all matching the web `@xenition/ui/media` prop APIs (`onOpen`/`onActivate`/
|
|
426
|
+
`onClose`/`onPrev`/`onNext` are the native event idioms).
|
|
427
|
+
|
|
428
|
+
### `@xenition/ui/native/motion`
|
|
429
|
+
|
|
430
|
+
`Reveal` (`{children, effect: 'fade' | 'fade-up' | 'zoom', delay?, duration?}`) and
|
|
431
|
+
`Stagger` (sequences child `Reveal` delays), built on the RN `Animated` API only
|
|
432
|
+
(no animation library). On mobile the norm is a **mount** entrance, so `Reveal`
|
|
433
|
+
animates in on mount rather than on scroll; under the OS "Reduce Motion" setting
|
|
434
|
+
content renders immediately with animations off. The scroll/pointer-driven web
|
|
435
|
+
pieces — `Parallax`, `Marquee`, `TiltCard`, `AnimatedCounter` — are **web-only**
|
|
436
|
+
(they depend on scroll position / pointer events / `IntersectionObserver` with no
|
|
437
|
+
React Native analogue); use them from `@xenition/ui/motion` in web templates.
|
|
438
|
+
|
|
439
|
+
## Subpath layout
|
|
440
|
+
|
|
441
|
+
| Subpath | Contents |
|
|
442
|
+
| --- | --- |
|
|
443
|
+
| `@xenition/ui` | everything web: theme + primitives + `XenitionUIProvider` |
|
|
444
|
+
| `@xenition/ui/theme` | `compileTheme`, color/WCAG utilities, output functions |
|
|
445
|
+
| `@xenition/ui/tailwind-preset` | `toTailwindPreset` (also the default export) |
|
|
446
|
+
| `@xenition/ui/primitives` | `Button`, `Card`, `Input`, `Stack`, `GradientText`, `Eyebrow`, `GlassPanel`, `StatusDot`, `Rating`, `StatusMessage` |
|
|
447
|
+
| `@xenition/ui/motion` | `Reveal`, `Stagger`, `Parallax`, `AnimatedCounter`, `Marquee`, `TiltCard` |
|
|
448
|
+
| `@xenition/ui/data` | `useResource` hook + headless `Resource` (loading/error/empty branching) — pairs with `@xenition/sdk/client` |
|
|
449
|
+
| `@xenition/ui/marketing` | `GradientHero`, `AuroraBackground`, `Navbar`, `FeatureGrid`, `PricingTable`, `FAQ`, `ProductMock`, `BentoGrid`, `ParticleField`, `GenerativeCover`, `EditorialGrid`, `PointerHalo`, `EntityCard`, … |
|
|
450
|
+
| `@xenition/ui/booking` | `BookingCalendar`, `SlotPicker`, `BookingSummary` (+ `toDayKey` / `dayKeyInTz` / `formatTimeInTz` date helpers) |
|
|
451
|
+
| `@xenition/ui/media` | `Gallery`, `Lightbox`, `MediaFigure` |
|
|
452
|
+
| `@xenition/ui/commerce` | `formatMoney`, `PriceTag`, `ProductCard`, `ProductGrid`, `QuantityStepper`, `CartLineItem`, `CartSummary`, `OrderSummary` / `CheckoutSummary`, `StatusBadge`, `EmptyState` |
|
|
453
|
+
| `@xenition/ui/native/theme` | `XenitionNativeThemeProvider`, `useXenitionTheme` |
|
|
454
|
+
| `@xenition/ui/native/primitives` | `XenitionUIProvider`, `Button`, `Card`, `Stack`, `Input`, `Eyebrow`, `StatusDot`, `Rating`, `StatusMessage`, `GlassPanel`, `GradientText`, `EmptyState`, `PriceTag`, `formatMoney` (React Native) |
|
|
455
|
+
| `@xenition/ui/native/commerce` | `formatMoney`, `PriceTag`, `ProductCard`, `ProductGrid`, `QuantityStepper`, `CartLineItem`, `CartSummary`, `OrderSummary` / `CheckoutSummary`, `StatusBadge`, `EmptyState`, `GenerativeCover` (React Native) |
|
|
456
|
+
| `@xenition/ui/native/marketing` | `EntityCard` (React Native; mirrors the web marketing `EntityCard`, `href`→`onPress`) |
|
|
457
|
+
| `@xenition/ui/native/booking` | `BookingCalendar`, `SlotPicker`, `BookingSummary` (React Native; shares the web date helpers) |
|
|
458
|
+
| `@xenition/ui/native/media` | `Gallery` (`FlatList`), `Lightbox` (RN `Modal` + `PanResponder` swipe), `MediaFigure` (React Native) |
|
|
459
|
+
| `@xenition/ui/native/motion` | `Reveal` (mount entrance via `Animated`, reduced-motion-safe), `Stagger` (React Native) |
|
|
460
|
+
|
|
461
|
+
The `booking` / `media` / `commerce` families ship these as **presentational**
|
|
462
|
+
components (data-as-props, no fetching); the SDK-backed headless hooks that
|
|
463
|
+
feed them — wired through one root provider, à la `@xenition/ui/data` — land
|
|
464
|
+
alongside their SDK modules. Further families (`@xenition/ui/catalog`, …)
|
|
465
|
+
follow the same pattern as their modules land.
|
|
466
|
+
|
|
467
|
+
## Relation to @xenition/sdk
|
|
468
|
+
|
|
469
|
+
`@xenition/ui` is the interface half of the same moat: components are
|
|
470
|
+
SDK-backed and will accept the app's `XenitionClient` through the root
|
|
471
|
+
provider, so LLM wiring stays "provider once + drop components". The two
|
|
472
|
+
packages version together and are injected into generated apps the same way.
|
|
473
|
+
|
|
474
|
+
## Repository convention (private → public mirror)
|
|
475
|
+
|
|
476
|
+
This repo (`xenition/ui-kit-private`) is the source of truth where all work
|
|
477
|
+
happens; CI mirrors it to the public `xenition/ui-kit` on push — the same
|
|
478
|
+
convention as `node-sdk-private` → `node-sdk`. Unlike the SDK there is no
|
|
479
|
+
URL patching in the mirror step: the kit embeds no backend URLs (it receives
|
|
480
|
+
the client), so the split is purely source-visibility policy.
|
|
481
|
+
|
|
482
|
+
## Development
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
npm install # also builds (prepare)
|
|
486
|
+
npm test # jest (ts-jest)
|
|
487
|
+
npm run build # tsc → dist/
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
Hard rule (enforced by lint in CI): kit components consume **tokens only** —
|
|
491
|
+
no literal colors.
|
|
492
|
+
|
|
493
|
+
## License
|
|
494
|
+
|
|
495
|
+
MIT
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { BookingSlot } from './types';
|
|
3
|
+
export interface DayAvailability {
|
|
4
|
+
/** Civil day, `YYYY-MM-DD`. */
|
|
5
|
+
date: string;
|
|
6
|
+
/** Number of bookable openings that day. */
|
|
7
|
+
count: number;
|
|
8
|
+
}
|
|
9
|
+
export interface BookingCalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
10
|
+
/** Raw slots; availability per day is derived (bucketed in `timezone`). */
|
|
11
|
+
slots?: BookingSlot[];
|
|
12
|
+
/** Pre-summarized availability, as an alternative to `slots`. */
|
|
13
|
+
availability?: DayAvailability[];
|
|
14
|
+
/** Selected day. */
|
|
15
|
+
selectedDate?: Date | null;
|
|
16
|
+
/** Fired with the civil date when a day is chosen. */
|
|
17
|
+
onSelectDate?: (date: Date) => void;
|
|
18
|
+
/** IANA timezone slots are bucketed into (their civil day). */
|
|
19
|
+
timezone?: string;
|
|
20
|
+
/** `month` (6-week grid) or `week` (single row). Default `month`. */
|
|
21
|
+
view?: 'month' | 'week';
|
|
22
|
+
/** 0 = Sunday (default), 1 = Monday. */
|
|
23
|
+
weekStartsOn?: 0 | 1;
|
|
24
|
+
/** Locale for month/weekday labels. */
|
|
25
|
+
locale?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Month- or week-view date picker that highlights days with availability. Real
|
|
29
|
+
* `<button>` grid cells (roving `tabindex`) with full keyboard support — arrow
|
|
30
|
+
* keys move focus (wrapping across weeks/months), Home/End jump to the week
|
|
31
|
+
* ends, PageUp/PageDown change month, Enter/Space select — inside an ARIA
|
|
32
|
+
* `grid`. Token-only; availability is a dot + `aria-label` suffix, never color
|
|
33
|
+
* alone. Presentational: availability comes in as props (`slots` or a per-day
|
|
34
|
+
* `availability` summary); nothing is fetched.
|
|
35
|
+
*/
|
|
36
|
+
export declare const BookingCalendar: React.ForwardRefExoticComponent<BookingCalendarProps & React.RefAttributes<HTMLDivElement>>;
|
|
37
|
+
//# sourceMappingURL=BookingCalendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookingCalendar.d.ts","sourceRoot":"","sources":["../../src/booking/BookingCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUtC,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,2EAA2E;IAC3E,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,iEAAiE;IACjE,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,oBAAoB;IACpB,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoCD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,6FAoO3B,CAAC"}
|