@shohojdhara/atomix 0.2.3 → 0.2.5

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