@shohojdhara/atomix 0.2.3 → 0.2.4

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 (74) hide show
  1. package/dist/atomix.css +430 -125
  2. package/dist/atomix.min.css +4 -4
  3. package/dist/index.d.ts +188 -42
  4. package/dist/index.esm.js +2049 -1516
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/index.js +3571 -3055
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.min.js +1 -1
  9. package/dist/index.min.js.map +1 -1
  10. package/dist/themes/boomdevs.css +379 -74
  11. package/dist/themes/boomdevs.min.css +4 -4
  12. package/dist/themes/esrar.css +430 -125
  13. package/dist/themes/esrar.min.css +4 -4
  14. package/dist/themes/mashroom.css +429 -124
  15. package/dist/themes/mashroom.min.css +4 -4
  16. package/dist/themes/shaj-default.css +429 -124
  17. package/dist/themes/shaj-default.min.css +4 -4
  18. package/package.json +1 -1
  19. package/src/components/Accordion/Accordion.stories.tsx +684 -21
  20. package/src/components/Accordion/Accordion.tsx +5 -7
  21. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +456 -2237
  22. package/src/components/AtomixGlass/AtomixGlass.test.tsx +2 -2
  23. package/src/components/AtomixGlass/AtomixGlass.tsx +728 -666
  24. package/src/components/AtomixGlass/shader-utils.ts +589 -33
  25. package/src/components/AtomixGlass/stories/Examples.stories.tsx +5800 -0
  26. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
  27. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1066 -0
  28. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +397 -0
  29. package/src/components/AtomixGlass/stories/shared-components.tsx +310 -0
  30. package/src/components/Badge/Badge.stories.tsx +3 -2
  31. package/src/components/Badge/Badge.tsx +9 -7
  32. package/src/components/Button/Button.stories.tsx +501 -20
  33. package/src/components/Button/Button.tsx +4 -5
  34. package/src/components/Callout/Callout.tsx +27 -9
  35. package/src/components/Card/Card.stories.tsx +560 -1
  36. package/src/components/Card/Card.tsx +1 -1
  37. package/src/components/DatePicker/DatePicker.stories.tsx +697 -9
  38. package/src/components/EdgePanel/EdgePanel.stories.tsx +476 -3
  39. package/src/components/EdgePanel/EdgePanel.tsx +86 -13
  40. package/src/components/Messages/Messages.stories.tsx +113 -0
  41. package/src/components/Messages/Messages.tsx +51 -9
  42. package/src/components/Modal/Modal.stories.tsx +6 -4
  43. package/src/components/Modal/Modal.tsx +2 -3
  44. package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
  45. package/src/components/Navigation/Nav/Nav.tsx +17 -4
  46. package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
  47. package/src/components/Navigation/Navbar/Navbar.tsx +66 -28
  48. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
  49. package/src/components/Navigation/SideMenu/SideMenu.tsx +28 -2
  50. package/src/components/Progress/Progress.tsx +17 -2
  51. package/src/components/Spinner/Spinner.tsx +17 -2
  52. package/src/lib/composables/useBarChart.ts +14 -4
  53. package/src/lib/composables/useChart.ts +223 -370
  54. package/src/lib/composables/useChartToolbar.ts +11 -20
  55. package/src/lib/composables/useEdgePanel.ts +81 -35
  56. package/src/lib/composables/useLineChart.ts +4 -2
  57. package/src/lib/composables/usePieChart.ts +4 -14
  58. package/src/lib/constants/components.ts +1 -0
  59. package/src/lib/types/components.ts +97 -15
  60. package/src/styles/01-settings/_settings.background.scss +2 -2
  61. package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
  62. package/src/styles/02-tools/_tools.utility-api.scss +62 -27
  63. package/src/styles/06-components/_components.atomix-glass.scss +72 -0
  64. package/src/styles/06-components/_components.badge.scss +2 -15
  65. package/src/styles/06-components/_components.callout.scss +10 -5
  66. package/src/styles/06-components/_components.edge-panel.scss +101 -0
  67. package/src/styles/06-components/_components.messages.scss +176 -0
  68. package/src/styles/06-components/_components.modal.scss +13 -3
  69. package/src/styles/06-components/_components.navbar.scss +12 -1
  70. package/src/styles/06-components/_components.side-menu.scss +5 -0
  71. package/src/styles/99-utilities/_index.scss +1 -0
  72. package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
  73. package/src/styles/99-utilities/_utilities.opacity.scss +1 -1
  74. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
@@ -149,9 +149,697 @@ export const DateRangeSelection: Story = {
149
149
  ? formatDateRange(dateRange.startDate, dateRange.endDate, 'MM/dd/yyyy')
150
150
  : dateRange.startDate
151
151
  ? formatDateRange(dateRange.startDate, null, 'MM/dd/yyyy')
152
- : 'No range selected'}
152
+ : 'No date selected'}
153
+ </p>
154
+ </div>
155
+ </div>
156
+ );
157
+ },
158
+ };
159
+
160
+ // Glass Effect - Basic
161
+ export const GlassEffectBasic: Story = {
162
+ args: {
163
+ placeholder: 'Select date...',
164
+ clearable: true,
165
+ showTodayButton: true,
166
+ selectionMode: 'single',
167
+ glass: true,
168
+ },
169
+ render: args => {
170
+ const [date, setDate] = useState<Date | null>(null);
171
+ return (
172
+ <div
173
+ style={{
174
+ background: 'url(https://images.unsplash.com/photo-1518837695005-2083093ee35b?w=1920)',
175
+ backgroundSize: 'cover',
176
+ backgroundPosition: 'center',
177
+ padding: '3rem',
178
+ borderRadius: '12px',
179
+ minHeight: '95vh',
180
+ display: 'flex',
181
+ flexDirection: 'column',
182
+ alignItems: 'center',
183
+ justifyContent: 'center',
184
+ gap: '2rem',
185
+ }}
186
+ >
187
+ <div
188
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
189
+ >
190
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Glass DatePicker</h3>
191
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
192
+ DatePicker with glass morphism effect
193
+ </p>
194
+ </div>
195
+ <div style={{ width: '300px' }}>
196
+ <DatePicker {...args} value={date} onChange={setDate} />
197
+ </div>
198
+ </div>
199
+ );
200
+ },
201
+ };
202
+
203
+ // Glass Mode Variants - Standard
204
+ export const GlassModeStandard: Story = {
205
+ args: {
206
+ placeholder: 'Select date...',
207
+ selectionMode: 'single',
208
+ glass: {
209
+ mode: 'standard',
210
+ displacementScale: 50,
211
+ blurAmount: 3,
212
+ saturation: 160,
213
+ aberrationIntensity: 0,
214
+ cornerRadius: 12,
215
+ overLight: false,
216
+ elasticity: 0,
217
+ } as any,
218
+ },
219
+ render: args => {
220
+ const [date, setDate] = useState<Date | null>(null);
221
+ return (
222
+ <div
223
+ style={{
224
+ background: 'url(https://images.unsplash.com/photo-1518837695005-2083093ee35b?w=1920)',
225
+ backgroundSize: 'cover',
226
+ backgroundPosition: 'center',
227
+ padding: '3rem',
228
+ borderRadius: '12px',
229
+ minHeight: '95vh',
230
+ display: 'flex',
231
+ flexDirection: 'column',
232
+ alignItems: 'center',
233
+ justifyContent: 'center',
234
+ gap: '2rem',
235
+ }}
236
+ >
237
+ <div
238
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
239
+ >
240
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Standard Glass Mode</h3>
241
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
242
+ Classic glass morphism with blur and displacement
243
+ </p>
244
+ </div>
245
+ <div style={{ width: '300px' }}>
246
+ <DatePicker {...args} value={date} onChange={setDate} />
247
+ </div>
248
+ </div>
249
+ );
250
+ },
251
+ };
252
+
253
+ // Glass Mode Variants - Polar
254
+ export const GlassModePolar: Story = {
255
+ args: {
256
+ placeholder: 'Select date...',
257
+ selectionMode: 'single',
258
+ glass: {
259
+ mode: 'polar',
260
+ displacementScale: 60,
261
+ blurAmount: 2.5,
262
+ saturation: 180,
263
+ aberrationIntensity: 2,
264
+ cornerRadius: 12,
265
+ } as any,
266
+ },
267
+ render: args => {
268
+ const [date, setDate] = useState<Date | null>(null);
269
+ return (
270
+ <div
271
+ style={{
272
+ background: 'url(https://images.unsplash.com/photo-1557683316-973673baf926?w=1920)',
273
+ backgroundSize: 'cover',
274
+ backgroundPosition: 'center',
275
+ padding: '3rem',
276
+ borderRadius: '12px',
277
+ minHeight: '95vh',
278
+ display: 'flex',
279
+ flexDirection: 'column',
280
+ alignItems: 'center',
281
+ justifyContent: 'center',
282
+ gap: '2rem',
283
+ }}
284
+ >
285
+ <div
286
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
287
+ >
288
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Polar Glass Mode</h3>
289
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>Radial distortion effect from center</p>
290
+ </div>
291
+ <div style={{ width: '300px' }}>
292
+ <DatePicker {...args} value={date} onChange={setDate} />
293
+ </div>
294
+ </div>
295
+ );
296
+ },
297
+ };
298
+
299
+ // Glass Mode Variants - Prominent
300
+ export const GlassModeProminent: Story = {
301
+ args: {
302
+ placeholder: 'Select date...',
303
+ selectionMode: 'single',
304
+ glass: {
305
+ mode: 'prominent',
306
+ displacementScale: 80,
307
+ blurAmount: 3.5,
308
+ saturation: 200,
309
+ aberrationIntensity: 3,
310
+ cornerRadius: 12,
311
+ } as any,
312
+ },
313
+ render: args => {
314
+ const [date, setDate] = useState<Date | null>(null);
315
+ return (
316
+ <div
317
+ style={{
318
+ background: 'url(https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=1920)',
319
+ backgroundSize: 'cover',
320
+ backgroundPosition: 'center',
321
+ padding: '3rem',
322
+ borderRadius: '12px',
323
+ minHeight: '95vh',
324
+ display: 'flex',
325
+ flexDirection: 'column',
326
+ alignItems: 'center',
327
+ justifyContent: 'center',
328
+ gap: '2rem',
329
+ }}
330
+ >
331
+ <div
332
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
333
+ >
334
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Prominent Glass Mode</h3>
335
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
336
+ Enhanced distortion with maximum depth
337
+ </p>
338
+ </div>
339
+ <div style={{ width: '300px' }}>
340
+ <DatePicker {...args} value={date} onChange={setDate} />
341
+ </div>
342
+ </div>
343
+ );
344
+ },
345
+ };
346
+
347
+ // Glass Mode Variants - Shader
348
+ export const GlassModeShader: Story = {
349
+ args: {
350
+ placeholder: 'Select date...',
351
+ selectionMode: 'single',
352
+ glass: {
353
+ mode: 'shader',
354
+ shaderVariant: 'liquidGlass',
355
+ displacementScale: 55,
356
+ blurAmount: 2.8,
357
+ saturation: 170,
358
+ cornerRadius: 12,
359
+ } as any,
360
+ },
361
+ render: args => {
362
+ const [date, setDate] = useState<Date | null>(null);
363
+ return (
364
+ <div
365
+ style={{
366
+ background: 'url(https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1920)',
367
+ backgroundSize: 'cover',
368
+ backgroundPosition: 'center',
369
+ padding: '3rem',
370
+ borderRadius: '12px',
371
+ minHeight: '95vh',
372
+ display: 'flex',
373
+ flexDirection: 'column',
374
+ alignItems: 'center',
375
+ justifyContent: 'center',
376
+ gap: '2rem',
377
+ }}
378
+ >
379
+ <div
380
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
381
+ >
382
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Shader Glass Mode</h3>
383
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>GPU-accelerated liquid glass effect</p>
384
+ </div>
385
+ <div style={{ width: '300px' }}>
386
+ <DatePicker {...args} value={date} onChange={setDate} />
387
+ </div>
388
+ </div>
389
+ );
390
+ },
391
+ };
392
+
393
+ // All Glass Modes Comparison
394
+ export const AllGlassModesComparison: Story = {
395
+ render: () => {
396
+ const [date1, setDate1] = useState<Date | null>(null);
397
+ const [date2, setDate2] = useState<Date | null>(null);
398
+ const [date3, setDate3] = useState<Date | null>(null);
399
+ const [date4, setDate4] = useState<Date | null>(null);
400
+
401
+ return (
402
+ <div
403
+ style={{
404
+ background: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1920)',
405
+ backgroundSize: 'cover',
406
+ backgroundPosition: 'center',
407
+ padding: '3rem',
408
+ borderRadius: '12px',
409
+ minHeight: '95vh',
410
+ overflow: 'auto',
411
+ }}
412
+ >
413
+ <div style={{ maxWidth: '1400px', margin: '0 auto' }}>
414
+ <h2
415
+ style={{
416
+ textAlign: 'center',
417
+ color: 'white',
418
+ marginBottom: '3rem',
419
+ fontSize: '2rem',
420
+ textShadow: '0 2px 8px rgba(0,0,0,0.5)',
421
+ }}
422
+ >
423
+ Glass Mode DatePicker Comparison
424
+ </h2>
425
+
426
+ <div
427
+ style={{
428
+ display: 'grid',
429
+ gridTemplateColumns: 'repeat(auto-fit, minmax(280px, 1fr))',
430
+ gap: '2rem',
431
+ }}
432
+ >
433
+ {/* Standard Mode */}
434
+ <div
435
+ style={{
436
+ background: 'rgba(255,255,255,0.08)',
437
+ padding: '2rem',
438
+ borderRadius: '12px',
439
+ backdropFilter: 'blur(10px)',
440
+ textAlign: 'center',
441
+ }}
442
+ >
443
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.25rem' }}>
444
+ Standard
445
+ </h3>
446
+ <p
447
+ style={{
448
+ color: 'rgba(255,255,255,0.8)',
449
+ fontSize: '0.875rem',
450
+ marginBottom: '1.5rem',
451
+ }}
452
+ >
453
+ Classic blur and displacement
454
+ </p>
455
+ <DatePicker
456
+ placeholder="Select date..."
457
+ value={date1}
458
+ onChange={setDate1}
459
+ glass={
460
+ {
461
+ mode: 'standard',
462
+ displacementScale: 50,
463
+ blurAmount: 3,
464
+ saturation: 160,
465
+ } as any
466
+ }
467
+ />
468
+ </div>
469
+
470
+ {/* Polar Mode */}
471
+ <div
472
+ style={{
473
+ background: 'rgba(255,255,255,0.08)',
474
+ padding: '2rem',
475
+ borderRadius: '12px',
476
+ backdropFilter: 'blur(10px)',
477
+ textAlign: 'center',
478
+ }}
479
+ >
480
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.25rem' }}>Polar</h3>
481
+ <p
482
+ style={{
483
+ color: 'rgba(255,255,255,0.8)',
484
+ fontSize: '0.875rem',
485
+ marginBottom: '1.5rem',
486
+ }}
487
+ >
488
+ Radial distortion effect
489
+ </p>
490
+ <DatePicker
491
+ placeholder="Select date..."
492
+ value={date2}
493
+ onChange={setDate2}
494
+ glass={
495
+ {
496
+ mode: 'polar',
497
+ displacementScale: 60,
498
+ blurAmount: 2.5,
499
+ saturation: 180,
500
+ } as any
501
+ }
502
+ />
503
+ </div>
504
+
505
+ {/* Prominent Mode */}
506
+ <div
507
+ style={{
508
+ background: 'rgba(255,255,255,0.08)',
509
+ padding: '2rem',
510
+ borderRadius: '12px',
511
+ backdropFilter: 'blur(10px)',
512
+ textAlign: 'center',
513
+ }}
514
+ >
515
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.25rem' }}>
516
+ Prominent
517
+ </h3>
518
+ <p
519
+ style={{
520
+ color: 'rgba(255,255,255,0.8)',
521
+ fontSize: '0.875rem',
522
+ marginBottom: '1.5rem',
523
+ }}
524
+ >
525
+ Maximum depth and distortion
526
+ </p>
527
+ <DatePicker
528
+ placeholder="Select date..."
529
+ value={date3}
530
+ onChange={setDate3}
531
+ glass={
532
+ {
533
+ mode: 'prominent',
534
+ displacementScale: 80,
535
+ blurAmount: 3.5,
536
+ saturation: 200,
537
+ } as any
538
+ }
539
+ />
540
+ </div>
541
+
542
+ {/* Shader Mode */}
543
+ <div
544
+ style={{
545
+ background: 'rgba(255,255,255,0.08)',
546
+ padding: '2rem',
547
+ borderRadius: '12px',
548
+ backdropFilter: 'blur(10px)',
549
+ textAlign: 'center',
550
+ }}
551
+ >
552
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.25rem' }}>Shader</h3>
553
+ <p
554
+ style={{
555
+ color: 'rgba(255,255,255,0.8)',
556
+ fontSize: '0.875rem',
557
+ marginBottom: '1.5rem',
558
+ }}
559
+ >
560
+ GPU-accelerated liquid glass
561
+ </p>
562
+ <DatePicker
563
+ placeholder="Select date..."
564
+ value={date4}
565
+ onChange={setDate4}
566
+ glass={
567
+ {
568
+ mode: 'shader',
569
+ shaderVariant: 'liquidGlass',
570
+ displacementScale: 55,
571
+ blurAmount: 2.8,
572
+ } as any
573
+ }
574
+ />
575
+ </div>
576
+ </div>
577
+ </div>
578
+ </div>
579
+ );
580
+ },
581
+ };
582
+
583
+ // Glass DatePicker with Range Selection
584
+ export const GlassRangeSelection: Story = {
585
+ args: {
586
+ selectionMode: 'range',
587
+ placeholder: 'Select date range...',
588
+ glass: true,
589
+ },
590
+ render: args => {
591
+ const [dateRange, setDateRange] = useState<DateRange>({
592
+ startDate: null,
593
+ endDate: null,
594
+ });
595
+
596
+ return (
597
+ <div
598
+ style={{
599
+ background: 'url(https://images.unsplash.com/photo-1519681393784-d120267933ba?w=1920)',
600
+ backgroundSize: 'cover',
601
+ backgroundPosition: 'center',
602
+ padding: '3rem',
603
+ borderRadius: '12px',
604
+ minHeight: '95vh',
605
+ display: 'flex',
606
+ flexDirection: 'column',
607
+ alignItems: 'center',
608
+ justifyContent: 'center',
609
+ gap: '2rem',
610
+ }}
611
+ >
612
+ <div
613
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
614
+ >
615
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Glass Range DatePicker</h3>
616
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
617
+ Select date ranges with glass morphism effect
153
618
  </p>
154
619
  </div>
620
+ <div style={{ width: '300px' }}>
621
+ <DatePicker
622
+ {...args}
623
+ startDate={dateRange.startDate}
624
+ endDate={dateRange.endDate}
625
+ onRangeChange={setDateRange}
626
+ />
627
+ {dateRange.startDate && dateRange.endDate && (
628
+ <div
629
+ style={{
630
+ marginTop: '1rem',
631
+ padding: '1rem',
632
+ background: 'rgba(255,255,255,0.1)',
633
+ backdropFilter: 'blur(10px)',
634
+ borderRadius: '8px',
635
+ color: 'white',
636
+ textAlign: 'center',
637
+ }}
638
+ >
639
+ <p style={{ fontSize: '0.875rem' }}>
640
+ Range: {formatDateRange(dateRange.startDate, dateRange.endDate, 'MM/dd/yyyy')}
641
+ </p>
642
+ </div>
643
+ )}
644
+ </div>
645
+ </div>
646
+ );
647
+ },
648
+ };
649
+
650
+ // Glass DatePicker Inline
651
+ export const GlassInline: Story = {
652
+ args: {
653
+ inline: true,
654
+ showWeekNumbers: true,
655
+ selectionMode: 'single',
656
+ glass: {
657
+ mode: 'polar',
658
+ displacementScale: 60,
659
+ blurAmount: 2.5,
660
+ } as any,
661
+ },
662
+ render: args => {
663
+ const [date, setDate] = useState<Date | null>(new Date());
664
+ return (
665
+ <div
666
+ style={{
667
+ background: 'url(https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1920)',
668
+ backgroundSize: 'cover',
669
+ backgroundPosition: 'center',
670
+ padding: '3rem',
671
+ borderRadius: '12px',
672
+ minHeight: '95vh',
673
+ display: 'flex',
674
+ flexDirection: 'column',
675
+ alignItems: 'center',
676
+ justifyContent: 'center',
677
+ gap: '2rem',
678
+ }}
679
+ >
680
+ <div
681
+ style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}
682
+ >
683
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Inline Glass DatePicker</h3>
684
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
685
+ Always visible with glass morphism effect
686
+ </p>
687
+ </div>
688
+ <DatePicker {...args} value={date} onChange={setDate} />
689
+ </div>
690
+ );
691
+ },
692
+ };
693
+
694
+ // Glass DatePicker Showcase
695
+ export const GlassShowcase: Story = {
696
+ render: () => {
697
+ const [date1, setDate1] = useState<Date | null>(null);
698
+ const [date2, setDate2] = useState<Date | null>(null);
699
+ const [dateRange, setDateRange] = useState<DateRange>({
700
+ startDate: null,
701
+ endDate: null,
702
+ });
703
+
704
+ return (
705
+ <div
706
+ style={{
707
+ background: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1920)',
708
+ backgroundSize: 'cover',
709
+ backgroundPosition: 'center',
710
+ padding: '3rem',
711
+ borderRadius: '12px',
712
+ minHeight: '95vh',
713
+ overflow: 'auto',
714
+ }}
715
+ >
716
+ <div style={{ maxWidth: '1400px', margin: '0 auto' }}>
717
+ <h2
718
+ style={{
719
+ textAlign: 'center',
720
+ color: 'white',
721
+ marginBottom: '3rem',
722
+ fontSize: '2rem',
723
+ textShadow: '0 2px 8px rgba(0,0,0,0.5)',
724
+ }}
725
+ >
726
+ Glass DatePicker Showcase
727
+ </h2>
728
+
729
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '3rem' }}>
730
+ {/* Single Date Selection */}
731
+ <div
732
+ style={{
733
+ background: 'rgba(255,255,255,0.08)',
734
+ padding: '2rem',
735
+ borderRadius: '12px',
736
+ backdropFilter: 'blur(10px)',
737
+ }}
738
+ >
739
+ <h3 style={{ color: 'white', marginBottom: '1.5rem' }}>Single Date Selection</h3>
740
+ <div
741
+ style={{ display: 'flex', gap: '2rem', flexWrap: 'wrap', justifyContent: 'center' }}
742
+ >
743
+ <div style={{ flex: '1 1 250px', minWidth: '250px' }}>
744
+ <label style={{ color: 'white', display: 'block', marginBottom: '0.5rem' }}>
745
+ Standard Glass
746
+ </label>
747
+ <DatePicker
748
+ placeholder="Select date..."
749
+ value={date1}
750
+ onChange={setDate1}
751
+ glass={true}
752
+ />
753
+ </div>
754
+ <div style={{ flex: '1 1 250px', minWidth: '250px' }}>
755
+ <label style={{ color: 'white', display: 'block', marginBottom: '0.5rem' }}>
756
+ Polar Glass
757
+ </label>
758
+ <DatePicker
759
+ placeholder="Select date..."
760
+ value={date2}
761
+ onChange={setDate2}
762
+ glass={
763
+ {
764
+ mode: 'polar',
765
+ displacementScale: 60,
766
+ } as any
767
+ }
768
+ />
769
+ </div>
770
+ </div>
771
+ </div>
772
+
773
+ {/* Range Selection */}
774
+ <div
775
+ style={{
776
+ background: 'rgba(255,255,255,0.08)',
777
+ padding: '2rem',
778
+ borderRadius: '12px',
779
+ backdropFilter: 'blur(10px)',
780
+ }}
781
+ >
782
+ <h3 style={{ color: 'white', marginBottom: '1.5rem' }}>Range Selection</h3>
783
+ <div style={{ display: 'flex', justifyContent: 'center' }}>
784
+ <div style={{ width: '300px' }}>
785
+ <DatePicker
786
+ selectionMode="range"
787
+ placeholder="Select date range..."
788
+ startDate={dateRange.startDate}
789
+ endDate={dateRange.endDate}
790
+ onRangeChange={setDateRange}
791
+ glass={
792
+ {
793
+ mode: 'shader',
794
+ shaderVariant: 'liquidGlass',
795
+ } as any
796
+ }
797
+ />
798
+ </div>
799
+ </div>
800
+ </div>
801
+
802
+ {/* Different Sizes */}
803
+ <div
804
+ style={{
805
+ background: 'rgba(255,255,255,0.08)',
806
+ padding: '2rem',
807
+ borderRadius: '12px',
808
+ backdropFilter: 'blur(10px)',
809
+ }}
810
+ >
811
+ <h3 style={{ color: 'white', marginBottom: '1.5rem' }}>Different Sizes</h3>
812
+ <div
813
+ style={{
814
+ display: 'flex',
815
+ gap: '2rem',
816
+ flexWrap: 'wrap',
817
+ justifyContent: 'center',
818
+ alignItems: 'center',
819
+ }}
820
+ >
821
+ <div style={{ flex: '1 1 200px', minWidth: '200px' }}>
822
+ <label style={{ color: 'white', display: 'block', marginBottom: '0.5rem' }}>
823
+ Small
824
+ </label>
825
+ <DatePicker placeholder="Select date..." size="sm" glass={true} />
826
+ </div>
827
+ <div style={{ flex: '1 1 250px', minWidth: '250px' }}>
828
+ <label style={{ color: 'white', display: 'block', marginBottom: '0.5rem' }}>
829
+ Medium
830
+ </label>
831
+ <DatePicker placeholder="Select date..." size="md" glass={true} />
832
+ </div>
833
+ <div style={{ flex: '1 1 300px', minWidth: '300px' }}>
834
+ <label style={{ color: 'white', display: 'block', marginBottom: '0.5rem' }}>
835
+ Large
836
+ </label>
837
+ <DatePicker placeholder="Select date..." size="lg" glass={true} />
838
+ </div>
839
+ </div>
840
+ </div>
841
+ </div>
842
+ </div>
155
843
  </div>
156
844
  );
157
845
  },
@@ -338,7 +1026,7 @@ export const DifferentFormats: Story = {
338
1026
  },
339
1027
  };
340
1028
 
341
- export const GlassEffect: Story = {
1029
+ export const WithGlassEffect: Story = {
342
1030
  args: {
343
1031
  placeholder: 'Select date...',
344
1032
  glass: true,
@@ -382,7 +1070,7 @@ export const GlassEffectCustomized: Story = {
382
1070
  cornerRadius: 16,
383
1071
  overLight: false,
384
1072
  mode: 'polar' as const,
385
- },
1073
+ } as any,
386
1074
  size: 'md',
387
1075
  placement: 'bottom-start',
388
1076
  selectionMode: 'single',
@@ -447,16 +1135,16 @@ export const GlassEffectInline: Story = {
447
1135
  export const GlassEffectRangeSelection: Story = {
448
1136
  args: {
449
1137
  selectionMode: 'range',
450
- placeholder: 'Select date range...',
1138
+ placeholder: 'Select date...',
451
1139
  glass: {
452
- displacementScale: 45,
1140
+ displacementScale: 100,
453
1141
  blurAmount: 0,
454
- saturation: 160,
455
- aberrationIntensity: 1.5,
456
- cornerRadius: 14,
1142
+ saturation: 200,
1143
+ aberrationIntensity: 4,
1144
+ cornerRadius: 16,
457
1145
  overLight: false,
458
1146
  mode: 'prominent' as const,
459
- },
1147
+ } as any,
460
1148
  },
461
1149
  render: args => {
462
1150
  const [dateRange, setDateRange] = useState<DateRange>({