@contractspec/lib.design-system 1.48.0 → 1.49.0

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 (56) hide show
  1. package/dist/components/agent/AgentMonitor.d.ts +2 -2
  2. package/dist/components/agent/ApprovalQueue.d.ts +2 -2
  3. package/dist/components/atoms/ActionButtons.d.ts +7 -7
  4. package/dist/components/atoms/ButtonLink.d.ts +2 -2
  5. package/dist/components/atoms/Cta.d.ts +1 -1
  6. package/dist/components/atoms/Cta.d.ts.map +1 -1
  7. package/dist/components/atoms/Cta.js +0 -2
  8. package/dist/components/atoms/Cta.js.map +1 -1
  9. package/dist/components/atoms/DataChips.d.ts +5 -5
  10. package/dist/components/atoms/EmptyState.d.ts +2 -2
  11. package/dist/components/atoms/Input.d.ts +2 -2
  12. package/dist/components/atoms/Link.d.ts +2 -2
  13. package/dist/components/atoms/Stepper.d.ts +2 -2
  14. package/dist/components/atoms/Textarea.d.ts +2 -2
  15. package/dist/components/data-view/DataViewRenderer.d.ts +2 -2
  16. package/dist/components/data-view/DataViewRenderer.d.ts.map +1 -1
  17. package/dist/components/molecules/CodeBlock/CodeBlock.d.ts +3 -2
  18. package/dist/components/molecules/CodeBlock/CodeBlock.d.ts.map +1 -1
  19. package/dist/components/molecules/CodeBlock/CodeBlock.js +6 -2
  20. package/dist/components/molecules/CodeBlock/CodeBlock.js.map +1 -1
  21. package/dist/components/molecules/CodeBlock/types.d.ts +2 -0
  22. package/dist/components/molecules/CommandTabs/CommandTabs.d.ts +3 -2
  23. package/dist/components/molecules/CommandTabs/CommandTabs.d.ts.map +1 -1
  24. package/dist/components/molecules/CommandTabs/CommandTabs.js +9 -2
  25. package/dist/components/molecules/CommandTabs/CommandTabs.js.map +1 -1
  26. package/dist/components/molecules/CommandTabs/types.d.ts +6 -1
  27. package/dist/components/molecules/CommandTabs/types.d.ts.map +1 -1
  28. package/dist/components/molecules/CopyButton/CopyButton.d.ts +2 -2
  29. package/dist/components/molecules/CopyButton/CopyButton.js +2 -2
  30. package/dist/components/molecules/CopyButton/CopyButton.js.map +1 -1
  31. package/dist/components/molecules/EntityCard.d.ts +20 -2
  32. package/dist/components/molecules/EntityCard.d.ts.map +1 -1
  33. package/dist/components/molecules/EntityCard.js +81 -19
  34. package/dist/components/molecules/EntityCard.js.map +1 -1
  35. package/dist/components/molecules/InstallCommand/InstallCommand.d.ts +3 -2
  36. package/dist/components/molecules/InstallCommand/InstallCommand.d.ts.map +1 -1
  37. package/dist/components/molecules/InstallCommand/InstallCommand.js +2 -1
  38. package/dist/components/molecules/InstallCommand/InstallCommand.js.map +1 -1
  39. package/dist/components/molecules/InstallCommand/types.d.ts +7 -1
  40. package/dist/components/molecules/InstallCommand/types.d.ts.map +1 -1
  41. package/dist/components/molecules/NavItemCard.js +1 -0
  42. package/dist/components/molecules/NavItemCard.js.map +1 -1
  43. package/dist/components/molecules/NavMain.d.ts +2 -2
  44. package/dist/components/molecules/NavUser.d.ts +2 -2
  45. package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
  46. package/dist/components/molecules/SkeletonCircle/index.web.d.ts +2 -2
  47. package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
  48. package/dist/components/molecules/StatCard.d.ts +1 -1
  49. package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
  50. package/dist/index.d.ts +2 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/renderers/form-contract.d.ts +2 -2
  53. package/dist/theme/variants.d.ts +1 -1
  54. package/dist/types/navigation.d.ts +1 -0
  55. package/dist/types/navigation.d.ts.map +1 -1
  56. package/package.json +8 -8
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime19 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime20 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/agent/AgentMonitor.d.ts
4
4
  interface AgentSessionSnapshot {
@@ -23,7 +23,7 @@ declare function AgentMonitor({
23
23
  highlightStatus,
24
24
  onSelectSession,
25
25
  className
26
- }: AgentMonitorProps): react_jsx_runtime19.JSX.Element;
26
+ }: AgentMonitorProps): react_jsx_runtime20.JSX.Element;
27
27
  //#endregion
28
28
  export { AgentMonitor };
29
29
  //# sourceMappingURL=AgentMonitor.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime18 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
3
3
  import { ApprovalRequest } from "@contractspec/lib.ai-agent/approval";
4
4
 
5
5
  //#region src/components/agent/ApprovalQueue.d.ts
@@ -20,7 +20,7 @@ declare function ApprovalQueue({
20
20
  onReject,
21
21
  className,
22
22
  emptyState
23
- }: ApprovalQueueProps): react_jsx_runtime18.JSX.Element;
23
+ }: ApprovalQueueProps): react_jsx_runtime19.JSX.Element;
24
24
  //#endregion
25
25
  export { ApprovalQueue };
26
26
  //# sourceMappingURL=ApprovalQueue.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { ButtonProps } from "./Button.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime6 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
4
4
  import { VariantProps } from "class-variance-authority";
5
5
  import * as class_variance_authority_types1 from "class-variance-authority/types";
6
6
 
@@ -13,14 +13,14 @@ type ActionBtnProps = Omit<ButtonProps, 'size' | 'variant'> & VariantProps<typeo
13
13
  label?: React.ReactNode;
14
14
  iconLeft?: React.ReactNode;
15
15
  };
16
- declare function EditButton(props: Omit<ActionBtnProps, 'iconLeft' | 'tone'>): react_jsx_runtime6.JSX.Element;
17
- declare function DeleteButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime6.JSX.Element;
18
- declare function ViewButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime6.JSX.Element;
16
+ declare function EditButton(props: Omit<ActionBtnProps, 'iconLeft' | 'tone'>): react_jsx_runtime7.JSX.Element;
17
+ declare function DeleteButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime7.JSX.Element;
18
+ declare function ViewButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime7.JSX.Element;
19
19
  declare function ToggleButton(props: Omit<ActionBtnProps, 'iconLeft'> & {
20
20
  active?: boolean;
21
- }): react_jsx_runtime6.JSX.Element;
22
- declare function ToggleLeftButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime6.JSX.Element;
23
- declare function ToggleRightButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime6.JSX.Element;
21
+ }): react_jsx_runtime7.JSX.Element;
22
+ declare function ToggleLeftButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime7.JSX.Element;
23
+ declare function ToggleRightButton(props: Omit<ActionBtnProps, 'iconLeft'>): react_jsx_runtime7.JSX.Element;
24
24
  //#endregion
25
25
  export { DeleteButton, EditButton, ToggleButton, ToggleLeftButton, ToggleRightButton, ViewButton };
26
26
  //# sourceMappingURL=ActionButtons.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { ButtonProps } from "./Button.js";
2
2
  import { LinkProps } from "./Link.web.js";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/atoms/ButtonLink.d.ts
6
6
  type ButtonLinkProps = Omit<ButtonProps, 'onClick'> & Pick<LinkProps, 'href' | 'target' | 'rel' | 'onClick'> & {
@@ -16,7 +16,7 @@ declare function ButtonLink({
16
16
  children,
17
17
  onClick,
18
18
  ...btn
19
- }: ButtonLinkProps): react_jsx_runtime0.JSX.Element;
19
+ }: ButtonLinkProps): react_jsx_runtime1.JSX.Element;
20
20
  //#endregion
21
21
  export { ButtonLink };
22
22
  //# sourceMappingURL=ButtonLink.d.ts.map
@@ -19,7 +19,7 @@ declare const Cta: React.ForwardRefExoticComponent<Omit<_contractspec_lib_ui_kit
19
19
  disabled?: boolean;
20
20
  } & VariantProps<(props?: ({
21
21
  size?: "sm" | "md" | "lg" | "touch" | null | undefined;
22
- emphasis?: "strong" | "default" | "subtle" | null | undefined;
22
+ emphasis?: "default" | "strong" | "subtle" | null | undefined;
23
23
  } & class_variance_authority_types0.ClassProp) | undefined) => string> & {
24
24
  capture?: (cta: string) => void;
25
25
  ctaName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Cta.d.ts","names":[],"sources":["../../../src/components/atoms/Cta.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAsBa,KAAG,KAAA,CAAA,0BAAA,KAgFf,uCAAA,CAhFe,WAAA;EAHD,QAAM,iBAAA;;;;EAGL,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,SAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;;;;;;;;;;;;aAHD,KAAA,CAAM"}
1
+ {"version":3,"file":"Cta.d.ts","names":[],"sources":["../../../src/components/atoms/Cta.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAsBa,KAAG,KAAA,CAAA,0BAAA,KAiEf,uCAAA,CAjEe,WAAA;EAHD,QAAM,iBAAA;;;;EAGL,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,SAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;;;;;;;;;;;;aAHD,KAAA,CAAM"}
@@ -28,8 +28,6 @@ const Cta = React.forwardRef(({ capture, ctaName, as = "button", href, onClick,
28
28
  const handleClick = (e) => {
29
29
  if (ctaName) try {
30
30
  if (capture) capture(ctaName);
31
- const ph = globalThis.posthog;
32
- if (ph && typeof ph.capture === "function") ph.capture("cta_click", { cta: ctaName });
33
31
  } catch {}
34
32
  onClick?.(e);
35
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Cta.js","names":[],"sources":["../../../src/components/atoms/Cta.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from './Button';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ButtonLink } from './ButtonLink';\n\nconst _ctaVariants = cva('', {\n variants: {\n size: { sm: 'sm', md: 'md', lg: 'lg', touch: 'touch' },\n emphasis: { default: 'default', subtle: 'secondary', strong: 'default' },\n },\n defaultVariants: { size: 'touch', emphasis: 'default' },\n});\n\nexport type CtaProps = ButtonProps &\n VariantProps<typeof _ctaVariants> & {\n capture?: (cta: string) => void;\n ctaName?: string;\n as?: 'button' | 'a';\n href?: string;\n children?: React.ReactNode;\n };\n\nexport const Cta = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n CtaProps\n>(\n (\n {\n capture,\n ctaName,\n as = 'button',\n href,\n onClick,\n size = 'touch',\n emphasis = 'default',\n children,\n ...props\n },\n _ref\n ) => {\n const handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n > = (e) => {\n if (ctaName) {\n try {\n if (capture) capture(ctaName);\n // Optional PostHog fallback if present globally\n const ph = (globalThis as unknown as { posthog?: unknown }).posthog;\n if (\n ph &&\n typeof (ph as { capture?: unknown }).capture === 'function'\n ) {\n (\n ph as {\n capture: (\n event: string,\n props?: Record<string, unknown>\n ) => void;\n }\n ).capture('cta_click', { cta: ctaName });\n }\n } catch {\n /* noop */\n }\n }\n onClick?.(e as unknown as React.MouseEvent<HTMLButtonElement>);\n };\n\n const uiSize = size as ButtonProps['size'];\n const uiVariant = (\n emphasis === 'subtle' ? 'secondary' : 'default'\n ) as ButtonProps['variant'];\n\n if (as === 'a') {\n return (\n <ButtonLink\n size={uiSize}\n variant={uiVariant}\n {...props}\n href={href}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLAnchorElement>\n }\n >\n {children}\n </ButtonLink>\n );\n }\n\n return (\n <Button\n size={uiSize}\n variant={uiVariant}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLButtonElement>\n }\n {...props}\n >\n {children}\n </Button>\n );\n }\n);\nCta.displayName = 'Cta';\n"],"mappings":";;;;;;;AAKqB,IAAI,IAAI;CAC3B,UAAU;EACR,MAAM;GAAE,IAAI;GAAM,IAAI;GAAM,IAAI;GAAM,OAAO;GAAS;EACtD,UAAU;GAAE,SAAS;GAAW,QAAQ;GAAa,QAAQ;GAAW;EACzE;CACD,iBAAiB;EAAE,MAAM;EAAS,UAAU;EAAW;CACxD,CAAC;AAWF,MAAa,MAAM,MAAM,YAKrB,EACE,SACA,SACA,KAAK,UACL,MACA,SACA,OAAO,SACP,WAAW,WACX,UACA,GAAG,SAEL,SACG;CACH,MAAM,eAED,MAAM;AACT,MAAI,QACF,KAAI;AACF,OAAI,QAAS,SAAQ,QAAQ;GAE7B,MAAM,KAAM,WAAgD;AAC5D,OACE,MACA,OAAQ,GAA6B,YAAY,WAEjD,CACE,GAMA,QAAQ,aAAa,EAAE,KAAK,SAAS,CAAC;UAEpC;AAIV,YAAU,EAAoD;;CAGhE,MAAM,SAAS;CACf,MAAM,YACJ,aAAa,WAAW,cAAc;AAGxC,KAAI,OAAO,IACT,QACE,oBAAC;EACC,MAAM;EACN,SAAS;EACT,GAAI;EACE;EACN,SACE;EAGD;GACU;AAIjB,QACE,oBAAC;EACC,MAAM;EACN,SAAS;EACT,SACE;EAEF,GAAI;EAEH;GACM;EAGd;AACD,IAAI,cAAc"}
1
+ {"version":3,"file":"Cta.js","names":[],"sources":["../../../src/components/atoms/Cta.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from './Button';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ButtonLink } from './ButtonLink';\n\nconst _ctaVariants = cva('', {\n variants: {\n size: { sm: 'sm', md: 'md', lg: 'lg', touch: 'touch' },\n emphasis: { default: 'default', subtle: 'secondary', strong: 'default' },\n },\n defaultVariants: { size: 'touch', emphasis: 'default' },\n});\n\nexport type CtaProps = ButtonProps &\n VariantProps<typeof _ctaVariants> & {\n capture?: (cta: string) => void;\n ctaName?: string;\n as?: 'button' | 'a';\n href?: string;\n children?: React.ReactNode;\n };\n\nexport const Cta = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n CtaProps\n>(\n (\n {\n capture,\n ctaName,\n as = 'button',\n href,\n onClick,\n size = 'touch',\n emphasis = 'default',\n children,\n ...props\n },\n _ref\n ) => {\n const handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n > = (e) => {\n if (ctaName) {\n try {\n if (capture) capture(ctaName);\n } catch {\n /* noop */\n }\n }\n onClick?.(e as unknown as React.MouseEvent<HTMLButtonElement>);\n };\n\n const uiSize = size as ButtonProps['size'];\n const uiVariant = (\n emphasis === 'subtle' ? 'secondary' : 'default'\n ) as ButtonProps['variant'];\n\n if (as === 'a') {\n return (\n <ButtonLink\n size={uiSize}\n variant={uiVariant}\n {...props}\n href={href}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLAnchorElement>\n }\n >\n {children}\n </ButtonLink>\n );\n }\n\n return (\n <Button\n size={uiSize}\n variant={uiVariant}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLButtonElement>\n }\n {...props}\n >\n {children}\n </Button>\n );\n }\n);\nCta.displayName = 'Cta';\n"],"mappings":";;;;;;;AAKqB,IAAI,IAAI;CAC3B,UAAU;EACR,MAAM;GAAE,IAAI;GAAM,IAAI;GAAM,IAAI;GAAM,OAAO;GAAS;EACtD,UAAU;GAAE,SAAS;GAAW,QAAQ;GAAa,QAAQ;GAAW;EACzE;CACD,iBAAiB;EAAE,MAAM;EAAS,UAAU;EAAW;CACxD,CAAC;AAWF,MAAa,MAAM,MAAM,YAKrB,EACE,SACA,SACA,KAAK,UACL,MACA,SACA,OAAO,SACP,WAAW,WACX,UACA,GAAG,SAEL,SACG;CACH,MAAM,eAED,MAAM;AACT,MAAI,QACF,KAAI;AACF,OAAI,QAAS,SAAQ,QAAQ;UACvB;AAIV,YAAU,EAAoD;;CAGhE,MAAM,SAAS;CACf,MAAM,YACJ,aAAa,WAAW,cAAc;AAGxC,KAAI,OAAO,IACT,QACE,oBAAC;EACC,MAAM;EACN,SAAS;EACT,GAAI;EACE;EACN,SACE;EAGD;GACU;AAIjB,QACE,oBAAC;EACC,MAAM;EACN,SAAS;EACT,SACE;EAEF,GAAI;EAEH;GACM;EAGd;AACD,IAAI,cAAc"}
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime13 from "react/jsx-runtime";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import * as class_variance_authority_types2 from "class-variance-authority/types";
5
5
 
@@ -14,25 +14,25 @@ declare function DateChip({
14
14
  ...v
15
15
  }: {
16
16
  value?: string | Date | null;
17
- } & ChipVariants): react_jsx_runtime12.JSX.Element | null;
17
+ } & ChipVariants): react_jsx_runtime13.JSX.Element | null;
18
18
  declare function TimeChip({
19
19
  value,
20
20
  ...v
21
21
  }: {
22
22
  value?: string | Date | null;
23
- } & ChipVariants): react_jsx_runtime12.JSX.Element | null;
23
+ } & ChipVariants): react_jsx_runtime13.JSX.Element | null;
24
24
  declare function PlaceChip({
25
25
  label,
26
26
  ...v
27
27
  }: {
28
28
  label?: React.ReactNode;
29
- } & ChipVariants): react_jsx_runtime12.JSX.Element | null;
29
+ } & ChipVariants): react_jsx_runtime13.JSX.Element | null;
30
30
  declare function DurationChip({
31
31
  minutes,
32
32
  ...v
33
33
  }: {
34
34
  minutes?: number | null;
35
- } & ChipVariants): react_jsx_runtime12.JSX.Element | null;
35
+ } & ChipVariants): react_jsx_runtime13.JSX.Element | null;
36
36
  //#endregion
37
37
  export { DateChip, DurationChip, PlaceChip, TimeChip };
38
38
  //# sourceMappingURL=DataChips.d.ts.map
@@ -1,8 +1,8 @@
1
- import * as react_jsx_runtime4 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
2
2
  import { EmptyStateProps } from "@contractspec/lib.ui-kit-web/ui/empty-state";
3
3
 
4
4
  //#region src/components/atoms/EmptyState.d.ts
5
- declare function EmptyState$1(props: EmptyStateProps): react_jsx_runtime4.JSX.Element;
5
+ declare function EmptyState$1(props: EmptyStateProps): react_jsx_runtime5.JSX.Element;
6
6
  //#endregion
7
7
  export { EmptyState$1 as EmptyState };
8
8
  //# sourceMappingURL=EmptyState.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { KeyboardOptions } from "../../lib/keyboard.js";
2
- import * as react_jsx_runtime2 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
3
3
  import { InputProps } from "@contractspec/lib.ui-kit-web/ui/input";
4
4
 
5
5
  //#region src/components/atoms/Input.d.ts
@@ -30,7 +30,7 @@ declare function Input$1({
30
30
  className,
31
31
  keyboard,
32
32
  ...rest
33
- }: InputProps$1): react_jsx_runtime2.JSX.Element;
33
+ }: InputProps$1): react_jsx_runtime3.JSX.Element;
34
34
  //#endregion
35
35
  export { Input$1 as Input };
36
36
  //# sourceMappingURL=Input.d.ts.map
@@ -1,12 +1,12 @@
1
1
  import { AnchorHTMLAttributes } from "react";
2
- import * as react_jsx_runtime1 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/atoms/Link.d.ts
5
5
  type LinkProps = AnchorHTMLAttributes<HTMLAnchorElement>;
6
6
  declare function Link({
7
7
  children,
8
8
  ...props
9
- }: LinkProps): react_jsx_runtime1.JSX.Element;
9
+ }: LinkProps): react_jsx_runtime2.JSX.Element;
10
10
  //#endregion
11
11
  export { Link };
12
12
  //# sourceMappingURL=Link.d.ts.map
@@ -1,8 +1,8 @@
1
- import * as react_jsx_runtime5 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
2
2
  import { StepperProps } from "@contractspec/lib.ui-kit-web/ui/stepper";
3
3
 
4
4
  //#region src/components/atoms/Stepper.d.ts
5
- declare function Stepper$1(props: StepperProps): react_jsx_runtime5.JSX.Element;
5
+ declare function Stepper$1(props: StepperProps): react_jsx_runtime6.JSX.Element;
6
6
  //#endregion
7
7
  export { Stepper$1 as Stepper };
8
8
  //# sourceMappingURL=Stepper.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { KeyboardOptions } from "../../lib/keyboard.js";
2
- import * as react_jsx_runtime3 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
  import { TextareaProps } from "@contractspec/lib.ui-kit-web/ui/textarea";
4
4
 
5
5
  //#region src/components/atoms/Textarea.d.ts
@@ -32,7 +32,7 @@ declare function Textarea$1({
32
32
  rows,
33
33
  keyboard,
34
34
  ...rest
35
- }: TextareaProps$1): react_jsx_runtime3.JSX.Element;
35
+ }: TextareaProps$1): react_jsx_runtime4.JSX.Element;
36
36
  //#endregion
37
37
  export { Textarea$1 as Textarea };
38
38
  //# sourceMappingURL=Textarea.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime20 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { DataViewSpec } from "@contractspec/lib.contracts/data-views";
4
4
 
5
5
  //#region src/components/data-view/DataViewRenderer.d.ts
@@ -42,7 +42,7 @@ declare function DataViewRenderer({
42
42
  onFilterChange,
43
43
  pagination,
44
44
  onPageChange
45
- }: DataViewRendererProps): react_jsx_runtime20.JSX.Element;
45
+ }: DataViewRendererProps): react_jsx_runtime0.JSX.Element;
46
46
  //#endregion
47
47
  export { DataViewRenderer };
48
48
  //# sourceMappingURL=DataViewRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewRenderer.d.ts","names":[],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;UAqBiB,qBAAA;QACT;UACE;EAFO,IAAA,CAAA,EAGR,MAHQ,CAAA,MAAA,EAAA,OAAqB,CAAA,GAAA,IAAA;EAC9B,SAAA,CAAA,EAAA,MAAA;EACE,aAAA,CAAA,EAAA,CAAA,IAAA,EAGe,MAHf,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAG2C,KAAA,CAAM,SAHjD;EACD,QAAA,CAAA,EAAA,CAAA,IAAA,EAGW,MAHX,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAEgB,UAAA,CAAA,EAAA,CAAA,IAAA,EAEH,MAFG,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAA4B,aAAM,CAAA,EAGzC,KAAA,CAAM,SAHmC;EACvC,UAAA,CAAA,EAGL,KAAA,CAAM,SAHD;EACE,MAAA,CAAA,EAGX,KAAA,CAAM,SAHK;EACJ,MAAM,CAAA,EAAA,MAAA;EACT,cAAM,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACV,OAAM,CAAA,EAKL,MALK,CAAA,MAAA,EAAA,OAAA,CAAA;EAKL,cAAA,CAAA,EAAA,CAAA,OAAA,EACiB,MADjB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EACiB,UAAA,CAAA,EAAA;IAAM,IAAA,EAAA,MAAA;IAWnB,QAAA,EAAA,MAAgB;IAC9B,KAAA,EAAA,MAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;AAEA,iBALc,gBAAA,CAKd;EAAA,IAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,aAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,UAAA;EAAA,MAAA;EAAA,MAAA;EAAA,cAAA;EAAA,OAAA;EAAA,cAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAYC,qBAZD,CAAA,EAYsB,mBAAA,CAAA,GAAA,CAAA,OAZtB"}
1
+ {"version":3,"file":"DataViewRenderer.d.ts","names":[],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;UAqBiB,qBAAA;QACT;UACE;EAFO,IAAA,CAAA,EAGR,MAHQ,CAAA,MAAA,EAAA,OAAqB,CAAA,GAAA,IAAA;EAC9B,SAAA,CAAA,EAAA,MAAA;EACE,aAAA,CAAA,EAAA,CAAA,IAAA,EAGe,MAHf,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAG2C,KAAA,CAAM,SAHjD;EACD,QAAA,CAAA,EAAA,CAAA,IAAA,EAGW,MAHX,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAEgB,UAAA,CAAA,EAAA,CAAA,IAAA,EAEH,MAFG,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAA4B,aAAM,CAAA,EAGzC,KAAA,CAAM,SAHmC;EACvC,UAAA,CAAA,EAGL,KAAA,CAAM,SAHD;EACE,MAAA,CAAA,EAGX,KAAA,CAAM,SAHK;EACJ,MAAM,CAAA,EAAA,MAAA;EACT,cAAM,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACV,OAAM,CAAA,EAKL,MALK,CAAA,MAAA,EAAA,OAAA,CAAA;EAKL,cAAA,CAAA,EAAA,CAAA,OAAA,EACiB,MADjB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EACiB,UAAA,CAAA,EAAA;IAAM,IAAA,EAAA,MAAA;IAWnB,QAAA,EAAA,MAAgB;IAC9B,KAAA,EAAA,MAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;AAEA,iBALc,gBAAA,CAKd;EAAA,IAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,aAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,UAAA;EAAA,MAAA;EAAA,MAAA;EAAA,cAAA;EAAA,OAAA;EAAA,cAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAYC,qBAZD,CAAA,EAYsB,kBAAA,CAAA,GAAA,CAAA,OAZtB"}
@@ -1,5 +1,5 @@
1
1
  import { CodeBlockProps } from "./types.js";
2
- import * as react_jsx_runtime111 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime115 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/molecules/CodeBlock/CodeBlock.d.ts
5
5
  declare function CodeBlock({
@@ -8,9 +8,10 @@ declare function CodeBlock({
8
8
  filename,
9
9
  showLineNumbers,
10
10
  showCopyButton,
11
+ onCopy,
11
12
  className,
12
13
  ...props
13
- }: CodeBlockProps): react_jsx_runtime111.JSX.Element;
14
+ }: CodeBlockProps): react_jsx_runtime115.JSX.Element;
14
15
  //#endregion
15
16
  export { CodeBlock };
16
17
  //# sourceMappingURL=CodeBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":[],"mappings":";;;;iBAOgB,SAAA;;;;;;;;GAQb,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"CodeBlock.d.ts","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":[],"mappings":";;;;iBAOgB,SAAA;;;;;;;;;GASb,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
@@ -6,8 +6,11 @@ import { useEffect, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
 
8
8
  //#region src/components/molecules/CodeBlock/CodeBlock.tsx
9
- function CodeBlock({ code, language = "typescript", filename, showLineNumbers = false, showCopyButton = true, className, ...props }) {
9
+ function CodeBlock({ code, language = "typescript", filename, showLineNumbers = false, showCopyButton = true, onCopy, className, ...props }) {
10
10
  const [highlightedHtml, setHighlightedHtml] = useState(null);
11
+ const handleCopy = () => {
12
+ onCopy?.();
13
+ };
11
14
  useEffect(() => {
12
15
  let mounted = true;
13
16
  async function highlight() {
@@ -37,7 +40,8 @@ function CodeBlock({ code, language = "typescript", filename, showLineNumbers =
37
40
  className: "relative",
38
41
  children: [showCopyButton && /* @__PURE__ */ jsx(CopyButton, {
39
42
  value: code,
40
- className: "absolute top-3 right-3"
43
+ className: "absolute top-3 right-3",
44
+ onCopy: handleCopy
41
45
  }), highlightedHtml ? /* @__PURE__ */ jsx("div", {
42
46
  className: cn("overflow-x-auto p-4 font-mono text-[13px] leading-6", "[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0", "[&_code]:!bg-transparent", showLineNumbers && "line-numbers"),
43
47
  dangerouslySetInnerHTML: { __html: highlightedHtml }
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.js","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport type { CodeBlockProps } from './types';\n\nexport function CodeBlock({\n code,\n language = 'typescript',\n filename,\n showLineNumbers = false,\n showCopyButton = true,\n className,\n ...props\n}: CodeBlockProps) {\n const [highlightedHtml, setHighlightedHtml] = useState<string | null>(null);\n\n useEffect(() => {\n let mounted = true;\n\n async function highlight() {\n try {\n const { codeToHtml } = await import('shiki');\n const html = await codeToHtml(code, {\n lang: language === 'text' ? 'plaintext' : language,\n // theme: 'github-dark-dimmed',\n theme: 'vitesse-dark',\n });\n if (mounted) {\n setHighlightedHtml(html);\n }\n } catch (err) {\n console.error('Failed to highlight code:', err);\n }\n }\n\n highlight();\n\n return () => {\n mounted = false;\n };\n }, [code, language]);\n\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n {filename && (\n <div className=\"flex items-center justify-between border-b border-zinc-800 bg-zinc-900/50 px-4 py-2 text-xs text-zinc-400\">\n <span>{filename}</span>\n </div>\n )}\n <div className=\"relative\">\n {showCopyButton && (\n <CopyButton value={code} className=\"absolute top-3 right-3\" />\n )}\n {highlightedHtml ? (\n <div\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6',\n '[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0',\n '[&_code]:!bg-transparent',\n showLineNumbers && 'line-numbers'\n )}\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n ) : (\n <pre\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6 text-zinc-300',\n showLineNumbers && 'line-numbers'\n )}\n >\n <code>{code}</code>\n </pre>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,UAAU,EACxB,MACA,WAAW,cACX,UACA,kBAAkB,OAClB,iBAAiB,MACjB,WACA,GAAG,SACc;CACjB,MAAM,CAAC,iBAAiB,sBAAsB,SAAwB,KAAK;AAE3E,iBAAgB;EACd,IAAI,UAAU;EAEd,eAAe,YAAY;AACzB,OAAI;IACF,MAAM,EAAE,eAAe,MAAM,OAAO;IACpC,MAAM,OAAO,MAAM,WAAW,MAAM;KAClC,MAAM,aAAa,SAAS,cAAc;KAE1C,OAAO;KACR,CAAC;AACF,QAAI,QACF,oBAAmB,KAAK;YAEnB,KAAK;AACZ,YAAQ,MAAM,6BAA6B,IAAI;;;AAInD,aAAW;AAEX,eAAa;AACX,aAAU;;IAEX,CAAC,MAAM,SAAS,CAAC;AAEpB,QACE,qBAAC;EACC,WAAW,GACT,0EACA,UACD;EACD,GAAI;aAEH,YACC,oBAAC;GAAI,WAAU;aACb,oBAAC,oBAAM,WAAgB;IACnB,EAER,qBAAC;GAAI,WAAU;cACZ,kBACC,oBAAC;IAAW,OAAO;IAAM,WAAU;KAA2B,EAE/D,kBACC,oBAAC;IACC,WAAW,GACT,uDACA,qDACA,4BACA,mBAAmB,eACpB;IACD,yBAAyB,EAAE,QAAQ,iBAAiB;KACpD,GAEF,oBAAC;IACC,WAAW,GACT,qEACA,mBAAmB,eACpB;cAED,oBAAC,oBAAM,OAAY;KACf;IAEJ;GACF"}
1
+ {"version":3,"file":"CodeBlock.js","names":[],"sources":["../../../../src/components/molecules/CodeBlock/CodeBlock.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport type { CodeBlockProps } from './types';\n\nexport function CodeBlock({\n code,\n language = 'typescript',\n filename,\n showLineNumbers = false,\n showCopyButton = true,\n onCopy,\n className,\n ...props\n}: CodeBlockProps) {\n const [highlightedHtml, setHighlightedHtml] = useState<string | null>(null);\n\n const handleCopy = () => {\n onCopy?.();\n };\n\n useEffect(() => {\n let mounted = true;\n\n async function highlight() {\n try {\n const { codeToHtml } = await import('shiki');\n const html = await codeToHtml(code, {\n lang: language === 'text' ? 'plaintext' : language,\n // theme: 'github-dark-dimmed',\n theme: 'vitesse-dark',\n });\n if (mounted) {\n setHighlightedHtml(html);\n }\n } catch (err) {\n console.error('Failed to highlight code:', err);\n }\n }\n\n highlight();\n\n return () => {\n mounted = false;\n };\n }, [code, language]);\n\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n {filename && (\n <div className=\"flex items-center justify-between border-b border-zinc-800 bg-zinc-900/50 px-4 py-2 text-xs text-zinc-400\">\n <span>{filename}</span>\n </div>\n )}\n <div className=\"relative\">\n {showCopyButton && (\n <CopyButton\n value={code}\n className=\"absolute top-3 right-3\"\n onCopy={handleCopy}\n />\n )}\n {highlightedHtml ? (\n <div\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6',\n '[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0',\n '[&_code]:!bg-transparent',\n showLineNumbers && 'line-numbers'\n )}\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n ) : (\n <pre\n className={cn(\n 'overflow-x-auto p-4 font-mono text-[13px] leading-6 text-zinc-300',\n showLineNumbers && 'line-numbers'\n )}\n >\n <code>{code}</code>\n </pre>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,UAAU,EACxB,MACA,WAAW,cACX,UACA,kBAAkB,OAClB,iBAAiB,MACjB,QACA,WACA,GAAG,SACc;CACjB,MAAM,CAAC,iBAAiB,sBAAsB,SAAwB,KAAK;CAE3E,MAAM,mBAAmB;AACvB,YAAU;;AAGZ,iBAAgB;EACd,IAAI,UAAU;EAEd,eAAe,YAAY;AACzB,OAAI;IACF,MAAM,EAAE,eAAe,MAAM,OAAO;IACpC,MAAM,OAAO,MAAM,WAAW,MAAM;KAClC,MAAM,aAAa,SAAS,cAAc;KAE1C,OAAO;KACR,CAAC;AACF,QAAI,QACF,oBAAmB,KAAK;YAEnB,KAAK;AACZ,YAAQ,MAAM,6BAA6B,IAAI;;;AAInD,aAAW;AAEX,eAAa;AACX,aAAU;;IAEX,CAAC,MAAM,SAAS,CAAC;AAEpB,QACE,qBAAC;EACC,WAAW,GACT,0EACA,UACD;EACD,GAAI;aAEH,YACC,oBAAC;GAAI,WAAU;aACb,oBAAC,oBAAM,WAAgB;IACnB,EAER,qBAAC;GAAI,WAAU;cACZ,kBACC,oBAAC;IACC,OAAO;IACP,WAAU;IACV,QAAQ;KACR,EAEH,kBACC,oBAAC;IACC,WAAW,GACT,uDACA,qDACA,4BACA,mBAAmB,eACpB;IACD,yBAAyB,EAAE,QAAQ,iBAAiB;KACpD,GAEF,oBAAC;IACC,WAAW,GACT,qEACA,mBAAmB,eACpB;cAED,oBAAC,oBAAM,OAAY;KACf;IAEJ;GACF"}
@@ -13,6 +13,8 @@ interface CodeBlockProps extends HTMLAttributes<HTMLDivElement> {
13
13
  showLineNumbers?: boolean;
14
14
  /** Whether to show the copy button */
15
15
  showCopyButton?: boolean;
16
+ /** Optional callback when copy succeeds */
17
+ onCopy?: () => void;
16
18
  }
17
19
  //#endregion
18
20
  export { CodeBlockProps, CodeLanguage };
@@ -1,13 +1,14 @@
1
1
  import { CommandTabsProps } from "./types.js";
2
- import * as react_jsx_runtime113 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime117 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/molecules/CommandTabs/CommandTabs.d.ts
5
5
  declare function CommandTabs({
6
6
  commands,
7
7
  initialPreference,
8
8
  className,
9
+ onCopy,
9
10
  ...props
10
- }: CommandTabsProps): react_jsx_runtime113.JSX.Element | null;
11
+ }: CommandTabsProps): react_jsx_runtime117.JSX.Element | null;
11
12
  //#endregion
12
13
  export { CommandTabs };
13
14
  //# sourceMappingURL=CommandTabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandTabs.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":[],"mappings":";;;;iBAUgB,WAAA;;;;;GAKb,mBAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"CommandTabs.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":[],"mappings":";;;;iBAUgB,WAAA;;;;;;GAMb,mBAAgB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -8,7 +8,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
9
9
  //#region src/components/molecules/CommandTabs/CommandTabs.tsx
10
10
  const STORAGE_KEY = "package-manager-preference";
11
- function CommandTabs({ commands, initialPreference = "bun", className, ...props }) {
11
+ function CommandTabs({ commands, initialPreference = "bun", className, onCopy, ...props }) {
12
12
  const context = usePackageManager();
13
13
  const [localSelected, setLocalSelected] = useState(() => {
14
14
  return initialPreference;
@@ -34,6 +34,12 @@ function CommandTabs({ commands, initialPreference = "bun", className, ...props
34
34
  if (!effectiveSelected) return null;
35
35
  const currentCommand = commands[effectiveSelected];
36
36
  if (!currentCommand) return null;
37
+ const handleCopy = () => {
38
+ onCopy?.({
39
+ command: currentCommand,
40
+ packageManager: effectiveSelected
41
+ });
42
+ };
37
43
  return /* @__PURE__ */ jsxs("div", {
38
44
  className: cn("relative rounded-lg border border-zinc-800 bg-zinc-950", className),
39
45
  ...props,
@@ -54,7 +60,8 @@ function CommandTabs({ commands, initialPreference = "bun", className, ...props
54
60
  role: "tabpanel",
55
61
  children: [/* @__PURE__ */ jsx(CopyButton, {
56
62
  value: currentCommand,
57
- className: "absolute top-3 right-3"
63
+ className: "absolute top-3 right-3",
64
+ onCopy: handleCopy
58
65
  }), /* @__PURE__ */ jsx("pre", {
59
66
  className: "overflow-x-auto pr-10 font-mono text-[13px] leading-6 text-white",
60
67
  children: /* @__PURE__ */ jsx("code", { children: currentCommand })
@@ -1 +1 @@
1
- {"version":3,"file":"CommandTabs.js","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport { usePackageManager } from '../../providers/PackageManagerProvider';\nimport type { CommandTabsProps, PackageManager } from './types';\n\nconst STORAGE_KEY = 'package-manager-preference';\n\nexport function CommandTabs({\n commands,\n initialPreference = 'bun',\n className,\n ...props\n}: CommandTabsProps) {\n const context = usePackageManager();\n\n const [localSelected, setLocalSelected] = useState<PackageManager>(() => {\n return initialPreference;\n });\n\n // Use context if available, otherwise use local state\n const selected = context?.preference ?? localSelected;\n const setSelected = context?.setPreference ?? setLocalSelected;\n\n // Hydrate preference from localStorage (only if not using context)\n useEffect(() => {\n if (context) return; // Context handles its own persistence\n\n try {\n const saved = localStorage.getItem(STORAGE_KEY) as PackageManager | null;\n if (saved && commands[saved]) {\n setLocalSelected(saved);\n }\n } catch {\n // localStorage not available\n }\n }, [commands, context]);\n\n const handleSelect = (pm: PackageManager) => {\n setSelected(pm);\n\n // Only persist locally if not using context\n if (!context) {\n try {\n localStorage.setItem(STORAGE_KEY, pm);\n } catch {\n // localStorage not available\n }\n }\n };\n\n // Get available package managers from commands\n const packageManagers = Object.keys(commands) as PackageManager[];\n\n // Early return if no commands available\n if (packageManagers.length === 0) return null;\n\n // Use selected if available, otherwise fallback to first available\n const effectiveSelected = commands[selected] ? selected : packageManagers[0];\n if (!effectiveSelected) return null;\n const currentCommand = commands[effectiveSelected];\n if (!currentCommand) return null;\n\n return (\n <div\n className={cn(\n 'relative rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n <div\n className=\"flex items-center border-b border-zinc-800 bg-zinc-900/50 px-2 pt-2\"\n role=\"tablist\"\n aria-label=\"Package manager selection\"\n >\n {packageManagers.map((pm) => (\n <button\n key={pm}\n type=\"button\"\n role=\"tab\"\n aria-selected={effectiveSelected === pm}\n onClick={() => handleSelect(pm)}\n className={cn(\n 'rounded-t-md border-t border-r border-l border-transparent px-4 py-2 text-xs font-medium text-zinc-400',\n 'transition-colors hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-1 focus:ring-offset-zinc-900 focus:outline-none',\n effectiveSelected === pm &&\n 'border-zinc-800 bg-zinc-950 text-zinc-100'\n )}\n >\n {pm}\n </button>\n ))}\n </div>\n <div className=\"relative p-4\" role=\"tabpanel\">\n <CopyButton value={currentCommand} className=\"absolute top-3 right-3\" />\n <pre className=\"overflow-x-auto pr-10 font-mono text-[13px] leading-6 text-white\">\n <code>{currentCommand}</code>\n </pre>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,cAAc;AAEpB,SAAgB,YAAY,EAC1B,UACA,oBAAoB,OACpB,WACA,GAAG,SACgB;CACnB,MAAM,UAAU,mBAAmB;CAEnC,MAAM,CAAC,eAAe,oBAAoB,eAA+B;AACvE,SAAO;GACP;CAGF,MAAM,WAAW,SAAS,cAAc;CACxC,MAAM,cAAc,SAAS,iBAAiB;AAG9C,iBAAgB;AACd,MAAI,QAAS;AAEb,MAAI;GACF,MAAM,QAAQ,aAAa,QAAQ,YAAY;AAC/C,OAAI,SAAS,SAAS,OACpB,kBAAiB,MAAM;UAEnB;IAGP,CAAC,UAAU,QAAQ,CAAC;CAEvB,MAAM,gBAAgB,OAAuB;AAC3C,cAAY,GAAG;AAGf,MAAI,CAAC,QACH,KAAI;AACF,gBAAa,QAAQ,aAAa,GAAG;UAC/B;;CAOZ,MAAM,kBAAkB,OAAO,KAAK,SAAS;AAG7C,KAAI,gBAAgB,WAAW,EAAG,QAAO;CAGzC,MAAM,oBAAoB,SAAS,YAAY,WAAW,gBAAgB;AAC1E,KAAI,CAAC,kBAAmB,QAAO;CAC/B,MAAM,iBAAiB,SAAS;AAChC,KAAI,CAAC,eAAgB,QAAO;AAE5B,QACE,qBAAC;EACC,WAAW,GACT,0DACA,UACD;EACD,GAAI;aAEJ,oBAAC;GACC,WAAU;GACV,MAAK;GACL,cAAW;aAEV,gBAAgB,KAAK,OACpB,oBAAC;IAEC,MAAK;IACL,MAAK;IACL,iBAAe,sBAAsB;IACrC,eAAe,aAAa,GAAG;IAC/B,WAAW,GACT,0GACA,yCACA,sGACA,sBAAsB,MACpB,4CACH;cAEA;MAbI,GAcE,CACT;IACE,EACN,qBAAC;GAAI,WAAU;GAAe,MAAK;cACjC,oBAAC;IAAW,OAAO;IAAgB,WAAU;KAA2B,EACxE,oBAAC;IAAI,WAAU;cACb,oBAAC,oBAAM,iBAAsB;KACzB;IACF;GACF"}
1
+ {"version":3,"file":"CommandTabs.js","names":[],"sources":["../../../../src/components/molecules/CommandTabs/CommandTabs.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { useEffect, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport { usePackageManager } from '../../providers/PackageManagerProvider';\nimport type { CommandTabsProps, PackageManager } from './types';\n\nconst STORAGE_KEY = 'package-manager-preference';\n\nexport function CommandTabs({\n commands,\n initialPreference = 'bun',\n className,\n onCopy,\n ...props\n}: CommandTabsProps) {\n const context = usePackageManager();\n\n const [localSelected, setLocalSelected] = useState<PackageManager>(() => {\n return initialPreference;\n });\n\n // Use context if available, otherwise use local state\n const selected = context?.preference ?? localSelected;\n const setSelected = context?.setPreference ?? setLocalSelected;\n\n // Hydrate preference from localStorage (only if not using context)\n useEffect(() => {\n if (context) return; // Context handles its own persistence\n\n try {\n const saved = localStorage.getItem(STORAGE_KEY) as PackageManager | null;\n if (saved && commands[saved]) {\n setLocalSelected(saved);\n }\n } catch {\n // localStorage not available\n }\n }, [commands, context]);\n\n const handleSelect = (pm: PackageManager) => {\n setSelected(pm);\n\n // Only persist locally if not using context\n if (!context) {\n try {\n localStorage.setItem(STORAGE_KEY, pm);\n } catch {\n // localStorage not available\n }\n }\n };\n\n // Get available package managers from commands\n const packageManagers = Object.keys(commands) as PackageManager[];\n\n // Early return if no commands available\n if (packageManagers.length === 0) return null;\n\n // Use selected if available, otherwise fallback to first available\n const effectiveSelected = commands[selected] ? selected : packageManagers[0];\n if (!effectiveSelected) return null;\n const currentCommand = commands[effectiveSelected];\n if (!currentCommand) return null;\n\n const handleCopy = () => {\n onCopy?.({\n command: currentCommand,\n packageManager: effectiveSelected,\n });\n };\n\n return (\n <div\n className={cn(\n 'relative rounded-lg border border-zinc-800 bg-zinc-950',\n className\n )}\n {...props}\n >\n <div\n className=\"flex items-center border-b border-zinc-800 bg-zinc-900/50 px-2 pt-2\"\n role=\"tablist\"\n aria-label=\"Package manager selection\"\n >\n {packageManagers.map((pm) => (\n <button\n key={pm}\n type=\"button\"\n role=\"tab\"\n aria-selected={effectiveSelected === pm}\n onClick={() => handleSelect(pm)}\n className={cn(\n 'rounded-t-md border-t border-r border-l border-transparent px-4 py-2 text-xs font-medium text-zinc-400',\n 'transition-colors hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-1 focus:ring-offset-zinc-900 focus:outline-none',\n effectiveSelected === pm &&\n 'border-zinc-800 bg-zinc-950 text-zinc-100'\n )}\n >\n {pm}\n </button>\n ))}\n </div>\n <div className=\"relative p-4\" role=\"tabpanel\">\n <CopyButton\n value={currentCommand}\n className=\"absolute top-3 right-3\"\n onCopy={handleCopy}\n />\n <pre className=\"overflow-x-auto pr-10 font-mono text-[13px] leading-6 text-white\">\n <code>{currentCommand}</code>\n </pre>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAQA,MAAM,cAAc;AAEpB,SAAgB,YAAY,EAC1B,UACA,oBAAoB,OACpB,WACA,QACA,GAAG,SACgB;CACnB,MAAM,UAAU,mBAAmB;CAEnC,MAAM,CAAC,eAAe,oBAAoB,eAA+B;AACvE,SAAO;GACP;CAGF,MAAM,WAAW,SAAS,cAAc;CACxC,MAAM,cAAc,SAAS,iBAAiB;AAG9C,iBAAgB;AACd,MAAI,QAAS;AAEb,MAAI;GACF,MAAM,QAAQ,aAAa,QAAQ,YAAY;AAC/C,OAAI,SAAS,SAAS,OACpB,kBAAiB,MAAM;UAEnB;IAGP,CAAC,UAAU,QAAQ,CAAC;CAEvB,MAAM,gBAAgB,OAAuB;AAC3C,cAAY,GAAG;AAGf,MAAI,CAAC,QACH,KAAI;AACF,gBAAa,QAAQ,aAAa,GAAG;UAC/B;;CAOZ,MAAM,kBAAkB,OAAO,KAAK,SAAS;AAG7C,KAAI,gBAAgB,WAAW,EAAG,QAAO;CAGzC,MAAM,oBAAoB,SAAS,YAAY,WAAW,gBAAgB;AAC1E,KAAI,CAAC,kBAAmB,QAAO;CAC/B,MAAM,iBAAiB,SAAS;AAChC,KAAI,CAAC,eAAgB,QAAO;CAE5B,MAAM,mBAAmB;AACvB,WAAS;GACP,SAAS;GACT,gBAAgB;GACjB,CAAC;;AAGJ,QACE,qBAAC;EACC,WAAW,GACT,0DACA,UACD;EACD,GAAI;aAEJ,oBAAC;GACC,WAAU;GACV,MAAK;GACL,cAAW;aAEV,gBAAgB,KAAK,OACpB,oBAAC;IAEC,MAAK;IACL,MAAK;IACL,iBAAe,sBAAsB;IACrC,eAAe,aAAa,GAAG;IAC/B,WAAW,GACT,0GACA,yCACA,sGACA,sBAAsB,MACpB,4CACH;cAEA;MAbI,GAcE,CACT;IACE,EACN,qBAAC;GAAI,WAAU;GAAe,MAAK;cACjC,oBAAC;IACC,OAAO;IACP,WAAU;IACV,QAAQ;KACR,EACF,oBAAC;IAAI,WAAU;cACb,oBAAC,oBAAM,iBAAsB;KACzB;IACF;GACF"}
@@ -2,11 +2,16 @@ import { HTMLAttributes } from "react";
2
2
 
3
3
  //#region src/components/molecules/CommandTabs/types.d.ts
4
4
  type PackageManager = 'bun' | 'npm' | 'yarn' | 'pnpm';
5
- interface CommandTabsProps extends HTMLAttributes<HTMLDivElement> {
5
+ interface CommandTabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCopy'> {
6
6
  /** Commands for each package manager */
7
7
  commands: Partial<Record<PackageManager, string>>;
8
8
  /** Initial package manager preference (overridden by context if available) */
9
9
  initialPreference?: PackageManager;
10
+ /** Optional callback when copy succeeds */
11
+ onCopy?: (data: {
12
+ command: string;
13
+ packageManager: PackageManager;
14
+ }) => void;
10
15
  }
11
16
  interface PackageManagerContextValue {
12
17
  /** Current package manager preference */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,cAAA;UAEK,gBAAA,SAAyB,eAAe;EAF7C;EAEK,QAAA,EAEL,OAFK,CAEG,MAFc,CAEP,cAFO,EAAA,MAAA,CAAA,CAAA;EAAuB;EAE9B,iBAAA,CAAA,EAEL,cAFK;;AAAf,UAKK,0BAAA,CALL;EAEU;EAJoB,UAAA,EAS5B,cAT4B;EAAc;EAOvC,aAAA,EAAA,CAAA,EAAA,EAIK,cAJqB,EAAA,GAAA,IAE7B"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/components/molecules/CommandTabs/types.ts"],"sourcesContent":[],"mappings":";;;KAEY,cAAA;UAEK,gBAAA,SAAyB,KACxC,eAAe;EAHL;EAEK,QAAA,EAKL,OALK,CAKG,MALc,CAKP,cALO,EAAA,MAAA,CAAA,CAAA;EACjB;EAAf,iBAAA,CAAA,EAMoB,cANpB;EAIyB;EAAP,MAAA,CAAA,EAAA,CAAA,IAAA,EAAA;IAAR,OAAA,EAAA,MAAA;IAEU,cAAA,EAE+B,cAF/B;EAE+B,CAAA,EAAA,GAAA,IAAA;;AATP,UAY7B,0BAAA,CAZ6B;EAY7B;cAEH;;sBAEQ"}
@@ -1,5 +1,5 @@
1
1
  import { CopyButtonProps } from "./types.js";
2
- import * as react_jsx_runtime112 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime116 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/molecules/CopyButton/CopyButton.d.ts
5
5
  declare function CopyButton({
@@ -7,7 +7,7 @@ declare function CopyButton({
7
7
  onCopy,
8
8
  className,
9
9
  ...props
10
- }: CopyButtonProps): react_jsx_runtime112.JSX.Element;
10
+ }: CopyButtonProps): react_jsx_runtime116.JSX.Element;
11
11
  //#endregion
12
12
  export { CopyButton };
13
13
  //# sourceMappingURL=CopyButton.d.ts.map
@@ -20,8 +20,8 @@ function CopyButton({ value, onCopy, className, ...props }) {
20
20
  await navigator.clipboard.writeText(value);
21
21
  setHasCopied(true);
22
22
  onCopy?.();
23
- } catch (err) {
24
- console.error("Failed to copy to clipboard:", err);
23
+ } catch {
24
+ return;
25
25
  }
26
26
  }, [value, onCopy]);
27
27
  return /* @__PURE__ */ jsxs("button", {
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.js","names":[],"sources":["../../../../src/components/molecules/CopyButton/CopyButton.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { Check, Copy } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\nimport type { CopyButtonProps } from './types';\n\nexport function CopyButton({\n value,\n onCopy,\n className,\n ...props\n}: CopyButtonProps) {\n const [hasCopied, setHasCopied] = useState(false);\n\n useEffect(() => {\n if (!hasCopied) return;\n const timeout = setTimeout(() => {\n setHasCopied(false);\n }, 2000);\n return () => clearTimeout(timeout);\n }, [hasCopied]);\n\n const copyToClipboard = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(value);\n setHasCopied(true);\n onCopy?.();\n } catch (err) {\n console.error('Failed to copy to clipboard:', err);\n }\n }, [value, onCopy]);\n\n return (\n <button\n type=\"button\"\n className={cn(\n 'relative z-10 inline-flex h-6 w-6 items-center justify-center rounded-md',\n 'border border-zinc-700 bg-zinc-800 text-zinc-400',\n 'transition-all hover:bg-zinc-700 hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none',\n className\n )}\n onClick={copyToClipboard}\n aria-label={hasCopied ? 'Copied' : 'Copy to clipboard'}\n {...props}\n >\n <span className=\"sr-only\">{hasCopied ? 'Copied' : 'Copy'}</span>\n {hasCopied ? <Check className=\"h-3 w-3\" /> : <Copy className=\"h-3 w-3\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,WAAW,EACzB,OACA,QACA,WACA,GAAG,SACe;CAClB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,iBAAgB;AACd,MAAI,CAAC,UAAW;EAChB,MAAM,UAAU,iBAAiB;AAC/B,gBAAa,MAAM;KAClB,IAAK;AACR,eAAa,aAAa,QAAQ;IACjC,CAAC,UAAU,CAAC;CAEf,MAAM,kBAAkB,YAAY,YAAY;AAC9C,MAAI;AACF,SAAM,UAAU,UAAU,UAAU,MAAM;AAC1C,gBAAa,KAAK;AAClB,aAAU;WACH,KAAK;AACZ,WAAQ,MAAM,gCAAgC,IAAI;;IAEnD,CAAC,OAAO,OAAO,CAAC;AAEnB,QACE,qBAAC;EACC,MAAK;EACL,WAAW,GACT,4EACA,oDACA,wDACA,sGACA,UACD;EACD,SAAS;EACT,cAAY,YAAY,WAAW;EACnC,GAAI;aAEJ,oBAAC;GAAK,WAAU;aAAW,YAAY,WAAW;IAAc,EAC/D,YAAY,oBAAC,SAAM,WAAU,YAAY,GAAG,oBAAC,QAAK,WAAU,YAAY;GAClE"}
1
+ {"version":3,"file":"CopyButton.js","names":[],"sources":["../../../../src/components/molecules/CopyButton/CopyButton.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '../../../lib/utils';\nimport { Check, Copy } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\nimport type { CopyButtonProps } from './types';\n\nexport function CopyButton({\n value,\n onCopy,\n className,\n ...props\n}: CopyButtonProps) {\n const [hasCopied, setHasCopied] = useState(false);\n\n useEffect(() => {\n if (!hasCopied) return;\n const timeout = setTimeout(() => {\n setHasCopied(false);\n }, 2000);\n return () => clearTimeout(timeout);\n }, [hasCopied]);\n\n const copyToClipboard = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(value);\n setHasCopied(true);\n onCopy?.();\n } catch {\n return;\n }\n }, [value, onCopy]);\n\n return (\n <button\n type=\"button\"\n className={cn(\n 'relative z-10 inline-flex h-6 w-6 items-center justify-center rounded-md',\n 'border border-zinc-700 bg-zinc-800 text-zinc-400',\n 'transition-all hover:bg-zinc-700 hover:text-zinc-100',\n 'focus:ring-2 focus:ring-zinc-600 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none',\n className\n )}\n onClick={copyToClipboard}\n aria-label={hasCopied ? 'Copied' : 'Copy to clipboard'}\n {...props}\n >\n <span className=\"sr-only\">{hasCopied ? 'Copied' : 'Copy'}</span>\n {hasCopied ? <Check className=\"h-3 w-3\" /> : <Copy className=\"h-3 w-3\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,WAAW,EACzB,OACA,QACA,WACA,GAAG,SACe;CAClB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,iBAAgB;AACd,MAAI,CAAC,UAAW;EAChB,MAAM,UAAU,iBAAiB;AAC/B,gBAAa,MAAM;KAClB,IAAK;AACR,eAAa,aAAa,QAAQ;IACjC,CAAC,UAAU,CAAC;CAEf,MAAM,kBAAkB,YAAY,YAAY;AAC9C,MAAI;AACF,SAAM,UAAU,UAAU,UAAU,MAAM;AAC1C,gBAAa,KAAK;AAClB,aAAU;UACJ;AACN;;IAED,CAAC,OAAO,OAAO,CAAC;AAEnB,QACE,qBAAC;EACC,MAAK;EACL,WAAW,GACT,4EACA,oDACA,wDACA,sGACA,UACD;EACD,SAAS;EACT,cAAY,YAAY,WAAW;EACnC,GAAI;aAEJ,oBAAC;GAAK,WAAU;aAAW,YAAY,WAAW;IAAc,EAC/D,YAAY,oBAAC,SAAM,WAAU,YAAY,GAAG,oBAAC,QAAK,WAAU,YAAY;GAClE"}
@@ -6,33 +6,51 @@ import * as class_variance_authority_types7 from "class-variance-authority/types
6
6
 
7
7
  //#region src/components/molecules/EntityCard.d.ts
8
8
  declare const entityCardVariants: (props?: ({
9
- emphasis?: "strong" | "default" | "subtle" | null | undefined;
9
+ emphasis?: "default" | "strong" | "subtle" | "accentGradient" | null | undefined;
10
10
  density?: "compact" | "comfortable" | null | undefined;
11
+ interactive?: boolean | null | undefined;
11
12
  } & class_variance_authority_types7.ClassProp) | undefined) => string;
13
+ type EntityCardIconTone = 'default' | 'primary' | 'success' | 'warning' | 'info' | 'danger';
12
14
  type EntityCardProps = React.ComponentProps<typeof Card> & VariantProps<typeof entityCardVariants> & {
13
15
  cardTitle: React.ReactNode;
14
16
  cardSubtitle?: React.ReactNode;
17
+ /** Icon element to display on the left */
18
+ icon?: React.ReactNode;
19
+ /** Icon container styling */
20
+ iconTone?: EntityCardIconTone;
21
+ iconSize?: 'sm' | 'md' | 'lg';
15
22
  chips?: React.ReactNode;
16
23
  meta?: React.ReactNode;
17
24
  footer?: React.ReactNode;
18
25
  href?: string;
19
26
  contentClassName?: string;
20
27
  preview?: React.ReactNode;
28
+ /** Expandable content section */
29
+ expandableContent?: React.ReactNode;
30
+ /** Default expanded state */
31
+ defaultExpanded?: boolean;
21
32
  };
22
33
  declare function EntityCard({
23
34
  cardTitle,
24
35
  cardSubtitle,
36
+ icon,
37
+ iconTone,
38
+ iconSize,
25
39
  chips,
26
40
  meta,
27
41
  footer,
28
42
  emphasis,
29
43
  density,
44
+ interactive,
30
45
  className,
31
46
  contentClassName,
32
47
  href,
33
48
  preview,
49
+ expandableContent,
50
+ defaultExpanded,
51
+ onClick,
34
52
  ...cardProps
35
53
  }: EntityCardProps): react_jsx_runtime47.JSX.Element;
36
54
  //#endregion
37
- export { EntityCard };
55
+ export { EntityCard, EntityCardIconTone, EntityCardProps };
38
56
  //# sourceMappingURL=EntityCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCard.d.ts","names":[],"sources":["../../../src/components/molecules/EntityCard.tsx"],"sourcesContent":[],"mappings":";;;;;;;cAOM;;;IAaJ,+BAAA,CAAA;AAbI,KAeM,eAAA,GAAkB,KAAA,CAAM,cAFlC,CAAA,OAEwD,IAFxD,CAAA,GAGA,YAHA,CAAA,OAGoB,kBAHpB,CAAA,GAAA;EAEU,SAAA,EAEG,KAAA,CAAM,SAFM;EAA+B,YAAA,CAAA,EAGvC,KAAA,CAAM,SAHiC;EAA5B,KAAM,CAAA,EAIxB,KAAA,CAAM,SAJkB;EACd,IAAA,CAAA,EAIX,KAAA,CAAM,SAJK;EAApB,MAAA,CAAA,EAKW,KAAA,CAAM,SALjB;EACa,IAAM,CAAA,EAAA,MAAA;EACF,gBAAM,CAAA,EAAA,MAAA;EACb,OAAM,CAAA,EAKJ,KAAA,CAAM,SALF;CACP;AACQ,iBAMH,UAAA,CANG;EAAA,SAAA;EAAA,YAAA;EAAA,KAAA;EAAA,IAAA;EAAA,MAAA;EAAA,QAAA;EAAA,OAAA;EAAA,SAAA;EAAA,gBAAA;EAAA,IAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAmBhB,eAnBgB,CAAA,EAmBD,mBAAA,CAAA,GAAA,CAAA,OAnBC"}
1
+ {"version":3,"file":"EntityCard.d.ts","names":[],"sources":["../../../src/components/molecules/EntityCard.tsx"],"sourcesContent":[],"mappings":";;;;;;;cAQM,0BA0BL;;;;AA9BiE,CAAA,GA8BjE,+BAAA,CAAA,SAAA,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;AAwBW,KAAA,kBAAA,GAAkB,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,MAAA,GAAA,QAAA;AAQlB,KAAA,eAAA,GAAkB,KAAA,CAAM,cAAT,CAAA,OAA+B,IAA/B,CAAA,GACzB,YADyB,CAAA,OACL,kBADK,CAAA,GAAA;EAA+B,SAAA,EAE3C,KAAA,CAAM,SAFqC;EAA5B,YAAM,CAAA,EAGjB,KAAA,CAAM,SAHW;EACd;EAApB,IAAA,CAAA,EAIS,KAAA,CAAM,SAJf;EACa;EACI,QAAM,CAAA,EAIV,kBAJU;EAEd,QAAM,CAAA,EAAA,IAAA,GAAA,IAAA,GAAA,IAAA;EAEF,KAAA,CAAA,EAEH,KAAA,CAAM,SAFH;EAEH,IAAM,CAAA,EACP,KAAA,CAAM,SADC;EACP,MAAM,CAAA,EACJ,KAAA,CAAM,SADF;EACJ,IAAM,CAAA,EAAA,MAAA;EAGL,gBAAM,CAAA,EAAA,MAAA;EAEI,OAAM,CAAA,EAFhB,KAAA,CAAM,SAEU;EAAS;EAKvB,iBAAU,CAAA,EALF,KAAA,CAAM,SAKJ;EACxB;EACA,eAAA,CAAA,EAAA,OAAA;CACA;AACA,iBAJc,UAAA,CAId;EAAA,SAAA;EAAA,YAAA;EAAA,IAAA;EAAA,QAAA;EAAA,QAAA;EAAA,KAAA;EAAA,IAAA;EAAA,MAAA;EAAA,QAAA;EAAA,OAAA;EAAA,WAAA;EAAA,SAAA;EAAA,gBAAA;EAAA,IAAA;EAAA,OAAA;EAAA,iBAAA;EAAA,eAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAgBC,eAhBD,CAAA,EAgBgB,mBAAA,CAAA,GAAA,CAAA,OAhBhB"}