@reykjavik/hanna-react 0.10.94 → 0.10.95

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 (180) hide show
  1. package/AccordionList.d.ts +2 -3
  2. package/AccordionList.js +3 -3
  3. package/Alert.d.ts +2 -3
  4. package/Alert.js +2 -2
  5. package/ArticleCarousel/_ArticleCarouselCard.js +2 -2
  6. package/ArticleCarousel.d.ts +2 -3
  7. package/ArticleMeta.js +2 -2
  8. package/Attention.js +2 -2
  9. package/BasicTable.js +2 -2
  10. package/BgBox.js +2 -2
  11. package/Bling.js +2 -2
  12. package/ButtonBar.js +2 -2
  13. package/CHANGELOG.md +12 -0
  14. package/ContactBubble.d.ts +2 -3
  15. package/ContactBubble.js +2 -2
  16. package/Datepicker.js +2 -2
  17. package/ExtraLinks.js +3 -3
  18. package/FieldGroup.js +2 -2
  19. package/FileInput.js +3 -3
  20. package/FooterInfo.d.ts +2 -2
  21. package/FooterInfo.js +3 -3
  22. package/Form.js +2 -2
  23. package/FormField.d.ts +2 -3
  24. package/FormField.js +2 -2
  25. package/Gallery.d.ts +2 -3
  26. package/GridBlocks.js +2 -2
  27. package/Heading.js +2 -2
  28. package/IframeBlock.js +2 -2
  29. package/ImageCards.js +2 -2
  30. package/InfoHero.js +2 -2
  31. package/LabeledTextBlock.js +2 -2
  32. package/Layout.d.ts +3 -6
  33. package/Layout.js +7 -13
  34. package/MainMenu/_PrimaryPanel.js +2 -2
  35. package/MainMenu.d.ts +2 -3
  36. package/MainMenu.js +3 -3
  37. package/Multiselect.js +5 -5
  38. package/NameCard.js +2 -2
  39. package/NewsHero.js +2 -2
  40. package/PageFilter.js +2 -2
  41. package/PageHeading.js +2 -2
  42. package/Picture.js +2 -2
  43. package/ProcessOverview.js +2 -2
  44. package/ReadSpeakerPlayer.js +2 -2
  45. package/RowBlock.d.ts +2 -2
  46. package/RowBlock.js +2 -2
  47. package/RowBlockColumn.js +2 -2
  48. package/SearchInput.js +2 -2
  49. package/SearchResults.js +2 -2
  50. package/Selectbox.js +2 -2
  51. package/ShareButtons.d.ts +2 -3
  52. package/Sharpie.js +2 -2
  53. package/SiteSearchAutocomplete.d.ts +1 -1
  54. package/SiteSearchCurtain.js +2 -2
  55. package/SiteSearchInput.d.ts +2 -3
  56. package/Skeleton.js +2 -2
  57. package/SubHeading.js +2 -2
  58. package/Tabs.d.ts +2 -3
  59. package/Tabs.js +2 -2
  60. package/TagPill.js +3 -3
  61. package/TextBlock.js +2 -2
  62. package/TextInput.js +2 -2
  63. package/Tooltip.js +2 -2
  64. package/VSpacer.js +2 -2
  65. package/WizardLayout.d.ts +2 -3
  66. package/WizardLayout.js +2 -2
  67. package/WizardStepper.js +3 -3
  68. package/_abstract/_AbstractCarousel.d.ts +3 -4
  69. package/_abstract/_AbstractCarousel.js +2 -2
  70. package/_abstract/_Block.d.ts +2 -2
  71. package/_abstract/_Block.js +2 -2
  72. package/_abstract/_Button.d.ts +3 -3
  73. package/_abstract/_Button.js +2 -2
  74. package/_abstract/_Image.js +3 -3
  75. package/_abstract/_TogglerGroup.js +2 -2
  76. package/_abstract/_TogglerGroupField.d.ts +2 -2
  77. package/_abstract/_TogglerGroupField.js +2 -2
  78. package/_abstract/_TogglerInput.d.ts +2 -2
  79. package/_abstract/_TogglerInput.js +2 -2
  80. package/esm/AccordionList.d.ts +2 -3
  81. package/esm/AccordionList.js +3 -3
  82. package/esm/Alert.d.ts +2 -3
  83. package/esm/Alert.js +2 -2
  84. package/esm/ArticleCarousel/_ArticleCarouselCard.js +2 -2
  85. package/esm/ArticleCarousel.d.ts +2 -3
  86. package/esm/ArticleMeta.js +2 -2
  87. package/esm/Attention.js +2 -2
  88. package/esm/BasicTable.js +2 -2
  89. package/esm/BgBox.js +2 -2
  90. package/esm/Bling.js +2 -2
  91. package/esm/ButtonBar.js +2 -2
  92. package/esm/ContactBubble.d.ts +2 -3
  93. package/esm/ContactBubble.js +2 -2
  94. package/esm/Datepicker.js +2 -2
  95. package/esm/ExtraLinks.js +3 -3
  96. package/esm/FieldGroup.js +2 -2
  97. package/esm/FileInput.js +3 -3
  98. package/esm/FooterInfo.d.ts +2 -2
  99. package/esm/FooterInfo.js +3 -3
  100. package/esm/Form.js +2 -2
  101. package/esm/FormField.d.ts +2 -3
  102. package/esm/FormField.js +2 -2
  103. package/esm/Gallery.d.ts +2 -3
  104. package/esm/GridBlocks.js +2 -2
  105. package/esm/Heading.js +2 -2
  106. package/esm/IframeBlock.js +2 -2
  107. package/esm/ImageCards.js +2 -2
  108. package/esm/InfoHero.js +2 -2
  109. package/esm/LabeledTextBlock.js +2 -2
  110. package/esm/Layout.d.ts +3 -6
  111. package/esm/Layout.js +7 -13
  112. package/esm/MainMenu/_PrimaryPanel.js +2 -2
  113. package/esm/MainMenu.d.ts +2 -3
  114. package/esm/MainMenu.js +3 -3
  115. package/esm/Multiselect.js +5 -5
  116. package/esm/NameCard.js +2 -2
  117. package/esm/NewsHero.js +2 -2
  118. package/esm/PageFilter.js +2 -2
  119. package/esm/PageHeading.js +2 -2
  120. package/esm/Picture.js +2 -2
  121. package/esm/ProcessOverview.js +2 -2
  122. package/esm/ReadSpeakerPlayer.js +2 -2
  123. package/esm/RowBlock.d.ts +2 -2
  124. package/esm/RowBlock.js +2 -2
  125. package/esm/RowBlockColumn.js +2 -2
  126. package/esm/SearchInput.js +2 -2
  127. package/esm/SearchResults.js +2 -2
  128. package/esm/Selectbox.js +2 -2
  129. package/esm/ShareButtons.d.ts +2 -3
  130. package/esm/Sharpie.js +2 -2
  131. package/esm/SiteSearchAutocomplete.d.ts +1 -1
  132. package/esm/SiteSearchCurtain.js +2 -2
  133. package/esm/SiteSearchInput.d.ts +2 -3
  134. package/esm/Skeleton.js +2 -2
  135. package/esm/SubHeading.js +2 -2
  136. package/esm/Tabs.d.ts +2 -3
  137. package/esm/Tabs.js +2 -2
  138. package/esm/TagPill.js +3 -3
  139. package/esm/TextBlock.js +2 -2
  140. package/esm/TextInput.js +2 -2
  141. package/esm/Tooltip.js +2 -2
  142. package/esm/VSpacer.js +2 -2
  143. package/esm/WizardLayout.d.ts +2 -3
  144. package/esm/WizardLayout.js +2 -2
  145. package/esm/WizardStepper.js +3 -3
  146. package/esm/_abstract/_AbstractCarousel.d.ts +3 -4
  147. package/esm/_abstract/_AbstractCarousel.js +2 -2
  148. package/esm/_abstract/_Block.d.ts +2 -2
  149. package/esm/_abstract/_Block.js +2 -2
  150. package/esm/_abstract/_Button.d.ts +3 -3
  151. package/esm/_abstract/_Button.js +2 -2
  152. package/esm/_abstract/_Image.js +3 -3
  153. package/esm/_abstract/_TogglerGroup.js +2 -2
  154. package/esm/_abstract/_TogglerGroupField.d.ts +2 -2
  155. package/esm/_abstract/_TogglerGroupField.js +2 -2
  156. package/esm/_abstract/_TogglerInput.d.ts +2 -2
  157. package/esm/_abstract/_TogglerInput.js +2 -2
  158. package/esm/utils/HannaUIState.d.ts +3 -4
  159. package/esm/utils/config.d.ts +11 -1
  160. package/esm/utils/config.js +1 -0
  161. package/esm/utils/types.d.ts +12 -0
  162. package/esm/utils/types.js +1 -0
  163. package/esm/utils/useGetSVGtext.d.ts +1 -1
  164. package/esm/utils/useGetSVGtext.js +2 -2
  165. package/esm/utils/useMenuToggling.d.ts +2 -0
  166. package/esm/utils/useMenuToggling.js +31 -21
  167. package/esm/utils.d.ts +2 -1
  168. package/esm/utils.js +2 -1
  169. package/package.json +5 -4
  170. package/utils/HannaUIState.d.ts +3 -4
  171. package/utils/config.d.ts +11 -1
  172. package/utils/config.js +1 -0
  173. package/utils/types.d.ts +12 -0
  174. package/utils/types.js +2 -0
  175. package/utils/useGetSVGtext.d.ts +1 -1
  176. package/utils/useGetSVGtext.js +2 -2
  177. package/utils/useMenuToggling.d.ts +2 -0
  178. package/utils/useMenuToggling.js +31 -21
  179. package/utils.d.ts +2 -1
  180. package/utils.js +5 -1
@@ -1,5 +1,5 @@
1
1
  import { SeenProp } from './utils/seenEffect.js';
2
- import { SSRSupport } from './utils.js';
2
+ import { SSRSupportProps } from './utils.js';
3
3
  export type AccordionListItemProps = {
4
4
  title: string | JSX.Element;
5
5
  content: string | JSX.Element | undefined;
@@ -19,7 +19,6 @@ export type AccordionListProps = {
19
19
  /** Index of those items that should start open (uncontrolled use) */
20
20
  defaultOpen?: Array<number>;
21
21
  wide?: boolean;
22
- ssr?: SSRSupport;
23
- } & SeenProp;
22
+ } & SSRSupportProps & SeenProp;
24
23
  export declare const AccordionList: (props: AccordionListProps) => JSX.Element;
25
24
  export default AccordionList;
package/AccordionList.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AccordionList = 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
7
  const hooks_1 = require("@hugsmidjan/react/hooks");
7
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
8
  const seenEffect_js_1 = require("./utils/seenEffect.js");
9
9
  const utils_js_1 = require("./utils.js");
10
10
  const AccordionListItem = (props) => {
@@ -13,7 +13,7 @@ const AccordionListItem = (props) => {
13
13
  const domid = (0, hooks_1.useDomid)();
14
14
  const isBrowser = (0, utils_js_1.useIsBrowserSide)(ssr);
15
15
  const itemDisabled = (isBrowser && disabled) || !content;
16
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('AccordionList__item', [itemDisabled && 'disabled']), id: id, "data-start-open": defaultOpen.current, "data-sprinkled": isBrowser },
16
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('AccordionList__item', [itemDisabled && 'disabled']), id: id, "data-start-open": defaultOpen.current, "data-sprinkled": isBrowser },
17
17
  react_1.default.createElement("h3", { className: "AccordionList__title" }, isBrowser ? (react_1.default.createElement("button", { type: "button", className: "AccordionList__button", "aria-controls": domid, "aria-expanded": open || undefined, onClick: onToggle, disabled: itemDisabled }, title)) : (title)),
18
18
  react_1.default.createElement("div", { id: isBrowser && domid, className: "AccordionList__content", hidden: isBrowser && (!open || itemDisabled) }, content)));
19
19
  };
@@ -31,7 +31,7 @@ const AccordionList = (props) => {
31
31
  return newOpen;
32
32
  });
33
33
  };
34
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('AccordionList', [wide && 'wide']), ref: ref }, items.map((item, i) => (react_1.default.createElement(AccordionListItem, Object.assign({ key: i }, item, { ssr: ssr, open: open.includes(i), onToggle: () => onToggle(i), defaultOpen: defaultOpen && defaultOpen.includes(i) }))))));
34
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('AccordionList', [wide && 'wide']), ref: ref }, items.map((item, i) => (react_1.default.createElement(AccordionListItem, Object.assign({ key: i }, item, { ssr: ssr, open: open.includes(i), onToggle: () => onToggle(i), defaultOpen: defaultOpen && defaultOpen.includes(i) }))))));
35
35
  };
36
36
  exports.AccordionList = AccordionList;
37
37
  exports.default = exports.AccordionList;
package/Alert.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { MouseEvent, ReactNode } from 'react';
2
2
  import { EitherObj } from '@reykjavik/hanna-utils';
3
3
  import { DefaultTexts } from '@reykjavik/hanna-utils/i18n';
4
- import { SSRSupport } from './utils.js';
4
+ import { SSRSupportProps } from './utils.js';
5
5
  export type AlertI18n = {
6
6
  closeLabel: string;
7
7
  closeLabelLong?: string;
@@ -24,8 +24,7 @@ export type AlertProps = {
24
24
  closeUrl?: string;
25
25
  texts?: AlertI18n;
26
26
  lang?: string;
27
- ssr?: SSRSupport;
28
- } & EitherObj<{
27
+ } & SSRSupportProps & EitherObj<{
29
28
  /** Seconds until the Alert auto-closes.
30
29
  *
31
30
  * Mosueover and keyboard focus resets the timer.
package/Alert.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Alert = exports.alertTypes = exports.defaultAlertTexts = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
8
8
  const _Button_js_1 = require("./_abstract/_Button.js");
9
9
  const env_js_1 = require("./utils/env.js");
@@ -81,7 +81,7 @@ const Alert = (props) => {
81
81
  };
82
82
  }
83
83
  }, [closeAlert, autoClosing, autoClose]);
84
- return (react_1.default.createElement("div", Object.assign({ className: (0, getBemClass_1.default)('Alert', [
84
+ return (react_1.default.createElement("div", Object.assign({ className: (0, classUtils_1.modifiedClass)('Alert', [
85
85
  !!exports.alertTypes[type] && type,
86
86
  closable && 'closable',
87
87
  ]), role: "alert", hidden: !open || undefined }, autoClosingProps),
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArticleCarouselCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const assets_1 = require("@reykjavik/hanna-utils/assets");
8
8
  const _Image_js_1 = require("../_abstract/_Image.js");
9
9
  const _Link_js_1 = require("../_abstract/_Link.js");
@@ -15,7 +15,7 @@ const ArticleCarouselCard = (props) => {
15
15
  return (react_1.default.createElement("div", { className: "ArticleCarouselCard", "data-color": color && constants_js_1.colorFamilies[color], "data-color-theme": !color ? theme && constants_js_1.themeOptions[theme] : undefined },
16
16
  react_1.default.createElement(_Link_js_1.Link, { className: "ArticleCarouselCard__link", href: href, target: target },
17
17
  ' ',
18
- react_1.default.createElement(_Image_js_1.Image, Object.assign({ placeholder: true, className: (0, getBemClass_1.default)('ArticleCarouselCard__illustration', photo && 'photo') }, imageProps)),
18
+ react_1.default.createElement(_Image_js_1.Image, Object.assign({ placeholder: true, className: (0, classUtils_1.modifiedClass)('ArticleCarouselCard__illustration', photo && 'photo') }, imageProps)),
19
19
  react_1.default.createElement("h3", { className: "ArticleCarouselCard__title" }, title),
20
20
  ' '),
21
21
  ' ',
@@ -1,12 +1,11 @@
1
1
  import { ArticleCarouselCardProps, ArticleCarouselImageProps } from './ArticleCarousel/_ArticleCarouselCard.js';
2
2
  import { SeenProp } from './utils/seenEffect.js';
3
- import { SSRSupport } from './utils.js';
3
+ import { SSRSupportProps } from './utils.js';
4
4
  export type ArticleCarouselProps = {
5
5
  items: Array<ArticleCarouselCardProps>;
6
6
  title?: string;
7
7
  moreLabel?: string;
8
- ssr?: SSRSupport;
9
- } & SeenProp;
8
+ } & SSRSupportProps & SeenProp;
10
9
  export type { ArticleCarouselCardProps, ArticleCarouselImageProps };
11
10
  export declare const ArticleCarousel: (props: ArticleCarouselProps) => JSX.Element;
12
11
  export default ArticleCarousel;
package/ArticleMeta.js CHANGED
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArticleMeta = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const _Link_js_1 = require("./_abstract/_Link.js");
8
8
  const ArticleMeta = (props) => {
9
9
  const { items, small } = props;
10
10
  if (items.length === 0) {
11
11
  return null;
12
12
  }
13
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('ArticleMeta', small && 'small') }, items.map(({ label, href }, i) => (react_1.default.createElement(react_1.Fragment, { key: i },
13
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('ArticleMeta', small && 'small') }, items.map(({ label, href }, i) => (react_1.default.createElement(react_1.Fragment, { key: i },
14
14
  href == null ? (react_1.default.createElement("span", { className: "ArticleMeta__item" },
15
15
  " ",
16
16
  label,
package/Attention.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Attention = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
7
- const Attention = (props) => (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('Attention', props.small && 'small') }, props.children));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
+ const Attention = (props) => (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('Attention', props.small && 'small') }, props.children));
8
8
  exports.Attention = Attention;
9
9
  exports.default = exports.Attention;
package/BasicTable.js CHANGED
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BasicTable = 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
7
  const Table_1 = tslib_1.__importDefault(require("@hugsmidjan/react/Table"));
7
8
  const TableWrapper_1 = tslib_1.__importDefault(require("@hugsmidjan/react/TableWrapper"));
8
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
9
9
  const seenEffect_js_1 = require("./utils/seenEffect.js");
10
10
  const BasicTable = (props) => {
11
11
  const { cols, caption, thead, tfoot, align, fullWidth, startSeen } = props;
@@ -20,7 +20,7 @@ const BasicTable = (props) => {
20
20
  fullWidth && 'BasicTable--fullwidth',
21
21
  align === 'right' && !fullWidth && 'BasicTable--align--' + align,
22
22
  ], wrapperRef: ref },
23
- react_1.default.createElement(Table_1.default, Object.assign({ className: (0, getBemClass_1.default)('BasicTable', [
23
+ react_1.default.createElement(Table_1.default, Object.assign({ className: (0, classUtils_1.modifiedClass)('BasicTable', [
24
24
  props.compact && 'compact',
25
25
  modifier && modifier,
26
26
  ]) }, {
package/BgBox.js CHANGED
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BgBox = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const seenEffect_js_1 = require("./utils/seenEffect.js");
8
8
  const BgBox = (props) => {
9
9
  const { className, children, effectType, startSeen } = props;
10
10
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
11
- return (react_1.default.createElement("div", Object.assign({ className: (0, getBemClass_1.default)('BgBox', undefined, className), ref: ref }, (0, seenEffect_js_1.getEffectAttr)(effectType)), children));
11
+ return (react_1.default.createElement("div", Object.assign({ className: (0, classUtils_1.modifiedClass)('BgBox', undefined, className), ref: ref }, (0, seenEffect_js_1.getEffectAttr)(effectType)), children));
12
12
  };
13
13
  exports.BgBox = BgBox;
14
14
  exports.default = exports.BgBox;
package/Bling.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Bling = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const assets_1 = require("@reykjavik/hanna-utils/assets");
8
8
  const useGetSVGtext_js_1 = require("./utils/useGetSVGtext.js");
9
9
  const colors = {
@@ -37,7 +37,7 @@ const Bling = (props) => {
37
37
  const { align, vertical, color, overlay, type, blingUrl, parent, className } = props;
38
38
  const imageUrl = type ? (0, assets_1.getBlingUrl)(type) : blingUrl;
39
39
  const inlineSvg = (0, useGetSVGtext_js_1.useGetSVGtext)(imageUrl);
40
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('Bling', [
40
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('Bling', [
41
41
  'align--' + (align && align in aligns ? align : 'left'),
42
42
  vertical && vertical in valigns && 'vertical--' + vertical,
43
43
  color && color in colors && 'color--' + color,
package/ButtonBar.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ButtonBar__split = exports.ButtonBar = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const ButtonBar = (props) => {
8
8
  const { align, children } = props;
9
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('ButtonBar', align === 'right' && 'align--right') }, children));
9
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('ButtonBar', align === 'right' && 'align--right') }, children));
10
10
  };
11
11
  exports.ButtonBar = ButtonBar;
12
12
  /** A Splitter token to use directly inside <ButtonBar/> wrappers */
package/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@
4
4
 
5
5
  - ... <!-- Add new lines here. -->
6
6
 
7
+ ## 0.10.95
8
+
9
+ _2023-07-25_
10
+
11
+ - feat: Add optional `altText` parameter to `useGetSVGtext()`
12
+ - feat: Export `useMenuToggling` from 'utils' module
13
+ - feat: Export `SSRSupportProps` type
14
+ - perf: Reduce render thrashing of `Layout`'s navChildren
15
+ - fix: `Layout` components set `alt="Reykjavík"` text on their header logo
16
+ - fix: Raise `Multiselect`'s internal `summaryLimit` to `20`
17
+ - fix: List `tslib` as dependency
18
+
7
19
  ## 0.10.93 – 0.10.94
8
20
 
9
21
  _2023-07-06_
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { DefaultTexts } from '@reykjavik/hanna-utils/i18n';
3
- import { SSRSupport } from './utils.js';
3
+ import { SSRSupportProps } from './utils.js';
4
4
  export type ContactBubbleI18n = {
5
5
  lang?: string;
6
6
  openBtn: string;
@@ -47,8 +47,7 @@ export type ContactBubbleProps = {
47
47
  alwaysShow?: boolean;
48
48
  texts?: ContactBubbleI18n;
49
49
  lang?: string;
50
- ssr?: SSRSupport;
51
- } & ({
50
+ } & SSRSupportProps & ({
52
51
  open?: boolean;
53
52
  onToggle: (isOpen: boolean) => void;
54
53
  } | {
package/ContactBubble.js CHANGED
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const focusElm_1 = require("@hugsmidjan/qj/focusElm");
7
7
  const hooks_1 = require("@hugsmidjan/react/hooks");
8
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
9
9
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
10
10
  const _Link_js_1 = require("./_abstract/_Link.js");
11
11
  const breakOnNL_js_1 = require("./_abstract/breakOnNL.js");
@@ -126,7 +126,7 @@ const ContactBubble = (props) => {
126
126
  react_1.default.createElement("ul", { className: "ContactBubble__list" }, links.map((linkInfo, i) => {
127
127
  const { href, label, extraLabel, target, onClick } = linkInfo;
128
128
  const icon = (0, exports.ensureIcon)(linkInfo.icon);
129
- const itemClass = (0, getBemClass_1.default)('ContactBubble__item', icon && 'type--' + icon);
129
+ const itemClass = (0, classUtils_1.modifiedClass)('ContactBubble__item', icon && 'type--' + icon);
130
130
  const onClickHandler = (e) => {
131
131
  if (onClick) {
132
132
  const doPreventDefault = onClick() !== true;
package/Datepicker.js CHANGED
@@ -4,7 +4,7 @@ exports.Datepicker = exports.getDateDiff = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const hooks_1 = require("@hugsmidjan/react/hooks");
7
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
7
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
8
8
  // For more info on localization see: https://stackoverflow.com/questions/54399084/change-locale-in-react-datepicker/58306958#58306958
9
9
  const index_js_1 = tslib_1.__importDefault(require("date-fns/locale/is/index.js"));
10
10
  const index_js_2 = tslib_1.__importDefault(require("date-fns/locale/pl/index.js"));
@@ -74,7 +74,7 @@ const Datepicker = (props) => {
74
74
  const txts = i18n[localeCode] || {};
75
75
  const filled = !!value;
76
76
  const empty = !filled && !placeholder;
77
- return (react_1.default.createElement(FormField_js_1.FormField, { className: (0, getBemClass_1.default)('Datepicker', [], className), ssr: ssr, label: label, small: small, assistText: assistText, hideLabel: hideLabel, invalid: invalid, required: required, reqText: reqText, disabled: disabled, readOnly: readOnly, filled: filled, empty: empty, errorMessage: errorMessage, renderInput: (className, inputProps, addFocusProps) => {
77
+ return (react_1.default.createElement(FormField_js_1.FormField, { className: (0, classUtils_1.modifiedClass)('Datepicker', [], className), ssr: ssr, label: label, small: small, assistText: assistText, hideLabel: hideLabel, invalid: invalid, required: required, reqText: reqText, disabled: disabled, readOnly: readOnly, filled: filled, empty: empty, errorMessage: errorMessage, renderInput: (className, inputProps, addFocusProps) => {
78
78
  return (react_1.default.createElement("div", Object.assign({ className: className.input, onClick: ({ target, currentTarget }) => { var _a; return target === currentTarget && ((_a = currentTarget.querySelector('input')) === null || _a === void 0 ? void 0 : _a.focus()); }, ref: inputRef &&
79
79
  ((elm) => {
80
80
  inputRef.current =
package/ExtraLinks.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtraLinks = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const _CardList_js_1 = require("./_abstract/_CardList.js");
8
8
  const _Link_js_1 = require("./_abstract/_Link.js");
9
9
  const seenEffect_js_1 = require("./utils/seenEffect.js");
@@ -13,13 +13,13 @@ const ExtraLinks__related = (props) => {
13
13
  relatedTitle && react_1.default.createElement("h3", { className: "ExtraLinks__related__title" }, relatedTitle),
14
14
  react_1.default.createElement("ul", { className: "ExtraLinks__related__list" }, relatedLinks &&
15
15
  relatedLinks.map(({ href, label, blank = false, type }, i) => (react_1.default.createElement("li", { className: "ExtraLinks__related__item", key: i },
16
- react_1.default.createElement(_Link_js_1.Link, { className: (0, getBemClass_1.default)('ExtraLinks__related__link', type), href: href, target: blank ? '_blank' : '', rel: blank ? 'noreferrer noopener' : '' }, label)))))));
16
+ react_1.default.createElement(_Link_js_1.Link, { className: (0, classUtils_1.modifiedClass)('ExtraLinks__related__link', type), href: href, target: blank ? '_blank' : '', rel: blank ? 'noreferrer noopener' : '' }, label)))))));
17
17
  };
18
18
  const ExtraLinks = (props) => {
19
19
  const { relatedTitle, relatedLinks, className, startSeen } = props, cardListProps = tslib_1.__rest(props, ["relatedTitle", "relatedLinks", "className", "startSeen"]);
20
20
  const hasRelated = !!(relatedLinks && relatedLinks.length);
21
21
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
22
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('ExtraLinks', hasRelated && 'related', className), ref: ref },
22
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('ExtraLinks', hasRelated && 'related', className), ref: ref },
23
23
  react_1.default.createElement("div", { className: "ExtraLinks__main" },
24
24
  react_1.default.createElement(_CardList_js_1.CardList, Object.assign({}, cardListProps, { bemPrefix: "ExtraLinks" }))),
25
25
  hasRelated && (react_1.default.createElement(ExtraLinks__related, { relatedTitle: relatedTitle, relatedLinks: relatedLinks }))));
package/FieldGroup.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldGroup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const FieldGroup = (props) => {
8
8
  const { legend, children, className, disabled, small } = props;
9
- return (react_1.default.createElement("fieldset", { className: (0, getBemClass_1.default)('FieldGroup', small && 'small', className), disabled: disabled },
9
+ return (react_1.default.createElement("fieldset", { className: (0, classUtils_1.modifiedClass)('FieldGroup', small && 'small', className), disabled: disabled },
10
10
  react_1.default.createElement("legend", { className: "FieldGroup__legend" }, legend),
11
11
  children));
12
12
  };
package/FileInput.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FileInput = 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
7
  const hooks_1 = require("@hugsmidjan/react/hooks");
7
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
8
  const i18n_1 = require("@reykjavik/hanna-utils/i18n");
9
9
  const ReactDropzone_js_1 = require("./_mixed_export_resolution_/ReactDropzone.js");
10
10
  const _FileInput_utils_js_1 = require("./FileInput/_FileInput.utils.js");
@@ -104,7 +104,7 @@ const FileInput = (props) => {
104
104
  }
105
105
  onFilesUpdated(fileList, diff);
106
106
  };
107
- return (react_1.default.createElement(FormField_js_1.default, { className: (0, getBemClass_1.default)('FileInput', [multiple && 'multi'], className), label: label, id: domid + '-fake', LabelTag: "h4", assistText: assistText, hideLabel: hideLabel, disabled: disabled, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, renderInput: (className, inputProps /* , addFocusProps */) => {
107
+ return (react_1.default.createElement(FormField_js_1.default, { className: (0, classUtils_1.modifiedClass)('FileInput', [multiple && 'multi'], className), label: label, id: domid + '-fake', LabelTag: "h4", assistText: assistText, hideLabel: hideLabel, disabled: disabled, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, renderInput: (className, inputProps /* , addFocusProps */) => {
108
108
  return (react_1.default.createElement("div", { className: className.control, ref: fileInputWrapper },
109
109
  // Explicitly skip rendering of input element if no
110
110
  // name prop is provided. This is implicitly what the
@@ -118,7 +118,7 @@ const FileInput = (props) => {
118
118
  // it's contents are wiped on every "add" action.
119
119
  className: "FileInput__input--fake" }, getInputProps(), { tabIndex: undefined, style: undefined, multiple: multiple || undefined }, inputProps, { required: undefined })),
120
120
  ' ',
121
- react_1.default.createElement("div", Object.assign({ className: (0, getBemClass_1.default)('FileInput__dropzone', [isHover && 'highlight']) }, getRootProps({ isDragReject }), { tabIndex: undefined }),
121
+ react_1.default.createElement("div", Object.assign({ className: (0, classUtils_1.modifiedClass)('FileInput__dropzone', [isHover && 'highlight']) }, getRootProps({ isDragReject }), { tabIndex: undefined }),
122
122
  react_1.default.createElement("p", { className: "FileInput__droptext" }, dropzoneText)),
123
123
  FileList && (react_1.default.createElement(FileList, Object.assign({}, {
124
124
  files,
package/FooterInfo.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { BemPropsModifier } from '@hugsmidjan/react/types';
1
+ import { BemModifierProps } from './utils/types.js';
2
2
  export type FooterInfoGroup = {
3
3
  title: string;
4
4
  modifier?: string;
5
5
  main?: boolean;
6
6
  /** @deprecated (Will be removed in v0.11) */
7
7
  role?: JSX.IntrinsicElements['div']['role'];
8
- } & BemPropsModifier & ({
8
+ } & BemModifierProps & ({
9
9
  content: JSX.Element;
10
10
  html?: undefined;
11
11
  } | {
package/FooterInfo.js CHANGED
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FooterInfo = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const FooterInfo = (props) => {
8
8
  const { boxes } = props;
9
- return (react_1.default.createElement("div", { className: "FooterInfo" }, boxes.map((group, i) => (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('FooterInfo__group', [
9
+ return (react_1.default.createElement("div", { className: "FooterInfo" }, boxes.map((group, i) => (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('FooterInfo__group', [
10
10
  group.main && 'main',
11
11
  group.modifier,
12
12
  ]), key: i },
13
13
  react_1.default.createElement("h3", { className: "FooterInfo__grouptitle" }, group.title),
14
- group.content ? (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('FooterInfo__groupcontent', group.modifier) }, group.content)) : (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('FooterInfo__groupcontent', group.modifier), dangerouslySetInnerHTML: { __html: group.html } })))))));
14
+ group.content ? (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('FooterInfo__groupcontent', group.modifier) }, group.content)) : (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('FooterInfo__groupcontent', group.modifier), dangerouslySetInnerHTML: { __html: group.html } })))))));
15
15
  };
16
16
  exports.FooterInfo = FooterInfo;
17
17
  exports.default = exports.FooterInfo;
package/Form.js CHANGED
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Form = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const Form = (props) => {
8
8
  const { children, align, wide } = props;
9
- return (react_1.default.createElement("form", Object.assign({}, props, { className: (0, getBemClass_1.default)('Form', [
9
+ return (react_1.default.createElement("form", Object.assign({}, props, { className: (0, classUtils_1.modifiedClass)('Form', [
10
10
  align === 'right' && 'align--' + align,
11
11
  !align && wide && 'wide',
12
12
  ]) }), children));
package/FormField.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RefObject } from 'react';
2
- import { SSRSupport } from './utils.js';
2
+ import { SSRSupportProps } from './utils.js';
3
3
  type InputClassNames = {
4
4
  /** Basic/raw FormField BEM name */
5
5
  bem: string;
@@ -51,8 +51,7 @@ export type FormFieldWrappingProps = {
51
51
  id?: string;
52
52
  /** Ref object pointing to the outermost `.FormField` element */
53
53
  wrapperRef?: RefObject<HTMLElement>;
54
- ssr?: SSRSupport;
55
- };
54
+ } & SSRSupportProps;
56
55
  /**
57
56
  * Mixin base props type for components using `FormField` to contain
58
57
  * more complex multi-element, grouped choices, that require a Heading
package/FormField.js CHANGED
@@ -4,7 +4,7 @@ exports.FormField = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const hooks_1 = require("@hugsmidjan/react/hooks");
7
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
7
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
8
8
  const env_js_1 = require("./utils/env.js");
9
9
  const utils_js_1 = require("./utils.js");
10
10
  const inputClassNames = {
@@ -67,7 +67,7 @@ const FormField = (props) => {
67
67
  'aria-describedby': assistTextId && errorId ? assistTextId + ' ' + errorId : assistTextId || errorId,
68
68
  'aria-labelledby': labelId, // undefined if normalLabel
69
69
  };
70
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('FormField', [
70
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('FormField', [
71
71
  small && 'small',
72
72
  hideLabel && 'nolabel',
73
73
  isInvalid && 'invalid',
package/Gallery.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { GalleryItemProps } from './Gallery/_GalleryItem.js';
2
2
  import { SeenProp } from './utils/seenEffect.js';
3
- import { SSRSupport } from './utils.js';
3
+ import { SSRSupportProps } from './utils.js';
4
4
  export type { GalleryItemProps } from './Gallery/_GalleryItem.js';
5
5
  export type GalleryI18n = {
6
6
  modalNextLabel: string;
@@ -11,7 +11,6 @@ export type GalleryProps = {
11
11
  items: Array<GalleryItemProps>;
12
12
  texts?: GalleryI18n;
13
13
  lang?: string;
14
- ssr?: SSRSupport;
15
- } & SeenProp;
14
+ } & SSRSupportProps & SeenProp;
16
15
  export declare const Gallery: (props: GalleryProps) => JSX.Element;
17
16
  export default Gallery;
package/GridBlocks.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridBlocks = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const assets_1 = require("@reykjavik/hanna-utils/assets");
8
8
  const _Image_js_1 = require("./_abstract/_Image.js");
9
9
  const _Link_js_1 = require("./_abstract/_Link.js");
@@ -12,7 +12,7 @@ const ButtonTertiary_js_1 = tslib_1.__importDefault(require("./ButtonTertiary.js
12
12
  const GridBlocks = (props) => {
13
13
  const { blocks, twocol, startSeen } = props;
14
14
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
15
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('GridBlocks', [twocol && 'twocol']), ref: ref }, blocks.map(({ title, summary, href, links = [], icon, image }, i) => {
15
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('GridBlocks', [twocol && 'twocol']), ref: ref }, blocks.map(({ title, summary, href, links = [], icon, image }, i) => {
16
16
  const imageProps = icon ? { src: (0, assets_1.getEfnistaknUrl)(icon) } : image;
17
17
  return (react_1.default.createElement("div", { key: i, className: "GridBlocks__item" },
18
18
  imageProps && react_1.default.createElement(_Image_js_1.Image, Object.assign({ className: "GridBlocks__illustration" }, imageProps)),
package/Heading.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Heading = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const sizes = {
8
8
  small: 'small',
9
9
  /** Default value */
@@ -14,7 +14,7 @@ const Heading = (props) => {
14
14
  const { size = 'normal', align, wide, children } = props;
15
15
  const Tag = props.Tag || (props.forceH1 ? 'h1' : 'h2');
16
16
  const suppressWarning = process.env.NODE_ENV !== 'production' && Tag === 'h1' ? true : undefined;
17
- return (react_1.default.createElement(Tag, { "data-dev-forcedh1": suppressWarning, className: (0, getBemClass_1.default)('Heading', [
17
+ return (react_1.default.createElement(Tag, { "data-dev-forcedh1": suppressWarning, className: (0, classUtils_1.modifiedClass)('Heading', [
18
18
  sizes[size],
19
19
  align === 'right' && 'align--' + align,
20
20
  !align && wide && 'wide',
package/IframeBlock.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IframeBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const iframe_resizer_react_1 = tslib_1.__importDefault(require("iframe-resizer-react"));
8
8
  /**
9
9
  * When `height` is undefined or "auto", then Add the following code-snipped to the iframed page:
@@ -15,7 +15,7 @@ const iframe_resizer_react_1 = tslib_1.__importDefault(require("iframe-resizer-r
15
15
  */
16
16
  const IframeBlock = (props) => {
17
17
  const { title, src, framed, compact, scrolling, height = 'auto', align, checkOrigin = false, } = props;
18
- const className = (0, getBemClass_1.default)('IframeBlock', [
18
+ const className = (0, classUtils_1.modifiedClass)('IframeBlock', [
19
19
  framed && 'framed',
20
20
  compact && 'compact',
21
21
  align === 'right' && 'align--' + align,
package/ImageCards.js CHANGED
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImageCards = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const _CardList_js_1 = require("./_abstract/_CardList.js");
8
8
  const seenEffect_js_1 = require("./utils/seenEffect.js");
9
9
  const ImageCards = (props) => {
10
10
  const { background, startSeen } = props, cardListProps = tslib_1.__rest(props, ["background", "startSeen"]);
11
11
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
12
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('ImageCards', background && 'background'), ref: ref },
12
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('ImageCards', background && 'background'), ref: ref },
13
13
  react_1.default.createElement(_CardList_js_1.CardList, Object.assign({}, cardListProps, { bemPrefix: "ImageCards", imgPlaceholder: props.imgPlaceholder || true }))));
14
14
  };
15
15
  exports.ImageCards = ImageCards;
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 getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
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");
@@ -73,7 +73,7 @@ const InfoHero = (props) => {
73
73
  const alignment = align && constants_js_1.aligns[align] ? align : 'right';
74
74
  const blings = (blingType && blingOptions[blingType]) ||
75
75
  blingOptions.waves; // default to `waves`
76
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('InfoHero', 'align--' + alignment) },
76
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('InfoHero', 'align--' + alignment) },
77
77
  react_1.default.createElement("div", { className: "InfoHero__content" },
78
78
  react_1.default.createElement("h1", { className: "InfoHero__title" }, title),
79
79
  titleBlurb && react_1.default.createElement("div", { className: "InfoHero__titleblurb" }, titleBlurb),
@@ -3,13 +3,13 @@ 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 getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
6
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
7
  const seenEffect_js_1 = require("./utils/seenEffect.js");
8
8
  const ButtonTertiary_js_1 = tslib_1.__importDefault(require("./ButtonTertiary.js"));
9
9
  const LabeledTextBlock = (props) => {
10
10
  const { label, summary, wide, buttons = [], startSeen } = props;
11
11
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
12
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('LabeledTextBlock', wide && 'wide'), ref: ref },
12
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('LabeledTextBlock', wide && 'wide'), ref: ref },
13
13
  react_1.default.createElement("h2", { className: "LabeledTextBlock__label" }, label),
14
14
  react_1.default.createElement("div", { className: "LabeledTextBlock__summary" },
15
15
  summary,