@uxf/cms 13.0.3 → 14.1.0

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 (69) hide show
  1. package/README.md +1 -1
  2. package/api/index.d.ts +2 -0
  3. package/api/index.js +2 -2
  4. package/api/swr.js +71 -6
  5. package/content-builder/content-builder-header.js +42 -3
  6. package/content-builder/content-builder.js +140 -18
  7. package/content-builder/content-builder.stories.js +24 -5
  8. package/content-builder/forms/content-builder-basic-form.js +212 -25
  9. package/content-builder/forms/content-builder-seo-form.js +92 -8
  10. package/forms/change-password-form/change-password-form.js +152 -15
  11. package/forms/components/wysiwyg-input/wysiwyg-input.js +188 -50
  12. package/forms/components/wysiwyg-input/wysiwyg-input.stories.js +127 -22
  13. package/forms/forgotten-password-form/forgotten-password-form.js +119 -15
  14. package/forms/invite-user-form/invite-user-form.js +171 -13
  15. package/forms/login-form/login-form.js +122 -13
  16. package/forms/renew-password-form/renew-password-form.js +148 -16
  17. package/lib/api/create-axios-instance.d.ts +3 -1
  18. package/lib/api/create-axios-request.d.ts +3 -1
  19. package/lib/api/create-axios-request.js +9 -2
  20. package/lib/api/create-axios-request.test.d.ts +1 -0
  21. package/lib/api/create-axios-request.test.js +32 -0
  22. package/lib/layout/layout.js +126 -28
  23. package/lib/layout/sidebar.js +69 -38
  24. package/lib/menu/ui/menu-item.js +5 -2
  25. package/lib/menu/ui/sub-menu/sub-menu-mobile.js +62 -14
  26. package/lib/menu/ui/sub-menu/sub-menu.js +66 -14
  27. package/lib/menu/ui/sub-menu/use-sub-menu.js +137 -34
  28. package/lib/menu/ui/user-menu.js +178 -14
  29. package/package.json +21 -21
  30. package/pages/content-builder/components/form-content.js +189 -38
  31. package/pages/content-builder/components/form-root-fields.js +3 -3
  32. package/pages/content-builder/components/form.js +142 -27
  33. package/pages/content-builder/components/header.js +44 -5
  34. package/pages/content-builder/content/feature-section.js +67 -15
  35. package/pages/content-builder/content/gallery.js +38 -6
  36. package/pages/content-builder/content/hero-section.js +39 -6
  37. package/pages/content-builder/content/people.js +64 -13
  38. package/pages/content-builder/content/wysiwyg.js +60 -6
  39. package/pages/content-builder/content-builder-page.js +120 -48
  40. package/pages/content-builder/content-field.js +216 -35
  41. package/pages/content-builder/content-header-behaviour.spec.d.ts +1 -0
  42. package/pages/content-builder/content-header-behaviour.spec.js +22 -0
  43. package/pages/content-builder/content-header.js +100 -53
  44. package/pages/content-builder/context/details-visibility-context.js +96 -18
  45. package/pages/forgotten-password-page/forgotten-password-page.js +29 -46
  46. package/pages/grid-page/grid-page.js +292 -76
  47. package/pages/grid-page/history-pathname.d.ts +6 -0
  48. package/pages/grid-page/history-pathname.js +11 -0
  49. package/pages/grid-page/history-pathname.test.d.ts +1 -0
  50. package/pages/grid-page/history-pathname.test.js +11 -0
  51. package/pages/grid-page/use-hidden-columns.js +29 -8
  52. package/pages/invite-user-page/invite-user-page.js +39 -16
  53. package/pages/login-page/login-page.js +44 -50
  54. package/pages/renew-password-page/renew-password-page.js +35 -43
  55. package/pages/translations.d.ts +3 -0
  56. package/pages/translations.js +3 -0
  57. package/security/restricted-page.js +88 -10
  58. package/security/use-logged-user.js +33 -8
  59. package/translations/cs.json +2 -1
  60. package/translations/translations.d.ts +3 -0
  61. package/ui/avatar/avatar.js +3 -2
  62. package/ui/copy-to-clipboard/copy-to-clipboard.js +57 -44
  63. package/ui/copy-to-clipboard-button/copy-to-clipboard-button.js +47 -46
  64. package/utils/remove-confirm-handler.js +80 -11
  65. package/utils/use-viewport-height.js +26 -20
  66. package/utils/use-viewport-height.test.d.ts +1 -0
  67. package/utils/use-viewport-height.test.js +37 -0
  68. package/utils/use-visual-viewport-height.d.ts +2 -0
  69. package/utils/use-visual-viewport-height.js +26 -0
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.Layout = void 0;
8
+ const compiler_runtime_1 = require("react/compiler-runtime");
8
9
  const rem_1 = require("@uxf/styles/units/rem");
9
10
  const loader_1 = require("@uxf/ui/loader/loader");
10
11
  const head_1 = __importDefault(require("next/head"));
@@ -13,35 +14,132 @@ const breadcrumbs_1 = require("./breadcrumbs");
13
14
  const layout_container_1 = require("./layout-container");
14
15
  const sidebar_1 = require("./sidebar");
15
16
  const styles_1 = require("./styles");
16
- const Layout = (props) => {
17
+ const Layout = props => {
17
18
  var _a, _b;
18
- return (react_1.default.createElement(react_1.default.Fragment, null,
19
- react_1.default.createElement(head_1.default, null,
20
- react_1.default.createElement("meta", { content: "width=device-width, initial-scale=1", name: "viewport" }),
21
- react_1.default.createElement("meta", { charSet: "utf-8" }),
22
- react_1.default.createElement("title", null, `${props.title} | ${props.appName}`)),
23
- react_1.default.createElement("div", { className: "uxf-cms-layout" },
19
+ const $ = (0, compiler_runtime_1.c)(33);
20
+ let t0;
21
+ let t1;
22
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
23
+ t0 = react_1.default.createElement("meta", { content: "width=device-width, initial-scale=1", name: "viewport" });
24
+ t1 = react_1.default.createElement("meta", { charSet: "utf-8" });
25
+ $[0] = t0;
26
+ $[1] = t1;
27
+ }
28
+ else {
29
+ t0 = $[0];
30
+ t1 = $[1];
31
+ }
32
+ const t2 = `${props.title} | ${props.appName}`;
33
+ let t3;
34
+ if ($[2] !== t2) {
35
+ t3 = react_1.default.createElement(head_1.default, null,
36
+ t0,
37
+ t1,
38
+ react_1.default.createElement("title", null, t2));
39
+ $[2] = t2;
40
+ $[3] = t3;
41
+ }
42
+ else {
43
+ t3 = $[3];
44
+ }
45
+ let t4;
46
+ if ($[4] !== props.Logo || $[5] !== props.menuConfiguration) {
47
+ t4 = react_1.default.createElement(sidebar_1.Sidebar, { Logo: props.Logo, menuConfiguration: props.menuConfiguration });
48
+ $[4] = props.Logo;
49
+ $[5] = props.menuConfiguration;
50
+ $[6] = t4;
51
+ }
52
+ else {
53
+ t4 = $[6];
54
+ }
55
+ const t5 = `uxf-cms-layout__main ${(_a = props.mainClassName) !== null && _a !== void 0 ? _a : ""}`;
56
+ let t6;
57
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
58
+ t6 = {
59
+ "--drawer-width": (0, rem_1.rem)(styles_1.drawerWidth)
60
+ };
61
+ $[7] = t6;
62
+ }
63
+ else {
64
+ t6 = $[7];
65
+ }
66
+ let t7;
67
+ if ($[8] !== props.Avatar || $[9] !== props.CustomHeader || $[10] !== props.Header || $[11] !== props.MessageBar || $[12] !== props.TitleRightContainer || $[13] !== props.ToolbarRight || $[14] !== props.breadcrumbs || $[15] !== props.children || $[16] !== props.containerType || $[17] !== props.headerContainerType || $[18] !== props.loading || $[19] !== props.stickyHeader || $[20] !== props.subtitle || $[21] !== props.title) {
68
+ t7 = props.loading ? react_1.default.createElement("div", { className: "uxf-cms-layout__loading" },
69
+ react_1.default.createElement("div", { className: "uxf-cms-layout__loading-inner" },
70
+ react_1.default.createElement(loader_1.Loader, null),
71
+ react_1.default.createElement("p", { className: "uxf-cms-layout__loading-text" }, "Na\u010D\u00EDt\u00E1m\u2026"))) : react_1.default.createElement(react_1.default.Fragment, null,
72
+ props.CustomHeader ? props.CustomHeader : react_1.default.createElement("div", { className: `${props.Header ? "uxf-cms-layout__header" : ""} ${props.stickyHeader ? "uxf-cms-layout__header--sticky" : ""}` },
73
+ props.ToolbarRight && react_1.default.createElement("div", { className: "uxf-cms-layout__toolbar" }, props.ToolbarRight),
74
+ props.MessageBar,
75
+ react_1.default.createElement(layout_container_1.LayoutContainer, { className: "uxf-cms-layout__container--basic", type: (_b = props.headerContainerType) !== null && _b !== void 0 ? _b : props.containerType },
76
+ react_1.default.createElement("div", { className: "uxf-cms-layout__avatar-title-wrapper" },
77
+ props.Avatar,
78
+ react_1.default.createElement("div", { className: "uxf-cms-layout__breadcrumbs-title-wrapper" },
79
+ props.breadcrumbs && react_1.default.createElement(breadcrumbs_1.Breadcrumbs, { items: props.breadcrumbs }),
80
+ react_1.default.createElement("div", { className: "uxf-cms-layout__title-wrapper" },
81
+ react_1.default.createElement("h1", { className: "uxf-cms-layout__title" }, props.title),
82
+ props.TitleRightContainer),
83
+ props.subtitle,
84
+ props.Header)))),
85
+ react_1.default.createElement(layout_container_1.LayoutContainer, { type: props.containerType }, props.children));
86
+ $[8] = props.Avatar;
87
+ $[9] = props.CustomHeader;
88
+ $[10] = props.Header;
89
+ $[11] = props.MessageBar;
90
+ $[12] = props.TitleRightContainer;
91
+ $[13] = props.ToolbarRight;
92
+ $[14] = props.breadcrumbs;
93
+ $[15] = props.children;
94
+ $[16] = props.containerType;
95
+ $[17] = props.headerContainerType;
96
+ $[18] = props.loading;
97
+ $[19] = props.stickyHeader;
98
+ $[20] = props.subtitle;
99
+ $[21] = props.title;
100
+ $[22] = t7;
101
+ }
102
+ else {
103
+ t7 = $[22];
104
+ }
105
+ let t8;
106
+ if ($[23] !== props.FooterBar || $[24] !== t5 || $[25] !== t7) {
107
+ t8 = react_1.default.createElement("main", { className: t5, style: t6 },
108
+ t7,
109
+ props.FooterBar);
110
+ $[23] = props.FooterBar;
111
+ $[24] = t5;
112
+ $[25] = t7;
113
+ $[26] = t8;
114
+ }
115
+ else {
116
+ t8 = $[26];
117
+ }
118
+ let t9;
119
+ if ($[27] !== t4 || $[28] !== t8) {
120
+ t9 = react_1.default.createElement("div", { className: "uxf-cms-layout" },
24
121
  react_1.default.createElement("div", { className: "uxf-cms-layout__wrapper" },
25
- react_1.default.createElement(sidebar_1.Sidebar, { Logo: props.Logo, menuConfiguration: props.menuConfiguration }),
26
- react_1.default.createElement("main", { className: `uxf-cms-layout__main ${(_a = props.mainClassName) !== null && _a !== void 0 ? _a : ""}`, style: { "--drawer-width": (0, rem_1.rem)(styles_1.drawerWidth) } },
27
- props.loading ? (react_1.default.createElement("div", { className: "uxf-cms-layout__loading" },
28
- react_1.default.createElement("div", { className: "uxf-cms-layout__loading-inner" },
29
- react_1.default.createElement(loader_1.Loader, null),
30
- react_1.default.createElement("p", { className: "uxf-cms-layout__loading-text" }, "Na\u010D\u00EDt\u00E1m\u2026")))) : (react_1.default.createElement(react_1.default.Fragment, null,
31
- props.CustomHeader ? (props.CustomHeader) : (react_1.default.createElement("div", { className: `${props.Header ? "uxf-cms-layout__header" : ""} ${props.stickyHeader ? "uxf-cms-layout__header--sticky" : ""}` },
32
- props.ToolbarRight && (react_1.default.createElement("div", { className: "uxf-cms-layout__toolbar" }, props.ToolbarRight)),
33
- props.MessageBar,
34
- react_1.default.createElement(layout_container_1.LayoutContainer, { className: "uxf-cms-layout__container--basic", type: (_b = props.headerContainerType) !== null && _b !== void 0 ? _b : props.containerType },
35
- react_1.default.createElement("div", { className: "uxf-cms-layout__avatar-title-wrapper" },
36
- props.Avatar,
37
- react_1.default.createElement("div", { className: "uxf-cms-layout__breadcrumbs-title-wrapper" },
38
- props.breadcrumbs && react_1.default.createElement(breadcrumbs_1.Breadcrumbs, { items: props.breadcrumbs }),
39
- react_1.default.createElement("div", { className: "uxf-cms-layout__title-wrapper" },
40
- react_1.default.createElement("h1", { className: "uxf-cms-layout__title" }, props.title),
41
- props.TitleRightContainer),
42
- props.subtitle,
43
- props.Header))))),
44
- react_1.default.createElement(layout_container_1.LayoutContainer, { type: props.containerType }, props.children))),
45
- props.FooterBar)))));
122
+ t4,
123
+ t8));
124
+ $[27] = t4;
125
+ $[28] = t8;
126
+ $[29] = t9;
127
+ }
128
+ else {
129
+ t9 = $[29];
130
+ }
131
+ let t10;
132
+ if ($[30] !== t3 || $[31] !== t9) {
133
+ t10 = react_1.default.createElement(react_1.default.Fragment, null,
134
+ t3,
135
+ t9);
136
+ $[30] = t3;
137
+ $[31] = t9;
138
+ $[32] = t10;
139
+ }
140
+ else {
141
+ t10 = $[32];
142
+ }
143
+ return t10;
46
144
  };
47
145
  exports.Layout = Layout;
@@ -34,54 +34,85 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Sidebar = void 0;
37
+ const compiler_runtime_1 = require("react/compiler-runtime");
38
+ const use_media_query_1 = require("@uxf/core-react/hooks/use-media-query");
37
39
  const rem_1 = require("@uxf/styles/units/rem");
38
40
  const react_1 = __importStar(require("react"));
39
41
  const tw_screens_1 = require("../../ui/tw-tokens/tw-screens");
42
+ const use_visual_viewport_height_1 = require("../../utils/use-visual-viewport-height");
40
43
  const menu_1 = require("../menu");
41
44
  const mobile_bar_1 = require("../menu/mobile-bar");
42
45
  const user_menu_1 = require("../menu/ui/user-menu");
43
46
  const styles_1 = require("./styles");
44
- const uxfLogo = (react_1.default.createElement("svg", { height: "30", viewBox: "0 0 179 40", width: "134" },
47
+ const uxfLogo = react_1.default.createElement("svg", { height: "30", viewBox: "0 0 179 40", width: "134" },
45
48
  react_1.default.createElement("path", { clipRule: "evenodd", d: "M33.563 12.874a9.103 9.103 0 0 0 0-12.874L20.69 12.874l.107.105a9.103 9.103 0 0 0 12.766-.105Zm-20.69-6.437a9.103 9.103 0 0 1 .106 12.766l-.105.107L0 6.437a9.103 9.103 0 0 1 12.874 0ZM40 33.563 27.127 20.69l-.106.107a9.103 9.103 0 0 0 12.98 12.766Zm-20.69-6.437-.107-.105A9.103 9.103 0 0 0 6.437 40l12.874-12.874Z", fill: "#FFF", fillRule: "evenodd" }),
46
- react_1.default.createElement("path", { clipRule: "evenodd", d: "m84.325 7.295 5.133 8.675h.199l5.158-8.675h6.078l-7.768 12.727 7.942 12.727h-6.19l-5.22-8.687h-.199l-5.22 8.687h-6.165l7.967-12.727-7.818-12.727h6.103Zm-24.194 0v16.07c0 .97.214 1.832.64 2.586a4.58 4.58 0 0 0 1.809 1.777c.779.431 1.686.647 2.722.647 1.044 0 1.953-.216 2.728-.647a4.591 4.591 0 0 0 1.802-1.777c.427-.754.64-1.616.64-2.585V7.296h5.382v16.53c0 1.856-.441 3.48-1.324 4.872-.882 1.392-2.115 2.475-3.697 3.25-1.583.775-3.426 1.162-5.531 1.162-2.113 0-3.96-.387-5.543-1.162-1.583-.775-2.813-1.858-3.692-3.25-.878-1.392-1.317-3.016-1.317-4.872V7.296h5.381ZM170.25 13.41c2.411 0 4.311.51 5.698 1.529 1.388 1.019 2.198 2.407 2.43 4.164l-4.847.298a2.555 2.555 0 0 0-.534-1.125 2.942 2.942 0 0 0-1.075-.808c-.444-.203-.972-.304-1.585-.304-.821 0-1.512.172-2.076.515-.563.344-.845.802-.845 1.374 0 .456.182.84.547 1.156.364.315.99.567 1.877.758l3.455.696c1.856.381 3.24.994 4.151 1.84.912.845 1.367 1.955 1.367 3.33 0 1.252-.366 2.35-1.1 3.294-.733.945-1.736 1.68-3.007 2.206-1.272.526-2.737.79-4.394.79-2.527 0-4.539-.529-6.034-1.585-1.496-1.057-2.372-2.496-2.629-4.32l5.208-.273c.157.77.538 1.357 1.143 1.759.605.402 1.38.603 2.324.603.928 0 1.676-.18 2.244-.54.567-.361.855-.827.864-1.4-.009-.48-.212-.875-.609-1.186-.398-.31-1.011-.55-1.84-.715l-3.306-.659c-1.864-.372-3.25-1.019-4.157-1.938-.908-.92-1.361-2.093-1.361-3.518 0-1.226.333-2.283 1-3.17.667-.886 1.608-1.57 2.821-2.05 1.214-.48 2.637-.72 4.27-.72Zm-36.686.373a12.285 12.285 0 0 0-3.051-.373c-1.525 0-2.865.23-4.021.69-1.156.46-2.098 1.114-2.827 1.964-.73.849-1.219 1.854-1.467 3.014l4.897.397c.182-.63.555-1.153 1.119-1.572.563-.418 1.321-.627 2.274-.627.903 0 1.601.215 2.094.646.493.43.74 1.04.74 1.827v.075c0 .405-.153.712-.46.92-.307.206-.8.362-1.479.465-.68.104-1.574.214-2.685.33-.944.09-1.845.248-2.703.472a7.698 7.698 0 0 0-2.293.994 4.727 4.727 0 0 0-1.591 1.74c-.39.721-.584 1.612-.584 2.673 0 1.259.275 2.31.826 3.15a5.147 5.147 0 0 0 2.256 1.902c.953.427 2.038.64 3.257.64.944 0 1.777-.126 2.498-.38a5.55 5.55 0 0 0 1.852-1.055 5.31 5.31 0 0 0 1.23-1.573h.149v2.648h5.022V19.873c0-1.135-.22-2.11-.659-2.927a5.655 5.655 0 0 0-1.796-2.007 8.039 8.039 0 0 0-2.598-1.156Zm-13.424-2.05V7.294h-16.853v25.454h5.381V22.235h10.354v-4.438h-10.354v-6.065h11.472Zm32.603 1.677c1.326 0 2.482.29 3.468.87.986.58 1.753 1.407 2.3 2.48.546 1.073.82 2.35.82 3.834V32.75h-5.295V21.539c.008-1.169-.29-2.082-.895-2.74-.605-.66-1.437-.989-2.498-.989-.713 0-1.34.153-1.883.46a3.166 3.166 0 0 0-1.268 1.336c-.302.584-.458 1.286-.466 2.107V32.75h-5.295V13.659h5.047v3.368H147a5.358 5.358 0 0 1 2.126-2.641c.994-.65 2.2-.976 3.616-.976Zm-20.061 10.782c.286-.087.512-.184.678-.292v2.026c0 .671-.17 1.272-.51 1.802-.34.53-.808.951-1.404 1.262-.597.31-1.285.466-2.064.466-.812 0-1.481-.189-2.007-.566-.526-.377-.789-.925-.789-1.646 0-.497.128-.914.385-1.25.257-.335.617-.602 1.082-.801a6.547 6.547 0 0 1 1.628-.435l.969-.143a24.15 24.15 0 0 0 1.069-.186c.356-.071.677-.15.963-.237Z", fill: "#FFF", fillRule: "evenodd" })));
47
- const Sidebar = (props) => {
48
- var _a, _b, _c;
49
- const [deviceHeight, setDeviceHeight] = (0, react_1.useState)(0);
49
+ react_1.default.createElement("path", { clipRule: "evenodd", d: "m84.325 7.295 5.133 8.675h.199l5.158-8.675h6.078l-7.768 12.727 7.942 12.727h-6.19l-5.22-8.687h-.199l-5.22 8.687h-6.165l7.967-12.727-7.818-12.727h6.103Zm-24.194 0v16.07c0 .97.214 1.832.64 2.586a4.58 4.58 0 0 0 1.809 1.777c.779.431 1.686.647 2.722.647 1.044 0 1.953-.216 2.728-.647a4.591 4.591 0 0 0 1.802-1.777c.427-.754.64-1.616.64-2.585V7.296h5.382v16.53c0 1.856-.441 3.48-1.324 4.872-.882 1.392-2.115 2.475-3.697 3.25-1.583.775-3.426 1.162-5.531 1.162-2.113 0-3.96-.387-5.543-1.162-1.583-.775-2.813-1.858-3.692-3.25-.878-1.392-1.317-3.016-1.317-4.872V7.296h5.381ZM170.25 13.41c2.411 0 4.311.51 5.698 1.529 1.388 1.019 2.198 2.407 2.43 4.164l-4.847.298a2.555 2.555 0 0 0-.534-1.125 2.942 2.942 0 0 0-1.075-.808c-.444-.203-.972-.304-1.585-.304-.821 0-1.512.172-2.076.515-.563.344-.845.802-.845 1.374 0 .456.182.84.547 1.156.364.315.99.567 1.877.758l3.455.696c1.856.381 3.24.994 4.151 1.84.912.845 1.367 1.955 1.367 3.33 0 1.252-.366 2.35-1.1 3.294-.733.945-1.736 1.68-3.007 2.206-1.272.526-2.737.79-4.394.79-2.527 0-4.539-.529-6.034-1.585-1.496-1.057-2.372-2.496-2.629-4.32l5.208-.273c.157.77.538 1.357 1.143 1.759.605.402 1.38.603 2.324.603.928 0 1.676-.18 2.244-.54.567-.361.855-.827.864-1.4-.009-.48-.212-.875-.609-1.186-.398-.31-1.011-.55-1.84-.715l-3.306-.659c-1.864-.372-3.25-1.019-4.157-1.938-.908-.92-1.361-2.093-1.361-3.518 0-1.226.333-2.283 1-3.17.667-.886 1.608-1.57 2.821-2.05 1.214-.48 2.637-.72 4.27-.72Zm-36.686.373a12.285 12.285 0 0 0-3.051-.373c-1.525 0-2.865.23-4.021.69-1.156.46-2.098 1.114-2.827 1.964-.73.849-1.219 1.854-1.467 3.014l4.897.397c.182-.63.555-1.153 1.119-1.572.563-.418 1.321-.627 2.274-.627.903 0 1.601.215 2.094.646.493.43.74 1.04.74 1.827v.075c0 .405-.153.712-.46.92-.307.206-.8.362-1.479.465-.68.104-1.574.214-2.685.33-.944.09-1.845.248-2.703.472a7.698 7.698 0 0 0-2.293.994 4.727 4.727 0 0 0-1.591 1.74c-.39.721-.584 1.612-.584 2.673 0 1.259.275 2.31.826 3.15a5.147 5.147 0 0 0 2.256 1.902c.953.427 2.038.64 3.257.64.944 0 1.777-.126 2.498-.38a5.55 5.55 0 0 0 1.852-1.055 5.31 5.31 0 0 0 1.23-1.573h.149v2.648h5.022V19.873c0-1.135-.22-2.11-.659-2.927a5.655 5.655 0 0 0-1.796-2.007 8.039 8.039 0 0 0-2.598-1.156Zm-13.424-2.05V7.294h-16.853v25.454h5.381V22.235h10.354v-4.438h-10.354v-6.065h11.472Zm32.603 1.677c1.326 0 2.482.29 3.468.87.986.58 1.753 1.407 2.3 2.48.546 1.073.82 2.35.82 3.834V32.75h-5.295V21.539c.008-1.169-.29-2.082-.895-2.74-.605-.66-1.437-.989-2.498-.989-.713 0-1.34.153-1.883.46a3.166 3.166 0 0 0-1.268 1.336c-.302.584-.458 1.286-.466 2.107V32.75h-5.295V13.659h5.047v3.368H147a5.358 5.358 0 0 1 2.126-2.641c.994-.65 2.2-.976 3.616-.976Zm-20.061 10.782c.286-.087.512-.184.678-.292v2.026c0 .671-.17 1.272-.51 1.802-.34.53-.808.951-1.404 1.262-.597.31-1.285.466-2.064.466-.812 0-1.481-.189-2.007-.566-.526-.377-.789-.925-.789-1.646 0-.497.128-.914.385-1.25.257-.335.617-.602 1.082-.801a6.547 6.547 0 0 1 1.628-.435l.969-.143a24.15 24.15 0 0 0 1.069-.186c.356-.071.677-.15.963-.237Z", fill: "#FFF", fillRule: "evenodd" }));
50
+ const Sidebar = props => {
51
+ var _a, _b, _d, _e;
52
+ const $ = (0, compiler_runtime_1.c)(10);
53
+ const deviceHeight = (_a = (0, use_visual_viewport_height_1.useVisualViewportHeight)()) !== null && _a !== void 0 ? _a : 0;
50
54
  const [isMenuOpen, setIsMenuOpen] = (0, react_1.useState)(false);
51
- const toggleMenu = () => setIsMenuOpen((prev) => !prev);
52
- (0, react_1.useEffect)(() => {
53
- const handler = () => { var _a, _b; return setDeviceHeight((_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : window.innerHeight); };
54
- handler();
55
- window.addEventListener("resize", handler);
56
- return () => {
57
- window.removeEventListener("resize", handler);
58
- };
59
- }, []);
60
- (0, react_1.useEffect)(() => {
61
- const handler = () => {
62
- if (!window.matchMedia(`(min-width: ${tw_screens_1.twScreens.md})`).matches && isMenuOpen) {
63
- document.body.style.overflow = "hidden";
64
- }
65
- else {
66
- document.body.style.overflow = "";
55
+ let t0;
56
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
57
+ t0 = () => setIsMenuOpen(_temp);
58
+ $[0] = t0;
59
+ }
60
+ else {
61
+ t0 = $[0];
62
+ }
63
+ const toggleMenu = t0;
64
+ const isDesktop = (0, use_media_query_1.useMediaQuery)(`(min-width: ${tw_screens_1.twScreens.md})`);
65
+ const isPageLocked = isMenuOpen && !isDesktop;
66
+ let t1;
67
+ let t2;
68
+ if ($[1] !== isPageLocked) {
69
+ t1 = () => {
70
+ if (!isPageLocked) {
71
+ return;
67
72
  }
73
+ const previousOverflow = document.body.style.overflow;
74
+ document.body.style.overflow = "hidden";
75
+ return () => {
76
+ document.body.style.overflow = previousOverflow;
77
+ };
68
78
  };
69
- handler();
70
- window.addEventListener("resize", handler);
71
- return () => {
72
- document.body.style.overflow = "";
73
- window.removeEventListener("resize", handler);
74
- };
75
- }, [isMenuOpen]);
76
- return ((_a = props.CustomSidebar) !== null && _a !== void 0 ? _a : (react_1.default.createElement("div", { className: "uxf-cms-sidebar", style: { "--drawer-width": (0, rem_1.rem)(styles_1.drawerWidth) } },
77
- react_1.default.createElement("div", { className: `uxf-cms-sidebar__content ${isMenuOpen ? "uxf-cms-sidebar__content--open" : "uxf-cms-sidebar__content--closed"}`, style: { "--device-height": (0, rem_1.rem)(deviceHeight) } },
78
- react_1.default.createElement("div", { className: "uxf-cms-sidebar__logo" }, (_b = props.Logo) !== null && _b !== void 0 ? _b : uxfLogo),
79
- props.menuConfiguration && props.menuConfiguration.length > 0 && (react_1.default.createElement(react_1.default.Fragment, null,
80
- react_1.default.createElement("div", { className: `uxf-cms-sidebar__nav ${((_c = props.menuConfiguration.at(0)) === null || _c === void 0 ? void 0 : _c.type) === "super-section"
81
- ? "uxf-cms-sidebar__nav--super-section"
82
- : ""}` },
83
- react_1.default.createElement(menu_1.Menu, { menu: props.menuConfiguration })),
84
- react_1.default.createElement(user_menu_1.UserMenu, { menu: props.menuConfiguration })))),
85
- props.menuConfiguration && (react_1.default.createElement(mobile_bar_1.MobileBar, { menuConfiguration: props.menuConfiguration, toggleMenu: toggleMenu })))));
79
+ t2 = [isPageLocked];
80
+ $[1] = isPageLocked;
81
+ $[2] = t1;
82
+ $[3] = t2;
83
+ }
84
+ else {
85
+ t1 = $[2];
86
+ t2 = $[3];
87
+ }
88
+ (0, react_1.useEffect)(t1, t2);
89
+ let t3;
90
+ if ($[4] !== deviceHeight || $[5] !== isMenuOpen || $[6] !== props.CustomSidebar || $[7] !== props.Logo || $[8] !== props.menuConfiguration) {
91
+ t3 = (_b = props.CustomSidebar) !== null && _b !== void 0 ? _b : react_1.default.createElement("div", { className: "uxf-cms-sidebar", style: {
92
+ "--drawer-width": (0, rem_1.rem)(styles_1.drawerWidth)
93
+ } },
94
+ react_1.default.createElement("div", { className: `uxf-cms-sidebar__content ${isMenuOpen ? "uxf-cms-sidebar__content--open" : "uxf-cms-sidebar__content--closed"}`, style: {
95
+ "--device-height": (0, rem_1.rem)(deviceHeight)
96
+ } },
97
+ react_1.default.createElement("div", { className: "uxf-cms-sidebar__logo" }, (_d = props.Logo) !== null && _d !== void 0 ? _d : uxfLogo),
98
+ props.menuConfiguration && props.menuConfiguration.length > 0 && react_1.default.createElement(react_1.default.Fragment, null,
99
+ react_1.default.createElement("div", { className: `uxf-cms-sidebar__nav ${((_e = props.menuConfiguration.at(0)) === null || _e === void 0 ? void 0 : _e.type) === "super-section" ? "uxf-cms-sidebar__nav--super-section" : ""}` },
100
+ react_1.default.createElement(menu_1.Menu, { menu: props.menuConfiguration })),
101
+ react_1.default.createElement(user_menu_1.UserMenu, { menu: props.menuConfiguration }))),
102
+ props.menuConfiguration && react_1.default.createElement(mobile_bar_1.MobileBar, { menuConfiguration: props.menuConfiguration, toggleMenu: toggleMenu }));
103
+ $[4] = deviceHeight;
104
+ $[5] = isMenuOpen;
105
+ $[6] = props.CustomSidebar;
106
+ $[7] = props.Logo;
107
+ $[8] = props.menuConfiguration;
108
+ $[9] = t3;
109
+ }
110
+ else {
111
+ t3 = $[9];
112
+ }
113
+ return t3;
86
114
  };
87
115
  exports.Sidebar = Sidebar;
116
+ function _temp(prev) {
117
+ return !prev;
118
+ }
@@ -50,9 +50,12 @@ const MenuItem = (props) => {
50
50
  const firstVisibleChild = visibleChildren.at(0);
51
51
  const isInitiallyOpen = (isActive || hasActiveChildren) && props.item.children.length > 0;
52
52
  const [isSubmenuOpen, setIsSubmenuOpen] = (0, react_1.useState)(isInitiallyOpen);
53
- (0, react_1.useEffect)(() => {
53
+ // Follow the route during render instead of in an effect, which first rendered one commit with the old value.
54
+ const [previousIsInitiallyOpen, setPreviousIsInitiallyOpen] = (0, react_1.useState)(isInitiallyOpen);
55
+ if (isInitiallyOpen !== previousIsInitiallyOpen) {
56
+ setPreviousIsInitiallyOpen(isInitiallyOpen);
54
57
  setIsSubmenuOpen(isInitiallyOpen);
55
- }, [isInitiallyOpen]);
58
+ }
56
59
  const toggle = () => setIsSubmenuOpen((prev) => !prev);
57
60
  if (!props.item.isVisible(loggedUser) ||
58
61
  (props.item.children.length !== 0 && !props.item.hasVisibleChildren(loggedUser))) {
@@ -34,29 +34,77 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SubMenuMobile = SubMenuMobile;
37
+ const compiler_runtime_1 = require("react/compiler-runtime");
37
38
  const use_composed_refs_1 = require("@uxf/core-react/hooks/use-composed-refs");
38
39
  const react_1 = __importStar(require("react"));
39
40
  const sub_menu_item_1 = require("./sub-menu-item");
40
41
  const use_sub_menu_1 = require("./use-sub-menu");
41
42
  function SubMenuMobile(props) {
42
- const subMenu = (0, use_sub_menu_1.useSubMenu)({ isMobile: true });
43
- // Any element can be the trigger; its props are only passed through.
43
+ const $ = (0, compiler_runtime_1.c)(13);
44
+ const { ref } = props;
45
+ let t0;
46
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
47
+ t0 = {
48
+ isMobile: true
49
+ };
50
+ $[0] = t0;
51
+ }
52
+ else {
53
+ t0 = $[0];
54
+ }
55
+ const subMenu = (0, use_sub_menu_1.useSubMenu)(t0);
44
56
  const trigger = props.children;
45
- const stableRef = (0, use_composed_refs_1.useComposedRefs)(props.ref, subMenu.refs.setReference, trigger.props.ref);
46
- // `ref` goes after the spread: since React 19 the trigger's props carry its own ref.
47
- const referenceProps = {
48
- ...trigger.props,
49
- ref: stableRef,
50
- "data-state": subMenu.open ? "open" : "closed",
51
- };
52
- return (react_1.default.createElement(react_1.default.Fragment, null,
53
- (0, react_1.cloneElement)(trigger, subMenu.getReferenceProps(referenceProps)),
54
- subMenu.open && (react_1.default.createElement("div", { ...subMenu.getFloatingProps({
57
+ const stableRef = (0, use_composed_refs_1.useComposedRefs)(ref, subMenu.refs.setReference, trigger.props.ref);
58
+ const t1 = subMenu.open ? "open" : "closed";
59
+ let t2;
60
+ if ($[1] !== stableRef || $[2] !== subMenu || $[3] !== t1 || $[4] !== trigger) {
61
+ const referenceProps = {
62
+ ...trigger.props,
63
+ ref: stableRef,
64
+ "data-state": t1
65
+ };
66
+ t2 = (0, react_1.cloneElement)(trigger, subMenu.getReferenceProps(referenceProps));
67
+ $[1] = stableRef;
68
+ $[2] = subMenu;
69
+ $[3] = t1;
70
+ $[4] = trigger;
71
+ $[5] = t2;
72
+ }
73
+ else {
74
+ t2 = $[5];
75
+ }
76
+ let t3;
77
+ if ($[6] !== props.content || $[7] !== props.title || $[8] !== subMenu) {
78
+ t3 = subMenu.open && react_1.default.createElement("div", { ...subMenu.getFloatingProps({
55
79
  className: "uxf-cms-sidebar__scrollbar uxf-cms-sub-menu__wrapper-mobile",
56
80
  ref: subMenu.refs.setFloating,
57
- style: subMenu.floatingStyles,
81
+ style: subMenu.floatingStyles
58
82
  }) },
59
83
  react_1.default.createElement("div", { className: "uxf-cms-sub-menu__title" }, props.title),
60
- props.content.map((item, index) => (react_1.default.createElement(sub_menu_item_1.SubMenuItem, { item: item, key: index })))))));
84
+ props.content.map(_temp));
85
+ $[6] = props.content;
86
+ $[7] = props.title;
87
+ $[8] = subMenu;
88
+ $[9] = t3;
89
+ }
90
+ else {
91
+ t3 = $[9];
92
+ }
93
+ let t4;
94
+ if ($[10] !== t2 || $[11] !== t3) {
95
+ t4 = react_1.default.createElement(react_1.default.Fragment, null,
96
+ t2,
97
+ t3);
98
+ $[10] = t2;
99
+ $[11] = t3;
100
+ $[12] = t4;
101
+ }
102
+ else {
103
+ t4 = $[12];
104
+ }
105
+ return t4;
106
+ }
107
+ function _temp(item, index) {
108
+ return react_1.default.createElement(sub_menu_item_1.SubMenuItem, { item: item, key: index });
61
109
  }
62
110
  SubMenuMobile.displayName = "SubMenuMobile";
@@ -34,27 +34,79 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SubMenu = SubMenu;
37
+ const compiler_runtime_1 = require("react/compiler-runtime");
37
38
  const use_composed_refs_1 = require("@uxf/core-react/hooks/use-composed-refs");
38
39
  const react_1 = __importStar(require("react"));
39
40
  const sub_menu_item_1 = require("./sub-menu-item");
40
41
  const use_sub_menu_1 = require("./use-sub-menu");
41
42
  function SubMenu(props) {
42
- const subMenu = (0, use_sub_menu_1.useSubMenu)({ isMobile: false });
43
- // Any element can be the trigger; its props are only passed through.
43
+ const $ = (0, compiler_runtime_1.c)(14);
44
+ const { ref } = props;
45
+ let t0;
46
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
47
+ t0 = {
48
+ isMobile: false
49
+ };
50
+ $[0] = t0;
51
+ }
52
+ else {
53
+ t0 = $[0];
54
+ }
55
+ const subMenu = (0, use_sub_menu_1.useSubMenu)(t0);
44
56
  const trigger = props.children;
45
- const stableRef = (0, use_composed_refs_1.useComposedRefs)(props.ref, subMenu.refs.setReference, trigger.props.ref);
46
- // `ref` goes after the spread: since React 19 the trigger's props carry its own ref.
47
- const referenceProps = {
48
- ...trigger.props,
49
- ref: stableRef,
50
- "data-state": subMenu.open ? "open" : "closed",
51
- };
52
- return (react_1.default.createElement("div", { className: "uxf-cms-sub-menu" },
53
- (0, react_1.cloneElement)(trigger, subMenu.getReferenceProps(referenceProps)),
54
- subMenu.open && (react_1.default.createElement("div", { ...subMenu.getFloatingProps({
57
+ const stableRef = (0, use_composed_refs_1.useComposedRefs)(ref, subMenu.refs.setReference, trigger.props.ref);
58
+ const t1 = subMenu.open ? "open" : "closed";
59
+ let t2;
60
+ let t3;
61
+ if ($[1] !== stableRef || $[2] !== subMenu || $[3] !== t1 || $[4] !== trigger) {
62
+ const referenceProps = {
63
+ ...trigger.props,
64
+ ref: stableRef,
65
+ "data-state": t1
66
+ };
67
+ t2 = "uxf-cms-sub-menu";
68
+ t3 = (0, react_1.cloneElement)(trigger, subMenu.getReferenceProps(referenceProps));
69
+ $[1] = stableRef;
70
+ $[2] = subMenu;
71
+ $[3] = t1;
72
+ $[4] = trigger;
73
+ $[5] = t2;
74
+ $[6] = t3;
75
+ }
76
+ else {
77
+ t2 = $[5];
78
+ t3 = $[6];
79
+ }
80
+ let t4;
81
+ if ($[7] !== props.content || $[8] !== subMenu) {
82
+ t4 = subMenu.open && react_1.default.createElement("div", { ...subMenu.getFloatingProps({
55
83
  ref: subMenu.refs.setFloating,
56
84
  style: subMenu.floatingStyles,
57
- className: "uxf-cms-sidebar__scrollbar uxf-cms-sub-menu__wrapper",
58
- }) }, props.content.map((item, index) => (react_1.default.createElement(sub_menu_item_1.SubMenuItem, { item: item, key: index })))))));
85
+ className: "uxf-cms-sidebar__scrollbar uxf-cms-sub-menu__wrapper"
86
+ }) }, props.content.map(_temp));
87
+ $[7] = props.content;
88
+ $[8] = subMenu;
89
+ $[9] = t4;
90
+ }
91
+ else {
92
+ t4 = $[9];
93
+ }
94
+ let t5;
95
+ if ($[10] !== t2 || $[11] !== t3 || $[12] !== t4) {
96
+ t5 = react_1.default.createElement("div", { className: t2 },
97
+ t3,
98
+ t4);
99
+ $[10] = t2;
100
+ $[11] = t3;
101
+ $[12] = t4;
102
+ $[13] = t5;
103
+ }
104
+ else {
105
+ t5 = $[13];
106
+ }
107
+ return t5;
108
+ }
109
+ function _temp(item, index) {
110
+ return react_1.default.createElement(sub_menu_item_1.SubMenuItem, { item: item, key: index });
59
111
  }
60
112
  SubMenu.displayName = "SubMenu";