@planningcenter/topbar 12.1.2 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/topbar.css +127 -0
- package/dist/topbar.css.map +1 -1
- package/dist/topbar.js +199 -119
- package/dist/topbar.js.map +1 -1
- package/dist/topbar.modern.js +199 -119
- package/dist/topbar.modern.js.map +1 -1
- package/dist/topbar.module.js +199 -119
- package/dist/topbar.module.js.map +1 -1
- package/dist/topbar.umd.js +199 -119
- package/dist/topbar.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/topbar.module.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,67 @@ 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","iconWand":"iconWand-yEhh4","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 GRADIENT_ID = "ask-ai-banner-icon-gradient";
|
|
4208
|
+
function AskAIIcon() {
|
|
4209
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
4210
|
+
className: styles.icon
|
|
4211
|
+
}, /*#__PURE__*/React__default.createElement("svg", {
|
|
4212
|
+
className: styles.iconShape,
|
|
4213
|
+
viewBox: "0 0 32 32",
|
|
4214
|
+
"aria-hidden": "true"
|
|
4215
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4216
|
+
d: "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",
|
|
4217
|
+
fill: `url(#${GRADIENT_ID})`
|
|
4218
|
+
}), /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4219
|
+
id: GRADIENT_ID,
|
|
4220
|
+
x1: "0",
|
|
4221
|
+
y1: "0",
|
|
4222
|
+
x2: "38.0356",
|
|
4223
|
+
y2: "21.1413",
|
|
4224
|
+
gradientUnits: "userSpaceOnUse"
|
|
4225
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4226
|
+
stopColor: "#49D4BB"
|
|
4227
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4228
|
+
offset: "0.352694",
|
|
4229
|
+
stopColor: "#7CA8FE"
|
|
4230
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4231
|
+
offset: "0.656242",
|
|
4232
|
+
stopColor: "#B883E2"
|
|
4233
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4234
|
+
offset: "1",
|
|
4235
|
+
stopColor: "#F28B54"
|
|
4236
|
+
})))), /*#__PURE__*/React__default.createElement(Icon, {
|
|
4237
|
+
className: styles.iconWand,
|
|
4238
|
+
name: "general.magicWand",
|
|
4239
|
+
size: "18px"
|
|
4240
|
+
}));
|
|
4194
4241
|
}
|
|
4195
4242
|
|
|
4196
4243
|
// The article heading lives in the deepest populated hierarchy level (lvl0 is
|
|
@@ -4344,6 +4391,74 @@ const DocumentationSearch = ({
|
|
|
4344
4391
|
}));
|
|
4345
4392
|
};
|
|
4346
4393
|
|
|
4394
|
+
// The route rides in the iframe URL fragment (`…/topbar#conversations/abc`),
|
|
4395
|
+
// not the path, so updating it is a same-document navigation that doesn't
|
|
4396
|
+
// reload the iframe, but also lets the route survive a forced reload (e.g.
|
|
4397
|
+
// Turbo re-parenting the topbar).
|
|
4398
|
+
function buildPicobotSrc(origin, path) {
|
|
4399
|
+
const [rawPath, queryPart] = path.replace(/^\/+/, "").split("?", 2);
|
|
4400
|
+
const safePath = rawPath.split("/").filter(segment => segment && segment !== "." && segment !== "..").join("/");
|
|
4401
|
+
const fragment = queryPart !== undefined ? `${safePath}?${queryPart}` : safePath;
|
|
4402
|
+
const base = new URL("topbar", origin).toString();
|
|
4403
|
+
return fragment ? `${base}#${fragment}` : base;
|
|
4404
|
+
}
|
|
4405
|
+
|
|
4406
|
+
function createPicobotIframe(picobotOrigin) {
|
|
4407
|
+
return /*#__PURE__*/React__default.forwardRef(function PicobotIframe({
|
|
4408
|
+
currentPath: iframePath,
|
|
4409
|
+
onChangePath: onIframeChangePath,
|
|
4410
|
+
onMessage
|
|
4411
|
+
}, ref) {
|
|
4412
|
+
const iframeRef = React__default.useRef(null);
|
|
4413
|
+
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4414
|
+
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4415
|
+
// always reflects the live conversation. See buildPicobotSrc.
|
|
4416
|
+
const [loadedPath, setLoadedPath] = React__default.useState(iframePath || "");
|
|
4417
|
+
React__default.useEffect(function subscribeToGuestMessages() {
|
|
4418
|
+
if (!onIframeChangePath && !onMessage) return undefined;
|
|
4419
|
+
function handleGuestMessage(e) {
|
|
4420
|
+
var _a, _b;
|
|
4421
|
+
if (e.origin !== picobotOrigin) return;
|
|
4422
|
+
if (!e.source || !iframeRef.current) return;
|
|
4423
|
+
if (e.source !== iframeRef.current.contentWindow) return;
|
|
4424
|
+
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4425
|
+
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4426
|
+
setLoadedPath(reportedPath);
|
|
4427
|
+
onIframeChangePath(reportedPath);
|
|
4428
|
+
}
|
|
4429
|
+
if (onMessage) onMessage(e.data);
|
|
4430
|
+
}
|
|
4431
|
+
window.addEventListener("message", handleGuestMessage);
|
|
4432
|
+
return () => window.removeEventListener("message", handleGuestMessage);
|
|
4433
|
+
}, [onIframeChangePath, onMessage]);
|
|
4434
|
+
React__default.useEffect(function syncLoadedPathFromProp() {
|
|
4435
|
+
setLoadedPath(iframePath || "");
|
|
4436
|
+
}, [iframePath]);
|
|
4437
|
+
// A one-way channel for sending messages to picobot. Topbar just
|
|
4438
|
+
// forwards the envelope to the iframe and holds no message semantics of
|
|
4439
|
+
// its own—the consumer decides what to send and when.
|
|
4440
|
+
React__default.useImperativeHandle(ref, () => ({
|
|
4441
|
+
postMessage(message) {
|
|
4442
|
+
var _a, _b;
|
|
4443
|
+
(_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, picobotOrigin);
|
|
4444
|
+
}
|
|
4445
|
+
}), []);
|
|
4446
|
+
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4447
|
+
return /*#__PURE__*/React__default.createElement("iframe", {
|
|
4448
|
+
ref: iframeRef,
|
|
4449
|
+
src: iframeSrc,
|
|
4450
|
+
allow: "clipboard-write",
|
|
4451
|
+
style: {
|
|
4452
|
+
border: 0,
|
|
4453
|
+
flex: 1,
|
|
4454
|
+
height: "100%",
|
|
4455
|
+
width: "100%"
|
|
4456
|
+
},
|
|
4457
|
+
title: "Picobot"
|
|
4458
|
+
});
|
|
4459
|
+
});
|
|
4460
|
+
}
|
|
4461
|
+
|
|
4347
4462
|
const {
|
|
4348
4463
|
LoadingIndicator: LoadingIndicator$1,
|
|
4349
4464
|
StackView: StackView$1
|
|
@@ -4369,52 +4484,7 @@ function HelpdeskComponent({
|
|
|
4369
4484
|
helpdeskConfig,
|
|
4370
4485
|
onChangePath
|
|
4371
4486
|
}) {
|
|
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]);
|
|
4487
|
+
const PicobotIframe = React__default.useMemo(() => createPicobotIframe(pcoUrl(env)("picobot")), [env]);
|
|
4418
4488
|
return /*#__PURE__*/React__default.createElement(UiExtensionFirstPartyComponent, {
|
|
4419
4489
|
grow: 1,
|
|
4420
4490
|
display: "flex",
|
|
@@ -4429,6 +4499,15 @@ function HelpdeskComponent({
|
|
|
4429
4499
|
spacing: 1
|
|
4430
4500
|
}, /*#__PURE__*/React__default.createElement(DrawerHeading, null, "Help and support"), /*#__PURE__*/React__default.createElement(LoadingIndicator$1, null)))),
|
|
4431
4501
|
additionalComponents: {
|
|
4502
|
+
AskAIBanner: {
|
|
4503
|
+
component: AskAIBanner,
|
|
4504
|
+
properties: {
|
|
4505
|
+
onClick: {
|
|
4506
|
+
event: false,
|
|
4507
|
+
type: Function
|
|
4508
|
+
}
|
|
4509
|
+
}
|
|
4510
|
+
},
|
|
4432
4511
|
CalendlyWidget: {
|
|
4433
4512
|
component: CalendlyWidget,
|
|
4434
4513
|
properties: {
|
|
@@ -4465,6 +4544,7 @@ function HelpdeskComponent({
|
|
|
4465
4544
|
DrawerHeading,
|
|
4466
4545
|
PicobotIframe: {
|
|
4467
4546
|
component: PicobotIframe,
|
|
4547
|
+
methods: ["postMessage"],
|
|
4468
4548
|
properties: {
|
|
4469
4549
|
currentPath: {
|
|
4470
4550
|
attribute: false
|
|
@@ -5709,18 +5789,18 @@ function Toolbar({
|
|
|
5709
5789
|
return /*#__PURE__*/React__default.createElement(ThemeProvider, {
|
|
5710
5790
|
theme: topbarTheme
|
|
5711
5791
|
}, /*#__PURE__*/React__default.createElement(UiExtensionDataContext, null, /*#__PURE__*/React__default.createElement("div", {
|
|
5712
|
-
className: styles["toolbar"],
|
|
5792
|
+
className: styles$1["toolbar"],
|
|
5713
5793
|
"data-pendo": "toolbar-profile-support-wrapper"
|
|
5714
5794
|
}, /*#__PURE__*/React__default.createElement(ToolbarButton, {
|
|
5715
5795
|
"aria-label": `Open ${userName}’s profile drawer`,
|
|
5716
5796
|
onClick: () => toggleDrawer(Profile),
|
|
5717
5797
|
"data-pendo": "toolbar-profile",
|
|
5718
|
-
className: styles["toolbar-button--avatar"]
|
|
5798
|
+
className: styles$1["toolbar-button--avatar"]
|
|
5719
5799
|
}, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
5720
5800
|
env: env,
|
|
5721
5801
|
url: userAvatarPath
|
|
5722
5802
|
})), /*#__PURE__*/React__default.createElement(ToolbarButton, {
|
|
5723
|
-
className: styles["toolbar-button--home"],
|
|
5803
|
+
className: styles$1["toolbar-button--home"],
|
|
5724
5804
|
onClick: () => closeDrawer()
|
|
5725
5805
|
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
5726
5806
|
name: "toolbar.planningCenter",
|
|
@@ -5758,7 +5838,7 @@ const ToolbarButton = ({
|
|
|
5758
5838
|
}) => {
|
|
5759
5839
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
5760
5840
|
type: "button",
|
|
5761
|
-
className: classnames(styles["toolbar-button"], className, current && styles["is-current"]),
|
|
5841
|
+
className: classnames(styles$1["toolbar-button"], className, current && styles$1["is-current"]),
|
|
5762
5842
|
onClick: onClick,
|
|
5763
5843
|
"data-toolbar-link": "true",
|
|
5764
5844
|
...restProps
|