@planningcenter/topbar 12.1.2 → 12.2.0-rc.1
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/topbar.css +129 -0
- package/dist/topbar.css.map +1 -1
- package/dist/topbar.js +372 -119
- package/dist/topbar.js.map +1 -1
- package/dist/topbar.modern.js +372 -119
- package/dist/topbar.modern.js.map +1 -1
- package/dist/topbar.module.js +372 -119
- package/dist/topbar.module.js.map +1 -1
- package/dist/topbar.umd.js +372 -119
- package/dist/topbar.umd.js.map +1 -1
- package/package.json +4 -3
package/dist/topbar.umd.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
var people__namespace = /*#__PURE__*/_interopNamespaceDefault(people);
|
|
28
28
|
var toolbar__namespace = /*#__PURE__*/_interopNamespaceDefault(toolbar);
|
|
29
29
|
|
|
30
|
-
var styles$
|
|
30
|
+
var styles$d = {"accessibility-toolbar":"accessibility-toolbar-jgjUG"};
|
|
31
31
|
|
|
32
32
|
const AccessibilityToolbar = ({
|
|
33
33
|
children
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
(_a = document.getElementById("main-content")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
40
40
|
};
|
|
41
41
|
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
-
className: styles$
|
|
42
|
+
className: styles$d["accessibility-toolbar"]
|
|
43
43
|
}, /*#__PURE__*/React.createElement(tapestry.Link, {
|
|
44
44
|
href: "#main-content",
|
|
45
45
|
kind: "primary",
|
|
@@ -356,11 +356,11 @@
|
|
|
356
356
|
fill: fill
|
|
357
357
|
})));
|
|
358
358
|
|
|
359
|
-
var styles$
|
|
359
|
+
var styles$c = {"announcement":"announcement-pI5tM","announcement--platform":"announcement--platform-EcUn2","announcement--promo":"announcement--promo-FarUk","announcement-icon":"announcement-icon-Ov39-","announcement-content":"announcement-content-q2ad6","dismiss":"dismiss-wUAoU","dismiss--promo":"dismiss--promo-7zvO4"};
|
|
360
360
|
|
|
361
361
|
function AnnouncementIcon() {
|
|
362
362
|
return /*#__PURE__*/React.createElement("svg", {
|
|
363
|
-
className: styles$
|
|
363
|
+
className: styles$c["announcement-icon"],
|
|
364
364
|
width: "16",
|
|
365
365
|
height: "16",
|
|
366
366
|
viewBox: "0 0 16 16",
|
|
@@ -485,7 +485,7 @@
|
|
|
485
485
|
} = this.props;
|
|
486
486
|
const isPromo = variant === "promo";
|
|
487
487
|
return /*#__PURE__*/React.createElement("div", {
|
|
488
|
-
className: classnames(styles$
|
|
488
|
+
className: classnames(styles$c["announcement"], styles$c[`announcement--${variant !== null && variant !== void 0 ? variant : "platform"}`]),
|
|
489
489
|
"data-announcement-variant": variant !== null && variant !== void 0 ? variant : "platform",
|
|
490
490
|
style: isPromo ? {
|
|
491
491
|
backgroundImage: promoBackgroundUrl,
|
|
@@ -494,7 +494,7 @@
|
|
|
494
494
|
backgroundSize: "cover"
|
|
495
495
|
} : undefined
|
|
496
496
|
}, !isPromo && /*#__PURE__*/React.createElement(AnnouncementIcon, null), /*#__PURE__*/React.createElement("div", {
|
|
497
|
-
className: styles$
|
|
497
|
+
className: styles$c["announcement-content"],
|
|
498
498
|
style: style,
|
|
499
499
|
...platformProps
|
|
500
500
|
}));
|
|
@@ -543,7 +543,7 @@
|
|
|
543
543
|
const isPromo = variant === "promo";
|
|
544
544
|
return /*#__PURE__*/React.createElement("button", {
|
|
545
545
|
type: "button",
|
|
546
|
-
className: classnames(styles$
|
|
546
|
+
className: classnames(styles$c.dismiss, isPromo && styles$c["dismiss--promo"]),
|
|
547
547
|
...props
|
|
548
548
|
}, /*#__PURE__*/React.createElement(X, {
|
|
549
549
|
fill: isPromo ? "currentColor" : "white",
|
|
@@ -623,9 +623,9 @@
|
|
|
623
623
|
...platformProps
|
|
624
624
|
} = this.props;
|
|
625
625
|
return /*#__PURE__*/React.createElement("div", {
|
|
626
|
-
className: styles$
|
|
626
|
+
className: styles$c["announcement"]
|
|
627
627
|
}, /*#__PURE__*/React.createElement(AnnouncementIcon, null), /*#__PURE__*/React.createElement("div", {
|
|
628
|
-
className: styles$
|
|
628
|
+
className: styles$c["announcement-content"],
|
|
629
629
|
style: style,
|
|
630
630
|
...platformProps
|
|
631
631
|
}));
|
|
@@ -636,7 +636,7 @@
|
|
|
636
636
|
}) {
|
|
637
637
|
return /*#__PURE__*/React.createElement("button", {
|
|
638
638
|
type: "button",
|
|
639
|
-
className: styles$
|
|
639
|
+
className: styles$c.dismiss,
|
|
640
640
|
...props
|
|
641
641
|
}, /*#__PURE__*/React.createElement(X, {
|
|
642
642
|
fill: "white",
|
|
@@ -1883,7 +1883,7 @@
|
|
|
1883
1883
|
})) : (/*#__PURE__*/React.createElement("div", null, "appName not supported"));
|
|
1884
1884
|
}
|
|
1885
1885
|
|
|
1886
|
-
var styles$
|
|
1886
|
+
var styles$b = {"unbutton":"unbutton-lEbTR"};
|
|
1887
1887
|
|
|
1888
1888
|
function Unbutton({
|
|
1889
1889
|
className,
|
|
@@ -1892,7 +1892,7 @@
|
|
|
1892
1892
|
...nativeProps
|
|
1893
1893
|
}) {
|
|
1894
1894
|
return /*#__PURE__*/React.createElement("button", {
|
|
1895
|
-
className: classnames(styles$
|
|
1895
|
+
className: classnames(styles$b.unbutton, className),
|
|
1896
1896
|
style: {
|
|
1897
1897
|
...style
|
|
1898
1898
|
},
|
|
@@ -1901,7 +1901,7 @@
|
|
|
1901
1901
|
});
|
|
1902
1902
|
}
|
|
1903
1903
|
|
|
1904
|
-
var styles$
|
|
1904
|
+
var styles$a = {"button":"button-XMbeQ","button-accounts":"button-accounts-nNh-z","chevron":"chevron-RRg9k","is-expanded":"is-expanded-zD0A0"};
|
|
1905
1905
|
|
|
1906
1906
|
const AppsButton = ({
|
|
1907
1907
|
appName,
|
|
@@ -1916,8 +1916,8 @@
|
|
|
1916
1916
|
"aria-haspopup": "true",
|
|
1917
1917
|
"aria-label": `App switcher: ${appName}`,
|
|
1918
1918
|
onClick: onClick,
|
|
1919
|
-
className: classnames(styles$
|
|
1920
|
-
[styles$
|
|
1919
|
+
className: classnames(styles$a.button, {
|
|
1920
|
+
[styles$a["is-expanded"]]: expanded
|
|
1921
1921
|
}),
|
|
1922
1922
|
type: "button",
|
|
1923
1923
|
style: style,
|
|
@@ -1926,7 +1926,7 @@
|
|
|
1926
1926
|
appName: "Accounts",
|
|
1927
1927
|
colors: colors
|
|
1928
1928
|
}), /*#__PURE__*/React.createElement("div", {
|
|
1929
|
-
className: styles$
|
|
1929
|
+
className: styles$a["button-accounts"]
|
|
1930
1930
|
}, "Account settings"))) : (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ColorAppIcon, {
|
|
1931
1931
|
appName: appName.replace(/[\s-]/, "")
|
|
1932
1932
|
}), /*#__PURE__*/React.createElement(MonoAppName, {
|
|
@@ -1934,7 +1934,7 @@
|
|
|
1934
1934
|
key: "mono-app-name",
|
|
1935
1935
|
size: 24
|
|
1936
1936
|
}))), /*#__PURE__*/React.createElement(DisclosureChevronIcon, {
|
|
1937
|
-
className: styles$
|
|
1937
|
+
className: styles$a.chevron,
|
|
1938
1938
|
key: "disclosure-chevron-icon"
|
|
1939
1939
|
}));
|
|
1940
1940
|
};
|
|
@@ -2022,7 +2022,7 @@
|
|
|
2022
2022
|
flex: "1 1 auto"
|
|
2023
2023
|
};
|
|
2024
2024
|
|
|
2025
|
-
var styles$
|
|
2025
|
+
var styles$9 = {"popup":"popup-sJ-Nv"};
|
|
2026
2026
|
|
|
2027
2027
|
const HoverableListItem = ({
|
|
2028
2028
|
active = false,
|
|
@@ -2079,7 +2079,7 @@
|
|
|
2079
2079
|
}
|
|
2080
2080
|
}
|
|
2081
2081
|
|
|
2082
|
-
var styles$
|
|
2082
|
+
var styles$8 = {"popup-root":"popup-root-SeL5u","popup":"popup-nQXYW","is-visible":"is-visible-3DAUP"};
|
|
2083
2083
|
|
|
2084
2084
|
const Popup = ({
|
|
2085
2085
|
className,
|
|
@@ -2087,8 +2087,8 @@
|
|
|
2087
2087
|
isVisible,
|
|
2088
2088
|
...nativeProps
|
|
2089
2089
|
}) => (/*#__PURE__*/React.createElement(C, {
|
|
2090
|
-
className: classnames(styles$
|
|
2091
|
-
[styles$
|
|
2090
|
+
className: classnames(styles$8.popup, {
|
|
2091
|
+
[styles$8["is-visible"]]: isVisible
|
|
2092
2092
|
}, className),
|
|
2093
2093
|
...nativeProps
|
|
2094
2094
|
}));
|
|
@@ -2096,7 +2096,7 @@
|
|
|
2096
2096
|
const PopupRoot = ({
|
|
2097
2097
|
...nativeProps
|
|
2098
2098
|
}) => (/*#__PURE__*/React.createElement("div", {
|
|
2099
|
-
className: styles$
|
|
2099
|
+
className: styles$8["popup-root"],
|
|
2100
2100
|
...nativeProps
|
|
2101
2101
|
}));
|
|
2102
2102
|
|
|
@@ -2136,7 +2136,7 @@
|
|
|
2136
2136
|
cleanup: !visible,
|
|
2137
2137
|
component: Outsider,
|
|
2138
2138
|
onOutsideClick: toggle,
|
|
2139
|
-
className: styles$
|
|
2139
|
+
className: styles$9.popup,
|
|
2140
2140
|
isVisible: visible
|
|
2141
2141
|
}, /*#__PURE__*/React.createElement("menu", {
|
|
2142
2142
|
ref: menuRef,
|
|
@@ -3032,9 +3032,9 @@ true;
|
|
|
3032
3032
|
`), children);
|
|
3033
3033
|
}
|
|
3034
3034
|
|
|
3035
|
-
var styles$
|
|
3035
|
+
var styles$7 = {"route":"route--8BWe","is-active":"is-active-FsU9Y","apps-routes-separator":"apps-routes-separator-Nlm-N"};
|
|
3036
3036
|
|
|
3037
|
-
var styles$
|
|
3037
|
+
var styles$6 = {"popup":"popup-mDNKn","trigger-wrap":"trigger-wrap-Jd-KR","trigger":"trigger-WgRT5","is-visible":"is-visible-GZC0-","trigger-orgname":"trigger-orgname-TDHCc"};
|
|
3038
3038
|
|
|
3039
3039
|
const UserMenu = ({
|
|
3040
3040
|
appName,
|
|
@@ -3053,7 +3053,7 @@ true;
|
|
|
3053
3053
|
component: Outsider,
|
|
3054
3054
|
onOutsideClick: () => setUserMenuVisible(false),
|
|
3055
3055
|
cleanup: !userMenuVisible,
|
|
3056
|
-
className: styles$
|
|
3056
|
+
className: styles$6.popup,
|
|
3057
3057
|
isVisible: userMenuVisible
|
|
3058
3058
|
}, /*#__PURE__*/React.createElement("div", null, hasConnectedPeople ? (/*#__PURE__*/React.createElement("div", {
|
|
3059
3059
|
style: {
|
|
@@ -3197,11 +3197,11 @@ true;
|
|
|
3197
3197
|
userMenuVisible
|
|
3198
3198
|
}) => {
|
|
3199
3199
|
return /*#__PURE__*/React.createElement("div", {
|
|
3200
|
-
className: styles$
|
|
3200
|
+
className: styles$6["trigger-wrap"],
|
|
3201
3201
|
"data-pendo": "topbar-org-switcher"
|
|
3202
3202
|
}, /*#__PURE__*/React.createElement(Hoverable, {
|
|
3203
|
-
className: classnames(styles$
|
|
3204
|
-
[styles$
|
|
3203
|
+
className: classnames(styles$6["trigger"], {
|
|
3204
|
+
[styles$6["is-visible"]]: userMenuVisible
|
|
3205
3205
|
}),
|
|
3206
3206
|
component: "button",
|
|
3207
3207
|
type: "button",
|
|
@@ -3213,7 +3213,7 @@ true;
|
|
|
3213
3213
|
requestConnectedPeopleFetch();
|
|
3214
3214
|
}
|
|
3215
3215
|
}, showOrgName && (/*#__PURE__*/React.createElement("span", {
|
|
3216
|
-
className: styles$
|
|
3216
|
+
className: styles$6["trigger-orgname"]
|
|
3217
3217
|
}, orgName)), /*#__PURE__*/React.createElement(DisclosureChevronIcon, null)));
|
|
3218
3218
|
};
|
|
3219
3219
|
|
|
@@ -3270,7 +3270,7 @@ true;
|
|
|
3270
3270
|
},
|
|
3271
3271
|
appName: props.appName
|
|
3272
3272
|
}), /*#__PURE__*/React.createElement("div", {
|
|
3273
|
-
className: styles$
|
|
3273
|
+
className: styles$7["apps-routes-separator"]
|
|
3274
3274
|
}), routesVisible && props.routes, /*#__PURE__*/React.createElement("div", {
|
|
3275
3275
|
style: {
|
|
3276
3276
|
margin: "auto"
|
|
@@ -3308,12 +3308,12 @@ true;
|
|
|
3308
3308
|
...nativeProps
|
|
3309
3309
|
}) => {
|
|
3310
3310
|
return /*#__PURE__*/React.createElement("a", {
|
|
3311
|
-
className: classnames(styles$
|
|
3311
|
+
className: classnames(styles$7["route"], className, active && styles$7["is-active"]),
|
|
3312
3312
|
...nativeProps
|
|
3313
3313
|
});
|
|
3314
3314
|
};
|
|
3315
3315
|
|
|
3316
|
-
var styles$
|
|
3316
|
+
var styles$5 = {"avatar":"avatar-tW-wn"};
|
|
3317
3317
|
|
|
3318
3318
|
function Avatar({
|
|
3319
3319
|
env,
|
|
@@ -3323,7 +3323,7 @@ true;
|
|
|
3323
3323
|
}) {
|
|
3324
3324
|
const url = incomingUrl || `${pcoUrl$1(env)("people")}/static/no_photo_thumbnail_gray.svg`;
|
|
3325
3325
|
return /*#__PURE__*/React.createElement("div", {
|
|
3326
|
-
className: styles$
|
|
3326
|
+
className: styles$5.avatar,
|
|
3327
3327
|
style: {
|
|
3328
3328
|
backgroundImage: `url(${url})`,
|
|
3329
3329
|
...style
|
|
@@ -3345,14 +3345,14 @@ true;
|
|
|
3345
3345
|
method: "localStorage"
|
|
3346
3346
|
};
|
|
3347
3347
|
|
|
3348
|
-
var styles$
|
|
3348
|
+
var styles$4 = {"appmenu-button":"appmenu-button-b0UvT","appmenu-layer":"appmenu-layer-0IQpN","appmenu-container":"appmenu-container-gackd","appmenu-scroll":"appmenu-scroll-mPSx0","appmenu-list":"appmenu-list-h7clX","appmenu-list-a":"appmenu-list-a-rGIQN","appmenu-list-a--top":"appmenu-list-a--top-RT-2F","appmenu-list-a--bottom":"appmenu-list-a--bottom-YDeBC","appmenu-close-button":"appmenu-close-button-vv9bV","current-route":"current-route-wpJgz","is-active":"is-active-wy8Bg","routes":"routes-Nmt1S","route":"route-kkknQ","profile-button":"profile-button-a2WO2"};
|
|
3349
3349
|
|
|
3350
3350
|
function AccountSettingsLink({
|
|
3351
3351
|
env
|
|
3352
3352
|
}) {
|
|
3353
3353
|
const accountsName = "accounts";
|
|
3354
3354
|
return /*#__PURE__*/React.createElement("a", {
|
|
3355
|
-
className: classnames(styles$
|
|
3355
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--bottom"]),
|
|
3356
3356
|
"data-pendo": `app-switcher--change-app--${accountsName}`,
|
|
3357
3357
|
"data-turbolinks": false,
|
|
3358
3358
|
href: pcoUrl$1(env)(accountsName) + getAppsSwitchProductPath(accountsName)
|
|
@@ -3375,7 +3375,7 @@ true;
|
|
|
3375
3375
|
}) => (/*#__PURE__*/React.createElement("button", {
|
|
3376
3376
|
"aria-label": "Close menu",
|
|
3377
3377
|
type: "button",
|
|
3378
|
-
className: styles$
|
|
3378
|
+
className: styles$4["appmenu-close-button"],
|
|
3379
3379
|
style: style
|
|
3380
3380
|
}, /*#__PURE__*/React.createElement(X, {
|
|
3381
3381
|
fill: color,
|
|
@@ -3456,7 +3456,7 @@ true;
|
|
|
3456
3456
|
"aria-haspopup": "true",
|
|
3457
3457
|
"aria-label": `App switcher: ${props.appName}`,
|
|
3458
3458
|
type: "button",
|
|
3459
|
-
className: styles$
|
|
3459
|
+
className: styles$4["appmenu-button"],
|
|
3460
3460
|
onClick: () => {
|
|
3461
3461
|
props.requestAppsFetch();
|
|
3462
3462
|
props.requestConnectedPeopleFetch();
|
|
@@ -3466,12 +3466,12 @@ true;
|
|
|
3466
3466
|
}, /*#__PURE__*/React.createElement(ColorAppIcon, {
|
|
3467
3467
|
appName: props.appName.replace(/[\s-]/, "")
|
|
3468
3468
|
})), routesMenuVisible && (/*#__PURE__*/React.createElement("div", {
|
|
3469
|
-
className: styles$
|
|
3469
|
+
className: styles$4["routes"]
|
|
3470
3470
|
}, props.routes)), /*#__PURE__*/React.createElement(ClientStorage, {
|
|
3471
3471
|
item: "Topbar:Small:Menus:Products:visibility",
|
|
3472
3472
|
render: () => (/*#__PURE__*/React.createElement("div", {
|
|
3473
3473
|
ref: appMenuRef,
|
|
3474
|
-
className: styles$
|
|
3474
|
+
className: styles$4["appmenu-layer"],
|
|
3475
3475
|
style: {
|
|
3476
3476
|
...(productSwitcherVisible && {
|
|
3477
3477
|
display: "block"
|
|
@@ -3490,44 +3490,44 @@ true;
|
|
|
3490
3490
|
e.stopPropagation();
|
|
3491
3491
|
}
|
|
3492
3492
|
},
|
|
3493
|
-
className: styles$
|
|
3493
|
+
className: styles$4["appmenu-container"]
|
|
3494
3494
|
}, /*#__PURE__*/React.createElement("a", {
|
|
3495
3495
|
"aria-current": props.appName === (homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) ? "page" : undefined,
|
|
3496
3496
|
"aria-label": homeProduct ? homeProduct.name : props.appName,
|
|
3497
3497
|
"data-pendo": `app-switcher--change-app--${homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name}`,
|
|
3498
3498
|
"data-turbolinks": false,
|
|
3499
|
-
className: classnames(styles$
|
|
3499
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--top"]),
|
|
3500
3500
|
href: homeProduct ? pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) : undefined
|
|
3501
3501
|
}, /*#__PURE__*/React.createElement(UserMenuAppLockup, {
|
|
3502
3502
|
appName: homeProduct ? homeProduct.name : props.appName
|
|
3503
3503
|
})), /*#__PURE__*/React.createElement("div", {
|
|
3504
|
-
className: styles$
|
|
3504
|
+
className: styles$4["appmenu-scroll"]
|
|
3505
3505
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
3506
3506
|
"data-pendo": "app-switcher",
|
|
3507
|
-
className: styles$
|
|
3507
|
+
className: styles$4["appmenu-list"]
|
|
3508
3508
|
}, appsMenuFormatter(restProducts).map(({
|
|
3509
3509
|
name
|
|
3510
3510
|
}) => (/*#__PURE__*/React.createElement("li", {
|
|
3511
3511
|
key: name,
|
|
3512
|
-
className: styles$
|
|
3512
|
+
className: styles$4["appmenu-list-li"]
|
|
3513
3513
|
}, /*#__PURE__*/React.createElement("a", {
|
|
3514
3514
|
"aria-current": name === props.appName ? "page" : undefined,
|
|
3515
3515
|
"aria-label": name,
|
|
3516
3516
|
"data-pendo": `app-switcher--change-app--${name}`,
|
|
3517
3517
|
"data-turbolinks": false,
|
|
3518
|
-
className: styles$
|
|
3518
|
+
className: styles$4["appmenu-list-a"],
|
|
3519
3519
|
href: pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(name)
|
|
3520
3520
|
}, /*#__PURE__*/React.createElement(UserMenuAppLockup, {
|
|
3521
3521
|
appName: name
|
|
3522
3522
|
}))))), accountsProduct && (/*#__PURE__*/React.createElement("li", {
|
|
3523
|
-
className: styles$
|
|
3523
|
+
className: styles$4["appmenu-list-li"]
|
|
3524
3524
|
}, /*#__PURE__*/React.createElement(AccountSettingsLink, {
|
|
3525
3525
|
env: props.env
|
|
3526
3526
|
}))))))))
|
|
3527
3527
|
}), /*#__PURE__*/React.createElement("button", {
|
|
3528
3528
|
type: "button",
|
|
3529
|
-
className: classnames(styles$
|
|
3530
|
-
[styles$
|
|
3529
|
+
className: classnames(styles$4["current-route"], {
|
|
3530
|
+
[styles$4["is-active"]]: routesMenuVisible
|
|
3531
3531
|
}),
|
|
3532
3532
|
onClick: props.routes.length > 0 ? () => {
|
|
3533
3533
|
setProductSwitcherVisible(false);
|
|
@@ -3535,7 +3535,7 @@ true;
|
|
|
3535
3535
|
} : null
|
|
3536
3536
|
}, /*#__PURE__*/React.createElement(CurrentRouteComponent, null, capitalize(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React.createElement("button", {
|
|
3537
3537
|
type: "button",
|
|
3538
|
-
className: styles$
|
|
3538
|
+
className: styles$4["profile-button"],
|
|
3539
3539
|
onClick: () => {
|
|
3540
3540
|
var _a, _b;
|
|
3541
3541
|
props.requestConnectedPeopleFetch();
|
|
@@ -3551,7 +3551,7 @@ true;
|
|
|
3551
3551
|
className,
|
|
3552
3552
|
...props
|
|
3553
3553
|
}) => (/*#__PURE__*/React.createElement("a", {
|
|
3554
|
-
className: classnames(styles$
|
|
3554
|
+
className: classnames(styles$4["route"], className, active && styles$4["is-active"]),
|
|
3555
3555
|
...props
|
|
3556
3556
|
}));
|
|
3557
3557
|
|
|
@@ -3690,7 +3690,7 @@ true;
|
|
|
3690
3690
|
id: "topbar"
|
|
3691
3691
|
};
|
|
3692
3692
|
|
|
3693
|
-
var styles$
|
|
3693
|
+
var styles$3 = {"drawer-wrap":"drawer-wrap-J0rSL","is-visible":"is-visible-KTME8","drawer":"drawer-j7f4l"};
|
|
3694
3694
|
|
|
3695
3695
|
function Drawer({
|
|
3696
3696
|
children,
|
|
@@ -3698,7 +3698,7 @@ true;
|
|
|
3698
3698
|
}) {
|
|
3699
3699
|
return /*#__PURE__*/React.createElement("div", {
|
|
3700
3700
|
id: id,
|
|
3701
|
-
className: styles$
|
|
3701
|
+
className: styles$3["drawer"]
|
|
3702
3702
|
}, children);
|
|
3703
3703
|
}
|
|
3704
3704
|
function DrawerWrap({
|
|
@@ -3708,7 +3708,7 @@ true;
|
|
|
3708
3708
|
...props
|
|
3709
3709
|
}) {
|
|
3710
3710
|
return /*#__PURE__*/React.createElement("div", {
|
|
3711
|
-
className: classnames(styles$
|
|
3711
|
+
className: classnames(styles$3["drawer-wrap"], className, isVisible && styles$3["is-visible"]),
|
|
3712
3712
|
...props
|
|
3713
3713
|
}, children);
|
|
3714
3714
|
}
|
|
@@ -3892,7 +3892,7 @@ true;
|
|
|
3892
3892
|
}));
|
|
3893
3893
|
};
|
|
3894
3894
|
|
|
3895
|
-
var styles$
|
|
3895
|
+
var styles$2 = {"color-mode-switcher":"color-mode-switcher-JpczO","color-mode-switcher-label":"color-mode-switcher-label-3jPM2","color-mode-switcher-modes":"color-mode-switcher-modes-u-bic"};
|
|
3896
3896
|
|
|
3897
3897
|
const COLOR_MODES = [{
|
|
3898
3898
|
label: "Light",
|
|
@@ -3912,11 +3912,11 @@ true;
|
|
|
3912
3912
|
const updateStore = useUpdateStore();
|
|
3913
3913
|
const [counter] = React.useState(() => COLOR_MODE_INSTANCE_COUNTER++);
|
|
3914
3914
|
return /*#__PURE__*/React.createElement("fieldset", {
|
|
3915
|
-
className: styles$
|
|
3915
|
+
className: styles$2["color-mode-switcher"]
|
|
3916
3916
|
}, /*#__PURE__*/React.createElement("legend", {
|
|
3917
|
-
className: styles$
|
|
3917
|
+
className: styles$2["color-mode-switcher-label"]
|
|
3918
3918
|
}, "Appearance", " "), /*#__PURE__*/React.createElement("div", {
|
|
3919
|
-
className: styles$
|
|
3919
|
+
className: styles$2["color-mode-switcher-modes"]
|
|
3920
3920
|
}, COLOR_MODES.map(({
|
|
3921
3921
|
value,
|
|
3922
3922
|
label
|
|
@@ -4187,20 +4187,225 @@ true;
|
|
|
4187
4187
|
...overrides
|
|
4188
4188
|
});
|
|
4189
4189
|
|
|
4190
|
-
var styles = {"toolbar":"toolbar-KHJR5","toolbar-button":"toolbar-button-Ye4h5","is-current":"is-current-DZK47","toolbar-button--avatar":"toolbar-button--avatar-5FUik","toolbar-button--home":"toolbar-button--home-Pthd0"};
|
|
4190
|
+
var styles$1 = {"toolbar":"toolbar-KHJR5","toolbar-button":"toolbar-button-Ye4h5","is-current":"is-current-DZK47","toolbar-button--avatar":"toolbar-button--avatar-5FUik","toolbar-button--home":"toolbar-button--home-Pthd0"};
|
|
4191
4191
|
|
|
4192
4192
|
const pcoUrl = pcoUrl$1;
|
|
4193
4193
|
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4194
|
+
var styles = {"banner":"banner-YfQ37","content":"content-lNjWf","icon":"icon-abz7q","iconShape":"iconShape-6uyot","iconSparkle":"iconSparkle-t0OzK","text":"text--Vlhl","title":"title-zOEOR","subtitle":"subtitle-ufLnk","chevron":"chevron-oOUA-"};
|
|
4195
|
+
|
|
4196
|
+
function AskAIBanner({
|
|
4197
|
+
onClick
|
|
4198
|
+
}) {
|
|
4199
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
4200
|
+
className: styles.banner,
|
|
4201
|
+
onClick: () => onClick(),
|
|
4202
|
+
type: "button"
|
|
4203
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4204
|
+
className: styles.content
|
|
4205
|
+
}, /*#__PURE__*/React.createElement(AskAIIcon, null), /*#__PURE__*/React.createElement("span", {
|
|
4206
|
+
className: styles.text
|
|
4207
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4208
|
+
className: styles.title
|
|
4209
|
+
}, "Ask AI"), /*#__PURE__*/React.createElement("span", {
|
|
4210
|
+
className: styles.subtitle
|
|
4211
|
+
}, "Support answers tailored to you"))), /*#__PURE__*/React.createElement(tapestryReact.Icon, {
|
|
4212
|
+
className: styles.chevron,
|
|
4213
|
+
name: "general.rightChevron",
|
|
4214
|
+
size: "16px"
|
|
4215
|
+
}));
|
|
4216
|
+
}
|
|
4217
|
+
const SQUIRCLE_PATH = "M15.9994 0C3.19766 0 0 3.20025 0 16C0 28.7998 3.19766 32 15.9994 32C28.8011 32 32 28.8022 32 16C32 3.19779 28.7999 0 15.9994 0Z";
|
|
4218
|
+
const SQUIRCLE_BORDER_PATH = "M15.999 0.222656C22.4009 0.222656 26.3132 1.0274 28.6426 3.35645C30.972 5.68549 31.7773 9.59729 31.7773 16C31.7773 22.4025 30.9726 26.3145 28.6436 28.6436C26.3143 30.9726 22.4015 31.7773 15.999 31.7773C9.5968 31.7773 5.68536 30.9719 3.35645 28.6426C1.02748 26.3132 0.222656 22.4015 0.222656 16C0.222656 9.59851 1.02748 5.68678 3.35645 3.35742C5.68536 1.02814 9.5968 0.222687 15.999 0.222656Z";
|
|
4219
|
+
// Monotonic counter for per-instance SVG ids. useId would be tidier but isn't
|
|
4220
|
+
// available on React 17, which our peer range still supports.
|
|
4221
|
+
let iconInstanceCount = 0;
|
|
4222
|
+
function AskAIIcon() {
|
|
4223
|
+
const [uid] = React.useState(() => `ask-ai-icon-${iconInstanceCount++}`);
|
|
4224
|
+
const maskId = `${uid}-mask`;
|
|
4225
|
+
const blur = n => `${uid}-blur-${n}`;
|
|
4226
|
+
const borderA = `${uid}-border-a`;
|
|
4227
|
+
const borderB = `${uid}-border-b`;
|
|
4228
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
4229
|
+
className: styles.icon
|
|
4230
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
4231
|
+
className: styles.iconShape,
|
|
4232
|
+
viewBox: "0 0 32 32",
|
|
4233
|
+
fill: "none",
|
|
4234
|
+
"aria-hidden": "true"
|
|
4235
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
4236
|
+
d: SQUIRCLE_PATH,
|
|
4237
|
+
fill: "white"
|
|
4238
|
+
}), /*#__PURE__*/React.createElement("mask", {
|
|
4239
|
+
id: maskId,
|
|
4240
|
+
style: {
|
|
4241
|
+
maskType: "alpha"
|
|
4242
|
+
},
|
|
4243
|
+
maskUnits: "userSpaceOnUse",
|
|
4244
|
+
x: "0",
|
|
4245
|
+
y: "0",
|
|
4246
|
+
width: "32",
|
|
4247
|
+
height: "32"
|
|
4248
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
4249
|
+
d: SQUIRCLE_PATH,
|
|
4250
|
+
fill: "#939393"
|
|
4251
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4252
|
+
mask: `url(#${maskId})`
|
|
4253
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
4254
|
+
filter: `url(#${blur(0)})`
|
|
4255
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4256
|
+
cx: "24.2268",
|
|
4257
|
+
cy: "23.7824",
|
|
4258
|
+
rx: "17.9331",
|
|
4259
|
+
ry: "31.1883",
|
|
4260
|
+
transform: "rotate(-135 24.2268 23.7824)",
|
|
4261
|
+
fill: "#B883E2"
|
|
4262
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4263
|
+
filter: `url(#${blur(1)})`
|
|
4264
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4265
|
+
cx: "7.05187",
|
|
4266
|
+
cy: "9.27409",
|
|
4267
|
+
rx: "14.9017",
|
|
4268
|
+
ry: "29.437",
|
|
4269
|
+
transform: "rotate(45 7.05187 9.27409)",
|
|
4270
|
+
fill: "#74A3FF"
|
|
4271
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4272
|
+
filter: `url(#${blur(2)})`
|
|
4273
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4274
|
+
cx: "29.7552",
|
|
4275
|
+
cy: "31.0886",
|
|
4276
|
+
rx: "11.2869",
|
|
4277
|
+
ry: "15.1567",
|
|
4278
|
+
transform: "rotate(-135 29.7552 31.0886)",
|
|
4279
|
+
fill: "#F28B54"
|
|
4280
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4281
|
+
filter: `url(#${blur(3)})`
|
|
4282
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4283
|
+
cx: "3.58734",
|
|
4284
|
+
cy: "4.03178",
|
|
4285
|
+
rx: "11.2869",
|
|
4286
|
+
ry: "15.1567",
|
|
4287
|
+
transform: "rotate(45 3.58734 4.03178)",
|
|
4288
|
+
fill: "#24D7B7"
|
|
4289
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4290
|
+
filter: `url(#${blur(4)})`
|
|
4291
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4292
|
+
cx: "32.0363",
|
|
4293
|
+
cy: "32.0363",
|
|
4294
|
+
rx: "5.65576",
|
|
4295
|
+
ry: "7.59487",
|
|
4296
|
+
transform: "rotate(-135 32.0363 32.0363)",
|
|
4297
|
+
fill: "#FFBC40"
|
|
4298
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
4299
|
+
filter: `url(#${blur(5)})`
|
|
4300
|
+
}, /*#__PURE__*/React.createElement("ellipse", {
|
|
4301
|
+
cx: "1.00513",
|
|
4302
|
+
cy: "-0.772657",
|
|
4303
|
+
rx: "5.1403",
|
|
4304
|
+
ry: "6.82216",
|
|
4305
|
+
transform: "rotate(-135 1.00513 -0.772657)",
|
|
4306
|
+
fill: "#70FFD4"
|
|
4307
|
+
})), /*#__PURE__*/React.createElement("path", {
|
|
4308
|
+
d: SQUIRCLE_BORDER_PATH,
|
|
4309
|
+
stroke: `url(#${borderA})`,
|
|
4310
|
+
strokeWidth: "0.444444"
|
|
4311
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
4312
|
+
d: SQUIRCLE_BORDER_PATH,
|
|
4313
|
+
stroke: `url(#${borderB})`,
|
|
4314
|
+
strokeWidth: "0.444444"
|
|
4315
|
+
})), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("filter", {
|
|
4316
|
+
id: blur(0),
|
|
4317
|
+
x: "-20.7722",
|
|
4318
|
+
y: "-21.2166",
|
|
4319
|
+
width: "89.9981",
|
|
4320
|
+
height: "89.9981",
|
|
4321
|
+
filterUnits: "userSpaceOnUse",
|
|
4322
|
+
colorInterpolationFilters: "sRGB"
|
|
4323
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4324
|
+
stdDeviation: "9.77778"
|
|
4325
|
+
})), /*#__PURE__*/React.createElement("filter", {
|
|
4326
|
+
id: blur(1),
|
|
4327
|
+
x: "-35.839",
|
|
4328
|
+
y: "-33.6167",
|
|
4329
|
+
width: "85.7816",
|
|
4330
|
+
height: "85.7816",
|
|
4331
|
+
filterUnits: "userSpaceOnUse",
|
|
4332
|
+
colorInterpolationFilters: "sRGB"
|
|
4333
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4334
|
+
stdDeviation: "9.77778"
|
|
4335
|
+
})), /*#__PURE__*/React.createElement("filter", {
|
|
4336
|
+
id: blur(2),
|
|
4337
|
+
x: "-3.16378",
|
|
4338
|
+
y: "-1.83045",
|
|
4339
|
+
width: "65.838",
|
|
4340
|
+
height: "65.838",
|
|
4341
|
+
filterUnits: "userSpaceOnUse",
|
|
4342
|
+
colorInterpolationFilters: "sRGB"
|
|
4343
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4344
|
+
stdDeviation: "9.77778"
|
|
4345
|
+
})), /*#__PURE__*/React.createElement("filter", {
|
|
4346
|
+
id: blur(3),
|
|
4347
|
+
x: "-29.3317",
|
|
4348
|
+
y: "-28.8872",
|
|
4349
|
+
width: "65.838",
|
|
4350
|
+
height: "65.838",
|
|
4351
|
+
filterUnits: "userSpaceOnUse",
|
|
4352
|
+
colorInterpolationFilters: "sRGB"
|
|
4353
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4354
|
+
stdDeviation: "9.77778"
|
|
4355
|
+
})), /*#__PURE__*/React.createElement("filter", {
|
|
4356
|
+
id: blur(4),
|
|
4357
|
+
x: "16.4511",
|
|
4358
|
+
y: "16.4511",
|
|
4359
|
+
width: "31.1704",
|
|
4360
|
+
height: "31.1704",
|
|
4361
|
+
filterUnits: "userSpaceOnUse",
|
|
4362
|
+
colorInterpolationFilters: "sRGB"
|
|
4363
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4364
|
+
stdDeviation: "4.44444"
|
|
4365
|
+
})), /*#__PURE__*/React.createElement("filter", {
|
|
4366
|
+
id: blur(5),
|
|
4367
|
+
x: "-13.9242",
|
|
4368
|
+
y: "-15.7019",
|
|
4369
|
+
width: "29.8586",
|
|
4370
|
+
height: "29.8586",
|
|
4371
|
+
filterUnits: "userSpaceOnUse",
|
|
4372
|
+
colorInterpolationFilters: "sRGB"
|
|
4373
|
+
}, /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
4374
|
+
stdDeviation: "4.44444"
|
|
4375
|
+
})), /*#__PURE__*/React.createElement("linearGradient", {
|
|
4376
|
+
id: borderA,
|
|
4377
|
+
x1: "4.22222",
|
|
4378
|
+
y1: "2.44444",
|
|
4379
|
+
x2: "16",
|
|
4380
|
+
y2: "14.4444",
|
|
4381
|
+
gradientUnits: "userSpaceOnUse"
|
|
4382
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
4383
|
+
stopColor: "#62FAFF"
|
|
4384
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
4385
|
+
offset: "1",
|
|
4386
|
+
stopColor: "#55AFD6",
|
|
4387
|
+
stopOpacity: "0"
|
|
4388
|
+
})), /*#__PURE__*/React.createElement("linearGradient", {
|
|
4389
|
+
id: borderB,
|
|
4390
|
+
x1: "28.4444",
|
|
4391
|
+
y1: "29.3333",
|
|
4392
|
+
x2: "22.8889",
|
|
4393
|
+
y2: "22.4444",
|
|
4394
|
+
gradientUnits: "userSpaceOnUse"
|
|
4395
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
4396
|
+
stopColor: "#FFA961"
|
|
4397
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
4398
|
+
offset: "1",
|
|
4399
|
+
stopColor: "#D48B91",
|
|
4400
|
+
stopOpacity: "0"
|
|
4401
|
+
})))), /*#__PURE__*/React.createElement("svg", {
|
|
4402
|
+
className: styles.iconSparkle,
|
|
4403
|
+
viewBox: "0 0 19.4995 17.9999",
|
|
4404
|
+
"aria-hidden": "true"
|
|
4405
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
4406
|
+
d: "M2.71191 12.2002C2.81068 11.9333 3.18834 11.9333 3.2871 12.2002L3.84375 13.7031C3.92138 13.9129 4.08707 14.0786 4.29687 14.1562L5.7998 14.7119C6.06662 14.8107 6.06648 15.1882 5.7998 15.2871L4.29687 15.8437C4.08707 15.9214 3.92138 16.0871 3.84375 16.2969L3.2871 17.7998C3.18821 18.0665 2.81066 18.0666 2.71191 17.7998L2.15625 16.2969C2.07861 16.0871 1.91292 15.9214 1.70312 15.8437L0.200191 15.2871C-0.0667302 15.1883 -0.0667302 14.8107 0.200191 14.7119L1.70312 14.1562C1.91292 14.0786 2.07861 13.9129 2.15625 13.7031L2.71191 12.2002ZM11.2812 2C11.5283 1.33313 12.4717 1.33305 12.7187 2L14.1094 5.75878C14.3035 6.28304 14.7169 6.69659 15.2412 6.89062L18.999 8.28125C19.6663 8.52817 19.6663 9.47182 18.999 9.71875L15.2412 11.1094C14.7168 11.3035 14.3035 11.7168 14.1094 12.2412L12.7187 15.999C12.4718 16.6663 11.5282 16.6663 11.2812 15.999L9.89062 12.2412C9.69659 11.7169 9.28304 11.3035 8.75878 11.1094L5 9.71875C4.33305 9.47173 4.33312 8.52834 5 8.28125L8.75878 6.89062C9.28299 6.69653 9.69653 6.28299 9.89062 5.75878L11.2812 2ZM2.71191 0.200191C2.81068 -0.0667302 3.18834 -0.0667302 3.2871 0.200191L3.84375 1.70312C3.92138 1.91292 4.08707 2.07861 4.29687 2.15625L5.7998 2.71191C6.06662 2.81066 6.06648 3.18821 5.7998 3.2871L4.29687 3.84375C4.08707 3.92138 3.92138 4.08707 3.84375 4.29687L3.2871 5.7998C3.18821 6.06648 2.81066 6.06662 2.71191 5.7998L2.15625 4.29687C2.07861 4.08707 1.91292 3.92138 1.70312 3.84375L0.200191 3.2871C-0.0667302 3.18834 -0.0667302 2.81068 0.200191 2.71191L1.70312 2.15625C1.91292 2.07861 2.07861 1.91292 2.15625 1.70312L2.71191 0.200191Z",
|
|
4407
|
+
fill: "currentColor"
|
|
4408
|
+
})));
|
|
4204
4409
|
}
|
|
4205
4410
|
|
|
4206
4411
|
// The article heading lives in the deepest populated hierarchy level (lvl0 is
|
|
@@ -4354,6 +4559,89 @@ true;
|
|
|
4354
4559
|
}));
|
|
4355
4560
|
};
|
|
4356
4561
|
|
|
4562
|
+
// The route rides in the iframe URL fragment (`…/topbar#conversations/abc`),
|
|
4563
|
+
// not the path, so updating it is a same-document navigation that doesn't
|
|
4564
|
+
// reload the iframe, but also lets the route survive a forced reload (e.g.
|
|
4565
|
+
// Turbo re-parenting the topbar).
|
|
4566
|
+
function buildPicobotSrc(origin, path) {
|
|
4567
|
+
const [rawPath, queryPart] = path.replace(/^\/+/, "").split("?", 2);
|
|
4568
|
+
const safePath = rawPath.split("/").filter(segment => segment && segment !== "." && segment !== "..").join("/");
|
|
4569
|
+
const fragment = queryPart !== undefined ? `${safePath}?${queryPart}` : safePath;
|
|
4570
|
+
const base = new URL("topbar", origin).toString();
|
|
4571
|
+
return fragment ? `${base}#${fragment}` : base;
|
|
4572
|
+
}
|
|
4573
|
+
|
|
4574
|
+
const LOAD_TIMEOUT_MS = 3000;
|
|
4575
|
+
function createPicobotIframe(picobotOrigin) {
|
|
4576
|
+
return /*#__PURE__*/React.forwardRef(function PicobotIframe({
|
|
4577
|
+
currentPath: iframePath,
|
|
4578
|
+
onChangePath: onIframeChangePath,
|
|
4579
|
+
onMessage
|
|
4580
|
+
}, ref) {
|
|
4581
|
+
const iframeRef = React.useRef(null);
|
|
4582
|
+
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4583
|
+
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4584
|
+
// always reflects the live conversation. See buildPicobotSrc.
|
|
4585
|
+
const [loadedPath, setLoadedPath] = React.useState(iframePath || "");
|
|
4586
|
+
const hasReportedErrorRef = React.useRef(false);
|
|
4587
|
+
const loadTimeoutRef = React.useRef();
|
|
4588
|
+
const reportLoadError = React.useCallback(() => {
|
|
4589
|
+
if (hasReportedErrorRef.current) return;
|
|
4590
|
+
hasReportedErrorRef.current = true;
|
|
4591
|
+
onMessage === null || onMessage === void 0 ? void 0 : onMessage({
|
|
4592
|
+
type: "IFRAME_LOAD_ERROR"
|
|
4593
|
+
});
|
|
4594
|
+
}, [onMessage]);
|
|
4595
|
+
React.useEffect(function armLoadTimeoutOnMount() {
|
|
4596
|
+
const timeout = setTimeout(reportLoadError, LOAD_TIMEOUT_MS);
|
|
4597
|
+
loadTimeoutRef.current = timeout;
|
|
4598
|
+
return () => clearTimeout(timeout);
|
|
4599
|
+
}, []);
|
|
4600
|
+
React.useEffect(function subscribeToGuestMessages() {
|
|
4601
|
+
function handleGuestMessage(e) {
|
|
4602
|
+
var _a, _b, _c;
|
|
4603
|
+
if (e.origin !== picobotOrigin) return;
|
|
4604
|
+
if (!e.source || !iframeRef.current) return;
|
|
4605
|
+
if (e.source !== iframeRef.current.contentWindow) return;
|
|
4606
|
+
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4607
|
+
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4608
|
+
setLoadedPath(reportedPath);
|
|
4609
|
+
onIframeChangePath(reportedPath);
|
|
4610
|
+
}
|
|
4611
|
+
if (((_c = e.data) === null || _c === void 0 ? void 0 : _c.type) === "READY") clearTimeout(loadTimeoutRef.current);
|
|
4612
|
+
if (onMessage) onMessage(e.data);
|
|
4613
|
+
}
|
|
4614
|
+
window.addEventListener("message", handleGuestMessage);
|
|
4615
|
+
return () => window.removeEventListener("message", handleGuestMessage);
|
|
4616
|
+
}, [onIframeChangePath, onMessage]);
|
|
4617
|
+
React.useEffect(function syncLoadedPathFromProp() {
|
|
4618
|
+
setLoadedPath(iframePath || "");
|
|
4619
|
+
}, [iframePath]);
|
|
4620
|
+
// A one-way channel for sending messages to picobot. Topbar just
|
|
4621
|
+
// forwards the envelope to the iframe and holds no message semantics of
|
|
4622
|
+
// its own—the consumer decides what to send and when.
|
|
4623
|
+
React.useImperativeHandle(ref, () => ({
|
|
4624
|
+
postMessage(message) {
|
|
4625
|
+
var _a, _b;
|
|
4626
|
+
(_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, picobotOrigin);
|
|
4627
|
+
}
|
|
4628
|
+
}), []);
|
|
4629
|
+
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4630
|
+
return /*#__PURE__*/React.createElement("iframe", {
|
|
4631
|
+
ref: iframeRef,
|
|
4632
|
+
src: iframeSrc,
|
|
4633
|
+
allow: "clipboard-write",
|
|
4634
|
+
style: {
|
|
4635
|
+
border: 0,
|
|
4636
|
+
flex: 1,
|
|
4637
|
+
height: "100%",
|
|
4638
|
+
width: "100%"
|
|
4639
|
+
},
|
|
4640
|
+
title: "Picobot"
|
|
4641
|
+
});
|
|
4642
|
+
});
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4357
4645
|
const {
|
|
4358
4646
|
LoadingIndicator: LoadingIndicator$1,
|
|
4359
4647
|
StackView: StackView$1
|
|
@@ -4379,52 +4667,7 @@ true;
|
|
|
4379
4667
|
helpdeskConfig,
|
|
4380
4668
|
onChangePath
|
|
4381
4669
|
}) {
|
|
4382
|
-
const PicobotIframe = React.useMemo(() =>
|
|
4383
|
-
const picobotOrigin = pcoUrl(env)("picobot");
|
|
4384
|
-
return function PicobotIframe({
|
|
4385
|
-
currentPath: iframePath,
|
|
4386
|
-
onChangePath: onIframeChangePath,
|
|
4387
|
-
onMessage
|
|
4388
|
-
}) {
|
|
4389
|
-
const ref = React.useRef(null);
|
|
4390
|
-
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4391
|
-
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4392
|
-
// always reflects the live conversation. See buildPicobotSrc.
|
|
4393
|
-
const [loadedPath, setLoadedPath] = React.useState(iframePath || "");
|
|
4394
|
-
React.useEffect(() => {
|
|
4395
|
-
if (!onIframeChangePath && !onMessage) return undefined;
|
|
4396
|
-
const handler = e => {
|
|
4397
|
-
var _a, _b;
|
|
4398
|
-
if (e.origin !== picobotOrigin) return;
|
|
4399
|
-
if (!e.source || !ref.current) return;
|
|
4400
|
-
if (e.source !== ref.current.contentWindow) return;
|
|
4401
|
-
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4402
|
-
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4403
|
-
setLoadedPath(reportedPath);
|
|
4404
|
-
onIframeChangePath(reportedPath);
|
|
4405
|
-
}
|
|
4406
|
-
if (onMessage) onMessage(e.data);
|
|
4407
|
-
};
|
|
4408
|
-
window.addEventListener("message", handler);
|
|
4409
|
-
return () => window.removeEventListener("message", handler);
|
|
4410
|
-
}, [onIframeChangePath, onMessage]);
|
|
4411
|
-
React.useEffect(() => {
|
|
4412
|
-
setLoadedPath(iframePath || "");
|
|
4413
|
-
}, [iframePath]);
|
|
4414
|
-
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4415
|
-
return /*#__PURE__*/React.createElement("iframe", {
|
|
4416
|
-
ref: ref,
|
|
4417
|
-
src: iframeSrc,
|
|
4418
|
-
style: {
|
|
4419
|
-
border: 0,
|
|
4420
|
-
flex: 1,
|
|
4421
|
-
height: "100%",
|
|
4422
|
-
width: "100%"
|
|
4423
|
-
},
|
|
4424
|
-
title: "Picobot"
|
|
4425
|
-
});
|
|
4426
|
-
};
|
|
4427
|
-
}, [env]);
|
|
4670
|
+
const PicobotIframe = React.useMemo(() => createPicobotIframe(pcoUrl(env)("picobot")), [env]);
|
|
4428
4671
|
return /*#__PURE__*/React.createElement(addOns.UiExtensionFirstPartyComponent, {
|
|
4429
4672
|
grow: 1,
|
|
4430
4673
|
display: "flex",
|
|
@@ -4439,6 +4682,15 @@ true;
|
|
|
4439
4682
|
spacing: 1
|
|
4440
4683
|
}, /*#__PURE__*/React.createElement(DrawerHeading, null, "Help and support"), /*#__PURE__*/React.createElement(LoadingIndicator$1, null)))),
|
|
4441
4684
|
additionalComponents: {
|
|
4685
|
+
AskAIBanner: {
|
|
4686
|
+
component: AskAIBanner,
|
|
4687
|
+
properties: {
|
|
4688
|
+
onClick: {
|
|
4689
|
+
event: false,
|
|
4690
|
+
type: Function
|
|
4691
|
+
}
|
|
4692
|
+
}
|
|
4693
|
+
},
|
|
4442
4694
|
CalendlyWidget: {
|
|
4443
4695
|
component: CalendlyWidget,
|
|
4444
4696
|
properties: {
|
|
@@ -4475,6 +4727,7 @@ true;
|
|
|
4475
4727
|
DrawerHeading,
|
|
4476
4728
|
PicobotIframe: {
|
|
4477
4729
|
component: PicobotIframe,
|
|
4730
|
+
methods: ["postMessage"],
|
|
4478
4731
|
properties: {
|
|
4479
4732
|
currentPath: {
|
|
4480
4733
|
attribute: false
|
|
@@ -5719,18 +5972,18 @@ true;
|
|
|
5719
5972
|
return /*#__PURE__*/React.createElement(tapestryReact.ThemeProvider, {
|
|
5720
5973
|
theme: topbarTheme
|
|
5721
5974
|
}, /*#__PURE__*/React.createElement(addOns.UiExtensionDataContext, null, /*#__PURE__*/React.createElement("div", {
|
|
5722
|
-
className: styles["toolbar"],
|
|
5975
|
+
className: styles$1["toolbar"],
|
|
5723
5976
|
"data-pendo": "toolbar-profile-support-wrapper"
|
|
5724
5977
|
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
5725
5978
|
"aria-label": `Open ${userName}’s profile drawer`,
|
|
5726
5979
|
onClick: () => toggleDrawer(Profile),
|
|
5727
5980
|
"data-pendo": "toolbar-profile",
|
|
5728
|
-
className: styles["toolbar-button--avatar"]
|
|
5981
|
+
className: styles$1["toolbar-button--avatar"]
|
|
5729
5982
|
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
5730
5983
|
env: env,
|
|
5731
5984
|
url: userAvatarPath
|
|
5732
5985
|
})), /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
5733
|
-
className: styles["toolbar-button--home"],
|
|
5986
|
+
className: styles$1["toolbar-button--home"],
|
|
5734
5987
|
onClick: () => closeDrawer()
|
|
5735
5988
|
}, /*#__PURE__*/React.createElement(tapestryReact.Icon, {
|
|
5736
5989
|
name: "toolbar.planningCenter",
|
|
@@ -5768,7 +6021,7 @@ true;
|
|
|
5768
6021
|
}) => {
|
|
5769
6022
|
return /*#__PURE__*/React.createElement("button", {
|
|
5770
6023
|
type: "button",
|
|
5771
|
-
className: classnames(styles["toolbar-button"], className, current && styles["is-current"]),
|
|
6024
|
+
className: classnames(styles$1["toolbar-button"], className, current && styles$1["is-current"]),
|
|
5772
6025
|
onClick: onClick,
|
|
5773
6026
|
"data-toolbar-link": "true",
|
|
5774
6027
|
...restProps
|