@reykjavik/hanna-react 0.10.55 → 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/AccordionList.jsx +61 -0
- package/ActionCards.jsx +15 -0
- package/Alert.jsx +123 -0
- package/ArticleCarousel/_ArticleCarouselCard.d.ts +1 -1
- package/ArticleCarousel/_ArticleCarouselCard.jsx +32 -0
- package/ArticleCarousel.jsx +13 -0
- package/ArticleMeta.jsx +42 -0
- package/Attention.jsx +9 -0
- package/BasicTable.jsx +35 -0
- package/Bling.jsx +49 -0
- package/BlockBreak.jsx +11 -0
- package/BlockQuote.jsx +9 -0
- package/BreadCrumbs.jsx +36 -0
- package/ButtonBack.jsx +9 -0
- package/ButtonBar.jsx +23 -0
- package/ButtonPrimary.jsx +9 -0
- package/ButtonSecondary.jsx +9 -0
- package/ButtonTertiary.jsx +20 -0
- package/CHANGELOG.md +13 -5
- package/Carousel.jsx +9 -0
- package/CarouselStepper.jsx +9 -0
- package/CenterColumn.jsx +14 -0
- package/Checkbox.jsx +9 -0
- package/CheckboxButtonsGroup.jsx +19 -0
- package/CheckboxGroup.jsx +12 -0
- package/CityBlock.jsx +23 -0
- package/ContactBubble.jsx +192 -0
- package/ContentArticle.jsx +29 -0
- package/ContentImage.jsx +18 -0
- package/Datepicker.jsx +92 -0
- package/ExtraLinks.jsx +47 -0
- package/FeatureList.jsx +28 -0
- package/FieldGroup.jsx +15 -0
- package/FileInput.jsx +185 -0
- package/Foonote.jsx +12 -0
- package/FooterBadges.jsx +21 -0
- package/FooterInfo.jsx +19 -0
- package/Footnote.jsx +8 -0
- package/Form.jsx +17 -0
- package/FormField.jsx +121 -0
- package/Gallery/_GalleryItem.jsx +59 -0
- package/Gallery/_GalleryModal.jsx +86 -0
- package/Gallery/_GalleryModalContext.js +8 -0
- package/Gallery/_GalleryModalItem.jsx +29 -0
- package/Gallery.jsx +56 -0
- package/GridBlocks.jsx +40 -0
- package/Heading.jsx +24 -0
- package/HeroBlock.jsx +27 -0
- package/IframeBlock.jsx +31 -0
- package/Illustration.jsx +13 -0
- package/ImageCards.jsx +28 -0
- package/InfoBlock.jsx +23 -0
- package/InfoHero.jsx +93 -0
- package/IslandBlock.jsx +21 -0
- package/IslandPageBlock.jsx +21 -0
- package/LabeledTextBlock.jsx +21 -0
- package/Layout.jsx +69 -0
- package/MainMenu/_Auxiliary.jsx +26 -0
- package/MainMenu/_PrimaryPanel.jsx +37 -0
- package/MainMenu.d.ts +1 -1
- package/MainMenu.jsx +178 -0
- package/MiniMetrics.jsx +16 -0
- package/Modal.jsx +21 -0
- package/NameCard.jsx +92 -0
- package/NameCards.jsx +14 -0
- package/NewsHero.jsx +93 -0
- package/PageFilter.jsx +21 -0
- package/PageHeading.jsx +19 -0
- package/ProcessOverview.jsx +25 -0
- package/PullQuote.jsx +9 -0
- package/RadioButtonsGroup.jsx +19 -0
- package/RadioGroup.jsx +12 -0
- package/RelatedLinks.jsx +35 -0
- package/RowBlock.jsx +16 -0
- package/RowBlockColumn.jsx +18 -0
- package/SearchInput.jsx +63 -0
- package/SearchResults/_SearchResultsItem.jsx +24 -0
- package/SearchResults.jsx +146 -0
- package/SeenEffect.jsx +24 -0
- package/Selectbox.jsx +74 -0
- package/ShareButtons.jsx +82 -0
- package/Sharpie.jsx +27 -0
- package/SiteSearchAutocomplete.jsx +89 -0
- package/SiteSearchCurtain.jsx +65 -0
- package/SiteSearchInput.d.ts +1 -1
- package/SiteSearchInput.jsx +70 -0
- package/Skeleton.jsx +35 -0
- package/SubHeading.jsx +20 -0
- package/Tabs.jsx +122 -0
- package/TagPill.jsx +53 -0
- package/TextBlock.jsx +22 -0
- package/TextButton.jsx +14 -0
- package/TextInput.jsx +63 -0
- package/VSpacer.jsx +46 -0
- package/VerticalTabsTOC.jsx +96 -0
- package/WizardLayout.jsx +44 -0
- package/WizardLayoutClose.jsx +9 -0
- package/WizardStepper.jsx +34 -0
- package/_abstract/Button.jsx +56 -0
- package/_abstract/CardList.jsx +46 -0
- package/_abstract/Image.jsx +34 -0
- package/_abstract/Link.jsx +31 -0
- package/_abstract/TogglerGroup.jsx +36 -0
- package/_abstract/TogglerGroupField.jsx +27 -0
- package/_abstract/TogglerInput.jsx +40 -0
- package/_abstract/_AbstractCarousel.jsx +161 -0
- package/_abstract/_Blings.jsx +19 -0
- package/_abstract/_Block.jsx +32 -0
- package/_abstract/_Quote.jsx +18 -0
- package/_abstract/breakOnNL.jsx +13 -0
- package/assets.js +51 -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/esm/focus-visible.d.ts +1 -0
- package/esm/focus-visible.js +1 -0
- package/esm/package.json +1 -0
- package/esm/utils/env.d.ts +1 -0
- package/esm/utils/env.js +8 -0
- package/esm/utils/seenEffect.d.ts +28 -0
- package/esm/utils/seenEffect.js +73 -0
- package/esm/utils/useFormatMonitor.d.ts +38 -0
- package/esm/utils/useFormatMonitor.js +41 -0
- package/esm/utils/useGetSVGtext.d.ts +6 -0
- package/esm/utils/useGetSVGtext.js +19 -0
- package/esm/utils/useMenuToggling.d.ts +8 -0
- package/esm/utils/useMenuToggling.js +62 -0
- package/esm/utils/useScrollbarWidthCSSVar.d.ts +1 -0
- package/esm/utils/useScrollbarWidthCSSVar.js +3 -0
- package/esm/utils.d.ts +2 -0
- package/esm/utils.js +2 -0
- package/focus-visible.js +3 -0
- package/package.json +183 -184
- package/utils/env.js +14 -0
- package/utils/seenEffect.js +81 -0
- package/utils/useFormatMonitor.js +44 -0
- package/utils/useGetSVGtext.js +23 -0
- package/utils/useMenuToggling.js +66 -0
- package/utils/useScrollbarWidthCSSVar.js +10 -0
- package/utils.js +18 -0
- package/AccordionList.cjs +0 -91
- package/AccordionList.mjs +0 -69
- package/ActionCards.cjs +0 -57
- package/ActionCards.mjs +0 -35
- package/Alert.cjs +0 -159
- package/Alert.mjs +0 -139
- package/ArticleCarousel/_ArticleCarouselCard.cjs +0 -75
- package/ArticleCarousel/_ArticleCarouselCard.mjs +0 -51
- package/ArticleCarousel.cjs +0 -43
- package/ArticleCarousel.mjs +0 -21
- package/ArticleMeta.cjs +0 -46
- package/ArticleMeta.mjs +0 -22
- package/Attention.cjs +0 -33
- package/Attention.mjs +0 -9
- package/BasicTable.cjs +0 -72
- package/BasicTable.mjs +0 -50
- package/Bling.cjs +0 -76
- package/Bling.mjs +0 -52
- package/BlockBreak.cjs +0 -32
- package/BlockBreak.mjs +0 -8
- package/BlockQuote.cjs +0 -47
- package/BlockQuote.mjs +0 -25
- package/BreadCrumbs.cjs +0 -67
- package/BreadCrumbs.mjs +0 -43
- package/ButtonBack.cjs +0 -47
- package/ButtonBack.mjs +0 -25
- package/ButtonBar.cjs +0 -45
- package/ButtonBar.mjs +0 -18
- package/ButtonPrimary.cjs +0 -47
- package/ButtonPrimary.mjs +0 -25
- package/ButtonSecondary.cjs +0 -47
- package/ButtonSecondary.mjs +0 -25
- package/ButtonTertiary.cjs +0 -64
- package/ButtonTertiary.mjs +0 -42
- package/Carousel.cjs +0 -52
- package/Carousel.mjs +0 -30
- package/CarouselStepper.cjs +0 -51
- package/CarouselStepper.mjs +0 -29
- package/CenterColumn.cjs +0 -40
- package/CenterColumn.mjs +0 -16
- package/Checkbox.cjs +0 -52
- package/Checkbox.mjs +0 -30
- package/CheckboxButtonsGroup.cjs +0 -65
- package/CheckboxButtonsGroup.mjs +0 -43
- package/CheckboxGroup.cjs +0 -55
- package/CheckboxGroup.mjs +0 -33
- package/CityBlock.cjs +0 -49
- package/CityBlock.mjs +0 -25
- package/ContactBubble.cjs +0 -200
- package/ContactBubble.mjs +0 -173
- package/ContentArticle.cjs +0 -63
- package/ContentArticle.mjs +0 -41
- package/ContentImage.cjs +0 -58
- package/ContentImage.mjs +0 -36
- package/Datepicker.cjs +0 -164
- package/Datepicker.mjs +0 -142
- package/ExtraLinks.cjs +0 -96
- package/ExtraLinks.mjs +0 -74
- package/FeatureList.cjs +0 -53
- package/FeatureList.mjs +0 -29
- package/FieldGroup.cjs +0 -40
- package/FieldGroup.mjs +0 -16
- package/FileInput.cjs +0 -256
- package/FileInput.mjs +0 -234
- package/Foonote.cjs +0 -30
- package/Foonote.mjs +0 -6
- package/FooterBadges.cjs +0 -49
- package/FooterBadges.mjs +0 -25
- package/FooterInfo.cjs +0 -47
- package/FooterInfo.mjs +0 -23
- package/Footnote.cjs +0 -32
- package/Footnote.mjs +0 -8
- package/Form.cjs +0 -56
- package/Form.mjs +0 -34
- package/FormField.cjs +0 -153
- package/FormField.mjs +0 -131
- package/Gallery/_GalleryItem.cjs +0 -83
- package/Gallery/_GalleryItem.mjs +0 -61
- package/Gallery/_GalleryModal.cjs +0 -104
- package/Gallery/_GalleryModal.mjs +0 -82
- package/Gallery/_GalleryModalContext.cjs +0 -30
- package/Gallery/_GalleryModalContext.mjs +0 -6
- package/Gallery/_GalleryModalItem.cjs +0 -59
- package/Gallery/_GalleryModalItem.mjs +0 -36
- package/Gallery.cjs +0 -79
- package/Gallery.mjs +0 -57
- package/GridBlocks.cjs +0 -81
- package/GridBlocks.mjs +0 -59
- package/Heading.cjs +0 -45
- package/Heading.mjs +0 -21
- package/HeroBlock.cjs +0 -74
- package/HeroBlock.mjs +0 -52
- package/IframeBlock.cjs +0 -48
- package/IframeBlock.mjs +0 -24
- package/Illustration.cjs +0 -51
- package/Illustration.mjs +0 -31
- package/ImageCards.cjs +0 -72
- package/ImageCards.mjs +0 -52
- package/InfoBlock.cjs +0 -51
- package/InfoBlock.mjs +0 -27
- package/InfoHero.cjs +0 -150
- package/InfoHero.mjs +0 -128
- package/IslandBlock.cjs +0 -63
- package/IslandBlock.mjs +0 -41
- package/IslandPageBlock.cjs +0 -49
- package/IslandPageBlock.mjs +0 -25
- package/LabeledTextBlock.cjs +0 -60
- package/LabeledTextBlock.mjs +0 -38
- package/Layout.cjs +0 -113
- package/Layout.mjs +0 -87
- package/MainMenu/_Auxiliary.cjs +0 -54
- package/MainMenu/_Auxiliary.mjs +0 -28
- package/MainMenu/_PrimaryPanel.cjs +0 -74
- package/MainMenu/_PrimaryPanel.mjs +0 -48
- package/MainMenu.cjs +0 -209
- package/MainMenu.mjs +0 -187
- package/MiniMetrics.cjs +0 -56
- package/MiniMetrics.mjs +0 -34
- package/Modal.cjs +0 -70
- package/Modal.mjs +0 -48
- package/NameCard.cjs +0 -115
- package/NameCard.mjs +0 -91
- package/NameCards.cjs +0 -52
- package/NameCards.mjs +0 -30
- package/NewsHero.cjs +0 -136
- package/NewsHero.mjs +0 -114
- package/PageFilter.cjs +0 -48
- package/PageFilter.mjs +0 -24
- package/PageHeading.cjs +0 -42
- package/PageHeading.mjs +0 -18
- package/ProcessOverview.cjs +0 -52
- package/ProcessOverview.mjs +0 -28
- package/PullQuote.cjs +0 -47
- package/PullQuote.mjs +0 -25
- package/RadioButtonsGroup.cjs +0 -64
- package/RadioButtonsGroup.mjs +0 -42
- package/RadioGroup.cjs +0 -58
- package/RadioGroup.mjs +0 -36
- package/RelatedLinks.cjs +0 -61
- package/RelatedLinks.mjs +0 -37
- package/RowBlock.cjs +0 -39
- package/RowBlock.mjs +0 -15
- package/RowBlockColumn.cjs +0 -40
- package/RowBlockColumn.mjs +0 -16
- package/SearchInput.cjs +0 -136
- package/SearchInput.mjs +0 -114
- package/SearchResults/_SearchResultsItem.cjs +0 -54
- package/SearchResults/_SearchResultsItem.mjs +0 -30
- package/SearchResults.cjs +0 -172
- package/SearchResults.mjs +0 -150
- package/SeenEffect.cjs +0 -66
- package/SeenEffect.mjs +0 -44
- package/Selectbox.cjs +0 -144
- package/Selectbox.mjs +0 -122
- package/ShareButtons.cjs +0 -101
- package/ShareButtons.mjs +0 -83
- package/Sharpie.cjs +0 -51
- package/Sharpie.mjs +0 -27
- package/SiteSearchAutocomplete.cjs +0 -150
- package/SiteSearchAutocomplete.mjs +0 -126
- package/SiteSearchCurtain.cjs +0 -78
- package/SiteSearchCurtain.mjs +0 -56
- package/SiteSearchInput.cjs +0 -119
- package/SiteSearchInput.mjs +0 -97
- package/Skeleton.cjs +0 -63
- package/Skeleton.mjs +0 -39
- package/SubHeading.cjs +0 -43
- package/SubHeading.mjs +0 -19
- package/Tabs.cjs +0 -166
- package/Tabs.mjs +0 -144
- package/TagPill.cjs +0 -113
- package/TagPill.mjs +0 -91
- package/TextBlock.cjs +0 -45
- package/TextBlock.mjs +0 -21
- package/TextButton.cjs +0 -55
- package/TextButton.mjs +0 -33
- package/TextInput.cjs +0 -136
- package/TextInput.mjs +0 -114
- package/VSpacer.cjs +0 -70
- package/VSpacer.mjs +0 -46
- package/VerticalTabsTOC.cjs +0 -123
- package/VerticalTabsTOC.mjs +0 -101
- package/WizardLayout.cjs +0 -79
- package/WizardLayout.mjs +0 -55
- package/WizardLayoutClose.cjs +0 -47
- package/WizardLayoutClose.mjs +0 -25
- package/WizardStepper.cjs +0 -55
- package/WizardStepper.mjs +0 -31
- package/_abstract/Button.cjs +0 -114
- package/_abstract/Button.mjs +0 -92
- package/_abstract/CardList.cjs +0 -100
- package/_abstract/CardList.mjs +0 -76
- package/_abstract/Image.cjs +0 -75
- package/_abstract/Image.mjs +0 -51
- package/_abstract/Link.cjs +0 -37
- package/_abstract/Link.mjs +0 -10
- package/_abstract/TogglerGroup.cjs +0 -92
- package/_abstract/TogglerGroup.mjs +0 -70
- package/_abstract/TogglerGroupField.cjs +0 -121
- package/_abstract/TogglerGroupField.mjs +0 -99
- package/_abstract/TogglerInput.cjs +0 -105
- package/_abstract/TogglerInput.mjs +0 -83
- package/_abstract/_AbstractCarousel.cjs +0 -170
- package/_abstract/_AbstractCarousel.mjs +0 -152
- package/_abstract/_Blings.cjs +0 -47
- package/_abstract/_Blings.mjs +0 -23
- package/_abstract/_Block.cjs +0 -73
- package/_abstract/_Block.mjs +0 -51
- package/_abstract/_Quote.cjs +0 -43
- package/_abstract/_Quote.mjs +0 -17
- package/_abstract/breakOnNL.cjs +0 -30
- package/_abstract/breakOnNL.mjs +0 -6
- package/assets.cjs +0 -77
- package/assets.mjs +0 -53
- package/constants.cjs +0 -49
- package/constants.mjs +0 -24
- package/focus-visible.cjs +0 -1
- package/focus-visible.mjs +0 -1
- package/utils/config.cjs +0 -27
- package/utils/config.d.ts +0 -2
- package/utils/config.mjs +0 -4
- package/utils/detectEdgeScroll.cjs +0 -95
- package/utils/detectEdgeScroll.d.ts +0 -52
- package/utils/detectEdgeScroll.mjs +0 -71
- package/utils/env.cjs +0 -31
- package/utils/env.mjs +0 -5
- package/utils/seenEffect.cjs +0 -93
- package/utils/seenEffect.mjs +0 -65
- package/utils/useFormatMonitor.cjs +0 -29
- package/utils/useFormatMonitor.mjs +0 -6
- package/utils/useGetSVGtext.cjs +0 -44
- package/utils/useGetSVGtext.mjs +0 -21
- package/utils/useMenuToggling.cjs +0 -83
- package/utils/useMenuToggling.mjs +0 -60
- package/utils/useScrollbarWidthCSSVar.cjs +0 -32
- package/utils/useScrollbarWidthCSSVar.mjs +0 -6
- package/utils.cjs +0 -18
- package/utils.mjs +0 -2
|
@@ -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;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps } from './_abstract/Button';
|
|
3
|
+
export declare type ButtonBackProps = ButtonProps;
|
|
4
|
+
declare const ButtonBack: (props: ButtonBackProps & {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}) => JSX.Element;
|
|
7
|
+
export default ButtonBack;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare type ButtonBarProps = {
|
|
3
|
+
align?: 'right';
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
export declare const ButtonBar: {
|
|
7
|
+
(props: ButtonBarProps): JSX.Element;
|
|
8
|
+
Split(): JSX.Element;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Prefer using `ButtonBar.Split` instead.
|
|
12
|
+
*
|
|
13
|
+
* (This export token is only to aid discovery.)
|
|
14
|
+
*/
|
|
15
|
+
export declare const ButtonBar__split: () => JSX.Element;
|
|
16
|
+
export default ButtonBar;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import getBemClass from '@hugsmidjan/react/utils/getBemClass';
|
|
3
|
+
export const ButtonBar = (props) => {
|
|
4
|
+
const { align, children } = props;
|
|
5
|
+
return (<div className={getBemClass('ButtonBar', align === 'right' && 'align--right')}>
|
|
6
|
+
{children}
|
|
7
|
+
</div>);
|
|
8
|
+
};
|
|
9
|
+
ButtonBar.Split = () => <span className="ButtonBar__split"/>;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Prefer using `ButtonBar.Split` instead.
|
|
12
|
+
*
|
|
13
|
+
* (This export token is only to aid discovery.)
|
|
14
|
+
*/
|
|
15
|
+
export const ButtonBar__split = ButtonBar.Split;
|
|
16
|
+
export default ButtonBar;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
|
|
3
|
+
export declare type ButtonPrimaryProps = ButtonProps & ButtonVariantProps;
|
|
4
|
+
declare const ButtonPrimary: (props: ButtonPrimaryProps & {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}) => JSX.Element;
|
|
7
|
+
export default ButtonPrimary;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
|
|
3
|
+
export declare type ButtonSecondaryProps = ButtonProps & ButtonVariantProps;
|
|
4
|
+
declare const ButtonSecondary: (props: ButtonSecondaryProps & {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}) => JSX.Element;
|
|
7
|
+
export default ButtonSecondary;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
|
|
3
|
+
declare type TertiarySize = Extract<ButtonVariantProps['size'], 'normal' | 'small'>;
|
|
4
|
+
declare type TertiaryIcon = Extract<ButtonVariantProps['icon'], 'none' | 'go-back'>;
|
|
5
|
+
export declare type ButtonTertiaryProps = ButtonProps & Omit<ButtonVariantProps, 'icon' | 'size'> & {
|
|
6
|
+
size?: TertiarySize;
|
|
7
|
+
icon?: TertiaryIcon;
|
|
8
|
+
};
|
|
9
|
+
declare const ButtonTertiary: (props: ButtonTertiaryProps & {
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default ButtonTertiary;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Button from './_abstract/Button';
|
|
3
|
+
const sizes = {
|
|
4
|
+
normal: 'normal',
|
|
5
|
+
small: 'small',
|
|
6
|
+
};
|
|
7
|
+
const icons = {
|
|
8
|
+
none: 'none',
|
|
9
|
+
'go-back': 'go-back',
|
|
10
|
+
};
|
|
11
|
+
const ButtonTertiary = (props) => {
|
|
12
|
+
const { size = 'normal', icon = 'none' } = props;
|
|
13
|
+
return <Button bem="ButtonTertiary" {...props} size={sizes[size]} icon={icons[icon]}/>;
|
|
14
|
+
};
|
|
15
|
+
export default ButtonTertiary;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CarouselProps } from './_abstract/_AbstractCarousel';
|
|
2
|
+
export type { CarouselProps } from './_abstract/_AbstractCarousel';
|
|
3
|
+
declare const Carousel: <I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}>(props: CarouselProps<I, P>) => JSX.Element;
|
|
4
|
+
export default Carousel;
|
package/esm/Carousel.jsx
ADDED