@zayne-labs/ui-react 0.10.45 → 0.10.47

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.
Files changed (63) hide show
  1. package/css/theme.css +4 -2
  2. package/dist/esm/{chunk-BL-4obUL.js → chunk-BN_g-Awi.js} +2 -2
  3. package/dist/esm/{client-gate-B3fRopBx.js → client-gate-Ch5I9_pc.js} +3 -3
  4. package/dist/esm/{client-gate-B3fRopBx.js.map → client-gate-Ch5I9_pc.js.map} +1 -1
  5. package/dist/esm/{cn-Dnsqr-G7.js → cn-pbJoeyH6.js} +1 -1
  6. package/dist/esm/cn-pbJoeyH6.js.map +1 -0
  7. package/dist/esm/common/await/index.d.ts +6 -6
  8. package/dist/esm/common/await/index.js +9 -9
  9. package/dist/esm/common/await/index.js.map +1 -1
  10. package/dist/esm/common/client-gate/index.d.ts +2 -2
  11. package/dist/esm/common/client-gate/index.js +1 -1
  12. package/dist/esm/common/error-boundary/index.d.ts +2 -2
  13. package/dist/esm/common/error-boundary/index.js +1 -1
  14. package/dist/esm/common/for/index.d.ts +4 -4
  15. package/dist/esm/common/for/index.js +1 -1
  16. package/dist/esm/common/presence/index.d.ts +2 -2
  17. package/dist/esm/common/presence/index.js +1 -1
  18. package/dist/esm/common/show/index.d.ts +4 -4
  19. package/dist/esm/common/show/index.js +1 -1
  20. package/dist/esm/common/slot/index.d.ts +4 -4
  21. package/dist/esm/common/slot/index.js +1 -1
  22. package/dist/esm/common/suspense-with-boundary/index.d.ts +2 -2
  23. package/dist/esm/common/suspense-with-boundary/index.js +1 -1
  24. package/dist/esm/common/switch/index.d.ts +6 -6
  25. package/dist/esm/common/switch/index.js +2 -2
  26. package/dist/esm/common/switch/index.js.map +1 -1
  27. package/dist/esm/common/teleport/index.d.ts +3 -3
  28. package/dist/esm/common/teleport/index.js +8 -3
  29. package/dist/esm/common/teleport/index.js.map +1 -1
  30. package/dist/esm/{error-boundary-TM4xzQfq.js → error-boundary-pMMeMfwH.js} +2 -2
  31. package/dist/esm/error-boundary-pMMeMfwH.js.map +1 -0
  32. package/dist/esm/{for-BeCRb3k2.js → for-IenHovla.js} +1 -1
  33. package/dist/esm/{for-BeCRb3k2.js.map → for-IenHovla.js.map} +1 -1
  34. package/dist/esm/{index-DzMX8Xce.d.ts → index-CW1qt3Kq.d.ts} +4 -4
  35. package/dist/esm/{index-Dvt8y6Uu.d.ts → index-DtJyivJH.d.ts} +9 -9
  36. package/dist/esm/{presence-Ctp-Trws.js → presence-BbOLyzEd.js} +3 -3
  37. package/dist/esm/presence-BbOLyzEd.js.map +1 -0
  38. package/dist/esm/{show-7VInUu_D.js → show-CWSAcfVL.js} +6 -6
  39. package/dist/esm/show-CWSAcfVL.js.map +1 -0
  40. package/dist/esm/{slot-CURylbjq.js → slot-C56gqKvk.js} +3 -3
  41. package/dist/esm/slot-C56gqKvk.js.map +1 -0
  42. package/dist/esm/ui/card/index.d.ts +8 -8
  43. package/dist/esm/ui/card/index.js +4 -4
  44. package/dist/esm/ui/card/index.js.map +1 -1
  45. package/dist/esm/ui/carousel/index.d.ts +9 -9
  46. package/dist/esm/ui/carousel/index.js +6 -6
  47. package/dist/esm/ui/carousel/index.js.map +1 -1
  48. package/dist/esm/ui/drag-scroll/index.d.ts +164 -11
  49. package/dist/esm/ui/drag-scroll/index.js +243 -72
  50. package/dist/esm/ui/drag-scroll/index.js.map +1 -1
  51. package/dist/esm/ui/drop-zone/index.d.ts +100 -29
  52. package/dist/esm/ui/drop-zone/index.js +84 -76
  53. package/dist/esm/ui/drop-zone/index.js.map +1 -1
  54. package/dist/esm/ui/form/index.d.ts +22 -23
  55. package/dist/esm/ui/form/index.js +34 -32
  56. package/dist/esm/ui/form/index.js.map +1 -1
  57. package/dist/style.css +12 -7
  58. package/package.json +19 -11
  59. package/dist/esm/cn-Dnsqr-G7.js.map +0 -1
  60. package/dist/esm/error-boundary-TM4xzQfq.js.map +0 -1
  61. package/dist/esm/presence-Ctp-Trws.js.map +0 -1
  62. package/dist/esm/show-7VInUu_D.js.map +0 -1
  63. package/dist/esm/slot-CURylbjq.js.map +0 -1
package/css/theme.css CHANGED
@@ -1,16 +1,18 @@
1
1
  @theme {
2
+ --color-zu-foreground: oklch(0.145 0 0);
2
3
  --color-zu-accent: oklch(0.967 0.001 286.375);
3
- --color-zu-destructive: oklch(0.577 0.245 27.325);
4
+ --color-zu-accent-foreground: oklch(0.205 0 0);
4
5
  --color-zu-muted-foreground: oklch(0.556 0 0);
6
+ --color-zu-destructive: oklch(0.577 0.245 27.325);
5
7
  --color-zu-primary: oklch(0.21 0.04 265.75);
6
8
  --color-zu-primary-foreground: oklch(0.985 0 0);
7
9
  --color-zu-ring: oklch(0.705 0.015 286.067);
8
- --color-zu-foreground: oklch(0.145 0 0);
9
10
  }
10
11
 
11
12
  :where(.dark, [data-theme="dark"]) {
12
13
  --color-zu-foreground: oklch(0.985 0 0);
13
14
  --color-zu-accent: oklch(0.274 0.006 286.033);
15
+ --color-zu-accent-foreground: oklch(0.985 0 0);
14
16
  --color-zu-muted-foreground: oklch(0.708 0 0);
15
17
  --color-zu-destructive: oklch(0.704 0.191 22.216);
16
18
  --color-zu-primary: oklch(0.92 0.004 286.32);
@@ -1,6 +1,6 @@
1
1
  //#region rolldown:runtime
2
2
  var __defProp = Object.defineProperty;
3
- var __export = (all, symbols) => {
3
+ var __exportAll = (all, symbols) => {
4
4
  let target = {};
5
5
  for (var name in all) {
6
6
  __defProp(target, name, {
@@ -15,4 +15,4 @@ var __export = (all, symbols) => {
15
15
  };
16
16
 
17
17
  //#endregion
18
- export { __export as t };
18
+ export { __exportAll as t };
@@ -22,10 +22,10 @@ import { useIsHydrated } from "@zayne-labs/toolkit-react";
22
22
  function ClientGate(props) {
23
23
  const { children, fallback } = props;
24
24
  const isHydrated = useIsHydrated();
25
- const getResolvedChildren = () => isFunction(children) ? children() : children;
26
- return isHydrated ? getResolvedChildren() : fallback;
25
+ const resolvedChildren = () => isFunction(children) ? children() : children;
26
+ return isHydrated ? resolvedChildren() : fallback;
27
27
  }
28
28
 
29
29
  //#endregion
30
30
  export { ClientGate as t };
31
- //# sourceMappingURL=client-gate-B3fRopBx.js.map
31
+ //# sourceMappingURL=client-gate-Ch5I9_pc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-gate-B3fRopBx.js","names":[],"sources":["../../src/components/common/client-gate/client-gate.tsx"],"sourcesContent":["\"use client\";\n\nimport { useIsHydrated } from \"@zayne-labs/toolkit-react\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ClientGateProps = {\n\t/**\n\t * You are encouraged to add a fallback that is the same dimensions\n\t * as the client rendered children. This will avoid content layout\n\t * shift which is disgusting 🥲\n\t */\n\tchildren: React.ReactNode | (() => React.ReactNode);\n\tfallback?: React.ReactNode;\n};\n\n/**\n * @description Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * **Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.**\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nfunction ClientGate(props: ClientGateProps) {\n\tconst { children, fallback } = props;\n\n\tconst isHydrated = useIsHydrated();\n\n\tconst getResolvedChildren = () => (isFunction(children) ? children() : children);\n\n\treturn isHydrated ? getResolvedChildren() : fallback;\n}\n\nexport { ClientGate };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgCA,SAAS,WAAW,OAAwB;CAC3C,MAAM,EAAE,UAAU,aAAa;CAE/B,MAAM,aAAa,eAAe;CAElC,MAAM,4BAA6B,WAAW,SAAS,GAAG,UAAU,GAAG;AAEvE,QAAO,aAAa,qBAAqB,GAAG"}
1
+ {"version":3,"file":"client-gate-Ch5I9_pc.js","names":[],"sources":["../../src/components/common/client-gate/client-gate.tsx"],"sourcesContent":["\"use client\";\n\nimport { useIsHydrated } from \"@zayne-labs/toolkit-react\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ClientGateProps = {\n\t/**\n\t * You are encouraged to add a fallback that is the same dimensions\n\t * as the client rendered children. This will avoid content layout\n\t * shift which is disgusting 🥲\n\t */\n\tchildren: React.ReactNode | (() => React.ReactNode);\n\tfallback?: React.ReactNode;\n};\n\n/**\n * @description Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * **Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.**\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * {() => <Chart />}\n * </ClientOnly>\n * );\n * ```\n */\nfunction ClientGate(props: ClientGateProps) {\n\tconst { children, fallback } = props;\n\n\tconst isHydrated = useIsHydrated();\n\n\tconst resolvedChildren = () => (isFunction(children) ? children() : children);\n\n\treturn isHydrated ? resolvedChildren() : fallback;\n}\n\nexport { ClientGate };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgCA,SAAS,WAAW,OAAwB;CAC3C,MAAM,EAAE,UAAU,aAAa;CAE/B,MAAM,aAAa,eAAe;CAElC,MAAM,yBAA0B,WAAW,SAAS,GAAG,UAAU,GAAG;AAEpE,QAAO,aAAa,kBAAkB,GAAG"}
@@ -5,4 +5,4 @@ const cnMerge = (...classNames) => twMerge(classNames);
5
5
 
6
6
  //#endregion
7
7
  export { cnMerge as t };
8
- //# sourceMappingURL=cn-Dnsqr-G7.js.map
8
+ //# sourceMappingURL=cn-pbJoeyH6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn-pbJoeyH6.js","names":[],"sources":["../../src/lib/utils/cn.ts"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\nexport const cnMerge: typeof twMerge = (...classNames) => twMerge(classNames);\n"],"mappings":";;;AAEA,MAAa,WAA2B,GAAG,eAAe,QAAQ,WAAW"}
@@ -1,8 +1,8 @@
1
- import { a as ErrorBoundaryProps } from "../../index-Dvt8y6Uu.js";
2
- import { n as SuspenseWithBoundaryProps } from "../../index-DzMX8Xce.js";
1
+ import { a as ErrorBoundaryProps } from "../../index-DtJyivJH.js";
2
+ import { n as SuspenseWithBoundaryProps } from "../../index-CW1qt3Kq.js";
3
3
  import { GetSlotComponentProps } from "@zayne-labs/toolkit-react/utils";
4
- import * as react17 from "react";
5
- import * as react_jsx_runtime29 from "react/jsx-runtime";
4
+ import * as react3 from "react";
5
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
6
6
 
7
7
  //#region src/components/common/await/await.d.ts
8
8
  type RenderPropFn<TValue> = (result: TValue) => React.ReactNode;
@@ -14,9 +14,9 @@ type AwaitRootProps<TValue> = Pick<SuspenseWithBoundaryProps, "errorFallback" |
14
14
  withErrorBoundary?: boolean;
15
15
  withSuspense?: boolean;
16
16
  };
17
- declare function AwaitRoot<TValue>(props: AwaitRootProps<TValue>): react_jsx_runtime29.JSX.Element;
17
+ declare function AwaitRoot<TValue>(props: AwaitRootProps<TValue>): react_jsx_runtime8.JSX.Element;
18
18
  type AwaitSuccessProps<TValue = unknown> = GetSlotComponentProps<"default", ChildrenType<TValue>>;
19
- declare function AwaitSuccess<TPromiseOrValue, TValue = Awaited<TPromiseOrValue>>(props: Pick<AwaitSuccessProps<TValue>, "children">): react17.ReactNode;
19
+ declare function AwaitSuccess<TPromiseOrValue, TValue = Awaited<TPromiseOrValue>>(props: Pick<AwaitSuccessProps<TValue>, "children">): react3.ReactNode;
20
20
  type AwaitErrorProps = GetSlotComponentProps<"error", ErrorBoundaryProps["fallback"]>;
21
21
  declare const AwaitError: {
22
22
  (props: Pick<AwaitErrorProps, "children"> & {
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
 
3
- import { t as __export } from "../../chunk-BL-4obUL.js";
4
- import { n as ErrorBoundary, r as useErrorBoundaryContext } from "../../error-boundary-TM4xzQfq.js";
5
- import { n as SlotRoot } from "../../slot-CURylbjq.js";
3
+ import { t as __exportAll } from "../../chunk-BN_g-Awi.js";
4
+ import { n as SlotRoot } from "../../slot-C56gqKvk.js";
5
+ import { n as ErrorBoundary, r as useErrorBoundaryContext } from "../../error-boundary-pMMeMfwH.js";
6
6
  import { getSlotMap, withSlotNameAndSymbol } from "@zayne-labs/toolkit-react/utils";
7
7
  import { isFunction } from "@zayne-labs/toolkit-type-helpers";
8
8
  import { Fragment, Suspense, use, useMemo } from "react";
9
- import { createCustomContext } from "@zayne-labs/toolkit-react";
10
9
  import { jsx } from "react/jsx-runtime";
10
+ import { createCustomContext } from "@zayne-labs/toolkit-react";
11
11
 
12
12
  //#region src/components/common/await/await-context.ts
13
13
  const [AwaitContextProvider, useAwaitContextImpl] = createCustomContext({
@@ -41,14 +41,14 @@ function AwaitRootInner(props) {
41
41
  const { asChild, children, promise } = props;
42
42
  const result = use(promise);
43
43
  const resolvedChildren = isFunction(children) ? children(result) : children;
44
- const Component$1 = asChild ? SlotRoot : Fragment;
44
+ const Component = asChild ? SlotRoot : Fragment;
45
45
  const contextValue = useMemo(() => ({
46
46
  promise,
47
47
  result
48
48
  }), [promise, result]);
49
49
  return /* @__PURE__ */ jsx(AwaitContextProvider, {
50
50
  value: contextValue,
51
- children: /* @__PURE__ */ jsx(Component$1, {
51
+ children: /* @__PURE__ */ jsx(Component, {
52
52
  ...asChild && contextValue,
53
53
  children: resolvedChildren
54
54
  })
@@ -66,9 +66,9 @@ Object.assign(AwaitSuccess, withSlotNameAndSymbol("default"));
66
66
  const AwaitError = withSlotNameAndSymbol("error", (props) => {
67
67
  const { asChild, children } = props;
68
68
  const errorBoundaryContext = useErrorBoundaryContext();
69
- const Component$1 = asChild ? SlotRoot : Fragment;
69
+ const Component = asChild ? SlotRoot : Fragment;
70
70
  const resolvedChildren = isFunction(children) ? children(errorBoundaryContext) : children;
71
- return /* @__PURE__ */ jsx(Component$1, {
71
+ return /* @__PURE__ */ jsx(Component, {
72
72
  ...asChild && errorBoundaryContext,
73
73
  children: resolvedChildren
74
74
  });
@@ -77,7 +77,7 @@ const AwaitPending = withSlotNameAndSymbol("pending");
77
77
 
78
78
  //#endregion
79
79
  //#region src/components/common/await/await-parts.ts
80
- var await_parts_exports = /* @__PURE__ */ __export({
80
+ var await_parts_exports = /* @__PURE__ */ __exportAll({
81
81
  Error: () => AwaitError,
82
82
  Pending: () => AwaitPending,
83
83
  Root: () => AwaitRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ReactFragment","Component","Slot.Root"],"sources":["../../../../src/components/common/await/await-context.ts","../../../../src/components/common/await/await.tsx","../../../../src/components/common/await/await-parts.ts"],"sourcesContent":["import { createCustomContext } from \"@zayne-labs/toolkit-react\";\n\nexport type AwaitContextType<TValue = unknown> = {\n\tpromise: Promise<TValue>;\n\tresult: TValue;\n};\n\nconst [AwaitContextProvider, useAwaitContextImpl] = createCustomContext<AwaitContextType>({\n\thookName: \"useAwaitContext\",\n\tname: \"AwaitContext\",\n\tproviderName: \"AwaitInner\",\n});\n\nconst useAwaitContext = <TValue>() => useAwaitContextImpl() as AwaitContextType<TValue>;\n\nexport { useAwaitContext, AwaitContextProvider };\n","\"use client\";\n\nimport {\n\ttype GetSlotComponentProps,\n\tgetSlotMap,\n\twithSlotNameAndSymbol,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\nimport { Fragment as ReactFragment, Suspense, use, useMemo } from \"react\";\nimport { ErrorBoundary, type ErrorBoundaryProps, useErrorBoundaryContext } from \"../error-boundary\";\nimport { Slot } from \"../slot\";\nimport type { SuspenseWithBoundaryProps } from \"../suspense-with-boundary\";\nimport { AwaitContextProvider, useAwaitContext } from \"./await-context\";\n\ntype RenderPropFn<TValue> = (result: TValue) => React.ReactNode;\n\ntype ChildrenType<TValue> = React.ReactNode | RenderPropFn<TValue>;\n\ntype AwaitRootProps<TValue> = Pick<SuspenseWithBoundaryProps, \"errorFallback\" | \"fallback\"> & {\n\tasChild?: boolean;\n\tchildren: ChildrenType<TValue>;\n\tpromise: Promise<TValue>;\n\twithErrorBoundary?: boolean;\n\twithSuspense?: boolean;\n};\n\nexport function AwaitRoot<TValue>(props: AwaitRootProps<TValue>) {\n\tconst {\n\t\tchildren,\n\t\terrorFallback,\n\t\tfallback,\n\t\twithErrorBoundary = true,\n\t\twithSuspense = true,\n\t\t...restOfProps\n\t} = props;\n\n\tconst WithErrorBoundary = withErrorBoundary ? ErrorBoundary : ReactFragment;\n\tconst WithSuspense = withSuspense ? Suspense : ReactFragment;\n\n\tconst slots =\n\t\t!isFunction(children) ?\n\t\t\tgetSlotMap<SlotComponentProps>(children)\n\t\t:\t({ default: children } as unknown as ReturnType<typeof getSlotMap<SlotComponentProps>>);\n\n\tconst selectedPendingFallback = slots.pending ?? fallback;\n\tconst selectedErrorFallback = slots.error ?? errorFallback;\n\n\treturn (\n\t\t<WithErrorBoundary {...(Boolean(selectedErrorFallback) && { fallback: selectedErrorFallback })}>\n\t\t\t<WithSuspense {...(Boolean(selectedPendingFallback) && { fallback: selectedPendingFallback })}>\n\t\t\t\t<AwaitRootInner {...restOfProps}>{slots.default}</AwaitRootInner>\n\t\t\t</WithSuspense>\n\t\t</WithErrorBoundary>\n\t);\n}\n\ntype AwaitRootInnerProps<TValue> = Pick<AwaitRootProps<TValue>, \"asChild\" | \"children\" | \"promise\">;\n\nfunction AwaitRootInner<TValue>(props: AwaitRootInnerProps<TValue>) {\n\tconst { asChild, children, promise } = props;\n\n\tconst result = use(promise);\n\n\tconst resolvedChildren = isFunction(children) ? children(result) : children;\n\n\tconst Component = asChild ? Slot.Root : ReactFragment;\n\n\tconst contextValue = useMemo(() => ({ promise, result }), [promise, result]);\n\n\treturn (\n\t\t<AwaitContextProvider value={contextValue}>\n\t\t\t<Component {...(asChild && contextValue)}>{resolvedChildren}</Component>\n\t\t</AwaitContextProvider>\n\t);\n}\n\ntype SlotComponentProps = AwaitErrorProps | AwaitPendingProps | AwaitSuccessProps;\n\ntype AwaitSuccessProps<TValue = unknown> = GetSlotComponentProps<\"default\", ChildrenType<TValue>>;\n\nexport function AwaitSuccess<TPromiseOrValue, TValue = Awaited<TPromiseOrValue>>(\n\tprops: Pick<AwaitSuccessProps<TValue>, \"children\">\n) {\n\tconst { children } = props;\n\n\tif (isFunction(children)) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks -- This hook only uses `use` under the hood so this is safe\n\t\tconst { result } = useAwaitContext<TValue>();\n\n\t\treturn children(result);\n\t}\n\n\treturn children;\n}\n\nObject.assign(AwaitSuccess, withSlotNameAndSymbol<AwaitSuccessProps>(\"default\"));\n\ntype AwaitErrorProps = GetSlotComponentProps<\"error\", ErrorBoundaryProps[\"fallback\"]>;\n\nexport const AwaitError = withSlotNameAndSymbol<AwaitErrorProps, { asChild?: boolean }>(\n\t\"error\",\n\t(props) => {\n\t\tconst { asChild, children } = props;\n\n\t\tconst errorBoundaryContext = useErrorBoundaryContext();\n\n\t\tconst Component = asChild ? Slot.Root : ReactFragment;\n\n\t\tconst resolvedChildren = isFunction(children) ? children(errorBoundaryContext) : children;\n\n\t\treturn <Component {...(asChild && errorBoundaryContext)}>{resolvedChildren}</Component>;\n\t}\n);\n\ntype AwaitPendingProps = GetSlotComponentProps<\"pending\", React.SuspenseProps[\"fallback\"]>;\n\nexport const AwaitPending = withSlotNameAndSymbol<AwaitPendingProps>(\"pending\");\n","export {\n\tAwaitRoot as Root,\n\tAwaitError as Error,\n\tAwaitPending as Pending,\n\tAwaitSuccess as Success,\n} from \"./await\";\n"],"mappings":";;;;;;;;;;;;AAOA,MAAM,CAAC,sBAAsB,uBAAuB,oBAAsC;CACzF,UAAU;CACV,MAAM;CACN,cAAc;CACd,CAAC;AAEF,MAAM,wBAAgC,qBAAqB;;;;ACc3D,SAAgB,UAAkB,OAA+B;CAChE,MAAM,EACL,UACA,eACA,UACA,oBAAoB,MACpB,eAAe,MACf,GAAG,gBACA;CAEJ,MAAM,oBAAoB,oBAAoB,gBAAgBA;CAC9D,MAAM,eAAe,eAAe,WAAWA;CAE/C,MAAM,QACL,CAAC,WAAW,SAAS,GACpB,WAA+B,SAAS,GACtC,EAAE,SAAS,UAAU;CAEzB,MAAM,0BAA0B,MAAM,WAAW;CACjD,MAAM,wBAAwB,MAAM,SAAS;AAE7C,QACC,oBAAC;EAAkB,GAAK,QAAQ,sBAAsB,IAAI,EAAE,UAAU,uBAAuB;YAC5F,oBAAC;GAAa,GAAK,QAAQ,wBAAwB,IAAI,EAAE,UAAU,yBAAyB;aAC3F,oBAAC;IAAe,GAAI;cAAc,MAAM;KAAyB;IACnD;GACI;;AAMtB,SAAS,eAAuB,OAAoC;CACnE,MAAM,EAAE,SAAS,UAAU,YAAY;CAEvC,MAAM,SAAS,IAAI,QAAQ;CAE3B,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,OAAO,GAAG;CAEnE,MAAMC,cAAY,UAAUC,WAAYF;CAExC,MAAM,eAAe,eAAe;EAAE;EAAS;EAAQ,GAAG,CAAC,SAAS,OAAO,CAAC;AAE5E,QACC,oBAAC;EAAqB,OAAO;YAC5B,oBAACC;GAAU,GAAK,WAAW;aAAgB;IAA6B;GAClD;;AAQzB,SAAgB,aACf,OACC;CACD,MAAM,EAAE,aAAa;AAErB,KAAI,WAAW,SAAS,EAAE;EAEzB,MAAM,EAAE,WAAW,iBAAyB;AAE5C,SAAO,SAAS,OAAO;;AAGxB,QAAO;;AAGR,OAAO,OAAO,cAAc,sBAAyC,UAAU,CAAC;AAIhF,MAAa,aAAa,sBACzB,UACC,UAAU;CACV,MAAM,EAAE,SAAS,aAAa;CAE9B,MAAM,uBAAuB,yBAAyB;CAEtD,MAAMA,cAAY,UAAUC,WAAYF;CAExC,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,qBAAqB,GAAG;AAEjF,QAAO,oBAACC;EAAU,GAAK,WAAW;YAAwB;GAA6B;EAExF;AAID,MAAa,eAAe,sBAAyC,UAAU"}
1
+ {"version":3,"file":"index.js","names":["ReactFragment","Slot.Root"],"sources":["../../../../src/components/common/await/await-context.ts","../../../../src/components/common/await/await.tsx","../../../../src/components/common/await/await-parts.ts"],"sourcesContent":["import { createCustomContext } from \"@zayne-labs/toolkit-react\";\n\nexport type AwaitContextType<TValue = unknown> = {\n\tpromise: Promise<TValue>;\n\tresult: TValue;\n};\n\nconst [AwaitContextProvider, useAwaitContextImpl] = createCustomContext<AwaitContextType>({\n\thookName: \"useAwaitContext\",\n\tname: \"AwaitContext\",\n\tproviderName: \"AwaitInner\",\n});\n\nconst useAwaitContext = <TValue>() => useAwaitContextImpl() as AwaitContextType<TValue>;\n\nexport { useAwaitContext, AwaitContextProvider };\n","\"use client\";\n\nimport {\n\tgetSlotMap,\n\twithSlotNameAndSymbol,\n\ttype GetSlotComponentProps,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\nimport { Fragment as ReactFragment, Suspense, use, useMemo } from \"react\";\nimport { ErrorBoundary, useErrorBoundaryContext, type ErrorBoundaryProps } from \"../error-boundary\";\nimport { Slot } from \"../slot\";\nimport type { SuspenseWithBoundaryProps } from \"../suspense-with-boundary\";\nimport { AwaitContextProvider, useAwaitContext } from \"./await-context\";\n\ntype RenderPropFn<TValue> = (result: TValue) => React.ReactNode;\n\ntype ChildrenType<TValue> = React.ReactNode | RenderPropFn<TValue>;\n\ntype AwaitRootProps<TValue> = Pick<SuspenseWithBoundaryProps, \"errorFallback\" | \"fallback\"> & {\n\tasChild?: boolean;\n\tchildren: ChildrenType<TValue>;\n\tpromise: Promise<TValue>;\n\twithErrorBoundary?: boolean;\n\twithSuspense?: boolean;\n};\n\nexport function AwaitRoot<TValue>(props: AwaitRootProps<TValue>) {\n\tconst {\n\t\tchildren,\n\t\terrorFallback,\n\t\tfallback,\n\t\twithErrorBoundary = true,\n\t\twithSuspense = true,\n\t\t...restOfProps\n\t} = props;\n\n\tconst WithErrorBoundary = withErrorBoundary ? ErrorBoundary : ReactFragment;\n\tconst WithSuspense = withSuspense ? Suspense : ReactFragment;\n\n\tconst slots =\n\t\t!isFunction(children) ?\n\t\t\tgetSlotMap<SlotComponentProps>(children)\n\t\t:\t({ default: children } as unknown as ReturnType<typeof getSlotMap<SlotComponentProps>>);\n\n\tconst selectedPendingFallback = slots.pending ?? fallback;\n\tconst selectedErrorFallback = slots.error ?? errorFallback;\n\n\treturn (\n\t\t<WithErrorBoundary {...(Boolean(selectedErrorFallback) && { fallback: selectedErrorFallback })}>\n\t\t\t<WithSuspense {...(Boolean(selectedPendingFallback) && { fallback: selectedPendingFallback })}>\n\t\t\t\t<AwaitRootInner {...restOfProps}>{slots.default}</AwaitRootInner>\n\t\t\t</WithSuspense>\n\t\t</WithErrorBoundary>\n\t);\n}\n\ntype AwaitRootInnerProps<TValue> = Pick<AwaitRootProps<TValue>, \"asChild\" | \"children\" | \"promise\">;\n\nfunction AwaitRootInner<TValue>(props: AwaitRootInnerProps<TValue>) {\n\tconst { asChild, children, promise } = props;\n\n\tconst result = use(promise);\n\n\tconst resolvedChildren = isFunction(children) ? children(result) : children;\n\n\tconst Component = asChild ? Slot.Root : ReactFragment;\n\n\tconst contextValue = useMemo(() => ({ promise, result }), [promise, result]);\n\n\treturn (\n\t\t<AwaitContextProvider value={contextValue}>\n\t\t\t<Component {...(asChild && contextValue)}>{resolvedChildren}</Component>\n\t\t</AwaitContextProvider>\n\t);\n}\n\ntype SlotComponentProps = AwaitErrorProps | AwaitPendingProps | AwaitSuccessProps;\n\ntype AwaitSuccessProps<TValue = unknown> = GetSlotComponentProps<\"default\", ChildrenType<TValue>>;\n\nexport function AwaitSuccess<TPromiseOrValue, TValue = Awaited<TPromiseOrValue>>(\n\tprops: Pick<AwaitSuccessProps<TValue>, \"children\">\n) {\n\tconst { children } = props;\n\n\tif (isFunction(children)) {\n\t\t// eslint-disable-next-line react-hooks/rule-suppression -- Ignore\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks -- This hook only uses `use` under the hood so this is safe\n\t\tconst { result } = useAwaitContext<TValue>();\n\n\t\treturn children(result);\n\t}\n\n\treturn children;\n}\n\nObject.assign(AwaitSuccess, withSlotNameAndSymbol<AwaitSuccessProps>(\"default\"));\n\ntype AwaitErrorProps = GetSlotComponentProps<\"error\", ErrorBoundaryProps[\"fallback\"]>;\n\nexport const AwaitError = withSlotNameAndSymbol<AwaitErrorProps, { asChild?: boolean }>(\n\t\"error\",\n\t(props) => {\n\t\tconst { asChild, children } = props;\n\n\t\tconst errorBoundaryContext = useErrorBoundaryContext();\n\n\t\tconst Component = asChild ? Slot.Root : ReactFragment;\n\n\t\tconst resolvedChildren = isFunction(children) ? children(errorBoundaryContext) : children;\n\n\t\treturn <Component {...(asChild && errorBoundaryContext)}>{resolvedChildren}</Component>;\n\t}\n);\n\ntype AwaitPendingProps = GetSlotComponentProps<\"pending\", React.SuspenseProps[\"fallback\"]>;\n\nexport const AwaitPending = withSlotNameAndSymbol<AwaitPendingProps>(\"pending\");\n","export {\n\tAwaitRoot as Root,\n\tAwaitError as Error,\n\tAwaitPending as Pending,\n\tAwaitSuccess as Success,\n} from \"./await\";\n"],"mappings":";;;;;;;;;;;;AAOA,MAAM,CAAC,sBAAsB,uBAAuB,oBAAsC;CACzF,UAAU;CACV,MAAM;CACN,cAAc;CACd,CAAC;AAEF,MAAM,wBAAgC,qBAAqB;;;;ACa3D,SAAgB,UAAkB,OAA+B;CAChE,MAAM,EACL,UACA,eACA,UACA,oBAAoB,MACpB,eAAe,MACf,GAAG,gBACA;CAEJ,MAAM,oBAAoB,oBAAoB,gBAAgBA;CAC9D,MAAM,eAAe,eAAe,WAAWA;CAE/C,MAAM,QACL,CAAC,WAAW,SAAS,GACpB,WAA+B,SAAS,GACtC,EAAE,SAAS,UAAU;CAEzB,MAAM,0BAA0B,MAAM,WAAW;CACjD,MAAM,wBAAwB,MAAM,SAAS;AAE7C,QACC,oBAAC;EAAkB,GAAK,QAAQ,sBAAsB,IAAI,EAAE,UAAU,uBAAuB;YAC5F,oBAAC;GAAa,GAAK,QAAQ,wBAAwB,IAAI,EAAE,UAAU,yBAAyB;aAC3F,oBAAC;IAAe,GAAI;cAAc,MAAM;KAAyB;IACnD;GACI;;AAMtB,SAAS,eAAuB,OAAoC;CACnE,MAAM,EAAE,SAAS,UAAU,YAAY;CAEvC,MAAM,SAAS,IAAI,QAAQ;CAE3B,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,OAAO,GAAG;CAEnE,MAAM,YAAY,UAAUC,WAAYD;CAExC,MAAM,eAAe,eAAe;EAAE;EAAS;EAAQ,GAAG,CAAC,SAAS,OAAO,CAAC;AAE5E,QACC,oBAAC;EAAqB,OAAO;YAC5B,oBAAC;GAAU,GAAK,WAAW;aAAgB;IAA6B;GAClD;;AAQzB,SAAgB,aACf,OACC;CACD,MAAM,EAAE,aAAa;AAErB,KAAI,WAAW,SAAS,EAAE;EAGzB,MAAM,EAAE,WAAW,iBAAyB;AAE5C,SAAO,SAAS,OAAO;;AAGxB,QAAO;;AAGR,OAAO,OAAO,cAAc,sBAAyC,UAAU,CAAC;AAIhF,MAAa,aAAa,sBACzB,UACC,UAAU;CACV,MAAM,EAAE,SAAS,aAAa;CAE9B,MAAM,uBAAuB,yBAAyB;CAEtD,MAAM,YAAY,UAAUC,WAAYD;CAExC,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,qBAAqB,GAAG;AAEjF,QAAO,oBAAC;EAAU,GAAK,WAAW;YAAwB;GAA6B;EAExF;AAID,MAAa,eAAe,sBAAyC,UAAU"}
@@ -1,4 +1,4 @@
1
- import * as react19 from "react";
1
+ import * as react10 from "react";
2
2
 
3
3
  //#region src/components/common/client-gate/client-gate.d.ts
4
4
  type ClientGateProps = {
@@ -27,7 +27,7 @@ type ClientGateProps = {
27
27
  * );
28
28
  * ```
29
29
  */
30
- declare function ClientGate(props: ClientGateProps): react19.ReactNode;
30
+ declare function ClientGate(props: ClientGateProps): react10.ReactNode;
31
31
  //#endregion
32
32
  export { ClientGate };
33
33
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { t as ClientGate } from "../../client-gate-B3fRopBx.js";
3
+ import { t as ClientGate } from "../../client-gate-Ch5I9_pc.js";
4
4
 
5
5
  export { ClientGate };
@@ -1,2 +1,2 @@
1
- import { a as ErrorBoundaryProps, i as ErrorBoundary, n as ErrorBoundaryContextType, o as FallbackProps, r as useErrorBoundaryContext, t as useErrorBoundary } from "../../index-Dvt8y6Uu.js";
2
- export { ErrorBoundary, ErrorBoundaryContextType, ErrorBoundaryProps, FallbackProps, useErrorBoundary, useErrorBoundaryContext };
1
+ import { a as ErrorBoundaryProps, i as ErrorBoundary, n as ErrorBoundaryContextType, o as ErrorFallbackProps, r as useErrorBoundaryContext, t as useErrorBoundary } from "../../index-DtJyivJH.js";
2
+ export { ErrorBoundary, ErrorBoundaryContextType, ErrorBoundaryProps, ErrorFallbackProps, useErrorBoundary, useErrorBoundaryContext };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { n as ErrorBoundary, r as useErrorBoundaryContext, t as useErrorBoundary } from "../../error-boundary-TM4xzQfq.js";
3
+ import { n as ErrorBoundary, r as useErrorBoundaryContext, t as useErrorBoundary } from "../../error-boundary-pMMeMfwH.js";
4
4
 
5
5
  export { ErrorBoundary, useErrorBoundary, useErrorBoundaryContext };
@@ -1,7 +1,7 @@
1
1
  import { DiscriminatedRenderItemProps, PolymorphicPropsStrict } from "@zayne-labs/toolkit-react/utils";
2
2
  import { Prettify } from "@zayne-labs/toolkit-type-helpers";
3
- import * as react21 from "react";
4
- import * as react_jsx_runtime32 from "react/jsx-runtime";
3
+ import * as react11 from "react";
4
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
5
5
 
6
6
  //#region src/components/common/for/for.d.ts
7
7
  type ArrayOrNumber = number | readonly unknown[];
@@ -12,10 +12,10 @@ type ForProps<TArray extends ArrayOrNumber> = Prettify<{
12
12
  each: TArray;
13
13
  fallback?: React.ReactNode;
14
14
  } & ForRenderProps<TArray>>;
15
- declare function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>): string | number | bigint | boolean | react21.ReactElement<unknown, string | react21.JSXElementConstructor<any>> | Iterable<react21.ReactNode> | Promise<string | number | bigint | boolean | react21.ReactPortal | react21.ReactElement<unknown, string | react21.JSXElementConstructor<any>> | Iterable<react21.ReactNode> | null | undefined> | null;
15
+ declare function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>): string | number | bigint | boolean | react11.ReactElement<unknown, string | react11.JSXElementConstructor<any>> | Iterable<react11.ReactNode> | Promise<string | number | bigint | boolean | react11.ReactPortal | react11.ReactElement<unknown, string | react11.JSXElementConstructor<any>> | Iterable<react11.ReactNode> | null | undefined> | null;
16
16
  declare function ForWithWrapper<const TArray extends ArrayOrNumber, TElement extends React.ElementType = "ul">(props: PolymorphicPropsStrict<TElement, ForProps<TArray>> & {
17
17
  displayFallBackWhenEmpty?: boolean;
18
- }): string | number | bigint | boolean | react_jsx_runtime32.JSX.Element | Iterable<react21.ReactNode> | Promise<string | number | bigint | boolean | react21.ReactPortal | react21.ReactElement<unknown, string | react21.JSXElementConstructor<any>> | Iterable<react21.ReactNode> | null | undefined> | null;
18
+ }): string | number | bigint | boolean | react_jsx_runtime21.JSX.Element | Iterable<react11.ReactNode> | Promise<string | number | bigint | boolean | react11.ReactPortal | react11.ReactElement<unknown, string | react11.JSXElementConstructor<any>> | Iterable<react11.ReactNode> | null | undefined> | null;
19
19
  //#endregion
20
20
  //#region src/components/common/for/getElementList.d.ts
21
21
  type GetElementListResult<TVariant extends "base" | "withWrapper"> = TVariant extends "base" ? [typeof For] : [typeof ForWithWrapper];
@@ -1,3 +1,3 @@
1
- import { n as For, r as ForWithWrapper, t as getElementList } from "../../for-BeCRb3k2.js";
1
+ import { n as For, r as ForWithWrapper, t as getElementList } from "../../for-IenHovla.js";
2
2
 
3
3
  export { For, ForWithWrapper, getElementList };
@@ -1,5 +1,5 @@
1
1
  import { InferProps } from "@zayne-labs/toolkit-react/utils";
2
- import * as react_jsx_runtime31 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/common/presence/use-presence.d.ts
5
5
  type UsePresenceOptions = {
@@ -30,7 +30,7 @@ type PresenceProps = UsePresenceOptions & {
30
30
  className?: string;
31
31
  forceMount?: boolean;
32
32
  };
33
- declare function Presence(props: PresenceProps): react_jsx_runtime31.JSX.Element | null;
33
+ declare function Presence(props: PresenceProps): react_jsx_runtime22.JSX.Element | null;
34
34
  //#endregion
35
35
  export { Presence };
36
36
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { t as Presence } from "../../presence-Ctp-Trws.js";
3
+ import { t as Presence } from "../../presence-BbOLyzEd.js";
4
4
 
5
5
  export { Presence };
@@ -1,4 +1,4 @@
1
- import * as react5 from "react";
1
+ import * as react30 from "react";
2
2
 
3
3
  //#region src/components/common/show/show.d.ts
4
4
  type ShowProps<TWhen> = {
@@ -12,15 +12,15 @@ type ShowProps<TWhen> = {
12
12
  fallback?: React.ReactNode;
13
13
  when: false | TWhen | null | undefined;
14
14
  };
15
- declare function ShowRoot<TWhen>(props: ShowProps<TWhen>): string | number | bigint | boolean | react5.ReactElement<unknown, string | react5.JSXElementConstructor<any>> | Iterable<react5.ReactNode> | Promise<string | number | bigint | boolean | react5.ReactPortal | react5.ReactElement<unknown, string | react5.JSXElementConstructor<any>> | Iterable<react5.ReactNode> | null | undefined> | null;
15
+ declare function ShowRoot<TWhen>(props: ShowProps<TWhen>): string | number | bigint | boolean | react30.ReactElement<unknown, string | react30.JSXElementConstructor<any>> | Iterable<react30.ReactNode> | Promise<string | number | bigint | boolean | react30.ReactPortal | react30.ReactElement<unknown, string | react30.JSXElementConstructor<any>> | Iterable<react30.ReactNode> | null | undefined> | null;
16
16
  type ShowContentProps<TWhen> = Pick<ShowProps<TWhen>, "children" | "when">;
17
- declare function ShowContent<TWhen>(props: ShowContentProps<TWhen>): react5.ReactNode;
17
+ declare function ShowContent<TWhen>(props: ShowContentProps<TWhen>): react30.ReactNode;
18
18
  declare namespace ShowContent {
19
19
  var slotSymbol: symbol;
20
20
  }
21
21
  declare function ShowFallback(props: {
22
22
  children: React.ReactNode;
23
- }): react5.ReactNode;
23
+ }): react30.ReactNode;
24
24
  declare namespace ShowFallback {
25
25
  var slotSymbol: symbol;
26
26
  }
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { i as ShowRoot, n as ShowContent, r as ShowFallback, t as show_parts_exports } from "../../show-7VInUu_D.js";
3
+ import { i as ShowRoot, n as ShowContent, r as ShowFallback, t as show_parts_exports } from "../../show-CWSAcfVL.js";
4
4
 
5
5
  export { show_parts_exports as Show, ShowContent, ShowFallback, ShowRoot };
@@ -1,15 +1,15 @@
1
1
  import { InferProps } from "@zayne-labs/toolkit-react/utils";
2
- import * as react0 from "react";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react2 from "react";
3
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/common/slot/slot.d.ts
6
6
  type SlotProps = InferProps<HTMLElement> & {
7
7
  ref?: React.Ref<HTMLElement>;
8
8
  };
9
- declare function SlotRoot(props: SlotProps): react_jsx_runtime0.JSX.Element | null;
9
+ declare function SlotRoot(props: SlotProps): react_jsx_runtime7.JSX.Element | null;
10
10
  declare function SlotSlottable({
11
11
  children
12
- }: Pick<SlotProps, "children">): react0.ReactNode;
12
+ }: Pick<SlotProps, "children">): react2.ReactNode;
13
13
  declare namespace slot_parts_d_exports {
14
14
  export { SlotRoot as Root, SlotSlottable as Slottable };
15
15
  }
@@ -1,3 +1,3 @@
1
- import { n as SlotRoot, r as SlotSlottable, t as slot_parts_exports } from "../../slot-CURylbjq.js";
1
+ import { n as SlotRoot, r as SlotSlottable, t as slot_parts_exports } from "../../slot-C56gqKvk.js";
2
2
 
3
3
  export { slot_parts_exports as Slot, SlotRoot, SlotSlottable };
@@ -1,3 +1,3 @@
1
- import "../../index-Dvt8y6Uu.js";
2
- import { n as SuspenseWithBoundaryProps, t as SuspenseWithBoundary } from "../../index-DzMX8Xce.js";
1
+ import "../../index-DtJyivJH.js";
2
+ import { n as SuspenseWithBoundaryProps, t as SuspenseWithBoundary } from "../../index-CW1qt3Kq.js";
3
3
  export { SuspenseWithBoundary, SuspenseWithBoundaryProps };
@@ -1,4 +1,4 @@
1
- import { n as ErrorBoundary } from "../../error-boundary-TM4xzQfq.js";
1
+ import { n as ErrorBoundary } from "../../error-boundary-pMMeMfwH.js";
2
2
  import { Suspense } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,22 +1,22 @@
1
- import * as react14 from "react";
1
+ import * as react0 from "react";
2
2
 
3
3
  //#region src/components/common/switch/switch.d.ts
4
4
  type ValidSwitchComponentType = React.ReactElement<SwitchMatchProps<unknown>>;
5
- type SwitchProps = {
5
+ type SwitchProps<TValue> = {
6
6
  children: ValidSwitchComponentType | ValidSwitchComponentType[];
7
- value?: unknown;
7
+ value?: TValue;
8
8
  };
9
- declare function SwitchRoot(props: SwitchProps): react14.ReactNode;
9
+ declare function SwitchRoot<TValue>(props: SwitchProps<TValue>): react0.ReactNode;
10
10
  type SwitchMatchProps<TWhen> = {
11
11
  children: React.ReactNode | ((value: TWhen) => React.ReactNode);
12
12
  when: false | TWhen | null | undefined;
13
13
  };
14
- declare function SwitchMatch<TWhen>(props: SwitchMatchProps<TWhen>): react14.ReactNode;
14
+ declare function SwitchMatch<TWhen>(props: SwitchMatchProps<TWhen>): react0.ReactNode;
15
15
  declare function SwitchDefault({
16
16
  children
17
17
  }: {
18
18
  children: React.ReactNode;
19
- }): react14.ReactNode;
19
+ }): react0.ReactNode;
20
20
  declare namespace SwitchDefault {
21
21
  var slotSymbol: symbol;
22
22
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { t as __export } from "../../chunk-BL-4obUL.js";
3
+ import { t as __exportAll } from "../../chunk-BN_g-Awi.js";
4
4
  import { getRegularChildren, getSingleSlot } from "@zayne-labs/toolkit-react/utils";
5
5
  import { isFunction } from "@zayne-labs/toolkit-type-helpers";
6
6
 
@@ -28,7 +28,7 @@ SwitchDefault.slotSymbol = Symbol("switch-default");
28
28
 
29
29
  //#endregion
30
30
  //#region src/components/common/switch/switch-parts.ts
31
- var switch_parts_exports = /* @__PURE__ */ __export({
31
+ var switch_parts_exports = /* @__PURE__ */ __exportAll({
32
32
  Default: () => SwitchDefault,
33
33
  Match: () => SwitchMatch,
34
34
  Root: () => SwitchRoot
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/common/switch/switch.tsx","../../../../src/components/common/switch/switch-parts.ts"],"sourcesContent":["\"use client\";\n\nimport { getRegularChildren, getSingleSlot } from \"@zayne-labs/toolkit-react/utils\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ValidSwitchComponentType = React.ReactElement<SwitchMatchProps<unknown>>;\n\ntype SwitchProps = {\n\tchildren: ValidSwitchComponentType | ValidSwitchComponentType[];\n\tvalue?: unknown;\n};\n\nconst defaultValueSymbol = Symbol(\"default-value\");\n\nexport function SwitchRoot(props: SwitchProps) {\n\tconst { children, value = defaultValueSymbol } = props;\n\n\tconst defaultCase = getSingleSlot(children, SwitchDefault, {\n\t\terrorMessage: \"Only one <Switch.Default> component is allowed\",\n\t\tthrowOnMultipleSlotMatch: true,\n\t});\n\n\tconst childrenCasesArray = getRegularChildren(children, SwitchDefault) as ValidSwitchComponentType[];\n\n\tconst matchedCase = childrenCasesArray.find((child) => {\n\t\t// == If value is defaultValueSymbol, match the cases in order like switch(true)\n\t\tif (value === defaultValueSymbol) {\n\t\t\treturn Boolean(child.props.when);\n\t\t}\n\n\t\t// == Otherwise, match the cases like switch(value)\n\t\treturn child.props.when === value;\n\t});\n\n\treturn matchedCase ?? defaultCase;\n}\n\ntype SwitchMatchProps<TWhen> = {\n\tchildren: React.ReactNode | ((value: TWhen) => React.ReactNode);\n\twhen: false | TWhen | null | undefined;\n};\n\nexport function SwitchMatch<TWhen>(props: SwitchMatchProps<TWhen>) {\n\tconst { children, when } = props;\n\n\tconst resolvedChildren = isFunction(children) ? children(when as TWhen) : children;\n\n\treturn resolvedChildren;\n}\n\nexport function SwitchDefault({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nSwitchDefault.slotSymbol = Symbol(\"switch-default\");\n","export { SwitchDefault as Default, SwitchMatch as Match, SwitchRoot as Root } from \"./switch\";\n"],"mappings":";;;;;;;AAYA,MAAM,qBAAqB,OAAO,gBAAgB;AAElD,SAAgB,WAAW,OAAoB;CAC9C,MAAM,EAAE,UAAU,QAAQ,uBAAuB;CAEjD,MAAM,cAAc,cAAc,UAAU,eAAe;EAC1D,cAAc;EACd,0BAA0B;EAC1B,CAAC;AAcF,QAZ2B,mBAAmB,UAAU,cAAc,CAE/B,MAAM,UAAU;AAEtD,MAAI,UAAU,mBACb,QAAO,QAAQ,MAAM,MAAM,KAAK;AAIjC,SAAO,MAAM,MAAM,SAAS;GAC3B,IAEoB;;AAQvB,SAAgB,YAAmB,OAAgC;CAClE,MAAM,EAAE,UAAU,SAAS;AAI3B,QAFyB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;;AAK3E,SAAgB,cAAc,EAAE,YAA2C;AAC1E,QAAO;;AAER,cAAc,aAAa,OAAO,iBAAiB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/common/switch/switch.tsx","../../../../src/components/common/switch/switch-parts.ts"],"sourcesContent":["\"use client\";\n\nimport { getRegularChildren, getSingleSlot } from \"@zayne-labs/toolkit-react/utils\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ValidSwitchComponentType = React.ReactElement<SwitchMatchProps<unknown>>;\n\ntype SwitchProps<TValue> = {\n\tchildren: ValidSwitchComponentType | ValidSwitchComponentType[];\n\tvalue?: TValue;\n};\n\nconst defaultValueSymbol = Symbol(\"default-value\");\n\n// TODO - Add a factory to make this 'when' and 'value' type-safe later following the link below\n// LINK - https://tkdodo.eu/blog/building-type-safe-compound-components#component-factory-pattern\nexport function SwitchRoot<TValue>(props: SwitchProps<TValue>) {\n\tconst { children, value = defaultValueSymbol } = props;\n\n\tconst defaultCase = getSingleSlot(children, SwitchDefault, {\n\t\terrorMessage: \"Only one <Switch.Default> component is allowed\",\n\t\tthrowOnMultipleSlotMatch: true,\n\t});\n\n\tconst childrenCasesArray = getRegularChildren(children, SwitchDefault) as ValidSwitchComponentType[];\n\n\tconst matchedCase = childrenCasesArray.find((child) => {\n\t\t// == If value is defaultValueSymbol, match the cases in order like switch(true)\n\t\tif (value === defaultValueSymbol) {\n\t\t\treturn Boolean(child.props.when);\n\t\t}\n\n\t\t// == Otherwise, match the cases like switch(value)\n\t\treturn child.props.when === value;\n\t});\n\n\treturn matchedCase ?? defaultCase;\n}\n\ntype SwitchMatchProps<TWhen> = {\n\tchildren: React.ReactNode | ((value: TWhen) => React.ReactNode);\n\twhen: false | TWhen | null | undefined;\n};\n\nexport function SwitchMatch<TWhen>(props: SwitchMatchProps<TWhen>) {\n\tconst { children, when } = props;\n\n\tconst resolvedChildren = isFunction(children) ? children(when as TWhen) : children;\n\n\treturn resolvedChildren;\n}\n\nexport function SwitchDefault({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nSwitchDefault.slotSymbol = Symbol(\"switch-default\");\n","export { SwitchDefault as Default, SwitchMatch as Match, SwitchRoot as Root } from \"./switch\";\n"],"mappings":";;;;;;;AAYA,MAAM,qBAAqB,OAAO,gBAAgB;AAIlD,SAAgB,WAAmB,OAA4B;CAC9D,MAAM,EAAE,UAAU,QAAQ,uBAAuB;CAEjD,MAAM,cAAc,cAAc,UAAU,eAAe;EAC1D,cAAc;EACd,0BAA0B;EAC1B,CAAC;AAcF,QAZ2B,mBAAmB,UAAU,cAAc,CAE/B,MAAM,UAAU;AAEtD,MAAI,UAAU,mBACb,QAAO,QAAQ,MAAM,MAAM,KAAK;AAIjC,SAAO,MAAM,MAAM,SAAS;GAC3B,IAEoB;;AAQvB,SAAgB,YAAmB,OAAgC;CAClE,MAAM,EAAE,UAAU,SAAS;AAI3B,QAFyB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;;AAK3E,SAAgB,cAAc,EAAE,YAA2C;AAC1E,QAAO;;AAER,cAAc,aAAa,OAAO,iBAAiB"}
@@ -1,14 +1,14 @@
1
1
  import { AnyString } from "@zayne-labs/toolkit-type-helpers";
2
- import * as react_jsx_runtime8 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/common/teleport/teleport.d.ts
5
5
  type ValidHtmlTags = keyof HTMLElementTagNameMap;
6
6
  type PortalProps = {
7
7
  children: React.ReactNode;
8
8
  insertPosition?: InsertPosition;
9
- to: AnyString | HTMLElement | ValidHtmlTags | null;
9
+ to: AnyString | HTMLElement | React.RefObject<HTMLElement> | ValidHtmlTags | null;
10
10
  };
11
- declare function Teleport(props: PortalProps): react_jsx_runtime8.JSX.Element;
11
+ declare function Teleport(props: PortalProps): react_jsx_runtime0.JSX.Element;
12
12
  //#endregion
13
13
  export { Teleport };
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1,12 +1,17 @@
1
- import { t as ClientGate } from "../../client-gate-B3fRopBx.js";
1
+ import { t as ClientGate } from "../../client-gate-Ch5I9_pc.js";
2
2
  import { isString } from "@zayne-labs/toolkit-type-helpers";
3
3
  import { useLayoutEffect, useState } from "react";
4
- import { useCallbackRef } from "@zayne-labs/toolkit-react";
5
4
  import { jsx } from "react/jsx-runtime";
5
+ import { useCallbackRef } from "@zayne-labs/toolkit-react";
6
6
  import { createPortal } from "react-dom";
7
7
 
8
8
  //#region src/components/common/teleport/teleport.tsx
9
9
  const TELEPORT_KEY = "teleport-wrapper";
10
+ const getDestination = (to) => {
11
+ if (isString(to)) return document.querySelector(to);
12
+ if (to instanceof HTMLElement) return to;
13
+ return to.current;
14
+ };
10
15
  function Teleport(props) {
11
16
  const { children, insertPosition, to } = props;
12
17
  const [portalContainer, setPortalContainer] = useState(null);
@@ -15,7 +20,7 @@ function Teleport(props) {
15
20
  });
16
21
  useLayoutEffect(() => {
17
22
  if (!to) return;
18
- const destination = isString(to) ? document.querySelector(to) : to;
23
+ const destination = getDestination(to);
19
24
  if (!insertPosition) {
20
25
  destination && stableUpdatePortalContainer(destination);
21
26
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/common/teleport/teleport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallbackRef } from \"@zayne-labs/toolkit-react\";\nimport { type AnyString, isString } from \"@zayne-labs/toolkit-type-helpers\";\nimport { useLayoutEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ClientGate } from \"../client-gate\";\n\ntype ValidHtmlTags = keyof HTMLElementTagNameMap;\n\ntype PortalProps = {\n\tchildren: React.ReactNode;\n\tinsertPosition?: InsertPosition;\n\tto: AnyString | HTMLElement | ValidHtmlTags | null;\n};\n\nconst TELEPORT_KEY = \"teleport-wrapper\";\n\nfunction Teleport(props: PortalProps) {\n\tconst { children, insertPosition, to } = props;\n\n\tconst [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null);\n\n\tconst stableUpdatePortalContainer = useCallbackRef((destination: HTMLElement | null) => {\n\t\tsetPortalContainer(destination);\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (!to) return;\n\n\t\tconst destination = isString(to) ? document.querySelector<HTMLElement>(to) : to;\n\n\t\tif (!insertPosition) {\n\t\t\tdestination && stableUpdatePortalContainer(destination);\n\t\t\treturn;\n\t\t}\n\n\t\tconst tempWrapper = document.createElement(\"div\");\n\t\ttempWrapper.id = TELEPORT_KEY;\n\t\ttempWrapper.style.display = \"contents\";\n\n\t\tdestination?.insertAdjacentElement(insertPosition, tempWrapper);\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\ttempWrapper.replaceWith(...tempWrapper.children);\n\t\t}, 0);\n\n\t\tstableUpdatePortalContainer(tempWrapper);\n\n\t\treturn () => {\n\t\t\ttempWrapper.remove();\n\t\t\tclearTimeout(timeoutId);\n\t\t};\n\t}, [to, insertPosition, stableUpdatePortalContainer]);\n\n\treturn (\n\t\t<ClientGate>\n\t\t\t{() => portalContainer && createPortal(children, portalContainer, TELEPORT_KEY)}\n\t\t</ClientGate>\n\t);\n}\n\nexport { Teleport };\n"],"mappings":";;;;;;;;AAgBA,MAAM,eAAe;AAErB,SAAS,SAAS,OAAoB;CACrC,MAAM,EAAE,UAAU,gBAAgB,OAAO;CAEzC,MAAM,CAAC,iBAAiB,sBAAsB,SAA6B,KAAK;CAEhF,MAAM,8BAA8B,gBAAgB,gBAAoC;AACvF,qBAAmB,YAAY;GAC9B;AAEF,uBAAsB;AACrB,MAAI,CAAC,GAAI;EAET,MAAM,cAAc,SAAS,GAAG,GAAG,SAAS,cAA2B,GAAG,GAAG;AAE7E,MAAI,CAAC,gBAAgB;AACpB,kBAAe,4BAA4B,YAAY;AACvD;;EAGD,MAAM,cAAc,SAAS,cAAc,MAAM;AACjD,cAAY,KAAK;AACjB,cAAY,MAAM,UAAU;AAE5B,eAAa,sBAAsB,gBAAgB,YAAY;EAE/D,MAAM,YAAY,iBAAiB;AAClC,eAAY,YAAY,GAAG,YAAY,SAAS;KAC9C,EAAE;AAEL,8BAA4B,YAAY;AAExC,eAAa;AACZ,eAAY,QAAQ;AACpB,gBAAa,UAAU;;IAEtB;EAAC;EAAI;EAAgB;EAA4B,CAAC;AAErD,QACC,oBAAC,8BACO,mBAAmB,aAAa,UAAU,iBAAiB,aAAa,GACnE"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/common/teleport/teleport.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallbackRef } from \"@zayne-labs/toolkit-react\";\nimport { isString, type AnyString } from \"@zayne-labs/toolkit-type-helpers\";\nimport { useLayoutEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ClientGate } from \"../client-gate\";\n\ntype ValidHtmlTags = keyof HTMLElementTagNameMap;\n\ntype PortalProps = {\n\tchildren: React.ReactNode;\n\tinsertPosition?: InsertPosition;\n\tto: AnyString | HTMLElement | React.RefObject<HTMLElement> | ValidHtmlTags | null;\n};\n\nconst TELEPORT_KEY = \"teleport-wrapper\";\n\nconst getDestination = (to: NonNullable<PortalProps[\"to\"]>) => {\n\tif (isString(to)) {\n\t\treturn document.querySelector<HTMLElement>(to);\n\t}\n\n\tif (to instanceof HTMLElement) {\n\t\treturn to;\n\t}\n\n\treturn to.current;\n};\n\nfunction Teleport(props: PortalProps) {\n\tconst { children, insertPosition, to } = props;\n\n\tconst [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null);\n\n\tconst stableUpdatePortalContainer = useCallbackRef((destination: HTMLElement | null) => {\n\t\tsetPortalContainer(destination);\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (!to) return;\n\n\t\tconst destination = getDestination(to);\n\n\t\tif (!insertPosition) {\n\t\t\tdestination && stableUpdatePortalContainer(destination);\n\t\t\treturn;\n\t\t}\n\n\t\tconst tempWrapper = document.createElement(\"div\");\n\t\ttempWrapper.id = TELEPORT_KEY;\n\t\ttempWrapper.style.display = \"contents\";\n\n\t\tdestination?.insertAdjacentElement(insertPosition, tempWrapper);\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\ttempWrapper.replaceWith(...tempWrapper.children);\n\t\t}, 0);\n\n\t\tstableUpdatePortalContainer(tempWrapper);\n\n\t\treturn () => {\n\t\t\ttempWrapper.remove();\n\t\t\tclearTimeout(timeoutId);\n\t\t};\n\t}, [to, insertPosition, stableUpdatePortalContainer]);\n\n\treturn (\n\t\t<ClientGate>\n\t\t\t{() => portalContainer && createPortal(children, portalContainer, TELEPORT_KEY)}\n\t\t</ClientGate>\n\t);\n}\n\nexport { Teleport };\n"],"mappings":";;;;;;;;AAgBA,MAAM,eAAe;AAErB,MAAM,kBAAkB,OAAuC;AAC9D,KAAI,SAAS,GAAG,CACf,QAAO,SAAS,cAA2B,GAAG;AAG/C,KAAI,cAAc,YACjB,QAAO;AAGR,QAAO,GAAG;;AAGX,SAAS,SAAS,OAAoB;CACrC,MAAM,EAAE,UAAU,gBAAgB,OAAO;CAEzC,MAAM,CAAC,iBAAiB,sBAAsB,SAA6B,KAAK;CAEhF,MAAM,8BAA8B,gBAAgB,gBAAoC;AACvF,qBAAmB,YAAY;GAC9B;AAEF,uBAAsB;AACrB,MAAI,CAAC,GAAI;EAET,MAAM,cAAc,eAAe,GAAG;AAEtC,MAAI,CAAC,gBAAgB;AACpB,kBAAe,4BAA4B,YAAY;AACvD;;EAGD,MAAM,cAAc,SAAS,cAAc,MAAM;AACjD,cAAY,KAAK;AACjB,cAAY,MAAM,UAAU;AAE5B,eAAa,sBAAsB,gBAAgB,YAAY;EAE/D,MAAM,YAAY,iBAAiB;AAClC,eAAY,YAAY,GAAG,YAAY,SAAS;KAC9C,EAAE;AAEL,8BAA4B,YAAY;AAExC,eAAa;AACZ,eAAY,QAAQ;AACpB,gBAAa,UAAU;;IAEtB;EAAC;EAAI;EAAgB;EAA4B,CAAC;AAErD,QACC,oBAAC,8BACO,mBAAmB,aAAa,UAAU,iBAAiB,aAAa,GACnE"}
@@ -1,7 +1,7 @@
1
1
  import { isFunction } from "@zayne-labs/toolkit-type-helpers";
2
2
  import { Component, useState } from "react";
3
- import { createCustomContext, useCallbackRef } from "@zayne-labs/toolkit-react";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { createCustomContext, useCallbackRef } from "@zayne-labs/toolkit-react";
5
5
 
6
6
  //#region src/components/common/error-boundary/error-boundary-context.ts
7
7
  const [ErrorBoundaryContext, useErrorBoundaryContext] = createCustomContext({
@@ -117,4 +117,4 @@ const useErrorBoundary = () => {
117
117
 
118
118
  //#endregion
119
119
  export { ErrorBoundary as n, useErrorBoundaryContext as r, useErrorBoundary as t };
120
- //# sourceMappingURL=error-boundary-TM4xzQfq.js.map
120
+ //# sourceMappingURL=error-boundary-pMMeMfwH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-boundary-pMMeMfwH.js","names":["#resetErrorBoundary"],"sources":["../../src/components/common/error-boundary/error-boundary-context.ts","../../src/components/common/error-boundary/error-boundary.tsx","../../src/components/common/error-boundary/useErrorBoundary.ts"],"sourcesContent":["import { createCustomContext } from \"@zayne-labs/toolkit-react\";\n\nexport type ErrorBoundaryContextType = {\n\terror: unknown;\n\thasError: boolean;\n\tresetErrorBoundary: (...args: unknown[]) => void;\n};\n\nconst [ErrorBoundaryContext, useErrorBoundaryContext] = createCustomContext<ErrorBoundaryContextType>({\n\thookName: \"useErrorBoundaryContext\",\n\tname: \"ErrorBoundaryContext\",\n\tproviderName: \"ErrorBoundaryContextProvider\",\n});\n\nexport { ErrorBoundaryContext, useErrorBoundaryContext };\n","\"use client\";\n\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\nimport { Component } from \"react\";\nimport { ErrorBoundaryContext, type ErrorBoundaryContextType } from \"./error-boundary-context\";\nimport type { ErrorBoundaryProps, ErrorFallbackProps } from \"./types\";\n\ntype ErrorBoundaryState =\n\t| {\n\t\t\terror: Error;\n\t\t\thasError: true;\n\t }\n\t| {\n\t\t\terror: null;\n\t\t\thasError: false;\n\t };\n\nconst initialState: ErrorBoundaryState = {\n\terror: null,\n\thasError: false,\n};\n\nconst hasArrayChanged = (arrayOne: unknown[] = [], arrayTwo: unknown[] = []) => {\n\treturn (\n\t\tarrayOne.length !== arrayTwo.length\n\t\t|| arrayOne.some((item, index) => !Object.is(item, arrayTwo[index]))\n\t);\n};\n\n/**\n * Copied from react-error-boundary package\n * @see https://github.com/bvaughn/react-error-boundary\n */\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n\tconstructor(props: ErrorBoundaryProps) {\n\t\tsuper(props);\n\n\t\tthis.state = initialState;\n\t}\n\n\tstatic getDerivedStateFromError(error: Error) {\n\t\treturn { error, hasError: true };\n\t}\n\n\toverride componentDidCatch(error: Error, info: React.ErrorInfo) {\n\t\tthis.props.onError?.({ error, info });\n\t}\n\n\toverride componentDidUpdate(prevProps: ErrorBoundaryProps, prevState: ErrorBoundaryState) {\n\t\tconst { hasError } = this.state;\n\t\tconst { resetKeys } = this.props;\n\n\t\t// == There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array, we'd end up resetting the error boundary immediately.\n\t\t// == This would likely trigger a second error to be thrown.\n\t\t// == So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n\t\tif (hasError && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n\t\t\tthis.props.onReset?.({\n\t\t\t\tnext: resetKeys,\n\t\t\t\tprev: prevProps.resetKeys,\n\t\t\t\treason: \"keys\",\n\t\t\t});\n\n\t\t\tthis.setState(initialState);\n\t\t}\n\t}\n\n\toverride render() {\n\t\tconst { children, fallback } = this.props;\n\t\tconst { error, hasError } = this.state;\n\n\t\tlet childToRender = children;\n\n\t\tif (hasError) {\n\t\t\tswitch (true) {\n\t\t\t\tcase isFunction(fallback): {\n\t\t\t\t\tconst fallbackRenderProps = {\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tresetErrorBoundary: this.#resetErrorBoundary,\n\t\t\t\t\t} satisfies ErrorFallbackProps;\n\n\t\t\t\t\tchildToRender = fallback(fallbackRenderProps);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase Boolean(fallback): {\n\t\t\t\t\tchildToRender = fallback;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tconsole.warn(\"No fallback provided to error boundary\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst contextValue = {\n\t\t\terror,\n\t\t\thasError,\n\t\t\tresetErrorBoundary: this.#resetErrorBoundary,\n\t\t} satisfies ErrorBoundaryContextType;\n\n\t\treturn <ErrorBoundaryContext value={contextValue}>{childToRender}</ErrorBoundaryContext>;\n\t}\n\n\t#resetErrorBoundary = (...parameters: unknown[]) => {\n\t\tconst { error } = this.state;\n\n\t\tif (error !== null) {\n\t\t\tthis.props.onReset?.({\n\t\t\t\targs: parameters,\n\t\t\t\treason: \"imperative-api\",\n\t\t\t});\n\n\t\t\tthis.setState(initialState);\n\t\t}\n\t};\n}\n","import { useCallbackRef } from \"@zayne-labs/toolkit-react\";\nimport { useState } from \"react\";\nimport { useErrorBoundaryContext } from \"./error-boundary-context\";\n\ntype UseErrorBoundaryState<TError extends Error> =\n\t| {\n\t\t\terror: null;\n\t\t\thasError: false;\n\t }\n\t| {\n\t\t\terror: TError;\n\t\t\thasError: true;\n\t };\n\nexport const useErrorBoundary = <TError extends Error>() => {\n\tconst { resetErrorBoundary } = useErrorBoundaryContext();\n\n\tconst [state, setState] = useState<UseErrorBoundaryState<TError>>({\n\t\terror: null,\n\t\thasError: false,\n\t});\n\n\tif (state.hasError) {\n\t\tthrow state.error;\n\t}\n\n\tconst resetBoundary = useCallbackRef(() => {\n\t\tresetErrorBoundary();\n\n\t\tsetState({\n\t\t\terror: null,\n\t\t\thasError: false,\n\t\t});\n\t});\n\n\tconst showBoundary = useCallbackRef((error: TError) => {\n\t\tsetState({\n\t\t\terror,\n\t\t\thasError: true,\n\t\t});\n\t});\n\n\treturn { resetBoundary, showBoundary };\n};\n"],"mappings":";;;;;;AAQA,MAAM,CAAC,sBAAsB,2BAA2B,oBAA8C;CACrG,UAAU;CACV,MAAM;CACN,cAAc;CACd,CAAC;;;;ACKF,MAAM,eAAmC;CACxC,OAAO;CACP,UAAU;CACV;AAED,MAAM,mBAAmB,WAAsB,EAAE,EAAE,WAAsB,EAAE,KAAK;AAC/E,QACC,SAAS,WAAW,SAAS,UAC1B,SAAS,MAAM,MAAM,UAAU,CAAC,OAAO,GAAG,MAAM,SAAS,OAAO,CAAC;;;;;;AAStE,IAAa,gBAAb,cAAmC,UAAkD;CACpF,YAAY,OAA2B;AACtC,QAAM,MAAM;AAEZ,OAAK,QAAQ;;CAGd,OAAO,yBAAyB,OAAc;AAC7C,SAAO;GAAE;GAAO,UAAU;GAAM;;CAGjC,AAAS,kBAAkB,OAAc,MAAuB;AAC/D,OAAK,MAAM,UAAU;GAAE;GAAO;GAAM,CAAC;;CAGtC,AAAS,mBAAmB,WAA+B,WAA+B;EACzF,MAAM,EAAE,aAAa,KAAK;EAC1B,MAAM,EAAE,cAAc,KAAK;AAM3B,MAAI,YAAY,UAAU,UAAU,QAAQ,gBAAgB,UAAU,WAAW,UAAU,EAAE;AAC5F,QAAK,MAAM,UAAU;IACpB,MAAM;IACN,MAAM,UAAU;IAChB,QAAQ;IACR,CAAC;AAEF,QAAK,SAAS,aAAa;;;CAI7B,AAAS,SAAS;EACjB,MAAM,EAAE,UAAU,aAAa,KAAK;EACpC,MAAM,EAAE,OAAO,aAAa,KAAK;EAEjC,IAAI,gBAAgB;AAEpB,MAAI,SACH,SAAQ,MAAR;GACC,KAAK,WAAW,SAAS;AAMxB,oBAAgB,SALY;KAC3B;KACA,oBAAoB,MAAKA;KACzB,CAE4C;AAC7C;GAGD,KAAK,QAAQ,SAAS;AACrB,oBAAgB;AAChB;GAGD,QACC,SAAQ,KAAK,yCAAyC;;AAWzD,SAAO,oBAAC;GAAqB,OANR;IACpB;IACA;IACA,oBAAoB,MAAKA;IACzB;aAEkD;IAAqC;;CAGzF,uBAAuB,GAAG,eAA0B;EACnD,MAAM,EAAE,UAAU,KAAK;AAEvB,MAAI,UAAU,MAAM;AACnB,QAAK,MAAM,UAAU;IACpB,MAAM;IACN,QAAQ;IACR,CAAC;AAEF,QAAK,SAAS,aAAa;;;;;;;ACrG9B,MAAa,yBAA+C;CAC3D,MAAM,EAAE,uBAAuB,yBAAyB;CAExD,MAAM,CAAC,OAAO,YAAY,SAAwC;EACjE,OAAO;EACP,UAAU;EACV,CAAC;AAEF,KAAI,MAAM,SACT,OAAM,MAAM;AAmBb,QAAO;EAAE,eAhBa,qBAAqB;AAC1C,uBAAoB;AAEpB,YAAS;IACR,OAAO;IACP,UAAU;IACV,CAAC;IACD;EASsB,cAPH,gBAAgB,UAAkB;AACtD,YAAS;IACR;IACA,UAAU;IACV,CAAC;IACD;EAEoC"}
@@ -40,4 +40,4 @@ const getElementList = (variant) => {
40
40
 
41
41
  //#endregion
42
42
  export { For as n, ForWithWrapper as r, getElementList as t };
43
- //# sourceMappingURL=for-BeCRb3k2.js.map
43
+ //# sourceMappingURL=for-IenHovla.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-BeCRb3k2.js","names":[],"sources":["../../src/components/common/for/for.tsx","../../src/components/common/for/getElementList.ts"],"sourcesContent":["import type {\n\tDiscriminatedRenderItemProps,\n\tPolymorphicPropsStrict,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { isArray, isNumber, type Prettify } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ArrayOrNumber = number | readonly unknown[];\n\ntype GetArrayItemType<TArray extends ArrayOrNumber> =\n\tTArray extends readonly unknown[] ? TArray[number]\n\t: TArray extends number ? number\n\t: unknown;\n\ntype RenderPropFn<TArray extends ArrayOrNumber> = (\n\titem: GetArrayItemType<TArray>,\n\tindex: number,\n\tarray: Array<GetArrayItemType<TArray>>\n) => React.ReactNode;\n\nexport type ForRenderProps<TArray extends ArrayOrNumber> = DiscriminatedRenderItemProps<\n\tRenderPropFn<TArray>\n>;\n\n/* eslint-disable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\ntype ForProps<TArray extends ArrayOrNumber> = Prettify<\n\t{\n\t\teach: TArray;\n\t\tfallback?: React.ReactNode;\n\t} & ForRenderProps<TArray>\n>;\n/* eslint-enable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\n\nconst isArrayEmpty = <TArray extends ArrayOrNumber>(each: TArray) => {\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\treturn each == null || (isNumber(each) && each === 0) || (isArray(each) && each.length === 0);\n};\n\nexport function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>) {\n\tconst { children, each, fallback = null, renderItem } = props;\n\n\tif (isArrayEmpty(each)) {\n\t\treturn fallback;\n\t}\n\n\tconst resolvedArray = isNumber(each) ? [...Array(each).keys()] : (each as unknown[]);\n\n\tconst selectedChildren = typeof children === \"function\" ? children : renderItem;\n\n\tconst elementList = resolvedArray.map((...params) => {\n\t\ttype Params = Parameters<RenderPropFn<TArray>>;\n\n\t\treturn selectedChildren(...(params as Params));\n\t});\n\n\treturn elementList;\n}\n\nexport function ForWithWrapper<\n\tconst TArray extends ArrayOrNumber,\n\tTElement extends React.ElementType = \"ul\",\n>(props: PolymorphicPropsStrict<TElement, ForProps<TArray>> & { displayFallBackWhenEmpty?: boolean }) {\n\tconst {\n\t\tas: ListContainer = \"ul\",\n\t\tchildren,\n\t\tdisplayFallBackWhenEmpty = false,\n\t\teach,\n\t\tfallback = null,\n\t\trenderItem,\n\t\t...restOfProps\n\t} = props;\n\n\tif (displayFallBackWhenEmpty && isArrayEmpty(each)) {\n\t\treturn fallback;\n\t}\n\n\treturn (\n\t\t<ListContainer {...restOfProps}>\n\t\t\t<For {...({ children, each, fallback, renderItem } as ForProps<TArray>)} />\n\t\t</ListContainer>\n\t);\n}\n","import { For, ForWithWrapper } from \"./for\";\n\ntype GetElementListResult<TVariant extends \"base\" | \"withWrapper\"> =\n\tTVariant extends \"base\" ? [typeof For] : [typeof ForWithWrapper];\n\nconst getElementList = <TVariant extends \"base\" | \"withWrapper\" = \"withWrapper\">(\n\tvariant?: TVariant\n): GetElementListResult<TVariant> => {\n\tswitch (variant) {\n\t\tcase \"base\": {\n\t\t\treturn [For] as never;\n\t\t}\n\t\tcase \"withWrapper\": {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t\tdefault: {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t}\n};\n\nexport { getElementList };\n"],"mappings":";;;;AAgCA,MAAM,gBAA8C,SAAiB;AAEpE,QAAO,QAAQ,QAAS,SAAS,KAAK,IAAI,SAAS,KAAO,QAAQ,KAAK,IAAI,KAAK,WAAW;;AAG5F,SAAgB,IAAwC,OAAyB;CAChF,MAAM,EAAE,UAAU,MAAM,WAAW,MAAM,eAAe;AAExD,KAAI,aAAa,KAAK,CACrB,QAAO;CAGR,MAAM,gBAAgB,SAAS,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAI;CAElE,MAAM,mBAAmB,OAAO,aAAa,aAAa,WAAW;AAQrE,QANoB,cAAc,KAAK,GAAG,WAAW;AAGpD,SAAO,iBAAiB,GAAI,OAAkB;GAC7C;;AAKH,SAAgB,eAGd,OAAoG;CACrG,MAAM,EACL,IAAI,gBAAgB,MACpB,UACA,2BAA2B,OAC3B,MACA,WAAW,MACX,YACA,GAAG,gBACA;AAEJ,KAAI,4BAA4B,aAAa,KAAK,CACjD,QAAO;AAGR,QACC,oBAAC;EAAc,GAAI;YAClB,oBAAC;GAAW;GAAU;GAAM;GAAU;IAAqC;GAC5D;;;;;ACzElB,MAAM,kBACL,YACoC;AACpC,SAAQ,SAAR;EACC,KAAK,OACJ,QAAO,CAAC,IAAI;EAEb,KAAK,cACJ,QAAO,CAAC,eAAe;EAExB,QACC,QAAO,CAAC,eAAe"}
1
+ {"version":3,"file":"for-IenHovla.js","names":[],"sources":["../../src/components/common/for/for.tsx","../../src/components/common/for/getElementList.ts"],"sourcesContent":["import type {\n\tDiscriminatedRenderItemProps,\n\tPolymorphicPropsStrict,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { isArray, isNumber, type Prettify } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ArrayOrNumber = number | readonly unknown[];\n\ntype GetArrayItemType<TArray extends ArrayOrNumber> =\n\tTArray extends readonly unknown[] ? TArray[number]\n\t: TArray extends number ? number\n\t: unknown;\n\ntype RenderPropFn<TArray extends ArrayOrNumber> = (\n\titem: GetArrayItemType<TArray>,\n\tindex: number,\n\tarray: Array<GetArrayItemType<TArray>>\n) => React.ReactNode;\n\nexport type ForRenderProps<TArray extends ArrayOrNumber> = DiscriminatedRenderItemProps<\n\tRenderPropFn<TArray>\n>;\n\n/* eslint-disable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\ntype ForProps<TArray extends ArrayOrNumber> = Prettify<\n\t{\n\t\teach: TArray;\n\t\tfallback?: React.ReactNode;\n\t} & ForRenderProps<TArray>\n>;\n/* eslint-enable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\n\nconst isArrayEmpty = <TArray extends ArrayOrNumber>(each: TArray) => {\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\treturn each == null || (isNumber(each) && each === 0) || (isArray(each) && each.length === 0);\n};\n\nexport function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>) {\n\tconst { children, each, fallback = null, renderItem } = props;\n\n\tif (isArrayEmpty(each)) {\n\t\treturn fallback;\n\t}\n\n\tconst resolvedArray = isNumber(each) ? [...Array(each).keys()] : (each as unknown[]);\n\n\tconst selectedChildren = typeof children === \"function\" ? children : renderItem;\n\n\tconst elementList = resolvedArray.map((...params) => {\n\t\ttype Params = Parameters<RenderPropFn<TArray>>;\n\n\t\treturn selectedChildren(...(params as Params));\n\t});\n\n\treturn elementList;\n}\n\nexport function ForWithWrapper<\n\tconst TArray extends ArrayOrNumber,\n\tTElement extends React.ElementType = \"ul\",\n>(props: PolymorphicPropsStrict<TElement, ForProps<TArray>> & { displayFallBackWhenEmpty?: boolean }) {\n\tconst {\n\t\tas: ListContainer = \"ul\",\n\t\tchildren,\n\t\tdisplayFallBackWhenEmpty = false,\n\t\teach,\n\t\tfallback = null,\n\t\trenderItem,\n\t\t...restOfProps\n\t} = props;\n\n\tif (displayFallBackWhenEmpty && isArrayEmpty(each)) {\n\t\treturn fallback;\n\t}\n\n\treturn (\n\t\t<ListContainer {...restOfProps}>\n\t\t\t<For {...({ children, each, fallback, renderItem } as ForProps<TArray>)} />\n\t\t</ListContainer>\n\t);\n}\n","import { For, ForWithWrapper } from \"./for\";\n\ntype GetElementListResult<TVariant extends \"base\" | \"withWrapper\"> =\n\tTVariant extends \"base\" ? [typeof For] : [typeof ForWithWrapper];\n\nconst getElementList = <TVariant extends \"base\" | \"withWrapper\" = \"withWrapper\">(\n\tvariant?: TVariant\n): GetElementListResult<TVariant> => {\n\tswitch (variant) {\n\t\tcase \"base\": {\n\t\t\treturn [For] as never;\n\t\t}\n\t\tcase \"withWrapper\": {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t\tdefault: {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t}\n};\n\nexport { getElementList };\n"],"mappings":";;;;AAgCA,MAAM,gBAA8C,SAAiB;AAEpE,QAAO,QAAQ,QAAS,SAAS,KAAK,IAAI,SAAS,KAAO,QAAQ,KAAK,IAAI,KAAK,WAAW;;AAG5F,SAAgB,IAAwC,OAAyB;CAChF,MAAM,EAAE,UAAU,MAAM,WAAW,MAAM,eAAe;AAExD,KAAI,aAAa,KAAK,CACrB,QAAO;CAGR,MAAM,gBAAgB,SAAS,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAI;CAElE,MAAM,mBAAmB,OAAO,aAAa,aAAa,WAAW;AAQrE,QANoB,cAAc,KAAK,GAAG,WAAW;AAGpD,SAAO,iBAAiB,GAAI,OAAkB;GAC7C;;AAKH,SAAgB,eAGd,OAAoG;CACrG,MAAM,EACL,IAAI,gBAAgB,MACpB,UACA,2BAA2B,OAC3B,MACA,WAAW,MACX,YACA,GAAG,gBACA;AAEJ,KAAI,4BAA4B,aAAa,KAAK,CACjD,QAAO;AAGR,QACC,oBAAC;EAAc,GAAI;YAClB,oBAAC;GAAW;GAAU;GAAM;GAAU;IAAqC;GAC5D;;;;;ACzElB,MAAM,kBACL,YACoC;AACpC,SAAQ,SAAR;EACC,KAAK,OACJ,QAAO,CAAC,IAAI;EAEb,KAAK,cACJ,QAAO,CAAC,eAAe;EAExB,QACC,QAAO,CAAC,eAAe"}
@@ -1,5 +1,5 @@
1
- import { a as ErrorBoundaryProps } from "./index-Dvt8y6Uu.js";
2
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import { a as ErrorBoundaryProps } from "./index-DtJyivJH.js";
2
+ import * as react_jsx_runtime48 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/common/suspense-with-boundary/suspense-with-boundary.d.ts
5
5
  type SuspenseWithBoundaryProps = {
@@ -7,7 +7,7 @@ type SuspenseWithBoundaryProps = {
7
7
  errorFallback?: ErrorBoundaryProps["fallback"];
8
8
  fallback?: React.ReactNode;
9
9
  };
10
- declare function SuspenseWithBoundary(props: SuspenseWithBoundaryProps): react_jsx_runtime9.JSX.Element;
10
+ declare function SuspenseWithBoundary(props: SuspenseWithBoundaryProps): react_jsx_runtime48.JSX.Element;
11
11
  //#endregion
12
12
  export { SuspenseWithBoundaryProps as n, SuspenseWithBoundary as t };
13
- //# sourceMappingURL=index-DzMX8Xce.d.ts.map
13
+ //# sourceMappingURL=index-CW1qt3Kq.d.ts.map