@shohojdhara/atomix 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/atomix.css +117 -38
  2. package/dist/atomix.css.map +1 -1
  3. package/dist/atomix.min.css +1 -1
  4. package/dist/atomix.min.css.map +1 -1
  5. package/dist/atomix.umd.js +1 -1
  6. package/dist/atomix.umd.js.map +1 -1
  7. package/dist/atomix.umd.min.js +1 -1
  8. package/dist/charts.d.ts +30 -1
  9. package/dist/charts.js +566 -597
  10. package/dist/charts.js.map +1 -1
  11. package/dist/core.d.ts +30 -1
  12. package/dist/core.js +600 -624
  13. package/dist/core.js.map +1 -1
  14. package/dist/forms.d.ts +30 -1
  15. package/dist/forms.js +1122 -1163
  16. package/dist/forms.js.map +1 -1
  17. package/dist/heavy.d.ts +31 -89
  18. package/dist/heavy.js +1015 -1045
  19. package/dist/heavy.js.map +1 -1
  20. package/dist/index.d.ts +378 -104
  21. package/dist/index.esm.js +10959 -10837
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +10935 -10812
  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/package.json +1 -1
  28. package/src/components/Accordion/Accordion.tsx +2 -5
  29. package/src/components/AtomixGlass/AtomixGlass.test.tsx +14 -16
  30. package/src/components/AtomixGlass/AtomixGlass.tsx +137 -355
  31. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +32 -249
  32. package/src/components/AtomixGlass/GlassFilter.tsx +62 -68
  33. package/src/components/AtomixGlass/README.md +2 -1
  34. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +19 -18
  35. package/src/components/AtomixGlass/glass-border-styles.test.ts +58 -0
  36. package/src/components/AtomixGlass/glass-border-styles.ts +136 -0
  37. package/src/components/AtomixGlass/glass-utils.ts +411 -6
  38. package/src/components/AtomixGlass/stories/AnimationFeatures.stories.tsx +158 -537
  39. package/src/components/AtomixGlass/stories/Border.stories.tsx +149 -0
  40. package/src/components/AtomixGlass/stories/Examples.stories.tsx +229 -89
  41. package/src/components/AtomixGlass/stories/Playground.stories.tsx +29 -340
  42. package/src/components/AtomixGlass/stories/argTypes.ts +30 -13
  43. package/src/components/AtomixGlass/stories/premium-presets.ts +206 -0
  44. package/src/components/AtomixGlass/stories/shared-components.tsx +52 -8
  45. package/src/components/Badge/Badge.tsx +4 -4
  46. package/src/components/Button/Button.tsx +2 -6
  47. package/src/components/Callout/Callout.test.tsx +4 -3
  48. package/src/components/Callout/Callout.tsx +2 -5
  49. package/src/components/Dropdown/Dropdown.tsx +3 -7
  50. package/src/components/Form/Checkbox.tsx +2 -8
  51. package/src/components/Form/Input.tsx +2 -9
  52. package/src/components/Form/Radio.tsx +2 -9
  53. package/src/components/Form/Select.tsx +2 -7
  54. package/src/components/Form/Textarea.tsx +2 -9
  55. package/src/components/Messages/Messages.tsx +2 -8
  56. package/src/components/Modal/Modal.tsx +4 -5
  57. package/src/components/Navigation/Nav/Nav.tsx +2 -6
  58. package/src/components/Navigation/Navbar/Navbar.tsx +2 -9
  59. package/src/components/Navigation/SideMenu/SideMenu.tsx +2 -6
  60. package/src/components/Pagination/Pagination.tsx +2 -10
  61. package/src/components/Popover/Popover.tsx +2 -9
  62. package/src/components/Progress/Progress.tsx +2 -7
  63. package/src/components/Rating/Rating.tsx +2 -10
  64. package/src/components/Spinner/Spinner.tsx +2 -7
  65. package/src/components/Steps/Steps.tsx +2 -10
  66. package/src/components/Tabs/Tabs.tsx +2 -9
  67. package/src/components/Toggle/Toggle.tsx +2 -10
  68. package/src/components/Tooltip/Tooltip.tsx +2 -5
  69. package/src/lib/composables/useAtomixGlass.ts +41 -10
  70. package/src/lib/composables/useAtomixGlassStyles.ts +59 -75
  71. package/src/lib/composables/usePerformanceMonitor.ts +5 -0
  72. package/src/lib/constants/components.ts +358 -46
  73. package/src/lib/types/components.ts +33 -1
  74. package/src/styles/01-settings/_settings.atomix-glass.scss +66 -28
  75. package/src/styles/02-tools/_tools.glass.scss +45 -3
  76. package/src/styles/06-components/_components.atomix-glass.scss +114 -77
  77. package/src/components/AtomixGlass/deprecated/AtomixGlass.deprecated.tsx +0 -390
package/dist/atomix.css CHANGED
@@ -1951,12 +1951,29 @@ a, a:hover {
1951
1951
  margin-left: calc(var(--atomix-avatar-size) * -1 * var(--atomix-avatar-group-stacked-overlap) / 100);
1952
1952
  z-index: 1;
1953
1953
  }
1954
+ @property --atomix-glass-hover-1-opacity {
1955
+ syntax: "<number>";
1956
+ inherits: false;
1957
+ initial-value: 0;
1958
+ }
1959
+ @property --atomix-glass-hover-2-opacity {
1960
+ syntax: "<number>";
1961
+ inherits: false;
1962
+ initial-value: 0;
1963
+ }
1964
+ @property --atomix-glass-hover-3-opacity {
1965
+ syntax: "<number>";
1966
+ inherits: false;
1967
+ initial-value: 0;
1968
+ }
1954
1969
  .c-atomix-glass {
1955
1970
  position: relative;
1956
1971
  --_glass-radius: var(--atomix-glass-radius, var(--atomix-radius-md, 0.75rem));
1957
1972
  --_glass-transform: var(--atomix-glass-transform, translateZ(0));
1973
+ --_glass-backdrop: blur(40px) saturate(180%) brightness(102%);
1958
1974
  --atomix-glass-position: absolute;
1959
- --atomix-glass-border-width: var(--atomix-spacing-0-5, 0.125rem);
1975
+ --atomix-glass-border-width: max(0.5px, 0.03125rem);
1976
+ --atomix-glass-border-backdrop-filter: blur(40px) saturate(180%) brightness(102%);
1960
1977
  --atomix-glass-top: 0;
1961
1978
  --atomix-glass-left: 0;
1962
1979
  --atomix-glass-right: auto;
@@ -1978,11 +1995,11 @@ a, a:hover {
1978
1995
  --_glass-z-border-3: calc(var(--atomix-glass-base-z-index) + var(--atomix-z-index-content, 2));
1979
1996
  --_glass-z-content: calc(var(--atomix-glass-base-z-index) + var(--atomix-z-index-content, 2));
1980
1997
  --atomix-glass-border-shadow:
1981
- 0 0 0 0.5px var(--atomix-glass-border-color, rgba(255, 255, 255, 0.45)) inset,
1982
- 0 1px 2px var(--atomix-glass-inner-shadow-color, rgba(255, 255, 255, 0.18)) inset,
1983
- 0 2px 6px var(--atomix-glass-outer-shadow-color, rgba(0, 0, 0, 0.28));
1998
+ 0 0 0 0.5px var(--atomix-glass-border-color, rgba(255, 255, 255, 0.28)) inset,
1999
+ 0 1px 2px var(--atomix-glass-inner-shadow-color, rgba(255, 255, 255, 0.3)) inset,
2000
+ 0 2px 6px var(--atomix-glass-outer-shadow-color, rgba(0, 0, 0, 0.18));
1984
2001
  }
1985
- .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3, .c-atomix-glass__base, .c-atomix-glass__overlay {
2002
+ .c-atomix-glass__base, .c-atomix-glass__overlay {
1986
2003
  position: var(--atomix-glass-position);
1987
2004
  top: var(--atomix-glass-top);
1988
2005
  left: var(--atomix-glass-left);
@@ -1994,36 +2011,40 @@ a, a:hover {
1994
2011
  border-radius: var(--_glass-radius);
1995
2012
  transform: var(--_glass-transform);
1996
2013
  transition: var(--_glass-transition);
1997
- }
1998
- .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3 {
1999
- z-index: var(--_glass-z-hover);
2000
- }
2001
- .c-atomix-glass__base, .c-atomix-glass__overlay {
2002
2014
  z-index: var(--_glass-z-effect);
2003
2015
  }
2004
2016
  .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3 {
2005
- mix-blend-mode: overlay;
2017
+ position: absolute;
2018
+ inset: 0;
2019
+ pointer-events: none;
2020
+ border-radius: var(--_glass-radius);
2021
+ transform: var(--_glass-transform);
2022
+ transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.3s cubic-bezier(0.23, 1, 0.32, 1);
2023
+ z-index: var(--_glass-z-hover);
2006
2024
  }
2007
2025
  .c-atomix-glass__hover-1 {
2008
2026
  opacity: var(--atomix-glass-hover-1-opacity, 0);
2009
- background: var(--atomix-glass-hover-1-gradient, radial-gradient(60% 60% at 50% 0%, var(--atomix-glass-hover-1-start-color, rgba(255, 255, 255, 0.18)) 0%, var(--atomix-glass-hover-1-end-color, rgba(255, 255, 255, 0)) 60%));
2027
+ mix-blend-mode: overlay;
2028
+ background: var(--atomix-glass-hover-1-gradient, radial-gradient(65% 55% at 50% 30%, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0) 72%));
2010
2029
  }
2011
2030
  .c-atomix-glass__hover-2 {
2012
2031
  opacity: var(--atomix-glass-hover-2-opacity, 0);
2013
- background: var(--atomix-glass-hover-2-gradient, radial-gradient(80% 80% at 50% 100%, var(--atomix-glass-hover-2-start-color, rgba(0, 0, 0, 0.12)) 0%, var(--atomix-glass-hover-2-end-color, rgba(0, 0, 0, 0)) 60%));
2032
+ mix-blend-mode: multiply;
2033
+ background: var(--atomix-glass-hover-2-gradient, radial-gradient(70% 60% at 50% 60%, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 72%));
2014
2034
  }
2015
2035
  .c-atomix-glass__hover-3 {
2016
2036
  opacity: var(--atomix-glass-hover-3-opacity, 0);
2017
- background: var(--atomix-glass-hover-3-gradient, linear-gradient(180deg, var(--atomix-glass-hover-3-start-color, rgba(255, 255, 255, 0.06)) 0%, var(--atomix-glass-hover-3-end-color, rgba(255, 255, 255, 0)) 100%));
2037
+ mix-blend-mode: soft-light;
2038
+ background: var(--atomix-glass-hover-3-gradient, linear-gradient(160deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.04) 55%, rgba(255, 255, 255, 0) 100%));
2018
2039
  }
2019
2040
  .c-atomix-glass__base {
2020
2041
  mix-blend-mode: soft-light;
2021
- opacity: var(--atomix-glass-base-opacity, 0.6);
2042
+ opacity: var(--atomix-glass-base-opacity, 0.35);
2022
2043
  background: var(--atomix-glass-base-gradient, linear-gradient(180deg, var(--atomix-glass-base-start-color, rgba(255, 255, 255, 0.08)) 0%, var(--atomix-glass-base-end-color, rgba(255, 255, 255, 0.02)) 100%));
2023
2044
  }
2024
2045
  .c-atomix-glass__overlay {
2025
2046
  mix-blend-mode: overlay;
2026
- opacity: var(--atomix-glass-overlay-opacity, 0.35);
2047
+ opacity: var(--atomix-glass-overlay-opacity, 0.2);
2027
2048
  background: var(--atomix-glass-overlay-gradient, radial-gradient(120% 120% at 50% -10%, var(--atomix-glass-overlay-start-color, rgba(255, 255, 255, 0.12)) 0%, var(--atomix-glass-overlay-end-color, rgba(255, 255, 255, 0)) 40%));
2028
2049
  }
2029
2050
  .c-atomix-glass__overlay-highlight {
@@ -2035,22 +2056,13 @@ a, a:hover {
2035
2056
  transition: var(--_glass-transition);
2036
2057
  mix-blend-mode: screen;
2037
2058
  z-index: var(--_glass-z-overlay-highlight);
2038
- opacity: var(--atomix-glass-overlay-highlight-opacity, 0.25);
2039
- background: var(--atomix-glass-overlay-highlight-bg, linear-gradient(180deg, var(--atomix-glass-highlight-start-color, rgba(255, 255, 255, 0.24)) 0%, var(--atomix-glass-highlight-end-color, rgba(255, 255, 255, 0)) 60%));
2059
+ opacity: var(--atomix-glass-overlay-highlight-opacity, 0.18);
2060
+ background: var(--atomix-glass-overlay-highlight-bg, radial-gradient(90% 55% at 50% 0%, var(--atomix-glass-highlight-start-color, rgba(255, 255, 255, 0.18)) 0%, var(--atomix-glass-highlight-end-color, rgba(255, 255, 255, 0)) 72%));
2040
2061
  }
2041
- .c-atomix-glass__border-backdrop, .c-atomix-glass__border-1, .c-atomix-glass__border-2 {
2042
- padding: var(--atomix-glass-border-width);
2062
+ .c-atomix-glass__border-backdrop {
2063
+ display: block;
2043
2064
  box-sizing: border-box;
2044
- overflow: hidden;
2045
2065
  pointer-events: none;
2046
- /* autoprefixer: ignore next */
2047
- -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2048
- /* autoprefixer: ignore next */
2049
- -webkit-mask-composite: xor;
2050
- /* autoprefixer: ignore next */
2051
- mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2052
- /* autoprefixer: ignore next */
2053
- mask-composite: exclude;
2054
2066
  position: var(--atomix-glass-position);
2055
2067
  top: var(--atomix-glass-top);
2056
2068
  left: var(--atomix-glass-left);
@@ -2061,23 +2073,75 @@ a, a:hover {
2061
2073
  border-radius: var(--_glass-radius);
2062
2074
  transform: var(--_glass-transform);
2063
2075
  transition: var(--_glass-transition);
2064
- }
2065
- .c-atomix-glass__border-backdrop {
2076
+ padding: var(--atomix-glass-border-width, max(0.5px, 0.03125rem));
2077
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2078
+ -webkit-mask-composite: xor;
2079
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2080
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2081
+ -webkit-mask-composite: xor;
2082
+ mask-composite: exclude;
2066
2083
  mix-blend-mode: overlay;
2067
2084
  z-index: var(--_glass-z-border-1);
2068
- -webkit-backdrop-filter: blur(30px) saturate(140%) brightness(110%);
2069
- backdrop-filter: blur(30px) saturate(140%) brightness(110%);
2085
+ -webkit-backdrop-filter: var(--atomix-glass-border-backdrop-filter, blur(40px) saturate(180%) brightness(102%));
2086
+ backdrop-filter: var(--atomix-glass-border-backdrop-filter, blur(40px) saturate(180%) brightness(102%));
2087
+ box-shadow: var(--atomix-glass-border-shadow);
2070
2088
  }
2071
2089
  .c-atomix-glass__border-1 {
2072
- opacity: var(--atomix-glass-border-1-opacity, var(--atomix-opacity-18, 0.18));
2090
+ display: block;
2091
+ box-sizing: border-box;
2092
+ pointer-events: none;
2093
+ position: var(--atomix-glass-position);
2094
+ top: var(--atomix-glass-top);
2095
+ left: var(--atomix-glass-left);
2096
+ right: var(--atomix-glass-right);
2097
+ bottom: var(--atomix-glass-bottom);
2098
+ width: var(--atomix-glass-width);
2099
+ height: var(--atomix-glass-height);
2100
+ border-radius: var(--_glass-radius);
2101
+ transform: var(--_glass-transform);
2102
+ transition: var(--_glass-transition);
2103
+ padding: var(--atomix-glass-border-width, max(0.5px, 0.03125rem));
2104
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2105
+ -webkit-mask-composite: xor;
2106
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2107
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2108
+ -webkit-mask-composite: xor;
2109
+ mask-composite: exclude;
2110
+ background: var(--atomix-glass-border-gradient-1, conic-gradient(from 225deg at 50% 50%, rgba(255, 255, 255, 0) 0deg, rgba(255, 255, 255, 0.28) 52deg, rgba(255, 255, 255, 0.1) 120deg, rgba(255, 255, 255, 0.22) 200deg, rgba(255, 255, 255, 0.06) 280deg, rgba(255, 255, 255, 0) 360deg));
2111
+ opacity: var(--atomix-glass-border-1-opacity, 0.08);
2073
2112
  mix-blend-mode: screen;
2074
2113
  z-index: var(--_glass-z-border-2);
2075
- background: var(--atomix-glass-border-gradient-1, none);
2076
2114
  }
2077
2115
  .c-atomix-glass__border-2 {
2116
+ display: block;
2117
+ box-sizing: border-box;
2118
+ pointer-events: none;
2119
+ position: var(--atomix-glass-position);
2120
+ top: var(--atomix-glass-top);
2121
+ left: var(--atomix-glass-left);
2122
+ right: var(--atomix-glass-right);
2123
+ bottom: var(--atomix-glass-bottom);
2124
+ width: var(--atomix-glass-width);
2125
+ height: var(--atomix-glass-height);
2126
+ border-radius: var(--_glass-radius);
2127
+ transform: var(--_glass-transform);
2128
+ transition: var(--_glass-transition);
2129
+ padding: var(--atomix-glass-border-width, max(0.5px, 0.03125rem));
2130
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2131
+ -webkit-mask-composite: xor;
2132
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2133
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2134
+ -webkit-mask-composite: xor;
2135
+ mask-composite: exclude;
2136
+ background: var(--atomix-glass-border-gradient-2, linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.06) 28%, rgba(255, 255, 255, 0) 55%));
2078
2137
  mix-blend-mode: overlay;
2079
2138
  z-index: var(--_glass-z-border-3);
2080
- background: var(--atomix-glass-border-gradient-2, none);
2139
+ }
2140
+ .c-atomix-glass:has(.c-atomix-glass__container--over-light) .c-atomix-glass__border-1 {
2141
+ background: var(--atomix-glass-border-gradient-1, conic-gradient(from 225deg at 50% 50%, rgba(0, 0, 0, 0) 0deg, rgba(0, 0, 0, 0.22) 52deg, rgba(0, 0, 0, 0.08) 120deg, rgba(0, 0, 0, 0.18) 200deg, rgba(0, 0, 0, 0.05) 280deg, rgba(0, 0, 0, 0) 360deg));
2142
+ }
2143
+ .c-atomix-glass:has(.c-atomix-glass__container--over-light) .c-atomix-glass__border-2 {
2144
+ background: var(--atomix-glass-border-gradient-2, linear-gradient(135deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.12) 30%, rgba(255, 255, 255, 0) 55%));
2081
2145
  }
2082
2146
  .c-atomix-glass__container {
2083
2147
  position: relative;
@@ -2120,7 +2184,7 @@ a, a:hover {
2120
2184
  position: absolute;
2121
2185
  inset: var(--atomix-glass-border-width);
2122
2186
  pointer-events: none;
2123
- border-radius: var(--_glass-radius);
2187
+ border-radius: max(0px, var(--_glass-radius) - var(--atomix-glass-border-width));
2124
2188
  box-shadow: var(--atomix-glass-container-shadow);
2125
2189
  opacity: var(--atomix-glass-container-shadow-opacity);
2126
2190
  background: var(--atomix-glass-container-bg);
@@ -2179,15 +2243,28 @@ a, a:hover {
2179
2243
  .c-atomix-glass--disabled-effects {
2180
2244
  --atomix-glass-transform: none;
2181
2245
  --atomix-glass-transition: none;
2246
+ --_glass-transition: none;
2247
+ }
2248
+ .c-atomix-glass[role=button], .c-atomix-glass[tabindex]:not([tabindex="-1"]) {
2249
+ cursor: pointer;
2250
+ -webkit-user-select: none;
2251
+ -moz-user-select: none;
2252
+ user-select: none;
2253
+ -webkit-tap-highlight-color: transparent;
2182
2254
  }
2183
2255
  .c-atomix-glass[role=button]:focus-visible, .c-atomix-glass[tabindex]:not([tabindex="-1"]):focus-visible {
2184
2256
  outline: 2px solid var(--atomix-focus-border-color);
2185
2257
  outline-offset: 2px;
2186
2258
  box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
2187
2259
  }
2260
+ .c-atomix-glass[role=button]:active > .c-atomix-glass__container, .c-atomix-glass[tabindex]:not([tabindex="-1"]):active > .c-atomix-glass__container {
2261
+ transform: scale(0.985);
2262
+ transition: transform 0.06s cubic-bezier(0.4, 0, 1, 1);
2263
+ }
2188
2264
  @media (prefers-reduced-motion: reduce) {
2189
2265
  .c-atomix-glass {
2190
2266
  --atomix-glass-transition: none;
2267
+ --_glass-transition: none;
2191
2268
  }
2192
2269
  .c-atomix-glass * {
2193
2270
  transition: none !important;
@@ -2195,7 +2272,9 @@ a, a:hover {
2195
2272
  }
2196
2273
  @media (prefers-contrast: high) {
2197
2274
  .c-atomix-glass {
2198
- border-width: var(--atomix-spacing-0-5, 0.125rem);
2275
+ border: var(--atomix-spacing-0-5, 0.125rem) solid currentColor;
2276
+ outline: var(--atomix-spacing-0-5, 0.125rem) solid transparent;
2277
+ outline-offset: var(--atomix-spacing-0-5, 0.125rem);
2199
2278
  }
2200
2279
  }
2201
2280
  .c-badge {