@deriv-com/dds-marketing 1.0.2 → 1.1.1
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/.llm/components/awards.md +209 -0
- package/.llm/components/background.md +89 -40
- package/.llm/components/bottomsheet.md +5 -0
- package/.llm/components/comparisoncards.md +257 -0
- package/.llm/components/comparisontable.md +231 -0
- package/.llm/components/ctabanner.md +9 -12
- package/.llm/components/ctabannerslider.md +15 -2
- package/.llm/components/datatable.md +273 -0
- package/.llm/components/downloadbanner.md +283 -0
- package/.llm/components/featurecards.md +41 -3
- package/.llm/components/featurecardscarousel.md +311 -0
- package/.llm/components/featuresplit.md +5 -0
- package/.llm/components/featurestack.md +227 -0
- package/.llm/components/illustrationcard.md +2 -2
- package/.llm/components/illustrationscene.md +6 -10
- package/.llm/components/imagebanner.md +278 -0
- package/.llm/components/navbar.md +1 -1
- package/.llm/components/navbaritem.md +4 -0
- package/.llm/components/pageheader.md +4 -3
- package/.llm/components/paginationdots.md +6 -1
- package/.llm/components/producthero.md +35 -11
- package/.llm/components/resourcebanner.md +247 -0
- package/.llm/components/scenescroll.md +222 -0
- package/.llm/components/select.md +17 -0
- package/.llm/components/stats.md +219 -0
- package/.llm/components/steps.md +286 -0
- package/.llm/components/stickycards.md +251 -0
- package/.llm/components/tableheadercell.md +19 -0
- package/.llm/components/teamgrid.md +243 -0
- package/.llm/components/testimonialrow.md +5 -0
- package/.llm/components/testimonialslider.md +14 -1
- package/.llm/components/textarea.md +13 -0
- package/.llm/components/textinput.md +13 -0
- package/.llm/components/textscroll.md +187 -0
- package/.llm/components/tiers.md +227 -0
- package/.llm/digest/awards.md +45 -0
- package/.llm/digest/background.md +11 -10
- package/.llm/digest/bottomsheet.md +2 -0
- package/.llm/digest/comparisoncards.md +51 -0
- package/.llm/digest/comparisontable.md +53 -0
- package/.llm/digest/ctabanner.md +4 -4
- package/.llm/digest/ctabannerslider.md +4 -0
- package/.llm/digest/datatable.md +65 -0
- package/.llm/digest/downloadbanner.md +65 -0
- package/.llm/digest/featurecards.md +1 -1
- package/.llm/digest/featurecardscarousel.md +54 -0
- package/.llm/digest/featuresplit.md +1 -0
- package/.llm/digest/featurestack.md +48 -0
- package/.llm/digest/illustrationscene.md +2 -3
- package/.llm/digest/imagebanner.md +64 -0
- package/.llm/digest/navbaritem.md +1 -0
- package/.llm/digest/pageheader.md +2 -1
- package/.llm/digest/paginationdots.md +3 -1
- package/.llm/digest/producthero.md +4 -2
- package/.llm/digest/resourcebanner.md +53 -0
- package/.llm/digest/scenescroll.md +49 -0
- package/.llm/digest/select.md +5 -0
- package/.llm/digest/stats.md +46 -0
- package/.llm/digest/steps.md +55 -0
- package/.llm/digest/stickycards.md +52 -0
- package/.llm/digest/tableheadercell.md +4 -0
- package/.llm/digest/teamgrid.md +53 -0
- package/.llm/digest/testimonialrow.md +2 -0
- package/.llm/digest/testimonialslider.md +4 -0
- package/.llm/digest/textarea.md +4 -0
- package/.llm/digest/textinput.md +4 -0
- package/.llm/digest/textscroll.md +43 -0
- package/.llm/digest/tiers.md +50 -0
- package/.llm/index.md +19 -3
- package/.llm/tokens.md +26 -1
- package/AGENTS.md +17 -1
- package/dist/components/awards-data.d.ts +24 -0
- package/dist/components/awards-data.js +11 -0
- package/dist/components/block-image-data.d.ts +24 -0
- package/dist/components/block-image-data.js +9 -0
- package/dist/components/blocks/awards/Awards.css +134 -0
- package/dist/components/blocks/awards/Awards.d.ts +24 -0
- package/dist/components/blocks/awards/Awards.js +114 -0
- package/dist/components/blocks/awards/Awards.types.d.ts +31 -0
- package/dist/components/blocks/awards/Awards.types.js +16 -0
- package/dist/components/blocks/awards/awards-impl.css +222 -0
- package/dist/components/blocks/cards-of.d.ts +16 -0
- package/dist/components/blocks/cards-of.js +23 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.css +195 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.d.ts +24 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.js +75 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.types.d.ts +49 -0
- package/dist/components/blocks/comparison-cards/ComparisonCards.types.js +26 -0
- package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +262 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.css +111 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.d.ts +25 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.js +100 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.types.d.ts +36 -0
- package/dist/components/blocks/comparison-table/ComparisonTable.types.js +15 -0
- package/dist/components/blocks/comparison-table/comparison-table-impl.css +143 -0
- package/dist/components/blocks/cta-banner/CtaBanner.css +1 -0
- package/dist/components/blocks/cta-banner/CtaBanner.js +2 -2
- package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +4 -3
- package/dist/components/blocks/cta-banner/CtaBanner.types.js +1 -1
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +1 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +1 -1
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +6 -2
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +8 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +1 -1
- package/dist/components/blocks/data-table/DataTable.css +170 -0
- package/dist/components/blocks/data-table/DataTable.d.ts +29 -0
- package/dist/components/blocks/data-table/DataTable.js +84 -0
- package/dist/components/blocks/data-table/DataTable.types.d.ts +69 -0
- package/dist/components/blocks/data-table/DataTable.types.js +19 -0
- package/dist/components/blocks/data-table/data-table-impl.css +155 -0
- package/dist/components/blocks/download-banner/DownloadBanner.css +228 -0
- package/dist/components/blocks/download-banner/DownloadBanner.d.ts +28 -0
- package/dist/components/blocks/download-banner/DownloadBanner.js +75 -0
- package/dist/components/blocks/download-banner/DownloadBanner.types.d.ts +56 -0
- package/dist/components/blocks/download-banner/DownloadBanner.types.js +23 -0
- package/dist/components/blocks/download-banner/download-banner-impl.css +216 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.css +1 -0
- package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +3 -7
- package/dist/components/blocks/feature-bullets/FeatureBullets.css +1 -0
- package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +14 -1
- package/dist/components/blocks/feature-cards/FeatureCards.css +1 -0
- package/dist/components/blocks/feature-cards/FeatureCards.d.ts +2 -1
- package/dist/components/blocks/feature-cards/FeatureCards.js +4 -21
- package/dist/components/blocks/feature-cards/feature-cards-impl.css +10 -9
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.css +115 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.d.ts +30 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.js +160 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.d.ts +52 -0
- package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.js +17 -0
- package/dist/components/blocks/feature-cards-carousel/feature-cards-carousel-impl.css +207 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.css +1 -0
- package/dist/components/blocks/feature-split/FeatureSplit.css +1 -0
- package/dist/components/blocks/feature-split/feature-split-impl.css +14 -1
- package/dist/components/blocks/feature-stack/FeatureStack.css +86 -0
- package/dist/components/blocks/feature-stack/FeatureStack.d.ts +19 -0
- package/dist/components/blocks/feature-stack/FeatureStack.js +27 -0
- package/dist/components/blocks/feature-stack/FeatureStack.types.d.ts +34 -0
- package/dist/components/blocks/feature-stack/FeatureStack.types.js +14 -0
- package/dist/components/blocks/feature-stack/feature-stack-impl.css +87 -0
- package/dist/components/blocks/image-banner/ImageBanner.css +133 -0
- package/dist/components/blocks/image-banner/ImageBanner.d.ts +32 -0
- package/dist/components/blocks/image-banner/ImageBanner.js +41 -0
- package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +54 -0
- package/dist/components/blocks/image-banner/ImageBanner.types.js +14 -0
- package/dist/components/blocks/image-banner/image-banner-impl.css +281 -0
- package/dist/components/blocks/landing-hero/LandingHero.css +1 -0
- package/dist/components/blocks/logo-columns/LogoColumns.css +1 -0
- package/dist/components/blocks/logo-rows/LogoRows.css +1 -0
- package/dist/components/blocks/page-header/PageHeader.css +1 -0
- package/dist/components/blocks/page-header/PageHeader.js +2 -2
- package/dist/components/blocks/page-header/PageHeader.types.d.ts +4 -2
- package/dist/components/blocks/page-header/PageHeader.types.js +1 -1
- package/dist/components/blocks/page-header/page-header-impl.css +5 -3
- package/dist/components/blocks/product-hero/ProductHero.css +8 -3
- package/dist/components/blocks/product-hero/ProductHero.d.ts +1 -1
- package/dist/components/blocks/product-hero/ProductHero.js +5 -2
- package/dist/components/blocks/product-hero/ProductHero.types.d.ts +5 -1
- package/dist/components/blocks/product-hero/ProductHero.types.js +1 -0
- package/dist/components/blocks/product-hero/product-hero-impl.css +43 -12
- package/dist/components/blocks/resource-banner/ResourceBanner.css +106 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.d.ts +32 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.js +51 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.types.d.ts +44 -0
- package/dist/components/blocks/resource-banner/ResourceBanner.types.js +14 -0
- package/dist/components/blocks/resource-banner/resource-banner-impl.css +69 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.css +93 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.d.ts +36 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.js +54 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.types.d.ts +32 -0
- package/dist/components/blocks/scene-scroll/SceneScroll.types.js +15 -0
- package/dist/components/blocks/scene-scroll/scene-scroll-impl.css +275 -0
- package/dist/components/blocks/stats/Stats.css +139 -0
- package/dist/components/blocks/stats/Stats.d.ts +24 -0
- package/dist/components/blocks/stats/Stats.js +120 -0
- package/dist/components/blocks/stats/Stats.types.d.ts +36 -0
- package/dist/components/blocks/stats/Stats.types.js +19 -0
- package/dist/components/blocks/stats/stats-count.d.ts +34 -0
- package/dist/components/blocks/stats/stats-count.js +61 -0
- package/dist/components/blocks/stats/stats-impl.css +284 -0
- package/dist/components/blocks/stats/use-wheel.d.ts +37 -0
- package/dist/components/blocks/stats/use-wheel.js +126 -0
- package/dist/components/blocks/steps/Steps.css +202 -0
- package/dist/components/blocks/steps/Steps.d.ts +32 -0
- package/dist/components/blocks/steps/Steps.js +65 -0
- package/dist/components/blocks/steps/Steps.types.d.ts +48 -0
- package/dist/components/blocks/steps/Steps.types.js +21 -0
- package/dist/components/blocks/steps/steps-impl.css +216 -0
- package/dist/components/blocks/steps/use-turn.d.ts +33 -0
- package/dist/components/blocks/steps/use-turn.js +75 -0
- package/dist/components/blocks/sticky-cards/StickyCards.css +154 -0
- package/dist/components/blocks/sticky-cards/StickyCards.d.ts +35 -0
- package/dist/components/blocks/sticky-cards/StickyCards.js +153 -0
- package/dist/components/blocks/sticky-cards/StickyCards.types.d.ts +43 -0
- package/dist/components/blocks/sticky-cards/StickyCards.types.js +18 -0
- package/dist/components/blocks/sticky-cards/sticky-cards-impl.css +393 -0
- package/dist/components/blocks/team-grid/TeamGrid.css +159 -0
- package/dist/components/blocks/team-grid/TeamGrid.d.ts +28 -0
- package/dist/components/blocks/team-grid/TeamGrid.js +74 -0
- package/dist/components/blocks/team-grid/TeamGrid.types.d.ts +51 -0
- package/dist/components/blocks/team-grid/TeamGrid.types.js +20 -0
- package/dist/components/blocks/team-grid/team-grid-impl.css +129 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.css +1 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +1 -1
- package/dist/components/blocks/testimonial-row/TestimonialRow.js +4 -3
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +3 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +1 -1
- package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +8 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +1 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +1 -1
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +2 -2
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +8 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +1 -1
- package/dist/components/blocks/text-scroll/TextScroll.css +53 -0
- package/dist/components/blocks/text-scroll/TextScroll.d.ts +5 -0
- package/dist/components/blocks/text-scroll/TextScroll.js +71 -0
- package/dist/components/blocks/text-scroll/TextScroll.types.d.ts +22 -0
- package/dist/components/blocks/text-scroll/TextScroll.types.js +10 -0
- package/dist/components/blocks/text-scroll/text-scroll-impl.css +115 -0
- package/dist/components/blocks/tiers/Tiers.css +233 -0
- package/dist/components/blocks/tiers/Tiers.d.ts +32 -0
- package/dist/components/blocks/tiers/Tiers.js +68 -0
- package/dist/components/blocks/tiers/Tiers.types.d.ts +45 -0
- package/dist/components/blocks/tiers/Tiers.types.js +25 -0
- package/dist/components/blocks/tiers/tiers-impl.css +185 -0
- package/dist/components/blocks/use-rotation.d.ts +12 -2
- package/dist/components/blocks/use-rotation.js +6 -28
- package/dist/components/comparison-cards-data.d.ts +59 -0
- package/dist/components/comparison-cards-data.js +12 -0
- package/dist/components/comparison-table-data.d.ts +39 -0
- package/dist/components/comparison-table-data.js +11 -0
- package/dist/components/core/accordion-item/AccordionItem.css +1 -5
- package/dist/components/core/background/Background.css +23 -0
- package/dist/components/core/background/Background.d.ts +10 -4
- package/dist/components/core/background/Background.js +16 -7
- package/dist/components/core/background/Background.types.d.ts +11 -8
- package/dist/components/core/background/Background.types.js +3 -1
- package/dist/components/core/background/background-impl.css +334 -1
- package/dist/components/core/background/halftone.d.ts +11 -0
- package/dist/components/core/background/halftone.js +43 -3
- package/dist/components/core/background/patterns.d.ts +66 -0
- package/dist/components/core/background/patterns.js +244 -0
- package/dist/components/core/background/shader.d.ts +44 -0
- package/dist/components/core/background/shader.js +307 -0
- package/dist/components/core/background/use-shader.d.ts +11 -0
- package/dist/components/core/background/use-shader.js +25 -0
- package/dist/components/core/background/use-spotlight.d.ts +2 -1
- package/dist/components/core/background/use-spotlight.js +9 -1
- package/dist/components/core/bottom-sheet/BottomSheet.js +2 -2
- package/dist/components/core/bottom-sheet/BottomSheet.types.d.ts +3 -1
- package/dist/components/core/breadcrumb/Breadcrumb.d.ts +1 -0
- package/dist/components/core/breadcrumb/Breadcrumb.js +1 -0
- package/dist/components/core/breadcrumb/breadcrumb-impl.css +11 -0
- package/dist/components/core/button/button-impl.css +14 -1
- package/dist/components/core/illustration-card/IllustrationCard.js +1 -1
- package/dist/components/core/illustration-card/illustration-card-impl.css +20 -0
- package/dist/components/core/illustration-scene/IllustrationScene.css +4 -7
- package/dist/components/core/illustration-scene/IllustrationScene.types.d.ts +2 -3
- package/dist/components/core/illustration-scene/illustration-scene-impl.css +22 -1
- package/dist/components/core/link/Link.js +7 -3
- package/dist/components/core/link/link-impl.css +29 -2
- package/dist/components/core/navbar/Navbar.css +2 -2
- package/dist/components/core/navbar/Navbar.types.d.ts +1 -1
- package/dist/components/core/navbar-item/NavbarItem.d.ts +2 -1
- package/dist/components/core/navbar-item/NavbarItem.js +3 -10
- package/dist/components/core/navbar-item/NavbarItem.types.d.ts +4 -1
- package/dist/components/core/navbar-item/NavbarItem.types.js +1 -1
- package/dist/components/core/navbar-item/navbar-item-impl.css +10 -0
- package/dist/components/core/navbar-menu/navbar-menu-impl.css +9 -0
- package/dist/components/core/navbar-switcher/navbar-switcher-impl.css +19 -0
- package/dist/components/core/pagination/Pagination.js +1 -1
- package/dist/components/core/pagination/pagination-impl.css +9 -0
- package/dist/components/core/pagination-dots/PaginationDots.d.ts +1 -1
- package/dist/components/core/pagination-dots/PaginationDots.js +3 -3
- package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +3 -1
- package/dist/components/core/segmented-control/SegmentedControl.css +4 -3
- package/dist/components/core/segmented-control/SegmentedControl.js +17 -3
- package/dist/components/core/segmented-control-item/SegmentedControlItem.css +2 -1
- package/dist/components/core/select/Select.js +3 -3
- package/dist/components/core/select/Select.types.d.ts +11 -1
- package/dist/components/core/select/Select.types.js +1 -1
- package/dist/components/core/tab-list/TabList.js +9 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.d.ts +1 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.js +5 -2
- package/dist/components/core/table-header-cell/TableHeaderCell.types.d.ts +7 -1
- package/dist/components/core/table-header-cell/TableHeaderCell.types.js +1 -1
- package/dist/components/core/text-area/TextArea.d.ts +1 -1
- package/dist/components/core/text-area/TextArea.js +2 -2
- package/dist/components/core/text-area/TextArea.types.d.ts +9 -1
- package/dist/components/core/text-area/TextArea.types.js +1 -1
- package/dist/components/core/text-input/TextInput.d.ts +1 -1
- package/dist/components/core/text-input/TextInput.js +2 -2
- package/dist/components/core/text-input/TextInput.types.d.ts +9 -1
- package/dist/components/core/text-input/TextInput.types.js +1 -1
- package/dist/components/data-table-data.d.ts +33 -0
- package/dist/components/data-table-data.js +12 -0
- package/dist/components/download-banner-data.d.ts +52 -0
- package/dist/components/download-banner-data.js +11 -0
- package/dist/components/index.d.ts +45 -0
- package/dist/components/index.js +32 -0
- package/dist/components/resource-banner-data.d.ts +34 -0
- package/dist/components/resource-banner-data.js +13 -0
- package/dist/components/scene-scroll-data.d.ts +24 -0
- package/dist/components/scene-scroll-data.js +9 -0
- package/dist/components/stats-data.d.ts +28 -0
- package/dist/components/stats-data.js +11 -0
- package/dist/components/steps-data.d.ts +38 -0
- package/dist/components/steps-data.js +13 -0
- package/dist/components/sticky-cards-data.d.ts +43 -0
- package/dist/components/sticky-cards-data.js +12 -0
- package/dist/components/team-grid-data.d.ts +38 -0
- package/dist/components/team-grid-data.js +11 -0
- package/dist/components/tiers-data.d.ts +47 -0
- package/dist/components/tiers-data.js +13 -0
- package/dist/marketing.css +77 -28
- package/package.json +1 -1
|
@@ -96,7 +96,7 @@ function words(node) {
|
|
|
96
96
|
* reader tabbing out of a control has said they are done with it.
|
|
97
97
|
*/
|
|
98
98
|
export function Select(props) {
|
|
99
|
-
const { size = selectDefaults.size, status = selectDefaults.status, fixed = selectDefaults.fixed, label, labelTooltip, placeholder, helperText, value, defaultValue, onChange, open, defaultOpen, onOpenChange, searchable = selectDefaults.searchable, emptyLabel, required = selectDefaults.required, requiredMark = selectDefaults.requiredMark, optional = selectDefaults.optional, statusMessage, children, id, ...rest } = props;
|
|
99
|
+
const { size = selectDefaults.size, status = selectDefaults.status, fixed = selectDefaults.fixed, label, labelTooltip, placeholder, helperText, value, defaultValue, onChange, open, defaultOpen, onOpenChange, searchable = selectDefaults.searchable, emptyLabel, required = selectDefaults.required, requiredMark = selectDefaults.requiredMark, optional = selectDefaults.optional, requiredLabel = selectDefaults.requiredLabel, optionalLabel = selectDefaults.optionalLabel, labelTooltipLabel, searchLabel, statusMessage, children, id, ...rest } = props;
|
|
100
100
|
const fallbackId = useId();
|
|
101
101
|
const rootId = id ?? fallbackId;
|
|
102
102
|
const labelId = `${rootId}-label`;
|
|
@@ -473,7 +473,7 @@ export function Select(props) {
|
|
|
473
473
|
being read for the child ids below and then applied to nothing, so `<Select id="country">`
|
|
474
474
|
put "country" on no element at all and any anchor or `getElementById` naming it found
|
|
475
475
|
nothing. */
|
|
476
|
-
id: rootId, "data-size": size, "data-status": status, "data-fixed": String(fixed), children: [_jsxs("div", { className: selectParts['label-row'], children: [_jsxs("span", { className: selectParts.label, id: labelId, children: [label, required ? (_jsx("span", { className: selectParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' :
|
|
476
|
+
id: rootId, "data-size": size, "data-status": status, "data-fixed": String(fixed), children: [_jsxs("div", { className: selectParts['label-row'], children: [_jsxs("span", { className: selectParts.label, id: labelId, children: [label, required ? (_jsx("span", { className: selectParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' : requiredLabel })) : null, optional ? _jsx("span", { className: selectParts['optional-mark'], children: optionalLabel }) : null] }), given(labelTooltip) ? (_jsx(TooltipAnchor, { content: labelTooltip, placement: "top", children: _jsx("button", { type: "button", className: selectParts['label-tooltip'], "aria-label": labelTooltipLabel ?? `About ${label}`, children: _jsx(Icon, { size: selectGlyphStep[size], children: _jsx(CircleInfoRegularIcon, {}) }) }) })) : null] }), _jsxs("div", { className: selectParts.control, ref: box, children: [_jsxs("button", { ref: trigger, type: "button", className: selectParts.field, role: "combobox", "aria-labelledby": labelId, "aria-controls": listId, "aria-expanded": expanded, "aria-haspopup": "listbox", "aria-activedescendant": expanded && activeIndex !== -1 ? rowId(activeIndex) : undefined, "aria-invalid": status === 'error' || undefined, "aria-required": required || undefined, "aria-busy": checking || undefined, "aria-disabled": fixed || undefined, "aria-describedby": messageId, onClick: fixed ? undefined : () => (expanded ? setOpen(false) : openAt(onTheAnswer())), onKeyDown: fixed ? undefined : onKeyDown, ...rest, children: [_jsxs("span", { className: selectParts.answer, children: [taken?.props.leadingIcon, _jsx("span", { className: selectParts.value, "data-placeholder": taken === undefined || undefined, children: taken?.props.children ?? placeholder })] }), _jsx("span", { className: selectParts['trailing-icon'], "aria-hidden": "true", children: _jsx(Icon, { size: selectGlyphStep[size], children: _jsx(ChevronDownRegularIcon, { style: expanded ? { rotate: '180deg' } : undefined }) }) })] }), expanded ? (_jsxs("div", { className: selectParts.popup, children: [searchable ? (
|
|
477
477
|
/* The field the answers are narrowed with, above them rather than in the box — a
|
|
478
478
|
<ul> may hold options and little else, so this could not live in the list, and the
|
|
479
479
|
box below is a button, which nothing can be typed into. */
|
|
@@ -495,7 +495,7 @@ export function Select(props) {
|
|
|
495
495
|
arrives at without being told what it is for. Clipped rather than drawn, which
|
|
496
496
|
is SearchInput's own default — the placeholder below carries the words for an
|
|
497
497
|
eye. */
|
|
498
|
-
label: `Search ${label}`, placeholder: `Search ${label}`, clearLabel: "Clear search", value: query, onChange: narrow, "aria-controls": listId, "aria-activedescendant": activeIndex === -1 ? undefined : rowId(activeIndex), onKeyDown: onSearchKeyDown }) })) : null, _jsx("ul", { className: selectParts.listbox, id: listId, role: "listbox", "aria-labelledby": labelId, children: visible.map((option, index) => cloneElement(option, {
|
|
498
|
+
label: searchLabel ?? `Search ${label}`, placeholder: searchLabel ?? `Search ${label}`, clearLabel: "Clear search", value: query, onChange: narrow, "aria-controls": listId, "aria-activedescendant": activeIndex === -1 ? undefined : rowId(activeIndex), onKeyDown: onSearchKeyDown }) })) : null, _jsx("ul", { className: selectParts.listbox, id: listId, role: "listbox", "aria-labelledby": labelId, children: visible.map((option, index) => cloneElement(option, {
|
|
499
499
|
key: option.props.value ?? index,
|
|
500
500
|
id: rowId(index),
|
|
501
501
|
/* Marketing's Option is drawn at two steps where this control has three, so a
|
|
@@ -35,10 +35,18 @@ export interface SelectOwnProps {
|
|
|
35
35
|
* `asterisk` — Long or dense forms where the word repeats down the page and one legend can say it once instead. Only where that legend is visible from the fields it governs
|
|
36
36
|
*/
|
|
37
37
|
requiredMark?: 'text' | 'asterisk';
|
|
38
|
+
/** The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not. */
|
|
39
|
+
requiredLabel?: string;
|
|
40
|
+
/** The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is. */
|
|
41
|
+
optionalLabel?: string;
|
|
42
|
+
/** The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page. */
|
|
43
|
+
labelTooltipLabel?: string;
|
|
44
|
+
/** The name and placeholder of the search field a searchable list opens with. Without it the field reads "Search" and the label; pass it to translate that with the page. */
|
|
45
|
+
searchLabel?: string;
|
|
38
46
|
/** Allowed: Option */
|
|
39
47
|
children: ReactNode;
|
|
40
48
|
}
|
|
41
|
-
export type SelectProps = SelectOwnProps & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'size' | 'status' | 'fixed' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'value' | 'defaultValue' | 'onChange' | 'open' | 'defaultOpen' | 'onOpenChange' | 'searchable' | 'emptyLabel' | 'required' | 'requiredMark' | 'optional' | 'statusMessage'> & ({
|
|
49
|
+
export type SelectProps = SelectOwnProps & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'size' | 'status' | 'fixed' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'value' | 'defaultValue' | 'onChange' | 'open' | 'defaultOpen' | 'onOpenChange' | 'searchable' | 'emptyLabel' | 'required' | 'requiredMark' | 'optional' | 'statusMessage' | 'requiredLabel' | 'optionalLabel' | 'labelTooltipLabel' | 'searchLabel'> & ({
|
|
42
50
|
required?: boolean;
|
|
43
51
|
optional?: false;
|
|
44
52
|
} | {
|
|
@@ -87,6 +95,8 @@ export declare const selectDefaults: {
|
|
|
87
95
|
readonly required: false;
|
|
88
96
|
readonly requiredMark: "text";
|
|
89
97
|
readonly optional: false;
|
|
98
|
+
readonly requiredLabel: "required";
|
|
99
|
+
readonly optionalLabel: "optional";
|
|
90
100
|
};
|
|
91
101
|
/** The step this component draws a glyph slot at. Generated — do not retype. */
|
|
92
102
|
export declare const selectGlyphStep: {
|
|
@@ -21,6 +21,6 @@ export const selectParts = {
|
|
|
21
21
|
'message-icon': 'dds-select__message-icon',
|
|
22
22
|
};
|
|
23
23
|
/** Generated so defaults cannot drift from the contract. */
|
|
24
|
-
export const selectDefaults = { size: 'md', status: 'none', fixed: false, searchable: false, required: false, requiredMark: 'text', optional: false };
|
|
24
|
+
export const selectDefaults = { size: 'md', status: 'none', fixed: false, searchable: false, required: false, requiredMark: 'text', optional: false, requiredLabel: 'required', optionalLabel: 'optional' };
|
|
25
25
|
/** The step this component draws a glyph slot at. Generated — do not retype. */
|
|
26
26
|
export const selectGlyphStep = { sm: 'xs', md: 'sm', lg: 'sm' };
|
|
@@ -88,7 +88,15 @@ export function TabList({ label, value, onChange, children, ...rest }) {
|
|
|
88
88
|
// offsetLeft is measured from the nearest positioned ancestor, which the
|
|
89
89
|
// contract makes the list — so this is content-relative and travels with the
|
|
90
90
|
// scroll rather than needing it subtracted.
|
|
91
|
-
|
|
91
|
+
//
|
|
92
|
+
// Measured from the list's inline start, which is where the bar is anchored. offsetLeft
|
|
93
|
+
// is physical, so in a right-to-left strip it counted from the other edge and the bar sat
|
|
94
|
+
// a strip-width minus a tab to the right of the words it marks.
|
|
95
|
+
const rtl = getComputedStyle(list).direction === 'rtl';
|
|
96
|
+
setBar({
|
|
97
|
+
along: rtl ? content.offsetLeft + content.offsetWidth - list.clientWidth : content.offsetLeft,
|
|
98
|
+
length: content.offsetWidth,
|
|
99
|
+
});
|
|
92
100
|
}, [active]);
|
|
93
101
|
// Layout rather than a plain effect: between the two the bar would be painted
|
|
94
102
|
// at its previous place, which is a frame of the mark under the wrong tab.
|
|
@@ -18,4 +18,4 @@ export type { TableHeaderCellProps };
|
|
|
18
18
|
* than the data. It is also why the mark alone never carries the direction: the indicator is drawn
|
|
19
19
|
* and never announced.
|
|
20
20
|
*/
|
|
21
|
-
export declare function TableHeaderCell({ size, align, sortDirection, sortable, dividers, headerCase, onSort, children, ...rest }: TableHeaderCellProps): import("react").JSX.Element;
|
|
21
|
+
export declare function TableHeaderCell({ size, align, scope, sortDirection, sortable, dividers, headerCase, onSort, children, ...rest }: TableHeaderCellProps): import("react").JSX.Element;
|
|
@@ -21,7 +21,7 @@ import { tableHeaderCellDefaults, tableHeaderCellParts, } from './TableHeaderCel
|
|
|
21
21
|
* than the data. It is also why the mark alone never carries the direction: the indicator is drawn
|
|
22
22
|
* and never announced.
|
|
23
23
|
*/
|
|
24
|
-
export function TableHeaderCell({ size = tableHeaderCellDefaults.size, align = tableHeaderCellDefaults.align, sortDirection = tableHeaderCellDefaults.sortDirection, sortable = tableHeaderCellDefaults.sortable, dividers = tableHeaderCellDefaults.dividers, headerCase = tableHeaderCellDefaults.headerCase, onSort, children, ...rest }) {
|
|
24
|
+
export function TableHeaderCell({ size = tableHeaderCellDefaults.size, align = tableHeaderCellDefaults.align, scope = tableHeaderCellDefaults.scope, sortDirection = tableHeaderCellDefaults.sortDirection, sortable = tableHeaderCellDefaults.sortable, dividers = tableHeaderCellDefaults.dividers, headerCase = tableHeaderCellDefaults.headerCase, onSort, children, ...rest }) {
|
|
25
25
|
/*
|
|
26
26
|
* A header cell always truncates, so it declares no `overflow` — and the row hands one to every
|
|
27
27
|
* cell it holds, because a data cell's does change. Left in `rest` it reached the element as
|
|
@@ -30,5 +30,8 @@ export function TableHeaderCell({ size = tableHeaderCellDefaults.size, align = t
|
|
|
30
30
|
* the two decisions it answers itself.
|
|
31
31
|
*/
|
|
32
32
|
const { overflow: _overflow, ...attrs } = rest;
|
|
33
|
-
return (_jsx("th", { ...attrs, className: tableHeaderCellParts.root,
|
|
33
|
+
return (_jsx("th", { ...attrs, className: tableHeaderCellParts.root,
|
|
34
|
+
// `col` names the column beneath it; `row` names the row it opens — the instrument in a list of
|
|
35
|
+
// them — and a screen reader announces it before every value in that row.
|
|
36
|
+
scope: scope, "data-size": size, "data-align": align, "data-sort-direction": sortDirection, "data-dividers": dividers, "data-header-case": headerCase, "aria-sort": sortable ? sortDirection : undefined, children: !sortable ? (children) : (_jsxs("button", { type: "button", className: tableHeaderCellParts.trigger, onClick: () => onSort?.(), children: [children, _jsx("span", { className: tableHeaderCellParts.indicator, "aria-hidden": "true", children: _jsx(Icon, { size: "xs", children: sortDirection === 'ascending' ? (_jsx(ChevronUpRegularIcon, {})) : sortDirection === 'descending' ? (_jsx(ChevronDownRegularIcon, {})) : (_jsx(ArrowUpArrowDownRegularIcon, {})) }) })] })) }));
|
|
34
37
|
}
|
|
@@ -29,10 +29,15 @@ export interface TableHeaderCellOwnProps {
|
|
|
29
29
|
* `title` — Names drawn as they were written, at font.label.sm — twelve pixels, medium, ordinary tracking. Right where the names are long, are proper nouns whose own capitals capitals would flatten, or are in a script that has no case at all, and right wherever a product has decided its tables read as sentences rather than as labels
|
|
30
30
|
*/
|
|
31
31
|
headerCase?: 'upper' | 'title';
|
|
32
|
+
/**
|
|
33
|
+
* `col` — The default. A name in the header row, announced before every value beneath it
|
|
34
|
+
* `row` — The first cell of a data row when that cell is what the row is about — an instrument, a plan, a country — rather than one more value in it. It sits in the body, in a TableRow, where a TableCell would otherwise go
|
|
35
|
+
*/
|
|
36
|
+
scope?: 'col' | 'row';
|
|
32
37
|
/** Allowed: any content */
|
|
33
38
|
children: ReactNode;
|
|
34
39
|
}
|
|
35
|
-
export type TableHeaderCellProps = TableHeaderCellOwnProps & Omit<ThHTMLAttributes<HTMLTableCellElement>, 'className' | 'size' | 'align' | 'sortDirection' | 'dividers' | 'headerCase' | 'sortable' | 'onSort'> & ({
|
|
40
|
+
export type TableHeaderCellProps = TableHeaderCellOwnProps & Omit<ThHTMLAttributes<HTMLTableCellElement>, 'className' | 'size' | 'align' | 'sortDirection' | 'dividers' | 'headerCase' | 'scope' | 'sortable' | 'onSort'> & ({
|
|
36
41
|
sortable?: boolean;
|
|
37
42
|
onSort: () => void;
|
|
38
43
|
} | {
|
|
@@ -52,5 +57,6 @@ export declare const tableHeaderCellDefaults: {
|
|
|
52
57
|
readonly sortDirection: "none";
|
|
53
58
|
readonly dividers: "rows";
|
|
54
59
|
readonly headerCase: "upper";
|
|
60
|
+
readonly scope: "col";
|
|
55
61
|
readonly sortable: false;
|
|
56
62
|
};
|
|
@@ -6,4 +6,4 @@ export const tableHeaderCellParts = {
|
|
|
6
6
|
indicator: 'dds-tableheadercell__indicator',
|
|
7
7
|
};
|
|
8
8
|
/** Generated so defaults cannot drift from the contract. */
|
|
9
|
-
export const tableHeaderCellDefaults = { size: 'md', align: 'start', sortDirection: 'none', dividers: 'rows', headerCase: 'upper', sortable: false };
|
|
9
|
+
export const tableHeaderCellDefaults = { size: 'md', align: 'start', sortDirection: 'none', dividers: 'rows', headerCase: 'upper', scope: 'col', sortable: false };
|
|
@@ -10,4 +10,4 @@ export type { TextAreaProps };
|
|
|
10
10
|
* `rows` rather than inverting the two.
|
|
11
11
|
*/
|
|
12
12
|
export declare function linesFor(content: number, line: number, rows: number, maxRows: number): number;
|
|
13
|
-
export declare function TextArea({ size, status, label, labelTooltip, placeholder, helperText, rows, maxRows, maxLength, statusMessage, required, requiredMark, optional, ...rest }: TextAreaProps): import("react").JSX.Element;
|
|
13
|
+
export declare function TextArea({ size, status, label, labelTooltip, placeholder, helperText, rows, maxRows, maxLength, statusMessage, required, requiredMark, optional, requiredLabel, optionalLabel, labelTooltipLabel, ...rest }: TextAreaProps): import("react").JSX.Element;
|
|
@@ -35,7 +35,7 @@ const fieldGlyphStep = { sm: 'xs', md: 'xs', lg: 'sm' };
|
|
|
35
35
|
export function linesFor(content, line, rows, maxRows) {
|
|
36
36
|
return Math.min(Math.max(Math.ceil(content / line), rows), Math.max(maxRows, rows));
|
|
37
37
|
}
|
|
38
|
-
export function TextArea({ size = textAreaDefaults.size, status = textAreaDefaults.status, label, labelTooltip, placeholder, helperText, rows = textAreaDefaults.rows, maxRows = textAreaDefaults.maxRows, maxLength, statusMessage, required = textAreaDefaults.required, requiredMark = textAreaDefaults.requiredMark, optional = textAreaDefaults.optional, ...rest }) {
|
|
38
|
+
export function TextArea({ size = textAreaDefaults.size, status = textAreaDefaults.status, label, labelTooltip, placeholder, helperText, rows = textAreaDefaults.rows, maxRows = textAreaDefaults.maxRows, maxLength, statusMessage, required = textAreaDefaults.required, requiredMark = textAreaDefaults.requiredMark, optional = textAreaDefaults.optional, requiredLabel = textAreaDefaults.requiredLabel, optionalLabel = textAreaDefaults.optionalLabel, labelTooltipLabel, ...rest }) {
|
|
39
39
|
/**
|
|
40
40
|
* One id for the field, and one for whichever line is describing it.
|
|
41
41
|
*
|
|
@@ -121,7 +121,7 @@ export function TextArea({ size = textAreaDefaults.size, status = textAreaDefaul
|
|
|
121
121
|
const mark = status === 'error' || status === 'warning' || status === 'success';
|
|
122
122
|
const describedId = showsMessage ? `${base}-message` : showsHelper ? `${base}-helper` : undefined;
|
|
123
123
|
const counterId = `${base}-count`;
|
|
124
|
-
return (_jsxs("div", { className: textAreaParts.root, "data-size": size, "data-status": status, children: [_jsxs("div", { className: textAreaParts['label-row'], children: [_jsxs("label", { className: textAreaParts.label, htmlFor: fieldId, children: [label, required ? (_jsx("span", { className: textAreaParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' :
|
|
124
|
+
return (_jsxs("div", { className: textAreaParts.root, "data-size": size, "data-status": status, children: [_jsxs("div", { className: textAreaParts['label-row'], children: [_jsxs("label", { className: textAreaParts.label, htmlFor: fieldId, children: [label, required ? (_jsx("span", { className: textAreaParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' : requiredLabel })) : null, optional ? _jsx("span", { className: textAreaParts['optional-mark'], children: optionalLabel }) : null] }), given(labelTooltip) ? (_jsx(TooltipAnchor, { content: labelTooltip, placement: "top", children: _jsx("button", { type: "button", className: textAreaParts['label-tooltip'], "aria-label": labelTooltipLabel ?? `About ${label}`, children: _jsx(Icon, { size: fieldGlyphStep[size], children: _jsx(CircleInfoRegularIcon, {}) }) }) })) : null] }), _jsx("div", { className: textAreaParts.control, children: _jsx("textarea", { ref: field, className: textAreaParts.field, id: fieldId, rows: rows, placeholder: placeholder, maxLength: maxLength, ...rest,
|
|
125
125
|
/* After the spread, which is the whole point of it being here. `wrap="hard"` inserts
|
|
126
126
|
real newlines into the submitted value wherever the text happened to wrap on
|
|
127
127
|
screen, so what a person wrote and what a server receives differ and nothing warns
|
|
@@ -25,8 +25,14 @@ export interface TextAreaOwnProps {
|
|
|
25
25
|
* `asterisk` — Long or dense forms, where the word repeats down the page and one legend can say it once instead — and forms whose labels are too tight for a translated word, since "Required" becomes "Erforderlich" and an asterisk is the same width in every language. Only where a legend is visible from the fields it governs: across steps or a long scroll it is not, and the glyph then says nothing
|
|
26
26
|
*/
|
|
27
27
|
requiredMark?: 'text' | 'asterisk';
|
|
28
|
+
/** The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not. */
|
|
29
|
+
requiredLabel?: string;
|
|
30
|
+
/** The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is. */
|
|
31
|
+
optionalLabel?: string;
|
|
32
|
+
/** The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page. */
|
|
33
|
+
labelTooltipLabel?: string;
|
|
28
34
|
}
|
|
29
|
-
export type TextAreaProps = TextAreaOwnProps & Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'size' | 'status' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'rows' | 'maxRows' | 'maxLength' | 'statusMessage' | 'required' | 'requiredMark' | 'optional'> & ({
|
|
35
|
+
export type TextAreaProps = TextAreaOwnProps & Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'size' | 'status' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'rows' | 'maxRows' | 'maxLength' | 'statusMessage' | 'required' | 'requiredMark' | 'optional' | 'requiredLabel' | 'optionalLabel' | 'labelTooltipLabel'> & ({
|
|
30
36
|
required?: boolean;
|
|
31
37
|
optional?: false;
|
|
32
38
|
} | {
|
|
@@ -64,4 +70,6 @@ export declare const textAreaDefaults: {
|
|
|
64
70
|
readonly required: false;
|
|
65
71
|
readonly requiredMark: "text";
|
|
66
72
|
readonly optional: false;
|
|
73
|
+
readonly requiredLabel: "required";
|
|
74
|
+
readonly optionalLabel: "optional";
|
|
67
75
|
};
|
|
@@ -16,4 +16,4 @@ export const textAreaParts = {
|
|
|
16
16
|
counter: 'dds-textarea__counter',
|
|
17
17
|
};
|
|
18
18
|
/** Generated so defaults cannot drift from the contract. */
|
|
19
|
-
export const textAreaDefaults = { size: 'md', status: 'none', rows: 3, maxRows: 10, required: false, requiredMark: 'text', optional: false };
|
|
19
|
+
export const textAreaDefaults = { size: 'md', status: 'none', rows: 3, maxRows: 10, required: false, requiredMark: 'text', optional: false, requiredLabel: 'required', optionalLabel: 'optional' };
|
|
@@ -2,4 +2,4 @@ import './TextInput.css';
|
|
|
2
2
|
import './text-input-impl.css';
|
|
3
3
|
import { type TextInputProps } from './TextInput.types.js';
|
|
4
4
|
export type { TextInputProps };
|
|
5
|
-
export declare function TextInput({ size, status, type, label, labelTooltip, placeholder, helperText, statusMessage, leadingIcon, prefix, suffix, trailingIcon, clearable, clearLabel, required, requiredMark, optional, ...rest }: TextInputProps): import("react").JSX.Element;
|
|
5
|
+
export declare function TextInput({ size, status, type, label, labelTooltip, placeholder, helperText, statusMessage, leadingIcon, prefix, suffix, trailingIcon, clearable, clearLabel, required, requiredMark, optional, requiredLabel, optionalLabel, labelTooltipLabel, ...rest }: TextInputProps): import("react").JSX.Element;
|
|
@@ -29,7 +29,7 @@ const statusGlyph = {
|
|
|
29
29
|
* this is for the two marks the component draws itself, which track the text beside them.
|
|
30
30
|
*/
|
|
31
31
|
const fieldGlyphStep = { sm: 'xs', md: 'xs', lg: 'sm' };
|
|
32
|
-
export function TextInput({ size = textInputDefaults.size, status = textInputDefaults.status, type = textInputDefaults.type, label, labelTooltip, placeholder, helperText, statusMessage, leadingIcon, prefix, suffix, trailingIcon, clearable = textInputDefaults.clearable, clearLabel, required = textInputDefaults.required, requiredMark = textInputDefaults.requiredMark, optional = textInputDefaults.optional, ...rest }) {
|
|
32
|
+
export function TextInput({ size = textInputDefaults.size, status = textInputDefaults.status, type = textInputDefaults.type, label, labelTooltip, placeholder, helperText, statusMessage, leadingIcon, prefix, suffix, trailingIcon, clearable = textInputDefaults.clearable, clearLabel, required = textInputDefaults.required, requiredMark = textInputDefaults.requiredMark, optional = textInputDefaults.optional, requiredLabel = textInputDefaults.requiredLabel, optionalLabel = textInputDefaults.optionalLabel, labelTooltipLabel, ...rest }) {
|
|
33
33
|
/**
|
|
34
34
|
* One id for the field, and one for whichever line is describing it.
|
|
35
35
|
*
|
|
@@ -103,7 +103,7 @@ export function TextInput({ size = textInputDefaults.size, status = textInputDef
|
|
|
103
103
|
const showsHelper = given(helperText) && !reporting;
|
|
104
104
|
const described = showsMessage ? 'message' : showsHelper ? 'helper' : undefined;
|
|
105
105
|
const mark = status === 'error' || status === 'warning' || status === 'success';
|
|
106
|
-
return (_jsxs("div", { className: textInputParts.root, "data-size": size, "data-status": status, children: [_jsxs("div", { className: textInputParts['label-row'], children: [_jsxs("label", { className: textInputParts.label, htmlFor: fieldId, children: [label, required ? (_jsx("span", { className: textInputParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' :
|
|
106
|
+
return (_jsxs("div", { className: textInputParts.root, "data-size": size, "data-status": status, children: [_jsxs("div", { className: textInputParts['label-row'], children: [_jsxs("label", { className: textInputParts.label, htmlFor: fieldId, children: [label, required ? (_jsx("span", { className: textInputParts['required-mark'], "aria-hidden": "true", children: requiredMark === 'asterisk' ? '*' : requiredLabel })) : null, optional ? _jsx("span", { className: textInputParts['optional-mark'], children: optionalLabel }) : null] }), given(labelTooltip) ? (_jsx(TooltipAnchor, { content: labelTooltip, placement: "top", children: _jsx("button", { type: "button", className: textInputParts['label-tooltip'], "aria-label": labelTooltipLabel ?? `About ${label}`, children: _jsx(Icon, { size: fieldGlyphStep[size], children: _jsx(CircleInfoRegularIcon, {}) }) }) })) : null] }), _jsxs("div", { ref: controlRef, className: textInputParts.control,
|
|
107
107
|
// The inset belongs to the box, so an affix sits inside it — which leaves a strip
|
|
108
108
|
// of the box that is not the input, and clicking it would do nothing where a
|
|
109
109
|
// native input's own padding puts the caret in. Only when the box itself was hit:
|
|
@@ -39,8 +39,14 @@ export interface TextInputOwnProps {
|
|
|
39
39
|
* `asterisk` — A dense form where the word would repeat down the column, and a legend explains the mark once
|
|
40
40
|
*/
|
|
41
41
|
requiredMark?: 'text' | 'asterisk';
|
|
42
|
+
/** The word drawn beside the label when requiredMark is text. Translate it with the page: the mark exists to say what it means in the reader's own language, which an English default does not. */
|
|
43
|
+
requiredLabel?: string;
|
|
44
|
+
/** The word drawn beside the label of an optional field. Translate it with the page, as requiredLabel is. */
|
|
45
|
+
optionalLabel?: string;
|
|
46
|
+
/** The accessible name of the button that opens labelTooltip. Without it the button is named "About" and the label; pass it to translate that with the page. */
|
|
47
|
+
labelTooltipLabel?: string;
|
|
42
48
|
}
|
|
43
|
-
export type TextInputProps = TextInputOwnProps & Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'size' | 'status' | 'type' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'leadingIcon' | 'prefix' | 'suffix' | 'trailingIcon' | 'clearable' | 'clearLabel' | 'inputMode' | 'statusMessage' | 'required' | 'requiredMark' | 'optional'> & ({
|
|
49
|
+
export type TextInputProps = TextInputOwnProps & Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'size' | 'status' | 'type' | 'label' | 'labelTooltip' | 'placeholder' | 'helperText' | 'leadingIcon' | 'prefix' | 'suffix' | 'trailingIcon' | 'clearable' | 'clearLabel' | 'inputMode' | 'statusMessage' | 'required' | 'requiredMark' | 'optional' | 'requiredLabel' | 'optionalLabel' | 'labelTooltipLabel'> & ({
|
|
44
50
|
status?: 'none' | 'error' | 'warning' | 'success' | 'pending';
|
|
45
51
|
statusMessage: string;
|
|
46
52
|
} | {
|
|
@@ -87,6 +93,8 @@ export declare const textInputDefaults: {
|
|
|
87
93
|
readonly required: false;
|
|
88
94
|
readonly requiredMark: "text";
|
|
89
95
|
readonly optional: false;
|
|
96
|
+
readonly requiredLabel: "required";
|
|
97
|
+
readonly optionalLabel: "optional";
|
|
90
98
|
};
|
|
91
99
|
/** The step this component draws a glyph slot at. Generated — do not retype. */
|
|
92
100
|
export declare const textInputGlyphStep: {
|
|
@@ -19,6 +19,6 @@ export const textInputParts = {
|
|
|
19
19
|
'message-icon': 'dds-textinput__message-icon',
|
|
20
20
|
};
|
|
21
21
|
/** Generated so defaults cannot drift from the contract. */
|
|
22
|
-
export const textInputDefaults = { size: 'md', status: 'none', type: 'text', clearable: false, required: false, requiredMark: 'text', optional: false };
|
|
22
|
+
export const textInputDefaults = { size: 'md', status: 'none', type: 'text', clearable: false, required: false, requiredMark: 'text', optional: false, requiredLabel: 'required', optionalLabel: 'optional' };
|
|
23
23
|
/** The step this component draws a glyph slot at. Generated — do not retype. */
|
|
24
24
|
export const textInputGlyphStep = { sm: 'xs', md: 'sm', lg: 'sm' };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The columns a DataTable draws and the rows it fills them with.
|
|
3
|
+
*
|
|
4
|
+
* Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
|
|
5
|
+
* block whose content is a list is one whose consumer builds a value before passing it — and a
|
|
6
|
+
* listing of instruments is exactly that, read from a feed or a spreadsheet rather than written out
|
|
7
|
+
* as markup.
|
|
8
|
+
*
|
|
9
|
+
* Records rather than a component per row, because a row here is words and nothing else: the table
|
|
10
|
+
* searches every value in it, which it can only do if the values are strings it can read.
|
|
11
|
+
*/
|
|
12
|
+
/** One column: the key its values are read from in every row, and the name drawn over it. */
|
|
13
|
+
export interface DataTableColumn {
|
|
14
|
+
/** The field each row holds this column's value under. Unique across the columns. */
|
|
15
|
+
key: string;
|
|
16
|
+
/**
|
|
17
|
+
* The column's name, in the header row, as written — "Min spread", "Swap long (pts)". Announced
|
|
18
|
+
* before every value under it, so it is the whole of how a reader knows what a number means.
|
|
19
|
+
*/
|
|
20
|
+
label: string;
|
|
21
|
+
/**
|
|
22
|
+
* Where the column's values sit, TableCell's own choice. `start` for words, `end` for numbers a
|
|
23
|
+
* reader compares down the column — which also sets them in tabular figures, so the decimal points
|
|
24
|
+
* line up. Absent, `start`. The first column is the rows' names and is always at the start.
|
|
25
|
+
*/
|
|
26
|
+
align?: 'start' | 'center' | 'end';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* One row: each column's value under that column's `key`, as the page would print it — "1:1000",
|
|
30
|
+
* "-3.00", "Mon–Fri 00:00–21:00". A key the columns do not name is never drawn, and a column the row
|
|
31
|
+
* has no value for draws an empty cell rather than shifting the rest along.
|
|
32
|
+
*/
|
|
33
|
+
export type DataTableRow = Record<string, string>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The columns a DataTable draws and the rows it fills them with.
|
|
3
|
+
*
|
|
4
|
+
* Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
|
|
5
|
+
* block whose content is a list is one whose consumer builds a value before passing it — and a
|
|
6
|
+
* listing of instruments is exactly that, read from a feed or a spreadsheet rather than written out
|
|
7
|
+
* as markup.
|
|
8
|
+
*
|
|
9
|
+
* Records rather than a component per row, because a row here is words and nothing else: the table
|
|
10
|
+
* searches every value in it, which it can only do if the values are strings it can read.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The badges a DownloadBanner lays out, and the QR code it sets beside them.
|
|
3
|
+
*
|
|
4
|
+
* Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
|
|
5
|
+
* list is one whose consumer builds a value before passing it.
|
|
6
|
+
*
|
|
7
|
+
* Records rather than an element per badge, because a badge is a place to go and the store it is
|
|
8
|
+
* in — nothing in it is the page's to draw. The artwork is the store's own, and the component
|
|
9
|
+
* picks it from the platform rather than taking a picture the page might redraw.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Where a badge sends the reader, which is also which store's artwork it carries.
|
|
13
|
+
*
|
|
14
|
+
* - `app-store` — Apple's App Store, for an iPhone or iPad app.
|
|
15
|
+
* - `google-play` — Google Play, for an Android app.
|
|
16
|
+
* - `app-gallery` — Huawei's AppGallery, for an Android app on a Huawei phone.
|
|
17
|
+
* - `android-apk` — the Android package itself, downloaded directly rather than from a store.
|
|
18
|
+
* - `mac-app-store` — the Mac App Store, for a desktop app on a Mac.
|
|
19
|
+
* - `macos-dmg` — the Mac disk image itself, downloaded directly.
|
|
20
|
+
* - `windows-store` — the Microsoft Store, for a desktop app on Windows.
|
|
21
|
+
* - `windows-exe` — the Windows installer itself, downloaded directly.
|
|
22
|
+
* - `linux` — a Linux build, downloaded directly.
|
|
23
|
+
* - `web` — the product in a browser, for a reader who would rather not install anything.
|
|
24
|
+
*/
|
|
25
|
+
export type DownloadBannerPlatform = 'app-store' | 'google-play' | 'app-gallery' | 'android-apk' | 'mac-app-store' | 'macos-dmg' | 'windows-store' | 'windows-exe' | 'linux' | 'web';
|
|
26
|
+
/** One badge in a DownloadBanner: which store, and where in it. */
|
|
27
|
+
export interface DownloadBannerBadge {
|
|
28
|
+
/** Which store or download this is. It decides the artwork, and the words the badge is named by. */
|
|
29
|
+
platform: DownloadBannerPlatform;
|
|
30
|
+
/** Where the badge goes — the product's own page in that store, or the file itself. */
|
|
31
|
+
href: string;
|
|
32
|
+
/**
|
|
33
|
+
* The badge's accessible name. Without it the badge is named by the words its artwork carries —
|
|
34
|
+
* "Download on the App Store" — which is what a reader who can see it reads, and what a reader
|
|
35
|
+
* using speech input says to press it. Give it to add to those words, never to replace them: the
|
|
36
|
+
* name has to contain the artwork's own words, or a reader saying what they see cannot press it
|
|
37
|
+
* (WCAG 2.5.3, label in name).
|
|
38
|
+
*/
|
|
39
|
+
label?: string;
|
|
40
|
+
}
|
|
41
|
+
/** The QR code a DownloadBanner sets beside its heading from the fold, and the line telling the reader to scan it. */
|
|
42
|
+
export interface DownloadBannerQr {
|
|
43
|
+
/**
|
|
44
|
+
* The QR code, as an image the page supplies — encoding the same destination the badges reach.
|
|
45
|
+
* Square, dark on a light quiet zone of its own, so it scans on any ground.
|
|
46
|
+
*/
|
|
47
|
+
src: string;
|
|
48
|
+
/** What the code is for, read in its place: "QR code to download the Deriv app". */
|
|
49
|
+
alt: string;
|
|
50
|
+
/** The line beside the code telling the reader what to do with it: "Scan to download". */
|
|
51
|
+
label: string;
|
|
52
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The badges a DownloadBanner lays out, and the QR code it sets beside them.
|
|
3
|
+
*
|
|
4
|
+
* Exported from the package for the reason `testimonial-row-data.ts` is: a block whose content is a
|
|
5
|
+
* list is one whose consumer builds a value before passing it.
|
|
6
|
+
*
|
|
7
|
+
* Records rather than an element per badge, because a badge is a place to go and the store it is
|
|
8
|
+
* in — nothing in it is the page's to draw. The artwork is the store's own, and the component
|
|
9
|
+
* picks it from the platform rather than taking a picture the page might redraw.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -4,6 +4,8 @@ export { AccordionItem, type AccordionItemProps } from './core/accordion-item/Ac
|
|
|
4
4
|
export { accordionItemParts, accordionItemDefaults } from './core/accordion-item/AccordionItem.types.js';
|
|
5
5
|
export { AspectRatio, type AspectRatioProps } from './layout/aspect-ratio/AspectRatio.js';
|
|
6
6
|
export { aspectRatioParts, aspectRatioDefaults } from './layout/aspect-ratio/AspectRatio.types.js';
|
|
7
|
+
export { Awards, type AwardsProps } from './blocks/awards/Awards.js';
|
|
8
|
+
export { awardsParts, awardsDefaults } from './blocks/awards/Awards.types.js';
|
|
7
9
|
export { Background, type BackgroundProps } from './core/background/Background.js';
|
|
8
10
|
export { backgroundParts, backgroundDefaults } from './core/background/Background.types.js';
|
|
9
11
|
export { Badge, type BadgeProps } from './core/badge/Badge.js';
|
|
@@ -26,12 +28,20 @@ export { CardButton, type CardButtonProps } from './core/card-button/CardButton.
|
|
|
26
28
|
export { cardButtonParts, cardButtonDefaults } from './core/card-button/CardButton.types.js';
|
|
27
29
|
export { Checkbox, type CheckboxProps } from './core/checkbox/Checkbox.js';
|
|
28
30
|
export { checkboxParts, checkboxDefaults } from './core/checkbox/Checkbox.types.js';
|
|
31
|
+
export { ComparisonCards, type ComparisonCardsProps } from './blocks/comparison-cards/ComparisonCards.js';
|
|
32
|
+
export { comparisonCardsParts, comparisonCardsDefaults } from './blocks/comparison-cards/ComparisonCards.types.js';
|
|
33
|
+
export { ComparisonTable, type ComparisonTableProps } from './blocks/comparison-table/ComparisonTable.js';
|
|
34
|
+
export { comparisonTableParts, comparisonTableDefaults } from './blocks/comparison-table/ComparisonTable.types.js';
|
|
29
35
|
export { CtaBanner, type CtaBannerProps } from './blocks/cta-banner/CtaBanner.js';
|
|
30
36
|
export { ctaBannerParts, ctaBannerDefaults } from './blocks/cta-banner/CtaBanner.types.js';
|
|
31
37
|
export { CtaBannerSlider, type CtaBannerSliderProps } from './blocks/cta-banner-slider/CtaBannerSlider.js';
|
|
32
38
|
export { ctaBannerSliderParts, ctaBannerSliderDefaults } from './blocks/cta-banner-slider/CtaBannerSlider.types.js';
|
|
39
|
+
export { DataTable, type DataTableProps } from './blocks/data-table/DataTable.js';
|
|
40
|
+
export { dataTableParts, dataTableDefaults } from './blocks/data-table/DataTable.types.js';
|
|
33
41
|
export { Divider, type DividerProps } from './core/divider/Divider.js';
|
|
34
42
|
export { dividerParts, dividerDefaults } from './core/divider/Divider.types.js';
|
|
43
|
+
export { DownloadBanner, type DownloadBannerProps } from './blocks/download-banner/DownloadBanner.js';
|
|
44
|
+
export { downloadBannerParts, downloadBannerDefaults } from './blocks/download-banner/DownloadBanner.types.js';
|
|
35
45
|
export { DropdownMenu, type DropdownMenuProps } from './core/dropdown-menu/DropdownMenu.js';
|
|
36
46
|
export { dropdownMenuParts, dropdownMenuDefaults } from './core/dropdown-menu/DropdownMenu.types.js';
|
|
37
47
|
export { FaqAccordion, type FaqAccordionProps } from './blocks/faq-accordion/FaqAccordion.js';
|
|
@@ -40,10 +50,14 @@ export { FeatureBullets, type FeatureBulletsProps } from './blocks/feature-bulle
|
|
|
40
50
|
export { featureBulletsParts, featureBulletsDefaults } from './blocks/feature-bullets/FeatureBullets.types.js';
|
|
41
51
|
export { FeatureCards, type FeatureCardsProps } from './blocks/feature-cards/FeatureCards.js';
|
|
42
52
|
export { featureCardsParts, featureCardsDefaults } from './blocks/feature-cards/FeatureCards.types.js';
|
|
53
|
+
export { FeatureCardsCarousel, type FeatureCardsCarouselProps } from './blocks/feature-cards-carousel/FeatureCardsCarousel.js';
|
|
54
|
+
export { featureCardsCarouselParts, featureCardsCarouselDefaults } from './blocks/feature-cards-carousel/FeatureCardsCarousel.types.js';
|
|
43
55
|
export { FeatureScroll, type FeatureScrollProps } from './blocks/feature-scroll/FeatureScroll.js';
|
|
44
56
|
export { featureScrollParts, featureScrollDefaults } from './blocks/feature-scroll/FeatureScroll.types.js';
|
|
45
57
|
export { FeatureSplit, type FeatureSplitProps } from './blocks/feature-split/FeatureSplit.js';
|
|
46
58
|
export { featureSplitParts, featureSplitDefaults } from './blocks/feature-split/FeatureSplit.types.js';
|
|
59
|
+
export { FeatureStack, type FeatureStackProps } from './blocks/feature-stack/FeatureStack.js';
|
|
60
|
+
export { featureStackParts, featureStackDefaults } from './blocks/feature-stack/FeatureStack.types.js';
|
|
47
61
|
export { FilterChip, type FilterChipProps } from './core/filter-chip/FilterChip.js';
|
|
48
62
|
export { filterChipParts, filterChipDefaults } from './core/filter-chip/FilterChip.types.js';
|
|
49
63
|
export { Footer, type FooterProps } from './core/footer/Footer.js';
|
|
@@ -58,6 +72,8 @@ export { IllustrationCard, type IllustrationCardProps } from './core/illustratio
|
|
|
58
72
|
export { illustrationCardParts, illustrationCardDefaults } from './core/illustration-card/IllustrationCard.types.js';
|
|
59
73
|
export { IllustrationScene, type IllustrationSceneProps } from './core/illustration-scene/IllustrationScene.js';
|
|
60
74
|
export { illustrationSceneParts, illustrationSceneDefaults } from './core/illustration-scene/IllustrationScene.types.js';
|
|
75
|
+
export { ImageBanner, type ImageBannerProps } from './blocks/image-banner/ImageBanner.js';
|
|
76
|
+
export { imageBannerParts, imageBannerDefaults } from './blocks/image-banner/ImageBanner.types.js';
|
|
61
77
|
export { LandingHero, type LandingHeroProps } from './blocks/landing-hero/LandingHero.js';
|
|
62
78
|
export { landingHeroParts, landingHeroDefaults } from './blocks/landing-hero/LandingHero.types.js';
|
|
63
79
|
export { Link, type LinkProps } from './core/link/Link.js';
|
|
@@ -95,8 +111,12 @@ export { ProductHero, type ProductHeroProps } from './blocks/product-hero/Produc
|
|
|
95
111
|
export { productHeroParts, productHeroDefaults } from './blocks/product-hero/ProductHero.types.js';
|
|
96
112
|
export { RemovableChip, type RemovableChipProps } from './core/removable-chip/RemovableChip.js';
|
|
97
113
|
export { removableChipParts, removableChipDefaults } from './core/removable-chip/RemovableChip.types.js';
|
|
114
|
+
export { ResourceBanner, type ResourceBannerProps } from './blocks/resource-banner/ResourceBanner.js';
|
|
115
|
+
export { resourceBannerParts, resourceBannerDefaults } from './blocks/resource-banner/ResourceBanner.types.js';
|
|
98
116
|
export { Row, type RowProps } from './layout/row/Row.js';
|
|
99
117
|
export { rowParts, rowDefaults } from './layout/row/Row.types.js';
|
|
118
|
+
export { SceneScroll, type SceneScrollProps } from './blocks/scene-scroll/SceneScroll.js';
|
|
119
|
+
export { sceneScrollParts, sceneScrollDefaults } from './blocks/scene-scroll/SceneScroll.types.js';
|
|
100
120
|
export { Scroller, type ScrollerProps } from './layout/scroller/Scroller.js';
|
|
101
121
|
export { scrollerParts, scrollerDefaults } from './layout/scroller/Scroller.types.js';
|
|
102
122
|
export { SearchInput, type SearchInputProps } from './core/search-input/SearchInput.js';
|
|
@@ -113,8 +133,14 @@ export { Spinner, type SpinnerProps } from './core/spinner/Spinner.js';
|
|
|
113
133
|
export { spinnerParts, spinnerDefaults } from './core/spinner/Spinner.types.js';
|
|
114
134
|
export { Stack, type StackProps } from './layout/stack/Stack.js';
|
|
115
135
|
export { stackParts, stackDefaults } from './layout/stack/Stack.types.js';
|
|
136
|
+
export { Stats, type StatsProps } from './blocks/stats/Stats.js';
|
|
137
|
+
export { statsParts, statsDefaults } from './blocks/stats/Stats.types.js';
|
|
116
138
|
export { StatusDot, type StatusDotProps } from './core/status-dot/StatusDot.js';
|
|
117
139
|
export { statusDotParts, statusDotDefaults } from './core/status-dot/StatusDot.types.js';
|
|
140
|
+
export { Steps, type StepsProps } from './blocks/steps/Steps.js';
|
|
141
|
+
export { stepsParts, stepsDefaults } from './blocks/steps/Steps.types.js';
|
|
142
|
+
export { StickyCards, type StickyCardsProps } from './blocks/sticky-cards/StickyCards.js';
|
|
143
|
+
export { stickyCardsParts, stickyCardsDefaults } from './blocks/sticky-cards/StickyCards.types.js';
|
|
118
144
|
export { SubdomainNavbar, type SubdomainNavbarProps } from './core/subdomain-navbar/SubdomainNavbar.js';
|
|
119
145
|
export { subdomainNavbarParts, subdomainNavbarDefaults } from './core/subdomain-navbar/SubdomainNavbar.types.js';
|
|
120
146
|
export { Tab, type TabProps } from './core/tab/Tab.js';
|
|
@@ -134,6 +160,8 @@ export { TableRow, type TableRowProps } from './core/table-row/TableRow.js';
|
|
|
134
160
|
export { tableRowParts, tableRowDefaults } from './core/table-row/TableRow.types.js';
|
|
135
161
|
export { TabList, type TabListProps } from './core/tab-list/TabList.js';
|
|
136
162
|
export { tabListParts } from './core/tab-list/TabList.types.js';
|
|
163
|
+
export { TeamGrid, type TeamGridProps } from './blocks/team-grid/TeamGrid.js';
|
|
164
|
+
export { teamGridParts, teamGridDefaults } from './blocks/team-grid/TeamGrid.types.js';
|
|
137
165
|
export { TestimonialRow, type TestimonialRowProps } from './blocks/testimonial-row/TestimonialRow.js';
|
|
138
166
|
export { testimonialRowParts, testimonialRowDefaults } from './blocks/testimonial-row/TestimonialRow.types.js';
|
|
139
167
|
export { TestimonialSlider, type TestimonialSliderProps } from './blocks/testimonial-slider/TestimonialSlider.js';
|
|
@@ -142,14 +170,31 @@ export { TextArea, type TextAreaProps } from './core/text-area/TextArea.js';
|
|
|
142
170
|
export { textAreaParts, textAreaDefaults } from './core/text-area/TextArea.types.js';
|
|
143
171
|
export { TextInput, type TextInputProps } from './core/text-input/TextInput.js';
|
|
144
172
|
export { textInputParts, textInputDefaults } from './core/text-input/TextInput.types.js';
|
|
173
|
+
export { TextScroll, type TextScrollProps } from './blocks/text-scroll/TextScroll.js';
|
|
174
|
+
export { textScrollParts, textScrollDefaults } from './blocks/text-scroll/TextScroll.types.js';
|
|
175
|
+
export { Tiers, type TiersProps } from './blocks/tiers/Tiers.js';
|
|
176
|
+
export { tiersParts, tiersDefaults } from './blocks/tiers/Tiers.types.js';
|
|
145
177
|
export { Tooltip, type TooltipProps } from './core/tooltip/Tooltip.js';
|
|
146
178
|
export { tooltipParts, tooltipDefaults } from './core/tooltip/Tooltip.types.js';
|
|
147
179
|
export { useTooltip, useTooltipDefaults, type UseTooltipOptions, type UseTooltipResult } from './core/tooltip/use-tooltip.js';
|
|
148
180
|
export { TooltipAnchor, type TooltipAnchorProps } from './core/tooltip/TooltipAnchor.js';
|
|
149
181
|
export { Typography, type TypographyProps } from './core/typography/Typography.js';
|
|
150
182
|
export { typographyParts, typographyDefaults } from './core/typography/Typography.types.js';
|
|
183
|
+
export type { Award } from './awards-data.js';
|
|
151
184
|
export type { CtaBannerSlide } from './banner-data.js';
|
|
185
|
+
export type { BlockImage } from './block-image-data.js';
|
|
186
|
+
export type { ComparisonCardsCard } from './comparison-cards-data.js';
|
|
187
|
+
export type { ComparisonTableColumn, ComparisonTableRow } from './comparison-table-data.js';
|
|
188
|
+
export type { DataTableColumn, DataTableRow } from './data-table-data.js';
|
|
189
|
+
export type { DownloadBannerBadge, DownloadBannerQr } from './download-banner-data.js';
|
|
152
190
|
export type { LogoTile } from './logo-data.js';
|
|
191
|
+
export type { ResourceBannerLink } from './resource-banner-data.js';
|
|
192
|
+
export type { SceneScrollScene } from './scene-scroll-data.js';
|
|
153
193
|
export type { FeatureScrollStep } from './scroll-data.js';
|
|
194
|
+
export type { StatsFigure } from './stats-data.js';
|
|
195
|
+
export type { StepsItem } from './steps-data.js';
|
|
196
|
+
export type { StickyCardsItem } from './sticky-cards-data.js';
|
|
197
|
+
export type { TeamGridMember } from './team-grid-data.js';
|
|
154
198
|
export type { TestimonialRowReview, TestimonialRowSummary } from './testimonial-row-data.js';
|
|
155
199
|
export type { TestimonialSliderQuote } from './testimonial-slider-data.js';
|
|
200
|
+
export type { TiersItem } from './tiers-data.js';
|