@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.js
CHANGED
|
@@ -41,7 +41,7 @@ var churchCenter__namespace = /*#__PURE__*/_interopNamespaceDefault(churchCenter
|
|
|
41
41
|
var people__namespace = /*#__PURE__*/_interopNamespaceDefault(people);
|
|
42
42
|
var toolbar__namespace = /*#__PURE__*/_interopNamespaceDefault(toolbar);
|
|
43
43
|
|
|
44
|
-
var styles$
|
|
44
|
+
var styles$d = {"accessibility-toolbar":"accessibility-toolbar-jgjUG"};
|
|
45
45
|
|
|
46
46
|
const AccessibilityToolbar = ({
|
|
47
47
|
children
|
|
@@ -53,7 +53,7 @@ const AccessibilityToolbar = ({
|
|
|
53
53
|
(_a = document.getElementById("main-content")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
54
54
|
};
|
|
55
55
|
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
-
className: styles$
|
|
56
|
+
className: styles$d["accessibility-toolbar"]
|
|
57
57
|
}, /*#__PURE__*/React.createElement(tapestry.Link, {
|
|
58
58
|
href: "#main-content",
|
|
59
59
|
kind: "primary",
|
|
@@ -370,11 +370,11 @@ const X = ({
|
|
|
370
370
|
fill: fill
|
|
371
371
|
})));
|
|
372
372
|
|
|
373
|
-
var styles$
|
|
373
|
+
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"};
|
|
374
374
|
|
|
375
375
|
function AnnouncementIcon() {
|
|
376
376
|
return /*#__PURE__*/React.createElement("svg", {
|
|
377
|
-
className: styles$
|
|
377
|
+
className: styles$c["announcement-icon"],
|
|
378
378
|
width: "16",
|
|
379
379
|
height: "16",
|
|
380
380
|
viewBox: "0 0 16 16",
|
|
@@ -499,7 +499,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React.Component {
|
|
|
499
499
|
} = this.props;
|
|
500
500
|
const isPromo = variant === "promo";
|
|
501
501
|
return /*#__PURE__*/React.createElement("div", {
|
|
502
|
-
className: classnames(styles$
|
|
502
|
+
className: classnames(styles$c["announcement"], styles$c[`announcement--${variant !== null && variant !== void 0 ? variant : "platform"}`]),
|
|
503
503
|
"data-announcement-variant": variant !== null && variant !== void 0 ? variant : "platform",
|
|
504
504
|
style: isPromo ? {
|
|
505
505
|
backgroundImage: promoBackgroundUrl,
|
|
@@ -508,7 +508,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React.Component {
|
|
|
508
508
|
backgroundSize: "cover"
|
|
509
509
|
} : undefined
|
|
510
510
|
}, !isPromo && /*#__PURE__*/React.createElement(AnnouncementIcon, null), /*#__PURE__*/React.createElement("div", {
|
|
511
|
-
className: styles$
|
|
511
|
+
className: styles$c["announcement-content"],
|
|
512
512
|
style: style,
|
|
513
513
|
...platformProps
|
|
514
514
|
}));
|
|
@@ -557,7 +557,7 @@ function StyledDismissButton$1({
|
|
|
557
557
|
const isPromo = variant === "promo";
|
|
558
558
|
return /*#__PURE__*/React.createElement("button", {
|
|
559
559
|
type: "button",
|
|
560
|
-
className: classnames(styles$
|
|
560
|
+
className: classnames(styles$c.dismiss, isPromo && styles$c["dismiss--promo"]),
|
|
561
561
|
...props
|
|
562
562
|
}, /*#__PURE__*/React.createElement(X, {
|
|
563
563
|
fill: isPromo ? "currentColor" : "white",
|
|
@@ -637,9 +637,9 @@ class StyledAnnouncement extends React.Component {
|
|
|
637
637
|
...platformProps
|
|
638
638
|
} = this.props;
|
|
639
639
|
return /*#__PURE__*/React.createElement("div", {
|
|
640
|
-
className: styles$
|
|
640
|
+
className: styles$c["announcement"]
|
|
641
641
|
}, /*#__PURE__*/React.createElement(AnnouncementIcon, null), /*#__PURE__*/React.createElement("div", {
|
|
642
|
-
className: styles$
|
|
642
|
+
className: styles$c["announcement-content"],
|
|
643
643
|
style: style,
|
|
644
644
|
...platformProps
|
|
645
645
|
}));
|
|
@@ -650,7 +650,7 @@ function StyledDismissButton({
|
|
|
650
650
|
}) {
|
|
651
651
|
return /*#__PURE__*/React.createElement("button", {
|
|
652
652
|
type: "button",
|
|
653
|
-
className: styles$
|
|
653
|
+
className: styles$c.dismiss,
|
|
654
654
|
...props
|
|
655
655
|
}, /*#__PURE__*/React.createElement(X, {
|
|
656
656
|
fill: "white",
|
|
@@ -1897,7 +1897,7 @@ function MonoAppName({
|
|
|
1897
1897
|
})) : (/*#__PURE__*/React.createElement("div", null, "appName not supported"));
|
|
1898
1898
|
}
|
|
1899
1899
|
|
|
1900
|
-
var styles$
|
|
1900
|
+
var styles$b = {"unbutton":"unbutton-lEbTR"};
|
|
1901
1901
|
|
|
1902
1902
|
function Unbutton({
|
|
1903
1903
|
className,
|
|
@@ -1906,7 +1906,7 @@ function Unbutton({
|
|
|
1906
1906
|
...nativeProps
|
|
1907
1907
|
}) {
|
|
1908
1908
|
return /*#__PURE__*/React.createElement("button", {
|
|
1909
|
-
className: classnames(styles$
|
|
1909
|
+
className: classnames(styles$b.unbutton, className),
|
|
1910
1910
|
style: {
|
|
1911
1911
|
...style
|
|
1912
1912
|
},
|
|
@@ -1915,7 +1915,7 @@ function Unbutton({
|
|
|
1915
1915
|
});
|
|
1916
1916
|
}
|
|
1917
1917
|
|
|
1918
|
-
var styles$
|
|
1918
|
+
var styles$a = {"button":"button-XMbeQ","button-accounts":"button-accounts-nNh-z","chevron":"chevron-RRg9k","is-expanded":"is-expanded-zD0A0"};
|
|
1919
1919
|
|
|
1920
1920
|
const AppsButton = ({
|
|
1921
1921
|
appName,
|
|
@@ -1930,8 +1930,8 @@ const AppsButton = ({
|
|
|
1930
1930
|
"aria-haspopup": "true",
|
|
1931
1931
|
"aria-label": `App switcher: ${appName}`,
|
|
1932
1932
|
onClick: onClick,
|
|
1933
|
-
className: classnames(styles$
|
|
1934
|
-
[styles$
|
|
1933
|
+
className: classnames(styles$a.button, {
|
|
1934
|
+
[styles$a["is-expanded"]]: expanded
|
|
1935
1935
|
}),
|
|
1936
1936
|
type: "button",
|
|
1937
1937
|
style: style,
|
|
@@ -1940,7 +1940,7 @@ const AppsButton = ({
|
|
|
1940
1940
|
appName: "Accounts",
|
|
1941
1941
|
colors: colors
|
|
1942
1942
|
}), /*#__PURE__*/React.createElement("div", {
|
|
1943
|
-
className: styles$
|
|
1943
|
+
className: styles$a["button-accounts"]
|
|
1944
1944
|
}, "Account settings"))) : (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ColorAppIcon, {
|
|
1945
1945
|
appName: appName.replace(/[\s-]/, "")
|
|
1946
1946
|
}), /*#__PURE__*/React.createElement(MonoAppName, {
|
|
@@ -1948,7 +1948,7 @@ const AppsButton = ({
|
|
|
1948
1948
|
key: "mono-app-name",
|
|
1949
1949
|
size: 24
|
|
1950
1950
|
}))), /*#__PURE__*/React.createElement(DisclosureChevronIcon, {
|
|
1951
|
-
className: styles$
|
|
1951
|
+
className: styles$a.chevron,
|
|
1952
1952
|
key: "disclosure-chevron-icon"
|
|
1953
1953
|
}));
|
|
1954
1954
|
};
|
|
@@ -2036,7 +2036,7 @@ const IEFlex1 = {
|
|
|
2036
2036
|
flex: "1 1 auto"
|
|
2037
2037
|
};
|
|
2038
2038
|
|
|
2039
|
-
var styles$
|
|
2039
|
+
var styles$9 = {"popup":"popup-sJ-Nv"};
|
|
2040
2040
|
|
|
2041
2041
|
const HoverableListItem = ({
|
|
2042
2042
|
active = false,
|
|
@@ -2093,7 +2093,7 @@ class Outsider extends React.Component {
|
|
|
2093
2093
|
}
|
|
2094
2094
|
}
|
|
2095
2095
|
|
|
2096
|
-
var styles$
|
|
2096
|
+
var styles$8 = {"popup-root":"popup-root-SeL5u","popup":"popup-nQXYW","is-visible":"is-visible-3DAUP"};
|
|
2097
2097
|
|
|
2098
2098
|
const Popup = ({
|
|
2099
2099
|
className,
|
|
@@ -2101,8 +2101,8 @@ const Popup = ({
|
|
|
2101
2101
|
isVisible,
|
|
2102
2102
|
...nativeProps
|
|
2103
2103
|
}) => (/*#__PURE__*/React.createElement(C, {
|
|
2104
|
-
className: classnames(styles$
|
|
2105
|
-
[styles$
|
|
2104
|
+
className: classnames(styles$8.popup, {
|
|
2105
|
+
[styles$8["is-visible"]]: isVisible
|
|
2106
2106
|
}, className),
|
|
2107
2107
|
...nativeProps
|
|
2108
2108
|
}));
|
|
@@ -2110,7 +2110,7 @@ const Popup = ({
|
|
|
2110
2110
|
const PopupRoot = ({
|
|
2111
2111
|
...nativeProps
|
|
2112
2112
|
}) => (/*#__PURE__*/React.createElement("div", {
|
|
2113
|
-
className: styles$
|
|
2113
|
+
className: styles$8["popup-root"],
|
|
2114
2114
|
...nativeProps
|
|
2115
2115
|
}));
|
|
2116
2116
|
|
|
@@ -2150,7 +2150,7 @@ const AppsMenu = ({
|
|
|
2150
2150
|
cleanup: !visible,
|
|
2151
2151
|
component: Outsider,
|
|
2152
2152
|
onOutsideClick: toggle,
|
|
2153
|
-
className: styles$
|
|
2153
|
+
className: styles$9.popup,
|
|
2154
2154
|
isVisible: visible
|
|
2155
2155
|
}, /*#__PURE__*/React.createElement("menu", {
|
|
2156
2156
|
ref: menuRef,
|
|
@@ -3046,9 +3046,9 @@ function StyledRoot({
|
|
|
3046
3046
|
`), children);
|
|
3047
3047
|
}
|
|
3048
3048
|
|
|
3049
|
-
var styles$
|
|
3049
|
+
var styles$7 = {"route":"route--8BWe","is-active":"is-active-FsU9Y","apps-routes-separator":"apps-routes-separator-Nlm-N"};
|
|
3050
3050
|
|
|
3051
|
-
var styles$
|
|
3051
|
+
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"};
|
|
3052
3052
|
|
|
3053
3053
|
const UserMenu = ({
|
|
3054
3054
|
appName,
|
|
@@ -3067,7 +3067,7 @@ const UserMenu = ({
|
|
|
3067
3067
|
component: Outsider,
|
|
3068
3068
|
onOutsideClick: () => setUserMenuVisible(false),
|
|
3069
3069
|
cleanup: !userMenuVisible,
|
|
3070
|
-
className: styles$
|
|
3070
|
+
className: styles$6.popup,
|
|
3071
3071
|
isVisible: userMenuVisible
|
|
3072
3072
|
}, /*#__PURE__*/React.createElement("div", null, hasConnectedPeople ? (/*#__PURE__*/React.createElement("div", {
|
|
3073
3073
|
style: {
|
|
@@ -3211,11 +3211,11 @@ const UserMenuTrigger = ({
|
|
|
3211
3211
|
userMenuVisible
|
|
3212
3212
|
}) => {
|
|
3213
3213
|
return /*#__PURE__*/React.createElement("div", {
|
|
3214
|
-
className: styles$
|
|
3214
|
+
className: styles$6["trigger-wrap"],
|
|
3215
3215
|
"data-pendo": "topbar-org-switcher"
|
|
3216
3216
|
}, /*#__PURE__*/React.createElement(Hoverable, {
|
|
3217
|
-
className: classnames(styles$
|
|
3218
|
-
[styles$
|
|
3217
|
+
className: classnames(styles$6["trigger"], {
|
|
3218
|
+
[styles$6["is-visible"]]: userMenuVisible
|
|
3219
3219
|
}),
|
|
3220
3220
|
component: "button",
|
|
3221
3221
|
type: "button",
|
|
@@ -3227,7 +3227,7 @@ const UserMenuTrigger = ({
|
|
|
3227
3227
|
requestConnectedPeopleFetch();
|
|
3228
3228
|
}
|
|
3229
3229
|
}, showOrgName && (/*#__PURE__*/React.createElement("span", {
|
|
3230
|
-
className: styles$
|
|
3230
|
+
className: styles$6["trigger-orgname"]
|
|
3231
3231
|
}, orgName)), /*#__PURE__*/React.createElement(DisclosureChevronIcon, null)));
|
|
3232
3232
|
};
|
|
3233
3233
|
|
|
@@ -3284,7 +3284,7 @@ const NotSmallTopbar = ({
|
|
|
3284
3284
|
},
|
|
3285
3285
|
appName: props.appName
|
|
3286
3286
|
}), /*#__PURE__*/React.createElement("div", {
|
|
3287
|
-
className: styles$
|
|
3287
|
+
className: styles$7["apps-routes-separator"]
|
|
3288
3288
|
}), routesVisible && props.routes, /*#__PURE__*/React.createElement("div", {
|
|
3289
3289
|
style: {
|
|
3290
3290
|
margin: "auto"
|
|
@@ -3322,12 +3322,12 @@ const NotSmallRoute = ({
|
|
|
3322
3322
|
...nativeProps
|
|
3323
3323
|
}) => {
|
|
3324
3324
|
return /*#__PURE__*/React.createElement("a", {
|
|
3325
|
-
className: classnames(styles$
|
|
3325
|
+
className: classnames(styles$7["route"], className, active && styles$7["is-active"]),
|
|
3326
3326
|
...nativeProps
|
|
3327
3327
|
});
|
|
3328
3328
|
};
|
|
3329
3329
|
|
|
3330
|
-
var styles$
|
|
3330
|
+
var styles$5 = {"avatar":"avatar-tW-wn"};
|
|
3331
3331
|
|
|
3332
3332
|
function Avatar({
|
|
3333
3333
|
env,
|
|
@@ -3337,7 +3337,7 @@ function Avatar({
|
|
|
3337
3337
|
}) {
|
|
3338
3338
|
const url = incomingUrl || `${pcoUrl$1(env)("people")}/static/no_photo_thumbnail_gray.svg`;
|
|
3339
3339
|
return /*#__PURE__*/React.createElement("div", {
|
|
3340
|
-
className: styles$
|
|
3340
|
+
className: styles$5.avatar,
|
|
3341
3341
|
style: {
|
|
3342
3342
|
backgroundImage: `url(${url})`,
|
|
3343
3343
|
...style
|
|
@@ -3359,14 +3359,14 @@ ClientStorage.defaultProps = {
|
|
|
3359
3359
|
method: "localStorage"
|
|
3360
3360
|
};
|
|
3361
3361
|
|
|
3362
|
-
var styles$
|
|
3362
|
+
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"};
|
|
3363
3363
|
|
|
3364
3364
|
function AccountSettingsLink({
|
|
3365
3365
|
env
|
|
3366
3366
|
}) {
|
|
3367
3367
|
const accountsName = "accounts";
|
|
3368
3368
|
return /*#__PURE__*/React.createElement("a", {
|
|
3369
|
-
className: classnames(styles$
|
|
3369
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--bottom"]),
|
|
3370
3370
|
"data-pendo": `app-switcher--change-app--${accountsName}`,
|
|
3371
3371
|
"data-turbolinks": false,
|
|
3372
3372
|
href: pcoUrl$1(env)(accountsName) + getAppsSwitchProductPath(accountsName)
|
|
@@ -3389,7 +3389,7 @@ const CloseMenuButton = ({
|
|
|
3389
3389
|
}) => (/*#__PURE__*/React.createElement("button", {
|
|
3390
3390
|
"aria-label": "Close menu",
|
|
3391
3391
|
type: "button",
|
|
3392
|
-
className: styles$
|
|
3392
|
+
className: styles$4["appmenu-close-button"],
|
|
3393
3393
|
style: style
|
|
3394
3394
|
}, /*#__PURE__*/React.createElement(X, {
|
|
3395
3395
|
fill: color,
|
|
@@ -3470,7 +3470,7 @@ const SmallTopbar = ({
|
|
|
3470
3470
|
"aria-haspopup": "true",
|
|
3471
3471
|
"aria-label": `App switcher: ${props.appName}`,
|
|
3472
3472
|
type: "button",
|
|
3473
|
-
className: styles$
|
|
3473
|
+
className: styles$4["appmenu-button"],
|
|
3474
3474
|
onClick: () => {
|
|
3475
3475
|
props.requestAppsFetch();
|
|
3476
3476
|
props.requestConnectedPeopleFetch();
|
|
@@ -3480,12 +3480,12 @@ const SmallTopbar = ({
|
|
|
3480
3480
|
}, /*#__PURE__*/React.createElement(ColorAppIcon, {
|
|
3481
3481
|
appName: props.appName.replace(/[\s-]/, "")
|
|
3482
3482
|
})), routesMenuVisible && (/*#__PURE__*/React.createElement("div", {
|
|
3483
|
-
className: styles$
|
|
3483
|
+
className: styles$4["routes"]
|
|
3484
3484
|
}, props.routes)), /*#__PURE__*/React.createElement(ClientStorage, {
|
|
3485
3485
|
item: "Topbar:Small:Menus:Products:visibility",
|
|
3486
3486
|
render: () => (/*#__PURE__*/React.createElement("div", {
|
|
3487
3487
|
ref: appMenuRef,
|
|
3488
|
-
className: styles$
|
|
3488
|
+
className: styles$4["appmenu-layer"],
|
|
3489
3489
|
style: {
|
|
3490
3490
|
...(productSwitcherVisible && {
|
|
3491
3491
|
display: "block"
|
|
@@ -3504,44 +3504,44 @@ const SmallTopbar = ({
|
|
|
3504
3504
|
e.stopPropagation();
|
|
3505
3505
|
}
|
|
3506
3506
|
},
|
|
3507
|
-
className: styles$
|
|
3507
|
+
className: styles$4["appmenu-container"]
|
|
3508
3508
|
}, /*#__PURE__*/React.createElement("a", {
|
|
3509
3509
|
"aria-current": props.appName === (homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) ? "page" : undefined,
|
|
3510
3510
|
"aria-label": homeProduct ? homeProduct.name : props.appName,
|
|
3511
3511
|
"data-pendo": `app-switcher--change-app--${homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name}`,
|
|
3512
3512
|
"data-turbolinks": false,
|
|
3513
|
-
className: classnames(styles$
|
|
3513
|
+
className: classnames(styles$4["appmenu-list-a"], styles$4["appmenu-list-a--top"]),
|
|
3514
3514
|
href: homeProduct ? pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) : undefined
|
|
3515
3515
|
}, /*#__PURE__*/React.createElement(UserMenuAppLockup, {
|
|
3516
3516
|
appName: homeProduct ? homeProduct.name : props.appName
|
|
3517
3517
|
})), /*#__PURE__*/React.createElement("div", {
|
|
3518
|
-
className: styles$
|
|
3518
|
+
className: styles$4["appmenu-scroll"]
|
|
3519
3519
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
3520
3520
|
"data-pendo": "app-switcher",
|
|
3521
|
-
className: styles$
|
|
3521
|
+
className: styles$4["appmenu-list"]
|
|
3522
3522
|
}, appsMenuFormatter(restProducts).map(({
|
|
3523
3523
|
name
|
|
3524
3524
|
}) => (/*#__PURE__*/React.createElement("li", {
|
|
3525
3525
|
key: name,
|
|
3526
|
-
className: styles$
|
|
3526
|
+
className: styles$4["appmenu-list-li"]
|
|
3527
3527
|
}, /*#__PURE__*/React.createElement("a", {
|
|
3528
3528
|
"aria-current": name === props.appName ? "page" : undefined,
|
|
3529
3529
|
"aria-label": name,
|
|
3530
3530
|
"data-pendo": `app-switcher--change-app--${name}`,
|
|
3531
3531
|
"data-turbolinks": false,
|
|
3532
|
-
className: styles$
|
|
3532
|
+
className: styles$4["appmenu-list-a"],
|
|
3533
3533
|
href: pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(name)
|
|
3534
3534
|
}, /*#__PURE__*/React.createElement(UserMenuAppLockup, {
|
|
3535
3535
|
appName: name
|
|
3536
3536
|
}))))), accountsProduct && (/*#__PURE__*/React.createElement("li", {
|
|
3537
|
-
className: styles$
|
|
3537
|
+
className: styles$4["appmenu-list-li"]
|
|
3538
3538
|
}, /*#__PURE__*/React.createElement(AccountSettingsLink, {
|
|
3539
3539
|
env: props.env
|
|
3540
3540
|
}))))))))
|
|
3541
3541
|
}), /*#__PURE__*/React.createElement("button", {
|
|
3542
3542
|
type: "button",
|
|
3543
|
-
className: classnames(styles$
|
|
3544
|
-
[styles$
|
|
3543
|
+
className: classnames(styles$4["current-route"], {
|
|
3544
|
+
[styles$4["is-active"]]: routesMenuVisible
|
|
3545
3545
|
}),
|
|
3546
3546
|
onClick: props.routes.length > 0 ? () => {
|
|
3547
3547
|
setProductSwitcherVisible(false);
|
|
@@ -3549,7 +3549,7 @@ const SmallTopbar = ({
|
|
|
3549
3549
|
} : null
|
|
3550
3550
|
}, /*#__PURE__*/React.createElement(CurrentRouteComponent, null, capitalize(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React.createElement("button", {
|
|
3551
3551
|
type: "button",
|
|
3552
|
-
className: styles$
|
|
3552
|
+
className: styles$4["profile-button"],
|
|
3553
3553
|
onClick: () => {
|
|
3554
3554
|
var _a, _b;
|
|
3555
3555
|
props.requestConnectedPeopleFetch();
|
|
@@ -3565,7 +3565,7 @@ const SmallRoute = ({
|
|
|
3565
3565
|
className,
|
|
3566
3566
|
...props
|
|
3567
3567
|
}) => (/*#__PURE__*/React.createElement("a", {
|
|
3568
|
-
className: classnames(styles$
|
|
3568
|
+
className: classnames(styles$4["route"], className, active && styles$4["is-active"]),
|
|
3569
3569
|
...props
|
|
3570
3570
|
}));
|
|
3571
3571
|
|
|
@@ -3704,7 +3704,7 @@ const topbarTheme = {
|
|
|
3704
3704
|
id: "topbar"
|
|
3705
3705
|
};
|
|
3706
3706
|
|
|
3707
|
-
var styles$
|
|
3707
|
+
var styles$3 = {"drawer-wrap":"drawer-wrap-J0rSL","is-visible":"is-visible-KTME8","drawer":"drawer-j7f4l"};
|
|
3708
3708
|
|
|
3709
3709
|
function Drawer({
|
|
3710
3710
|
children,
|
|
@@ -3712,7 +3712,7 @@ function Drawer({
|
|
|
3712
3712
|
}) {
|
|
3713
3713
|
return /*#__PURE__*/React.createElement("div", {
|
|
3714
3714
|
id: id,
|
|
3715
|
-
className: styles$
|
|
3715
|
+
className: styles$3["drawer"]
|
|
3716
3716
|
}, children);
|
|
3717
3717
|
}
|
|
3718
3718
|
function DrawerWrap({
|
|
@@ -3722,7 +3722,7 @@ function DrawerWrap({
|
|
|
3722
3722
|
...props
|
|
3723
3723
|
}) {
|
|
3724
3724
|
return /*#__PURE__*/React.createElement("div", {
|
|
3725
|
-
className: classnames(styles$
|
|
3725
|
+
className: classnames(styles$3["drawer-wrap"], className, isVisible && styles$3["is-visible"]),
|
|
3726
3726
|
...props
|
|
3727
3727
|
}, children);
|
|
3728
3728
|
}
|
|
@@ -3906,7 +3906,7 @@ const SwitchView = ({
|
|
|
3906
3906
|
}));
|
|
3907
3907
|
};
|
|
3908
3908
|
|
|
3909
|
-
var styles$
|
|
3909
|
+
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"};
|
|
3910
3910
|
|
|
3911
3911
|
const COLOR_MODES = [{
|
|
3912
3912
|
label: "Light",
|
|
@@ -3926,11 +3926,11 @@ function ColorModeSwitcher() {
|
|
|
3926
3926
|
const updateStore = useUpdateStore();
|
|
3927
3927
|
const [counter] = React.useState(() => COLOR_MODE_INSTANCE_COUNTER++);
|
|
3928
3928
|
return /*#__PURE__*/React.createElement("fieldset", {
|
|
3929
|
-
className: styles$
|
|
3929
|
+
className: styles$2["color-mode-switcher"]
|
|
3930
3930
|
}, /*#__PURE__*/React.createElement("legend", {
|
|
3931
|
-
className: styles$
|
|
3931
|
+
className: styles$2["color-mode-switcher-label"]
|
|
3932
3932
|
}, "Appearance", " "), /*#__PURE__*/React.createElement("div", {
|
|
3933
|
-
className: styles$
|
|
3933
|
+
className: styles$2["color-mode-switcher-modes"]
|
|
3934
3934
|
}, COLOR_MODES.map(({
|
|
3935
3935
|
value,
|
|
3936
3936
|
label
|
|
@@ -4201,20 +4201,67 @@ const useToolbarReducer = overrides => React__namespace.useReducer(reducer, {
|
|
|
4201
4201
|
...overrides
|
|
4202
4202
|
});
|
|
4203
4203
|
|
|
4204
|
-
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"};
|
|
4204
|
+
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"};
|
|
4205
4205
|
|
|
4206
4206
|
const pcoUrl = pcoUrl$1;
|
|
4207
4207
|
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4208
|
+
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-"};
|
|
4209
|
+
|
|
4210
|
+
function AskAIBanner({
|
|
4211
|
+
onClick
|
|
4212
|
+
}) {
|
|
4213
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
4214
|
+
className: styles.banner,
|
|
4215
|
+
onClick: () => onClick(),
|
|
4216
|
+
type: "button"
|
|
4217
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4218
|
+
className: styles.content
|
|
4219
|
+
}, /*#__PURE__*/React.createElement(AskAIIcon, null), /*#__PURE__*/React.createElement("span", {
|
|
4220
|
+
className: styles.text
|
|
4221
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4222
|
+
className: styles.title
|
|
4223
|
+
}, "Ask AI"), /*#__PURE__*/React.createElement("span", {
|
|
4224
|
+
className: styles.subtitle
|
|
4225
|
+
}, "Support answers tailored to you"))), /*#__PURE__*/React.createElement(tapestryReact.Icon, {
|
|
4226
|
+
className: styles.chevron,
|
|
4227
|
+
name: "general.rightChevron",
|
|
4228
|
+
size: "16px"
|
|
4229
|
+
}));
|
|
4230
|
+
}
|
|
4231
|
+
const GRADIENT_ID = "ask-ai-banner-icon-gradient";
|
|
4232
|
+
function AskAIIcon() {
|
|
4233
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
4234
|
+
className: styles.icon
|
|
4235
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
4236
|
+
className: styles.iconShape,
|
|
4237
|
+
viewBox: "0 0 32 32",
|
|
4238
|
+
"aria-hidden": "true"
|
|
4239
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
4240
|
+
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",
|
|
4241
|
+
fill: `url(#${GRADIENT_ID})`
|
|
4242
|
+
}), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
4243
|
+
id: GRADIENT_ID,
|
|
4244
|
+
x1: "0",
|
|
4245
|
+
y1: "0",
|
|
4246
|
+
x2: "38.0356",
|
|
4247
|
+
y2: "21.1413",
|
|
4248
|
+
gradientUnits: "userSpaceOnUse"
|
|
4249
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
4250
|
+
stopColor: "#49D4BB"
|
|
4251
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
4252
|
+
offset: "0.352694",
|
|
4253
|
+
stopColor: "#7CA8FE"
|
|
4254
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
4255
|
+
offset: "0.656242",
|
|
4256
|
+
stopColor: "#B883E2"
|
|
4257
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
4258
|
+
offset: "1",
|
|
4259
|
+
stopColor: "#F28B54"
|
|
4260
|
+
})))), /*#__PURE__*/React.createElement(tapestryReact.Icon, {
|
|
4261
|
+
className: styles.iconWand,
|
|
4262
|
+
name: "general.magicWand",
|
|
4263
|
+
size: "18px"
|
|
4264
|
+
}));
|
|
4218
4265
|
}
|
|
4219
4266
|
|
|
4220
4267
|
// The article heading lives in the deepest populated hierarchy level (lvl0 is
|
|
@@ -4368,6 +4415,74 @@ const DocumentationSearch = ({
|
|
|
4368
4415
|
}));
|
|
4369
4416
|
};
|
|
4370
4417
|
|
|
4418
|
+
// The route rides in the iframe URL fragment (`…/topbar#conversations/abc`),
|
|
4419
|
+
// not the path, so updating it is a same-document navigation that doesn't
|
|
4420
|
+
// reload the iframe, but also lets the route survive a forced reload (e.g.
|
|
4421
|
+
// Turbo re-parenting the topbar).
|
|
4422
|
+
function buildPicobotSrc(origin, path) {
|
|
4423
|
+
const [rawPath, queryPart] = path.replace(/^\/+/, "").split("?", 2);
|
|
4424
|
+
const safePath = rawPath.split("/").filter(segment => segment && segment !== "." && segment !== "..").join("/");
|
|
4425
|
+
const fragment = queryPart !== undefined ? `${safePath}?${queryPart}` : safePath;
|
|
4426
|
+
const base = new URL("topbar", origin).toString();
|
|
4427
|
+
return fragment ? `${base}#${fragment}` : base;
|
|
4428
|
+
}
|
|
4429
|
+
|
|
4430
|
+
function createPicobotIframe(picobotOrigin) {
|
|
4431
|
+
return /*#__PURE__*/React.forwardRef(function PicobotIframe({
|
|
4432
|
+
currentPath: iframePath,
|
|
4433
|
+
onChangePath: onIframeChangePath,
|
|
4434
|
+
onMessage
|
|
4435
|
+
}, ref) {
|
|
4436
|
+
const iframeRef = React.useRef(null);
|
|
4437
|
+
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4438
|
+
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4439
|
+
// always reflects the live conversation. See buildPicobotSrc.
|
|
4440
|
+
const [loadedPath, setLoadedPath] = React.useState(iframePath || "");
|
|
4441
|
+
React.useEffect(function subscribeToGuestMessages() {
|
|
4442
|
+
if (!onIframeChangePath && !onMessage) return undefined;
|
|
4443
|
+
function handleGuestMessage(e) {
|
|
4444
|
+
var _a, _b;
|
|
4445
|
+
if (e.origin !== picobotOrigin) return;
|
|
4446
|
+
if (!e.source || !iframeRef.current) return;
|
|
4447
|
+
if (e.source !== iframeRef.current.contentWindow) return;
|
|
4448
|
+
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4449
|
+
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4450
|
+
setLoadedPath(reportedPath);
|
|
4451
|
+
onIframeChangePath(reportedPath);
|
|
4452
|
+
}
|
|
4453
|
+
if (onMessage) onMessage(e.data);
|
|
4454
|
+
}
|
|
4455
|
+
window.addEventListener("message", handleGuestMessage);
|
|
4456
|
+
return () => window.removeEventListener("message", handleGuestMessage);
|
|
4457
|
+
}, [onIframeChangePath, onMessage]);
|
|
4458
|
+
React.useEffect(function syncLoadedPathFromProp() {
|
|
4459
|
+
setLoadedPath(iframePath || "");
|
|
4460
|
+
}, [iframePath]);
|
|
4461
|
+
// A one-way channel for sending messages to picobot. Topbar just
|
|
4462
|
+
// forwards the envelope to the iframe and holds no message semantics of
|
|
4463
|
+
// its own—the consumer decides what to send and when.
|
|
4464
|
+
React.useImperativeHandle(ref, () => ({
|
|
4465
|
+
postMessage(message) {
|
|
4466
|
+
var _a, _b;
|
|
4467
|
+
(_b = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, picobotOrigin);
|
|
4468
|
+
}
|
|
4469
|
+
}), []);
|
|
4470
|
+
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4471
|
+
return /*#__PURE__*/React.createElement("iframe", {
|
|
4472
|
+
ref: iframeRef,
|
|
4473
|
+
src: iframeSrc,
|
|
4474
|
+
allow: "clipboard-write",
|
|
4475
|
+
style: {
|
|
4476
|
+
border: 0,
|
|
4477
|
+
flex: 1,
|
|
4478
|
+
height: "100%",
|
|
4479
|
+
width: "100%"
|
|
4480
|
+
},
|
|
4481
|
+
title: "Picobot"
|
|
4482
|
+
});
|
|
4483
|
+
});
|
|
4484
|
+
}
|
|
4485
|
+
|
|
4371
4486
|
const {
|
|
4372
4487
|
LoadingIndicator: LoadingIndicator$1,
|
|
4373
4488
|
StackView: StackView$1
|
|
@@ -4393,52 +4508,7 @@ function HelpdeskComponent({
|
|
|
4393
4508
|
helpdeskConfig,
|
|
4394
4509
|
onChangePath
|
|
4395
4510
|
}) {
|
|
4396
|
-
const PicobotIframe = React.useMemo(() =>
|
|
4397
|
-
const picobotOrigin = pcoUrl(env)("picobot");
|
|
4398
|
-
return function PicobotIframe({
|
|
4399
|
-
currentPath: iframePath,
|
|
4400
|
-
onChangePath: onIframeChangePath,
|
|
4401
|
-
onMessage
|
|
4402
|
-
}) {
|
|
4403
|
-
const ref = React.useRef(null);
|
|
4404
|
-
// Keep the fragment in sync in both directions—external opens (deeplink /
|
|
4405
|
-
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
4406
|
-
// always reflects the live conversation. See buildPicobotSrc.
|
|
4407
|
-
const [loadedPath, setLoadedPath] = React.useState(iframePath || "");
|
|
4408
|
-
React.useEffect(() => {
|
|
4409
|
-
if (!onIframeChangePath && !onMessage) return undefined;
|
|
4410
|
-
const handler = e => {
|
|
4411
|
-
var _a, _b;
|
|
4412
|
-
if (e.origin !== picobotOrigin) return;
|
|
4413
|
-
if (!e.source || !ref.current) return;
|
|
4414
|
-
if (e.source !== ref.current.contentWindow) return;
|
|
4415
|
-
if (((_a = e.data) === null || _a === void 0 ? void 0 : _a.type) === "NEW_ROUTE_RENDERED" && onIframeChangePath) {
|
|
4416
|
-
const reportedPath = String((_b = e.data.payload) !== null && _b !== void 0 ? _b : "");
|
|
4417
|
-
setLoadedPath(reportedPath);
|
|
4418
|
-
onIframeChangePath(reportedPath);
|
|
4419
|
-
}
|
|
4420
|
-
if (onMessage) onMessage(e.data);
|
|
4421
|
-
};
|
|
4422
|
-
window.addEventListener("message", handler);
|
|
4423
|
-
return () => window.removeEventListener("message", handler);
|
|
4424
|
-
}, [onIframeChangePath, onMessage]);
|
|
4425
|
-
React.useEffect(() => {
|
|
4426
|
-
setLoadedPath(iframePath || "");
|
|
4427
|
-
}, [iframePath]);
|
|
4428
|
-
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath);
|
|
4429
|
-
return /*#__PURE__*/React.createElement("iframe", {
|
|
4430
|
-
ref: ref,
|
|
4431
|
-
src: iframeSrc,
|
|
4432
|
-
style: {
|
|
4433
|
-
border: 0,
|
|
4434
|
-
flex: 1,
|
|
4435
|
-
height: "100%",
|
|
4436
|
-
width: "100%"
|
|
4437
|
-
},
|
|
4438
|
-
title: "Picobot"
|
|
4439
|
-
});
|
|
4440
|
-
};
|
|
4441
|
-
}, [env]);
|
|
4511
|
+
const PicobotIframe = React.useMemo(() => createPicobotIframe(pcoUrl(env)("picobot")), [env]);
|
|
4442
4512
|
return /*#__PURE__*/React.createElement(addOns.UiExtensionFirstPartyComponent, {
|
|
4443
4513
|
grow: 1,
|
|
4444
4514
|
display: "flex",
|
|
@@ -4453,6 +4523,15 @@ function HelpdeskComponent({
|
|
|
4453
4523
|
spacing: 1
|
|
4454
4524
|
}, /*#__PURE__*/React.createElement(DrawerHeading, null, "Help and support"), /*#__PURE__*/React.createElement(LoadingIndicator$1, null)))),
|
|
4455
4525
|
additionalComponents: {
|
|
4526
|
+
AskAIBanner: {
|
|
4527
|
+
component: AskAIBanner,
|
|
4528
|
+
properties: {
|
|
4529
|
+
onClick: {
|
|
4530
|
+
event: false,
|
|
4531
|
+
type: Function
|
|
4532
|
+
}
|
|
4533
|
+
}
|
|
4534
|
+
},
|
|
4456
4535
|
CalendlyWidget: {
|
|
4457
4536
|
component: CalendlyWidget,
|
|
4458
4537
|
properties: {
|
|
@@ -4489,6 +4568,7 @@ function HelpdeskComponent({
|
|
|
4489
4568
|
DrawerHeading,
|
|
4490
4569
|
PicobotIframe: {
|
|
4491
4570
|
component: PicobotIframe,
|
|
4571
|
+
methods: ["postMessage"],
|
|
4492
4572
|
properties: {
|
|
4493
4573
|
currentPath: {
|
|
4494
4574
|
attribute: false
|
|
@@ -5733,18 +5813,18 @@ function Toolbar({
|
|
|
5733
5813
|
return /*#__PURE__*/React.createElement(tapestryReact.ThemeProvider, {
|
|
5734
5814
|
theme: topbarTheme
|
|
5735
5815
|
}, /*#__PURE__*/React.createElement(addOns.UiExtensionDataContext, null, /*#__PURE__*/React.createElement("div", {
|
|
5736
|
-
className: styles["toolbar"],
|
|
5816
|
+
className: styles$1["toolbar"],
|
|
5737
5817
|
"data-pendo": "toolbar-profile-support-wrapper"
|
|
5738
5818
|
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
5739
5819
|
"aria-label": `Open ${userName}’s profile drawer`,
|
|
5740
5820
|
onClick: () => toggleDrawer(Profile),
|
|
5741
5821
|
"data-pendo": "toolbar-profile",
|
|
5742
|
-
className: styles["toolbar-button--avatar"]
|
|
5822
|
+
className: styles$1["toolbar-button--avatar"]
|
|
5743
5823
|
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
5744
5824
|
env: env,
|
|
5745
5825
|
url: userAvatarPath
|
|
5746
5826
|
})), /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
5747
|
-
className: styles["toolbar-button--home"],
|
|
5827
|
+
className: styles$1["toolbar-button--home"],
|
|
5748
5828
|
onClick: () => closeDrawer()
|
|
5749
5829
|
}, /*#__PURE__*/React.createElement(tapestryReact.Icon, {
|
|
5750
5830
|
name: "toolbar.planningCenter",
|
|
@@ -5782,7 +5862,7 @@ const ToolbarButton = ({
|
|
|
5782
5862
|
}) => {
|
|
5783
5863
|
return /*#__PURE__*/React.createElement("button", {
|
|
5784
5864
|
type: "button",
|
|
5785
|
-
className: classnames(styles["toolbar-button"], className, current && styles["is-current"]),
|
|
5865
|
+
className: classnames(styles$1["toolbar-button"], className, current && styles$1["is-current"]),
|
|
5786
5866
|
onClick: onClick,
|
|
5787
5867
|
"data-toolbar-link": "true",
|
|
5788
5868
|
...restProps
|