@tapcart/mobile-components 0.8.56 → 0.8.57

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.
@@ -0,0 +1,35 @@
1
+ import * as React from "react";
2
+ declare const InputOTP: React.ForwardRefExoticComponent<(Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
3
+ value?: string | undefined;
4
+ onChange?: ((newValue: string) => unknown) | undefined;
5
+ maxLength: number;
6
+ textAlign?: "left" | "right" | "center" | undefined;
7
+ onComplete?: ((...args: any[]) => unknown) | undefined;
8
+ pushPasswordManagerStrategy?: "none" | "increase-width" | undefined;
9
+ pasteTransformer?: ((pasted: string) => string) | undefined;
10
+ containerClassName?: string | undefined;
11
+ noScriptCSSFallback?: string | null | undefined;
12
+ } & {
13
+ render: (props: import("input-otp").RenderProps) => React.ReactNode;
14
+ children?: undefined;
15
+ } & React.RefAttributes<HTMLInputElement>, "ref"> | Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
16
+ value?: string | undefined;
17
+ onChange?: ((newValue: string) => unknown) | undefined;
18
+ maxLength: number;
19
+ textAlign?: "left" | "right" | "center" | undefined;
20
+ onComplete?: ((...args: any[]) => unknown) | undefined;
21
+ pushPasswordManagerStrategy?: "none" | "increase-width" | undefined;
22
+ pasteTransformer?: ((pasted: string) => string) | undefined;
23
+ containerClassName?: string | undefined;
24
+ noScriptCSSFallback?: string | null | undefined;
25
+ } & {
26
+ render?: undefined;
27
+ children: React.ReactNode;
28
+ } & React.RefAttributes<HTMLInputElement>, "ref">) & React.RefAttributes<HTMLInputElement>>;
29
+ declare const InputOTPGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
30
+ declare const InputOTPSlot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
31
+ index: number;
32
+ } & React.RefAttributes<HTMLDivElement>>;
33
+ declare const InputOTPSeparator: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
34
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
35
+ //# sourceMappingURL=input-otp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../components/ui/input-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;2FAaZ,CAAA;AAGF,QAAA,MAAM,aAAa,mKAKjB,CAAA;AAGF,QAAA,MAAM,YAAY;WAEiC,MAAM;wCAuBvD,CAAA;AAGF,QAAA,MAAM,iBAAiB,mKAOrB,CAAA;AAGF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import * as React from "react";
15
+ import { OTPInput, OTPInputContext } from "input-otp";
16
+ import { Minus } from "lucide-react";
17
+ import { cn } from "../../lib/utils";
18
+ const InputOTP = React.forwardRef((_a, ref) => {
19
+ var { className, containerClassName } = _a, props = __rest(_a, ["className", "containerClassName"]);
20
+ return (_jsx(OTPInput, Object.assign({ ref: ref, containerClassName: cn("flex items-center gap-2 has-[:disabled]:opacity-50", containerClassName), className: cn("disabled:cursor-not-allowed", className) }, props)));
21
+ });
22
+ InputOTP.displayName = "InputOTP";
23
+ const InputOTPGroup = React.forwardRef((_a, ref) => {
24
+ var { className } = _a, props = __rest(_a, ["className"]);
25
+ return (_jsx("div", Object.assign({ ref: ref, className: cn("flex items-center", className) }, props)));
26
+ });
27
+ InputOTPGroup.displayName = "InputOTPGroup";
28
+ const InputOTPSlot = React.forwardRef((_a, ref) => {
29
+ var { index, className } = _a, props = __rest(_a, ["index", "className"]);
30
+ const inputOTPContext = React.useContext(OTPInputContext);
31
+ const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
32
+ return (_jsxs("div", Object.assign({ ref: ref, className: cn("relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md", isActive && "z-10 ring-1 ring-ring", className) }, props, { children: [char, hasFakeCaret && (_jsx("div", Object.assign({ className: "pointer-events-none absolute inset-0 flex items-center justify-center" }, { children: _jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })))] })));
33
+ });
34
+ InputOTPSlot.displayName = "InputOTPSlot";
35
+ const InputOTPSeparator = React.forwardRef((_a, ref) => {
36
+ var props = __rest(_a, []);
37
+ return (_jsx("div", Object.assign({ ref: ref, role: "separator" }, props, { children: _jsx(Minus, {}) })));
38
+ });
39
+ InputOTPSeparator.displayName = "InputOTPSeparator";
40
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
package/dist/index.d.ts CHANGED
@@ -83,4 +83,5 @@ export * from "./components/ui/tap";
83
83
  export * from "./components/ui/circular-progress";
84
84
  export * from "./components/ui/swipeable-list-item";
85
85
  export * from "./components/ui/dialog";
86
+ export * from "./components/ui/input-otp";
86
87
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -85,3 +85,4 @@ export * from "./components/ui/tap";
85
85
  export * from "./components/ui/circular-progress";
86
86
  export * from "./components/ui/swipeable-list-item";
87
87
  export * from "./components/ui/dialog";
88
+ export * from "./components/ui/input-otp";
@@ -1,9 +1,7 @@
1
1
  import { CartState, CartCalculatedDiscount, CartCalculatedAppliedGiftCard } from "app-studio-types";
2
- export declare const getVariablesVariantPrice: ({ variantPrice, variantCompareAtPrice, quantity, currencyCode, sellingPlanAllocation, }: {
3
- variantPrice: number;
4
- variantCompareAtPrice: number;
2
+ export declare const getSubscriptionPriceDetails: ({ totalAmount, quantity, sellingPlanAllocation, }: {
3
+ totalAmount?: number | undefined;
5
4
  quantity: number;
6
- currencyCode: string;
7
5
  sellingPlanAllocation?: {
8
6
  priceAdjustments: {
9
7
  perDeliveryPrice?: number;
@@ -12,9 +10,8 @@ export declare const getVariablesVariantPrice: ({ variantPrice, variantCompareAt
12
10
  }[];
13
11
  } | undefined;
14
12
  }) => {
15
- price: number;
13
+ price: number | undefined;
16
14
  compareAtPrice: number;
17
- currency: string;
18
15
  isSale: boolean;
19
16
  };
20
17
  export declare const isVariablesOrderLevelDiscount: (code: string, cart: CartState | null) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"variablesCart.util.d.ts","sourceRoot":"","sources":["../../lib/variablesCart.util.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,6BAA6B,EAO9B,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,wBAAwB;kBAOrB,MAAM;2BACG,MAAM;cACnB,MAAM;kBACF,MAAM;;0BAEA;YAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;YACzB,KAAK,EAAE,MAAM,CAAA;YACb,cAAc,CAAC,EAAE,MAAM,CAAA;SACxB,EAAE;;;;;;;CA4BN,CAAA;AAyED,eAAO,MAAM,6BAA6B,SAClC,MAAM,QACN,SAAS,GAAG,IAAI,YAUvB,CAAA;AAED,eAAO,MAAM,2BAA2B,SAChC,MAAM,QACN,SAAS,GAAG,IAAI,YAUvB,CAAA;AA2KD,MAAM,MAAM,uBAAuB,GAAG;IACpC,yBAAyB,EAAE,sBAAsB,EAAE,CAAA;IACnD,gBAAgB,EAAE,6BAA6B,EAAE,CAAA;IACjD,cAAc,EAAE,OAAO,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,iCAAiC,EAAE,uBAU/C,CAAA;AAED,eAAO,MAAM,8BAA8B,SACnC,SAAS,GAAG,IAAI,KACrB,uBAmCF,CAAA"}
1
+ {"version":3,"file":"variablesCart.util.d.ts","sourceRoot":"","sources":["../../lib/variablesCart.util.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,6BAA6B,EAO9B,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,2BAA2B;;cAM5B,MAAM;;0BAEI;YAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;YACzB,KAAK,EAAE,MAAM,CAAA;YACb,cAAc,CAAC,EAAE,MAAM,CAAA;SACxB,EAAE;;;;;;CAyBN,CAAA;AAyED,eAAO,MAAM,6BAA6B,SAClC,MAAM,QACN,SAAS,GAAG,IAAI,YAUvB,CAAA;AAED,eAAO,MAAM,2BAA2B,SAChC,MAAM,QACN,SAAS,GAAG,IAAI,YAUvB,CAAA;AAkLD,MAAM,MAAM,uBAAuB,GAAG;IACpC,yBAAyB,EAAE,sBAAsB,EAAE,CAAA;IACnD,gBAAgB,EAAE,6BAA6B,EAAE,CAAA;IACjD,cAAc,EAAE,OAAO,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,iCAAiC,EAAE,uBAU/C,CAAA;AAED,eAAO,MAAM,8BAA8B,SACnC,SAAS,GAAG,IAAI,KACrB,uBAmCF,CAAA"}
@@ -1,28 +1,27 @@
1
1
  // @ts-nocheck
2
2
  import { DiscountApplicationTargetType, } from "app-studio-types";
3
- export const getVariablesVariantPrice = ({ variantPrice, variantCompareAtPrice, quantity, currencyCode, sellingPlanAllocation = { priceAdjustments: [] }, }) => {
3
+ export const getSubscriptionPriceDetails = ({ totalAmount, quantity, sellingPlanAllocation = { priceAdjustments: [] }, }) => {
4
4
  var _a;
5
5
  const isSubscription = ((_a = sellingPlanAllocation === null || sellingPlanAllocation === void 0 ? void 0 : sellingPlanAllocation.priceAdjustments) === null || _a === void 0 ? void 0 : _a.length) > 0;
6
6
  if (isSubscription) {
7
7
  const { perDeliveryPrice, price, compareAtPrice } = sellingPlanAllocation.priceAdjustments[0];
8
8
  const effectivePrice = perDeliveryPrice || price;
9
9
  const subscriptionUnitPrice = perDeliveryPrice || 0;
10
- const effectiveCompareAtPrice = compareAtPrice || price || 0;
10
+ const effectiveCompareAtPrice = compareAtPrice * quantity || totalAmount || 0;
11
11
  return {
12
- price: subscriptionUnitPrice * quantity,
13
- compareAtPrice: effectiveCompareAtPrice * quantity,
14
- currency: currencyCode,
15
- isSale: subscriptionUnitPrice < effectiveCompareAtPrice,
12
+ price: totalAmount,
13
+ compareAtPrice: effectiveCompareAtPrice,
14
+ isSale: totalAmount < subscriptionUnitPrice * quantity,
15
+ };
16
+ }
17
+ else {
18
+ console.error("No selling plan allocation found");
19
+ return {
20
+ price: 0,
21
+ compareAtPrice: 0,
22
+ isSale: false,
16
23
  };
17
24
  }
18
- const variantUnitPrice = variantPrice || 0;
19
- const variantComparePrice = variantCompareAtPrice || 0;
20
- return {
21
- price: variantUnitPrice * quantity,
22
- compareAtPrice: variantComparePrice * quantity,
23
- currency: currencyCode,
24
- isSale: variantUnitPrice < variantComparePrice,
25
- };
26
25
  };
27
26
  const getOrderLevelDiscounts = (cart) => {
28
27
  // Handle null cart gracefully - the shopping cart state can be null sometimes
@@ -118,40 +117,36 @@ const getAppliedGiftCards = (cart) => {
118
117
  });
119
118
  });
120
119
  };
121
- const getSalesAmount = (cart) => {
120
+ const getCompareAtPriceDifference = (cart) => {
122
121
  var _a;
123
122
  // Handle null cart gracefully - the shopping cart state can be null sometimes
124
123
  if (!cart)
125
124
  return 0;
126
125
  return (_a = cart === null || cart === void 0 ? void 0 : cart.items) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
127
- var _a, _b;
128
- // Get price and compareAtPrice directly from the CartItem
129
- const itemPrice = parseFloat(((item === null || item === void 0 ? void 0 : item.price) || 0).toString());
130
- const itemCompareAtPrice = parseFloat(((item === null || item === void 0 ? void 0 : item.compareAtPrice) || 0).toString());
131
- // Create a custom sellingPlanAllocation if the item has one
132
- let customSellingPlanAllocation;
133
- if (item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) {
134
- customSellingPlanAllocation = {
135
- priceAdjustments: (_b = (_a = item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) === null || _a === void 0 ? void 0 : _a.priceAdjustments) === null || _b === void 0 ? void 0 : _b.map((adj) => ({
136
- price: parseFloat(adj.price.amount),
137
- compareAtPrice: adj.compareAtPrice
138
- ? parseFloat(adj.compareAtPrice.amount)
139
- : undefined,
140
- perDeliveryPrice: adj.perDeliveryPrice
141
- ? parseFloat(adj.perDeliveryPrice.amount)
142
- : undefined,
143
- })),
144
- };
126
+ var _a, _b, _c, _d, _e, _f;
127
+ /**
128
+ * Regular price details
129
+ */
130
+ let itemPrice = (item === null || item === void 0 ? void 0 : item.price) || 0;
131
+ let itemCompareAtPrice = (item === null || item === void 0 ? void 0 : item.compareAtPrice) || 0;
132
+ /**
133
+ * Subscription price details
134
+ */
135
+ if (((_b = (_a = item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) === null || _a === void 0 ? void 0 : _a.priceAdjustments) === null || _b === void 0 ? void 0 : _b.length) > 0) {
136
+ itemPrice =
137
+ ((_d = (_c = item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) === null || _c === void 0 ? void 0 : _c.priceAdjustments[0]) === null || _d === void 0 ? void 0 : _d.perDeliveryPrice) ||
138
+ ((_f = (_e = item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) === null || _e === void 0 ? void 0 : _e.priceAdjustments[0]) === null || _f === void 0 ? void 0 : _f.price) ||
139
+ 0;
140
+ const { compareAtPrice } = getSubscriptionPriceDetails({
141
+ quantity: (item === null || item === void 0 ? void 0 : item.quantity) || 1,
142
+ sellingPlanAllocation: item === null || item === void 0 ? void 0 : item.sellingPlanAllocation,
143
+ });
144
+ if (compareAtPrice && compareAtPrice > itemPrice) {
145
+ itemCompareAtPrice = compareAtPrice;
146
+ }
145
147
  }
146
- const { compareAtPrice, price } = getVariablesVariantPrice({
147
- quantity: (item === null || item === void 0 ? void 0 : item.quantity) || 1,
148
- variantPrice: itemPrice,
149
- variantCompareAtPrice: itemCompareAtPrice,
150
- currencyCode: (item === null || item === void 0 ? void 0 : item.currencyCode) || "USD",
151
- sellingPlanAllocation: customSellingPlanAllocation,
152
- });
153
- if (compareAtPrice && compareAtPrice > price) {
154
- return acc + (compareAtPrice - price);
148
+ if (itemPrice && itemCompareAtPrice && itemCompareAtPrice > itemPrice) {
149
+ return (acc + (itemCompareAtPrice * (item === null || item === void 0 ? void 0 : item.quantity) - itemPrice * (item === null || item === void 0 ? void 0 : item.quantity)));
155
150
  }
156
151
  return acc;
157
152
  }, 0);
@@ -200,11 +195,25 @@ const getTotalCompareAtPrice = (cart) => {
200
195
  if (!cart)
201
196
  return 0;
202
197
  return (_a = cart === null || cart === void 0 ? void 0 : cart.items) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
203
- // Get compareAtPrice directly from the CartItem
204
- const itemCompareAtPrice = item.compareAtPrice ||
205
- (item.price ? parseFloat(item.price.toString()) : 0);
206
- const quantity = item.quantity || 1;
207
- return acc + +itemCompareAtPrice * quantity;
198
+ var _a, _b;
199
+ /*
200
+ * Regular price details
201
+ */
202
+ let itemCompareAtPrice = (item === null || item === void 0 ? void 0 : item.compareAtPrice) || (item === null || item === void 0 ? void 0 : item.price) || 0;
203
+ const quantity = (item === null || item === void 0 ? void 0 : item.quantity) || 1;
204
+ /**
205
+ * Subscription price details
206
+ */
207
+ if (((_b = (_a = item === null || item === void 0 ? void 0 : item.sellingPlanAllocation) === null || _a === void 0 ? void 0 : _a.priceAdjustments) === null || _b === void 0 ? void 0 : _b.length) > 0) {
208
+ const { compareAtPrice } = getSubscriptionPriceDetails({
209
+ quantity: (item === null || item === void 0 ? void 0 : item.quantity) || 1,
210
+ sellingPlanAllocation: item === null || item === void 0 ? void 0 : item.sellingPlanAllocation,
211
+ });
212
+ if (compareAtPrice) {
213
+ itemCompareAtPrice = compareAtPrice;
214
+ }
215
+ }
216
+ return acc + itemCompareAtPrice * quantity;
208
217
  }, 0);
209
218
  };
210
219
  const getTotalDiscountedPrice = (totalCompareAtPrice, discountsTotalAmount, salesAmount, giftCardsTotalAmount) => {
@@ -224,10 +233,10 @@ const getTotalSavedAmount = (cart) => {
224
233
  // Handle null cart gracefully - the shopping cart state can be null sometimes
225
234
  if (!cart)
226
235
  return 0;
227
- const salesAmount = getSalesAmount(cart);
236
+ const totalCompareAtPriceDifference = getCompareAtPriceDifference(cart);
228
237
  const totalDiscountsAmount = getDiscountsTotalAmount(getOrderLevelDiscounts(cart).concat(getLineItemDiscounts(cart)));
229
238
  const totalGiftCardsAmount = getGiftCardsTotalAmount(getAppliedGiftCards(cart));
230
- const totalSavedAmount = salesAmount + totalDiscountsAmount + totalGiftCardsAmount;
239
+ const totalSavedAmount = totalCompareAtPriceDifference + totalDiscountsAmount + totalGiftCardsAmount;
231
240
  return totalSavedAmount;
232
241
  };
233
242
  export const DEFAULT_VARIABLES_CALCULATED_DATA = {
@@ -251,7 +260,7 @@ export const getVariablesCalculatedCartData = (cart) => {
251
260
  const isFreeShipping = getShippingDiscounts(cart).length > 0;
252
261
  const discountsTotalAmount = getDiscountsTotalAmount(orderAndLineItemDiscounts);
253
262
  const giftCardsTotalAmount = getGiftCardsTotalAmount(appliedGiftCards);
254
- const salesAmount = getSalesAmount(cart);
263
+ const salesAmount = getCompareAtPriceDifference(cart);
255
264
  const totalCompareAtPrice = getTotalCompareAtPrice(cart);
256
265
  const totalDiscountedPrice = getTotalDiscountedPrice(totalCompareAtPrice, discountsTotalAmount, salesAmount, giftCardsTotalAmount);
257
266
  const totalSavedAmount = getTotalSavedAmount(cart);
package/dist/styles.css CHANGED
@@ -1152,6 +1152,9 @@ video {
1152
1152
  .w-8 {
1153
1153
  width: 2rem;
1154
1154
  }
1155
+ .w-9 {
1156
+ width: 2.25rem;
1157
+ }
1155
1158
  .w-\[138px\] {
1156
1159
  width: 138px;
1157
1160
  }
@@ -1181,6 +1184,9 @@ video {
1181
1184
  width: -moz-max-content;
1182
1185
  width: max-content;
1183
1186
  }
1187
+ .w-px {
1188
+ width: 1px;
1189
+ }
1184
1190
  .min-w-0 {
1185
1191
  min-width: 0px;
1186
1192
  }
@@ -1547,9 +1553,6 @@ video {
1547
1553
  .text-wrap {
1548
1554
  text-wrap: wrap;
1549
1555
  }
1550
- .break-words {
1551
- overflow-wrap: break-word;
1552
- }
1553
1556
  .break-all {
1554
1557
  word-break: break-all;
1555
1558
  }
@@ -1621,6 +1624,10 @@ video {
1621
1624
  .border-2 {
1622
1625
  border-width: 2px;
1623
1626
  }
1627
+ .border-y {
1628
+ border-top-width: 1px;
1629
+ border-bottom-width: 1px;
1630
+ }
1624
1631
  .border-y-8 {
1625
1632
  border-top-width: 8px;
1626
1633
  border-bottom-width: 8px;
@@ -1637,6 +1644,9 @@ video {
1637
1644
  .border-l-\[16px\] {
1638
1645
  border-left-width: 16px;
1639
1646
  }
1647
+ .border-r {
1648
+ border-right-width: 1px;
1649
+ }
1640
1650
  .border-t {
1641
1651
  border-top-width: 1px;
1642
1652
  }
@@ -1736,6 +1746,9 @@ video {
1736
1746
  .bg-coreColors-pageColor {
1737
1747
  background-color: var(--coreColors-pageColor);
1738
1748
  }
1749
+ .bg-foreground {
1750
+ background-color: hsl(var(--foreground));
1751
+ }
1739
1752
  .bg-gray-300 {
1740
1753
  --tw-bg-opacity: 1;
1741
1754
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
@@ -2237,6 +2250,11 @@ video {
2237
2250
  --tw-shadow-colored: calc(var(--buttonColors-secondaryShadowEnabled) * 0px) calc(var(--buttonColors-secondaryShadowEnabled) * 5px) calc(var(--buttonColors-secondaryShadowEnabled) * 25px) calc(var(--buttonColors-secondaryShadowEnabled)* 0px) rgb(0, 0, 0, 0.10);;
2238
2251
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2239
2252
  }
2253
+ .shadow-sm {
2254
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
2255
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
2256
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2257
+ }
2240
2258
  .shadow-buttonColors-primaryShadow {
2241
2259
  --tw-shadow-color: var(--buttonColors-primaryShadow);
2242
2260
  --tw-shadow: var(--tw-shadow-colored);
@@ -2279,6 +2297,14 @@ video {
2279
2297
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2280
2298
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2281
2299
  }
2300
+ .ring-1 {
2301
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2302
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2303
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2304
+ }
2305
+ .ring-ring {
2306
+ --tw-ring-color: hsl(var(--ring));
2307
+ }
2282
2308
  .ring-offset-background {
2283
2309
  --tw-ring-offset-color: hsl(var(--background));
2284
2310
  }
@@ -2321,6 +2347,9 @@ video {
2321
2347
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2322
2348
  transition-duration: 150ms;
2323
2349
  }
2350
+ .duration-1000 {
2351
+ transition-duration: 1000ms;
2352
+ }
2324
2353
  .duration-150 {
2325
2354
  transition-duration: 150ms;
2326
2355
  }
@@ -2356,6 +2385,9 @@ video {
2356
2385
  transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
2357
2386
  }
2358
2387
  }
2388
+ .duration-1000 {
2389
+ animation-duration: 1000ms;
2390
+ }
2359
2391
  .duration-150 {
2360
2392
  animation-duration: 150ms;
2361
2393
  }
@@ -2486,6 +2518,20 @@ body::-webkit-scrollbar {
2486
2518
  color: var(--textColors-secondaryColor, #727272ff);
2487
2519
  }
2488
2520
 
2521
+ .first\:rounded-l-md:first-child {
2522
+ border-top-left-radius: calc(var(--radius) - 2px);
2523
+ border-bottom-left-radius: calc(var(--radius) - 2px);
2524
+ }
2525
+
2526
+ .first\:border-l:first-child {
2527
+ border-left-width: 1px;
2528
+ }
2529
+
2530
+ .last\:rounded-r-md:last-child {
2531
+ border-top-right-radius: calc(var(--radius) - 2px);
2532
+ border-bottom-right-radius: calc(var(--radius) - 2px);
2533
+ }
2534
+
2489
2535
  .last\:border-b-0:last-child {
2490
2536
  border-bottom-width: 0px;
2491
2537
  }
@@ -2702,6 +2748,10 @@ body::-webkit-scrollbar {
2702
2748
  opacity: 0.7;
2703
2749
  }
2704
2750
 
2751
+ .has-\[\:disabled\]\:opacity-50:has(:disabled) {
2752
+ opacity: 0.5;
2753
+ }
2754
+
2705
2755
  .data-\[disabled\]\:pointer-events-none[data-disabled] {
2706
2756
  pointer-events: none;
2707
2757
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapcart/mobile-components",
3
- "version": "0.8.56",
3
+ "version": "0.8.57",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "style": "dist/styles.css",
@@ -81,6 +81,7 @@
81
81
  "embla-carousel-autoplay": "8.5.2",
82
82
  "embla-carousel-fade": "8.5.2",
83
83
  "embla-carousel-react": "^8.3.0",
84
+ "input-otp": "^1.4.2",
84
85
  "lucide-react": "^0.488.0",
85
86
  "next": "^14.2.28",
86
87
  "next-themes": "^0.2.1",