@reykjavik/hanna-react 0.10.136 → 0.10.138

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.
Files changed (169) hide show
  1. package/AccordionList.js +3 -3
  2. package/ActionCards.js +2 -2
  3. package/Alert.js +2 -2
  4. package/ArticleMeta.js +2 -2
  5. package/Attention.js +2 -2
  6. package/AutosuggestSearch.js +3 -3
  7. package/BasicTable.js +2 -2
  8. package/BgBox.js +2 -2
  9. package/Bling.js +2 -2
  10. package/BreadCrumbs.js +2 -2
  11. package/ButtonBar.js +3 -3
  12. package/CHANGELOG.md +13 -0
  13. package/CarouselStepper.js +2 -2
  14. package/CenterColumn.js +2 -2
  15. package/ContactBubble.js +3 -3
  16. package/ContentArticle.js +2 -2
  17. package/ContentImage.js +2 -2
  18. package/ExtraLinks.js +3 -3
  19. package/FeatureList.js +2 -2
  20. package/FieldGroup.js +2 -2
  21. package/FileInput.js +3 -3
  22. package/FooterInfo.js +3 -3
  23. package/Footnote.js +2 -2
  24. package/Form.js +2 -2
  25. package/FormField.js +2 -2
  26. package/GridBlocks.js +2 -2
  27. package/Heading.js +2 -2
  28. package/HeroBlock.js +2 -2
  29. package/IframeBlock.js +2 -2
  30. package/IframedLayout.js +2 -2
  31. package/ImageCards.js +2 -2
  32. package/InfoBlock.js +2 -2
  33. package/InfoHero.js +2 -2
  34. package/LabeledTextBlock.js +2 -2
  35. package/Layout.js +2 -2
  36. package/MainMenu/_Auxiliary.js +2 -2
  37. package/MainMenu/_PrimaryPanel.js +3 -3
  38. package/MainMenu.d.ts +2 -3
  39. package/MainMenu.js +4 -4
  40. package/MainMenu2.d.ts +2 -3
  41. package/MainMenu2.js +4 -4
  42. package/MiniMetrics.js +2 -2
  43. package/Multiselect.js +4 -5
  44. package/NameCard.js +3 -3
  45. package/NameCards.js +2 -2
  46. package/NewsHero.js +1 -2
  47. package/PageFilter.js +2 -2
  48. package/PageHeading.js +2 -2
  49. package/Pagination.js +4 -4
  50. package/ProcessOverview.js +2 -2
  51. package/README.md +1 -1
  52. package/ReadSpeakerPlayer.js +2 -2
  53. package/RelatedLinks.js +2 -2
  54. package/RowBlock.js +2 -2
  55. package/RowBlockColumn.js +2 -2
  56. package/SearchResults.js +2 -2
  57. package/ShareButtons.js +2 -2
  58. package/Sharpie.js +2 -2
  59. package/SiteSearchCurtain.js +2 -2
  60. package/Skeleton.js +2 -2
  61. package/SubHeading.js +2 -2
  62. package/Tabs.js +2 -2
  63. package/TagPill.js +3 -3
  64. package/TextBlock.js +2 -2
  65. package/TextInput.js +2 -2
  66. package/Tooltip.js +3 -3
  67. package/VSpacer.js +2 -2
  68. package/WizardLayout.js +2 -2
  69. package/WizardStepper.js +3 -3
  70. package/_abstract/_AbstractCarousel.js +1 -2
  71. package/_abstract/_AbstractModal.js +3 -3
  72. package/_abstract/_Block.js +2 -2
  73. package/_abstract/_Button.js +2 -2
  74. package/_abstract/_CardList.d.ts +3 -2
  75. package/_abstract/_CardList.js +4 -4
  76. package/_abstract/_CarouselPaging.js +2 -2
  77. package/_abstract/_Image.js +3 -3
  78. package/_abstract/_Quote.js +2 -2
  79. package/_abstract/_ScrollWrapper.js +2 -2
  80. package/_abstract/_Table.js +2 -3
  81. package/_abstract/_TogglerGroup.js +2 -2
  82. package/_abstract/_TogglerGroupField.js +2 -2
  83. package/_abstract/_TogglerInput.js +2 -2
  84. package/esm/AccordionList.js +1 -1
  85. package/esm/ActionCards.js +1 -1
  86. package/esm/Alert.js +1 -1
  87. package/esm/ArticleMeta.js +1 -1
  88. package/esm/Attention.js +1 -1
  89. package/esm/AutosuggestSearch.js +1 -1
  90. package/esm/BasicTable.js +1 -1
  91. package/esm/BgBox.js +1 -1
  92. package/esm/Bling.js +1 -1
  93. package/esm/BreadCrumbs.js +1 -1
  94. package/esm/ButtonBar.js +1 -1
  95. package/esm/CarouselStepper.js +1 -1
  96. package/esm/CenterColumn.js +1 -1
  97. package/esm/ContactBubble.js +1 -1
  98. package/esm/ContentArticle.js +1 -1
  99. package/esm/ContentImage.js +1 -1
  100. package/esm/ExtraLinks.js +1 -1
  101. package/esm/FeatureList.js +1 -1
  102. package/esm/FieldGroup.js +1 -1
  103. package/esm/FileInput.js +1 -1
  104. package/esm/FooterInfo.js +1 -1
  105. package/esm/Footnote.js +1 -1
  106. package/esm/Form.js +1 -1
  107. package/esm/FormField.js +1 -1
  108. package/esm/GridBlocks.js +1 -1
  109. package/esm/Heading.js +1 -1
  110. package/esm/HeroBlock.js +1 -1
  111. package/esm/IframeBlock.js +1 -1
  112. package/esm/IframedLayout.js +1 -1
  113. package/esm/ImageCards.js +1 -1
  114. package/esm/InfoBlock.js +1 -1
  115. package/esm/InfoHero.js +1 -1
  116. package/esm/LabeledTextBlock.js +1 -1
  117. package/esm/Layout.js +1 -1
  118. package/esm/MainMenu/_Auxiliary.js +1 -1
  119. package/esm/MainMenu/_PrimaryPanel.js +1 -1
  120. package/esm/MainMenu.d.ts +2 -3
  121. package/esm/MainMenu.js +1 -1
  122. package/esm/MainMenu2.d.ts +2 -3
  123. package/esm/MainMenu2.js +1 -1
  124. package/esm/MiniMetrics.js +1 -1
  125. package/esm/Multiselect.js +1 -2
  126. package/esm/NameCard.js +1 -1
  127. package/esm/NameCards.js +1 -1
  128. package/esm/NewsHero.js +1 -2
  129. package/esm/PageFilter.js +1 -1
  130. package/esm/PageHeading.js +1 -1
  131. package/esm/Pagination.js +2 -2
  132. package/esm/ProcessOverview.js +1 -1
  133. package/esm/ReadSpeakerPlayer.js +1 -1
  134. package/esm/RelatedLinks.js +1 -1
  135. package/esm/RowBlock.js +1 -1
  136. package/esm/RowBlockColumn.js +1 -1
  137. package/esm/SearchResults.js +1 -1
  138. package/esm/ShareButtons.js +1 -1
  139. package/esm/Sharpie.js +1 -1
  140. package/esm/SiteSearchCurtain.js +1 -1
  141. package/esm/Skeleton.js +1 -1
  142. package/esm/SubHeading.js +1 -1
  143. package/esm/Tabs.js +1 -1
  144. package/esm/TagPill.js +1 -1
  145. package/esm/TextBlock.js +1 -1
  146. package/esm/TextInput.js +1 -1
  147. package/esm/Tooltip.js +1 -1
  148. package/esm/VSpacer.js +1 -1
  149. package/esm/WizardLayout.js +1 -1
  150. package/esm/WizardStepper.js +1 -1
  151. package/esm/_abstract/_AbstractCarousel.js +1 -2
  152. package/esm/_abstract/_AbstractModal.js +1 -1
  153. package/esm/_abstract/_Block.js +1 -1
  154. package/esm/_abstract/_Button.js +1 -1
  155. package/esm/_abstract/_CardList.d.ts +3 -2
  156. package/esm/_abstract/_CardList.js +3 -3
  157. package/esm/_abstract/_CarouselPaging.js +1 -1
  158. package/esm/_abstract/_Image.js +1 -1
  159. package/esm/_abstract/_Quote.js +1 -1
  160. package/esm/_abstract/_ScrollWrapper.js +1 -1
  161. package/esm/_abstract/_Table.js +1 -2
  162. package/esm/_abstract/_TogglerGroup.js +1 -1
  163. package/esm/_abstract/_TogglerGroupField.js +1 -1
  164. package/esm/_abstract/_TogglerInput.js +1 -1
  165. package/esm/utils/types.d.ts +2 -2
  166. package/esm/utils/useScrollEdgeDetect.js +12 -8
  167. package/package.json +3 -3
  168. package/utils/types.d.ts +2 -2
  169. package/utils/useScrollEdgeDetect.js +11 -7
package/InfoBlock.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InfoBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const InfoBlock = (props) => {
8
8
  const { title, subtitle, items, wrapperProps } = props;
9
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('InfoBlock', null, (wrapperProps || {}).className) }),
9
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('InfoBlock', null, (wrapperProps || {}).className) }),
10
10
  react_1.default.createElement("h2", { className: "InfoBlock__title" }, title),
11
11
  subtitle && react_1.default.createElement("div", { className: "InfoBlock__subtitle" }, subtitle),
12
12
  react_1.default.createElement("ul", { className: "InfoBlock__items" }, items.map((item, i) => (react_1.default.createElement("li", { key: i, className: "InfoBlock__item" }, item)))),
package/InfoHero.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InfoHero = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const _Blings_js_1 = require("./_abstract/_Blings.js");
8
8
  const _Image_js_1 = require("./_abstract/_Image.js");
9
9
  const breakOnNL_js_1 = require("./_abstract/breakOnNL.js");
@@ -74,7 +74,7 @@ const InfoHero = (props) => {
74
74
  const blings = typeof blingType === 'object'
75
75
  ? blingType
76
76
  : (blingType && blingOptions[blingType]) || blingOptions.waves; // default to `waves`
77
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('InfoHero', `align--${alignment}`, (wrapperProps || {}).className) }),
77
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('InfoHero', `align--${alignment}`, (wrapperProps || {}).className) }),
78
78
  react_1.default.createElement("div", { className: "InfoHero__content" },
79
79
  react_1.default.createElement("h1", { className: "InfoHero__title" }, title),
80
80
  titleBlurb && react_1.default.createElement("div", { className: "InfoHero__titleblurb" }, titleBlurb),
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LabeledTextBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const ButtonTertiary_js_1 = tslib_1.__importDefault(require("./ButtonTertiary.js"));
8
8
  const LabeledTextBlock = (props) => {
9
9
  const { label, summary, wide, buttons = [], wrapperProps } = props;
10
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('LabeledTextBlock', wide && 'wide', (wrapperProps || {}).className) }),
10
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('LabeledTextBlock', wide && 'wide', (wrapperProps || {}).className) }),
11
11
  react_1.default.createElement("h2", { className: "LabeledTextBlock__label" }, label),
12
12
  react_1.default.createElement("div", { className: "LabeledTextBlock__summary" },
13
13
  summary,
package/Layout.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Layout = exports.defaultLayoutTexts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const _Layouts_js_1 = require("./_abstract/_Layouts.js");
9
9
  const a11yHelpers_js_1 = require("./utils/a11yHelpers.js");
@@ -18,7 +18,7 @@ const Layout = (props) => {
18
18
  const { globalAlerts, mainChildren, navChildren, footerChildren, colorTheme, children, siteName, logoLink = '/', wrapperProps, } = props;
19
19
  (0, _Layouts_js_1.issueSiteNameWarningInDev)(props);
20
20
  const txt = (0, i18n_1.getTexts)(props, exports.defaultLayoutTexts);
21
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('Layout', props.modifier, (wrapperProps || {}).className), "data-color-theme": colorTheme }),
21
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('Layout', props.modifier, (wrapperProps || {}).className), "data-color-theme": colorTheme }),
22
22
  globalAlerts && (react_1.default.createElement("div", { className: "Layout__alerts", role: "alert" }, globalAlerts)),
23
23
  react_1.default.createElement("div", { className: "Layout__content" },
24
24
  react_1.default.createElement("div", { className: "Layout__header", role: "banner" },
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuxiliaryPanel = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const assets_1 = require("@reykjavik/hanna-utils/assets");
8
8
  const _Link_js_1 = require("../_abstract/_Link.js");
9
9
  const AuxiliaryPanel = (props) => {
@@ -13,6 +13,6 @@ const AuxiliaryPanel = (props) => {
13
13
  ? { '--menu-auxiliary-image': `url(${imageUrl})` }
14
14
  : undefined },
15
15
  react_1.default.createElement("h3", { className: "AuxiliaryPanel__title" }, title),
16
- react_1.default.createElement("ul", { className: "AuxiliaryPanel__items" }, items.map((item, i) => (react_1.default.createElement("li", { key: i, className: (0, classUtils_1.modifiedClass)('AuxiliaryPanel__item', item.modifier), "aria-current": item.current || undefined }, item.Content ? (react_1.default.createElement(item.Content, null)) : (react_1.default.createElement(_Link_js_1.Link, { className: "AuxiliaryPanel__link", href: item.href, target: item.target, lang: item.lang }, item.label))))))));
16
+ react_1.default.createElement("ul", { className: "AuxiliaryPanel__items" }, items.map((item, i) => (react_1.default.createElement("li", { key: i, className: (0, hanna_utils_1.modifiedClass)('AuxiliaryPanel__item', item.modifier), "aria-current": item.current || undefined }, item.Content ? (react_1.default.createElement(item.Content, null)) : (react_1.default.createElement(_Link_js_1.Link, { className: "AuxiliaryPanel__link", href: item.href, target: item.target, lang: item.lang }, item.label))))))));
17
17
  };
18
18
  exports.AuxiliaryPanel = AuxiliaryPanel;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrimaryPanel = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const _Link_js_1 = require("../_abstract/_Link.js");
8
8
  const PrimaryPanel = (props) => {
9
9
  const { setActivePanel, panel, isParent, isActive, isBrowser, texts } = props;
10
10
  const { items } = panel;
11
- return (react_1.default.createElement("li", { ref: isActive ? props.activeRef : undefined, className: (0, classUtils_1.modifiedClass)('PrimaryPanel', [
11
+ return (react_1.default.createElement("li", { ref: isActive ? props.activeRef : undefined, className: (0, hanna_utils_1.modifiedClass)('PrimaryPanel', [
12
12
  isParent && 'parent',
13
13
  isActive && 'active',
14
14
  items.length > 5 && 'twocol', // TODO: allow setting twocol manually?
@@ -16,7 +16,7 @@ const PrimaryPanel = (props) => {
16
16
  react_1.default.createElement("h3", { className: "PrimaryPanel__title" },
17
17
  ' ',
18
18
  isBrowser && !isActive ? (react_1.default.createElement("button", { className: "MainMenu__mega__title-toggler", "aria-controls": panel.id, onClick: () => setActivePanel(panel, false), "aria-pressed": isActive, type: "button" }, panel.title)) : (panel.title)),
19
- react_1.default.createElement("ul", { className: "PrimaryPanel__items" }, items.map((item, i) => (react_1.default.createElement("li", { key: i, className: (0, classUtils_1.modifiedClass)('PrimaryPanel__item', item.modifier), "aria-current": item.current || undefined }, item.Content ? (react_1.default.createElement(item.Content, null)) : (react_1.default.createElement(_Link_js_1.Link, { className: "PrimaryPanel__link", href: item.href, target: item.target, lang: item.lang, hrefLang: item.hrefLang },
19
+ react_1.default.createElement("ul", { className: "PrimaryPanel__items" }, items.map((item, i) => (react_1.default.createElement("li", { key: i, className: (0, hanna_utils_1.modifiedClass)('PrimaryPanel__item', item.modifier), "aria-current": item.current || undefined }, item.Content ? (react_1.default.createElement(item.Content, null)) : (react_1.default.createElement(_Link_js_1.Link, { className: "PrimaryPanel__link", href: item.href, target: item.target, lang: item.lang, hrefLang: item.hrefLang },
20
20
  react_1.default.createElement("span", { className: "PrimaryPanel__linkTitle" }, item.label),
21
21
  ' ',
22
22
  react_1.default.createElement("small", { className: "PrimaryPanel__summary" }, item.summary),
package/MainMenu.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import React, { ReactElement } from 'react';
2
- import { Modifiers } from '@hugsmidjan/qj/classUtils';
3
- import { Cleanup, EitherObj } from '@reykjavik/hanna-utils';
2
+ import { ClassNameModifiers, Cleanup, EitherObj } from '@reykjavik/hanna-utils';
4
3
  import { AuxilaryPanelIllustration, AuxiliaryPanelProps } from './MainMenu/_Auxiliary.js';
5
4
  import { MegaMenuItem, MegaMenuItemList, MegaMenuPanel, PrimaryPanelI18n } from './MainMenu/_PrimaryPanel.js';
6
5
  import { I18NProps } from './utils/types.js';
@@ -45,7 +44,7 @@ export type MainMenuItem = {
45
44
  /**
46
45
  * Puts a modifier className for the menu __item <li/> element.
47
46
  * */
48
- modifier?: Modifiers;
47
+ modifier?: ClassNameModifiers;
49
48
  /** Signifies if the menu item is part of the page's breadcrumb trail */
50
49
  current?: boolean;
51
50
  /**
package/MainMenu.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MainMenu = exports._MainMenu = exports.defaultMainMenuTexts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
6
  const focusElm_1 = require("@hugsmidjan/qj/focusElm");
7
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
8
8
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
9
9
  const _Link_js_1 = require("./_abstract/_Link.js");
10
10
  const _Auxiliary_js_1 = require("./MainMenu/_Auxiliary.js");
@@ -193,7 +193,7 @@ const _MainMenu = (props) => {
193
193
  closeHamburgerMenu();
194
194
  }
195
195
  };
196
- return (react_1.default.createElement("nav", Object.assign({}, props.wrapperProps, { className: (0, classUtils_1.modifiedClass)('MainMenu', null, wrapperProps.className), "aria-label": title, "data-sprinkled": isBrowser, ref: menuElmRef }),
196
+ return (react_1.default.createElement("nav", Object.assign({}, props.wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('MainMenu', null, wrapperProps.className), "aria-label": title, "data-sprinkled": isBrowser, ref: menuElmRef }),
197
197
  react_1.default.createElement("h2", { className: "MainMenu__title" }, title),
198
198
  react_1.default.createElement("ul", { className: "MainMenu__items" }, menuItems.map((item, i) => {
199
199
  if (item === '---') {
@@ -206,7 +206,7 @@ const _MainMenu = (props) => {
206
206
  }
207
207
  const { label, labelLong, lang, controlsId, onClick } = item;
208
208
  const pressed = (activePanel && controlsId === activePanel.id) || undefined;
209
- return (react_1.default.createElement("li", { key: i, className: (0, classUtils_1.modifiedClass)('MainMenu__item', item.modifier), "aria-current": item.current || undefined }, isBrowser && !!(item.megaPanel || onClick) ? (
209
+ return (react_1.default.createElement("li", { key: i, className: (0, hanna_utils_1.modifiedClass)('MainMenu__item', item.modifier), "aria-current": item.current || undefined }, isBrowser && !!(item.megaPanel || onClick) ? (
210
210
  // only print script-driven buttons in the browser
211
211
  react_1.default.createElement("button", { className: "MainMenu__link", onClick: () => {
212
212
  const keepOpen1 = onClick && onClick(i, item) === false;
@@ -227,7 +227,7 @@ const _MainMenu = (props) => {
227
227
  ));
228
228
  })),
229
229
  '\n\n',
230
- megaPanels.length > 0 && (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('MainMenu__panelsWrap', [activePanel && 'active']) },
230
+ megaPanels.length > 0 && (react_1.default.createElement("div", { className: (0, hanna_utils_1.modifiedClass)('MainMenu__panelsWrap', [activePanel && 'active']) },
231
231
  react_1.default.createElement("ul", { className: "MainMenu__panels", onClick: handleMegaPanelClicks },
232
232
  megaPanels.map((panel, i) => {
233
233
  if (!panel.items.length) {
package/MainMenu2.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import React, { ReactElement } from 'react';
2
- import { Modifiers } from '@hugsmidjan/qj/classUtils';
3
- import { Cleanup, EitherObj } from '@reykjavik/hanna-utils';
2
+ import { ClassNameModifiers, Cleanup, EitherObj } from '@reykjavik/hanna-utils';
4
3
  import { Illustration } from '@reykjavik/hanna-utils/assets';
5
4
  import { DefaultTexts } from '@reykjavik/hanna-utils/i18n';
6
5
  import { I18NProps } from './utils/types.js';
@@ -26,7 +25,7 @@ export type MainMenu2Item = {
26
25
  /**
27
26
  * Puts a modifier className for the menu __item <li/> element.
28
27
  * */
29
- modifier?: Modifiers;
28
+ modifier?: ClassNameModifiers;
30
29
  /** Signifies if the menu item is part of the page's breadcrumb trail */
31
30
  current?: boolean;
32
31
  /**
package/MainMenu2.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MainMenu2 = exports.defaultMainMenu2Texts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const assets_1 = require("@reykjavik/hanna-utils/assets");
8
8
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
9
9
  const _Link_js_1 = require("./_abstract/_Link.js");
@@ -89,7 +89,7 @@ const getRenderers = (props) => {
89
89
  size: 'small',
90
90
  }
91
91
  : undefined;
92
- return (react_1.default.createElement(Tag, { key: key, className: (0, classUtils_1.modifiedClass)(`${classPrefix}item`, item.modifier), "aria-current": item.current || undefined }, isBrowser && (onClick || href == null) ? (react_1.default.createElement(ButtonTag, Object.assign({}, commonProps, { type: "button", "aria-controls": controlsId, onClick: () => {
92
+ return (react_1.default.createElement(Tag, { key: key, className: (0, hanna_utils_1.modifiedClass)(`${classPrefix}item`, item.modifier), "aria-current": item.current || undefined }, isBrowser && (onClick || href == null) ? (react_1.default.createElement(ButtonTag, Object.assign({}, commonProps, { type: "button", "aria-controls": controlsId, onClick: () => {
93
93
  const keepOpen1 = onClick && onClick(item) === false;
94
94
  const keepOpen2 = onItemClick && onItemClick(item) === false;
95
95
  !(keepOpen1 || keepOpen2) && closeMenu();
@@ -195,7 +195,7 @@ const MainMenu2 = (props) => {
195
195
  : homeLink)), { modifier: 'home' });
196
196
  const menuImageUrl = imageUrl || (illustration && (0, assets_1.getIllustrationUrl)(illustration));
197
197
  const menuId = `${domid}-menu`;
198
- return (react_1.default.createElement("nav", Object.assign({}, props.wrapperProps, { className: (0, classUtils_1.modifiedClass)('MainMenu2', [
198
+ return (react_1.default.createElement("nav", Object.assign({}, props.wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('MainMenu2', [
199
199
  isBrowser && (isMenuOpen ? 'open' : 'closed'),
200
200
  variant && variant !== 'default' ? `variant--${variant}` : undefined,
201
201
  ], wrapperProps.className), style: menuImageUrl
@@ -217,7 +217,7 @@ const MainMenu2 = (props) => {
217
217
  title: txt.openMenuLong,
218
218
  children: txt.openMenu,
219
219
  })))) : (react_1.default.createElement(ButtonPrimary_js_1.default, { className: "MainMenu2__toggler", size: "small", href: `#${menuId}`, onClick: a11yHelpers_js_1.handleAnchorLinkClick, "aria-hidden": "true" }, txt.title)),
220
- mainItems && (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('MainMenu2__main', activeSubmenu < 0 && 'noneActive') },
220
+ mainItems && (react_1.default.createElement("div", { className: (0, hanna_utils_1.modifiedClass)('MainMenu2__main', activeSubmenu < 0 && 'noneActive') },
221
221
  renderItem('MainMenu2__main__', homeLinkItem, { Tag: 'div' }),
222
222
  mainItems.map((mainItem, i) => {
223
223
  if ('title' in mainItem) {
package/MiniMetrics.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MiniMetrics = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const _Button_js_1 = require("./_abstract/_Button.js");
8
8
  const MiniMetrics = (props) => {
9
9
  const { text, moreButton, wrapperProps } = props;
10
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('MiniMetrics', null, (wrapperProps || {}).className) }),
10
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('MiniMetrics', null, (wrapperProps || {}).className) }),
11
11
  react_1.default.createElement("strong", { className: "MiniMetrics__text" }, text),
12
12
  " ",
13
13
  '\n',
package/Multiselect.js CHANGED
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Multiselect = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
6
  const domid_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/domid"));
8
7
  const hanna_utils_1 = require("@reykjavik/hanna-utils");
9
8
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
@@ -200,9 +199,9 @@ const Multiselect = (props) => {
200
199
  block: 'nearest',
201
200
  });
202
201
  }, [activeItemIndex]);
203
- return (react_1.default.createElement(FormField_js_1.default, Object.assign({ extraClassName: (0, classUtils_1.modifiedClass)('Multiselect', props.nowrap && 'nowrap'), group: "inputlike", filled: filled, empty: empty }, (0, FormField_js_1.getFormFieldWrapperProps)(props), { renderInput: (className, inputProps, addFocusProps, isBrowser) => {
202
+ return (react_1.default.createElement(FormField_js_1.default, Object.assign({ extraClassName: (0, hanna_utils_1.modifiedClass)('Multiselect', props.nowrap && 'nowrap'), group: "inputlike", filled: filled, empty: empty }, (0, FormField_js_1.getFormFieldWrapperProps)(props), { renderInput: (className, inputProps, addFocusProps, isBrowser) => {
204
203
  const { id } = inputProps;
205
- return (react_1.default.createElement("div", Object.assign({ className: (0, classUtils_1.modifiedClass)('Multiselect__input', [isOpen && 'open'], className.input) }, addFocusProps(), { "data-sprinkled": isBrowser, ref: inputWrapperRef }),
204
+ return (react_1.default.createElement("div", Object.assign({ className: (0, hanna_utils_1.modifiedClass)('Multiselect__input', [isOpen && 'open'], className.input) }, addFocusProps(), { "data-sprinkled": isBrowser, ref: inputWrapperRef }),
206
205
  !isBrowser ? null : isSearchable ? (react_1.default.createElement("input", { className: "Multiselect__search", id: `toggler:${id}`, "aria-label": texts.search, "aria-controls": (0, domid_1.default)(), "data-expanded": isOpen || undefined, onChange: handleInputChange, onKeyDown: handleInputKeyDown, onClick: () => toggleOpen(), value: searchQuery,
207
206
  // onFocus={handleInputFocus}
208
207
  placeholder: placeholderText, disabled: disabled, ref: inputRef })) : (react_1.default.createElement("button", { className: "Multiselect__toggler", id: `toggler:${id}`, type: "button", "aria-label": texts.buttonShow, "aria-controls": (0, domid_1.default)(), "aria-expanded": isOpen, onClick: () => toggleOpen(), disabled: disabled,
@@ -239,11 +238,11 @@ const Multiselect = (props) => {
239
238
  const insertGroupSeparator = !isFiltered &&
240
239
  item.group !== (filteredOptions[idx - 1] || {}).group &&
241
240
  (idx > 0 || !!item.group);
242
- const checkbox = (react_1.default.createElement(Checkbox_js_1.default, Object.assign({ key: idx, className: (0, classUtils_1.modifiedClass)('Multiselect__option', activeItemIndex === idx && 'focused'), reqText: false, disabled: isDisabled, readOnly: readOnly, required: props.required, Wrapper: "li", name: name }, item, { checked: isChecked, "aria-invalid": props.invalid, label: item.label || item.value, onChange: () => handleCheckboxSelection(item), onFocus: () => setActiveItemIndex(idx), wrapperProps: {
241
+ const checkbox = (react_1.default.createElement(Checkbox_js_1.default, Object.assign({ key: idx, className: (0, hanna_utils_1.modifiedClass)('Multiselect__option', activeItemIndex === idx && 'focused'), reqText: false, disabled: isDisabled, readOnly: readOnly, required: props.required, Wrapper: "li", name: name }, item, { checked: isChecked, "aria-invalid": props.invalid, label: item.label || item.value, onChange: () => handleCheckboxSelection(item), onFocus: () => setActiveItemIndex(idx), wrapperProps: {
243
242
  onMouseEnter: () => setActiveItemIndex(idx),
244
243
  } })));
245
244
  return insertGroupSeparator ? (react_1.default.createElement(react_1.Fragment, { key: idx },
246
- react_1.default.createElement("li", { className: (0, classUtils_1.modifiedClass)('Multiselect__optionSeparator', !item.group && 'empty'), "aria-label": item.group ? undefined : '—' }, item.group || false),
245
+ react_1.default.createElement("li", { className: (0, hanna_utils_1.modifiedClass)('Multiselect__optionSeparator', !item.group && 'empty'), "aria-label": item.group ? undefined : '—' }, item.group || false),
247
246
  checkbox)) : (checkbox);
248
247
  })) : searchQuery ? (react_1.default.createElement("li", { className: "Multiselect__noresults" }, texts.noneFoundMsg)) : undefined,
249
248
  isBrowser && react_1.default.createElement(FocusTrap_js_1.FocusTrap, { Tag: "li" })))));
package/NameCard.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NameCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const _Button_js_1 = require("./_abstract/_Button.js");
9
9
  const breakOnNL_js_1 = require("./_abstract/breakOnNL.js");
@@ -56,7 +56,7 @@ const NameCard = (props) => {
56
56
  const texts = (0, i18n_1.getTexts)(props, defaultTexts);
57
57
  const { updatedLabel, availableLabel, unavailableLabel } = texts;
58
58
  return (react_1.default.createElement("div", { className: "NameCard__meta" },
59
- available != null && (react_1.default.createElement("span", { className: (0, classUtils_1.modifiedClass)('NameCard__availability', available && 'available') },
59
+ available != null && (react_1.default.createElement("span", { className: (0, hanna_utils_1.modifiedClass)('NameCard__availability', available && 'available') },
60
60
  available
61
61
  ? availableLabel || texts.vacancyLabel // eslint-disable-line deprecation/deprecation
62
62
  : unavailableLabel || texts.noVacancyLabel // eslint-disable-line deprecation/deprecation
@@ -84,7 +84,7 @@ const NameCard = (props) => {
84
84
  }
85
85
  return item;
86
86
  });
87
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('NameCard', null, (wrapperProps || {}).className) }),
87
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('NameCard', null, (wrapperProps || {}).className) }),
88
88
  react_1.default.createElement("div", { className: "NameCard__name" }, name),
89
89
  contactInfo.length > 0 && (react_1.default.createElement("p", { className: "NameCard__contactinfo" }, cleanContactInfo.map((item, i) => (react_1.default.createElement(react_1.default.Fragment, null,
90
90
  typeof item === 'string' ? (react_1.default.createElement("span", { className: "NameCard__contactinfo__item" }, item)) : (react_1.default.createElement(_Button_js_1.Button, { key: i, bem: "NameCard__contactinfo__item", href: item.href, "aria-label": item.longLabel, title: item.longLabel }, item.label)),
package/NameCards.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NameCards = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const NameCard_js_1 = tslib_1.__importDefault(require("./NameCard.js"));
8
8
  const NameCards = (props) => {
9
9
  const { items, wrapperProps } = props;
10
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('NameCards', null, (wrapperProps || {}).className) }), items.map((item, i) => (react_1.default.createElement(NameCard_js_1.default, Object.assign({ key: i }, item))))));
10
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('NameCards', null, (wrapperProps || {}).className) }), items.map((item, i) => (react_1.default.createElement(NameCard_js_1.default, Object.assign({ key: i }, item))))));
11
11
  };
12
12
  exports.NameCards = NameCards;
13
13
  exports.default = exports.NameCards;
package/NewsHero.js CHANGED
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NewsHero = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
6
  const hanna_utils_1 = require("@reykjavik/hanna-utils");
8
7
  const _Blings_js_1 = require("./_abstract/_Blings.js");
9
8
  const _Image_js_1 = require("./_abstract/_Image.js");
@@ -80,7 +79,7 @@ const NewsHero = (props) => {
80
79
  ? blingType
81
80
  : (blingType && blingOptions[blingType]) ||
82
81
  (0, hanna_utils_1.getStableRandomItem)(blingOptions, title);
83
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('NewsHero', [!image && 'align--right'], (wrapperProps || {}).className) }),
82
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('NewsHero', [!image && 'align--right'], (wrapperProps || {}).className) }),
84
83
  react_1.default.createElement("div", { className: "NewsHero__content" },
85
84
  react_1.default.createElement("h1", { className: "NewsHero__title" }, title),
86
85
  meta && react_1.default.createElement("span", { className: "NewsHero__meta" }, meta),
package/PageFilter.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PageFilter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const Footnote_js_1 = tslib_1.__importDefault(require("./Footnote.js"));
8
8
  const PageFilter = (props) => {
9
9
  const { title, summary, footnote, filters, children, buttonRow, underlap, wrapperProps, } = props;
10
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('PageFilter', underlap && 'underlap', (wrapperProps || {}).className) }),
10
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('PageFilter', underlap && 'underlap', (wrapperProps || {}).className) }),
11
11
  react_1.default.createElement("h2", { className: "PageFilter__title" }, title),
12
12
  summary && react_1.default.createElement("div", { className: "PageFilter__summary" }, summary),
13
13
  react_1.default.createElement("div", { className: "PageFilter__filters" }, filters || children),
package/PageHeading.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PageHeading = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const PageHeading = (props) => {
8
8
  const { Tag = 'h1', align, small, children, wrapperProps } = props;
9
- return (react_1.default.createElement(Tag, Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('PageHeading', [small && 'small', align === 'right' && `align--${align}`], (wrapperProps || {}).className) }), children));
9
+ return (react_1.default.createElement(Tag, Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('PageHeading', [small && 'small', align === 'right' && `align--${align}`], (wrapperProps || {}).className) }), children));
10
10
  };
11
11
  exports.PageHeading = PageHeading;
12
12
  exports.default = exports.PageHeading;
package/Pagination.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Pagination = exports.defaultPaginationTexts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const _Link_js_1 = require("./_abstract/_Link.js");
9
9
  const Pagination_privates_js_1 = require("./utils/Pagination.privates.js");
@@ -14,7 +14,7 @@ const PaginationButton = (props) => {
14
14
  const labelShort = label ? label.replace(/\$\{page\}/, `${page}`) : `${page}`;
15
15
  const btnProps = {
16
16
  key: props.key,
17
- className: (0, classUtils_1.modifiedClass)('Pagination__button', modifier),
17
+ className: (0, hanna_utils_1.modifiedClass)('Pagination__button', modifier),
18
18
  title: labelLong,
19
19
  'aria-label': labelLong !== labelShort ? labelLong : undefined,
20
20
  children: labelShort,
@@ -74,7 +74,7 @@ exports.Pagination = (0, react_1.memo)((props) => {
74
74
  const pageList = (0, Pagination_privates_js_1.generatePageList)(current, pageCount);
75
75
  const texts = (0, i18n_1.getTexts)(props, exports.defaultPaginationTexts);
76
76
  const btn = getBtnRenderer(props);
77
- return (react_1.default.createElement("nav", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('Pagination', null, (wrapperProps || {}).className), "aria-label": props.title || texts.defaultTitle.replace(/\$\{pageCount\}/, `${pageCount}`) }),
77
+ return (react_1.default.createElement("nav", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('Pagination', null, (wrapperProps || {}).className), "aria-label": props.title || texts.defaultTitle.replace(/\$\{pageCount\}/, `${pageCount}`) }),
78
78
  btn({
79
79
  page: current + 1,
80
80
  modifier: 'next',
@@ -93,7 +93,7 @@ exports.Pagination = (0, react_1.memo)((props) => {
93
93
  ' ',
94
94
  pageList
95
95
  .map((page, i) => {
96
- return page === '…' ? (react_1.default.createElement("span", { className: "Pagination__ellipsis" }, "\u2026")) : (btn({
96
+ return page === '…' ? (react_1.default.createElement("span", { className: "Pagination__ellipsis", key: i }, "\u2026")) : (btn({
97
97
  key: i,
98
98
  page,
99
99
  labelLong: texts.pageLabelLong,
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessOverview = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const ProcessOverview = (props) => {
8
8
  const { title, items, attention, transparent, narrow, wrapperProps } = props;
9
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('ProcessOverview', [transparent && 'transparent', narrow && 'narrow'], (wrapperProps || {}).className) }),
9
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('ProcessOverview', [transparent && 'transparent', narrow && 'narrow'], (wrapperProps || {}).className) }),
10
10
  react_1.default.createElement("h2", { className: "ProcessOverview__title" }, title),
11
11
  items.map(({ title, content }, i) => {
12
12
  return (react_1.default.createElement("div", { key: i, className: "ProcessOverview__item" },
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @reykjavik/hanna-react
1
+ # @reykjavik/hanna-react <!-- omit from toc -->
2
2
 
3
3
  The official React components for Hanna – Reykjavík's design-system
4
4
 
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stopReading = exports.ReadSpeakerPlayer = exports.defaultReadSpeakerPlayerTexts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const scriptTagId = 'rs_req_Init';
9
9
  const scriptTagSelector = `script#${scriptTagId}`;
@@ -62,7 +62,7 @@ const ReadSpeakerPlayer = (props) => {
62
62
  // or multiple different `customerId`s on the same page.
63
63
  // If you try that, things will be weird and wonky.
64
64
  ]);
65
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('ReadSpeakerPlayer', [align === 'right' && `align-${align}`, float && 'float'], (wrapperProps || {}).className) }),
65
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('ReadSpeakerPlayer', [align === 'right' && `align-${align}`, float && 'float'], (wrapperProps || {}).className) }),
66
66
  react_1.default.createElement("div", { id: "readspeaker_button1", className: "rs_skip rsbtn rs_preserve" },
67
67
  react_1.default.createElement("a", { rel: "nofollow", className: "rsbtn_play", accessKey: "L", title: linkLabel || linkText, href: `https://app-eu.readspeaker.com/cgi-bin/rsent?${new URLSearchParams({
68
68
  customerid: customerId,
package/RelatedLinks.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RelatedLinks = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const _Link_js_1 = require("./_abstract/_Link.js");
8
8
  const types = {
9
9
  external: 1,
@@ -17,7 +17,7 @@ const RelatedLinks = (props) => {
17
17
  return null;
18
18
  }
19
19
  const TitleTag = props.titleTag || 'h3';
20
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('RelatedLinks', null, (wrapperProps || {}).className) }),
20
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('RelatedLinks', null, (wrapperProps || {}).className) }),
21
21
  title && react_1.default.createElement(TitleTag, { className: "RelatedLinks__title" }, title),
22
22
  react_1.default.createElement("ul", { className: "RelatedLinks__list" }, links.map(({ href, label, type, target }, i) => {
23
23
  type = type && types[type] ? type : undefined;
package/RowBlock.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RowBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const RowBlock = (props) => {
8
8
  const { right, modifier, className, children, wrapperProps } = props;
9
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('RowBlock', [modifier, right && 'align--right'], className || (wrapperProps || {}).className) }), children));
9
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('RowBlock', [modifier, right && 'align--right'], className || (wrapperProps || {}).className) }), children));
10
10
  };
11
11
  exports.RowBlock = RowBlock;
12
12
  exports.default = exports.RowBlock;
package/RowBlockColumn.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RowBlockColumn = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const RowBlockColumn = (props) => {
8
8
  const { background, narrow, children, wrapperProps } = props;
9
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('RowBlockColumn', [
9
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('RowBlockColumn', [
10
10
  narrow && 'narrow',
11
11
  background && 'background',
12
12
  background === 'primary' && 'background--primary',
package/SearchResults.js CHANGED
@@ -4,9 +4,9 @@ exports.SearchResults = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const react_intersection_observer_1 = require("react-intersection-observer");
7
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
8
7
  const prettyNum_1 = require("@hugsmidjan/qj/prettyNum");
9
8
  const range_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/range"));
9
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
10
10
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
11
11
  const _SearchResultsItem_js_1 = require("./SearchResults/_SearchResultsItem.js");
12
12
  const useDomid_js_1 = require("./utils/useDomid.js");
@@ -107,7 +107,7 @@ const SearchResults = (props) => {
107
107
  const { filters, activeFilterIdx, setFilter, status, errorText, wrapperProps } = props;
108
108
  const texts = (0, i18n_1.getTexts)(props, defaultTexts);
109
109
  const domid = (0, useDomid_js_1.useDomid)();
110
- return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('SearchResults', status !== 'results' && status, (wrapperProps || {}).className) }),
110
+ return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('SearchResults', status !== 'results' && status, (wrapperProps || {}).className) }),
111
111
  renderTitle(props, texts),
112
112
  react_1.default.createElement(SearchResults_Tabs, { domid: domid, filters: filters, activeIdx: activeFilterIdx, setFilter: setFilter, lang: texts.lang }),
113
113
  react_1.default.createElement("div", { className: "SearchResults__results", id: domid },
package/ShareButtons.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ShareButtons = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const shareButtonsUtils_1 = require("@reykjavik/hanna-utils/shareButtonsUtils");
9
9
  const _Link_js_1 = require("./_abstract/_Link.js");
@@ -44,7 +44,7 @@ const ShareButtons = (props) => {
44
44
  (docMeta && shareButtonsUtils_1.shareButtonTexts[docMeta.lang]) ||
45
45
  shareButtonsUtils_1.shareButtonTexts[i18n_1.DEFAULT_LANG];
46
46
  const { label, buttonLabel, emailSubject } = txt;
47
- const className = (0, classUtils_1.modifiedClass)('ShareButtons', null, (wrapperProps || {}).className);
47
+ const className = (0, hanna_utils_1.modifiedClass)('ShareButtons', null, (wrapperProps || {}).className);
48
48
  if (!docMeta || ssr === 'ssr-only') {
49
49
  // Generate SSR markup for hanna-sprinkles to pick up on.
50
50
  return (react_1.default.createElement("div", Object.assign({}, wrapperProps, { className: className, "data-button-types": generateTypeList(facebook, twitter, linkedin, email), "data-label": label, "data-buttonlabel": buttonLabel, "data-emailsubject": emailSubject || undefined })));
package/Sharpie.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Sharpie = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const colors = {
8
8
  green: 1,
9
9
  red: 1,
@@ -21,7 +21,7 @@ const Sharpie = (props) => {
21
21
  const { color, tag, children, wrapperProps } = props;
22
22
  const colorModifier = colors[color] ? color : 'green';
23
23
  const Tag = tag && tags[tag] ? tag : 'span';
24
- return (react_1.default.createElement(Tag, Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)('Sharpie', colorModifier, (wrapperProps || {}).className) }), children));
24
+ return (react_1.default.createElement(Tag, Object.assign({}, wrapperProps, { className: (0, hanna_utils_1.modifiedClass)('Sharpie', colorModifier, (wrapperProps || {}).className) }), children));
25
25
  };
26
26
  exports.Sharpie = Sharpie;
27
27
  exports.default = exports.Sharpie;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SiteSearchCurtain = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
6
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
7
7
  const env_js_1 = require("./utils/env.js");
8
8
  const useLaggedState_js_1 = require("./utils/useLaggedState.js");
9
9
  // NOTE: This component is too low-level (and too esoteric and rarely used)
@@ -29,7 +29,7 @@ const SiteSearchCurtain = (props) => {
29
29
  setFocused(false, 100);
30
30
  }
31
31
  };
32
- return (react_1.default.createElement("div", Object.assign({ className: (0, classUtils_1.modifiedClass)('SiteSearchCurtain', [focused && 'focused']), onFocus: focusHandler, onBlur: blurHandler }, (env_js_1.isPreact && { onfocusin: focusHandler, onfocusout: blurHandler })), props.children));
32
+ return (react_1.default.createElement("div", Object.assign({ className: (0, hanna_utils_1.modifiedClass)('SiteSearchCurtain', [focused && 'focused']), onFocus: focusHandler, onBlur: blurHandler }, (env_js_1.isPreact && { onfocusin: focusHandler, onfocusout: blurHandler })), props.children));
33
33
  };
34
34
  exports.SiteSearchCurtain = SiteSearchCurtain;
35
35
  exports.default = exports.SiteSearchCurtain;
package/Skeleton.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Skeleton = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
6
  const range_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/range"));
7
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
8
8
  /**
9
9
  Rounds the input number, caps it at max. If it's below min, returns undefined
10
10
  */
@@ -24,7 +24,7 @@ const Skeleton = (props) => {
24
24
  const gap = minmax(props.gap, 5, 1);
25
25
  const items = minmax(props.items, 20, 2) || 1;
26
26
  const { wrapperProps } = props;
27
- const className = (0, classUtils_1.modifiedClass)('Skeleton', [props.text && 'text', height && `height--${height}`, gap && `gap--${gap}`], (wrapperProps || {}).className);
27
+ const className = (0, hanna_utils_1.modifiedClass)('Skeleton', [props.text && 'text', height && `height--${height}`, gap && `gap--${gap}`], (wrapperProps || {}).className);
28
28
  if (items) {
29
29
  return (react_1.default.createElement(react_1.default.Fragment, null, (0, range_1.default)(1, items).map((key) => (react_1.default.createElement("span", { key: key, className: className })))));
30
30
  }