@asante-org/atlascopco-vt-litesitegenerator 3.8.5 → 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.
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) {
@@ -3474,12 +3381,12 @@ var PhoneIcon = function () {
3474
3381
  return /*#__PURE__*/React.createElement("svg", {
3475
3382
  width: "20",
3476
3383
  height: "20",
3477
- viewBox: "0 0 640 640",
3384
+ viewBox: "0 0 20 20",
3478
3385
  fill: "none",
3479
3386
  xmlns: "http://www.w3.org/2000/svg",
3480
3387
  "aria-hidden": "true"
3481
3388
  }, /*#__PURE__*/React.createElement("path", {
3482
- 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",
3483
3390
  fill: "currentColor"
3484
3391
  }));
3485
3392
  };
@@ -3500,12 +3407,12 @@ var MailIcon = function () {
3500
3407
  return /*#__PURE__*/React.createElement("svg", {
3501
3408
  width: "24",
3502
3409
  height: "20",
3503
- viewBox: "0 0 640 640",
3410
+ viewBox: "0 0 24 20",
3504
3411
  fill: "none",
3505
3412
  xmlns: "http://www.w3.org/2000/svg",
3506
3413
  "aria-hidden": "true"
3507
3414
  }, /*#__PURE__*/React.createElement("path", {
3508
- 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",
3509
3416
  fill: "currentColor"
3510
3417
  }));
3511
3418
  };
@@ -3551,12 +3458,12 @@ var SocialIcon = function (_a) {
3551
3458
  facebook: /*#__PURE__*/React.createElement("svg", {
3552
3459
  width: "20",
3553
3460
  height: "20",
3554
- viewBox: "0 0 640 640",
3461
+ viewBox: "0 0 24 24",
3555
3462
  fill: "currentColor",
3556
3463
  xmlns: "http://www.w3.org/2000/svg",
3557
3464
  "aria-hidden": "true"
3558
3465
  }, /*#__PURE__*/React.createElement("path", {
3559
- 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"
3560
3467
  })),
3561
3468
  twitter: /*#__PURE__*/React.createElement("svg", {
3562
3469
  width: "20",
@@ -3571,32 +3478,52 @@ var SocialIcon = function (_a) {
3571
3478
  linkedin: /*#__PURE__*/React.createElement("svg", {
3572
3479
  width: "20",
3573
3480
  height: "20",
3574
- viewBox: "0 0 640 640",
3481
+ viewBox: "0 0 24 24",
3575
3482
  fill: "currentColor",
3576
3483
  xmlns: "http://www.w3.org/2000/svg",
3577
3484
  "aria-hidden": "true"
3578
3485
  }, /*#__PURE__*/React.createElement("path", {
3579
- 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"
3580
3491
  })),
3581
3492
  youtube: /*#__PURE__*/React.createElement("svg", {
3582
3493
  width: "20",
3583
3494
  height: "20",
3584
- viewBox: "0 0 640 640",
3495
+ viewBox: "0 0 24 24",
3585
3496
  fill: "currentColor",
3586
3497
  xmlns: "http://www.w3.org/2000/svg",
3587
3498
  "aria-hidden": "true"
3588
3499
  }, /*#__PURE__*/React.createElement("path", {
3589
- 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"
3590
3501
  })),
3591
3502
  instagram: /*#__PURE__*/React.createElement("svg", {
3592
3503
  width: "20",
3593
3504
  height: "20",
3594
- viewBox: "0 0 640 640",
3595
- fill: "currentColor",
3505
+ viewBox: "0 0 24 24",
3506
+ fill: "none",
3507
+ stroke: "currentColor",
3508
+ strokeWidth: "2",
3596
3509
  xmlns: "http://www.w3.org/2000/svg",
3597
3510
  "aria-hidden": "true"
3598
- }, /*#__PURE__*/React.createElement("path", {
3599
- 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"
3600
3527
  }))
3601
3528
  };
3602
3529
  return /*#__PURE__*/React.createElement(React.Fragment, null, (_b = icons[platform]) !== null && _b !== void 0 ? _b : null);
@@ -3656,9 +3583,9 @@ var LsgFooter = function (_a) {
3656
3583
  className: "lsg-footer lsg-footer--simple lsg-footer--simple-tworow".concat(className ? " ".concat(className) : "")
3657
3584
  }, /*#__PURE__*/React.createElement("div", {
3658
3585
  className: "lsg-footer__simple-top"
3659
- }, /*#__PURE__*/React.createElement("div", {
3586
+ }, /*#__PURE__*/React.createElement("span", {
3660
3587
  className: "lsg-footer__brand-line"
3661
- }, /*#__PURE__*/React.createElement("span", null, brandLine)), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3588
+ }, brandLine), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3662
3589
  className: "lsg-footer__simple-nav",
3663
3590
  "aria-label": "Footer navigation"
3664
3591
  }, navItems.map(function (item, i) {
@@ -3675,13 +3602,12 @@ var LsgFooter = function (_a) {
3675
3602
  className: "lsg-footer__simple-bottom"
3676
3603
  }, /*#__PURE__*/React.createElement("div", {
3677
3604
  className: "lsg-footer__simple-bottom-left"
3678
- }, /*#__PURE__*/React.createElement("p", {
3605
+ }, cookieSetting && /*#__PURE__*/React.createElement("a", {
3606
+ href: "#",
3607
+ className: "lsg-footer__cookie-link"
3608
+ }, cookieSetting), /*#__PURE__*/React.createElement("p", {
3679
3609
  className: "lsg-footer__copyright"
3680
- }, copyrightText),
3681
- // 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.
3682
- cookieSetting && /*#__PURE__*/React.createElement("button", {
3683
- className: "lsg-footer__cookie-button"
3684
- }, cookieSetting)), showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)));
3610
+ }, copyrightText)), showAiBadge && /*#__PURE__*/React.createElement(AiBadge, null)));
3685
3611
  }
3686
3612
  return /*#__PURE__*/React.createElement("footer", {
3687
3613
  className: "lsg-footer lsg-footer--simple".concat(className ? " ".concat(className) : "")
@@ -3689,9 +3615,7 @@ var LsgFooter = function (_a) {
3689
3615
  className: "lsg-footer__simple-inner"
3690
3616
  }, /*#__PURE__*/React.createElement("p", {
3691
3617
  className: "lsg-footer__copyright"
3692
- }, copyrightText), /*#__PURE__*/React.createElement("div", {
3693
- className: "lsg-footer__brand-line"
3694
- }, /*#__PURE__*/React.createElement("span", null, brandLine)), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3618
+ }, copyrightText), navItems.length > 0 && /*#__PURE__*/React.createElement("nav", {
3695
3619
  className: "lsg-footer__simple-nav",
3696
3620
  "aria-label": "Footer navigation"
3697
3621
  }, navItems.map(function (item, i) {
@@ -3707,11 +3631,7 @@ var LsgFooter = function (_a) {
3707
3631
  href: item.href,
3708
3632
  className: "lsg-footer__simple-nav-item"
3709
3633
  }, item.label));
3710
- })),
3711
- // 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.
3712
- cookieSetting && /*#__PURE__*/React.createElement("button", {
3713
- className: "lsg-footer__cookie-button"
3714
- }, cookieSetting)));
3634
+ }))));
3715
3635
  }
3716
3636
  // ── Complex footer ─────────────────────────────────────────────────────────
3717
3637
  var is3col = complexColumns === "3col";
@@ -3721,28 +3641,18 @@ var LsgFooter = function (_a) {
3721
3641
  about: (_d = colHeadings === null || colHeadings === void 0 ? void 0 : colHeadings.about) !== null && _d !== void 0 ? _d : "About brand",
3722
3642
  contactAlt: (_e = colHeadings === null || colHeadings === void 0 ? void 0 : colHeadings.contactAlt) !== null && _e !== void 0 ? _e : "Contact"
3723
3643
  };
3724
- var bottomTopBar = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
3725
- className: "lsg-footer__bottom-top"
3726
- }, /*#__PURE__*/React.createElement("div", {
3727
- className: "lsg-footer__brand-line"
3728
- }, /*#__PURE__*/React.createElement("span", null, "Discover how the Atlas Copco Group enables technology that transforms the future.")), /*#__PURE__*/React.createElement("div", {
3729
- className: "lsg-footer__body-social"
3730
- }, socialPosition === "body" && socialLinks && socialLinks.length > 0 && /*#__PURE__*/React.createElement(SocialIconsRow, {
3731
- links: socialLinks
3732
- }))));
3733
3644
  var bottomBar = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("hr", {
3734
3645
  className: "lsg-footer__bottom-divider"
3735
3646
  }), /*#__PURE__*/React.createElement("div", {
3736
3647
  className: "lsg-footer__bottom"
3737
3648
  }, /*#__PURE__*/React.createElement("div", {
3738
3649
  className: "lsg-footer__bottom-left"
3739
- }, /*#__PURE__*/React.createElement("p", {
3650
+ }, cookieSetting && /*#__PURE__*/React.createElement("a", {
3651
+ href: "#",
3652
+ className: "lsg-footer__cookie-link"
3653
+ }, cookieSetting), /*#__PURE__*/React.createElement("p", {
3740
3654
  className: "lsg-footer__copyright"
3741
- }, copyrightText),
3742
- // 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.
3743
- cookieSetting && /*#__PURE__*/React.createElement("button", {
3744
- className: "lsg-footer__cookie-button"
3745
- }, 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, {
3746
3656
  links: socialLinks
3747
3657
  })));
3748
3658
  if (is3col) {
@@ -3793,7 +3703,11 @@ var LsgFooter = function (_a) {
3793
3703
  }, link.label), /*#__PURE__*/React.createElement("hr", {
3794
3704
  className: "lsg-footer__divider"
3795
3705
  }));
3796
- }))))), 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);
3797
3711
  }
3798
3712
  return /*#__PURE__*/React.createElement("footer", {
3799
3713
  className: "lsg-footer lsg-footer--complex".concat(className ? " ".concat(className) : "")
@@ -3840,7 +3754,11 @@ var LsgFooter = function (_a) {
3840
3754
  }, link.label), /*#__PURE__*/React.createElement("hr", {
3841
3755
  className: "lsg-footer__divider"
3842
3756
  }));
3843
- }))))), 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);
3844
3762
  };
3845
3763
 
3846
3764
  function clampNumber(number, min, max) {
@@ -4643,10 +4561,18 @@ var LsgTable = function (_a) {
4643
4561
  id = _a.id,
4644
4562
  className = _a.className;
4645
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;
4646
4570
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4647
4571
  id: id,
4648
4572
  className: wrapperClassName
4649
- }, /*#__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) {
4650
4576
  return /*#__PURE__*/React.createElement("td", {
4651
4577
  key: "header-".concat(index)
4652
4578
  }, cell);