@reykjavik/hanna-react 0.10.93 → 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 (184) 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 +14 -1
  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/_mixed_export_resolution_/ReactDropzone.d.ts +3 -3
  81. package/_mixed_export_resolution_/ReactDropzone.js +3 -3
  82. package/esm/AccordionList.d.ts +2 -3
  83. package/esm/AccordionList.js +3 -3
  84. package/esm/Alert.d.ts +2 -3
  85. package/esm/Alert.js +2 -2
  86. package/esm/ArticleCarousel/_ArticleCarouselCard.js +2 -2
  87. package/esm/ArticleCarousel.d.ts +2 -3
  88. package/esm/ArticleMeta.js +2 -2
  89. package/esm/Attention.js +2 -2
  90. package/esm/BasicTable.js +2 -2
  91. package/esm/BgBox.js +2 -2
  92. package/esm/Bling.js +2 -2
  93. package/esm/ButtonBar.js +2 -2
  94. package/esm/ContactBubble.d.ts +2 -3
  95. package/esm/ContactBubble.js +2 -2
  96. package/esm/Datepicker.js +2 -2
  97. package/esm/ExtraLinks.js +3 -3
  98. package/esm/FieldGroup.js +2 -2
  99. package/esm/FileInput.js +3 -3
  100. package/esm/FooterInfo.d.ts +2 -2
  101. package/esm/FooterInfo.js +3 -3
  102. package/esm/Form.js +2 -2
  103. package/esm/FormField.d.ts +2 -3
  104. package/esm/FormField.js +2 -2
  105. package/esm/Gallery.d.ts +2 -3
  106. package/esm/GridBlocks.js +2 -2
  107. package/esm/Heading.js +2 -2
  108. package/esm/IframeBlock.js +2 -2
  109. package/esm/ImageCards.js +2 -2
  110. package/esm/InfoHero.js +2 -2
  111. package/esm/LabeledTextBlock.js +2 -2
  112. package/esm/Layout.d.ts +3 -6
  113. package/esm/Layout.js +7 -13
  114. package/esm/MainMenu/_PrimaryPanel.js +2 -2
  115. package/esm/MainMenu.d.ts +2 -3
  116. package/esm/MainMenu.js +3 -3
  117. package/esm/Multiselect.js +5 -5
  118. package/esm/NameCard.js +2 -2
  119. package/esm/NewsHero.js +2 -2
  120. package/esm/PageFilter.js +2 -2
  121. package/esm/PageHeading.js +2 -2
  122. package/esm/Picture.js +2 -2
  123. package/esm/ProcessOverview.js +2 -2
  124. package/esm/ReadSpeakerPlayer.js +2 -2
  125. package/esm/RowBlock.d.ts +2 -2
  126. package/esm/RowBlock.js +2 -2
  127. package/esm/RowBlockColumn.js +2 -2
  128. package/esm/SearchInput.js +2 -2
  129. package/esm/SearchResults.js +2 -2
  130. package/esm/Selectbox.js +2 -2
  131. package/esm/ShareButtons.d.ts +2 -3
  132. package/esm/Sharpie.js +2 -2
  133. package/esm/SiteSearchAutocomplete.d.ts +1 -1
  134. package/esm/SiteSearchCurtain.js +2 -2
  135. package/esm/SiteSearchInput.d.ts +2 -3
  136. package/esm/Skeleton.js +2 -2
  137. package/esm/SubHeading.js +2 -2
  138. package/esm/Tabs.d.ts +2 -3
  139. package/esm/Tabs.js +2 -2
  140. package/esm/TagPill.js +3 -3
  141. package/esm/TextBlock.js +2 -2
  142. package/esm/TextInput.js +2 -2
  143. package/esm/Tooltip.js +2 -2
  144. package/esm/VSpacer.js +2 -2
  145. package/esm/WizardLayout.d.ts +2 -3
  146. package/esm/WizardLayout.js +2 -2
  147. package/esm/WizardStepper.js +3 -3
  148. package/esm/_abstract/_AbstractCarousel.d.ts +3 -4
  149. package/esm/_abstract/_AbstractCarousel.js +2 -2
  150. package/esm/_abstract/_Block.d.ts +2 -2
  151. package/esm/_abstract/_Block.js +2 -2
  152. package/esm/_abstract/_Button.d.ts +3 -3
  153. package/esm/_abstract/_Button.js +2 -2
  154. package/esm/_abstract/_Image.js +3 -3
  155. package/esm/_abstract/_TogglerGroup.js +2 -2
  156. package/esm/_abstract/_TogglerGroupField.d.ts +2 -2
  157. package/esm/_abstract/_TogglerGroupField.js +2 -2
  158. package/esm/_abstract/_TogglerInput.d.ts +2 -2
  159. package/esm/_abstract/_TogglerInput.js +2 -2
  160. package/esm/_mixed_export_resolution_/ReactDropzone.d.ts +3 -3
  161. package/esm/_mixed_export_resolution_/ReactDropzone.js +3 -3
  162. package/esm/utils/HannaUIState.d.ts +3 -4
  163. package/esm/utils/config.d.ts +11 -1
  164. package/esm/utils/config.js +1 -0
  165. package/esm/utils/types.d.ts +12 -0
  166. package/esm/utils/types.js +1 -0
  167. package/esm/utils/useGetSVGtext.d.ts +1 -1
  168. package/esm/utils/useGetSVGtext.js +2 -2
  169. package/esm/utils/useMenuToggling.d.ts +2 -0
  170. package/esm/utils/useMenuToggling.js +31 -21
  171. package/esm/utils.d.ts +2 -1
  172. package/esm/utils.js +2 -1
  173. package/package.json +5 -4
  174. package/utils/HannaUIState.d.ts +3 -4
  175. package/utils/config.d.ts +11 -1
  176. package/utils/config.js +1 -0
  177. package/utils/types.d.ts +12 -0
  178. package/utils/types.js +2 -0
  179. package/utils/useGetSVGtext.d.ts +1 -1
  180. package/utils/useGetSVGtext.js +2 -2
  181. package/utils/useMenuToggling.d.ts +2 -0
  182. package/utils/useMenuToggling.js +31 -21
  183. package/utils.d.ts +2 -1
  184. package/utils.js +5 -1
package/TagPill.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TagPill = 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 _Button_js_1 = require("./_abstract/_Button.js");
8
8
  const colors = {
9
9
  normal: '',
@@ -23,10 +23,10 @@ const TagPill = (props) => {
23
23
  'must have an `onRemove` handler defined');
24
24
  const modifiers = [modifier, large && 'large', colors[color]];
25
25
  const removeBtn = removable && (react_1.default.createElement("button", { className: "TagPill__remove", onClick: onRemove && (() => onRemove()), "aria-label": removeLabelLong, type: "button" }, removeLabel));
26
- return isStatic ? (react_1.default.createElement("span", Object.assign({ className: (0, getBemClass_1.default)('TagPill', modifiers) }, buttonProps),
26
+ return isStatic ? (react_1.default.createElement("span", Object.assign({ className: (0, classUtils_1.modifiedClass)('TagPill', modifiers) }, buttonProps),
27
27
  label,
28
28
  " ",
29
- removeBtn)) : onRemove ? (react_1.default.createElement("span", { className: (0, getBemClass_1.default)('TagPill', modifiers) },
29
+ removeBtn)) : onRemove ? (react_1.default.createElement("span", { className: (0, classUtils_1.modifiedClass)('TagPill', modifiers) },
30
30
  react_1.default.createElement(_Button_js_1.Button, Object.assign({ bem: "TagPill__button" }, buttonProps), label),
31
31
  ' ',
32
32
  removeBtn)) : (react_1.default.createElement(_Button_js_1.Button, Object.assign({ bem: "TagPill" }, buttonProps, { modifier: modifiers }),
package/TextBlock.js CHANGED
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TextBlock = 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 TextBlock = (props) => {
9
9
  const { children, align, labelled, wide, small, startSeen } = props;
10
10
  const rightAligned = align === 'right' || labelled;
11
11
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
12
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('TextBlock', [
12
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('TextBlock', [
13
13
  labelled && 'labelled',
14
14
  rightAligned && 'align--right',
15
15
  wide && !rightAligned && 'wide',
package/TextInput.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TextInput = 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 FormField_js_1 = tslib_1.__importDefault(require("./FormField.js"));
8
8
  const TextInput = (props) => {
9
9
  var _a;
@@ -30,7 +30,7 @@ const TextInput = (props) => {
30
30
  setHasValue(true);
31
31
  }
32
32
  }, []);
33
- return (react_1.default.createElement(FormField_js_1.default, { className: (0, getBemClass_1.default)('TextInput', modifiers, className), ssr: ssr, small: small, label: label, empty: empty, filled: filled, assistText: assistText, hideLabel: hideLabel, disabled: disabled, readOnly: readOnly, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, id: id, renderInput: (className, inputProps, addFocusProps) => multiline ? (react_1.default.createElement("textarea", Object.assign({ className: className.input, onChange: _onChange }, inputProps, addFocusProps(inputElementProps), { ref: inputRef }))) : (react_1.default.createElement("input", Object.assign({ className: className.input, onChange: _onChange, type: type }, inputProps, addFocusProps(inputElementProps), { ref: inputRef }))) }));
33
+ return (react_1.default.createElement(FormField_js_1.default, { className: (0, classUtils_1.modifiedClass)('TextInput', modifiers, className), ssr: ssr, small: small, label: label, empty: empty, filled: filled, assistText: assistText, hideLabel: hideLabel, disabled: disabled, readOnly: readOnly, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, id: id, renderInput: (className, inputProps, addFocusProps) => multiline ? (react_1.default.createElement("textarea", Object.assign({ className: className.input, onChange: _onChange }, inputProps, addFocusProps(inputElementProps), { ref: inputRef }))) : (react_1.default.createElement("input", Object.assign({ className: className.input, onChange: _onChange, type: type }, inputProps, addFocusProps(inputElementProps), { ref: inputRef }))) }));
34
34
  };
35
35
  exports.TextInput = TextInput;
36
36
  exports.default = exports.TextInput;
package/Tooltip.js CHANGED
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const react_2 = require("@floating-ui/react");
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 getSide = (placement) => placement.split('-')[0];
10
10
  const Tooltip = (props) => {
11
11
  const { text, label, iconOnly } = props;
@@ -54,7 +54,7 @@ const Tooltip = (props) => {
54
54
  '--tooltip-arrow-pos-x': `${arrowX}px`,
55
55
  '--tooltip-arrow-pos-y': `${arrowY}px`,
56
56
  } },
57
- react_1.default.createElement("summary", { className: (0, getBemClass_1.default)('Tooltip__trigger', iconOnly && 'icononly'), ref: reference }, label),
57
+ react_1.default.createElement("summary", { className: (0, classUtils_1.modifiedClass)('Tooltip__trigger', iconOnly && 'icononly'), ref: reference }, label),
58
58
  react_1.default.createElement("div", { className: "Tooltip__content", onClick: (e) => e.stopPropagation(), ref: floating },
59
59
  x !== null && (react_1.default.createElement("div", { "data-floating-ui-hack-plz-ignore": "", style: { position: 'absolute', display: 'none' }, ref: arrowRef })),
60
60
  text)));
package/VSpacer.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VSpacer = 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
  none: 'none',
9
9
  small: 'small',
@@ -35,7 +35,7 @@ const VSpacer = (props) => {
35
35
  bottomVal = undefined;
36
36
  }
37
37
  }
38
- const className = (0, getBemClass_1.default)('VSpacer', [
38
+ const className = (0, classUtils_1.modifiedClass)('VSpacer', [
39
39
  sizeVal,
40
40
  topVal && 'top--' + topVal,
41
41
  bottomVal && 'bottom--' + bottomVal,
package/WizardLayout.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import type { HannaColorTheme } from '@reykjavik/hanna-css';
3
- import { SSRSupport } from './utils.js';
3
+ import { SSRSupportProps } from './utils.js';
4
4
  type WizardLayoutProps = {
5
5
  wizardStepper?: ReactNode | false;
6
6
  wizardFooter?: ReactNode | false;
@@ -8,8 +8,7 @@ type WizardLayoutProps = {
8
8
  siteName?: string;
9
9
  logoLink?: string;
10
10
  globalAlerts?: ReactNode;
11
- ssr?: SSRSupport;
12
11
  children?: ReactNode;
13
- };
12
+ } & SSRSupportProps;
14
13
  export declare const WizardLayout: (props: WizardLayoutProps) => JSX.Element;
15
14
  export default WizardLayout;
package/WizardLayout.js CHANGED
@@ -12,7 +12,7 @@ const WizardLayout = (props) => {
12
12
  (0, useScrollbarWidthCSSVar_js_1.useScrollbarWidthCSSVar)();
13
13
  const {
14
14
  // ssr,
15
- wizardStepper, wizardFooter, children, colorTheme, logoLink = '/', siteName = 'Reykjavík', globalAlerts, } = props;
15
+ wizardStepper, wizardFooter, children, colorTheme, logoLink = '/', siteName = '', globalAlerts, } = props;
16
16
  const isBrowser = (0, utils_js_1.useIsBrowserSide)( /* ssr */);
17
17
  return (react_1.default.createElement("div", { className: "WizardLayout", "data-sprinkled": isBrowser, "data-color-theme": colorTheme },
18
18
  globalAlerts && (react_1.default.createElement("div", { className: "WizardLayout__alerts", role: "alert" }, globalAlerts)),
@@ -20,7 +20,7 @@ const WizardLayout = (props) => {
20
20
  react_1.default.createElement("div", { className: "WizardLayout__header", role: "banner" },
21
21
  react_1.default.createElement(_Link_js_1.Link, { className: "WizardLayout__header__logo", href: logoLink },
22
22
  ' ',
23
- react_1.default.createElement(_Image_js_1.Image, { className: undefined, inline: true, src: (0, assets_1.getAssetUrl)('reykjavik-logo.svg') }),
23
+ react_1.default.createElement(_Image_js_1.Image, { className: undefined, inline: true, src: (0, assets_1.getAssetUrl)('reykjavik-logo.svg'), altText: "Reykjav\u00EDk" }),
24
24
  ' ',
25
25
  siteName,
26
26
  ' '),
package/WizardStepper.js CHANGED
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WizardStepper = 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 WizardStepper = (props) => {
8
8
  const { steps, activeStep = -1, allowForwardSkip, disableBacktrack, onClick } = props;
9
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)('WizardStepper', activeStep === -1 && 'preview') }, steps.map((step, i) => {
9
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)('WizardStepper', activeStep === -1 && 'preview') }, steps.map((step, i) => {
10
10
  const { clickable, done, neutral } = step;
11
11
  const label = step.label || '…';
12
- const stepClass = (0, getBemClass_1.default)('WizardStepper__step', [
12
+ const stepClass = (0, classUtils_1.modifiedClass)('WizardStepper__step', [
13
13
  (done || (done == null && i < activeStep)) && 'done',
14
14
  neutral && 'neutral',
15
15
  ]);
@@ -1,14 +1,13 @@
1
1
  import { ReactElement, ReactNode } from 'react';
2
- import { BemProps } from '@hugsmidjan/react/types';
3
2
  import { EitherObj } from '@reykjavik/hanna-utils';
4
- import { SSRSupport } from '../utils.js';
3
+ import { SSRSupportProps } from '../utils.js';
5
4
  import { SeenProp } from '../utils/seenEffect.js';
5
+ import { BemProps } from '../utils/types.js';
6
6
  export type CarouselProps<I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}> = {
7
7
  className?: string;
8
- ssr?: SSRSupport;
9
8
  /** @deprecated Ingored because never used (Will be removed in v0.11) */
10
9
  scrollRight?: boolean;
11
- } & EitherObj<{
10
+ } & SSRSupportProps & EitherObj<{
12
11
  items: Array<I>;
13
12
  Component: (props: P extends undefined ? I : I & P) => ReactElement | null;
14
13
  ComponentProps?: P;
@@ -4,10 +4,10 @@ exports.AbstractCarousel = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const A_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/A"));
7
+ const classUtils_1 = require("@hugsmidjan/qj/classUtils");
7
8
  const debounce_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/debounce"));
8
9
  const focusElm_1 = require("@hugsmidjan/qj/focusElm");
9
10
  const throttle_1 = tslib_1.__importDefault(require("@hugsmidjan/qj/throttle"));
10
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
11
11
  const hanna_utils_1 = require("@reykjavik/hanna-utils");
12
12
  const CarouselStepper_js_1 = tslib_1.__importDefault(require("../CarouselStepper.js"));
13
13
  const utils_js_1 = require("../utils.js");
@@ -96,7 +96,7 @@ const AbstractCarousel = (props) => {
96
96
  items.map((item, i) => (
97
97
  // @ts-expect-error (Can't be arsed...)
98
98
  react_1.default.createElement(Component, Object.assign({ key: i }, ComponentProps, item))))));
99
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)(bem, modifier, props.className), ref: outerRef, "data-sprinkled": isBrowser },
99
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)(bem, modifier, props.className), ref: outerRef, "data-sprinkled": isBrowser },
100
100
  title && react_1.default.createElement("h2", { className: bem + '__title' }, title),
101
101
  isBrowser ? (react_1.default.createElement("div", { className: bem + '__itemlist-wrapper' },
102
102
  itemList,
@@ -1,5 +1,5 @@
1
- import { BemPropsModifier } from '@hugsmidjan/react/types';
2
1
  import { SeenProp } from '../utils/seenEffect.js';
2
+ import { BemModifierProps } from '../utils/types.js';
3
3
  import { ButtonProps } from './_Button.js';
4
4
  import { ImageProps } from './_Image.js';
5
5
  export type BlockItem = {
@@ -15,7 +15,7 @@ export type ContentBlock = {
15
15
  content: Array<BlockItem>;
16
16
  image?: undefined;
17
17
  } & SeenProp;
18
- export type BlockProps = BemPropsModifier & (ContentBlock | ContentImageBlock);
18
+ export type BlockProps = BemModifierProps & (ContentBlock | ContentImageBlock);
19
19
  export declare const Block: (props: BlockProps & {
20
20
  bem: string;
21
21
  }) => JSX.Element;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Block = 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 _Button_js_1 = require("./_Button.js");
9
9
  const _Image_js_1 = require("./_Image.js");
@@ -11,7 +11,7 @@ const Block = (props) => {
11
11
  const { image, modifier, bem, content, startSeen } = props;
12
12
  const [ref] = (0, seenEffect_js_1.useSeenEffect)(startSeen);
13
13
  const contentItems = Array.isArray(content) ? content : [content];
14
- return (react_1.default.createElement("div", { className: (0, getBemClass_1.default)(bem, modifier), ref: ref },
14
+ return (react_1.default.createElement("div", { className: (0, classUtils_1.modifiedClass)(bem, modifier), ref: ref },
15
15
  contentItems.map(({ title, summary, buttons = [] }, i) => {
16
16
  const hasSummary = summary && (typeof summary !== 'string' || !!summary.trim());
17
17
  return (react_1.default.createElement("div", { key: i, className: `${bem}__content` },
@@ -1,14 +1,14 @@
1
1
  import { ReactNode } from 'react';
2
- import { BemProps, BemPropsModifier } from '@hugsmidjan/react/types';
2
+ import { BemModifierProps, BemProps } from '../utils/types.js';
3
3
  type ButtonElmProps = {
4
4
  href?: never;
5
- } & BemPropsModifier & Omit<JSX.IntrinsicElements['button'], 'className' | 'style'>;
5
+ } & BemModifierProps & Omit<JSX.IntrinsicElements['button'], 'className' | 'style'>;
6
6
  type AnchorElmProps = {
7
7
  href: string;
8
8
  type?: never;
9
9
  name?: never;
10
10
  value?: never;
11
- } & BemPropsModifier & Omit<JSX.IntrinsicElements['a'], 'className' | 'style'>;
11
+ } & BemModifierProps & Omit<JSX.IntrinsicElements['a'], 'className' | 'style'>;
12
12
  export type ButtonProps = {
13
13
  /** Label takes preference over `children` */
14
14
  label?: string | JSX.Element;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Button = 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 _Link_js_1 = require("./_Link.js");
8
8
  // ---------------------------------------------------------------------------
9
9
  const sizes = {
@@ -28,7 +28,7 @@ const icons = {
28
28
  const Button = (props) => {
29
29
  const { bem, small, size = 'normal', modifier, children, variant = 'normal', icon = 'none', label = children } = props, buttonProps = tslib_1.__rest(props, ["bem", "small", "size", "modifier", "children", "variant", "icon", "label"]);
30
30
  const className = bem &&
31
- (0, getBemClass_1.default)(bem, [modifier, variants[variant], sizes[size], navigationFlags[icon]]);
31
+ (0, classUtils_1.modifiedClass)(bem, [modifier, variants[variant], sizes[size], navigationFlags[icon]]);
32
32
  const iconProp = icons[icon] && { 'data-icon': icons[icon] };
33
33
  if (buttonProps.href != null) {
34
34
  return (react_1.default.createElement(_Link_js_1.Link, Object.assign({ className: className }, buttonProps, { style: undefined }, iconProp), label));
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Image = 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 useGetSVGtext_js_1 = require("../utils/useGetSVGtext.js");
8
8
  // eslint-disable-next-line complexity
9
9
  const Image = (props) => {
@@ -11,9 +11,9 @@ const Image = (props) => {
11
11
  const _src = (sources.length && preloadSrc) || src;
12
12
  const imageSrc = _src || (sources[0] != null ? sources[0].srcset.split(' ')[0] : undefined);
13
13
  const imgLoading = preloadSrc ? 'eager' : 'lazy';
14
- const inlineSvg = (0, useGetSVGtext_js_1.useGetSVGtext)(inline ? imageSrc : undefined);
14
+ const inlineSvg = (0, useGetSVGtext_js_1.useGetSVGtext)(inline ? imageSrc : undefined, altText);
15
15
  if (!imageSrc) {
16
- return placeholder ? (react_1.default.createElement("span", { className: className && (0, getBemClass_1.default)(className, 'missing') }, placeholder !== true && placeholder())) : null;
16
+ return placeholder ? (react_1.default.createElement("span", { className: className && (0, classUtils_1.modifiedClass)(className, 'missing') }, placeholder !== true && placeholder())) : null;
17
17
  }
18
18
  if (inline && inlineSvg) {
19
19
  const __html = inlineSvg.imageSrc === imageSrc ? inlineSvg.code : '';
@@ -4,7 +4,7 @@ exports.TogglerGroup = 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 utils_js_1 = require("../utils.js");
9
9
  const TogglerGroup = (props) => {
10
10
  const {
@@ -18,7 +18,7 @@ const TogglerGroup = (props) => {
18
18
  ? _options.map((option) => ({ value: option }))
19
19
  : _options;
20
20
  }, [props.options]);
21
- return (react_1.default.createElement("ul", { className: (0, getBemClass_1.default)(bem, null, className), role: "group", "aria-labelledby": props['aria-labelledby'], "aria-describedby": props['aria-describedby'], "aria-required": props.required }, options.map((option, i) => {
21
+ return (react_1.default.createElement("ul", { className: (0, classUtils_1.modifiedClass)(bem, null, className), role: "group", "aria-labelledby": props['aria-labelledby'], "aria-describedby": props['aria-describedby'], "aria-required": props.required }, options.map((option, i) => {
22
22
  const isDisabled = option.disabled != null
23
23
  ? option.disabled
24
24
  : disabled && typeof disabled !== 'boolean'
@@ -1,6 +1,6 @@
1
1
  import { ReactElement } from 'react';
2
- import { BemPropsModifier } from '@hugsmidjan/react/types';
3
2
  import { FormFieldGroupWrappingProps } from '../FormField.js';
3
+ import { BemModifierProps } from '../utils/types.js';
4
4
  import { TogglerGroupOption, TogglerGroupOptions, TogglerGroupProps } from './_TogglerGroup.js';
5
5
  import { TogglerInputProps } from './_TogglerInput.js';
6
6
  export type TogglerGroupFieldProps<T = 'default'> = {
@@ -12,7 +12,7 @@ type _TogglerGroupFieldProps = {
12
12
  value?: string | ReadonlyArray<string>;
13
13
  defaultValue?: string | ReadonlyArray<string>;
14
14
  bem: string;
15
- } & BemPropsModifier;
15
+ } & BemModifierProps;
16
16
  export type TogglerGroupFieldOption<T = 'default'> = TogglerGroupOption<T>;
17
17
  export type TogglerGroupFieldOptions<T = 'default'> = TogglerGroupOptions<T>;
18
18
  export declare const TogglerGroupField: (props: TogglerGroupFieldProps & _TogglerGroupFieldProps) => JSX.Element;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TogglerGroupField = 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 FormField_js_1 = tslib_1.__importDefault(require("../FormField.js"));
8
8
  const _TogglerGroup_js_1 = require("./_TogglerGroup.js");
9
9
  const TogglerGroupField = (props) => {
@@ -14,7 +14,7 @@ const TogglerGroupField = (props) => {
14
14
  : typeof defaultValue === 'string'
15
15
  ? [defaultValue]
16
16
  : defaultValue, [defaultValue]);
17
- return (react_1.default.createElement(FormField_js_1.default, { className: (0, getBemClass_1.default)(bem, modifier, className), group: true, label: label, LabelTag: LabelTag, assistText: assistText, hideLabel: hideLabel, disabled: !!disabled, readOnly: readOnly, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, id: id, renderInput: (className, inputProps) => {
17
+ return (react_1.default.createElement(FormField_js_1.default, { className: (0, classUtils_1.modifiedClass)(bem, modifier, className), group: true, label: label, LabelTag: LabelTag, assistText: assistText, hideLabel: hideLabel, disabled: !!disabled, readOnly: readOnly, invalid: invalid, errorMessage: errorMessage, required: required, reqText: reqText, id: id, renderInput: (className, inputProps) => {
18
18
  return (react_1.default.createElement(_TogglerGroup_js_1.TogglerGroup, Object.assign({ bem: className.options }, inputProps, togglerGroupProps, { disabled: disabled, value: _value, defaultValue: _defaultValue, Toggler: Toggler })));
19
19
  } }));
20
20
  };
@@ -1,4 +1,4 @@
1
- import { BemPropsModifier } from '@hugsmidjan/react/types';
1
+ import { BemModifierProps } from '../utils/types.js';
2
2
  export type TogglerInputProps = {
3
3
  label: string | JSX.Element;
4
4
  children?: never;
@@ -15,7 +15,7 @@ export type TogglerInputProps = {
15
15
  Wrapper?: 'div' | 'li';
16
16
  wrapperProps?: JSX.IntrinsicElements['div'];
17
17
  inputProps?: JSX.IntrinsicElements['input'];
18
- } & BemPropsModifier & Omit<JSX.IntrinsicElements['input'], 'type'>;
18
+ } & BemModifierProps & Omit<JSX.IntrinsicElements['input'], 'type'>;
19
19
  type _TogglerInputProps = {
20
20
  bem: string;
21
21
  type: 'radio' | 'checkbox';
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TogglerInput = 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 hooks_1 = require("@hugsmidjan/react/hooks");
7
- const getBemClass_1 = tslib_1.__importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
8
  const TogglerInput = (props) => {
9
9
  const { bem, modifier, className, label, invalid, errorMessage, Wrapper = 'div', required, reqText, type, id, innerWrap, wrapperProps, inputProps } = props, restInputProps = tslib_1.__rest(props, ["bem", "modifier", "className", "label", "invalid", "errorMessage", "Wrapper", "required", "reqText", "type", "id", "innerWrap", "wrapperProps", "inputProps"]);
10
10
  const domid = (0, hooks_1.useDomid)(id);
@@ -19,7 +19,7 @@ const TogglerInput = (props) => {
19
19
  " ",
20
20
  label,
21
21
  ' '));
22
- return (react_1.default.createElement(Wrapper, Object.assign({}, wrapperProps, { className: (0, getBemClass_1.default)(bem, modifier, className) }),
22
+ return (react_1.default.createElement(Wrapper, Object.assign({}, wrapperProps, { className: (0, classUtils_1.modifiedClass)(bem, modifier, className) }),
23
23
  react_1.default.createElement("input", Object.assign({ className: bem + '__input', type: type, id: domid, "aria-invalid": invalid || !!errorMessage || undefined, "aria-describedby": errorId }, restInputProps, inputProps, (readOnly && { disabled: true }))),
24
24
  ' ',
25
25
  react_1.default.createElement("label", { className: bem + '__label', htmlFor: domid },
@@ -1,3 +1,3 @@
1
- import * as reactDropzonePkg from 'react-dropzone';
2
- export declare const ReactDropzone: typeof reactDropzonePkg.default;
3
- export declare const useDropzone: typeof reactDropzonePkg.useDropzone;
1
+ import * as _pkg from 'react-dropzone';
2
+ export declare const ReactDropzone: typeof _pkg.default;
3
+ export declare const useDropzone: typeof _pkg.useDropzone;
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.useDropzone = exports.ReactDropzone = void 0;
5
5
  const tslib_1 = require("tslib");
6
- const reactDropzonePkg = tslib_1.__importStar(require("react-dropzone"));
7
- const _default = reactDropzonePkg.default;
6
+ const _pkg = tslib_1.__importStar(require("react-dropzone"));
8
7
  // This defensive code is required to get around the fact that react-dropzone
9
8
  // mixes default and named exports.
10
9
  // Depending whether this module is run as ESM or CJS, then `_default` may be
11
10
  // either the actual default export or an object with a default property.
12
11
  // Rejoice in the woeful borderlands of modern ESM and legacy CJS interop.
13
- exports.ReactDropzone = 'default' in _default ? _default.default : _default;
12
+ const reactDropzonePkg = 'default' in _pkg.default ? _pkg.default : _pkg;
13
+ exports.ReactDropzone = reactDropzonePkg.default;
14
14
  exports.useDropzone = reactDropzonePkg.useDropzone;
@@ -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;
@@ -1,6 +1,6 @@
1
1
  import React, { useRef } from 'react';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
2
3
  import { useDomid } from '@hugsmidjan/react/hooks';
3
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
4
4
  import { useSeenEffect } from './utils/seenEffect.js';
5
5
  import { useIsBrowserSide, useMixedControlState } from './utils.js';
6
6
  const AccordionListItem = (props) => {
@@ -9,7 +9,7 @@ const AccordionListItem = (props) => {
9
9
  const domid = useDomid();
10
10
  const isBrowser = useIsBrowserSide(ssr);
11
11
  const itemDisabled = (isBrowser && disabled) || !content;
12
- return (React.createElement("div", { className: getBemClass('AccordionList__item', [itemDisabled && 'disabled']), id: id, "data-start-open": defaultOpen.current, "data-sprinkled": isBrowser },
12
+ return (React.createElement("div", { className: modifiedClass('AccordionList__item', [itemDisabled && 'disabled']), id: id, "data-start-open": defaultOpen.current, "data-sprinkled": isBrowser },
13
13
  React.createElement("h3", { className: "AccordionList__title" }, isBrowser ? (React.createElement("button", { type: "button", className: "AccordionList__button", "aria-controls": domid, "aria-expanded": open || undefined, onClick: onToggle, disabled: itemDisabled }, title)) : (title)),
14
14
  React.createElement("div", { id: isBrowser && domid, className: "AccordionList__content", hidden: isBrowser && (!open || itemDisabled) }, content)));
15
15
  };
@@ -27,6 +27,6 @@ export const AccordionList = (props) => {
27
27
  return newOpen;
28
28
  });
29
29
  };
30
- return (React.createElement("div", { className: getBemClass('AccordionList', [wide && 'wide']), ref: ref }, items.map((item, i) => (React.createElement(AccordionListItem, Object.assign({ key: i }, item, { ssr: ssr, open: open.includes(i), onToggle: () => onToggle(i), defaultOpen: defaultOpen && defaultOpen.includes(i) }))))));
30
+ return (React.createElement("div", { className: modifiedClass('AccordionList', [wide && 'wide']), ref: ref }, items.map((item, i) => (React.createElement(AccordionListItem, Object.assign({ key: i }, item, { ssr: ssr, open: open.includes(i), onToggle: () => onToggle(i), defaultOpen: defaultOpen && defaultOpen.includes(i) }))))));
31
31
  };
32
32
  export default AccordionList;
package/esm/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/esm/Alert.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useEffect, useRef, useState, } from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  import { getTexts } from '@reykjavik/hanna-utils/i18n';
4
4
  import { Button } from './_abstract/_Button.js';
5
5
  import { isPreact } from './utils/env.js';
@@ -77,7 +77,7 @@ export const Alert = (props) => {
77
77
  };
78
78
  }
79
79
  }, [closeAlert, autoClosing, autoClose]);
80
- return (React.createElement("div", Object.assign({ className: getBemClass('Alert', [
80
+ return (React.createElement("div", Object.assign({ className: modifiedClass('Alert', [
81
81
  !!alertTypes[type] && type,
82
82
  closable && 'closable',
83
83
  ]), role: "alert", hidden: !open || undefined }, autoClosingProps),
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  import { getIllustrationUrl } from '@reykjavik/hanna-utils/assets';
4
4
  import { Image } from '../_abstract/_Image.js';
5
5
  import { Link } from '../_abstract/_Link.js';
@@ -11,7 +11,7 @@ export const ArticleCarouselCard = (props) => {
11
11
  return (React.createElement("div", { className: "ArticleCarouselCard", "data-color": color && colorFamilies[color], "data-color-theme": !color ? theme && themeOptions[theme] : undefined },
12
12
  React.createElement(Link, { className: "ArticleCarouselCard__link", href: href, target: target },
13
13
  ' ',
14
- React.createElement(Image, Object.assign({ placeholder: true, className: getBemClass('ArticleCarouselCard__illustration', photo && 'photo') }, imageProps)),
14
+ React.createElement(Image, Object.assign({ placeholder: true, className: modifiedClass('ArticleCarouselCard__illustration', photo && 'photo') }, imageProps)),
15
15
  React.createElement("h3", { className: "ArticleCarouselCard__title" }, title),
16
16
  ' '),
17
17
  ' ',
@@ -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;
@@ -1,12 +1,12 @@
1
1
  import React, { Fragment } from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  import { Link } from './_abstract/_Link.js';
4
4
  export const ArticleMeta = (props) => {
5
5
  const { items, small } = props;
6
6
  if (items.length === 0) {
7
7
  return null;
8
8
  }
9
- return (React.createElement("div", { className: getBemClass('ArticleMeta', small && 'small') }, items.map(({ label, href }, i) => (React.createElement(Fragment, { key: i },
9
+ return (React.createElement("div", { className: modifiedClass('ArticleMeta', small && 'small') }, items.map(({ label, href }, i) => (React.createElement(Fragment, { key: i },
10
10
  href == null ? (React.createElement("span", { className: "ArticleMeta__item" },
11
11
  " ",
12
12
  label,
package/esm/Attention.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
- export const Attention = (props) => (React.createElement("div", { className: getBemClass('Attention', props.small && 'small') }, props.children));
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
+ export const Attention = (props) => (React.createElement("div", { className: modifiedClass('Attention', props.small && 'small') }, props.children));
4
4
  export default Attention;
package/esm/BasicTable.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
2
3
  import Table from '@hugsmidjan/react/Table';
3
4
  import TableWrapper from '@hugsmidjan/react/TableWrapper';
4
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
5
5
  import { useSeenEffect } from './utils/seenEffect.js';
6
6
  export const BasicTable = (props) => {
7
7
  const { cols, caption, thead, tfoot, align, fullWidth, startSeen } = props;
@@ -16,7 +16,7 @@ export const BasicTable = (props) => {
16
16
  fullWidth && 'BasicTable--fullwidth',
17
17
  align === 'right' && !fullWidth && 'BasicTable--align--' + align,
18
18
  ], wrapperRef: ref },
19
- React.createElement(Table, Object.assign({ className: getBemClass('BasicTable', [
19
+ React.createElement(Table, Object.assign({ className: modifiedClass('BasicTable', [
20
20
  props.compact && 'compact',
21
21
  modifier && modifier,
22
22
  ]) }, {
package/esm/BgBox.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  import { getEffectAttr, useSeenEffect, } from './utils/seenEffect.js';
4
4
  export const BgBox = (props) => {
5
5
  const { className, children, effectType, startSeen } = props;
6
6
  const [ref] = useSeenEffect(startSeen);
7
- return (React.createElement("div", Object.assign({ className: getBemClass('BgBox', undefined, className), ref: ref }, getEffectAttr(effectType)), children));
7
+ return (React.createElement("div", Object.assign({ className: modifiedClass('BgBox', undefined, className), ref: ref }, getEffectAttr(effectType)), children));
8
8
  };
9
9
  export default BgBox;
package/esm/Bling.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  import { getBlingUrl } from '@reykjavik/hanna-utils/assets';
4
4
  import { useGetSVGtext } from './utils/useGetSVGtext.js';
5
5
  const colors = {
@@ -33,7 +33,7 @@ export const Bling = (props) => {
33
33
  const { align, vertical, color, overlay, type, blingUrl, parent, className } = props;
34
34
  const imageUrl = type ? getBlingUrl(type) : blingUrl;
35
35
  const inlineSvg = useGetSVGtext(imageUrl);
36
- return (React.createElement("div", { className: getBemClass('Bling', [
36
+ return (React.createElement("div", { className: modifiedClass('Bling', [
37
37
  'align--' + (align && align in aligns ? align : 'left'),
38
38
  vertical && vertical in valigns && 'vertical--' + vertical,
39
39
  color && color in colors && 'color--' + color,
package/esm/ButtonBar.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import getBemClass from '@hugsmidjan/react/utils/getBemClass';
2
+ import { modifiedClass } from '@hugsmidjan/qj/classUtils';
3
3
  export const ButtonBar = (props) => {
4
4
  const { align, children } = props;
5
- return (React.createElement("div", { className: getBemClass('ButtonBar', align === 'right' && 'align--right') }, children));
5
+ return (React.createElement("div", { className: modifiedClass('ButtonBar', align === 'right' && 'align--right') }, children));
6
6
  };
7
7
  /** A Splitter token to use directly inside <ButtonBar/> wrappers */
8
8
  ButtonBar.Split = () => React.createElement("span", { className: "ButtonBar__split" });