@shohojdhara/atomix 0.5.0 → 0.5.2

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 (168) hide show
  1. package/atomix.config.ts +12 -0
  2. package/build-tools/webpack-loader.js +5 -4
  3. package/dist/atomix.css +230 -83
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +1 -1
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/build-tools/webpack-loader.js +5 -4
  8. package/dist/charts.d.ts +24 -23
  9. package/dist/charts.js +271 -369
  10. package/dist/charts.js.map +1 -1
  11. package/dist/config.d.ts +624 -0
  12. package/dist/config.js +59 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/core.d.ts +3 -2
  15. package/dist/core.js +342 -382
  16. package/dist/core.js.map +1 -1
  17. package/dist/forms.d.ts +4 -6
  18. package/dist/forms.js +233 -334
  19. package/dist/forms.js.map +1 -1
  20. package/dist/heavy.d.ts +11 -2
  21. package/dist/heavy.js +406 -445
  22. package/dist/heavy.js.map +1 -1
  23. package/dist/index.d.ts +109 -65
  24. package/dist/index.esm.js +654 -748
  25. package/dist/index.esm.js.map +1 -1
  26. package/dist/index.js +621 -717
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.min.js +1 -1
  29. package/dist/index.min.js.map +1 -1
  30. package/dist/layout.js +59 -60
  31. package/dist/layout.js.map +1 -1
  32. package/dist/theme.js +4 -4
  33. package/dist/theme.js.map +1 -1
  34. package/package.json +24 -9
  35. package/scripts/atomix-cli.js +15 -1
  36. package/scripts/cli/__tests__/complexity-utils.test.js +24 -0
  37. package/scripts/cli/__tests__/detector.test.js +50 -0
  38. package/scripts/cli/__tests__/template-engine.test.js +23 -0
  39. package/scripts/cli/__tests__/test-setup.js +1 -133
  40. package/scripts/cli/commands/doctor.js +15 -3
  41. package/scripts/cli/commands/generate.js +113 -51
  42. package/scripts/cli/internal/ai-engine.js +30 -10
  43. package/scripts/cli/internal/complexity-utils.js +60 -0
  44. package/scripts/cli/internal/component-validator.js +49 -16
  45. package/scripts/cli/internal/generator.js +89 -36
  46. package/scripts/cli/internal/hook-generator.js +5 -2
  47. package/scripts/cli/internal/itcss-generator.js +16 -12
  48. package/scripts/cli/templates/next-templates.js +81 -30
  49. package/scripts/cli/templates/storybook-templates.js +12 -2
  50. package/scripts/cli/utils/detector.js +45 -7
  51. package/scripts/cli/utils/diagnostics.js +78 -0
  52. package/scripts/cli/utils/telemetry.js +13 -0
  53. package/src/components/Accordion/Accordion.stories.tsx +4 -0
  54. package/src/components/AtomixGlass/AtomixGlass.tsx +188 -128
  55. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +63 -91
  56. package/src/components/AtomixGlass/PerformanceDashboard.tsx +153 -201
  57. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +9 -6
  58. package/src/components/AtomixGlass/glass-utils.ts +51 -1
  59. package/src/components/AtomixGlass/stories/AnimationFeatures.stories.tsx +52 -46
  60. package/src/components/AtomixGlass/stories/Examples.stories.tsx +573 -236
  61. package/src/components/AtomixGlass/stories/Playground.stories.tsx +88 -41
  62. package/src/components/AtomixGlass/stories/argTypes.ts +19 -19
  63. package/src/components/AtomixGlass/stories/shared-components.tsx +7 -12
  64. package/src/components/AtomixGlass/stories/types.ts +3 -3
  65. package/src/components/Button/Button.tsx +114 -57
  66. package/src/components/Callout/Callout.tsx +4 -4
  67. package/src/components/Chart/ChartRenderer.tsx +1 -1
  68. package/src/components/Chart/DonutChart.tsx +11 -8
  69. package/src/components/EdgePanel/EdgePanel.tsx +119 -115
  70. package/src/components/Form/Select.tsx +4 -4
  71. package/src/components/List/List.tsx +4 -4
  72. package/src/components/Navigation/SideMenu/SideMenu.tsx +6 -6
  73. package/src/components/PhotoViewer/PhotoViewerImage.tsx +1 -1
  74. package/src/components/ProductReview/ProductReview.tsx +4 -2
  75. package/src/components/Rating/Rating.tsx +4 -2
  76. package/src/components/SectionIntro/SectionIntro.tsx +4 -2
  77. package/src/components/Steps/Steps.tsx +1 -1
  78. package/src/components/Tabs/Tabs.tsx +5 -5
  79. package/src/components/Testimonial/Testimonial.tsx +4 -2
  80. package/src/components/VideoPlayer/VideoPlayer.tsx +4 -2
  81. package/src/layouts/CssGrid/CssGrid.stories.tsx +464 -0
  82. package/src/layouts/CssGrid/CssGrid.tsx +215 -0
  83. package/src/layouts/CssGrid/index.ts +8 -0
  84. package/src/layouts/CssGrid/scripts/CssGrid.js +284 -0
  85. package/src/layouts/CssGrid/scripts/index.js +43 -0
  86. package/src/layouts/Grid/scripts/Container.js +139 -0
  87. package/src/layouts/Grid/scripts/Grid.js +184 -0
  88. package/src/layouts/Grid/scripts/GridCol.js +273 -0
  89. package/src/layouts/Grid/scripts/Row.js +154 -0
  90. package/src/layouts/Grid/scripts/index.js +48 -0
  91. package/src/layouts/MasonryGrid/MasonryGrid.tsx +71 -59
  92. package/src/lib/composables/atomix-glass/useGlassSize.ts +1 -1
  93. package/src/lib/composables/useAccordion.ts +5 -5
  94. package/src/lib/composables/useAtomixGlass.ts +111 -74
  95. package/src/lib/composables/useAtomixGlassStyles.ts +0 -2
  96. package/src/lib/composables/useBarChart.ts +2 -2
  97. package/src/lib/composables/useChart.ts +3 -2
  98. package/src/lib/composables/useChartToolbar.ts +48 -66
  99. package/src/lib/composables/useDataTable.ts +1 -1
  100. package/src/lib/composables/useDatePicker.ts +2 -2
  101. package/src/lib/composables/useEdgePanel.ts +45 -54
  102. package/src/lib/composables/useHeroBackgroundSlider.ts +5 -5
  103. package/src/lib/composables/usePhotoViewer.ts +2 -3
  104. package/src/lib/composables/usePieChart.ts +1 -1
  105. package/src/lib/composables/usePopover.ts +151 -139
  106. package/src/lib/composables/useSideMenu.ts +28 -41
  107. package/src/lib/composables/useSlider.ts +2 -6
  108. package/src/lib/composables/useTooltip.ts +2 -2
  109. package/src/lib/config/index.ts +39 -0
  110. package/src/lib/constants/components.ts +1 -0
  111. package/src/lib/theme/devtools/Comparator.tsx +1 -1
  112. package/src/lib/theme/devtools/Inspector.tsx +1 -1
  113. package/src/lib/theme/devtools/LiveEditor.tsx +1 -1
  114. package/src/lib/theme/runtime/ThemeProvider.tsx +1 -1
  115. package/src/lib/types/components.ts +1 -0
  116. package/src/styles/01-settings/_index.scss +1 -0
  117. package/src/styles/01-settings/_settings.atomix-glass.scss +174 -0
  118. package/src/styles/01-settings/_settings.masonry-grid.scss +42 -6
  119. package/src/styles/02-tools/_tools.glass.scss +6 -0
  120. package/src/styles/05-objects/_objects.masonry-grid.scss +162 -24
  121. package/src/styles/06-components/_components.atomix-glass.scss +160 -99
  122. package/scripts/cli/__tests__/README.md +0 -81
  123. package/scripts/cli/__tests__/basic.test.js +0 -116
  124. package/scripts/cli/__tests__/clean.test.js +0 -278
  125. package/scripts/cli/__tests__/component-generator.test.js +0 -332
  126. package/scripts/cli/__tests__/component-validator.test.js +0 -433
  127. package/scripts/cli/__tests__/generator.test.js +0 -613
  128. package/scripts/cli/__tests__/glass-motion.test.js +0 -256
  129. package/scripts/cli/__tests__/integration.test.js +0 -938
  130. package/scripts/cli/__tests__/migrate.test.js +0 -74
  131. package/scripts/cli/__tests__/security.test.js +0 -206
  132. package/scripts/cli/__tests__/theme-bridge.test.js +0 -507
  133. package/scripts/cli/__tests__/token-manager.test.js +0 -251
  134. package/scripts/cli/__tests__/token-provider.test.js +0 -361
  135. package/scripts/cli/__tests__/utils.test.js +0 -165
  136. package/src/components/AtomixGlass/stories/AnimationTests.stories.tsx +0 -95
  137. package/src/components/AtomixGlass/stories/CardExamples.stories.tsx +0 -212
  138. package/src/components/AtomixGlass/stories/Customization.stories.tsx +0 -131
  139. package/src/components/AtomixGlass/stories/DashboardExamples.stories.tsx +0 -348
  140. package/src/components/AtomixGlass/stories/EcommerceExamples.stories.tsx +0 -410
  141. package/src/components/AtomixGlass/stories/FormExamples.stories.tsx +0 -436
  142. package/src/components/AtomixGlass/stories/HeroExamples.stories.tsx +0 -264
  143. package/src/components/AtomixGlass/stories/InteractivePlayground.stories.tsx +0 -247
  144. package/src/components/AtomixGlass/stories/MobileUIExamples.stories.tsx +0 -418
  145. package/src/components/AtomixGlass/stories/ModalExamples.stories.tsx +0 -402
  146. package/src/components/AtomixGlass/stories/Modes.stories.tsx +0 -1082
  147. package/src/components/AtomixGlass/stories/Overview.stories.tsx +0 -497
  148. package/src/components/AtomixGlass/stories/Performance.stories.tsx +0 -103
  149. package/src/components/AtomixGlass/stories/PresetGallery.stories.tsx +0 -335
  150. package/src/components/AtomixGlass/stories/Shaders.stories.tsx +0 -395
  151. package/src/components/AtomixGlass/stories/WidgetExamples.stories.tsx +0 -441
  152. package/src/components/TypedButton/TypedButton.stories.tsx +0 -59
  153. package/src/components/TypedButton/TypedButton.tsx +0 -39
  154. package/src/components/TypedButton/index.ts +0 -2
  155. package/src/lib/composables/useBreadcrumb.ts +0 -81
  156. package/src/lib/composables/useChartInteractions.ts +0 -123
  157. package/src/lib/composables/useChartPerformance.ts +0 -347
  158. package/src/lib/composables/useDropdown.ts +0 -338
  159. package/src/lib/composables/useModal.ts +0 -110
  160. package/src/lib/composables/useTypedButton.ts +0 -66
  161. package/src/lib/hooks/usePerformanceMonitor.ts +0 -148
  162. package/src/lib/utils/displacement-generator.ts +0 -92
  163. package/src/lib/utils/memoryMonitor.ts +0 -191
  164. package/src/styles/01-settings/_settings.testtypecheck.scss +0 -53
  165. package/src/styles/01-settings/_settings.typedbutton.scss +0 -53
  166. package/src/styles/06-components/_components.testbutton.scss +0 -212
  167. package/src/styles/06-components/_components.testtypecheck.scss +0 -212
  168. package/src/styles/06-components/_components.typedbutton.scss +0 -212
@@ -1,395 +0,0 @@
1
- /**
2
- * ShaderVariants.stories.tsx
3
- *
4
- * Professional showcase of Apple-style shader variants with modern design.
5
- * Features premium liquid glass effects with advanced visual rendering.
6
- *
7
- * @package Atomix
8
- * @component AtomixGlass
9
- */
10
-
11
- import React, { useState } from 'react';
12
- import { Meta, StoryObj } from '@storybook/react';
13
- import AtomixGlass from '../AtomixGlass';
14
- import { BackgroundWrapper } from './shared-components';
15
-
16
- const meta: Meta<typeof AtomixGlass> = {
17
- title: 'Components/AtomixGlass/Features/Shaders',
18
- component: AtomixGlass,
19
- parameters: {
20
- layout: 'fullscreen',
21
- docs: {
22
- description: {
23
- component:
24
- 'Experience premium Apple-style shader variants with advanced GPU-accelerated effects. Each variant features unique characteristics including time-based animations, organic flow patterns, and sophisticated visual rendering.',
25
- },
26
- },
27
- },
28
- tags: ['autodocs'],
29
- };
30
-
31
- export default meta;
32
- type Story = StoryObj<typeof AtomixGlass>;
33
-
34
- /**
35
- * Liquid Glass Variant
36
- *
37
- * Enhanced liquid glass with time-based animations and multi-layered organic distortion.
38
- * Perfect for hero sections and premium content areas.
39
- */
40
- export const LiquidGlass: Story = {
41
- args: {
42
- children: (
43
- <div style={{ padding: '44px 40px', textAlign: 'center', maxWidth: '480px' }}>
44
- <div
45
- style={{
46
- width: '80px',
47
- height: '80px',
48
- margin: '0 auto 28px',
49
- borderRadius: '22px',
50
- background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
51
- display: 'flex',
52
- alignItems: 'center',
53
- justifyContent: 'center',
54
- fontSize: '44px',
55
- boxShadow: '0 20px 48px rgba(102, 126, 234, 0.6)',
56
- position: 'relative',
57
- }}
58
- >
59
- <div
60
- style={{
61
- position: 'absolute',
62
- inset: '-6px',
63
- borderRadius: '28px',
64
- background: 'linear-gradient(135deg, #667eea, #764ba2)',
65
- opacity: 0.4,
66
- filter: 'blur(20px)',
67
- }}
68
- />
69
- <span style={{ position: 'relative', zIndex: 1 }}>💧</span>
70
- </div>
71
- <h2
72
- style={{
73
- margin: '0 0 16px 0',
74
- fontSize: '38px',
75
- fontWeight: 700,
76
- background: 'url(https://images.unsplash.com/photo-1579546929518-9e396f3cc809)',
77
- WebkitBackgroundClip: 'text',
78
- WebkitTextFillColor: 'transparent',
79
- backgroundClip: 'text',
80
- letterSpacing: '-0.5px',
81
- }}
82
- >
83
- Liquid Glass
84
- </h2>
85
- <p
86
- style={{
87
- margin: '0 0 32px 0',
88
- fontSize: '18px',
89
- lineHeight: 1.8,
90
- color: 'rgba(255, 255, 255, 0.9)',
91
- }}
92
- >
93
- Experience fluid, time-based animations with multi-layered organic distortion and
94
- chromatic aberration effects that create living, breathing glass.
95
- </p>
96
- <div
97
- style={{
98
- display: 'flex',
99
- flexWrap: 'wrap',
100
- gap: '12px',
101
- justifyContent: 'center',
102
- }}
103
- >
104
- {['Time Animation', 'Multi-Layer', 'Chromatic FX', 'Organic Flow'].map(tag => (
105
- <div
106
- key={tag}
107
- style={{
108
- padding: '8px 16px',
109
- borderRadius: '10px',
110
- background: 'rgba(102, 126, 234, 0.2)',
111
- border: '1px solid rgba(102, 126, 234, 0.3)',
112
- fontSize: '13px',
113
- fontWeight: 600,
114
- color: '#fff',
115
- }}
116
- >
117
- {tag}
118
- </div>
119
- ))}
120
- </div>
121
- </div>
122
- ),
123
- displacementScale: 25,
124
- blurAmount: 1.5,
125
- saturation: 150,
126
- aberrationIntensity: 2,
127
- elasticity: 0.2,
128
- borderRadius: 32,
129
- mode: 'shader',
130
- shaderVariant: 'liquidGlass',
131
- },
132
- decorators: [
133
- Story => (
134
- <BackgroundWrapper
135
- backgroundImage="https://images.unsplash.com/photo-1557683316-973673baf926?q=80&w=3029&auto=format&fit=crop"
136
- height="100vh"
137
- width="100vw"
138
- overlayOpacity={0.3}
139
- borderRadius="0"
140
- >
141
- <Story />
142
- </BackgroundWrapper>
143
- ),
144
- ],
145
- parameters: {
146
- docs: {
147
- description: {
148
- story:
149
- 'Liquid Glass features time-based animations with multi-layered distortion. Ideal for premium hero sections and feature highlights.',
150
- },
151
- },
152
- },
153
- };
154
-
155
- /**
156
- * Apple Fluid Variant
157
- *
158
- * Premium fluid glass inspired by Apple's design language.
159
- * Features vortex effects and 5-octave noise for organic, flowing visuals.
160
- */
161
- export const AppleFluid: Story = {
162
- args: {
163
- children: (
164
- <div style={{ padding: '44px 40px', textAlign: 'center', maxWidth: '480px' }}>
165
- <div
166
- style={{
167
- width: '80px',
168
- height: '80px',
169
- margin: '0 auto 28px',
170
- borderRadius: '22px',
171
- background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
172
- display: 'flex',
173
- alignItems: 'center',
174
- justifyContent: 'center',
175
- fontSize: '44px',
176
- boxShadow: '0 20px 48px rgba(245, 87, 108, 0.6)',
177
- position: 'relative',
178
- }}
179
- >
180
- <div
181
- style={{
182
- position: 'absolute',
183
- inset: '-6px',
184
- borderRadius: '28px',
185
- background: 'linear-gradient(135deg, #f093fb, #f5576c)',
186
- opacity: 0.4,
187
- filter: 'blur(20px)',
188
- }}
189
- />
190
- <span style={{ position: 'relative', zIndex: 1 }}>🌊</span>
191
- </div>
192
- <h2
193
- style={{
194
- margin: '0 0 16px 0',
195
- fontSize: '38px',
196
- fontWeight: 700,
197
- background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.8) 100%)',
198
- WebkitBackgroundClip: 'text',
199
- WebkitTextFillColor: 'transparent',
200
- backgroundClip: 'text',
201
- letterSpacing: '-0.5px',
202
- }}
203
- >
204
- Apple Fluid
205
- </h2>
206
- <p
207
- style={{
208
- margin: '0 0 32px 0',
209
- fontSize: '18px',
210
- lineHeight: 1.8,
211
- color: 'rgba(255, 255, 255, 0.9)',
212
- }}
213
- >
214
- Apple-inspired fluid dynamics with vortex effects and high-quality 5-octave noise. Mouse
215
- interactions create mesmerizing, organic flow patterns.
216
- </p>
217
- <div
218
- style={{
219
- display: 'flex',
220
- flexWrap: 'wrap',
221
- gap: '12px',
222
- justifyContent: 'center',
223
- }}
224
- >
225
- {['Vortex FX', '5-Octave', 'Apple Style', 'Interactive'].map(tag => (
226
- <div
227
- key={tag}
228
- style={{
229
- padding: '8px 16px',
230
- borderRadius: '10px',
231
- background: 'rgba(245, 87, 108, 0.2)',
232
- border: '1px solid rgba(245, 87, 108, 0.3)',
233
- fontSize: '13px',
234
- fontWeight: 600,
235
- color: '#fff',
236
- }}
237
- >
238
- {tag}
239
- </div>
240
- ))}
241
- </div>
242
- </div>
243
- ),
244
- displacementScale: 25,
245
- blurAmount: 1.5,
246
- saturation: 150,
247
- aberrationIntensity: 2,
248
- elasticity: 0.2,
249
- borderRadius: 32,
250
- mode: 'shader',
251
- shaderVariant: 'appleFluid',
252
- },
253
- decorators: [
254
- Story => (
255
- <BackgroundWrapper
256
- backgroundImage="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?q=80&w=2940&auto=format&fit=crop"
257
- height="100vh"
258
- width="100vw"
259
- overlayOpacity={0.3}
260
- borderRadius="0"
261
- >
262
- <Story />
263
- </BackgroundWrapper>
264
- ),
265
- ],
266
- parameters: {
267
- docs: {
268
- description: {
269
- story:
270
- 'Apple Fluid delivers premium vortex effects with 5-octave noise. Mouse interactions create dynamic, flowing patterns inspired by Apple design.',
271
- },
272
- },
273
- },
274
- };
275
-
276
- /**
277
- * Premium Glass Variant
278
- *
279
- * High-end glass rendering with advanced refraction and multi-layer depth.
280
- * Offers the best performance-to-quality ratio among shader variants.
281
- */
282
- export const PremiumGlass: Story = {
283
- args: {
284
- children: (
285
- <div style={{ padding: '44px 40px', textAlign: 'center', maxWidth: '480px' }}>
286
- <div
287
- style={{
288
- width: '80px',
289
- height: '80px',
290
- margin: '0 auto 28px',
291
- borderRadius: '22px',
292
- background: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
293
- display: 'flex',
294
- alignItems: 'center',
295
- justifyContent: 'center',
296
- fontSize: '44px',
297
- boxShadow: '0 20px 48px rgba(79, 172, 254, 0.6)',
298
- position: 'relative',
299
- }}
300
- >
301
- <div
302
- style={{
303
- position: 'absolute',
304
- inset: '-6px',
305
- borderRadius: '28px',
306
- background: 'linear-gradient(135deg, #4facfe, #00f2fe)',
307
- opacity: 0.4,
308
- filter: 'blur(20px)',
309
- }}
310
- />
311
- <span style={{ position: 'relative', zIndex: 1 }}>💎</span>
312
- </div>
313
- <h2
314
- style={{
315
- margin: '0 0 16px 0',
316
- fontSize: '38px',
317
- fontWeight: 700,
318
- background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.8) 100%)',
319
- WebkitBackgroundClip: 'text',
320
- WebkitTextFillColor: 'transparent',
321
- backgroundClip: 'text',
322
- letterSpacing: '-0.5px',
323
- }}
324
- >
325
- Premium Glass
326
- </h2>
327
- <p
328
- style={{
329
- margin: '0 0 32px 0',
330
- fontSize: '18px',
331
- lineHeight: 1.8,
332
- color: 'rgba(255, 255, 255, 0.9)',
333
- }}
334
- >
335
- Advanced refraction with multi-layer depth effects and edge-aware rendering. The optimal
336
- balance of quality and performance for production applications.
337
- </p>
338
- <div
339
- style={{
340
- display: 'flex',
341
- flexWrap: 'wrap',
342
- gap: '12px',
343
- justifyContent: 'center',
344
- }}
345
- >
346
- {['Advanced Refraction', 'Multi-Depth', 'Edge-Aware', 'Optimized'].map(tag => (
347
- <div
348
- key={tag}
349
- style={{
350
- padding: '8px 16px',
351
- borderRadius: '10px',
352
- background: 'rgba(79, 172, 254, 0.2)',
353
- border: '1px solid rgba(79, 172, 254, 0.3)',
354
- fontSize: '13px',
355
- fontWeight: 600,
356
- color: '#fff',
357
- }}
358
- >
359
- {tag}
360
- </div>
361
- ))}
362
- </div>
363
- </div>
364
- ),
365
- displacementScale: 25,
366
- blurAmount: 1.5,
367
- saturation: 150,
368
- aberrationIntensity: 2,
369
- elasticity: 0.2,
370
- borderRadius: 32,
371
- mode: 'shader',
372
- shaderVariant: 'premiumGlass',
373
- },
374
- decorators: [
375
- Story => (
376
- <BackgroundWrapper
377
- backgroundImage="https://images.unsplash.com/photo-1579546929518-9e396f3cc809?q=80&w=2940&auto=format&fit=crop"
378
- height="100vh"
379
- width="100vw"
380
- overlayOpacity={0.3}
381
- borderRadius="0"
382
- >
383
- <Story />
384
- </BackgroundWrapper>
385
- ),
386
- ],
387
- parameters: {
388
- docs: {
389
- description: {
390
- story:
391
- 'Premium Glass offers advanced refraction with optimal performance. Best choice for production applications requiring high-quality shader effects.',
392
- },
393
- },
394
- },
395
- };