@shohojdhara/atomix 0.3.15 → 0.4.0

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 (245) hide show
  1. package/build-tools/index.d.ts +31 -30
  2. package/build-tools/package.json +4 -21
  3. package/dist/atomix.css +20924 -2611
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +76 -2
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/build-tools/index.d.ts +31 -30
  8. package/dist/build-tools/package.json +4 -21
  9. package/dist/charts.js.map +1 -1
  10. package/dist/core.js.map +1 -1
  11. package/dist/forms.js.map +1 -1
  12. package/dist/heavy.js.map +1 -1
  13. package/dist/index.d.ts +144 -18
  14. package/dist/index.esm.js +110 -55
  15. package/dist/index.esm.js.map +1 -1
  16. package/dist/index.js +110 -55
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.min.js +1 -1
  19. package/dist/index.min.js.map +1 -1
  20. package/dist/layout.js.map +1 -1
  21. package/dist/theme.d.ts +9 -9
  22. package/dist/theme.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/components/Accordion/Accordion.stories.tsx +32 -23
  25. package/src/components/Accordion/Accordion.test.tsx +70 -50
  26. package/src/components/Accordion/Accordion.tsx +99 -94
  27. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  28. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  29. package/src/components/AtomixGlass/glass-utils.ts +4 -3
  30. package/src/components/AtomixGlass/shader-utils.ts +128 -52
  31. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1 -1
  32. package/src/components/AtomixGlass/stories/Shaders.stories.tsx +1 -1
  33. package/src/components/Avatar/Avatar.stories.tsx +45 -62
  34. package/src/components/Avatar/Avatar.tsx +58 -56
  35. package/src/components/Badge/Badge.stories.tsx +20 -9
  36. package/src/components/Badge/Badge.test.tsx +41 -41
  37. package/src/components/Badge/Badge.tsx +64 -62
  38. package/src/components/Block/Block.stories.tsx +14 -4
  39. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +9 -8
  40. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
  41. package/src/components/Button/Button.stories.tsx +13 -22
  42. package/src/components/Button/Button.test.tsx +97 -81
  43. package/src/components/Button/Button.tsx +46 -14
  44. package/src/components/Button/ButtonGroup.stories.tsx +37 -32
  45. package/src/components/Button/ButtonGroup.tsx +4 -15
  46. package/src/components/Callout/Callout.stories.tsx +109 -16
  47. package/src/components/Card/Card.stories.tsx +67 -36
  48. package/src/components/Card/Card.tsx +30 -14
  49. package/src/components/Chart/AreaChart.tsx +1 -1
  50. package/src/components/Chart/CandlestickChart.tsx +23 -16
  51. package/src/components/Chart/Chart.stories.tsx +4 -9
  52. package/src/components/Chart/Chart.tsx +40 -44
  53. package/src/components/Chart/ChartRenderer.tsx +39 -12
  54. package/src/components/Chart/ChartToolbar.tsx +21 -5
  55. package/src/components/Chart/DonutChart.tsx +1 -1
  56. package/src/components/Chart/FunnelChart.tsx +4 -1
  57. package/src/components/Chart/GaugeChart.tsx +3 -1
  58. package/src/components/Chart/HeatmapChart.tsx +50 -37
  59. package/src/components/Chart/LineChart.tsx +3 -2
  60. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  61. package/src/components/Chart/RadarChart.tsx +19 -17
  62. package/src/components/Chart/ScatterChart.tsx +29 -21
  63. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -2
  64. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  65. package/src/components/Countdown/Countdown.stories.tsx +7 -7
  66. package/src/components/DataTable/DataTable.stories.tsx +43 -38
  67. package/src/components/DataTable/DataTable.test.tsx +26 -148
  68. package/src/components/DataTable/DataTable.tsx +485 -456
  69. package/src/components/DatePicker/DatePicker.stories.tsx +32 -47
  70. package/src/components/DatePicker/DatePicker.tsx +31 -26
  71. package/src/components/Dropdown/Dropdown.stories.tsx +2 -5
  72. package/src/components/Dropdown/Dropdown.tsx +313 -299
  73. package/src/components/EdgePanel/EdgePanel.stories.tsx +6 -19
  74. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  75. package/src/components/Footer/Footer.stories.tsx +21 -16
  76. package/src/components/Footer/Footer.tsx +130 -128
  77. package/src/components/Footer/FooterLink.tsx +2 -2
  78. package/src/components/Form/Checkbox.test.tsx +49 -49
  79. package/src/components/Form/Checkbox.tsx +108 -100
  80. package/src/components/Form/Form.stories.tsx +2 -10
  81. package/src/components/Form/Input.stories.tsx +22 -39
  82. package/src/components/Form/Input.test.tsx +38 -44
  83. package/src/components/Form/Radio.stories.tsx +6 -12
  84. package/src/components/Form/Radio.tsx +68 -66
  85. package/src/components/Form/Select.tsx +184 -182
  86. package/src/components/Form/Textarea.test.tsx +27 -32
  87. package/src/components/Hero/Hero.stories.tsx +56 -23
  88. package/src/components/Hero/Hero.tsx +201 -55
  89. package/src/components/Icon/index.ts +7 -1
  90. package/src/components/List/List.tsx +19 -23
  91. package/src/components/Modal/Modal.stories.tsx +2 -1
  92. package/src/components/Modal/Modal.tsx +130 -127
  93. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  94. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  95. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  96. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  97. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  98. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  99. package/src/components/Pagination/Pagination.tsx +199 -202
  100. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  101. package/src/components/Popover/Popover.stories.tsx +99 -192
  102. package/src/components/Popover/Popover.tsx +41 -37
  103. package/src/components/Progress/Progress.stories.tsx +35 -44
  104. package/src/components/River/River.stories.tsx +2 -1
  105. package/src/components/SectionIntro/SectionIntro.stories.tsx +71 -71
  106. package/src/components/Slider/Slider.stories.tsx +12 -4
  107. package/src/components/Spinner/Spinner.stories.tsx +3 -1
  108. package/src/components/Spinner/Spinner.test.tsx +23 -23
  109. package/src/components/Spinner/Spinner.tsx +43 -46
  110. package/src/components/Steps/Steps.stories.tsx +8 -6
  111. package/src/components/Tabs/Tabs.stories.tsx +12 -9
  112. package/src/components/Tabs/Tabs.tsx +74 -72
  113. package/src/components/Toggle/Toggle.stories.tsx +27 -13
  114. package/src/components/Toggle/Toggle.test.tsx +65 -70
  115. package/src/components/Toggle/Toggle.tsx +4 -1
  116. package/src/components/Tooltip/Tooltip.stories.tsx +24 -20
  117. package/src/components/Tooltip/Tooltip.tsx +104 -106
  118. package/src/components/Upload/Upload.stories.tsx +129 -127
  119. package/src/components/Upload/Upload.tsx +287 -283
  120. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  121. package/src/components/index.ts +13 -2
  122. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  123. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  124. package/src/lib/__tests__/theme-tools.test.ts +32 -6
  125. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  126. package/src/lib/composables/useAtomixGlass.ts +106 -49
  127. package/src/lib/composables/useChartExport.ts +1 -1
  128. package/src/lib/composables/useDataTable.ts +29 -17
  129. package/src/lib/composables/useHero.ts +58 -14
  130. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  131. package/src/lib/composables/useInput.ts +10 -8
  132. package/src/lib/composables/useSideMenu.ts +6 -5
  133. package/src/lib/composables/useTooltip.ts +1 -2
  134. package/src/lib/composables/useVideoPlayer.ts +44 -35
  135. package/src/lib/config/index.ts +154 -154
  136. package/src/lib/constants/cssVariables.ts +29 -29
  137. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  138. package/src/lib/hooks/index.ts +1 -1
  139. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  140. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  141. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  142. package/src/lib/patterns/index.ts +1 -1
  143. package/src/lib/patterns/slots.tsx +8 -13
  144. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  145. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  146. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  147. package/src/lib/storybook/index.ts +1 -1
  148. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  149. package/src/lib/theme/adapters/index.ts +3 -9
  150. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  151. package/src/lib/theme/config/index.ts +1 -1
  152. package/src/lib/theme/config/types.ts +2 -2
  153. package/src/lib/theme/config/validator.ts +10 -5
  154. package/src/lib/theme/constants/constants.ts +2 -2
  155. package/src/lib/theme/constants/index.ts +1 -2
  156. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  157. package/src/lib/theme/core/composeTheme.ts +32 -26
  158. package/src/lib/theme/core/createTheme.ts +1 -1
  159. package/src/lib/theme/core/createThemeObject.ts +308 -301
  160. package/src/lib/theme/core/index.ts +3 -3
  161. package/src/lib/theme/devtools/CLI.ts +106 -104
  162. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  163. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  164. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  165. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  166. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  167. package/src/lib/theme/devtools/Preview.tsx +150 -106
  168. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  169. package/src/lib/theme/devtools/index.ts +3 -9
  170. package/src/lib/theme/devtools/useHistory.ts +23 -21
  171. package/src/lib/theme/errors/errors.ts +12 -11
  172. package/src/lib/theme/errors/index.ts +2 -7
  173. package/src/lib/theme/generators/generateCSS.ts +9 -13
  174. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  175. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  176. package/src/lib/theme/generators/index.ts +1 -4
  177. package/src/lib/theme/i18n/index.ts +1 -1
  178. package/src/lib/theme/i18n/rtl.ts +13 -13
  179. package/src/lib/theme/index.ts +7 -16
  180. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  181. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  182. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  183. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  184. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  185. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  186. package/src/lib/theme/runtime/index.ts +2 -5
  187. package/src/lib/theme/runtime/useTheme.ts +18 -18
  188. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  189. package/src/lib/theme/test/testTheme.ts +15 -16
  190. package/src/lib/theme/tokens/index.ts +2 -7
  191. package/src/lib/theme/tokens/tokens.ts +25 -24
  192. package/src/lib/theme/types.ts +428 -411
  193. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  194. package/src/lib/theme/utils/componentTheming.ts +18 -18
  195. package/src/lib/theme/utils/domUtils.ts +277 -289
  196. package/src/lib/theme/utils/index.ts +1 -2
  197. package/src/lib/theme/utils/injectCSS.ts +10 -14
  198. package/src/lib/theme/utils/naming.ts +20 -16
  199. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  200. package/src/lib/theme/utils/themeUtils.ts +85 -86
  201. package/src/lib/theme/utils/themeValidation.ts +82 -33
  202. package/src/lib/theme-tools.ts +8 -6
  203. package/src/lib/types/components.ts +172 -71
  204. package/src/lib/types/partProps.ts +1 -1
  205. package/src/lib/utils/__tests__/csv.test.ts +1 -1
  206. package/src/lib/utils/componentUtils.ts +8 -12
  207. package/src/lib/utils/csv.ts +3 -1
  208. package/src/lib/utils/dataTableExport.ts +1 -5
  209. package/src/lib/utils/fontPreloader.ts +10 -19
  210. package/src/lib/utils/icons.ts +4 -1
  211. package/src/lib/utils/index.ts +2 -6
  212. package/src/lib/utils/memoryMonitor.ts +10 -8
  213. package/src/lib/utils/themeNaming.ts +2 -2
  214. package/src/styles/01-settings/_index.scss +0 -1
  215. package/src/styles/01-settings/_settings.colors.scss +8 -8
  216. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  217. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  218. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  219. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  220. package/src/styles/01-settings/_settings.typography.scss +1 -1
  221. package/src/styles/02-tools/_tools.button.scss +51 -21
  222. package/src/styles/02-tools/_tools.utility-api.scss +30 -18
  223. package/src/styles/03-generic/_generic.root.scss +4 -3
  224. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  225. package/src/styles/06-components/_components.button.scss +16 -4
  226. package/src/styles/06-components/_components.callout.scss +27 -21
  227. package/src/styles/06-components/_components.card.scss +5 -14
  228. package/src/styles/06-components/_components.chart.scss +22 -19
  229. package/src/styles/06-components/_components.checkbox.scss +3 -1
  230. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  231. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  232. package/src/styles/06-components/_components.footer.scss +1 -1
  233. package/src/styles/06-components/_components.side-menu.scss +5 -5
  234. package/src/styles/06-components/_components.toggle.scss +18 -0
  235. package/src/styles/06-components/_index.scss +1 -1
  236. package/src/styles/06-components/old.chart.styles.scss +0 -2
  237. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  238. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  239. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  240. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  241. package/src/styles/99-utilities/_utilities.scss +1 -1
  242. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  243. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  244. package/src/styles/99-utilities/_utilities.text-gradient.scss +30 -30
  245. package/src/styles/99-utilities/_utilities.text.scss +67 -46
@@ -90,8 +90,8 @@ DatePicker provides a user-friendly interface for selecting dates or date ranges
90
90
  },
91
91
  tags: ['autodocs'],
92
92
  argTypes: {
93
- value: {
94
- control: 'date',
93
+ value: {
94
+ control: 'date',
95
95
  description: 'Selected date value',
96
96
  table: {
97
97
  type: { summary: 'Date | DateRange | null' },
@@ -107,80 +107,80 @@ DatePicker provides a user-friendly interface for selecting dates or date ranges
107
107
  defaultValue: { summary: 'single' },
108
108
  },
109
109
  },
110
- minDate: {
111
- control: 'date',
110
+ minDate: {
111
+ control: 'date',
112
112
  description: 'Minimum selectable date',
113
113
  table: {
114
114
  type: { summary: 'Date' },
115
115
  defaultValue: { summary: '-' },
116
116
  },
117
117
  },
118
- maxDate: {
119
- control: 'date',
118
+ maxDate: {
119
+ control: 'date',
120
120
  description: 'Maximum selectable date',
121
121
  table: {
122
122
  type: { summary: 'Date' },
123
123
  defaultValue: { summary: '-' },
124
124
  },
125
125
  },
126
- format: {
127
- control: 'text',
126
+ format: {
127
+ control: 'text',
128
128
  description: 'Date format string',
129
129
  table: {
130
130
  type: { summary: 'string' },
131
131
  defaultValue: { summary: 'MM/dd/yyyy' },
132
132
  },
133
133
  },
134
- placeholder: {
135
- control: 'text',
134
+ placeholder: {
135
+ control: 'text',
136
136
  description: 'Placeholder text',
137
137
  table: {
138
138
  type: { summary: 'string' },
139
139
  defaultValue: { summary: 'Select date...' },
140
140
  },
141
141
  },
142
- disabled: {
143
- control: 'boolean',
142
+ disabled: {
143
+ control: 'boolean',
144
144
  description: 'Whether the date picker is disabled',
145
145
  table: {
146
146
  type: { summary: 'boolean' },
147
147
  defaultValue: { summary: false },
148
148
  },
149
149
  },
150
- readOnly: {
151
- control: 'boolean',
150
+ readOnly: {
151
+ control: 'boolean',
152
152
  description: 'Whether the date picker is read-only',
153
153
  table: {
154
154
  type: { summary: 'boolean' },
155
155
  defaultValue: { summary: false },
156
156
  },
157
157
  },
158
- clearable: {
159
- control: 'boolean',
158
+ clearable: {
159
+ control: 'boolean',
160
160
  description: 'Whether the date can be cleared',
161
161
  table: {
162
162
  type: { summary: 'boolean' },
163
163
  defaultValue: { summary: false },
164
164
  },
165
165
  },
166
- showTodayButton: {
167
- control: 'boolean',
166
+ showTodayButton: {
167
+ control: 'boolean',
168
168
  description: 'Whether to show a "Today" button',
169
169
  table: {
170
170
  type: { summary: 'boolean' },
171
171
  defaultValue: { summary: false },
172
172
  },
173
173
  },
174
- showWeekNumbers: {
175
- control: 'boolean',
174
+ showWeekNumbers: {
175
+ control: 'boolean',
176
176
  description: 'Whether to show week numbers',
177
177
  table: {
178
178
  type: { summary: 'boolean' },
179
179
  defaultValue: { summary: false },
180
180
  },
181
181
  },
182
- inline: {
183
- control: 'boolean',
182
+ inline: {
183
+ control: 'boolean',
184
184
  description: 'Whether to display inline (always visible)',
185
185
  table: {
186
186
  type: { summary: 'boolean' },
@@ -397,30 +397,15 @@ export const DifferentSizes: Story = {
397
397
  <div className="u-mt-20 u-mx-auto u-flex u-flex-col u-gap-4">
398
398
  <div className="u-w-xs">
399
399
  <label className="u-block u-mb-2 u-text-sm u-font-medium">Small</label>
400
- <DatePicker
401
- value={date}
402
- onChange={setDate}
403
- size="sm"
404
- placeholder="Select date..."
405
- />
400
+ <DatePicker value={date} onChange={setDate} size="sm" placeholder="Select date..." />
406
401
  </div>
407
402
  <div className="u-w-xs">
408
403
  <label className="u-block u-mb-2 u-text-sm u-font-medium">Medium</label>
409
- <DatePicker
410
- value={date}
411
- onChange={setDate}
412
- size="md"
413
- placeholder="Select date..."
414
- />
404
+ <DatePicker value={date} onChange={setDate} size="md" placeholder="Select date..." />
415
405
  </div>
416
406
  <div className="u-w-xs">
417
407
  <label className="u-block u-mb-2 u-text-sm u-font-medium">Large</label>
418
- <DatePicker
419
- value={date}
420
- onChange={setDate}
421
- size="lg"
422
- placeholder="Select date..."
423
- />
408
+ <DatePicker value={date} onChange={setDate} size="lg" placeholder="Select date..." />
424
409
  </div>
425
410
  </div>
426
411
  );
@@ -441,18 +426,18 @@ export const DisabledAndReadOnly: Story = {
441
426
  <div className="u-mt-20 u-mx-auto u-flex u-flex-col u-gap-4">
442
427
  <div className="u-w-xs">
443
428
  <label className="u-block u-mb-2 u-text-sm u-font-medium">Disabled</label>
444
- <DatePicker
445
- value={date}
446
- onChange={setDate}
429
+ <DatePicker
430
+ value={date}
431
+ onChange={setDate}
447
432
  disabled={true}
448
433
  placeholder="Select date..."
449
434
  />
450
435
  </div>
451
436
  <div className="u-w-xs">
452
437
  <label className="u-block u-mb-2 u-text-sm u-font-medium">Read Only</label>
453
- <DatePicker
454
- value={date}
455
- onChange={setDate}
438
+ <DatePicker
439
+ value={date}
440
+ onChange={setDate}
456
441
  readOnly={true}
457
442
  placeholder="Select date..."
458
443
  />
@@ -493,4 +478,4 @@ export const InlineMode: Story = {
493
478
  },
494
479
  },
495
480
  },
496
- };
481
+ };
@@ -267,32 +267,37 @@ export const DatePicker = forwardRef<DatePickerRef, DatePickerProps>(
267
267
  </>
268
268
  )}
269
269
 
270
- {viewMode === 'years' && (() => {
271
- const years = generateYears();
272
- return (
273
- <>
274
- <button
275
- type="button"
276
- className="c-datepicker__nav-button c-datepicker__nav-button--prev-decade"
277
- onClick={handlePrevDecade}
278
- aria-label="Previous decade"
279
- >
280
- <Icon name="CaretDoubleLeft" size="sm" />
281
- </button>
282
- <button type="button" className="c-datepicker__view-switch" onClick={switchToDayView}>
283
- {years[0]} - {years[years.length - 1]}
284
- </button>
285
- <button
286
- type="button"
287
- className="c-datepicker__nav-button c-datepicker__nav-button--next-decade"
288
- onClick={handleNextDecade}
289
- aria-label="Next decade"
290
- >
291
- <Icon name="CaretDoubleRight" size="sm" />
292
- </button>
293
- </>
294
- );
295
- })()}
270
+ {viewMode === 'years' &&
271
+ (() => {
272
+ const years = generateYears();
273
+ return (
274
+ <>
275
+ <button
276
+ type="button"
277
+ className="c-datepicker__nav-button c-datepicker__nav-button--prev-decade"
278
+ onClick={handlePrevDecade}
279
+ aria-label="Previous decade"
280
+ >
281
+ <Icon name="CaretDoubleLeft" size="sm" />
282
+ </button>
283
+ <button
284
+ type="button"
285
+ className="c-datepicker__view-switch"
286
+ onClick={switchToDayView}
287
+ >
288
+ {years[0]} - {years[years.length - 1]}
289
+ </button>
290
+ <button
291
+ type="button"
292
+ className="c-datepicker__nav-button c-datepicker__nav-button--next-decade"
293
+ onClick={handleNextDecade}
294
+ aria-label="Next decade"
295
+ >
296
+ <Icon name="CaretDoubleRight" size="sm" />
297
+ </button>
298
+ </>
299
+ );
300
+ })()}
296
301
  </div>
297
302
 
298
303
  <div className="c-datepicker__body">
@@ -379,10 +379,7 @@ export const AllPlacements: Story = {
379
379
  }}
380
380
  >
381
381
  {placements.map(placement => (
382
- <div
383
- key={placement.value}
384
- className="u-flex u-items-center u-justify-center"
385
- >
382
+ <div key={placement.value} className="u-flex u-items-center u-justify-center">
386
383
  <Dropdown
387
384
  trigger="click"
388
385
  placement={placement.value as any}
@@ -619,4 +616,4 @@ export const GlassAllVariants: Story = {
619
616
  </div>
620
617
  );
621
618
  },
622
- };
619
+ };