@planningcenter/topbar 12.2.0 → 12.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4181,7 +4181,7 @@ var styles$1 = {"toolbar":"toolbar-KHJR5","toolbar-button":"toolbar-button-Ye4h5
4181
4181
 
4182
4182
  const pcoUrl = pcoUrl$1;
4183
4183
 
4184
- var styles = {"banner":"banner-YfQ37","content":"content-lNjWf","icon":"icon-abz7q","iconShape":"iconShape-6uyot","iconWand":"iconWand-yEhh4","text":"text--Vlhl","title":"title-zOEOR","subtitle":"subtitle-ufLnk","chevron":"chevron-oOUA-"};
4184
+ var styles = {"banner":"banner-YfQ37","content":"content-lNjWf","icon":"icon-abz7q","iconShape":"iconShape-6uyot","iconSparkle":"iconSparkle-t0OzK","text":"text--Vlhl","title":"title-zOEOR","subtitle":"subtitle-ufLnk","chevron":"chevron-oOUA-"};
4185
4185
 
4186
4186
  function AskAIBanner({
4187
4187
  onClick
@@ -4204,40 +4204,198 @@ function AskAIBanner({
4204
4204
  size: "16px"
4205
4205
  }));
4206
4206
  }
4207
- const GRADIENT_ID = "ask-ai-banner-icon-gradient";
4207
+ const SQUIRCLE_PATH = "M15.9994 0C3.19766 0 0 3.20025 0 16C0 28.7998 3.19766 32 15.9994 32C28.8011 32 32 28.8022 32 16C32 3.19779 28.7999 0 15.9994 0Z";
4208
+ const SQUIRCLE_BORDER_PATH = "M15.999 0.222656C22.4009 0.222656 26.3132 1.0274 28.6426 3.35645C30.972 5.68549 31.7773 9.59729 31.7773 16C31.7773 22.4025 30.9726 26.3145 28.6436 28.6436C26.3143 30.9726 22.4015 31.7773 15.999 31.7773C9.5968 31.7773 5.68536 30.9719 3.35645 28.6426C1.02748 26.3132 0.222656 22.4015 0.222656 16C0.222656 9.59851 1.02748 5.68678 3.35645 3.35742C5.68536 1.02814 9.5968 0.222687 15.999 0.222656Z";
4209
+ // Monotonic counter for per-instance SVG ids. useId would be tidier but isn't
4210
+ // available on React 17, which our peer range still supports.
4211
+ let iconInstanceCount = 0;
4208
4212
  function AskAIIcon() {
4213
+ const [uid] = useState(() => `ask-ai-icon-${iconInstanceCount++}`);
4214
+ const maskId = `${uid}-mask`;
4215
+ const blur = n => `${uid}-blur-${n}`;
4216
+ const borderA = `${uid}-border-a`;
4217
+ const borderB = `${uid}-border-b`;
4209
4218
  return /*#__PURE__*/React__default.createElement("span", {
4210
4219
  className: styles.icon
4211
4220
  }, /*#__PURE__*/React__default.createElement("svg", {
4212
4221
  className: styles.iconShape,
4213
4222
  viewBox: "0 0 32 32",
4223
+ fill: "none",
4214
4224
  "aria-hidden": "true"
4215
4225
  }, /*#__PURE__*/React__default.createElement("path", {
4216
- d: "M15.9994 0C3.19766 0 0 3.20025 0 16C0 28.7998 3.19766 32 15.9994 32C28.8011 32 32 28.8022 32 16C32 3.19779 28.7999 0 15.9994 0Z",
4217
- fill: `url(#${GRADIENT_ID})`
4218
- }), /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("linearGradient", {
4219
- id: GRADIENT_ID,
4220
- x1: "0",
4221
- y1: "0",
4222
- x2: "38.0356",
4223
- y2: "21.1413",
4226
+ d: SQUIRCLE_PATH,
4227
+ fill: "white"
4228
+ }), /*#__PURE__*/React__default.createElement("mask", {
4229
+ id: maskId,
4230
+ style: {
4231
+ maskType: "alpha"
4232
+ },
4233
+ maskUnits: "userSpaceOnUse",
4234
+ x: "0",
4235
+ y: "0",
4236
+ width: "32",
4237
+ height: "32"
4238
+ }, /*#__PURE__*/React__default.createElement("path", {
4239
+ d: SQUIRCLE_PATH,
4240
+ fill: "#939393"
4241
+ })), /*#__PURE__*/React__default.createElement("g", {
4242
+ mask: `url(#${maskId})`
4243
+ }, /*#__PURE__*/React__default.createElement("g", {
4244
+ filter: `url(#${blur(0)})`
4245
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4246
+ cx: "24.2268",
4247
+ cy: "23.7824",
4248
+ rx: "17.9331",
4249
+ ry: "31.1883",
4250
+ transform: "rotate(-135 24.2268 23.7824)",
4251
+ fill: "#B883E2"
4252
+ })), /*#__PURE__*/React__default.createElement("g", {
4253
+ filter: `url(#${blur(1)})`
4254
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4255
+ cx: "7.05187",
4256
+ cy: "9.27409",
4257
+ rx: "14.9017",
4258
+ ry: "29.437",
4259
+ transform: "rotate(45 7.05187 9.27409)",
4260
+ fill: "#74A3FF"
4261
+ })), /*#__PURE__*/React__default.createElement("g", {
4262
+ filter: `url(#${blur(2)})`
4263
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4264
+ cx: "29.7552",
4265
+ cy: "31.0886",
4266
+ rx: "11.2869",
4267
+ ry: "15.1567",
4268
+ transform: "rotate(-135 29.7552 31.0886)",
4269
+ fill: "#F28B54"
4270
+ })), /*#__PURE__*/React__default.createElement("g", {
4271
+ filter: `url(#${blur(3)})`
4272
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4273
+ cx: "3.58734",
4274
+ cy: "4.03178",
4275
+ rx: "11.2869",
4276
+ ry: "15.1567",
4277
+ transform: "rotate(45 3.58734 4.03178)",
4278
+ fill: "#24D7B7"
4279
+ })), /*#__PURE__*/React__default.createElement("g", {
4280
+ filter: `url(#${blur(4)})`
4281
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4282
+ cx: "32.0363",
4283
+ cy: "32.0363",
4284
+ rx: "5.65576",
4285
+ ry: "7.59487",
4286
+ transform: "rotate(-135 32.0363 32.0363)",
4287
+ fill: "#FFBC40"
4288
+ })), /*#__PURE__*/React__default.createElement("g", {
4289
+ filter: `url(#${blur(5)})`
4290
+ }, /*#__PURE__*/React__default.createElement("ellipse", {
4291
+ cx: "1.00513",
4292
+ cy: "-0.772657",
4293
+ rx: "5.1403",
4294
+ ry: "6.82216",
4295
+ transform: "rotate(-135 1.00513 -0.772657)",
4296
+ fill: "#70FFD4"
4297
+ })), /*#__PURE__*/React__default.createElement("path", {
4298
+ d: SQUIRCLE_BORDER_PATH,
4299
+ stroke: `url(#${borderA})`,
4300
+ strokeWidth: "0.444444"
4301
+ }), /*#__PURE__*/React__default.createElement("path", {
4302
+ d: SQUIRCLE_BORDER_PATH,
4303
+ stroke: `url(#${borderB})`,
4304
+ strokeWidth: "0.444444"
4305
+ })), /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("filter", {
4306
+ id: blur(0),
4307
+ x: "-20.7722",
4308
+ y: "-21.2166",
4309
+ width: "89.9981",
4310
+ height: "89.9981",
4311
+ filterUnits: "userSpaceOnUse",
4312
+ colorInterpolationFilters: "sRGB"
4313
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4314
+ stdDeviation: "9.77778"
4315
+ })), /*#__PURE__*/React__default.createElement("filter", {
4316
+ id: blur(1),
4317
+ x: "-35.839",
4318
+ y: "-33.6167",
4319
+ width: "85.7816",
4320
+ height: "85.7816",
4321
+ filterUnits: "userSpaceOnUse",
4322
+ colorInterpolationFilters: "sRGB"
4323
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4324
+ stdDeviation: "9.77778"
4325
+ })), /*#__PURE__*/React__default.createElement("filter", {
4326
+ id: blur(2),
4327
+ x: "-3.16378",
4328
+ y: "-1.83045",
4329
+ width: "65.838",
4330
+ height: "65.838",
4331
+ filterUnits: "userSpaceOnUse",
4332
+ colorInterpolationFilters: "sRGB"
4333
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4334
+ stdDeviation: "9.77778"
4335
+ })), /*#__PURE__*/React__default.createElement("filter", {
4336
+ id: blur(3),
4337
+ x: "-29.3317",
4338
+ y: "-28.8872",
4339
+ width: "65.838",
4340
+ height: "65.838",
4341
+ filterUnits: "userSpaceOnUse",
4342
+ colorInterpolationFilters: "sRGB"
4343
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4344
+ stdDeviation: "9.77778"
4345
+ })), /*#__PURE__*/React__default.createElement("filter", {
4346
+ id: blur(4),
4347
+ x: "16.4511",
4348
+ y: "16.4511",
4349
+ width: "31.1704",
4350
+ height: "31.1704",
4351
+ filterUnits: "userSpaceOnUse",
4352
+ colorInterpolationFilters: "sRGB"
4353
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4354
+ stdDeviation: "4.44444"
4355
+ })), /*#__PURE__*/React__default.createElement("filter", {
4356
+ id: blur(5),
4357
+ x: "-13.9242",
4358
+ y: "-15.7019",
4359
+ width: "29.8586",
4360
+ height: "29.8586",
4361
+ filterUnits: "userSpaceOnUse",
4362
+ colorInterpolationFilters: "sRGB"
4363
+ }, /*#__PURE__*/React__default.createElement("feGaussianBlur", {
4364
+ stdDeviation: "4.44444"
4365
+ })), /*#__PURE__*/React__default.createElement("linearGradient", {
4366
+ id: borderA,
4367
+ x1: "4.22222",
4368
+ y1: "2.44444",
4369
+ x2: "16",
4370
+ y2: "14.4444",
4224
4371
  gradientUnits: "userSpaceOnUse"
4225
4372
  }, /*#__PURE__*/React__default.createElement("stop", {
4226
- stopColor: "#49D4BB"
4373
+ stopColor: "#62FAFF"
4227
4374
  }), /*#__PURE__*/React__default.createElement("stop", {
4228
- offset: "0.352694",
4229
- stopColor: "#7CA8FE"
4230
- }), /*#__PURE__*/React__default.createElement("stop", {
4231
- offset: "0.656242",
4232
- stopColor: "#B883E2"
4375
+ offset: "1",
4376
+ stopColor: "#55AFD6",
4377
+ stopOpacity: "0"
4378
+ })), /*#__PURE__*/React__default.createElement("linearGradient", {
4379
+ id: borderB,
4380
+ x1: "28.4444",
4381
+ y1: "29.3333",
4382
+ x2: "22.8889",
4383
+ y2: "22.4444",
4384
+ gradientUnits: "userSpaceOnUse"
4385
+ }, /*#__PURE__*/React__default.createElement("stop", {
4386
+ stopColor: "#FFA961"
4233
4387
  }), /*#__PURE__*/React__default.createElement("stop", {
4234
4388
  offset: "1",
4235
- stopColor: "#F28B54"
4236
- })))), /*#__PURE__*/React__default.createElement(Icon, {
4237
- className: styles.iconWand,
4238
- name: "general.magicWand",
4239
- size: "18px"
4240
- }));
4389
+ stopColor: "#D48B91",
4390
+ stopOpacity: "0"
4391
+ })))), /*#__PURE__*/React__default.createElement("svg", {
4392
+ className: styles.iconSparkle,
4393
+ viewBox: "0 0 19.4995 17.9999",
4394
+ "aria-hidden": "true"
4395
+ }, /*#__PURE__*/React__default.createElement("path", {
4396
+ d: "M2.71191 12.2002C2.81068 11.9333 3.18834 11.9333 3.2871 12.2002L3.84375 13.7031C3.92138 13.9129 4.08707 14.0786 4.29687 14.1562L5.7998 14.7119C6.06662 14.8107 6.06648 15.1882 5.7998 15.2871L4.29687 15.8437C4.08707 15.9214 3.92138 16.0871 3.84375 16.2969L3.2871 17.7998C3.18821 18.0665 2.81066 18.0666 2.71191 17.7998L2.15625 16.2969C2.07861 16.0871 1.91292 15.9214 1.70312 15.8437L0.200191 15.2871C-0.0667302 15.1883 -0.0667302 14.8107 0.200191 14.7119L1.70312 14.1562C1.91292 14.0786 2.07861 13.9129 2.15625 13.7031L2.71191 12.2002ZM11.2812 2C11.5283 1.33313 12.4717 1.33305 12.7187 2L14.1094 5.75878C14.3035 6.28304 14.7169 6.69659 15.2412 6.89062L18.999 8.28125C19.6663 8.52817 19.6663 9.47182 18.999 9.71875L15.2412 11.1094C14.7168 11.3035 14.3035 11.7168 14.1094 12.2412L12.7187 15.999C12.4718 16.6663 11.5282 16.6663 11.2812 15.999L9.89062 12.2412C9.69659 11.7169 9.28304 11.3035 8.75878 11.1094L5 9.71875C4.33305 9.47173 4.33312 8.52834 5 8.28125L8.75878 6.89062C9.28299 6.69653 9.69653 6.28299 9.89062 5.75878L11.2812 2ZM2.71191 0.200191C2.81068 -0.0667302 3.18834 -0.0667302 3.2871 0.200191L3.84375 1.70312C3.92138 1.91292 4.08707 2.07861 4.29687 2.15625L5.7998 2.71191C6.06662 2.81066 6.06648 3.18821 5.7998 3.2871L4.29687 3.84375C4.08707 3.92138 3.92138 4.08707 3.84375 4.29687L3.2871 5.7998C3.18821 6.06648 2.81066 6.06662 2.71191 5.7998L2.15625 4.29687C2.07861 4.08707 1.91292 3.92138 1.70312 3.84375L0.200191 3.2871C-0.0667302 3.18834 -0.0667302 2.81068 0.200191 2.71191L1.70312 2.15625C1.91292 2.07861 2.07861 1.91292 2.15625 1.70312L2.71191 0.200191Z",
4397
+ fill: "currentColor"
4398
+ })));
4241
4399
  }
4242
4400
 
4243
4401
  // The article heading lives in the deepest populated hierarchy level (lvl0 is
@@ -4403,6 +4561,7 @@ function buildPicobotSrc(origin, path) {
4403
4561
  return fragment ? `${base}#${fragment}` : base;
4404
4562
  }
4405
4563
 
4564
+ const LOAD_TIMEOUT_MS = 3000;
4406
4565
  function createPicobotIframe(picobotOrigin) {
4407
4566
  return /*#__PURE__*/React__default.forwardRef(function PicobotIframe({
4408
4567
  currentPath: iframePath,
@@ -4414,10 +4573,25 @@ function createPicobotIframe(picobotOrigin) {
4414
4573
  // Contact support) and picobot's own NEW_ROUTE_RENDERED reports—so it
4415
4574
  // always reflects the live conversation. See buildPicobotSrc.
4416
4575
  const [loadedPath, setLoadedPath] = React__default.useState(iframePath || "");
4576
+ const hasReportedErrorRef = React__default.useRef(false);
4577
+ const loadTimeoutRef = React__default.useRef();
4578
+ const reportLoadError = React__default.useCallback(() => {
4579
+ if (hasReportedErrorRef.current) return;
4580
+ hasReportedErrorRef.current = true;
4581
+ onMessage === null || onMessage === void 0 ? void 0 : onMessage({
4582
+ type: "IFRAME_LOAD_ERROR"
4583
+ });
4584
+ }, [onMessage]);
4585
+ const reportLoadErrorRef = React__default.useRef(reportLoadError);
4586
+ reportLoadErrorRef.current = reportLoadError;
4587
+ React__default.useEffect(function armLoadTimeoutOnMount() {
4588
+ const timeout = setTimeout(() => reportLoadErrorRef.current(), LOAD_TIMEOUT_MS);
4589
+ loadTimeoutRef.current = timeout;
4590
+ return () => clearTimeout(timeout);
4591
+ }, []);
4417
4592
  React__default.useEffect(function subscribeToGuestMessages() {
4418
- if (!onIframeChangePath && !onMessage) return undefined;
4419
4593
  function handleGuestMessage(e) {
4420
- var _a, _b;
4594
+ var _a, _b, _c;
4421
4595
  if (e.origin !== picobotOrigin) return;
4422
4596
  if (!e.source || !iframeRef.current) return;
4423
4597
  if (e.source !== iframeRef.current.contentWindow) return;
@@ -4426,6 +4600,7 @@ function createPicobotIframe(picobotOrigin) {
4426
4600
  setLoadedPath(reportedPath);
4427
4601
  onIframeChangePath(reportedPath);
4428
4602
  }
4603
+ if (((_c = e.data) === null || _c === void 0 ? void 0 : _c.type) === "READY") clearTimeout(loadTimeoutRef.current);
4429
4604
  if (onMessage) onMessage(e.data);
4430
4605
  }
4431
4606
  window.addEventListener("message", handleGuestMessage);