@reykjavik/hanna-react 0.10.112 → 0.10.113

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 (72) hide show
  1. package/Alert.js +1 -1
  2. package/BasicTable.js +4 -4
  3. package/CHANGELOG.md +28 -1
  4. package/ContactBubble.js +8 -3
  5. package/Datepicker.d.ts +1 -0
  6. package/Datepicker.js +51 -13
  7. package/{_abstract/_FocusTrap.d.ts → FocusTrap.d.ts} +5 -1
  8. package/{_abstract/_FocusTrap.js → FocusTrap.js} +5 -1
  9. package/Layout.d.ts +7 -3
  10. package/Layout.js +7 -26
  11. package/MainMenu.d.ts +52 -20
  12. package/MainMenu.js +27 -6
  13. package/MainMenu2.d.ts +114 -0
  14. package/MainMenu2.js +235 -0
  15. package/MobileMenuToggler/_useMobileMenuToggling.d.ts +21 -0
  16. package/{utils/useMenuToggling.js → MobileMenuToggler/_useMobileMenuToggling.js} +34 -14
  17. package/MobileMenuToggler.d.ts +21 -0
  18. package/MobileMenuToggler.js +43 -0
  19. package/Multiselect.js +13 -6
  20. package/TagPill.d.ts +2 -0
  21. package/_abstract/_AbstractModal.js +3 -3
  22. package/_abstract/_Button.d.ts +3 -3
  23. package/_abstract/_Button.js +3 -3
  24. package/_abstract/_Table.d.ts +3 -3
  25. package/_abstract/_Table.js +1 -1
  26. package/esm/Alert.js +1 -1
  27. package/esm/BasicTable.js +4 -4
  28. package/esm/ContactBubble.js +8 -3
  29. package/esm/Datepicker.d.ts +1 -0
  30. package/esm/Datepicker.js +51 -13
  31. package/esm/{_abstract/_FocusTrap.d.ts → FocusTrap.d.ts} +5 -1
  32. package/esm/{_abstract/_FocusTrap.js → FocusTrap.js} +5 -1
  33. package/esm/Layout.d.ts +7 -3
  34. package/esm/Layout.js +8 -27
  35. package/esm/MainMenu.d.ts +52 -20
  36. package/esm/MainMenu.js +27 -7
  37. package/esm/MainMenu2.d.ts +114 -0
  38. package/esm/MainMenu2.js +230 -0
  39. package/esm/MobileMenuToggler/_useMobileMenuToggling.d.ts +21 -0
  40. package/esm/{utils/useMenuToggling.js → MobileMenuToggler/_useMobileMenuToggling.js} +32 -13
  41. package/esm/MobileMenuToggler.d.ts +21 -0
  42. package/esm/MobileMenuToggler.js +37 -0
  43. package/esm/Multiselect.js +12 -5
  44. package/esm/TagPill.d.ts +2 -0
  45. package/esm/_abstract/_AbstractModal.js +1 -1
  46. package/esm/_abstract/_Button.d.ts +3 -3
  47. package/esm/_abstract/_Button.js +3 -3
  48. package/esm/_abstract/_Table.d.ts +3 -3
  49. package/esm/_abstract/_Table.js +1 -1
  50. package/esm/index.d.ts +3 -0
  51. package/esm/utils/a11yHelpers.d.ts +2 -0
  52. package/esm/utils/a11yHelpers.js +11 -0
  53. package/esm/utils/types.d.ts +4 -0
  54. package/esm/utils/useFormatMonitor.d.ts +4 -11
  55. package/esm/utils/useFormatMonitor.js +0 -10
  56. package/esm/utils.d.ts +7 -2
  57. package/esm/utils.js +8 -2
  58. package/index.d.ts +3 -0
  59. package/package.json +13 -1
  60. package/utils/a11yHelpers.d.ts +2 -0
  61. package/utils/a11yHelpers.js +15 -0
  62. package/utils/types.d.ts +4 -0
  63. package/utils/useFormatMonitor.d.ts +4 -11
  64. package/utils/useFormatMonitor.js +0 -10
  65. package/utils.d.ts +7 -2
  66. package/utils.js +9 -5
  67. package/esm/utils/HannaUIState.d.ts +0 -7
  68. package/esm/utils/HannaUIState.js +0 -7
  69. package/esm/utils/useMenuToggling.d.ts +0 -10
  70. package/utils/HannaUIState.d.ts +0 -7
  71. package/utils/HannaUIState.js +0 -11
  72. package/utils/useMenuToggling.d.ts +0 -10
package/esm/utils.d.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import type { ElementRef } from 'react';
2
2
  export * from './utils/browserSide.js';
3
3
  export * from './utils/config.js';
4
- export { HannaUIState, useHannaUIState } from './utils/HannaUIState.js';
5
4
  export * from './utils/useDidChange.js';
6
5
  export * from './utils/useDomid.js';
7
6
  export * from './utils/useFormatMonitor.js';
8
7
  export * from './utils/useGetSVGtext.js';
9
- export * from './utils/useMenuToggling.js';
10
8
  export * from './utils/useMixedControlState.js';
11
9
  export * from './utils/useScrollbarWidthCSSVar.js';
12
10
  /**
@@ -38,3 +36,10 @@ export type MissingWrapperElmProps = {
38
36
  */
39
37
  wrapperProps?: undefined;
40
38
  };
39
+ export {
40
+ /** @deprecated (Will be removed in v0.11) */
41
+ MobileMenuStateProvider as HannaUIState,
42
+ /** @deprecated (Will be removed in v0.11) */
43
+ useMobileMenuTogglerState as useHannaUIState,
44
+ /** @deprecated (Will be removed in v0.11) */
45
+ useMobileMenuToggling as useMenuToggling, } from './MobileMenuToggler/_useMobileMenuToggling.js';
package/esm/utils.js CHANGED
@@ -1,10 +1,16 @@
1
1
  export * from './utils/browserSide.js';
2
2
  export * from './utils/config.js';
3
- export { HannaUIState, useHannaUIState } from './utils/HannaUIState.js';
4
3
  export * from './utils/useDidChange.js';
5
4
  export * from './utils/useDomid.js';
6
5
  export * from './utils/useFormatMonitor.js';
7
6
  export * from './utils/useGetSVGtext.js';
8
- export * from './utils/useMenuToggling.js';
9
7
  export * from './utils/useMixedControlState.js';
10
8
  export * from './utils/useScrollbarWidthCSSVar.js';
9
+ // ---------------------------------------------------------------------------
10
+ export {
11
+ /** @deprecated (Will be removed in v0.11) */
12
+ MobileMenuStateProvider as HannaUIState,
13
+ /** @deprecated (Will be removed in v0.11) */
14
+ useMobileMenuTogglerState as useHannaUIState,
15
+ /** @deprecated (Will be removed in v0.11) */
16
+ useMobileMenuToggling as useMenuToggling, } from './MobileMenuToggler/_useMobileMenuToggling.js';
package/index.d.ts CHANGED
@@ -41,7 +41,9 @@
41
41
  /// <reference path="./NameCard.d.tsx" />
42
42
  /// <reference path="./Multiselect.d.tsx" />
43
43
  /// <reference path="./Modal.d.tsx" />
44
+ /// <reference path="./MobileMenuToggler.d.tsx" />
44
45
  /// <reference path="./MiniMetrics.d.tsx" />
46
+ /// <reference path="./MainMenu2.d.tsx" />
45
47
  /// <reference path="./MainMenu.d.tsx" />
46
48
  /// <reference path="./Layout.d.tsx" />
47
49
  /// <reference path="./LabeledTextBlock.d.tsx" />
@@ -62,6 +64,7 @@
62
64
  /// <reference path="./FooterInfo.d.tsx" />
63
65
  /// <reference path="./FooterBadges.d.tsx" />
64
66
  /// <reference path="./Foonote.d.tsx" />
67
+ /// <reference path="./FocusTrap.d.tsx" />
65
68
  /// <reference path="./FileInput.d.tsx" />
66
69
  /// <reference path="./FieldGroup.d.tsx" />
67
70
  /// <reference path="./FeatureList.d.tsx" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reykjavik/hanna-react",
3
- "version": "0.10.112",
3
+ "version": "0.10.113",
4
4
  "author": "Reykjavík (http://www.reykjavik.is)",
5
5
  "contributors": [
6
6
  "Hugsmiðjan ehf (http://www.hugsmidjan.is)",
@@ -217,10 +217,18 @@
217
217
  "import": "./esm/Modal.js",
218
218
  "require": "./Modal.js"
219
219
  },
220
+ "./MobileMenuToggler": {
221
+ "import": "./esm/MobileMenuToggler.js",
222
+ "require": "./MobileMenuToggler.js"
223
+ },
220
224
  "./MiniMetrics": {
221
225
  "import": "./esm/MiniMetrics.js",
222
226
  "require": "./MiniMetrics.js"
223
227
  },
228
+ "./MainMenu2": {
229
+ "import": "./esm/MainMenu2.js",
230
+ "require": "./MainMenu2.js"
231
+ },
224
232
  "./MainMenu": {
225
233
  "import": "./esm/MainMenu.js",
226
234
  "require": "./MainMenu.js"
@@ -301,6 +309,10 @@
301
309
  "import": "./esm/Foonote.js",
302
310
  "require": "./Foonote.js"
303
311
  },
312
+ "./FocusTrap": {
313
+ "import": "./esm/FocusTrap.js",
314
+ "require": "./FocusTrap.js"
315
+ },
304
316
  "./FileInput": {
305
317
  "import": "./esm/FileInput.js",
306
318
  "require": "./FileInput.js"
@@ -0,0 +1,2 @@
1
+ import { MouseEventHandler } from 'react';
2
+ export declare const handleAnchorLinkClick: MouseEventHandler<HTMLAnchorElement>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleAnchorLinkClick = void 0;
4
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
5
+ const handleAnchorLinkClick = (e) => {
6
+ e.preventDefault();
7
+ const targetId = e.currentTarget.hash.slice(1);
8
+ const targetElm = targetId && document.getElementById(targetId);
9
+ if (!targetElm) {
10
+ return;
11
+ }
12
+ targetElm.tabIndex = -1;
13
+ (0, hanna_utils_1.focusElement)(targetElm);
14
+ };
15
+ exports.handleAnchorLinkClick = handleAnchorLinkClick;
package/utils/types.d.ts CHANGED
@@ -13,3 +13,7 @@ export type BemProps<Required extends boolean = false> = BemModifierProps & (Req
13
13
  /** CSS BEM class-name prefix to be used for this component. Defaults to the same as the original component's displayName */
14
14
  bem?: string;
15
15
  });
16
+ export type I18NProps<Texts extends Record<string, unknown>> = {
17
+ texts?: Texts;
18
+ lang?: string;
19
+ };
@@ -1,3 +1,4 @@
1
+ import { MediaFormat } from '@reykjavik/hanna-utils';
1
2
  /**
2
3
  * Pass a callback that gets called whenever the browser window
3
4
  * resizes past one of the preconfigured "media-format" breakpoints.
@@ -25,16 +26,8 @@
25
26
  * // type Formats = 'phone' | 'phablet' | 'tablet' | 'netbook' | 'wide'
26
27
  * media.is // : Format
27
28
  * media.was // ?: Format
28
- * // Category/mode boolean flags
29
- * // (Hamburger refers to the "mobile menu" mode)
30
- * media.isTopmenu
31
- * media.isHamburger
32
- * media.wasTopmenu
33
- * media.wasHamburger
34
- * media.becameTopmenu
35
- * media.becameHamburger
36
- * media.leftTopmenu
37
- * media.leftHamburger
38
29
  * ```
39
30
  */
40
- export declare const useFormatMonitor: (callback: ((media: import("formatchange").BaseMedia & Record<"isHamburger" | "isTopmenu" | "wasHamburger" | "wasTopmenu" | "becameHamburger" | "becameTopmenu" | "leftHamburger" | "leftTopmenu", boolean>) => void) | undefined) => void;
31
+ export declare const useFormatMonitor: HookTypeWithDeprecation;
32
+ type HookTypeWithDeprecation = (callback: (media: MediaFormat) => void) => void;
33
+ export {};
@@ -31,16 +31,6 @@ const react_1 = require("formatchange/react");
31
31
  * // type Formats = 'phone' | 'phablet' | 'tablet' | 'netbook' | 'wide'
32
32
  * media.is // : Format
33
33
  * media.was // ?: Format
34
- * // Category/mode boolean flags
35
- * // (Hamburger refers to the "mobile menu" mode)
36
- * media.isTopmenu
37
- * media.isHamburger
38
- * media.wasTopmenu
39
- * media.wasHamburger
40
- * media.becameTopmenu
41
- * media.becameHamburger
42
- * media.leftTopmenu
43
- * media.leftHamburger
44
34
  * ```
45
35
  */
46
36
  exports.useFormatMonitor = (0, react_1.makeFormatMonitorHook)(hanna_utils_1.getFormatMonitor);
package/utils.d.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import type { ElementRef } from 'react';
2
2
  export * from './utils/browserSide.js';
3
3
  export * from './utils/config.js';
4
- export { HannaUIState, useHannaUIState } from './utils/HannaUIState.js';
5
4
  export * from './utils/useDidChange.js';
6
5
  export * from './utils/useDomid.js';
7
6
  export * from './utils/useFormatMonitor.js';
8
7
  export * from './utils/useGetSVGtext.js';
9
- export * from './utils/useMenuToggling.js';
10
8
  export * from './utils/useMixedControlState.js';
11
9
  export * from './utils/useScrollbarWidthCSSVar.js';
12
10
  /**
@@ -38,3 +36,10 @@ export type MissingWrapperElmProps = {
38
36
  */
39
37
  wrapperProps?: undefined;
40
38
  };
39
+ export {
40
+ /** @deprecated (Will be removed in v0.11) */
41
+ MobileMenuStateProvider as HannaUIState,
42
+ /** @deprecated (Will be removed in v0.11) */
43
+ useMobileMenuTogglerState as useHannaUIState,
44
+ /** @deprecated (Will be removed in v0.11) */
45
+ useMobileMenuToggling as useMenuToggling, } from './MobileMenuToggler/_useMobileMenuToggling.js';
package/utils.js CHANGED
@@ -1,16 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useHannaUIState = exports.HannaUIState = void 0;
3
+ exports.useMenuToggling = exports.useHannaUIState = exports.HannaUIState = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./utils/browserSide.js"), exports);
6
6
  tslib_1.__exportStar(require("./utils/config.js"), exports);
7
- var HannaUIState_js_1 = require("./utils/HannaUIState.js");
8
- Object.defineProperty(exports, "HannaUIState", { enumerable: true, get: function () { return HannaUIState_js_1.HannaUIState; } });
9
- Object.defineProperty(exports, "useHannaUIState", { enumerable: true, get: function () { return HannaUIState_js_1.useHannaUIState; } });
10
7
  tslib_1.__exportStar(require("./utils/useDidChange.js"), exports);
11
8
  tslib_1.__exportStar(require("./utils/useDomid.js"), exports);
12
9
  tslib_1.__exportStar(require("./utils/useFormatMonitor.js"), exports);
13
10
  tslib_1.__exportStar(require("./utils/useGetSVGtext.js"), exports);
14
- tslib_1.__exportStar(require("./utils/useMenuToggling.js"), exports);
15
11
  tslib_1.__exportStar(require("./utils/useMixedControlState.js"), exports);
16
12
  tslib_1.__exportStar(require("./utils/useScrollbarWidthCSSVar.js"), exports);
13
+ // ---------------------------------------------------------------------------
14
+ var _useMobileMenuToggling_js_1 = require("./MobileMenuToggler/_useMobileMenuToggling.js");
15
+ /** @deprecated (Will be removed in v0.11) */
16
+ Object.defineProperty(exports, "HannaUIState", { enumerable: true, get: function () { return _useMobileMenuToggling_js_1.MobileMenuStateProvider; } });
17
+ /** @deprecated (Will be removed in v0.11) */
18
+ Object.defineProperty(exports, "useHannaUIState", { enumerable: true, get: function () { return _useMobileMenuToggling_js_1.useMobileMenuTogglerState; } });
19
+ /** @deprecated (Will be removed in v0.11) */
20
+ Object.defineProperty(exports, "useMenuToggling", { enumerable: true, get: function () { return _useMobileMenuToggling_js_1.useMobileMenuToggling; } });
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- export type HannaUIStateState = {
3
- closeHamburgerMenu: () => void;
4
- isHamburgerMenuOpen: boolean | undefined;
5
- };
6
- export declare const HannaUIState: import("react").Provider<HannaUIStateState>;
7
- export declare const useHannaUIState: () => HannaUIStateState;
@@ -1,7 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- const _HannaUIContext = createContext({
3
- closeHamburgerMenu: () => undefined,
4
- isHamburgerMenuOpen: undefined,
5
- });
6
- export const HannaUIState = _HannaUIContext.Provider;
7
- export const useHannaUIState = () => useContext(_HannaUIContext);
@@ -1,10 +0,0 @@
1
- import { HannaUIStateState } from './HannaUIState.js';
2
- type MenuTogglingState = {
3
- isMenuActive: true | undefined;
4
- isMenuOpen: boolean;
5
- toggleMenu: () => void;
6
- closeMenu: () => void;
7
- uiState: HannaUIStateState;
8
- };
9
- export declare const useMenuToggling: (doInitialize?: boolean) => MenuTogglingState;
10
- export {};
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- export type HannaUIStateState = {
3
- closeHamburgerMenu: () => void;
4
- isHamburgerMenuOpen: boolean | undefined;
5
- };
6
- export declare const HannaUIState: import("react").Provider<HannaUIStateState>;
7
- export declare const useHannaUIState: () => HannaUIStateState;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useHannaUIState = exports.HannaUIState = void 0;
4
- const react_1 = require("react");
5
- const _HannaUIContext = (0, react_1.createContext)({
6
- closeHamburgerMenu: () => undefined,
7
- isHamburgerMenuOpen: undefined,
8
- });
9
- exports.HannaUIState = _HannaUIContext.Provider;
10
- const useHannaUIState = () => (0, react_1.useContext)(_HannaUIContext);
11
- exports.useHannaUIState = useHannaUIState;
@@ -1,10 +0,0 @@
1
- import { HannaUIStateState } from './HannaUIState.js';
2
- type MenuTogglingState = {
3
- isMenuActive: true | undefined;
4
- isMenuOpen: boolean;
5
- toggleMenu: () => void;
6
- closeMenu: () => void;
7
- uiState: HannaUIStateState;
8
- };
9
- export declare const useMenuToggling: (doInitialize?: boolean) => MenuTogglingState;
10
- export {};