@540deg/ds 0.0.0-stage → 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 +202 -0
- package/NOTICE +13 -0
- package/README.md +207 -2
- package/dist/assets/samples/captura.js +4 -0
- package/dist/assets/samples/charla-david.js +4 -0
- package/dist/assets/samples/charla-escultura.js +4 -0
- package/dist/assets/samples/charla-fachada.js +4 -0
- package/dist/assets/samples/charla-pintura.js +4 -0
- package/dist/assets/samples/charla-placa.js +4 -0
- package/dist/assets/samples/charla-teclado.js +4 -0
- package/dist/assets/samples/logo-540-claro.js +4 -0
- package/dist/assets/samples/logo-540-portada-claro.js +4 -0
- package/dist/assets/samples/logo-540-portada-oscuro.js +4 -0
- package/dist/assets/samples/logos/cliente-1.js +4 -0
- package/dist/assets/samples/logos/cliente-2.js +4 -0
- package/dist/assets/samples/logos/cliente-3.js +4 -0
- package/dist/assets/samples/logos/cliente-4.js +4 -0
- package/dist/assets/samples/logos/cliente-5.js +4 -0
- package/dist/assets/samples/logos/cliente-6.js +4 -0
- package/dist/assets/samples/logos/cliente-7.js +4 -0
- package/dist/assets/samples/logos/cliente-8.js +4 -0
- package/dist/assets/samples/logos/cliente-9.js +4 -0
- package/dist/assets/samples/retrato.js +4 -0
- package/dist/components/atoms/Bullets/Bullets.d.ts +6 -0
- package/dist/components/atoms/Bullets/Bullets.js +34 -0
- package/dist/components/atoms/Bullets/Bullets.module.js +13 -0
- package/dist/components/atoms/Bullets/index.d.ts +3 -0
- package/dist/components/atoms/Bullets/types.d.ts +23 -0
- package/dist/components/atoms/Bullets/types.js +9 -0
- package/dist/components/atoms/Button/Button.d.ts +6 -0
- package/dist/components/atoms/Button/Button.js +46 -0
- package/dist/components/atoms/Button/Button.module.js +24 -0
- package/dist/components/atoms/Button/index.d.ts +3 -0
- package/dist/components/atoms/Button/types.d.ts +38 -0
- package/dist/components/atoms/Button/types.js +14 -0
- package/dist/components/atoms/Count/Count.d.ts +6 -0
- package/dist/components/atoms/Count/Count.js +51 -0
- package/dist/components/atoms/Count/Count.module.js +9 -0
- package/dist/components/atoms/Count/index.d.ts +3 -0
- package/dist/components/atoms/Count/types.d.ts +17 -0
- package/dist/components/atoms/Count/types.js +8 -0
- package/dist/components/atoms/Image/Image.d.ts +6 -0
- package/dist/components/atoms/Image/Image.js +30 -0
- package/dist/components/atoms/Image/Image.module.js +11 -0
- package/dist/components/atoms/Image/index.d.ts +3 -0
- package/dist/components/atoms/Image/types.d.ts +16 -0
- package/dist/components/atoms/Image/types.js +13 -0
- package/dist/components/atoms/Logo/Logo.d.ts +6 -0
- package/dist/components/atoms/Logo/Logo.js +32 -0
- package/dist/components/atoms/Logo/Logo.module.js +10 -0
- package/dist/components/atoms/Logo/index.d.ts +3 -0
- package/dist/components/atoms/Logo/paths.d.ts +2 -0
- package/dist/components/atoms/Logo/paths.js +11 -0
- package/dist/components/atoms/Logo/types.d.ts +14 -0
- package/dist/components/atoms/Logo/types.js +12 -0
- package/dist/components/atoms/MenuItem/MenuItem.d.ts +6 -0
- package/dist/components/atoms/MenuItem/MenuItem.js +28 -0
- package/dist/components/atoms/MenuItem/MenuItem.module.js +19 -0
- package/dist/components/atoms/MenuItem/index.d.ts +3 -0
- package/dist/components/atoms/MenuItem/types.d.ts +18 -0
- package/dist/components/atoms/MenuItem/types.js +8 -0
- package/dist/components/atoms/SocialIcon/SocialIcon.d.ts +6 -0
- package/dist/components/atoms/SocialIcon/SocialIcon.js +26 -0
- package/dist/components/atoms/SocialIcon/SocialIcon.module.js +9 -0
- package/dist/components/atoms/SocialIcon/index.d.ts +3 -0
- package/dist/components/atoms/SocialIcon/paths.d.ts +7 -0
- package/dist/components/atoms/SocialIcon/paths.js +10 -0
- package/dist/components/atoms/SocialIcon/types.d.ts +15 -0
- package/dist/components/atoms/SocialIcon/types.js +11 -0
- package/dist/components/atoms/Text/Text.d.ts +6 -0
- package/dist/components/atoms/Text/Text.js +28 -0
- package/dist/components/atoms/Text/Text.module.js +32 -0
- package/dist/components/atoms/Text/index.d.ts +3 -0
- package/dist/components/atoms/Text/types.d.ts +39 -0
- package/dist/components/atoms/Text/types.js +54 -0
- package/dist/components/atoms/ThemeToggle/ThemeToggle.d.ts +6 -0
- package/dist/components/atoms/ThemeToggle/ThemeToggle.js +30 -0
- package/dist/components/atoms/ThemeToggle/ThemeToggle.module.js +17 -0
- package/dist/components/atoms/ThemeToggle/index.d.ts +3 -0
- package/dist/components/atoms/ThemeToggle/types.d.ts +13 -0
- package/dist/components/atoms/ThemeToggle/types.js +4 -0
- package/dist/components/molecules/Card/Card.d.ts +6 -0
- package/dist/components/molecules/Card/Card.js +82 -0
- package/dist/components/molecules/Card/Card.module.js +33 -0
- package/dist/components/molecules/Card/index.d.ts +3 -0
- package/dist/components/molecules/Card/types.d.ts +48 -0
- package/dist/components/molecules/Card/types.js +17 -0
- package/dist/components/molecules/Carousel/Carousel.d.ts +5 -0
- package/dist/components/molecules/Carousel/Carousel.js +148 -0
- package/dist/components/molecules/Carousel/Carousel.module.js +29 -0
- package/dist/components/molecules/Carousel/index.d.ts +3 -0
- package/dist/components/molecules/Carousel/types.d.ts +24 -0
- package/dist/components/molecules/Carousel/types.js +12 -0
- package/dist/components/molecules/CaseItem/CaseItem.d.ts +6 -0
- package/dist/components/molecules/CaseItem/CaseItem.js +54 -0
- package/dist/components/molecules/CaseItem/CaseItem.module.js +19 -0
- package/dist/components/molecules/CaseItem/index.d.ts +3 -0
- package/dist/components/molecules/CaseItem/types.d.ts +20 -0
- package/dist/components/molecules/CaseItem/types.js +7 -0
- package/dist/components/molecules/Dialog/Dialog.d.ts +6 -0
- package/dist/components/molecules/Dialog/Dialog.js +81 -0
- package/dist/components/molecules/Dialog/Dialog.module.js +19 -0
- package/dist/components/molecules/Dialog/index.d.ts +2 -0
- package/dist/components/molecules/Dialog/types.d.ts +22 -0
- package/dist/components/molecules/Field/Field.d.ts +6 -0
- package/dist/components/molecules/Field/Field.js +47 -0
- package/dist/components/molecules/Field/Field.module.js +15 -0
- package/dist/components/molecules/Field/index.d.ts +3 -0
- package/dist/components/molecules/Field/types.d.ts +24 -0
- package/dist/components/molecules/Field/types.js +5 -0
- package/dist/components/molecules/Footer/Footer.d.ts +6 -0
- package/dist/components/molecules/Footer/Footer.js +102 -0
- package/dist/components/molecules/Footer/Footer.module.js +33 -0
- package/dist/components/molecules/Footer/index.d.ts +3 -0
- package/dist/components/molecules/Footer/types.d.ts +46 -0
- package/dist/components/molecules/Footer/types.js +8 -0
- package/dist/components/molecules/Grid/Grid.d.ts +5 -0
- package/dist/components/molecules/Grid/Grid.js +32 -0
- package/dist/components/molecules/Grid/Grid.module.js +29 -0
- package/dist/components/molecules/Grid/index.d.ts +3 -0
- package/dist/components/molecules/Grid/types.d.ts +28 -0
- package/dist/components/molecules/Grid/types.js +14 -0
- package/dist/components/molecules/Lists/Lists.d.ts +7 -0
- package/dist/components/molecules/Lists/Lists.js +54 -0
- package/dist/components/molecules/Lists/Lists.module.js +15 -0
- package/dist/components/molecules/Lists/index.d.ts +2 -0
- package/dist/components/molecules/Lists/types.d.ts +22 -0
- package/dist/components/molecules/Menu/Menu.d.ts +6 -0
- package/dist/components/molecules/Menu/Menu.js +43 -0
- package/dist/components/molecules/Menu/Menu.module.js +13 -0
- package/dist/components/molecules/Menu/index.d.ts +3 -0
- package/dist/components/molecules/Menu/types.d.ts +27 -0
- package/dist/components/molecules/Menu/types.js +8 -0
- package/dist/components/molecules/Metric/Metric.d.ts +5 -0
- package/dist/components/molecules/Metric/Metric.js +40 -0
- package/dist/components/molecules/Metric/Metric.module.js +11 -0
- package/dist/components/molecules/Metric/index.d.ts +2 -0
- package/dist/components/molecules/Metric/types.d.ts +15 -0
- package/dist/components/molecules/NavMobile/NavMobile.d.ts +6 -0
- package/dist/components/molecules/NavMobile/NavMobile.js +95 -0
- package/dist/components/molecules/NavMobile/NavMobile.module.js +17 -0
- package/dist/components/molecules/NavMobile/index.d.ts +3 -0
- package/dist/components/molecules/NavMobile/types.d.ts +20 -0
- package/dist/components/molecules/NavMobile/types.js +8 -0
- package/dist/components/molecules/Question/Question.d.ts +3 -0
- package/dist/components/molecules/Question/Question.js +22 -0
- package/dist/components/molecules/Question/Question.module.js +5 -0
- package/dist/components/molecules/Question/index.d.ts +2 -0
- package/dist/components/molecules/Question/types.d.ts +8 -0
- package/dist/components/molecules/Screenshot/Screenshot.d.ts +3 -0
- package/dist/components/molecules/Screenshot/Screenshot.js +17 -0
- package/dist/components/molecules/Screenshot/Screenshot.module.js +5 -0
- package/dist/components/molecules/Screenshot/index.d.ts +2 -0
- package/dist/components/molecules/Screenshot/types.d.ts +12 -0
- package/dist/components/molecules/Section/Section.d.ts +6 -0
- package/dist/components/molecules/Section/Section.js +25 -0
- package/dist/components/molecules/Section/Section.module.js +11 -0
- package/dist/components/molecules/Section/index.d.ts +3 -0
- package/dist/components/molecules/Section/types.d.ts +13 -0
- package/dist/components/molecules/Section/types.js +5 -0
- package/dist/components/molecules/SectionHeader/SectionHeader.d.ts +6 -0
- package/dist/components/molecules/SectionHeader/SectionHeader.js +34 -0
- package/dist/components/molecules/SectionHeader/SectionHeader.module.js +9 -0
- package/dist/components/molecules/SectionHeader/index.d.ts +3 -0
- package/dist/components/molecules/SectionHeader/types.d.ts +22 -0
- package/dist/components/molecules/SectionHeader/types.js +14 -0
- package/dist/components/molecules/Stack/Stack.d.ts +6 -0
- package/dist/components/molecules/Stack/Stack.js +22 -0
- package/dist/components/molecules/Stack/Stack.module.js +12 -0
- package/dist/components/molecules/Stack/index.d.ts +3 -0
- package/dist/components/molecules/Stack/types.d.ts +18 -0
- package/dist/components/molecules/Stack/types.js +17 -0
- package/dist/components/molecules/TeamMember/TeamMember.d.ts +6 -0
- package/dist/components/molecules/TeamMember/TeamMember.js +55 -0
- package/dist/components/molecules/TeamMember/TeamMember.module.js +13 -0
- package/dist/components/molecules/TeamMember/index.d.ts +3 -0
- package/dist/components/molecules/TeamMember/types.d.ts +24 -0
- package/dist/components/molecules/TeamMember/types.js +8 -0
- package/dist/components/organisms/Bars/Bars.d.ts +6 -0
- package/dist/components/organisms/Bars/Bars.js +94 -0
- package/dist/components/organisms/Bars/Bars.module.js +26 -0
- package/dist/components/organisms/Bars/index.d.ts +3 -0
- package/dist/components/organisms/Bars/types.d.ts +43 -0
- package/dist/components/organisms/Bars/types.js +12 -0
- package/dist/components/organisms/Blobs/Blobs.d.ts +3 -0
- package/dist/components/organisms/Blobs/Blobs.js +14 -0
- package/dist/components/organisms/Blobs/Blobs.module.js +15 -0
- package/dist/components/organisms/Blobs/index.d.ts +2 -0
- package/dist/components/organisms/Blobs/types.d.ts +3 -0
- package/dist/components/organisms/BlockTitle/BlockTitle.d.ts +6 -0
- package/dist/components/organisms/BlockTitle/BlockTitle.js +46 -0
- package/dist/components/organisms/BlockTitle/BlockTitle.module.js +15 -0
- package/dist/components/organisms/BlockTitle/index.d.ts +2 -0
- package/dist/components/organisms/BlockTitle/types.d.ts +18 -0
- package/dist/components/organisms/CardList/CardList.d.ts +6 -0
- package/dist/components/organisms/CardList/CardList.js +15 -0
- package/dist/components/organisms/CardList/CardList.module.js +5 -0
- package/dist/components/organisms/CardList/index.d.ts +2 -0
- package/dist/components/organisms/CardList/types.d.ts +6 -0
- package/dist/components/organisms/Closing/Closing.d.ts +6 -0
- package/dist/components/organisms/Closing/Closing.js +42 -0
- package/dist/components/organisms/Closing/Closing.module.js +9 -0
- package/dist/components/organisms/Closing/index.d.ts +3 -0
- package/dist/components/organisms/Closing/types.d.ts +15 -0
- package/dist/components/organisms/Closing/types.js +4 -0
- package/dist/components/organisms/Cover/Cover.d.ts +6 -0
- package/dist/components/organisms/Cover/Cover.js +85 -0
- package/dist/components/organisms/Cover/Cover.module.js +21 -0
- package/dist/components/organisms/Cover/index.d.ts +3 -0
- package/dist/components/organisms/Cover/types.d.ts +33 -0
- package/dist/components/organisms/Cover/types.js +4 -0
- package/dist/components/organisms/Cycle/Cycle.d.ts +6 -0
- package/dist/components/organisms/Cycle/Cycle.js +79 -0
- package/dist/components/organisms/Cycle/Cycle.module.js +17 -0
- package/dist/components/organisms/Cycle/index.d.ts +3 -0
- package/dist/components/organisms/Cycle/types.d.ts +18 -0
- package/dist/components/organisms/Cycle/types.js +9 -0
- package/dist/components/organisms/Deck/Deck.d.ts +6 -0
- package/dist/components/organisms/Deck/Deck.js +159 -0
- package/dist/components/organisms/Deck/Deck.module.js +19 -0
- package/dist/components/organisms/Deck/index.d.ts +4 -0
- package/dist/components/organisms/Deck/types.d.ts +37 -0
- package/dist/components/organisms/Deck/types.js +13 -0
- package/dist/components/organisms/Deck/useDeckNavigation.d.ts +15 -0
- package/dist/components/organisms/Deck/useDeckNavigation.js +218 -0
- package/dist/components/organisms/DeckFooter/DeckFooter.d.ts +6 -0
- package/dist/components/organisms/DeckFooter/DeckFooter.js +75 -0
- package/dist/components/organisms/DeckFooter/DeckFooter.module.js +25 -0
- package/dist/components/organisms/DeckFooter/index.d.ts +3 -0
- package/dist/components/organisms/DeckFooter/types.d.ts +22 -0
- package/dist/components/organisms/DeckFooter/types.js +8 -0
- package/dist/components/organisms/Flow/Flow.d.ts +6 -0
- package/dist/components/organisms/Flow/Flow.js +26 -0
- package/dist/components/organisms/Flow/Flow.module.js +13 -0
- package/dist/components/organisms/Flow/index.d.ts +3 -0
- package/dist/components/organisms/Flow/types.d.ts +17 -0
- package/dist/components/organisms/Flow/types.js +4 -0
- package/dist/components/organisms/Form/Form.d.ts +6 -0
- package/dist/components/organisms/Form/Form.js +28 -0
- package/dist/components/organisms/Form/Form.module.js +13 -0
- package/dist/components/organisms/Form/index.d.ts +3 -0
- package/dist/components/organisms/Form/types.d.ts +16 -0
- package/dist/components/organisms/Form/types.js +8 -0
- package/dist/components/organisms/Heartbeat/Heartbeat.d.ts +3 -0
- package/dist/components/organisms/Heartbeat/Heartbeat.js +17 -0
- package/dist/components/organisms/Heartbeat/Heartbeat.module.js +13 -0
- package/dist/components/organisms/Heartbeat/index.d.ts +2 -0
- package/dist/components/organisms/Heartbeat/types.d.ts +3 -0
- package/dist/components/organisms/LogoCarousel/LogoCarousel.d.ts +6 -0
- package/dist/components/organisms/LogoCarousel/LogoCarousel.js +72 -0
- package/dist/components/organisms/LogoCarousel/LogoCarousel.module.js +13 -0
- package/dist/components/organisms/LogoCarousel/index.d.ts +3 -0
- package/dist/components/organisms/LogoCarousel/types.d.ts +18 -0
- package/dist/components/organisms/LogoCarousel/types.js +4 -0
- package/dist/components/organisms/Marquee/Marquee.d.ts +7 -0
- package/dist/components/organisms/Marquee/Marquee.js +57 -0
- package/dist/components/organisms/Marquee/Marquee.module.js +15 -0
- package/dist/components/organisms/Marquee/index.d.ts +3 -0
- package/dist/components/organisms/Marquee/types.d.ts +11 -0
- package/dist/components/organisms/Marquee/types.js +4 -0
- package/dist/components/organisms/ProgressBar/ProgressBar.d.ts +6 -0
- package/dist/components/organisms/ProgressBar/ProgressBar.js +56 -0
- package/dist/components/organisms/ProgressBar/ProgressBar.module.js +17 -0
- package/dist/components/organisms/ProgressBar/index.d.ts +3 -0
- package/dist/components/organisms/ProgressBar/types.d.ts +20 -0
- package/dist/components/organisms/ProgressBar/types.js +7 -0
- package/dist/components/organisms/Punchline/Punchline.d.ts +6 -0
- package/dist/components/organisms/Punchline/Punchline.js +41 -0
- package/dist/components/organisms/Punchline/Punchline.module.js +11 -0
- package/dist/components/organisms/Punchline/index.d.ts +3 -0
- package/dist/components/organisms/Punchline/types.d.ts +15 -0
- package/dist/components/organisms/Punchline/types.js +4 -0
- package/dist/components/organisms/Quote/Quote.d.ts +3 -0
- package/dist/components/organisms/Quote/Quote.js +33 -0
- package/dist/components/organisms/Quote/Quote.module.js +5 -0
- package/dist/components/organisms/Quote/index.d.ts +3 -0
- package/dist/components/organisms/Quote/types.d.ts +15 -0
- package/dist/components/organisms/Quote/types.js +4 -0
- package/dist/components/organisms/Schema/Schema.d.ts +54 -0
- package/dist/components/organisms/Schema/Schema.js +117 -0
- package/dist/components/organisms/Schema/Schema.module.js +87 -0
- package/dist/components/organisms/Schema/index.d.ts +2 -0
- package/dist/components/organisms/Schema/types.d.ts +32 -0
- package/dist/components/organisms/Share/Share.d.ts +6 -0
- package/dist/components/organisms/Share/Share.js +68 -0
- package/dist/components/organisms/Share/Share.module.js +22 -0
- package/dist/components/organisms/Share/index.d.ts +3 -0
- package/dist/components/organisms/Share/types.d.ts +24 -0
- package/dist/components/organisms/Share/types.js +4 -0
- package/dist/components/organisms/Sheet/Sheet.d.ts +2 -0
- package/dist/components/organisms/Sheet/Sheet.js +92 -0
- package/dist/components/organisms/Sheet/Sheet.module.js +15 -0
- package/dist/components/organisms/Sheet/index.d.ts +3 -0
- package/dist/components/organisms/Sheet/types.d.ts +15 -0
- package/dist/components/organisms/Sheet/types.js +4 -0
- package/dist/components/organisms/Slide/Slide.d.ts +6 -0
- package/dist/components/organisms/Slide/Slide.js +29 -0
- package/dist/components/organisms/Slide/Slide.module.js +13 -0
- package/dist/components/organisms/Slide/index.d.ts +3 -0
- package/dist/components/organisms/Slide/types.d.ts +18 -0
- package/dist/components/organisms/Slide/types.js +8 -0
- package/dist/components/organisms/Spotlight/Spotlight.d.ts +7 -0
- package/dist/components/organisms/Spotlight/Spotlight.js +39 -0
- package/dist/components/organisms/Spotlight/Spotlight.module.js +5 -0
- package/dist/components/organisms/Spotlight/index.d.ts +2 -0
- package/dist/components/organisms/Spotlight/types.d.ts +6 -0
- package/dist/components/organisms/Statements/Statements.d.ts +7 -0
- package/dist/components/organisms/Statements/Statements.js +50 -0
- package/dist/components/organisms/Statements/Statements.module.js +11 -0
- package/dist/components/organisms/Statements/index.d.ts +3 -0
- package/dist/components/organisms/Statements/types.d.ts +14 -0
- package/dist/components/organisms/Statements/types.js +7 -0
- package/dist/components/organisms/Steps/Steps.d.ts +15 -0
- package/dist/components/organisms/Steps/Steps.js +117 -0
- package/dist/components/organisms/Steps/Steps.module.js +13 -0
- package/dist/components/organisms/Steps/StepsContext.d.ts +11 -0
- package/dist/components/organisms/Steps/StepsContext.js +18 -0
- package/dist/components/organisms/Steps/index.d.ts +3 -0
- package/dist/components/organisms/Steps/types.d.ts +22 -0
- package/dist/components/organisms/Story/Story.d.ts +6 -0
- package/dist/components/organisms/Story/Story.js +43 -0
- package/dist/components/organisms/Story/Story.module.js +5 -0
- package/dist/components/organisms/Story/index.d.ts +3 -0
- package/dist/components/organisms/Story/types.d.ts +20 -0
- package/dist/components/organisms/Story/types.js +7 -0
- package/dist/components/organisms/Timeline/Timeline.d.ts +7 -0
- package/dist/components/organisms/Timeline/Timeline.js +67 -0
- package/dist/components/organisms/Timeline/Timeline.module.js +19 -0
- package/dist/components/organisms/Timeline/index.d.ts +3 -0
- package/dist/components/organisms/Timeline/types.d.ts +25 -0
- package/dist/components/organisms/Timeline/types.js +4 -0
- package/dist/components/organisms/Tools/Tools.d.ts +6 -0
- package/dist/components/organisms/Tools/Tools.js +47 -0
- package/dist/components/organisms/Tools/Tools.module.js +17 -0
- package/dist/components/organisms/Tools/index.d.ts +3 -0
- package/dist/components/organisms/Tools/types.d.ts +23 -0
- package/dist/components/organisms/Tools/types.js +4 -0
- package/dist/fonts/OFL.txt +93 -0
- package/dist/fonts/dm-sans-latin-opsz-normal.woff2 +0 -0
- package/dist/hooks/useCenterState.d.ts +9 -0
- package/dist/hooks/useCenterState.js +40 -0
- package/dist/hooks/useReveal.d.ts +7 -0
- package/dist/hooks/useReveal.js +34 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +98 -0
- package/dist/styles.css +3441 -0
- package/dist/templates/TalkTemplate/TalkTemplate.d.ts +7 -0
- package/dist/templates/TalkTemplate/TalkTemplate.js +1392 -0
- package/dist/templates/TalkTemplate/index.d.ts +2 -0
- package/package.json +86 -4
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Bullets } from "../../atoms/Bullets/Bullets.js";
|
|
2
|
+
import { Button } from "../../atoms/Button/Button.js";
|
|
3
|
+
import Carousel_module_default from "./Carousel.module.js";
|
|
4
|
+
import { CAROUSEL_DEFAULTS } from "./types.js";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
7
|
+
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
8
|
+
//#region src/components/molecules/Carousel/Carousel.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Carousel is a strip that is paged with the dots below. It can advance by itself, but not by default.
|
|
11
|
+
*/
|
|
12
|
+
function Carousel({ items, label, controls = CAROUSEL_DEFAULTS.controls, header, itemWidth, autoplay, itemLabel = CAROUSEL_DEFAULTS.itemLabel, className }) {
|
|
13
|
+
const trackRef = useRef(null);
|
|
14
|
+
const [current, setCurrent] = useState(1);
|
|
15
|
+
const [paused, setPaused] = useState(false);
|
|
16
|
+
const count = items.length;
|
|
17
|
+
const mode = header && controls === "dots" ? "row" : controls;
|
|
18
|
+
const goTo = useCallback((page) => {
|
|
19
|
+
const track = trackRef.current;
|
|
20
|
+
if (!track) return;
|
|
21
|
+
const index = (page - 1 + count) % count + 1;
|
|
22
|
+
const slot = track.children[index - 1];
|
|
23
|
+
if (slot) track.scrollTo({
|
|
24
|
+
left: slot.offsetLeft - track.offsetLeft,
|
|
25
|
+
behavior: "smooth"
|
|
26
|
+
});
|
|
27
|
+
setCurrent(index);
|
|
28
|
+
}, [count]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const track = trackRef.current;
|
|
31
|
+
if (!track) return;
|
|
32
|
+
const onScroll = () => {
|
|
33
|
+
const slots = Array.from(track.children);
|
|
34
|
+
const left = track.scrollLeft + track.offsetLeft;
|
|
35
|
+
let nearest = 0;
|
|
36
|
+
let best = Infinity;
|
|
37
|
+
slots.forEach((slot, i) => {
|
|
38
|
+
const d = Math.abs(slot.offsetLeft - left);
|
|
39
|
+
if (d < best) {
|
|
40
|
+
best = d;
|
|
41
|
+
nearest = i;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
setCurrent(nearest + 1);
|
|
45
|
+
};
|
|
46
|
+
track.addEventListener("scroll", onScroll, { passive: true });
|
|
47
|
+
return () => track.removeEventListener("scroll", onScroll);
|
|
48
|
+
}, []);
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (!autoplay || paused || count < 2) return;
|
|
51
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
52
|
+
const id = window.setInterval(() => goTo(current + 1), autoplay);
|
|
53
|
+
return () => window.clearInterval(id);
|
|
54
|
+
}, [
|
|
55
|
+
autoplay,
|
|
56
|
+
paused,
|
|
57
|
+
current,
|
|
58
|
+
count,
|
|
59
|
+
goTo
|
|
60
|
+
]);
|
|
61
|
+
const arrows = /* @__PURE__ */ jsxs("div", {
|
|
62
|
+
className: Carousel_module_default.arrows,
|
|
63
|
+
children: [/* @__PURE__ */ jsx(Button, {
|
|
64
|
+
variant: "ghost",
|
|
65
|
+
icon: /* @__PURE__ */ jsx(ChevronLeft, {}),
|
|
66
|
+
iconOnly: true,
|
|
67
|
+
onClick: () => goTo(current - 1),
|
|
68
|
+
children: "Anterior"
|
|
69
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
70
|
+
variant: "ghost",
|
|
71
|
+
icon: /* @__PURE__ */ jsx(ChevronRight, {}),
|
|
72
|
+
iconOnly: true,
|
|
73
|
+
onClick: () => goTo(current + 1),
|
|
74
|
+
children: "Siguiente"
|
|
75
|
+
})]
|
|
76
|
+
});
|
|
77
|
+
const dots = /* @__PURE__ */ jsx("div", {
|
|
78
|
+
className: Carousel_module_default.dots,
|
|
79
|
+
children: /* @__PURE__ */ jsx(Bullets, {
|
|
80
|
+
count,
|
|
81
|
+
current,
|
|
82
|
+
onSelect: goTo,
|
|
83
|
+
itemLabel,
|
|
84
|
+
label
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
const classes = [
|
|
88
|
+
Carousel_module_default.carousel,
|
|
89
|
+
mode === "sides" ? Carousel_module_default.sides : "",
|
|
90
|
+
className ?? ""
|
|
91
|
+
].filter(Boolean).join(" ");
|
|
92
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
93
|
+
className: classes,
|
|
94
|
+
role: "region",
|
|
95
|
+
"aria-roledescription": "carrusel",
|
|
96
|
+
"aria-label": label,
|
|
97
|
+
onMouseEnter: () => setPaused(true),
|
|
98
|
+
onMouseLeave: () => setPaused(false),
|
|
99
|
+
onFocus: () => setPaused(true),
|
|
100
|
+
onBlur: () => setPaused(false),
|
|
101
|
+
children: [
|
|
102
|
+
header ? /* @__PURE__ */ jsxs("div", {
|
|
103
|
+
className: Carousel_module_default.headerRow,
|
|
104
|
+
children: [header, mode === "row" ? arrows : null]
|
|
105
|
+
}) : null,
|
|
106
|
+
/* @__PURE__ */ jsx("div", {
|
|
107
|
+
className: Carousel_module_default.window,
|
|
108
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
109
|
+
ref: trackRef,
|
|
110
|
+
className: Carousel_module_default.track,
|
|
111
|
+
style: itemWidth ? { "--carousel-item": itemWidth } : void 0,
|
|
112
|
+
children: items.map((item, i) => /* @__PURE__ */ jsx("div", {
|
|
113
|
+
className: Carousel_module_default.slot,
|
|
114
|
+
"aria-roledescription": "diapositiva",
|
|
115
|
+
"aria-label": `${itemLabel} ${i + 1} de ${count}`,
|
|
116
|
+
children: item
|
|
117
|
+
}, i))
|
|
118
|
+
})
|
|
119
|
+
}),
|
|
120
|
+
mode === "sides" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
121
|
+
className: [Carousel_module_default.side, Carousel_module_default.sidePrev].join(" "),
|
|
122
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
123
|
+
variant: "ghost",
|
|
124
|
+
icon: /* @__PURE__ */ jsx(ChevronLeft, {}),
|
|
125
|
+
iconOnly: true,
|
|
126
|
+
onClick: () => goTo(current - 1),
|
|
127
|
+
children: "Anterior"
|
|
128
|
+
})
|
|
129
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
130
|
+
className: [Carousel_module_default.side, Carousel_module_default.sideNext].join(" "),
|
|
131
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
132
|
+
variant: "ghost",
|
|
133
|
+
icon: /* @__PURE__ */ jsx(ChevronRight, {}),
|
|
134
|
+
iconOnly: true,
|
|
135
|
+
onClick: () => goTo(current + 1),
|
|
136
|
+
children: "Siguiente"
|
|
137
|
+
})
|
|
138
|
+
})] }) : null,
|
|
139
|
+
mode === "dots" ? dots : null,
|
|
140
|
+
mode === "row" && !header ? /* @__PURE__ */ jsxs("div", {
|
|
141
|
+
className: Carousel_module_default.row,
|
|
142
|
+
children: [dots, arrows]
|
|
143
|
+
}) : null
|
|
144
|
+
]
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
export { Carousel };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/components/molecules/Carousel/Carousel.module.css
|
|
2
|
+
var carousel = "_carousel_zjv2t_3";
|
|
3
|
+
var headerRow = "_headerRow_zjv2t_9";
|
|
4
|
+
var window = "_window_zjv2t_16";
|
|
5
|
+
var track = "_track_zjv2t_20";
|
|
6
|
+
var slot = "_slot_zjv2t_34";
|
|
7
|
+
var dots = "_dots_zjv2t_47";
|
|
8
|
+
var row = "_row_zjv2t_52";
|
|
9
|
+
var arrows = "_arrows_zjv2t_62";
|
|
10
|
+
var sides = "_sides_zjv2t_69";
|
|
11
|
+
var side = "_side_zjv2t_69";
|
|
12
|
+
var sidePrev = "_sidePrev_zjv2t_80";
|
|
13
|
+
var sideNext = "_sideNext_zjv2t_84";
|
|
14
|
+
var Carousel_module_default = {
|
|
15
|
+
carousel,
|
|
16
|
+
headerRow,
|
|
17
|
+
window,
|
|
18
|
+
track,
|
|
19
|
+
slot,
|
|
20
|
+
dots,
|
|
21
|
+
row,
|
|
22
|
+
arrows,
|
|
23
|
+
sides,
|
|
24
|
+
side,
|
|
25
|
+
sidePrev,
|
|
26
|
+
sideNext
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { arrows, carousel, Carousel_module_default as default, dots, headerRow, row, side, sideNext, sidePrev, sides, slot, track, window };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export declare const CAROUSEL_CONTROLS: readonly ["dots", "row", "sides"];
|
|
3
|
+
export type CarouselControls = (typeof CAROUSEL_CONTROLS)[number];
|
|
4
|
+
export type CarouselProps = {
|
|
5
|
+
/** The pieces, one per slot. */
|
|
6
|
+
items: ReactNode[];
|
|
7
|
+
/** Accessible name of the carousel. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** dots: centered dots. row: dots and arrows in a row. sides: arrows over the strip, no dots. */
|
|
10
|
+
controls?: CarouselControls;
|
|
11
|
+
/** A header above the strip; with it, the controls move up to its row (dots alone do not exist there). */
|
|
12
|
+
header?: ReactNode;
|
|
13
|
+
/** Width of each slot, as CSS. Default: half the grid from 600 px, full width below. */
|
|
14
|
+
itemWidth?: string;
|
|
15
|
+
/** Advance by itself every n milliseconds. Off by default; pauses on hover and focus. */
|
|
16
|
+
autoplay?: number;
|
|
17
|
+
/** Word for the dot names: "Página 2 de 5". */
|
|
18
|
+
itemLabel?: string;
|
|
19
|
+
className?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare const CAROUSEL_DEFAULTS: {
|
|
22
|
+
readonly controls: "dots";
|
|
23
|
+
readonly itemLabel: "Página";
|
|
24
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/components/molecules/Carousel/types.ts
|
|
2
|
+
var CAROUSEL_CONTROLS = [
|
|
3
|
+
"dots",
|
|
4
|
+
"row",
|
|
5
|
+
"sides"
|
|
6
|
+
];
|
|
7
|
+
var CAROUSEL_DEFAULTS = {
|
|
8
|
+
controls: "dots",
|
|
9
|
+
itemLabel: "Página"
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { CAROUSEL_CONTROLS, CAROUSEL_DEFAULTS };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CaseItemProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* CaseItem is a portfolio case: the photo, and over it the name and the sentence,
|
|
4
|
+
* anchored at the bottom on a veil. With href, one link wraps the whole piece.
|
|
5
|
+
*/
|
|
6
|
+
export declare function CaseItem({ src, alt, title, description, href, level, className }: CaseItemProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Image } from "../../atoms/Image/Image.js";
|
|
2
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
3
|
+
import CaseItem_module_default from "./CaseItem.module.js";
|
|
4
|
+
import { CASE_ITEM_DEFAULTS } from "./types.js";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/molecules/CaseItem/CaseItem.tsx
|
|
7
|
+
/**
|
|
8
|
+
* CaseItem is a portfolio case: the photo, and over it the name and the sentence,
|
|
9
|
+
* anchored at the bottom on a veil. With href, one link wraps the whole piece.
|
|
10
|
+
*/
|
|
11
|
+
function CaseItem({ src, alt = CASE_ITEM_DEFAULTS.alt, title, description, href, level = CASE_ITEM_DEFAULTS.level, className }) {
|
|
12
|
+
const classes = [
|
|
13
|
+
CaseItem_module_default.item,
|
|
14
|
+
href ? CaseItem_module_default.linked : "",
|
|
15
|
+
className ?? ""
|
|
16
|
+
].filter(Boolean).join(" ");
|
|
17
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18
|
+
/* @__PURE__ */ jsx("div", {
|
|
19
|
+
className: CaseItem_module_default.frame,
|
|
20
|
+
children: /* @__PURE__ */ jsx(Image, {
|
|
21
|
+
src,
|
|
22
|
+
alt,
|
|
23
|
+
ratio: "fill"
|
|
24
|
+
})
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ jsx("div", {
|
|
27
|
+
className: CaseItem_module_default.veil,
|
|
28
|
+
"aria-hidden": "true"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ jsxs("div", {
|
|
31
|
+
className: CaseItem_module_default.data,
|
|
32
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
33
|
+
as: level,
|
|
34
|
+
variant: "title-s",
|
|
35
|
+
wrap: "balance",
|
|
36
|
+
children: title
|
|
37
|
+
}), description ? /* @__PURE__ */ jsx(Text, {
|
|
38
|
+
variant: "body-s",
|
|
39
|
+
wrap: "pretty",
|
|
40
|
+
children: description
|
|
41
|
+
}) : null]
|
|
42
|
+
})
|
|
43
|
+
] });
|
|
44
|
+
return href ? /* @__PURE__ */ jsx("a", {
|
|
45
|
+
className: classes,
|
|
46
|
+
href,
|
|
47
|
+
children: content
|
|
48
|
+
}) : /* @__PURE__ */ jsx("article", {
|
|
49
|
+
className: classes,
|
|
50
|
+
children: content
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { CaseItem };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/components/molecules/CaseItem/CaseItem.module.css
|
|
2
|
+
var item = "_item_1gpwq_4";
|
|
3
|
+
var frame = "_frame_1gpwq_13";
|
|
4
|
+
var linked = "_linked_1gpwq_25";
|
|
5
|
+
var forceHover = "_forceHover_1gpwq_26";
|
|
6
|
+
var forceActive = "_forceActive_1gpwq_31";
|
|
7
|
+
var veil = "_veil_1gpwq_41";
|
|
8
|
+
var data = "_data_1gpwq_48";
|
|
9
|
+
var CaseItem_module_default = {
|
|
10
|
+
item,
|
|
11
|
+
frame,
|
|
12
|
+
linked,
|
|
13
|
+
forceHover,
|
|
14
|
+
forceActive,
|
|
15
|
+
veil,
|
|
16
|
+
data
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { data, CaseItem_module_default as default, forceActive, forceHover, frame, item, linked, veil };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type CaseItemProps = {
|
|
3
|
+
/** The photo, always cropped to 2:1. The image is half the piece. */
|
|
4
|
+
src: string;
|
|
5
|
+
/** Alt of the photo. Usually "" because the title says what it is. */
|
|
6
|
+
alt?: string;
|
|
7
|
+
/** The name of the case. */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
/** One sentence about what the case was. */
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
/** With href the whole piece is one link named by the title; without it, nothing is pressed. */
|
|
12
|
+
href?: string;
|
|
13
|
+
/** Heading level of the title. */
|
|
14
|
+
level?: 'h2' | 'h3' | 'h4';
|
|
15
|
+
className?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const CASE_ITEM_DEFAULTS: {
|
|
18
|
+
readonly alt: "";
|
|
19
|
+
readonly level: "h3";
|
|
20
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DialogProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Dialog is a window that covers the page to tell one thing. A real <dialog>: focus goes in on
|
|
4
|
+
* open, stays in, and returns to the opener on close. Escape closes; so does a click on the veil.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Dialog({ open, onClose, title, media, footer, className, children }: DialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Button } from "../../atoms/Button/Button.js";
|
|
2
|
+
import { Image } from "../../atoms/Image/Image.js";
|
|
3
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
4
|
+
import Dialog_module_default from "./Dialog.module.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useEffect, useRef } from "react";
|
|
7
|
+
import { X } from "lucide-react";
|
|
8
|
+
//#region src/components/molecules/Dialog/Dialog.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Dialog is a window that covers the page to tell one thing. A real <dialog>: focus goes in on
|
|
11
|
+
* open, stays in, and returns to the opener on close. Escape closes; so does a click on the veil.
|
|
12
|
+
*/
|
|
13
|
+
function Dialog({ open, onClose, title, media, footer, className, children }) {
|
|
14
|
+
const ref = useRef(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const dialog = ref.current;
|
|
17
|
+
if (!dialog) return;
|
|
18
|
+
if (open && !dialog.open) dialog.showModal();
|
|
19
|
+
if (!open && dialog.open) dialog.close();
|
|
20
|
+
}, [open]);
|
|
21
|
+
const classes = [Dialog_module_default.dialog, className ?? ""].filter(Boolean).join(" ");
|
|
22
|
+
return /* @__PURE__ */ jsx("dialog", {
|
|
23
|
+
ref,
|
|
24
|
+
className: classes,
|
|
25
|
+
"aria-labelledby": "dialog-title",
|
|
26
|
+
onClose,
|
|
27
|
+
onCancel: (e) => {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
onClose();
|
|
30
|
+
},
|
|
31
|
+
onClick: (e) => {
|
|
32
|
+
if (e.target === e.currentTarget) onClose();
|
|
33
|
+
},
|
|
34
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
35
|
+
className: Dialog_module_default.inner,
|
|
36
|
+
children: [media ? /* @__PURE__ */ jsx("div", {
|
|
37
|
+
className: Dialog_module_default.media,
|
|
38
|
+
children: /* @__PURE__ */ jsx(Image, {
|
|
39
|
+
src: media.src,
|
|
40
|
+
alt: media.alt,
|
|
41
|
+
ratio: "1:1"
|
|
42
|
+
})
|
|
43
|
+
}) : null, /* @__PURE__ */ jsxs("div", {
|
|
44
|
+
className: Dialog_module_default.body,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsxs("div", {
|
|
47
|
+
className: Dialog_module_default.header,
|
|
48
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
49
|
+
as: "h2",
|
|
50
|
+
variant: "title-s",
|
|
51
|
+
wrap: "balance",
|
|
52
|
+
id: "dialog-title",
|
|
53
|
+
children: title
|
|
54
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
55
|
+
variant: "ghost",
|
|
56
|
+
size: "sm",
|
|
57
|
+
icon: /* @__PURE__ */ jsx(X, {}),
|
|
58
|
+
iconOnly: true,
|
|
59
|
+
onClick: onClose,
|
|
60
|
+
children: "Cerrar"
|
|
61
|
+
})]
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ jsx("div", {
|
|
64
|
+
className: Dialog_module_default.content,
|
|
65
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
66
|
+
variant: "body-m",
|
|
67
|
+
wrap: "pretty",
|
|
68
|
+
children
|
|
69
|
+
})
|
|
70
|
+
}),
|
|
71
|
+
footer ? /* @__PURE__ */ jsx("div", {
|
|
72
|
+
className: Dialog_module_default.footer,
|
|
73
|
+
children: footer
|
|
74
|
+
}) : null
|
|
75
|
+
]
|
|
76
|
+
})]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
export { Dialog };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/components/molecules/Dialog/Dialog.module.css
|
|
2
|
+
var dialog = "_dialog_y1k69_4";
|
|
3
|
+
var inner = "_inner_y1k69_23";
|
|
4
|
+
var media = "_media_y1k69_30";
|
|
5
|
+
var body = "_body_y1k69_36";
|
|
6
|
+
var header = "_header_y1k69_44";
|
|
7
|
+
var content = "_content_y1k69_52";
|
|
8
|
+
var footer = "_footer_y1k69_57";
|
|
9
|
+
var Dialog_module_default = {
|
|
10
|
+
dialog,
|
|
11
|
+
inner,
|
|
12
|
+
media,
|
|
13
|
+
body,
|
|
14
|
+
header,
|
|
15
|
+
content,
|
|
16
|
+
footer
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { body, content, Dialog_module_default as default, dialog, footer, header, inner, media };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type DialogProps = {
|
|
3
|
+
/** Whether it is open. The state lives outside: only the screen knows whom it is showing. */
|
|
4
|
+
open: boolean;
|
|
5
|
+
/** Called when the user closes: Escape, the cross, or a click on the veil. */
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
/** The title: the heading that is seen and the name of the dialog. */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
/** Optional portrait, full bleed at the top, cropped to 1:1. */
|
|
10
|
+
media?: {
|
|
11
|
+
/** Path or URL of the portrait. */
|
|
12
|
+
src: string;
|
|
13
|
+
/** What the portrait shows, in words. */
|
|
14
|
+
alt: string;
|
|
15
|
+
};
|
|
16
|
+
/** Optional actions row at the bottom. */
|
|
17
|
+
footer?: ReactNode;
|
|
18
|
+
/** The text. The only thing that scrolls if it does not fit. */
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const DIALOG_DEFAULTS: {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FieldProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Field is a form field: the label above and the control, tied by the id.
|
|
4
|
+
* The control is not a separate component: a field without a label is what this exists to avoid.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Field(props: FieldProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
2
|
+
import Field_module_default from "./Field.module.js";
|
|
3
|
+
import { FIELD_DEFAULTS } from "./types.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/molecules/Field/Field.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Field is a form field: the label above and the control, tied by the id.
|
|
8
|
+
* The control is not a separate component: a field without a label is what this exists to avoid.
|
|
9
|
+
*/
|
|
10
|
+
function Field(props) {
|
|
11
|
+
const { label, id, size = FIELD_DEFAULTS.size, className, ...rest } = props;
|
|
12
|
+
const classes = [Field_module_default.field, className ?? ""].filter(Boolean).join(" ");
|
|
13
|
+
const controlClasses = [
|
|
14
|
+
Field_module_default.control,
|
|
15
|
+
Field_module_default[`size-${size}`],
|
|
16
|
+
rest.multiline ? Field_module_default.multiline : ""
|
|
17
|
+
].filter(Boolean).join(" ");
|
|
18
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
19
|
+
className: classes,
|
|
20
|
+
children: [/* @__PURE__ */ jsx("label", {
|
|
21
|
+
className: Field_module_default.label,
|
|
22
|
+
htmlFor: id,
|
|
23
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
24
|
+
as: "span",
|
|
25
|
+
variant: "micro-bold",
|
|
26
|
+
tone: "secondary",
|
|
27
|
+
children: label
|
|
28
|
+
})
|
|
29
|
+
}), rest.multiline ? (() => {
|
|
30
|
+
const { multiline: _m, ...textareaProps } = rest;
|
|
31
|
+
return /* @__PURE__ */ jsx("textarea", {
|
|
32
|
+
id,
|
|
33
|
+
className: controlClasses,
|
|
34
|
+
...textareaProps
|
|
35
|
+
});
|
|
36
|
+
})() : (() => {
|
|
37
|
+
const { multiline: _m, ...inputProps } = rest;
|
|
38
|
+
return /* @__PURE__ */ jsx("input", {
|
|
39
|
+
id,
|
|
40
|
+
className: controlClasses,
|
|
41
|
+
...inputProps
|
|
42
|
+
});
|
|
43
|
+
})()]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { Field };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/components/molecules/Field/Field.module.css
|
|
2
|
+
var field = "_field_1i00h_4";
|
|
3
|
+
var label = "_label_1i00h_10";
|
|
4
|
+
var control = "_control_1i00h_17";
|
|
5
|
+
var multiline = "_multiline_1i00h_64";
|
|
6
|
+
var Field_module_default = {
|
|
7
|
+
field,
|
|
8
|
+
label,
|
|
9
|
+
control,
|
|
10
|
+
"size-md": "_size-md_1i00h_55",
|
|
11
|
+
"size-sm": "_size-sm_1i00h_59",
|
|
12
|
+
multiline
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { control, Field_module_default as default, field, label, multiline };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
export declare const FIELD_SIZES: readonly ["md", "sm"];
|
|
3
|
+
export type FieldSize = (typeof FIELD_SIZES)[number];
|
|
4
|
+
type Common = {
|
|
5
|
+
/** The label. Required: it is why this molecule exists. Written in normal case. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Ties label and control. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Control height: md 45, sm 36. */
|
|
10
|
+
size?: FieldSize;
|
|
11
|
+
className?: string;
|
|
12
|
+
};
|
|
13
|
+
type AsInput = Common & {
|
|
14
|
+
multiline?: false;
|
|
15
|
+
} & Omit<ComponentPropsWithoutRef<'input'>, 'id' | 'className' | 'size'>;
|
|
16
|
+
type AsTextarea = Common & {
|
|
17
|
+
/** A textarea for messages. */
|
|
18
|
+
multiline: true;
|
|
19
|
+
} & Omit<ComponentPropsWithoutRef<'textarea'>, 'id' | 'className'>;
|
|
20
|
+
export type FieldProps = AsInput | AsTextarea;
|
|
21
|
+
export declare const FIELD_DEFAULTS: {
|
|
22
|
+
readonly size: "md";
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FooterProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Footer closes the page: the brand with its tagline, the columns of links, the networks
|
|
4
|
+
* and the signature. The top only exists if there is something to put in it.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Footer({ tagline, groups, networks, networksTitle, copyright, legal, homeHref, homeLabel, className, ...rest }: FooterProps): import("react").JSX.Element;
|