@shohojdhara/atomix 0.2.7 → 0.2.9

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 (54) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +40 -1
  3. package/dist/atomix.css +412 -77
  4. package/dist/atomix.min.css +3 -3
  5. package/dist/index.d.ts +913 -12
  6. package/dist/index.esm.js +1739 -209
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/index.js +1763 -208
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.min.js +1 -1
  11. package/dist/index.min.js.map +1 -1
  12. package/dist/themes/applemix.css +412 -77
  13. package/dist/themes/applemix.min.css +3 -3
  14. package/dist/themes/boomdevs.css +411 -76
  15. package/dist/themes/boomdevs.min.css +3 -3
  16. package/dist/themes/esrar.css +412 -77
  17. package/dist/themes/esrar.min.css +3 -3
  18. package/dist/themes/flashtrade.css +1803 -622
  19. package/dist/themes/flashtrade.min.css +113 -7
  20. package/dist/themes/mashroom.css +411 -76
  21. package/dist/themes/mashroom.min.css +4 -4
  22. package/dist/themes/shaj-default.css +411 -76
  23. package/dist/themes/shaj-default.min.css +3 -3
  24. package/package.json +13 -2
  25. package/src/components/Button/Button.stories.tsx +174 -0
  26. package/src/components/Button/Button.tsx +238 -78
  27. package/src/components/Card/Card.stories.tsx +202 -0
  28. package/src/components/Card/Card.tsx +253 -77
  29. package/src/components/Form/Input.stories.tsx +228 -2
  30. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +301 -13
  31. package/src/components/Navigation/SideMenu/SideMenu.tsx +236 -9
  32. package/src/components/Tooltip/Tooltip.tsx +68 -66
  33. package/src/lib/composables/useButton.ts +37 -5
  34. package/src/lib/composables/useInput.ts +39 -1
  35. package/src/lib/composables/useSideMenu.ts +89 -30
  36. package/src/lib/constants/components.ts +53 -0
  37. package/src/lib/index.ts +5 -0
  38. package/src/lib/theme/ThemeContext.tsx +17 -0
  39. package/src/lib/theme/ThemeManager.stories.tsx +472 -0
  40. package/src/lib/theme/ThemeManager.test.ts +186 -0
  41. package/src/lib/theme/ThemeManager.ts +501 -0
  42. package/src/lib/theme/ThemeProvider.tsx +227 -0
  43. package/src/lib/theme/index.ts +56 -0
  44. package/src/lib/theme/types.ts +247 -0
  45. package/src/lib/theme/useTheme.test.tsx +66 -0
  46. package/src/lib/theme/useTheme.ts +80 -0
  47. package/src/lib/theme/utils.test.ts +140 -0
  48. package/src/lib/theme/utils.ts +398 -0
  49. package/src/lib/types/components.ts +304 -4
  50. package/src/styles/01-settings/_settings.tooltip.scss +2 -2
  51. package/src/styles/06-components/_components.button.scss +100 -0
  52. package/src/styles/06-components/_components.card.scss +235 -2
  53. package/src/styles/06-components/_components.side-menu.scss +79 -18
  54. package/src/styles/06-components/_components.tooltip.scss +89 -66
@@ -3039,12 +3039,76 @@ a, a:hover {
3039
3039
  .c-btn--icon {
3040
3040
  --atomix-btn-padding-x: var(--atomix-btn-padding-y);
3041
3041
  }
3042
+ .c-btn--full-width {
3043
+ width: 100%;
3044
+ }
3045
+ .c-btn--block {
3046
+ display: block;
3047
+ width: 100%;
3048
+ }
3049
+ .c-btn--loading {
3050
+ position: relative;
3051
+ pointer-events: none;
3052
+ cursor: wait;
3053
+ }
3054
+ .c-btn--loading::before {
3055
+ content: "";
3056
+ position: absolute;
3057
+ inset: 0;
3058
+ background-color: rgba(255, 255, 255, 0.5);
3059
+ border-radius: var(--atomix-btn-border-radius);
3060
+ z-index: 0;
3061
+ }
3062
+ .c-btn--active {
3063
+ --atomix-btn-bg: var(--atomix-btn-active-bg, var(--atomix-btn-hover-bg));
3064
+ --atomix-btn-color: var(--atomix-btn-active-color, var(--atomix-btn-hover-color));
3065
+ --atomix-btn-border-color: var(--atomix-btn-active-border-color, var(--atomix-btn-hover-border-color));
3066
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
3067
+ }
3068
+ .c-btn--selected {
3069
+ --atomix-btn-border-width: 2px;
3070
+ --atomix-btn-border-color: var(--atomix-brand-border-subtle, var(--atomix-primary));
3071
+ box-shadow: 0 0 0 2px rgba(var(--atomix-primary-rgb, 124, 58, 237), 0.2);
3072
+ }
3073
+ .c-btn__icon {
3074
+ display: inline-flex;
3075
+ align-items: center;
3076
+ flex-shrink: 0;
3077
+ }
3078
+ .c-btn__icon--start {
3079
+ order: -1;
3080
+ }
3081
+ .c-btn__icon--end {
3082
+ order: 1;
3083
+ }
3084
+ .c-btn__label {
3085
+ display: inline-block;
3086
+ }
3087
+ .c-btn__spinner {
3088
+ display: inline-flex;
3089
+ align-items: center;
3090
+ flex-shrink: 0;
3091
+ margin-right: 0.5rem;
3092
+ }
3093
+ .c-btn__spinner:last-child {
3094
+ margin-right: 0;
3095
+ margin-left: 0.5rem;
3096
+ }
3097
+ .c-btn:focus-visible {
3098
+ outline: 2px solid var(--atomix-brand-border-subtle, var(--atomix-primary));
3099
+ outline-offset: 2px;
3100
+ box-shadow: var(--atomix-btn-focus-box-shadow);
3101
+ }
3042
3102
  .c-btn:disabled, .c-btn--disabled, fieldset:disabled .c-btn {
3043
3103
  color: var(--atomix-btn-disabled-color);
3044
3104
  pointer-events: none;
3045
3105
  background-color: var(--atomix-btn-disabled-bg);
3046
3106
  border-color: var(--atomix-btn-disabled-border-color);
3047
3107
  opacity: var(--atomix-btn-disabled-opacity);
3108
+ cursor: not-allowed;
3109
+ }
3110
+ .c-btn:disabled:focus-visible, .c-btn--disabled:focus-visible, fieldset:disabled .c-btn:focus-visible {
3111
+ outline: none;
3048
3112
  }
3049
3113
  .c-btn--glass {
3050
3114
  background-color: color-mix(in srgb, var(--atomix-btn-bg) 50%, transparent);
@@ -3052,6 +3116,22 @@ a, a:hover {
3052
3116
  .c-btn--glass:hover {
3053
3117
  background-color: color-mix(in srgb, var(--atomix-btn-hover-bg) 50%, transparent);
3054
3118
  }
3119
+ @media (prefers-reduced-motion: reduce) {
3120
+ .c-btn {
3121
+ transition: none;
3122
+ }
3123
+ .c-btn__spinner {
3124
+ animation-duration: 2s;
3125
+ }
3126
+ }
3127
+ @media (prefers-contrast: high) {
3128
+ .c-btn {
3129
+ border-width: 2px;
3130
+ }
3131
+ .c-btn:focus-visible {
3132
+ outline-width: 3px;
3133
+ }
3134
+ }
3055
3135
  .c-datepicker {
3056
3136
  --atomix-datepicker-width: 22rem;
3057
3137
  --atomix-datepicker-padding-x: 0.75rem;
@@ -3514,6 +3594,19 @@ a, a:hover {
3514
3594
  transition-timing-function: ease-in-out;
3515
3595
  transition-delay: 0s;
3516
3596
  background-color: var(--atomix-card-bg);
3597
+ display: block;
3598
+ text-decoration: none;
3599
+ color: inherit;
3600
+ }
3601
+ .c-card[href] {
3602
+ display: block;
3603
+ text-decoration: none !important;
3604
+ color: inherit !important;
3605
+ cursor: pointer;
3606
+ }
3607
+ .c-card[href]:hover, .c-card[href]:focus, .c-card[href]:visited, .c-card[href]:active {
3608
+ text-decoration: none !important;
3609
+ color: inherit !important;
3517
3610
  }
3518
3611
  .c-card__header {
3519
3612
  margin-bottom: var(--atomix-card-header-spacer-y);
@@ -3594,15 +3687,220 @@ a, a:hover {
3594
3687
  padding: var(--atomix-card-row-spacer-y) var(--atomix-card-row-spacer-x);
3595
3688
  padding-top: 0;
3596
3689
  }
3690
+ .c-card--sm {
3691
+ --atomix-card-spacer-y: 0.5rem;
3692
+ --atomix-card-spacer-x: 0.5rem;
3693
+ --atomix-card-title-font-size: var(--atomix-font-size-sm);
3694
+ --atomix-card-text-font-size: var(--atomix-font-size-xs);
3695
+ }
3696
+ .c-card--lg {
3697
+ --atomix-card-spacer-y: 1.5rem;
3698
+ --atomix-card-spacer-x: 1.5rem;
3699
+ --atomix-card-title-font-size: var(--atomix-font-size-lg);
3700
+ --atomix-card-text-font-size: var(--atomix-font-size-base);
3701
+ }
3702
+ .c-card--filled {
3703
+ background-color: var(--atomix-card-bg);
3704
+ }
3597
3705
  .c-card--glass {
3598
3706
  max-width: none;
3599
3707
  background-color: color-mix(in srgb, var(--atomix-card-bg) 50%, transparent);
3600
3708
  }
3709
+ .c-card--outlined {
3710
+ background-color: transparent;
3711
+ border-width: var(--atomix-card-border-width);
3712
+ }
3713
+ .c-card--ghost {
3714
+ background-color: transparent;
3715
+ border: none;
3716
+ }
3717
+ .c-card--elevated {
3718
+ box-shadow: var(--atomix-box-shadow-md);
3719
+ }
3720
+ .c-card--elevation-none {
3721
+ box-shadow: none;
3722
+ }
3723
+ .c-card--elevation-sm {
3724
+ box-shadow: var(--atomix-box-shadow-sm);
3725
+ }
3726
+ .c-card--elevation-md {
3727
+ box-shadow: var(--atomix-box-shadow-md);
3728
+ }
3729
+ .c-card--elevation-lg {
3730
+ box-shadow: var(--atomix-box-shadow-lg);
3731
+ }
3732
+ .c-card--elevation-xl {
3733
+ box-shadow: var(--atomix-box-shadow-xl);
3734
+ }
3735
+ .c-card--disabled {
3736
+ opacity: 0.6;
3737
+ cursor: not-allowed;
3738
+ pointer-events: none;
3739
+ -webkit-user-select: none;
3740
+ -moz-user-select: none;
3741
+ user-select: none;
3742
+ }
3743
+ .c-card--loading {
3744
+ position: relative;
3745
+ pointer-events: none;
3746
+ -webkit-user-select: none;
3747
+ -moz-user-select: none;
3748
+ user-select: none;
3749
+ overflow: hidden;
3750
+ }
3751
+ .c-card--loading::before {
3752
+ content: "";
3753
+ position: absolute;
3754
+ inset: 0;
3755
+ background-color: var(--atomix-card-bg-hover);
3756
+ -webkit-backdrop-filter: blur(1px);
3757
+ backdrop-filter: blur(1px);
3758
+ z-index: 1;
3759
+ border-radius: var(--atomix-card-border-radius);
3760
+ }
3761
+ [data-theme=dark] .c-card--loading::before, .c-card--loading.dark::before {
3762
+ background-color: rgba(0, 0, 0, 0.5);
3763
+ }
3764
+ .c-card--selected {
3765
+ --atomix-card-border-color: var(--atomix-brand-border-subtle);
3766
+ --atomix-card-border-width: 2px;
3767
+ box-shadow: var(--atomix-box-shadow-md);
3768
+ }
3769
+ .c-card--interactive {
3770
+ cursor: pointer;
3771
+ transition: all 0.2s ease-in-out;
3772
+ }
3773
+ .c-card--interactive:hover:not(.c-card--interactive--disabled) {
3774
+ transform: translateY(-2px);
3775
+ box-shadow: var(--atomix-box-shadow-lg);
3776
+ }
3777
+ .c-card--interactive:active:not(.c-card--interactive--disabled) {
3778
+ transform: translateY(0);
3779
+ }
3780
+ .c-card--primary {
3781
+ --atomix-card-bg: var(--atomix-brand-bg-subtle);
3782
+ --atomix-card-bg-hover: var(--atomix-brand-bg-subtle);
3783
+ --atomix-card-border-color: var(--atomix-brand-border-subtle);
3784
+ --atomix-card-title-color: var(--atomix-brand-text-emphasis);
3785
+ --atomix-card-icon-bg: var(--atomix-brand-text-emphasis);
3786
+ --atomix-card-icon-color: var(--atomix-brand-bg-subtle);
3787
+ }
3788
+ .c-card--secondary {
3789
+ --atomix-card-bg: var(--atomix-secondary-bg-subtle);
3790
+ --atomix-card-bg-hover: var(--atomix-secondary-bg-subtle);
3791
+ --atomix-card-border-color: var(--atomix-secondary-border-subtle);
3792
+ --atomix-card-title-color: var(--atomix-secondary-text-emphasis);
3793
+ --atomix-card-icon-bg: var(--atomix-secondary-text-emphasis);
3794
+ --atomix-card-icon-color: var(--atomix-secondary-bg-subtle);
3795
+ }
3796
+ .c-card--success {
3797
+ --atomix-card-bg: var(--atomix-success-bg-subtle);
3798
+ --atomix-card-bg-hover: var(--atomix-success-bg-subtle);
3799
+ --atomix-card-border-color: var(--atomix-success-border-subtle);
3800
+ --atomix-card-title-color: var(--atomix-success-text-emphasis);
3801
+ --atomix-card-icon-bg: var(--atomix-success-text-emphasis);
3802
+ --atomix-card-icon-color: var(--atomix-success-bg-subtle);
3803
+ }
3804
+ .c-card--info {
3805
+ --atomix-card-bg: var(--atomix-info-bg-subtle);
3806
+ --atomix-card-bg-hover: var(--atomix-info-bg-subtle);
3807
+ --atomix-card-border-color: var(--atomix-info-border-subtle);
3808
+ --atomix-card-title-color: var(--atomix-info-text-emphasis);
3809
+ --atomix-card-icon-bg: var(--atomix-info-text-emphasis);
3810
+ --atomix-card-icon-color: var(--atomix-info-bg-subtle);
3811
+ }
3812
+ .c-card--warning {
3813
+ --atomix-card-bg: var(--atomix-warning-bg-subtle);
3814
+ --atomix-card-bg-hover: var(--atomix-warning-bg-subtle);
3815
+ --atomix-card-border-color: var(--atomix-warning-border-subtle);
3816
+ --atomix-card-title-color: var(--atomix-warning-text-emphasis);
3817
+ --atomix-card-icon-bg: var(--atomix-warning-text-emphasis);
3818
+ --atomix-card-icon-color: var(--atomix-warning-bg-subtle);
3819
+ }
3820
+ .c-card--error {
3821
+ --atomix-card-bg: var(--atomix-error-bg-subtle);
3822
+ --atomix-card-bg-hover: var(--atomix-error-bg-subtle);
3823
+ --atomix-card-border-color: var(--atomix-error-border-subtle);
3824
+ --atomix-card-title-color: var(--atomix-error-text-emphasis);
3825
+ --atomix-card-icon-bg: var(--atomix-error-text-emphasis);
3826
+ --atomix-card-icon-color: var(--atomix-error-bg-subtle);
3827
+ }
3828
+ .c-card--light {
3829
+ --atomix-card-bg: var(--atomix-light);
3830
+ --atomix-card-bg-hover: var(--atomix-light-hover);
3831
+ --atomix-card-border-color: var(--atomix-light);
3832
+ --atomix-card-title-color: var(--atomix-dark);
3833
+ --atomix-card-text-color: var(--atomix-dark);
3834
+ --atomix-card-icon-bg: var(--atomix-dark);
3835
+ --atomix-card-icon-color: var(--atomix-light);
3836
+ }
3837
+ .c-card--dark {
3838
+ --atomix-card-bg: var(--atomix-dark);
3839
+ --atomix-card-bg-hover: var(--atomix-dark-hover);
3840
+ --atomix-card-border-color: var(--atomix-dark);
3841
+ --atomix-card-title-color: var(--atomix-light);
3842
+ --atomix-card-text-color: var(--atomix-light);
3843
+ --atomix-card-icon-bg: var(--atomix-light);
3844
+ --atomix-card-icon-color: var(--atomix-dark);
3845
+ }
3846
+ .c-card__loading {
3847
+ position: absolute;
3848
+ inset: 0;
3849
+ display: flex;
3850
+ align-items: center;
3851
+ justify-content: center;
3852
+ z-index: 2;
3853
+ border-radius: var(--atomix-card-border-radius);
3854
+ pointer-events: none;
3855
+ }
3856
+ .c-card__spinner {
3857
+ width: 2.5rem;
3858
+ height: 2.5rem;
3859
+ border: 4px solid;
3860
+ border-color: var(--atomix-border-primary, rgba(0, 0, 0, 0.15));
3861
+ border-top-color: var(--atomix-brand-text-emphasis, var(--atomix-primary));
3862
+ border-right-color: var(--atomix-brand-text-emphasis, var(--atomix-primary));
3863
+ border-radius: 50%;
3864
+ animation: spin 0.8s linear infinite;
3865
+ background-color: transparent;
3866
+ flex-shrink: 0;
3867
+ box-sizing: border-box;
3868
+ display: block;
3869
+ }
3870
+ .c-card:focus-visible {
3871
+ outline: 2px solid var(--atomix-brand-border-subtle);
3872
+ outline-offset: 2px;
3873
+ }
3874
+ @media (prefers-reduced-motion: reduce) {
3875
+ .c-card {
3876
+ transition: none;
3877
+ }
3878
+ .c-card--interactive:hover:not(.c-card--disabled) {
3879
+ transform: none;
3880
+ }
3881
+ .c-card__spinner {
3882
+ animation: none;
3883
+ border-top-color: transparent;
3884
+ }
3885
+ }
3886
+ @media (prefers-contrast: high) {
3887
+ .c-card {
3888
+ border-width: 2px;
3889
+ }
3890
+ .c-card--selected {
3891
+ border-width: 3px;
3892
+ }
3893
+ }
3601
3894
  .is-elevated .c-card {
3602
3895
  box-shadow: var(--atomix-box-shadow-lg, 0 16px 48px rgba(0, 0, 0, 0.175));
3603
3896
  z-index: 1;
3604
3897
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
3605
3898
  }
3899
+ @keyframes spin {
3900
+ to {
3901
+ transform: rotate(360deg);
3902
+ }
3903
+ }
3606
3904
  .c-chart {
3607
3905
  --atomix-chart-primary-color: var(--atomix-primary);
3608
3906
  --atomix-chart-secondary-color: var(--atomix-secondary);
@@ -9793,30 +10091,30 @@ a, a:hover {
9793
10091
  padding: 1rem 1.25rem;
9794
10092
  }
9795
10093
  }
9796
- @media (max-width: 991.98px) {
9797
- .c-side-menu__wrapper {
9798
- height: 0px;
9799
- overflow: hidden;
9800
- -webkit-user-select: none;
9801
- -moz-user-select: none;
9802
- user-select: none;
9803
- transition: var(--atomix-side-menu-wrapper-transition);
9804
- }
10094
+ .c-side-menu__wrapper {
10095
+ overflow: hidden;
10096
+ -webkit-user-select: none;
10097
+ -moz-user-select: none;
10098
+ user-select: none;
10099
+ transition: var(--atomix-side-menu-wrapper-transition);
10100
+ height: 0px;
9805
10101
  }
9806
- @media (max-width: 991.98px) {
9807
- .c-side-menu__inner {
9808
- padding-top: var(--atomix-side-menu-inner-padding-top);
9809
- }
10102
+ .c-side-menu__inner {
10103
+ padding-top: var(--atomix-side-menu-inner-padding-top);
9810
10104
  }
9811
10105
  .c-side-menu__title {
9812
10106
  color: var(--atomix-side-menu-title-color);
9813
10107
  font-size: var(--atomix-side-menu-title-font-size);
9814
10108
  font-weight: var(--atomix-side-menu-title-font-weight);
10109
+ margin: 0;
9815
10110
  margin-bottom: var(--atomix-side-menu-title-spacer-y);
9816
- margin: 0 0 var(--atomix-side-menu-title-spacer-y) 0;
10111
+ }
10112
+ .c-side-menu__toggler .c-side-menu__title {
10113
+ margin-bottom: 0;
10114
+ flex: 1 1;
9817
10115
  }
9818
10116
  .c-side-menu__toggler {
9819
- display: none;
10117
+ display: flex;
9820
10118
  align-items: center;
9821
10119
  justify-content: space-between;
9822
10120
  width: 100%;
@@ -9830,19 +10128,18 @@ a, a:hover {
9830
10128
  user-select: none;
9831
10129
  transition: var(--atomix-side-menu-toggler-transition);
9832
10130
  text-align: left;
9833
- }
9834
- @media (max-width: 991.98px) {
9835
- .c-side-menu__toggler {
9836
- display: flex;
9837
- }
10131
+ margin: 0;
9838
10132
  }
9839
10133
  .c-side-menu__toggler:hover {
9840
10134
  background-color: var(--atomix-side-menu-toggler-hover-bg);
9841
10135
  }
9842
- .c-side-menu__toggler:focus {
10136
+ .c-side-menu__toggler:focus-visible {
9843
10137
  outline: 2px solid var(--atomix-focus-ring-color);
9844
10138
  outline-offset: 2px;
9845
10139
  }
10140
+ .c-side-menu__toggler:focus:not(:focus-visible) {
10141
+ outline: none;
10142
+ }
9846
10143
  .c-side-menu__toggler:active {
9847
10144
  transform: scale(0.98);
9848
10145
  }
@@ -9854,6 +10151,23 @@ a, a:hover {
9854
10151
  .c-side-menu__toggler-icon {
9855
10152
  transition: var(--atomix-side-menu-toggler-transition);
9856
10153
  font-size: 0.875em;
10154
+ flex-shrink: 0;
10155
+ display: inline-flex;
10156
+ align-items: center;
10157
+ justify-content: center;
10158
+ transform-origin: center;
10159
+ }
10160
+ .c-side-menu__toggler--nested {
10161
+ margin-bottom: var(--atomix-side-menu-item-gap);
10162
+ }
10163
+ .c-side-menu__nested-wrapper {
10164
+ overflow: hidden;
10165
+ transition: var(--atomix-side-menu-wrapper-transition);
10166
+ height: 0px;
10167
+ margin: 0;
10168
+ }
10169
+ .c-side-menu__nested-inner {
10170
+ display: block;
9857
10171
  }
9858
10172
  .c-side-menu__list {
9859
10173
  list-style: none;
@@ -9866,6 +10180,9 @@ a, a:hover {
9866
10180
  .c-side-menu__list:last-child {
9867
10181
  margin-bottom: 0;
9868
10182
  }
10183
+ .c-side-menu__item {
10184
+ display: block;
10185
+ }
9869
10186
  .c-side-menu__link {
9870
10187
  display: flex;
9871
10188
  align-items: center;
@@ -9881,16 +10198,20 @@ a, a:hover {
9881
10198
  text-decoration: none;
9882
10199
  cursor: pointer;
9883
10200
  transition: var(--atomix-side-menu-item-transition);
10201
+ position: relative;
9884
10202
  }
9885
10203
  .c-side-menu__link:hover {
9886
10204
  color: var(--atomix-side-menu-item-hover-color);
9887
10205
  background-color: var(--atomix-side-menu-item-hover-bg);
9888
10206
  text-decoration: none;
9889
10207
  }
9890
- .c-side-menu__link:focus {
10208
+ .c-side-menu__link:focus-visible {
9891
10209
  outline: 2px solid var(--atomix-focus-ring-color);
9892
10210
  outline-offset: 2px;
9893
10211
  }
10212
+ .c-side-menu__link:focus:not(:focus-visible) {
10213
+ outline: none;
10214
+ }
9894
10215
  .c-side-menu__link:active {
9895
10216
  transform: scale(0.98);
9896
10217
  }
@@ -9917,9 +10238,15 @@ a, a:hover {
9917
10238
  background-color: transparent;
9918
10239
  border-bottom: none;
9919
10240
  }
9920
- .c-side-menu.is-open .c-side-menu__toggler-icon {
10241
+ .c-side-menu.is-open .c-side-menu__toggler .c-side-menu__toggler-icon {
9921
10242
  transform: rotate(90deg);
9922
10243
  }
10244
+ .c-side-menu__toggler--nested.is-open .c-side-menu__toggler-icon {
10245
+ transform: rotate(90deg);
10246
+ }
10247
+ .c-side-menu__toggler--nested.is-open + .c-side-menu__nested-wrapper {
10248
+ height: auto;
10249
+ }
9923
10250
  .dark-mode .c-side-menu {
9924
10251
  --atomix-side-menu-bg: var(--atomix-gray-9);
9925
10252
  --atomix-side-menu-border-color: var(--atomix-gray-7);
@@ -9937,6 +10264,18 @@ a, a:hover {
9937
10264
  .c-side-menu .c-side-menu__toggler-icon {
9938
10265
  transition: none;
9939
10266
  }
10267
+ .c-side-menu .c-side-menu__toggler:active {
10268
+ transform: none;
10269
+ }
10270
+ .c-side-menu .c-side-menu__link:active {
10271
+ transform: none;
10272
+ }
10273
+ }
10274
+ @media (prefers-contrast: high) {
10275
+ .c-side-menu .c-side-menu__toggler:focus-visible,
10276
+ .c-side-menu .c-side-menu__link:focus-visible {
10277
+ outline-width: 3px;
10278
+ }
9940
10279
  }
9941
10280
  .c-skeleton {
9942
10281
  --atomix-skeleton-width: 100%;
@@ -10713,18 +11052,46 @@ a, a:hover {
10713
11052
  --atomix-tooltip-border-color: ;
10714
11053
  --atomix-tooltip-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
10715
11054
  --atomix-tooltip-arrow-size: 0.5rem;
11055
+ --atomix-tooltip-offset: 0.5rem;
10716
11056
  position: absolute;
10717
- bottom: calc(100% + var(--atomix-tooltip-arrow-size));
10718
- left: 50%;
10719
11057
  width: -moz-max-content;
10720
11058
  width: max-content;
10721
11059
  height: -moz-max-content;
10722
11060
  height: max-content;
10723
11061
  max-width: var(--atomix-tooltip-max-width);
10724
- transform: translateX(-50%);
10725
11062
  pointer-events: none;
10726
11063
  z-index: 1000;
10727
11064
  }
11065
+ .c-tooltip--top, .c-tooltip--top-left, .c-tooltip--top-right {
11066
+ bottom: calc(100% + var(--atomix-tooltip-offset));
11067
+ transform-origin: bottom center;
11068
+ }
11069
+ .c-tooltip--bottom, .c-tooltip--bottom-left, .c-tooltip--bottom-right {
11070
+ top: calc(100% + var(--atomix-tooltip-offset));
11071
+ transform-origin: top center;
11072
+ }
11073
+ .c-tooltip--left {
11074
+ right: calc(100% + var(--atomix-tooltip-offset));
11075
+ top: 50%;
11076
+ transform: translateY(-50%);
11077
+ transform-origin: right center;
11078
+ }
11079
+ .c-tooltip--right {
11080
+ left: calc(100% + var(--atomix-tooltip-offset));
11081
+ top: 50%;
11082
+ transform: translateY(-50%);
11083
+ transform-origin: left center;
11084
+ }
11085
+ .c-tooltip--top, .c-tooltip--bottom {
11086
+ left: 50%;
11087
+ transform: translateX(-50%);
11088
+ }
11089
+ .c-tooltip--top-left, .c-tooltip--bottom-left {
11090
+ left: 0;
11091
+ }
11092
+ .c-tooltip--top-right, .c-tooltip--bottom-right {
11093
+ right: 0;
11094
+ }
10728
11095
  .c-tooltip__content {
10729
11096
  position: relative;
10730
11097
  color: var(--atomix-tooltip-color);
@@ -10733,10 +11100,12 @@ a, a:hover {
10733
11100
  padding: var(--atomix-tooltip-padding-y) var(--atomix-tooltip-padding-x);
10734
11101
  background-color: var(--atomix-tooltip-bg);
10735
11102
  border-radius: var(--atomix-tooltip-border-radius);
11103
+ box-shadow: var(--atomix-tooltip-box-shadow);
10736
11104
  z-index: 2;
10737
11105
  opacity: 0;
11106
+ pointer-events: auto;
11107
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
10738
11108
  transform: scale(0.95);
10739
- transition: opacity 0.2s ease-out, transform 0.2s ease-out;
10740
11109
  }
10741
11110
  .c-tooltip__content.is-active {
10742
11111
  opacity: 1;
@@ -10744,71 +11113,37 @@ a, a:hover {
10744
11113
  }
10745
11114
  .c-tooltip__arrow {
10746
11115
  position: absolute;
10747
- bottom: calc(var(--atomix-tooltip-arrow-size) / -2);
10748
- left: 50%;
10749
- transform: translateX(-50%) rotate(45deg);
10750
11116
  width: var(--atomix-tooltip-arrow-size);
10751
11117
  height: var(--atomix-tooltip-arrow-size);
10752
11118
  background-color: var(--atomix-tooltip-bg);
10753
11119
  z-index: 1;
10754
- }
10755
- .c-tooltip--top-left {
10756
- left: auto;
10757
- right: calc(100% - var(--atomix-tooltip-arrow-size) * 2);
10758
- transform: translateX(0);
10759
- }
10760
- .c-tooltip--top-left .c-tooltip__arrow {
10761
- left: auto;
10762
- right: var(--atomix-tooltip-arrow-size);
10763
11120
  transform: rotate(45deg);
10764
11121
  }
10765
- .c-tooltip--top-right {
10766
- left: calc(100% - var(--atomix-tooltip-arrow-size) * 2);
10767
- transform: translateX(0);
11122
+ .c-tooltip--top .c-tooltip__arrow, .c-tooltip--top-left .c-tooltip__arrow, .c-tooltip--top-right .c-tooltip__arrow {
11123
+ bottom: calc(var(--atomix-tooltip-arrow-size) / -2);
10768
11124
  }
10769
- .c-tooltip--top-right .c-tooltip__arrow {
10770
- left: var(--atomix-tooltip-arrow-size);
10771
- transform: rotate(45deg);
11125
+ .c-tooltip--bottom .c-tooltip__arrow, .c-tooltip--bottom-left .c-tooltip__arrow, .c-tooltip--bottom-right .c-tooltip__arrow {
11126
+ top: calc(var(--atomix-tooltip-arrow-size) / -2);
10772
11127
  }
10773
- .c-tooltip--right {
10774
- left: calc(100% + var(--atomix-tooltip-arrow-size));
11128
+ .c-tooltip--left .c-tooltip__arrow {
11129
+ right: calc(var(--atomix-tooltip-arrow-size) / -2);
10775
11130
  top: 50%;
10776
- transform: translateY(-50%);
11131
+ transform: translateY(-50%) rotate(45deg);
10777
11132
  }
10778
11133
  .c-tooltip--right .c-tooltip__arrow {
10779
11134
  left: calc(var(--atomix-tooltip-arrow-size) / -2);
10780
11135
  top: 50%;
10781
- bottom: auto;
10782
- transform: rotate(45deg) translateY(-50%);
10783
- transform-origin: top;
10784
- }
10785
- .c-tooltip--left {
10786
- left: auto;
10787
- right: calc(100% + var(--atomix-tooltip-arrow-size));
10788
- top: 50%;
10789
- transform: translateY(-50%);
10790
- }
10791
- .c-tooltip--left .c-tooltip__arrow {
10792
- left: auto;
10793
- top: 50%;
10794
- bottom: auto;
10795
- right: calc(var(--atomix-tooltip-arrow-size) / -5);
10796
- transform: rotate(45deg) translateY(-50%);
10797
- }
10798
- .c-tooltip--bottom {
10799
- top: calc(100% + var(--atomix-tooltip-arrow-size));
11136
+ transform: translateY(-50%) rotate(45deg);
10800
11137
  }
10801
- .c-tooltip--bottom .c-tooltip__arrow {
10802
- top: calc(var(--atomix-tooltip-arrow-size) / -2);
10803
- bottom: auto;
11138
+ .c-tooltip--top .c-tooltip__arrow, .c-tooltip--bottom .c-tooltip__arrow {
11139
+ left: 50%;
11140
+ transform: translateX(-50%) rotate(45deg);
10804
11141
  }
10805
- .c-tooltip--bottom-left {
10806
- top: calc(100% + var(--atomix-tooltip-arrow-size));
10807
- left: 0;
11142
+ .c-tooltip--top-left .c-tooltip__arrow, .c-tooltip--bottom-left .c-tooltip__arrow {
11143
+ left: var(--atomix-tooltip-arrow-size);
10808
11144
  }
10809
- .c-tooltip--bottom-right {
10810
- top: calc(100% + var(--atomix-tooltip-arrow-size));
10811
- right: 0;
11145
+ .c-tooltip--top-right .c-tooltip__arrow, .c-tooltip--bottom-right .c-tooltip__arrow {
11146
+ right: var(--atomix-tooltip-arrow-size);
10812
11147
  }
10813
11148
  .c-upload {
10814
11149
  --atomix-upload-width: 37.5rem;