@asante-org/atlascopco-vt-litesitegenerator 3.8.6 → 3.8.8

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 (40) hide show
  1. package/dist/index.esm.js +125 -565
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.esm.scss +36 -505
  4. package/dist/index.js +123 -577
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.scss +36 -505
  7. package/dist/lsg-clientlib.css +2106 -0
  8. package/dist/lsg-clientlib.css.map +1 -0
  9. package/dist/lsg-clientlib.js +524 -0
  10. package/dist/lsg-clientlib.js.map +1 -0
  11. package/dist/src/components/lsg/LsgBanner/LsgBanner.d.ts +1 -23
  12. package/dist/src/components/lsg/LsgBanner/LsgBanner.stories.d.ts +2 -0
  13. package/dist/src/components/lsg/LsgBanner/index.d.ts +1 -1
  14. package/dist/src/components/lsg/LsgImage/LsgImage.stories.d.ts +1 -0
  15. package/dist/src/components/lsg/LsgTable/LsgTable.stories.d.ts +1 -0
  16. package/dist/src/components/lsg/index.d.ts +1 -7
  17. package/dist/src/index.d.ts +5 -5
  18. package/dist/src/themes/createThemeComponents.d.ts +0 -3
  19. package/dist/src/themes/theme-1/components.d.ts +1 -4
  20. package/dist/src/themes/theme-2/components.d.ts +1 -4
  21. package/dist/src/themes/theme-3/components.d.ts +1 -4
  22. package/dist/themes/theme-1.css +254 -832
  23. package/dist/themes/theme-1.css.map +1 -1
  24. package/dist/themes/theme-2.css +50 -1190
  25. package/dist/themes/theme-2.css.map +1 -1
  26. package/dist/themes/theme-3.css +83 -1010
  27. package/dist/themes/theme-3.css.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
  30. package/dist/src/components/lsg/LsgBlogOverview/LsgBlogOverview.d.ts +0 -27
  31. package/dist/src/components/lsg/LsgBlogOverview/LsgBlogOverview.stories.d.ts +0 -11
  32. package/dist/src/components/lsg/LsgBlogOverview/index.d.ts +0 -4
  33. package/dist/src/components/lsg/LsgBlogOverview/mapAemGeneratedListJson.d.ts +0 -40
  34. package/dist/src/components/lsg/LsgGeneratedList/LsgGeneratedList.d.ts +0 -31
  35. package/dist/src/components/lsg/LsgGeneratedList/LsgGeneratedList.stories.d.ts +0 -13
  36. package/dist/src/components/lsg/LsgGeneratedList/index.d.ts +0 -2
  37. package/dist/src/components/lsg/LsgPagination/LsgPagination.d.ts +0 -35
  38. package/dist/src/components/lsg/LsgPagination/LsgPagination.stories.d.ts +0 -13
  39. package/dist/src/components/lsg/LsgPagination/index.d.ts +0 -2
  40. package/dist/tsconfig.sb.tsbuildinfo +0 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useId, useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle } from 'react';
1
+ import React, { useState, useRef, useEffect, useId, useCallback, useMemo, forwardRef, useImperativeHandle } from 'react';
2
2
 
3
3
  function _extends() {
4
4
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
@@ -46,87 +46,12 @@ var LsgButton = function (_a) {
46
46
  }, children);
47
47
  };
48
48
 
49
- // ─────────────────────────────────────────────────────────────────────────────
50
- // AEM markup helpers
51
- //
52
- // The banner's content region is a parsys in AEM, filled by _cq_template with
53
- // Group > Title / Text / Button components. These helpers reproduce the HTML
54
- // those components (and their Sling decoration divs) emit on publish, so the
55
- // theme CSS written here applies to AEM unchanged. Reference page:
56
- // /content/vtba/varovac/en (wcmmode=disabled).
57
- // ─────────────────────────────────────────────────────────────────────────────
58
- var GRID_COLUMN = "aem-GridColumn aem-GridColumn--default--12";
59
- /** vtba/components/lsg/structure/group — a responsivegrid with two wrappers. */
60
- var AemGroup = function (_a) {
61
- var styleClasses = _a.styleClasses,
62
- children = _a.children;
63
- return /*#__PURE__*/React.createElement("div", {
64
- className: ["lsg-group", styleClasses].filter(Boolean).join(" ")
65
- }, /*#__PURE__*/React.createElement("div", {
66
- className: "layout-container-color-wrapper"
67
- }, /*#__PURE__*/React.createElement("div", {
68
- className: "layout-container-spacing-wrapper aem-Grid aem-Grid--12 aem-Grid--default--12 "
69
- }, children)));
70
- };
71
- /**
72
- * AEM decoration class for a grid column: the component's own class, then either
73
- * its authored style classes or — when none are set — the component name.
74
- */
75
- function columnClassName(componentClass, name, styleClass) {
76
- return "".concat(componentClass, " ").concat(styleClass !== null && styleClass !== void 0 ? styleClass : name, " ").concat(GRID_COLUMN);
77
- }
78
- /** vtba/components/lsg/content/title — type "p" is the pre-title. */
79
- var AemTitle = function (_a) {
80
- var Tag = _a.tag,
81
- colour = _a.colour,
82
- children = _a.children;
83
- return /*#__PURE__*/React.createElement("div", {
84
- className: columnClassName("cmp-lsg-title", "title", colour && "cmp-title__colour-".concat(colour))
85
- }, /*#__PURE__*/React.createElement(Tag, {
86
- className: "cmp-title__element".concat(Tag === "p" ? " cmp-title__element--pretitle" : "")
87
- }, children));
88
- };
89
- /** vtba/components/lsg/content/text — core text v2 inside the decoration div. */
90
- var AemText = function (_a) {
91
- var id = _a.id,
92
- colour = _a.colour,
93
- children = _a.children;
94
- return /*#__PURE__*/React.createElement("div", {
95
- className: columnClassName("cmp-lsg-text", "text", colour && "cmp-text__colour-".concat(colour))
96
- }, /*#__PURE__*/React.createElement("div", {
97
- id: id,
98
- className: "cmp-text"
99
- }, /*#__PURE__*/React.createElement("p", null, children)));
100
- };
101
- /** vtba/components/lsg/content/button — the variant is a style class on the decoration div. */
102
- var AemButton = function (_a) {
103
- var _b, _c;
104
- var cta = _a.cta;
105
- return /*#__PURE__*/React.createElement("div", {
106
- className: "cmp-lsg-button button--".concat((_b = cta.variant) !== null && _b !== void 0 ? _b : "primary", " ").concat(GRID_COLUMN)
107
- }, /*#__PURE__*/React.createElement("div", {
108
- className: "lsg-button-container"
109
- }, /*#__PURE__*/React.createElement("a", {
110
- className: "lsg-button",
111
- href: (_c = cta.href) !== null && _c !== void 0 ? _c : "#",
112
- target: cta.external ? "_blank" : undefined,
113
- rel: cta.external ? "noopener noreferrer" : undefined,
114
- onClick: cta.onClick
115
- }, /*#__PURE__*/React.createElement("span", {
116
- className: "lsg-button__text"
117
- }, cta.label))));
118
- };
119
- /** Same extension mapping as BannerModel.getVideoMimeType. */
120
- function videoMimeType(url) {
121
- var path = url.split(/[?#]/)[0].toLowerCase();
122
- if (path.endsWith(".mp4")) return "video/mp4";
123
- if (path.endsWith(".webm")) return "video/webm";
124
- if (path.endsWith(".ogg") || path.endsWith(".ogv")) return "video/ogg";
125
- return undefined;
49
+ function bannerClassName(layout, mobileMediaPosition, background, className) {
50
+ return ["lsg-banner", "lsg-banner--".concat(layout), "lsg-banner--mobile-media-".concat(mobileMediaPosition),
51
+ // In AEM this class arrives on the decoration div instead; the SCSS only
52
+ // sets inherited custom properties, so either position works.
53
+ background ? "lsg-banner--bg-".concat(background) : "", className].filter(Boolean).join(" ");
126
54
  }
127
- // ─────────────────────────────────────────────────────────────────────────────
128
- // LsgBanner
129
- // ─────────────────────────────────────────────────────────────────────────────
130
55
  var LsgBanner = function (_a) {
131
56
  var heading = _a.heading,
132
57
  preTitle = _a.preTitle,
@@ -135,15 +60,10 @@ var LsgBanner = function (_a) {
135
60
  copy = _a.copy,
136
61
  ctas = _a.ctas,
137
62
  cta = _a.cta,
138
- preTitleColour = _a.preTitleColour,
139
- headingColour = _a.headingColour,
140
- bodyColour = _a.bodyColour,
141
63
  mediaType = _a.mediaType,
142
64
  imageUrl = _a.imageUrl,
143
65
  _b = _a.imageAlt,
144
66
  imageAlt = _b === void 0 ? "" : _b,
145
- mediaHref = _a.mediaHref,
146
- mediaTarget = _a.mediaTarget,
147
67
  videoUrl = _a.videoUrl,
148
68
  videoPoster = _a.videoPoster,
149
69
  _c = _a.videoControls,
@@ -159,78 +79,65 @@ var LsgBanner = function (_a) {
159
79
  _h = _a.mobileMediaPosition,
160
80
  mobileMediaPosition = _h === void 0 ? "top" : _h,
161
81
  background = _a.background,
162
- accent = _a.accent,
163
82
  _j = _a.headingTag,
164
- headingTag = _j === void 0 ? "h2" : _j,
83
+ headingTag = _j === void 0 ? "h1" : _j,
165
84
  className = _a.className;
166
- var textId = "text-".concat(useId().replace(/[^a-zA-Z0-9]/g, ""));
167
85
  var resolvedPreTitle = preTitle !== null && preTitle !== void 0 ? preTitle : eyebrow;
168
86
  var resolvedBody = body !== null && body !== void 0 ? body : copy;
169
87
  var actions = ((ctas === null || ctas === void 0 ? void 0 : ctas.length) ? ctas : cta ? [cta] : []).slice(0, 3);
170
88
  var resolvedMediaType = mediaType !== null && mediaType !== void 0 ? mediaType : videoUrl ? "video" : "image";
171
89
  var hasMedia = layout !== "text-only" && (resolvedMediaType === "video" ? Boolean(videoUrl) : Boolean(imageUrl));
172
- var picture = /*#__PURE__*/React.createElement("picture", {
173
- className: "lsg-banner__image"
174
- }, /*#__PURE__*/React.createElement("img", {
90
+ var HeadingTag = headingTag;
91
+ return /*#__PURE__*/React.createElement("section", {
92
+ className: bannerClassName(layout, mobileMediaPosition, background, className),
93
+ "data-lsg-is": "banner",
94
+ "data-lsg-banner-layout": layout,
95
+ "data-lsg-banner-mobile-media": mobileMediaPosition,
96
+ "data-lsg-banner-media": hasMedia ? resolvedMediaType : "none"
97
+ }, /*#__PURE__*/React.createElement("div", {
98
+ className: "lsg-banner__shell"
99
+ }, hasMedia && /*#__PURE__*/React.createElement("div", {
100
+ className: "lsg-banner__media"
101
+ }, resolvedMediaType === "video" && videoUrl ? /*#__PURE__*/React.createElement("video", {
102
+ className: "lsg-banner__video",
103
+ src: videoUrl,
104
+ poster: videoPoster,
105
+ controls: videoControls,
106
+ autoPlay: videoAutoPlay,
107
+ muted: videoMuted,
108
+ loop: videoLoop,
109
+ playsInline: true,
110
+ "aria-label": imageAlt || heading
111
+ }) : imageUrl ? /*#__PURE__*/React.createElement("img", {
112
+ className: "lsg-banner__image",
175
113
  src: imageUrl,
176
- alt: imageAlt,
177
- loading: "lazy"
178
- }));
179
- return (
180
- /*#__PURE__*/
181
- // The Sling decoration div. Background / accent style-system classes land
182
- // here in AEM, not on the section.
183
- React.createElement("div", {
184
- className: ["banner teaser", background && "lsg-banner--bg-".concat(background), accent && "lsg-banner--accent-".concat(accent), GRID_COLUMN, className].filter(Boolean).join(" ")
185
- }, /*#__PURE__*/React.createElement("section", {
186
- className: "lsg-banner lsg-banner--".concat(layout, " lsg-banner--mobile-media-").concat(mobileMediaPosition),
187
- "data-lsg-is": "banner",
188
- "data-lsg-banner-layout": layout,
189
- "data-lsg-banner-mobile-media": mobileMediaPosition,
190
- "data-lsg-banner-media": hasMedia ? resolvedMediaType : "none"
191
- }, /*#__PURE__*/React.createElement("div", {
192
- className: "lsg-banner__shell"
193
- }, hasMedia && /*#__PURE__*/React.createElement("div", {
194
- className: "lsg-banner__media"
195
- }, resolvedMediaType === "video" && videoUrl ? /*#__PURE__*/React.createElement("video", {
196
- className: "lsg-banner__video",
197
- poster: videoPoster,
198
- autoPlay: videoAutoPlay,
199
- muted: videoMuted,
200
- loop: videoLoop,
201
- controls: videoControls,
202
- playsInline: true,
203
- "aria-label": imageAlt
204
- }, /*#__PURE__*/React.createElement("source", {
205
- src: videoUrl,
206
- type: videoMimeType(videoUrl)
207
- })) : mediaHref ? /*#__PURE__*/React.createElement("a", {
208
- className: "lsg-banner__media-link",
209
- href: mediaHref,
210
- target: mediaTarget
211
- }, picture) : picture), /*#__PURE__*/React.createElement("div", {
212
- className: "lsg-banner__content"
213
- }, /*#__PURE__*/React.createElement(AemGroup, {
214
- styleClasses: "lsg-group-display--flex lsg-group-direction--column lsg-group-gap--16"
215
- }, resolvedPreTitle && /*#__PURE__*/React.createElement(AemTitle, {
216
- tag: "p",
217
- colour: preTitleColour
218
- }, resolvedPreTitle), /*#__PURE__*/React.createElement(AemTitle, {
219
- tag: headingTag,
220
- colour: headingColour
221
- }, heading)), resolvedBody && /*#__PURE__*/React.createElement(AemGroup, null, /*#__PURE__*/React.createElement(AemText, {
222
- id: textId,
223
- colour: bodyColour
224
- }, resolvedBody)), actions.length > 0 && /*#__PURE__*/React.createElement(AemGroup, {
225
- styleClasses: "lsg-group-display--flex lsg-group-gap--16"
226
- }, actions.map(function (action, index) {
227
- var _a;
228
- return /*#__PURE__*/React.createElement(AemButton, {
229
- key: "".concat(action.label, "-").concat((_a = action.href) !== null && _a !== void 0 ? _a : "button", "-").concat(index),
230
- cta: action
231
- });
232
- }))))))
233
- );
114
+ alt: imageAlt
115
+ }) : null), /*#__PURE__*/React.createElement("div", {
116
+ className: "lsg-banner__content"
117
+ }, resolvedPreTitle && /*#__PURE__*/React.createElement("div", {
118
+ className: "lsg-banner__pre-title"
119
+ }, /*#__PURE__*/React.createElement("span", {
120
+ className: "lsg-banner__pre-title-marker",
121
+ "aria-hidden": "true"
122
+ }), /*#__PURE__*/React.createElement("span", {
123
+ className: "lsg-banner__pre-title-text"
124
+ }, resolvedPreTitle)), /*#__PURE__*/React.createElement(HeadingTag, {
125
+ className: "lsg-banner__heading"
126
+ }, heading), resolvedBody && /*#__PURE__*/React.createElement("div", {
127
+ className: "lsg-banner__body"
128
+ }, /*#__PURE__*/React.createElement("p", null, resolvedBody)), actions.length > 0 && /*#__PURE__*/React.createElement("div", {
129
+ className: "lsg-banner__actions"
130
+ }, actions.map(function (action, index) {
131
+ var _a, _b;
132
+ return /*#__PURE__*/React.createElement(LsgButton, {
133
+ key: "".concat(action.label, "-").concat((_a = action.href) !== null && _a !== void 0 ? _a : "button", "-").concat(index),
134
+ href: action.href,
135
+ external: action.external,
136
+ variant: (_b = action.variant) !== null && _b !== void 0 ? _b : "primary",
137
+ onClick: action.onClick,
138
+ className: "lsg-banner__cta"
139
+ }, action.label);
140
+ })))));
234
141
  };
235
142
 
236
143
  function isSafeUrl$1(url) {
@@ -2569,357 +2476,6 @@ var LsgCards = function (_a) {
2569
2476
  }));
2570
2477
  };
2571
2478
 
2572
- /**
2573
- * Mirrors AEM `vtba/components/content/generated-list` in "LSG Card" mode,
2574
- * including its `cq:htmlTag` wrapper. Card styling comes from LsgCard.
2575
- */
2576
- var LsgGeneratedList = function (_a) {
2577
- var items = _a.items,
2578
- _b = _a.cardVariant,
2579
- cardVariant = _b === void 0 ? "withImage" : _b,
2580
- _c = _a.maxColumns,
2581
- maxColumns = _c === void 0 ? 3 : _c,
2582
- className = _a.className;
2583
- var wrapperClassName = ["c-row--divider", "generated-list", className].filter(Boolean).join(" ");
2584
- return /*#__PURE__*/React.createElement("div", {
2585
- className: wrapperClassName
2586
- }, /*#__PURE__*/React.createElement("div", {
2587
- className: "generated-list-container"
2588
- }, /*#__PURE__*/React.createElement("ul", {
2589
- className: "generated-list-container__ul lsg-cards lsg-cards--cols-".concat(maxColumns),
2590
- "data-total-items": items.length,
2591
- "data-item-per-row": maxColumns,
2592
- "data-columns": maxColumns
2593
- }, items.map(function (item, index) {
2594
- var _a;
2595
- return /*#__PURE__*/React.createElement("li", {
2596
- className: "lsg-cards__item",
2597
- key: "".concat(item.href, "-").concat(index)
2598
- }, /*#__PURE__*/React.createElement(LsgCard, _extends({}, item, {
2599
- imageAlt: (_a = item.imageAlt) !== null && _a !== void 0 ? _a : item.title,
2600
- variant: cardVariant
2601
- })));
2602
- }))));
2603
- };
2604
-
2605
- /******************************************************************************
2606
- Copyright (c) Microsoft Corporation.
2607
-
2608
- Permission to use, copy, modify, and/or distribute this software for any
2609
- purpose with or without fee is hereby granted.
2610
-
2611
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
2612
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
2613
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
2614
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
2615
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
2616
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2617
- PERFORMANCE OF THIS SOFTWARE.
2618
- ***************************************************************************** */
2619
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
2620
-
2621
- var __assign = function () {
2622
- __assign = Object.assign || function __assign(t) {
2623
- for (var s, i = 1, n = arguments.length; i < n; i++) {
2624
- s = arguments[i];
2625
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2626
- }
2627
- return t;
2628
- };
2629
- return __assign.apply(this, arguments);
2630
- };
2631
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
2632
- var e = new Error(message);
2633
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
2634
- };
2635
-
2636
- var DEFAULT_LABELS = {
2637
- nav: "Pagination",
2638
- first: "First",
2639
- previous: "Previous",
2640
- next: "Next",
2641
- last: "Last",
2642
- page: function (page) {
2643
- return "Page ".concat(page);
2644
- }
2645
- };
2646
- /**
2647
- * Page numbers to show: always the first and last page plus the current page
2648
- * ± `siblingCount`. A gap of a single page shows that page rather than "…".
2649
- * Page 2 of 6 → [1, 2, 3, "ellipsis", 6].
2650
- */
2651
- function getLsgPaginationRange(currentPage, totalPages, siblingCount) {
2652
- if (siblingCount === void 0) {
2653
- siblingCount = 1;
2654
- }
2655
- if (totalPages < 1) {
2656
- return [];
2657
- }
2658
- var current = Math.min(Math.max(currentPage, 1), totalPages);
2659
- var pages = new Set([1, totalPages]);
2660
- for (var page = current - siblingCount; page <= current + siblingCount; page += 1) {
2661
- if (page >= 1 && page <= totalPages) {
2662
- pages.add(page);
2663
- }
2664
- }
2665
- var sorted = Array.from(pages).sort(function (a, b) {
2666
- return a - b;
2667
- });
2668
- var range = [];
2669
- sorted.forEach(function (page, index) {
2670
- var previous = sorted[index - 1];
2671
- if (previous !== undefined) {
2672
- if (page - previous === 2) {
2673
- range.push(previous + 1);
2674
- } else if (page - previous > 2) {
2675
- range.push("ellipsis");
2676
- }
2677
- }
2678
- range.push(page);
2679
- });
2680
- return range;
2681
- }
2682
- // Left-pointing glyphs on a 24×24 grid; next/last mirror them. Each control
2683
- // carries every glyph its themes need and theme CSS shows one: theme 1 uses
2684
- // the chevrons (‹ «), theme 2 the bar (|<), theme 3 the arrow (←).
2685
- var GLYPHS = {
2686
- previous: {
2687
- chevron: "M14.5 6.5 9 12l5.5 5.5",
2688
- arrow: "M19 12H5M11 6l-6 6 6 6"
2689
- },
2690
- first: {
2691
- "chevron-double": "M12 6.5 6.5 12l5.5 5.5M18 6.5 12.5 12l5.5 5.5",
2692
- bar: "M7 6.5v11M16.5 6.5 11 12l5.5 5.5"
2693
- }
2694
- };
2695
- var PaginationIcon = function (_a) {
2696
- var kind = _a.kind;
2697
- var glyphs = GLYPHS[kind === "first" || kind === "last" ? "first" : "previous"];
2698
- var mirrored = kind === "next" || kind === "last";
2699
- return /*#__PURE__*/React.createElement("svg", {
2700
- className: "lsg-pagination__icon",
2701
- xmlns: "http://www.w3.org/2000/svg",
2702
- viewBox: "0 0 24 24",
2703
- "aria-hidden": "true",
2704
- focusable: "false"
2705
- }, /*#__PURE__*/React.createElement("g", {
2706
- transform: mirrored ? "matrix(-1 0 0 1 24 0)" : undefined
2707
- }, Object.entries(glyphs).map(function (_a) {
2708
- var name = _a[0],
2709
- d = _a[1];
2710
- return /*#__PURE__*/React.createElement("path", {
2711
- key: name,
2712
- className: "lsg-pagination__glyph lsg-pagination__glyph--".concat(name),
2713
- d: d
2714
- });
2715
- })));
2716
- };
2717
- var LsgPagination = function (_a) {
2718
- var currentPage = _a.currentPage,
2719
- totalPages = _a.totalPages,
2720
- onPageChange = _a.onPageChange,
2721
- _b = _a.siblingCount,
2722
- siblingCount = _b === void 0 ? 1 : _b,
2723
- _c = _a.truncate,
2724
- truncate = _c === void 0 ? true : _c,
2725
- _d = _a.showFirstLast,
2726
- showFirstLast = _d === void 0 ? false : _d,
2727
- labels = _a.labels,
2728
- className = _a.className;
2729
- if (totalPages <= 1) {
2730
- return null;
2731
- }
2732
- var text = __assign(__assign({}, DEFAULT_LABELS), labels);
2733
- var current = Math.min(Math.max(currentPage, 1), totalPages);
2734
- var goTo = function (page) {
2735
- if (page !== current && page >= 1 && page <= totalPages) {
2736
- onPageChange(page);
2737
- }
2738
- };
2739
- var control = function (kind, target, disabled) {
2740
- var label = /*#__PURE__*/React.createElement("span", {
2741
- className: "lsg-pagination__label"
2742
- }, text[kind]);
2743
- var iconFirst = kind === "first" || kind === "previous";
2744
- return /*#__PURE__*/React.createElement("li", {
2745
- className: "lsg-pagination__item lsg-pagination__item--".concat(kind)
2746
- }, /*#__PURE__*/React.createElement("button", {
2747
- type: "button",
2748
- className: "lsg-pagination__control lsg-pagination__control--".concat(kind),
2749
- disabled: disabled,
2750
- onClick: function () {
2751
- return goTo(target);
2752
- }
2753
- }, iconFirst && /*#__PURE__*/React.createElement(PaginationIcon, {
2754
- kind: kind
2755
- }), label, !iconFirst && /*#__PURE__*/React.createElement(PaginationIcon, {
2756
- kind: kind
2757
- })));
2758
- };
2759
- return /*#__PURE__*/React.createElement("nav", {
2760
- className: ["lsg-pagination", className].filter(Boolean).join(" "),
2761
- "aria-label": text.nav
2762
- }, /*#__PURE__*/React.createElement("ul", {
2763
- className: "lsg-pagination__list"
2764
- }, showFirstLast && control("first", 1, current === 1), control("previous", current - 1, current === 1), (truncate ? getLsgPaginationRange(current, totalPages, siblingCount) : Array.from({
2765
- length: totalPages
2766
- }, function (_, index) {
2767
- return index + 1;
2768
- })).map(function (item, index) {
2769
- return item === "ellipsis" ? /*#__PURE__*/React.createElement("li", {
2770
- key: "ellipsis-".concat(index),
2771
- className: "lsg-pagination__item lsg-pagination__ellipsis",
2772
- "aria-hidden": "true"
2773
- }, "\u2026") : /*#__PURE__*/React.createElement("li", {
2774
- key: item,
2775
- className: "lsg-pagination__item"
2776
- }, /*#__PURE__*/React.createElement("button", {
2777
- type: "button",
2778
- className: "lsg-pagination__page",
2779
- "aria-label": text.page(item),
2780
- "aria-current": item === current ? "page" : undefined,
2781
- onClick: function () {
2782
- return goTo(item);
2783
- }
2784
- }, /*#__PURE__*/React.createElement("span", {
2785
- className: "lsg-pagination__page-text",
2786
- "data-text": item
2787
- }, item)));
2788
- }), control("next", current + 1, current === totalPages), showFirstLast && control("last", totalPages, current === totalPages)));
2789
- };
2790
-
2791
- var defaultStatusLabel = function (page, totalPages) {
2792
- return "Page ".concat(page, " of ").concat(totalPages);
2793
- };
2794
- /**
2795
- * Client-side, paginated card list for the AEM Generated List when "Enable
2796
- * client-side React rendering" is on. ac-react-app mounts it into the
2797
- * component's placeholder; see mapAemGeneratedListJson for the data.
2798
- */
2799
- var LsgBlogOverview = function (_a) {
2800
- var items = _a.items,
2801
- _b = _a.cardVariant,
2802
- cardVariant = _b === void 0 ? "withImage" : _b,
2803
- _c = _a.maxColumns,
2804
- maxColumns = _c === void 0 ? 3 : _c,
2805
- _d = _a.rows,
2806
- rows = _d === void 0 ? 3 : _d,
2807
- paginationLabels = _a.paginationLabels,
2808
- _e = _a.showFirstLast,
2809
- showFirstLast = _e === void 0 ? false : _e,
2810
- _f = _a.truncatePages,
2811
- truncatePages = _f === void 0 ? true : _f,
2812
- _g = _a.statusLabel,
2813
- statusLabel = _g === void 0 ? defaultStatusLabel : _g,
2814
- className = _a.className;
2815
- var rootRef = useRef(null);
2816
- var _h = useState(1),
2817
- page = _h[0],
2818
- setPage = _h[1];
2819
- var _j = useState(""),
2820
- status = _j[0],
2821
- setStatus = _j[1];
2822
- var pageSize = Math.max(1, maxColumns * Math.max(1, rows));
2823
- var totalPages = Math.max(1, Math.ceil(items.length / pageSize));
2824
- // Clamped on read, so a shorter item list never strands the user on an empty page.
2825
- var currentPage = Math.min(page, totalPages);
2826
- var pageItems = items.slice((currentPage - 1) * pageSize, currentPage * pageSize);
2827
- var handlePageChange = function (nextPage) {
2828
- var _a;
2829
- setPage(nextPage);
2830
- setStatus(statusLabel(nextPage, totalPages));
2831
- // Bring the list back into view when its top has scrolled off the screen.
2832
- var root = rootRef.current;
2833
- if (root && root.getBoundingClientRect().top < 0) {
2834
- var reduceMotion = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, "(prefers-reduced-motion: reduce)").matches;
2835
- root.scrollIntoView({
2836
- behavior: reduceMotion ? "auto" : "smooth",
2837
- block: "start"
2838
- });
2839
- }
2840
- };
2841
- return /*#__PURE__*/React.createElement("div", {
2842
- ref: rootRef,
2843
- className: ["lsg-blog-overview", className].filter(Boolean).join(" ")
2844
- }, /*#__PURE__*/React.createElement(LsgCards, {
2845
- columns: maxColumns,
2846
- cards: pageItems.map(function (item) {
2847
- var _a;
2848
- return __assign(__assign({}, item), {
2849
- imageAlt: (_a = item.imageAlt) !== null && _a !== void 0 ? _a : item.title,
2850
- variant: cardVariant
2851
- });
2852
- })
2853
- }), /*#__PURE__*/React.createElement(LsgPagination, {
2854
- currentPage: currentPage,
2855
- totalPages: totalPages,
2856
- onPageChange: handlePageChange,
2857
- labels: paginationLabels,
2858
- showFirstLast: showFirstLast,
2859
- truncate: truncatePages
2860
- }), /*#__PURE__*/React.createElement("p", {
2861
- className: "lsg-visually-hidden",
2862
- "aria-live": "polite"
2863
- }, status));
2864
- };
2865
-
2866
- var CARD_VARIANTS = ["withImage", "onlyText", "withIcon"];
2867
- var isRecord = function (value) {
2868
- return typeof value === "object" && value !== null && !Array.isArray(value);
2869
- };
2870
- /** Trimmed string, or undefined for anything empty or not a string. */
2871
- var text = function (value) {
2872
- return typeof value === "string" && value.trim() ? value.trim() : undefined;
2873
- };
2874
- function toColumns(value) {
2875
- var columns = Number.parseInt(String(value), 10);
2876
- return columns >= 2 && columns <= 5 ? columns : 3;
2877
- }
2878
- function toCardVariant(value) {
2879
- var _a;
2880
- return (_a = CARD_VARIANTS.find(function (variant) {
2881
- return variant === value;
2882
- })) !== null && _a !== void 0 ? _a : "withImage";
2883
- }
2884
- function toItem(raw) {
2885
- var _a;
2886
- if (!isRecord(raw)) {
2887
- return null;
2888
- }
2889
- var path = text(raw.path);
2890
- var title = (_a = text(raw.referenceTitle)) !== null && _a !== void 0 ? _a : text(raw["jcr:title"]);
2891
- if (!path || !title) {
2892
- return null;
2893
- }
2894
- var image = text(raw.referenceImage);
2895
- return {
2896
- // The HTL adds the extension with `@ extension='html'`; the JSON doesn't.
2897
- href: path.endsWith(".html") ? path : "".concat(path, ".html"),
2898
- title: title,
2899
- preTitle: text(raw.referencePreTitle),
2900
- subtitle: text(raw.referenceSubtitle),
2901
- description: text(raw.referenceText),
2902
- // DAM file names can contain spaces.
2903
- imageUrl: image ? encodeURI(image) : undefined
2904
- };
2905
- }
2906
- /**
2907
- * Maps the AEM Generated List JSON to LsgBlogOverview props. Tolerates missing
2908
- * or malformed fields and never throws on the shape; items without a path or
2909
- * title are dropped.
2910
- */
2911
- function mapAemGeneratedListJson(json) {
2912
- var data = isRecord(json) ? json : {};
2913
- var items = Array.isArray(data.items) ? data.items.map(toItem).filter(function (item) {
2914
- return item !== null;
2915
- }) : [];
2916
- return {
2917
- items: items,
2918
- cardVariant: toCardVariant(data.cardVariant),
2919
- maxColumns: toColumns(data.maxColumns)
2920
- };
2921
- }
2922
-
2923
2479
  var LSG_ICON_PATHS = {
2924
2480
  bars: "M96 160C96 142.3 110.3 128 128 128L512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192L128 192C110.3 192 96 177.7 96 160zM96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320zM544 480C544 497.7 529.7 512 512 512L128 512C110.3 512 96 497.7 96 480C96 462.3 110.3 448 128 448L512 448C529.7 448 544 462.3 544 480z",
2925
2481
  chevronLeft: "M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z",
@@ -3825,12 +3381,12 @@ var PhoneIcon = function () {
3825
3381
  return /*#__PURE__*/React.createElement("svg", {
3826
3382
  width: "20",
3827
3383
  height: "20",
3828
- viewBox: "0 0 640 640",
3384
+ viewBox: "0 0 20 20",
3829
3385
  fill: "none",
3830
3386
  xmlns: "http://www.w3.org/2000/svg",
3831
3387
  "aria-hidden": "true"
3832
3388
  }, /*#__PURE__*/React.createElement("path", {
3833
- d: "M252.6 259L304.4 208L208.4 48L64.4 128L64.4 144C64.4 382.6 257.8 576 496.4 576L512.4 576L592.4 432L432.4 336L381.4 387.8C322.2 365 275.4 318.2 252.6 259zM440.1 396.6L527.9 449.3L484.3 527.8C281.9 521.5 118.9 358.6 112.6 156.1L191.1 112.5L243.8 200.3C226.8 217.1 211 232.6 196.5 246.9L207.8 276.3C235.5 348.2 292.3 404.9 364.1 432.6L393.5 443.9C407.8 429.4 423.3 413.6 440.1 396.6z",
3389
+ d: "M15.833 13.483c-.417-.416-1.25-.833-1.875-1.083-.625-.25-1.042-.167-1.458.208l-.834.833c-.208.209-.5.209-.708.042-.625-.5-1.833-1.583-2.583-2.333-.75-.75-1.75-1.875-2.25-2.583-.167-.208-.125-.5.083-.709l.834-.833c.416-.417.5-.833.25-1.458-.25-.625-.667-1.458-1.084-1.875C8.791 3.25 8.208 3 7.583 3c-.416 0-.833.167-1.125.458L5.625 4.292C4.5 5.417 4.708 7.125 5.333 8.833c.625 1.708 2 3.833 3.625 5.458 1.625 1.625 3.75 3 5.458 3.625 1.709.625 3.417.833 4.542-.292l.833-.833c.292-.292.458-.708.458-1.125 0-.625-.25-1.208-.416-1.583z",
3834
3390
  fill: "currentColor"
3835
3391
  }));
3836
3392
  };
@@ -3851,12 +3407,12 @@ var MailIcon = function () {
3851
3407
  return /*#__PURE__*/React.createElement("svg", {
3852
3408
  width: "24",
3853
3409
  height: "20",
3854
- viewBox: "0 0 640 640",
3410
+ viewBox: "0 0 24 20",
3855
3411
  fill: "none",
3856
3412
  xmlns: "http://www.w3.org/2000/svg",
3857
3413
  "aria-hidden": "true"
3858
3414
  }, /*#__PURE__*/React.createElement("path", {
3859
- d: "M88 128L64 128L64 512L576 512L576 128L88 128zM528 192L528 196.1L320 353.9L112 196.1L112 176L528 176L528 192zM528 256.3L528 464L112 464L112 256.3L305.5 403.1L320 414.1L334.5 403.1L528 256.3z",
3415
+ d: "M20 0H4C2.9 0 2 .9 2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V2l8 5 8-5v2z",
3860
3416
  fill: "currentColor"
3861
3417
  }));
3862
3418
  };
@@ -3902,12 +3458,12 @@ var SocialIcon = function (_a) {
3902
3458
  facebook: /*#__PURE__*/React.createElement("svg", {
3903
3459
  width: "20",
3904
3460
  height: "20",
3905
- viewBox: "0 0 640 640",
3461
+ viewBox: "0 0 24 24",
3906
3462
  fill: "currentColor",
3907
3463
  xmlns: "http://www.w3.org/2000/svg",
3908
3464
  "aria-hidden": "true"
3909
3465
  }, /*#__PURE__*/React.createElement("path", {
3910
- d: "M240 363.3L240 576L356 576L356 363.3L442.5 363.3L460.5 265.5L356 265.5L356 230.9C356 179.2 376.3 159.4 428.7 159.4C445 159.4 458.1 159.8 465.7 160.6L465.7 71.9C451.4 68 416.4 64 396.2 64C289.3 64 240 114.5 240 223.4L240 265.5L174 265.5L174 363.3L240 363.3z"
3466
+ d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"
3911
3467
  })),
3912
3468
  twitter: /*#__PURE__*/React.createElement("svg", {
3913
3469
  width: "20",
@@ -3922,32 +3478,52 @@ var SocialIcon = function (_a) {
3922
3478
  linkedin: /*#__PURE__*/React.createElement("svg", {
3923
3479
  width: "20",
3924
3480
  height: "20",
3925
- viewBox: "0 0 640 640",
3481
+ viewBox: "0 0 24 24",
3926
3482
  fill: "currentColor",
3927
3483
  xmlns: "http://www.w3.org/2000/svg",
3928
3484
  "aria-hidden": "true"
3929
3485
  }, /*#__PURE__*/React.createElement("path", {
3930
- d: "M196.3 512L103.4 512L103.4 212.9L196.3 212.9L196.3 512zM149.8 172.1C120.1 172.1 96 147.5 96 117.8C96 103.5 101.7 89.9 111.8 79.8C121.9 69.7 135.6 64 149.8 64C164 64 177.7 69.7 187.8 79.8C197.9 89.9 203.6 103.6 203.6 117.8C203.6 147.5 179.5 172.1 149.8 172.1zM543.9 512L451.2 512L451.2 366.4C451.2 331.7 450.5 287.2 402.9 287.2C354.6 287.2 347.2 324.9 347.2 363.9L347.2 512L254.4 512L254.4 212.9L343.5 212.9L343.5 253.7L344.8 253.7C357.2 230.2 387.5 205.4 432.7 205.4C526.7 205.4 544 267.3 544 347.7L544 512L543.9 512z"
3486
+ d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z"
3487
+ }), /*#__PURE__*/React.createElement("circle", {
3488
+ cx: "4",
3489
+ cy: "4",
3490
+ r: "2"
3931
3491
  })),
3932
3492
  youtube: /*#__PURE__*/React.createElement("svg", {
3933
3493
  width: "20",
3934
3494
  height: "20",
3935
- viewBox: "0 0 640 640",
3495
+ viewBox: "0 0 24 24",
3936
3496
  fill: "currentColor",
3937
3497
  xmlns: "http://www.w3.org/2000/svg",
3938
3498
  "aria-hidden": "true"
3939
3499
  }, /*#__PURE__*/React.createElement("path", {
3940
- d: "M581.7 188.1C575.5 164.4 556.9 145.8 533.4 139.5C490.9 128 320.1 128 320.1 128C320.1 128 149.3 128 106.7 139.5C83.2 145.8 64.7 164.4 58.4 188.1C47 231 47 320.4 47 320.4C47 320.4 47 409.8 58.4 452.7C64.7 476.3 83.2 494.2 106.7 500.5C149.3 512 320.1 512 320.1 512C320.1 512 490.9 512 533.5 500.5C557 494.2 575.5 476.3 581.8 452.7C593.2 409.8 593.2 320.4 593.2 320.4C593.2 320.4 593.2 231 581.8 188.1zM264.2 401.6L264.2 239.2L406.9 320.4L264.2 401.6z"
3500
+ d: "M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.4a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58zM9.75 15.02V8.98L15.5 12l-5.75 3.02z"
3941
3501
  })),
3942
3502
  instagram: /*#__PURE__*/React.createElement("svg", {
3943
3503
  width: "20",
3944
3504
  height: "20",
3945
- viewBox: "0 0 640 640",
3946
- fill: "currentColor",
3505
+ viewBox: "0 0 24 24",
3506
+ fill: "none",
3507
+ stroke: "currentColor",
3508
+ strokeWidth: "2",
3947
3509
  xmlns: "http://www.w3.org/2000/svg",
3948
3510
  "aria-hidden": "true"
3949
- }, /*#__PURE__*/React.createElement("path", {
3950
- d: "M320.3 205C256.8 204.8 205.2 256.2 205 319.7C204.8 383.2 256.2 434.8 319.7 435C383.2 435.2 434.8 383.8 435 320.3C435.2 256.8 383.8 205.2 320.3 205zM319.7 245.4C360.9 245.2 394.4 278.5 394.6 319.7C394.8 360.9 361.5 394.4 320.3 394.6C279.1 394.8 245.6 361.5 245.4 320.3C245.2 279.1 278.5 245.6 319.7 245.4zM413.1 200.3C413.1 185.5 425.1 173.5 439.9 173.5C454.7 173.5 466.7 185.5 466.7 200.3C466.7 215.1 454.7 227.1 439.9 227.1C425.1 227.1 413.1 215.1 413.1 200.3zM542.8 227.5C541.1 191.6 532.9 159.8 506.6 133.6C480.4 107.4 448.6 99.2 412.7 97.4C375.7 95.3 264.8 95.3 227.8 97.4C192 99.1 160.2 107.3 133.9 133.5C107.6 159.7 99.5 191.5 97.7 227.4C95.6 264.4 95.6 375.3 97.7 412.3C99.4 448.2 107.6 480 133.9 506.2C160.2 532.4 191.9 540.6 227.8 542.4C264.8 544.5 375.7 544.5 412.7 542.4C448.6 540.7 480.4 532.5 506.6 506.2C532.8 480 541 448.2 542.8 412.3C544.9 375.3 544.9 264.5 542.8 227.5zM495 452C487.2 471.6 472.1 486.7 452.4 494.6C422.9 506.3 352.9 503.6 320.3 503.6C287.7 503.6 217.6 506.2 188.2 494.6C168.6 486.8 153.5 471.7 145.6 452C133.9 422.5 136.6 352.5 136.6 319.9C136.6 287.3 134 217.2 145.6 187.8C153.4 168.2 168.5 153.1 188.2 145.2C217.7 133.5 287.7 136.2 320.3 136.2C352.9 136.2 423 133.6 452.4 145.2C472 153 487.1 168.1 495 187.8C506.7 217.3 504 287.3 504 319.9C504 352.5 506.7 422.6 495 452z"
3511
+ }, /*#__PURE__*/React.createElement("rect", {
3512
+ x: "2",
3513
+ y: "2",
3514
+ width: "20",
3515
+ height: "20",
3516
+ rx: "5",
3517
+ ry: "5"
3518
+ }), /*#__PURE__*/React.createElement("circle", {
3519
+ cx: "12",
3520
+ cy: "12",
3521
+ r: "4"
3522
+ }), /*#__PURE__*/React.createElement("circle", {
3523
+ cx: "17.5",
3524
+ cy: "6.5",
3525
+ r: "0.5",
3526
+ fill: "currentColor"
3951
3527
  }))
3952
3528
  };
3953
3529
  return /*#__PURE__*/React.createElement(React.Fragment, null, (_b = icons[platform]) !== null && _b !== void 0 ? _b : null);
@@ -4007,9 +3583,9 @@ var LsgFooter = function (_a) {
4007
3583
  className: "lsg-footer lsg-footer--simple lsg-footer--simple-tworow".concat(className ? " ".concat(className) : "")
4008
3584
  }, /*#__PURE__*/React.createElement("div", {
4009
3585
  className: "lsg-footer__simple-top"
4010
- }, /*#__PURE__*/React.createElement("div", {
3586
+ }, /*#__PURE__*/React.createElement("span", {
4011
3587
  className: "lsg-footer__brand-line"
4012
- }, /*#__PURE__*/React.createElement("span", null, brandLine)), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3588
+ }, brandLine), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
4013
3589
  className: "lsg-footer__simple-nav",
4014
3590
  "aria-label": "Footer navigation"
4015
3591
  }, navItems.map(function (item, i) {
@@ -4026,13 +3602,12 @@ var LsgFooter = function (_a) {
4026
3602
  className: "lsg-footer__simple-bottom"
4027
3603
  }, /*#__PURE__*/React.createElement("div", {
4028
3604
  className: "lsg-footer__simple-bottom-left"
4029
- }, /*#__PURE__*/React.createElement("p", {
3605
+ }, cookieSetting && /*#__PURE__*/React.createElement("a", {
3606
+ href: "#",
3607
+ className: "lsg-footer__cookie-link"
3608
+ }, cookieSetting), /*#__PURE__*/React.createElement("p", {
4030
3609
  className: "lsg-footer__copyright"
4031
- }, copyrightText),
4032
- // This renders a One Trust cookie settings button in AEM. The class "lsg-footer__cookie-button" is used for styling and is unrelated to the functionality of the button itself.
4033
- cookieSetting && /*#__PURE__*/React.createElement("button", {
4034
- className: "lsg-footer__cookie-button"
4035
- }, cookieSetting)), showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)));
3610
+ }, copyrightText)), showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)));
4036
3611
  }
4037
3612
  return /*#__PURE__*/React.createElement("footer", {
4038
3613
  className: "lsg-footer lsg-footer--simple".concat(className ? " ".concat(className) : "")
@@ -4040,9 +3615,7 @@ var LsgFooter = function (_a) {
4040
3615
  className: "lsg-footer__simple-inner"
4041
3616
  }, /*#__PURE__*/React.createElement("p", {
4042
3617
  className: "lsg-footer__copyright"
4043
- }, copyrightText), /*#__PURE__*/React.createElement("div", {
4044
- className: "lsg-footer__brand-line"
4045
- }, /*#__PURE__*/React.createElement("span", null, brandLine)), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3618
+ }, copyrightText), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
4046
3619
  className: "lsg-footer__simple-nav",
4047
3620
  "aria-label": "Footer navigation"
4048
3621
  }, navItems.map(function (item, i) {
@@ -4058,11 +3631,7 @@ var LsgFooter = function (_a) {
4058
3631
  href: item.href,
4059
3632
  className: "lsg-footer__simple-nav-item"
4060
3633
  }, item.label));
4061
- })),
4062
- // This renders a One Trust cookie settings button in AEM. The class "lsg-footer__cookie-button" is used for styling and is unrelated to the functionality of the button itself.
4063
- cookieSetting && /*#__PURE__*/React.createElement("button", {
4064
- className: "lsg-footer__cookie-button"
4065
- }, cookieSetting)));
3634
+ }))));
4066
3635
  }
4067
3636
  // ── Complex footer ─────────────────────────────────────────────────────────
4068
3637
  var is3col = complexColumns === "3col";
@@ -4072,28 +3641,18 @@ var LsgFooter = function (_a) {
4072
3641
  about: (_d = colHeadings === null || colHeadings === void 0 ? void 0 : colHeadings.about) !== null && _d !== void 0 ? _d : "About brand",
4073
3642
  contactAlt: (_e = colHeadings === null || colHeadings === void 0 ? void 0 : colHeadings.contactAlt) !== null && _e !== void 0 ? _e : "Contact"
4074
3643
  };
4075
- var bottomTopBar = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4076
- className: "lsg-footer__bottom-top"
4077
- }, /*#__PURE__*/React.createElement("div", {
4078
- className: "lsg-footer__brand-line"
4079
- }, /*#__PURE__*/React.createElement("span", null, "Discover how the Atlas Copco Group enables technology that transforms the future.")), /*#__PURE__*/React.createElement("div", {
4080
- className: "lsg-footer__body-social"
4081
- }, socialPosition === "body" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement(SocialIconsRow, {
4082
- links: socialLinks
4083
- }))));
4084
3644
  var bottomBar = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("hr", {
4085
3645
  className: "lsg-footer__bottom-divider"
4086
3646
  }), /*#__PURE__*/React.createElement("div", {
4087
3647
  className: "lsg-footer__bottom"
4088
3648
  }, /*#__PURE__*/React.createElement("div", {
4089
3649
  className: "lsg-footer__bottom-left"
4090
- }, /*#__PURE__*/React.createElement("p", {
3650
+ }, cookieSetting && /*#__PURE__*/React.createElement("a", {
3651
+ href: "#",
3652
+ className: "lsg-footer__cookie-link"
3653
+ }, cookieSetting), /*#__PURE__*/React.createElement("p", {
4091
3654
  className: "lsg-footer__copyright"
4092
- }, copyrightText),
4093
- // This renders a One Trust cookie settings button in AEM. The class "lsg-footer__cookie-button" is used for styling and is unrelated to the functionality of the button itself.
4094
- cookieSetting && /*#__PURE__*/React.createElement("button", {
4095
- className: "lsg-footer__cookie-button"
4096
- }, cookieSetting), is3col && showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)), !is3col && showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null), socialPosition === "bottom-bar" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement(SocialIconsRow, {
3655
+ }, copyrightText), is3col && showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)), !is3col && showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null), socialPosition === "bottom-bar" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement(SocialIconsRow, {
4097
3656
  links: socialLinks
4098
3657
  })));
4099
3658
  if (is3col) {
@@ -4144,7 +3703,11 @@ var LsgFooter = function (_a) {
4144
3703
  }, link.label), /*#__PURE__*/React.createElement("hr", {
4145
3704
  className: "lsg-footer__divider"
4146
3705
  }));
4147
- }))))), bottomTopBar, bottomBar);
3706
+ })), socialPosition === "body" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement("div", {
3707
+ className: "lsg-footer__body-social"
3708
+ }, /*#__PURE__*/React.createElement(SocialIconsRow, {
3709
+ links: socialLinks
3710
+ }))))), bottomBar);
4148
3711
  }
4149
3712
  return /*#__PURE__*/React.createElement("footer", {
4150
3713
  className: "lsg-footer lsg-footer--complex".concat(className ? " ".concat(className) : "")
@@ -4191,7 +3754,11 @@ var LsgFooter = function (_a) {
4191
3754
  }, link.label), /*#__PURE__*/React.createElement("hr", {
4192
3755
  className: "lsg-footer__divider"
4193
3756
  }));
4194
- }))))), bottomTopBar, bottomBar);
3757
+ })), socialPosition === "body" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement("div", {
3758
+ className: "lsg-footer__body-social"
3759
+ }, /*#__PURE__*/React.createElement(SocialIconsRow, {
3760
+ links: socialLinks
3761
+ }))))), bottomBar);
4195
3762
  };
4196
3763
 
4197
3764
  function clampNumber(number, min, max) {
@@ -4994,10 +4561,18 @@ var LsgTable = function (_a) {
4994
4561
  id = _a.id,
4995
4562
  className = _a.className;
4996
4563
  var wrapperClassName = ["table-focus", "background-color-".concat(headerBackground), "accent-color-".concat(accentColors), "no-alternating-rows-".concat(noAlternatingRows), className].filter(Boolean).join(" ");
4564
+ // Keep the normal 3-column Figma layout untouched. Wider tables get a
4565
+ // 120px-per-column minimum so the existing overflow-x wrapper can be tested
4566
+ // and used naturally on mobile instead of squeezing every column.
4567
+ var tableStyle = headers.length > 3 ? {
4568
+ minWidth: "".concat(headers.length * 120, "px")
4569
+ } : undefined;
4997
4570
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4998
4571
  id: id,
4999
4572
  className: wrapperClassName
5000
- }, /*#__PURE__*/React.createElement("table", null, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, headers.map(function (cell, index) {
4573
+ }, /*#__PURE__*/React.createElement("table", {
4574
+ style: tableStyle
4575
+ }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, headers.map(function (cell, index) {
5001
4576
  return /*#__PURE__*/React.createElement("td", {
5002
4577
  key: "header-".concat(index)
5003
4578
  }, cell);
@@ -5762,9 +5337,6 @@ var BASE_COMPONENTS = {
5762
5337
  LsgCarousel: LsgCarousel,
5763
5338
  LsgCard: LsgCard,
5764
5339
  LsgCards: LsgCards,
5765
- LsgGeneratedList: LsgGeneratedList,
5766
- LsgPagination: LsgPagination,
5767
- LsgBlogOverview: LsgBlogOverview,
5768
5340
  LsgBreadcrumb: LsgBreadcrumb,
5769
5341
  LsgLogo: LsgLogo,
5770
5342
  LsgNavigation: LsgNavigation,
@@ -5805,9 +5377,6 @@ function createThemeComponents(themeName) {
5805
5377
  LsgCarousel: createThemeComponent(themeName, "carousel", BASE_COMPONENTS.LsgCarousel),
5806
5378
  LsgCard: createThemeComponent(themeName, "card", BASE_COMPONENTS.LsgCard),
5807
5379
  LsgCards: createThemeComponent(themeName, "cards", BASE_COMPONENTS.LsgCards),
5808
- LsgGeneratedList: createThemeComponent(themeName, "generated-list", BASE_COMPONENTS.LsgGeneratedList),
5809
- LsgPagination: createThemeComponent(themeName, "pagination", BASE_COMPONENTS.LsgPagination),
5810
- LsgBlogOverview: createThemeComponent(themeName, "blog-overview", BASE_COMPONENTS.LsgBlogOverview),
5811
5380
  LsgBreadcrumb: createThemeComponent(themeName, "breadcrumb", BASE_COMPONENTS.LsgBreadcrumb),
5812
5381
  LsgLogo: createThemeComponent(themeName, "logo", BASE_COMPONENTS.LsgLogo),
5813
5382
  LsgNavigation: createThemeComponent(themeName, "navigation", BASE_COMPONENTS.LsgNavigation),
@@ -5840,9 +5409,6 @@ var Theme1LsgButton = theme1Components.LsgButton,
5840
5409
  Theme1LsgCarousel = theme1Components.LsgCarousel,
5841
5410
  Theme1LsgCard = theme1Components.LsgCard,
5842
5411
  Theme1LsgCards = theme1Components.LsgCards,
5843
- Theme1LsgGeneratedList = theme1Components.LsgGeneratedList,
5844
- Theme1LsgPagination = theme1Components.LsgPagination,
5845
- Theme1LsgBlogOverview = theme1Components.LsgBlogOverview,
5846
5412
  Theme1LsgBreadcrumb = theme1Components.LsgBreadcrumb,
5847
5413
  Theme1LsgLogo = theme1Components.LsgLogo,
5848
5414
  Theme1LsgNavigation = theme1Components.LsgNavigation,
@@ -5874,9 +5440,6 @@ var Theme2LsgButton = theme2Components.LsgButton,
5874
5440
  Theme2LsgCarousel = theme2Components.LsgCarousel,
5875
5441
  Theme2LsgCard = theme2Components.LsgCard,
5876
5442
  Theme2LsgCards = theme2Components.LsgCards,
5877
- Theme2LsgGeneratedList = theme2Components.LsgGeneratedList,
5878
- Theme2LsgPagination = theme2Components.LsgPagination,
5879
- Theme2LsgBlogOverview = theme2Components.LsgBlogOverview,
5880
5443
  Theme2LsgBreadcrumb = theme2Components.LsgBreadcrumb,
5881
5444
  Theme2LsgLogo = theme2Components.LsgLogo,
5882
5445
  Theme2LsgNavigation = theme2Components.LsgNavigation,
@@ -5906,9 +5469,6 @@ var Theme3LsgButton = theme3Components.LsgButton,
5906
5469
  Theme3LsgCarousel = theme3Components.LsgCarousel,
5907
5470
  Theme3LsgCard = theme3Components.LsgCard,
5908
5471
  Theme3LsgCards = theme3Components.LsgCards,
5909
- Theme3LsgGeneratedList = theme3Components.LsgGeneratedList,
5910
- Theme3LsgPagination = theme3Components.LsgPagination,
5911
- Theme3LsgBlogOverview = theme3Components.LsgBlogOverview,
5912
5472
  Theme3LsgBreadcrumb = theme3Components.LsgBreadcrumb,
5913
5473
  Theme3LsgLogo = theme3Components.LsgLogo,
5914
5474
  Theme3LsgNavigation = theme3Components.LsgNavigation,
@@ -5932,5 +5492,5 @@ var Theme3LsgButton = theme3Components.LsgButton,
5932
5492
  theme3Components.LsgFormFieldConsent;
5933
5493
  theme3Components.LsgFormStep;
5934
5494
 
5935
- export { LsgBanner, LsgBlogOverview, LsgBreadcrumb, LsgButton, LsgCard, LsgCards, LsgCarousel, LsgCarouselController, LsgFooter, LsgGeneratedList, LsgHeader, LsgHero, LsgHeroCard, LsgHeroController, LsgLanguageSwitcher, LsgLogo, LsgNavigation, LsgPagination, LsgQuickLinks, LsgSearchOverlay, LsgSearchTrigger, LsgSocialMediaIcons, LsgTable, Theme1LsgBanner, Theme1LsgBlogOverview, Theme1LsgBreadcrumb, Theme1LsgButton, Theme1LsgCard, Theme1LsgCards, Theme1LsgCarousel, Theme1LsgFooter, Theme1LsgGeneratedList, Theme1LsgHeader, Theme1LsgHero, Theme1LsgLanguageSwitcher, Theme1LsgLogo, Theme1LsgNavigation, Theme1LsgPagination, Theme1LsgQuickLinks, Theme1LsgSearchOverlay, Theme1LsgSearchTrigger, Theme1LsgSocialMediaIcons, Theme1LsgTable, Theme2LsgBanner, Theme2LsgBlogOverview, Theme2LsgBreadcrumb, Theme2LsgButton, Theme2LsgCard, Theme2LsgCards, Theme2LsgCarousel, Theme2LsgFooter, Theme2LsgGeneratedList, Theme2LsgHeader, Theme2LsgHero, Theme2LsgLanguageSwitcher, Theme2LsgLogo, Theme2LsgNavigation, Theme2LsgPagination, Theme2LsgQuickLinks, Theme2LsgSearchOverlay, Theme2LsgSearchTrigger, Theme2LsgSocialMediaIcons, Theme2LsgTable, Theme3LsgBanner, Theme3LsgBlogOverview, Theme3LsgBreadcrumb, Theme3LsgButton, Theme3LsgCard, Theme3LsgCards, Theme3LsgCarousel, Theme3LsgFooter, Theme3LsgGeneratedList, Theme3LsgHeader, Theme3LsgHero, Theme3LsgLanguageSwitcher, Theme3LsgLogo, Theme3LsgNavigation, Theme3LsgPagination, Theme3LsgQuickLinks, Theme3LsgSearchOverlay, Theme3LsgSearchTrigger, Theme3LsgSocialMediaIcons, Theme3LsgTable, getLsgPaginationRange, getTelValue, initTelPickers, mapAemGeneratedListJson, theme1Components, theme2Components, theme3Components };
5495
+ export { LsgBanner, LsgBreadcrumb, LsgButton, LsgCard, LsgCards, LsgCarousel, LsgCarouselController, LsgFooter, LsgHeader, LsgHero, LsgHeroCard, LsgHeroController, LsgLanguageSwitcher, LsgLogo, LsgNavigation, LsgQuickLinks, LsgSearchOverlay, LsgSearchTrigger, LsgSocialMediaIcons, LsgTable, Theme1LsgBanner, Theme1LsgBreadcrumb, Theme1LsgButton, Theme1LsgCard, Theme1LsgCards, Theme1LsgCarousel, Theme1LsgFooter, Theme1LsgHeader, Theme1LsgHero, Theme1LsgLanguageSwitcher, Theme1LsgLogo, Theme1LsgNavigation, Theme1LsgQuickLinks, Theme1LsgSearchOverlay, Theme1LsgSearchTrigger, Theme1LsgSocialMediaIcons, Theme1LsgTable, Theme2LsgBanner, Theme2LsgBreadcrumb, Theme2LsgButton, Theme2LsgCard, Theme2LsgCards, Theme2LsgCarousel, Theme2LsgFooter, Theme2LsgHeader, Theme2LsgHero, Theme2LsgLanguageSwitcher, Theme2LsgLogo, Theme2LsgNavigation, Theme2LsgQuickLinks, Theme2LsgSearchOverlay, Theme2LsgSearchTrigger, Theme2LsgSocialMediaIcons, Theme2LsgTable, Theme3LsgBanner, Theme3LsgBreadcrumb, Theme3LsgButton, Theme3LsgCard, Theme3LsgCards, Theme3LsgCarousel, Theme3LsgFooter, Theme3LsgHeader, Theme3LsgHero, Theme3LsgLanguageSwitcher, Theme3LsgLogo, Theme3LsgNavigation, Theme3LsgQuickLinks, Theme3LsgSearchOverlay, Theme3LsgSearchTrigger, Theme3LsgSocialMediaIcons, Theme3LsgTable, getTelValue, initTelPickers, theme1Components, theme2Components, theme3Components };
5936
5496
  //# sourceMappingURL=index.esm.js.map