@zayne-labs/ui-react 0.9.18 → 0.9.20

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 (61) hide show
  1. package/css/theme.css +7 -1
  2. package/dist/esm/card-BBTJxmWt.js +95 -0
  3. package/dist/esm/card-BBTJxmWt.js.map +1 -0
  4. package/dist/esm/{carousel-Dznupnx8.js → carousel-Dvp-qURP.js} +2 -2
  5. package/dist/esm/{carousel-Dznupnx8.js.map → carousel-Dvp-qURP.js.map} +1 -1
  6. package/dist/esm/components/common/await/index.d.ts +5 -5
  7. package/dist/esm/components/common/await/index.js +1 -1
  8. package/dist/esm/components/common/error-boundary/index.d.ts +1 -1
  9. package/dist/esm/components/common/for/index.d.ts +1 -1
  10. package/dist/esm/components/common/index.d.ts +10 -10
  11. package/dist/esm/components/common/index.js +3 -3
  12. package/dist/esm/components/common/show/index.d.ts +1 -1
  13. package/dist/esm/components/common/show/index.js +2 -2
  14. package/dist/esm/components/common/slot/index.d.ts +1 -1
  15. package/dist/esm/components/common/suspense-with-boundary/index.d.ts +2 -2
  16. package/dist/esm/components/common/switch/index.d.ts +1 -1
  17. package/dist/esm/components/common/switch/index.js +2 -2
  18. package/dist/esm/components/common/teleport/index.d.ts +1 -1
  19. package/dist/esm/components/ui/card/index.d.ts +2 -2
  20. package/dist/esm/components/ui/card/index.js +2 -2
  21. package/dist/esm/components/ui/carousel/index.d.ts +1 -1
  22. package/dist/esm/components/ui/carousel/index.js +4 -4
  23. package/dist/esm/components/ui/drag-scroll/index.d.ts +1 -1
  24. package/dist/esm/components/ui/drop-zone/index.d.ts +2 -2
  25. package/dist/esm/components/ui/drop-zone/index.js +4 -4
  26. package/dist/esm/components/ui/form/index.d.ts +1 -1
  27. package/dist/esm/components/ui/form/index.js +2 -2
  28. package/dist/esm/components/ui/index.d.ts +6 -6
  29. package/dist/esm/components/ui/index.js +7 -7
  30. package/dist/esm/{drop-zone-_YK9C3Xj.js → drop-zone-Beip1k4x.js} +2 -2
  31. package/dist/esm/{drop-zone-_YK9C3Xj.js.map → drop-zone-Beip1k4x.js.map} +1 -1
  32. package/dist/esm/{form-DytCfL6R.js → form-6RV0u4YT.js} +4 -4
  33. package/dist/esm/form-6RV0u4YT.js.map +1 -0
  34. package/dist/esm/{getSlot-BIcGgBwN.js → getSlot-D1_uG-Ym.js} +2 -2
  35. package/dist/esm/{getSlot-BIcGgBwN.js.map → getSlot-D1_uG-Ym.js.map} +1 -1
  36. package/dist/esm/{getSlotMap-DA_uhXqU.d.ts → getSlotMap-DZlQN8--.d.ts} +2 -3
  37. package/dist/esm/{index-DnaUCh8d.d.ts → index-B3N6YbN8.d.ts} +2 -3
  38. package/dist/esm/{index-ASoFjmZ6.d.ts → index-BilTdK_M.d.ts} +7 -10
  39. package/dist/esm/{index-BSJ30pGj.d.ts → index-BsjcsNQh.d.ts} +4 -5
  40. package/dist/esm/{index-1UCPJf7B.d.ts → index-BwnMUHzm.d.ts} +2 -5
  41. package/dist/esm/{index-CqlM1M0j.d.ts → index-CFNg1R-m.d.ts} +5 -6
  42. package/dist/esm/{index-C0XZoIZD.d.ts → index-CGI7EVlK.d.ts} +2 -5
  43. package/dist/esm/{index-DQ1yFGd2.d.ts → index-CIM4YPg5.d.ts} +4 -6
  44. package/dist/esm/{index-BhpBx8dH.d.ts → index-CNE9Cime.d.ts} +2 -4
  45. package/dist/esm/{index-D-j2Cn1J.d.ts → index-DRiwJkJC.d.ts} +4 -5
  46. package/dist/esm/{index-BC0r1cBF.d.ts → index-DT8F8QKc.d.ts} +4 -7
  47. package/dist/esm/{index--1COprHP.d.ts → index-UX3DaMVe.d.ts} +2 -5
  48. package/dist/esm/{index-BuSQsDCX.d.ts → index-XYFc-mmy.d.ts} +4 -6
  49. package/dist/esm/{index-TBkPiipk.d.ts → index-YFi-sIuR.d.ts} +5 -9
  50. package/dist/esm/{index-CTZr4PTO.d.ts → index-gT9tVHv1.d.ts} +2 -3
  51. package/dist/esm/lib/utils/index.d.ts +2 -2
  52. package/dist/esm/lib/utils/index.js +1 -1
  53. package/dist/esm/{show-BgYrfIxJ.js → show-DNPzdLi-.js} +2 -2
  54. package/dist/esm/{show-BgYrfIxJ.js.map → show-DNPzdLi-.js.map} +1 -1
  55. package/dist/esm/{switch-PF5xTJfr.js → switch-B2gKl94R.js} +2 -2
  56. package/dist/esm/{switch-PF5xTJfr.js.map → switch-B2gKl94R.js.map} +1 -1
  57. package/dist/style.css +160 -8
  58. package/package.json +10 -10
  59. package/dist/esm/card-DRjs-vtv.js +0 -54
  60. package/dist/esm/card-DRjs-vtv.js.map +0 -1
  61. package/dist/esm/form-DytCfL6R.js.map +0 -1
@@ -21,12 +21,9 @@ declare function SwitchDefault({
21
21
  declare namespace SwitchDefault {
22
22
  var slotSymbol: symbol;
23
23
  }
24
-
25
- //#endregion
26
- //#region src/components/common/switch/switch-parts.d.ts
27
24
  declare namespace switch_parts_d_exports {
28
25
  export { SwitchDefault as Default, SwitchMatch as Match, SwitchRoot as Root };
29
26
  }
30
27
  //#endregion
31
- export { SwitchDefault as SwitchDefault$1, SwitchMatch as SwitchMatch$1, SwitchRoot as SwitchRoot$1, switch_parts_d_exports };
32
- //# sourceMappingURL=index--1COprHP.d.ts.map
28
+ export { SwitchDefault, SwitchMatch, SwitchRoot, switch_parts_d_exports };
29
+ //# sourceMappingURL=index-UX3DaMVe.d.ts.map
@@ -8,15 +8,13 @@ declare function CardHeader<TElement extends React.ElementType = "header">(props
8
8
  declare function CardTitle<TElement extends React.ElementType = "h3">(props: PolymorphicProps<TElement>): React.JSX.Element;
9
9
  declare function CardDescription<TElement extends React.ElementType = "p">(props: PolymorphicProps<TElement>): React.JSX.Element;
10
10
  declare function CardContent<TElement extends React.ElementType = "div">(props: PolymorphicProps<TElement>): React.JSX.Element;
11
+ declare function CardAction<TElement extends React.ElementType = "div">(props: PolymorphicProps<TElement>): React.JSX.Element;
11
12
  declare function CardFooter<TElement extends React.ElementType = "footer">(props: PolymorphicProps<TElement, {
12
13
  asChild?: boolean;
13
14
  }>): React.JSX.Element;
14
-
15
- //#endregion
16
- //#region src/components/ui/card/card-parts.d.ts
17
15
  declare namespace card_parts_d_exports {
18
- export { CardContent as Content, CardDescription as Description, CardFooter as Footer, CardHeader as Header, CardRoot as Root, CardTitle as Title };
16
+ export { CardAction as Action, CardContent as Content, CardDescription as Description, CardFooter as Footer, CardHeader as Header, CardRoot as Root, CardTitle as Title };
19
17
  }
20
18
  //#endregion
21
- export { CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter as CardFooter$1, CardHeader as CardHeader$1, CardRoot as CardRoot$1, CardTitle as CardTitle$1, card_parts_d_exports };
22
- //# sourceMappingURL=index-BuSQsDCX.d.ts.map
19
+ export { CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardRoot, CardTitle, card_parts_d_exports };
20
+ //# sourceMappingURL=index-XYFc-mmy.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { __export } from "./chunk-Cl8Af3a2.js";
2
- import { GetSlotComponentProps } from "./getSlotMap-DA_uhXqU.js";
3
- import { ErrorBoundaryProps } from "./index-BSJ30pGj.js";
4
- import { SuspenseWithBoundaryProps } from "./index-CqlM1M0j.js";
2
+ import { GetSlotComponentProps } from "./getSlotMap-DZlQN8--.js";
3
+ import { ErrorBoundaryProps } from "./index-BsjcsNQh.js";
4
+ import { SuspenseWithBoundaryProps } from "./index-CFNg1R-m.js";
5
5
  import * as React from "react";
6
6
 
7
7
  //#region src/components/common/await/await.d.ts
@@ -30,9 +30,6 @@ declare const AwaitError: {
30
30
  readonly slotName?: "error" | undefined;
31
31
  readonly slotSymbol?: symbol;
32
32
  };
33
-
34
- //#endregion
35
- //#region src/components/common/await/await-parts.d.ts
36
33
  declare namespace await_parts_d_exports {
37
34
  export { AwaitError as Error, AwaitPending as Pending, AwaitRoot as Root, AwaitSuccess as Success };
38
35
  }
@@ -43,7 +40,6 @@ type AwaitContextType<TValue = unknown> = {
43
40
  result: TValue;
44
41
  };
45
42
  declare const useAwaitContext: <TValue>() => AwaitContextType<TValue>;
46
-
47
43
  //#endregion
48
- export { AwaitError as AwaitError$1, AwaitPending as AwaitPending$1, AwaitRoot as AwaitRoot$1, AwaitSuccess as AwaitSuccess$1, await_parts_d_exports, useAwaitContext as useAwaitContext$1 };
49
- //# sourceMappingURL=index-TBkPiipk.d.ts.map
44
+ export { AwaitError, AwaitPending, AwaitRoot, AwaitSuccess, await_parts_d_exports, useAwaitContext };
45
+ //# sourceMappingURL=index-YFi-sIuR.d.ts.map
@@ -18,7 +18,6 @@ type DragScrollResult<TElement extends HTMLElement, TItemElement extends HTMLEle
18
18
  getRootProps: (rootProps?: RootProps<TElement>) => RootProps<TElement>;
19
19
  };
20
20
  declare const useDragScroll: <TElement extends HTMLElement, TItemElement extends HTMLElement = HTMLElement>(props?: DragScrollProps<TElement, TItemElement>) => DragScrollResult<TElement, TItemElement>;
21
-
22
21
  //#endregion
23
- export { useDragScroll as useDragScroll$1 };
24
- //# sourceMappingURL=index-CTZr4PTO.d.ts.map
22
+ export { useDragScroll };
23
+ //# sourceMappingURL=index-gT9tVHv1.d.ts.map
@@ -1,3 +1,3 @@
1
- import { GetSlotComponentProps, GetSlotMapResult, createSlotComponent$1 as createSlotComponent, getSlotMap$1 as getSlotMap, slotComponentSymbol$1 as slotComponentSymbol, withSlotNameAndSymbol$1 as withSlotNameAndSymbol } from "../../getSlotMap-DA_uhXqU.js";
2
- import { FunctionalComponent, getMultipleSlots, getRegularChildren, getSingleSlot, matchesAnySlotComponent, matchesSlotComponent } from "../../index-D-j2Cn1J.js";
1
+ import { GetSlotComponentProps, GetSlotMapResult, createSlotComponent, getSlotMap, slotComponentSymbol, withSlotNameAndSymbol } from "../../getSlotMap-DZlQN8--.js";
2
+ import { FunctionalComponent, getMultipleSlots, getRegularChildren, getSingleSlot, matchesAnySlotComponent, matchesSlotComponent } from "../../index-DRiwJkJC.js";
3
3
  export { FunctionalComponent, GetSlotComponentProps, GetSlotMapResult, createSlotComponent, getMultipleSlots, getRegularChildren, getSingleSlot, getSlotMap, matchesAnySlotComponent, matchesSlotComponent, slotComponentSymbol, withSlotNameAndSymbol };
@@ -1,4 +1,4 @@
1
1
  import { createSlotComponent, getSlotMap, slotComponentSymbol, withSlotNameAndSymbol } from "../../utils-D4YNWj2X.js";
2
- import { getMultipleSlots$1 as getMultipleSlots, getRegularChildren$1 as getRegularChildren, getSingleSlot$1 as getSingleSlot, matchesAnySlotComponent$1 as matchesAnySlotComponent, matchesSlotComponent$1 as matchesSlotComponent } from "../../getSlot-BIcGgBwN.js";
2
+ import { getMultipleSlots, getRegularChildren, getSingleSlot, matchesAnySlotComponent, matchesSlotComponent } from "../../getSlot-D1_uG-Ym.js";
3
3
 
4
4
  export { createSlotComponent, getMultipleSlots, getRegularChildren, getSingleSlot, getSlotMap, matchesAnySlotComponent, matchesSlotComponent, slotComponentSymbol, withSlotNameAndSymbol };
@@ -1,5 +1,5 @@
1
1
  import { __export } from "./chunk-Cl8Af3a2.js";
2
- import { getMultipleSlots$1 as getMultipleSlots } from "./getSlot-BIcGgBwN.js";
2
+ import { getMultipleSlots } from "./getSlot-D1_uG-Ym.js";
3
3
  import "react";
4
4
  import { assert, isFunction } from "@zayne-labs/toolkit-type-helpers";
5
5
 
@@ -38,4 +38,4 @@ __export(show_parts_exports, {
38
38
 
39
39
  //#endregion
40
40
  export { ShowContent, ShowFallback, ShowRoot, show_parts_exports };
41
- //# sourceMappingURL=show-BgYrfIxJ.js.map
41
+ //# sourceMappingURL=show-DNPzdLi-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show-BgYrfIxJ.js","names":["props: ShowProps<TWhen>"],"sources":["../../src/components/common/show/show.tsx","../../src/components/common/show/show-parts.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { getMultipleSlots } from \"@/lib/utils/getSlot\";\nimport { assert, isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ShowProps<TWhen> = {\n\tchildren: React.ReactNode | ((value: TWhen) => React.ReactNode);\n\tfallback?: React.ReactNode;\n\twhen: false | TWhen | null | undefined;\n};\n\nexport function ShowRoot<TWhen>(props: ShowProps<TWhen>) {\n\tconst { children, fallback = null, when } = props;\n\n\tconst resolvedChildren = isFunction(children) ? children(when as TWhen) : children;\n\n\tconst {\n\t\tregularChildren,\n\t\tslots: [contentSlot, fallBackSlot],\n\t} = getMultipleSlots(resolvedChildren, [ShowContent, ShowFallback], {\n\t\terrorMessage: [\n\t\t\t\"Only one <Show.Content> component is allowed\",\n\t\t\t\"Only one <Show.Fallback> or <Show.OtherWise> component is allowed\",\n\t\t],\n\t\tthrowOnMultipleSlotMatch: true,\n\t});\n\n\tif (!when) {\n\t\tassert(\n\t\t\t!(fallBackSlot && fallback),\n\t\t\t\"The fallback prop and <Show.Fallback> cannot be used at the same time.\"\n\t\t);\n\n\t\treturn fallBackSlot ?? fallback;\n\t}\n\n\treturn contentSlot ?? regularChildren;\n}\n\nexport function ShowContent({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nShowContent.slotSymbol = Symbol(\"show-content\");\n\nexport function ShowFallback({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nShowFallback.slotSymbol = Symbol(\"show-fallback\");\n","export {\n\tShowContent as Content,\n\tShowFallback as Fallback,\n\tShowFallback as Otherwise,\n\tShowRoot as Root,\n} from \"./show\";\n"],"mappings":";;;;;;AAaA,SAAgB,SAAgBA,OAAyB;CACxD,MAAM,EAAE,UAAU,WAAW,MAAM,MAAM,GAAG;CAE5C,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;CAE1E,MAAM,EACL,iBACA,OAAO,CAAC,aAAa,aAAa,EAClC,GAAG,iBAAiB,kBAAkB,CAAC,aAAa,YAAa,GAAE;EACnE,cAAc,CACb,gDACA,mEACA;EACD,0BAA0B;CAC1B,EAAC;AAEF,MAAK,MAAM;AACV,WACG,gBAAgB,WAClB,yEACA;AAED,SAAO,gBAAgB;CACvB;AAED,QAAO,eAAe;AACtB;AAED,SAAgB,YAAY,EAAE,UAAyC,EAAE;AACxE,QAAO;AACP;AACD,YAAY,aAAa,OAAO,eAAe;AAE/C,SAAgB,aAAa,EAAE,UAAyC,EAAE;AACzE,QAAO;AACP;AACD,aAAa,aAAa,OAAO,gBAAgB"}
1
+ {"version":3,"file":"show-DNPzdLi-.js","names":["props: ShowProps<TWhen>"],"sources":["../../src/components/common/show/show.tsx","../../src/components/common/show/show-parts.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { getMultipleSlots } from \"@/lib/utils/getSlot\";\nimport { assert, isFunction } from \"@zayne-labs/toolkit-type-helpers\";\n\ntype ShowProps<TWhen> = {\n\tchildren: React.ReactNode | ((value: TWhen) => React.ReactNode);\n\tfallback?: React.ReactNode;\n\twhen: false | TWhen | null | undefined;\n};\n\nexport function ShowRoot<TWhen>(props: ShowProps<TWhen>) {\n\tconst { children, fallback = null, when } = props;\n\n\tconst resolvedChildren = isFunction(children) ? children(when as TWhen) : children;\n\n\tconst {\n\t\tregularChildren,\n\t\tslots: [contentSlot, fallBackSlot],\n\t} = getMultipleSlots(resolvedChildren, [ShowContent, ShowFallback], {\n\t\terrorMessage: [\n\t\t\t\"Only one <Show.Content> component is allowed\",\n\t\t\t\"Only one <Show.Fallback> or <Show.OtherWise> component is allowed\",\n\t\t],\n\t\tthrowOnMultipleSlotMatch: true,\n\t});\n\n\tif (!when) {\n\t\tassert(\n\t\t\t!(fallBackSlot && fallback),\n\t\t\t\"The fallback prop and <Show.Fallback> cannot be used at the same time.\"\n\t\t);\n\n\t\treturn fallBackSlot ?? fallback;\n\t}\n\n\treturn contentSlot ?? regularChildren;\n}\n\nexport function ShowContent({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nShowContent.slotSymbol = Symbol(\"show-content\");\n\nexport function ShowFallback({ children }: { children: React.ReactNode }) {\n\treturn children;\n}\nShowFallback.slotSymbol = Symbol(\"show-fallback\");\n","export {\n\tShowContent as Content,\n\tShowFallback as Fallback,\n\tShowFallback as Otherwise,\n\tShowRoot as Root,\n} from \"./show\";\n"],"mappings":";;;;;;AAaA,SAAgB,SAAgBA,OAAyB;CACxD,MAAM,EAAE,UAAU,WAAW,MAAM,MAAM,GAAG;CAE5C,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;CAE1E,MAAM,EACL,iBACA,OAAO,CAAC,aAAa,aAAa,EAClC,GAAG,iBAAiB,kBAAkB,CAAC,aAAa,YAAa,GAAE;EACnE,cAAc,CACb,gDACA,mEACA;EACD,0BAA0B;CAC1B,EAAC;AAEF,MAAK,MAAM;AACV,WACG,gBAAgB,WAClB,yEACA;AAED,SAAO,gBAAgB;CACvB;AAED,QAAO,eAAe;AACtB;AAED,SAAgB,YAAY,EAAE,UAAyC,EAAE;AACxE,QAAO;AACP;AACD,YAAY,aAAa,OAAO,eAAe;AAE/C,SAAgB,aAAa,EAAE,UAAyC,EAAE;AACzE,QAAO;AACP;AACD,aAAa,aAAa,OAAO,gBAAgB"}
@@ -1,5 +1,5 @@
1
1
  import { __export } from "./chunk-Cl8Af3a2.js";
2
- import { getRegularChildren$1 as getRegularChildren, getSingleSlot$1 as getSingleSlot } from "./getSlot-BIcGgBwN.js";
2
+ import { getRegularChildren, getSingleSlot } from "./getSlot-D1_uG-Ym.js";
3
3
  import "react";
4
4
  import { isFunction } from "@zayne-labs/toolkit-type-helpers";
5
5
 
@@ -39,4 +39,4 @@ __export(switch_parts_exports, {
39
39
 
40
40
  //#endregion
41
41
  export { SwitchDefault, SwitchMatch, SwitchRoot, switch_parts_exports };
42
- //# sourceMappingURL=switch-PF5xTJfr.js.map
42
+ //# sourceMappingURL=switch-B2gKl94R.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-PF5xTJfr.js","names":["props: SwitchProps","props: SwitchMatchProps<TWhen>"],"sources":["../../src/components/common/switch/switch.tsx","../../src/components/common/switch/switch-parts.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { getRegularChildren, getSingleSlot } from \"@/lib/utils/getSlot\";\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":";;;;;;AAcA,MAAM,qBAAqB,OAAO,gBAAgB;AAElD,SAAgB,WAAWA,OAAoB;CAC9C,MAAM,EAAE,UAAU,QAAQ,oBAAoB,GAAG;CAEjD,MAAM,cAAc,cAAc,UAAU,eAAe;EAC1D,cAAc;EACd,0BAA0B;CAC1B,EAAC;CAEF,MAAM,qBAAqB,mBAAmB,UAAU,cAAc;CAEtE,MAAM,cAAc,mBAAmB,KAAK,CAAC,UAAU;AAEtD,MAAI,UAAU,mBACb,QAAO,QAAQ,MAAM,MAAM,KAAK;AAIjC,SAAO,MAAM,MAAM,SAAS;CAC5B,EAAC;AAEF,QAAO,eAAe;AACtB;AAOD,SAAgB,YAAmBC,OAAgC;CAClE,MAAM,EAAE,UAAU,MAAM,GAAG;CAE3B,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;AAE1E,QAAO;AACP;AAED,SAAgB,cAAc,EAAE,UAAyC,EAAE;AAC1E,QAAO;AACP;AACD,cAAc,aAAa,OAAO,iBAAiB"}
1
+ {"version":3,"file":"switch-B2gKl94R.js","names":["props: SwitchProps","props: SwitchMatchProps<TWhen>"],"sources":["../../src/components/common/switch/switch.tsx","../../src/components/common/switch/switch-parts.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { getRegularChildren, getSingleSlot } from \"@/lib/utils/getSlot\";\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":";;;;;;AAcA,MAAM,qBAAqB,OAAO,gBAAgB;AAElD,SAAgB,WAAWA,OAAoB;CAC9C,MAAM,EAAE,UAAU,QAAQ,oBAAoB,GAAG;CAEjD,MAAM,cAAc,cAAc,UAAU,eAAe;EAC1D,cAAc;EACd,0BAA0B;CAC1B,EAAC;CAEF,MAAM,qBAAqB,mBAAmB,UAAU,cAAc;CAEtE,MAAM,cAAc,mBAAmB,KAAK,CAAC,UAAU;AAEtD,MAAI,UAAU,mBACb,QAAO,QAAQ,MAAM,MAAM,KAAK;AAIjC,SAAO,MAAM,MAAM,SAAS;CAC5B,EAAC;AAEF,QAAO,eAAe;AACtB;AAOD,SAAgB,YAAmBC,OAAgC;CAClE,MAAM,EAAE,UAAU,MAAM,GAAG;CAE3B,MAAM,mBAAmB,WAAW,SAAS,GAAG,SAAS,KAAc,GAAG;AAE1E,QAAO;AACP;AAED,SAAgB,cAAc,EAAE,UAAyC,EAAE;AAC1E,QAAO;AACP;AACD,cAAc,aAAa,OAAO,iBAAiB"}
package/dist/style.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -7,16 +7,17 @@
7
7
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
8
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
9
  "Courier New", monospace;
10
- --color-red-600: oklch(57.7% 0.245 27.325);
11
10
  --spacing: 0.25rem;
12
11
  --text-sm: 0.875rem;
13
12
  --text-sm--line-height: calc(1.25 / 0.875);
14
13
  --font-weight-semibold: 600;
14
+ --radius-xl: 0.75rem;
15
15
  --default-transition-duration: 150ms;
16
16
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
17
17
  --default-font-family: var(--font-sans);
18
18
  --default-mono-font-family: var(--font-mono);
19
- --color-shadcn-muted-foreground: hsl(215.4, 16.3%, 46.9%);
19
+ --color-shadcn-muted-foreground: oklch(0.556 0 0);
20
+ --color-shadcn-destructive: oklch(0.577 0.245 27.325);
20
21
  --animate-shake: shake 0.2s ease-in-out 0s 3;
21
22
  }
22
23
  }
@@ -166,6 +167,10 @@
166
167
  }
167
168
  }
168
169
  @layer utilities {
170
+ .\@container\/card-header {
171
+ container-type: inline-size;
172
+ container-name: card-header;
173
+ }
169
174
  .absolute {
170
175
  position: absolute;
171
176
  }
@@ -196,6 +201,15 @@
196
201
  .z-\[100\] {
197
202
  z-index: 100;
198
203
  }
204
+ .col-start-2 {
205
+ grid-column-start: 2;
206
+ }
207
+ .row-span-2 {
208
+ grid-row: span 2 / span 2;
209
+ }
210
+ .row-start-1 {
211
+ grid-row-start: 1;
212
+ }
199
213
  .container {
200
214
  width: 100%;
201
215
  @media (width >= 40rem) {
@@ -226,6 +240,9 @@
226
240
  .flex {
227
241
  display: flex;
228
242
  }
243
+ .grid {
244
+ display: grid;
245
+ }
229
246
  .hidden {
230
247
  display: none;
231
248
  }
@@ -286,6 +303,12 @@
286
303
  .snap-always {
287
304
  scroll-snap-stop: always;
288
305
  }
306
+ .auto-rows-min {
307
+ grid-auto-rows: min-content;
308
+ }
309
+ .grid-rows-\[auto_auto\] {
310
+ grid-template-rows: auto auto;
311
+ }
289
312
  .flex-col {
290
313
  flex-direction: column;
291
314
  }
@@ -295,6 +318,9 @@
295
318
  .items-center {
296
319
  align-items: center;
297
320
  }
321
+ .items-start {
322
+ align-items: flex-start;
323
+ }
298
324
  .justify-between {
299
325
  justify-content: space-between;
300
326
  }
@@ -307,12 +333,24 @@
307
333
  .justify-start {
308
334
  justify-content: flex-start;
309
335
  }
336
+ .gap-1\.5 {
337
+ gap: calc(var(--spacing) * 1.5);
338
+ }
310
339
  .gap-2 {
311
340
  gap: calc(var(--spacing) * 2);
312
341
  }
342
+ .gap-6 {
343
+ gap: calc(var(--spacing) * 6);
344
+ }
313
345
  .gap-\[15px\] {
314
346
  gap: 15px;
315
347
  }
348
+ .self-start {
349
+ align-self: flex-start;
350
+ }
351
+ .justify-self-end {
352
+ justify-self: flex-end;
353
+ }
316
354
  .overflow-x-scroll {
317
355
  overflow-x: scroll;
318
356
  }
@@ -325,9 +363,22 @@
325
363
  .rounded-\[50\%\] {
326
364
  border-radius: 50%;
327
365
  }
366
+ .rounded-xl {
367
+ border-radius: var(--radius-xl);
368
+ }
369
+ .border {
370
+ border-style: var(--tw-border-style);
371
+ border-width: 1px;
372
+ }
328
373
  .bg-transparent {
329
374
  background-color: transparent;
330
375
  }
376
+ .px-6 {
377
+ padding-inline: calc(var(--spacing) * 6);
378
+ }
379
+ .py-6 {
380
+ padding-block: calc(var(--spacing) * 6);
381
+ }
331
382
  .text-sm {
332
383
  font-size: var(--text-sm);
333
384
  line-height: var(--tw-leading, var(--text-sm--line-height));
@@ -338,12 +389,16 @@
338
389
  .text-\[13px\] {
339
390
  font-size: 13px;
340
391
  }
392
+ .leading-none {
393
+ --tw-leading: 1;
394
+ line-height: 1;
395
+ }
341
396
  .font-semibold {
342
397
  --tw-font-weight: var(--font-weight-semibold);
343
398
  font-weight: var(--font-weight-semibold);
344
399
  }
345
- .text-red-600 {
346
- color: var(--color-red-600);
400
+ .text-shadcn-destructive {
401
+ color: var(--color-shadcn-destructive);
347
402
  }
348
403
  .text-shadcn-muted-foreground {
349
404
  color: var(--color-shadcn-muted-foreground);
@@ -357,6 +412,10 @@
357
412
  .opacity-60 {
358
413
  opacity: 60%;
359
414
  }
415
+ .shadow-sm {
416
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
417
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
418
+ }
360
419
  .transition-transform {
361
420
  transition-property: transform, translate, scale, rotate;
362
421
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -413,6 +472,11 @@
413
472
  opacity: 50%;
414
473
  }
415
474
  }
475
+ .has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\] {
476
+ &:has(*[data-slot="card-action"]) {
477
+ grid-template-columns: 1fr auto;
478
+ }
479
+ }
416
480
  .data-\[index\=0\]\:mt-1 {
417
481
  &[data-index="0"] {
418
482
  margin-top: calc(var(--spacing) * 1);
@@ -450,19 +514,92 @@
450
514
  }
451
515
  }
452
516
  }
517
+ :where(.dark, [data-theme="dark"]) {
518
+ --color-shadcn-muted-foreground: oklch(0.708 0 0);
519
+ --color-shadcn-destructive: oklch(0.704 0.191 22.216);
520
+ }
453
521
  @property --tw-scroll-snap-strictness {
454
522
  syntax: "*";
455
523
  inherits: false;
456
524
  initial-value: proximity;
457
525
  }
526
+ @property --tw-border-style {
527
+ syntax: "*";
528
+ inherits: false;
529
+ initial-value: solid;
530
+ }
531
+ @property --tw-leading {
532
+ syntax: "*";
533
+ inherits: false;
534
+ }
458
535
  @property --tw-font-weight {
459
536
  syntax: "*";
460
537
  inherits: false;
461
538
  }
462
- @property --tw-border-style {
539
+ @property --tw-shadow {
463
540
  syntax: "*";
464
541
  inherits: false;
465
- initial-value: solid;
542
+ initial-value: 0 0 #0000;
543
+ }
544
+ @property --tw-shadow-color {
545
+ syntax: "*";
546
+ inherits: false;
547
+ }
548
+ @property --tw-shadow-alpha {
549
+ syntax: "<percentage>";
550
+ inherits: false;
551
+ initial-value: 100%;
552
+ }
553
+ @property --tw-inset-shadow {
554
+ syntax: "*";
555
+ inherits: false;
556
+ initial-value: 0 0 #0000;
557
+ }
558
+ @property --tw-inset-shadow-color {
559
+ syntax: "*";
560
+ inherits: false;
561
+ }
562
+ @property --tw-inset-shadow-alpha {
563
+ syntax: "<percentage>";
564
+ inherits: false;
565
+ initial-value: 100%;
566
+ }
567
+ @property --tw-ring-color {
568
+ syntax: "*";
569
+ inherits: false;
570
+ }
571
+ @property --tw-ring-shadow {
572
+ syntax: "*";
573
+ inherits: false;
574
+ initial-value: 0 0 #0000;
575
+ }
576
+ @property --tw-inset-ring-color {
577
+ syntax: "*";
578
+ inherits: false;
579
+ }
580
+ @property --tw-inset-ring-shadow {
581
+ syntax: "*";
582
+ inherits: false;
583
+ initial-value: 0 0 #0000;
584
+ }
585
+ @property --tw-ring-inset {
586
+ syntax: "*";
587
+ inherits: false;
588
+ }
589
+ @property --tw-ring-offset-width {
590
+ syntax: "<length>";
591
+ inherits: false;
592
+ initial-value: 0px;
593
+ }
594
+ @property --tw-ring-offset-color {
595
+ syntax: "*";
596
+ inherits: false;
597
+ initial-value: #fff;
598
+ }
599
+ @property --tw-ring-offset-shadow {
600
+ syntax: "*";
601
+ inherits: false;
602
+ initial-value: 0 0 #0000;
466
603
  }
467
604
  @keyframes shake {
468
605
  0%, 100% {
@@ -479,8 +616,23 @@
479
616
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
480
617
  *, ::before, ::after, ::backdrop {
481
618
  --tw-scroll-snap-strictness: proximity;
482
- --tw-font-weight: initial;
483
619
  --tw-border-style: solid;
620
+ --tw-leading: initial;
621
+ --tw-font-weight: initial;
622
+ --tw-shadow: 0 0 #0000;
623
+ --tw-shadow-color: initial;
624
+ --tw-shadow-alpha: 100%;
625
+ --tw-inset-shadow: 0 0 #0000;
626
+ --tw-inset-shadow-color: initial;
627
+ --tw-inset-shadow-alpha: 100%;
628
+ --tw-ring-color: initial;
629
+ --tw-ring-shadow: 0 0 #0000;
630
+ --tw-inset-ring-color: initial;
631
+ --tw-inset-ring-shadow: 0 0 #0000;
632
+ --tw-ring-inset: initial;
633
+ --tw-ring-offset-width: 0px;
634
+ --tw-ring-offset-color: #fff;
635
+ --tw-ring-offset-shadow: 0 0 #0000;
484
636
  }
485
637
  }
486
638
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zayne-labs/ui-react",
3
3
  "type": "module",
4
- "version": "0.9.18",
4
+ "version": "0.9.20",
5
5
  "description": "A composable UI/UI-utilities components library. ",
6
6
  "author": "Ryan Zayne",
7
7
  "license": "MIT",
@@ -52,18 +52,18 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@zayne-labs/toolkit-core": "0.9.46",
56
- "@zayne-labs/toolkit-react": "0.9.46",
57
- "@zayne-labs/toolkit-type-helpers": "0.9.46"
55
+ "@zayne-labs/toolkit-core": "0.9.48",
56
+ "@zayne-labs/toolkit-react": "0.9.48",
57
+ "@zayne-labs/toolkit-type-helpers": "0.9.48"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@arethetypeswrong/cli": "0.18.1",
61
61
  "@size-limit/esbuild-why": "11.2.0",
62
62
  "@size-limit/preset-small-lib": "11.2.0",
63
- "@tailwindcss/cli": "^4.1.7",
63
+ "@tailwindcss/cli": "^4.1.8",
64
64
  "@total-typescript/ts-reset": "0.6.1",
65
- "@types/react": "19.1.5",
66
- "@types/react-dom": "19.1.5",
65
+ "@types/react": "19.1.6",
66
+ "@types/react-dom": "19.1.6",
67
67
  "@zayne-labs/tsconfig": "0.9.1",
68
68
  "concurrently": "9.1.2",
69
69
  "cross-env": "7.0.3",
@@ -71,11 +71,11 @@
71
71
  "publish": "^0.6.0",
72
72
  "react": "19.1.0",
73
73
  "react-dom": "19.1.0",
74
- "react-hook-form": "7.56.4",
74
+ "react-hook-form": "7.57.0",
75
75
  "size-limit": "11.2.0",
76
76
  "tailwind-merge": "3.3.0",
77
- "tailwindcss": "^4.1.7",
78
- "tsdown": "^0.12.3",
77
+ "tailwindcss": "^4.1.8",
78
+ "tsdown": "^0.12.7",
79
79
  "tsup": "^8.5.0",
80
80
  "typescript": "5.8.3",
81
81
  "zustand": "5.0.5"
@@ -1,54 +0,0 @@
1
- import { __export } from "./chunk-Cl8Af3a2.js";
2
- import { SlotRoot } from "./slot-RXTKo4L7.js";
3
- import { cnMerge } from "./cn-_FbtIrlZ.js";
4
- import "react";
5
- import { jsx } from "react/jsx-runtime";
6
-
7
- //#region src/components/ui/card/card.tsx
8
- function CardRoot(props) {
9
- const { as: Element = "article",...restOfProps } = props;
10
- return /* @__PURE__ */ jsx(Element, { ...restOfProps });
11
- }
12
- function CardHeader(props) {
13
- const { as: Element = "header",...restOfProps } = props;
14
- return /* @__PURE__ */ jsx(Element, { ...restOfProps });
15
- }
16
- function CardTitle(props) {
17
- const { as: Element = "h3", className,...restOfProps } = props;
18
- return /* @__PURE__ */ jsx(Element, {
19
- className: cnMerge("font-semibold", className),
20
- ...restOfProps
21
- });
22
- }
23
- function CardDescription(props) {
24
- const { as: Element = "p", className,...restOfProps } = props;
25
- return /* @__PURE__ */ jsx(Element, {
26
- className: cnMerge("text-shadcn-muted-foreground text-sm", className),
27
- ...restOfProps
28
- });
29
- }
30
- function CardContent(props) {
31
- const { as: Element = "div",...restOfProps } = props;
32
- return /* @__PURE__ */ jsx(Element, { ...restOfProps });
33
- }
34
- function CardFooter(props) {
35
- const { as: Element = "footer", asChild,...restOfProps } = props;
36
- const Component$1 = asChild ? SlotRoot : Element;
37
- return /* @__PURE__ */ jsx(Component$1, { ...restOfProps });
38
- }
39
-
40
- //#endregion
41
- //#region src/components/ui/card/card-parts.ts
42
- var card_parts_exports = {};
43
- __export(card_parts_exports, {
44
- Content: () => CardContent,
45
- Description: () => CardDescription,
46
- Footer: () => CardFooter,
47
- Header: () => CardHeader,
48
- Root: () => CardRoot,
49
- Title: () => CardTitle
50
- });
51
-
52
- //#endregion
53
- export { CardContent, CardDescription, CardFooter, CardHeader, CardRoot, CardTitle, card_parts_exports };
54
- //# sourceMappingURL=card-DRjs-vtv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-DRjs-vtv.js","names":["props: PolymorphicProps<TElement>","props: PolymorphicProps<TElement, { asChild?: boolean }>","Component"],"sources":["../../src/components/ui/card/card.tsx","../../src/components/ui/card/card-parts.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport { Slot } from \"@/components/common/slot\";\nimport { cnMerge } from \"@/lib/utils/cn\";\nimport type { PolymorphicProps } from \"@zayne-labs/toolkit-react/utils\";\n\nexport function CardRoot<TElement extends React.ElementType = \"article\">(\n\tprops: PolymorphicProps<TElement>\n) {\n\tconst { as: Element = \"article\", ...restOfProps } = props;\n\n\treturn <Element {...restOfProps} />;\n}\n\nexport function CardHeader<TElement extends React.ElementType = \"header\">(\n\tprops: PolymorphicProps<TElement>\n) {\n\tconst { as: Element = \"header\", ...restOfProps } = props;\n\n\treturn <Element {...restOfProps} />;\n}\n\nexport function CardTitle<TElement extends React.ElementType = \"h3\">(props: PolymorphicProps<TElement>) {\n\tconst { as: Element = \"h3\", className, ...restOfProps } = props;\n\n\treturn <Element className={cnMerge(\"font-semibold\", className)} {...restOfProps} />;\n}\n\nexport function CardDescription<TElement extends React.ElementType = \"p\">(\n\tprops: PolymorphicProps<TElement>\n) {\n\tconst { as: Element = \"p\", className, ...restOfProps } = props;\n\n\treturn (\n\t\t<Element className={cnMerge(\"text-shadcn-muted-foreground text-sm\", className)} {...restOfProps} />\n\t);\n}\n\nexport function CardContent<TElement extends React.ElementType = \"div\">(\n\tprops: PolymorphicProps<TElement>\n) {\n\tconst { as: Element = \"div\", ...restOfProps } = props;\n\n\treturn <Element {...restOfProps} />;\n}\n\nexport function CardFooter<TElement extends React.ElementType = \"footer\">(\n\tprops: PolymorphicProps<TElement, { asChild?: boolean }>\n) {\n\tconst { as: Element = \"footer\", asChild, ...restOfProps } = props;\n\n\tconst Component = asChild ? Slot.Root : Element;\n\n\treturn <Component {...restOfProps} />;\n}\n","export {\n\tCardContent as Content,\n\tCardDescription as Description,\n\tCardFooter as Footer,\n\tCardHeader as Header,\n\tCardRoot as Root,\n\tCardTitle as Title,\n} from \"./card\";\n"],"mappings":";;;;;;;AAMA,SAAgB,SACfA,OACC;CACD,MAAM,EAAE,IAAI,UAAU,UAAW,GAAG,aAAa,GAAG;AAEpD,wBAAO,IAAC,WAAQ,GAAI,cAAe;AACnC;AAED,SAAgB,WACfA,OACC;CACD,MAAM,EAAE,IAAI,UAAU,SAAU,GAAG,aAAa,GAAG;AAEnD,wBAAO,IAAC,WAAQ,GAAI,cAAe;AACnC;AAED,SAAgB,UAAqDA,OAAmC;CACvG,MAAM,EAAE,IAAI,UAAU,MAAM,UAAW,GAAG,aAAa,GAAG;AAE1D,wBAAO,IAAC;EAAQ,WAAW,QAAQ,iBAAiB,UAAU;EAAE,GAAI;GAAe;AACnF;AAED,SAAgB,gBACfA,OACC;CACD,MAAM,EAAE,IAAI,UAAU,KAAK,UAAW,GAAG,aAAa,GAAG;AAEzD,wBACC,IAAC;EAAQ,WAAW,QAAQ,wCAAwC,UAAU;EAAE,GAAI;GAAe;AAEpG;AAED,SAAgB,YACfA,OACC;CACD,MAAM,EAAE,IAAI,UAAU,MAAO,GAAG,aAAa,GAAG;AAEhD,wBAAO,IAAC,WAAQ,GAAI,cAAe;AACnC;AAED,SAAgB,WACfC,OACC;CACD,MAAM,EAAE,IAAI,UAAU,UAAU,QAAS,GAAG,aAAa,GAAG;CAE5D,MAAMC,cAAY,qBAAsB;AAExC,wBAAO,IAACA,eAAU,GAAI,cAAe;AACrC"}