@tapcart/mobile-components 0.7.81 → 0.7.83

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.
@@ -8,12 +8,17 @@ interface GridType {
8
8
  LoaderItem: React.FunctionComponent;
9
9
  overscan?: number;
10
10
  estimatedHeight?: number;
11
+ spacing?: {
12
+ horizontalGap: number;
13
+ verticalGap: number;
14
+ };
15
+ style?: React.CSSProperties;
11
16
  }
12
17
  declare const virtualGridVariants: (props?: ({
13
18
  columns?: 1 | 2 | 3 | 4 | null | undefined;
14
19
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
15
20
  export interface VirtualGridProps extends GridType, VariantProps<typeof virtualGridVariants> {
16
21
  }
17
- declare function VirtualGrid({ className, columns, children, overscan, estimatedHeight, isLoadingMore, isReachingEnd, LoaderItem, }: VirtualGridProps): import("react/jsx-runtime").JSX.Element;
22
+ declare function VirtualGrid({ className, columns, children, overscan, estimatedHeight, isLoadingMore, isReachingEnd, LoaderItem, spacing, style, }: VirtualGridProps): import("react/jsx-runtime").JSX.Element;
18
23
  export { VirtualGrid, virtualGridVariants };
19
24
  //# sourceMappingURL=virtual-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-grid.d.ts","sourceRoot":"","sources":["../../../components/ui/virtual-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKjE,UAAU,QAAQ;IAChB,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,QAAA,MAAM,mBAAmB;;mFAYvB,CAAA;AAEF,MAAM,WAAW,gBACf,SAAQ,QAAQ,EACd,YAAY,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAE/C,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAY,EACZ,eAAqB,EACrB,aAAa,EACb,aAAa,EACb,UAAU,GACX,EAAE,gBAAgB,2CA6DlB;AAED,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"virtual-grid.d.ts","sourceRoot":"","sources":["../../../components/ui/virtual-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,UAAU,QAAQ;IAChB,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,QAAA,MAAM,mBAAmB;;mFAYvB,CAAA;AAEF,MAAM,WAAW,gBACf,SAAQ,QAAQ,EACd,YAAY,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAE/C,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAY,EACZ,eAAqB,EACrB,aAAa,EACb,aAAa,EACb,UAAU,EACV,OAGC,EACD,KAAK,GACN,EAAE,gBAAgB,2CAwElB;AAED,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
@@ -2,21 +2,25 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { useVirtual } from "react-virtual";
5
+ import { Container } from "./container";
5
6
  import { cn } from "../../lib/utils";
6
7
  const virtualGridVariants = cva("grid", {
7
8
  variants: {
8
9
  columns: {
9
- 1: "grid-cols-1 gap-y-4",
10
- 2: "grid-cols-2 gap-x-[7px] gap-y-4",
11
- 3: "grid-cols-3 gap-x-[7px] gap-y-4",
12
- 4: "grid-cols-4 gap-x-[7px] gap-y-4",
10
+ 1: "grid-cols-1",
11
+ 2: "grid-cols-2",
12
+ 3: "grid-cols-3",
13
+ 4: "grid-cols-4",
13
14
  },
14
15
  },
15
16
  defaultVariants: {
16
17
  columns: 2,
17
18
  },
18
19
  });
19
- function VirtualGrid({ className, columns, children, overscan = 4, estimatedHeight = 375, isLoadingMore, isReachingEnd, LoaderItem, }) {
20
+ function VirtualGrid({ className, columns, children, overscan = 4, estimatedHeight = 375, isLoadingMore, isReachingEnd, LoaderItem, spacing = {
21
+ horizontalGap: 0,
22
+ verticalGap: 0,
23
+ }, style, }) {
20
24
  const NUM_LOADER_ITEMS = columns || 2;
21
25
  const col = columns || 2;
22
26
  const parentRef = React.useRef(document.getElementById("tc-vgsl"));
@@ -30,25 +34,28 @@ function VirtualGrid({ className, columns, children, overscan = 4, estimatedHeig
30
34
  overscan,
31
35
  initialRect: { width: 0, height: estimatedHeight },
32
36
  });
33
- return (_jsx("div", Object.assign({ style: {
34
- width: "100%",
35
- position: "relative",
36
- }, className: cn(virtualGridVariants({ columns }), className) }, { children: rowVirtualizer.virtualItems.map((virtualRow) => {
37
- const rowStartIndex = virtualRow.index * col;
38
- return (_jsx("div", Object.assign({ className: cn(virtualGridVariants({ columns })), style: {
39
- position: "absolute",
40
- top: 0,
41
- left: 0,
42
- width: "100%",
43
- transform: `translateY(${virtualRow.start}px)`,
44
- }, ref: virtualRow.measureRef }, { children: Array.from({ length: col }).map((_, colIndex) => {
45
- const index = rowStartIndex + colIndex;
46
- if (index >= childrenArray.length && !isReachingEnd)
47
- return (_jsx("div", { children: _jsx(LoaderItem, {}) }, index));
48
- if (!childrenArray[index])
49
- return null;
50
- return _jsx("div", { children: childrenArray[index] }, index);
51
- }) }), `row-${virtualRow.index}`));
52
- }) })));
37
+ return (_jsx(Container, Object.assign({ style: style }, { children: _jsx("div", Object.assign({ style: {
38
+ width: "100%",
39
+ height: (Math.ceil(childrenArray.length / col) - 1) * spacing.verticalGap +
40
+ rowVirtualizer.totalSize,
41
+ position: "relative",
42
+ } }, { children: rowVirtualizer.virtualItems.map((virtualRow) => {
43
+ const rowStartIndex = virtualRow.index * col;
44
+ return (_jsx("div", Object.assign({ className: cn(virtualGridVariants({ columns })), style: {
45
+ position: "absolute",
46
+ top: 0,
47
+ left: 0,
48
+ width: "100%",
49
+ transform: `translateY(${virtualRow.start + virtualRow.index * spacing.verticalGap}px)`,
50
+ columnGap: `${spacing === null || spacing === void 0 ? void 0 : spacing.horizontalGap}px`,
51
+ }, ref: virtualRow.measureRef }, { children: Array.from({ length: col }).map((_, colIndex) => {
52
+ const index = rowStartIndex + colIndex;
53
+ if (index >= childrenArray.length && !isReachingEnd)
54
+ return (_jsx("div", { children: _jsx(LoaderItem, {}) }, index));
55
+ if (!childrenArray[index])
56
+ return null;
57
+ return (_jsx("div", Object.assign({ style: { height: "100%" } }, { children: childrenArray[index] }), index));
58
+ }) }), `row-${virtualRow.index}`));
59
+ }) })) })));
53
60
  }
54
61
  export { VirtualGrid, virtualGridVariants };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,OAAO,EACP,QAAQ,EACR,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAQ,MAAM,MAAM,CAAA;AAMvC,MAAM,MAAM,KAAK,GAAG;IAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAED,eAAO,MAAM,eAAe,UAc3B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAA;AAMjE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAI9C,eAAO,MAAM,QAAQ,gBAAiB,KAAK,GAAG,SAAS,uBAUtD,CAAA;AAED,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAC7D,KAAK,WAAW,GAAG,UAAU,EAAE,CAAA;AAE/B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAU/B,CAAA;AAED,KAAK,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEpD,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,yBAAyB,wBACf,mBAAmB;;;;;;;;;;;;CAczC,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,MAAM;;CAE1C,CAAA;AAED,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AACD,eAAO,MAAM,cAAc,YAAa,WAAW;;;CAKlD,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,QAAQ,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;CAWpE,CAAA;AAED,eAAO,MAAM,cAAc,WAAY,QAAQ,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;CAUlE,CAAA;AAED,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB;AAED,eAAO,MAAM,cAAc,gBACZ,WAAW,gBACX,MAAM;;;;;;;CAwBpB,CAAA;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,eAAe,CAAC,EAAE,KAAK,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,4BAA4B,yBACjB,oBAAoB;;;;;;;;;;;;;;;;CA8B3C,CAAA;AAED,KAAK,oBAAoB,GAAG,mBAAmB,GAAG;IAChD,eAAe,CAAC,EAAE,KAAK,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,4BAA4B,yBACjB,oBAAoB;;;;;CAU3C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,CAAA;IACD,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,QAAQ,GAAG,SAAS,CAAA;AACzB,KAAK,OAAO,GAAG,SAAS,CAAA;AAExB,eAAO,MAAM,YAAY,cAAe,QAAQ,GAAG,OAAO;;;;;;;;CAWzD,CAAA;AAED,eAAO,MAAM,oBAAoB,cACpB,MAAM;;;;;;;;;;;;;;;CAYlB,CAAA;AAQD,eAAO,MAAM,kBAAkB,cAAe,MAAM,WAGnD,CAAA;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK5D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI7E;AAGD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAOpC,GAAG,EAAE,aAU3B;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,UAG1D;AAED,eAAO,MAAM,gBAAgB,WAAY,MAAM,WAQ9C,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,MAAM;;;;;;;CAW9C,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,CAAC,GAAG,EAAE;QAChB,WAAW,EAAE;YAAE,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KACvD,KAAK,IAAI,CAAA;IACV,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjD,cAAc,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACxD,CAAA;AAmBD,eAAO,MAAM,qBAAqB,SAC1B,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,iBAjBrC,MAAM,WAAW,kBAAkB,yBAE5C,MAAM,WAAW,kBAAkB,yBAO/B,MAAM,WAAW,kBAAkB,yBAEhC,MAAM,WAAW,kBAAkB,yBAS3D,CAAA;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAOlD;AAED,eAAO,MAAM,wBAAwB,gBACtB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAQpE,CAAA;AAED,eAAO,MAAM,4BAA4B,yCAOxC,CAAA;AAED,eAAO,MAAM,SAAS,SACd,MAAM,UACJ,MAAM,cACF,OAAO,WAGpB,CAAA;AAED,eAAO,MAAM,4BAA4B,oBAAqB,SAAS;;;;;;;CAetE,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;KACZ,GAAG,IAAI,CAAA;IACR,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,qBAAqB,iBACnB,OAAO,MAAM,EAAE,KAAK,EAAE,CAAC,gBACvB,MAAM,EAAE,KACpB,KAAK,EAiCP,CAAA;AAMD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,UAGnC;AAED,eAAO,MAAM,wBAAwB,UAAW,yBAAyB,WAOxE,CAAA;AAkHD,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,WAAW;cAMZ,QAAQ;;;;;;;;;;;;;;;;;;;;;;;CAuDnB,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAS,GAAG,2BAC+B,CAAA;AAEzE,eAAO,MAAM,WAAW,QAAS,GAAG,wCACO,CAAA;AAE3C,eAAO,MAAM,yBAAyB,QAC/B,GAAG,EAAE,6BAGX,CAAA;AAED,eAAO,MAAM,mBAAmB,QACzB,GAAG,EAAE,0CAGX,CAAA;AA6BD,eAAO,MAAM,eAAe,aAChB,yBAAyB,cACvB,yBAAyB,YAoDtC,CAAA;AAGD,eAAO,MAAM,kBAAkB,UAAW,GAAG,WAAW,GAAG,KAAG,OAuB7D,CAAA;AAED,eAAO,MAAM,uBAAuB,cACvB,GAAG,WACL,GAAG,KACX,OA+BF,CAAA"}
package/dist/lib/utils.js CHANGED
@@ -513,6 +513,7 @@ export const shouldShowBlock = (envState, blockState) => {
513
513
  // Helper to evaluate v2 conditions
514
514
  export const evaluateConditions = (group, context) => {
515
515
  const { logic = "OR", conditions = [] } = group;
516
+ const sanitizedLogic = logic.toUpperCase();
516
517
  const results = conditions.map((condition) => {
517
518
  if (condition.logic) {
518
519
  return evaluateConditions(condition, context); // Nested group
@@ -522,7 +523,7 @@ export const evaluateConditions = (group, context) => {
522
523
  return result;
523
524
  }
524
525
  });
525
- switch (logic) {
526
+ switch (sanitizedLogic) {
526
527
  case "AND":
527
528
  return results.every(Boolean);
528
529
  case "OR":
@@ -548,9 +549,15 @@ export const evaluateSingleCondition = (condition, context) => {
548
549
  else {
549
550
  return contextValue === value;
550
551
  }
552
+ case "does not equal":
553
+ if (Array.isArray(contextValue)) {
554
+ return !contextValue.some((item) => item.value === value);
555
+ }
556
+ else {
557
+ return contextValue !== value;
558
+ }
551
559
  case "contains":
552
560
  if (Array.isArray(contextValue)) {
553
- // Handle arrays of UserSelectedTag or ConditionalSelectorMetafield
554
561
  return contextValue.some((item) => item.value === value);
555
562
  }
556
563
  else {
package/dist/styles.css CHANGED
@@ -1458,18 +1458,10 @@ video {
1458
1458
  .rounded-sm {
1459
1459
  border-radius: calc(var(--radius) - 4px);
1460
1460
  }
1461
- .rounded-b {
1462
- border-bottom-right-radius: 0.25rem;
1463
- border-bottom-left-radius: 0.25rem;
1464
- }
1465
1461
  .rounded-b-lg {
1466
1462
  border-bottom-right-radius: var(--radius);
1467
1463
  border-bottom-left-radius: var(--radius);
1468
1464
  }
1469
- .rounded-t {
1470
- border-top-left-radius: 0.25rem;
1471
- border-top-right-radius: 0.25rem;
1472
- }
1473
1465
  .rounded-t-2xl {
1474
1466
  border-top-left-radius: 1rem;
1475
1467
  border-top-right-radius: 1rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapcart/mobile-components",
3
- "version": "0.7.81",
3
+ "version": "0.7.83",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "style": "dist/styles.css",
@@ -11,6 +11,20 @@
11
11
  "license": "SEE LICENSE IN LICENSE.md",
12
12
  "author": "Tapcart Inc.",
13
13
  "homepage": "https://tapcart.com",
14
+ "scripts": {
15
+ "clean": "rm -rf dist node_modules",
16
+ "lint": "eslint \"**/*.ts*\"",
17
+ "ui:add": "pnpm dlx shadcn-ui@latest add",
18
+ "build:styles": "postcss styles/globals.css -o dist/styles.css",
19
+ "build:ts": "tsc -p tsconfig.json && tsc-alias",
20
+ "build": "pnpm run build:ts && pnpm run build:styles",
21
+ "dev:ts": "tsc -w -p tsconfig.json",
22
+ "dev:styles": "npx tailwindcss -i styles/globals.css -o dist/styles.css --watch",
23
+ "dev": "concurrently \"pnpm run dev:ts\" \"pnpm run dev:styles\"",
24
+ "test": "jest",
25
+ "test:silent": "jest --silent",
26
+ "test:watch": "jest --watch"
27
+ },
14
28
  "peerDependencies": {
15
29
  "react": "^17.0.2 || ^18.0.0",
16
30
  "react-dom": "^17.0.2 || ^18.0.0"
@@ -23,20 +37,20 @@
23
37
  "@types/pluralize": "^0.0.33",
24
38
  "@types/react": "^18.2.0",
25
39
  "@types/react-dom": "^18.2.0",
40
+ "app-studio-types": "workspace:*",
26
41
  "autoprefixer": "^10.4.14",
27
42
  "chokidar-cli": "^3.0.0",
28
43
  "concurrently": "^8.2.2",
29
44
  "eslint": "^7.32.0",
45
+ "eslint-config-custom": "workspace:*",
30
46
  "jest": "^29.7.0",
31
47
  "jest-environment-jsdom": "^29.7.0",
32
48
  "postcss": "^8.4.24",
33
49
  "tailwindcss": "^3.3.2",
34
50
  "ts-jest": "^29.2.5",
35
51
  "tsc-alias": "^1.8.10",
36
- "typescript": "^4.5.2",
37
- "app-studio-types": "0.0.9",
38
- "eslint-config-custom": "0.0.0",
39
- "tsconfig": "0.0.0"
52
+ "tsconfig": "workspace:*",
53
+ "typescript": "^4.5.2"
40
54
  },
41
55
  "dependencies": {
42
56
  "@radix-ui/react-accordion": "^1.1.2",
@@ -77,18 +91,8 @@
77
91
  "tailwindcss-animate": "^1.0.6",
78
92
  "vaul": "0.9.1"
79
93
  },
80
- "scripts": {
81
- "clean": "rm -rf dist node_modules",
82
- "lint": "eslint \"**/*.ts*\"",
83
- "ui:add": "pnpm dlx shadcn-ui@latest add",
84
- "build:styles": "postcss styles/globals.css -o dist/styles.css",
85
- "build:ts": "tsc -p tsconfig.json && tsc-alias",
86
- "build": "pnpm run build:ts && pnpm run build:styles",
87
- "dev:ts": "tsc -w -p tsconfig.json",
88
- "dev:styles": "npx tailwindcss -i styles/globals.css -o dist/styles.css --watch",
89
- "dev": "concurrently \"pnpm run dev:ts\" \"pnpm run dev:styles\"",
90
- "test": "jest",
91
- "test:silent": "jest --silent",
92
- "test:watch": "jest --watch"
94
+ "publishConfig": {
95
+ "access": "public",
96
+ "registry": "https://registry.npmjs.org/"
93
97
  }
94
- }
98
+ }
@@ -1,6 +0,0 @@
1
- import React from "react"
2
- export declare function useClickOutside(
3
- ref: React.RefObject<HTMLElement>,
4
- callback: () => void
5
- ): void
6
- //# sourceMappingURL=use-click-outside.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-click-outside.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-click-outside.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAE,IAAI,CAa5F"}
@@ -1,15 +0,0 @@
1
- "use client"
2
- import React from "react"
3
- export function useClickOutside(ref, callback) {
4
- React.useEffect(() => {
5
- const handleClickOutside = (event) => {
6
- if (ref.current && !ref.current.contains(event.target)) {
7
- callback()
8
- }
9
- }
10
- document.addEventListener("mousedown", handleClickOutside)
11
- return () => {
12
- document.removeEventListener("mousedown", handleClickOutside)
13
- }
14
- }, [ref, callback])
15
- }
@@ -1,7 +0,0 @@
1
- import React from "react"
2
- declare const useClickOutside: (
3
- ref: React.RefObject<HTMLElement>,
4
- callback: () => void
5
- ) => void
6
- export default useClickOutside
7
- //# sourceMappingURL=use-outside-click.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-outside-click.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-outside-click.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAM,eAAe,QAAS,MAAM,SAAS,CAAC,WAAW,CAAC,YAAY,MAAM,IAAI,SAa/E,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,16 +0,0 @@
1
- "use client"
2
- import React from "react"
3
- const useClickOutside = (ref, callback) => {
4
- React.useEffect(() => {
5
- const handleClickOutside = (event) => {
6
- if (ref.current && !ref.current.contains(event.target)) {
7
- callback()
8
- }
9
- }
10
- document.addEventListener("mousedown", handleClickOutside)
11
- return () => {
12
- document.removeEventListener("mousedown", handleClickOutside)
13
- }
14
- }, [ref, callback])
15
- }
16
- export default useClickOutside
@@ -1,8 +0,0 @@
1
- import React from "react"
2
- declare const useTap: (tapThreshold?: number) => {
3
- onTap: (handler: (event: any) => void) => (event: any) => void
4
- isPressed: boolean
5
- ref: React.MutableRefObject<null>
6
- }
7
- export { useTap }
8
- //# sourceMappingURL=use-tap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-tap.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-tap.ts"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAuFvE,QAAA,MAAM,MAAM;6BAuBkC,GAAG,KAAK,IAAI,aACvC,GAAG;;;CAerB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -1,100 +0,0 @@
1
- "use client"
2
- import { useState, useEffect, useCallback, useRef } from "react"
3
- // Shared manager for all instances of the hook
4
- const tapManager = (() => {
5
- const elements = new Map()
6
- let isListening = false
7
- const startListening = () => {
8
- if (isListening) return
9
- const handleTouchStart = (e) => {
10
- const touch = e.touches[0]
11
- elements.forEach((data, el) => {
12
- if (el.contains(touch.target)) {
13
- data.touchStarted = true
14
- data.touchMoved = false
15
- data.startPosition = { x: touch.clientX, y: touch.clientY }
16
- // Don't set isPressed here, wait to determine if it's a tap or drag
17
- }
18
- })
19
- }
20
- const handleTouchMove = (e) => {
21
- const touch = e.touches[0]
22
- elements.forEach((data, el) => {
23
- if (data.touchStarted) {
24
- const deltaX = Math.abs(touch.clientX - data.startPosition.x)
25
- const deltaY = Math.abs(touch.clientY - data.startPosition.y)
26
- if (deltaX > data.tapThreshold || deltaY > data.tapThreshold) {
27
- data.touchMoved = true
28
- data.setIsPressed(false)
29
- }
30
- }
31
- })
32
- }
33
- const handleTouchEnd = () => {
34
- elements.forEach((data) => {
35
- if (data.touchStarted) {
36
- data.touchStarted = false
37
- if (!data.touchMoved) {
38
- // It's a tap, set isPressed briefly
39
- data.setIsPressed(true)
40
- setTimeout(() => data.setIsPressed(false), 100)
41
- }
42
- }
43
- })
44
- }
45
- document.addEventListener("touchstart", (e) => handleTouchStart(e), {
46
- passive: true,
47
- })
48
- document.addEventListener("touchmove", (e) => handleTouchMove(e), {
49
- passive: true,
50
- })
51
- document.addEventListener("touchend", () => handleTouchEnd(), {
52
- passive: true,
53
- })
54
- isListening = true
55
- }
56
- return {
57
- register: (el, data) => {
58
- elements.set(el, data)
59
- startListening()
60
- },
61
- unregister: (el) => {
62
- elements.delete(el)
63
- },
64
- elements,
65
- }
66
- })()
67
- const useTap = (tapThreshold = 10) => {
68
- const [isPressed, setIsPressed] = useState(false)
69
- const elementRef = useRef(null)
70
- useEffect(() => {
71
- const element = elementRef.current
72
- if (!element) return
73
- const data = {
74
- touchStarted: false,
75
- touchMoved: false,
76
- startPosition: { x: 0, y: 0 },
77
- setIsPressed,
78
- tapThreshold,
79
- }
80
- tapManager.register(element, data)
81
- return () => {
82
- tapManager.unregister(element)
83
- }
84
- }, [tapThreshold])
85
- const onTap = useCallback((handler) => {
86
- return (event) => {
87
- const data = tapManager.elements.get(elementRef.current)
88
- if (!data) return
89
- if (event.type === "touchend" && !data.touchMoved) {
90
- handler(event)
91
- } else if (event.type === "click" && !data.touchStarted) {
92
- handler(event)
93
- setIsPressed(true)
94
- setTimeout(() => setIsPressed(false), 100)
95
- }
96
- }
97
- }, [])
98
- return { onTap, isPressed, ref: elementRef }
99
- }
100
- export { useTap }