@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,75 @@
|
|
|
1
|
+
import { Logo } from "../../atoms/Logo/Logo.js";
|
|
2
|
+
import { SocialIcon } from "../../atoms/SocialIcon/SocialIcon.js";
|
|
3
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
4
|
+
import DeckFooter_module_default from "./DeckFooter.module.js";
|
|
5
|
+
import { DECK_FOOTER_DEFAULTS } from "./types.js";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/organisms/DeckFooter/DeckFooter.tsx
|
|
8
|
+
/**
|
|
9
|
+
* DeckFooter is the last stop of a talk: a full screen with the halo, the logo, the tagline,
|
|
10
|
+
* the networks, the thanks and the signature, all centered.
|
|
11
|
+
*/
|
|
12
|
+
function DeckFooter({ tagline, networks = [], thanks = DECK_FOOTER_DEFAULTS.thanks, copyright, homeHref = DECK_FOOTER_DEFAULTS.homeHref, homeLabel = DECK_FOOTER_DEFAULTS.homeLabel, className }) {
|
|
13
|
+
const classes = [DeckFooter_module_default.pie, className ?? ""].filter(Boolean).join(" ");
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
className: classes,
|
|
16
|
+
"data-deck-footer": "",
|
|
17
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
18
|
+
className: DeckFooter_module_default.halo,
|
|
19
|
+
"aria-hidden": "true"
|
|
20
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
21
|
+
className: DeckFooter_module_default.column,
|
|
22
|
+
children: /* @__PURE__ */ jsxs("footer", {
|
|
23
|
+
className: DeckFooter_module_default.footer,
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsxs("div", {
|
|
26
|
+
className: DeckFooter_module_default.brand,
|
|
27
|
+
children: [/* @__PURE__ */ jsx("a", {
|
|
28
|
+
className: DeckFooter_module_default.home,
|
|
29
|
+
href: homeHref,
|
|
30
|
+
"aria-label": homeLabel,
|
|
31
|
+
children: /* @__PURE__ */ jsx(Logo, {
|
|
32
|
+
size: "xs",
|
|
33
|
+
label: ""
|
|
34
|
+
})
|
|
35
|
+
}), /* @__PURE__ */ jsx(Text, {
|
|
36
|
+
variant: "body-m",
|
|
37
|
+
tone: "secondary",
|
|
38
|
+
wrap: "balance",
|
|
39
|
+
className: DeckFooter_module_default.tagline,
|
|
40
|
+
children: tagline
|
|
41
|
+
})]
|
|
42
|
+
}),
|
|
43
|
+
networks.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
44
|
+
className: DeckFooter_module_default.networks,
|
|
45
|
+
children: networks.map((n) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", {
|
|
46
|
+
className: DeckFooter_module_default.network,
|
|
47
|
+
href: n.href,
|
|
48
|
+
"aria-label": n.label,
|
|
49
|
+
children: /* @__PURE__ */ jsx(SocialIcon, {
|
|
50
|
+
network: n.network,
|
|
51
|
+
size: "sm"
|
|
52
|
+
})
|
|
53
|
+
}) }, n.network))
|
|
54
|
+
}) : null,
|
|
55
|
+
thanks ? /* @__PURE__ */ jsx(Text, {
|
|
56
|
+
variant: "body-l",
|
|
57
|
+
tone: "secondary",
|
|
58
|
+
style: { fontWeight: "var(--540-font-weight-light)" },
|
|
59
|
+
children: thanks
|
|
60
|
+
}) : null,
|
|
61
|
+
/* @__PURE__ */ jsx("div", {
|
|
62
|
+
className: DeckFooter_module_default.closing,
|
|
63
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
64
|
+
variant: "micro-light",
|
|
65
|
+
tone: "secondary",
|
|
66
|
+
children: copyright
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { DeckFooter };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/components/organisms/DeckFooter/DeckFooter.module.css
|
|
2
|
+
var pie = "_pie_m97tq_4";
|
|
3
|
+
var halo = "_halo_m97tq_13";
|
|
4
|
+
var column = "_column_m97tq_24";
|
|
5
|
+
var footer = "_footer_m97tq_32";
|
|
6
|
+
var brand = "_brand_m97tq_39";
|
|
7
|
+
var home = "_home_m97tq_45";
|
|
8
|
+
var tagline = "_tagline_m97tq_55";
|
|
9
|
+
var networks = "_networks_m97tq_59";
|
|
10
|
+
var network = "_network_m97tq_59";
|
|
11
|
+
var closing = "_closing_m97tq_86";
|
|
12
|
+
var DeckFooter_module_default = {
|
|
13
|
+
pie,
|
|
14
|
+
halo,
|
|
15
|
+
column,
|
|
16
|
+
footer,
|
|
17
|
+
brand,
|
|
18
|
+
home,
|
|
19
|
+
tagline,
|
|
20
|
+
networks,
|
|
21
|
+
network,
|
|
22
|
+
closing
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { brand, closing, column, DeckFooter_module_default as default, footer, halo, home, network, networks, pie, tagline };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { FooterNetwork } from '../../molecules/Footer';
|
|
3
|
+
export type DeckFooterProps = {
|
|
4
|
+
/** One line about the talk, at 38 characters. */
|
|
5
|
+
tagline: ReactNode;
|
|
6
|
+
/** The networks, each with its name. */
|
|
7
|
+
networks?: FooterNetwork[];
|
|
8
|
+
/** The thanks line. */
|
|
9
|
+
thanks?: ReactNode;
|
|
10
|
+
/** The signature. */
|
|
11
|
+
copyright: ReactNode;
|
|
12
|
+
/** Where the logo links to: the cover. */
|
|
13
|
+
homeHref?: string;
|
|
14
|
+
/** Accessible name of the logo link. */
|
|
15
|
+
homeLabel?: string;
|
|
16
|
+
className?: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const DECK_FOOTER_DEFAULTS: {
|
|
19
|
+
readonly thanks: "¡Gracias!";
|
|
20
|
+
readonly homeHref: "#portada";
|
|
21
|
+
readonly homeLabel: "540, ir al inicio";
|
|
22
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FlowProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Flow is a chain of steps: pills with an arrow centered in the gap between them.
|
|
4
|
+
* A column on narrow screens, a row from 600 px. One step can be highlighted.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Flow({ steps, label, className }: FlowProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
2
|
+
import Flow_module_default from "./Flow.module.js";
|
|
3
|
+
import { FLOW_DEFAULTS } from "./types.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/organisms/Flow/Flow.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Flow is a chain of steps: pills with an arrow centered in the gap between them.
|
|
8
|
+
* A column on narrow screens, a row from 600 px. One step can be highlighted.
|
|
9
|
+
*/
|
|
10
|
+
function Flow({ steps, label = FLOW_DEFAULTS.label, className }) {
|
|
11
|
+
return /* @__PURE__ */ jsx("ol", {
|
|
12
|
+
className: [Flow_module_default.flow, className ?? ""].filter(Boolean).join(" "),
|
|
13
|
+
"aria-label": label,
|
|
14
|
+
children: steps.map((step, i) => /* @__PURE__ */ jsx("li", {
|
|
15
|
+
className: [Flow_module_default.step, step.highlighted ? Flow_module_default.highlighted : ""].filter(Boolean).join(" "),
|
|
16
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
17
|
+
as: "span",
|
|
18
|
+
variant: "body-s",
|
|
19
|
+
className: Flow_module_default.label,
|
|
20
|
+
children: step.label
|
|
21
|
+
})
|
|
22
|
+
}, i))
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Flow };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/organisms/Flow/Flow.module.css
|
|
2
|
+
var flow = "_flow_1fjzk_4";
|
|
3
|
+
var step = "_step_1fjzk_14";
|
|
4
|
+
var highlighted = "_highlighted_1fjzk_22";
|
|
5
|
+
var label = "_label_1fjzk_27";
|
|
6
|
+
var Flow_module_default = {
|
|
7
|
+
flow,
|
|
8
|
+
step,
|
|
9
|
+
highlighted,
|
|
10
|
+
label
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Flow_module_default as default, flow, highlighted, label, step };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type FlowStep = {
|
|
3
|
+
/** The name of the step. Two or three words. */
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
/** The highlighted step: filled with the inverse background. */
|
|
6
|
+
highlighted?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type FlowProps = {
|
|
9
|
+
/** The steps, in order. */
|
|
10
|
+
steps: FlowStep[];
|
|
11
|
+
/** Accessible name of the list. */
|
|
12
|
+
label?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const FLOW_DEFAULTS: {
|
|
16
|
+
readonly label: "Pasos";
|
|
17
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FormProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Form is the wrapper of a form: it places the fields and puts the submit. The fields come
|
|
4
|
+
* from whoever uses it. noValidate by default so the system's messages win over the browser's.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Form({ children, submitLabel, align, className, noValidate, ...rest }: FormProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Button } from "../../atoms/Button/Button.js";
|
|
2
|
+
import Form_module_default from "./Form.module.js";
|
|
3
|
+
import { FORM_DEFAULTS } from "./types.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/organisms/Form/Form.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Form is the wrapper of a form: it places the fields and puts the submit. The fields come
|
|
8
|
+
* from whoever uses it. noValidate by default so the system's messages win over the browser's.
|
|
9
|
+
*/
|
|
10
|
+
function Form({ children, submitLabel, align = FORM_DEFAULTS.align, className, noValidate = FORM_DEFAULTS.noValidate, ...rest }) {
|
|
11
|
+
return /* @__PURE__ */ jsxs("form", {
|
|
12
|
+
className: [Form_module_default.form, className ?? ""].filter(Boolean).join(" "),
|
|
13
|
+
noValidate,
|
|
14
|
+
...rest,
|
|
15
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: Form_module_default.fields,
|
|
17
|
+
children
|
|
18
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
19
|
+
className: [Form_module_default.submit, align === "center" ? Form_module_default.center : ""].filter(Boolean).join(" "),
|
|
20
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
21
|
+
type: "submit",
|
|
22
|
+
children: submitLabel
|
|
23
|
+
})
|
|
24
|
+
})]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Form };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/organisms/Form/Form.module.css
|
|
2
|
+
var form = "_form_du2ma_4";
|
|
3
|
+
var fields = "_fields_du2ma_9";
|
|
4
|
+
var submit = "_submit_du2ma_14";
|
|
5
|
+
var center = "_center_du2ma_19";
|
|
6
|
+
var Form_module_default = {
|
|
7
|
+
form,
|
|
8
|
+
fields,
|
|
9
|
+
submit,
|
|
10
|
+
center
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { center, Form_module_default as default, fields, form, submit };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
2
|
+
export declare const FORM_ALIGNS: readonly ["end", "center"];
|
|
3
|
+
export type FormAlign = (typeof FORM_ALIGNS)[number];
|
|
4
|
+
export type FormProps = {
|
|
5
|
+
/** The fields, usually Field. */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** The verb and the object of the submit button: "Enviar mensaje". */
|
|
8
|
+
submitLabel: string;
|
|
9
|
+
/** Where the submit goes: end of the row (web) or centered (a talk, where everything is centered). */
|
|
10
|
+
align?: FormAlign;
|
|
11
|
+
className?: string;
|
|
12
|
+
} & Omit<ComponentPropsWithoutRef<'form'>, 'className' | 'children'>;
|
|
13
|
+
export declare const FORM_DEFAULTS: {
|
|
14
|
+
readonly noValidate: true;
|
|
15
|
+
readonly align: "end";
|
|
16
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Heartbeat_module_default from "./Heartbeat.module.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/organisms/Heartbeat/Heartbeat.tsx
|
|
4
|
+
/** Heartbeat is a red heart that beats with a wave around it: "la maquineta" alive. Decoration. */
|
|
5
|
+
function Heartbeat({ className }) {
|
|
6
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
+
className: [Heartbeat_module_default.heartbeat, className ?? ""].filter(Boolean).join(" "),
|
|
8
|
+
"aria-hidden": "true",
|
|
9
|
+
children: [/* @__PURE__ */ jsx("span", { className: Heartbeat_module_default.wave }), /* @__PURE__ */ jsx("svg", {
|
|
10
|
+
viewBox: "0 0 48 44",
|
|
11
|
+
className: Heartbeat_module_default.heart,
|
|
12
|
+
children: /* @__PURE__ */ jsx("path", { d: "M24 41C24 41 3 27.5 3 14.5C3 7.6 8.6 2 15.5 2C19.8 2 22.6 4.2 24 6.6C25.4 4.2 28.2 2 32.5 2C39.4 2 45 7.6 45 14.5C45 27.5 24 41 24 41Z" })
|
|
13
|
+
})]
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Heartbeat };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/organisms/Heartbeat/Heartbeat.module.css
|
|
2
|
+
var heartbeat = "_heartbeat_13f55_3";
|
|
3
|
+
var wave = "_wave_13f55_13";
|
|
4
|
+
var heart = "_heart_13f55_3";
|
|
5
|
+
var beat = "_beat_13f55_1";
|
|
6
|
+
var Heartbeat_module_default = {
|
|
7
|
+
heartbeat,
|
|
8
|
+
wave,
|
|
9
|
+
heart,
|
|
10
|
+
beat
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { beat, Heartbeat_module_default as default, heart, heartbeat, wave };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LogoCarouselProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* LogoCarousel is the strip of client logos: equal slots, an odd number so there is always one
|
|
4
|
+
* in the center, at full ink and 8 % bigger. Steps by itself; pauses on hover and focus.
|
|
5
|
+
*/
|
|
6
|
+
export declare function LogoCarousel({ logos, label, interval, className }: LogoCarouselProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import LogoCarousel_module_default from "./LogoCarousel.module.js";
|
|
2
|
+
import { LOGO_CAROUSEL_DEFAULTS } from "./types.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect, useRef, useState } from "react";
|
|
5
|
+
//#region src/components/organisms/LogoCarousel/LogoCarousel.tsx
|
|
6
|
+
/**
|
|
7
|
+
* LogoCarousel is the strip of client logos: equal slots, an odd number so there is always one
|
|
8
|
+
* in the center, at full ink and 8 % bigger. Steps by itself; pauses on hover and focus.
|
|
9
|
+
*/
|
|
10
|
+
function LogoCarousel({ logos, label, interval = LOGO_CAROUSEL_DEFAULTS.interval, className }) {
|
|
11
|
+
const n = logos.length;
|
|
12
|
+
const [offset, setOffset] = useState(0);
|
|
13
|
+
const [jump, setJump] = useState(false);
|
|
14
|
+
const [paused, setPaused] = useState(false);
|
|
15
|
+
const trackRef = useRef(null);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (n < 2 || paused) return;
|
|
18
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
19
|
+
const id = window.setInterval(() => setOffset((o) => o + 1), interval);
|
|
20
|
+
return () => window.clearInterval(id);
|
|
21
|
+
}, [
|
|
22
|
+
n,
|
|
23
|
+
paused,
|
|
24
|
+
interval
|
|
25
|
+
]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (offset < n) return;
|
|
28
|
+
const track = trackRef.current;
|
|
29
|
+
const onEnd = () => {
|
|
30
|
+
setJump(true);
|
|
31
|
+
setOffset((o) => o - n);
|
|
32
|
+
requestAnimationFrame(() => requestAnimationFrame(() => setJump(false)));
|
|
33
|
+
};
|
|
34
|
+
track?.addEventListener("transitionend", onEnd, { once: true });
|
|
35
|
+
return () => track?.removeEventListener("transitionend", onEnd);
|
|
36
|
+
}, [offset, n]);
|
|
37
|
+
const items = [
|
|
38
|
+
...logos,
|
|
39
|
+
...logos,
|
|
40
|
+
...logos
|
|
41
|
+
];
|
|
42
|
+
return /* @__PURE__ */ jsx("section", {
|
|
43
|
+
className: [LogoCarousel_module_default.carousel, className ?? ""].filter(Boolean).join(" "),
|
|
44
|
+
role: "region",
|
|
45
|
+
"aria-roledescription": "carrusel",
|
|
46
|
+
"aria-label": label,
|
|
47
|
+
onMouseEnter: () => setPaused(true),
|
|
48
|
+
onMouseLeave: () => setPaused(false),
|
|
49
|
+
onFocus: () => setPaused(true),
|
|
50
|
+
onBlur: () => setPaused(false),
|
|
51
|
+
tabIndex: 0,
|
|
52
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
53
|
+
ref: trackRef,
|
|
54
|
+
className: LogoCarousel_module_default.track,
|
|
55
|
+
"data-jump": jump ? "" : void 0,
|
|
56
|
+
style: { "--offset": offset },
|
|
57
|
+
children: items.map((logo, i) => /* @__PURE__ */ jsx("div", {
|
|
58
|
+
className: LogoCarousel_module_default.slot,
|
|
59
|
+
"data-pos": i - offset,
|
|
60
|
+
"aria-hidden": i >= n ? true : void 0,
|
|
61
|
+
children: /* @__PURE__ */ jsx("img", {
|
|
62
|
+
className: LogoCarousel_module_default.logo,
|
|
63
|
+
src: logo.src,
|
|
64
|
+
alt: i < n ? logo.name : "",
|
|
65
|
+
loading: "lazy"
|
|
66
|
+
})
|
|
67
|
+
}, i))
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
export { LogoCarousel };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/organisms/LogoCarousel/LogoCarousel.module.css
|
|
2
|
+
var carousel = "_carousel_w1h3y_4";
|
|
3
|
+
var track = "_track_w1h3y_21";
|
|
4
|
+
var slot = "_slot_w1h3y_32";
|
|
5
|
+
var logo = "_logo_w1h3y_42";
|
|
6
|
+
var LogoCarousel_module_default = {
|
|
7
|
+
carousel,
|
|
8
|
+
track,
|
|
9
|
+
slot,
|
|
10
|
+
logo
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { carousel, LogoCarousel_module_default as default, logo, slot, track };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type ClientLogo = {
|
|
2
|
+
/** Path or URL of the logo file. */
|
|
3
|
+
src: string;
|
|
4
|
+
/** The name of the client. */
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
export type LogoCarouselProps = {
|
|
8
|
+
/** The client logos, in order. */
|
|
9
|
+
logos: ClientLogo[];
|
|
10
|
+
/** Accessible name of the carousel. */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Milliseconds between steps. Off with prefers-reduced-motion. */
|
|
13
|
+
interval?: number;
|
|
14
|
+
className?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const LOGO_CAROUSEL_DEFAULTS: {
|
|
17
|
+
readonly interval: 2400;
|
|
18
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MarqueeProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Marquee is a strip of short pieces that scrolls endlessly between two hairlines, edge to edge.
|
|
4
|
+
* The pieces are repeated until one round covers the window, then doubled (the copies hidden from
|
|
5
|
+
* screen readers), so the loop never shows its end. The speed stays the same however many repeats.
|
|
6
|
+
*/
|
|
7
|
+
export declare function Marquee({ items, duration, className }: MarqueeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
2
|
+
import Marquee_module_default from "./Marquee.module.js";
|
|
3
|
+
import { MARQUEE_DEFAULTS } from "./types.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useEffect, useRef, useState } from "react";
|
|
6
|
+
//#region src/components/organisms/Marquee/Marquee.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Marquee is a strip of short pieces that scrolls endlessly between two hairlines, edge to edge.
|
|
9
|
+
* The pieces are repeated until one round covers the window, then doubled (the copies hidden from
|
|
10
|
+
* screen readers), so the loop never shows its end. The speed stays the same however many repeats.
|
|
11
|
+
*/
|
|
12
|
+
function Marquee({ items, duration = MARQUEE_DEFAULTS.duration, className }) {
|
|
13
|
+
const frame = useRef(null);
|
|
14
|
+
const round = useRef(null);
|
|
15
|
+
const [repeats, setRepeats] = useState(1);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const f = frame.current;
|
|
18
|
+
const r = round.current;
|
|
19
|
+
if (!f || !r || typeof ResizeObserver === "undefined") return;
|
|
20
|
+
const fit = () => {
|
|
21
|
+
const one = r.scrollWidth / repeats;
|
|
22
|
+
if (one > 0) setRepeats(Math.max(1, Math.ceil(f.clientWidth / one)));
|
|
23
|
+
};
|
|
24
|
+
const ro = new ResizeObserver(fit);
|
|
25
|
+
ro.observe(f);
|
|
26
|
+
fit();
|
|
27
|
+
return () => ro.disconnect();
|
|
28
|
+
}, [repeats, items]);
|
|
29
|
+
const pieces = (copy) => items.map((item, i) => /* @__PURE__ */ jsx(Text, {
|
|
30
|
+
as: "span",
|
|
31
|
+
variant: "body-m",
|
|
32
|
+
tone: "secondary",
|
|
33
|
+
className: Marquee_module_default.piece,
|
|
34
|
+
"aria-hidden": copy > 0 ? true : void 0,
|
|
35
|
+
children: item
|
|
36
|
+
}, `${copy}-${i}`));
|
|
37
|
+
const roundOf = (offset) => Array.from({ length: repeats }, (_, k) => pieces(offset + k));
|
|
38
|
+
return /* @__PURE__ */ jsx("div", {
|
|
39
|
+
ref: frame,
|
|
40
|
+
className: [Marquee_module_default.marquee, className ?? ""].filter(Boolean).join(" "),
|
|
41
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
42
|
+
className: Marquee_module_default.strip,
|
|
43
|
+
style: { "--marquee-duration": `${duration * repeats}s` },
|
|
44
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
45
|
+
ref: round,
|
|
46
|
+
className: Marquee_module_default.round,
|
|
47
|
+
children: roundOf(0)
|
|
48
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
49
|
+
className: Marquee_module_default.round,
|
|
50
|
+
"aria-hidden": "true",
|
|
51
|
+
children: roundOf(repeats)
|
|
52
|
+
})]
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { Marquee };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/components/organisms/Marquee/Marquee.module.css
|
|
2
|
+
var marquee = "_marquee_19w0s_3";
|
|
3
|
+
var strip = "_strip_19w0s_12";
|
|
4
|
+
var scroll = "_scroll_19w0s_1";
|
|
5
|
+
var round = "_round_19w0s_18";
|
|
6
|
+
var piece = "_piece_19w0s_23";
|
|
7
|
+
var Marquee_module_default = {
|
|
8
|
+
marquee,
|
|
9
|
+
strip,
|
|
10
|
+
scroll,
|
|
11
|
+
round,
|
|
12
|
+
piece
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Marquee_module_default as default, marquee, piece, round, scroll, strip };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type MarqueeProps = {
|
|
3
|
+
/** The pieces that scroll. They are repeated to loop. */
|
|
4
|
+
items: ReactNode[];
|
|
5
|
+
/** Seconds for a full loop. */
|
|
6
|
+
duration?: number;
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const MARQUEE_DEFAULTS: {
|
|
10
|
+
readonly duration: 40;
|
|
11
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ProgressBarProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* ProgressBar is a time bar or an adoption bar: a track with a fill that grows from the left,
|
|
4
|
+
* labels at both ends and, optionally, milestones that light up as they are reached.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ProgressBar({ value, start, end, milestones, reached, label, className }: ProgressBarProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Text } from "../../atoms/Text/Text.js";
|
|
2
|
+
import ProgressBar_module_default from "./ProgressBar.module.js";
|
|
3
|
+
import { PROGRESS_BAR_DEFAULTS } from "./types.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/organisms/ProgressBar/ProgressBar.tsx
|
|
6
|
+
/**
|
|
7
|
+
* ProgressBar is a time bar or an adoption bar: a track with a fill that grows from the left,
|
|
8
|
+
* labels at both ends and, optionally, milestones that light up as they are reached.
|
|
9
|
+
*/
|
|
10
|
+
function ProgressBar({ value, start, end, milestones = PROGRESS_BAR_DEFAULTS.milestones, reached = PROGRESS_BAR_DEFAULTS.reached, label, className }) {
|
|
11
|
+
const v = Math.max(0, Math.min(1, value));
|
|
12
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
13
|
+
className: [ProgressBar_module_default.bar, className ?? ""].filter(Boolean).join(" "),
|
|
14
|
+
role: "progressbar",
|
|
15
|
+
"aria-label": label,
|
|
16
|
+
"aria-valuemin": 0,
|
|
17
|
+
"aria-valuemax": 100,
|
|
18
|
+
"aria-valuenow": Math.round(v * 100),
|
|
19
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: ProgressBar_module_default.track,
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ jsx("div", {
|
|
23
|
+
className: ProgressBar_module_default.fill,
|
|
24
|
+
style: { transform: `scaleX(${v})` }
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ jsx("span", {
|
|
27
|
+
className: ProgressBar_module_default.dot,
|
|
28
|
+
style: { left: 0 },
|
|
29
|
+
"aria-hidden": "true"
|
|
30
|
+
}),
|
|
31
|
+
Array.from({ length: milestones }, (_, i) => /* @__PURE__ */ jsx("span", {
|
|
32
|
+
className: [ProgressBar_module_default.dot, ProgressBar_module_default.milestone].join(" "),
|
|
33
|
+
style: { left: `${(i + 1) / (milestones + 1) * 100}%` },
|
|
34
|
+
"data-on": i < reached ? "" : void 0,
|
|
35
|
+
"aria-hidden": "true"
|
|
36
|
+
}, i)),
|
|
37
|
+
/* @__PURE__ */ jsx("span", {
|
|
38
|
+
className: ProgressBar_module_default.dot,
|
|
39
|
+
style: { left: "100%" },
|
|
40
|
+
"aria-hidden": "true"
|
|
41
|
+
})
|
|
42
|
+
]
|
|
43
|
+
}), start || end ? /* @__PURE__ */ jsxs("div", {
|
|
44
|
+
className: ProgressBar_module_default.ends,
|
|
45
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
46
|
+
variant: "body-s",
|
|
47
|
+
children: start
|
|
48
|
+
}), /* @__PURE__ */ jsx(Text, {
|
|
49
|
+
variant: "body-s",
|
|
50
|
+
children: end
|
|
51
|
+
})]
|
|
52
|
+
}) : null]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { ProgressBar };
|