@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.modern.js
CHANGED
|
@@ -17,7 +17,7 @@ import { useSearchBox, useHits, InstantSearch, Configure } from 'react-instantse
|
|
|
17
17
|
import { TransitionGroup, Transition } from 'react-transition-group';
|
|
18
18
|
import datetimeFmt from '@planningcenter/datetime-fmt';
|
|
19
19
|
|
|
20
|
-
var styles$
|
|
20
|
+
var styles$d = {"accessibility-toolbar":"accessibility-toolbar-jgjUG"};
|
|
21
21
|
|
|
22
22
|
const AccessibilityToolbar = ({
|
|
23
23
|
children
|
|
@@ -29,7 +29,7 @@ const AccessibilityToolbar = ({
|
|
|
29
29
|
(_a = document.getElementById("main-content")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
30
30
|
};
|
|
31
31
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
32
|
-
className: styles$
|
|
32
|
+
className: styles$d["accessibility-toolbar"]
|
|
33
33
|
}, /*#__PURE__*/React__default.createElement(Link, {
|
|
34
34
|
href: "#main-content",
|
|
35
35
|
kind: "primary",
|
|
@@ -346,11 +346,11 @@ const X = ({
|
|
|
346
346
|
fill: fill
|
|
347
347
|
})));
|
|
348
348
|
|
|
349
|
-
var styles$
|
|
349
|
+
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"};
|
|
350
350
|
|
|
351
351
|
function AnnouncementIcon() {
|
|
352
352
|
return /*#__PURE__*/React__default.createElement("svg", {
|
|
353
|
-
className: styles$
|
|
353
|
+
className: styles$c["announcement-icon"],
|
|
354
354
|
width: "16",
|
|
355
355
|
height: "16",
|
|
356
356
|
viewBox: "0 0 16 16",
|
|
@@ -475,7 +475,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
475
475
|
} = this.props;
|
|
476
476
|
const isPromo = variant === "promo";
|
|
477
477
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
478
|
-
className: classnames(styles$
|
|
478
|
+
className: classnames(styles$c["announcement"], styles$c[`announcement--${variant !== null && variant !== void 0 ? variant : "platform"}`]),
|
|
479
479
|
"data-announcement-variant": variant !== null && variant !== void 0 ? variant : "platform",
|
|
480
480
|
style: isPromo ? {
|
|
481
481
|
backgroundImage: promoBackgroundUrl,
|
|
@@ -484,7 +484,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
484
484
|
backgroundSize: "cover"
|
|
485
485
|
} : undefined
|
|
486
486
|
}, !isPromo && /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
487
|
-
className: styles$
|
|
487
|
+
className: styles$c["announcement-content"],
|
|
488
488
|
style: style,
|
|
489
489
|
...platformProps
|
|
490
490
|
}));
|
|
@@ -533,7 +533,7 @@ function StyledDismissButton$1({
|
|
|
533
533
|
const isPromo = variant === "promo";
|
|
534
534
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
535
535
|
type: "button",
|
|
536
|
-
className: classnames(styles$
|
|
536
|
+
className: classnames(styles$c.dismiss, isPromo && styles$c["dismiss--promo"]),
|
|
537
537
|
...props
|
|
538
538
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
539
539
|
fill: isPromo ? "currentColor" : "white",
|
|
@@ -613,9 +613,9 @@ class StyledAnnouncement extends React__default.Component {
|
|
|
613
613
|
...platformProps
|
|
614
614
|
} = this.props;
|
|
615
615
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
616
|
-
className: styles$
|
|
616
|
+
className: styles$c["announcement"]
|
|
617
617
|
}, /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
618
|
-
className: styles$
|
|
618
|
+
className: styles$c["announcement-content"],
|
|
619
619
|
style: style,
|
|
620
620
|
...platformProps
|
|
621
621
|
}));
|
|
@@ -626,7 +626,7 @@ function StyledDismissButton({
|
|
|
626
626
|
}) {
|
|
627
627
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
628
628
|
type: "button",
|
|
629
|
-
className: styles$
|
|
629
|
+
className: styles$c.dismiss,
|
|
630
630
|
...props
|
|
631
631
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
632
632
|
fill: "white",
|
|
@@ -1873,7 +1873,7 @@ function MonoAppName({
|
|
|
1873
1873
|
})) : (/*#__PURE__*/React__default.createElement("div", null, "appName not supported"));
|
|
1874
1874
|
}
|
|
1875
1875
|
|
|
1876
|
-
var styles$
|
|
1876
|
+
var styles$b = {"unbutton":"unbutton-lEbTR"};
|
|
1877
1877
|
|
|
1878
1878
|
function Unbutton({
|
|
1879
1879
|
className,
|
|
@@ -1882,7 +1882,7 @@ function Unbutton({
|
|
|
1882
1882
|
...nativeProps
|
|
1883
1883
|
}) {
|
|
1884
1884
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
1885
|
-
className: classnames(styles$
|
|
1885
|
+
className: classnames(styles$b.unbutton, className),
|
|
1886
1886
|
style: {
|
|
1887
1887
|
...style
|
|
1888
1888
|
},
|
|
@@ -1891,7 +1891,7 @@ function Unbutton({
|
|
|
1891
1891
|
});
|
|
1892
1892
|
}
|
|
1893
1893
|
|
|
1894
|
-
var styles$
|
|
1894
|
+
var styles$a = {"button":"button-XMbeQ","button-accounts":"button-accounts-nNh-z","chevron":"chevron-RRg9k","is-expanded":"is-expanded-zD0A0"};
|
|
1895
1895
|
|
|
1896
1896
|
const AppsButton = ({
|
|
1897
1897
|
appName,
|
|
@@ -1906,8 +1906,8 @@ const AppsButton = ({
|
|
|
1906
1906
|
"aria-haspopup": "true",
|
|
1907
1907
|
"aria-label": `App switcher: ${appName}`,
|
|
1908
1908
|
onClick: onClick,
|
|
1909
|
-
className: classnames(styles$
|
|
1910
|
-
[styles$
|
|
1909
|
+
className: classnames(styles$a.button, {
|
|
1910
|
+
[styles$a["is-expanded"]]: expanded
|
|
1911
1911
|
}),
|
|
1912
1912
|
type: "button",
|
|
1913
1913
|
style: style,
|
|
@@ -1916,7 +1916,7 @@ const AppsButton = ({
|
|
|
1916
1916
|
appName: "Accounts",
|
|
1917
1917
|
colors: colors
|
|
1918
1918
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
1919
|
-
className: styles$
|
|
1919
|
+
className: styles$a["button-accounts"]
|
|
1920
1920
|
}, "Account settings"))) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
1921
1921
|
appName: appName.replace(/[\s-]/, "")
|
|
1922
1922
|
}), /*#__PURE__*/React__default.createElement(MonoAppName, {
|
|
@@ -1924,7 +1924,7 @@ const AppsButton = ({
|
|
|
1924
1924
|
key: "mono-app-name",
|
|
1925
1925
|
size: 24
|
|
1926
1926
|
}))), /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, {
|
|
1927
|
-
className: styles$
|
|
1927
|
+
className: styles$a.chevron,
|
|
1928
1928
|
key: "disclosure-chevron-icon"
|
|
1929
1929
|
}));
|
|
1930
1930
|
};
|
|
@@ -2012,7 +2012,7 @@ const IEFlex1 = {
|
|
|
2012
2012
|
flex: "1 1 auto"
|
|
2013
2013
|
};
|
|
2014
2014
|
|
|
2015
|
-
var styles$
|
|
2015
|
+
var styles$9 = {"popup":"popup-sJ-Nv"};
|
|
2016
2016
|
|
|
2017
2017
|
const HoverableListItem = ({
|
|
2018
2018
|
active = false,
|
|
@@ -2069,7 +2069,7 @@ class Outsider extends React__default.Component {
|
|
|
2069
2069
|
}
|
|
2070
2070
|
}
|
|
2071
2071
|
|
|
2072
|
-
var styles$
|
|
2072
|
+
var styles$8 = {"popup-root":"popup-root-SeL5u","popup":"popup-nQXYW","is-visible":"is-visible-3DAUP"};
|
|
2073
2073
|
|
|
2074
2074
|
const Popup = ({
|
|
2075
2075
|
className,
|
|
@@ -2077,8 +2077,8 @@ const Popup = ({
|
|
|
2077
2077
|
isVisible,
|
|
2078
2078
|
...nativeProps
|
|
2079
2079
|
}) => (/*#__PURE__*/React__default.createElement(C, {
|
|
2080
|
-
className: classnames(styles$
|
|
2081
|
-
[styles$
|
|
2080
|
+
className: classnames(styles$8.popup, {
|
|
2081
|
+
[styles$8["is-visible"]]: isVisible
|
|
2082
2082
|
}, className),
|
|
2083
2083
|
...nativeProps
|
|
2084
2084
|
}));
|
|
@@ -2086,7 +2086,7 @@ const Popup = ({
|
|
|
2086
2086
|
const PopupRoot = ({
|
|
2087
2087
|
...nativeProps
|
|
2088
2088
|
}) => (/*#__PURE__*/React__default.createElement("div", {
|
|
2089
|
-
className: styles$
|
|
2089
|
+
className: styles$8["popup-root"],
|
|
2090
2090
|
...nativeProps
|
|
2091
2091
|
}));
|
|
2092
2092
|
|
|
@@ -2126,7 +2126,7 @@ const AppsMenu = ({
|
|
|
2126
2126
|
cleanup: !visible,
|
|
2127
2127
|
component: Outsider,
|
|
2128
2128
|
onOutsideClick: toggle,
|
|
2129
|
-
className: styles$
|
|
2129
|
+
className: styles$9.popup,
|
|
2130
2130
|
isVisible: visible
|
|
2131
2131
|
}, /*#__PURE__*/React__default.createElement("menu", {
|
|
2132
2132
|
ref: menuRef,
|
|
@@ -3022,9 +3022,9 @@ function StyledRoot({
|
|
|
3022
3022
|
`), children);
|
|
3023
3023
|
}
|
|
3024
3024
|
|
|
3025
|
-
var styles$
|
|
3025
|
+
var styles$7 = {"route":"route--8BWe","is-active":"is-active-FsU9Y","apps-routes-separator":"apps-routes-separator-Nlm-N"};
|
|
3026
3026
|
|
|
3027
|
-
var styles$
|
|
3027
|
+
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"};
|
|
3028
3028
|
|
|
3029
3029
|
const UserMenu = ({
|
|
3030
3030
|
appName,
|
|
@@ -3043,7 +3043,7 @@ const UserMenu = ({
|
|
|
3043
3043
|
component: Outsider,
|
|
3044
3044
|
onOutsideClick: () => setUserMenuVisible(false),
|
|
3045
3045
|
cleanup: !userMenuVisible,
|
|
3046
|
-
className: styles$
|
|
3046
|
+
className: styles$6.popup,
|
|
3047
3047
|
isVisible: userMenuVisible
|
|
3048
3048
|
}, /*#__PURE__*/React__default.createElement("div", null, hasConnectedPeople ? (/*#__PURE__*/React__default.createElement("div", {
|
|
3049
3049
|
style: {
|
|
@@ -3187,11 +3187,11 @@ const UserMenuTrigger = ({
|
|
|
3187
3187
|
userMenuVisible
|
|
3188
3188
|
}) => {
|
|
3189
3189
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3190
|
-
className: styles$
|
|
3190
|
+
className: styles$6["trigger-wrap"],
|
|
3191
3191
|
"data-pendo": "topbar-org-switcher"
|
|
3192
3192
|
}, /*#__PURE__*/React__default.createElement(Hoverable, {
|
|
3193
|
-
className: classnames(styles$
|
|
3194
|
-
[styles$
|
|
3193
|
+
className: classnames(styles$6["trigger"], {
|
|
3194
|
+
[styles$6["is-visible"]]: userMenuVisible
|
|
3195
3195
|
}),
|
|
3196
3196
|
component: "button",
|
|
3197
3197
|
type: "button",
|
|
@@ -3203,7 +3203,7 @@ const UserMenuTrigger = ({
|
|
|
3203
3203
|
requestConnectedPeopleFetch();
|
|
3204
3204
|
}
|
|
3205
3205
|
}, showOrgName && (/*#__PURE__*/React__default.createElement("span", {
|
|
3206
|
-
className: styles$
|
|
3206
|
+
className: styles$6["trigger-orgname"]
|
|
3207
3207
|
}, orgName)), /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)));
|
|
3208
3208
|
};
|
|
3209
3209
|
|
|
@@ -3260,7 +3260,7 @@ const NotSmallTopbar = ({
|
|
|
3260
3260
|
},
|
|
3261
3261
|
appName: props.appName
|
|
3262
3262
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
3263
|
-
className: styles$
|
|
3263
|
+
className: styles$7["apps-routes-separator"]
|
|
3264
3264
|
}), routesVisible && props.routes, /*#__PURE__*/React__default.createElement("div", {
|
|
3265
3265
|
style: {
|
|
3266
3266
|
margin: "auto"
|
|
@@ -3298,12 +3298,12 @@ const NotSmallRoute = ({
|
|
|
3298
3298
|
...nativeProps
|
|
3299
3299
|
}) => {
|
|
3300
3300
|
return /*#__PURE__*/React__default.createElement("a", {
|
|
3301
|
-
className: classnames(styles$
|
|
3301
|
+
className: classnames(styles$7["route"], className, active && styles$7["is-active"]),
|
|
3302
3302
|
...nativeProps
|
|
3303
3303
|
});
|
|
3304
3304
|
};
|
|
3305
3305
|
|
|
3306
|
-
var styles$
|
|
3306
|
+
var styles$5 = {"avatar":"avatar-tW-wn"};
|
|
3307
3307
|
|
|
3308
3308
|
function Avatar({
|
|
3309
3309
|
env,
|
|
@@ -3313,7 +3313,7 @@ function Avatar({
|
|
|
3313
3313
|
}) {
|
|
3314
3314
|
const url = incomingUrl || `${pcoUrl$1(env)("people")}/static/no_photo_thumbnail_gray.svg`;
|
|
3315
3315
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3316
|
-
className: styles$
|
|
3316
|
+
className: styles$5.avatar,
|
|
3317
3317
|
style: {
|
|
3318
3318
|
backgroundImage: `url(${url})`,
|
|
3319
3319
|
...style
|
|
@@ -3335,14 +3335,14 @@ ClientStorage.defaultProps = {
|
|
|
3335
3335
|
method: "localStorage"
|
|
3336
3336
|
};
|
|
3337
3337
|
|
|
3338
|
-
var styles$
|
|
3338
|
+
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"};
|
|
3339
3339
|
|
|
3340
3340
|
function AccountSettingsLink({
|
|
3341
3341
|
env
|
|
3342
3342
|
}) {
|
|
3343
3343
|
const accountsName = "accounts";
|
|
3344
3344
|
return /*#__PURE__*/React__default.createElement("a", {
|
|
3345
|
-
className: classnames(styles$
|
|
3345
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--bottom"]),
|
|
3346
3346
|
"data-pendo": `app-switcher--change-app--${accountsName}`,
|
|
3347
3347
|
"data-turbolinks": false,
|
|
3348
3348
|
href: pcoUrl$1(env)(accountsName) + getAppsSwitchProductPath(accountsName)
|
|
@@ -3365,7 +3365,7 @@ const CloseMenuButton = ({
|
|
|
3365
3365
|
}) => (/*#__PURE__*/React__default.createElement("button", {
|
|
3366
3366
|
"aria-label": "Close menu",
|
|
3367
3367
|
type: "button",
|
|
3368
|
-
className: styles$
|
|
3368
|
+
className: styles$4["appmenu-close-button"],
|
|
3369
3369
|
style: style
|
|
3370
3370
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
3371
3371
|
fill: color,
|
|
@@ -3446,7 +3446,7 @@ const SmallTopbar = ({
|
|
|
3446
3446
|
"aria-haspopup": "true",
|
|
3447
3447
|
"aria-label": `App switcher: ${props.appName}`,
|
|
3448
3448
|
type: "button",
|
|
3449
|
-
className: styles$
|
|
3449
|
+
className: styles$4["appmenu-button"],
|
|
3450
3450
|
onClick: () => {
|
|
3451
3451
|
props.requestAppsFetch();
|
|
3452
3452
|
props.requestConnectedPeopleFetch();
|
|
@@ -3456,12 +3456,12 @@ const SmallTopbar = ({
|
|
|
3456
3456
|
}, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
3457
3457
|
appName: props.appName.replace(/[\s-]/, "")
|
|
3458
3458
|
})), routesMenuVisible && (/*#__PURE__*/React__default.createElement("div", {
|
|
3459
|
-
className: styles$
|
|
3459
|
+
className: styles$4["routes"]
|
|
3460
3460
|
}, props.routes)), /*#__PURE__*/React__default.createElement(ClientStorage, {
|
|
3461
3461
|
item: "Topbar:Small:Menus:Products:visibility",
|
|
3462
3462
|
render: () => (/*#__PURE__*/React__default.createElement("div", {
|
|
3463
3463
|
ref: appMenuRef,
|
|
3464
|
-
className: styles$
|
|
3464
|
+
className: styles$4["appmenu-layer"],
|
|
3465
3465
|
style: {
|
|
3466
3466
|
...(productSwitcherVisible && {
|
|
3467
3467
|
display: "block"
|
|
@@ -3480,44 +3480,44 @@ const SmallTopbar = ({
|
|
|
3480
3480
|
e.stopPropagation();
|
|
3481
3481
|
}
|
|
3482
3482
|
},
|
|
3483
|
-
className: styles$
|
|
3483
|
+
className: styles$4["appmenu-container"]
|
|
3484
3484
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
3485
3485
|
"aria-current": props.appName === (homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) ? "page" : undefined,
|
|
3486
3486
|
"aria-label": homeProduct ? homeProduct.name : props.appName,
|
|
3487
3487
|
"data-pendo": `app-switcher--change-app--${homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name}`,
|
|
3488
3488
|
"data-turbolinks": false,
|
|
3489
|
-
className: classnames(styles$
|
|
3489
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--top"]),
|
|
3490
3490
|
href: homeProduct ? pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) : undefined
|
|
3491
3491
|
}, /*#__PURE__*/React__default.createElement(UserMenuAppLockup, {
|
|
3492
3492
|
appName: homeProduct ? homeProduct.name : props.appName
|
|
3493
3493
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
3494
|
-
className: styles$
|
|
3494
|
+
className: styles$4["appmenu-scroll"]
|
|
3495
3495
|
}, /*#__PURE__*/React__default.createElement("ul", {
|
|
3496
3496
|
"data-pendo": "app-switcher",
|
|
3497
|
-
className: styles$
|
|
3497
|
+
className: styles$4["appmenu-list"]
|
|
3498
3498
|
}, appsMenuFormatter(restProducts).map(({
|
|
3499
3499
|
name
|
|
3500
3500
|
}) => (/*#__PURE__*/React__default.createElement("li", {
|
|
3501
3501
|
key: name,
|
|
3502
|
-
className: styles$
|
|
3502
|
+
className: styles$4["appmenu-list-li"]
|
|
3503
3503
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
3504
3504
|
"aria-current": name === props.appName ? "page" : undefined,
|
|
3505
3505
|
"aria-label": name,
|
|
3506
3506
|
"data-pendo": `app-switcher--change-app--${name}`,
|
|
3507
3507
|
"data-turbolinks": false,
|
|
3508
|
-
className: styles$
|
|
3508
|
+
className: styles$4["appmenu-list-a"],
|
|
3509
3509
|
href: pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(name)
|
|
3510
3510
|
}, /*#__PURE__*/React__default.createElement(UserMenuAppLockup, {
|
|
3511
3511
|
appName: name
|
|
3512
3512
|
}))))), accountsProduct && (/*#__PURE__*/React__default.createElement("li", {
|
|
3513
|
-
className: styles$
|
|
3513
|
+
className: styles$4["appmenu-list-li"]
|
|
3514
3514
|
}, /*#__PURE__*/React__default.createElement(AccountSettingsLink, {
|
|
3515
3515
|
env: props.env
|
|
3516
3516
|
}))))))))
|
|
3517
3517
|
}), /*#__PURE__*/React__default.createElement("button", {
|
|
3518
3518
|
type: "button",
|
|
3519
|
-
className: classnames(styles$
|
|
3520
|
-
[styles$
|
|
3519
|
+
className: classnames(styles$4["current-route"], {
|
|
3520
|
+
[styles$4["is-active"]]: routesMenuVisible
|
|
3521
3521
|
}),
|
|
3522
3522
|
onClick: props.routes.length > 0 ? () => {
|
|
3523
3523
|
setProductSwitcherVisible(false);
|
|
@@ -3525,7 +3525,7 @@ const SmallTopbar = ({
|
|
|
3525
3525
|
} : null
|
|
3526
3526
|
}, /*#__PURE__*/React__default.createElement(CurrentRouteComponent, null, capitalize(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React__default.createElement("button", {
|
|
3527
3527
|
type: "button",
|
|
3528
|
-
className: styles$
|
|
3528
|
+
className: styles$4["profile-button"],
|
|
3529
3529
|
onClick: () => {
|
|
3530
3530
|
var _a, _b;
|
|
3531
3531
|
props.requestConnectedPeopleFetch();
|
|
@@ -3541,7 +3541,7 @@ const SmallRoute = ({
|
|
|
3541
3541
|
className,
|
|
3542
3542
|
...props
|
|
3543
3543
|
}) => (/*#__PURE__*/React__default.createElement("a", {
|
|
3544
|
-
className: classnames(styles$
|
|
3544
|
+
className: classnames(styles$4["route"], className, active && styles$4["is-active"]),
|
|
3545
3545
|
...props
|
|
3546
3546
|
}));
|
|
3547
3547
|
|
|
@@ -3680,7 +3680,7 @@ const topbarTheme = {
|
|
|
3680
3680
|
id: "topbar"
|
|
3681
3681
|
};
|
|
3682
3682
|
|
|
3683
|
-
var styles$
|
|
3683
|
+
var styles$3 = {"drawer-wrap":"drawer-wrap-J0rSL","is-visible":"is-visible-KTME8","drawer":"drawer-j7f4l"};
|
|
3684
3684
|
|
|
3685
3685
|
function Drawer({
|
|
3686
3686
|
children,
|
|
@@ -3688,7 +3688,7 @@ function Drawer({
|
|
|
3688
3688
|
}) {
|
|
3689
3689
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3690
3690
|
id: id,
|
|
3691
|
-
className: styles$
|
|
3691
|
+
className: styles$3["drawer"]
|
|
3692
3692
|
}, children);
|
|
3693
3693
|
}
|
|
3694
3694
|
function DrawerWrap({
|
|
@@ -3698,7 +3698,7 @@ function DrawerWrap({
|
|
|
3698
3698
|
...props
|
|
3699
3699
|
}) {
|
|
3700
3700
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3701
|
-
className: classnames(styles$
|
|
3701
|
+
className: classnames(styles$3["drawer-wrap"], className, isVisible && styles$3["is-visible"]),
|
|
3702
3702
|
...props
|
|
3703
3703
|
}, children);
|
|
3704
3704
|
}
|
|
@@ -3882,7 +3882,7 @@ const SwitchView = ({
|
|
|
3882
3882
|
}));
|
|
3883
3883
|
};
|
|
3884
3884
|
|
|
3885
|
-
var styles$
|
|
3885
|
+
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"};
|
|
3886
3886
|
|
|
3887
3887
|
const COLOR_MODES = [{
|
|
3888
3888
|
label: "Light",
|
|
@@ -3902,11 +3902,11 @@ function ColorModeSwitcher() {
|
|
|
3902
3902
|
const updateStore = useUpdateStore();
|
|
3903
3903
|
const [counter] = useState(() => COLOR_MODE_INSTANCE_COUNTER++);
|
|
3904
3904
|
return /*#__PURE__*/React__default.createElement("fieldset", {
|
|
3905
|
-
className: styles$
|
|
3905
|
+
className: styles$2["color-mode-switcher"]
|
|
3906
3906
|
}, /*#__PURE__*/React__default.createElement("legend", {
|
|
3907
|
-
className: styles$
|
|
3907
|
+
className: styles$2["color-mode-switcher-label"]
|
|
3908
3908
|
}, "Appearance", " "), /*#__PURE__*/React__default.createElement("div", {
|
|
3909
|
-
className: styles$
|
|
3909
|
+
className: styles$2["color-mode-switcher-modes"]
|
|
3910
3910
|
}, COLOR_MODES.map(({
|
|
3911
3911
|
value,
|
|
3912
3912
|
label
|
|
@@ -4177,20 +4177,225 @@ const useToolbarReducer = overrides => React.useReducer(reducer, {
|
|
|
4177
4177
|
...overrides
|
|
4178
4178
|
});
|
|
4179
4179
|
|
|
4180
|
-
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"};
|
|
4180
|
+
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"};
|
|
4181
4181
|
|
|
4182
4182
|
const pcoUrl = pcoUrl$1;
|
|
4183
4183
|
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4184
|
+
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-"};
|
|
4185
|
+
|
|
4186
|
+
function AskAIBanner({
|
|
4187
|
+
onClick
|
|
4188
|
+
}) {
|
|
4189
|
+
return /*#__PURE__*/React__default.createElement("button", {
|
|
4190
|
+
className: styles.banner,
|
|
4191
|
+
onClick: () => onClick(),
|
|
4192
|
+
type: "button"
|
|
4193
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
4194
|
+
className: styles.content
|
|
4195
|
+
}, /*#__PURE__*/React__default.createElement(AskAIIcon, null), /*#__PURE__*/React__default.createElement("span", {
|
|
4196
|
+
className: styles.text
|
|
4197
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
4198
|
+
className: styles.title
|
|
4199
|
+
}, "Ask AI"), /*#__PURE__*/React__default.createElement("span", {
|
|
4200
|
+
className: styles.subtitle
|
|
4201
|
+
}, "Support answers tailored to you"))), /*#__PURE__*/React__default.createElement(Icon, {
|
|
4202
|
+
className: styles.chevron,
|
|
4203
|
+
name: "general.rightChevron",
|
|
4204
|
+
size: "16px"
|
|
4205
|
+
}));
|
|
4206
|
+
}
|
|
4207
|
+
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";
|
|
4208
|
+
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";
|
|
4209
|
+
// Monotonic counter for per-instance SVG ids. useId would be tidier but isn't
|
|
4210
|
+
// available on React 17, which our peer range still supports.
|
|
4211
|
+
let iconInstanceCount = 0;
|
|
4212
|
+
function AskAIIcon() {
|
|
4213
|
+
const [uid] = useState(() => `ask-ai-icon-${iconInstanceCount++}`);
|
|
4214
|
+
const maskId = `${uid}-mask`;
|
|
4215
|
+
const blur = n => `${uid}-blur-${n}`;
|
|
4216
|
+
const borderA = `${uid}-border-a`;
|
|
4217
|
+
const borderB = `${uid}-border-b`;
|
|
4218
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
4219
|
+
className: styles.icon
|
|
4220
|
+
}, /*#__PURE__*/React__default.createElement("svg", {
|
|
4221
|
+
className: styles.iconShape,
|
|
4222
|
+
viewBox: "0 0 32 32",
|
|
4223
|
+
fill: "none",
|
|
4224
|
+
"aria-hidden": "true"
|
|
4225
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4226
|
+
d: SQUIRCLE_PATH,
|
|
4227
|
+
fill: "white"
|
|
4228
|
+
}), /*#__PURE__*/React__default.createElement("mask", {
|
|
4229
|
+
id: maskId,
|
|
4230
|
+
style: {
|
|
4231
|
+
maskType: "alpha"
|
|
4232
|
+
},
|
|
4233
|
+
maskUnits: "userSpaceOnUse",
|
|
4234
|
+
x: "0",
|
|
4235
|
+
y: "0",
|
|
4236
|
+
width: "32",
|
|
4237
|
+
height: "32"
|
|
4238
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4239
|
+
d: SQUIRCLE_PATH,
|
|
4240
|
+
fill: "#939393"
|
|
4241
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4242
|
+
mask: `url(#${maskId})`
|
|
4243
|
+
}, /*#__PURE__*/React__default.createElement("g", {
|
|
4244
|
+
filter: `url(#${blur(0)})`
|
|
4245
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4246
|
+
cx: "24.2268",
|
|
4247
|
+
cy: "23.7824",
|
|
4248
|
+
rx: "17.9331",
|
|
4249
|
+
ry: "31.1883",
|
|
4250
|
+
transform: "rotate(-135 24.2268 23.7824)",
|
|
4251
|
+
fill: "#B883E2"
|
|
4252
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4253
|
+
filter: `url(#${blur(1)})`
|
|
4254
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4255
|
+
cx: "7.05187",
|
|
4256
|
+
cy: "9.27409",
|
|
4257
|
+
rx: "14.9017",
|
|
4258
|
+
ry: "29.437",
|
|
4259
|
+
transform: "rotate(45 7.05187 9.27409)",
|
|
4260
|
+
fill: "#74A3FF"
|
|
4261
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4262
|
+
filter: `url(#${blur(2)})`
|
|
4263
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4264
|
+
cx: "29.7552",
|
|
4265
|
+
cy: "31.0886",
|
|
4266
|
+
rx: "11.2869",
|
|
4267
|
+
ry: "15.1567",
|
|
4268
|
+
transform: "rotate(-135 29.7552 31.0886)",
|
|
4269
|
+
fill: "#F28B54"
|
|
4270
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4271
|
+
filter: `url(#${blur(3)})`
|
|
4272
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4273
|
+
cx: "3.58734",
|
|
4274
|
+
cy: "4.03178",
|
|
4275
|
+
rx: "11.2869",
|
|
4276
|
+
ry: "15.1567",
|
|
4277
|
+
transform: "rotate(45 3.58734 4.03178)",
|
|
4278
|
+
fill: "#24D7B7"
|
|
4279
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4280
|
+
filter: `url(#${blur(4)})`
|
|
4281
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4282
|
+
cx: "32.0363",
|
|
4283
|
+
cy: "32.0363",
|
|
4284
|
+
rx: "5.65576",
|
|
4285
|
+
ry: "7.59487",
|
|
4286
|
+
transform: "rotate(-135 32.0363 32.0363)",
|
|
4287
|
+
fill: "#FFBC40"
|
|
4288
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4289
|
+
filter: `url(#${blur(5)})`
|
|
4290
|
+
}, /*#__PURE__*/React__default.createElement("ellipse", {
|
|
4291
|
+
cx: "1.00513",
|
|
4292
|
+
cy: "-0.772657",
|
|
4293
|
+
rx: "5.1403",
|
|
4294
|
+
ry: "6.82216",
|
|
4295
|
+
transform: "rotate(-135 1.00513 -0.772657)",
|
|
4296
|
+
fill: "#70FFD4"
|
|
4297
|
+
})), /*#__PURE__*/React__default.createElement("path", {
|
|
4298
|
+
d: SQUIRCLE_BORDER_PATH,
|
|
4299
|
+
stroke: `url(#${borderA})`,
|
|
4300
|
+
strokeWidth: "0.444444"
|
|
4301
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4302
|
+
d: SQUIRCLE_BORDER_PATH,
|
|
4303
|
+
stroke: `url(#${borderB})`,
|
|
4304
|
+
strokeWidth: "0.444444"
|
|
4305
|
+
})), /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("filter", {
|
|
4306
|
+
id: blur(0),
|
|
4307
|
+
x: "-20.7722",
|
|
4308
|
+
y: "-21.2166",
|
|
4309
|
+
width: "89.9981",
|
|
4310
|
+
height: "89.9981",
|
|
4311
|
+
filterUnits: "userSpaceOnUse",
|
|
4312
|
+
colorInterpolationFilters: "sRGB"
|
|
4313
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4314
|
+
stdDeviation: "9.77778"
|
|
4315
|
+
})), /*#__PURE__*/React__default.createElement("filter", {
|
|
4316
|
+
id: blur(1),
|
|
4317
|
+
x: "-35.839",
|
|
4318
|
+
y: "-33.6167",
|
|
4319
|
+
width: "85.7816",
|
|
4320
|
+
height: "85.7816",
|
|
4321
|
+
filterUnits: "userSpaceOnUse",
|
|
4322
|
+
colorInterpolationFilters: "sRGB"
|
|
4323
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4324
|
+
stdDeviation: "9.77778"
|
|
4325
|
+
})), /*#__PURE__*/React__default.createElement("filter", {
|
|
4326
|
+
id: blur(2),
|
|
4327
|
+
x: "-3.16378",
|
|
4328
|
+
y: "-1.83045",
|
|
4329
|
+
width: "65.838",
|
|
4330
|
+
height: "65.838",
|
|
4331
|
+
filterUnits: "userSpaceOnUse",
|
|
4332
|
+
colorInterpolationFilters: "sRGB"
|
|
4333
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4334
|
+
stdDeviation: "9.77778"
|
|
4335
|
+
})), /*#__PURE__*/React__default.createElement("filter", {
|
|
4336
|
+
id: blur(3),
|
|
4337
|
+
x: "-29.3317",
|
|
4338
|
+
y: "-28.8872",
|
|
4339
|
+
width: "65.838",
|
|
4340
|
+
height: "65.838",
|
|
4341
|
+
filterUnits: "userSpaceOnUse",
|
|
4342
|
+
colorInterpolationFilters: "sRGB"
|
|
4343
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4344
|
+
stdDeviation: "9.77778"
|
|
4345
|
+
})), /*#__PURE__*/React__default.createElement("filter", {
|
|
4346
|
+
id: blur(4),
|
|
4347
|
+
x: "16.4511",
|
|
4348
|
+
y: "16.4511",
|
|
4349
|
+
width: "31.1704",
|
|
4350
|
+
height: "31.1704",
|
|
4351
|
+
filterUnits: "userSpaceOnUse",
|
|
4352
|
+
colorInterpolationFilters: "sRGB"
|
|
4353
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4354
|
+
stdDeviation: "4.44444"
|
|
4355
|
+
})), /*#__PURE__*/React__default.createElement("filter", {
|
|
4356
|
+
id: blur(5),
|
|
4357
|
+
x: "-13.9242",
|
|
4358
|
+
y: "-15.7019",
|
|
4359
|
+
width: "29.8586",
|
|
4360
|
+
height: "29.8586",
|
|
4361
|
+
filterUnits: "userSpaceOnUse",
|
|
4362
|
+
colorInterpolationFilters: "sRGB"
|
|
4363
|
+
}, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
|
|
4364
|
+
stdDeviation: "4.44444"
|
|
4365
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4366
|
+
id: borderA,
|
|
4367
|
+
x1: "4.22222",
|
|
4368
|
+
y1: "2.44444",
|
|
4369
|
+
x2: "16",
|
|
4370
|
+
y2: "14.4444",
|
|
4371
|
+
gradientUnits: "userSpaceOnUse"
|
|
4372
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4373
|
+
stopColor: "#62FAFF"
|
|
4374
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4375
|
+
offset: "1",
|
|
4376
|
+
stopColor: "#55AFD6",
|
|
4377
|
+
stopOpacity: "0"
|
|
4378
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4379
|
+
id: borderB,
|
|
4380
|
+
x1: "28.4444",
|
|
4381
|
+
y1: "29.3333",
|
|
4382
|
+
x2: "22.8889",
|
|
4383
|
+
y2: "22.4444",
|
|
4384
|
+
gradientUnits: "userSpaceOnUse"
|
|
4385
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4386
|
+
stopColor: "#FFA961"
|
|
4387
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4388
|
+
offset: "1",
|
|
4389
|
+
stopColor: "#D48B91",
|
|
4390
|
+
stopOpacity: "0"
|
|
4391
|
+
})))), /*#__PURE__*/React__default.createElement("svg", {
|
|
4392
|
+
className: styles.iconSparkle,
|
|
4393
|
+
viewBox: "0 0 19.4995 17.9999",
|
|
4394
|
+
"aria-hidden": "true"
|
|
4395
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4396
|
+
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",
|
|
4397
|
+
fill: "currentColor"
|
|
4398
|
+
})));
|
|
4194
4399
|
}
|
|
4195
4400
|
|
|
4196
4401
|
// The article heading lives in the deepest populated hierarchy level (lvl0 is
|
|
@@ -4344,6 +4549,89 @@ const DocumentationSearch = ({
|
|
|
4344
4549
|
}));
|
|
4345
4550
|
};
|
|
4346
4551
|
|
|
4552
|
+
// The route rides in the iframe URL fragment (`…/topbar#conversations/abc`),
|
|
4553
|
+
// not the path, so updating it is a same-document navigation that doesn't
|
|
4554
|
+
// reload the iframe, but also lets the route survive a forced reload (e.g.
|
|
4555
|
+
// Turbo re-parenting the topbar).
|
|
4556
|
+
function buildPicobotSrc(origin, path) {
|
|
4557
|
+
const [rawPath, queryPart] = path.replace(/^\/+/, "").split("?", 2);
|
|
4558
|
+
const safePath = rawPath.split("/").filter(segment => segment && segment !== "." && segment !== "..").join("/");
|
|
4559
|
+
const fragment = queryPart !== undefined ? `${safePath}?${queryPart}` : safePath;
|
|
4560
|
+
const base = new URL("topbar", origin).toString();
|
|
4561
|
+
return fragment ? `${base}#${fragment}` : base;
|
|
4562
|
+
}
|
|
4563
|
+
|
|
4564
|
+
const LOAD_TIMEOUT_MS = 3000;
|
|
4565
|
+
function createPicobotIframe(picobotOrigin) {
|
|
4566
|
+
return /*#__PURE__*/React__default.forwardRef(function PicobotIframe({
|
|
4567
|
+
currentPath: iframePath,
|
|
4568
|
+
onChangePath: onIframeChangePath,
|
|
4569
|
+
onMessage
|
|
4570
|
+
}, ref) {
|
|
4571
|
+
const iframeRef = React__default.useRef(null);
|
|
4572
|
+
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4573
|
+
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4574
|
+
// always reflects the live conversation. See buildPicobotSrc.
|
|
4575
|
+
const [loadedPath, setLoadedPath] = React__default.useState(iframePath || "");
|
|
4576
|
+
const hasReportedErrorRef = React__default.useRef(false);
|
|
4577
|
+
const loadTimeoutRef = React__default.useRef();
|
|
4578
|
+
const reportLoadError = React__default.useCallback(() => {
|
|
4579
|
+
if (hasReportedErrorRef.current) return;
|
|
4580
|
+
hasReportedErrorRef.current = true;
|
|
4581
|
+
onMessage === null || onMessage === void 0 ? void 0 : onMessage({
|
|
4582
|
+
type: "IFRAME_LOAD_ERROR"
|
|
4583
|
+
});
|
|
4584
|
+
}, [onMessage]);
|
|
4585
|
+
React__default.useEffect(function armLoadTimeoutOnMount() {
|
|
4586
|
+
const timeout = setTimeout(reportLoadError, LOAD_TIMEOUT_MS);
|
|
4587
|
+
loadTimeoutRef.current = timeout;
|
|
4588
|
+
return () => clearTimeout(timeout);
|
|
4589
|
+
}, []);
|
|
4590
|
+
React__default.useEffect(function subscribeToGuestMessages() {
|
|
4591
|
+
function handleGuestMessage(e) {
|
|
4592
|
+
var _a, _b, _c;
|
|
4593
|
+
if (e.origin !== picobotOrigin) return;
|
|
4594
|
+
if (!e.source || !iframeRef.current) return;
|
|
4595
|
+
if (e.source !== iframeRef.current.contentWindow) return;
|
|
4596
|
+
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4597
|
+
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4598
|
+
setLoadedPath(reportedPath);
|
|
4599
|
+
onIframeChangePath(reportedPath);
|
|
4600
|
+
}
|
|
4601
|
+
if (((_c = e.data) === null || _c === void 0 ? void 0 : _c.type) === "READY") clearTimeout(loadTimeoutRef.current);
|
|
4602
|
+
if (onMessage) onMessage(e.data);
|
|
4603
|
+
}
|
|
4604
|
+
window.addEventListener("message", handleGuestMessage);
|
|
4605
|
+
return () => window.removeEventListener("message", handleGuestMessage);
|
|
4606
|
+
}, [onIframeChangePath, onMessage]);
|
|
4607
|
+
React__default.useEffect(function syncLoadedPathFromProp() {
|
|
4608
|
+
setLoadedPath(iframePath || "");
|
|
4609
|
+
}, [iframePath]);
|
|
4610
|
+
// A one-way channel for sending messages to picobot. Topbar just
|
|
4611
|
+
// forwards the envelope to the iframe and holds no message semantics of
|
|
4612
|
+
// its own—the consumer decides what to send and when.
|
|
4613
|
+
React__default.useImperativeHandle(ref, () => ({
|
|
4614
|
+
postMessage(message) {
|
|
4615
|
+
var _a, _b;
|
|
4616
|
+
(_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, picobotOrigin);
|
|
4617
|
+
}
|
|
4618
|
+
}), []);
|
|
4619
|
+
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4620
|
+
return /*#__PURE__*/React__default.createElement("iframe", {
|
|
4621
|
+
ref: iframeRef,
|
|
4622
|
+
src: iframeSrc,
|
|
4623
|
+
allow: "clipboard-write",
|
|
4624
|
+
style: {
|
|
4625
|
+
border: 0,
|
|
4626
|
+
flex: 1,
|
|
4627
|
+
height: "100%",
|
|
4628
|
+
width: "100%"
|
|
4629
|
+
},
|
|
4630
|
+
title: "Picobot"
|
|
4631
|
+
});
|
|
4632
|
+
});
|
|
4633
|
+
}
|
|
4634
|
+
|
|
4347
4635
|
const {
|
|
4348
4636
|
LoadingIndicator: LoadingIndicator$1,
|
|
4349
4637
|
StackView: StackView$1
|
|
@@ -4369,52 +4657,7 @@ function HelpdeskComponent({
|
|
|
4369
4657
|
helpdeskConfig,
|
|
4370
4658
|
onChangePath
|
|
4371
4659
|
}) {
|
|
4372
|
-
const PicobotIframe = React__default.useMemo(() =>
|
|
4373
|
-
const picobotOrigin = pcoUrl(env)("picobot");
|
|
4374
|
-
return function PicobotIframe({
|
|
4375
|
-
currentPath: iframePath,
|
|
4376
|
-
onChangePath: onIframeChangePath,
|
|
4377
|
-
onMessage
|
|
4378
|
-
}) {
|
|
4379
|
-
const ref = React__default.useRef(null);
|
|
4380
|
-
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4381
|
-
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4382
|
-
// always reflects the live conversation. See buildPicobotSrc.
|
|
4383
|
-
const [loadedPath, setLoadedPath] = React__default.useState(iframePath || "");
|
|
4384
|
-
React__default.useEffect(() => {
|
|
4385
|
-
if (!onIframeChangePath && !onMessage) return undefined;
|
|
4386
|
-
const handler = e => {
|
|
4387
|
-
var _a, _b;
|
|
4388
|
-
if (e.origin !== picobotOrigin) return;
|
|
4389
|
-
if (!e.source || !ref.current) return;
|
|
4390
|
-
if (e.source !== ref.current.contentWindow) return;
|
|
4391
|
-
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4392
|
-
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4393
|
-
setLoadedPath(reportedPath);
|
|
4394
|
-
onIframeChangePath(reportedPath);
|
|
4395
|
-
}
|
|
4396
|
-
if (onMessage) onMessage(e.data);
|
|
4397
|
-
};
|
|
4398
|
-
window.addEventListener("message", handler);
|
|
4399
|
-
return () => window.removeEventListener("message", handler);
|
|
4400
|
-
}, [onIframeChangePath, onMessage]);
|
|
4401
|
-
React__default.useEffect(() => {
|
|
4402
|
-
setLoadedPath(iframePath || "");
|
|
4403
|
-
}, [iframePath]);
|
|
4404
|
-
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4405
|
-
return /*#__PURE__*/React__default.createElement("iframe", {
|
|
4406
|
-
ref: ref,
|
|
4407
|
-
src: iframeSrc,
|
|
4408
|
-
style: {
|
|
4409
|
-
border: 0,
|
|
4410
|
-
flex: 1,
|
|
4411
|
-
height: "100%",
|
|
4412
|
-
width: "100%"
|
|
4413
|
-
},
|
|
4414
|
-
title: "Picobot"
|
|
4415
|
-
});
|
|
4416
|
-
};
|
|
4417
|
-
}, [env]);
|
|
4660
|
+
const PicobotIframe = React__default.useMemo(() => createPicobotIframe(pcoUrl(env)("picobot")), [env]);
|
|
4418
4661
|
return /*#__PURE__*/React__default.createElement(UiExtensionFirstPartyComponent, {
|
|
4419
4662
|
grow: 1,
|
|
4420
4663
|
display: "flex",
|
|
@@ -4429,6 +4672,15 @@ function HelpdeskComponent({
|
|
|
4429
4672
|
spacing: 1
|
|
4430
4673
|
}, /*#__PURE__*/React__default.createElement(DrawerHeading, null, "Help and support"), /*#__PURE__*/React__default.createElement(LoadingIndicator$1, null)))),
|
|
4431
4674
|
additionalComponents: {
|
|
4675
|
+
AskAIBanner: {
|
|
4676
|
+
component: AskAIBanner,
|
|
4677
|
+
properties: {
|
|
4678
|
+
onClick: {
|
|
4679
|
+
event: false,
|
|
4680
|
+
type: Function
|
|
4681
|
+
}
|
|
4682
|
+
}
|
|
4683
|
+
},
|
|
4432
4684
|
CalendlyWidget: {
|
|
4433
4685
|
component: CalendlyWidget,
|
|
4434
4686
|
properties: {
|
|
@@ -4465,6 +4717,7 @@ function HelpdeskComponent({
|
|
|
4465
4717
|
DrawerHeading,
|
|
4466
4718
|
PicobotIframe: {
|
|
4467
4719
|
component: PicobotIframe,
|
|
4720
|
+
methods: ["postMessage"],
|
|
4468
4721
|
properties: {
|
|
4469
4722
|
currentPath: {
|
|
4470
4723
|
attribute: false
|
|
@@ -5709,18 +5962,18 @@ function Toolbar({
|
|
|
5709
5962
|
return /*#__PURE__*/React__default.createElement(ThemeProvider, {
|
|
5710
5963
|
theme: topbarTheme
|
|
5711
5964
|
}, /*#__PURE__*/React__default.createElement(UiExtensionDataContext, null, /*#__PURE__*/React__default.createElement("div", {
|
|
5712
|
-
className: styles["toolbar"],
|
|
5965
|
+
className: styles$1["toolbar"],
|
|
5713
5966
|
"data-pendo": "toolbar-profile-support-wrapper"
|
|
5714
5967
|
}, /*#__PURE__*/React__default.createElement(ToolbarButton, {
|
|
5715
5968
|
"aria-label": `Open ${userName}’s profile drawer`,
|
|
5716
5969
|
onClick: () => toggleDrawer(Profile),
|
|
5717
5970
|
"data-pendo": "toolbar-profile",
|
|
5718
|
-
className: styles["toolbar-button--avatar"]
|
|
5971
|
+
className: styles$1["toolbar-button--avatar"]
|
|
5719
5972
|
}, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
5720
5973
|
env: env,
|
|
5721
5974
|
url: userAvatarPath
|
|
5722
5975
|
})), /*#__PURE__*/React__default.createElement(ToolbarButton, {
|
|
5723
|
-
className: styles["toolbar-button--home"],
|
|
5976
|
+
className: styles$1["toolbar-button--home"],
|
|
5724
5977
|
onClick: () => closeDrawer()
|
|
5725
5978
|
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
5726
5979
|
name: "toolbar.planningCenter",
|
|
@@ -5758,7 +6011,7 @@ const ToolbarButton = ({
|
|
|
5758
6011
|
}) => {
|
|
5759
6012
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
5760
6013
|
type: "button",
|
|
5761
|
-
className: classnames(styles["toolbar-button"], className, current && styles["is-current"]),
|
|
6014
|
+
className: classnames(styles$1["toolbar-button"], className, current && styles$1["is-current"]),
|
|
5762
6015
|
onClick: onClick,
|
|
5763
6016
|
"data-toolbar-link": "true",
|
|
5764
6017
|
...restProps
|