@shohojdhara/atomix 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +510 -106
  2. package/dist/atomix.css +26 -22
  3. package/dist/atomix.css.map +1 -1
  4. package/dist/atomix.min.css +5 -5
  5. package/dist/atomix.min.css.map +1 -1
  6. package/dist/atomix.umd.js +1 -1
  7. package/dist/atomix.umd.js.map +1 -1
  8. package/dist/atomix.umd.min.js +1 -1
  9. package/dist/charts.d.ts +2 -2
  10. package/dist/charts.js +251 -131
  11. package/dist/charts.js.map +1 -1
  12. package/dist/core.d.ts +5 -39
  13. package/dist/core.js +254 -137
  14. package/dist/core.js.map +1 -1
  15. package/dist/forms.d.ts +2 -1
  16. package/dist/forms.js +342 -177
  17. package/dist/forms.js.map +1 -1
  18. package/dist/heavy.js +254 -135
  19. package/dist/heavy.js.map +1 -1
  20. package/dist/index.d.ts +141 -159
  21. package/dist/index.esm.js +348 -195
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +348 -195
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.min.js +1 -1
  26. package/dist/index.min.js.map +1 -1
  27. package/dist/theme.d.ts +14 -6
  28. package/dist/theme.js +2 -9
  29. package/dist/theme.js.map +1 -1
  30. package/package.json +26 -26
  31. package/src/components/AtomixGlass/AtomixGlass.tsx +1 -1
  32. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +8 -1
  33. package/src/components/AtomixGlass/glass-utils.ts +29 -0
  34. package/src/components/AtomixGlass/stories/Playground.stories.tsx +32 -1
  35. package/src/components/Button/Button.stories.tsx +1 -1
  36. package/src/components/Button/Button.tsx +6 -5
  37. package/src/components/Card/Card.tsx +2 -2
  38. package/src/components/Dropdown/Dropdown.tsx +1 -0
  39. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  40. package/src/components/Form/Select.test.tsx +75 -0
  41. package/src/components/Form/Select.tsx +348 -252
  42. package/src/components/Form/SelectOption.tsx +16 -10
  43. package/src/components/index.ts +1 -1
  44. package/src/layouts/CssGrid/index.ts +1 -0
  45. package/src/lib/composables/useAtomixGlass.ts +238 -138
  46. package/src/lib/composables/useAtomixGlassStyles.ts +201 -149
  47. package/src/lib/constants/components.ts +50 -35
  48. package/src/lib/theme/config/configLoader.ts +1 -1
  49. package/src/lib/theme/test/testTheme.ts +2 -2
  50. package/src/lib/theme/utils/themeUtils.ts +98 -110
  51. package/src/lib/types/components.ts +21 -63
  52. package/src/styles/01-settings/_settings.atomix-glass.scss +5 -5
  53. package/src/styles/01-settings/_settings.spacing.scss +6 -1
  54. package/src/styles/03-generic/_generic.reset.scss +1 -1
  55. package/src/styles/06-components/_components.atomix-glass.scss +20 -29
  56. package/src/styles/06-components/_components.data-table.scss +5 -4
  57. package/src/styles/06-components/_components.dynamic-background.scss +9 -8
  58. package/src/styles/06-components/_components.footer.scss +8 -7
  59. package/src/styles/06-components/_components.hero.scss +2 -2
  60. package/src/styles/06-components/_components.messages.scss +16 -16
  61. package/src/styles/06-components/_components.select.scss +15 -2
  62. package/src/styles/06-components/_components.upload.scss +3 -3
  63. package/CHANGELOG.md +0 -165
package/dist/index.d.ts CHANGED
@@ -1440,11 +1440,11 @@ type ThemeName = string;
1440
1440
  /**
1441
1441
  * Theme color variants
1442
1442
  */
1443
- type ThemeColor = 'primary' | 'secondary' | 'tertiary' | 'invert' | 'brand' | 'error' | 'success' | 'warning' | 'info' | 'light' | 'dark';
1443
+ type ThemeColor = 'primary' | 'secondary' | 'tertiary' | 'invert' | 'brand' | 'error' | 'danger' | 'success' | 'warning' | 'info' | 'light' | 'dark';
1444
1444
  /**
1445
1445
  * Component variant including theme colors and outline variants
1446
1446
  */
1447
- type Variant = ThemeColor | `outline-${ThemeColor}` | 'link';
1447
+ type Variant = ThemeColor | `outline-${ThemeColor}` | 'link' | 'ghost';
1448
1448
  /**
1449
1449
  * Base component properties interface
1450
1450
  */
@@ -2145,6 +2145,49 @@ interface HeroProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title' |
2145
2145
  */
2146
2146
  backgroundElement?: ReactNode;
2147
2147
  }
2148
+ /**
2149
+ * Spinner component properties
2150
+ */
2151
+ interface SpinnerProps extends BaseComponentProps {
2152
+ /**
2153
+ * Spinner color variant
2154
+ * @default 'primary'
2155
+ */
2156
+ variant?: ThemeColor;
2157
+ /**
2158
+ * Spinner size
2159
+ * @default 'md'
2160
+ */
2161
+ size?: Size;
2162
+ /**
2163
+ * Whether the spinner should be displayed fullscreen
2164
+ */
2165
+ fullscreen?: boolean;
2166
+ /**
2167
+ * Accessible label for screen readers
2168
+ * @default 'Loading'
2169
+ */
2170
+ 'aria-label'?: string;
2171
+ /**
2172
+ * ARIA live region setting
2173
+ * @default 'polite'
2174
+ */
2175
+ 'aria-live'?: 'off' | 'assertive' | 'polite';
2176
+ /**
2177
+ * ARIA description
2178
+ */
2179
+ 'aria-describe'?: string;
2180
+ /**
2181
+ * ARIA role for the spinner
2182
+ * @default 'status'
2183
+ */
2184
+ role?: 'status' | 'alert';
2185
+ /**
2186
+ * Glass morphism effect for the spinner
2187
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
2188
+ */
2189
+ glass?: AtomixGlassProps | boolean;
2190
+ }
2148
2191
  /**
2149
2192
  * Icon weight/style options
2150
2193
  */
@@ -2950,83 +2993,6 @@ interface TodoProps extends BaseComponentProps {
2950
2993
  */
2951
2994
  glass?: AtomixGlassProps | boolean;
2952
2995
  }
2953
- /**
2954
- * Spinner component properties
2955
- */
2956
- interface SpinnerProps extends BaseComponentProps {
2957
- /**
2958
- * Spinner color variant
2959
- * @default 'primary'
2960
- */
2961
- variant?: ThemeColor;
2962
- /**
2963
- * Spinner size
2964
- * @default 'md'
2965
- */
2966
- size?: Size;
2967
- /**
2968
- * Whether the spinner should be displayed fullscreen
2969
- */
2970
- fullscreen?: boolean;
2971
- /**
2972
- * Accessible label for screen readers
2973
- * @default 'Loading'
2974
- */
2975
- 'aria-label'?: string;
2976
- /**
2977
- * ARIA role for the spinner
2978
- * @default 'status'
2979
- */
2980
- role?: 'status' | 'alert';
2981
- /**
2982
- * Glass morphism effect for the spinner
2983
- * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
2984
- */
2985
- glass?: AtomixGlassProps | boolean;
2986
- }
2987
- /**
2988
- * Spinner component properties
2989
- */
2990
- interface SpinnerProps extends BaseComponentProps {
2991
- /**
2992
- * Spinner color variant
2993
- * @default 'primary'
2994
- */
2995
- variant?: ThemeColor;
2996
- /**
2997
- * Spinner size
2998
- * @default 'md'
2999
- */
3000
- size?: Size;
3001
- /**
3002
- * Whether the spinner should be displayed fullscreen
3003
- */
3004
- fullscreen?: boolean;
3005
- /**
3006
- * Accessible label for screen readers
3007
- * @default 'Loading'
3008
- */
3009
- 'aria-label'?: string;
3010
- /**
3011
- * ARIA live property to control how updates are announced
3012
- * @default 'polite'
3013
- */
3014
- 'aria-live'?: 'off' | 'polite' | 'assertive';
3015
- /**
3016
- * ARIA descriptor property for additional description
3017
- */
3018
- 'aria-describe'?: string;
3019
- /**
3020
- * ARIA role for the spinner
3021
- * @default 'status'
3022
- */
3023
- role?: 'status' | 'alert';
3024
- /**
3025
- * Glass morphism effect for the spinner
3026
- * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
3027
- */
3028
- glass?: AtomixGlassProps | boolean;
3029
- }
3030
2996
  /**
3031
2997
  * Icon size options
3032
2998
  */
@@ -6955,6 +6921,44 @@ type ListComponent = React__default.FC<ListProps> & {
6955
6921
  };
6956
6922
  declare const List: ListComponent;
6957
6923
 
6924
+ type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6925
+ type IconWeight = 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';
6926
+ type PhosphorIconsType = Exclude<keyof typeof _phosphor_icons_react, 'Icon' | 'IconContext' | 'IconBase' | 'IconProps' | 'createIcon' | 'default' | 'SSR'>;
6927
+ interface IconProps {
6928
+ /**
6929
+ * Icon name from Phosphor Icons
6930
+ */
6931
+ name: PhosphorIconsType;
6932
+ /**
6933
+ * Icon size
6934
+ */
6935
+ size?: IconSize | number;
6936
+ /**
6937
+ * Icon weight/style
6938
+ */
6939
+ weight?: IconWeight;
6940
+ /**
6941
+ * Icon color
6942
+ */
6943
+ color?: string;
6944
+ /**
6945
+ * Additional CSS class names
6946
+ */
6947
+ className?: string;
6948
+ /**
6949
+ * Custom style
6950
+ */
6951
+ style?: React__default.CSSProperties;
6952
+ /**
6953
+ * Alt text for accessibility
6954
+ */
6955
+ alt?: string;
6956
+ }
6957
+ /**
6958
+ * Icon component that displays a Phosphor icon
6959
+ */
6960
+ declare const Icon: React__default.FC<IconProps>;
6961
+
6958
6962
  interface HeroTitleProps extends React__default.HTMLAttributes<HTMLHeadingElement> {
6959
6963
  level?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div';
6960
6964
  }
@@ -6986,6 +6990,7 @@ declare const Hero: React__default.FC<HeroProps> & {
6986
6990
 
6987
6991
  interface SelectOptionProps {
6988
6992
  value: string;
6993
+ label?: string;
6989
6994
  children?: ReactNode;
6990
6995
  disabled?: boolean;
6991
6996
  className?: string;
@@ -8001,44 +8006,6 @@ declare const ChartRenderer: React$1.NamedExoticComponent<{
8001
8006
  renderContent: (params: ChartRenderContentParams) => React.ReactNode;
8002
8007
  } & React$1.RefAttributes<SVGSVGElement>>;
8003
8008
 
8004
- type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8005
- type IconWeight = 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';
8006
- type PhosphorIconsType = Exclude<keyof typeof _phosphor_icons_react, 'Icon' | 'IconContext' | 'IconBase' | 'IconProps' | 'createIcon' | 'default' | 'SSR'>;
8007
- interface IconProps {
8008
- /**
8009
- * Icon name from Phosphor Icons
8010
- */
8011
- name: PhosphorIconsType;
8012
- /**
8013
- * Icon size
8014
- */
8015
- size?: IconSize | number;
8016
- /**
8017
- * Icon weight/style
8018
- */
8019
- weight?: IconWeight;
8020
- /**
8021
- * Icon color
8022
- */
8023
- color?: string;
8024
- /**
8025
- * Additional CSS class names
8026
- */
8027
- className?: string;
8028
- /**
8029
- * Custom style
8030
- */
8031
- style?: React__default.CSSProperties;
8032
- /**
8033
- * Alt text for accessibility
8034
- */
8035
- alt?: string;
8036
- }
8037
- /**
8038
- * Icon component that displays a Phosphor icon
8039
- */
8040
- declare const Icon: React__default.FC<IconProps>;
8041
-
8042
8009
  /**
8043
8010
  * Pie chart specific options
8044
8011
  */
@@ -10788,11 +10755,11 @@ declare const ATOMIX_GLASS: {
10788
10755
  };
10789
10756
  DEFAULTS: {
10790
10757
  DISPLACEMENT_SCALE: number;
10791
- BLUR_AMOUNT: number;
10792
- SATURATION: number;
10793
- ABERRATION_INTENSITY: number;
10758
+ readonly BLUR_AMOUNT: number;
10759
+ readonly SATURATION: number;
10760
+ readonly ABERRATION_INTENSITY: number;
10794
10761
  ELASTICITY: number;
10795
- CORNER_RADIUS: number;
10762
+ readonly CORNER_RADIUS: number;
10796
10763
  PADDING: string;
10797
10764
  MODE: "standard";
10798
10765
  OVER_LIGHT: false;
@@ -10815,6 +10782,11 @@ declare const ATOMIX_GLASS: {
10815
10782
  ELASTICITY_TRANSLATION_FACTOR: number;
10816
10783
  ELASTICITY_DISTANCE_THRESHOLD: number;
10817
10784
  ELASTICITY_COMPRESSION_FACTOR: number;
10785
+ ELASTICITY_STIFFNESS: number;
10786
+ ELASTICITY_DAMPING: number;
10787
+ ELASTICITY_VELOCITY_FACTOR: number;
10788
+ ELASTICITY_STRETCH_RATIO: number;
10789
+ ELASTICITY_MAGNIFICATION_BASE: number;
10818
10790
  DEFAULT_CORNER_RADIUS: number;
10819
10791
  MAX_SIZE: number;
10820
10792
  PALETTE: {
@@ -10824,84 +10796,86 @@ declare const ATOMIX_GLASS: {
10824
10796
  GRADIENT: {
10825
10797
  BASE_ANGLE: number;
10826
10798
  ANGLE_MULTIPLIER: number;
10799
+ VELOCITY_ANGLE_MULTIPLIER: number;
10800
+ CHROMATIC_OFFSET: number;
10827
10801
  BORDER_STOP_1: {
10828
10802
  MIN: number;
10829
10803
  BASE: number;
10830
- MULTIPLIER: number;
10804
+ readonly MULTIPLIER: number;
10831
10805
  };
10832
10806
  BORDER_STOP_2: {
10833
10807
  MAX: number;
10834
10808
  BASE: number;
10835
- MULTIPLIER: number;
10809
+ readonly MULTIPLIER: number;
10836
10810
  };
10837
10811
  BORDER_OPACITY: {
10838
10812
  BASE_1: number;
10839
- BASE_2: number;
10840
- BASE_3: number;
10841
- BASE_4: number;
10842
- MULTIPLIER_LOW: number;
10843
- MULTIPLIER_HIGH: number;
10813
+ readonly BASE_2: number;
10814
+ readonly BASE_3: number;
10815
+ readonly BASE_4: number;
10816
+ readonly MULTIPLIER_LOW: number;
10817
+ readonly MULTIPLIER_HIGH: number;
10844
10818
  };
10845
10819
  CENTER_POSITION: number;
10846
10820
  HOVER_POSITION: {
10847
10821
  DIVISOR_1: number;
10848
- DIVISOR_2: number;
10849
- MULTIPLIER_3: number;
10822
+ readonly DIVISOR_2: number;
10823
+ readonly MULTIPLIER_3: number;
10850
10824
  };
10851
- BASE_LAYER_MULTIPLIER: number;
10825
+ readonly BASE_LAYER_MULTIPLIER: number;
10852
10826
  };
10853
10827
  GRADIENT_OPACITY: {
10854
10828
  HOVER_1: {
10855
10829
  BLACK_START: number;
10856
- BLACK_MID: number;
10830
+ readonly BLACK_MID: number;
10857
10831
  BLACK_STOP: number;
10858
- BLACK_END: number;
10832
+ readonly BLACK_END: number;
10859
10833
  WHITE_START: number;
10860
- WHITE_STOP: number;
10834
+ readonly WHITE_STOP: number;
10861
10835
  };
10862
10836
  HOVER_2: {
10863
10837
  BLACK_START: number;
10864
- BLACK_MID: number;
10838
+ readonly BLACK_MID: number;
10865
10839
  BLACK_STOP: number;
10866
- BLACK_END: number;
10840
+ readonly BLACK_END: number;
10867
10841
  WHITE_START: number;
10868
- WHITE_STOP: number;
10842
+ readonly WHITE_STOP: number;
10869
10843
  };
10870
10844
  HOVER_3: {
10871
10845
  BLACK_START: number;
10872
- BLACK_MID: number;
10846
+ readonly BLACK_MID: number;
10873
10847
  BLACK_STOP: number;
10874
- BLACK_END: number;
10848
+ readonly BLACK_END: number;
10875
10849
  WHITE_START: number;
10876
- WHITE_STOP: number;
10850
+ readonly WHITE_STOP: number;
10877
10851
  };
10878
10852
  };
10879
10853
  BASE_GRADIENT: {
10880
10854
  ANGLE: number;
10881
10855
  BLACK_START_BASE: number;
10882
- BLACK_START_MULTIPLIER: number;
10856
+ readonly BLACK_START_MULTIPLIER: number;
10883
10857
  BLACK_MID_BASE: number;
10884
- BLACK_MID_MULTIPLIER: number;
10858
+ readonly BLACK_MID_MULTIPLIER: number;
10885
10859
  BLACK_MID_STOP: number;
10886
- BLACK_END_BASE: number;
10887
- BLACK_END_MULTIPLIER: number;
10888
- WHITE_OPACITY: number;
10860
+ readonly BLACK_END_BASE: number;
10861
+ readonly BLACK_END_MULTIPLIER: number;
10862
+ readonly WHITE_OPACITY: number;
10889
10863
  };
10890
10864
  OVERLAY_GRADIENT: {
10891
10865
  BLACK_START_BASE: number;
10892
- BLACK_START_MULTIPLIER: number;
10893
- BLACK_MID: number;
10866
+ readonly BLACK_START_MULTIPLIER: number;
10867
+ readonly BLACK_MID: number;
10894
10868
  BLACK_MID_STOP: number;
10895
- BLACK_END_BASE: number;
10896
- BLACK_END_MULTIPLIER: number;
10897
- WHITE_OPACITY: number;
10869
+ readonly BLACK_END_BASE: number;
10870
+ readonly BLACK_END_MULTIPLIER: number;
10871
+ readonly WHITE_OPACITY: number;
10898
10872
  };
10899
10873
  OVERLAY_HIGHLIGHT: {
10900
10874
  POSITION_X: number;
10901
10875
  POSITION_Y: number;
10902
10876
  WHITE_OPACITY: number;
10903
- STOP: number;
10904
- OPACITY_MULTIPLIER: number;
10877
+ readonly STOP: number;
10878
+ readonly OPACITY_MULTIPLIER: number;
10905
10879
  };
10906
10880
  MULTIPLIERS: {
10907
10881
  SHADER_DISPLACEMENT: number;
@@ -14230,6 +14204,20 @@ declare function applyComponentTheme(component: string, style?: React.CSSPropert
14230
14204
  */
14231
14205
  declare function useComponentTheme(component: string, variant?: string, size?: string, tokens?: Partial<DesignTokens>): (property: string) => string;
14232
14206
 
14207
+ /**
14208
+ * Theme Manager Utility Functions
14209
+ *
14210
+ * Helper functions for theme operations including CSS loading, DOM manipulation,
14211
+ * and theme validation.
14212
+ */
14213
+
14214
+ /**
14215
+ * Detect system theme preference
14216
+ *
14217
+ * @returns 'dark' if system prefers dark mode, 'light' otherwise
14218
+ */
14219
+ declare const getSystemTheme: () => "light" | "dark";
14220
+
14233
14221
  /**
14234
14222
  * Theme Utilities
14235
14223
  *
@@ -14299,12 +14287,6 @@ declare function toggleTheme(options?: ThemeSwitcherOptions): ThemeMode;
14299
14287
  * @returns Current theme mode or 'light' if not set
14300
14288
  */
14301
14289
  declare function getCurrentTheme(storageKey?: string): ThemeMode;
14302
- /**
14303
- * Get system theme preference
14304
- *
14305
- * @returns 'dark' if system prefers dark mode, 'light' otherwise
14306
- */
14307
- declare function getSystemTheme(): ThemeMode;
14308
14290
  /**
14309
14291
  * Initialize theme based on saved preference or system preference
14310
14292
  *
@@ -16103,7 +16085,7 @@ declare const _default: {
16103
16085
  switchTheme: typeof switchTheme;
16104
16086
  toggleTheme: typeof toggleTheme;
16105
16087
  getCurrentTheme: typeof getCurrentTheme;
16106
- getSystemTheme: typeof getSystemTheme;
16088
+ getSystemTheme: () => "light" | "dark";
16107
16089
  initializeTheme: typeof initializeTheme;
16108
16090
  listenToSystemTheme: typeof listenToSystemTheme;
16109
16091
  persistTheme: typeof persistTheme;