@cimplify/sdk 0.100.6 → 0.102.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/advanced.d.mts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +20 -20
- package/dist/advanced.mjs +1 -1
- package/dist/{chunk-QPRI2NII.js → chunk-2P4KXFB6.js} +6 -0
- package/dist/{chunk-4G5UWFC3.mjs → chunk-3V4DVXV3.mjs} +6 -1
- package/dist/{chunk-KLJLKT6C.mjs → chunk-4KNFBPV2.mjs} +10 -3
- package/dist/{chunk-RQPXLXB2.mjs → chunk-DCMXUKDQ.mjs} +30 -0
- package/dist/{chunk-BMFWQNYZ.mjs → chunk-DKLHCZ5M.mjs} +4 -1
- package/dist/{chunk-PNTINRAU.js → chunk-EAZGA7LD.js} +30 -0
- package/dist/{chunk-BSZJSR62.js → chunk-LOWSMGRT.js} +12 -4
- package/dist/{chunk-D3FWJB7Y.js → chunk-YDA46OZ6.js} +50 -47
- package/dist/{chunk-3HU5I5VG.js → chunk-YER7DIOM.js} +15 -0
- package/dist/{chunk-Z7M6GAHS.mjs → chunk-Z3K2D3TE.mjs} +15 -0
- package/dist/{client-BwRAAk4y.d.mts → client-B40KFazg.d.ts} +15 -2
- package/dist/{client-DGrvLiJv.d.mts → client-BdErclfU.d.mts} +2 -2
- package/dist/{client-CrPglBBz.d.ts → client-BizGfqB7.d.mts} +15 -2
- package/dist/{client-CPcZIrjC.d.ts → client-nsiMwuC1.d.ts} +2 -2
- package/dist/{index-D-LUYk1Y.d.mts → index-DpmnI__D.d.mts} +3 -3
- package/dist/{index-B_RYmvlF.d.ts → index-nEyXWIyR.d.ts} +3 -3
- package/dist/index.d.mts +19 -8
- package/dist/index.d.ts +19 -8
- package/dist/index.js +92 -88
- package/dist/index.mjs +4 -4
- package/dist/mock/cli.mjs +30 -0
- package/dist/mock/library.js +30 -0
- package/dist/mock/library.mjs +30 -0
- package/dist/mock/msw.js +30 -0
- package/dist/mock/msw.mjs +30 -0
- package/dist/{payment-BSzy7sly.d.mts → payment-l0rkieEQ.d.mts} +1 -1
- package/dist/{payment-jK8ztICx.d.ts → payment-vzNnIi1n.d.ts} +1 -1
- package/dist/{price-CJLfcYKd.d.ts → price-BstChV9a.d.ts} +1 -1
- package/dist/{price-D96h6c6L.d.mts → price-CS4E5zLS.d.mts} +1 -1
- package/dist/{product-CeV8euw4.d.mts → product-Byf0unSy.d.mts} +745 -625
- package/dist/{product-CeV8euw4.d.ts → product-Byf0unSy.d.ts} +745 -625
- package/dist/react.d.mts +9 -4
- package/dist/react.d.ts +9 -4
- package/dist/react.js +137 -92
- package/dist/react.mjs +58 -13
- package/dist/server/evict.d.mts +12 -8
- package/dist/server/evict.d.ts +12 -8
- package/dist/server/evict.js +53 -7
- package/dist/server/evict.mjs +53 -7
- package/dist/server/tanstack.d.mts +4 -2
- package/dist/server/tanstack.d.ts +4 -2
- package/dist/server/tanstack.js +53 -14
- package/dist/server/tanstack.mjs +53 -14
- package/dist/{server-zyrpzJVn.d.ts → server-Cj40R2ZD.d.ts} +13 -1
- package/dist/{server-DRAW2OOX.d.mts → server-DqbZh8Bk.d.mts} +13 -1
- package/dist/server.d.mts +4 -4
- package/dist/server.d.ts +4 -4
- package/dist/server.js +7 -7
- package/dist/server.mjs +2 -2
- package/dist/testing/msw.d.mts +2 -2
- package/dist/testing/msw.d.ts +2 -2
- package/dist/testing/msw.js +2 -2
- package/dist/testing/msw.mjs +1 -1
- package/dist/testing/suite.d.mts +6 -6
- package/dist/testing/suite.d.ts +6 -6
- package/dist/testing/suite.js +23 -23
- package/dist/testing/suite.mjs +4 -4
- package/dist/testing.d.mts +52 -21
- package/dist/testing.d.ts +52 -21
- package/dist/testing.js +83 -79
- package/dist/testing.mjs +5 -5
- package/dist/utils.d.mts +4 -4
- package/dist/utils.d.ts +4 -4
- package/package.json +1 -1
- package/registry/cart-summary.json +1 -1
- package/registry/chat-widget.json +1 -1
package/dist/react.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkXREIZ56K_js = require('./chunk-XREIZ56K.js');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var chunk2P4KXFB6_js = require('./chunk-2P4KXFB6.js');
|
|
6
|
+
var chunkYDA46OZ6_js = require('./chunk-YDA46OZ6.js');
|
|
7
|
+
var chunkYER7DIOM_js = require('./chunk-YER7DIOM.js');
|
|
8
8
|
var chunkWMEC5JWN_js = require('./chunk-WMEC5JWN.js');
|
|
9
9
|
var chunkNIOUSKQQ_js = require('./chunk-NIOUSKQQ.js');
|
|
10
10
|
require('./chunk-OWW5GUSB.js');
|
|
@@ -454,6 +454,8 @@ function transformToCheckoutCart(cart, fx, checkout) {
|
|
|
454
454
|
total: amt(cart.pricing.total_price),
|
|
455
455
|
currency: fx?.displayCurrency ?? cart.pricing.currency,
|
|
456
456
|
tax_inclusive: cart.pricing.tax_inclusive ?? false,
|
|
457
|
+
tax_rate: cart.pricing.tax_rate,
|
|
458
|
+
price_display_mode: cart.pricing.price_display_mode,
|
|
457
459
|
deposit_required: cart.pricing.deposit_required ?? false,
|
|
458
460
|
deposit_amount: cart.pricing.deposit_amount != null ? amt(cart.pricing.deposit_amount) : void 0,
|
|
459
461
|
requires_delivery: cart.requires_delivery
|
|
@@ -706,7 +708,18 @@ function clearAllCartStores() {
|
|
|
706
708
|
cartStores.clear();
|
|
707
709
|
}
|
|
708
710
|
function emptyBase(currency, isLoading = true) {
|
|
709
|
-
return {
|
|
711
|
+
return {
|
|
712
|
+
items: [],
|
|
713
|
+
subtotal: 0,
|
|
714
|
+
tax: 0,
|
|
715
|
+
taxRate: null,
|
|
716
|
+
taxInclusive: false,
|
|
717
|
+
displayGross: false,
|
|
718
|
+
taxJurisdictionLabel: null,
|
|
719
|
+
total: 0,
|
|
720
|
+
currency,
|
|
721
|
+
isLoading
|
|
722
|
+
};
|
|
710
723
|
}
|
|
711
724
|
function buildStoreKey(client, locationId) {
|
|
712
725
|
return [client.getPublicKey() || "__no_public_key__", locationId || "__no_location__"].join(":");
|
|
@@ -799,6 +812,10 @@ function mapServerCart(serverCart, fallbackCurrency) {
|
|
|
799
812
|
items,
|
|
800
813
|
subtotal: roundMoney(toNumber(serverCart.pricing.subtotal)),
|
|
801
814
|
tax: roundMoney(toNumber(serverCart.pricing.tax_amount)),
|
|
815
|
+
taxRate: serverCart.pricing.tax_rate != null ? toNumber(serverCart.pricing.tax_rate) : null,
|
|
816
|
+
taxInclusive: serverCart.pricing.tax_inclusive,
|
|
817
|
+
displayGross: chunk2P4KXFB6_js.displaysGrossPrices(serverCart.pricing),
|
|
818
|
+
taxJurisdictionLabel: serverCart.pricing.tax_jurisdiction_label ?? null,
|
|
802
819
|
total: roundMoney(toNumber(serverCart.pricing.total_price)),
|
|
803
820
|
currency: serverCart.pricing.currency || fallbackCurrency,
|
|
804
821
|
isLoading: false
|
|
@@ -845,7 +862,7 @@ async function syncFromServer(entry) {
|
|
|
845
862
|
return next;
|
|
846
863
|
}
|
|
847
864
|
function emitMutationError(entry, operation, opId, idempotencyKey, error) {
|
|
848
|
-
entry.client.events.emit(
|
|
865
|
+
entry.client.events.emit(chunkYDA46OZ6_js.MUTATION_ERROR, {
|
|
849
866
|
service: "cart",
|
|
850
867
|
operation,
|
|
851
868
|
opId,
|
|
@@ -885,10 +902,10 @@ function getOrCreateStore(params) {
|
|
|
885
902
|
syncTail: Promise.resolve(),
|
|
886
903
|
failedOpRemovers: /* @__PURE__ */ new Set()
|
|
887
904
|
};
|
|
888
|
-
client.events.on(
|
|
905
|
+
client.events.on(chunkYDA46OZ6_js.SESSION_CLAIMED, () => {
|
|
889
906
|
if (entry.initialized) void syncFromServer(entry);
|
|
890
907
|
});
|
|
891
|
-
client.events.on(
|
|
908
|
+
client.events.on(chunkYDA46OZ6_js.SESSION_CLEARED, () => {
|
|
892
909
|
if (entry.initialized) void syncFromServer(entry);
|
|
893
910
|
});
|
|
894
911
|
cartStores.set(storeKey, entry);
|
|
@@ -1130,6 +1147,10 @@ function useCart(options = {}) {
|
|
|
1130
1147
|
itemCount,
|
|
1131
1148
|
subtotal: view.subtotal,
|
|
1132
1149
|
tax: view.tax,
|
|
1150
|
+
taxRate: view.taxRate,
|
|
1151
|
+
taxInclusive: view.taxInclusive,
|
|
1152
|
+
displayGross: view.displayGross,
|
|
1153
|
+
taxJurisdictionLabel: view.taxJurisdictionLabel,
|
|
1133
1154
|
total: view.total,
|
|
1134
1155
|
currency: view.currency,
|
|
1135
1156
|
isEmpty: itemCount === 0,
|
|
@@ -1192,7 +1213,7 @@ var DEFAULT_COUNTRY = "US";
|
|
|
1192
1213
|
function createDefaultClient() {
|
|
1193
1214
|
const processRef = globalThis.process;
|
|
1194
1215
|
const envPublicKey = processRef?.env?.NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY || "";
|
|
1195
|
-
return
|
|
1216
|
+
return chunkYDA46OZ6_js.createCimplifyClient({ publicKey: envPublicKey });
|
|
1196
1217
|
}
|
|
1197
1218
|
function getStoredLocationId() {
|
|
1198
1219
|
if (typeof window === "undefined" || !window.localStorage) {
|
|
@@ -1345,7 +1366,7 @@ function CimplifyProvider({
|
|
|
1345
1366
|
const apiCredentials = resolvedClient.getCredentialsMode() === "include" ? "use-credentials" : "anonymous";
|
|
1346
1367
|
preconnectOrigin(resolvedClient.getBaseUrl(), apiCredentials);
|
|
1347
1368
|
preconnectOrigin(resolvedClient.getLinkApiUrl(), apiCredentials);
|
|
1348
|
-
preconnectOrigin(
|
|
1369
|
+
preconnectOrigin(chunk2P4KXFB6_js.DEFAULT_CDN_BASE_URL);
|
|
1349
1370
|
}
|
|
1350
1371
|
const setCurrentLocation = React14.useCallback(
|
|
1351
1372
|
(location) => {
|
|
@@ -3504,7 +3525,7 @@ function CimplifySignInButton({
|
|
|
3504
3525
|
const onClick = async () => {
|
|
3505
3526
|
if (busy || disabled || !signInOpts.clientId) return;
|
|
3506
3527
|
setBusy(true);
|
|
3507
|
-
await
|
|
3528
|
+
await chunkYER7DIOM_js.startSignIn({
|
|
3508
3529
|
...signInOpts,
|
|
3509
3530
|
onSuccess: () => {
|
|
3510
3531
|
setBusy(false);
|
|
@@ -4972,9 +4993,9 @@ function useClientSessionEpoch(client) {
|
|
|
4972
4993
|
const subscribe = React14.useCallback(
|
|
4973
4994
|
(notify) => {
|
|
4974
4995
|
const unsubscribe = [
|
|
4975
|
-
client.events.on(
|
|
4976
|
-
client.events.on(
|
|
4977
|
-
client.events.on(
|
|
4996
|
+
client.events.on(chunkYDA46OZ6_js.AUTH_TOKEN_CHANGED, notify),
|
|
4997
|
+
client.events.on(chunkYDA46OZ6_js.SESSION_CLAIMED, notify),
|
|
4998
|
+
client.events.on(chunkYDA46OZ6_js.SESSION_CLEARED, notify)
|
|
4978
4999
|
];
|
|
4979
5000
|
return () => {
|
|
4980
5001
|
for (const stopListening of unsubscribe) {
|
|
@@ -6304,7 +6325,7 @@ function useChat(options = {}) {
|
|
|
6304
6325
|
const watchSessionClaims = React14.useCallback(() => {
|
|
6305
6326
|
const c = clientRef.current;
|
|
6306
6327
|
if (!c || claimUnsubRef.current) return;
|
|
6307
|
-
const unsubClaimed = c.events.on(
|
|
6328
|
+
const unsubClaimed = c.events.on(chunkYDA46OZ6_js.SESSION_CLAIMED, (event) => {
|
|
6308
6329
|
setClaimedAs(event.customerName || c.support.claimedCustomerName || null);
|
|
6309
6330
|
if (!openedRef.current) {
|
|
6310
6331
|
void openIfExisting();
|
|
@@ -6313,7 +6334,7 @@ function useChat(options = {}) {
|
|
|
6313
6334
|
connectWebSocket();
|
|
6314
6335
|
void resyncConversation();
|
|
6315
6336
|
});
|
|
6316
|
-
const unsubCleared = c.events.on(
|
|
6337
|
+
const unsubCleared = c.events.on(chunkYDA46OZ6_js.SESSION_CLEARED, resetConversation);
|
|
6317
6338
|
claimUnsubRef.current = () => {
|
|
6318
6339
|
unsubClaimed();
|
|
6319
6340
|
unsubCleared();
|
|
@@ -6365,7 +6386,7 @@ function useChat(options = {}) {
|
|
|
6365
6386
|
if (!openedRef.current) return false;
|
|
6366
6387
|
}
|
|
6367
6388
|
const replyTo = opts?.replyTo;
|
|
6368
|
-
const clientId =
|
|
6389
|
+
const clientId = chunkYER7DIOM_js.generateIdempotencyKey();
|
|
6369
6390
|
const localId = optimisticId(clientId);
|
|
6370
6391
|
const optimistic = {
|
|
6371
6392
|
id: localId,
|
|
@@ -6554,15 +6575,15 @@ function AuthElement({
|
|
|
6554
6575
|
}, [onReady, onAuthenticated, onError]);
|
|
6555
6576
|
React14.useEffect(() => {
|
|
6556
6577
|
if (!elements || !containerRef.current) return;
|
|
6557
|
-
const element = elements.create(
|
|
6578
|
+
const element = elements.create(chunkYER7DIOM_js.ELEMENT_TYPES.AUTH, { prefillEmail });
|
|
6558
6579
|
elementRef.current = element;
|
|
6559
|
-
element.on(
|
|
6580
|
+
element.on(chunkYER7DIOM_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
|
|
6560
6581
|
element.on(
|
|
6561
|
-
|
|
6582
|
+
chunkYER7DIOM_js.EVENT_TYPES.AUTHENTICATED,
|
|
6562
6583
|
(data) => onAuthenticatedRef.current?.(data)
|
|
6563
6584
|
);
|
|
6564
6585
|
element.on(
|
|
6565
|
-
|
|
6586
|
+
chunkYER7DIOM_js.EVENT_TYPES.ERROR,
|
|
6566
6587
|
(data) => onErrorRef.current?.(data)
|
|
6567
6588
|
);
|
|
6568
6589
|
element.mount(containerRef.current);
|
|
@@ -6591,15 +6612,15 @@ function AddressElement({
|
|
|
6591
6612
|
}, [onReady, onChange, onError]);
|
|
6592
6613
|
React14.useEffect(() => {
|
|
6593
6614
|
if (!elements || !containerRef.current) return;
|
|
6594
|
-
const element = elements.create(
|
|
6615
|
+
const element = elements.create(chunkYER7DIOM_js.ELEMENT_TYPES.ADDRESS, { mode });
|
|
6595
6616
|
elementRef.current = element;
|
|
6596
|
-
element.on(
|
|
6617
|
+
element.on(chunkYER7DIOM_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
|
|
6597
6618
|
element.on(
|
|
6598
|
-
|
|
6619
|
+
chunkYER7DIOM_js.EVENT_TYPES.CHANGE,
|
|
6599
6620
|
(data) => onChangeRef.current?.(data)
|
|
6600
6621
|
);
|
|
6601
6622
|
element.on(
|
|
6602
|
-
|
|
6623
|
+
chunkYER7DIOM_js.EVENT_TYPES.ERROR,
|
|
6603
6624
|
(data) => onErrorRef.current?.(data)
|
|
6604
6625
|
);
|
|
6605
6626
|
element.mount(containerRef.current);
|
|
@@ -6629,15 +6650,15 @@ function PaymentElement({
|
|
|
6629
6650
|
}, [onReady, onChange, onError]);
|
|
6630
6651
|
React14.useEffect(() => {
|
|
6631
6652
|
if (!elements || !containerRef.current) return;
|
|
6632
|
-
const element = elements.create(
|
|
6653
|
+
const element = elements.create(chunkYER7DIOM_js.ELEMENT_TYPES.PAYMENT, { amount, currency });
|
|
6633
6654
|
elementRef.current = element;
|
|
6634
|
-
element.on(
|
|
6655
|
+
element.on(chunkYER7DIOM_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
|
|
6635
6656
|
element.on(
|
|
6636
|
-
|
|
6657
|
+
chunkYER7DIOM_js.EVENT_TYPES.CHANGE,
|
|
6637
6658
|
(data) => onChangeRef.current?.(data)
|
|
6638
6659
|
);
|
|
6639
6660
|
element.on(
|
|
6640
|
-
|
|
6661
|
+
chunkYER7DIOM_js.EVENT_TYPES.ERROR,
|
|
6641
6662
|
(data) => onErrorRef.current?.(data)
|
|
6642
6663
|
);
|
|
6643
6664
|
element.mount(containerRef.current);
|
|
@@ -6928,7 +6949,7 @@ function VariantSelector({
|
|
|
6928
6949
|
{
|
|
6929
6950
|
"data-cimplify-variant-name": true,
|
|
6930
6951
|
className: cn("flex-1 min-w-0 text-sm", classNames?.name),
|
|
6931
|
-
children:
|
|
6952
|
+
children: chunk2P4KXFB6_js.getVariantDisplayName(variant, productName)
|
|
6932
6953
|
}
|
|
6933
6954
|
),
|
|
6934
6955
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { "data-cimplify-variant-pricing": true, className: cn("text-sm text-muted-foreground", classNames?.pricing), children: [
|
|
@@ -8726,12 +8747,12 @@ function FieldInput({
|
|
|
8726
8747
|
classNames?.input
|
|
8727
8748
|
);
|
|
8728
8749
|
switch (field.field_type) {
|
|
8729
|
-
case
|
|
8730
|
-
case
|
|
8750
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Text:
|
|
8751
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Url:
|
|
8731
8752
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8732
8753
|
"input",
|
|
8733
8754
|
{
|
|
8734
|
-
type: field.field_type ===
|
|
8755
|
+
type: field.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Url ? "url" : "text",
|
|
8735
8756
|
value: typeof value === "string" ? value : "",
|
|
8736
8757
|
onChange: (e) => onValueChange(e.target.value),
|
|
8737
8758
|
placeholder: field.placeholder,
|
|
@@ -8740,7 +8761,7 @@ function FieldInput({
|
|
|
8740
8761
|
className: inputClass
|
|
8741
8762
|
}
|
|
8742
8763
|
);
|
|
8743
|
-
case
|
|
8764
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Textarea:
|
|
8744
8765
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8745
8766
|
"textarea",
|
|
8746
8767
|
{
|
|
@@ -8753,7 +8774,7 @@ function FieldInput({
|
|
|
8753
8774
|
className: cn(inputClass, "resize-none", classNames?.textarea)
|
|
8754
8775
|
}
|
|
8755
8776
|
);
|
|
8756
|
-
case
|
|
8777
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Number:
|
|
8757
8778
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8758
8779
|
"input",
|
|
8759
8780
|
{
|
|
@@ -8767,7 +8788,7 @@ function FieldInput({
|
|
|
8767
8788
|
className: inputClass
|
|
8768
8789
|
}
|
|
8769
8790
|
);
|
|
8770
|
-
case
|
|
8791
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Select:
|
|
8771
8792
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8772
8793
|
"select",
|
|
8773
8794
|
{
|
|
@@ -8781,7 +8802,7 @@ function FieldInput({
|
|
|
8781
8802
|
]
|
|
8782
8803
|
}
|
|
8783
8804
|
);
|
|
8784
|
-
case
|
|
8805
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Radio:
|
|
8785
8806
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-2", classNames?.radioGroup), children: (field.options || []).map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8786
8807
|
"label",
|
|
8787
8808
|
{
|
|
@@ -8806,7 +8827,7 @@ function FieldInput({
|
|
|
8806
8827
|
},
|
|
8807
8828
|
opt
|
|
8808
8829
|
)) });
|
|
8809
|
-
case
|
|
8830
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Checkbox:
|
|
8810
8831
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: cn("flex items-center gap-2 text-sm cursor-pointer", classNames?.checkboxLabel), children: [
|
|
8811
8832
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8812
8833
|
"input",
|
|
@@ -8819,7 +8840,7 @@ function FieldInput({
|
|
|
8819
8840
|
),
|
|
8820
8841
|
field.placeholder || field.name
|
|
8821
8842
|
] });
|
|
8822
|
-
case
|
|
8843
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Color:
|
|
8823
8844
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8824
8845
|
"input",
|
|
8825
8846
|
{
|
|
@@ -8829,7 +8850,7 @@ function FieldInput({
|
|
|
8829
8850
|
className: cn("w-12 h-10 rounded-md border border-input cursor-pointer", classNames?.colorInput)
|
|
8830
8851
|
}
|
|
8831
8852
|
);
|
|
8832
|
-
case
|
|
8853
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Date:
|
|
8833
8854
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8834
8855
|
DatePicker,
|
|
8835
8856
|
{
|
|
@@ -8840,8 +8861,8 @@ function FieldInput({
|
|
|
8840
8861
|
"aria-label": field.name
|
|
8841
8862
|
}
|
|
8842
8863
|
);
|
|
8843
|
-
case
|
|
8844
|
-
case
|
|
8864
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.File:
|
|
8865
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Image:
|
|
8845
8866
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8846
8867
|
FileUploadInput,
|
|
8847
8868
|
{
|
|
@@ -8852,7 +8873,7 @@ function FieldInput({
|
|
|
8852
8873
|
classNames
|
|
8853
8874
|
}
|
|
8854
8875
|
);
|
|
8855
|
-
case
|
|
8876
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Email:
|
|
8856
8877
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8857
8878
|
"input",
|
|
8858
8879
|
{
|
|
@@ -8864,7 +8885,7 @@ function FieldInput({
|
|
|
8864
8885
|
className: inputClass
|
|
8865
8886
|
}
|
|
8866
8887
|
);
|
|
8867
|
-
case
|
|
8888
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.DateTime: {
|
|
8868
8889
|
const stringValue = typeof value === "string" ? value : "";
|
|
8869
8890
|
const [datePart, timePartRaw] = stringValue.includes("T") ? stringValue.split("T", 2) : [stringValue, ""];
|
|
8870
8891
|
const timePart = (timePartRaw ?? "").slice(0, 5);
|
|
@@ -8903,7 +8924,7 @@ function FieldInput({
|
|
|
8903
8924
|
)
|
|
8904
8925
|
] });
|
|
8905
8926
|
}
|
|
8906
|
-
case
|
|
8927
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Time:
|
|
8907
8928
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8908
8929
|
TimePicker,
|
|
8909
8930
|
{
|
|
@@ -8914,7 +8935,7 @@ function FieldInput({
|
|
|
8914
8935
|
"aria-label": field.name
|
|
8915
8936
|
}
|
|
8916
8937
|
);
|
|
8917
|
-
case
|
|
8938
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.MultiSelect:
|
|
8918
8939
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8919
8940
|
MultiSelectInput,
|
|
8920
8941
|
{
|
|
@@ -8924,7 +8945,7 @@ function FieldInput({
|
|
|
8924
8945
|
classNames
|
|
8925
8946
|
}
|
|
8926
8947
|
);
|
|
8927
|
-
case
|
|
8948
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.DateRange:
|
|
8928
8949
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8929
8950
|
DateRangeInput,
|
|
8930
8951
|
{
|
|
@@ -8934,7 +8955,7 @@ function FieldInput({
|
|
|
8934
8955
|
classNames
|
|
8935
8956
|
}
|
|
8936
8957
|
);
|
|
8937
|
-
case
|
|
8958
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Address:
|
|
8938
8959
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8939
8960
|
AddressInput,
|
|
8940
8961
|
{
|
|
@@ -8945,7 +8966,7 @@ function FieldInput({
|
|
|
8945
8966
|
inputClass
|
|
8946
8967
|
}
|
|
8947
8968
|
);
|
|
8948
|
-
case
|
|
8969
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Location:
|
|
8949
8970
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8950
8971
|
LocationInput,
|
|
8951
8972
|
{
|
|
@@ -8956,7 +8977,7 @@ function FieldInput({
|
|
|
8956
8977
|
inputClass
|
|
8957
8978
|
}
|
|
8958
8979
|
);
|
|
8959
|
-
case
|
|
8980
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Phone:
|
|
8960
8981
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8961
8982
|
PhoneInput,
|
|
8962
8983
|
{
|
|
@@ -8967,7 +8988,7 @@ function FieldInput({
|
|
|
8967
8988
|
inputClass
|
|
8968
8989
|
}
|
|
8969
8990
|
);
|
|
8970
|
-
case
|
|
8991
|
+
case chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Signature:
|
|
8971
8992
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8972
8993
|
SignatureInput,
|
|
8973
8994
|
{
|
|
@@ -9000,7 +9021,7 @@ function FileUploadInput({
|
|
|
9000
9021
|
const [isUploading, setIsUploading] = React14__default.default.useState(false);
|
|
9001
9022
|
const fileUrl = typeof value === "string" ? value : void 0;
|
|
9002
9023
|
const acceptedFormats = field.validation?.accepted_formats;
|
|
9003
|
-
const accept = acceptedFormats ? acceptedFormats.map((f) => `.${f}`).join(",") : field.field_type ===
|
|
9024
|
+
const accept = acceptedFormats ? acceptedFormats.map((f) => `.${f}`).join(",") : field.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Image ? "image/*" : void 0;
|
|
9004
9025
|
const handleFile = async (file) => {
|
|
9005
9026
|
if (!onFileUpload) return;
|
|
9006
9027
|
if (field.validation?.max_size_mb) {
|
|
@@ -9018,7 +9039,7 @@ function FileUploadInput({
|
|
|
9018
9039
|
}
|
|
9019
9040
|
};
|
|
9020
9041
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-2", classNames?.fileInput), children: fileUrl ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
9021
|
-
field.field_type ===
|
|
9042
|
+
field.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Image && /* @__PURE__ */ jsxRuntime.jsx("img", { src: fileUrl, alt: "Uploaded", className: "w-16 h-16 object-cover rounded-md border border-border" }),
|
|
9022
9043
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground truncate", children: fileUrl.split("/").pop() }) }),
|
|
9023
9044
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9024
9045
|
"button",
|
|
@@ -9044,7 +9065,7 @@ function FileUploadInput({
|
|
|
9044
9065
|
}
|
|
9045
9066
|
),
|
|
9046
9067
|
isUploading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "Uploading..." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9047
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: field.placeholder || `Upload ${field.field_type ===
|
|
9068
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: field.placeholder || `Upload ${field.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Image ? "image" : "file"}` }),
|
|
9048
9069
|
acceptedFormats && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground/60 mt-1", children: [
|
|
9049
9070
|
acceptedFormats.map((f) => f.toUpperCase()).join(", "),
|
|
9050
9071
|
field.validation?.max_size_mb && ` \xB7 Max ${field.validation.max_size_mb}MB`
|
|
@@ -9791,7 +9812,7 @@ function ProductCustomizerContent({
|
|
|
9791
9812
|
const isBundle = productType === "bundle";
|
|
9792
9813
|
const isDigital = productType === "digital";
|
|
9793
9814
|
const isService = productType === "service";
|
|
9794
|
-
const offersUnits = isService &&
|
|
9815
|
+
const offersUnits = isService && chunk2P4KXFB6_js.isMultiDayService(product);
|
|
9795
9816
|
const isStandard = !isComposite && !isBundle;
|
|
9796
9817
|
const hasVariants = isStandard && product.variants && product.variants.length > 0;
|
|
9797
9818
|
const hasAddOns = isStandard && product.add_ons && product.add_ons.length > 0;
|
|
@@ -9908,7 +9929,7 @@ function ProductCustomizerContent({
|
|
|
9908
9929
|
const validationMessage = !quoteEnabled ? REQUIRED_OPTIONS_MESSAGE : quoteError ? QUOTE_UNAVAILABLE_MESSAGE : !quoteIsReady ? QUOTE_LOADING_MESSAGE : null;
|
|
9909
9930
|
const displayTotalPrice = React14.useMemo(() => {
|
|
9910
9931
|
const total = quotedTotalPrice ?? localTotalPrice;
|
|
9911
|
-
const multiplier =
|
|
9932
|
+
const multiplier = chunk2P4KXFB6_js.serviceBillingMultiplier(product, {
|
|
9912
9933
|
quantity,
|
|
9913
9934
|
units: unitsCount,
|
|
9914
9935
|
scheduledStart: selectedSlot?.start_time,
|
|
@@ -10709,7 +10730,7 @@ function CartLineItemRow({
|
|
|
10709
10730
|
const isOptimistic2 = item.isOptimistic === true;
|
|
10710
10731
|
const lineTotal = chunkWMEC5JWN_js.parsePrice(unitPrice) * item.quantity;
|
|
10711
10732
|
const imageUrl = item.product.image_url;
|
|
10712
|
-
const variantLabel2 = item.variant ?
|
|
10733
|
+
const variantLabel2 = item.variant ? chunk2P4KXFB6_js.getVariantDisplayName(item.variant, item.product.name) : null;
|
|
10713
10734
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10714
10735
|
"div",
|
|
10715
10736
|
{
|
|
@@ -10835,7 +10856,7 @@ function CartLineItemRow({
|
|
|
10835
10856
|
input.field_name,
|
|
10836
10857
|
":"
|
|
10837
10858
|
] }),
|
|
10838
|
-
/* @__PURE__ */ jsxRuntime.jsx("dd", { "data-cimplify-cart-input-value": true, className: "text-foreground m-0 truncate", children: input.field_type ===
|
|
10859
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { "data-cimplify-cart-input-value": true, className: "text-foreground m-0 truncate", children: input.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.File || input.field_type === chunk2P4KXFB6_js.INPUT_FIELD_TYPE.Image ? String(input.value).split("/").pop() || "Uploaded file" : String(input.value) })
|
|
10839
10860
|
] }, input.field_id))
|
|
10840
10861
|
}
|
|
10841
10862
|
),
|
|
@@ -10985,6 +11006,9 @@ function CartSummary({
|
|
|
10985
11006
|
itemCount,
|
|
10986
11007
|
subtotal,
|
|
10987
11008
|
tax,
|
|
11009
|
+
taxRate,
|
|
11010
|
+
taxInclusive,
|
|
11011
|
+
taxJurisdictionLabel,
|
|
10988
11012
|
total,
|
|
10989
11013
|
isEmpty,
|
|
10990
11014
|
isOptimistic: isOptimistic2,
|
|
@@ -11117,7 +11141,13 @@ function CartSummary({
|
|
|
11117
11141
|
"data-cimplify-cart-tax": true,
|
|
11118
11142
|
className: cn("flex items-baseline justify-between", classNames?.tax),
|
|
11119
11143
|
children: [
|
|
11120
|
-
/* @__PURE__ */ jsxRuntime.
|
|
11144
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-baseline gap-1.5 text-muted-foreground", children: [
|
|
11145
|
+
taxInclusive ? "Tax, included in prices" : taxJurisdictionLabel ? `Sales tax, ${taxJurisdictionLabel}` : "Sales tax",
|
|
11146
|
+
taxRate != null && taxRate > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "rounded-full bg-muted px-1.5 py-0.5 text-[11px] font-medium", children: [
|
|
11147
|
+
taxRate,
|
|
11148
|
+
"%"
|
|
11149
|
+
] })
|
|
11150
|
+
] }),
|
|
11121
11151
|
/* @__PURE__ */ jsxRuntime.jsx(Price, { amount: tax, currency: displayCurrency, className: "tabular-nums" })
|
|
11122
11152
|
]
|
|
11123
11153
|
}
|
|
@@ -11879,7 +11909,7 @@ function FoodProductCard({
|
|
|
11879
11909
|
const tags = product.tags || [];
|
|
11880
11910
|
const isSignature = product.metadata?.is_signature === true;
|
|
11881
11911
|
const isNew = product.metadata?.is_new === true;
|
|
11882
|
-
const isComposite = product.type ===
|
|
11912
|
+
const isComposite = product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Composite;
|
|
11883
11913
|
return /* @__PURE__ */ jsxRuntime.jsxs(CardShell, { product, renderLink, className, children: [
|
|
11884
11914
|
/* @__PURE__ */ jsxRuntime.jsxs(CardImage, { src: image, alt: product.name, aspectRatio: "square", renderImage, children: [
|
|
11885
11915
|
isSignature && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "absolute top-3 left-3 inline-flex items-center gap-1 text-[11px] font-semibold tracking-wide bg-amber-50 text-amber-700 border border-amber-200/60 px-2 py-0.5 rounded-md", children: [
|
|
@@ -12646,36 +12676,36 @@ var BUILT_IN_CARDS = {
|
|
|
12646
12676
|
["composite" /* Composite */]: CompositeProductCard,
|
|
12647
12677
|
["subscription" /* Subscription */]: SubscriptionCard
|
|
12648
12678
|
};
|
|
12649
|
-
var RENTAL_UNITS = /* @__PURE__ */ new Set([
|
|
12650
|
-
var LEASE_UNITS = /* @__PURE__ */ new Set([
|
|
12679
|
+
var RENTAL_UNITS = /* @__PURE__ */ new Set([chunk2P4KXFB6_js.DURATION_UNIT.Days, chunk2P4KXFB6_js.DURATION_UNIT.Hours]);
|
|
12680
|
+
var LEASE_UNITS = /* @__PURE__ */ new Set([chunk2P4KXFB6_js.DURATION_UNIT.Weeks, chunk2P4KXFB6_js.DURATION_UNIT.Months, chunk2P4KXFB6_js.DURATION_UNIT.Years]);
|
|
12651
12681
|
function resolveCardVariant(product) {
|
|
12652
|
-
if (product.type ===
|
|
12682
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Bundle) {
|
|
12653
12683
|
return "bundle" /* Bundle */;
|
|
12654
12684
|
}
|
|
12655
|
-
if (product.type ===
|
|
12685
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Composite) {
|
|
12656
12686
|
return "composite" /* Composite */;
|
|
12657
12687
|
}
|
|
12658
12688
|
if (product.quantity_pricing && product.quantity_pricing.length > 1) {
|
|
12659
12689
|
return "wholesale" /* Wholesale */;
|
|
12660
12690
|
}
|
|
12661
|
-
if (product.type ===
|
|
12691
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Digital) {
|
|
12662
12692
|
return "digital" /* Digital */;
|
|
12663
12693
|
}
|
|
12664
|
-
if (product.type ===
|
|
12694
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Service) {
|
|
12665
12695
|
switch (product.boundary_kind) {
|
|
12666
|
-
case
|
|
12696
|
+
case chunk2P4KXFB6_js.BOUNDARY_KIND.CheckInOut:
|
|
12667
12697
|
return "accommodation" /* Accommodation */;
|
|
12668
|
-
case
|
|
12698
|
+
case chunk2P4KXFB6_js.BOUNDARY_KIND.MoveInOut:
|
|
12669
12699
|
return "lease" /* Lease */;
|
|
12670
|
-
case
|
|
12671
|
-
case
|
|
12672
|
-
case
|
|
12700
|
+
case chunk2P4KXFB6_js.BOUNDARY_KIND.PickupReturn:
|
|
12701
|
+
case chunk2P4KXFB6_js.BOUNDARY_KIND.DeliveryCollection:
|
|
12702
|
+
case chunk2P4KXFB6_js.BOUNDARY_KIND.AccessVacate:
|
|
12673
12703
|
return "rental" /* Rental */;
|
|
12674
12704
|
}
|
|
12675
12705
|
if (product.duration_unit && RENTAL_UNITS.has(product.duration_unit)) {
|
|
12676
12706
|
return "rental" /* Rental */;
|
|
12677
12707
|
}
|
|
12678
|
-
if (product.duration_unit ===
|
|
12708
|
+
if (product.duration_unit === chunk2P4KXFB6_js.DURATION_UNIT.Nights) {
|
|
12679
12709
|
return "accommodation" /* Accommodation */;
|
|
12680
12710
|
}
|
|
12681
12711
|
if (product.duration_unit && LEASE_UNITS.has(product.duration_unit)) {
|
|
@@ -12686,10 +12716,10 @@ function resolveCardVariant(product) {
|
|
|
12686
12716
|
}
|
|
12687
12717
|
return "standard" /* Standard */;
|
|
12688
12718
|
}
|
|
12689
|
-
if (product.render_hint ===
|
|
12719
|
+
if (product.render_hint === chunk2P4KXFB6_js.RENDER_HINT.Food) {
|
|
12690
12720
|
return "food" /* Food */;
|
|
12691
12721
|
}
|
|
12692
|
-
if (product.render_hint ===
|
|
12722
|
+
if (product.render_hint === chunk2P4KXFB6_js.RENDER_HINT.Physical) {
|
|
12693
12723
|
return "retail" /* Retail */;
|
|
12694
12724
|
}
|
|
12695
12725
|
return "retail" /* Retail */;
|
|
@@ -12969,14 +12999,14 @@ var PRESET_LABELS = {
|
|
|
12969
12999
|
move_in_out: { start: "Move-in", end: "Move-out" }
|
|
12970
13000
|
};
|
|
12971
13001
|
function defaultBoundaryKind(unit) {
|
|
12972
|
-
return unit ===
|
|
13002
|
+
return unit === chunk2P4KXFB6_js.DURATION_UNIT.Nights ? chunk2P4KXFB6_js.BOUNDARY_KIND.CheckInOut : chunk2P4KXFB6_js.BOUNDARY_KIND.PickupReturn;
|
|
12973
13003
|
}
|
|
12974
13004
|
function resolveBoundaryKind(product) {
|
|
12975
13005
|
return product.boundary_kind ?? defaultBoundaryKind(product.duration_unit);
|
|
12976
13006
|
}
|
|
12977
13007
|
function getBoundaryLabels(product) {
|
|
12978
13008
|
const kind = resolveBoundaryKind(product);
|
|
12979
|
-
if (kind ===
|
|
13009
|
+
if (kind === chunk2P4KXFB6_js.BOUNDARY_KIND.Custom) {
|
|
12980
13010
|
return {
|
|
12981
13011
|
start: product.boundary_start_label?.trim() || "Start",
|
|
12982
13012
|
end: product.boundary_end_label?.trim() || "End"
|
|
@@ -15064,7 +15094,7 @@ function DefaultProductLayout({
|
|
|
15064
15094
|
className
|
|
15065
15095
|
}) {
|
|
15066
15096
|
const [selectedVariantId, setSelectedVariantId] = React14__default.default.useState();
|
|
15067
|
-
const images =
|
|
15097
|
+
const images = chunk2P4KXFB6_js.resolveGallery(product, selectedVariantId);
|
|
15068
15098
|
const currency = chunkWMEC5JWN_js.getProductCurrency(product);
|
|
15069
15099
|
const hasRange = product.quantity_pricing && product.quantity_pricing.length > 1 || product.variants && product.variants.length > 1;
|
|
15070
15100
|
const onSale = chunkWMEC5JWN_js.isOnSale(product);
|
|
@@ -15711,25 +15741,25 @@ function resolveTemplateKey(product) {
|
|
|
15711
15741
|
if (typeof metaTemplate === "string" && metaTemplate.trim()) {
|
|
15712
15742
|
return metaTemplate.trim();
|
|
15713
15743
|
}
|
|
15714
|
-
if (product.type ===
|
|
15744
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Bundle) {
|
|
15715
15745
|
return "bundle" /* Bundle */;
|
|
15716
15746
|
}
|
|
15717
|
-
if (product.type ===
|
|
15747
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Composite) {
|
|
15718
15748
|
return "composite" /* Composite */;
|
|
15719
15749
|
}
|
|
15720
15750
|
if (product.quantity_pricing && product.quantity_pricing.length > 1) {
|
|
15721
15751
|
return "wholesale" /* Wholesale */;
|
|
15722
15752
|
}
|
|
15723
|
-
if (product.type ===
|
|
15753
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Service) {
|
|
15724
15754
|
return "service" /* Service */;
|
|
15725
15755
|
}
|
|
15726
|
-
if (product.type ===
|
|
15756
|
+
if (product.type === chunk2P4KXFB6_js.PRODUCT_TYPE.Digital) {
|
|
15727
15757
|
return "digital" /* Digital */;
|
|
15728
15758
|
}
|
|
15729
|
-
if (product.render_hint ===
|
|
15759
|
+
if (product.render_hint === chunk2P4KXFB6_js.RENDER_HINT.Food) {
|
|
15730
15760
|
return "food" /* Food */;
|
|
15731
15761
|
}
|
|
15732
|
-
if (product.render_hint ===
|
|
15762
|
+
if (product.render_hint === chunk2P4KXFB6_js.RENDER_HINT.Physical) {
|
|
15733
15763
|
return "physical" /* Physical */;
|
|
15734
15764
|
}
|
|
15735
15765
|
return "default" /* Default */;
|
|
@@ -18115,7 +18145,7 @@ function chatTimeline(messages, options = {}) {
|
|
|
18115
18145
|
const { readAt = null, rendersPrograms = false } = options;
|
|
18116
18146
|
const partitioned = partitionMessages(messages);
|
|
18117
18147
|
const bubbles = partitioned.bubbles.filter(
|
|
18118
|
-
(message) => message.sender_type === "system" || message.attachments.length > 0 ||
|
|
18148
|
+
(message) => message.sender_type === "system" || message.attachments.length > 0 || chunk2P4KXFB6_js.chatMessageCards(message).length > 0 || rendersPrograms && hasProgram(message.content) || (message.sender_type === "customer" ? message.content.trim() !== "" : proseOf(message.content) !== "")
|
|
18119
18149
|
);
|
|
18120
18150
|
let firstUnreadId;
|
|
18121
18151
|
let unreadOnOpen = 0;
|
|
@@ -20201,7 +20231,7 @@ function ChatKitProgram({ source, onAction }) {
|
|
|
20201
20231
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[290px]", children: /* @__PURE__ */ jsxRuntime.jsx(GenUIView, { root: parsed.root, components: CHAT_GENUI_COMPONENTS, onAction }) });
|
|
20202
20232
|
}
|
|
20203
20233
|
function ChatReplyCards({ message, currency, onAction }) {
|
|
20204
|
-
const cards =
|
|
20234
|
+
const cards = chunk2P4KXFB6_js.chatMessageCards(message);
|
|
20205
20235
|
if (cards.length === 0) return null;
|
|
20206
20236
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "scrollbar-hide flex max-w-full gap-2 overflow-x-auto pl-[30px]", children: cards.map((card, index) => /* @__PURE__ */ jsxRuntime.jsx(ReplyCardView, { card, currency, onAction }, index)) });
|
|
20207
20237
|
}
|
|
@@ -20258,7 +20288,20 @@ function ReplyCardView({
|
|
|
20258
20288
|
}
|
|
20259
20289
|
);
|
|
20260
20290
|
}
|
|
20261
|
-
var MAX_ATTACHMENT_BYTES =
|
|
20291
|
+
var MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024;
|
|
20292
|
+
var DOCUMENT_MIME_TYPES = /* @__PURE__ */ new Set([
|
|
20293
|
+
"application/pdf",
|
|
20294
|
+
"text/plain",
|
|
20295
|
+
"text/csv",
|
|
20296
|
+
"application/msword",
|
|
20297
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
20298
|
+
"application/vnd.ms-excel",
|
|
20299
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
20300
|
+
]);
|
|
20301
|
+
var ATTACHMENT_ACCEPT = ["image/*", ...DOCUMENT_MIME_TYPES].join(",");
|
|
20302
|
+
function isAllowedAttachment(file) {
|
|
20303
|
+
return file.type.startsWith("image/") || DOCUMENT_MIME_TYPES.has(file.type);
|
|
20304
|
+
}
|
|
20262
20305
|
var KEEP_DISMISSED_KEY = "cimplify_keep_chat_dismissed";
|
|
20263
20306
|
var AT_BOTTOM_SLACK_PX = 48;
|
|
20264
20307
|
function ChatWidget({
|
|
@@ -20304,16 +20347,18 @@ function ChatWidget({
|
|
|
20304
20347
|
openIfExisting
|
|
20305
20348
|
} = useChat({ client, pollInterval });
|
|
20306
20349
|
const showTyping = isSending || awaitingReply;
|
|
20307
|
-
const
|
|
20350
|
+
const attachFile = React14.useCallback(
|
|
20308
20351
|
async (file) => {
|
|
20309
20352
|
if (!client) return;
|
|
20310
20353
|
setAttachError(null);
|
|
20311
|
-
if (!file
|
|
20312
|
-
setAttachError(
|
|
20354
|
+
if (!isAllowedAttachment(file)) {
|
|
20355
|
+
setAttachError(
|
|
20356
|
+
new chunkNIOUSKQQ_js.CimplifyError("invalid_attachment", "Only photos and documents can be attached.")
|
|
20357
|
+
);
|
|
20313
20358
|
return;
|
|
20314
20359
|
}
|
|
20315
20360
|
if (file.size > MAX_ATTACHMENT_BYTES) {
|
|
20316
|
-
setAttachError(new chunkNIOUSKQQ_js.CimplifyError("attachment_too_large", "
|
|
20361
|
+
setAttachError(new chunkNIOUSKQQ_js.CimplifyError("attachment_too_large", "Files must be under 25MB."));
|
|
20317
20362
|
return;
|
|
20318
20363
|
}
|
|
20319
20364
|
const uploaded = await client.uploads.upload(file);
|
|
@@ -20405,7 +20450,7 @@ function ChatWidget({
|
|
|
20405
20450
|
onCancelReply: () => setReplyTo(null),
|
|
20406
20451
|
onRequestHuman: () => void requestHuman(),
|
|
20407
20452
|
onLoadOlder: () => void loadOlder(),
|
|
20408
|
-
onAttach:
|
|
20453
|
+
onAttach: attachFile,
|
|
20409
20454
|
onStartConversation: startConversation,
|
|
20410
20455
|
currency,
|
|
20411
20456
|
onGenUIAction,
|
|
@@ -21029,7 +21074,7 @@ function ChatInput({
|
|
|
21029
21074
|
{
|
|
21030
21075
|
ref: fileRef,
|
|
21031
21076
|
type: "file",
|
|
21032
|
-
accept:
|
|
21077
|
+
accept: ATTACHMENT_ACCEPT,
|
|
21033
21078
|
className: "hidden",
|
|
21034
21079
|
"aria-hidden": "true",
|
|
21035
21080
|
tabIndex: -1,
|
|
@@ -21256,7 +21301,7 @@ Object.defineProperty(exports, "splitGenUIContent", {
|
|
|
21256
21301
|
});
|
|
21257
21302
|
Object.defineProperty(exports, "getVariantDisplayName", {
|
|
21258
21303
|
enumerable: true,
|
|
21259
|
-
get: function () { return
|
|
21304
|
+
get: function () { return chunk2P4KXFB6_js.getVariantDisplayName; }
|
|
21260
21305
|
});
|
|
21261
21306
|
exports.AccommodationCard = AccommodationCard;
|
|
21262
21307
|
exports.AccountContent = AccountContent;
|