@keak/sdk 1.0.1

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 (89) hide show
  1. package/README.md +131 -0
  2. package/dist/Conversion.d.ts +13 -0
  3. package/dist/Conversion.d.ts.map +1 -0
  4. package/dist/KeakToolbarShadow.d.ts +21 -0
  5. package/dist/KeakToolbarShadow.d.ts.map +1 -0
  6. package/dist/components/ui/card.d.ts +9 -0
  7. package/dist/components/ui/card.d.ts.map +1 -0
  8. package/dist/components/ui/html-preview.d.ts +9 -0
  9. package/dist/components/ui/html-preview.d.ts.map +1 -0
  10. package/dist/components/ui/simple-tabs.d.ts +26 -0
  11. package/dist/components/ui/simple-tabs.d.ts.map +1 -0
  12. package/dist/components/ui/spinner.d.ts +6 -0
  13. package/dist/components/ui/spinner.d.ts.map +1 -0
  14. package/dist/components/ui/tabs.d.ts +13 -0
  15. package/dist/components/ui/tabs.d.ts.map +1 -0
  16. package/dist/components/ui/textarea.d.ts +6 -0
  17. package/dist/components/ui/textarea.d.ts.map +1 -0
  18. package/dist/index.cjs.js +17407 -0
  19. package/dist/index.cjs.js.map +1 -0
  20. package/dist/index.d.ts +101 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +17395 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/runtime/sourceInjector.d.ts +2 -0
  25. package/dist/runtime/sourceInjector.d.ts.map +1 -0
  26. package/dist/scripts/sourcePathInjection.d.ts +11 -0
  27. package/dist/scripts/sourcePathInjection.d.ts.map +1 -0
  28. package/dist/services/index.d.ts +7 -0
  29. package/dist/services/index.d.ts.map +1 -0
  30. package/dist/services/telemetry/index.d.ts +20 -0
  31. package/dist/services/telemetry/index.d.ts.map +1 -0
  32. package/dist/services/telemetry/telemetryService.d.ts +66 -0
  33. package/dist/services/telemetry/telemetryService.d.ts.map +1 -0
  34. package/dist/services/telemetry/types.d.ts +64 -0
  35. package/dist/services/telemetry/types.d.ts.map +1 -0
  36. package/dist/toolbar/AIPromptPanel.d.ts +9 -0
  37. package/dist/toolbar/AIPromptPanel.d.ts.map +1 -0
  38. package/dist/toolbar/ElementSelector.d.ts +8 -0
  39. package/dist/toolbar/ElementSelector.d.ts.map +1 -0
  40. package/dist/toolbar/ExperimentPanel.d.ts +9 -0
  41. package/dist/toolbar/ExperimentPanel.d.ts.map +1 -0
  42. package/dist/toolbar/KeakToolbar.d.ts +10 -0
  43. package/dist/toolbar/KeakToolbar.d.ts.map +1 -0
  44. package/dist/toolbar/MetricsPanel.d.ts +7 -0
  45. package/dist/toolbar/MetricsPanel.d.ts.map +1 -0
  46. package/dist/toolbar/PageScanPanel.d.ts +15 -0
  47. package/dist/toolbar/PageScanPanel.d.ts.map +1 -0
  48. package/dist/toolbar/components/PrimaryButton.d.ts +12 -0
  49. package/dist/toolbar/components/PrimaryButton.d.ts.map +1 -0
  50. package/dist/toolbar/components/WarningButton.d.ts +12 -0
  51. package/dist/toolbar/components/WarningButton.d.ts.map +1 -0
  52. package/dist/toolbar/components/icons/index.d.ts +13 -0
  53. package/dist/toolbar/components/icons/index.d.ts.map +1 -0
  54. package/dist/toolbar/components/ui/Badge.d.ts +10 -0
  55. package/dist/toolbar/components/ui/Badge.d.ts.map +1 -0
  56. package/dist/toolbar/components/ui/Button.d.ts +12 -0
  57. package/dist/toolbar/components/ui/Button.d.ts.map +1 -0
  58. package/dist/toolbar/components/ui/Progress.d.ts +5 -0
  59. package/dist/toolbar/components/ui/Progress.d.ts.map +1 -0
  60. package/dist/toolbar/components/ui/Tabs.d.ts +44 -0
  61. package/dist/toolbar/components/ui/Tabs.d.ts.map +1 -0
  62. package/dist/toolbar/components/ui/dropdown-menu.d.ts +28 -0
  63. package/dist/toolbar/components/ui/dropdown-menu.d.ts.map +1 -0
  64. package/dist/toolbar/lib/utils.d.ts +3 -0
  65. package/dist/toolbar/lib/utils.d.ts.map +1 -0
  66. package/dist/toolbar/utils/fiberSource.d.ts +64 -0
  67. package/dist/toolbar/utils/fiberSource.d.ts.map +1 -0
  68. package/dist/toolbar/utils/keakCodeClient.d.ts +104 -0
  69. package/dist/toolbar/utils/keakCodeClient.d.ts.map +1 -0
  70. package/dist/toolbar.css +1 -0
  71. package/dist/toolbar.js +1257 -0
  72. package/dist/toolbar.js.map +1 -0
  73. package/dist/utils/generateElementId.d.ts +44 -0
  74. package/dist/utils/generateElementId.d.ts.map +1 -0
  75. package/dist/utils/injectDataId.d.ts +33 -0
  76. package/dist/utils/injectDataId.d.ts.map +1 -0
  77. package/package.json +152 -0
  78. package/src/cli/ai-helper.js +206 -0
  79. package/src/cli/code-transformer.js +354 -0
  80. package/src/cli/conversion-detector.js +716 -0
  81. package/src/cli/framework-config.js +477 -0
  82. package/src/cli/install.js +618 -0
  83. package/src/cli/keak-setup.js +43 -0
  84. package/src/cli/revert-conversions.js +264 -0
  85. package/src/cli/safe-transformer.js +456 -0
  86. package/src/cli/simple-transformer.js +339 -0
  87. package/src/plugins/README.md +131 -0
  88. package/src/plugins/babel-source-inject.cjs +170 -0
  89. package/src/plugins/next.cjs +145 -0
package/README.md ADDED
@@ -0,0 +1,131 @@
1
+ # Keak SDK
2
+
3
+ Production-ready A/B testing and experimentation SDK for React applications with visual editing, source mapping, and real-time variant testing.
4
+
5
+ ## Quick Start
6
+
7
+ ### 1. Install the SDK
8
+
9
+ ```bash
10
+ npm install keak-sdk
11
+ ```
12
+
13
+ All dependencies are bundled with the SDK - no additional packages required.
14
+
15
+ ### 2. Auto-Setup
16
+
17
+ The CLI setup runs automatically after installation. If it doesn't run, trigger it manually:
18
+
19
+ ```bash
20
+ npx keak-setup
21
+ ```
22
+
23
+ The installer will:
24
+ - Detect your React framework (Next.js, CRA, Vite, etc.)
25
+ - Find your main entry file (`src/index.tsx`, `app/layout.tsx`, etc.)
26
+ - Add the `KeakProvider` wrapper automatically
27
+ - Create a backup of your original file
28
+ - Automatically configure source mapping (enables precise element-to-code mapping)
29
+
30
+ ### 3. Next.js 15 Setup
31
+
32
+ If you're using Next.js 15, you'll need additional configuration to enable source mapping. See the [Next.js 15 Setup Guide](./NEXTJS_15_SETUP.md) for detailed instructions.
33
+
34
+ ## Basic Usage
35
+
36
+ ### Setup KeakProvider
37
+
38
+ The auto-setup will add `KeakProvider` to your app. If you need to configure it manually:
39
+
40
+ ```tsx
41
+ import { KeakProvider } from 'keak-sdk';
42
+
43
+ function App() {
44
+ return (
45
+ <KeakProvider config={{ apiKey: 'your-api-key' }}>
46
+ {/* Your app components */}
47
+ </KeakProvider>
48
+ );
49
+ }
50
+ ```
51
+
52
+ ### Create Experiments
53
+
54
+ Wrap your content with `Experiment` and `Variant` components:
55
+
56
+ ```tsx
57
+ import { Experiment, Variant } from 'keak-sdk';
58
+
59
+ export default function HeroHome() {
60
+ return (
61
+ <section>
62
+ <h1>Create stunning web experiences</h1>
63
+
64
+ <Experiment name="hero-description">
65
+ <Variant name="control">
66
+ <p>Our landing page template works on all devices, so you only have to set it up once, and get beautiful results forever.</p>
67
+ </Variant>
68
+ <Variant name="treatment">
69
+ <p>Tired of generic templates and endless tweaks? Our expertly crafted landing page solution guarantees pixel-perfect performance and stunning conversions on every device.</p>
70
+ </Variant>
71
+ </Experiment>
72
+ </section>
73
+ );
74
+ }
75
+ ```
76
+
77
+ ### Using the Hook
78
+
79
+ You can also use the `useExperiment` hook for programmatic access:
80
+
81
+ ```tsx
82
+ import { useExperiment } from 'keak-sdk';
83
+
84
+ function MyComponent() {
85
+ const { variant, track, isInExperiment } = useExperiment('my-experiment');
86
+
87
+ return (
88
+ <div>
89
+ {variant === 'treatment' && <NewFeature />}
90
+ <button onClick={() => track('button_clicked')}>
91
+ Click me
92
+ </button>
93
+ </div>
94
+ );
95
+ }
96
+ ```
97
+
98
+ ## Project Structure
99
+
100
+ ```
101
+ keak-sdk/
102
+ ├── src/
103
+ │ ├── index.tsx # Main SDK entry point
104
+ │ ├── toolbar/ # Floating toolbar components
105
+ │ └── scripts/ # Build and utility scripts
106
+ ├── dist/ # Built output (generated)
107
+ ├── package.json # Package configuration
108
+ └── tsconfig.json # TypeScript configuration
109
+ ```
110
+
111
+ ## Available Scripts
112
+
113
+ - `npm run build` - Build the SDK for production
114
+ - `npm run dev` - Build the SDK in watch mode for development
115
+ - `npm run prepublishOnly` - Build before publishing
116
+
117
+ ## Troubleshooting
118
+
119
+ ### Common Issues
120
+
121
+ 1. **Module not found errors**: Ensure the SDK is properly installed and the auto-setup has completed
122
+ 2. **TypeScript errors**: Ensure your project has compatible TypeScript and React versions (React >=16.8.0)
123
+ 3. **KeakProvider not found**: Run `npx keak-setup` to ensure the provider is properly added to your entry file
124
+
125
+ ### Next.js 15 Issues
126
+
127
+ If you're using Next.js 15 and experiencing source mapping issues, refer to the [Next.js 15 Setup Guide](./NEXTJS_15_SETUP.md) for detailed troubleshooting steps.
128
+
129
+ ## License
130
+
131
+ MIT
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ConversionProps {
3
+ children: React.ReactNode;
4
+ type?: 'button' | 'link' | 'form' | 'cta' | 'purchase' | 'signup' | 'download' | 'contact' | 'demo' | 'custom';
5
+ category?: string;
6
+ label?: string;
7
+ value?: number;
8
+ metadata?: Record<string, any>;
9
+ disabled?: boolean;
10
+ }
11
+ export declare const Conversion: React.FC<ConversionProps>;
12
+ export {};
13
+ //# sourceMappingURL=Conversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Conversion.d.ts","sourceRoot":"","sources":["../src/Conversion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0JhD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ export interface KeakToolbarShadowProps {
3
+ /** Initial position of the toolbar */
4
+ position?: "bottom-right" | "bottom-left" | "top-right" | "top-left";
5
+ /** Theme variant */
6
+ theme?: "light" | "dark" | "auto" | "high-contrast" | "cluely";
7
+ /** API key for Keak services */
8
+ apiKey?: string;
9
+ /** Custom z-index for the toolbar */
10
+ zIndex?: number;
11
+ /** Callback when toolbar is mounted */
12
+ onMount?: (shadowRoot: ShadowRoot) => void;
13
+ /** Callback when toolbar is unmounted */
14
+ onUnmount?: () => void;
15
+ /** Custom CSS variables to override theme */
16
+ customTheme?: Record<string, string>;
17
+ }
18
+ export declare function KeakToolbarShadow({ position, theme, apiKey, zIndex, // max practical z-index
19
+ onMount, onUnmount, customTheme }: KeakToolbarShadowProps): React.ReactPortal | null;
20
+ export { KeakToolbarShadow as KeakToolbar };
21
+ //# sourceMappingURL=KeakToolbarShadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeakToolbarShadow.d.ts","sourceRoot":"","sources":["../src/KeakToolbarShadow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;IACpE,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,QAAQ,CAAA;IAC9D,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1C,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAyB,EACzB,KAAc,EACd,MAAM,EACN,MAAmB,EAAE,wBAAwB;AAC7C,OAAO,EACP,SAAS,EACT,WAAW,EACZ,EAAE,sBAAsB,4BAmKxB;AAGD,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,QAAA,MAAM,IAAI,6GAYR,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,QAAA,MAAM,SAAS,uHAYb,CAAC;AAGH,QAAA,MAAM,eAAe,yHASnB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAKf,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface HTMLPreviewProps {
3
+ html: string;
4
+ className?: string;
5
+ title?: string;
6
+ }
7
+ export declare const HTMLPreview: React.FC<HTMLPreviewProps>;
8
+ export {};
9
+ //# sourceMappingURL=html-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-preview.d.ts","sourceRoot":"","sources":["../../../src/components/ui/html-preview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2GlD,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ interface TabsProps {
3
+ defaultValue: string;
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ }
7
+ export declare const Tabs: React.FC<TabsProps>;
8
+ interface TabsListProps {
9
+ children: React.ReactNode;
10
+ className?: string;
11
+ }
12
+ export declare const TabsList: React.FC<TabsListProps>;
13
+ interface TabsTriggerProps {
14
+ value: string;
15
+ children: React.ReactNode;
16
+ className?: string;
17
+ }
18
+ export declare const TabsTrigger: React.FC<TabsTriggerProps>;
19
+ interface TabsContentProps {
20
+ value: string;
21
+ children: React.ReactNode;
22
+ className?: string;
23
+ }
24
+ export declare const TabsContent: React.FC<TabsContentProps>;
25
+ export {};
26
+ //# sourceMappingURL=simple-tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/simple-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAUnE,UAAU,SAAS;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAUpC,CAAC;AAEF,UAAU,aAAa;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAM5C,CAAC;AAEF,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqBlD,CAAC;AAEF,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAalD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type LucideProps } from 'lucide-react';
2
+ export type SpinnerProps = LucideProps & {
3
+ variant?: 'default' | 'circle' | 'pinwheel' | 'circle-filled' | 'ellipsis' | 'ring';
4
+ };
5
+ export declare const Spinner: ({ variant, ...props }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/components/ui/spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AA+ItB,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACvC,OAAO,CAAC,EACJ,SAAS,GACT,QAAQ,GACR,UAAU,GACV,eAAe,GACf,UAAU,GACV,MAAM,CAAC;CACZ,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,uBAAuB,YAAY,4CAe1D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ declare const Tabs: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const TabsList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const TabsTrigger: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ value: string;
6
+ active?: boolean;
7
+ } & React.RefAttributes<HTMLButtonElement>>;
8
+ declare const TabsContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
9
+ value: string;
10
+ active?: boolean;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
13
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,QAAA,MAAM,IAAI,6GASR,CAAC;AAGH,QAAA,MAAM,QAAQ,6GAYZ,CAAC;AAGH,QAAA,MAAM,WAAW;WAGN,MAAM;aACJ,OAAO;2CAclB,CAAC;AAGH,QAAA,MAAM,WAAW;WAGN,MAAM;aACJ,OAAO;wCAYlB,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
3
+ }
4
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
5
+ export { Textarea };
6
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../src/components/ui/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,aACf,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;CAAG;AAE9D,QAAA,MAAM,QAAQ,2FAab,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}