@shohojdhara/atomix 0.3.12 → 0.3.14

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 (155) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +2 -0
  3. package/dist/atomix.css +101 -88
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +5 -15258
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/charts.d.ts +1 -1
  8. package/dist/charts.js +17 -19
  9. package/dist/charts.js.map +1 -1
  10. package/dist/core.d.ts +41 -11
  11. package/dist/core.js +55 -41
  12. package/dist/core.js.map +1 -1
  13. package/dist/forms.d.ts +28 -11
  14. package/dist/forms.js +25 -24
  15. package/dist/forms.js.map +1 -1
  16. package/dist/heavy.d.ts +1 -1
  17. package/dist/heavy.js +32 -25
  18. package/dist/heavy.js.map +1 -1
  19. package/dist/index.d.ts +122 -46
  20. package/dist/index.esm.js +865 -200
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/index.js +870 -204
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.min.js +1 -1
  25. package/dist/index.min.js.map +1 -1
  26. package/dist/theme.d.ts +27 -2
  27. package/dist/theme.js +721 -108
  28. package/dist/theme.js.map +1 -1
  29. package/package.json +1 -1
  30. package/scripts/atomix-cli.js +610 -1111
  31. package/scripts/cli/component-generator.js +610 -0
  32. package/scripts/cli/documentation-sync.js +542 -0
  33. package/scripts/cli/interactive-init.js +84 -288
  34. package/scripts/cli/mappings.js +211 -0
  35. package/scripts/cli/migration-tools.js +95 -288
  36. package/scripts/cli/template-manager.js +107 -0
  37. package/scripts/cli/templates/README.md +123 -0
  38. package/scripts/cli/templates/composable-templates.js +149 -0
  39. package/scripts/cli/templates/config-templates.js +126 -0
  40. package/scripts/cli/templates/index.js +95 -0
  41. package/scripts/cli/templates/project-templates.js +214 -0
  42. package/scripts/cli/templates/react-templates.js +261 -0
  43. package/scripts/cli/templates/scss-templates.js +156 -0
  44. package/scripts/cli/templates/storybook-templates.js +236 -0
  45. package/scripts/cli/templates/testing-templates.js +45 -0
  46. package/scripts/cli/templates/token-templates.js +447 -0
  47. package/scripts/cli/templates/types-templates.js +133 -0
  48. package/scripts/cli/templates-original-backup.js +1655 -0
  49. package/scripts/cli/templates.js +35 -0
  50. package/scripts/cli/templates_backup.js +684 -0
  51. package/scripts/cli/theme-bridge.js +20 -14
  52. package/scripts/cli/token-manager.js +150 -77
  53. package/scripts/cli/utils.js +37 -25
  54. package/src/components/Accordion/Accordion.stories.tsx +5 -5
  55. package/src/components/Accordion/Accordion.test.tsx +57 -0
  56. package/src/components/Accordion/Accordion.tsx +4 -0
  57. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +41 -44
  58. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1 -1
  59. package/src/components/AtomixGlass/stories/Examples.stories.tsx +37 -37
  60. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -2
  61. package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -51
  62. package/src/components/Avatar/Avatar.stories.tsx +26 -26
  63. package/src/components/Badge/Badge.stories.tsx +31 -31
  64. package/src/components/Badge/Badge.test.tsx +51 -0
  65. package/src/components/Badge/Badge.tsx +20 -1
  66. package/src/components/Block/Block.stories.tsx +5 -5
  67. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -1
  68. package/src/components/Breadcrumb/Breadcrumb.tsx +2 -2
  69. package/src/components/Button/Button.stories.tsx +13 -13
  70. package/src/components/Button/Button.tsx +4 -4
  71. package/src/components/Button/ButtonGroup.stories.tsx +2 -2
  72. package/src/components/Button/README.md +5 -0
  73. package/src/components/Callout/Callout.stories.tsx +11 -11
  74. package/src/components/Callout/Callout.test.tsx +10 -10
  75. package/src/components/Callout/Callout.tsx +7 -7
  76. package/src/components/Callout/README.md +9 -8
  77. package/src/components/Card/Card.tsx +2 -2
  78. package/src/components/Chart/Chart.stories.tsx +6 -6
  79. package/src/components/Chart/Chart.tsx +1 -1
  80. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +1 -1
  81. package/src/components/DataTable/DataTable.tsx +14 -12
  82. package/src/components/DatePicker/DatePicker.stories.tsx +6 -6
  83. package/src/components/Dropdown/Dropdown.stories.tsx +4 -4
  84. package/src/components/Form/Checkbox.stories.tsx +3 -3
  85. package/src/components/Form/Checkbox.tsx +4 -2
  86. package/src/components/Form/Form.stories.tsx +3 -3
  87. package/src/components/Form/FormGroup.stories.tsx +1 -1
  88. package/src/components/Form/Input.stories.tsx +28 -16
  89. package/src/components/Form/Input.test.tsx +59 -0
  90. package/src/components/Form/Input.tsx +97 -95
  91. package/src/components/Form/Radio.stories.tsx +94 -94
  92. package/src/components/Form/Radio.tsx +2 -2
  93. package/src/components/Form/Select.stories.tsx +4 -4
  94. package/src/components/Form/Select.tsx +2 -2
  95. package/src/components/Form/Textarea.stories.tsx +22 -7
  96. package/src/components/Form/Textarea.test.tsx +45 -0
  97. package/src/components/Form/Textarea.tsx +88 -86
  98. package/src/components/List/List.stories.tsx +2 -2
  99. package/src/components/Modal/Modal.stories.tsx +4 -4
  100. package/src/components/Navigation/Navbar/Navbar.stories.tsx +5 -5
  101. package/src/components/Navigation/Navbar/Navbar.tsx +1 -1
  102. package/src/components/Navigation/README.md +1 -1
  103. package/src/components/Pagination/Pagination.stories.tsx +5 -2
  104. package/src/components/Pagination/Pagination.tsx +1 -1
  105. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +10 -10
  106. package/src/components/Popover/Popover.stories.tsx +1 -1
  107. package/src/components/ProductReview/ProductReview.tsx +1 -1
  108. package/src/components/Progress/Progress.tsx +46 -46
  109. package/src/components/Rating/Rating.stories.tsx +4 -4
  110. package/src/components/Rating/Rating.tsx +8 -8
  111. package/src/components/Slider/Slider.stories.tsx +63 -63
  112. package/src/components/Spinner/Spinner.stories.tsx +2 -2
  113. package/src/components/Spinner/Spinner.test.tsx +35 -0
  114. package/src/components/Spinner/Spinner.tsx +9 -2
  115. package/src/components/Testimonial/Testimonial.stories.tsx +1 -1
  116. package/src/components/Toggle/Toggle.stories.tsx +32 -9
  117. package/src/components/Toggle/Toggle.test.tsx +91 -0
  118. package/src/components/Toggle/Toggle.tsx +44 -27
  119. package/src/components/Tooltip/Tooltip.tsx +1 -1
  120. package/src/layouts/Grid/Grid.stories.tsx +49 -49
  121. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +2 -2
  122. package/src/lib/composables/useAccordion.ts +12 -3
  123. package/src/lib/composables/useBreadcrumb.ts +2 -2
  124. package/src/lib/composables/useCallout.ts +7 -7
  125. package/src/lib/composables/useNavbar.ts +1 -1
  126. package/src/lib/constants/components.ts +1 -1
  127. package/src/lib/storybook/InteractiveDemo.tsx +113 -0
  128. package/src/lib/storybook/PreviewContainer.tsx +36 -0
  129. package/src/lib/storybook/VariantsGrid.tsx +21 -0
  130. package/src/lib/storybook/index.ts +3 -0
  131. package/src/lib/theme/core/createThemeObject.ts +9 -5
  132. package/src/lib/theme/devtools/CLI.ts +155 -0
  133. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +213 -0
  134. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +566 -0
  135. package/src/lib/theme/devtools/LiveEditor.tsx +2 -1
  136. package/src/lib/theme/devtools/index.ts +3 -0
  137. package/src/lib/theme/errors/errors.ts +8 -0
  138. package/src/lib/theme/runtime/ThemeProvider.tsx +117 -57
  139. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +305 -0
  140. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +588 -0
  141. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +264 -0
  142. package/src/lib/theme/utils/index.ts +1 -0
  143. package/src/lib/theme/utils/themeValidation.ts +501 -0
  144. package/src/lib/theme-tools.ts +32 -3
  145. package/src/lib/types/components.ts +81 -26
  146. package/src/lib/utils/themeNaming.ts +1 -1
  147. package/src/styles/06-components/_components.atomix-glass.scss +14 -15
  148. package/src/styles/06-components/_components.callout.scss +29 -33
  149. package/src/styles/06-components/_index.scss +1 -1
  150. package/src/styles/99-utilities/_utilities.display.scss +14 -3
  151. package/src/styles/99-utilities/_utilities.flex.scss +10 -10
  152. package/src/styles/99-utilities/_utilities.text.scss +28 -8
  153. package/scripts/cli/__tests__/cli-commands.test.js +0 -204
  154. package/scripts/cli/__tests__/utils.test.js +0 -201
  155. package/scripts/cli/__tests__/vitest.config.js +0 -26
@@ -86,7 +86,7 @@ export const HeroExample: Story = {
86
86
 
87
87
  </div>
88
88
  <h1
89
- className="u-mt-0 u-fs-1 u-fw-bold"
89
+ className="u-mt-0 u-text-1 u-font-bold"
90
90
  style={{
91
91
  fontSize: '48px',
92
92
  marginBottom: '20px',
@@ -100,7 +100,7 @@ export const HeroExample: Story = {
100
100
  Modern Glass UI
101
101
  </h1>
102
102
  <p
103
- className="u-fs-4 u-mb-4"
103
+ className="u-text-4 u-mb-4"
104
104
  style={{
105
105
  fontSize: '18px',
106
106
  lineHeight: 1.7,
@@ -113,7 +113,7 @@ export const HeroExample: Story = {
113
113
  designs that stand out.
114
114
  </p>
115
115
  <div
116
- className="u-d-flex u-gap-3 u-justify-content-center u-flex-wrap"
116
+ className="u-flex u-gap-3 u-justify-center u-flex-wrap"
117
117
  style={{ gap: '16px' }}
118
118
  >
119
119
  <Button glass size="lg">
@@ -426,7 +426,7 @@ export const DashboardCards: Story = {
426
426
  </div>
427
427
  <div>
428
428
  <h1
429
- className="u-m-0 u-fs-2 u-fw-bold"
429
+ className="u-m-0 u-text-2 u-font-bold"
430
430
  style={{
431
431
  fontSize: '28px',
432
432
  marginBottom: '6px',
@@ -439,7 +439,7 @@ export const DashboardCards: Story = {
439
439
  Analytics Dashboard
440
440
  </h1>
441
441
  <p
442
- className="u-m-0 u-opacity-80 u-fs-6"
442
+ className="u-m-0 u-opacity-80 u-text-6"
443
443
  style={{
444
444
  fontSize: '15px',
445
445
  color: 'rgba(255, 255, 255, 0.85)',
@@ -601,21 +601,21 @@ export const ProductCard: Story = {
601
601
  </div>
602
602
 
603
603
  {/* Product Info */}
604
- <h2 className="u-m-0 u-mb-1 u-fs-6 u-fw-bold">Premium Cotton T-Shirt</h2>
605
- <p className="u-m-0 u-mb-2 u-opacity-70 u-fs-7">
604
+ <h2 className="u-m-0 u-mb-1 u-text-6 u-font-bold">Premium Cotton T-Shirt</h2>
605
+ <p className="u-m-0 u-mb-2 u-opacity-70 u-text-7">
606
606
  Ultra-soft fabric with a modern fit. Perfect for everyday wear.
607
607
  </p>
608
608
 
609
609
  {/* Price */}
610
- <div className="u-d-flex u-align-items-center u-gap-2 u-mb-2">
611
- <span className="u-fs-4 u-fw-bold u-text-success">$49.99</span>
612
- <span className="u-fs-4 u-text-decoration-line-through u-opacity-50">$71.99</span>
610
+ <div className="u-flex u-items-center u-gap-2 u-mb-2">
611
+ <span className="u-text-4 u-font-bold u-text-success">$49.99</span>
612
+ <span className="u-text-4 u-text-decoration-line-through u-opacity-50">$71.99</span>
613
613
  </div>
614
614
 
615
615
  {/* Size Selection */}
616
616
  <div className="u-mb-2">
617
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-2">Select Size</label>
618
- <div className="u-d-flex u-gap-2">
617
+ <label className="u-block u-text-7 u-font-semibold u-mb-2">Select Size</label>
618
+ <div className="u-flex u-gap-2">
619
619
  {sizes.map(size => (
620
620
  <Button
621
621
  key={size}
@@ -632,8 +632,8 @@ export const ProductCard: Story = {
632
632
 
633
633
  {/* Quantity */}
634
634
  <div className="u-mb-2">
635
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-1 u-text-white">Quantity</label>
636
- <div className="u-d-flex u-align-items-center u-gap-2">
635
+ <label className="u-block u-text-7 u-font-semibold u-mb-1 u-text-white">Quantity</label>
636
+ <div className="u-flex u-items-center u-gap-2">
637
637
  <Button onClick={() => setQuantity(Math.max(1, quantity - 1))} glass>
638
638
 
639
639
  </Button>
@@ -751,14 +751,14 @@ export const NotificationCenter: Story = {
751
751
  >
752
752
  {/* Header */}
753
753
  <div
754
- className="u-p-4 u-d-flex u-justify-content-between u-align-items-center"
754
+ className="u-p-4 u-flex u-justify-between u-items-center"
755
755
  style={{
756
756
  borderBottom:
757
757
  '1px solid color-mix(in srgb, var(--atomix-success) 10%, transparent)',
758
758
  }}
759
759
  >
760
- <div className="u-d-flex u-align-items-center u-gap-2">
761
- <h2 className="u-m-0 u-fs-4 u-fw-bold">Notifications</h2>
760
+ <div className="u-flex u-items-center u-gap-2">
761
+ <h2 className="u-m-0 u-text-4 u-font-bold">Notifications</h2>
762
762
  {unreadCount > 0 && (
763
763
  <span
764
764
  style={{
@@ -966,7 +966,7 @@ export const LoginForm: Story = {
966
966
  <Icon name="Lock" style={{ position: 'relative', zIndex: 1 }} />
967
967
  </div>
968
968
  <h2
969
- className="u-m-0 u-mb-2 u-fs-3 u-fw-bold"
969
+ className="u-m-0 u-mb-2 u-text-3 u-font-bold"
970
970
  style={{
971
971
  fontSize: '32px',
972
972
  marginBottom: '12px',
@@ -979,7 +979,7 @@ export const LoginForm: Story = {
979
979
  Welcome Back
980
980
  </h2>
981
981
  <p
982
- className="u-m-0 u-opacity-70 u-fs-7"
982
+ className="u-m-0 u-opacity-70 u-text-7"
983
983
  style={{
984
984
  fontSize: '15px',
985
985
  color: 'rgba(255, 255, 255, 0.85)',
@@ -992,7 +992,7 @@ export const LoginForm: Story = {
992
992
  {/* Form */}
993
993
  <form onSubmit={handleSubmit}>
994
994
  <div className="u-mb-3">
995
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-2">Email Address</label>
995
+ <label className="u-block u-text-7 u-font-semibold u-mb-2">Email Address</label>
996
996
  <Input
997
997
  type="email"
998
998
  value={email}
@@ -1006,7 +1006,7 @@ export const LoginForm: Story = {
1006
1006
  </div>
1007
1007
 
1008
1008
  <div className="u-mb-3">
1009
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-2">Password</label>
1009
+ <label className="u-block u-text-7 u-font-semibold u-mb-2">Password</label>
1010
1010
  <Input
1011
1011
  type="password"
1012
1012
  value={password}
@@ -1064,7 +1064,7 @@ export const LoginForm: Story = {
1064
1064
  glass={{
1065
1065
  elasticity: 0,
1066
1066
  }}
1067
- className="u-d-block u-w-100"
1067
+ className="u-block u-w-100"
1068
1068
  >
1069
1069
  {isLoading ? 'Signing in...' : 'Sign In'}
1070
1070
  </Button>
@@ -1236,7 +1236,7 @@ export const MusicPlayer: Story = {
1236
1236
  {/* Track Info */}
1237
1237
  <div className="u-text-center u-mb-3">
1238
1238
  <h2
1239
- className="u-m-0 u-mb-2 u-fs-3 u-fw-bold"
1239
+ className="u-m-0 u-mb-2 u-text-3 u-font-bold"
1240
1240
  style={{
1241
1241
  fontSize: '28px',
1242
1242
  marginBottom: '8px',
@@ -1248,7 +1248,7 @@ export const MusicPlayer: Story = {
1248
1248
  >
1249
1249
  Summer Vibes
1250
1250
  </h2>
1251
- <p className="u-m-0 u-opacity-70 u-fs-6" style={{ fontSize: '16px', color: 'rgba(255, 255, 255, 0.85)' }}>
1251
+ <p className="u-m-0 u-opacity-70 u-text-6" style={{ fontSize: '16px', color: 'rgba(255, 255, 255, 0.85)' }}>
1252
1252
  The Atomix Band
1253
1253
  </p>
1254
1254
  </div>
@@ -2524,7 +2524,7 @@ export const SettingsPanel: Story = {
2524
2524
  ⚙️
2525
2525
  </div>
2526
2526
  <h2
2527
- className="u-m-0 u-fs-2 u-fw-bold"
2527
+ className="u-m-0 u-text-2 u-font-bold"
2528
2528
  style={{
2529
2529
  fontSize: '28px',
2530
2530
  background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.9) 100%)',
@@ -2536,7 +2536,7 @@ export const SettingsPanel: Story = {
2536
2536
  Settings
2537
2537
  </h2>
2538
2538
  </div>
2539
- <p className="u-m-0 u-fs-6 u-opacity-70" style={{ fontSize: '15px', color: 'rgba(255, 255, 255, 0.85)' }}>
2539
+ <p className="u-m-0 u-text-6 u-opacity-70" style={{ fontSize: '15px', color: 'rgba(255, 255, 255, 0.85)' }}>
2540
2540
  Manage your account preferences and settings
2541
2541
  </p>
2542
2542
  </div>
@@ -2802,7 +2802,7 @@ export const SettingsPanel: Story = {
2802
2802
  </div>
2803
2803
 
2804
2804
  {/* Action Buttons */}
2805
- <div className="u-d-flex u-gap-2">
2805
+ <div className="u-flex u-gap-2">
2806
2806
  <button
2807
2807
  onClick={handleSave}
2808
2808
  style={{
@@ -4164,7 +4164,7 @@ export const PaymentForm: Story = {
4164
4164
  </div>
4165
4165
  <div>
4166
4166
  <h2
4167
- className="u-m-0 u-fs-4 u-fw-bold"
4167
+ className="u-m-0 u-text-4 u-font-bold"
4168
4168
  style={{
4169
4169
  fontSize: '24px',
4170
4170
  marginBottom: '4px',
@@ -4176,7 +4176,7 @@ export const PaymentForm: Story = {
4176
4176
  >
4177
4177
  Payment Details
4178
4178
  </h2>
4179
- <p className="u-m-0 u-fs-7 u-opacity-70" style={{ fontSize: '14px', color: 'rgba(255, 255, 255, 0.85)' }}>
4179
+ <p className="u-m-0 u-text-7 u-opacity-70" style={{ fontSize: '14px', color: 'rgba(255, 255, 255, 0.85)' }}>
4180
4180
  Complete your purchase securely
4181
4181
  </p>
4182
4182
  </div>
@@ -4259,9 +4259,9 @@ export const PaymentForm: Story = {
4259
4259
  </div>
4260
4260
  </AtomixGlass>
4261
4261
  {/* Form */}
4262
- <div className="u-d-flex u-flex-column u-gap-3">
4262
+ <div className="u-flex u-flex-column u-gap-3">
4263
4263
  <div>
4264
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-2">Card Number</label>
4264
+ <label className="u-block u-text-7 u-font-semibold u-mb-2">Card Number</label>
4265
4265
  <Input
4266
4266
  variant="primary"
4267
4267
  glass={
@@ -4278,7 +4278,7 @@ export const PaymentForm: Story = {
4278
4278
  </div>
4279
4279
 
4280
4280
  <div>
4281
- <label className="u-d-block u-fs-7 u-fw-semibold u-mb-2">Cardholder Name</label>
4281
+ <label className="u-block u-text-7 u-font-semibold u-mb-2">Cardholder Name</label>
4282
4282
  <Input
4283
4283
  variant="primary"
4284
4284
  glass={
@@ -4293,7 +4293,7 @@ export const PaymentForm: Story = {
4293
4293
  />
4294
4294
  </div>
4295
4295
 
4296
- <div className="u-d-grid u-gap-3" style={{ gridTemplateColumns: '1fr 1fr' }}>
4296
+ <div className="u-grid u-gap-3" style={{ gridTemplateColumns: '1fr 1fr' }}>
4297
4297
  <div>
4298
4298
  <label
4299
4299
  style={{
@@ -4547,7 +4547,7 @@ export const NewsletterSubscription: Story = {
4547
4547
  <div style={{ marginBottom: '20px' }}>
4548
4548
  <div
4549
4549
  style={{ position: 'relative' }}
4550
- className="u-d-flex u-gap-2 u-align-items-center"
4550
+ className="u-flex u-gap-2 u-items-center"
4551
4551
  >
4552
4552
  <div className="u-w-100">
4553
4553
  <Input
@@ -4788,7 +4788,7 @@ export const ProgressTracker: Story = {
4788
4788
  🚀
4789
4789
  </div>
4790
4790
  <h2
4791
- className="u-m-0 u-fs-2 u-fw-bold"
4791
+ className="u-m-0 u-text-2 u-font-bold"
4792
4792
  style={{
4793
4793
  fontSize: '28px',
4794
4794
  background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.9) 100%)',
@@ -4801,7 +4801,7 @@ export const ProgressTracker: Story = {
4801
4801
  </h2>
4802
4802
  </div>
4803
4803
  <p
4804
- className="u-m-0 u-fs-6 u-opacity-70"
4804
+ className="u-m-0 u-text-6 u-opacity-70"
4805
4805
  style={{ marginBottom: '48px', fontSize: '16px', color: 'rgba(255, 255, 255, 0.85)' }}
4806
4806
  >
4807
4807
  Complete the following steps to set up your account
@@ -4968,7 +4968,7 @@ export const ProgressTracker: Story = {
4968
4968
  </div>
4969
4969
 
4970
4970
  {/* Navigation Buttons */}
4971
- <div className="u-d-flex u-justify-content-between u-gap-3">
4971
+ <div className="u-flex u-justify-between u-gap-3">
4972
4972
  <button
4973
4973
  onClick={() => setCurrentStep(Math.max(1, currentStep - 1))}
4974
4974
  disabled={currentStep === 1}
@@ -208,9 +208,8 @@ export const ModeGallery: Story = {
208
208
  const isSelected = selectedMode === mode.id;
209
209
 
210
210
  return (
211
- <GridCol xs={12} md={6} className="u-mb-4">
211
+ <GridCol key={mode.id} xs={12} md={6} className="u-mb-4">
212
212
  <AtomixGlass
213
- key={mode.id}
214
213
  mode={mode.id as any}
215
214
  displacementScale={mode.settings.displacementScale}
216
215
  blurAmount={mode.settings.blurAmount}
@@ -460,10 +460,10 @@ export const Playground: Story = {
460
460
  Math.min(
461
461
  100,
462
462
  100 -
463
- settings.displacementScale * 0.15 -
464
- Math.abs(settings.blurAmount) * 2 -
465
- settings.aberrationIntensity * 3 -
466
- settings.elasticity * 20
463
+ settings.displacementScale * 0.15 -
464
+ Math.abs(settings.blurAmount) * 2 -
465
+ settings.aberrationIntensity * 3 -
466
+ settings.elasticity * 20
467
467
  )
468
468
  );
469
469
 
@@ -545,7 +545,7 @@ export const Playground: Story = {
545
545
  </div>
546
546
  <div>
547
547
  <h2
548
- className="u-m-0 u-text-white u-fw-bold"
548
+ className="u-m-0 u-text-white u-font-bold"
549
549
  style={{
550
550
  fontSize: '1.75rem',
551
551
  background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.8) 100%)',
@@ -574,9 +574,9 @@ export const Playground: Story = {
574
574
  border: `2px solid ${getPerformanceColor()}`,
575
575
  }}
576
576
  >
577
- <div className="u-d-flex u-justify-content-between u-align-items-center u-mb-2">
578
- <span className="u-text-white u-fw-semibold">Performance Score</span>
579
- <span className="u-fw-bold" style={{ color: getPerformanceColor() }}>
577
+ <div className="u-flex u-justify-between u-items-center u-mb-2">
578
+ <span className="u-text-white u-font-semibold">Performance Score</span>
579
+ <span className="u-font-bold" style={{ color: getPerformanceColor() }}>
580
580
  {Math.round(performanceScore)}/100
581
581
  </span>
582
582
  </div>
@@ -598,7 +598,7 @@ export const Playground: Story = {
598
598
  />
599
599
  </div>
600
600
  <div
601
- className="u-mt-2 u-text-center u-fs-xs"
601
+ className="u-mt-2 u-text-center u-text-xs"
602
602
  style={{ color: getPerformanceColor() }}
603
603
  >
604
604
  {getPerformanceLabel()} -{' '}
@@ -613,7 +613,7 @@ export const Playground: Story = {
613
613
  {/* Quick Presets */}
614
614
  <div className="u-mb-6">
615
615
  <label
616
- className="u-d-block u-mb-3 u-text-white u-fw-semibold"
616
+ className="u-block u-mb-3 u-text-white u-font-semibold"
617
617
  style={{ fontSize: '14px', letterSpacing: '0.5px' }}
618
618
  >
619
619
  ⚡ Quick Presets
@@ -676,34 +676,33 @@ export const Playground: Story = {
676
676
  {/* Controls */}
677
677
  {Object.entries(settings).map(([key, value]) => (
678
678
  <div key={key} className="u-mb-5">
679
- <div className="u-d-flex u-justify-content-between u-align-items-center u-mb-2">
679
+ <div className="u-flex u-justify-between u-items-center u-mb-2">
680
680
  <label
681
- className="u-text-white u-fs-sm u-fw-medium"
681
+ className="u-text-white u-text-sm u-font-medium"
682
682
  style={{ textTransform: 'capitalize' }}
683
683
  >
684
684
  {key.replace(/([A-Z])/g, ' $1').trim()}
685
685
  </label>
686
- <span className="u-text-white u-opacity-80 u-fs-sm u-fw-semibold">
686
+ <span className="u-text-white u-opacity-80 u-text-sm u-font-semibold">
687
687
  {typeof value === 'boolean'
688
688
  ? value
689
689
  ? 'On'
690
690
  : 'Off'
691
691
  : typeof value === 'number'
692
692
  ? value.toFixed(
693
- key.includes('Amount') ||
694
- key.includes('elasticity') ||
695
- key.includes('aberration')
696
- ? 2
697
- : 0
698
- )
693
+ key.includes('Amount') ||
694
+ key.includes('elasticity') ||
695
+ key.includes('aberration')
696
+ ? 2
697
+ : 0
698
+ )
699
699
  : value}
700
700
  </span>
701
701
  </div>
702
702
  {typeof value === 'boolean' ? (
703
703
  <Toggle
704
- initialOn={value}
705
- onToggleOn={() => setSettings(prev => ({ ...prev, [key]: true }))}
706
- onToggleOff={() => setSettings(prev => ({ ...prev, [key]: false }))}
704
+ checked={value as boolean}
705
+ onChange={checked => setSettings(prev => ({ ...prev, [key]: checked }))}
707
706
  />
708
707
  ) : (
709
708
  <input
@@ -724,8 +723,8 @@ export const Playground: Story = {
724
723
  }
725
724
  step={
726
725
  key === 'aberrationIntensity' ||
727
- key === 'elasticity' ||
728
- key === 'blurAmount'
726
+ key === 'elasticity' ||
727
+ key === 'blurAmount'
729
728
  ? 0.01
730
729
  : 1
731
730
  }
@@ -741,7 +740,7 @@ export const Playground: Story = {
741
740
 
742
741
  {/* Mode Selector */}
743
742
  <div className="u-mb-5">
744
- <label className="u-d-block u-mb-2 u-text-white u-fw-semibold">
743
+ <label className="u-block u-mb-2 u-text-white u-font-semibold">
745
744
  Glass Mode
746
745
  </label>
747
746
  <select
@@ -775,7 +774,7 @@ export const Playground: Story = {
775
774
  {/* Shader Variant Selector */}
776
775
  {selectedMode === 'shader' && (
777
776
  <div className="u-mb-5">
778
- <label className="u-d-block u-mb-2 u-text-white u-fw-semibold">
777
+ <label className="u-block u-mb-2 u-text-white u-font-semibold">
779
778
  Shader Variant
780
779
  </label>
781
780
  <select
@@ -809,7 +808,7 @@ export const Playground: Story = {
809
808
 
810
809
  {/* Background Control */}
811
810
  <div className="u-mb-6">
812
- <label className="u-d-block u-mb-2 u-text-white u-fw-semibold">
811
+ <label className="u-block u-mb-2 u-text-white u-font-semibold">
813
812
  Background Image
814
813
  </label>
815
814
  <input
@@ -821,7 +820,7 @@ export const Playground: Story = {
821
820
  onChange={e => setBackgroundIndex(parseInt(e.target.value))}
822
821
  style={{ width: '100%', height: '6px', accentColor: '#7AFFD7' }}
823
822
  />
824
- <div className="u-mt-2 u-text-center u-text-white u-opacity-70 u-fs-xs">
823
+ <div className="u-mt-2 u-text-center u-text-white u-opacity-70 u-text-xs">
825
824
  Background {backgroundIndex + 1} of {backgrounds.length}
826
825
  </div>
827
826
  </div>
@@ -901,12 +900,12 @@ export const Playground: Story = {
901
900
  >
902
901
  <div style={{ padding: '2.5rem' }}>
903
902
  <div
904
- className="u-d-flex u-justify-content-between u-align-items-center u-mb-4"
903
+ className="u-flex u-justify-between u-items-center u-mb-4"
905
904
  style={{ marginBottom: '24px' }}
906
905
  >
907
906
  <div>
908
907
  <h3
909
- className="u-m-0 u-fw-bold"
908
+ className="u-m-0 u-font-bold"
910
909
  style={{
911
910
  fontSize: '1.75rem',
912
911
  background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.8) 100%)',
@@ -1018,7 +1017,7 @@ export const Playground: Story = {
1018
1017
 
1019
1018
  </div>
1020
1019
  <h2
1021
- className="u-mb-4 u-fw-bold"
1020
+ className="u-mb-4 u-font-bold"
1022
1021
  style={{
1023
1022
  fontSize: '2.75rem',
1024
1023
  background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.8) 100%)',
@@ -1045,7 +1044,7 @@ export const Playground: Story = {
1045
1044
  effect.
1046
1045
  </p>
1047
1046
  <div
1048
- className="u-d-flex u-justify-content-center u-flex-wrap"
1047
+ className="u-flex u-justify-center u-flex-wrap"
1049
1048
  style={{ gap: '1rem' }}
1050
1049
  >
1051
1050
  <Button variant="primary" size="lg">
@@ -1066,7 +1065,7 @@ export const Playground: Story = {
1066
1065
  }}
1067
1066
  >
1068
1067
  <div
1069
- className="u-mb-3 u-fw-semibold u-fs-sm"
1068
+ className="u-mb-3 u-font-semibold u-text-sm"
1070
1069
  style={{ color: '#7AFFD7' }}
1071
1070
  >
1072
1071
  📊 Current Configuration
@@ -1079,40 +1078,40 @@ export const Playground: Story = {
1079
1078
  }}
1080
1079
  >
1081
1080
  <div>
1082
- <div className="u-fs-xs u-opacity-70">Mode</div>
1081
+ <div className="u-text-xs u-opacity-70">Mode</div>
1083
1082
  <div
1084
- className="u-fw-semibold"
1083
+ className="u-font-semibold"
1085
1084
  style={{ textTransform: 'capitalize' }}
1086
1085
  >
1087
1086
  {selectedMode}
1088
1087
  </div>
1089
1088
  </div>
1090
1089
  <div>
1091
- <div className="u-fs-xs u-opacity-70">Shader</div>
1090
+ <div className="u-text-xs u-opacity-70">Shader</div>
1092
1091
  <div
1093
- className="u-fw-semibold"
1092
+ className="u-font-semibold"
1094
1093
  style={{ textTransform: 'capitalize' }}
1095
1094
  >
1096
1095
  {selectedShader}
1097
1096
  </div>
1098
1097
  </div>
1099
1098
  <div>
1100
- <div className="u-fs-xs u-opacity-70">Displacement</div>
1101
- <div className="u-fw-semibold">{settings.displacementScale}px</div>
1099
+ <div className="u-text-xs u-opacity-70">Displacement</div>
1100
+ <div className="u-font-semibold">{settings.displacementScale}px</div>
1102
1101
  </div>
1103
1102
  <div>
1104
- <div className="u-fs-xs u-opacity-70">Aberration</div>
1105
- <div className="u-fw-semibold">
1103
+ <div className="u-text-xs u-opacity-70">Aberration</div>
1104
+ <div className="u-font-semibold">
1106
1105
  {settings.aberrationIntensity.toFixed(1)}
1107
1106
  </div>
1108
1107
  </div>
1109
1108
  <div>
1110
- <div className="u-fs-xs u-opacity-70">Blur</div>
1111
- <div className="u-fw-semibold">{settings.blurAmount.toFixed(2)}</div>
1109
+ <div className="u-text-xs u-opacity-70">Blur</div>
1110
+ <div className="u-font-semibold">{settings.blurAmount.toFixed(2)}</div>
1112
1111
  </div>
1113
1112
  <div>
1114
- <div className="u-fs-xs u-opacity-70">Elasticity</div>
1115
- <div className="u-fw-semibold">{settings.elasticity.toFixed(2)}</div>
1113
+ <div className="u-text-xs u-opacity-70">Elasticity</div>
1114
+ <div className="u-font-semibold">{settings.elasticity.toFixed(2)}</div>
1116
1115
  </div>
1117
1116
  </div>
1118
1117
  </div>
@@ -1126,7 +1125,7 @@ export const Playground: Story = {
1126
1125
  }}
1127
1126
  >
1128
1127
  <div
1129
- className="u-mb-3 u-fw-semibold u-fs-sm"
1128
+ className="u-mb-3 u-font-semibold u-text-sm"
1130
1129
  style={{ color: '#7AFFD7' }}
1131
1130
  >
1132
1131
  🎨 Visual Characteristics
@@ -1204,7 +1203,7 @@ export const Playground: Story = {
1204
1203
  }}
1205
1204
  >
1206
1205
  <div
1207
- className="u-mb-3 u-fw-semibold u-fs-sm"
1206
+ className="u-mb-3 u-font-semibold u-text-sm"
1208
1207
  style={{ color: '#7AFFD7' }}
1209
1208
  >
1210
1209
  📈 Quick Stats
@@ -1219,23 +1218,23 @@ export const Playground: Story = {
1219
1218
  >
1220
1219
  <div>
1221
1220
  <span className="u-opacity-70">Saturation:</span>
1222
- <span className="u-fw-semibold u-ml-2">{settings.saturation}%</span>
1221
+ <span className="u-font-semibold u-ml-2">{settings.saturation}%</span>
1223
1222
  </div>
1224
1223
  <div>
1225
1224
  <span className="u-opacity-70">Radius:</span>
1226
- <span className="u-fw-semibold u-ml-2">
1225
+ <span className="u-font-semibold u-ml-2">
1227
1226
  {settings.cornerRadius}px
1228
1227
  </span>
1229
1228
  </div>
1230
1229
  <div>
1231
1230
  <span className="u-opacity-70">Background:</span>
1232
- <span className="u-fw-semibold u-ml-2">
1231
+ <span className="u-font-semibold u-ml-2">
1233
1232
  {backgroundIndex + 1}/{backgrounds.length}
1234
1233
  </span>
1235
1234
  </div>
1236
1235
  <div>
1237
1236
  <span className="u-opacity-70">Effects:</span>
1238
- <span className="u-fw-semibold u-ml-2">
1237
+ <span className="u-font-semibold u-ml-2">
1239
1238
  {settings.disableEffects ? 'Disabled' : 'Enabled'}
1240
1239
  </span>
1241
1240
  </div>