@reykjavik/hanna-react 0.10.53 → 0.10.56
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/{types/AccordionList.d.ts → AccordionList.d.ts} +0 -0
- package/AccordionList.jsx +61 -0
- package/{types/ActionCards.d.ts → ActionCards.d.ts} +0 -0
- package/ActionCards.jsx +15 -0
- package/{types/Alert.d.ts → Alert.d.ts} +0 -0
- package/Alert.jsx +123 -0
- package/{types/ArticleCarousel → ArticleCarousel}/_ArticleCarouselCard.d.ts +1 -1
- package/ArticleCarousel/_ArticleCarouselCard.jsx +32 -0
- package/{types/ArticleCarousel.d.ts → ArticleCarousel.d.ts} +0 -0
- package/ArticleCarousel.jsx +13 -0
- package/{types/ArticleMeta.d.ts → ArticleMeta.d.ts} +0 -0
- package/ArticleMeta.jsx +42 -0
- package/{types/Attention.d.ts → Attention.d.ts} +0 -0
- package/Attention.jsx +9 -0
- package/{types/BasicTable.d.ts → BasicTable.d.ts} +0 -0
- package/BasicTable.jsx +35 -0
- package/{types/Bling.d.ts → Bling.d.ts} +0 -0
- package/Bling.jsx +49 -0
- package/{types/BlockBreak.d.ts → BlockBreak.d.ts} +0 -0
- package/BlockBreak.jsx +11 -0
- package/{types/BlockQuote.d.ts → BlockQuote.d.ts} +0 -0
- package/BlockQuote.jsx +9 -0
- package/{types/BreadCrumbs.d.ts → BreadCrumbs.d.ts} +0 -0
- package/BreadCrumbs.jsx +36 -0
- package/{types/ButtonBack.d.ts → ButtonBack.d.ts} +0 -0
- package/ButtonBack.jsx +9 -0
- package/{types/ButtonBar.d.ts → ButtonBar.d.ts} +0 -0
- package/ButtonBar.jsx +23 -0
- package/{types/ButtonPrimary.d.ts → ButtonPrimary.d.ts} +0 -0
- package/ButtonPrimary.jsx +9 -0
- package/{types/ButtonSecondary.d.ts → ButtonSecondary.d.ts} +0 -0
- package/ButtonSecondary.jsx +9 -0
- package/{types/ButtonTertiary.d.ts → ButtonTertiary.d.ts} +0 -0
- package/ButtonTertiary.jsx +20 -0
- package/CHANGELOG.md +14 -6
- package/{types/Carousel.d.ts → Carousel.d.ts} +0 -0
- package/Carousel.jsx +9 -0
- package/{types/CarouselStepper.d.ts → CarouselStepper.d.ts} +0 -0
- package/CarouselStepper.jsx +9 -0
- package/{types/CenterColumn.d.ts → CenterColumn.d.ts} +0 -0
- package/CenterColumn.jsx +14 -0
- package/{types/Checkbox.d.ts → Checkbox.d.ts} +0 -0
- package/Checkbox.jsx +9 -0
- package/{types/CheckboxButtonsGroup.d.ts → CheckboxButtonsGroup.d.ts} +0 -0
- package/CheckboxButtonsGroup.jsx +19 -0
- package/{types/CheckboxGroup.d.ts → CheckboxGroup.d.ts} +0 -0
- package/CheckboxGroup.jsx +12 -0
- package/{types/CityBlock.d.ts → CityBlock.d.ts} +0 -0
- package/CityBlock.jsx +23 -0
- package/{types/ContactBubble.d.ts → ContactBubble.d.ts} +0 -0
- package/ContactBubble.jsx +192 -0
- package/{types/ContentArticle.d.ts → ContentArticle.d.ts} +0 -0
- package/ContentArticle.jsx +29 -0
- package/{types/ContentImage.d.ts → ContentImage.d.ts} +0 -0
- package/ContentImage.jsx +18 -0
- package/{types/Datepicker.d.ts → Datepicker.d.ts} +0 -0
- package/Datepicker.jsx +92 -0
- package/{types/ExtraLinks.d.ts → ExtraLinks.d.ts} +0 -0
- package/ExtraLinks.jsx +47 -0
- package/{types/FeatureList.d.ts → FeatureList.d.ts} +0 -0
- package/FeatureList.jsx +28 -0
- package/{types/FieldGroup.d.ts → FieldGroup.d.ts} +0 -0
- package/FieldGroup.jsx +15 -0
- package/{types/FileInput.d.ts → FileInput.d.ts} +0 -0
- package/FileInput.jsx +185 -0
- package/{types/Foonote.d.ts → Foonote.d.ts} +0 -0
- package/Foonote.jsx +12 -0
- package/{types/FooterBadges.d.ts → FooterBadges.d.ts} +0 -0
- package/FooterBadges.jsx +21 -0
- package/{types/FooterInfo.d.ts → FooterInfo.d.ts} +0 -0
- package/FooterInfo.jsx +19 -0
- package/{types/Footnote.d.ts → Footnote.d.ts} +0 -0
- package/Footnote.jsx +8 -0
- package/{types/Form.d.ts → Form.d.ts} +0 -0
- package/Form.jsx +17 -0
- package/{types/FormField.d.ts → FormField.d.ts} +0 -0
- package/FormField.jsx +121 -0
- package/{types/Gallery → Gallery}/_GalleryItem.d.ts +0 -0
- package/Gallery/_GalleryItem.jsx +59 -0
- package/{types/Gallery → Gallery}/_GalleryModal.d.ts +0 -0
- package/Gallery/_GalleryModal.jsx +86 -0
- package/{types/Gallery → Gallery}/_GalleryModalContext.d.ts +0 -0
- package/Gallery/_GalleryModalContext.js +8 -0
- package/{types/Gallery → Gallery}/_GalleryModalItem.d.ts +0 -0
- package/Gallery/_GalleryModalItem.jsx +29 -0
- package/{types/Gallery.d.ts → Gallery.d.ts} +0 -0
- package/Gallery.jsx +56 -0
- package/{types/GridBlocks.d.ts → GridBlocks.d.ts} +0 -0
- package/GridBlocks.jsx +40 -0
- package/{types/Heading.d.ts → Heading.d.ts} +0 -0
- package/Heading.jsx +24 -0
- package/{types/HeroBlock.d.ts → HeroBlock.d.ts} +0 -0
- package/HeroBlock.jsx +27 -0
- package/{types/IframeBlock.d.ts → IframeBlock.d.ts} +0 -0
- package/IframeBlock.jsx +31 -0
- package/{types/Illustration.d.ts → Illustration.d.ts} +0 -0
- package/Illustration.jsx +13 -0
- package/{types/ImageCards.d.ts → ImageCards.d.ts} +0 -0
- package/ImageCards.jsx +28 -0
- package/{types/InfoBlock.d.ts → InfoBlock.d.ts} +0 -0
- package/InfoBlock.jsx +23 -0
- package/{types/InfoHero.d.ts → InfoHero.d.ts} +0 -0
- package/InfoHero.jsx +93 -0
- package/{types/IslandBlock.d.ts → IslandBlock.d.ts} +0 -0
- package/IslandBlock.jsx +21 -0
- package/{types/IslandPageBlock.d.ts → IslandPageBlock.d.ts} +0 -0
- package/IslandPageBlock.jsx +21 -0
- package/{types/LabeledTextBlock.d.ts → LabeledTextBlock.d.ts} +0 -0
- package/LabeledTextBlock.jsx +21 -0
- package/{types/Layout.d.ts → Layout.d.ts} +0 -0
- package/Layout.jsx +69 -0
- package/{types/MainMenu → MainMenu}/_Auxiliary.d.ts +0 -0
- package/MainMenu/_Auxiliary.jsx +26 -0
- package/{types/MainMenu → MainMenu}/_PrimaryPanel.d.ts +0 -0
- package/MainMenu/_PrimaryPanel.jsx +37 -0
- package/{types/MainMenu.d.ts → MainMenu.d.ts} +1 -1
- package/MainMenu.jsx +178 -0
- package/{types/MiniMetrics.d.ts → MiniMetrics.d.ts} +0 -0
- package/MiniMetrics.jsx +16 -0
- package/{types/Modal.d.ts → Modal.d.ts} +0 -0
- package/Modal.jsx +21 -0
- package/{types/NameCard.d.ts → NameCard.d.ts} +0 -0
- package/NameCard.jsx +92 -0
- package/{types/NameCards.d.ts → NameCards.d.ts} +0 -0
- package/NameCards.jsx +14 -0
- package/{types/NewsHero.d.ts → NewsHero.d.ts} +0 -0
- package/NewsHero.jsx +93 -0
- package/{types/PageFilter.d.ts → PageFilter.d.ts} +0 -0
- package/PageFilter.jsx +21 -0
- package/{types/PageHeading.d.ts → PageHeading.d.ts} +0 -0
- package/PageHeading.jsx +19 -0
- package/{types/ProcessOverview.d.ts → ProcessOverview.d.ts} +0 -0
- package/ProcessOverview.jsx +25 -0
- package/{types/PullQuote.d.ts → PullQuote.d.ts} +0 -0
- package/PullQuote.jsx +9 -0
- package/{types/RadioButtonsGroup.d.ts → RadioButtonsGroup.d.ts} +0 -0
- package/RadioButtonsGroup.jsx +19 -0
- package/{types/RadioGroup.d.ts → RadioGroup.d.ts} +0 -0
- package/RadioGroup.jsx +12 -0
- package/{types/RelatedLinks.d.ts → RelatedLinks.d.ts} +0 -0
- package/RelatedLinks.jsx +35 -0
- package/{types/RowBlock.d.ts → RowBlock.d.ts} +0 -0
- package/RowBlock.jsx +16 -0
- package/{types/RowBlockColumn.d.ts → RowBlockColumn.d.ts} +0 -0
- package/RowBlockColumn.jsx +18 -0
- package/{types/SearchInput.d.ts → SearchInput.d.ts} +0 -0
- package/SearchInput.jsx +63 -0
- package/{types/SearchResults → SearchResults}/_SearchResultsItem.d.ts +0 -0
- package/SearchResults/_SearchResultsItem.jsx +24 -0
- package/{types/SearchResults.d.ts → SearchResults.d.ts} +0 -0
- package/SearchResults.jsx +146 -0
- package/{types/SeenEffect.d.ts → SeenEffect.d.ts} +0 -0
- package/SeenEffect.jsx +24 -0
- package/{types/Selectbox.d.ts → Selectbox.d.ts} +0 -0
- package/Selectbox.jsx +74 -0
- package/{types/ShareButtons.d.ts → ShareButtons.d.ts} +0 -0
- package/ShareButtons.jsx +82 -0
- package/{types/Sharpie.d.ts → Sharpie.d.ts} +0 -0
- package/Sharpie.jsx +27 -0
- package/{types/SiteSearchAutocomplete.d.ts → SiteSearchAutocomplete.d.ts} +0 -0
- package/SiteSearchAutocomplete.jsx +89 -0
- package/{types/SiteSearchCurtain.d.ts → SiteSearchCurtain.d.ts} +0 -0
- package/SiteSearchCurtain.jsx +65 -0
- package/SiteSearchInput.d.ts +24 -0
- package/SiteSearchInput.jsx +70 -0
- package/{types/Skeleton.d.ts → Skeleton.d.ts} +0 -0
- package/Skeleton.jsx +35 -0
- package/{types/SubHeading.d.ts → SubHeading.d.ts} +0 -0
- package/SubHeading.jsx +20 -0
- package/{types/Tabs.d.ts → Tabs.d.ts} +0 -0
- package/Tabs.jsx +122 -0
- package/{types/TagPill.d.ts → TagPill.d.ts} +0 -0
- package/TagPill.jsx +53 -0
- package/{types/TextBlock.d.ts → TextBlock.d.ts} +0 -0
- package/TextBlock.jsx +22 -0
- package/{types/TextButton.d.ts → TextButton.d.ts} +0 -0
- package/TextButton.jsx +14 -0
- package/{types/TextInput.d.ts → TextInput.d.ts} +0 -0
- package/TextInput.jsx +63 -0
- package/{types/VSpacer.d.ts → VSpacer.d.ts} +0 -0
- package/VSpacer.jsx +46 -0
- package/{types/VerticalTabsTOC.d.ts → VerticalTabsTOC.d.ts} +0 -0
- package/VerticalTabsTOC.jsx +96 -0
- package/{types/WizardLayout.d.ts → WizardLayout.d.ts} +0 -0
- package/WizardLayout.jsx +44 -0
- package/{types/WizardLayoutClose.d.ts → WizardLayoutClose.d.ts} +0 -0
- package/WizardLayoutClose.jsx +9 -0
- package/{types/WizardStepper.d.ts → WizardStepper.d.ts} +0 -0
- package/WizardStepper.jsx +34 -0
- package/{types/_abstract → _abstract}/Button.d.ts +0 -0
- package/_abstract/Button.jsx +56 -0
- package/{types/_abstract → _abstract}/CardList.d.ts +0 -0
- package/_abstract/CardList.jsx +46 -0
- package/{types/_abstract → _abstract}/Image.d.ts +0 -0
- package/_abstract/Image.jsx +34 -0
- package/{types/_abstract → _abstract}/Link.d.ts +0 -0
- package/_abstract/Link.jsx +31 -0
- package/{types/_abstract → _abstract}/TogglerGroup.d.ts +0 -0
- package/_abstract/TogglerGroup.jsx +36 -0
- package/{types/_abstract → _abstract}/TogglerGroupField.d.ts +0 -0
- package/_abstract/TogglerGroupField.jsx +27 -0
- package/{types/_abstract → _abstract}/TogglerInput.d.ts +0 -0
- package/_abstract/TogglerInput.jsx +40 -0
- package/{types/_abstract → _abstract}/_AbstractCarousel.d.ts +0 -0
- package/_abstract/_AbstractCarousel.jsx +161 -0
- package/{types/_abstract → _abstract}/_Blings.d.ts +0 -0
- package/_abstract/_Blings.jsx +19 -0
- package/{types/_abstract → _abstract}/_Block.d.ts +0 -0
- package/_abstract/_Block.jsx +32 -0
- package/{types/_abstract → _abstract}/_Quote.d.ts +0 -0
- package/_abstract/_Quote.jsx +18 -0
- package/{types/_abstract → _abstract}/breakOnNL.d.ts +0 -0
- package/_abstract/breakOnNL.jsx +13 -0
- package/{types/assets.d.ts → assets.d.ts} +0 -0
- package/assets.js +51 -0
- package/{types/constants.d.ts → constants.d.ts} +0 -0
- package/constants.js +25 -0
- package/esm/AccordionList.d.ts +17 -0
- package/esm/AccordionList.jsx +33 -0
- package/esm/ActionCards.d.ts +5 -0
- package/esm/ActionCards.jsx +10 -0
- package/esm/Alert.d.ts +49 -0
- package/esm/Alert.jsx +94 -0
- package/esm/ArticleCarousel/_ArticleCarouselCard.d.ts +27 -0
- package/esm/ArticleCarousel/_ArticleCarouselCard.jsx +25 -0
- package/esm/ArticleCarousel.d.ts +12 -0
- package/esm/ArticleCarousel.jsx +8 -0
- package/esm/ArticleMeta.d.ts +9 -0
- package/esm/ArticleMeta.jsx +17 -0
- package/esm/Attention.d.ts +7 -0
- package/esm/Attention.jsx +4 -0
- package/esm/BasicTable.d.ts +12 -0
- package/esm/BasicTable.jsx +30 -0
- package/esm/Bling.d.ts +81 -0
- package/esm/Bling.jsx +44 -0
- package/esm/BlockBreak.d.ts +2 -0
- package/esm/BlockBreak.jsx +6 -0
- package/esm/BlockQuote.d.ts +4 -0
- package/esm/BlockQuote.jsx +4 -0
- package/esm/BreadCrumbs.d.ts +11 -0
- package/esm/BreadCrumbs.jsx +31 -0
- package/esm/ButtonBack.d.ts +7 -0
- package/esm/ButtonBack.jsx +4 -0
- package/esm/ButtonBar.d.ts +16 -0
- package/esm/ButtonBar.jsx +16 -0
- package/esm/ButtonPrimary.d.ts +7 -0
- package/esm/ButtonPrimary.jsx +4 -0
- package/esm/ButtonSecondary.d.ts +7 -0
- package/esm/ButtonSecondary.jsx +4 -0
- package/esm/ButtonTertiary.d.ts +12 -0
- package/esm/ButtonTertiary.jsx +15 -0
- package/esm/Carousel.d.ts +4 -0
- package/esm/Carousel.jsx +4 -0
- package/esm/CarouselStepper.d.ts +4 -0
- package/esm/CarouselStepper.jsx +4 -0
- package/esm/CenterColumn.d.ts +7 -0
- package/esm/CenterColumn.jsx +9 -0
- package/esm/Checkbox.d.ts +4 -0
- package/esm/Checkbox.jsx +4 -0
- package/esm/CheckboxButtonsGroup.d.ts +11 -0
- package/esm/CheckboxButtonsGroup.jsx +14 -0
- package/esm/CheckboxGroup.d.ts +9 -0
- package/esm/CheckboxGroup.jsx +7 -0
- package/esm/CityBlock.d.ts +23 -0
- package/esm/CityBlock.jsx +18 -0
- package/esm/ContactBubble.d.ts +58 -0
- package/esm/ContactBubble.jsx +162 -0
- package/esm/ContentArticle.d.ts +15 -0
- package/esm/ContentArticle.jsx +24 -0
- package/esm/ContentImage.d.ts +8 -0
- package/esm/ContentImage.jsx +13 -0
- package/esm/Datepicker.d.ts +39 -0
- package/esm/Datepicker.jsx +64 -0
- package/esm/ExtraLinks.d.ts +18 -0
- package/esm/ExtraLinks.jsx +42 -0
- package/esm/FeatureList.d.ts +12 -0
- package/esm/FeatureList.jsx +23 -0
- package/esm/FieldGroup.d.ts +9 -0
- package/esm/FieldGroup.jsx +10 -0
- package/esm/FileInput.d.ts +17 -0
- package/esm/FileInput.jsx +157 -0
- package/esm/Foonote.d.ts +12 -0
- package/esm/Foonote.jsx +7 -0
- package/esm/FooterBadges.d.ts +9 -0
- package/esm/FooterBadges.jsx +16 -0
- package/esm/FooterInfo.d.ts +18 -0
- package/esm/FooterInfo.jsx +14 -0
- package/esm/Footnote.d.ts +6 -0
- package/esm/Footnote.jsx +3 -0
- package/esm/Form.d.ts +7 -0
- package/esm/Form.jsx +12 -0
- package/esm/FormField.d.ts +65 -0
- package/esm/FormField.jsx +93 -0
- package/esm/Gallery/_GalleryItem.d.ts +8 -0
- package/esm/Gallery/_GalleryItem.jsx +31 -0
- package/esm/Gallery/_GalleryModal.d.ts +6 -0
- package/esm/Gallery/_GalleryModal.jsx +58 -0
- package/esm/Gallery/_GalleryModalContext.d.ts +9 -0
- package/esm/Gallery/_GalleryModalContext.js +3 -0
- package/esm/Gallery/_GalleryModalItem.d.ts +3 -0
- package/esm/Gallery/_GalleryModalItem.jsx +24 -0
- package/esm/Gallery.d.ts +17 -0
- package/esm/Gallery.jsx +28 -0
- package/esm/GridBlocks.d.ts +26 -0
- package/esm/GridBlocks.jsx +35 -0
- package/esm/Heading.d.ts +16 -0
- package/esm/Heading.jsx +19 -0
- package/esm/HeroBlock.d.ts +19 -0
- package/esm/HeroBlock.jsx +22 -0
- package/esm/IframeBlock.d.ts +23 -0
- package/esm/IframeBlock.jsx +26 -0
- package/esm/Illustration.d.ts +13 -0
- package/esm/Illustration.jsx +8 -0
- package/esm/ImageCards.d.ts +8 -0
- package/esm/ImageCards.jsx +23 -0
- package/esm/InfoBlock.d.ts +17 -0
- package/esm/InfoBlock.jsx +18 -0
- package/esm/InfoHero.d.ts +17 -0
- package/esm/InfoHero.jsx +88 -0
- package/esm/IslandBlock.d.ts +25 -0
- package/esm/IslandBlock.jsx +16 -0
- package/esm/IslandPageBlock.d.ts +24 -0
- package/esm/IslandPageBlock.jsx +16 -0
- package/esm/LabeledTextBlock.d.ts +11 -0
- package/esm/LabeledTextBlock.jsx +16 -0
- package/esm/Layout.d.ts +33 -0
- package/esm/Layout.jsx +63 -0
- package/esm/MainMenu/_Auxiliary.d.ts +6 -0
- package/esm/MainMenu/_Auxiliary.jsx +19 -0
- package/esm/MainMenu/_PrimaryPanel.d.ts +13 -0
- package/esm/MainMenu/_PrimaryPanel.jsx +30 -0
- package/esm/MainMenu.d.ts +48 -0
- package/esm/MainMenu.jsx +149 -0
- package/esm/MiniMetrics.d.ts +8 -0
- package/esm/MiniMetrics.jsx +11 -0
- package/esm/Modal.d.ts +10 -0
- package/esm/Modal.jsx +16 -0
- package/esm/NameCard.d.ts +64 -0
- package/esm/NameCard.jsx +87 -0
- package/esm/NameCards.d.ts +6 -0
- package/esm/NameCards.jsx +9 -0
- package/esm/NewsHero.d.ts +14 -0
- package/esm/NewsHero.jsx +88 -0
- package/esm/PageFilter.d.ts +17 -0
- package/esm/PageFilter.jsx +16 -0
- package/esm/PageHeading.d.ts +10 -0
- package/esm/PageHeading.jsx +14 -0
- package/esm/ProcessOverview.d.ts +13 -0
- package/esm/ProcessOverview.jsx +20 -0
- package/esm/PullQuote.d.ts +4 -0
- package/esm/PullQuote.jsx +4 -0
- package/esm/RadioButtonsGroup.d.ts +11 -0
- package/esm/RadioButtonsGroup.jsx +14 -0
- package/esm/RadioGroup.d.ts +13 -0
- package/esm/RadioGroup.jsx +7 -0
- package/esm/RelatedLinks.d.ts +20 -0
- package/esm/RelatedLinks.jsx +30 -0
- package/esm/RowBlock.d.ts +12 -0
- package/esm/RowBlock.jsx +11 -0
- package/esm/RowBlockColumn.d.ts +8 -0
- package/esm/RowBlockColumn.jsx +13 -0
- package/esm/SearchInput.d.ts +18 -0
- package/esm/SearchInput.jsx +35 -0
- package/esm/SearchResults/_SearchResultsItem.d.ts +18 -0
- package/esm/SearchResults/_SearchResultsItem.jsx +19 -0
- package/esm/SearchResults.d.ts +33 -0
- package/esm/SearchResults.jsx +118 -0
- package/esm/SeenEffect.d.ts +4 -0
- package/esm/SeenEffect.jsx +19 -0
- package/esm/Selectbox.d.ts +8 -0
- package/esm/Selectbox.jsx +46 -0
- package/esm/ShareButtons.d.ts +9 -0
- package/esm/ShareButtons.jsx +57 -0
- package/esm/Sharpie.d.ts +23 -0
- package/esm/Sharpie.jsx +22 -0
- package/esm/SiteSearchAutocomplete.d.ts +40 -0
- package/esm/SiteSearchAutocomplete.jsx +60 -0
- package/esm/SiteSearchCurtain.d.ts +6 -0
- package/esm/SiteSearchCurtain.jsx +37 -0
- package/esm/SiteSearchInput.d.ts +24 -0
- package/esm/SiteSearchInput.jsx +42 -0
- package/esm/Skeleton.d.ts +25 -0
- package/esm/Skeleton.jsx +30 -0
- package/esm/SubHeading.d.ts +10 -0
- package/esm/SubHeading.jsx +15 -0
- package/esm/Tabs.d.ts +35 -0
- package/esm/Tabs.jsx +94 -0
- package/esm/TagPill.d.ts +27 -0
- package/esm/TagPill.jsx +48 -0
- package/esm/TextBlock.d.ts +15 -0
- package/esm/TextBlock.jsx +17 -0
- package/esm/TextButton.d.ts +9 -0
- package/esm/TextButton.jsx +9 -0
- package/esm/TextInput.d.ts +16 -0
- package/esm/TextInput.jsx +35 -0
- package/esm/VSpacer.d.ts +24 -0
- package/esm/VSpacer.jsx +41 -0
- package/esm/VerticalTabsTOC.d.ts +14 -0
- package/esm/VerticalTabsTOC.jsx +68 -0
- package/esm/WizardLayout.d.ts +15 -0
- package/esm/WizardLayout.jsx +39 -0
- package/esm/WizardLayoutClose.d.ts +3 -0
- package/esm/WizardLayoutClose.jsx +4 -0
- package/esm/WizardStepper.d.ts +36 -0
- package/esm/WizardStepper.jsx +29 -0
- package/esm/_abstract/Button.d.ts +40 -0
- package/esm/_abstract/Button.jsx +51 -0
- package/esm/_abstract/CardList.d.ts +29 -0
- package/esm/_abstract/CardList.jsx +39 -0
- package/esm/_abstract/Image.d.ts +32 -0
- package/esm/_abstract/Image.jsx +29 -0
- package/esm/_abstract/Link.d.ts +27 -0
- package/esm/_abstract/Link.jsx +24 -0
- package/esm/_abstract/TogglerGroup.d.ts +31 -0
- package/esm/_abstract/TogglerGroup.jsx +31 -0
- package/esm/_abstract/TogglerGroupField.d.ts +17 -0
- package/esm/_abstract/TogglerGroupField.jsx +22 -0
- package/esm/_abstract/TogglerInput.d.ts +22 -0
- package/esm/_abstract/TogglerInput.jsx +35 -0
- package/esm/_abstract/_AbstractCarousel.d.ts +25 -0
- package/esm/_abstract/_AbstractCarousel.jsx +133 -0
- package/esm/_abstract/_Blings.d.ts +11 -0
- package/esm/_abstract/_Blings.jsx +14 -0
- package/esm/_abstract/_Block.d.ts +22 -0
- package/esm/_abstract/_Block.jsx +27 -0
- package/esm/_abstract/_Quote.d.ts +9 -0
- package/esm/_abstract/_Quote.jsx +11 -0
- package/esm/_abstract/breakOnNL.d.ts +2 -0
- package/esm/_abstract/breakOnNL.jsx +8 -0
- package/esm/assets.d.ts +42 -0
- package/esm/assets.js +56 -0
- package/esm/constants.d.ts +39 -0
- package/esm/constants.js +22 -0
- package/{types → esm}/focus-visible.d.ts +0 -0
- package/esm/focus-visible.js +1 -0
- package/esm/package.json +1 -0
- package/{types → esm}/utils/env.d.ts +0 -0
- package/esm/utils/env.js +8 -0
- package/{types → esm}/utils/seenEffect.d.ts +0 -0
- package/esm/utils/seenEffect.js +73 -0
- package/{types → esm}/utils/useFormatMonitor.d.ts +0 -0
- package/esm/utils/useFormatMonitor.js +41 -0
- package/{types → esm}/utils/useGetSVGtext.d.ts +0 -0
- package/esm/utils/useGetSVGtext.js +19 -0
- package/{types → esm}/utils/useMenuToggling.d.ts +0 -0
- package/esm/utils/useMenuToggling.js +62 -0
- package/{types → esm}/utils/useScrollbarWidthCSSVar.d.ts +0 -0
- package/esm/utils/useScrollbarWidthCSSVar.js +3 -0
- package/{types → esm}/utils.d.ts +0 -0
- package/esm/utils.js +2 -0
- package/focus-visible.d.ts +1 -0
- package/focus-visible.js +3 -0
- package/package.json +362 -452
- package/utils/env.d.ts +1 -0
- package/utils/env.js +14 -0
- package/utils/seenEffect.d.ts +28 -0
- package/utils/seenEffect.js +81 -0
- package/utils/useFormatMonitor.d.ts +38 -0
- package/utils/useFormatMonitor.js +44 -0
- package/utils/useGetSVGtext.d.ts +6 -0
- package/utils/useGetSVGtext.js +23 -0
- package/utils/useMenuToggling.d.ts +8 -0
- package/utils/useMenuToggling.js +66 -0
- package/utils/useScrollbarWidthCSSVar.d.ts +1 -0
- package/utils/useScrollbarWidthCSSVar.js +10 -0
- package/utils.d.ts +2 -0
- package/utils.js +18 -0
- package/lib/AccordionList.cjs +0 -91
- package/lib/AccordionList.mjs +0 -69
- package/lib/ActionCards.cjs +0 -57
- package/lib/ActionCards.mjs +0 -35
- package/lib/Alert.cjs +0 -159
- package/lib/Alert.mjs +0 -139
- package/lib/ArticleCarousel/_ArticleCarouselCard.cjs +0 -75
- package/lib/ArticleCarousel/_ArticleCarouselCard.mjs +0 -51
- package/lib/ArticleCarousel.cjs +0 -43
- package/lib/ArticleCarousel.mjs +0 -21
- package/lib/ArticleMeta.cjs +0 -46
- package/lib/ArticleMeta.mjs +0 -22
- package/lib/Attention.cjs +0 -33
- package/lib/Attention.mjs +0 -9
- package/lib/BasicTable.cjs +0 -72
- package/lib/BasicTable.mjs +0 -50
- package/lib/Bling.cjs +0 -76
- package/lib/Bling.mjs +0 -52
- package/lib/BlockBreak.cjs +0 -32
- package/lib/BlockBreak.mjs +0 -8
- package/lib/BlockQuote.cjs +0 -47
- package/lib/BlockQuote.mjs +0 -25
- package/lib/BreadCrumbs.cjs +0 -67
- package/lib/BreadCrumbs.mjs +0 -43
- package/lib/ButtonBack.cjs +0 -47
- package/lib/ButtonBack.mjs +0 -25
- package/lib/ButtonBar.cjs +0 -45
- package/lib/ButtonBar.mjs +0 -18
- package/lib/ButtonPrimary.cjs +0 -47
- package/lib/ButtonPrimary.mjs +0 -25
- package/lib/ButtonSecondary.cjs +0 -47
- package/lib/ButtonSecondary.mjs +0 -25
- package/lib/ButtonTertiary.cjs +0 -64
- package/lib/ButtonTertiary.mjs +0 -42
- package/lib/Carousel.cjs +0 -52
- package/lib/Carousel.mjs +0 -30
- package/lib/CarouselStepper.cjs +0 -51
- package/lib/CarouselStepper.mjs +0 -29
- package/lib/CenterColumn.cjs +0 -40
- package/lib/CenterColumn.mjs +0 -16
- package/lib/Checkbox.cjs +0 -52
- package/lib/Checkbox.mjs +0 -30
- package/lib/CheckboxButtonsGroup.cjs +0 -65
- package/lib/CheckboxButtonsGroup.mjs +0 -43
- package/lib/CheckboxGroup.cjs +0 -55
- package/lib/CheckboxGroup.mjs +0 -33
- package/lib/CityBlock.cjs +0 -49
- package/lib/CityBlock.mjs +0 -25
- package/lib/ContactBubble.cjs +0 -200
- package/lib/ContactBubble.mjs +0 -173
- package/lib/ContentArticle.cjs +0 -63
- package/lib/ContentArticle.mjs +0 -41
- package/lib/ContentImage.cjs +0 -58
- package/lib/ContentImage.mjs +0 -36
- package/lib/Datepicker.cjs +0 -164
- package/lib/Datepicker.mjs +0 -142
- package/lib/ExtraLinks.cjs +0 -96
- package/lib/ExtraLinks.mjs +0 -74
- package/lib/FeatureList.cjs +0 -53
- package/lib/FeatureList.mjs +0 -29
- package/lib/FieldGroup.cjs +0 -40
- package/lib/FieldGroup.mjs +0 -16
- package/lib/FileInput.cjs +0 -256
- package/lib/FileInput.mjs +0 -234
- package/lib/Foonote.cjs +0 -30
- package/lib/Foonote.mjs +0 -6
- package/lib/FooterBadges.cjs +0 -49
- package/lib/FooterBadges.mjs +0 -25
- package/lib/FooterInfo.cjs +0 -47
- package/lib/FooterInfo.mjs +0 -23
- package/lib/Footnote.cjs +0 -32
- package/lib/Footnote.mjs +0 -8
- package/lib/Form.cjs +0 -56
- package/lib/Form.mjs +0 -34
- package/lib/FormField.cjs +0 -153
- package/lib/FormField.mjs +0 -131
- package/lib/Gallery/_GalleryItem.cjs +0 -83
- package/lib/Gallery/_GalleryItem.mjs +0 -61
- package/lib/Gallery/_GalleryModal.cjs +0 -104
- package/lib/Gallery/_GalleryModal.mjs +0 -82
- package/lib/Gallery/_GalleryModalContext.cjs +0 -30
- package/lib/Gallery/_GalleryModalContext.mjs +0 -6
- package/lib/Gallery/_GalleryModalItem.cjs +0 -59
- package/lib/Gallery/_GalleryModalItem.mjs +0 -36
- package/lib/Gallery.cjs +0 -79
- package/lib/Gallery.mjs +0 -57
- package/lib/GridBlocks.cjs +0 -81
- package/lib/GridBlocks.mjs +0 -59
- package/lib/Heading.cjs +0 -45
- package/lib/Heading.mjs +0 -21
- package/lib/HeroBlock.cjs +0 -74
- package/lib/HeroBlock.mjs +0 -52
- package/lib/IframeBlock.cjs +0 -48
- package/lib/IframeBlock.mjs +0 -24
- package/lib/Illustration.cjs +0 -51
- package/lib/Illustration.mjs +0 -31
- package/lib/ImageCards.cjs +0 -72
- package/lib/ImageCards.mjs +0 -52
- package/lib/InfoBlock.cjs +0 -51
- package/lib/InfoBlock.mjs +0 -27
- package/lib/InfoHero.cjs +0 -150
- package/lib/InfoHero.mjs +0 -128
- package/lib/IslandBlock.cjs +0 -63
- package/lib/IslandBlock.mjs +0 -41
- package/lib/IslandPageBlock.cjs +0 -49
- package/lib/IslandPageBlock.mjs +0 -25
- package/lib/LabeledTextBlock.cjs +0 -60
- package/lib/LabeledTextBlock.mjs +0 -38
- package/lib/Layout.cjs +0 -113
- package/lib/Layout.mjs +0 -87
- package/lib/MainMenu/_Auxiliary.cjs +0 -54
- package/lib/MainMenu/_Auxiliary.mjs +0 -28
- package/lib/MainMenu/_PrimaryPanel.cjs +0 -74
- package/lib/MainMenu/_PrimaryPanel.mjs +0 -48
- package/lib/MainMenu.cjs +0 -209
- package/lib/MainMenu.mjs +0 -187
- package/lib/MiniMetrics.cjs +0 -56
- package/lib/MiniMetrics.mjs +0 -34
- package/lib/Modal.cjs +0 -70
- package/lib/Modal.mjs +0 -48
- package/lib/NameCard.cjs +0 -115
- package/lib/NameCard.mjs +0 -91
- package/lib/NameCards.cjs +0 -52
- package/lib/NameCards.mjs +0 -30
- package/lib/NewsHero.cjs +0 -136
- package/lib/NewsHero.mjs +0 -114
- package/lib/PageFilter.cjs +0 -48
- package/lib/PageFilter.mjs +0 -24
- package/lib/PageHeading.cjs +0 -42
- package/lib/PageHeading.mjs +0 -18
- package/lib/ProcessOverview.cjs +0 -52
- package/lib/ProcessOverview.mjs +0 -28
- package/lib/PullQuote.cjs +0 -47
- package/lib/PullQuote.mjs +0 -25
- package/lib/RadioButtonsGroup.cjs +0 -64
- package/lib/RadioButtonsGroup.mjs +0 -42
- package/lib/RadioGroup.cjs +0 -58
- package/lib/RadioGroup.mjs +0 -36
- package/lib/RelatedLinks.cjs +0 -61
- package/lib/RelatedLinks.mjs +0 -37
- package/lib/RowBlock.cjs +0 -39
- package/lib/RowBlock.mjs +0 -15
- package/lib/RowBlockColumn.cjs +0 -40
- package/lib/RowBlockColumn.mjs +0 -16
- package/lib/SearchInput.cjs +0 -136
- package/lib/SearchInput.mjs +0 -114
- package/lib/SearchResults/_SearchResultsItem.cjs +0 -54
- package/lib/SearchResults/_SearchResultsItem.mjs +0 -30
- package/lib/SearchResults.cjs +0 -172
- package/lib/SearchResults.mjs +0 -150
- package/lib/SeenEffect.cjs +0 -66
- package/lib/SeenEffect.mjs +0 -44
- package/lib/Selectbox.cjs +0 -144
- package/lib/Selectbox.mjs +0 -122
- package/lib/ShareButtons.cjs +0 -101
- package/lib/ShareButtons.mjs +0 -83
- package/lib/Sharpie.cjs +0 -51
- package/lib/Sharpie.mjs +0 -27
- package/lib/SiteSearchAutocomplete.cjs +0 -150
- package/lib/SiteSearchAutocomplete.mjs +0 -126
- package/lib/SiteSearchCurtain.cjs +0 -78
- package/lib/SiteSearchCurtain.mjs +0 -56
- package/lib/SiteSearchInput.cjs +0 -119
- package/lib/SiteSearchInput.mjs +0 -97
- package/lib/Skeleton.cjs +0 -63
- package/lib/Skeleton.mjs +0 -39
- package/lib/SubHeading.cjs +0 -43
- package/lib/SubHeading.mjs +0 -19
- package/lib/Tabs.cjs +0 -166
- package/lib/Tabs.mjs +0 -144
- package/lib/TagPill.cjs +0 -113
- package/lib/TagPill.mjs +0 -91
- package/lib/TextBlock.cjs +0 -45
- package/lib/TextBlock.mjs +0 -21
- package/lib/TextButton.cjs +0 -55
- package/lib/TextButton.mjs +0 -33
- package/lib/TextInput.cjs +0 -136
- package/lib/TextInput.mjs +0 -114
- package/lib/VSpacer.cjs +0 -70
- package/lib/VSpacer.mjs +0 -46
- package/lib/VerticalTabsTOC.cjs +0 -123
- package/lib/VerticalTabsTOC.mjs +0 -101
- package/lib/WizardLayout.cjs +0 -79
- package/lib/WizardLayout.mjs +0 -55
- package/lib/WizardLayoutClose.cjs +0 -47
- package/lib/WizardLayoutClose.mjs +0 -25
- package/lib/WizardStepper.cjs +0 -55
- package/lib/WizardStepper.mjs +0 -31
- package/lib/_abstract/Button.cjs +0 -114
- package/lib/_abstract/Button.mjs +0 -92
- package/lib/_abstract/CardList.cjs +0 -100
- package/lib/_abstract/CardList.mjs +0 -76
- package/lib/_abstract/Image.cjs +0 -75
- package/lib/_abstract/Image.mjs +0 -51
- package/lib/_abstract/Link.cjs +0 -37
- package/lib/_abstract/Link.mjs +0 -10
- package/lib/_abstract/TogglerGroup.cjs +0 -92
- package/lib/_abstract/TogglerGroup.mjs +0 -70
- package/lib/_abstract/TogglerGroupField.cjs +0 -121
- package/lib/_abstract/TogglerGroupField.mjs +0 -99
- package/lib/_abstract/TogglerInput.cjs +0 -105
- package/lib/_abstract/TogglerInput.mjs +0 -83
- package/lib/_abstract/_AbstractCarousel.cjs +0 -170
- package/lib/_abstract/_AbstractCarousel.mjs +0 -152
- package/lib/_abstract/_Blings.cjs +0 -47
- package/lib/_abstract/_Blings.mjs +0 -23
- package/lib/_abstract/_Block.cjs +0 -73
- package/lib/_abstract/_Block.mjs +0 -51
- package/lib/_abstract/_Quote.cjs +0 -43
- package/lib/_abstract/_Quote.mjs +0 -17
- package/lib/_abstract/breakOnNL.cjs +0 -30
- package/lib/_abstract/breakOnNL.mjs +0 -6
- package/lib/assets.cjs +0 -77
- package/lib/assets.mjs +0 -53
- package/lib/constants.cjs +0 -49
- package/lib/constants.mjs +0 -24
- package/lib/focus-visible.cjs +0 -1
- package/lib/focus-visible.mjs +0 -1
- package/lib/utils/config.cjs +0 -27
- package/lib/utils/config.mjs +0 -4
- package/lib/utils/detectEdgeScroll.cjs +0 -95
- package/lib/utils/detectEdgeScroll.mjs +0 -71
- package/lib/utils/env.cjs +0 -31
- package/lib/utils/env.mjs +0 -5
- package/lib/utils/seenEffect.cjs +0 -93
- package/lib/utils/seenEffect.mjs +0 -65
- package/lib/utils/useFormatMonitor.cjs +0 -29
- package/lib/utils/useFormatMonitor.mjs +0 -6
- package/lib/utils/useGetSVGtext.cjs +0 -44
- package/lib/utils/useGetSVGtext.mjs +0 -21
- package/lib/utils/useMenuToggling.cjs +0 -83
- package/lib/utils/useMenuToggling.mjs +0 -60
- package/lib/utils/useScrollbarWidthCSSVar.cjs +0 -32
- package/lib/utils/useScrollbarWidthCSSVar.mjs +0 -6
- package/lib/utils.cjs +0 -18
- package/lib/utils.mjs +0 -2
- package/types/SiteSearchInput.d.ts +0 -24
- package/types/utils/config.d.ts +0 -2
- package/types/utils/detectEdgeScroll.d.ts +0 -52
|
File without changes
|
package/assets.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.auxiliary_menu_images = exports.efnistakn_menu = exports.getCssBundleUrl = exports.illustrations = exports.getIllustrationUrl = exports.getFormheimurUrl = exports.getEfnistaknUrl = exports.getBlingUrl = exports.getAssetUrl = exports.efnistakn = exports.blingTypes = void 0;
|
|
4
|
+
const hanna_css_1 = require("@reykjavik/hanna-css");
|
|
5
|
+
const assets_1 = require("@reykjavik/hanna-utils/assets");
|
|
6
|
+
Object.defineProperty(exports, "blingTypes", { enumerable: true, get: function () { return assets_1.blingTypes; } });
|
|
7
|
+
Object.defineProperty(exports, "efnistakn", { enumerable: true, get: function () { return assets_1.efnistakn; } });
|
|
8
|
+
Object.defineProperty(exports, "getAssetUrl", { enumerable: true, get: function () { return assets_1.getAssetUrl; } });
|
|
9
|
+
Object.defineProperty(exports, "getBlingUrl", { enumerable: true, get: function () { return assets_1.getBlingUrl; } });
|
|
10
|
+
Object.defineProperty(exports, "getEfnistaknUrl", { enumerable: true, get: function () { return assets_1.getEfnistaknUrl; } });
|
|
11
|
+
Object.defineProperty(exports, "getFormheimurUrl", { enumerable: true, get: function () { return assets_1.getFormheimurUrl; } });
|
|
12
|
+
Object.defineProperty(exports, "getIllustrationUrl", { enumerable: true, get: function () { return assets_1.getIllustrationUrl; } });
|
|
13
|
+
Object.defineProperty(exports, "illustrations", { enumerable: true, get: function () { return assets_1.illustrations; } });
|
|
14
|
+
/** @deprecated Use `getCssBundleUrl` from '@reykjavik/hanna-css' instead (Will be reomved in v0.11) */
|
|
15
|
+
const getCssBundleUrl = (cssTokens,
|
|
16
|
+
/** If you want to pin your CSS files to a specific version */
|
|
17
|
+
version) => (0, hanna_css_1.getCssBundleUrl)(cssTokens, { version });
|
|
18
|
+
exports.getCssBundleUrl = getCssBundleUrl;
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Based on "https://styles.reykjavik.is/assets/efnistakn/menu/files.json"
|
|
21
|
+
/** @deprecated (Will be removed in v0.11) */
|
|
22
|
+
exports.efnistakn_menu = [
|
|
23
|
+
'menu/borgarstjori',
|
|
24
|
+
'menu/borgarstjorn',
|
|
25
|
+
'menu/bygg_framkv',
|
|
26
|
+
'menu/fjarmal',
|
|
27
|
+
'menu/fundargerdir',
|
|
28
|
+
'menu/itrottir_aftreying',
|
|
29
|
+
'menu/log_reglugerdir',
|
|
30
|
+
'menu/mannaudur',
|
|
31
|
+
'menu/menning',
|
|
32
|
+
'menu/rad_nefndir',
|
|
33
|
+
'menu/skipulag',
|
|
34
|
+
'menu/skolar_fristund',
|
|
35
|
+
'menu/svid_deildir',
|
|
36
|
+
'menu/umhverfi_samgongur',
|
|
37
|
+
'menu/velferd_fjolskylda',
|
|
38
|
+
];
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
/** @deprecated (Will be removed in v0.11) */
|
|
41
|
+
exports.auxiliary_menu_images = [
|
|
42
|
+
'hanna-veitiggi',
|
|
43
|
+
'hanna-vandro',
|
|
44
|
+
'hanna-hugsi',
|
|
45
|
+
'hanna-hissa',
|
|
46
|
+
'hanna-hahaha',
|
|
47
|
+
'hanna-hae',
|
|
48
|
+
'hanna-god_spurning',
|
|
49
|
+
'hanna-gjuggiborg',
|
|
50
|
+
'hanna-benda',
|
|
51
|
+
];
|
|
File without changes
|
package/constants.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.aligns = exports.themeOptions = exports.colorFamilies = void 0;
|
|
4
|
+
const hanna_css_1 = require("@reykjavik/hanna-css");
|
|
5
|
+
/** @depcrecated import `colorFamilies` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
|
|
6
|
+
exports.colorFamilies = Object.assign([
|
|
7
|
+
'esja',
|
|
8
|
+
'faxafloi',
|
|
9
|
+
'nautholsvik',
|
|
10
|
+
'heidmork',
|
|
11
|
+
'ellidaardalur',
|
|
12
|
+
'blafjoll',
|
|
13
|
+
'sund',
|
|
14
|
+
'rokkur',
|
|
15
|
+
'suld',
|
|
16
|
+
], hanna_css_1.colorFamilies, {
|
|
17
|
+
/** @deprecated This is a typo (Will be removed in v0.11) */
|
|
18
|
+
ellidarardalur: 'ellidaardalur',
|
|
19
|
+
});
|
|
20
|
+
/** @depcrecated import `colorThemes` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
|
|
21
|
+
exports.themeOptions = Object.assign(['trustworthy', 'dependable', 'friendly', 'lively', 'colorful'], hanna_css_1.colorThemes);
|
|
22
|
+
exports.aligns = {
|
|
23
|
+
right: true,
|
|
24
|
+
left: true,
|
|
25
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SSRSupport } from '@hugsmidjan/react/hooks';
|
|
2
|
+
import { SeenProp } from './utils/seenEffect';
|
|
3
|
+
declare type AccordionListItemProps = {
|
|
4
|
+
title: string | JSX.Element;
|
|
5
|
+
content: string | JSX.Element | undefined;
|
|
6
|
+
id?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare type AccordionListProps = {
|
|
10
|
+
items: Array<AccordionListItemProps>;
|
|
11
|
+
ssr?: SSRSupport;
|
|
12
|
+
wide?: boolean;
|
|
13
|
+
/** Index of those items that should start open */
|
|
14
|
+
defaultOpen?: Array<number>;
|
|
15
|
+
} & SeenProp;
|
|
16
|
+
declare const AccordionList: (props: AccordionListProps) => JSX.Element;
|
|
17
|
+
export default AccordionList;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { useDomid, useIsBrowserSide } from '@hugsmidjan/react/hooks';
|
|
3
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
4
|
+
import { useSeenEffect } from './utils/seenEffect';
|
|
5
|
+
const AccordionListItem = (props) => {
|
|
6
|
+
const { title, content, id, disabled = false, defaultOpen, ssr } = props;
|
|
7
|
+
const [open, setOpen] = useState(defaultOpen);
|
|
8
|
+
useEffect(() => setOpen(defaultOpen), [defaultOpen]);
|
|
9
|
+
const domid = useDomid();
|
|
10
|
+
const isBrowser = useIsBrowserSide(ssr);
|
|
11
|
+
const itemDisabled = (isBrowser && disabled) || !content;
|
|
12
|
+
return (<div className={getBemClass('AccordionList__item', [itemDisabled && 'disabled'])} id={id} data-start-open={defaultOpen || undefined} data-sprinkled={isBrowser}>
|
|
13
|
+
<h3 className="AccordionList__title">
|
|
14
|
+
{isBrowser ? (<button type="button" className="AccordionList__button" aria-controls={domid} aria-expanded={open || undefined} onClick={() => {
|
|
15
|
+
setOpen(!open);
|
|
16
|
+
}} disabled={itemDisabled}>
|
|
17
|
+
{title}
|
|
18
|
+
</button>) : (title)}
|
|
19
|
+
</h3>
|
|
20
|
+
<div id={isBrowser && domid} className="AccordionList__content" hidden={isBrowser && (!open || itemDisabled)}>
|
|
21
|
+
{content}
|
|
22
|
+
</div>
|
|
23
|
+
</div>);
|
|
24
|
+
};
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
const AccordionList = (props) => {
|
|
27
|
+
const { items, ssr, wide, defaultOpen, startSeen } = props;
|
|
28
|
+
const [ref] = useSeenEffect(startSeen);
|
|
29
|
+
return (<div className={getBemClass('AccordionList', [wide && 'wide'])} ref={ref}>
|
|
30
|
+
{items.map((item, i) => (<AccordionListItem key={i} {...item} ssr={ssr} defaultOpen={defaultOpen && defaultOpen.includes(i)}/>))}
|
|
31
|
+
</div>);
|
|
32
|
+
};
|
|
33
|
+
export default AccordionList;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TextCardListProps } from './_abstract/CardList';
|
|
2
|
+
import { SeenProp } from './utils/seenEffect';
|
|
3
|
+
export declare type ActionCardsProps = TextCardListProps & SeenProp;
|
|
4
|
+
declare const ActionCards: (props: ActionCardsProps) => JSX.Element;
|
|
5
|
+
export default ActionCards;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CardList } from './_abstract/CardList';
|
|
3
|
+
import { useSeenEffect } from './utils/seenEffect';
|
|
4
|
+
const ActionCards = (props) => {
|
|
5
|
+
const [ref] = useSeenEffect(props.startSeen);
|
|
6
|
+
return (<div className="ActionCards" ref={ref}>
|
|
7
|
+
<CardList {...props} bemPrefix="ActionCards"/>
|
|
8
|
+
</div>);
|
|
9
|
+
};
|
|
10
|
+
export default ActionCards;
|
package/esm/Alert.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { SSRSupport } from '@hugsmidjan/react/hooks';
|
|
3
|
+
import { DefaultTexts } from '@reykjavik/hanna-utils/i18n';
|
|
4
|
+
export declare type AlertI18n = {
|
|
5
|
+
closeLabel: string;
|
|
6
|
+
closeLabelLong?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const defaultAlertTexts: DefaultTexts<AlertI18n>;
|
|
9
|
+
export declare const alertTypes: {
|
|
10
|
+
info: number;
|
|
11
|
+
success: number;
|
|
12
|
+
warning: number;
|
|
13
|
+
error: number;
|
|
14
|
+
critical: number;
|
|
15
|
+
};
|
|
16
|
+
declare type AlertType = keyof typeof alertTypes;
|
|
17
|
+
export declare type AlertProps = {
|
|
18
|
+
type: AlertType;
|
|
19
|
+
closable?: boolean;
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
childrenHTML?: string;
|
|
22
|
+
/** server-side anchor href */
|
|
23
|
+
closeUrl?: string;
|
|
24
|
+
texts?: AlertI18n;
|
|
25
|
+
lang?: string;
|
|
26
|
+
ssr?: SSRSupport;
|
|
27
|
+
} & ({
|
|
28
|
+
/** Seconds until the Alert auto-closes.
|
|
29
|
+
*
|
|
30
|
+
* Mosueover and keyboard focus resets the timer.
|
|
31
|
+
*/
|
|
32
|
+
autoClose: number;
|
|
33
|
+
/** Return `false` to prevent the alert from closing. */
|
|
34
|
+
onClose?: () => void | boolean;
|
|
35
|
+
/** Callback that fires when the alert has closed/transitoned out */
|
|
36
|
+
onClosed: () => void;
|
|
37
|
+
} | {
|
|
38
|
+
autoClose?: never;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated This signature with the `event` argument will be removed in hanna-react v0.9
|
|
41
|
+
*
|
|
42
|
+
* Return `false` to prevent the alert from closing
|
|
43
|
+
*/
|
|
44
|
+
onClose?(event: MouseEvent): void | boolean;
|
|
45
|
+
/** Callback that fires after the alert has closed/transitoned out */
|
|
46
|
+
onClosed?(): void;
|
|
47
|
+
});
|
|
48
|
+
declare const Alert: (props: AlertProps) => JSX.Element;
|
|
49
|
+
export default Alert;
|
package/esm/Alert.jsx
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState, } from 'react';
|
|
2
|
+
import { useIsBrowserSide, useOnMount } from '@hugsmidjan/react/hooks';
|
|
3
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
4
|
+
import { getTexts } from '@reykjavik/hanna-utils/i18n';
|
|
5
|
+
import Button from './_abstract/Button';
|
|
6
|
+
import { isPreact } from './utils/env';
|
|
7
|
+
// FIXME: Eventually import from @reykjavik/hanna-styles/constants
|
|
8
|
+
const AlertCloseTransitionDuration = 400;
|
|
9
|
+
const useAutoClosing = (autoClose) => {
|
|
10
|
+
const [temp, setTemp] = useState(0);
|
|
11
|
+
if (!autoClose) {
|
|
12
|
+
return { autoClosing: false };
|
|
13
|
+
}
|
|
14
|
+
const thaw = () => setTemp((temp) => temp + 1);
|
|
15
|
+
const freeze = () => setTemp((temp) => temp - 1);
|
|
16
|
+
return {
|
|
17
|
+
autoClosing: temp === 0,
|
|
18
|
+
autoClosingProps: Object.assign({ onMouseEnter: freeze, onMouseLeave: thaw, onFocus: freeze, onBlur: thaw }, (isPreact
|
|
19
|
+
? {
|
|
20
|
+
onfocusin: (e) => e.currentTarget !== e.target && freeze(),
|
|
21
|
+
onfocusout: (e) => e.currentTarget !== e.target && thaw(),
|
|
22
|
+
}
|
|
23
|
+
: undefined)),
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export const defaultAlertTexts = {
|
|
27
|
+
en: { closeLabel: 'Hide' },
|
|
28
|
+
is: { closeLabel: 'Fela' },
|
|
29
|
+
};
|
|
30
|
+
export const alertTypes = {
|
|
31
|
+
info: 1,
|
|
32
|
+
success: 1,
|
|
33
|
+
warning: 1,
|
|
34
|
+
error: 1,
|
|
35
|
+
critical: 1,
|
|
36
|
+
};
|
|
37
|
+
const Alert = (props) => {
|
|
38
|
+
const { type, childrenHTML, children, onClose, closeUrl, closable = !!(onClose || closeUrl != null), ssr, onClosed, } = props;
|
|
39
|
+
const autoClose = props.autoClose && props.autoClose > 0 ? props.autoClose : 0;
|
|
40
|
+
const closing = useRef();
|
|
41
|
+
const [open, setOpen] = useState(!!ssr);
|
|
42
|
+
const isBrowser = useIsBrowserSide(ssr);
|
|
43
|
+
const showCloseButton = closable && (isBrowser || closeUrl != null);
|
|
44
|
+
const { closeLabel, closeLabelLong } = getTexts(props, defaultAlertTexts);
|
|
45
|
+
useOnMount(() => {
|
|
46
|
+
setOpen(true);
|
|
47
|
+
});
|
|
48
|
+
const closeAlert = useCallback((event) => {
|
|
49
|
+
const ret = onClose &&
|
|
50
|
+
// @ts-expect-error (@deprecated `event` parameter will be removed in v0.9)
|
|
51
|
+
onClose(event);
|
|
52
|
+
if (ret !== false) {
|
|
53
|
+
setOpen(false);
|
|
54
|
+
if (closing.current) {
|
|
55
|
+
clearTimeout(closing.current);
|
|
56
|
+
closing.current = undefined;
|
|
57
|
+
}
|
|
58
|
+
closing.current = setTimeout(() => {
|
|
59
|
+
onClosed && onClosed();
|
|
60
|
+
}, AlertCloseTransitionDuration);
|
|
61
|
+
}
|
|
62
|
+
}, [onClose, onClosed]);
|
|
63
|
+
const { autoClosing, autoClosingProps } = useAutoClosing(autoClose);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (autoClosing) {
|
|
66
|
+
let autoCloseTimeout;
|
|
67
|
+
autoCloseTimeout = setTimeout(() => {
|
|
68
|
+
closeAlert();
|
|
69
|
+
}, autoClose * 1000);
|
|
70
|
+
return () => {
|
|
71
|
+
if (autoCloseTimeout) {
|
|
72
|
+
clearTimeout(autoCloseTimeout);
|
|
73
|
+
autoCloseTimeout = undefined;
|
|
74
|
+
}
|
|
75
|
+
if (closing.current) {
|
|
76
|
+
clearTimeout(closing.current);
|
|
77
|
+
closing.current = undefined;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}, [closeAlert, autoClosing, autoClose]);
|
|
82
|
+
return (<div className={getBemClass('Alert', [
|
|
83
|
+
!!alertTypes[type] && type,
|
|
84
|
+
closable && 'closable',
|
|
85
|
+
])} role="alert" hidden={!open || undefined} {...autoClosingProps}>
|
|
86
|
+
{childrenHTML ? (<div dangerouslySetInnerHTML={{ __html: childrenHTML }}/>) : (children)}{' '}
|
|
87
|
+
{showCloseButton && (<Button bem="Alert__close" {...(closeUrl != null ? { href: closeUrl } : { type: 'button' })} onClick={(e) => {
|
|
88
|
+
closeAlert(e);
|
|
89
|
+
}} aria-label={closeLabelLong} title={closeLabelLong || closeLabel}>
|
|
90
|
+
{closeLabel}
|
|
91
|
+
</Button>)}
|
|
92
|
+
</div>);
|
|
93
|
+
};
|
|
94
|
+
export default Alert;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { HannaColorTheme } from '@reykjavik/hanna-css';
|
|
2
|
+
import { Illustration } from '@reykjavik/hanna-utils/assets';
|
|
3
|
+
import { ImageProps } from '../_abstract/Image';
|
|
4
|
+
import { ColorFamily } from '../constants';
|
|
5
|
+
export declare type ArticleCarouselImageProps = ImageProps & {
|
|
6
|
+
photo?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare type ArticleCarouselCardProps = {
|
|
9
|
+
date?: string;
|
|
10
|
+
title: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
href: string;
|
|
13
|
+
color?: ColorFamily;
|
|
14
|
+
/** NOTE: if both `color` and `theme` are specified
|
|
15
|
+
* then `color` takes precedence.
|
|
16
|
+
*/
|
|
17
|
+
theme?: HannaColorTheme;
|
|
18
|
+
} & ({
|
|
19
|
+
illustration: Illustration;
|
|
20
|
+
image?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
illustration?: undefined;
|
|
23
|
+
image: ArticleCarouselImageProps | undefined;
|
|
24
|
+
});
|
|
25
|
+
export declare const ArticleCarouselCard: (props: ArticleCarouselCardProps & {
|
|
26
|
+
moreLabel?: string;
|
|
27
|
+
}) => JSX.Element;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
3
|
+
import { getIllustrationUrl } from '@reykjavik/hanna-utils/assets';
|
|
4
|
+
import Image from '../_abstract/Image';
|
|
5
|
+
import { Link } from '../_abstract/Link';
|
|
6
|
+
import { colorFamilies, themeOptions } from '../constants';
|
|
7
|
+
export const ArticleCarouselCard = (props) => {
|
|
8
|
+
const { date, title, summary, href, moreLabel, color, theme, illustration, image } = props;
|
|
9
|
+
const photo = image === null || image === void 0 ? void 0 : image.photo;
|
|
10
|
+
const imageProps = illustration ? { src: getIllustrationUrl(illustration) } : image;
|
|
11
|
+
return (<div className="ArticleCarouselCard" data-color={color && colorFamilies[color]} data-color-theme={!color ? theme && themeOptions[theme] : undefined} // color takes precedence over "theme"
|
|
12
|
+
>
|
|
13
|
+
<Link className="ArticleCarouselCard__link" href={href}>
|
|
14
|
+
{' '}
|
|
15
|
+
<Image placeholder className={getBemClass('ArticleCarouselCard__illustration', photo && 'photo')} {...imageProps}/>
|
|
16
|
+
<h3 className="ArticleCarouselCard__title">{title}</h3>{' '}
|
|
17
|
+
</Link>{' '}
|
|
18
|
+
{date && <span className="ArticleCarouselCard__date">{date}</span>}
|
|
19
|
+
<div className="ArticleCarouselCard__summary">{summary}</div>
|
|
20
|
+
{moreLabel && (<Link className="ArticleCarouselCard__morelink" href={href} aria-label={title}>
|
|
21
|
+
{' '}
|
|
22
|
+
{moreLabel}{' '}
|
|
23
|
+
</Link>)}
|
|
24
|
+
</div>);
|
|
25
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SSRSupport } from '@hugsmidjan/react/hooks';
|
|
2
|
+
import { ArticleCarouselCardProps, ArticleCarouselImageProps } from './ArticleCarousel/_ArticleCarouselCard';
|
|
3
|
+
import { SeenProp } from './utils/seenEffect';
|
|
4
|
+
export declare type ArticleCarouselProps = {
|
|
5
|
+
items: Array<ArticleCarouselCardProps>;
|
|
6
|
+
title?: string;
|
|
7
|
+
moreLabel?: string;
|
|
8
|
+
ssr?: SSRSupport;
|
|
9
|
+
} & SeenProp;
|
|
10
|
+
export type { ArticleCarouselCardProps, ArticleCarouselImageProps };
|
|
11
|
+
declare const ArticleCarousel: (props: ArticleCarouselProps) => JSX.Element;
|
|
12
|
+
export default ArticleCarousel;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import AbstractCarousel from './_abstract/_AbstractCarousel';
|
|
3
|
+
import { ArticleCarouselCard, } from './ArticleCarousel/_ArticleCarouselCard';
|
|
4
|
+
const ArticleCarousel = (props) => {
|
|
5
|
+
const { title, items, moreLabel, ssr, startSeen } = props;
|
|
6
|
+
return (<AbstractCarousel bem="ArticleCarousel" title={title} items={items} Component={ArticleCarouselCard} ComponentProps={{ moreLabel }} ssr={ssr} startSeen={startSeen}/>);
|
|
7
|
+
};
|
|
8
|
+
export default ArticleCarousel;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare type ArticleMetaItem = {
|
|
2
|
+
label: string;
|
|
3
|
+
href?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare type ArticleMetaProps = {
|
|
6
|
+
items: Array<ArticleMetaItem>;
|
|
7
|
+
};
|
|
8
|
+
declare const ArticleMeta: (props: ArticleMetaProps) => JSX.Element | null;
|
|
9
|
+
export default ArticleMeta;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { Fragment } from 'react';
|
|
2
|
+
import { Link } from './_abstract/Link';
|
|
3
|
+
const ArticleMeta = (props) => {
|
|
4
|
+
const { items } = props;
|
|
5
|
+
if (items.length === 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return (<div className="ArticleMeta">
|
|
9
|
+
{items.map(({ label, href }, i) => (<Fragment key={i}>
|
|
10
|
+
{href == null ? (<span className="ArticleMeta__item"> {label} </span>) : (<Link className="ArticleMeta__item" href={href}>
|
|
11
|
+
{' '}
|
|
12
|
+
{label}{' '}
|
|
13
|
+
</Link>)}{' '}
|
|
14
|
+
</Fragment>))}
|
|
15
|
+
</div>);
|
|
16
|
+
};
|
|
17
|
+
export default ArticleMeta;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TableProps } from '@hugsmidjan/react/Table';
|
|
2
|
+
import { SeenProp } from './utils/seenEffect';
|
|
3
|
+
declare type BasicTableProps = {
|
|
4
|
+
compact?: boolean;
|
|
5
|
+
type?: 'text' | 'number';
|
|
6
|
+
children?: undefined;
|
|
7
|
+
modifier?: string;
|
|
8
|
+
fullWidth?: boolean;
|
|
9
|
+
align?: 'right';
|
|
10
|
+
} & SeenProp & Omit<TableProps, 'className' | 'children'>;
|
|
11
|
+
declare const BasicTable: (props: BasicTableProps) => JSX.Element;
|
|
12
|
+
export default BasicTable;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Table from '@hugsmidjan/react/Table';
|
|
3
|
+
import TableWrapper from '@hugsmidjan/react/TableWrapper';
|
|
4
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
5
|
+
import { useSeenEffect } from './utils/seenEffect';
|
|
6
|
+
const BasicTable = (props) => {
|
|
7
|
+
const { cols, caption, thead, tfoot, align, fullWidth, startSeen } = props;
|
|
8
|
+
const tbodyProps = props.tbodies
|
|
9
|
+
? { tbodies: props.tbodies }
|
|
10
|
+
: { tbody: props.tbody || [] };
|
|
11
|
+
const modifier = props.modifier;
|
|
12
|
+
const [ref] = useSeenEffect(startSeen);
|
|
13
|
+
return (<TableWrapper modifier={[
|
|
14
|
+
'BasicTable',
|
|
15
|
+
modifier && 'BasicTable--' + modifier,
|
|
16
|
+
fullWidth && 'BasicTable--fullwidth',
|
|
17
|
+
align === 'right' && !fullWidth && 'BasicTable--align--' + align,
|
|
18
|
+
]} wrapperRef={ref}>
|
|
19
|
+
<Table className={getBemClass('BasicTable', [
|
|
20
|
+
props.compact && 'compact',
|
|
21
|
+
modifier && modifier,
|
|
22
|
+
])} {...{
|
|
23
|
+
cols,
|
|
24
|
+
caption,
|
|
25
|
+
thead,
|
|
26
|
+
tfoot,
|
|
27
|
+
}} {...tbodyProps}/>
|
|
28
|
+
</TableWrapper>);
|
|
29
|
+
};
|
|
30
|
+
export default BasicTable;
|
package/esm/Bling.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { BlingType } from '@reykjavik/hanna-utils/assets';
|
|
2
|
+
declare const colors: {
|
|
3
|
+
tertiary: boolean;
|
|
4
|
+
secondary: boolean;
|
|
5
|
+
primary: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare type BlingColor = keyof typeof colors;
|
|
8
|
+
declare const aligns: {
|
|
9
|
+
left: boolean;
|
|
10
|
+
'left-ish': boolean;
|
|
11
|
+
'left-center': boolean;
|
|
12
|
+
'right-center': boolean;
|
|
13
|
+
'right-ish': boolean;
|
|
14
|
+
right: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare type BlingAlignment = keyof typeof aligns;
|
|
17
|
+
declare const valigns: {
|
|
18
|
+
up: boolean;
|
|
19
|
+
'up-ish': boolean;
|
|
20
|
+
center: boolean;
|
|
21
|
+
'down-ish': boolean;
|
|
22
|
+
down: boolean;
|
|
23
|
+
};
|
|
24
|
+
export declare type BlingVAlignment = keyof typeof valigns;
|
|
25
|
+
declare const parentOffset: {
|
|
26
|
+
top: boolean;
|
|
27
|
+
'top-ish': boolean;
|
|
28
|
+
center: boolean;
|
|
29
|
+
'bottom-ish': boolean;
|
|
30
|
+
bottom: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare type BlingParentOffset = keyof typeof parentOffset;
|
|
33
|
+
export declare type BlingProps = {
|
|
34
|
+
/**
|
|
35
|
+
* Horizontal alignment relative to the bling container's
|
|
36
|
+
* full width
|
|
37
|
+
*
|
|
38
|
+
* NOTE: Blings should always be placed in a layout context
|
|
39
|
+
* where they can stretch to a full (12 columns) width
|
|
40
|
+
*/
|
|
41
|
+
align?: BlingAlignment;
|
|
42
|
+
/**
|
|
43
|
+
* Vertical shift along the vertical insertion point
|
|
44
|
+
*
|
|
45
|
+
* Defult: `center`
|
|
46
|
+
*/
|
|
47
|
+
vertical?: BlingVAlignment;
|
|
48
|
+
/**
|
|
49
|
+
* Vertical positioning of the insertion point within
|
|
50
|
+
* the Bling's offset parent element.
|
|
51
|
+
*
|
|
52
|
+
* Default is the natural layout flow position of the
|
|
53
|
+
* Bling element (no vertical re-positioning)
|
|
54
|
+
*/
|
|
55
|
+
parent?: BlingParentOffset;
|
|
56
|
+
/**
|
|
57
|
+
* Theme color (combo) for the elelment
|
|
58
|
+
*
|
|
59
|
+
* Default: `tertiary`
|
|
60
|
+
*/
|
|
61
|
+
color?: BlingColor;
|
|
62
|
+
/**
|
|
63
|
+
* Gives the Bling a positive `z-index` value.
|
|
64
|
+
*
|
|
65
|
+
* By default Blings layer themselves *underneath* other page content.
|
|
66
|
+
*/
|
|
67
|
+
overlay?: boolean;
|
|
68
|
+
/** Additional className (use sparingly) */
|
|
69
|
+
className?: string;
|
|
70
|
+
} & ({
|
|
71
|
+
/** The name of the Bling shape to display */
|
|
72
|
+
type: BlingType;
|
|
73
|
+
/** Not allowed when `type` is set */
|
|
74
|
+
blingUrl?: undefined;
|
|
75
|
+
} | {
|
|
76
|
+
type?: undefined;
|
|
77
|
+
/** Custom SVG URL to load (use sparingly) */
|
|
78
|
+
blingUrl: string;
|
|
79
|
+
});
|
|
80
|
+
declare const Bling: (props: BlingProps) => JSX.Element;
|
|
81
|
+
export default Bling;
|
package/esm/Bling.jsx
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
3
|
+
import { getBlingUrl } from '@reykjavik/hanna-utils/assets';
|
|
4
|
+
import { useGetSVGtext } from './utils/useGetSVGtext';
|
|
5
|
+
const colors = {
|
|
6
|
+
tertiary: true,
|
|
7
|
+
secondary: true,
|
|
8
|
+
primary: true,
|
|
9
|
+
};
|
|
10
|
+
const aligns = {
|
|
11
|
+
left: true,
|
|
12
|
+
'left-ish': true,
|
|
13
|
+
'left-center': true,
|
|
14
|
+
'right-center': true,
|
|
15
|
+
'right-ish': true,
|
|
16
|
+
right: true,
|
|
17
|
+
};
|
|
18
|
+
const valigns = {
|
|
19
|
+
up: true,
|
|
20
|
+
'up-ish': true,
|
|
21
|
+
center: true,
|
|
22
|
+
'down-ish': true,
|
|
23
|
+
down: true,
|
|
24
|
+
};
|
|
25
|
+
const parentOffset = {
|
|
26
|
+
top: true,
|
|
27
|
+
'top-ish': true,
|
|
28
|
+
center: true,
|
|
29
|
+
'bottom-ish': true,
|
|
30
|
+
bottom: true,
|
|
31
|
+
};
|
|
32
|
+
const Bling = (props) => {
|
|
33
|
+
const { align, vertical, color, overlay, type, blingUrl, parent, className } = props;
|
|
34
|
+
const imageUrl = type ? getBlingUrl(type) : blingUrl;
|
|
35
|
+
const inlineSvg = useGetSVGtext(imageUrl);
|
|
36
|
+
return (<div className={getBemClass('Bling', [
|
|
37
|
+
'align--' + (align && align in aligns ? align : 'left'),
|
|
38
|
+
vertical && vertical in valigns && 'vertical--' + vertical,
|
|
39
|
+
color && color in colors && 'color--' + color,
|
|
40
|
+
parent && parent in parentOffset && 'parent--' + parent,
|
|
41
|
+
overlay && 'overlay',
|
|
42
|
+
], className)} data-bling-type={type} data-bling-image={!type ? blingUrl : undefined} dangerouslySetInnerHTML={inlineSvg && { __html: inlineSvg.code }}/>);
|
|
43
|
+
};
|
|
44
|
+
export default Bling;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare type BreadCrumb = {
|
|
2
|
+
href?: string;
|
|
3
|
+
label: string;
|
|
4
|
+
};
|
|
5
|
+
export declare type BreadCrumbTrail = Array<BreadCrumb>;
|
|
6
|
+
export declare type BreadCrumbsProps = {
|
|
7
|
+
title: string;
|
|
8
|
+
trail: BreadCrumbTrail;
|
|
9
|
+
};
|
|
10
|
+
declare const BreadCrumbs: (props: BreadCrumbsProps) => JSX.Element | null;
|
|
11
|
+
export default BreadCrumbs;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Link } from './_abstract/Link';
|
|
3
|
+
const BreadCrumbs__item = (props) => {
|
|
4
|
+
const { link, current } = props;
|
|
5
|
+
return link.href != null ? (<Link className="BreadCrumbs__item" href={link.href} aria-current={current || undefined}>
|
|
6
|
+
{link.label}
|
|
7
|
+
</Link>) : (<span className="BreadCrumbs__item" aria-current={current || undefined}>
|
|
8
|
+
{link.label}
|
|
9
|
+
</span>);
|
|
10
|
+
};
|
|
11
|
+
const BreadCrumbs = (props) => {
|
|
12
|
+
const { title, trail } = props;
|
|
13
|
+
if (trail.length === 0) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const ancestors = trail.slice(0, -1);
|
|
17
|
+
const current = trail[trail.length - 1];
|
|
18
|
+
return (<nav className="BreadCrumbs" aria-label={title}>
|
|
19
|
+
<span className="BreadCrumbs__title">{title}:</span>{' '}
|
|
20
|
+
{ancestors.map((link, i) => {
|
|
21
|
+
return (<React.Fragment key={i}>
|
|
22
|
+
<BreadCrumbs__item link={link}/>{' '}
|
|
23
|
+
<span className="BreadCrumbs__separator" aria-label="">
|
|
24
|
+
>
|
|
25
|
+
</span>{' '}
|
|
26
|
+
</React.Fragment>);
|
|
27
|
+
})}
|
|
28
|
+
<BreadCrumbs__item link={current} current/>
|
|
29
|
+
</nav>);
|
|
30
|
+
};
|
|
31
|
+
export default BreadCrumbs;
|