@s-hirano-ist/s-ui 1.19.0 → 1.19.2

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,25 @@
1
+ export type ProfilerResult = {
2
+ id: string;
3
+ phase: "mount" | "update" | "nested-update";
4
+ actualDuration: number;
5
+ baseDuration: number;
6
+ startTime: number;
7
+ commitTime: number;
8
+ };
9
+ type ProfilerWrapperProps = {
10
+ id: string;
11
+ /** Whether profiling is enabled. Defaults to true. Set to false in production. */
12
+ enabled?: boolean;
13
+ /** Warning threshold in ms. Defaults to 16 (one frame at 60fps). */
14
+ threshold?: number;
15
+ /** Programmatic data collection callback. */
16
+ onCollect?: (result: ProfilerResult) => void;
17
+ children: React.ReactNode;
18
+ };
19
+ /**
20
+ * Development-only React Profiler wrapper.
21
+ * When `enabled` is false (default in production), renders children directly with zero overhead.
22
+ */
23
+ export declare function ProfilerWrapper({ children, enabled, ...rest }: ProfilerWrapperProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null | undefined;
24
+ export {};
25
+ //# sourceMappingURL=profiler-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiler-wrapper.d.ts","sourceRoot":"","sources":["../../dev/profiler-wrapper.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AA+CF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC/B,QAAQ,EACR,OAAc,EACd,GAAG,IAAI,EACP,EAAE,oBAAoB,2WAMtB"}
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Profiler } from "react";
4
+ function DevProfilerWrapper({ id, threshold = 16, onCollect, children, }) {
5
+ const onRender = (id, phase, actualDuration, baseDuration, startTime, commitTime) => {
6
+ const result = {
7
+ id,
8
+ phase,
9
+ actualDuration,
10
+ baseDuration,
11
+ startTime,
12
+ commitTime,
13
+ };
14
+ if (onCollect) {
15
+ onCollect(result);
16
+ }
17
+ if (actualDuration > threshold) {
18
+ console.warn(`[Profiler] ${id} ${phase}: ${actualDuration.toFixed(1)}ms (threshold: ${threshold}ms)`);
19
+ }
20
+ else {
21
+ console.debug(`[Profiler] ${id} ${phase}: ${actualDuration.toFixed(1)}ms`);
22
+ }
23
+ };
24
+ return (_jsx(Profiler, { id: id, onRender: onRender, children: children }));
25
+ }
26
+ /**
27
+ * Development-only React Profiler wrapper.
28
+ * When `enabled` is false (default in production), renders children directly with zero overhead.
29
+ */
30
+ export function ProfilerWrapper({ children, enabled = true, ...rest }) {
31
+ if (!enabled) {
32
+ return children;
33
+ }
34
+ return _jsx(DevProfilerWrapper, { ...rest, children: children });
35
+ }
36
+ //# sourceMappingURL=profiler-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiler-wrapper.js","sourceRoot":"","sources":["../../dev/profiler-wrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAiC,MAAM,OAAO,CAAC;AAsBhE,SAAS,kBAAkB,CAAC,EAC3B,EAAE,EACF,SAAS,GAAG,EAAE,EACd,SAAS,EACT,QAAQ,GACc;IACtB,MAAM,QAAQ,GAA6B,CAC1C,EAAE,EACF,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACT,EAAE;QACH,MAAM,MAAM,GAAmB;YAC9B,EAAE;YACF,KAAK;YACL,cAAc;YACd,YAAY;YACZ,SAAS;YACT,UAAU;SACV,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CACX,cAAc,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,SAAS,KAAK,CACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACZ,cAAc,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,QAAQ,IAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,YAClC,QAAQ,GACC,CACX,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC/B,QAAQ,EACR,OAAO,GAAG,IAAI,EACd,GAAG,IAAI,EACe;IACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,KAAC,kBAAkB,OAAK,IAAI,YAAG,QAAQ,GAAsB,CAAC;AACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-dropdown-input.d.ts","sourceRoot":"","sources":["../../../forms/fields/form-dropdown-input.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAejD;;;;;;;;GAQG;AACH,MAAM,MAAM,KAAK,GAAG;IACnB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC9C,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAoC,EACpC,iBAA8C,EAC9C,gBAA6C,GAC7C,EAAE,KAAK,2CAyGP"}
1
+ {"version":3,"file":"form-dropdown-input.d.ts","sourceRoot":"","sources":["../../../forms/fields/form-dropdown-input.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAgBjD;;;;;;;;GAQG;AACH,MAAM,MAAM,KAAK,GAAG;IACnB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC9C,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAoC,EACpC,iBAA8C,EAC9C,gBAA6C,GAC7C,EAAE,KAAK,2CA0GP"}
@@ -7,6 +7,7 @@ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, Command
7
7
  import { Label } from "../../ui/label";
8
8
  import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover";
9
9
  import { cn } from "../../utils/cn";
10
+ import { haptic } from "../../utils/haptic";
10
11
  import { useFormValues } from "../generic-form-wrapper";
11
12
  // Default values extracted as constants for stable reference
12
13
  const DEFAULT_EMPTY_MESSAGE = "No results found";
@@ -71,6 +72,7 @@ export function FormDropdownInput({ label, htmlFor, options, inputRef, placehold
71
72
  }
72
73
  }
73
74
  const handleSelect = (selectedValue) => {
75
+ haptic();
74
76
  setValue(selectedValue);
75
77
  setSearchValue("");
76
78
  setOpen(false);
@@ -1 +1 @@
1
- {"version":3,"file":"form-dropdown-input.js","sourceRoot":"","sources":["../../../forms/fields/form-dropdown-input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAkB,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACN,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAoCxD,6DAA6D;AAC7D,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACjD,MAAM,0BAA0B,GAAG,WAAW,CAAC;AAC/C,MAAM,0BAA0B,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,iBAAiB,CAAC,EACjC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAY,GAAG,qBAAqB,EACpC,iBAAiB,GAAG,0BAA0B,EAC9C,gBAAgB,GAAG,0BAA0B,GACtC;IACP,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7C,mEAAmE;IACnE,iFAAiF;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE7E,mFAAmF;IACnF,sEAAsE;IACtE,IAAI,cAAc,KAAK,kBAAkB,EAAE,CAAC;QAC3C,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,aAAqB,EAAE,EAAE;QAC9C,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC9B,IAAI,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtB,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,YAAG,KAAK,GAAS,EACxC,MAAC,OAAO,IAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,aACzC,KAAC,cAAc,IAAC,OAAO,kBACtB,MAAC,MAAM,qBACS,IAAI,gBACP,KAAK,EACjB,SAAS,EAAC,wBAAwB,EAClC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,SAAS,aAEhB,KAAK,IAAI,WAAW,EACrB,KAAC,kBAAkB,IAAC,SAAS,EAAC,kCAAkC,GAAG,IAC3D,GACO,EACjB,KAAC,cAAc,IAAC,SAAS,EAAC,4CAA4C,YACrE,MAAC,OAAO,IAAC,YAAY,mBACpB,KAAC,YAAY,IACZ,aAAa,EAAE,cAAc,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,KAAK,EAAE,WAAW,GACjB,EACF,MAAC,WAAW,eACX,KAAC,YAAY,cACX,WAAW,CAAC,CAAC,CAAC,CACd,iBACC,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAC,QAAQ,YAEZ,gBAAgB,CAAC,WAAW,CAAC,GACtB,CACT,CAAC,CAAC,CAAC,CACH,YAAY,CACZ,GACa,EACf,KAAC,YAAY,cACX,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxB,MAAC,WAAW,IAEX,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EACzC,KAAK,EAAE,MAAM,CAAC,IAAI,aAElB,KAAC,SAAS,IACT,SAAS,EAAE,EAAE,CACZ,cAAc,EACd,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CACnD,GACA,EACD,MAAM,CAAC,IAAI,KAVP,MAAM,CAAC,EAAE,CAWD,CACd,CAAC,GACY,IACF,IACL,GACM,IACR,EACV,gBACC,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,KAAK,GACX,IACG,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"form-dropdown-input.js","sourceRoot":"","sources":["../../../forms/fields/form-dropdown-input.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-input-with-button.d.ts","sourceRoot":"","sources":["../../../forms/fields/form-input-with-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACtC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC9C,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,GAAG,UAAU,EACb,EAAE,wBAAwB,2CA8B1B"}
1
+ {"version":3,"file":"form-input-with-button.d.ts","sourceRoot":"","sources":["../../../forms/fields/form-input-with-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACtC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC9C,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,GAAG,UAAU,EACb,EAAE,wBAAwB,2CAiC1B"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from "../../ui/button";
3
3
  import { Input } from "../../ui/input";
4
4
  import { Label } from "../../ui/label";
5
+ import { haptic } from "../../utils/haptic";
5
6
  import { useFormValues } from "../generic-form-wrapper";
6
7
  /**
7
8
  * A text input with an adjacent action button.
@@ -36,6 +37,9 @@ export function FormInputWithButton({ label, htmlFor, buttonIcon, onButtonClick,
36
37
  const formValues = useFormValues();
37
38
  const fieldName = inputProps.name || htmlFor;
38
39
  const preservedValue = formValues[fieldName];
39
- return (_jsxs("div", { className: "space-y-1", children: [_jsx(Label, { htmlFor: htmlFor, children: label }), _jsxs("div", { className: "flex", children: [_jsx(Input, { defaultValue: preservedValue || defaultValue, id: htmlFor, ref: inputRef, ...inputProps }, preservedValue), _jsx(Button, { "aria-label": buttonAriaLabel ?? label, "data-testid": buttonTestId, onClick: onButtonClick, type: "button", variant: "ghost", children: buttonIcon })] })] }));
40
+ return (_jsxs("div", { className: "space-y-1", children: [_jsx(Label, { htmlFor: htmlFor, children: label }), _jsxs("div", { className: "flex", children: [_jsx(Input, { defaultValue: preservedValue || defaultValue, id: htmlFor, ref: inputRef, ...inputProps }, preservedValue), _jsx(Button, { "aria-label": buttonAriaLabel ?? label, "data-testid": buttonTestId, onClick: () => {
41
+ haptic();
42
+ onButtonClick();
43
+ }, type: "button", variant: "ghost", children: buttonIcon })] })] }));
40
44
  }
41
45
  //# sourceMappingURL=form-input-with-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-input-with-button.js","sourceRoot":"","sources":["../../../forms/fields/form-input-with-button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAwBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,mBAAmB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,GAAG,UAAU,EACa;IAC1B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC;IAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,YAAG,KAAK,GAAS,EACxC,eAAK,SAAS,EAAC,MAAM,aACpB,KAAC,KAAK,IACL,YAAY,EAAE,cAAc,IAAI,YAAY,EAC5C,EAAE,EAAE,OAAO,EAIX,GAAG,EAAE,QAAQ,KACT,UAAU,IAFT,cAAc,CAGlB,EACF,KAAC,MAAM,kBACM,eAAe,IAAI,KAAK,iBACvB,YAAY,EACzB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,YAEd,UAAU,GACH,IACJ,IACD,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"form-input-with-button.js","sourceRoot":"","sources":["../../../forms/fields/form-input-with-button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAwBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,mBAAmB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,GAAG,UAAU,EACa;IAC1B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC;IAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,YAAG,KAAK,GAAS,EACxC,eAAK,SAAS,EAAC,MAAM,aACpB,KAAC,KAAK,IACL,YAAY,EAAE,cAAc,IAAI,YAAY,EAC5C,EAAE,EAAE,OAAO,EAIX,GAAG,EAAE,QAAQ,KACT,UAAU,IAFT,cAAc,CAGlB,EACF,KAAC,MAAM,kBACM,eAAe,IAAI,KAAK,iBACvB,YAAY,EACzB,OAAO,EAAE,GAAG,EAAE;4BACb,MAAM,EAAE,CAAC;4BACT,aAAa,EAAE,CAAC;wBACjB,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,YAEd,UAAU,GACH,IACJ,IACD,CACN,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generic-form-wrapper.d.ts","sourceRoot":"","sources":["../../forms/generic-form-wrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AAUf;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,8BAA+B,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACxC,8CAA8C;IAC9C,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,2DAA2D;IAC3D,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CACjC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAC9C,EACD,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,GACX,EAAE,uBAAuB,CAAC,CAAC,CAAC,2CAiD5B"}
1
+ {"version":3,"file":"generic-form-wrapper.d.ts","sourceRoot":"","sources":["../../forms/generic-form-wrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AAWf;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,8BAA+B,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACxC,8CAA8C;IAC9C,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,2DAA2D;IAC3D,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CACjC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAC9C,EACD,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,GACX,EAAE,uBAAuB,CAAC,CAAC,CAAC,2CAsD5B"}
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, use, useActionState, useState, } from "react";
4
4
  import Loading from "../display/loading";
5
5
  import { Button } from "../ui/button";
6
+ import { haptic } from "../utils/haptic";
6
7
  /**
7
8
  * Context for sharing form values across form fields.
8
9
  * @internal
@@ -82,7 +83,7 @@ export function GenericFormWrapper({ action, children, saveLabel, submitLabel, l
82
83
  return response;
83
84
  };
84
85
  const [_, submitAction, isPending] = useActionState(submitForm, null);
85
- return (_jsx(FormValuesContext.Provider, { value: formValues, children: _jsxs("form", { action: submitAction, className: "space-y-4 px-2 py-4", children: [isPending ? _jsx(Loading, {}) : children, _jsx(Button, { className: "w-full", disabled: isPending, type: "submit", children: isPending && loadingLabel
86
+ return (_jsx(FormValuesContext.Provider, { value: formValues, children: _jsxs("form", { action: submitAction, className: "space-y-4 px-2 py-4", children: [isPending ? _jsx(Loading, {}) : children, _jsx(Button, { className: "w-full", disabled: isPending, onClick: () => haptic(), type: "submit", children: isPending && loadingLabel
86
87
  ? loadingLabel
87
88
  : submitLabel
88
89
  ? submitLabel
@@ -1 +1 @@
1
- {"version":3,"file":"generic-form-wrapper.js","sourceRoot":"","sources":["../../forms/generic-form-wrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EACN,aAAa,EAEb,GAAG,EACH,cAAc,EACd,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,iBAAiB,GAAG,aAAa,CAAyB,EAAE,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AA4B1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,kBAAkB,CAEhC,EACD,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,GACiB;IAC5B,oEAAoE;IACpE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAG1C,IAAI,CAAC,CAAC;IAEhB,8EAA8E;IAC9E,MAAM,UAAU,GAAG,cAAc,IAAI,eAAe,IAAI,EAAE,CAAC;IAE3D,MAAM,UAAU,GAAG,KAAK,EACvB,cAAwB,EACxB,QAAkB,EACE,EAAE;QACtB,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,oCAAoC;YACpC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,8BAA8B;QAC9B,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACjD,iBAAiB,CAAC,QAAQ,CAAC,QAAkC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEtE,OAAO,CACN,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAC5C,gBAAM,MAAM,EAAE,YAAY,EAAE,SAAS,EAAC,qBAAqB,aACzD,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC,CAAC,QAAQ,EACnC,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ,YAC3D,SAAS,IAAI,YAAY;wBACzB,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,WAAW;4BACZ,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,SAAS,GACL,IACH,GACqB,CAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"generic-form-wrapper.js","sourceRoot":"","sources":["../../forms/generic-form-wrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EACN,aAAa,EAEb,GAAG,EACH,cAAc,EACd,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;;GAGG;AACH,MAAM,iBAAiB,GAAG,aAAa,CAAyB,EAAE,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AA4B1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,kBAAkB,CAEhC,EACD,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,GACiB;IAC5B,oEAAoE;IACpE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAG1C,IAAI,CAAC,CAAC;IAEhB,8EAA8E;IAC9E,MAAM,UAAU,GAAG,cAAc,IAAI,eAAe,IAAI,EAAE,CAAC;IAE3D,MAAM,UAAU,GAAG,KAAK,EACvB,cAAwB,EACxB,QAAkB,EACE,EAAE;QACtB,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,oCAAoC;YACpC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,8BAA8B;QAC9B,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACjD,iBAAiB,CAAC,QAAQ,CAAC,QAAkC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEtE,OAAO,CACN,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAC5C,gBAAM,MAAM,EAAE,YAAY,EAAE,SAAS,EAAC,qBAAqB,aACzD,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC,CAAC,QAAQ,EACnC,KAAC,MAAM,IACN,SAAS,EAAC,QAAQ,EAClB,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EACvB,IAAI,EAAC,QAAQ,YAEZ,SAAS,IAAI,YAAY;wBACzB,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,WAAW;4BACZ,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,SAAS,GACL,IACH,GACqB,CAC7B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-infinite-scroll.d.ts","sourceRoot":"","sources":["../../hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACtC,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACrC,iDAAiD;IACjD,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,UAAoB,EACpB,SAAe,GACf,EAAE,wBAAwB,GAAG,uBAAuB,CA6BpD"}
1
+ {"version":3,"file":"use-infinite-scroll.d.ts","sourceRoot":"","sources":["../../hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACtC,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACrC,iDAAiD;IACjD,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,UAAoB,EACpB,SAAe,GACf,EAAE,wBAAwB,GAAG,uBAAuB,CAuCpD"}
@@ -63,6 +63,15 @@ export function useInfiniteScroll({ hasNextPage, isFetchingNextPage, fetchNextPa
63
63
  useEffect(() => {
64
64
  setIsInitialized(true);
65
65
  }, []);
66
+ // Cleanup observer on unmount to prevent memory leaks
67
+ useEffect(() => {
68
+ return () => {
69
+ if (observer.current) {
70
+ observer.current.disconnect();
71
+ observer.current = null;
72
+ }
73
+ };
74
+ }, []);
66
75
  return { lastElementRef };
67
76
  }
68
77
  //# sourceMappingURL=use-infinite-scroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-infinite-scroll.js","sourceRoot":"","sources":["../../hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8BpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,iBAAiB,CAAC,EACjC,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,UAAU,GAAG,OAAO,EACpB,SAAS,GAAG,GAAG,GACW;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAE,EAAE;QACnD,IAAI,kBAAkB;YAAE,OAAO;QAC/B,IAAI,QAAQ,CAAC,OAAO;YAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAEpD,QAAQ,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAC1C,CAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;gBAChE,aAAa,EAAE,CAAC;YACjB,CAAC;QACF,CAAC,EACD;YACC,UAAU;YACV,SAAS;SACT,CACD,CAAC;QAEF,IAAI,IAAI;YAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,oDAAoD;IACpD,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,cAAc,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"use-infinite-scroll.js","sourceRoot":"","sources":["../../hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8BpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,iBAAiB,CAAC,EACjC,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,UAAU,GAAG,OAAO,EACpB,SAAS,GAAG,GAAG,GACW;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAE,EAAE;QACnD,IAAI,kBAAkB;YAAE,OAAO;QAC/B,IAAI,QAAQ,CAAC,OAAO;YAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAEpD,QAAQ,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAC1C,CAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;gBAChE,aAAa,EAAE,CAAC;YACjB,CAAC;QACF,CAAC,EACD;YACC,UAAU;YACV,SAAS;SACT,CACD,CAAC;QAEF,IAAI,IAAI;YAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,oDAAoD;IACpD,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE;YACX,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,CAAC;QACF,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,cAAc,EAAE,CAAC;AAC3B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -59,4 +59,5 @@ export * from "./ui/stat";
59
59
  export * from "./ui/tabs";
60
60
  export * from "./ui/textarea";
61
61
  export * from "./utils/cn";
62
+ export * from "./utils/haptic";
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -64,4 +64,5 @@ export * from "./ui/tabs";
64
64
  export * from "./ui/textarea";
65
65
  // Utilities
66
66
  export * from "./utils/cn";
67
+ export * from "./utils/haptic";
67
68
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,qBAAqB;AACrB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAElD,kBAAkB;AAClB,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAE7C,QAAQ;AACR,cAAc,6BAA6B,CAAC;AAE5C,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAE9B,YAAY;AACZ,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,qBAAqB;AACrB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAElD,kBAAkB;AAClB,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAE7C,QAAQ;AACR,cAAc,6BAA6B,CAAC;AAE5C,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAE9B,YAAY;AACZ,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}