@oxcide-ui/schema 0.0.3

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.
@@ -0,0 +1,720 @@
1
+ import type { IconName } from '@oxcide-ui/icons'
2
+ import { z } from 'zod'
3
+
4
+ export const dialogPropsSchema = z.object({
5
+ /** Modal visibility */
6
+ visible: z.boolean().default(false),
7
+ /** Header text */
8
+ header: z.string().optional(),
9
+ /** Footer text */
10
+ footer: z.string().optional(),
11
+ /** Whether the dialog can be closed */
12
+ closable: z.boolean().default(true),
13
+ /** Custom icon for the close button */
14
+ closeIcon: z.string().default('times') as z.ZodType<IconName | undefined>,
15
+ /** Whether clicking the mask closes the dialog */
16
+ dismissableMask: z.boolean().default(false),
17
+ /** Whether to close on Escape key */
18
+ closeOnEscape: z.boolean().default(true),
19
+ /** Teleport target selector or element */
20
+ appendTo: z.any().default('#teleports'),
21
+ /** Style class for the mask */
22
+ maskClass: z.string().optional(),
23
+ /** Modal state */
24
+ modal: z.boolean().default(true),
25
+ /** Whether to show the header */
26
+ showHeader: z.boolean().default(true),
27
+ /** Custom style object */
28
+ style: z.any().optional(),
29
+ /** Custom class name */
30
+ class: z.any().optional(),
31
+ /** Dialog position */
32
+ position: z
33
+ .enum(['center', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right'])
34
+ .default('center'),
35
+ /** Native id attribute */
36
+ id: z.string().optional()
37
+ })
38
+
39
+ export function getDialogDefaults(props: DialogProps = {}): DialogResolvedProps {
40
+ return dialogPropsSchema.parse(props)
41
+ }
42
+
43
+ /* @oxcide-sync:source
44
+ export type DialogProps = z.input<typeof dialogPropsSchema>
45
+ export type DialogResolvedProps = z.infer<typeof dialogPropsSchema>
46
+ @oxcide-sync:end */
47
+ export interface DialogProps {
48
+ visible?: boolean | undefined
49
+ header?: string | undefined
50
+ footer?: string | undefined
51
+ closable?: boolean | undefined
52
+ position?:
53
+ | 'left'
54
+ | 'right'
55
+ | 'center'
56
+ | 'top'
57
+ | 'bottom'
58
+ | 'top-left'
59
+ | 'top-right'
60
+ | 'bottom-left'
61
+ | 'bottom-right'
62
+ | undefined
63
+ dismissableMask?: boolean | undefined
64
+ closeOnEscape?: boolean | undefined
65
+ appendTo?: any
66
+ maskClass?: string | undefined
67
+ modal?: boolean | undefined
68
+ showHeader?: boolean | undefined
69
+ style?: any
70
+ class?: any
71
+ id?: string | undefined
72
+ closeIcon?:
73
+ | 'times'
74
+ | 'folderPlus'
75
+ | 'receipt'
76
+ | 'asterisk'
77
+ | 'star'
78
+ | 'faceSmile'
79
+ | 'pinterest'
80
+ | 'image'
81
+ | 'expand'
82
+ | 'penToSquare'
83
+ | 'wavePulse'
84
+ | 'turkishLira'
85
+ | 'spinnerDotted'
86
+ | 'crown'
87
+ | 'pauseCircle'
88
+ | 'stop'
89
+ | 'warehouse'
90
+ | 'objectsColumn'
91
+ | 'clipboard'
92
+ | 'copy'
93
+ | 'playCircle'
94
+ | 'play'
95
+ | 'venus'
96
+ | 'cartMinus'
97
+ | 'filePlus'
98
+ | 'microchip'
99
+ | 'twitch'
100
+ | 'video'
101
+ | 'buildingColumns'
102
+ | 'fileCheck'
103
+ | 'verified'
104
+ | 'microchipAi'
105
+ | 'trophy'
106
+ | 'barcode'
107
+ | 'code'
108
+ | 'fileArrowUp'
109
+ | 'upload'
110
+ | 'send'
111
+ | 'mars'
112
+ | 'tiktok'
113
+ | 'arrowUpRightAndArrowDownLeftFromCenter'
114
+ | 'ethereum'
115
+ | 'listCheck'
116
+ | 'thumbtack'
117
+ | 'arrowDownLeftAndArrowUpRightToCenter'
118
+ | 'equals'
119
+ | 'lightbulb'
120
+ | 'starHalf'
121
+ | 'addressBook'
122
+ | 'chartScatter'
123
+ | 'indianRupee'
124
+ | 'starHalfFill'
125
+ | 'cartArrowDown'
126
+ | 'calendarClock'
127
+ | 'sortUpFill'
128
+ | 'sparkles'
129
+ | 'bullseye'
130
+ | 'sortDownFill'
131
+ | 'graduationCap'
132
+ | 'hammer'
133
+ | 'bellSlash'
134
+ | 'gauge'
135
+ | 'shop'
136
+ | 'headphones'
137
+ | 'eraser'
138
+ | 'stopwatch'
139
+ | 'deleteLeft'
140
+ | 'hourglass'
141
+ | 'truck'
142
+ | 'wrench'
143
+ | 'microphone'
144
+ | 'megaphone'
145
+ | 'arrowRightArrowLeft'
146
+ | 'bitcoin'
147
+ | 'fileEdit'
148
+ | 'language'
149
+ | 'fileExport'
150
+ | 'save'
151
+ | 'fileImport'
152
+ | 'fileWord'
153
+ | 'microsoft'
154
+ | 'gift'
155
+ | 'box'
156
+ | 'cartPlus'
157
+ | 'thumbsDownFill'
158
+ | 'thumbsUpFill'
159
+ | 'arrowsAlt'
160
+ | 'calculator'
161
+ | 'sortAltSlash'
162
+ | 'arrowsH'
163
+ | 'arrowsV'
164
+ | 'pound'
165
+ | 'prime'
166
+ | 'chartPie'
167
+ | 'reddit'
168
+ | 'sync'
169
+ | 'refresh'
170
+ | 'shoppingBag'
171
+ | 'server'
172
+ | 'cloud'
173
+ | 'database'
174
+ | 'hashtag'
175
+ | 'tag'
176
+ | 'bookmarkFill'
177
+ | 'filterFill'
178
+ | 'heartFill'
179
+ | 'flagFill'
180
+ | 'circle'
181
+ | 'circleFill'
182
+ | 'bolt'
183
+ | 'history'
184
+ | 'at'
185
+ | 'arrowUpRight'
186
+ | 'arrowUpLeft'
187
+ | 'arrowDownLeft'
188
+ | 'arrowDownRight'
189
+ | 'telegram'
190
+ | 'stopCircle'
191
+ | 'whatsapp'
192
+ | 'building'
193
+ | 'qrcode'
194
+ | 'car'
195
+ | 'instagram'
196
+ | 'linkedin'
197
+ | 'slack'
198
+ | 'moon'
199
+ | 'sun'
200
+ | 'youtube'
201
+ | 'vimeo'
202
+ | 'flag'
203
+ | 'wallet'
204
+ | 'map'
205
+ | 'link'
206
+ | 'creditCard'
207
+ | 'discord'
208
+ | 'percentage'
209
+ | 'euro'
210
+ | 'book'
211
+ | 'shield'
212
+ | 'paypal'
213
+ | 'amazon'
214
+ | 'phone'
215
+ | 'filterSlash'
216
+ | 'facebook'
217
+ | 'github'
218
+ | 'twitter'
219
+ | 'stepBackwardAlt'
220
+ | 'stepForwardAlt'
221
+ | 'forward'
222
+ | 'backward'
223
+ | 'fastBackward'
224
+ | 'fastForward'
225
+ | 'pause'
226
+ | 'compass'
227
+ | 'idCard'
228
+ | 'ticket'
229
+ | 'fileO'
230
+ | 'reply'
231
+ | 'directionsAlt'
232
+ | 'directions'
233
+ | 'thumbsUp'
234
+ | 'thumbsDown'
235
+ | 'sortNumericDownAlt'
236
+ | 'sortNumericUpAlt'
237
+ | 'sortAlphaDownAlt'
238
+ | 'sortAlphaUpAlt'
239
+ | 'sortNumericDown'
240
+ | 'sortNumericUp'
241
+ | 'sortAlphaDown'
242
+ | 'sortAlphaUp'
243
+ | 'sortAlt'
244
+ | 'sortAmountUp'
245
+ | 'sortAmountDown'
246
+ | 'sortAmountDownAlt'
247
+ | 'sortAmountUpAlt'
248
+ | 'palette'
249
+ | 'undo'
250
+ | 'desktop'
251
+ | 'slidersV'
252
+ | 'slidersH'
253
+ | 'searchPlus'
254
+ | 'searchMinus'
255
+ | 'fileExcel'
256
+ | 'filePdf'
257
+ | 'checkSquare'
258
+ | 'chartLine'
259
+ | 'userEdit'
260
+ | 'exclamationCircle'
261
+ | 'android'
262
+ | 'mobile'
263
+ | 'google'
264
+ | 'search'
265
+ | 'apple'
266
+ | 'heart'
267
+ | 'tablet'
268
+ | 'key'
269
+ | 'unlock'
270
+ | 'shoppingCart'
271
+ | 'comments'
272
+ | 'comment'
273
+ | 'briefcase'
274
+ | 'bell'
275
+ | 'paperclip'
276
+ | 'shareAlt'
277
+ | 'envelope'
278
+ | 'volumeDown'
279
+ | 'volumeUp'
280
+ | 'volumeOff'
281
+ | 'eject'
282
+ | 'moneyBill'
283
+ | 'images'
284
+ | 'signIn'
285
+ | 'signOut'
286
+ | 'wifi'
287
+ | 'sitemap'
288
+ | 'chartBar'
289
+ | 'camera'
290
+ | 'dollar'
291
+ | 'lockOpen'
292
+ | 'table'
293
+ | 'mapMarker'
294
+ | 'list'
295
+ | 'eyeSlash'
296
+ | 'eye'
297
+ | 'folderOpen'
298
+ | 'folder'
299
+ | 'inbox'
300
+ | 'lock'
301
+ | 'tags'
302
+ | 'powerOff'
303
+ | 'questionCircle'
304
+ | 'info'
305
+ | 'question'
306
+ | 'clone'
307
+ | 'file'
308
+ | 'calendarTimes'
309
+ | 'calendarMinus'
310
+ | 'calendarPlus'
311
+ | 'ellipsisV'
312
+ | 'ellipsisH'
313
+ | 'bookmark'
314
+ | 'globe'
315
+ | 'replay'
316
+ | 'filter'
317
+ | 'sort'
318
+ | 'print'
319
+ | 'alignRight'
320
+ | 'alignLeft'
321
+ | 'alignCenter'
322
+ | 'alignJustify'
323
+ | 'cog'
324
+ | 'cloudDownload'
325
+ | 'download'
326
+ | 'cloudUpload'
327
+ | 'pencil'
328
+ | 'users'
329
+ | 'clock'
330
+ | 'userMinus'
331
+ | 'userPlus'
332
+ | 'trash'
333
+ | 'windowMinimize'
334
+ | 'windowMaximize'
335
+ | 'externalLink'
336
+ | 'user'
337
+ | 'exclamationTriangle'
338
+ | 'calendar'
339
+ | 'chevronCircleLeft'
340
+ | 'chevronCircleDown'
341
+ | 'chevronCircleRight'
342
+ | 'chevronCircleUp'
343
+ | 'angleDoubleDown'
344
+ | 'angleDoubleLeft'
345
+ | 'angleDoubleRight'
346
+ | 'angleDoubleUp'
347
+ | 'angleDown'
348
+ | 'angleLeft'
349
+ | 'angleRight'
350
+ | 'angleUp'
351
+ | 'ban'
352
+ | 'starFill'
353
+ | 'chevronLeft'
354
+ | 'chevronRight'
355
+ | 'chevronDown'
356
+ | 'chevronUp'
357
+ | 'caretLeft'
358
+ | 'caretRight'
359
+ | 'caretDown'
360
+ | 'caretUp'
361
+ | 'check'
362
+ | 'checkCircle'
363
+ | 'timesCircle'
364
+ | 'plus'
365
+ | 'plusCircle'
366
+ | 'minus'
367
+ | 'minusCircle'
368
+ | 'circleOn'
369
+ | 'circleOff'
370
+ | 'sortDown'
371
+ | 'sortUp'
372
+ | 'stepBackward'
373
+ | 'stepForward'
374
+ | 'thLarge'
375
+ | 'arrowDown'
376
+ | 'arrowLeft'
377
+ | 'arrowRight'
378
+ | 'arrowUp'
379
+ | 'bars'
380
+ | 'arrowCircleDown'
381
+ | 'arrowCircleLeft'
382
+ | 'arrowCircleRight'
383
+ | 'arrowCircleUp'
384
+ | 'infoCircle'
385
+ | 'home'
386
+ | 'spinner'
387
+ | undefined
388
+ }
389
+ export type DialogResolvedProps = {
390
+ visible: boolean
391
+ closable: boolean
392
+ position: 'left' | 'right' | 'center' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
393
+ dismissableMask: boolean
394
+ closeOnEscape: boolean
395
+ modal: boolean
396
+ showHeader: boolean
397
+ header?: string | undefined
398
+ footer?: string | undefined
399
+ appendTo?: any
400
+ maskClass?: string | undefined
401
+ style?: any
402
+ class?: any
403
+ id?: string | undefined
404
+ closeIcon?:
405
+ | 'times'
406
+ | 'folderPlus'
407
+ | 'receipt'
408
+ | 'asterisk'
409
+ | 'star'
410
+ | 'faceSmile'
411
+ | 'pinterest'
412
+ | 'image'
413
+ | 'expand'
414
+ | 'penToSquare'
415
+ | 'wavePulse'
416
+ | 'turkishLira'
417
+ | 'spinnerDotted'
418
+ | 'crown'
419
+ | 'pauseCircle'
420
+ | 'stop'
421
+ | 'warehouse'
422
+ | 'objectsColumn'
423
+ | 'clipboard'
424
+ | 'copy'
425
+ | 'playCircle'
426
+ | 'play'
427
+ | 'venus'
428
+ | 'cartMinus'
429
+ | 'filePlus'
430
+ | 'microchip'
431
+ | 'twitch'
432
+ | 'video'
433
+ | 'buildingColumns'
434
+ | 'fileCheck'
435
+ | 'verified'
436
+ | 'microchipAi'
437
+ | 'trophy'
438
+ | 'barcode'
439
+ | 'code'
440
+ | 'fileArrowUp'
441
+ | 'upload'
442
+ | 'send'
443
+ | 'mars'
444
+ | 'tiktok'
445
+ | 'arrowUpRightAndArrowDownLeftFromCenter'
446
+ | 'ethereum'
447
+ | 'listCheck'
448
+ | 'thumbtack'
449
+ | 'arrowDownLeftAndArrowUpRightToCenter'
450
+ | 'equals'
451
+ | 'lightbulb'
452
+ | 'starHalf'
453
+ | 'addressBook'
454
+ | 'chartScatter'
455
+ | 'indianRupee'
456
+ | 'starHalfFill'
457
+ | 'cartArrowDown'
458
+ | 'calendarClock'
459
+ | 'sortUpFill'
460
+ | 'sparkles'
461
+ | 'bullseye'
462
+ | 'sortDownFill'
463
+ | 'graduationCap'
464
+ | 'hammer'
465
+ | 'bellSlash'
466
+ | 'gauge'
467
+ | 'shop'
468
+ | 'headphones'
469
+ | 'eraser'
470
+ | 'stopwatch'
471
+ | 'deleteLeft'
472
+ | 'hourglass'
473
+ | 'truck'
474
+ | 'wrench'
475
+ | 'microphone'
476
+ | 'megaphone'
477
+ | 'arrowRightArrowLeft'
478
+ | 'bitcoin'
479
+ | 'fileEdit'
480
+ | 'language'
481
+ | 'fileExport'
482
+ | 'save'
483
+ | 'fileImport'
484
+ | 'fileWord'
485
+ | 'microsoft'
486
+ | 'gift'
487
+ | 'box'
488
+ | 'cartPlus'
489
+ | 'thumbsDownFill'
490
+ | 'thumbsUpFill'
491
+ | 'arrowsAlt'
492
+ | 'calculator'
493
+ | 'sortAltSlash'
494
+ | 'arrowsH'
495
+ | 'arrowsV'
496
+ | 'pound'
497
+ | 'prime'
498
+ | 'chartPie'
499
+ | 'reddit'
500
+ | 'sync'
501
+ | 'refresh'
502
+ | 'shoppingBag'
503
+ | 'server'
504
+ | 'cloud'
505
+ | 'database'
506
+ | 'hashtag'
507
+ | 'tag'
508
+ | 'bookmarkFill'
509
+ | 'filterFill'
510
+ | 'heartFill'
511
+ | 'flagFill'
512
+ | 'circle'
513
+ | 'circleFill'
514
+ | 'bolt'
515
+ | 'history'
516
+ | 'at'
517
+ | 'arrowUpRight'
518
+ | 'arrowUpLeft'
519
+ | 'arrowDownLeft'
520
+ | 'arrowDownRight'
521
+ | 'telegram'
522
+ | 'stopCircle'
523
+ | 'whatsapp'
524
+ | 'building'
525
+ | 'qrcode'
526
+ | 'car'
527
+ | 'instagram'
528
+ | 'linkedin'
529
+ | 'slack'
530
+ | 'moon'
531
+ | 'sun'
532
+ | 'youtube'
533
+ | 'vimeo'
534
+ | 'flag'
535
+ | 'wallet'
536
+ | 'map'
537
+ | 'link'
538
+ | 'creditCard'
539
+ | 'discord'
540
+ | 'percentage'
541
+ | 'euro'
542
+ | 'book'
543
+ | 'shield'
544
+ | 'paypal'
545
+ | 'amazon'
546
+ | 'phone'
547
+ | 'filterSlash'
548
+ | 'facebook'
549
+ | 'github'
550
+ | 'twitter'
551
+ | 'stepBackwardAlt'
552
+ | 'stepForwardAlt'
553
+ | 'forward'
554
+ | 'backward'
555
+ | 'fastBackward'
556
+ | 'fastForward'
557
+ | 'pause'
558
+ | 'compass'
559
+ | 'idCard'
560
+ | 'ticket'
561
+ | 'fileO'
562
+ | 'reply'
563
+ | 'directionsAlt'
564
+ | 'directions'
565
+ | 'thumbsUp'
566
+ | 'thumbsDown'
567
+ | 'sortNumericDownAlt'
568
+ | 'sortNumericUpAlt'
569
+ | 'sortAlphaDownAlt'
570
+ | 'sortAlphaUpAlt'
571
+ | 'sortNumericDown'
572
+ | 'sortNumericUp'
573
+ | 'sortAlphaDown'
574
+ | 'sortAlphaUp'
575
+ | 'sortAlt'
576
+ | 'sortAmountUp'
577
+ | 'sortAmountDown'
578
+ | 'sortAmountDownAlt'
579
+ | 'sortAmountUpAlt'
580
+ | 'palette'
581
+ | 'undo'
582
+ | 'desktop'
583
+ | 'slidersV'
584
+ | 'slidersH'
585
+ | 'searchPlus'
586
+ | 'searchMinus'
587
+ | 'fileExcel'
588
+ | 'filePdf'
589
+ | 'checkSquare'
590
+ | 'chartLine'
591
+ | 'userEdit'
592
+ | 'exclamationCircle'
593
+ | 'android'
594
+ | 'mobile'
595
+ | 'google'
596
+ | 'search'
597
+ | 'apple'
598
+ | 'heart'
599
+ | 'tablet'
600
+ | 'key'
601
+ | 'unlock'
602
+ | 'shoppingCart'
603
+ | 'comments'
604
+ | 'comment'
605
+ | 'briefcase'
606
+ | 'bell'
607
+ | 'paperclip'
608
+ | 'shareAlt'
609
+ | 'envelope'
610
+ | 'volumeDown'
611
+ | 'volumeUp'
612
+ | 'volumeOff'
613
+ | 'eject'
614
+ | 'moneyBill'
615
+ | 'images'
616
+ | 'signIn'
617
+ | 'signOut'
618
+ | 'wifi'
619
+ | 'sitemap'
620
+ | 'chartBar'
621
+ | 'camera'
622
+ | 'dollar'
623
+ | 'lockOpen'
624
+ | 'table'
625
+ | 'mapMarker'
626
+ | 'list'
627
+ | 'eyeSlash'
628
+ | 'eye'
629
+ | 'folderOpen'
630
+ | 'folder'
631
+ | 'inbox'
632
+ | 'lock'
633
+ | 'tags'
634
+ | 'powerOff'
635
+ | 'questionCircle'
636
+ | 'info'
637
+ | 'question'
638
+ | 'clone'
639
+ | 'file'
640
+ | 'calendarTimes'
641
+ | 'calendarMinus'
642
+ | 'calendarPlus'
643
+ | 'ellipsisV'
644
+ | 'ellipsisH'
645
+ | 'bookmark'
646
+ | 'globe'
647
+ | 'replay'
648
+ | 'filter'
649
+ | 'sort'
650
+ | 'print'
651
+ | 'alignRight'
652
+ | 'alignLeft'
653
+ | 'alignCenter'
654
+ | 'alignJustify'
655
+ | 'cog'
656
+ | 'cloudDownload'
657
+ | 'download'
658
+ | 'cloudUpload'
659
+ | 'pencil'
660
+ | 'users'
661
+ | 'clock'
662
+ | 'userMinus'
663
+ | 'userPlus'
664
+ | 'trash'
665
+ | 'windowMinimize'
666
+ | 'windowMaximize'
667
+ | 'externalLink'
668
+ | 'user'
669
+ | 'exclamationTriangle'
670
+ | 'calendar'
671
+ | 'chevronCircleLeft'
672
+ | 'chevronCircleDown'
673
+ | 'chevronCircleRight'
674
+ | 'chevronCircleUp'
675
+ | 'angleDoubleDown'
676
+ | 'angleDoubleLeft'
677
+ | 'angleDoubleRight'
678
+ | 'angleDoubleUp'
679
+ | 'angleDown'
680
+ | 'angleLeft'
681
+ | 'angleRight'
682
+ | 'angleUp'
683
+ | 'ban'
684
+ | 'starFill'
685
+ | 'chevronLeft'
686
+ | 'chevronRight'
687
+ | 'chevronDown'
688
+ | 'chevronUp'
689
+ | 'caretLeft'
690
+ | 'caretRight'
691
+ | 'caretDown'
692
+ | 'caretUp'
693
+ | 'check'
694
+ | 'checkCircle'
695
+ | 'timesCircle'
696
+ | 'plus'
697
+ | 'plusCircle'
698
+ | 'minus'
699
+ | 'minusCircle'
700
+ | 'circleOn'
701
+ | 'circleOff'
702
+ | 'sortDown'
703
+ | 'sortUp'
704
+ | 'stepBackward'
705
+ | 'stepForward'
706
+ | 'thLarge'
707
+ | 'arrowDown'
708
+ | 'arrowLeft'
709
+ | 'arrowRight'
710
+ | 'arrowUp'
711
+ | 'bars'
712
+ | 'arrowCircleDown'
713
+ | 'arrowCircleLeft'
714
+ | 'arrowCircleRight'
715
+ | 'arrowCircleUp'
716
+ | 'infoCircle'
717
+ | 'home'
718
+ | 'spinner'
719
+ | undefined
720
+ }