@planningcenter/topbar 12.4.0 → 12.4.1-qa-959.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 +699 -14
- package/dist/topbar.css.map +1 -1
- package/dist/topbar.js +1384 -226
- package/dist/topbar.js.map +1 -1
- package/dist/topbar.modern.js +1383 -226
- package/dist/topbar.modern.js.map +1 -1
- package/dist/topbar.module.js +1383 -226
- package/dist/topbar.module.js.map +1 -1
- package/dist/topbar.umd.js +1384 -228
- package/dist/topbar.umd.js.map +1 -1
- package/dist/types/index.d.ts +5 -1
- package/package.json +5 -2
package/dist/topbar.modern.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Link, Button, Popover, PopoverTrigger, PopoverContent, Modal } from '@planningcenter/tapestry';
|
|
1
|
+
import { Link, Button, Popover, PopoverTrigger, PopoverContent, Flex, Select, IconButton, Modal } from '@planningcenter/tapestry';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useState, useEffect, useMemo, useLayoutEffect, useContext, createContext, useCallback, useRef } from 'react';
|
|
4
4
|
import pcoUrl$1, { pcoUrl as pcoUrl$2, pcoApiUrl } from '@planningcenter/url';
|
|
@@ -6,18 +6,20 @@ import * as general from '@planningcenter/icons/paths/general';
|
|
|
6
6
|
import Jolt from '@planningcenter/jolt-client';
|
|
7
7
|
import { useSyncExternalStore } from 'use-sync-external-store/shim';
|
|
8
8
|
import 'react/jsx-runtime';
|
|
9
|
+
import * as toolbar from '@planningcenter/icons/paths/toolbar';
|
|
10
|
+
import datetimeFmt from '@planningcenter/datetime-fmt';
|
|
11
|
+
import pluralize from 'pluralize';
|
|
12
|
+
import * as logomarks from '@planningcenter/icons/paths/logomark';
|
|
9
13
|
import { ThemeProvider, Divider, Button as Button$1, StackView as StackView$2, Text, Icon as Icon$1, designSystem, Box, Heading, GridView, Avatar as Avatar$1, Link as Link$1, HeadingUppercase, List, Combobox, Logo, Dropdown, Spinner, Badge } from '@planningcenter/tapestry-react';
|
|
10
14
|
import { components, UiExtensionFirstPartyComponent, UiExtensionDataContext } from '@planningcenter/add-ons';
|
|
11
15
|
import * as churchCenter from '@planningcenter/icons/paths/church-center';
|
|
12
16
|
import * as people from '@planningcenter/icons/paths/people';
|
|
13
|
-
import * as toolbar from '@planningcenter/icons/paths/toolbar';
|
|
14
17
|
import { InlineWidget } from 'react-calendly';
|
|
15
18
|
import algoliasearch from 'algoliasearch';
|
|
16
19
|
import { useSearchBox, useHits, InstantSearch, Configure } from 'react-instantsearch-core';
|
|
17
20
|
import { TransitionGroup, Transition } from 'react-transition-group';
|
|
18
|
-
import datetimeFmt from '@planningcenter/datetime-fmt';
|
|
19
21
|
|
|
20
|
-
var styles$
|
|
22
|
+
var styles$u = {"accessibility-toolbar":"accessibility-toolbar-jgjUG"};
|
|
21
23
|
|
|
22
24
|
const AccessibilityToolbar = ({
|
|
23
25
|
children
|
|
@@ -29,7 +31,7 @@ const AccessibilityToolbar = ({
|
|
|
29
31
|
(_a = document.getElementById("main-content")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
30
32
|
};
|
|
31
33
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
32
|
-
className: styles$
|
|
34
|
+
className: styles$u["accessibility-toolbar"]
|
|
33
35
|
}, /*#__PURE__*/React__default.createElement(Link, {
|
|
34
36
|
href: "#main-content",
|
|
35
37
|
kind: "primary",
|
|
@@ -348,11 +350,11 @@ const X = ({
|
|
|
348
350
|
fill: fill
|
|
349
351
|
})));
|
|
350
352
|
|
|
351
|
-
var styles$
|
|
353
|
+
var styles$t = {"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"};
|
|
352
354
|
|
|
353
355
|
function AnnouncementIcon() {
|
|
354
356
|
return /*#__PURE__*/React__default.createElement("svg", {
|
|
355
|
-
className: styles$
|
|
357
|
+
className: styles$t["announcement-icon"],
|
|
356
358
|
width: "16",
|
|
357
359
|
height: "16",
|
|
358
360
|
viewBox: "0 0 16 16",
|
|
@@ -477,7 +479,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
477
479
|
} = this.props;
|
|
478
480
|
const isPromo = variant === "promo";
|
|
479
481
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
480
|
-
className: classnames(styles$
|
|
482
|
+
className: classnames(styles$t["announcement"], styles$t[`announcement--${variant !== null && variant !== void 0 ? variant : "platform"}`]),
|
|
481
483
|
"data-announcement-variant": variant !== null && variant !== void 0 ? variant : "platform",
|
|
482
484
|
style: isPromo ? {
|
|
483
485
|
backgroundImage: promoBackgroundUrl,
|
|
@@ -486,7 +488,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
486
488
|
backgroundSize: "cover"
|
|
487
489
|
} : undefined
|
|
488
490
|
}, !isPromo && /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
489
|
-
className: styles$
|
|
491
|
+
className: styles$t["announcement-content"],
|
|
490
492
|
style: style,
|
|
491
493
|
...platformProps
|
|
492
494
|
}));
|
|
@@ -535,7 +537,7 @@ function StyledDismissButton$1({
|
|
|
535
537
|
const isPromo = variant === "promo";
|
|
536
538
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
537
539
|
type: "button",
|
|
538
|
-
className: classnames(styles$
|
|
540
|
+
className: classnames(styles$t.dismiss, isPromo && styles$t["dismiss--promo"]),
|
|
539
541
|
...props
|
|
540
542
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
541
543
|
fill: isPromo ? "currentColor" : "white",
|
|
@@ -615,9 +617,9 @@ class StyledAnnouncement extends React__default.Component {
|
|
|
615
617
|
...platformProps
|
|
616
618
|
} = this.props;
|
|
617
619
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
618
|
-
className: styles$
|
|
620
|
+
className: styles$t["announcement"]
|
|
619
621
|
}, /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
620
|
-
className: styles$
|
|
622
|
+
className: styles$t["announcement-content"],
|
|
621
623
|
style: style,
|
|
622
624
|
...platformProps
|
|
623
625
|
}));
|
|
@@ -628,7 +630,7 @@ function StyledDismissButton({
|
|
|
628
630
|
}) {
|
|
629
631
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
630
632
|
type: "button",
|
|
631
|
-
className: styles$
|
|
633
|
+
className: styles$t.dismiss,
|
|
632
634
|
...props
|
|
633
635
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
634
636
|
fill: "white",
|
|
@@ -1750,7 +1752,7 @@ function MonoAppIcon({
|
|
|
1750
1752
|
})) : (/*#__PURE__*/React__default.createElement("div", null, "appName not supported")));
|
|
1751
1753
|
}
|
|
1752
1754
|
|
|
1753
|
-
var styles$
|
|
1755
|
+
var styles$s = {"icon-slot":"icon-slot-m3ZIk","name":"name-UNqbW"};
|
|
1754
1756
|
|
|
1755
1757
|
const AppRow = ({
|
|
1756
1758
|
appName,
|
|
@@ -1759,24 +1761,24 @@ const AppRow = ({
|
|
|
1759
1761
|
}) => {
|
|
1760
1762
|
if (appName === "Accounts") {
|
|
1761
1763
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
|
|
1762
|
-
className: styles$
|
|
1764
|
+
className: styles$s["icon-slot"]
|
|
1763
1765
|
}, /*#__PURE__*/React__default.createElement(MonoAppIcon, {
|
|
1764
1766
|
appName: "Accounts",
|
|
1765
1767
|
colors: colors,
|
|
1766
1768
|
size: iconSize
|
|
1767
1769
|
})), /*#__PURE__*/React__default.createElement("span", {
|
|
1768
|
-
className: styles$
|
|
1770
|
+
className: styles$s.name
|
|
1769
1771
|
}, "Account settings"));
|
|
1770
1772
|
}
|
|
1771
1773
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
1772
1774
|
appName: appName.replace(/[\s-]/, ""),
|
|
1773
1775
|
size: iconSize
|
|
1774
1776
|
}), /*#__PURE__*/React__default.createElement("span", {
|
|
1775
|
-
className: styles$
|
|
1777
|
+
className: styles$s.name
|
|
1776
1778
|
}, appName));
|
|
1777
1779
|
};
|
|
1778
1780
|
|
|
1779
|
-
var styles$
|
|
1781
|
+
var styles$r = {"button":"button-XMbeQ","label":"label-884of","chevron":"chevron-RRg9k"};
|
|
1780
1782
|
|
|
1781
1783
|
const AppsButton = /*#__PURE__*/React__default.forwardRef(({
|
|
1782
1784
|
appName,
|
|
@@ -1788,10 +1790,10 @@ const AppsButton = /*#__PURE__*/React__default.forwardRef(({
|
|
|
1788
1790
|
...restProps,
|
|
1789
1791
|
ref: ref,
|
|
1790
1792
|
"aria-label": `App switcher: ${appName}`,
|
|
1791
|
-
className: styles$
|
|
1793
|
+
className: styles$r.button,
|
|
1792
1794
|
kind: "neutral-inline",
|
|
1793
1795
|
label: /*#__PURE__*/React__default.createElement("span", {
|
|
1794
|
-
className: styles$
|
|
1796
|
+
className: styles$r.label
|
|
1795
1797
|
}, isAccounts ? "Account settings" : appName),
|
|
1796
1798
|
prefix: isAccounts ? (/*#__PURE__*/React__default.createElement(MonoAppIcon, {
|
|
1797
1799
|
appName: "Accounts",
|
|
@@ -1802,13 +1804,13 @@ const AppsButton = /*#__PURE__*/React__default.forwardRef(({
|
|
|
1802
1804
|
size: 22
|
|
1803
1805
|
})),
|
|
1804
1806
|
suffix: /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, {
|
|
1805
|
-
className: `${styles$
|
|
1807
|
+
className: `${styles$r.chevron} symbol`
|
|
1806
1808
|
})
|
|
1807
1809
|
});
|
|
1808
1810
|
});
|
|
1809
1811
|
AppsButton.displayName = "AppsButton";
|
|
1810
1812
|
|
|
1811
|
-
var styles$
|
|
1813
|
+
var styles$q = {"nav":"nav-y-6ML","popover-content":"popover-content-jOAAY","list":"list-jUxvp","link":"link-LMp2h","current":"current-4U4VL","accounts-item":"accounts-item-erJW0","accounts-link":"accounts-link-4jwPW"};
|
|
1812
1814
|
|
|
1813
1815
|
const AppsMenu = ({
|
|
1814
1816
|
appName,
|
|
@@ -1829,8 +1831,8 @@ const AppsMenu = ({
|
|
|
1829
1831
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
1830
1832
|
"aria-current": isCurrent ? "page" : undefined,
|
|
1831
1833
|
"aria-label": name,
|
|
1832
|
-
className: classnames(styles$
|
|
1833
|
-
[styles$
|
|
1834
|
+
className: classnames(styles$q.link, {
|
|
1835
|
+
[styles$q.current]: isCurrent
|
|
1834
1836
|
}),
|
|
1835
1837
|
"data-pendo": `app-switcher--change-app--${name}`,
|
|
1836
1838
|
"data-turbolinks": false,
|
|
@@ -1846,22 +1848,22 @@ const AppsMenu = ({
|
|
|
1846
1848
|
colors: colors
|
|
1847
1849
|
})), /*#__PURE__*/React__default.createElement(PopoverContent, {
|
|
1848
1850
|
"aria-label": "Switch app",
|
|
1849
|
-
className: styles$
|
|
1851
|
+
className: styles$q["popover-content"],
|
|
1850
1852
|
placement: "bottom start"
|
|
1851
1853
|
}, /*#__PURE__*/React__default.createElement("nav", {
|
|
1852
|
-
className: styles$
|
|
1854
|
+
className: styles$q.nav,
|
|
1853
1855
|
"data-pendo": "app-switcher"
|
|
1854
1856
|
}, /*#__PURE__*/React__default.createElement("ul", {
|
|
1855
|
-
className: styles$
|
|
1857
|
+
className: styles$q.list,
|
|
1856
1858
|
role: "list"
|
|
1857
1859
|
}, homeProduct && renderProductLink(homeProduct.name), restProducts.map(({
|
|
1858
1860
|
name
|
|
1859
1861
|
}) => renderProductLink(name)), accountsProduct && (/*#__PURE__*/React__default.createElement("li", {
|
|
1860
|
-
className: styles$
|
|
1862
|
+
className: styles$q["accounts-item"]
|
|
1861
1863
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
1862
1864
|
"aria-current": appName === accountsProduct.name ? "page" : undefined,
|
|
1863
1865
|
"aria-label": "Account settings",
|
|
1864
|
-
className: classnames(styles$
|
|
1866
|
+
className: classnames(styles$q.link, styles$q["accounts-link"]),
|
|
1865
1867
|
"data-pendo": "app-switcher--change-app--Accounts",
|
|
1866
1868
|
"data-turbolinks": false,
|
|
1867
1869
|
href: pcoUrl$1(env)("accounts") + getAppsSwitchProductPath(accountsProduct.name)
|
|
@@ -2069,7 +2071,7 @@ function MonoAppName({
|
|
|
2069
2071
|
})) : (/*#__PURE__*/React__default.createElement("div", null, "appName not supported"));
|
|
2070
2072
|
}
|
|
2071
2073
|
|
|
2072
|
-
var styles$
|
|
2074
|
+
var styles$p = {"unbutton":"unbutton-lEbTR"};
|
|
2073
2075
|
|
|
2074
2076
|
function Unbutton({
|
|
2075
2077
|
className,
|
|
@@ -2078,7 +2080,7 @@ function Unbutton({
|
|
|
2078
2080
|
...nativeProps
|
|
2079
2081
|
}) {
|
|
2080
2082
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
2081
|
-
className: classnames(styles$
|
|
2083
|
+
className: classnames(styles$p.unbutton, className),
|
|
2082
2084
|
style: {
|
|
2083
2085
|
...style
|
|
2084
2086
|
},
|
|
@@ -2087,7 +2089,7 @@ function Unbutton({
|
|
|
2087
2089
|
});
|
|
2088
2090
|
}
|
|
2089
2091
|
|
|
2090
|
-
var styles$
|
|
2092
|
+
var styles$o = {"button":"button-wsipc","button-accounts":"button-accounts-zQmBM","chevron":"chevron-obyBF","is-expanded":"is-expanded-PoCQ9"};
|
|
2091
2093
|
|
|
2092
2094
|
const LegacyAppsButton = ({
|
|
2093
2095
|
appName,
|
|
@@ -2102,8 +2104,8 @@ const LegacyAppsButton = ({
|
|
|
2102
2104
|
"aria-haspopup": "true",
|
|
2103
2105
|
"aria-label": `App switcher: ${appName}`,
|
|
2104
2106
|
onClick: onClick,
|
|
2105
|
-
className: classnames(styles$
|
|
2106
|
-
[styles$
|
|
2107
|
+
className: classnames(styles$o.button, {
|
|
2108
|
+
[styles$o["is-expanded"]]: expanded
|
|
2107
2109
|
}),
|
|
2108
2110
|
type: "button",
|
|
2109
2111
|
style: style,
|
|
@@ -2112,7 +2114,7 @@ const LegacyAppsButton = ({
|
|
|
2112
2114
|
appName: "Accounts",
|
|
2113
2115
|
colors: colors
|
|
2114
2116
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
2115
|
-
className: styles$
|
|
2117
|
+
className: styles$o["button-accounts"]
|
|
2116
2118
|
}, "Account settings"))) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
2117
2119
|
appName: appName.replace(/[\s-]/, "")
|
|
2118
2120
|
}), /*#__PURE__*/React__default.createElement(MonoAppName, {
|
|
@@ -2120,7 +2122,7 @@ const LegacyAppsButton = ({
|
|
|
2120
2122
|
key: "mono-app-name",
|
|
2121
2123
|
size: 24
|
|
2122
2124
|
}))), /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, {
|
|
2123
|
-
className: styles$
|
|
2125
|
+
className: styles$o.chevron,
|
|
2124
2126
|
key: "disclosure-chevron-icon"
|
|
2125
2127
|
}));
|
|
2126
2128
|
};
|
|
@@ -2253,7 +2255,7 @@ class Outsider extends React__default.Component {
|
|
|
2253
2255
|
}
|
|
2254
2256
|
}
|
|
2255
2257
|
|
|
2256
|
-
var styles$
|
|
2258
|
+
var styles$n = {"popup-root":"popup-root-SeL5u","popup":"popup-nQXYW","is-visible":"is-visible-3DAUP"};
|
|
2257
2259
|
|
|
2258
2260
|
const Popup = ({
|
|
2259
2261
|
className,
|
|
@@ -2261,8 +2263,8 @@ const Popup = ({
|
|
|
2261
2263
|
isVisible,
|
|
2262
2264
|
...nativeProps
|
|
2263
2265
|
}) => (/*#__PURE__*/React__default.createElement(C, {
|
|
2264
|
-
className: classnames(styles$
|
|
2265
|
-
[styles$
|
|
2266
|
+
className: classnames(styles$n.popup, {
|
|
2267
|
+
[styles$n["is-visible"]]: isVisible
|
|
2266
2268
|
}, className),
|
|
2267
2269
|
...nativeProps
|
|
2268
2270
|
}));
|
|
@@ -2270,11 +2272,11 @@ const Popup = ({
|
|
|
2270
2272
|
const PopupRoot = ({
|
|
2271
2273
|
...nativeProps
|
|
2272
2274
|
}) => (/*#__PURE__*/React__default.createElement("div", {
|
|
2273
|
-
className: styles$
|
|
2275
|
+
className: styles$n["popup-root"],
|
|
2274
2276
|
...nativeProps
|
|
2275
2277
|
}));
|
|
2276
2278
|
|
|
2277
|
-
var styles$
|
|
2279
|
+
var styles$m = {"popup":"popup-bVhSa"};
|
|
2278
2280
|
|
|
2279
2281
|
const LegacyAppsMenu = ({
|
|
2280
2282
|
appName,
|
|
@@ -2312,7 +2314,7 @@ const LegacyAppsMenu = ({
|
|
|
2312
2314
|
cleanup: !visible,
|
|
2313
2315
|
component: Outsider,
|
|
2314
2316
|
onOutsideClick: toggle,
|
|
2315
|
-
className: styles$
|
|
2317
|
+
className: styles$m.popup,
|
|
2316
2318
|
isVisible: visible
|
|
2317
2319
|
}, /*#__PURE__*/React__default.createElement("menu", {
|
|
2318
2320
|
ref: menuRef,
|
|
@@ -3222,34 +3224,117 @@ const useUpdateStore = () => useCallback(updates => {
|
|
|
3222
3224
|
});
|
|
3223
3225
|
}, []);
|
|
3224
3226
|
|
|
3227
|
+
const collections = {
|
|
3228
|
+
general,
|
|
3229
|
+
toolbar
|
|
3230
|
+
};
|
|
3231
|
+
const paths = collections;
|
|
3232
|
+
function Icon({
|
|
3233
|
+
name,
|
|
3234
|
+
size = 16,
|
|
3235
|
+
style,
|
|
3236
|
+
theme,
|
|
3237
|
+
title,
|
|
3238
|
+
...props
|
|
3239
|
+
}) {
|
|
3240
|
+
const [collection, symbol] = name.split(".");
|
|
3241
|
+
return /*#__PURE__*/React__default.createElement("svg", {
|
|
3242
|
+
"aria-hidden": title ? undefined : true,
|
|
3243
|
+
fill: "currentColor",
|
|
3244
|
+
height: size,
|
|
3245
|
+
role: title ? "img" : undefined,
|
|
3246
|
+
style: {
|
|
3247
|
+
color: theme && `var(${theme})`,
|
|
3248
|
+
flexShrink: 0,
|
|
3249
|
+
...style
|
|
3250
|
+
},
|
|
3251
|
+
viewBox: "0 0 16 16",
|
|
3252
|
+
width: size,
|
|
3253
|
+
...props
|
|
3254
|
+
}, title && /*#__PURE__*/React__default.createElement("title", null, title), /*#__PURE__*/React__default.createElement("path", {
|
|
3255
|
+
d: paths[collection][symbol]
|
|
3256
|
+
}));
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
const SEARCHABLE_PRODUCTS = [{
|
|
3260
|
+
appName: "Calendar",
|
|
3261
|
+
slug: "calendar"
|
|
3262
|
+
}, {
|
|
3263
|
+
appName: "Check-Ins",
|
|
3264
|
+
slug: "check-ins"
|
|
3265
|
+
}, {
|
|
3266
|
+
appName: "Giving",
|
|
3267
|
+
slug: "giving"
|
|
3268
|
+
}, {
|
|
3269
|
+
appName: "Groups",
|
|
3270
|
+
slug: "groups"
|
|
3271
|
+
}, {
|
|
3272
|
+
appName: "People",
|
|
3273
|
+
slug: "people"
|
|
3274
|
+
}, {
|
|
3275
|
+
appName: "Publishing",
|
|
3276
|
+
slug: "publishing"
|
|
3277
|
+
}, {
|
|
3278
|
+
appName: "Registrations",
|
|
3279
|
+
slug: "registrations"
|
|
3280
|
+
}, {
|
|
3281
|
+
appName: "Services",
|
|
3282
|
+
slug: "services"
|
|
3283
|
+
}];
|
|
3284
|
+
const KEYBOARD_SHORTCUTS = {
|
|
3285
|
+
copyLink: {
|
|
3286
|
+
key: "c",
|
|
3287
|
+
label: "Copy link",
|
|
3288
|
+
modifierKey: true
|
|
3289
|
+
},
|
|
3290
|
+
openInNewTab: {
|
|
3291
|
+
label: "Open in new tab"},
|
|
3292
|
+
openSearch: {
|
|
3293
|
+
key: "k",
|
|
3294
|
+
label: "Open search",
|
|
3295
|
+
modifierKey: true
|
|
3296
|
+
},
|
|
3297
|
+
select: {
|
|
3298
|
+
label: "Select",
|
|
3299
|
+
modifierKey: false,
|
|
3300
|
+
next: "ArrowDown",
|
|
3301
|
+
previous: "ArrowUp"
|
|
3302
|
+
}
|
|
3303
|
+
};
|
|
3304
|
+
|
|
3225
3305
|
const isMac = () => /Mac|iPhone|iPad|iPod/.test(navigator.platform);
|
|
3226
3306
|
const hasCommandKey = event => isMac() ? event.metaKey : event.ctrlKey;
|
|
3227
|
-
const
|
|
3228
|
-
const isSearchShortcut = event =>
|
|
3307
|
+
const matchesShortcut = (shortcut, event) => event.key.toLowerCase() === shortcut.key && !event.altKey && !event.shiftKey && hasCommandKey(event) === shortcut.modifierKey;
|
|
3308
|
+
const isSearchShortcut = event => matchesShortcut(KEYBOARD_SHORTCUTS.openSearch, event);
|
|
3229
3309
|
// Products opened their own search with `/` before this one replaced it.
|
|
3230
3310
|
const isLegacySearchShortcut = event => event.key === "/" && !event.altKey && !event.ctrlKey && !event.metaKey && !isTypingIn(event.target);
|
|
3231
|
-
const isCopyShortcut = event =>
|
|
3311
|
+
const isCopyShortcut = event => matchesShortcut(KEYBOARD_SHORTCUTS.copyLink, event);
|
|
3232
3312
|
const isTypingIn = target => target instanceof Element && target.closest('input, select, textarea, [contenteditable]:not([contenteditable="false"])') !== null;
|
|
3233
3313
|
const isTypingKey = event => event.key.length === 1 && event.key !== " " && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
3234
3314
|
const verticalStep = key => ({
|
|
3235
|
-
|
|
3236
|
-
|
|
3315
|
+
[KEYBOARD_SHORTCUTS.select.next]: 1,
|
|
3316
|
+
[KEYBOARD_SHORTCUTS.select.previous]: -1
|
|
3237
3317
|
})[key];
|
|
3238
3318
|
const horizontalStep = key => ({
|
|
3239
3319
|
ArrowLeft: -1,
|
|
3240
3320
|
ArrowRight: 1
|
|
3241
3321
|
})[key];
|
|
3242
3322
|
|
|
3323
|
+
var styles$l = {"searchButton":"searchButton-fYa5-"};
|
|
3324
|
+
|
|
3243
3325
|
function SearchButton({
|
|
3326
|
+
mobile = false,
|
|
3244
3327
|
onClick
|
|
3245
3328
|
}) {
|
|
3246
3329
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
3247
|
-
"aria-keyshortcuts": `${isMac() ? "Meta
|
|
3330
|
+
"aria-keyshortcuts": mobile ? undefined : `${isMac() ? "Meta" : "Control"}+${KEYBOARD_SHORTCUTS.openSearch.key.toUpperCase()} /`,
|
|
3248
3331
|
"aria-label": "Search",
|
|
3332
|
+
className: styles$l.searchButton,
|
|
3249
3333
|
onClick: onClick,
|
|
3250
3334
|
type: "button"
|
|
3251
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
3252
|
-
|
|
3335
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
3336
|
+
name: "general.search",
|
|
3337
|
+
size: mobile ? 18 : 14
|
|
3253
3338
|
}));
|
|
3254
3339
|
}
|
|
3255
3340
|
|
|
@@ -3564,16 +3649,16 @@ function useRecentlyVisitableMetadata() {
|
|
|
3564
3649
|
const ENTRY_VERSION = 3;
|
|
3565
3650
|
const MAX_ENTRIES = 50;
|
|
3566
3651
|
const MAX_TEXT_LENGTH = 200;
|
|
3567
|
-
const PRODUCTS = ["accounts", "calendar", "check-ins", "giving", "groups", "home", "login", "people", "publishing", "registrations", "services"];
|
|
3652
|
+
const PRODUCTS$1 = ["accounts", "calendar", "check-ins", "giving", "groups", "home", "login", "people", "publishing", "registrations", "services"];
|
|
3568
3653
|
// Login has no pages worth returning to.
|
|
3569
|
-
const APPS = PRODUCTS.filter(product => product !== "login");
|
|
3654
|
+
const APPS = PRODUCTS$1.filter(product => product !== "login");
|
|
3570
3655
|
function isId(value) {
|
|
3571
3656
|
return value !== "" && Array.from(value).every(character => character >= "0" && character <= "9");
|
|
3572
3657
|
}
|
|
3573
3658
|
// A PCRL looks like `<product>/v2/<resource_type>/<id>`.
|
|
3574
3659
|
function isPcrl(value) {
|
|
3575
3660
|
const segments = value.split("/");
|
|
3576
|
-
return segments.length === 4 && PRODUCTS.some(product => product === segments[0]) && isId(segments[3]);
|
|
3661
|
+
return segments.length === 4 && PRODUCTS$1.some(product => product === segments[0]) && isId(segments[3]);
|
|
3577
3662
|
}
|
|
3578
3663
|
function isApp(value) {
|
|
3579
3664
|
return APPS.some(app => app === value);
|
|
@@ -3972,7 +4057,13 @@ function hasSelectedText(element) {
|
|
|
3972
4057
|
return selectedInField || ((_b = (_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "") !== "";
|
|
3973
4058
|
}
|
|
3974
4059
|
|
|
3975
|
-
|
|
4060
|
+
// eslint-disable-next-line sort-keys-fix/sort-keys-fix
|
|
4061
|
+
const COPIED_TIMING = {
|
|
4062
|
+
enter: 240,
|
|
4063
|
+
active: 1000,
|
|
4064
|
+
exit: 240
|
|
4065
|
+
};
|
|
4066
|
+
const COPIED_FEEDBACK_MS = COPIED_TIMING.enter + COPIED_TIMING.active + COPIED_TIMING.exit;
|
|
3976
4067
|
// `copiedUrl` stays set briefly after a copy so the UI can confirm it.
|
|
3977
4068
|
function useCopyLink() {
|
|
3978
4069
|
const [copiedUrl, setCopiedUrl] = React__default.useState(null);
|
|
@@ -3996,22 +4087,27 @@ function useCopyLink() {
|
|
|
3996
4087
|
// Remembering which list the index belongs to puts the highlight back on the
|
|
3997
4088
|
// first item whenever a new list replaces it, without an effect to reset it.
|
|
3998
4089
|
// A list that grows or fills in under the same `list` keeps its highlight.
|
|
3999
|
-
|
|
4090
|
+
// Disabled, nothing is highlighted and the keys and pointer leave it alone.
|
|
4091
|
+
function useResultNavigation(items, list, enabled = true) {
|
|
4000
4092
|
const [highlight, setHighlight] = React__default.useState({
|
|
4001
4093
|
index: 0,
|
|
4002
4094
|
list
|
|
4003
4095
|
});
|
|
4004
4096
|
const highlightedIndex = highlight.list === list ? highlight.index : 0;
|
|
4005
|
-
const highlighted = items[highlightedIndex];
|
|
4097
|
+
const highlighted = enabled ? items[highlightedIndex] : undefined;
|
|
4006
4098
|
const {
|
|
4007
4099
|
copiedUrl,
|
|
4008
4100
|
copy
|
|
4009
4101
|
} = useCopyLink();
|
|
4010
|
-
const highlightIndex = React__default.useCallback(index =>
|
|
4011
|
-
|
|
4012
|
-
list
|
|
4013
|
-
|
|
4102
|
+
const highlightIndex = React__default.useCallback(index => {
|
|
4103
|
+
if (!enabled) return;
|
|
4104
|
+
setHighlight(current => current.list === list && current.index === index ? current : {
|
|
4105
|
+
index,
|
|
4106
|
+
list
|
|
4107
|
+
});
|
|
4108
|
+
}, [enabled, list]);
|
|
4014
4109
|
const handleKeyDown = event => {
|
|
4110
|
+
if (!enabled) return;
|
|
4015
4111
|
const step = verticalStep(event.key);
|
|
4016
4112
|
if (step && items.length > 0) {
|
|
4017
4113
|
event.preventDefault();
|
|
@@ -4035,41 +4131,89 @@ function useResultNavigation(items, list) {
|
|
|
4035
4131
|
};
|
|
4036
4132
|
}
|
|
4037
4133
|
|
|
4038
|
-
|
|
4134
|
+
var styles$k = {"modal":"modal-NR3TO","visuallyHidden":"visuallyHidden-C28ju","panel":"panel-HlF7S"};
|
|
4135
|
+
|
|
4136
|
+
const FALLBACK_SLUGS = ["people", "services"];
|
|
4137
|
+
function defaultProduct(products, appName) {
|
|
4138
|
+
var _a;
|
|
4139
|
+
const current = products.find(product => product.appName === appName);
|
|
4140
|
+
const fallback = FALLBACK_SLUGS.map(slug => products.find(product => product.slug === slug)).find(Boolean);
|
|
4141
|
+
return (_a = current !== null && current !== void 0 ? current : fallback) !== null && _a !== void 0 ? _a : products[0];
|
|
4142
|
+
}
|
|
4143
|
+
|
|
4144
|
+
function groupSections(groups = [], timeZone) {
|
|
4039
4145
|
return groups.map(({
|
|
4040
4146
|
results,
|
|
4041
4147
|
type
|
|
4042
4148
|
}) => ({
|
|
4043
4149
|
heading: type,
|
|
4044
|
-
items: results.map(resultItem),
|
|
4150
|
+
items: results.map(result => resultItem(result, timeZone)),
|
|
4045
4151
|
key: type
|
|
4046
4152
|
}));
|
|
4047
4153
|
}
|
|
4048
4154
|
function resultItem({
|
|
4049
4155
|
attributes,
|
|
4050
4156
|
id
|
|
4051
|
-
}) {
|
|
4157
|
+
}, timeZone) {
|
|
4052
4158
|
return {
|
|
4159
|
+
category: attributes.category,
|
|
4160
|
+
imageUrl: attributes.image_url,
|
|
4053
4161
|
key: id,
|
|
4054
|
-
|
|
4162
|
+
product: attributes.product,
|
|
4163
|
+
subtitle: summarize(attributes, timeZone),
|
|
4055
4164
|
title: attributes.title,
|
|
4056
4165
|
url: attributes.url
|
|
4057
4166
|
};
|
|
4058
4167
|
}
|
|
4059
|
-
function visitItem(visit) {
|
|
4168
|
+
function visitItem(visit, timeZone) {
|
|
4060
4169
|
return {
|
|
4061
4170
|
key: entryKey(visit.entry),
|
|
4062
|
-
...describeVisit(visit)
|
|
4171
|
+
...describeVisit(visit, timeZone)
|
|
4063
4172
|
};
|
|
4064
4173
|
}
|
|
4065
|
-
|
|
4066
|
-
|
|
4174
|
+
const joinParts = (...parts) => parts.filter(Boolean).join(" · ");
|
|
4175
|
+
// Matches home-mobile's search subtitles, so a result reads the same in both.
|
|
4176
|
+
function summarize({
|
|
4177
|
+
category,
|
|
4178
|
+
metadata
|
|
4179
|
+
}, timeZone) {
|
|
4180
|
+
const text = key => {
|
|
4181
|
+
const value = metadata === null || metadata === void 0 ? void 0 : metadata[key];
|
|
4182
|
+
return typeof value === "string" ? value : "";
|
|
4183
|
+
};
|
|
4184
|
+
if (category === "profile") {
|
|
4185
|
+
return joinParts(text("phone"), text("email"));
|
|
4186
|
+
} else if (category === "event") {
|
|
4187
|
+
return eventTime(text("starts_at"), text("ends_at"), {
|
|
4188
|
+
recurring: (metadata === null || metadata === void 0 ? void 0 : metadata.recurring) === true,
|
|
4189
|
+
timeZone
|
|
4190
|
+
});
|
|
4191
|
+
} else {
|
|
4192
|
+
return text("details");
|
|
4193
|
+
}
|
|
4194
|
+
}
|
|
4195
|
+
// "Oct 25, 9–10:30am", in the organization's time zone like the rest
|
|
4196
|
+
// of Planning Center.
|
|
4197
|
+
function eventTime(startsAt, endsAt, {
|
|
4198
|
+
recurring,
|
|
4199
|
+
timeZone
|
|
4200
|
+
}) {
|
|
4201
|
+
if (startsAt === "") {
|
|
4202
|
+
return "";
|
|
4203
|
+
} else {
|
|
4204
|
+
const time = datetimeFmt.datetime(startsAt, endsAt || null, {
|
|
4205
|
+
style: "abbreviated",
|
|
4206
|
+
...(timeZone && {
|
|
4207
|
+
timeZone
|
|
4208
|
+
})
|
|
4209
|
+
});
|
|
4210
|
+
return recurring ? joinParts(time, "Repeating") : time;
|
|
4211
|
+
}
|
|
4067
4212
|
}
|
|
4068
4213
|
// Unlike search results, recents come from every product, so each one names
|
|
4069
4214
|
// its product and type.
|
|
4070
|
-
function describeVisit(visit) {
|
|
4215
|
+
function describeVisit(visit, timeZone) {
|
|
4071
4216
|
var _a, _b;
|
|
4072
|
-
const subtitle = (...parts) => parts.filter(Boolean).join(" · ");
|
|
4073
4217
|
if (visit.status === "page") {
|
|
4074
4218
|
const {
|
|
4075
4219
|
app,
|
|
@@ -4077,19 +4221,31 @@ function describeVisit(visit) {
|
|
|
4077
4221
|
title
|
|
4078
4222
|
} = visit.entry;
|
|
4079
4223
|
return {
|
|
4080
|
-
|
|
4224
|
+
category: "generic",
|
|
4225
|
+
imageUrl: null,
|
|
4226
|
+
product: app,
|
|
4227
|
+
subtitle: joinParts(productName(app), capitalize((_a = metadata === null || metadata === void 0 ? void 0 : metadata.type) !== null && _a !== void 0 ? _a : ""), (_b = metadata === null || metadata === void 0 ? void 0 : metadata.details) !== null && _b !== void 0 ? _b : ""),
|
|
4081
4228
|
title,
|
|
4082
4229
|
url: visit.url
|
|
4083
4230
|
};
|
|
4084
4231
|
} else {
|
|
4085
4232
|
const {
|
|
4086
|
-
|
|
4233
|
+
attributes
|
|
4234
|
+
} = visit.result;
|
|
4235
|
+
const {
|
|
4236
|
+
category,
|
|
4237
|
+
image_url,
|
|
4087
4238
|
product,
|
|
4088
4239
|
title,
|
|
4089
4240
|
type
|
|
4090
|
-
} =
|
|
4241
|
+
} = attributes;
|
|
4242
|
+
// Profiles and events say what they are with a phone number or a date.
|
|
4243
|
+
const kind = category === "generic" ? capitalize(pluralize.singular(type)) : "";
|
|
4091
4244
|
return {
|
|
4092
|
-
|
|
4245
|
+
category,
|
|
4246
|
+
imageUrl: image_url,
|
|
4247
|
+
product,
|
|
4248
|
+
subtitle: joinParts(productName(product), kind, summarize(attributes, timeZone)),
|
|
4093
4249
|
title,
|
|
4094
4250
|
url: visit.url
|
|
4095
4251
|
};
|
|
@@ -4103,39 +4259,278 @@ function capitalize(word) {
|
|
|
4103
4259
|
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
4104
4260
|
}
|
|
4105
4261
|
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
}
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4262
|
+
var styles$j = {"container":"container-YDdM1","hint":"hint-017Rd","keycap":"keycap-ENJM2","labels":"labels-GHPqL","copied":"copied-DUFa1"};
|
|
4263
|
+
|
|
4264
|
+
const SYMBOLS = {
|
|
4265
|
+
command: {
|
|
4266
|
+
label: "⌘",
|
|
4267
|
+
paths: ["M7 9a2 2 0 1 1 2 -2v10a2 2 0 1 1 -2 -2h10a2 2 0 1 1 -2 2v-10a2 2 0 1 1 2 2h-10"]
|
|
4268
|
+
},
|
|
4269
|
+
down: {
|
|
4270
|
+
label: "↓",
|
|
4271
|
+
paths: ["M12 6l0 12", "M16 14l-4 4", "M8 14l4 4"]
|
|
4272
|
+
},
|
|
4273
|
+
return: {
|
|
4274
|
+
label: "↵",
|
|
4275
|
+
paths: ["M18 6v6a3 3 0 0 1 -3 3h-10l4 -4m0 8l-4 -4"]
|
|
4276
|
+
},
|
|
4277
|
+
up: {
|
|
4278
|
+
label: "↑",
|
|
4279
|
+
paths: ["M12 6l0 12", "M16 10l-4 -4", "M8 10l4 -4"]
|
|
4119
4280
|
}
|
|
4281
|
+
};
|
|
4282
|
+
function Keycap(props) {
|
|
4283
|
+
return /*#__PURE__*/React__default.createElement("kbd", {
|
|
4284
|
+
className: styles$j.keycap
|
|
4285
|
+
}, "symbol" in props ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("svg", {
|
|
4286
|
+
"aria-hidden": true,
|
|
4287
|
+
fill: "none",
|
|
4288
|
+
stroke: "currentColor",
|
|
4289
|
+
strokeLinecap: "round",
|
|
4290
|
+
strokeLinejoin: "round",
|
|
4291
|
+
viewBox: "0 0 24 24"
|
|
4292
|
+
}, SYMBOLS[props.symbol].paths.map(d => (/*#__PURE__*/React__default.createElement("path", {
|
|
4293
|
+
d: d,
|
|
4294
|
+
key: d
|
|
4295
|
+
})))), /*#__PURE__*/React__default.createElement("span", {
|
|
4296
|
+
className: styles$k.visuallyHidden
|
|
4297
|
+
}, SYMBOLS[props.symbol].label))) : props.label);
|
|
4298
|
+
}
|
|
4299
|
+
function CommandKey() {
|
|
4300
|
+
return isMac() ? /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4301
|
+
symbol: "command"
|
|
4302
|
+
}) : /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4303
|
+
label: "Ctrl"
|
|
4304
|
+
});
|
|
4120
4305
|
}
|
|
4121
|
-
function
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
|
|
4125
|
-
|
|
4306
|
+
function EnterKey() {
|
|
4307
|
+
return isMac() ? /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4308
|
+
symbol: "return"
|
|
4309
|
+
}) : /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4310
|
+
label: "Enter"
|
|
4311
|
+
});
|
|
4126
4312
|
}
|
|
4127
|
-
|
|
4313
|
+
const {
|
|
4314
|
+
copyLink,
|
|
4315
|
+
openInNewTab,
|
|
4316
|
+
openSearch,
|
|
4317
|
+
select
|
|
4318
|
+
} = KEYBOARD_SHORTCUTS;
|
|
4128
4319
|
function KeyboardHints({
|
|
4129
4320
|
copied
|
|
4130
4321
|
}) {
|
|
4131
|
-
|
|
4132
|
-
|
|
4322
|
+
return /*#__PURE__*/React__default.createElement("ul", {
|
|
4323
|
+
"aria-label": "Keyboard shortcuts",
|
|
4324
|
+
className: styles$j.container
|
|
4325
|
+
}, /*#__PURE__*/React__default.createElement("li", {
|
|
4326
|
+
className: styles$j.hint
|
|
4327
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
4328
|
+
gap: 0.5
|
|
4329
|
+
}, select.modifierKey, /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4330
|
+
symbol: "up"
|
|
4331
|
+
}), /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4332
|
+
symbol: "down"
|
|
4333
|
+
})), select.label), /*#__PURE__*/React__default.createElement("li", {
|
|
4334
|
+
className: styles$j.hint
|
|
4335
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
4336
|
+
gap: 0.5
|
|
4337
|
+
}, /*#__PURE__*/React__default.createElement(CommandKey, null), /*#__PURE__*/React__default.createElement(EnterKey, null)), openInNewTab.label), /*#__PURE__*/React__default.createElement("li", {
|
|
4338
|
+
className: classnames(styles$j.hint, copied && styles$j.copied),
|
|
4339
|
+
style: {
|
|
4340
|
+
"--copied-active": `${COPIED_TIMING.active}ms`,
|
|
4341
|
+
"--copied-enter": `${COPIED_TIMING.enter}ms`,
|
|
4342
|
+
"--copied-exit": `${COPIED_TIMING.exit}ms`
|
|
4343
|
+
}
|
|
4344
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
4345
|
+
gap: 0.5
|
|
4346
|
+
}, /*#__PURE__*/React__default.createElement(CommandKey, null), /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4347
|
+
label: copyLink.key.toUpperCase()
|
|
4348
|
+
})), /*#__PURE__*/React__default.createElement("span", {
|
|
4349
|
+
className: styles$j.labels
|
|
4350
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
4351
|
+
"aria-hidden": copied
|
|
4352
|
+
}, copyLink.label), /*#__PURE__*/React__default.createElement("span", {
|
|
4133
4353
|
role: "status"
|
|
4134
|
-
}, copied
|
|
4354
|
+
}, copied && "Copied!"))), /*#__PURE__*/React__default.createElement("li", {
|
|
4355
|
+
className: styles$j.hint
|
|
4356
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
4357
|
+
gap: 0.5
|
|
4358
|
+
}, /*#__PURE__*/React__default.createElement(CommandKey, null), /*#__PURE__*/React__default.createElement(Keycap, {
|
|
4359
|
+
label: openSearch.key.toUpperCase()
|
|
4360
|
+
})), openSearch.label));
|
|
4361
|
+
}
|
|
4362
|
+
|
|
4363
|
+
var styles$i = {"icon":"icon-XKLvN","squircle":"squircle-JCHr6"};
|
|
4364
|
+
|
|
4365
|
+
const PRODUCTS = {
|
|
4366
|
+
accounts: {
|
|
4367
|
+
gradient: "--t-fill-color-product-accounts-gradient-brand",
|
|
4368
|
+
path: logomarks.accounts
|
|
4369
|
+
},
|
|
4370
|
+
api: {
|
|
4371
|
+
gradient: "--t-fill-color-product-api-gradient-brand",
|
|
4372
|
+
path: logomarks.api
|
|
4373
|
+
},
|
|
4374
|
+
calendar: {
|
|
4375
|
+
gradient: "--t-fill-color-product-calendar-gradient-brand",
|
|
4376
|
+
path: logomarks.calendar
|
|
4377
|
+
},
|
|
4378
|
+
"check-ins": {
|
|
4379
|
+
gradient: "--t-fill-color-product-checkins-gradient-brand",
|
|
4380
|
+
path: logomarks.checkIns
|
|
4381
|
+
},
|
|
4382
|
+
"church-center": {
|
|
4383
|
+
gradient: "--t-fill-color-product-cc-gradient-brand",
|
|
4384
|
+
path: logomarks.churchCenter
|
|
4385
|
+
},
|
|
4386
|
+
giving: {
|
|
4387
|
+
gradient: "--t-fill-color-product-giving-gradient-brand",
|
|
4388
|
+
path: logomarks.giving
|
|
4389
|
+
},
|
|
4390
|
+
groups: {
|
|
4391
|
+
gradient: "--t-fill-color-product-groups-gradient-brand",
|
|
4392
|
+
path: logomarks.groups
|
|
4393
|
+
},
|
|
4394
|
+
home: {
|
|
4395
|
+
gradient: "--t-fill-color-product-home-gradient-brand",
|
|
4396
|
+
path: logomarks.home
|
|
4397
|
+
},
|
|
4398
|
+
"music-stand": {
|
|
4399
|
+
gradient: "--t-fill-color-product-musicstand-gradient-brand",
|
|
4400
|
+
path: logomarks.musicStand
|
|
4401
|
+
},
|
|
4402
|
+
people: {
|
|
4403
|
+
gradient: "--t-fill-color-product-people-gradient-brand",
|
|
4404
|
+
path: logomarks.people
|
|
4405
|
+
},
|
|
4406
|
+
publishing: {
|
|
4407
|
+
gradient: "--t-fill-color-product-publishing-gradient-brand",
|
|
4408
|
+
path: logomarks.publishing
|
|
4409
|
+
},
|
|
4410
|
+
registrations: {
|
|
4411
|
+
gradient: "--t-fill-color-product-registrations-gradient-brand",
|
|
4412
|
+
path: logomarks.registrations
|
|
4413
|
+
},
|
|
4414
|
+
services: {
|
|
4415
|
+
gradient: "--t-fill-color-product-services-gradient-brand",
|
|
4416
|
+
path: logomarks.services
|
|
4417
|
+
}
|
|
4418
|
+
};
|
|
4419
|
+
const isProductIconSlug = slug => Object.prototype.hasOwnProperty.call(PRODUCTS, slug);
|
|
4420
|
+
const maskFor = path => `url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="${path}"/></svg>`)}")`;
|
|
4421
|
+
function ProductIcon({
|
|
4422
|
+
size = 16,
|
|
4423
|
+
slug
|
|
4424
|
+
}) {
|
|
4425
|
+
const {
|
|
4426
|
+
gradient,
|
|
4427
|
+
path
|
|
4428
|
+
} = PRODUCTS[slug];
|
|
4429
|
+
const mask = maskFor(path);
|
|
4430
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
4431
|
+
"aria-hidden": true,
|
|
4432
|
+
className: styles$i.icon,
|
|
4433
|
+
style: {
|
|
4434
|
+
height: size,
|
|
4435
|
+
width: size
|
|
4436
|
+
}
|
|
4437
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
4438
|
+
className: styles$i.squircle,
|
|
4439
|
+
style: {
|
|
4440
|
+
WebkitMaskImage: mask,
|
|
4441
|
+
background: `var(${gradient})`,
|
|
4442
|
+
maskImage: mask
|
|
4443
|
+
}
|
|
4444
|
+
}));
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4447
|
+
var styles$h = {"picker":"picker-iuzzj","option":"option--7LXg"};
|
|
4448
|
+
|
|
4449
|
+
// Phones have no room for a tab per product, so they pick from a dropdown.
|
|
4450
|
+
// Complex mode renders each option's logomark, in the list and the trigger.
|
|
4451
|
+
function ProductSelect({
|
|
4452
|
+
children,
|
|
4453
|
+
onSelect,
|
|
4454
|
+
products,
|
|
4455
|
+
selected
|
|
4456
|
+
}) {
|
|
4457
|
+
const options = products.map(({
|
|
4458
|
+
appName,
|
|
4459
|
+
slug
|
|
4460
|
+
}) => ({
|
|
4461
|
+
label: (/*#__PURE__*/React__default.createElement("span", {
|
|
4462
|
+
className: styles$h.option
|
|
4463
|
+
}, /*#__PURE__*/React__default.createElement(ProductIcon, {
|
|
4464
|
+
slug: slug
|
|
4465
|
+
}), appName)),
|
|
4466
|
+
textValue: appName,
|
|
4467
|
+
value: slug
|
|
4468
|
+
}));
|
|
4469
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
4470
|
+
className: styles$h.picker
|
|
4471
|
+
}, /*#__PURE__*/React__default.createElement(Select, {
|
|
4472
|
+
"aria-label": "Product",
|
|
4473
|
+
complex: true,
|
|
4474
|
+
onChange: event => onSelect(event.target.value),
|
|
4475
|
+
options: options,
|
|
4476
|
+
value: selected.slug
|
|
4477
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
4478
|
+
className: styles$k.panel
|
|
4479
|
+
}, children));
|
|
4480
|
+
}
|
|
4481
|
+
|
|
4482
|
+
// Browsers match :focus-visible on every focused text field, keyboard or not,
|
|
4483
|
+
// since typing follows either way. So this remembers what last moved focus,
|
|
4484
|
+
// shared by every field and listened for once, in the capture phase so it's
|
|
4485
|
+
// known before focus moves.
|
|
4486
|
+
let lastInteraction = "pointer";
|
|
4487
|
+
let listening = false;
|
|
4488
|
+
function listen() {
|
|
4489
|
+
if (listening) return;
|
|
4490
|
+
listening = true;
|
|
4491
|
+
document.addEventListener("keydown", event => {
|
|
4492
|
+
// Shortcuts like ⌘C don't move focus.
|
|
4493
|
+
if (!event.metaKey && !event.ctrlKey && !event.altKey) {
|
|
4494
|
+
lastInteraction = "keyboard";
|
|
4495
|
+
}
|
|
4496
|
+
}, true);
|
|
4497
|
+
document.addEventListener("pointerdown", () => {
|
|
4498
|
+
lastInteraction = "pointer";
|
|
4499
|
+
}, true);
|
|
4500
|
+
}
|
|
4501
|
+
/**
|
|
4502
|
+
* Whether a field was focused from the keyboard, as by Tab, rather than by a
|
|
4503
|
+
* click or tap. Spread `focusProps` onto the field, and style it by
|
|
4504
|
+
* `data-focus-visible`.
|
|
4505
|
+
*/
|
|
4506
|
+
function useKeyboardFocus({
|
|
4507
|
+
onBlur,
|
|
4508
|
+
onFocus
|
|
4509
|
+
} = {}) {
|
|
4510
|
+
const [focusVisible, setFocusVisible] = React__default.useState(false);
|
|
4511
|
+
React__default.useEffect(listen, []);
|
|
4512
|
+
return {
|
|
4513
|
+
focusProps: {
|
|
4514
|
+
"data-focus-visible": focusVisible || undefined,
|
|
4515
|
+
onBlur: event => {
|
|
4516
|
+
setFocusVisible(false);
|
|
4517
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
4518
|
+
},
|
|
4519
|
+
onFocus: event => {
|
|
4520
|
+
const keyboard = lastInteraction === "keyboard";
|
|
4521
|
+
setFocusVisible(keyboard);
|
|
4522
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event, keyboard);
|
|
4523
|
+
}
|
|
4524
|
+
},
|
|
4525
|
+
focusVisible
|
|
4526
|
+
};
|
|
4135
4527
|
}
|
|
4136
4528
|
|
|
4137
|
-
var styles$
|
|
4529
|
+
var styles$g = {"tablist":"tablist-7ASvc","tab":"tab-dz8ki"};
|
|
4138
4530
|
|
|
4531
|
+
// With this many tabs or more, only the selected tab shows its name, so they
|
|
4532
|
+
// all fit. Fewer always fit with their names.
|
|
4533
|
+
const ICON_ONLY_TAB_COUNT = 5;
|
|
4139
4534
|
function ProductTabs({
|
|
4140
4535
|
children,
|
|
4141
4536
|
onKeyDown,
|
|
@@ -4146,6 +4541,7 @@ function ProductTabs({
|
|
|
4146
4541
|
const id = useInstanceId("product-tabs");
|
|
4147
4542
|
const tabId = slug => `${id}-tab-${slug}`;
|
|
4148
4543
|
const tabRefs = React__default.useRef(new Map());
|
|
4544
|
+
const showAllNames = products.length < ICON_ONLY_TAB_COUNT;
|
|
4149
4545
|
const handleKeyDown = event => {
|
|
4150
4546
|
var _a;
|
|
4151
4547
|
const offset = horizontalStep(event.key);
|
|
@@ -4160,13 +4556,14 @@ function ProductTabs({
|
|
|
4160
4556
|
}
|
|
4161
4557
|
};
|
|
4162
4558
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
4163
|
-
"aria-label": "
|
|
4559
|
+
"aria-label": "Search in",
|
|
4560
|
+
className: styles$g.tablist,
|
|
4164
4561
|
onKeyDown: handleKeyDown,
|
|
4165
4562
|
role: "tablist"
|
|
4166
|
-
}, products.map(product => (/*#__PURE__*/React__default.createElement(
|
|
4563
|
+
}, products.map(product => (/*#__PURE__*/React__default.createElement(Tab, {
|
|
4167
4564
|
"aria-controls": `${id}-panel`,
|
|
4565
|
+
"aria-describedby": `${tabId(product.slug)}-description`,
|
|
4168
4566
|
"aria-selected": product === selected,
|
|
4169
|
-
className: styles$d.tab,
|
|
4170
4567
|
id: tabId(product.slug),
|
|
4171
4568
|
key: product.slug,
|
|
4172
4569
|
onClick: () => onSelect(product.slug),
|
|
@@ -4177,15 +4574,397 @@ function ProductTabs({
|
|
|
4177
4574
|
tabRefs.current.delete(product.slug);
|
|
4178
4575
|
}
|
|
4179
4576
|
},
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
}, product.appName
|
|
4577
|
+
tabIndex: product === selected ? 0 : -1
|
|
4578
|
+
}, /*#__PURE__*/React__default.createElement(ProductIcon, {
|
|
4579
|
+
slug: product.slug
|
|
4580
|
+
}), showAllNames || product === selected ? product.appName : (/*#__PURE__*/React__default.createElement("span", {
|
|
4581
|
+
className: styles$k.visuallyHidden
|
|
4582
|
+
}, product.appName)))))), /*#__PURE__*/React__default.createElement("div", {
|
|
4583
|
+
className: styles$k.visuallyHidden
|
|
4584
|
+
}, products.map(product => (/*#__PURE__*/React__default.createElement("span", {
|
|
4585
|
+
id: `${tabId(product.slug)}-description`,
|
|
4586
|
+
key: product.slug
|
|
4587
|
+
}, "Planning Center ", product.appName)))), /*#__PURE__*/React__default.createElement("div", {
|
|
4184
4588
|
"aria-labelledby": tabId(selected.slug),
|
|
4589
|
+
className: styles$k.panel,
|
|
4185
4590
|
id: `${id}-panel`,
|
|
4186
4591
|
role: "tabpanel"
|
|
4187
4592
|
}, children));
|
|
4188
4593
|
}
|
|
4594
|
+
// The modal's focus scope moves focus here by script when Tab is pressed, and
|
|
4595
|
+
// Safari doesn't match :focus-visible on focus moved by script. So the tab
|
|
4596
|
+
// remembers whether the keyboard brought focus, and the ring keys off that.
|
|
4597
|
+
const Tab = /*#__PURE__*/React__default.forwardRef(function Tab(props, ref) {
|
|
4598
|
+
const {
|
|
4599
|
+
focusProps
|
|
4600
|
+
} = useKeyboardFocus();
|
|
4601
|
+
return /*#__PURE__*/React__default.createElement("button", {
|
|
4602
|
+
className: styles$g.tab,
|
|
4603
|
+
ref: ref,
|
|
4604
|
+
role: "tab",
|
|
4605
|
+
type: "button",
|
|
4606
|
+
...props,
|
|
4607
|
+
...focusProps
|
|
4608
|
+
});
|
|
4609
|
+
});
|
|
4610
|
+
|
|
4611
|
+
function BlankStateRecentlyVisited(props) {
|
|
4612
|
+
const id = useInstanceId("blank-state-initial");
|
|
4613
|
+
return /*#__PURE__*/React__default.createElement("svg", {
|
|
4614
|
+
viewBox: "0 0 197 174",
|
|
4615
|
+
fill: "none",
|
|
4616
|
+
"aria-hidden": "true",
|
|
4617
|
+
focusable: "false",
|
|
4618
|
+
...props
|
|
4619
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4620
|
+
d: "M139.863 32.119c10.938 10.028 21.777 20.154 32.912 30.084 8.376 7.373 21.975 15.828 23.157 28.02.592 6.095-2.167 11.993-5.321 17.204-24.635 40.8-81.098 67.148-127.412 48.862-30.646-12.093-76.172-47.387-59.716-85.041 15.865-36.377 64.84-55.056 83.957-57.71 21.876-4.621 34.883 2.457 52.423 18.58Z",
|
|
4621
|
+
fill: "currentColor"
|
|
4622
|
+
}), /*#__PURE__*/React__default.createElement("g", {
|
|
4623
|
+
clipPath: `url(#${id}-a)`
|
|
4624
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4625
|
+
d: "M115.885 109.31c-.478-.686-.01-1.845 1.046-2.589s2.3-.791 2.778-.105c.478.686.009 1.845-1.047 2.589-1.056.744-2.299.791-2.777.105Z",
|
|
4626
|
+
fill: "#333"
|
|
4627
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4628
|
+
d: "M123.403 113.599c-3.456 0-6.259-2.817-6.259-6.293 0-3.475 2.803-6.293 6.259-6.293 3.457 0 6.259 2.818 6.259 6.293 0 3.476-2.802 6.293-6.259 6.293Z",
|
|
4629
|
+
fill: "#333"
|
|
4630
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4631
|
+
d: "M118.853 100.968a2.85 2.85 0 0 0 2.832-2.484 2.89 2.89 0 0 0-.071-1.115c-2.638-9.955-9.668-9.687-9.964-9.665l.311 5.716h-.104c.119 0 2.853.134 4.254 5.421a2.874 2.874 0 0 0 1.013 1.53 2.846 2.846 0 0 0 1.729.597Z",
|
|
4632
|
+
fill: "#4D4D4D"
|
|
4633
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4634
|
+
d: "M114.96 100.503c-.462-5.894 2.796-10.96 7.279-11.315 4.482-.356 8.491 4.134 8.953 10.027.462 5.894-2.796 10.96-7.279 11.315-4.482.356-8.491-4.134-8.953-10.027Z",
|
|
4635
|
+
fill: "#F2F2F2"
|
|
4636
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4637
|
+
d: "M125.964 107.738c-4.48.354-8.489-4.135-8.953-10.026a12.893 12.893 0 0 1 1.223-6.707c-2.249 2.046-3.591 5.59-3.283 9.505.463 5.895 4.469 10.384 8.953 10.027 2.594-.205 4.765-1.986 6.055-4.591a6.682 6.682 0 0 1-3.995 1.792Z",
|
|
4638
|
+
fill: "#E6E6E6"
|
|
4639
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4640
|
+
d: "M115.885 109.31c-.478-.686-.01-1.845 1.046-2.589s2.3-.791 2.778-.105c.478.686.009 1.845-1.047 2.589-1.056.744-2.299.791-2.777.105Z",
|
|
4641
|
+
fill: "#333"
|
|
4642
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4643
|
+
d: "M123.403 113.599c-3.456 0-6.259-2.817-6.259-6.293 0-3.475 2.803-6.293 6.259-6.293 3.457 0 6.259 2.818 6.259 6.293 0 3.476-2.802 6.293-6.259 6.293Z",
|
|
4644
|
+
fill: "#333"
|
|
4645
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4646
|
+
d: "M118.853 100.968a2.85 2.85 0 0 0 2.832-2.484 2.89 2.89 0 0 0-.071-1.115c-2.638-9.955-9.668-9.687-9.964-9.665l.311 5.716h-.104c.119 0 2.853.134 4.254 5.421a2.874 2.874 0 0 0 1.013 1.53 2.846 2.846 0 0 0 1.729.597Z",
|
|
4647
|
+
fill: "#4D4D4D"
|
|
4648
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4649
|
+
d: "M114.96 100.503c-.462-5.894 2.796-10.96 7.279-11.315 4.482-.356 8.491 4.134 8.953 10.027.462 5.894-2.796 10.96-7.279 11.315-4.482.356-8.491-4.134-8.953-10.027Z",
|
|
4650
|
+
fill: "#F2F2F2"
|
|
4651
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4652
|
+
d: "M125.964 107.738c-4.48.354-8.489-4.135-8.953-10.026a12.893 12.893 0 0 1 1.223-6.707c-2.249 2.046-3.591 5.59-3.283 9.505.463 5.895 4.469 10.384 8.953 10.027 2.594-.205 4.765-1.986 6.055-4.591a6.682 6.682 0 0 1-3.995 1.792Z",
|
|
4653
|
+
fill: "#E6E6E6"
|
|
4654
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4655
|
+
d: "M89.317 121.331a2.836 2.836 0 0 1-1.92-.752 2.869 2.869 0 0 1-.911-1.857c-.534-5.726 3.527-13.808 3.99-14.713a2.849 2.849 0 0 1 1.666-1.413 2.835 2.835 0 0 1 2.172.185 2.86 2.86 0 0 1 1.405 1.675 2.876 2.876 0 0 1-.184 2.183c-1.46 2.843-3.669 8.492-3.383 11.551a2.868 2.868 0 0 1-1.504 2.797 2.84 2.84 0 0 1-1.064.318 1.378 1.378 0 0 1-.267.026Z",
|
|
4656
|
+
fill: "#4D4D4D"
|
|
4657
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4658
|
+
d: "M92.155 112.314c3.308 0 5.989-2.696 5.989-6.021 0-3.326-2.681-6.021-5.989-6.021-3.307 0-5.988 2.695-5.988 6.021 0 3.325 2.681 6.021 5.988 6.021Z",
|
|
4659
|
+
fill: "gray"
|
|
4660
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4661
|
+
d: "M80.597 128.771h11.769v3.726a1.118 1.118 0 0 1-1.112 1.118H78.57a1.118 1.118 0 0 1-1.112-1.118v-.566c0-.841.332-1.648.924-2.242a3.144 3.144 0 0 1 2.23-.929l-.015.011Z",
|
|
4662
|
+
fill: "#333"
|
|
4663
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4664
|
+
d: "M89.572 132.084s8.075.119 6.3-8.268c-1.775-8.387-12.188-15.351-15.234-6.066-3.046 9.285-1.386 15.232 8.934 14.334Z",
|
|
4665
|
+
fill: "#F2F2F2"
|
|
4666
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4667
|
+
d: "M106.67 121.334h-.27a2.84 2.84 0 0 1-1.925-1.025 2.872 2.872 0 0 1-.639-2.093c.285-3.059-1.92-8.708-3.38-11.551a2.873 2.873 0 0 1 1.296-3.721 2.832 2.832 0 0 1 2.102-.199 2.848 2.848 0 0 1 1.66 1.312c.463.906 4.521 8.991 3.988 14.714a2.874 2.874 0 0 1-.926 1.828 2.832 2.832 0 0 1-1.906.735Z",
|
|
4668
|
+
fill: "#4D4D4D"
|
|
4669
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4670
|
+
d: "M103.835 112.314c3.307 0 5.988-2.696 5.988-6.021 0-3.326-2.681-6.021-5.988-6.021-3.307 0-5.988 2.695-5.988 6.021 0 3.325 2.681 6.021 5.988 6.021Z",
|
|
4671
|
+
fill: "gray"
|
|
4672
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4673
|
+
d: "m117.408 133.652-12.674-.002c-.295 0-.577-.118-.786-.328a1.121 1.121 0 0 1-.325-.79v-3.726l11.773.002c.837 0 1.639.334 2.23.929s.923 1.401.923 2.242v.567a1.116 1.116 0 0 1-1.141 1.106Z",
|
|
4674
|
+
fill: "#333"
|
|
4675
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4676
|
+
d: "M106.414 132.084s-8.075.119-6.318-8.268c1.756-8.387 12.195-15.343 15.237-6.062 3.043 9.281 1.405 15.235-8.919 14.33Z",
|
|
4677
|
+
fill: "#F2F2F2"
|
|
4678
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4679
|
+
d: "M109.107 94.58a2.305 2.305 0 0 0 2.191 2.412 2.302 2.302 0 0 0 2.399-2.202l.333-7.33a2.306 2.306 0 0 0-2.191-2.412 2.303 2.303 0 0 0-2.4 2.203l-.332 7.328Z",
|
|
4680
|
+
fill: "gray"
|
|
4681
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4682
|
+
d: "M80.968 109.31c.478-.686.01-1.845-1.047-2.589-1.056-.744-2.3-.791-2.777-.105-.478.686-.01 1.845 1.046 2.589s2.3.791 2.778.105Z",
|
|
4683
|
+
fill: "#333"
|
|
4684
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4685
|
+
d: "M73.448 113.599c3.457 0 6.26-2.817 6.26-6.293 0-3.475-2.803-6.293-6.26-6.293-3.456 0-6.258 2.818-6.258 6.293 0 3.476 2.802 6.293 6.258 6.293Z",
|
|
4686
|
+
fill: "#333"
|
|
4687
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4688
|
+
d: "M78 100.968a2.853 2.853 0 0 1-2.832-2.484 2.876 2.876 0 0 1 .07-1.115c2.639-9.955 9.669-9.687 9.965-9.665l-.311 5.716h.104c-.12 0-2.854.134-4.255 5.421a2.87 2.87 0 0 1-1.013 1.53 2.845 2.845 0 0 1-1.729.597Z",
|
|
4689
|
+
fill: "#4D4D4D"
|
|
4690
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4691
|
+
d: "M87.37 88.17a2.305 2.305 0 0 0-2.19-2.413 2.302 2.302 0 0 0-2.4 2.202l-.332 7.329a2.305 2.305 0 0 0 2.19 2.413 2.302 2.302 0 0 0 2.4-2.203l.332-7.328Z",
|
|
4692
|
+
fill: "gray"
|
|
4693
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4694
|
+
d: "M81.893 100.503c.462-5.894-2.797-10.96-7.28-11.315-4.482-.356-8.49 4.134-8.953 10.027-.462 5.894 2.797 10.96 7.28 11.315 4.482.356 8.49-4.134 8.953-10.027Z",
|
|
4695
|
+
fill: "#F2F2F2"
|
|
4696
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4697
|
+
d: "M70.888 107.738c4.48.354 8.49-4.135 8.953-10.026a12.89 12.89 0 0 0-1.223-6.707c2.25 2.046 3.591 5.59 3.284 9.505-.464 5.895-4.47 10.384-8.953 10.027-2.594-.205-4.766-1.986-6.055-4.591a6.682 6.682 0 0 0 3.994 1.792Z",
|
|
4698
|
+
fill: "#E6E6E6"
|
|
4699
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4700
|
+
d: "M112.717 94.105c-.511-9.095-7.459-11.703-15.82-11.226-8.36.477-14.97 3.856-14.451 12.951.518 9.095 7.707 16.081 16.067 15.605 8.36-.477 14.719-8.231 14.204-17.33Z",
|
|
4701
|
+
fill: "#F2F2F2"
|
|
4702
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4703
|
+
d: "M112.565 92.656c-1.056 7.496-6.799 13.413-14.059 13.812-7.852.451-14.67-5.686-15.897-13.965a14.571 14.571 0 0 0-.17 3.327c.51 9.095 7.704 16.081 16.067 15.605 8.364-.477 14.723-8.235 14.211-17.33a16.83 16.83 0 0 0-.152-1.45Z",
|
|
4704
|
+
fill: "#E6E6E6"
|
|
4705
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4706
|
+
d: "M103.546 90.353H91.61a.62.62 0 0 0-.619.623v1.762a.62.62 0 0 0 .62.622h11.935a.62.62 0 0 0 .619-.622v-1.762a.62.62 0 0 0-.619-.623Zm0 5.187H91.61a.62.62 0 0 0-.619.622v1.762a.62.62 0 0 0 .62.623h11.935a.62.62 0 0 0 .619-.623v-1.762a.62.62 0 0 0-.619-.622Zm-.004 5.19H91.606a.62.62 0 0 0-.619.622v1.763a.62.62 0 0 0 .62.622h11.935a.62.62 0 0 0 .619-.622v-1.763a.62.62 0 0 0-.619-.622Z",
|
|
4707
|
+
fill: "#3690EA"
|
|
4708
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4709
|
+
d: "M89.317 121.331a2.836 2.836 0 0 1-1.92-.752 2.869 2.869 0 0 1-.911-1.857c-.534-5.726 3.527-13.808 3.99-14.713a2.849 2.849 0 0 1 1.666-1.413 2.835 2.835 0 0 1 2.172.185 2.86 2.86 0 0 1 1.405 1.675 2.876 2.876 0 0 1-.184 2.183c-1.46 2.843-3.669 8.492-3.383 11.551a2.868 2.868 0 0 1-1.504 2.797 2.84 2.84 0 0 1-1.064.318 1.378 1.378 0 0 1-.267.026Z",
|
|
4710
|
+
fill: "#4D4D4D"
|
|
4711
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4712
|
+
d: "M92.155 112.314c3.308 0 5.989-2.696 5.989-6.021 0-3.326-2.681-6.021-5.989-6.021-3.307 0-5.988 2.695-5.988 6.021 0 3.325 2.681 6.021 5.988 6.021Z",
|
|
4713
|
+
fill: "gray"
|
|
4714
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4715
|
+
d: "M80.597 128.771h11.769v3.726a1.118 1.118 0 0 1-1.112 1.118H78.57a1.118 1.118 0 0 1-1.112-1.118v-.566c0-.841.332-1.648.924-2.242a3.144 3.144 0 0 1 2.23-.929l-.015.011Z",
|
|
4716
|
+
fill: "#333"
|
|
4717
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4718
|
+
d: "M89.572 132.084s8.075.119 6.3-8.268c-1.775-8.387-12.188-15.351-15.234-6.066-3.046 9.285-1.386 15.232 8.934 14.334Z",
|
|
4719
|
+
fill: "#F2F2F2"
|
|
4720
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4721
|
+
d: "M106.67 121.334h-.27a2.84 2.84 0 0 1-1.925-1.025 2.872 2.872 0 0 1-.639-2.093c.285-3.059-1.92-8.708-3.38-11.551a2.873 2.873 0 0 1 1.296-3.721 2.832 2.832 0 0 1 2.102-.199 2.848 2.848 0 0 1 1.66 1.312c.463.906 4.521 8.991 3.988 14.714a2.874 2.874 0 0 1-.926 1.828 2.832 2.832 0 0 1-1.906.735Z",
|
|
4722
|
+
fill: "#4D4D4D"
|
|
4723
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4724
|
+
d: "M103.835 112.314c3.307 0 5.988-2.696 5.988-6.021 0-3.326-2.681-6.021-5.988-6.021-3.307 0-5.988 2.695-5.988 6.021 0 3.325 2.681 6.021 5.988 6.021Z",
|
|
4725
|
+
fill: "gray"
|
|
4726
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4727
|
+
d: "m117.408 133.652-12.674-.002c-.295 0-.577-.118-.786-.328a1.121 1.121 0 0 1-.325-.79v-3.726l11.773.002c.837 0 1.639.334 2.23.929s.923 1.401.923 2.242v.567a1.116 1.116 0 0 1-1.141 1.106Z",
|
|
4728
|
+
fill: "#333"
|
|
4729
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4730
|
+
d: "M106.414 132.084s-8.075.119-6.318-8.268c1.756-8.387 12.195-15.343 15.237-6.062 3.043 9.281 1.405 15.235-8.919 14.33Z",
|
|
4731
|
+
fill: "#F2F2F2"
|
|
4732
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4733
|
+
d: "M109.107 94.58a2.305 2.305 0 0 0 2.191 2.412 2.302 2.302 0 0 0 2.399-2.202l.333-7.33a2.306 2.306 0 0 0-2.191-2.412 2.303 2.303 0 0 0-2.4 2.203l-.332 7.328Z",
|
|
4734
|
+
fill: "gray"
|
|
4735
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4736
|
+
d: "M80.968 109.31c.478-.686.01-1.845-1.047-2.589-1.056-.744-2.3-.791-2.777-.105-.478.686-.01 1.845 1.046 2.589s2.3.791 2.778.105Z",
|
|
4737
|
+
fill: "#333"
|
|
4738
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4739
|
+
d: "M73.448 113.599c3.457 0 6.26-2.817 6.26-6.293 0-3.475-2.803-6.293-6.26-6.293-3.456 0-6.258 2.818-6.258 6.293 0 3.476 2.802 6.293 6.258 6.293Z",
|
|
4740
|
+
fill: "#333"
|
|
4741
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4742
|
+
d: "M78 100.968a2.853 2.853 0 0 1-2.832-2.484 2.876 2.876 0 0 1 .07-1.115c2.639-9.955 9.669-9.687 9.965-9.665l-.311 5.716h.104c-.12 0-2.854.134-4.255 5.421a2.87 2.87 0 0 1-1.013 1.53 2.845 2.845 0 0 1-1.729.597Z",
|
|
4743
|
+
fill: "#4D4D4D"
|
|
4744
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4745
|
+
d: "M87.37 88.17a2.305 2.305 0 0 0-2.19-2.413 2.302 2.302 0 0 0-2.4 2.202l-.332 7.329a2.305 2.305 0 0 0 2.19 2.413 2.302 2.302 0 0 0 2.4-2.203l.332-7.328Z",
|
|
4746
|
+
fill: "gray"
|
|
4747
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4748
|
+
d: "M81.893 100.503c.462-5.894-2.797-10.96-7.28-11.315-4.482-.356-8.49 4.134-8.953 10.027-.462 5.894 2.797 10.96 7.28 11.315 4.482.356 8.49-4.134 8.953-10.027Z",
|
|
4749
|
+
fill: "#F2F2F2"
|
|
4750
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4751
|
+
d: "M70.888 107.738c4.48.354 8.49-4.135 8.953-10.026a12.89 12.89 0 0 0-1.223-6.707c2.25 2.046 3.591 5.59 3.284 9.505-.464 5.895-4.47 10.384-8.953 10.027-2.594-.205-4.766-1.986-6.055-4.591a6.682 6.682 0 0 0 3.994 1.792Z",
|
|
4752
|
+
fill: "#E6E6E6"
|
|
4753
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4754
|
+
d: "M112.717 94.105c-.511-9.095-7.459-11.703-15.82-11.226-8.36.477-14.97 3.856-14.451 12.951.518 9.095 7.707 16.081 16.067 15.605 8.36-.477 14.719-8.231 14.204-17.33Z",
|
|
4755
|
+
fill: "#F2F2F2"
|
|
4756
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4757
|
+
d: "M112.565 92.656c-1.056 7.496-6.799 13.413-14.059 13.812-7.852.451-14.67-5.686-15.897-13.965a14.571 14.571 0 0 0-.17 3.327c.51 9.095 7.704 16.081 16.067 15.605 8.364-.477 14.723-8.235 14.211-17.33a16.83 16.83 0 0 0-.152-1.45Z",
|
|
4758
|
+
fill: "#E6E6E6"
|
|
4759
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4760
|
+
d: "M94.626 78.445c-.114-.488 6.548-.927 5.815.246v.775c0 .746.033 1.49.033 2.258s.037 1.595.044 2.392c.278.593-6.473.935-5.817-.115v-.67c-.015-1.63-.06-3.257-.075-4.886Z",
|
|
4761
|
+
fill: "#999"
|
|
4762
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4763
|
+
d: "M103.546 90.353H91.61a.62.62 0 0 0-.619.623v1.762a.62.62 0 0 0 .62.622h11.935a.62.62 0 0 0 .619-.622v-1.762a.62.62 0 0 0-.619-.623Zm0 5.187H91.61a.62.62 0 0 0-.619.622v1.762a.62.62 0 0 0 .62.623h11.935a.62.62 0 0 0 .619-.623v-1.762a.62.62 0 0 0-.619-.622Zm-.004 5.19H91.606a.62.62 0 0 0-.619.622v1.763a.62.62 0 0 0 .62.622h11.935a.62.62 0 0 0 .619-.622v-1.763a.62.62 0 0 0-.619-.622ZM55.773 64.004c4.349 0 7.874-5.285 7.874-11.804s-3.525-11.804-7.874-11.804-7.875 5.285-7.875 11.804c0 6.52 3.526 11.804 7.875 11.804Zm84.17.015c4.349 0 7.874-5.285 7.874-11.804 0-6.52-3.525-11.804-7.874-11.804s-7.875 5.285-7.875 11.804 3.526 11.804 7.875 11.804Z",
|
|
4764
|
+
fill: "#3690EA"
|
|
4765
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4766
|
+
d: "M97.962 29.036c7.273 0 13.17-2.224 13.17-4.967 0-2.743-5.897-4.966-13.17-4.966-7.274 0-13.17 2.223-13.17 4.966 0 2.743 5.896 4.967 13.17 4.967Z",
|
|
4767
|
+
fill: "#B3B3B3"
|
|
4768
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4769
|
+
d: "M97.962 16.55c4.545 0 8.23-3.705 8.23-8.275S102.507 0 97.962 0c-4.546 0-8.23 3.705-8.23 8.275s3.684 8.275 8.23 8.275Z",
|
|
4770
|
+
fill: "#3690EA"
|
|
4771
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4772
|
+
d: "M141.607 59.283V45.147a19.038 19.038 0 0 0-3.687-11.301 18.872 18.872 0 0 0-9.653-6.874c-8.838-2.69-19.203-4.24-30.29-4.244-11.088-.004-21.452 1.546-30.29 4.233a18.871 18.871 0 0 0-9.668 6.866 19.041 19.041 0 0 0-3.699 11.305v14.132a19.03 19.03 0 0 0 3.685 11.303 18.86 18.86 0 0 0 9.656 6.872c8.841 2.694 19.206 4.244 30.29 4.244 11.083 0 21.452-1.542 30.294-4.233a18.858 18.858 0 0 0 9.666-6.863 19.028 19.028 0 0 0 3.696-11.304Z",
|
|
4773
|
+
fill: "#F2F2F2"
|
|
4774
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4775
|
+
d: "M97.954 75.051c-10.068 0-19.88-1.371-28.381-3.957a12.353 12.353 0 0 1-6.262-4.485 12.463 12.463 0 0 1-2.41-7.34V45.131c.006-2.642.85-5.214 2.411-7.34a12.345 12.345 0 0 1 6.264-4.482c8.501-2.586 18.317-3.95 28.382-3.95 10.065 0 19.877 1.371 28.382 3.96a12.35 12.35 0 0 1 6.262 4.486 12.46 12.46 0 0 1 2.409 7.34V59.28a12.453 12.453 0 0 1-2.41 7.341 12.343 12.343 0 0 1-6.265 4.482c-8.486 2.585-18.317 3.949-28.382 3.949Z",
|
|
4776
|
+
fill: "#E6E6E6"
|
|
4777
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4778
|
+
d: "M100.863 15.992h-5.81v1.293h5.81v-1.293Z",
|
|
4779
|
+
fill: "#F2F2F2"
|
|
4780
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4781
|
+
d: "M76.472 66.05c4.327 0 7.834-6.2 7.834-13.846 0-7.647-3.507-13.846-7.834-13.846-4.326 0-7.833 6.2-7.833 13.846s3.507 13.845 7.833 13.845Z",
|
|
4782
|
+
fill: "#1A1A1A"
|
|
4783
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4784
|
+
d: "M77.844 52.766c1.743 0 3.157-2.088 3.157-4.664 0-2.577-1.414-4.665-3.157-4.665-1.744 0-3.157 2.088-3.157 4.665 0 2.576 1.413 4.664 3.157 4.664Z",
|
|
4785
|
+
fill: "#fff"
|
|
4786
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4787
|
+
d: "M118.662 66.057c4.326 0 7.834-6.2 7.834-13.846s-3.508-13.845-7.834-13.845c-4.327 0-7.834 6.199-7.834 13.845 0 7.647 3.507 13.846 7.834 13.846Z",
|
|
4788
|
+
fill: "#1A1A1A"
|
|
4789
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4790
|
+
d: "M120.032 52.774c1.744 0 3.157-2.089 3.157-4.665s-1.413-4.665-3.157-4.665c-1.743 0-3.157 2.089-3.157 4.665s1.414 4.665 3.157 4.665Z",
|
|
4791
|
+
fill: "#fff"
|
|
4792
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4793
|
+
d: "M92.674 63.11a10.286 10.286 0 0 0 7.949 1.095 13.2 13.2 0 0 0 2.623-1.118.738.738 0 0 1 1.035.639.748.748 0 0 1-.119.453c-2.224 2.82-6.474 3.625-9.672 2.12a7.284 7.284 0 0 1-2.75-2.12.748.748 0 0 1 .465-1.139.738.738 0 0 1 .469.054v.015Z",
|
|
4794
|
+
fill: "#999"
|
|
4795
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4796
|
+
d: "M55.773 64.004c4.349 0 7.874-5.285 7.874-11.804s-3.525-11.804-7.874-11.804-7.875 5.285-7.875 11.804c0 6.52 3.526 11.804 7.875 11.804Zm84.17.015c4.349 0 7.874-5.285 7.874-11.804 0-6.52-3.525-11.804-7.874-11.804s-7.875 5.285-7.875 11.804 3.526 11.804 7.875 11.804Z",
|
|
4797
|
+
fill: "#3690EA"
|
|
4798
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4799
|
+
d: "M95.008 14.315c-.115-.488 6.548-.932 5.815.246v.771c0 .745.033 1.51.037 2.262.003.752.033 1.594.04 2.392.282.592-6.474.935-5.818-.116v-.67c-.014-1.629-.055-3.257-.074-4.885Z",
|
|
4800
|
+
fill: "#F2F2F2"
|
|
4801
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4802
|
+
d: "M97.962 29.036c7.273 0 13.17-2.224 13.17-4.967 0-2.743-5.897-4.966-13.17-4.966-7.274 0-13.17 2.223-13.17 4.966 0 2.743 5.896 4.967 13.17 4.967Z",
|
|
4803
|
+
fill: "#B3B3B3"
|
|
4804
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4805
|
+
d: "M97.962 16.55c4.545 0 8.23-3.705 8.23-8.275S102.507 0 97.962 0c-4.546 0-8.23 3.705-8.23 8.275s3.684 8.275 8.23 8.275Z",
|
|
4806
|
+
fill: "#3690EA"
|
|
4807
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4808
|
+
d: "M141.607 59.283V45.147a19.038 19.038 0 0 0-3.687-11.301 18.872 18.872 0 0 0-9.653-6.874c-8.838-2.69-19.203-4.24-30.29-4.244-11.088-.004-21.452 1.546-30.29 4.233a18.871 18.871 0 0 0-9.668 6.866 19.041 19.041 0 0 0-3.699 11.305v14.132a19.03 19.03 0 0 0 3.685 11.303 18.86 18.86 0 0 0 9.656 6.872c8.841 2.694 19.206 4.244 30.29 4.244 11.083 0 21.452-1.542 30.294-4.233a18.858 18.858 0 0 0 9.666-6.863 19.028 19.028 0 0 0 3.696-11.304Z",
|
|
4809
|
+
fill: "#F2F2F2"
|
|
4810
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4811
|
+
d: "M97.954 75.051c-10.068 0-19.88-1.371-28.381-3.957a12.353 12.353 0 0 1-6.262-4.485 12.463 12.463 0 0 1-2.41-7.34V45.131c.006-2.642.85-5.214 2.411-7.34a12.345 12.345 0 0 1 6.264-4.482c8.501-2.586 18.317-3.95 28.382-3.95 10.065 0 19.877 1.371 28.382 3.96a12.35 12.35 0 0 1 6.262 4.486 12.46 12.46 0 0 1 2.409 7.34V59.28a12.453 12.453 0 0 1-2.41 7.341 12.343 12.343 0 0 1-6.265 4.482c-8.486 2.585-18.317 3.949-28.382 3.949Zm2.909-59.059h-5.81v1.293h5.81v-1.293Z",
|
|
4812
|
+
fill: "#E6E6E6"
|
|
4813
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4814
|
+
d: "M76.472 66.05c4.327 0 7.834-6.2 7.834-13.846 0-7.647-3.507-13.846-7.834-13.846-4.326 0-7.833 6.2-7.833 13.846s3.507 13.845 7.833 13.845Z",
|
|
4815
|
+
fill: "#1A1A1A"
|
|
4816
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4817
|
+
d: "M77.844 52.766c1.743 0 3.157-2.088 3.157-4.664 0-2.577-1.414-4.665-3.157-4.665-1.744 0-3.157 2.088-3.157 4.665 0 2.576 1.413 4.664 3.157 4.664Z",
|
|
4818
|
+
fill: "#fff"
|
|
4819
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4820
|
+
d: "M118.662 66.057c4.326 0 7.834-6.2 7.834-13.846s-3.508-13.845-7.834-13.845c-4.327 0-7.834 6.199-7.834 13.845 0 7.647 3.507 13.846 7.834 13.846Z",
|
|
4821
|
+
fill: "#1A1A1A"
|
|
4822
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4823
|
+
d: "M120.032 52.774c1.744 0 3.157-2.089 3.157-4.665s-1.413-4.665-3.157-4.665c-1.743 0-3.157 2.089-3.157 4.665s1.414 4.665 3.157 4.665Z",
|
|
4824
|
+
fill: "#fff"
|
|
4825
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4826
|
+
d: "M92.674 63.11a10.286 10.286 0 0 0 7.949 1.095 13.2 13.2 0 0 0 2.623-1.118.738.738 0 0 1 1.035.639.748.748 0 0 1-.119.453c-2.224 2.82-6.474 3.625-9.672 2.12a7.284 7.284 0 0 1-2.75-2.12.748.748 0 0 1 .465-1.139.738.738 0 0 1 .469.054v.015Z",
|
|
4827
|
+
fill: "#999"
|
|
4828
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4829
|
+
d: "M101.117 9.562a3.035 3.035 0 0 0 3.027-3.043 3.035 3.035 0 0 0-3.027-3.043A3.035 3.035 0 0 0 98.09 6.52a3.035 3.035 0 0 0 3.027 3.043ZM51.578 54.84c.801 0 1.45-1.64 1.45-3.66 0-2.023-.649-3.662-1.45-3.662-.802 0-1.451 1.64-1.451 3.661 0 2.022.65 3.66 1.45 3.66Zm93.429 0c.802 0 1.451-1.64 1.451-3.66 0-2.023-.649-3.662-1.451-3.662-.801 0-1.45 1.64-1.45 3.661 0 2.022.649 3.66 1.45 3.66Z",
|
|
4830
|
+
fill: "#4BAAF7"
|
|
4831
|
+
}), /*#__PURE__*/React__default.createElement("g", {
|
|
4832
|
+
clipPath: `url(#${id}-b)`
|
|
4833
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4834
|
+
d: "M52.39 160.841h-2.919a1.774 1.774 0 0 1-1.766-1.782v-7.334h9.035l-2.677 7.911a1.766 1.766 0 0 1-1.671 1.206l-.001-.001Zm91.774 0h2.919c.977 0 1.767-.799 1.767-1.782v-7.334h-9.036l2.677 7.911a1.767 1.767 0 0 0 1.672 1.206l.001-.001Z",
|
|
4835
|
+
fill: "#6D4932"
|
|
4836
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4837
|
+
d: "M163.181 108.015H33.375c-2.37 0-4.291 1.479-4.291 3.305v2.216c0 1.825 1.921 3.305 4.29 3.305h129.807c2.369 0 4.29-1.48 4.29-3.305v-2.216c0-1.826-1.921-3.305-4.29-3.305Z",
|
|
4838
|
+
fill: "#A87B5D"
|
|
4839
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4840
|
+
d: "M38.282 116.841h119.992v33.16c0 1.648-1.554 2.985-3.469 2.985H41.752c-1.915 0-3.468-1.337-3.468-2.985v-33.16h-.002Z",
|
|
4841
|
+
fill: "#916A50"
|
|
4842
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4843
|
+
opacity: ".3",
|
|
4844
|
+
d: "M131.002 109.794h-97.18a.996.996 0 0 0-.992 1.001c0 .552.444 1 .992 1h97.18a.996.996 0 0 0 .991-1 .996.996 0 0 0-.991-1.001Zm30.849 0h-24.24a.996.996 0 0 0-.992 1.001c0 .552.444 1 .992 1h24.24a.996.996 0 0 0 .992-1 .996.996 0 0 0-.992-1.001Z",
|
|
4845
|
+
fill: "#D4B097"
|
|
4846
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
4847
|
+
clipPath: `url(#${id}-c)`
|
|
4848
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4849
|
+
d: "M151.367 97.536h2.894c1.6 0 2.895 1.307 2.895 2.913a2.906 2.906 0 0 1-2.895 2.914h-2.894v-5.827Z",
|
|
4850
|
+
strokeWidth: "6",
|
|
4851
|
+
strokeMiterlimit: "10",
|
|
4852
|
+
stroke: `url(#${id}-d)`
|
|
4853
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4854
|
+
d: "M135.876 93.304h17.017a.6.6 0 0 1 .597.602v10.166c0 1.942-1.566 3.522-3.499 3.522h-11.214c-1.933 0-3.499-1.58-3.499-3.522V93.906a.6.6 0 0 1 .598-.602Z",
|
|
4855
|
+
fill: `url(#${id}-e)`
|
|
4856
|
+
})), /*#__PURE__*/React__default.createElement("path", {
|
|
4857
|
+
d: "m37.492 78.174 38.863-6.725a3.453 3.453 0 0 1 3.455 3.45v30.087H34.04V81.623a3.452 3.452 0 0 1 3.452-3.45Z",
|
|
4858
|
+
fill: `url(#${id}-f)`
|
|
4859
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4860
|
+
d: "M34.1 108.015v-3.363h57.697v3.363H34.1Z",
|
|
4861
|
+
fill: `url(#${id}-g)`
|
|
4862
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
4863
|
+
d: "M79.673 108.015v-3.363h12.124v3.363H79.673Z",
|
|
4864
|
+
fill: `url(#${id}-h)`
|
|
4865
|
+
})), /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4866
|
+
id: `${id}-d`,
|
|
4867
|
+
x1: "150.254",
|
|
4868
|
+
y1: "100.449",
|
|
4869
|
+
x2: "158.273",
|
|
4870
|
+
y2: "100.449",
|
|
4871
|
+
gradientUnits: "userSpaceOnUse"
|
|
4872
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4873
|
+
stopColor: "#FEFEFE"
|
|
4874
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4875
|
+
offset: "1",
|
|
4876
|
+
stopColor: "#fff"
|
|
4877
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4878
|
+
id: `${id}-e`,
|
|
4879
|
+
x1: "132.629",
|
|
4880
|
+
y1: "100.449",
|
|
4881
|
+
x2: "155.32",
|
|
4882
|
+
y2: "100.449",
|
|
4883
|
+
gradientUnits: "userSpaceOnUse"
|
|
4884
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4885
|
+
stopColor: "#FEFEFE"
|
|
4886
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4887
|
+
offset: "1",
|
|
4888
|
+
stopColor: "#F3F3F3"
|
|
4889
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4890
|
+
id: `${id}-f`,
|
|
4891
|
+
x1: "56.925",
|
|
4892
|
+
y1: "45.291",
|
|
4893
|
+
x2: "56.925",
|
|
4894
|
+
y2: "93.076",
|
|
4895
|
+
gradientUnits: "userSpaceOnUse"
|
|
4896
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4897
|
+
stopColor: "#FEFEFE"
|
|
4898
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4899
|
+
offset: "1",
|
|
4900
|
+
stopColor: "#D1D6E7"
|
|
4901
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4902
|
+
id: `${id}-g`,
|
|
4903
|
+
x1: "62.684",
|
|
4904
|
+
y1: "108.015",
|
|
4905
|
+
x2: "62.684",
|
|
4906
|
+
y2: "104.85",
|
|
4907
|
+
gradientUnits: "userSpaceOnUse"
|
|
4908
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4909
|
+
stopColor: "#D2D6E8"
|
|
4910
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4911
|
+
offset: ".726",
|
|
4912
|
+
stopColor: "#D1D6E7"
|
|
4913
|
+
})), /*#__PURE__*/React__default.createElement("linearGradient", {
|
|
4914
|
+
id: `${id}-h`,
|
|
4915
|
+
x1: "85.68",
|
|
4916
|
+
y1: "108.015",
|
|
4917
|
+
x2: "85.68",
|
|
4918
|
+
y2: "104.85",
|
|
4919
|
+
gradientUnits: "userSpaceOnUse"
|
|
4920
|
+
}, /*#__PURE__*/React__default.createElement("stop", {
|
|
4921
|
+
stopColor: "#D8DDF1"
|
|
4922
|
+
}), /*#__PURE__*/React__default.createElement("stop", {
|
|
4923
|
+
offset: ".726",
|
|
4924
|
+
stopColor: "#E2E6F6"
|
|
4925
|
+
})), /*#__PURE__*/React__default.createElement("clipPath", {
|
|
4926
|
+
id: `${id}-a`
|
|
4927
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4928
|
+
fill: "#fff",
|
|
4929
|
+
transform: "translate(12.006)",
|
|
4930
|
+
d: "M0 0h172v174H0z"
|
|
4931
|
+
})), /*#__PURE__*/React__default.createElement("clipPath", {
|
|
4932
|
+
id: `${id}-b`
|
|
4933
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4934
|
+
fill: "#fff",
|
|
4935
|
+
transform: "translate(29.084 105.073)",
|
|
4936
|
+
d: "M0 0h138.387v68.927H0z"
|
|
4937
|
+
})), /*#__PURE__*/React__default.createElement("clipPath", {
|
|
4938
|
+
id: `${id}-c`
|
|
4939
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
4940
|
+
fill: "#fff",
|
|
4941
|
+
transform: "translate(135.278 93.304)",
|
|
4942
|
+
d: "M0 0h22.995v14.29H0z"
|
|
4943
|
+
}))));
|
|
4944
|
+
}
|
|
4945
|
+
|
|
4946
|
+
var styles$f = {"blank_state":"blank_state-wMOWN","image":"image-uy0Fd"};
|
|
4947
|
+
|
|
4948
|
+
function BlankState$1({
|
|
4949
|
+
image,
|
|
4950
|
+
role,
|
|
4951
|
+
subtitle,
|
|
4952
|
+
title
|
|
4953
|
+
}) {
|
|
4954
|
+
return /*#__PURE__*/React__default.createElement(Flex, {
|
|
4955
|
+
role: role,
|
|
4956
|
+
className: styles$f.blank_state,
|
|
4957
|
+
direction: "column",
|
|
4958
|
+
align: "center",
|
|
4959
|
+
gap: 3
|
|
4960
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
4961
|
+
className: styles$f.image
|
|
4962
|
+
}, image), /*#__PURE__*/React__default.createElement(Flex, {
|
|
4963
|
+
direction: "column",
|
|
4964
|
+
align: "center",
|
|
4965
|
+
gap: 1
|
|
4966
|
+
}, /*#__PURE__*/React__default.createElement("h2", null, title), /*#__PURE__*/React__default.createElement("p", null, subtitle)));
|
|
4967
|
+
}
|
|
4189
4968
|
|
|
4190
4969
|
function EndOfResultsObserver({
|
|
4191
4970
|
onVisible
|
|
@@ -4205,39 +4984,98 @@ function EndOfResultsObserver({
|
|
|
4205
4984
|
|
|
4206
4985
|
const resultId = (listboxId, index) => `${listboxId}-result-${index}`;
|
|
4207
4986
|
|
|
4208
|
-
var styles$
|
|
4987
|
+
var styles$e = {"result":"result-Thq2C","title":"title-KYUEn","subtitle":"subtitle-R2haq","image":"image-KVDor","avatar":"avatar-6Gh62","photo":"photo-FZR3Q","badge":"badge-trUKt"};
|
|
4209
4988
|
|
|
4210
4989
|
function SearchResult({
|
|
4990
|
+
category,
|
|
4991
|
+
describedBy,
|
|
4211
4992
|
highlighted,
|
|
4212
4993
|
id,
|
|
4994
|
+
imageUrl,
|
|
4213
4995
|
onHighlight,
|
|
4996
|
+
product,
|
|
4214
4997
|
subtitle,
|
|
4215
4998
|
title,
|
|
4216
4999
|
url
|
|
4217
5000
|
}) {
|
|
4218
5001
|
const ref = React__default.useRef(null);
|
|
5002
|
+
// A hovered result is already under the pointer, and scrolling it clear of
|
|
5003
|
+
// the panel's scroll padding would slide the list out from under the mouse.
|
|
5004
|
+
const highlightedByPointer = React__default.useRef(false);
|
|
4219
5005
|
React__default.useEffect(() => {
|
|
4220
5006
|
var _a;
|
|
4221
|
-
if (highlighted)
|
|
4222
|
-
|
|
4223
|
-
|
|
5007
|
+
if (!highlighted) return;
|
|
5008
|
+
if (highlightedByPointer.current) {
|
|
5009
|
+
highlightedByPointer.current = false;
|
|
5010
|
+
} else {
|
|
5011
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
|
|
5012
|
+
block: "nearest"
|
|
5013
|
+
});
|
|
5014
|
+
}
|
|
4224
5015
|
}, [highlighted]);
|
|
5016
|
+
const highlightFromPointer = () => {
|
|
5017
|
+
if (highlighted) return;
|
|
5018
|
+
highlightedByPointer.current = true;
|
|
5019
|
+
onHighlight();
|
|
5020
|
+
};
|
|
4225
5021
|
// Focus stays in the search input, which points at the highlighted result
|
|
4226
5022
|
// with aria-activedescendant, so results are kept out of the tab order.
|
|
4227
5023
|
// Mouse move rather than enter: arrowing scrolls results under a resting
|
|
4228
5024
|
// pointer, and that shouldn't steal the highlight.
|
|
4229
|
-
return
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
5025
|
+
return (
|
|
5026
|
+
/*#__PURE__*/
|
|
5027
|
+
// Named by the title alone, so screen readers say "Ada Lovelace" rather
|
|
5028
|
+
// than the whole row. The section and subtitle are read after a pause.
|
|
5029
|
+
React__default.createElement("a", {
|
|
5030
|
+
"aria-describedby": [describedBy, subtitle && `${id}-subtitle`].filter(Boolean).join(" ") || undefined,
|
|
5031
|
+
"aria-labelledby": title ? `${id}-title` : undefined,
|
|
5032
|
+
"aria-selected": highlighted,
|
|
5033
|
+
className: styles$e.result,
|
|
5034
|
+
href: url,
|
|
5035
|
+
id: id,
|
|
5036
|
+
onMouseMove: highlightFromPointer,
|
|
5037
|
+
ref: ref,
|
|
5038
|
+
role: "option",
|
|
5039
|
+
tabIndex: -1
|
|
5040
|
+
}, /*#__PURE__*/React__default.createElement(ResultImage, {
|
|
5041
|
+
category: category,
|
|
5042
|
+
imageUrl: imageUrl,
|
|
5043
|
+
product: product
|
|
5044
|
+
}), /*#__PURE__*/React__default.createElement("span", {
|
|
5045
|
+
className: styles$e.title,
|
|
5046
|
+
id: `${id}-title`
|
|
5047
|
+
}, title), /*#__PURE__*/React__default.createElement("span", {
|
|
5048
|
+
className: styles$e.subtitle,
|
|
5049
|
+
id: `${id}-subtitle`
|
|
5050
|
+
}, subtitle))
|
|
5051
|
+
);
|
|
5052
|
+
}
|
|
5053
|
+
// A person's photo or the result's own image, badged with its product, or
|
|
5054
|
+
// just the product's logomark when there's no image.
|
|
5055
|
+
function ResultImage({
|
|
5056
|
+
category,
|
|
5057
|
+
imageUrl,
|
|
5058
|
+
product
|
|
5059
|
+
}) {
|
|
5060
|
+
const icon = size => isProductIconSlug(product) ? (/*#__PURE__*/React__default.createElement(ProductIcon, {
|
|
5061
|
+
size: size,
|
|
5062
|
+
slug: product
|
|
5063
|
+
})) : null;
|
|
5064
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
5065
|
+
"aria-hidden": true,
|
|
5066
|
+
className: styles$e.image
|
|
5067
|
+
}, imageUrl ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("img", {
|
|
5068
|
+
alt: "",
|
|
5069
|
+
className: category === "profile" ? styles$e.avatar : styles$e.photo,
|
|
5070
|
+
loading: "lazy",
|
|
5071
|
+
src: imageUrl
|
|
5072
|
+
}), /*#__PURE__*/React__default.createElement("span", {
|
|
5073
|
+
className: styles$e.badge
|
|
5074
|
+
}, icon(16)))) : icon("100%"));
|
|
4239
5075
|
}
|
|
4240
5076
|
|
|
5077
|
+
var styles$d = {"message":"message-1-PP-","heading":"heading-LioUF","group":"group-cKChg"};
|
|
5078
|
+
|
|
4241
5079
|
// Sections with a heading render as labelled groups; ones without render
|
|
4242
5080
|
// their items straight into the listbox. Indexes run across every section.
|
|
4243
5081
|
function ResultListbox({
|
|
@@ -4250,13 +5088,19 @@ function ResultListbox({
|
|
|
4250
5088
|
sections
|
|
4251
5089
|
}) {
|
|
4252
5090
|
let index = 0;
|
|
4253
|
-
|
|
5091
|
+
// With aria-activedescendant, screen readers don't reliably announce the
|
|
5092
|
+
// group a highlighted option is in, so each option names its heading too.
|
|
5093
|
+
const renderItem = (item, headingId) => {
|
|
4254
5094
|
const itemIndex = index++;
|
|
4255
5095
|
return /*#__PURE__*/React__default.createElement(SearchResult, {
|
|
5096
|
+
category: item.category,
|
|
5097
|
+
describedBy: headingId,
|
|
4256
5098
|
highlighted: itemIndex === highlightedIndex,
|
|
4257
5099
|
id: resultId(id, itemIndex),
|
|
5100
|
+
imageUrl: item.imageUrl,
|
|
4258
5101
|
key: item.key,
|
|
4259
5102
|
onHighlight: () => onHighlight(itemIndex),
|
|
5103
|
+
product: item.product,
|
|
4260
5104
|
subtitle: item.subtitle,
|
|
4261
5105
|
title: item.title,
|
|
4262
5106
|
url: item.url
|
|
@@ -4272,16 +5116,18 @@ function ResultListbox({
|
|
|
4272
5116
|
if (section.heading === undefined) {
|
|
4273
5117
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
4274
5118
|
key: section.key
|
|
4275
|
-
}, section.items.map(renderItem));
|
|
5119
|
+
}, section.items.map(item => renderItem(item)));
|
|
4276
5120
|
}
|
|
4277
5121
|
const headingId = `${id}-group-${sectionIndex}`;
|
|
4278
5122
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
4279
5123
|
"aria-labelledby": headingId,
|
|
5124
|
+
className: styles$d.group,
|
|
4280
5125
|
key: section.key,
|
|
4281
5126
|
role: "group"
|
|
4282
5127
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
5128
|
+
className: styles$d.heading,
|
|
4283
5129
|
id: headingId
|
|
4284
|
-
}, section.heading), section.items.map(renderItem));
|
|
5130
|
+
}, section.heading), section.items.map(item => renderItem(item, headingId)));
|
|
4285
5131
|
}));
|
|
4286
5132
|
}
|
|
4287
5133
|
|
|
@@ -4295,9 +5141,14 @@ function RecentlyVisited({
|
|
|
4295
5141
|
}) {
|
|
4296
5142
|
const headingId = `${navigation.id}-heading`;
|
|
4297
5143
|
if (items.length === 0 && !hasMore && !loading) {
|
|
4298
|
-
return /*#__PURE__*/React__default.createElement(
|
|
5144
|
+
return /*#__PURE__*/React__default.createElement(BlankState$1, {
|
|
5145
|
+
image: /*#__PURE__*/React__default.createElement(BlankStateRecentlyVisited, null),
|
|
5146
|
+
subtitle: "Pages you visit will show up here.",
|
|
5147
|
+
title: "Recently visited"
|
|
5148
|
+
});
|
|
4299
5149
|
} else {
|
|
4300
5150
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
5151
|
+
className: styles$d.heading,
|
|
4301
5152
|
id: headingId
|
|
4302
5153
|
}, "Recently visited"), /*#__PURE__*/React__default.createElement(ResultListbox, {
|
|
4303
5154
|
labelledBy: headingId,
|
|
@@ -4313,6 +5164,8 @@ function RecentlyVisited({
|
|
|
4313
5164
|
}
|
|
4314
5165
|
}
|
|
4315
5166
|
|
|
5167
|
+
var styles$c = {"row":"row-5P7UQ","header":"header-sXEyG","closeButton":"closeButton-rPJJV","input":"input-YQkTC","clearButton":"clearButton-9Yh9w"};
|
|
5168
|
+
|
|
4316
5169
|
// A combobox: focus stays here while aria-activedescendant points screen
|
|
4317
5170
|
// readers at the highlighted result in the listbox it controls.
|
|
4318
5171
|
function SearchInput({
|
|
@@ -4321,29 +5174,267 @@ function SearchInput({
|
|
|
4321
5174
|
inputRef,
|
|
4322
5175
|
listboxId,
|
|
4323
5176
|
onChange,
|
|
5177
|
+
onClose,
|
|
4324
5178
|
onFocus,
|
|
4325
5179
|
onKeyDown,
|
|
4326
5180
|
value
|
|
4327
5181
|
}) {
|
|
4328
|
-
|
|
5182
|
+
const {
|
|
5183
|
+
focusProps
|
|
5184
|
+
} = useKeyboardFocus({
|
|
5185
|
+
onFocus: (event, keyboard) => {
|
|
5186
|
+
// Tabbing in selects the whole term, which the next keystroke would
|
|
5187
|
+
// replace. Put the cursor after it instead, to keep typing. The
|
|
5188
|
+
// browser selects after the focus event, so this waits a frame and
|
|
5189
|
+
// only undoes that select-all: typing on the tabs moves focus here by
|
|
5190
|
+
// script, which keeps the cursor, and the keystroke may already be in.
|
|
5191
|
+
if (keyboard) {
|
|
5192
|
+
const input = event.currentTarget;
|
|
5193
|
+
requestAnimationFrame(() => {
|
|
5194
|
+
const length = input.value.length;
|
|
5195
|
+
const selectedAll = length > 0 && input.selectionStart === 0 && input.selectionEnd === length;
|
|
5196
|
+
if (document.activeElement !== input || !selectedAll) return;
|
|
5197
|
+
input.setSelectionRange(length, length);
|
|
5198
|
+
});
|
|
5199
|
+
}
|
|
5200
|
+
onFocus();
|
|
5201
|
+
}
|
|
5202
|
+
});
|
|
5203
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
5204
|
+
className: styles$c.row
|
|
5205
|
+
}, /*#__PURE__*/React__default.createElement("label", {
|
|
5206
|
+
className: styles$c.header
|
|
5207
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
5208
|
+
name: "general.search",
|
|
5209
|
+
size: 20,
|
|
5210
|
+
theme: "--t-icon-color-dim"
|
|
5211
|
+
}), /*#__PURE__*/React__default.createElement("input", {
|
|
4329
5212
|
"aria-activedescendant": highlightedIndex === null ? undefined : resultId(listboxId, highlightedIndex),
|
|
4330
5213
|
"aria-autocomplete": "list",
|
|
4331
5214
|
"aria-controls": expanded ? listboxId : undefined,
|
|
4332
5215
|
"aria-expanded": expanded,
|
|
4333
5216
|
"aria-label": "Search",
|
|
4334
5217
|
autoFocus: true,
|
|
5218
|
+
className: styles$c.input,
|
|
5219
|
+
id: "product_search",
|
|
4335
5220
|
onChange: event => onChange(event.target.value),
|
|
4336
|
-
onFocus: onFocus,
|
|
4337
5221
|
onKeyDown: onKeyDown,
|
|
4338
5222
|
placeholder: "Search",
|
|
4339
5223
|
ref: inputRef,
|
|
4340
5224
|
role: "combobox",
|
|
4341
5225
|
type: "search",
|
|
4342
|
-
value: value
|
|
4343
|
-
|
|
5226
|
+
value: value,
|
|
5227
|
+
...focusProps
|
|
5228
|
+
}), !onClose && value !== "" && (/*#__PURE__*/React__default.createElement("button", {
|
|
5229
|
+
"aria-label": "Clear search",
|
|
5230
|
+
className: styles$c.clearButton,
|
|
5231
|
+
onClick: () => {
|
|
5232
|
+
var _a;
|
|
5233
|
+
onChange("");
|
|
5234
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
5235
|
+
},
|
|
5236
|
+
tabIndex: -1,
|
|
5237
|
+
type: "button"
|
|
5238
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
5239
|
+
name: "general.smallX"
|
|
5240
|
+
})))), onClose && (/*#__PURE__*/React__default.createElement(IconButton, {
|
|
5241
|
+
"aria-label": "Close search",
|
|
5242
|
+
className: styles$c.closeButton,
|
|
5243
|
+
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
5244
|
+
name: "general.x",
|
|
5245
|
+
theme: "--t-icon-color-dim"
|
|
5246
|
+
}),
|
|
5247
|
+
kind: "ghost",
|
|
5248
|
+
onClick: onClose,
|
|
5249
|
+
size: "md"
|
|
5250
|
+
})));
|
|
5251
|
+
}
|
|
5252
|
+
|
|
5253
|
+
function BlankStateNoResults(props) {
|
|
5254
|
+
const id = useInstanceId("blank-state-no-results");
|
|
5255
|
+
return /*#__PURE__*/React__default.createElement("svg", {
|
|
5256
|
+
viewBox: "0 0 197 152",
|
|
5257
|
+
fill: "none",
|
|
5258
|
+
"aria-hidden": "true",
|
|
5259
|
+
focusable: "false",
|
|
5260
|
+
...props
|
|
5261
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
5262
|
+
d: "M139.863 19.971C150.801 30 161.64 40.126 172.775 50.055c8.376 7.374 21.975 15.829 23.157 28.02.592 6.095-2.167 11.994-5.321 17.205-24.635 40.8-81.098 67.148-127.412 48.862C32.553 132.049-12.973 96.754 3.483 59.1 19.348 22.724 68.323 4.044 87.44 1.39c21.876-4.62 34.883 2.458 52.423 18.581Z",
|
|
5263
|
+
fill: "currentColor"
|
|
5264
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5265
|
+
d: "M94.382 27.326c4.859 0 8.797-3.932 8.797-8.783 0-4.85-3.938-8.783-8.797-8.783-4.858 0-8.796 3.933-8.796 8.783 0 4.851 3.938 8.783 8.796 8.783Z",
|
|
5266
|
+
fill: "#3690EA"
|
|
5267
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5268
|
+
d: "M97.481 19.861a3.22 3.22 0 0 0 3.222-3.217 3.22 3.22 0 0 0-3.222-3.217 3.22 3.22 0 0 0-3.222 3.217 3.22 3.22 0 0 0 3.222 3.217Z",
|
|
5269
|
+
fill: "#4BAAF7"
|
|
5270
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5271
|
+
d: "M97.564 26.688h-6.248v3.565h6.248v-3.565Z",
|
|
5272
|
+
fill: "#F2F2F2"
|
|
5273
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5274
|
+
d: "M49.297 77.706c4.649 0 8.417-5.61 8.417-12.53 0-6.921-3.768-12.531-8.417-12.531s-8.417 5.61-8.417 12.53c0 6.92 3.768 12.531 8.417 12.531Zm89.958 0c4.649 0 8.417-5.61 8.417-12.53 0-6.921-3.768-12.531-8.417-12.531s-8.417 5.61-8.417 12.53c0 6.92 3.768 12.531 8.417 12.531Z",
|
|
5275
|
+
fill: "#3690EA"
|
|
5276
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5277
|
+
d: "M94.379 40.574c7.774 0 14.076-2.36 14.076-5.271 0-2.912-6.302-5.272-14.076-5.272-7.774 0-14.076 2.36-14.076 5.272 0 2.911 6.302 5.271 14.076 5.271Z",
|
|
5278
|
+
fill: "#B3B3B3"
|
|
5279
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5280
|
+
d: "M141.036 72.671V57.672a20.118 20.118 0 0 0-3.949-12 20.166 20.166 0 0 0-10.333-7.29c-9.448-2.852-20.529-4.497-32.379-4.497-11.849 0-22.926 1.645-32.374 4.497a20.167 20.167 0 0 0-10.331 7.29 20.117 20.117 0 0 0-3.95 12v15a20.112 20.112 0 0 0 3.949 12A20.163 20.163 0 0 0 62 91.962c9.448 2.856 20.53 4.496 32.375 4.496 11.844 0 22.93-1.64 32.378-4.496a20.153 20.153 0 0 0 10.333-7.289 20.107 20.107 0 0 0 3.949-12.002Z",
|
|
5281
|
+
fill: "#F2F2F2"
|
|
5282
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5283
|
+
d: "M94.387 89.422c-10.76 0-21.248-1.448-30.348-4.193a13.19 13.19 0 0 1-6.698-4.759 13.159 13.159 0 0 1-2.576-7.794v-15a13.163 13.163 0 0 1 2.577-7.793 13.196 13.196 0 0 1 6.697-4.76c9.082-2.744 19.574-4.193 30.348-4.193 10.773 0 21.248 1.449 30.348 4.194a13.2 13.2 0 0 1 6.701 4.757 13.17 13.17 0 0 1 2.582 7.795v15a13.164 13.164 0 0 1-2.577 7.794 13.195 13.195 0 0 1-6.697 4.759c-9.109 2.727-19.597 4.193-30.357 4.193Z",
|
|
5284
|
+
fill: "#E6E6E6"
|
|
5285
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5286
|
+
d: "M71.426 79.868c4.624 0 8.373-6.58 8.373-14.696s-3.749-14.696-8.373-14.696c-4.624 0-8.372 6.58-8.372 14.696 0 8.117 3.748 14.697 8.372 14.697Z",
|
|
5287
|
+
fill: "#1A1A1A"
|
|
5288
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5289
|
+
d: "M72.894 65.765c1.863 0 3.373-2.217 3.373-4.95 0-2.735-1.51-4.952-3.373-4.952-1.864 0-3.375 2.217-3.375 4.951 0 2.734 1.511 4.95 3.374 4.95Z",
|
|
5290
|
+
fill: "#fff"
|
|
5291
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5292
|
+
d: "M116.517 79.868c4.624 0 8.373-6.58 8.373-14.696s-3.749-14.696-8.373-14.696c-4.624 0-8.372 6.58-8.372 14.696 0 8.117 3.748 14.697 8.372 14.697Z",
|
|
5293
|
+
fill: "#1A1A1A"
|
|
5294
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5295
|
+
d: "M117.981 65.765c1.864 0 3.374-2.217 3.374-4.95 0-2.735-1.51-4.952-3.374-4.952-1.863 0-3.374 2.217-3.374 4.951 0 2.734 1.511 4.95 3.374 4.95Z",
|
|
5296
|
+
fill: "#fff"
|
|
5297
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5298
|
+
d: "M100.012 80.196a14.156 14.156 0 0 0-2.785-1.159 10.598 10.598 0 0 0-5.713 0 14.09 14.09 0 0 0-2.78 1.159h-.027a.773.773 0 0 1-.973-1.159 8.74 8.74 0 0 1 6.639-3.049 8.754 8.754 0 0 1 6.638 3.05.773.773 0 0 1-.977 1.158h-.022Z",
|
|
5299
|
+
fill: "#999"
|
|
5300
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5301
|
+
d: "M44.788 67.69c.853 0 1.545-1.731 1.545-3.867 0-2.137-.692-3.868-1.545-3.868-.852 0-1.544 1.731-1.544 3.867 0 2.137.691 3.868 1.544 3.868Zm99.38 0c.853 0 1.544-1.731 1.544-3.867 0-2.137-.691-3.868-1.544-3.868-.853 0-1.544 1.731-1.544 3.867 0 2.137.691 3.868 1.544 3.868Z",
|
|
5302
|
+
fill: "#4BAAF7"
|
|
5303
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5304
|
+
d: "M79.596 106.857s-13.835 0-13.835-18.752",
|
|
5305
|
+
strokeWidth: "13.63",
|
|
5306
|
+
strokeMiterlimit: "10",
|
|
5307
|
+
strokeLinecap: "round",
|
|
5308
|
+
stroke: "#4D4D4D"
|
|
5309
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5310
|
+
d: "M79.295 99.708h-.004a2.453 2.453 0 0 0-2.34 2.56l.353 7.781a2.453 2.453 0 0 0 2.564 2.337h.004a2.452 2.452 0 0 0 2.34-2.559l-.353-7.782a2.453 2.453 0 0 0-2.564-2.337Z",
|
|
5311
|
+
fill: "gray"
|
|
5312
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5313
|
+
d: "M109.137 104.385s3.851 3.681 10.947-1.181",
|
|
5314
|
+
strokeWidth: "13.63",
|
|
5315
|
+
strokeMiterlimit: "10",
|
|
5316
|
+
strokeLinecap: "round",
|
|
5317
|
+
stroke: "#4D4D4D"
|
|
5318
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5319
|
+
d: "m107.907 112.125.004.001a2.455 2.455 0 0 0 2.859-1.966l1.414-7.661a2.451 2.451 0 0 0-1.97-2.854h-.004a2.455 2.455 0 0 0-2.859 1.965l-1.413 7.661a2.45 2.45 0 0 0 1.969 2.854Z",
|
|
5320
|
+
fill: "gray"
|
|
5321
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5322
|
+
d: "M89.494 121.176s-4.44 8.569-3.936 13.934",
|
|
5323
|
+
strokeWidth: "13.63",
|
|
5324
|
+
strokeMiterlimit: "10",
|
|
5325
|
+
strokeLinecap: "round",
|
|
5326
|
+
stroke: "#4D4D4D"
|
|
5327
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5328
|
+
d: "M88.59 128.571c3.535 0 6.4-2.861 6.4-6.39a6.395 6.395 0 0 0-6.4-6.39 6.395 6.395 0 0 0-6.4 6.39 6.395 6.395 0 0 0 6.4 6.39Z",
|
|
5329
|
+
fill: "gray"
|
|
5330
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5331
|
+
d: "M76.233 146.043h12.585v3.966a1.205 1.205 0 0 1-1.205 1.204H74.068a1.205 1.205 0 0 1-1.205-1.204v-.601a3.367 3.367 0 0 1 .989-2.378 3.38 3.38 0 0 1 2.38-.987Z",
|
|
5332
|
+
fill: "#333"
|
|
5333
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5334
|
+
d: "M85.808 149.557s8.631.125 6.752-8.774c-1.878-8.899-13-16.291-16.263-6.434-3.262 9.857-1.499 16.166 9.511 15.208Z",
|
|
5335
|
+
fill: "#F2F2F2"
|
|
5336
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5337
|
+
d: "M100.159 121.176s4.463 8.569 3.937 13.934",
|
|
5338
|
+
strokeWidth: "13.63",
|
|
5339
|
+
strokeMiterlimit: "10",
|
|
5340
|
+
strokeLinecap: "round",
|
|
5341
|
+
stroke: "#4D4D4D"
|
|
5342
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5343
|
+
d: "M101.064 128.571c3.534 0 6.4-2.861 6.4-6.39 0-3.529-2.866-6.39-6.4-6.39a6.395 6.395 0 0 0-6.4 6.39 6.395 6.395 0 0 0 6.4 6.39Z",
|
|
5344
|
+
fill: "gray"
|
|
5345
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5346
|
+
d: "M115.584 151.216h-13.545a1.206 1.206 0 0 1-1.205-1.203v-3.98h12.586a3.37 3.37 0 0 1 3.374 3.369v.602a1.21 1.21 0 0 1-.745 1.121 1.23 1.23 0 0 1-.465.091Z",
|
|
5347
|
+
fill: "#333"
|
|
5348
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5349
|
+
d: "M103.838 149.557s-8.632.125-6.757-8.774c1.874-8.899 13.036-16.291 16.285-6.434 3.249 9.857 1.5 16.166-9.528 15.208Zm6.725-40.315c-.549-9.652-7.975-12.415-16.91-11.907-8.935.508-16.004 4.091-15.455 13.748.549 9.656 8.243 17.067 17.178 16.559 8.935-.508 15.736-8.743 15.187-18.4Z",
|
|
5350
|
+
fill: "#F2F2F2"
|
|
5351
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5352
|
+
d: "M110.402 107.707c-1.129 7.958-7.271 14.228-15.027 14.665-8.39.477-15.683-6.034-16.995-14.821a15.77 15.77 0 0 0-.183 3.533c.549 9.652 8.239 17.067 17.178 16.559 8.939-.508 15.736-8.742 15.174-18.399a14.03 14.03 0 0 0-.147-1.537Z",
|
|
5353
|
+
fill: "#E6E6E6"
|
|
5354
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5355
|
+
d: "M100.76 105.262H88a.66.66 0 0 0-.66.66v1.871c0 .365.296.66.66.66h12.76a.66.66 0 0 0 .66-.66v-1.871a.66.66 0 0 0-.66-.66Zm0 5.512H88a.66.66 0 0 0-.66.66v1.871c0 .364.296.66.66.66h12.76a.66.66 0 0 0 .66-.66v-1.871a.66.66 0 0 0-.66-.66Zm0 5.505H88a.66.66 0 0 0-.66.66v1.871c0 .364.296.66.66.66h12.76a.66.66 0 0 0 .66-.66v-1.871a.66.66 0 0 0-.66-.66Z",
|
|
5356
|
+
fill: "#3690EA"
|
|
5357
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5358
|
+
d: "M133.43 107.146c5.688-4.463 7.529-11.6 4.111-15.943-3.417-4.343-10.799-4.245-16.487.218-5.688 4.463-7.529 11.601-4.111 15.943 3.417 4.343 10.799 4.245 16.487-.218Z",
|
|
5359
|
+
fill: "#F2F2F2"
|
|
5360
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5361
|
+
d: "M136.74 95.34c-3.418-4.344-10.8-4.246-16.486.22a15.744 15.744 0 0 0-5.034 6.683c-.031-3.725 2.035-7.87 5.802-10.837 5.69-4.456 13.072-4.559 16.491-.218 1.972 2.508 2.182 5.953.919 9.273a8.246 8.246 0 0 0-1.692-5.12Z",
|
|
5362
|
+
fill: "#E6E6E6"
|
|
5363
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5364
|
+
d: "M127.405 89.78c1.87.546 3.824.751 5.766.605v0a16.153 16.153 0 0 0 9.056-3.631",
|
|
5365
|
+
strokeWidth: "13.63",
|
|
5366
|
+
strokeMiterlimit: "10",
|
|
5367
|
+
strokeLinecap: "round",
|
|
5368
|
+
stroke: "#333"
|
|
5369
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5370
|
+
d: "M79.875 85.766c2.25-7.476-.567-14.93-6.293-16.649-5.727-1.718-12.194 2.949-14.444 10.425-2.251 7.476.567 14.93 6.293 16.648 5.727 1.719 12.194-2.948 14.444-10.424Z",
|
|
5371
|
+
fill: "#F2F2F2"
|
|
5372
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5373
|
+
d: "M69.713 71.558c5.726 1.72 8.542 9.175 6.293 16.652a16.978 16.978 0 0 1-4.74 7.687c3.767-1.435 7.141-5.151 8.627-10.12 2.232-7.477-.567-14.932-6.293-16.648-3.311-.993-6.863.152-9.706 2.736 1.85-.75 3.9-.858 5.82-.307Z",
|
|
5374
|
+
fill: "#E6E6E6"
|
|
5375
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5376
|
+
d: "M77.006 68.04a6.195 6.195 0 0 1-4.269-1.866 6.176 6.176 0 0 1 0-8.623 6.195 6.195 0 0 1 4.27-1.867",
|
|
5377
|
+
strokeWidth: "13.63",
|
|
5378
|
+
strokeMiterlimit: "10",
|
|
5379
|
+
strokeLinecap: "round",
|
|
5380
|
+
stroke: "#333"
|
|
5381
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5382
|
+
d: "M81.567 54.262c-.103.03-.205.07-.303.106l-.304.112-.303.111-.3.112-.303.111c-.103.031-.2.071-.303.111-.103.04-.201.072-.304.108l-.299.11-.303.112-.304.112c-.102.03-.2.071-.303.111l-.3.107-.303.111-.303.112-.304.111c-.098.031-.2.072-.299.112-.098.04-.205.07-.303.111-.099.04-.201.071-.304.107l-.299.111-.303.112a5.63 5.63 0 0 0-3.824 4.578 5.62 5.62 0 0 0 1.101 4.178 5.578 5.578 0 0 0 2.754 1.956l.303.112.304.111.308.112.303.11.304.112.303.112.304.111.303.112.308.111.304.111.303.112.304.111c.102.036.2.076.303.107l.308.116c.098.036.2.076.303.107.103.031.201.08.304.111.103.031.2.08.303.112.103.03.201.08.304.111.103.031.2.08.303.111.103.032.206.08.308.112a8.12 8.12 0 0 0 10.027-3.863 8.087 8.087 0 0 0-2.619-10.407 8.117 8.117 0 0 0-7.479-.88v.004Z",
|
|
5383
|
+
fill: "#2278D6"
|
|
5384
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5385
|
+
d: "M97.105 47.237c-.192.062-.389.138-.58.21-.193.07-.393.142-.585.213-.192.072-.389.138-.585.214-.196.076-.388.138-.58.214-.192.076-.393.138-.585.214-.192.076-.388.138-.584.214-.197.076-.389.138-.585.214-.197.075-.388.138-.58.214-.192.075-.389.138-.585.213-.196.076-.388.139-.585.21-.196.071-.388.143-.58.214-.192.071-.392.138-.584.214-.192.075-.389.138-.585.214-.196.075-.388.138-.585.213-.196.076-.388.139-.58.214-.192.076-.393.139-.585.214-.191.076-.388.138-.584.214-.197.076-.389.138-.585.214-.196.076-.388.134-.58.21-.192.075-.388.138-.585.213a10.762 10.762 0 0 0-3.146 1.65 10.844 10.844 0 0 0-1.674 15.763 10.879 10.879 0 0 0 4.883 3.233c.196.075.388.151.589.213.2.063.388.152.585.214.196.063.392.152.589.219.196.067.388.147.584.214l.59.213c.196.076.388.152.589.214.2.063.388.152.584.214.197.063.388.152.59.214.2.063.388.152.584.219.196.066.388.147.59.213.2.067.387.148.584.214.196.067.388.147.589.214.2.067.388.152.584.214.197.063.393.152.59.214.196.062.388.151.584.218l.59.214c.196.072.388.147.584.214.196.067.393.147.59.214.196.067.387.151.588.214.201.062.388.151.585.214a15.669 15.669 0 0 0 14.439-1.806 15.624 15.624 0 0 0 6.706-12.895 15.597 15.597 0 0 0-1.829-7.256 15.659 15.659 0 0 0-19.454-7.244Z",
|
|
5386
|
+
fill: "#3690EA"
|
|
5387
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5388
|
+
d: "M119.065 37.388a25.93 25.93 0 0 0-.978.356c-.326.125-.651.232-.977.357-.326.125-.652.232-.978.356-.325.125-.651.232-.977.361-.326.13-.652.232-.977.357-.326.125-.652.232-.978.356-.326.125-.656.232-.977.357-.322.125-.656.232-.978.36-.321.13-.651.228-.977.357-.326.13-.656.232-.977.357-.322.124-.656.231-.978.356-.321.125-.656.232-.977.357-.321.125-.656.231-.977.36-.322.13-.657.228-.978.357-.321.13-.656.232-.977.357-.322.124-.656.231-.978.356-.321.125-.656.232-.982.361-.325.13-.651.227-.977.357-.326.129-.651.227-.973.356-.321.13-.656.232-.982.357a18.217 18.217 0 0 0-7.281 4.523A18.158 18.158 0 0 0 90.716 72.8a18.097 18.097 0 0 0 8.926 6.314c.326.13.651.254.986.361.335.107.652.254.982.361.33.107.652.25.986.36.335.112.647.25.982.357.335.107.652.254.982.361.33.107.652.25.986.361.335.112.652.25.982.357.33.107.652.254.986.36.335.108.648.25.982.362.335.111.652.25.982.356.33.107.652.254.986.361.335.107.652.25.982.361.331.111.652.25.982.357.33.106.656.253.986.36.331.107.652.254.982.361.331.107.652.25.987.361.334.112.651.25.981.357.331.107.652.254.987.36.334.108.647.25.982.362.334.111.651.25.981.356a26.26 26.26 0 0 0 24.2-3.02 26.2 26.2 0 0 0 8.29-9.42 26.147 26.147 0 0 0-.114-24.35 26.194 26.194 0 0 0-8.377-9.343 26.244 26.244 0 0 0-24.226-2.795l-.022.009Z",
|
|
5389
|
+
fill: "#50B0FF"
|
|
5390
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5391
|
+
d: "M128.994 80.692a18.926 18.926 0 0 1-11.736-4.091 18.853 18.853 0 0 1-5.352-22.825 18.889 18.889 0 0 1 8.696-8.867 18.93 18.93 0 0 1 22.967 4.864 18.856 18.856 0 0 1 .514 23.437 18.738 18.738 0 0 1-6.655 5.529 18.772 18.772 0 0 1-8.434 1.953Z",
|
|
5392
|
+
fill: "#D6DEE5"
|
|
5393
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5394
|
+
d: "M129.021 45.14a16.719 16.719 0 0 1 10.373 3.604 16.67 16.67 0 0 1 5.887 9.258 16.65 16.65 0 0 1-1.144 10.906 16.687 16.687 0 0 1-7.681 7.838 16.724 16.724 0 0 1-10.896 1.38 16.704 16.704 0 0 1-9.398-5.675 16.657 16.657 0 0 1-.449-20.708 16.64 16.64 0 0 1 13.322-6.604h-.014Zm.014-4.417a21.143 21.143 0 0 0-13.684 5.01 21.066 21.066 0 0 0-4.43 26.958 21.12 21.12 0 0 0 11.363 9.113 21.153 21.153 0 0 0 14.569-.404 21.113 21.113 0 0 0 10.84-9.728 21.063 21.063 0 0 0 1.948-14.422 21.086 21.086 0 0 0-7.869-12.249 20.973 20.973 0 0 0-12.737-4.278Z",
|
|
5395
|
+
fill: "#1B64CE"
|
|
5396
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5397
|
+
d: "M131.495 67.397c4.287 0 7.762-3.47 7.762-7.749 0-4.28-3.475-7.75-7.762-7.75-4.286 0-7.761 3.47-7.761 7.75 0 4.28 3.475 7.75 7.761 7.75Z",
|
|
5398
|
+
fill: "#fff"
|
|
5399
|
+
}), /*#__PURE__*/React__default.createElement("path", {
|
|
5400
|
+
d: "M137.039 56.638a3.996 3.996 0 0 0 3.999-3.993 3.996 3.996 0 0 0-3.999-3.992 3.996 3.996 0 0 0-3.999 3.992 3.996 3.996 0 0 0 3.999 3.993Z",
|
|
5401
|
+
fill: "#fff"
|
|
5402
|
+
}), /*#__PURE__*/React__default.createElement("mask", {
|
|
5403
|
+
id: `${id}-a`,
|
|
5404
|
+
style: {
|
|
5405
|
+
maskType: "alpha"
|
|
5406
|
+
},
|
|
5407
|
+
maskUnits: "userSpaceOnUse",
|
|
5408
|
+
x: "90",
|
|
5409
|
+
y: "96",
|
|
5410
|
+
width: "9",
|
|
5411
|
+
height: "4"
|
|
5412
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
5413
|
+
d: "M94.651 96.461c-1.785 0-3.26-.038-3.78-.038v2.897h7.14v-2.897c-.371 0-1.574.038-3.36.038Z",
|
|
5414
|
+
fill: "#000"
|
|
5415
|
+
})), /*#__PURE__*/React__default.createElement("g", {
|
|
5416
|
+
mask: `url(#${id}-a)`
|
|
5417
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
5418
|
+
d: "M94.51 95.545c-1.732.049-3.124.25-3.124.494v2.617c0 .245 1.392.446 3.124.495 1.731.049 3.124-.138 3.124-.384v-2.839c0-.245-1.393-.432-3.124-.383Z",
|
|
5419
|
+
fill: "#999"
|
|
5420
|
+
})));
|
|
4344
5421
|
}
|
|
4345
5422
|
|
|
4346
|
-
var styles$b = {"
|
|
5423
|
+
var styles$b = {"spinner":"spinner-b5tlz"};
|
|
5424
|
+
|
|
5425
|
+
function LoadingSpinner({
|
|
5426
|
+
size = 48,
|
|
5427
|
+
trackWidth = 6
|
|
5428
|
+
}) {
|
|
5429
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
5430
|
+
"aria-hidden": "true",
|
|
5431
|
+
className: styles$b.spinner,
|
|
5432
|
+
style: {
|
|
5433
|
+
"--spinner-size": `${size}px`,
|
|
5434
|
+
"--spinner-track-width": `${trackWidth}px`
|
|
5435
|
+
}
|
|
5436
|
+
});
|
|
5437
|
+
}
|
|
4347
5438
|
|
|
4348
5439
|
function SearchResults({
|
|
4349
5440
|
label,
|
|
@@ -4364,18 +5455,33 @@ function SearchResults({
|
|
|
4364
5455
|
...navigation
|
|
4365
5456
|
});
|
|
4366
5457
|
}
|
|
4367
|
-
return /*#__PURE__*/React__default.createElement(
|
|
4368
|
-
role: "status"
|
|
4369
|
-
|
|
5458
|
+
return /*#__PURE__*/React__default.createElement(Flex, {
|
|
5459
|
+
role: "status",
|
|
5460
|
+
justify: "center",
|
|
5461
|
+
align: "center",
|
|
5462
|
+
gap: 1,
|
|
5463
|
+
style: {
|
|
5464
|
+
color: "var(--t-text-color-placeholder)",
|
|
5465
|
+
fontSize: "var(--t-font-size-md)",
|
|
5466
|
+
marginTop: "var(--t-spacing-5)"
|
|
5467
|
+
}
|
|
5468
|
+
}, /*#__PURE__*/React__default.createElement(LoadingSpinner, {
|
|
5469
|
+
size: 28,
|
|
5470
|
+
trackWidth: 4
|
|
5471
|
+
}), "Searching\u2026");
|
|
4370
5472
|
case "error":
|
|
4371
5473
|
return /*#__PURE__*/React__default.createElement("p", {
|
|
5474
|
+
className: styles$d.message,
|
|
4372
5475
|
role: "alert"
|
|
4373
5476
|
}, "Search isn\u2019t working right now. Try again.");
|
|
4374
5477
|
case "done":
|
|
4375
5478
|
if (sections.length === 0) {
|
|
4376
|
-
return /*#__PURE__*/React__default.createElement(
|
|
4377
|
-
|
|
4378
|
-
|
|
5479
|
+
return /*#__PURE__*/React__default.createElement(BlankState$1, {
|
|
5480
|
+
image: /*#__PURE__*/React__default.createElement(BlankStateNoResults, null),
|
|
5481
|
+
role: "status",
|
|
5482
|
+
subtitle: "Clear search and try again.",
|
|
5483
|
+
title: `No results for “${term.trim()}”`
|
|
5484
|
+
});
|
|
4379
5485
|
}
|
|
4380
5486
|
return /*#__PURE__*/React__default.createElement(ResultListbox, {
|
|
4381
5487
|
busy: false,
|
|
@@ -4390,27 +5496,37 @@ function SearchResults({
|
|
|
4390
5496
|
// stays put as more recents load and as their lookups answer.
|
|
4391
5497
|
const RECENTS = "recents";
|
|
4392
5498
|
function SearchPanel({
|
|
5499
|
+
appName,
|
|
5500
|
+
mobile = false,
|
|
4393
5501
|
env,
|
|
5502
|
+
onClose,
|
|
4394
5503
|
products
|
|
4395
5504
|
}) {
|
|
4396
5505
|
var _a, _b;
|
|
4397
5506
|
const listboxId = useInstanceId("product-search-results");
|
|
4398
5507
|
const [term, setTerm] = React__default.useState("");
|
|
4399
|
-
const [selectedSlug, setSelectedSlug] = React__default.useState(() =>
|
|
5508
|
+
const [selectedSlug, setSelectedSlug] = React__default.useState(() => defaultProduct(products, appName).slug);
|
|
4400
5509
|
const product = (_a = products.find(({
|
|
4401
5510
|
slug
|
|
4402
5511
|
}) => slug === selectedSlug)) !== null && _a !== void 0 ? _a : products[0];
|
|
4403
5512
|
const hasTerm = term.trim() !== "";
|
|
4404
5513
|
const search = useProductSearch(product.slug, term);
|
|
4405
5514
|
const groups = "groups" in search ? search.groups : undefined;
|
|
4406
|
-
const
|
|
5515
|
+
const {
|
|
5516
|
+
organizationTimeZone
|
|
5517
|
+
} = useStore();
|
|
5518
|
+
const sections = React__default.useMemo(() => groupSections(groups, organizationTimeZone), [groups, organizationTimeZone]);
|
|
4407
5519
|
const {
|
|
4408
5520
|
visits,
|
|
4409
5521
|
...recents
|
|
4410
5522
|
} = useRecentVisits(env);
|
|
4411
|
-
const recentItems = visits.map(visitItem);
|
|
5523
|
+
const recentItems = visits.map(visit => visitItem(visit, organizationTimeZone));
|
|
4412
5524
|
const items = hasTerm ? sections.flatMap(section => section.items) : recentItems;
|
|
4413
|
-
|
|
5525
|
+
// Phones open results by tapping them, with no highlight to arrow through.
|
|
5526
|
+
// A narrow window with a keyboard and mouse keeps both, as does the desktop
|
|
5527
|
+
// layout on a touch device, whose keyboard hints still advertise them.
|
|
5528
|
+
const touchOnly = useMediaQuery("(hover: none) and (pointer: coarse)");
|
|
5529
|
+
const navigation = useResultNavigation(items, hasTerm ? sections : RECENTS, !(mobile && touchOnly));
|
|
4414
5530
|
const {
|
|
4415
5531
|
highlightedIndex
|
|
4416
5532
|
} = navigation;
|
|
@@ -4430,41 +5546,48 @@ function SearchPanel({
|
|
|
4430
5546
|
navigation.handleKeyDown(event);
|
|
4431
5547
|
}
|
|
4432
5548
|
};
|
|
4433
|
-
React__default.
|
|
4434
|
-
|
|
4435
|
-
|
|
5549
|
+
const results = hasTerm ? (/*#__PURE__*/React__default.createElement(SearchResults, {
|
|
5550
|
+
highlightedIndex: highlightedIndex,
|
|
5551
|
+
id: listboxId,
|
|
5552
|
+
label: `Results from Planning Center ${product.appName}`,
|
|
5553
|
+
onHighlight: navigation.highlightIndex,
|
|
5554
|
+
sections: sections,
|
|
5555
|
+
status: search.status,
|
|
5556
|
+
term: term
|
|
5557
|
+
})) : (/*#__PURE__*/React__default.createElement(RecentlyVisited, {
|
|
5558
|
+
highlightedIndex: highlightedIndex,
|
|
5559
|
+
id: listboxId,
|
|
5560
|
+
items: recentItems,
|
|
5561
|
+
onHighlight: navigation.highlightIndex,
|
|
5562
|
+
...recents
|
|
5563
|
+
}));
|
|
4436
5564
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput, {
|
|
4437
5565
|
expanded: items.length > 0,
|
|
4438
5566
|
highlightedIndex: highlightedIndex,
|
|
4439
5567
|
inputRef: inputRef,
|
|
4440
5568
|
listboxId: listboxId,
|
|
4441
5569
|
onChange: setTerm,
|
|
5570
|
+
onClose: onClose,
|
|
4442
5571
|
onFocus: () => setAnnounceHighlight(false),
|
|
4443
5572
|
onKeyDown: navigation.handleKeyDown,
|
|
4444
5573
|
value: term
|
|
4445
|
-
}), /*#__PURE__*/React__default.createElement(
|
|
5574
|
+
}), mobile ? (/*#__PURE__*/React__default.createElement(ProductSelect, {
|
|
5575
|
+
onSelect: setSelectedSlug,
|
|
5576
|
+
products: products,
|
|
5577
|
+
selected: product
|
|
5578
|
+
}, results)) : (/*#__PURE__*/React__default.createElement(ProductTabs, {
|
|
4446
5579
|
onKeyDown: handleTabsKeyDown,
|
|
4447
5580
|
onSelect: setSelectedSlug,
|
|
4448
5581
|
products: products,
|
|
4449
5582
|
selected: product
|
|
4450
|
-
},
|
|
4451
|
-
highlightedIndex: highlightedIndex,
|
|
4452
|
-
id: listboxId,
|
|
4453
|
-
label: `${product.appName} results`,
|
|
4454
|
-
onHighlight: navigation.highlightIndex,
|
|
4455
|
-
sections: sections,
|
|
4456
|
-
status: search.status,
|
|
4457
|
-
term: term
|
|
4458
|
-
})) : (/*#__PURE__*/React__default.createElement(RecentlyVisited, {
|
|
4459
|
-
highlightedIndex: highlightedIndex,
|
|
4460
|
-
id: listboxId,
|
|
4461
|
-
items: recentItems,
|
|
4462
|
-
onHighlight: navigation.highlightIndex,
|
|
4463
|
-
...recents
|
|
4464
|
-
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
5583
|
+
}, results)), /*#__PURE__*/React__default.createElement("div", {
|
|
4465
5584
|
"aria-live": "polite",
|
|
4466
|
-
className: styles$
|
|
4467
|
-
}, announceHighlight ? (_b = navigation.highlighted) === null || _b === void 0 ? void 0 : _b.title : null), /*#__PURE__*/React__default.createElement(
|
|
5585
|
+
className: styles$k.visuallyHidden
|
|
5586
|
+
}, announceHighlight ? (_b = navigation.highlighted) === null || _b === void 0 ? void 0 : _b.title : null), /*#__PURE__*/React__default.createElement("div", {
|
|
5587
|
+
"aria-live": "polite",
|
|
5588
|
+
className: styles$k.visuallyHidden,
|
|
5589
|
+
"data-testid": "result-count"
|
|
5590
|
+
}, hasTerm && search.status === "done" && items.length > 0 ? `${items.length} ${items.length === 1 ? "result" : "results"} for “${term.trim()}” in ${product.appName}` : null), mobile ? null : /*#__PURE__*/React__default.createElement(KeyboardHints, {
|
|
4468
5591
|
copied: navigation.copied
|
|
4469
5592
|
}));
|
|
4470
5593
|
}
|
|
@@ -4535,32 +5658,6 @@ function useSearchShortcut(enabled, open, setOpen) {
|
|
|
4535
5658
|
}, [enabled, open, setOpen]);
|
|
4536
5659
|
}
|
|
4537
5660
|
|
|
4538
|
-
const SEARCHABLE_PRODUCTS = [{
|
|
4539
|
-
appName: "Calendar",
|
|
4540
|
-
slug: "calendar"
|
|
4541
|
-
}, {
|
|
4542
|
-
appName: "Check-Ins",
|
|
4543
|
-
slug: "check-ins"
|
|
4544
|
-
}, {
|
|
4545
|
-
appName: "Giving",
|
|
4546
|
-
slug: "giving"
|
|
4547
|
-
}, {
|
|
4548
|
-
appName: "Groups",
|
|
4549
|
-
slug: "groups"
|
|
4550
|
-
}, {
|
|
4551
|
-
appName: "People",
|
|
4552
|
-
slug: "people"
|
|
4553
|
-
}, {
|
|
4554
|
-
appName: "Publishing",
|
|
4555
|
-
slug: "publishing"
|
|
4556
|
-
}, {
|
|
4557
|
-
appName: "Registrations",
|
|
4558
|
-
slug: "registrations"
|
|
4559
|
-
}, {
|
|
4560
|
-
appName: "Services",
|
|
4561
|
-
slug: "services"
|
|
4562
|
-
}];
|
|
4563
|
-
|
|
4564
5661
|
const PERMISSION_CHECKS = {
|
|
4565
5662
|
"check-ins": () => fetchMe("check-ins", "permission").then(({
|
|
4566
5663
|
permission
|
|
@@ -4665,24 +5762,59 @@ function inSwitcherOrder(apps) {
|
|
|
4665
5762
|
return groupApps(apps).restProducts.flatMap(app => SEARCHABLE_PRODUCTS.filter(product => product.appName === app.name));
|
|
4666
5763
|
}
|
|
4667
5764
|
|
|
5765
|
+
/**
|
|
5766
|
+
* Writes the height of the visible part of the page to the parent of `ref`'s
|
|
5767
|
+
* element as `--visual-viewport-height`. It shrinks when an on-screen keyboard
|
|
5768
|
+
* opens; `100dvh` doesn't, since mobile Safari draws the keyboard over it.
|
|
5769
|
+
*/
|
|
5770
|
+
function useVisualViewportHeight(ref, enabled) {
|
|
5771
|
+
React__default.useEffect(() => {
|
|
5772
|
+
var _a;
|
|
5773
|
+
const viewport = window.visualViewport;
|
|
5774
|
+
const parent = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5775
|
+
if (!enabled || !viewport || !parent) return undefined;
|
|
5776
|
+
const update = () => parent.style.setProperty("--visual-viewport-height", `${viewport.height}px`);
|
|
5777
|
+
update();
|
|
5778
|
+
viewport.addEventListener("resize", update);
|
|
5779
|
+
return () => {
|
|
5780
|
+
viewport.removeEventListener("resize", update);
|
|
5781
|
+
parent.style.removeProperty("--visual-viewport-height");
|
|
5782
|
+
};
|
|
5783
|
+
}, [enabled, ref]);
|
|
5784
|
+
}
|
|
5785
|
+
|
|
4668
5786
|
function ProductSearch({
|
|
5787
|
+
appName,
|
|
4669
5788
|
apps,
|
|
5789
|
+
mobile = false,
|
|
4670
5790
|
env
|
|
4671
5791
|
}) {
|
|
4672
5792
|
const searchable = useSearchableProducts(apps);
|
|
4673
5793
|
const [open, setOpen] = React__default.useState(false);
|
|
5794
|
+
const modalRef = React__default.useRef(null);
|
|
5795
|
+
// Sizes Tapestry's modal frame, the dialog's parent, to fit above the keyboard.
|
|
5796
|
+
useVisualViewportHeight(modalRef, mobile && open);
|
|
4674
5797
|
const available = searchable.status === "done" && searchable.products.length > 0;
|
|
4675
5798
|
useSearchShortcut(available, open, setOpen);
|
|
4676
5799
|
if (!available) return null;
|
|
4677
5800
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchButton, {
|
|
5801
|
+
mobile: mobile,
|
|
4678
5802
|
onClick: () => setOpen(true)
|
|
4679
5803
|
}), /*#__PURE__*/React__default.createElement(Modal, {
|
|
4680
5804
|
"aria-label": "Search",
|
|
5805
|
+
className: styles$k.modal,
|
|
4681
5806
|
dismissible: true,
|
|
5807
|
+
id: "product_search_modal",
|
|
4682
5808
|
onClose: () => setOpen(false),
|
|
4683
|
-
open: open
|
|
5809
|
+
open: open,
|
|
5810
|
+
ref: modalRef,
|
|
5811
|
+
size: "lg"
|
|
4684
5812
|
}, /*#__PURE__*/React__default.createElement(SearchPanel, {
|
|
5813
|
+
appName: appName,
|
|
5814
|
+
mobile: mobile,
|
|
4685
5815
|
env: env,
|
|
5816
|
+
// Phones have no Esc, so mobile search gets a close button.
|
|
5817
|
+
onClose: mobile ? () => setOpen(false) : undefined,
|
|
4686
5818
|
products: searchable.products
|
|
4687
5819
|
})));
|
|
4688
5820
|
}
|
|
@@ -4976,6 +6108,7 @@ const NotSmallTopbar = ({
|
|
|
4976
6108
|
margin: "auto"
|
|
4977
6109
|
}
|
|
4978
6110
|
}), !notificationsEnabled && notifications(), productSearchEnabled ? (/*#__PURE__*/React__default.createElement(ProductSearch, {
|
|
6111
|
+
appName: props.appName,
|
|
4979
6112
|
apps: props.apps,
|
|
4980
6113
|
env: props.env
|
|
4981
6114
|
})) : search({
|
|
@@ -32890,7 +34023,7 @@ ClientStorage.defaultProps = {
|
|
|
32890
34023
|
method: "localStorage"
|
|
32891
34024
|
};
|
|
32892
34025
|
|
|
32893
|
-
var styles$6 = {"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"};
|
|
34026
|
+
var styles$6 = {"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","actions":"actions-INQ7-","profile-button":"profile-button-a2WO2"};
|
|
32894
34027
|
|
|
32895
34028
|
function AccountSettingsLink({
|
|
32896
34029
|
env
|
|
@@ -33110,7 +34243,14 @@ const SmallTopbar = ({
|
|
|
33110
34243
|
setProductSwitcherVisible(false);
|
|
33111
34244
|
setRoutesMenuVisible(visible => !visible);
|
|
33112
34245
|
} : null
|
|
33113
|
-
}, /*#__PURE__*/React__default.createElement(CurrentRouteComponent, null, capitalize$1(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React__default.createElement("
|
|
34246
|
+
}, /*#__PURE__*/React__default.createElement(CurrentRouteComponent, null, capitalize$1(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React__default.createElement("div", {
|
|
34247
|
+
className: styles$6["actions"]
|
|
34248
|
+
}, productSearchEnabled && (/*#__PURE__*/React__default.createElement(ProductSearch, {
|
|
34249
|
+
appName: props.appName,
|
|
34250
|
+
apps: props.apps,
|
|
34251
|
+
mobile: true,
|
|
34252
|
+
env: props.env
|
|
34253
|
+
})), /*#__PURE__*/React__default.createElement("button", {
|
|
33114
34254
|
type: "button",
|
|
33115
34255
|
className: styles$6["profile-button"],
|
|
33116
34256
|
onClick: () => {
|
|
@@ -33121,7 +34261,7 @@ const SmallTopbar = ({
|
|
|
33121
34261
|
}, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
33122
34262
|
env: props.env,
|
|
33123
34263
|
url: props.userAvatarPath
|
|
33124
|
-
})));
|
|
34264
|
+
}))));
|
|
33125
34265
|
};
|
|
33126
34266
|
const SmallRoute = ({
|
|
33127
34267
|
active,
|
|
@@ -33611,38 +34751,6 @@ const SwitchView = ({
|
|
|
33611
34751
|
}));
|
|
33612
34752
|
};
|
|
33613
34753
|
|
|
33614
|
-
const collections = {
|
|
33615
|
-
general,
|
|
33616
|
-
toolbar
|
|
33617
|
-
};
|
|
33618
|
-
const paths = collections;
|
|
33619
|
-
function Icon({
|
|
33620
|
-
name,
|
|
33621
|
-
size = 16,
|
|
33622
|
-
style,
|
|
33623
|
-
theme,
|
|
33624
|
-
title,
|
|
33625
|
-
...props
|
|
33626
|
-
}) {
|
|
33627
|
-
const [collection, symbol] = name.split(".");
|
|
33628
|
-
return /*#__PURE__*/React__default.createElement("svg", {
|
|
33629
|
-
"aria-hidden": title ? undefined : true,
|
|
33630
|
-
fill: "currentColor",
|
|
33631
|
-
height: size,
|
|
33632
|
-
role: title ? "img" : undefined,
|
|
33633
|
-
style: {
|
|
33634
|
-
color: theme && `var(${theme})`,
|
|
33635
|
-
flexShrink: 0,
|
|
33636
|
-
...style
|
|
33637
|
-
},
|
|
33638
|
-
viewBox: "0 0 16 16",
|
|
33639
|
-
width: size,
|
|
33640
|
-
...props
|
|
33641
|
-
}, title && /*#__PURE__*/React__default.createElement("title", null, title), /*#__PURE__*/React__default.createElement("path", {
|
|
33642
|
-
d: paths[collection][symbol]
|
|
33643
|
-
}));
|
|
33644
|
-
}
|
|
33645
|
-
|
|
33646
34754
|
var styles$3 = {"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"};
|
|
33647
34755
|
|
|
33648
34756
|
const COLOR_MODES = [{
|
|
@@ -34427,7 +35535,8 @@ function AskAIButton({
|
|
|
34427
35535
|
onClick: () => onClick(),
|
|
34428
35536
|
type: "button"
|
|
34429
35537
|
}, /*#__PURE__*/React__default.createElement(SparkleIcon, {
|
|
34430
|
-
className: styles.sparkle
|
|
35538
|
+
className: styles.sparkle,
|
|
35539
|
+
fill: "currentColor"
|
|
34431
35540
|
}), /*#__PURE__*/React__default.createElement("span", {
|
|
34432
35541
|
className: styles.label
|
|
34433
35542
|
}, text));
|
|
@@ -34616,6 +35725,9 @@ function createPicobotIframe(picobotOrigin, {
|
|
|
34616
35725
|
// Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
|
|
34617
35726
|
// always reflects the live conversation. See buildPicobotSrc.
|
|
34618
35727
|
const [loadedPath, setLoadedPath] = React__default.useState(iframePath || "");
|
|
35728
|
+
// Hidden until picobot paints so its blank first frame doesn't flash
|
|
35729
|
+
// white against the drawer in dark mode.
|
|
35730
|
+
const [isReady, setIsReady] = React__default.useState(false);
|
|
34619
35731
|
const hasReportedErrorRef = React__default.useRef(false);
|
|
34620
35732
|
const loadTimeoutRef = React__default.useRef();
|
|
34621
35733
|
const reportLoadError = React__default.useCallback(() => {
|
|
@@ -34643,7 +35755,10 @@ function createPicobotIframe(picobotOrigin, {
|
|
|
34643
35755
|
setLoadedPath(reportedPath);
|
|
34644
35756
|
onIframeChangePath(reportedPath);
|
|
34645
35757
|
}
|
|
34646
|
-
if (((_c = e.data) === null || _c === void 0 ? void 0 : _c.type) === "READY")
|
|
35758
|
+
if (((_c = e.data) === null || _c === void 0 ? void 0 : _c.type) === "READY") {
|
|
35759
|
+
clearTimeout(loadTimeoutRef.current);
|
|
35760
|
+
setIsReady(true);
|
|
35761
|
+
}
|
|
34647
35762
|
if (onMessage) onMessage(e.data);
|
|
34648
35763
|
}
|
|
34649
35764
|
window.addEventListener("message", handleGuestMessage);
|
|
@@ -34653,12 +35768,15 @@ function createPicobotIframe(picobotOrigin, {
|
|
|
34653
35768
|
setLoadedPath(iframePath || "");
|
|
34654
35769
|
}, [iframePath]);
|
|
34655
35770
|
// A one-way channel for sending messages to picobot. Topbar just
|
|
34656
|
-
// forwards the envelope to the iframe
|
|
34657
|
-
//
|
|
35771
|
+
// forwards the envelope to the iframe—the consumer decides what to send
|
|
35772
|
+
// and when. The one exception is PANE_VISIBLE: Safari ignores focus()
|
|
35773
|
+
// from inside a cross-origin iframe, so the host has to focus the iframe
|
|
35774
|
+
// before picobot can focus its composer.
|
|
34658
35775
|
React__default.useImperativeHandle(ref, () => ({
|
|
34659
35776
|
postMessage(message) {
|
|
34660
|
-
var _a, _b;
|
|
34661
|
-
(
|
|
35777
|
+
var _a, _b, _c;
|
|
35778
|
+
if (message.type === "PANE_VISIBLE") (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
35779
|
+
(_c = (_b = iframeRef.current) === null || _b === void 0 ? void 0 : _b.contentWindow) === null || _c === void 0 ? void 0 : _c.postMessage(message, picobotOrigin);
|
|
34662
35780
|
}
|
|
34663
35781
|
}), []);
|
|
34664
35782
|
const iframeSrc = buildPicobotSrc(picobotOrigin, loadedPath, {
|
|
@@ -34672,6 +35790,7 @@ function createPicobotIframe(picobotOrigin, {
|
|
|
34672
35790
|
border: 0,
|
|
34673
35791
|
flex: 1,
|
|
34674
35792
|
height: "100%",
|
|
35793
|
+
visibility: isReady ? undefined : "hidden",
|
|
34675
35794
|
width: "100%"
|
|
34676
35795
|
},
|
|
34677
35796
|
title: "Picobot"
|
|
@@ -35400,6 +36519,7 @@ function PicobotComponent({
|
|
|
35400
36519
|
closeDrawer,
|
|
35401
36520
|
currentPath,
|
|
35402
36521
|
env,
|
|
36522
|
+
isOpen,
|
|
35403
36523
|
onChangePath,
|
|
35404
36524
|
openTool,
|
|
35405
36525
|
pending
|
|
@@ -35444,6 +36564,17 @@ function PicobotComponent({
|
|
|
35444
36564
|
}
|
|
35445
36565
|
clearPending();
|
|
35446
36566
|
}, [pending, isPicobotReady, clearPending]);
|
|
36567
|
+
// The drawer keeps the iframe mounted while it's closed, so picobot's
|
|
36568
|
+
// autofocus is spent by the time the panel reopens. READY gates the signal
|
|
36569
|
+
// because picobot has no listener before it.
|
|
36570
|
+
React__default.useEffect(function tellPicobotThePanelIsVisible() {
|
|
36571
|
+
var _a;
|
|
36572
|
+
if (isOpen && isPicobotReady) {
|
|
36573
|
+
(_a = picobotRef.current) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
36574
|
+
type: "PANE_VISIBLE"
|
|
36575
|
+
});
|
|
36576
|
+
}
|
|
36577
|
+
}, [isOpen, isPicobotReady]);
|
|
35447
36578
|
const [iframeErrored, setIframeErrored] = React__default.useState(false);
|
|
35448
36579
|
const [mountKey, setMountKey] = React__default.useState(0);
|
|
35449
36580
|
const handleRetry = React__default.useCallback(() => {
|
|
@@ -35960,6 +37091,11 @@ const Profile = {
|
|
|
35960
37091
|
};
|
|
35961
37092
|
|
|
35962
37093
|
const DURATION = 100;
|
|
37094
|
+
const TOOLBAR_DRAWER_CHANGE_EVENT = "topbar:toolbar-drawer-change";
|
|
37095
|
+
const CLOSED_TOOLBAR_DRAWER = {
|
|
37096
|
+
open: false,
|
|
37097
|
+
tool: null
|
|
37098
|
+
};
|
|
35963
37099
|
// Exempt paths match regardless of query, so `email?conversationId=…` is
|
|
35964
37100
|
// exempt along with `email`.
|
|
35965
37101
|
function isToolPathExemptFromStorage(toolName, path) {
|
|
@@ -36073,6 +37209,27 @@ function Toolbar({
|
|
|
36073
37209
|
delete window.openHelpdesk; /* TODO: Remove when products have migrated to window.topbar.openHelpdesk */
|
|
36074
37210
|
};
|
|
36075
37211
|
}, [Profile, openHelpdeskAtRoot]);
|
|
37212
|
+
const toolbarDrawerTool = open && currentContent ? currentContent.name.toLowerCase() : null;
|
|
37213
|
+
const lastToolbarDrawer = React__default.useRef(CLOSED_TOOLBAR_DRAWER);
|
|
37214
|
+
React__default.useEffect(() => {
|
|
37215
|
+
const toolbarDrawer = {
|
|
37216
|
+
open,
|
|
37217
|
+
tool: toolbarDrawerTool
|
|
37218
|
+
};
|
|
37219
|
+
window.topbar = window.topbar || {};
|
|
37220
|
+
window.topbar.toolbarDrawer = toolbarDrawer;
|
|
37221
|
+
const last = lastToolbarDrawer.current;
|
|
37222
|
+
if (last.open !== toolbarDrawer.open || last.tool !== toolbarDrawer.tool) {
|
|
37223
|
+
lastToolbarDrawer.current = toolbarDrawer;
|
|
37224
|
+
window.dispatchEvent(new CustomEvent(TOOLBAR_DRAWER_CHANGE_EVENT, {
|
|
37225
|
+
detail: toolbarDrawer
|
|
37226
|
+
}));
|
|
37227
|
+
}
|
|
37228
|
+
return () => {
|
|
37229
|
+
var _a;
|
|
37230
|
+
(_a = window.topbar) === null || _a === void 0 ? true : delete _a.toolbarDrawer;
|
|
37231
|
+
};
|
|
37232
|
+
}, [open, toolbarDrawerTool]);
|
|
36076
37233
|
const loginSettingsUrl = getLoginProfilePath({
|
|
36077
37234
|
appName: appName.replace(/[\s-]/, ""),
|
|
36078
37235
|
env: env,
|