@flamingo-stack/openframe-frontend-core 0.0.852 → 0.0.854
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/build/export-map.json +1 -1
- package/dist/{chunk-G7GF4PWA.cjs → chunk-2IJMHBOK.cjs} +3 -3
- package/dist/{chunk-IC4IJJB2.cjs → chunk-3WXHPD6N.cjs} +55 -55
- package/dist/{chunk-UV45EPXN.cjs → chunk-4LTLEUY5.cjs} +5 -5
- package/dist/{chunk-BNHTBLAG.cjs → chunk-4O5N5CGK.cjs} +17 -17
- package/dist/{chunk-COWMXUHN.cjs → chunk-4SSJ3T3N.cjs} +3 -1
- package/dist/{chunk-IUDBG3HJ.cjs → chunk-5HMENXSR.cjs} +3 -3
- package/dist/{chunk-COJG2ATY.cjs → chunk-5OENPMRU.cjs} +43 -43
- package/dist/{chunk-IO6NN3SL.cjs → chunk-5TXE7BXT.cjs} +46 -46
- package/dist/{chunk-EIACEY2L.cjs → chunk-63ZV3UGG.cjs} +10 -10
- package/dist/{chunk-HTYJUMFB.cjs → chunk-6DCUGIGU.cjs} +2 -2
- package/dist/{chunk-GEZ3UXCA.cjs → chunk-6XU3RCK3.cjs} +18 -18
- package/dist/{chunk-3ZQESOPJ.cjs → chunk-7J5NSWJG.cjs} +87 -87
- package/dist/{chunk-MXY2OGEV.cjs → chunk-7MOBD44H.cjs} +28 -28
- package/dist/{chunk-U767P4JU.cjs → chunk-ACPOJE32.cjs} +9 -9
- package/dist/{chunk-CHGIACIP.cjs → chunk-BAA3YCLT.cjs} +72 -72
- package/dist/{chunk-VUHHLRAY.cjs → chunk-D2XGRWPW.cjs} +73 -73
- package/dist/{chunk-5RMBLOJ5.cjs → chunk-EIHMPQRQ.cjs} +9 -9
- package/dist/{chunk-3SJVF3HW.cjs → chunk-ETQNMR2K.cjs} +5 -5
- package/dist/{chunk-2W22LY3W.cjs → chunk-FBANHIAG.cjs} +9 -9
- package/dist/{chunk-P63CRPWI.cjs → chunk-FJXSKMQJ.cjs} +20 -20
- package/dist/{chunk-QOW2GP3V.cjs → chunk-GVHCQRUE.cjs} +21 -21
- package/dist/{chunk-KNN2GCMW.cjs → chunk-H3GBPYPS.cjs} +18 -18
- package/dist/{chunk-FW7RKWPY.cjs → chunk-JKBNK5U6.cjs} +3 -3
- package/dist/{chunk-W7OFAROY.cjs → chunk-KA3L6D5N.cjs} +3 -3
- package/dist/{chunk-USPUZO53.cjs → chunk-LQDAB5V5.cjs} +4 -4
- package/dist/{chunk-KHOB3TES.cjs → chunk-ONYANAMA.cjs} +4 -4
- package/dist/{chunk-D3H6AI7O.cjs → chunk-PRJZMZ3X.cjs} +1182 -746
- package/dist/chunk-QD727QFI.cjs +62 -0
- package/dist/{chunk-X3WIOMEE.cjs → chunk-RMI6O3AE.cjs} +32 -32
- package/dist/{chunk-MFDRCTM3.cjs → chunk-S5P6CF5R.cjs} +47 -47
- package/dist/{chunk-477P6AQH.cjs → chunk-TMPLHUUU.cjs} +6 -6
- package/dist/{chunk-UO2EJGRJ.cjs → chunk-UPQ4MAR7.cjs} +14 -14
- package/dist/{chunk-LFEURIZN.cjs → chunk-VMAOZA2V.cjs} +215 -215
- package/dist/{chunk-NMWLXHFH.cjs → chunk-YY3WP2YQ.cjs} +30 -30
- package/dist/{chunk-WFAZMASF.cjs → chunk-ZDPPNHA2.cjs} +3 -3
- package/dist/{cloud-tenants-O33HCUYB.cjs → cloud-tenants-5RNK4ZAT.cjs} +19 -19
- package/dist/components/case-studies/index.cjs +33 -33
- package/dist/components/chat/index.cjs +13 -13
- package/dist/components/contact/index.cjs +20 -20
- package/dist/components/docs/index.cjs +23 -23
- package/dist/components/embeds/index.cjs +20 -20
- package/dist/components/faq/index.cjs +21 -21
- package/dist/components/features/cloud-tenants/index.d.ts +7 -5
- package/dist/components/features/cloud-tenants/index.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/index.js +8 -1
- package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts +26 -0
- package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.js +176 -0
- package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +4 -2
- package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-access-cell.js +3 -2
- package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +12 -5
- package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-customer-cell.js +38 -7
- package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts +7 -0
- package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts.map +1 -0
- package/dist/components/features/cloud-tenants/tenant-licenses-cell.js +17 -0
- package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +19 -0
- package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenant-presentation.js +24 -3
- package/dist/components/features/cloud-tenants/tenant-row.d.ts +35 -8
- package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +9 -3
- package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenants-table-columns.js +5 -3
- package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +27 -6
- package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -1
- package/dist/components/features/cloud-tenants/tenants-table-view.js +75 -17
- package/dist/components/features/devices/device-directory.d.ts +18 -0
- package/dist/components/features/devices/device-directory.d.ts.map +1 -0
- package/dist/components/features/devices/device-directory.js +35 -0
- package/dist/components/features/devices/devices-filter-toolbar.d.ts +3 -1
- package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -1
- package/dist/components/features/devices/devices-filter-toolbar.js +2 -1
- package/dist/components/features/devices/devices-panel-view.d.ts +3 -1
- package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
- package/dist/components/features/devices/devices-panel-view.js +11 -2
- package/dist/components/features/devices/devices-table-columns.d.ts +17 -3
- package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
- package/dist/components/features/devices/devices-table-columns.js +80 -10
- package/dist/components/features/devices/index.d.ts +1 -0
- package/dist/components/features/devices/index.d.ts.map +1 -1
- package/dist/components/features/devices/index.js +8 -0
- package/dist/components/features/devices/types.d.ts +14 -0
- package/dist/components/features/devices/types.d.ts.map +1 -1
- package/dist/components/features/devices/use-tag-filter-modal.d.ts +1 -0
- package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -1
- package/dist/components/features/devices/use-tag-filter-modal.js +13 -8
- package/dist/components/features/index.cjs +33 -19
- package/dist/components/help-center-pages/index.cjs +120 -120
- package/dist/components/help-center-pages/trust-center-page.d.ts +1 -1
- package/dist/components/index.cjs +96 -76
- package/dist/components/meeting-scheduler/index.cjs +82 -82
- package/dist/components/navigation/app-layout.js +2 -2
- package/dist/components/navigation/index.cjs +22 -22
- package/dist/components/onboarding-guides/index.cjs +22 -22
- package/dist/components/platform/tool-badge-mark.d.ts +1 -1
- package/dist/components/product-demo/index.cjs +30 -30
- package/dist/components/related-content/index.cjs +8 -8
- package/dist/components/tickets/index.cjs +24 -24
- package/dist/components/ui/data-attribution.d.ts +8 -3
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/data-attribution.js +17 -6
- package/dist/components/ui/date-picker.d.ts +2 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +19 -6
- package/dist/components/ui/index.cjs +25 -19
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -0
- package/dist/{devices-2RGGMC2B.cjs → devices-44O5PZOW.cjs} +20 -20
- package/dist/{embeddable-chat-SJEEJI4N.cjs → embeddable-chat-W3CLMGC3.cjs} +90 -90
- package/dist/hooks/index.cjs +11 -7
- package/dist/hooks/ui/use-content-breakpoint.d.ts +8 -0
- package/dist/hooks/ui/use-content-breakpoint.d.ts.map +1 -1
- package/dist/hooks/ui/use-content-breakpoint.js +17 -3
- package/dist/hooks/ui/use-media-query.d.ts +1 -0
- package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
- package/dist/hooks/ui/use-media-query.js +3 -1
- package/dist/index.cjs +44 -24
- package/dist/{knowledge-5TJIXVMD.cjs → knowledge-UUU3WVO3.cjs} +20 -20
- package/dist/{logs-HGQOTRKZ.cjs → logs-DFHNSODA.cjs} +26 -26
- package/dist/{policies-GWFSLVSM.cjs → policies-RGFUGDBP.cjs} +23 -23
- package/dist/{remote-session-SG44CNOK.cjs → remote-session-U3H77HKR.cjs} +10 -10
- package/dist/{scripts-PGJNAZF4.cjs → scripts-KOVO5DHW.cjs} +26 -26
- package/dist/{software-update-KKLSYHDI.cjs → software-update-4EKHVV5W.cjs} +23 -23
- package/dist/{tickets-board-SQY2Y6QV.cjs → tickets-board-YIFOVMDX.cjs} +10 -10
- package/dist/types/data-sync.d.ts +4 -1
- package/dist/types/data-sync.d.ts.map +1 -1
- package/dist/types/data-sync.js +4 -1
- package/dist/types/index.cjs +4 -1
- package/dist/utils/presentation-for.d.ts +6 -0
- package/dist/utils/presentation-for.d.ts.map +1 -0
- package/dist/utils/presentation-for.js +7 -0
- package/package.json +1 -1
- package/src/components/features/cloud-tenants/index.ts +8 -3
- package/src/components/features/cloud-tenants/single-customer-tenants-table-view.tsx +234 -0
- package/src/components/features/cloud-tenants/tenant-access-cell.tsx +12 -5
- package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +48 -12
- package/src/components/features/cloud-tenants/tenant-licenses-cell.tsx +28 -0
- package/src/components/features/cloud-tenants/tenant-presentation.ts +46 -4
- package/src/components/features/cloud-tenants/tenant-row.ts +38 -8
- package/src/components/features/cloud-tenants/tenants-table-columns.ts +8 -5
- package/src/components/features/cloud-tenants/tenants-table-view.tsx +123 -28
- package/src/components/features/devices/device-directory.ts +55 -0
- package/src/components/features/devices/devices-filter-toolbar.tsx +4 -1
- package/src/components/features/devices/devices-panel-view.tsx +12 -2
- package/src/components/features/devices/devices-table-columns.tsx +123 -8
- package/src/components/features/devices/index.ts +7 -0
- package/src/components/features/devices/types.ts +14 -0
- package/src/components/features/devices/use-tag-filter-modal.ts +32 -14
- package/src/components/help-center-pages/trust-center-page.tsx +1 -1
- package/src/components/navigation/app-layout.tsx +4 -4
- package/src/components/platform/tool-badge-mark.ts +1 -1
- package/src/components/ui/data-attribution.tsx +20 -8
- package/src/components/ui/date-picker.tsx +21 -3
- package/src/components/ui/index.ts +2 -0
- package/src/hooks/ui/use-content-breakpoint.ts +21 -2
- package/src/hooks/ui/use-media-query.ts +1 -0
- package/src/types/data-sync.ts +4 -1
- package/src/utils/presentation-for.ts +10 -0
- package/dist/chunk-UAI4VMEF.cjs +0 -46
|
@@ -20,8 +20,8 @@ var _chunkDLTPSP5Fcjs = require('../../chunk-DLTPSP5F.cjs');
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
var
|
|
24
|
-
require('../../chunk-
|
|
23
|
+
var _chunkPRJZMZ3Xcjs = require('../../chunk-PRJZMZ3X.cjs');
|
|
24
|
+
require('../../chunk-LQDAB5V5.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,8 +29,8 @@ require('../../chunk-USPUZO53.cjs');
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
var
|
|
33
|
-
require('../../chunk-
|
|
32
|
+
var _chunk5OENPMRUcjs = require('../../chunk-5OENPMRU.cjs');
|
|
33
|
+
require('../../chunk-FJXSKMQJ.cjs');
|
|
34
34
|
require('../../chunk-HQQE74RO.cjs');
|
|
35
35
|
require('../../chunk-DEY6XXGO.cjs');
|
|
36
36
|
|
|
@@ -38,9 +38,9 @@ require('../../chunk-DEY6XXGO.cjs');
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
var
|
|
41
|
+
var _chunkUPQ4MAR7cjs = require('../../chunk-UPQ4MAR7.cjs');
|
|
42
42
|
require('../../chunk-24I6RFVU.cjs');
|
|
43
|
-
require('../../chunk-
|
|
43
|
+
require('../../chunk-5HMENXSR.cjs');
|
|
44
44
|
require('../../chunk-MZ4KBSH7.cjs');
|
|
45
45
|
|
|
46
46
|
|
|
@@ -48,21 +48,21 @@ var _chunkZZDFMUEUcjs = require('../../chunk-ZZDFMUEU.cjs');
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
var
|
|
51
|
+
var _chunk3WXHPD6Ncjs = require('../../chunk-3WXHPD6N.cjs');
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var _chunkVMAOZA2Vcjs = require('../../chunk-VMAOZA2V.cjs');
|
|
55
55
|
require('../../chunk-OT6P57ZS.cjs');
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
var
|
|
61
|
+
var _chunk63ZV3UGGcjs = require('../../chunk-63ZV3UGG.cjs');
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
var
|
|
65
|
+
var _chunkACPOJE32cjs = require('../../chunk-ACPOJE32.cjs');
|
|
66
66
|
require('../../chunk-KXFIYO4O.cjs');
|
|
67
67
|
require('../../chunk-PGAMWM6C.cjs');
|
|
68
68
|
require('../../chunk-7HH4Y27U.cjs');
|
|
@@ -1858,8 +1858,8 @@ require('../../chunk-XIBCMGBW.cjs');
|
|
|
1858
1858
|
|
|
1859
1859
|
|
|
1860
1860
|
var _chunkOH5TXFRRcjs = require('../../chunk-OH5TXFRR.cjs');
|
|
1861
|
-
require('../../chunk-
|
|
1862
|
-
require('../../chunk-
|
|
1861
|
+
require('../../chunk-2IJMHBOK.cjs');
|
|
1862
|
+
require('../../chunk-JKBNK5U6.cjs');
|
|
1863
1863
|
require('../../chunk-IGVAPIEW.cjs');
|
|
1864
1864
|
require('../../chunk-JKX2C3I2.cjs');
|
|
1865
1865
|
require('../../chunk-WWUSFOJ7.cjs');
|
|
@@ -1867,11 +1867,11 @@ require('../../chunk-SKI6NKOE.cjs');
|
|
|
1867
1867
|
require('../../chunk-EWPR7662.cjs');
|
|
1868
1868
|
require('../../chunk-IX2E3AN7.cjs');
|
|
1869
1869
|
require('../../chunk-7DNL734S.cjs');
|
|
1870
|
-
require('../../chunk-
|
|
1871
|
-
require('../../chunk-
|
|
1870
|
+
require('../../chunk-FBANHIAG.cjs');
|
|
1871
|
+
require('../../chunk-YY3WP2YQ.cjs');
|
|
1872
1872
|
|
|
1873
1873
|
|
|
1874
|
-
var
|
|
1874
|
+
var _chunk6DCUGIGUcjs = require('../../chunk-6DCUGIGU.cjs');
|
|
1875
1875
|
|
|
1876
1876
|
|
|
1877
1877
|
|
|
@@ -1879,7 +1879,7 @@ var _chunkHTYJUMFBcjs = require('../../chunk-HTYJUMFB.cjs');
|
|
|
1879
1879
|
|
|
1880
1880
|
|
|
1881
1881
|
|
|
1882
|
-
var
|
|
1882
|
+
var _chunkKA3L6D5Ncjs = require('../../chunk-KA3L6D5N.cjs');
|
|
1883
1883
|
|
|
1884
1884
|
|
|
1885
1885
|
var _chunkO3EKOXFZcjs = require('../../chunk-O3EKOXFZ.cjs');
|
|
@@ -1895,8 +1895,8 @@ require('../../chunk-RUHKTWGB.cjs');
|
|
|
1895
1895
|
|
|
1896
1896
|
|
|
1897
1897
|
var _chunkBLH2SFOOcjs = require('../../chunk-BLH2SFOO.cjs');
|
|
1898
|
-
require('../../chunk-
|
|
1899
|
-
require('../../chunk-
|
|
1898
|
+
require('../../chunk-QD727QFI.cjs');
|
|
1899
|
+
require('../../chunk-4SSJ3T3N.cjs');
|
|
1900
1900
|
require('../../chunk-YSDB6HGQ.cjs');
|
|
1901
1901
|
require('../../chunk-ETZFBB7O.cjs');
|
|
1902
1902
|
|
|
@@ -2231,7 +2231,7 @@ function useMeetingBooking(options) {
|
|
|
2231
2231
|
const seededOffset = _optionalChain([initialAvailability, 'optionalAccess', _12 => _12.meetingId]) === meetingId ? initialAvailability.monthOffset : void 0;
|
|
2232
2232
|
const [monthOffset, setMonthOffsetState] = _react.useState.call(void 0, _nullishCoalesce(seededOffset, () => ( 0)));
|
|
2233
2233
|
const setMonthOffset = _react.useCallback.call(void 0, (offset) => {
|
|
2234
|
-
setMonthOffsetState(Math.max(0, Math.min(
|
|
2234
|
+
setMonthOffsetState(Math.max(0, Math.min(_chunk3WXHPD6Ncjs.MAX_MONTH_OFFSET, offset)));
|
|
2235
2235
|
}, []);
|
|
2236
2236
|
const prevMeetingIdRef = _react.useRef.call(void 0, meetingId);
|
|
2237
2237
|
_react.useLayoutEffect.call(void 0, () => {
|
|
@@ -2333,7 +2333,7 @@ function BookingContextSummary({
|
|
|
2333
2333
|
const label = _nullishCoalesce(_optionalChain([slot, 'optionalAccess', _14 => _14.label]), () => ( _optionalChain([context, 'optionalAccess', _15 => _15.label])));
|
|
2334
2334
|
if (!label || !slot && items.length === 0) return null;
|
|
2335
2335
|
if (!slot) {
|
|
2336
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SummaryFrame, { label, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-wrap gap-[var(--spacing-system-xs)]", "aria-label": label, children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { className: "min-w-0 max-w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2336
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SummaryFrame, { label, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-wrap gap-[var(--spacing-system-xs)]", "aria-label": label, children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { className: "min-w-0 max-w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.Tag, { label: item, ...LINE_TAG_PROPS }) }, item)) }) });
|
|
2337
2337
|
}
|
|
2338
2338
|
const cells = Array.from({ length: Math.max(slot.slots, items.length) }, (_, index) => items[index]);
|
|
2339
2339
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SummaryFrame, { label, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
|
|
@@ -2345,7 +2345,7 @@ function BookingContextSummary({
|
|
|
2345
2345
|
className: SLOT_CELL_CLASS,
|
|
2346
2346
|
"aria-hidden": empty || void 0,
|
|
2347
2347
|
"data-loading-item": "",
|
|
2348
|
-
children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2348
|
+
children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.Tag, { label: "", loading: true, ...LINE_TAG_PROPS, className: LOADING_LINE_CLASS }) : item ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.Tag, { label: item, ...LINE_TAG_PROPS }) : (
|
|
2349
2349
|
// With no line at all the empty state covers every slot; with some, the rest stay as slots.
|
|
2350
2350
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk63A4GZMBcjs.cn.call(void 0, EMPTY_CELL_CLASS, items.length === 0 && "invisible") })
|
|
2351
2351
|
)
|
|
@@ -2412,7 +2412,7 @@ var FIELD_CONTROLS = {
|
|
|
2412
2412
|
}
|
|
2413
2413
|
),
|
|
2414
2414
|
textarea: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2415
|
-
|
|
2415
|
+
_chunkPRJZMZ3Xcjs.Textarea,
|
|
2416
2416
|
{
|
|
2417
2417
|
id,
|
|
2418
2418
|
required: field.required,
|
|
@@ -2468,18 +2468,18 @@ var FIELD_CONTROLS = {
|
|
|
2468
2468
|
{
|
|
2469
2469
|
control,
|
|
2470
2470
|
name: registerName,
|
|
2471
|
-
render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2471
|
+
render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5OENPMRUcjs.Select, { value: _nullishCoalesce(rhf.value, () => ( "")), onValueChange: rhf.onChange, children: [
|
|
2472
2472
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2473
|
-
|
|
2473
|
+
_chunk5OENPMRUcjs.SelectTrigger,
|
|
2474
2474
|
{
|
|
2475
2475
|
id,
|
|
2476
2476
|
"aria-required": field.required || void 0,
|
|
2477
2477
|
"aria-invalid": Boolean(error),
|
|
2478
2478
|
invalid: Boolean(error),
|
|
2479
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2479
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5OENPMRUcjs.SelectValue, { placeholder: "Select\u2026" })
|
|
2480
2480
|
}
|
|
2481
2481
|
),
|
|
2482
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2482
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5OENPMRUcjs.SelectContent, { children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5OENPMRUcjs.SelectItem, { value: opt, children: formFieldOptionLabel(field, opt) }, opt)) })
|
|
2483
2483
|
] })
|
|
2484
2484
|
}
|
|
2485
2485
|
),
|
|
@@ -2489,14 +2489,14 @@ var FIELD_CONTROLS = {
|
|
|
2489
2489
|
control,
|
|
2490
2490
|
name: registerName,
|
|
2491
2491
|
render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2492
|
-
|
|
2492
|
+
_chunkPRJZMZ3Xcjs.RadioGroup,
|
|
2493
2493
|
{
|
|
2494
2494
|
value: _nullishCoalesce(rhf.value, () => ( "")),
|
|
2495
2495
|
onValueChange: rhf.onChange,
|
|
2496
2496
|
"aria-required": field.required || void 0,
|
|
2497
2497
|
"aria-invalid": Boolean(error),
|
|
2498
2498
|
children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
2499
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2499
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.RadioGroupItem, { id: `${id}-${opt}`, value: opt }),
|
|
2500
2500
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVCFQHPOOcjs.Label, { htmlFor: `${id}-${opt}`, children: formFieldOptionLabel(field, opt) })
|
|
2501
2501
|
] }, opt))
|
|
2502
2502
|
}
|
|
@@ -2570,7 +2570,7 @@ var chipsControl = ({ field, id, registerName, error, control }) => /* @__PURE__
|
|
|
2570
2570
|
control,
|
|
2571
2571
|
name: registerName,
|
|
2572
2572
|
render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2573
|
-
|
|
2573
|
+
_chunkPRJZMZ3Xcjs.ToggleGroup,
|
|
2574
2574
|
{
|
|
2575
2575
|
id,
|
|
2576
2576
|
type: "single",
|
|
@@ -2585,7 +2585,7 @@ var chipsControl = ({ field, id, registerName, error, control }) => /* @__PURE__
|
|
|
2585
2585
|
"aria-required": field.required || void 0,
|
|
2586
2586
|
"aria-invalid": Boolean(error),
|
|
2587
2587
|
className: CHIP_ROW_CLASS,
|
|
2588
|
-
children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2588
|
+
children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.ToggleGroupItem, { value: opt, className: _chunk63A4GZMBcjs.cn.call(void 0, error && "data-[state=off]:border-ods-error"), children: formFieldOptionLabel(field, opt) }, opt))
|
|
2589
2589
|
}
|
|
2590
2590
|
)
|
|
2591
2591
|
}
|
|
@@ -2721,7 +2721,7 @@ function BookingFormBody({
|
|
|
2721
2721
|
() => [...BUILT_IN_BOOKING_FIELDS.map((field) => field.name), ...supportedFields.map((field) => field.name)],
|
|
2722
2722
|
[supportedFields]
|
|
2723
2723
|
);
|
|
2724
|
-
const formRescue =
|
|
2724
|
+
const formRescue = _chunkUPQ4MAR7cjs.useRescuedForm.call(void 0,
|
|
2725
2725
|
{ watch, getValues, setValue },
|
|
2726
2726
|
{
|
|
2727
2727
|
rescue,
|
|
@@ -2730,7 +2730,7 @@ function BookingFormBody({
|
|
|
2730
2730
|
fieldPath: (name) => BUILT_IN_BOOKING_FIELDS.some((field) => field.name === name) ? name : `formFields.${name}`
|
|
2731
2731
|
}
|
|
2732
2732
|
);
|
|
2733
|
-
const { toast } =
|
|
2733
|
+
const { toast } = _chunkUPQ4MAR7cjs.useToast.call(void 0, );
|
|
2734
2734
|
const onInvalid = () => {
|
|
2735
2735
|
if (deniedEmailDomains && emailDomainDenied(getValues("email"), deniedEmailDomains)) {
|
|
2736
2736
|
toast({
|
|
@@ -2820,8 +2820,8 @@ function BookingFormBody({
|
|
|
2820
2820
|
children: _nullishCoalesce(submitLabel, () => ( DEFAULT_SUBMIT_LABEL))
|
|
2821
2821
|
}
|
|
2822
2822
|
);
|
|
2823
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { id: formId, onSubmit: submit, className: FORM_STACK, noValidate: true, ...
|
|
2824
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2823
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { id: formId, onSubmit: submit, className: FORM_STACK, noValidate: true, ..._chunk3WXHPD6Ncjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
|
|
2824
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.HoneypotField, { ...honeypotInputProps }),
|
|
2825
2825
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, BookingContextSummary, { context, slot: contextSlot }),
|
|
2826
2826
|
fieldRows ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
2827
2827
|
placedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: slotColumnClass(row, slot, slotIndex), children: slotNode(slot.name) }, slot.name)) }, row.map((s) => s.name).join("|"))),
|
|
@@ -2835,7 +2835,7 @@ function BookingFormBody({
|
|
|
2835
2835
|
supportedFields.map((field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: renderDeclaredField(field) }, field.name))
|
|
2836
2836
|
] }),
|
|
2837
2837
|
consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2838
|
-
|
|
2838
|
+
_chunkPRJZMZ3Xcjs.CheckboxBlock,
|
|
2839
2839
|
{
|
|
2840
2840
|
id: "ms-host-consent",
|
|
2841
2841
|
checked: consented,
|
|
@@ -2870,7 +2870,7 @@ function BookingFormBody({
|
|
|
2870
2870
|
// same block the waitlist form uses): box + label in one
|
|
2871
2871
|
// bordered row.
|
|
2872
2872
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2873
|
-
|
|
2873
|
+
_chunkPRJZMZ3Xcjs.CheckboxBlock,
|
|
2874
2874
|
{
|
|
2875
2875
|
id: `ms-consent-${box.communicationTypeId}`,
|
|
2876
2876
|
checked: _nullishCoalesce(_optionalChain([current, 'optionalAccess', _46 => _46.consented]), () => ( false)),
|
|
@@ -2923,10 +2923,10 @@ function BookingFormPending({
|
|
|
2923
2923
|
!fieldRows && // An empty label keeps the field's own frame (`FieldWrapper` draws no label for it); the bar stands for it.
|
|
2924
2924
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHXURNKXIcjs.FieldWrapper, { label: "", children: [
|
|
2925
2925
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", className: "mb-1 w-40" }),
|
|
2926
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2926
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.Textarea, { tabIndex: -1 })
|
|
2927
2927
|
] }),
|
|
2928
2928
|
consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2929
|
-
|
|
2929
|
+
_chunkPRJZMZ3Xcjs.CheckboxBlock,
|
|
2930
2930
|
{
|
|
2931
2931
|
id: consentId,
|
|
2932
2932
|
checked: false,
|
|
@@ -2977,7 +2977,7 @@ function FieldSkeleton({
|
|
|
2977
2977
|
// An empty label keeps the field's own frame; a read label is the bar under it.
|
|
2978
2978
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHXURNKXIcjs.FieldWrapper, { label: _nullishCoalesce(label, () => ( "")), required: _optionalChain([builtIn, 'optionalAccess', _50 => _50.required]), className, children: [
|
|
2979
2979
|
label === void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", className: "mb-1 w-32" }),
|
|
2980
|
-
!builtIn && _optionalChain([copy, 'optionalAccess', _51 => _51.display]) === "chips" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CHIP_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { variant: "default", className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
2980
|
+
!builtIn && _optionalChain([copy, 'optionalAccess', _51 => _51.display]) === "chips" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: CHIP_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { variant: "default", className: _chunk63A4GZMBcjs.cn.call(void 0, _chunkPRJZMZ3Xcjs.TOGGLE_SIZE_CLASS.default, "w-24 rounded-md") }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHXURNKXIcjs.Input, { tabIndex: -1 })
|
|
2981
2981
|
] })
|
|
2982
2982
|
);
|
|
2983
2983
|
}
|
|
@@ -2985,7 +2985,7 @@ function FieldSkeleton({
|
|
|
2985
2985
|
// src/components/meeting-scheduler/confirmation.tsx
|
|
2986
2986
|
|
|
2987
2987
|
function Confirmation({ confirmation, timezone }) {
|
|
2988
|
-
const when =
|
|
2988
|
+
const when = _chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, confirmation.startTimeMs, timezone, "weekdayDateTimeZoned", {
|
|
2989
2989
|
viewerLocale: true
|
|
2990
2990
|
});
|
|
2991
2991
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-m)] text-center", children: [
|
|
@@ -2995,7 +2995,7 @@ function Confirmation({ confirmation, timezone }) {
|
|
|
2995
2995
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: [
|
|
2996
2996
|
when,
|
|
2997
2997
|
" \xB7 ",
|
|
2998
|
-
|
|
2998
|
+
_chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, confirmation.durationMs / 1e3)
|
|
2999
2999
|
] }),
|
|
3000
3000
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "A calendar invite is on its way to your email." })
|
|
3001
3001
|
] });
|
|
@@ -3013,7 +3013,7 @@ function HostIdentity({ hosts, loading = false }) {
|
|
|
3013
3013
|
if (hosts.length === 0) return null;
|
|
3014
3014
|
if (hosts.length > MAX_HOST_ROWS) {
|
|
3015
3015
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEAM_CLASS, children: [
|
|
3016
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3016
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6DCUGIGUcjs.AvatarStack, { people: hosts, max: 4, size: "lg", label: "Hosts" }),
|
|
3017
3017
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: [
|
|
3018
3018
|
hosts.length,
|
|
3019
3019
|
" hosts on this calendar"
|
|
@@ -3022,7 +3022,7 @@ function HostIdentity({ hosts, loading = false }) {
|
|
|
3022
3022
|
}
|
|
3023
3023
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HOST_LIST_CLASS, children: hosts.map((host) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS, "data-loading-item": true, children: [
|
|
3024
3024
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3025
|
-
|
|
3025
|
+
_chunkKA3L6D5Ncjs.SquareAvatar,
|
|
3026
3026
|
{
|
|
3027
3027
|
variant: "round",
|
|
3028
3028
|
size: "sm",
|
|
@@ -3039,7 +3039,7 @@ function HostIdentity({ hosts, loading = false }) {
|
|
|
3039
3039
|
}
|
|
3040
3040
|
function HostIdentitySkeleton() {
|
|
3041
3041
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HOST_LIST_CLASS, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_ROW_CLASS, "data-loading-item": true, children: [
|
|
3042
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3042
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.SquareAvatar, { loading: true, variant: "round", size: "sm" }),
|
|
3043
3043
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: HOST_TEXT_CLASS, children: [
|
|
3044
3044
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", className: "w-32" }),
|
|
3045
3045
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", className: "w-24" })
|
|
@@ -3070,7 +3070,7 @@ function ContextPanelSkeleton({
|
|
|
3070
3070
|
timezone = "shown"
|
|
3071
3071
|
}) {
|
|
3072
3072
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, PANEL_STACK, className), children: [
|
|
3073
|
-
onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3073
|
+
onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5OENPMRUcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
|
|
3074
3074
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
|
|
3075
3075
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_MAIN, children: [
|
|
3076
3076
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
|
|
@@ -3086,7 +3086,7 @@ function ContextPanelSkeleton({
|
|
|
3086
3086
|
] }),
|
|
3087
3087
|
timezone !== "hidden" && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, STRIP_ASIDE, timezone === "wide" && TIMEZONE_WIDE_ONLY_CLASS), children: [
|
|
3088
3088
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
|
|
3089
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3089
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.TimezoneSelect, { value: null, loading: true, onChange: _chunk63A4GZMBcjs.LOADING_NOOP })
|
|
3090
3090
|
] })
|
|
3091
3091
|
] })
|
|
3092
3092
|
] });
|
|
@@ -3124,7 +3124,7 @@ function SchedulerContextPanel({
|
|
|
3124
3124
|
);
|
|
3125
3125
|
}
|
|
3126
3126
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, PANEL_STACK, className), children: [
|
|
3127
|
-
onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3127
|
+
onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5OENPMRUcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
|
|
3128
3128
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
|
|
3129
3129
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_MAIN, children: [
|
|
3130
3130
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
|
|
@@ -3133,7 +3133,7 @@ function SchedulerContextPanel({
|
|
|
3133
3133
|
// Post-selection, or a link that offers one length: a static line,
|
|
3134
3134
|
// which is what sits beside the host on the header-strip layouts.
|
|
3135
3135
|
selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: DURATION_LINE_CLASS, children: [
|
|
3136
|
-
|
|
3136
|
+
_chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
|
|
3137
3137
|
" call"
|
|
3138
3138
|
] })
|
|
3139
3139
|
) : null
|
|
@@ -3150,7 +3150,7 @@ function SchedulerContextPanel({
|
|
|
3150
3150
|
size: "small-legacy",
|
|
3151
3151
|
disabled,
|
|
3152
3152
|
onClick: () => onSelectDuration(ms),
|
|
3153
|
-
children:
|
|
3153
|
+
children: _chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, ms / 1e3)
|
|
3154
3154
|
},
|
|
3155
3155
|
ms
|
|
3156
3156
|
)) })
|
|
@@ -3165,7 +3165,7 @@ function SchedulerContextPanel({
|
|
|
3165
3165
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, STRIP_ASIDE, locked && TIMEZONE_WIDE_ONLY_CLASS), children: [
|
|
3166
3166
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
|
|
3167
3167
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3168
|
-
|
|
3168
|
+
_chunkPRJZMZ3Xcjs.TimezoneSelect,
|
|
3169
3169
|
{
|
|
3170
3170
|
value: _nullishCoalesce(timezone, () => ( null)),
|
|
3171
3171
|
loading: !timezone,
|
|
@@ -3211,18 +3211,18 @@ function SchedulerModalHeader({
|
|
|
3211
3211
|
size: "small-legacy",
|
|
3212
3212
|
disabled,
|
|
3213
3213
|
onClick: () => onSelectDuration(ms),
|
|
3214
|
-
children:
|
|
3214
|
+
children: _chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, ms / 1e3)
|
|
3215
3215
|
},
|
|
3216
3216
|
ms
|
|
3217
3217
|
)) }) : selectedDurationMs != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: DURATION_LINE_CLASS2, children: [
|
|
3218
|
-
|
|
3218
|
+
_chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, selectedDurationMs / 1e3),
|
|
3219
3219
|
" call"
|
|
3220
3220
|
] })
|
|
3221
3221
|
] }),
|
|
3222
3222
|
showTimezone && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TIMEZONE_ROW_CLASS, children: [
|
|
3223
3223
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS2, children: "Timezone" }),
|
|
3224
3224
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3225
|
-
|
|
3225
|
+
_chunkPRJZMZ3Xcjs.TimezoneSelect,
|
|
3226
3226
|
{
|
|
3227
3227
|
value: timezone,
|
|
3228
3228
|
loading: !timezone,
|
|
@@ -3243,7 +3243,7 @@ function SchedulerModalHeaderSkeleton({ showTimezone = true } = {}) {
|
|
|
3243
3243
|
] }),
|
|
3244
3244
|
showTimezone && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TIMEZONE_ROW_CLASS, children: [
|
|
3245
3245
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS2, children: "Timezone" }),
|
|
3246
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3246
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPRJZMZ3Xcjs.TimezoneSelect, { value: null, loading: true, onChange: _chunk63A4GZMBcjs.LOADING_NOOP })
|
|
3247
3247
|
] })
|
|
3248
3248
|
] });
|
|
3249
3249
|
}
|
|
@@ -3266,7 +3266,7 @@ function dateFromDayKey(key) {
|
|
|
3266
3266
|
return new Date(y, m - 1, d, 12);
|
|
3267
3267
|
}
|
|
3268
3268
|
function timeLabelInZone(ms, timeZone) {
|
|
3269
|
-
return
|
|
3269
|
+
return _chunkKA3L6D5Ncjs.formatTimeWithTimezone.call(void 0, ms, timeZone, { viewerLocale: true });
|
|
3270
3270
|
}
|
|
3271
3271
|
var CALENDAR_W = "content-md:w-[19rem] content-md:shrink-0 content-lg:w-[16rem]";
|
|
3272
3272
|
var COLUMN_HEADING_CLASS = "shrink-0 text-h4 text-ods-text-primary";
|
|
@@ -3319,24 +3319,24 @@ var MODAL_CHIP_GRID_CLASS = _chunk63A4GZMBcjs.cn.call(void 0,
|
|
|
3319
3319
|
function monthLabelFor(offset) {
|
|
3320
3320
|
const now = /* @__PURE__ */ new Date();
|
|
3321
3321
|
const month = new Date(now.getFullYear(), now.getMonth() + offset, 1);
|
|
3322
|
-
return
|
|
3322
|
+
return _chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, month, _chunkKA3L6D5Ncjs.VIEWER_TIMEZONE, "monthYear");
|
|
3323
3323
|
}
|
|
3324
3324
|
var DISABLE_EVERY_DAY = () => true;
|
|
3325
3325
|
function DayCalendar({ monthOffset, onMonthOffsetChange, selectedDay, onSelectDay, slotsByDay }) {
|
|
3326
3326
|
const now = /* @__PURE__ */ new Date();
|
|
3327
3327
|
const startMonth = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
3328
|
-
const endMonth = new Date(now.getFullYear(), now.getMonth() +
|
|
3328
|
+
const endMonth = new Date(now.getFullYear(), now.getMonth() + _chunk3WXHPD6Ncjs.MAX_MONTH_OFFSET + 1, 0);
|
|
3329
3329
|
const visibleMonth = new Date(now.getFullYear(), now.getMonth() + monthOffset, 1);
|
|
3330
3330
|
const dayHasNoSlots = _react.useCallback.call(void 0, (day) => !_optionalChain([slotsByDay, 'optionalAccess', _54 => _54.has, 'call', _55 => _55(calendarDayKey(day))]), [slotsByDay]);
|
|
3331
3331
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col", "aria-busy": slotsByDay === null, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3332
|
-
|
|
3332
|
+
_chunkPRJZMZ3Xcjs.DatePickerCalendar,
|
|
3333
3333
|
{
|
|
3334
3334
|
mode: "single",
|
|
3335
3335
|
bare: true,
|
|
3336
3336
|
month: visibleMonth,
|
|
3337
3337
|
onMonthChange: (month) => {
|
|
3338
3338
|
const offset = (month.getFullYear() - now.getFullYear()) * 12 + (month.getMonth() - now.getMonth());
|
|
3339
|
-
onMonthOffsetChange(Math.max(0, Math.min(
|
|
3339
|
+
onMonthOffsetChange(Math.max(0, Math.min(_chunk3WXHPD6Ncjs.MAX_MONTH_OFFSET, offset)));
|
|
3340
3340
|
},
|
|
3341
3341
|
fromDate: startMonth,
|
|
3342
3342
|
toDate: endMonth,
|
|
@@ -3450,7 +3450,7 @@ function SlotPicker({
|
|
|
3450
3450
|
{
|
|
3451
3451
|
className: modal ? _chunk63A4GZMBcjs.cn.call(void 0, COLUMN_STACK, MODAL_COLUMN_BOX, MODAL_TIMES_H, "min-w-0 content-md:flex-1") : _chunk63A4GZMBcjs.cn.call(void 0, COLUMN_STACK, COLUMN_BOX, "min-w-0 content-md:flex-1"),
|
|
3452
3452
|
children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeChipsSkeleton, { layout }) : selectedDay ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
3453
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children:
|
|
3453
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: COLUMN_HEADING_CLASS, children: _chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, dateFromDayKey(selectedDay), _chunkKA3L6D5Ncjs.VIEWER_TIMEZONE, "weekday", { viewerLocale: true }) }),
|
|
3454
3454
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: modal ? MODAL_CHIP_GRID_CLASS : CHIP_GRID_CLASS, children: daySlots.map((ms) => {
|
|
3455
3455
|
const isSelected = selectedSlot === ms;
|
|
3456
3456
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3480,7 +3480,7 @@ function SlotPicker({
|
|
|
3480
3480
|
monthLabelFor(monthOffset),
|
|
3481
3481
|
"."
|
|
3482
3482
|
] }),
|
|
3483
|
-
monthOffset <
|
|
3483
|
+
monthOffset < _chunk3WXHPD6Ncjs.MAX_MONTH_OFFSET && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3484
3484
|
_chunkFCZAUK4Dcjs.Button,
|
|
3485
3485
|
{
|
|
3486
3486
|
variant: "outline",
|
|
@@ -3504,10 +3504,10 @@ function SlotPicker({
|
|
|
3504
3504
|
|
|
3505
3505
|
|
|
3506
3506
|
function useNextAvailableLabel(ms) {
|
|
3507
|
-
const hydrated =
|
|
3507
|
+
const hydrated = _chunkVMAOZA2Vcjs.useIsHydrated.call(void 0, );
|
|
3508
3508
|
return _react.useMemo.call(void 0, () => {
|
|
3509
3509
|
if (!hydrated || ms == null) return null;
|
|
3510
|
-
return
|
|
3510
|
+
return _chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, ms, _chunkKA3L6D5Ncjs.VIEWER_TIMEZONE, "shortWeekdayDateTime", { viewerLocale: true }) || null;
|
|
3511
3511
|
}, [hydrated, ms]);
|
|
3512
3512
|
}
|
|
3513
3513
|
var PAGINATION_SLOT_H = "h-[4.5rem]";
|
|
@@ -3528,7 +3528,7 @@ function DirectoryRow({
|
|
|
3528
3528
|
const nextLabel = useNextAvailableLabel(link.nextAvailableMs);
|
|
3529
3529
|
const subtitle = [
|
|
3530
3530
|
link.description,
|
|
3531
|
-
link.durationsMinutes.length > 0 ? link.durationsMinutes.map((m) =>
|
|
3531
|
+
link.durationsMinutes.length > 0 ? link.durationsMinutes.map((m) => _chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, m * 60)).join(" / ") : null,
|
|
3532
3532
|
link.kind === "team" ? "Team" : null
|
|
3533
3533
|
].filter(Boolean).join(" \u2022 ");
|
|
3534
3534
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -3544,7 +3544,7 @@ function DirectoryRow({
|
|
|
3544
3544
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: subtitle })
|
|
3545
3545
|
] }),
|
|
3546
3546
|
audienceLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.StatusBadge, { text: `For ${audienceLabel}`, singleLine: true, className: "hidden shrink-0 content-sm:inline-flex" }),
|
|
3547
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3547
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6DCUGIGUcjs.AvatarStack, { people: link.hosts, max: 3, size: "md", label: "Hosts", className: "flex shrink-0" }),
|
|
3548
3548
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_NEXT_COLUMN_CLASS, children: [
|
|
3549
3549
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: ROW_NEXT_LABEL_CLASS, children: "Next available" }),
|
|
3550
3550
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-h-5 text-ods-text-primary text-h6", children: link.nextAvailableMs == null ? "No times published" : _nullishCoalesce(nextLabel, () => ( " ")) })
|
|
@@ -3563,7 +3563,7 @@ function MeetingSchedulerDirectoryRowSkeleton(props = {}) {
|
|
|
3563
3563
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", className: "w-1/3" })
|
|
3564
3564
|
] }),
|
|
3565
3565
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { className: "hidden h-6 w-28 shrink-0 content-sm:block" }),
|
|
3566
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3566
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6DCUGIGUcjs.AvatarStack, { people: NO_HOSTS, loading: true, max: TYPICAL_HOSTS, size: "md", label: "Hosts", className: "flex shrink-0" }),
|
|
3567
3567
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: ROW_NEXT_COLUMN_CLASS, children: [
|
|
3568
3568
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: ROW_NEXT_LABEL_CLASS, children: "Next available" }),
|
|
3569
3569
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", className: "w-32" })
|
|
@@ -3794,7 +3794,7 @@ function HubSpotMeetingScheduler({
|
|
|
3794
3794
|
const modal = layout === "modal" && !detailsFirst;
|
|
3795
3795
|
const modalFormId = _react.useId.call(void 0, );
|
|
3796
3796
|
const [modalFormValid, setModalFormValid] = _react.useState.call(void 0, false);
|
|
3797
|
-
const hydrated =
|
|
3797
|
+
const hydrated = _chunkVMAOZA2Vcjs.useIsHydrated.call(void 0, );
|
|
3798
3798
|
const [pickedTimezone, setTimezone] = _react.useState.call(void 0, null);
|
|
3799
3799
|
const resolvedLocalTimezone = _react.useMemo.call(void 0, () => {
|
|
3800
3800
|
if (!hydrated) return null;
|
|
@@ -3828,8 +3828,8 @@ function HubSpotMeetingScheduler({
|
|
|
3828
3828
|
const [selectedSlot, setSelectedSlot] = _react.useState.call(void 0, null);
|
|
3829
3829
|
const [confirmation, setConfirmation] = _react.useState.call(void 0, null);
|
|
3830
3830
|
const [bookingError, setBookingError] = _react.useState.call(void 0, null);
|
|
3831
|
-
const { honeypotInputProps, getSignals, resetSignals } =
|
|
3832
|
-
const { toast } =
|
|
3831
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunkUPQ4MAR7cjs.useHumanitySignals.call(void 0, );
|
|
3832
|
+
const { toast } = _chunkUPQ4MAR7cjs.useToast.call(void 0, );
|
|
3833
3833
|
const autoAdvanceCount = _react.useRef.call(void 0, 0);
|
|
3834
3834
|
const [machineFor, setMachineFor] = _react.useState.call(void 0, meetingId);
|
|
3835
3835
|
if (machineFor !== meetingId) {
|
|
@@ -3903,7 +3903,7 @@ function HubSpotMeetingScheduler({
|
|
|
3903
3903
|
return;
|
|
3904
3904
|
}
|
|
3905
3905
|
if (result.ok && result.confirmation) {
|
|
3906
|
-
|
|
3906
|
+
_chunkUPQ4MAR7cjs.completeFormRescue.call(void 0, rescue, payload[_chunkOH5TXFRRcjs.FORM_RESCUE_ATTEMPT_FIELD]);
|
|
3907
3907
|
setConfirmation(result.confirmation);
|
|
3908
3908
|
setStep("confirmed");
|
|
3909
3909
|
_optionalChain([onBooked, 'optionalCall', _64 => _64(result.confirmation)]);
|
|
@@ -3948,11 +3948,11 @@ function HubSpotMeetingScheduler({
|
|
|
3948
3948
|
setSelectedDay(null);
|
|
3949
3949
|
setSelectedSlot(null);
|
|
3950
3950
|
};
|
|
3951
|
-
const summary = selectedSlot != null && durationMs != null && timezone != null ? `${
|
|
3951
|
+
const summary = selectedSlot != null && durationMs != null && timezone != null ? `${_chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true })} \xB7 ${_chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, durationMs / 1e3)}` : null;
|
|
3952
3952
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, MODAL_STACK_CLASS, className), children: [
|
|
3953
3953
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading available times", announce: coldStart, className: MODAL_CARD_CLASS, children: [
|
|
3954
3954
|
modalBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3955
|
-
|
|
3955
|
+
_chunk5OENPMRUcjs.BackButton,
|
|
3956
3956
|
{
|
|
3957
3957
|
onClick: modalBack,
|
|
3958
3958
|
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
@@ -3998,7 +3998,7 @@ function HubSpotMeetingScheduler({
|
|
|
3998
3998
|
}
|
|
3999
3999
|
)
|
|
4000
4000
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
4001
|
-
bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4001
|
+
bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkACPOJE32cjs.Alert, { variant: "warning", className: "mx-[var(--spacing-system-m)] mt-[var(--spacing-system-m)] w-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkACPOJE32cjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" }) }),
|
|
4002
4002
|
!coldStart && (!timezone || durationMs == null) && durations.length === 0 && !isFetchingAvailability ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, MODAL_STEP_CLASS, "items-start gap-[var(--spacing-system-m)]"), children: [
|
|
4003
4003
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "No call times are published right now." }),
|
|
4004
4004
|
escapeHatch
|
|
@@ -4129,10 +4129,10 @@ function HubSpotMeetingScheduler({
|
|
|
4129
4129
|
durations.length > 0
|
|
4130
4130
|
) : durationMs != null && selectedSlot != null && timezone) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, stepPanelClass, "gap-[var(--spacing-system-m)]"), children: [
|
|
4131
4131
|
selectedSlot != null && durationMs != null && timezone != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
4132
|
-
|
|
4132
|
+
_chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, selectedSlot, timezone, "weekdayDateTimeZoned", { viewerLocale: true }),
|
|
4133
4133
|
" \xB7",
|
|
4134
4134
|
" ",
|
|
4135
|
-
|
|
4135
|
+
_chunkKA3L6D5Ncjs.formatDurationCompact.call(void 0, durationMs / 1e3)
|
|
4136
4136
|
] }),
|
|
4137
4137
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4138
4138
|
DetailsForm,
|
|
@@ -4156,11 +4156,11 @@ function HubSpotMeetingScheduler({
|
|
|
4156
4156
|
)
|
|
4157
4157
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)] content-md:min-h-0 content-md:flex-1", children: [
|
|
4158
4158
|
bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4159
|
-
|
|
4159
|
+
_chunkACPOJE32cjs.Alert,
|
|
4160
4160
|
{
|
|
4161
4161
|
variant: "warning",
|
|
4162
4162
|
className: "mx-[var(--spacing-system-l)] mt-[var(--spacing-system-l)] w-auto content-lg:m-0 content-lg:w-full",
|
|
4163
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4163
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkACPOJE32cjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
|
|
4164
4164
|
}
|
|
4165
4165
|
),
|
|
4166
4166
|
(!timezone || durationMs == null) && durations.length === 0 && (!isFetchingAvailability || formOnly) ? (
|
|
@@ -4244,10 +4244,10 @@ function MeetingSchedulerModal({
|
|
|
4244
4244
|
emptyMessage = "No calls can be booked right now.",
|
|
4245
4245
|
className
|
|
4246
4246
|
}) {
|
|
4247
|
-
const { toast } =
|
|
4248
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4249
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4250
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4247
|
+
const { toast } = _chunkUPQ4MAR7cjs.useToast.call(void 0, );
|
|
4248
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.Modal, { isOpen, onClose, className: _chunk63A4GZMBcjs.cn.call(void 0, "md:max-w-[600px]", className), children: [
|
|
4249
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalTitle, { children: title }) }),
|
|
4250
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalContent, { className: "flex flex-col", children: link || loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingWhen, { loading: !link, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4251
4251
|
HubSpotMeetingScheduler,
|
|
4252
4252
|
{
|
|
4253
4253
|
layout: "modal",
|
|
@@ -4257,7 +4257,7 @@ function MeetingSchedulerModal({
|
|
|
4257
4257
|
fallbackUrl: _optionalChain([link, 'optionalAccess', _69 => _69.link]),
|
|
4258
4258
|
onBack: onClose,
|
|
4259
4259
|
onBooked: (booking) => {
|
|
4260
|
-
const when =
|
|
4260
|
+
const when = _chunkKA3L6D5Ncjs.formatDateWithTimezone.call(void 0, booking.startTimeMs, _chunkKA3L6D5Ncjs.VIEWER_TIMEZONE, "weekdayDateTimeZoned", {
|
|
4261
4261
|
viewerLocale: true
|
|
4262
4262
|
});
|
|
4263
4263
|
toast({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
-
import { ContentAreaWidthContext,
|
|
4
|
+
import { ContentAreaWidthContext, contentStepFor } from "../../hooks/ui/use-content-breakpoint.js";
|
|
5
5
|
import { useIsomorphicLayoutEffect } from "../../hooks/ui/use-isomorphic-layout-effect.js";
|
|
6
6
|
import { cn } from "../../utils/index.js";
|
|
7
7
|
import { NotificationDrawer } from "../features/notifications/notification-drawer.js";
|
|
@@ -59,7 +59,7 @@ function AppLayout({
|
|
|
59
59
|
const update = () => {
|
|
60
60
|
const width = mainElement.clientWidth;
|
|
61
61
|
setContentWidth(
|
|
62
|
-
(previous) => previous !== null &&
|
|
62
|
+
(previous) => previous !== null && contentStepFor(previous) === contentStepFor(width) ? previous : width
|
|
63
63
|
);
|
|
64
64
|
};
|
|
65
65
|
update();
|