@process.co/ui 0.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.
- package/README.md +414 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +47 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.js +1 -0
- package/dist/ui.css +2042 -0
- package/package.json +225 -0
package/README.md
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
# UI Component Library
|
|
2
|
+
|
|
3
|
+
This package contains a collection of reusable UI components for the proc-app project. All components are built with React, TypeScript, and Tailwind CSS.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Installation](#installation)
|
|
8
|
+
- [Usage](#usage)
|
|
9
|
+
- [Components](#components)
|
|
10
|
+
- [Basic Components](#basic-components)
|
|
11
|
+
- [Form Components](#form-components)
|
|
12
|
+
- [Layout Components](#layout-components)
|
|
13
|
+
- [Feedback Components](#feedback-components)
|
|
14
|
+
- [Navigation Components](#navigation-components)
|
|
15
|
+
- [Blocks](#blocks)
|
|
16
|
+
- [Providers](#providers)
|
|
17
|
+
- [Storybook](#storybook)
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @process.co/ui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Or with pnpm:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pnpm add @process.co/ui
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
### Importing Components
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { Button, Card, Alert } from '@process.co/ui';
|
|
37
|
+
import { UIProvider } from '@process.co/ui';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Importing Styles
|
|
41
|
+
|
|
42
|
+
The library includes pre-built CSS that must be imported in your application:
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
// In your main app file or layout
|
|
46
|
+
import '@process.co/ui/styles';
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Or in your CSS:
|
|
50
|
+
|
|
51
|
+
```css
|
|
52
|
+
@import '@process.co/ui/styles';
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Basic Example
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
import { Button, Card, Alert } from '@process.co/ui';
|
|
59
|
+
import { UIProvider } from '@process.co/ui';
|
|
60
|
+
import '@process.co/ui/styles';
|
|
61
|
+
|
|
62
|
+
// Wrap your app with UIProvider
|
|
63
|
+
function App() {
|
|
64
|
+
return (
|
|
65
|
+
<UIProvider>
|
|
66
|
+
<Button>Click me</Button>
|
|
67
|
+
</UIProvider>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Components
|
|
73
|
+
|
|
74
|
+
### Basic Components
|
|
75
|
+
|
|
76
|
+
#### Button
|
|
77
|
+
A customizable button component with multiple variants and sizes.
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
import { Button } from '@repo/ui';
|
|
81
|
+
|
|
82
|
+
<Button variant="primary" size="md" onClick={handleClick}>
|
|
83
|
+
Click me
|
|
84
|
+
</Button>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Props:**
|
|
88
|
+
- `variant`: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive'
|
|
89
|
+
- `size`: 'sm' | 'md' | 'lg'
|
|
90
|
+
- `disabled`: boolean
|
|
91
|
+
- `loading`: boolean
|
|
92
|
+
- Standard button HTML attributes
|
|
93
|
+
|
|
94
|
+
#### Card
|
|
95
|
+
A clickable card component that links to external resources.
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
import { Card } from '@repo/ui';
|
|
99
|
+
|
|
100
|
+
<Card
|
|
101
|
+
title="Documentation"
|
|
102
|
+
href="https://docs.example.com"
|
|
103
|
+
className="custom-class"
|
|
104
|
+
>
|
|
105
|
+
Learn more about our components
|
|
106
|
+
</Card>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Props:**
|
|
110
|
+
- `title`: string (required)
|
|
111
|
+
- `href`: string (required)
|
|
112
|
+
- `className`: string (optional)
|
|
113
|
+
- `children`: React.ReactNode
|
|
114
|
+
|
|
115
|
+
#### Code
|
|
116
|
+
A simple inline code component for displaying code snippets.
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
import { Code } from '@repo/ui';
|
|
120
|
+
|
|
121
|
+
<Code className="custom-class">const example = "Hello";</Code>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Props:**
|
|
125
|
+
- `className`: string (optional)
|
|
126
|
+
- `children`: React.ReactNode
|
|
127
|
+
|
|
128
|
+
#### Header
|
|
129
|
+
A header component with navigation and branding.
|
|
130
|
+
|
|
131
|
+
```tsx
|
|
132
|
+
import { Header } from '@repo/ui';
|
|
133
|
+
|
|
134
|
+
<Header
|
|
135
|
+
logoSrc="/logo.svg"
|
|
136
|
+
logoAlt="Company Logo"
|
|
137
|
+
navigation={navigationItems}
|
|
138
|
+
/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Form Components
|
|
142
|
+
|
|
143
|
+
#### TextInput
|
|
144
|
+
A text input component with built-in validation and error handling.
|
|
145
|
+
|
|
146
|
+
```tsx
|
|
147
|
+
import { TextInput } from '@repo/ui';
|
|
148
|
+
|
|
149
|
+
<TextInput
|
|
150
|
+
label="Email"
|
|
151
|
+
name="email"
|
|
152
|
+
type="email"
|
|
153
|
+
placeholder="Enter your email"
|
|
154
|
+
error={errors.email}
|
|
155
|
+
onChange={handleChange}
|
|
156
|
+
/>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Props:**
|
|
160
|
+
- `label`: string
|
|
161
|
+
- `name`: string
|
|
162
|
+
- `type`: string
|
|
163
|
+
- `placeholder`: string
|
|
164
|
+
- `error`: string
|
|
165
|
+
- `required`: boolean
|
|
166
|
+
- Standard input HTML attributes
|
|
167
|
+
|
|
168
|
+
#### PasswordMeter
|
|
169
|
+
A password input with strength meter visualization.
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
import { PasswordMeter } from '@repo/ui';
|
|
173
|
+
|
|
174
|
+
<PasswordMeter
|
|
175
|
+
password={password}
|
|
176
|
+
onChange={setPassword}
|
|
177
|
+
requirements={{
|
|
178
|
+
minLength: 8,
|
|
179
|
+
requireUppercase: true,
|
|
180
|
+
requireNumbers: true,
|
|
181
|
+
requireSpecialChars: true
|
|
182
|
+
}}
|
|
183
|
+
/>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Props:**
|
|
187
|
+
- `password`: string
|
|
188
|
+
- `onChange`: (value: string) => void
|
|
189
|
+
- `requirements`: PasswordRequirements object
|
|
190
|
+
|
|
191
|
+
### Layout Components
|
|
192
|
+
|
|
193
|
+
#### NotFound (404)
|
|
194
|
+
A pre-styled 404 error page layout.
|
|
195
|
+
|
|
196
|
+
```tsx
|
|
197
|
+
import { NotFound } from '@repo/ui';
|
|
198
|
+
|
|
199
|
+
<NotFound />
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
The component uses translations from UIProvider for customization.
|
|
203
|
+
|
|
204
|
+
#### Sidebar
|
|
205
|
+
A collapsible sidebar navigation component.
|
|
206
|
+
|
|
207
|
+
```tsx
|
|
208
|
+
import { Sidebar } from '@repo/ui';
|
|
209
|
+
|
|
210
|
+
<Sidebar
|
|
211
|
+
items={navigationItems}
|
|
212
|
+
collapsed={isCollapsed}
|
|
213
|
+
onToggle={handleToggle}
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Feedback Components
|
|
218
|
+
|
|
219
|
+
#### Alert
|
|
220
|
+
A dismissible alert component for displaying messages.
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
import { Alert } from '@repo/ui';
|
|
224
|
+
|
|
225
|
+
<Alert
|
|
226
|
+
type="success"
|
|
227
|
+
message="Operation completed successfully"
|
|
228
|
+
onClose={handleClose}
|
|
229
|
+
/>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Props:**
|
|
233
|
+
- `type`: 'success' | 'error' | 'warning' | 'info'
|
|
234
|
+
- `message`: string
|
|
235
|
+
- `onClose`: () => void (optional)
|
|
236
|
+
|
|
237
|
+
#### Loader
|
|
238
|
+
An animated loading indicator.
|
|
239
|
+
|
|
240
|
+
```tsx
|
|
241
|
+
import { Loader } from '@repo/ui';
|
|
242
|
+
|
|
243
|
+
<Loader
|
|
244
|
+
id="unique-loader-id"
|
|
245
|
+
getAnimationData={() => animationData}
|
|
246
|
+
speed={1}
|
|
247
|
+
/>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
#### SuspenseLoader
|
|
251
|
+
A full-screen loading component with animation, wrapped in React Query provider.
|
|
252
|
+
|
|
253
|
+
```tsx
|
|
254
|
+
import { SuspenseLoader } from '@repo/ui';
|
|
255
|
+
|
|
256
|
+
<SuspenseLoader />
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### FullScreenLoader
|
|
260
|
+
A centered full-screen loading overlay.
|
|
261
|
+
|
|
262
|
+
```tsx
|
|
263
|
+
import { FullScreenLoader } from '@repo/ui';
|
|
264
|
+
|
|
265
|
+
<FullScreenLoader
|
|
266
|
+
message="Loading..."
|
|
267
|
+
showSpinner={true}
|
|
268
|
+
/>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
#### Tooltip
|
|
272
|
+
A simple tooltip component for hover information.
|
|
273
|
+
|
|
274
|
+
```tsx
|
|
275
|
+
import { Tooltip } from '@repo/ui';
|
|
276
|
+
|
|
277
|
+
<Tooltip content="Additional information">
|
|
278
|
+
<Button>Hover me</Button>
|
|
279
|
+
</Tooltip>
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Navigation Components
|
|
283
|
+
|
|
284
|
+
#### NavigationPortal
|
|
285
|
+
A portal component for setting navigation breadcrumbs and content.
|
|
286
|
+
|
|
287
|
+
```tsx
|
|
288
|
+
import NavigationPortal from '@repo/ui';
|
|
289
|
+
|
|
290
|
+
<NavigationPortal
|
|
291
|
+
breadcrumbs={[
|
|
292
|
+
{ label: 'Home', href: '/' },
|
|
293
|
+
{ label: 'Products', href: '/products' },
|
|
294
|
+
{ label: 'Current Page' }
|
|
295
|
+
]}
|
|
296
|
+
clearOnUnmount={true}
|
|
297
|
+
>
|
|
298
|
+
<CustomNavigation />
|
|
299
|
+
</NavigationPortal>
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Props:**
|
|
303
|
+
- `breadcrumbs`: Breadcrumb[] (optional)
|
|
304
|
+
- `clearOnUnmount`: boolean (default: true)
|
|
305
|
+
- `keys`: unknown[] (for memoization)
|
|
306
|
+
- `children`: React.ReactNode (navigation content)
|
|
307
|
+
|
|
308
|
+
### Blocks
|
|
309
|
+
|
|
310
|
+
#### LinkTree
|
|
311
|
+
A component displaying a tree of navigation links.
|
|
312
|
+
|
|
313
|
+
```tsx
|
|
314
|
+
import { LinkTree } from '@repo/ui';
|
|
315
|
+
|
|
316
|
+
<LinkTree links={navigationLinks} />
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
#### Copyright
|
|
320
|
+
A copyright notice component with customizable text.
|
|
321
|
+
|
|
322
|
+
```tsx
|
|
323
|
+
import { Copyright } from '@repo/ui';
|
|
324
|
+
|
|
325
|
+
<Copyright year={2024} company="Process Co" />
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### Authentication Components
|
|
329
|
+
|
|
330
|
+
#### SocialLogin
|
|
331
|
+
A component for social authentication providers.
|
|
332
|
+
|
|
333
|
+
```tsx
|
|
334
|
+
import { SocialLogin } from '@repo/ui';
|
|
335
|
+
|
|
336
|
+
<SocialLogin
|
|
337
|
+
providers={['google', 'github', 'microsoft']}
|
|
338
|
+
onLogin={handleSocialLogin}
|
|
339
|
+
/>
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Providers
|
|
343
|
+
|
|
344
|
+
#### UIProvider
|
|
345
|
+
The main provider component that wraps your application and provides context for translations, settings, and state management.
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
import { UIProvider } from '@repo/ui';
|
|
349
|
+
|
|
350
|
+
<UIProvider
|
|
351
|
+
locale="en"
|
|
352
|
+
translations={translations}
|
|
353
|
+
theme="light"
|
|
354
|
+
>
|
|
355
|
+
<App />
|
|
356
|
+
</UIProvider>
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Exports:**
|
|
360
|
+
- `useSettings`: Hook to access UI settings
|
|
361
|
+
- `useTranslation`: Hook for translations
|
|
362
|
+
- `KeyValueStore`: Type definition for storage
|
|
363
|
+
- `StorageType`: Enum for storage types
|
|
364
|
+
|
|
365
|
+
## Utility Functions
|
|
366
|
+
|
|
367
|
+
The package also exports utility functions from `lib/utils`:
|
|
368
|
+
|
|
369
|
+
```tsx
|
|
370
|
+
import { cn, formatDate } from '@repo/ui';
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## Storybook
|
|
374
|
+
|
|
375
|
+
To view all components in Storybook:
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
pnpm storybook
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## Development
|
|
382
|
+
|
|
383
|
+
### Adding New Components
|
|
384
|
+
|
|
385
|
+
1. Create the component in `src/components/`
|
|
386
|
+
2. Export it from `src/index.tsx`
|
|
387
|
+
3. Create a Storybook story in `src/stories/components/`
|
|
388
|
+
4. Update this documentation
|
|
389
|
+
|
|
390
|
+
### Component Guidelines
|
|
391
|
+
|
|
392
|
+
- Use TypeScript for all components
|
|
393
|
+
- Follow the existing naming conventions
|
|
394
|
+
- Include proper TypeScript types
|
|
395
|
+
- Add JSDoc comments for props
|
|
396
|
+
- Create comprehensive Storybook stories
|
|
397
|
+
- Ensure accessibility compliance
|
|
398
|
+
- Use Tailwind CSS with the `ui:` prefix for styling
|
|
399
|
+
|
|
400
|
+
### Testing
|
|
401
|
+
|
|
402
|
+
Run tests with:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
pnpm test
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### Building
|
|
409
|
+
|
|
410
|
+
Build the package with:
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
pnpm build
|
|
414
|
+
```
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function t(e){if(Array.isArray(e))return e}function i(e,t,i,n,r,u,a){try{var o=e[u](a);var s=o.value}catch(e){i(e);return}if(o.done){t(s)}else{Promise.resolve(s).then(n,r)}}function n(e){return function(){var t=this,n=arguments;return new Promise(function(r,u){var a=e.apply(t,n);function o(e){i(a,r,u,o,s,"next",e)}function s(e){i(a,r,u,o,s,"throw",e)}o(undefined)})}}function r(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function u(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function a(e,t){var i=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(i==null)return;var n=[];var r=true;var u=false;var a,o;try{for(i=i.call(e);!(r=(a=i.next()).done);r=true){n.push(a.value);if(t&&n.length===t)break}}catch(e){u=true;o=e}finally{try{if(!r&&i["return"]!=null)i["return"]()}finally{if(u)throw o}}return n}function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};var n=Object.keys(i);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))}n.forEach(function(t){r(e,t,i[t])})}return e}function l(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t){n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}i.push.apply(i,n)}return i}function c(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{l(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))})}return e}function d(e,t){if(e==null)return{};var i=f(e,t);var n,r;if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++){n=u[r];if(t.indexOf(n)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;i[n]=e[n]}}return i}function f(e,t){if(e==null)return{};var i={};var n=Object.keys(e);var r,u;for(u=0;u<n.length;u++){r=n[u];if(t.indexOf(r)>=0)continue;i[r]=e[r]}return i}function p(e,i){return t(e)||a(e,i)||g(e,i)||o()}function m(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function g(t,i){if(!t)return;if(typeof t==="string")return e(t,i);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor)n=t.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,i)}function v(e,t){var i,n,r,u={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},a=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return a.next=o(0),a["throw"]=o(1),a["return"]=o(2),typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(e){return function(t){return s([e,t])}}function s(o){if(i)throw new TypeError("Generator is already executing.");while(a&&(a=0,o[0]&&(u=0)),u)try{if(i=1,n&&(r=o[0]&2?n["return"]:o[0]?n["throw"]||((r=n["return"])&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;if(n=0,r)o=[o[0]&2,r.value];switch(o[0]){case 0:case 1:r=o;break;case 4:u.label++;return{value:o[1],done:false};case 5:u.label++;n=o[1];o=[0];continue;case 7:o=u.ops.pop();u.trys.pop();continue;default:if(!(r=u.trys,r=r.length>0&&r[r.length-1])&&(o[0]===6||o[0]===2)){u=0;continue}if(o[0]===3&&(!r||o[1]>r[0]&&o[1]<r[3])){u.label=o[1];break}if(o[0]===6&&u.label<r[1]){u.label=r[1];r=o;break}if(r&&u.label<r[2]){u.label=r[2];u.ops.push(o);break}if(r[2])u.ops.pop();u.trys.pop();continue}o=t.call(e,u)}catch(e){o=[6,e];n=0}finally{i=r=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}var x=Object.create;var y=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var w=function(e,t){for(var i in t)y(e,i,{get:t[i],enumerable:!0})},N=function(e,t,i,n){var r=true,u=false,a=undefined;if(t&&(typeof t==="undefined"?"undefined":m(t))=="object"||typeof t=="function")try{var o=function(){var r=l.value;!S.call(e,r)&&r!==i&&y(e,r,{get:function(){return t[r]},enumerable:!(n=b(t,r))||n.enumerable})};for(var s=E(t)[Symbol.iterator](),l;!(r=(l=s.next()).done);r=true)o()}catch(e){u=true;a=e}finally{try{if(!r&&s.return!=null){s.return()}}finally{if(u){throw a}}}return e};var k=function(e,t,i){return i=e!=null?x(h(e)):{},N(t||!e||!e.__esModule?y(i,"default",{value:e,enumerable:!0}):i,e)},C=function(e){return N(y({},"__esModule",{value:!0}),e)};var T={};w(T,{Input:function(){return er}});module.exports=C(T);var F=k(require("react"),1);var M=k(require("react"),1);var O=require("clsx"),D=require("tailwind-merge");function j(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++){t[i]=arguments[i]}return(0,D.twMerge)((0,O.clsx)(t))}function L(e){var t=e.className,i=e.wrapperClassName,n=e.type,r=e.required,u=e.error,a=d(e,["className","wrapperClassName","type","required","error"]);return M.createElement("div",{className:j("uii:relative",i)},M.createElement("input",s({"aria-invalid":u,type:n,"data-slot":"input",className:j("uii:border-input uii:file:text-foreground uii:placeholder:text-muted-foreground uii:selection:bg-primary uii:selection:text-primary-foreground uii:flex uii:h-9 uii:w-full uii:min-w-0 uii:rounded-sm uii:border uii:bg-transparent uii:px-3 uii:py-1 uii:text-base uii:shadow-xs uii:transition-[color,box-shadow] uii:outline-none uii:file:inline-flex uii:file:h-7 uii:file:border-0 uii:file:bg-transparent uii:file:text-sm uii:file:font-medium uii:disabled:pointer-events-none uii:disabled:cursor-not-allowed uii:disabled:opacity-50 uii:md:text-sm","uii:focus-visible:border-ring uii:focus-visible:ring-ring/50 uii:focus-visible:ring-[3px]","uii:aria-invalid:ring-destructive/20 uii:dark:aria-invalid:ring-destructive/40 uii:aria-invalid:border-destructive",{"uii:pr-30":u},t)},a)),u&&M.createElement("span",{className:"uii:absolute uii:inset-y-0 uii:right-0 uii:flex uii:items-center uii:pr-2 uii:border-l-10 uii:border-l-background uii:my-[6px] uii:pointer-events-none "},M.createElement("span",{className:"uii:bg-destructive uii:text-white uii:px-1.5 uii:py-1.5 uii:rounded-xs uii:uppercase uii:tracking-wide uii:font-medium uii:text-xs uii:leading-none uii:font-sans"},u&&r?"required":"error")))}var P=k(require("react"),1);var I=require("react");var V=require("zustand"),R={expression:"",mode:"value",isEditing:!1,currentValue:void 0,isFullScreen:!1},_=(0,V.create)(function(e,t){return{states:{},setState:function(t,i){e(function(e){return{states:c(s({},e.states),r({},t,i))}})},getState:function(e){return t().states[e]||R},clear:function(t){e(function(e){return{states:c(s({},e.states),r({},t,R))}})},switchToValue:function(e){var i=t().getState(e);t().setState(e,c(s({},i),{mode:"value",isEditing:!1}))},switchToExpression:function(e){var i=t().getState(e);t().setState(e,c(s({},i),{mode:"expression",isEditing:!1}))},switchToEditor:function(e){var i=t().getState(e);t().setState(e,c(s({},i),{mode:"expression",isEditing:!0}))},setExpression:function(e,i){var n=t().getState(e);t().setState(e,c(s({},n),{expression:i}))},setEditing:function(e,i){var n=t().getState(e);t().setState(e,c(s({},n),{isEditing:i}))},setFullScreen:function(e,i){var n=t().getState(e);t().setState(e,c(s({},n),{isFullScreen:i}))},setCurrentValue:function(e,i){var n=t().getState(e);t().setState(e,c(s({},n),{currentValue:i}))}}});function K(e){var t=_(),i=t.getState(e),n=(0,I.useCallback)(function(){t.switchToValue(e)},[t,e]),r=(0,I.useCallback)(function(){t.switchToExpression(e)},[t,e]),u=(0,I.useCallback)(function(){t.switchToEditor(e)},[t,e]),a=(0,I.useCallback)(function(){t.clear(e)},[t,e]),o=(0,I.useCallback)(function(i){t.setExpression(e,i)},[t,e]),s=(0,I.useCallback)(function(i){t.setEditing(e,i)},[t,e]),l=(0,I.useCallback)(function(i){t.setCurrentValue(e,i)},[t,e]),c=(0,I.useCallback)(function(i){t.setFullScreen(e,i)},[t,e]);return{current:i.mode,switchToValue:n,switchToExpression:r,switchToEditor:u,clear:a,isExpressionMode:i.mode==="expression",isEditorMode:i.isEditing,expression:i.expression,setExpression:o,isEditing:i.isEditing,setEditing:s,currentValue:i.currentValue,setCurrentValue:l,isFullScreen:i.isFullScreen,setFullScreen:c}}var W=k(require("react"),1),A=require("@monaco-editor/react");var q=require("@fortawesome/react-fontawesome"),B=require("@fortawesome/pro-regular-svg-icons");function U(e,t,i){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"\uD83D\uDD37";return n(function(){var n,u,a,o,s,l,c,d,f,p,m,g,x,y,b,E,h,S,w;return v(this,function(v){switch(v.label){case 0:if(!i.trim())return[2,(console.log("".concat(r," Type inference skipped - no expression")),null)];if(!e.hasTextFocus())return[2,(console.log("".concat(r," Skipping type inference - editor does not have focus")),null)];console.log("".concat(r," Running type inference, expression:"),i);v.label=1;case 1:v.trys.push([1,5,,6]);n=e.getModel();if(n&&t.editor.getModelMarkers({resource:n.uri}).some(function(e){return e.severity===t.MarkerSeverity.Error}))return[2,(console.log("".concat(r," Type inference skipped - expression has validation errors")),"error")];u="const __expr__ = (".concat(i,");"),a=t.editor.createModel(u,"typescript");return[4,t.languages.typescript.getTypeScriptWorker()];case 2:return[4,v.sent()(a.uri)];case 3:o=v.sent(),s=u.indexOf("__expr__"),l=a.getPositionAt(s);return[4,o.getQuickInfoAtPosition(a.uri.toString(),a.getOffsetAt(l))];case 4:c=v.sent();console.log("".concat(r," QuickInfo response:"),c);d=null;if(c&&c.displayParts){f=!1,p=[];m=true,g=false,x=undefined;try{for(y=c.displayParts[Symbol.iterator]();!(m=(b=y.next()).done);m=true){E=b.value;if(f&&p.push(E),E.kind==="punctuation"&&E.text===":"&&!f){h=c.displayParts[c.displayParts.indexOf(E)-1];h&&(h.kind==="localName"||h.kind==="parameterName")&&(f=!0)}}}catch(e){g=true;x=e}finally{try{if(!m&&y.return!=null){y.return()}}finally{if(g){throw x}}}if(p.length>0){S=p.map(function(e){return e.text}).join("").trim();console.log("".concat(r," Extracted type:"),S),S&&S!=="any"&&(d=S)}}return[2,(a.dispose(),d)];case 5:w=v.sent();return[2,(console.warn("".concat(r," Type inference failed:"),w),null)];case 6:return[2]}})})()}var z={fontSize:"14px",fontWeight:"normal",wordWrap:"off",lineNumbers:"off",lineNumbersMinChars:0,overviewRulerLanes:0,overviewRulerBorder:!1,hideCursorInOverviewRuler:!0,lineDecorationsWidth:0,glyphMargin:!1,folding:!1,scrollBeyondLastColumn:0,scrollbar:{horizontal:"hidden",vertical:"hidden",alwaysConsumeMouseWheel:!1},find:{addExtraSpaceOnTop:!1,autoFindInSelection:"never",seedSearchStringFromSelection:!1},minimap:{enabled:!1},wordBasedSuggestions:!0,links:!1,occurrencesHighlight:!1,cursorStyle:"line",renderLineHighlight:"none",contextmenu:!1,roundedSelection:!1,hover:{delay:300},acceptSuggestionOnEnter:"on",automaticLayout:!0,fixedOverflowWidgets:!0,padding:{top:4,bottom:4},fontFamily:"inherit",letterSpacing:"normal",lineHeight:"normal"},H={fontSize:"14px",fontWeight:"normal",wordWrap:"on",lineNumbers:"on",lineNumbersMinChars:3,overviewRulerLanes:3,overviewRulerBorder:!0,hideCursorInOverviewRuler:!1,lineDecorationsWidth:10,glyphMargin:!0,folding:!0,scrollBeyondLastColumn:5,scrollbar:{horizontal:"auto",vertical:"auto",alwaysConsumeMouseWheel:!1},find:{addExtraSpaceOnTop:!1,autoFindInSelection:"never",seedSearchStringFromSelection:!1},minimap:{enabled:!0},wordBasedSuggestions:!0,links:!0,occurrencesHighlight:!0,cursorStyle:"line",renderLineHighlight:"line",contextmenu:!0,roundedSelection:!0,hover:{delay:300},acceptSuggestionOnEnter:"off",automaticLayout:!0,fixedOverflowWidgets:!0,readOnly:!1,domReadOnly:!1};function $(e){var t=e.value,i=e.onChange,r=e.onBlur,u=e.onEnter,a=e.onTypeInferred,o=e.onValidationChange,l=e.context,d=l===void 0?{}:l,f=e.className,p=e.placeholder,m=p===void 0?"Enter expression...":p;var g=(0,W.useRef)(null),x=(0,W.useRef)(null),y=(0,W.useRef)(null),b=function(e){x.current=e;var t=Object.keys(d);t.length>0&&e.languages.typescript.javascriptDefaults.addExtraLib("\n declare const ".concat(t.join(", "),": any;\n "),"context.d.ts")},E=function(e,t){g.current=e,e.updateOptions(z),console.log("\uD83D\uDD37 Inline editor mounted!");var i=e.getDomNode(),l=e.addCommand(t.KeyMod.CtrlCmd|t.KeyCode.KEY_F,function(){}),d=e.onKeyDown(function(i){if(i.keyCode===t.KeyCode.Enter){var n,a,o;if(!e.hasTextFocus()){console.log("\uD83D\uDD37 Enter keydown but inline editor does NOT have focus - allowing default");return}if(i.shiftKey){console.log("\uD83D\uDD37 Shift+Enter in INLINE editor - switching to full-screen"),i.preventDefault(),i.stopPropagation(),u&&u();return}var s=(n=e._contentWidgets)===null||n===void 0?void 0:n["editor.widget.suggestWidget"],l=(s===null||s===void 0?void 0:s.widget)&&!s.widget._hidden&&s.widget.state!==void 0&&s.widget.state!==0,c=(o=e._contextKeyService)===null||o===void 0?void 0:(a=o.getContextKeyValue)===null||a===void 0?void 0:a.call(o,"suggestWidgetVisible");l||c?(console.log("\uD83D\uDD37 Enter in INLINE editor - accepting autocomplete"),i.preventDefault(),i.stopPropagation(),e.trigger("","acceptSelectedSuggestion")):(console.log("\uD83D\uDD37 Enter in INLINE editor - blurring (finishing edit)"),i.preventDefault(),i.stopPropagation(),r===null||r===void 0?void 0:r({}))}});e.onDidPaste(function(t){if(t.endLineNumber<=1)return;var i="",n=e.getModel(),r=n.getLineCount();for(var u=0;u<r;u+=1)i+=n.getLineContent(u+1);n.setValue(i),e.setPosition({column:i.length+1,lineNumber:1})}),e.onDidBlurEditorText(function(t){var i=e.getValue();r===null||r===void 0?void 0:r(c(s({},t),{currentValue:i}))}),e.onDidChangeModelContent(function(){var i=e.getModel();if(i){if(o){var r=t.editor.getModelMarkers({resource:i.uri}),u=r.some(function(e){return e.severity===t.MarkerSeverity.Error});o(!u,r)}a&&(y.current&&clearTimeout(y.current),console.log("\uD83D\uDD37 Content changed - debouncing type inference"),y.current=setTimeout(function(){return n(function(){var n,r;return v(this,function(u){switch(u.label){case 0:n=i.getValue();return[4,U(e,t,n,"\uD83D\uDD37")];case 1:r=u.sent();r&&a(r);return[2]}})})()},200))}});var f=t.editor.onDidChangeMarkers(function(i){var r=e.getModel();if(!r||!a||!i.some(function(e){return e.toString()===r.uri.toString()}))return;var u=t.editor.getModelMarkers({resource:r.uri}).some(function(e){return e.severity===t.MarkerSeverity.Error});console.log("\uD83D\uDD37 Monaco markers changed - hasErrors:",u),u?(y.current&&(clearTimeout(y.current),y.current=null),console.log("\uD83D\uDD37 ERROR detected - immediately setting type to error"),a("error")):(y.current&&clearTimeout(y.current),console.log("\uD83D\uDD37 Errors cleared - triggering type inference"),y.current=setTimeout(function(){return n(function(){var i,n;return v(this,function(u){switch(u.label){case 0:i=r.getValue();return[4,U(e,t,i,"\uD83D\uDD37")];case 1:n=u.sent();n&&a(n);return[2]}})})()},100))});e.addCommand(t.KeyCode.F1,function(){});var p=e.onDidChangeCursorPosition(function(){return n(function(){var i,n,r;return v(this,function(u){switch(u.label){case 0:if(!(a&&e.hasTextFocus()))return[3,2];i=e.getModel();if(!(i&&i.getValue().trim()))return[3,2];y.current&&clearTimeout(y.current);n=i.getValue();return[4,U(e,t,n,"\uD83D\uDD37")];case 1:r=u.sent();r&&a(r);u.label=2;case 2:return[2]}})})()});e.setPosition({lineNumber:1,column:999999}),window.requestAnimationFrame(function(){e.focus(),setTimeout(function(){return n(function(){var i,n,r;return v(this,function(u){switch(u.label){case 0:i=e.getModel();if(!(a&&i&&i.getValue()))return[3,3];if(!(console.log("\uD83D\uDD37 Triggering initial type inference for inline editor"),t.editor.getModelMarkers({resource:i.uri}).some(function(e){return e.severity===t.MarkerSeverity.Error})))return[3,1];a("error");return[3,3];case 1:n=i.getValue();return[4,U(e,t,n,"\uD83D\uDD37")];case 2:r=u.sent();r&&a(r);u.label=3;case 3:return[2]}})})()},100)}),g.current._inlineDisposables={enterKeyDisposable:d,findCommand:l,markerChangeDisposable:f,cursorDisposable:p}};(0,W.useEffect)(function(){return function(){if(g.current){if(console.log("\uD83D\uDD37 Inline editor unmounting - cleaning up"),y.current&&clearTimeout(y.current),g.current._inlineDisposables){var e,t,i,n,r,u,a,o;var s=g.current._inlineDisposables;(t=s.enterKeyDisposable)===null||t===void 0?void 0:(e=t.dispose)===null||e===void 0?void 0:e.call(t),(n=s.findCommand)===null||n===void 0?void 0:(i=n.dispose)===null||i===void 0?void 0:i.call(n),(u=s.markerChangeDisposable)===null||u===void 0?void 0:(r=u.dispose)===null||r===void 0?void 0:r.call(u),(o=s.cursorDisposable)===null||o===void 0?void 0:(a=o.dispose)===null||a===void 0?void 0:a.call(o)}g.current=null}}},[]);var h=function(e){i(e||"")};return W.default.createElement("div",{className:j("uii:relative uii:flex-1",f)},W.default.createElement(A.Editor,{theme:"vs-dark",height:"26px",language:"typescript",value:t,onChange:h,onMount:E,beforeMount:b,width:"100%",loading:W.default.createElement(W.default.Fragment,null,W.default.createElement(q.FontAwesomeIcon,{icon:B.faSpinner,className:"uii:animate-spin"})),options:z,className:"uii:-ml-[4px] uii:-mt-[1px] inline-editor"}),!t&&W.default.createElement("div",{className:"uii:absolute uii:inset-0 uii:flex uii:items-center uii:pointer-events-none uii:text-muted-foreground uii:text-sm"},m))}function Q(e){var t=e.value,i=e.onChange,r=e.onClose,u=e.onBlur,a=e.onTypeInferred,o=e.context,l=o===void 0?{}:o,d=e.className,f=e.placeholder,p=f===void 0?"Enter expression...":f;var m=(0,W.useRef)(null),g=(0,W.useRef)(null),x=(0,W.useRef)(null),y=function(e){g.current=e;var t=Object.keys(l);t.length>0&&e.languages.typescript.javascriptDefaults.addExtraLib("\n declare const ".concat(t.join(", "),": any;\n "),"context.d.ts")},b=function(e,t){m.current=e,e.updateOptions(H),console.log("\uD83D\uDFE6 FULL-SCREEN panel editor mounted!"),console.log("Full-screen editor is read-only?",e.getOption(t.editor.EditorOption.readOnly));var i=e.onKeyDown(function(i){if(i.keyCode===t.KeyCode.Escape&&(console.log("\uD83D\uDFE6 Escape pressed in FULL-SCREEN editor - closing"),i.preventDefault(),i.stopPropagation(),r()),i.keyCode===t.KeyCode.Enter){var n,u,a;var o=(n=e._contentWidgets)===null||n===void 0?void 0:n["editor.widget.suggestWidget"],s=(o===null||o===void 0?void 0:o.widget)&&!o.widget._hidden&&o.widget.state!==void 0&&o.widget.state!==0,l=(a=e._contextKeyService)===null||a===void 0?void 0:(u=a.getContextKeyValue)===null||u===void 0?void 0:u.call(a,"suggestWidgetVisible");s||l?(console.log("\uD83D\uDFE6 Enter in FULL-SCREEN - accepting autocomplete"),i.preventDefault(),i.stopPropagation(),e.trigger("","acceptSelectedSuggestion")):console.log("\uD83D\uDFE6 Enter in FULL-SCREEN - allowing newline (default behavior)")}}),o=0,l=e.onDidChangeModelContent(function(i){var r;o++;var u=e.getValue();console.log("\uD83D\uDFE6 FULL-SCREEN content changed (".concat(o,"):"),u),console.log("\uD83D\uDFE6 Line count: ".concat((r=e.getModel())===null||r===void 0?void 0:r.getLineCount())),a&&(x.current&&clearTimeout(x.current),console.log("\uD83D\uDFE6 Content changed - debouncing type inference"),x.current=setTimeout(function(){return n(function(){var i;return v(this,function(n){switch(n.label){case 0:return[4,U(e,t,u,"\uD83D\uDFE6")];case 1:i=n.sent();i&&a(i);return[2]}})})()},200))}),d=t.editor.onDidChangeMarkers(function(i){var r=e.getModel();if(!r||!a||!i.some(function(e){return e.toString()===r.uri.toString()}))return;var u=t.editor.getModelMarkers({resource:r.uri}).some(function(e){return e.severity===t.MarkerSeverity.Error});console.log("\uD83D\uDFE6 Monaco markers changed - hasErrors:",u),u?(x.current&&(clearTimeout(x.current),x.current=null),console.log("\uD83D\uDFE6 ERROR detected - immediately setting type to error"),a("error")):(x.current&&clearTimeout(x.current),console.log("\uD83D\uDFE6 Errors cleared - triggering type inference"),x.current=setTimeout(function(){return n(function(){var i,n;return v(this,function(u){switch(u.label){case 0:i=r.getValue();return[4,U(e,t,i,"\uD83D\uDFE6")];case 1:n=u.sent();n&&a(n);return[2]}})})()},100))});e.onDidBlurEditorText(function(t){var i=e.getValue();u===null||u===void 0?void 0:u(c(s({},t),{currentValue:i}))});var f=e.getModel();if(f){var p=f.getLineCount(),g=f.getLineLength(p);e.setPosition({lineNumber:p,column:g+1})}e.focus(),setTimeout(function(){return n(function(){var i,n;return v(this,function(r){switch(r.label){case 0:if(!(a&&f))return[3,3];if(!(console.log("\uD83D\uDFE6 Triggering initial type inference for full-screen editor"),t.editor.getModelMarkers({resource:f.uri}).some(function(e){return e.severity===t.MarkerSeverity.Error})))return[3,1];console.log("\uD83D\uDFE6 Initial load has error - setting type to error"),a("error");return[3,3];case 1:i=f.getValue();return[4,U(e,t,i,"\uD83D\uDFE6")];case 2:n=r.sent();n&&a(n);r.label=3;case 3:return[2]}})})()},100);var y=e.onDidChangeCursorPosition(function(){return n(function(){var i,n,r;return v(this,function(u){switch(u.label){case 0:if(!(a&&e.hasTextFocus()))return[3,2];i=e.getModel();if(!(i&&i.getValue().trim()))return[3,2];x.current&&clearTimeout(x.current);n=i.getValue();return[4,U(e,t,n,"\uD83D\uDFE6")];case 1:r=u.sent();r&&a(r);u.label=2;case 2:return[2]}})})()});m.current._fullScreenDisposables={escapeKeyDisposable:i,changeDisposable:l,markerChangeDisposable:d,cursorDisposable:y}};(0,W.useEffect)(function(){return function(){if(m.current){if(console.log("\uD83D\uDFE6 Full-screen editor unmounting - cleaning up"),x.current&&clearTimeout(x.current),m.current._fullScreenDisposables){var e,t,i,n,r,u,a,o;var s=m.current._fullScreenDisposables;(t=s.escapeKeyDisposable)===null||t===void 0?void 0:(e=t.dispose)===null||e===void 0?void 0:e.call(t),(n=s.changeDisposable)===null||n===void 0?void 0:(i=n.dispose)===null||i===void 0?void 0:i.call(n),(u=s.markerChangeDisposable)===null||u===void 0?void 0:(r=u.dispose)===null||r===void 0?void 0:r.call(u),(o=s.cursorDisposable)===null||o===void 0?void 0:(a=o.dispose)===null||a===void 0?void 0:a.call(o)}m.current=null}}},[]);var E=function(e){i(e||"")};return W.default.createElement("div",{className:j("uii:relative uii:border uii:rounded-md uii:bg-background",d)},W.default.createElement("div",{className:"uii:flex uii:items-center uii:justify-between uii:p-2 uii:border-b uii:bg-muted/50"},W.default.createElement("span",{className:"uii:text-sm uii:font-medium"},"Expression Editor"),W.default.createElement("button",{type:"button",onClick:r,className:"uii:text-muted-foreground hover:uii:text-foreground uii:p-1 uii:rounded uii:cursor-pointer uii:text-xs"},"✕")),W.default.createElement(A.Editor,{height:"300px",theme:"vs-dark",language:"typescript",value:t,onChange:E,onMount:b,beforeMount:y,options:H}),!t&&W.default.createElement("div",{className:"uii:absolute uii:inset-0 uii:flex uii:items-center uii:justify-center uii:pointer-events-none uii:text-muted-foreground"},p))}var G=require("react");function J(e,t){var i=p((0,G.useState)(null),2),n=i[0],r=i[1],u=p((0,G.useState)([]),2),a=u[0],o=u[1],s=p((0,G.useState)([]),2),l=s[0],c=s[1],d=p((0,G.useState)(!1),2),f=d[0],g=d[1],v=p((0,G.useState)(null),2),x=v[0],y=v[1],b=(0,G.useRef)(0),E=(0,G.useRef)(null),h=(0,G.useRef)(t||"default");return(0,G.useEffect)(function(){h.current=t||"default"},[t]),(0,G.useEffect)(function(){if((typeof window==="undefined"?"undefined":m(window))>"u"||!navigator.serviceWorker){y("Service worker not available");return}var e=function(e){if(e.data.type==="AST_PARSE_RESULT"){var t=e.data.payload,i=t.id,n=t.controlKey,u=t.result;i===b.current&&n===h.current?(console.log("Service worker AST response:",{id:i,controlKey:n,result:u}),r(u.ast),o(u.tokens),c(u.dependencies||[]),y(u.error||null),g(!1)):console.log("Ignoring AST response - wrong control:",{receivedId:i,expectedId:b.current,receivedKey:n,expectedKey:h.current})}};return E.current=e,navigator.serviceWorker.addEventListener("message",e),function(){E.current&&navigator.serviceWorker.removeEventListener("message",E.current)}},[]),(0,G.useEffect)(function(){if(!e.trim()){r(null),o([]),c([]),y(null),g(!1);return}if(!navigator.serviceWorker||!navigator.serviceWorker.controller){y("Service worker not ready"),g(!1);return}g(!0),y(null),b.current++,console.log("Sending expression to service worker:",{expression:e.trim(),controlKey:h.current,id:b.current}),navigator.serviceWorker.controller.postMessage({type:"PARSE_AST",payload:{expression:e.trim(),id:b.current,controlKey:h.current}})},[e]),{ast:n,tokens:a,dependencies:l,isLoading:f,error:x}}var Y=k(require("react"),1);function X(e){var t=e.ast,i=e.key,n=e.className,r=e.variant,u=r===void 0?"inline":r,a=e.showTokens,o=a===void 0?!1:a,s=e.tokens,l=s===void 0?[]:s;var c=function(e){switch(e){case"StringLiteral":return"uii:text-green-600 uii:bg-green-100";case"NumericLiteral":return"uii:text-purple-600 uii:bg-purple-100";case"Identifier":return"uii:text-blue-600 uii:bg-blue-100";case"Keyword":case"Literal":return"uii:text-orange-600 uii:bg-orange-100";case"BinaryExpression":return"uii:text-gray-700 uii:bg-gray-100";case"CallExpression":return"uii:text-indigo-600 uii:bg-indigo-100";case"MemberExpression":return"uii:text-cyan-600 uii:bg-cyan-100";case"UnaryExpression":return"uii:text-pink-600 uii:bg-pink-100";case"ParenthesizedExpression":return"uii:text-yellow-600 uii:bg-yellow-100";default:return"uii:text-gray-600 uii:bg-gray-100"}},d=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t>2?null:e.type==="Identifier"?Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},Y.default.createElement("span",{className:"uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-blue-100 uii:text-blue-800 uii:font-mono"},e.name||e.value)):e.type==="StringLiteral"||e.type==="NumericLiteral"?Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},Y.default.createElement("span",{className:"uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-green-100 uii:text-green-800 uii:font-mono"},e.value)):e.type==="BinaryExpression"?Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},e.left&&d(e.left,t+1),Y.default.createElement("span",{className:"uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-purple-100 uii:text-purple-800 uii:font-mono uii:mx-1"},e.operator),e.right&&d(e.right,t+1)):e.type==="CallExpression"?Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},e.callee&&d(e.callee,t+1),Y.default.createElement("span",{className:"text-xs text-gray-600"},"()")):e.type==="PropertyAccessExpression"?Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},e.object&&d(e.object,t+1),Y.default.createElement("span",{className:"text-xs text-gray-600"},"."),e.property&&d(e.property,t+1)):Y.default.createElement("span",{key:"".concat(e.start,"-").concat(e.end),className:"uii:inline-flex uii:items-center uii:mr-1"},Y.default.createElement("span",{className:"px-1 py-0.5 rounded text-xs bg-gray-100 text-gray-600 font-mono"},e.type))},f=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(t>4)return null;var i=" ".repeat(t);return Y.default.createElement("div",{key:"".concat(e.start,"-").concat(e.end),className:"font-mono text-xs"},Y.default.createElement("div",{className:"uii:flex uii:items-start uii:gap-2"},Y.default.createElement("span",{className:"uii:text-gray-400"},i),Y.default.createElement("span",{className:j("uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:font-semibold",c(e.type))},e.type),e.value&&Y.default.createElement("span",{className:"uii:text-green-600"},'"',e.value,'"'),e.operator&&Y.default.createElement("span",{className:"uii:text-purple-600"},e.operator),e.name&&Y.default.createElement("span",{className:"uii:text-blue-600"},e.name)),e.left&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"left: "),f(e.left,t+1)),e.right&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"right: "),f(e.right,t+1)),e.argument&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"arg: "),f(e.argument,t+1)),e.object&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"obj: "),f(e.object,t+1)),e.property&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"prop: "),f(e.property,t+1)),e.index&&Y.default.createElement("div",{className:"uii:ml-2"},Y.default.createElement("span",{className:"uii:text-gray-500 uii:text-xs"},"idx: "),f(e.index,t+1)),!e.left&&!e.right&&!e.argument&&!e.object&&!e.property&&!e.index&&e.children&&e.children.length>0&&Y.default.createElement("div",{className:"uii:ml-2"},e.children.slice(0,3).map(function(e,i){return f(e,t+1)}),e.children.length>3&&Y.default.createElement("div",{className:"uii:ml-2 uii:text-gray-500 uii:text-xs"},"... and ",e.children.length-3," more")))},p=function(){if(l.length===0)return null;var e=l.slice(0,10);return Y.default.createElement("div",{className:"uii:space-y-2"},Y.default.createElement("div",{className:"uii:text-sm uii:font-semibold uii:text-gray-700"},"Tokens ",l.length>10&&"(".concat(l.length," total)"),":"),Y.default.createElement("div",{className:"uii:flex uii:flex-wrap uii:gap-1"},e.map(function(e,t){return Y.default.createElement("span",{key:t,className:j("uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:font-mono",e.type.includes("Keyword")&&"uii:bg-blue-100 uii:text-blue-800",e.type.includes("Identifier")&&"uii:bg-green-100 uii:text-green-800",e.type.includes("String")&&"uii:bg-yellow-100 uii:text-yellow-800",e.type.includes("Numeric")&&"uii:bg-purple-100 uii:text-purple-800",e.type.includes("Punctuation")&&"uii:bg-gray-100 uii:text-gray-800","uii:bg-gray-100 uii:text-gray-600")},e.value)}),l.length>10&&Y.default.createElement("span",{className:"uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-gray-200 uii:text-gray-600"},"+",l.length-10," more")))};return t?u==="inline"?Y.default.createElement("div",{className:j("uii:inline-flex uii:items-center uii:gap-2",n)},d(t)):u==="compact"?Y.default.createElement("div",{className:j("uii:space-y-2",n)},Y.default.createElement("div",{className:"uii:flex uii:flex-wrap uii:gap-1"},d(t)),o&&p()):Y.default.createElement("div",{className:j("uii:space-y-3",n)},Y.default.createElement("div",{className:"uii:space-y-2"},Y.default.createElement("div",{className:"uii:text-sm uii:font-semibold uii:text-gray-700"},"AST Tree:"),Y.default.createElement("div",{className:"uii:p-3 uii:border uii:rounded-md uii:bg-gray-50 uii:max-h-64 uii:overflow-auto"},f(t))),o&&p()):Y.default.createElement("div",{className:j("uii:text-gray-500 uii:text-sm uii:italic",n)},"No AST available")}var Z=k(require("clsx"),1);var ee=require("@fortawesome/react-fontawesome"),et=require("@fortawesome/pro-regular-svg-icons");function ei(e){var t=e.label,i=e.value,r=e.type,a=e.valuesLoading,o=a===void 0?!1:a,l=e.key,d=e.onValueChange,f=e.onDependenciesChange,g=e.metadata,x=e.children,y=e.fieldName,b=e.expressionContext,E=b===void 0?{}:b,h=e.availableNodes,S=e.myInterface,w=e.contextTypeDefinitions,N=e.inlineEditor,k=N===void 0?!0:N,C=e.className,T=e.editorClassName,F=e.expressionPlaceholder,M=F===void 0?"Enter expression...":F,O=e.evaluateExpression,D=e.expressionResult,L=e.isEvaluating,I=L===void 0?!1:L,V=e.isExpressionValid,R=V===void 0?!0:V,W=e.expectedType,A=W===void 0?"any":W;var q=p((0,P.useState)(function(){return c(s({},g||{expression:"",mode:"value",isEditing:!1,isFullScreen:!1,value:void 0}),{isEditing:!1,isFullScreen:!1,mode:"value"})}),2),B=q[0],U=q[1],z=p((0,P.useState)(i&&(typeof i==="undefined"?"undefined":m(i))=="object"&&"expression"in i&&"type"in i&&i.type==="expression"?i.value:i),2),H=z[0],G=z[1],Y=p((0,P.useState)(i&&(typeof i==="undefined"?"undefined":m(i))=="object"&&"expression"in i&&"type"in i&&i.type==="expression"?i.value:i),2),ei=Y[0],en=Y[1],er=(0,P.useCallback)(function(e){switch(r){case"float":return typeof e=="string"&&!isNaN(parseFloat(e))?parseFloat(e):e;case"integer":case"number":return typeof e=="string"&&!isNaN(parseInt(e))?parseInt(e):e;case"string[]":return typeof e=="string"?e.split(","):e;case"string":default:return e}},[r]),eu=p((0,P.useState)(),2),ea=eu[0],eo=eu[1],es=_.getState().getState(y).expression;(0,P.useEffect)(function(){g&&U(c(s({},g),{isEditing:!1,isFullScreen:!1}))},[g]);var el=(0,P.useMemo)(function(){return i&&(typeof i==="undefined"?"undefined":m(i))=="object"&&"expression"in i&&"type"in i&&i.type==="expression"},[i]),ec=(0,P.useRef)(!0);(0,P.useEffect)(function(){if(i&&(typeof i==="undefined"?"undefined":m(i))=="object"&&"expression"in i&&"type"in i&&i.type==="expression"){var e=i.value,t=i.expression;e!==void 0&&(en(er(e)),G(er(e))),t&&ed.expression!==t&&(ed.setExpression(t),ec.current&&!ed.isEditing&&ed.switchToExpression());var n=!g||g.expression!==t||g.mode==="value"||g.isEditing===!0||g.isFullScreen===!0;if(ec.current&&n){var r={expression:t||"",value:er(e),mode:"expression",isEditing:!1,isFullScreen:!1};setTimeout(function(){d(i,c(s({},r),{value:er(i)}))},0)}}else if(!o&&(en(er(i)),G(er(i)),ec.current&&((g===null||g===void 0?void 0:g.expression)||(g===null||g===void 0?void 0:g.mode)==="expression"))){var u={expression:"",value:er(i),mode:"value",isEditing:!1,isFullScreen:!1};setTimeout(function(){d(er(i),c(s({},u),{value:er(i)}))},0)}ec.current&&setTimeout(function(){ec.current=!1},100)},[i,o]);var ed=K(y),ef=J(ed.expression,y),ep=ef.ast,em=ef.tokens,eg=ef.dependencies,ev=ef.isLoading,ex=ef.error,ey=(0,P.useMemo)(function(){return!ep||eg.length===0?[]:eg.map(function(e){return{name:e,exists:E?e in E:!1,value:E?E[e]:void 0}})},[eg,E,ep]),eb=p((0,P.useState)(null),2),eE=eb[0],eh=eb[1],eS=(0,P.useCallback)(function(e){eh(e)},[]),ew=(0,P.useMemo)(function(){return ed.expression.includes("\n")||ed.expression.includes("\r")},[ed.expression]),eN=(0,P.useMemo)(function(){return eE||"unknown"},[eE]),ek=(0,P.useMemo)(function(){if(!eN||eN==="unknown"||eN==="any"||eN==="error")return!1;var e=eN.toLowerCase().trim(),t=(r||A||"any").toLowerCase().trim();return!(t==="array"&&e.endsWith("[]")||e===t||t==="any"||t==="string"&&(e.startsWith('"')||e.startsWith("'"))||t==="number"&&/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(e)||t==="integer"&&/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(e)||t==="integer"&&e==="number"||t==="float"&&/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(e)||t==="float"&&e==="number"||t==="boolean"&&(e==="true"||e==="false"))},[eN,r,A]),eC=p((0,P.useState)(null),2),eT=eC[0],eF=eC[1],eM=p((0,P.useState)(!1),2),eO=eM[0],eD=eM[1],ej=p((0,P.useState)(!1),2),eL=ej[0],eP=ej[1],eI=p((0,P.useState)(!0),2),eV=eI[0],eR=eI[1],e_=p((0,P.useState)({syntax:!0,expression:!0,context:!0,type:!0,security:!0}),2),eK=e_[0],eW=e_[1],eA=(0,P.useMemo)(function(){return!ed.expression||!ed.expression.trim()?!1:!!(!eV||!R||ex||!eK.syntax||!eK.expression||(D===null||D===void 0?void 0:D.error)||(eT===null||eT===void 0?void 0:eT.error))},[ed.expression,eV,R,ex,eK,D,eT]),eq=(0,P.useRef)(!1),eB=(0,P.useRef)(!1),eU=(0,P.useRef)(!1),ez=(0,P.useCallback)(function(e,t){eR(e),eW(function(t){return c(s({},t),{syntax:e})})},[]),eH=(0,P.useCallback)(function(e){var t=e.includes("\n"),i=e.length>80;ed.isFullScreen||ed.setFullScreen(t||i)},[ed.isFullScreen]),e$=(0,P.useCallback)(function(e,t){return n(function(){var i,n;return v(this,function(r){switch(r.label){case 0:if(!!(!O||!e.trim()))return[3,5];eD(!0);r.label=1;case 1:r.trys.push([1,3,4,5]);return[4,O(e,t)];case 2:i=r.sent();eF(i);return[3,5];case 3:n=r.sent();eF({value:null,ast:{kind:0,text:"",color:"#ff0000"},error:u(n,Error)?n.message:"Unknown error",isValid:!1,validation:{syntax:!1,expression:!1,context:!1,type:!1,security:!1}});return[3,5];case 4:eD(!1);return[7];case 5:return[2]}})})()},[O]),eQ=(0,P.useMemo)(function(){return{expression:ed.expression,value:ei,mode:ed.current,isEditing:ed.isEditing,isFullScreen:ed.isFullScreen}},[ed.expression,ed.current,ed.isFullScreen,ed.isEditing,ei]),eG=(0,P.useMemo)(function(){return{expression:ed.expression,type:"expression"}},[ed.currentValue||ed.expression]),eJ=(0,P.useCallback)(function(e){d(er(e),c(s({},eQ),{value:er(e)}))},[d,ed,el,ei]),eY=(0,P.useCallback)(function(e){eq.current=!1,ed.setExpression(e),eo(e),eH(e),d({expression:e,type:"expression"},c(s({},eQ),{expression:e}))},[ed,E,d,O,e$,eH]),eX=(0,P.useCallback)(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return n(function(){return v(this,function(e){if(eq.current){eq.current=!1;return[2]}if(eB.current){eB.current=!1;return[2]}ed.isFullScreen&&!t||ew&&!t||(eU.current=!0,ed.setEditing(!1),ed.setFullScreen(!1));return[2]})})()},[ed,D,eT,E,d,ei,I,eO,eG,ew]);(0,P.useEffect)(function(){d(ei,c(s({},eQ),{isFullScreen:ed.isFullScreen}))},[ed.isFullScreen]),(0,P.useEffect)(function(){ed.isEditing&&ew&&!ed.isFullScreen&&ed.setFullScreen(!0)},[ew,ed.isEditing,ed.isFullScreen]);var eZ=(0,P.useCallback)(function(e){switch(e){case"value":ed.switchToValue(),ed.setFullScreen(!1),d(H||i,void 0);break;case"editor":ed.switchToEditor();var t=ew;t&&ed.setFullScreen(!0);var n={expression:ed.expression,value:ei,mode:"expression",isEditing:!0,isFullScreen:t};d(ed.expression?{expression:ed.expression,type:"expression"}:ei,n);break;case"expression":G(ei),ed.switchToExpression(),ew&&ed.setFullScreen(!0);break}},[ed,ei,d,ew,H,i]);(0,P.useEffect)(function(){var e,t;eU.current&&(ed.expression&&ed.expression.trim()?d(eQ.mode==="value"?(e=eQ.value)!==null&&e!==void 0?e:"":{expression:eQ.expression.trim(),type:"expression"},c(s({},eQ),{isEditing:!1,isFullScreen:!1})):(ed.switchToValue(),d((t=eQ.value)!==null&&t!==void 0?t:"",c(s({},eQ),{mode:"value",expression:"",isEditing:!1,isFullScreen:!1}))),eU.current=!1)},[ed.isEditing,ed.isFullScreen,eU.current]),(0,P.useEffect)(function(){f&&f(eg)},[eg,f]);var e0=(0,P.useCallback)(function(){eq.current=!0,d(ei,eQ),eZ("value"),ed.setFullScreen(!1)},[d,ed,H]),e1=p((0,P.useState)(ei),2),e2=e1[0],e5=e1[1];(0,P.useEffect)(function(){e5(ei)},[ei]);var e3=(0,P.useMemo)(function(){return{value:ei,onChange:eJ,onExpressionClick:function(){return eZ("editor")},inferredType:eN,hasTypeMismatch:ek,hasError:eA,localInput:e2,setLocalInput:e5,expressionMode:{current:ed.current,switchToValue:function(){return eZ("value")},switchToExpression:function(){return eZ("expression")},switchToEditor:function(){return eZ("editor")},clear:e0,isExpressionMode:ed.isExpressionMode,isEditorMode:ed.isEditorMode,expression:ed.expression,setExpression:eY,isEditing:ed.isEditing,setEditing:ed.setEditing,isFullScreen:ed.isFullScreen,setFullScreen:ed.setFullScreen}}},[ei,eJ,ed,eZ,e0,eY,eN,ek,eA]),e6=function(){switch(ed.current){case"expression":var e;var t=ed.expression&&ed.expression.trim(),i=(e=D||eT)===null||e===void 0?void 0:e.isValid,n=R&&eV;return e3.expressionMode.isEditing?P.default.createElement("div",{key:"".concat(l,"-expression"),className:j("relative",C)},k&&!ed.isFullScreen&&!ew?P.default.createElement("div",{className:j("uii:flex uii:h-9 uii:w-full \n uii:min-w-0 uii:rounded-sm \n uii:border uii:border-ring \n uii:bg-background uii:px-3 uii:py-1 uii:text-base uii:shadow-xs \n uii:ring-ring/50 uii:ring-[3px] uii:transition-[color,box-shadow] \n uii:outline-none uii:md:text-sm uii:cursor-pointer\n uii:mt-0.5 ",T)},P.default.createElement($,{value:ed.expression,onChange:function(e){eY(e)},onEnter:function(){eB.current=!0,ed.setFullScreen(!0),setTimeout(function(){eB.current=!1},100)},onBlur:eX,onTypeInferred:eS,onValidationChange:ez,context:E,placeholder:M}),P.default.createElement("div",{className:"uii:flex uii:items-center uii:gap-2 uii:mt-0.5"},P.default.createElement("span",{className:"uii:text-xs uii:font-mono uii:cursor-pointer uii:text-muted-foreground",onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),eB.current=!0,ed.setFullScreen(!0),setTimeout(function(){eB.current=!1},100)}},P.default.createElement(ee.FontAwesomeIcon,{icon:et.faExpand})),P.default.createElement("span",{className:"uii:text-xs uii:font-mono uii:cursor-pointer uii:text-muted-foreground",onMouseDown:function(e){e.preventDefault(),e0()}},"Clear"))):P.default.createElement("div",{className:"uii:space-y-4"},P.default.createElement(Q,{value:ed.expression,onChange:function(e){eY(e)},onClose:function(){eX(void 0,!0),ed.setFullScreen(!1)},onBlur:eX,onTypeInferred:eS,context:E,placeholder:M}),(ep||eg.length>0)&&P.default.createElement("div",{className:"uii:space-y-3"},eN&&eN!=="unknown"&&P.default.createElement("div",{className:"uii:space-y-2"},P.default.createElement("div",{className:"uii:flex uii:items-center uii:gap-2"},P.default.createElement("div",{className:"uii:text-sm uii:font-semibold uii:text-gray-700"},"Inferred Return Type:"),eE&&eN!=="error"&&P.default.createElement("span",{className:"uii:px-1.5 uii:py-0.5 uii:text-xs uii:rounded uii:bg-blue-100 uii:text-blue-700 uii:border uii:border-blue-200"},"TypeScript")),P.default.createElement("div",{className:"uii:flex uii:items-center uii:gap-2"},eN==="error"?P.default.createElement("span",{className:"uii:px-3 uii:py-1.5 uii:text-sm uii:font-mono uii:rounded uii:border uii:bg-red-50 uii:text-red-800 uii:border-red-200"},"❌ Syntax Error"):P.default.createElement(P.default.Fragment,null,P.default.createElement("span",{className:"uii:px-3 uii:py-1.5 uii:text-sm uii:font-mono uii:rounded uii:border uii:bg-purple-50 uii:text-purple-800 uii:border-purple-200"},eN),ek&&P.default.createElement("span",{className:"uii:text-xs uii:text-orange-600 uii:font-semibold"},"⚠️ Expected: ",r||A)))),ey.length>0&&P.default.createElement("div",{className:"uii:space-y-2"},P.default.createElement("div",{className:"uii:text-sm uii:font-semibold uii:text-gray-700"},"Dependencies (",ey.length,"):"),P.default.createElement("div",{className:"uii:flex uii:flex-wrap uii:gap-2"},ey.map(function(e,t){return P.default.createElement("span",{key:t,className:j("uii:px-2 uii:py-1 uii:text-sm uii:rounded uii:border",e.exists?"uii:bg-blue-100 uii:text-blue-800 uii:border-blue-200":"uii:bg-red-100 uii:text-red-800 uii:border-red-200"),title:e.exists?"Value: ".concat(JSON.stringify(e.value)):"Not found in context"},e.name)}))),ep&&P.default.createElement(X,{ast:ep,tokens:em,variant:"tree",showTokens:!0,className:"uii:w-full"}),ev&&P.default.createElement("div",{className:"uii:text-sm uii:text-gray-500 uii:italic"},"Parsing expression..."),ex&&P.default.createElement("div",{className:"uii:text-sm uii:text-red-600"},"Parse Error: ",ex)))):P.default.createElement("div",{className:j("uii:relative",C),key:"".concat(l,"-expression-display")},P.default.createElement("div",{className:(0,Z.default)("uii:flex uii:h-9 uii:w-full uii:min-w-0 uii:rounded-sm uii:border uii:border-input uii:bg-transparent uii:px-3 uii:py-1 uii:text-base uii:shadow-xs uii:transition-[color,box-shadow] uii:outline-none uii:focus-visible:border-ring uii:focus-visible:ring-ring/50 uii:focus-visible:ring-[3px] uii:md:text-sm uii:cursor-pointer uii:hover:bg-muted/50","uii:mt-0.5 uii:bg-white uii:rounded-md uii:items-center"),onClick:function(){return eZ("editor")},onMouseEnter:function(){return eP(!0)},onMouseLeave:function(){return eP(!1)}},P.default.createElement("span",{className:"uii:flex-1 uii:truncate uii:text-foreground uii:items-center"},eL?P.default.createElement("div",{className:"uii:flex uii:items-center uii:gap-2"},ep?P.default.createElement(X,{key:"".concat(l,"-ast"),ast:ep,tokens:em,variant:"inline",showTokens:!1,className:"uii:text-xs"}):P.default.createElement("div",{className:"uii:text-xs uii:text-gray-500"},ev?"Parsing...":ex?"Error: ".concat(ex):"No AST available"),eg.length>0&&P.default.createElement("div",{className:"uii:flex uii:gap-1"},eg.map(function(e,t){return P.default.createElement("span",{key:t,className:"uii:px-1 uii:py-0.5 uii:bg-blue-100 uii:text-blue-800 uii:text-xs uii:rounded"},e)}))):P.default.createElement("span",{className:"uii:font-mono uii:text-sm"},es||"No expression"))));default:return x(e3)}};return P.default.createElement(P.default.Fragment,null,P.default.createElement("div",{className:"uii:flex uii:items-center uii:gap-2 uii:mt-2"},P.default.createElement("label",{className:"uii:text-xs uii:text-muted-foreground uii:font-bold",htmlFor:l},t,":"),P.default.createElement("span",{className:"uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"},r),ek||eN==="error"?P.default.createElement(P.default.Fragment,null,ed.current==="expression"?P.default.createElement(P.default.Fragment,null,P.default.createElement("span",{className:"uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"},ed.expression.trim()!==""?eN:"empty"),P.default.createElement("span",{className:"uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:font-light uii:text-orange-600 "},"⚠️ Expected: ",r||A)):P.default.createElement(P.default.Fragment,null)):P.default.createElement(P.default.Fragment,null)),e6())}var en=require("react");function er(e){var t=e.className,i=e.expectedType,n=d(e,["className","expectedType"]);var r=p((0,en.useState)(n.value),2),u=r[0],a=r[1],o=p((0,en.useState)({}),2),s=o[0],l=o[1];var c;return F.createElement(ei,{label:(c=n.label)!==null&&c!==void 0?c:"Test Entry",key:n.name,type:i!==null&&i!==void 0?i:"string",valuesLoading:!1,value:n.value,onValueChange:function(e,t){a(e),t&&l(t)},expectedType:i,fieldName:n.name,children:function(e){var t=e.onExpressionClick,i=e.onChange,r=e.value,u=e.localInput,a=e.setLocalInput;var o;return F.createElement("div",{className:"uii:relative uii:text-xs uii:mt-0.5"},F.createElement(L,{type:"text",value:u,onChange:function(e){a(e.target.value),i(e.target.value)},placeholder:(o=n.placeholder)!==null&&o!==void 0?o:"Enter value..."}),F.createElement("div",{className:"uii:flex uii:bg-white uii:border-white/40 uii:border-l-8 uii:items-center uii:gap-1 uii:absolute uii:right-1.5 uii:top-2.5 uii:cursor-pointer uii:truncate",onClick:function(){return t()}},F.createElement("span",{className:"uii:border-l uii:border-gray-200 uii:px-2"},"Custom Expression")))}})}0&&(module.exports={Input:Input});
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ExpressionContext {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
interface ExpressionAST {
|
|
7
|
+
kind: number;
|
|
8
|
+
color?: string;
|
|
9
|
+
left?: ExpressionAST;
|
|
10
|
+
right?: ExpressionAST;
|
|
11
|
+
name?: ExpressionAST;
|
|
12
|
+
argumentExpression?: ExpressionAST;
|
|
13
|
+
arguments?: ExpressionAST[];
|
|
14
|
+
expression?: ExpressionAST;
|
|
15
|
+
escapedText?: string;
|
|
16
|
+
text?: string;
|
|
17
|
+
operator?: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
22
|
+
}
|
|
23
|
+
interface ExpressionResult {
|
|
24
|
+
value: any;
|
|
25
|
+
ast: ExpressionAST;
|
|
26
|
+
error?: string;
|
|
27
|
+
isValid: boolean;
|
|
28
|
+
validation: {
|
|
29
|
+
syntax: boolean;
|
|
30
|
+
expression: boolean;
|
|
31
|
+
context: boolean;
|
|
32
|
+
type?: boolean;
|
|
33
|
+
security?: boolean;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
declare function Input({ className, expectedType, ...props }: React.ComponentProps<'input'> & {
|
|
37
|
+
error?: boolean;
|
|
38
|
+
label?: string;
|
|
39
|
+
rapperClassName?: string;
|
|
40
|
+
expressionContext?: ExpressionContext;
|
|
41
|
+
expressionResult?: ExpressionResult;
|
|
42
|
+
isEvaluating?: boolean;
|
|
43
|
+
isExpressionValid?: boolean;
|
|
44
|
+
expectedType?: string;
|
|
45
|
+
}): React.JSX.Element;
|
|
46
|
+
|
|
47
|
+
export { type ExpressionResult, Input, type InputProps };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ExpressionContext {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
interface ExpressionAST {
|
|
7
|
+
kind: number;
|
|
8
|
+
color?: string;
|
|
9
|
+
left?: ExpressionAST;
|
|
10
|
+
right?: ExpressionAST;
|
|
11
|
+
name?: ExpressionAST;
|
|
12
|
+
argumentExpression?: ExpressionAST;
|
|
13
|
+
arguments?: ExpressionAST[];
|
|
14
|
+
expression?: ExpressionAST;
|
|
15
|
+
escapedText?: string;
|
|
16
|
+
text?: string;
|
|
17
|
+
operator?: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
22
|
+
}
|
|
23
|
+
interface ExpressionResult {
|
|
24
|
+
value: any;
|
|
25
|
+
ast: ExpressionAST;
|
|
26
|
+
error?: string;
|
|
27
|
+
isValid: boolean;
|
|
28
|
+
validation: {
|
|
29
|
+
syntax: boolean;
|
|
30
|
+
expression: boolean;
|
|
31
|
+
context: boolean;
|
|
32
|
+
type?: boolean;
|
|
33
|
+
security?: boolean;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
declare function Input({ className, expectedType, ...props }: React.ComponentProps<'input'> & {
|
|
37
|
+
error?: boolean;
|
|
38
|
+
label?: string;
|
|
39
|
+
rapperClassName?: string;
|
|
40
|
+
expressionContext?: ExpressionContext;
|
|
41
|
+
expressionResult?: ExpressionResult;
|
|
42
|
+
isEvaluating?: boolean;
|
|
43
|
+
isExpressionValid?: boolean;
|
|
44
|
+
expectedType?: string;
|
|
45
|
+
}): React.JSX.Element;
|
|
46
|
+
|
|
47
|
+
export { type ExpressionResult, Input, type InputProps };
|