uiplex 1.4.0 → 1.5.0

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 (47) hide show
  1. package/README.md +182 -0
  2. package/dist/Alert/Alert.d.ts +13 -0
  3. package/dist/Alert/Alert.d.ts.map +1 -0
  4. package/dist/Alert/index.d.ts +3 -0
  5. package/dist/Alert/index.d.ts.map +1 -0
  6. package/dist/Avatar/Avatar.d.ts +17 -0
  7. package/dist/Avatar/Avatar.d.ts.map +1 -0
  8. package/dist/Avatar/index.d.ts +3 -0
  9. package/dist/Avatar/index.d.ts.map +1 -0
  10. package/dist/Badge/Badge.d.ts +13 -0
  11. package/dist/Badge/Badge.d.ts.map +1 -0
  12. package/dist/Badge/index.d.ts +3 -0
  13. package/dist/Badge/index.d.ts.map +1 -0
  14. package/dist/Card/Card.d.ts +48 -0
  15. package/dist/Card/Card.d.ts.map +1 -0
  16. package/dist/Card/index.d.ts +3 -0
  17. package/dist/Card/index.d.ts.map +1 -0
  18. package/dist/DateTimePicker/DateTimePicker.d.ts +17 -0
  19. package/dist/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  20. package/dist/DateTimePicker/index.d.ts +3 -0
  21. package/dist/DateTimePicker/index.d.ts.map +1 -0
  22. package/dist/Drawer/Drawer.d.ts +37 -0
  23. package/dist/Drawer/Drawer.d.ts.map +1 -0
  24. package/dist/Drawer/index.d.ts +3 -0
  25. package/dist/Drawer/index.d.ts.map +1 -0
  26. package/dist/Skeleton/Skeleton.d.ts +12 -0
  27. package/dist/Skeleton/Skeleton.d.ts.map +1 -0
  28. package/dist/Skeleton/index.d.ts +3 -0
  29. package/dist/Skeleton/index.d.ts.map +1 -0
  30. package/dist/Switch/Switch.d.ts +22 -0
  31. package/dist/Switch/Switch.d.ts.map +1 -0
  32. package/dist/Switch/index.d.ts +3 -0
  33. package/dist/Switch/index.d.ts.map +1 -0
  34. package/dist/Table/Table.d.ts +49 -0
  35. package/dist/Table/Table.d.ts.map +1 -0
  36. package/dist/Table/index.d.ts +3 -0
  37. package/dist/Table/index.d.ts.map +1 -0
  38. package/dist/Upload/Upload.d.ts +14 -0
  39. package/dist/Upload/Upload.d.ts.map +1 -0
  40. package/dist/Upload/index.d.ts +3 -0
  41. package/dist/Upload/index.d.ts.map +1 -0
  42. package/dist/index.cjs +286 -0
  43. package/dist/index.css +963 -0
  44. package/dist/index.d.ts +30 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +261 -1
  47. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -2091,6 +2091,7 @@
2091
2091
 
2092
2092
 
2093
2093
  .ui-tooltip-wrapper {
2094
+ width: fit-content;
2094
2095
  position: relative;
2095
2096
  display: inline-block;
2096
2097
  }
@@ -2449,6 +2450,7 @@
2449
2450
 
2450
2451
 
2451
2452
  .ui-popover-wrapper {
2453
+ width: fit-content;
2452
2454
  position: relative;
2453
2455
  display: inline-block;
2454
2456
  }
@@ -3679,6 +3681,967 @@
3679
3681
  font-size: 0.875rem;
3680
3682
  }
3681
3683
 
3684
+ .ui-table__wrapper {
3685
+ width: 100%;
3686
+ overflow-x: auto;
3687
+ }
3688
+
3689
+ .ui-table {
3690
+ width: 100%;
3691
+ border-collapse: collapse;
3692
+ font-size: 0.875rem;
3693
+ color: var(--text-primary, #111827);
3694
+ }
3695
+
3696
+ /* Sizes */
3697
+ .ui-table--sm {
3698
+ font-size: 0.8125rem;
3699
+ }
3700
+
3701
+ .ui-table--sm .ui-table__header,
3702
+ .ui-table--sm .ui-table__cell {
3703
+ padding: 0.375rem 0.75rem;
3704
+ }
3705
+
3706
+ .ui-table--md .ui-table__header,
3707
+ .ui-table--md .ui-table__cell {
3708
+ padding: 0.5rem 0.75rem;
3709
+ }
3710
+
3711
+ .ui-table--lg .ui-table__header,
3712
+ .ui-table--lg .ui-table__cell {
3713
+ padding: 0.75rem 1rem;
3714
+ font-size: 1rem;
3715
+ }
3716
+
3717
+ .ui-table--lg {
3718
+ font-size: 1rem;
3719
+ }
3720
+
3721
+ /* Variants */
3722
+ .ui-table--default .ui-table__head {
3723
+ background-color: var(--bg-tertiary, #f3f4f6);
3724
+ border-bottom: 1px solid var(--border-primary, #e5e7eb);
3725
+ }
3726
+
3727
+ .ui-table--default .ui-table__row:hover {
3728
+ background-color: var(--bg-tertiary, #f9fafb);
3729
+ }
3730
+
3731
+ .ui-table--bordered {
3732
+ border: 1px solid var(--border-primary, #e5e7eb);
3733
+ }
3734
+
3735
+ .ui-table--bordered .ui-table__header,
3736
+ .ui-table--bordered .ui-table__cell {
3737
+ border: 1px solid var(--border-primary, #e5e7eb);
3738
+ }
3739
+
3740
+ .ui-table--bordered .ui-table__head {
3741
+ background-color: var(--bg-tertiary, #f3f4f6);
3742
+ }
3743
+
3744
+ .ui-table--striped .ui-table__head {
3745
+ background-color: var(--bg-tertiary, #f3f4f6);
3746
+ border-bottom: 1px solid var(--border-primary, #e5e7eb);
3747
+ }
3748
+
3749
+ .ui-table--striped .ui-table__body .ui-table__row:nth-child(even) {
3750
+ background-color: var(--bg-tertiary, #f9fafb);
3751
+ }
3752
+
3753
+ .ui-table--striped .ui-table__body .ui-table__row:hover {
3754
+ background-color: var(--border-primary, #e5e7eb);
3755
+ }
3756
+
3757
+ /* Head */
3758
+ .ui-table__head {
3759
+ text-align: left;
3760
+ font-weight: 600;
3761
+ }
3762
+
3763
+ .ui-table__header {
3764
+ font-weight: 600;
3765
+ color: var(--text-primary, #111827);
3766
+ white-space: nowrap;
3767
+ }
3768
+
3769
+ .ui-table__body .ui-table__cell {
3770
+ color: var(--text-secondary, #374151);
3771
+ }
3772
+
3773
+ .ui-table__foot {
3774
+ border-top: 1px solid var(--border-primary, #e5e7eb);
3775
+ background-color: var(--bg-tertiary, #f9fafb);
3776
+ font-weight: 500;
3777
+ }
3778
+
3779
+ .ui-table__foot .ui-table__cell {
3780
+ color: var(--text-primary, #111827);
3781
+ }
3782
+
3783
+ .ui-alert {
3784
+ display: flex;
3785
+ align-items: flex-start;
3786
+ gap: 0.75rem;
3787
+ padding: 0.75rem 1rem;
3788
+ border-radius: 0.375rem;
3789
+ border: 1px solid transparent;
3790
+ font-size: 0.875rem;
3791
+ line-height: 1.5;
3792
+ }
3793
+
3794
+ .ui-alert__content {
3795
+ flex: 1;
3796
+ min-width: 0;
3797
+ }
3798
+
3799
+ .ui-alert__title {
3800
+ font-weight: 600;
3801
+ margin-bottom: 0.25rem;
3802
+ }
3803
+
3804
+ .ui-alert__message {
3805
+ color: inherit;
3806
+ }
3807
+
3808
+ .ui-alert__close {
3809
+ flex-shrink: 0;
3810
+ width: 1.5rem;
3811
+ height: 1.5rem;
3812
+ padding: 0;
3813
+ border: none;
3814
+ background: transparent;
3815
+ font-size: 1.25rem;
3816
+ line-height: 1;
3817
+ cursor: pointer;
3818
+ opacity: 0.7;
3819
+ border-radius: 0.25rem;
3820
+ display: flex;
3821
+ align-items: center;
3822
+ justify-content: center;
3823
+ }
3824
+
3825
+ .ui-alert__close:hover {
3826
+ opacity: 1;
3827
+ }
3828
+
3829
+ .ui-alert__close:focus-visible {
3830
+ outline: 2px solid currentColor;
3831
+ outline-offset: 2px;
3832
+ }
3833
+
3834
+ /* Info */
3835
+ .ui-alert--info {
3836
+ background-color: #eff6ff;
3837
+ border-color: #bfdbfe;
3838
+ color: #1e40af;
3839
+ }
3840
+
3841
+ [data-theme="dark"] .ui-alert--info,
3842
+ .dark .ui-alert--info {
3843
+ background-color: rgba(59, 130, 246, 0.15);
3844
+ border-color: rgba(59, 130, 246, 0.4);
3845
+ color: #93c5fd;
3846
+ }
3847
+
3848
+ /* Success */
3849
+ .ui-alert--success {
3850
+ background-color: #f0fdf4;
3851
+ border-color: #bbf7d0;
3852
+ color: #166534;
3853
+ }
3854
+
3855
+ [data-theme="dark"] .ui-alert--success,
3856
+ .dark .ui-alert--success {
3857
+ background-color: rgba(34, 197, 94, 0.15);
3858
+ border-color: rgba(34, 197, 94, 0.4);
3859
+ color: #86efac;
3860
+ }
3861
+
3862
+ /* Warning */
3863
+ .ui-alert--warning {
3864
+ background-color: #fffbeb;
3865
+ border-color: #fde68a;
3866
+ color: #b45309;
3867
+ }
3868
+
3869
+ [data-theme="dark"] .ui-alert--warning,
3870
+ .dark .ui-alert--warning {
3871
+ background-color: rgba(245, 158, 11, 0.15);
3872
+ border-color: rgba(245, 158, 11, 0.4);
3873
+ color: #fcd34d;
3874
+ }
3875
+
3876
+ /* Error */
3877
+ .ui-alert--error {
3878
+ background-color: #fef2f2;
3879
+ border-color: #fecaca;
3880
+ color: #b91c1c;
3881
+ }
3882
+
3883
+ [data-theme="dark"] .ui-alert--error,
3884
+ .dark .ui-alert--error {
3885
+ background-color: rgba(239, 68, 68, 0.15);
3886
+ border-color: rgba(239, 68, 68, 0.4);
3887
+ color: #fca5a5;
3888
+ }
3889
+
3890
+ .ui-badge {
3891
+ display: inline-flex;
3892
+ align-items: center;
3893
+ justify-content: center;
3894
+ font-weight: 500;
3895
+ border-radius: 9999px;
3896
+ white-space: nowrap;
3897
+ }
3898
+
3899
+ .ui-badge--sm {
3900
+ padding: 0.125rem 0.5rem;
3901
+ font-size: 0.6875rem;
3902
+ }
3903
+
3904
+ .ui-badge--md {
3905
+ padding: 0.25rem 0.625rem;
3906
+ font-size: 0.75rem;
3907
+ }
3908
+
3909
+ .ui-badge--lg {
3910
+ padding: 0.375rem 0.75rem;
3911
+ font-size: 0.8125rem;
3912
+ }
3913
+
3914
+ .ui-badge--default {
3915
+ background-color: var(--bg-tertiary, #f3f4f6);
3916
+ color: var(--text-secondary, #374151);
3917
+ }
3918
+
3919
+ [data-theme="dark"] .ui-badge--default,
3920
+ .dark .ui-badge--default {
3921
+ background-color: var(--bg-tertiary);
3922
+ color: var(--text-secondary);
3923
+ }
3924
+
3925
+ .ui-badge--primary {
3926
+ background-color: var(--accent-primary, #bb00ed);
3927
+ color: #fff;
3928
+ }
3929
+
3930
+ .ui-badge--success {
3931
+ background-color: #dcfce7;
3932
+ color: #166534;
3933
+ }
3934
+
3935
+ [data-theme="dark"] .ui-badge--success,
3936
+ .dark .ui-badge--success {
3937
+ background-color: rgba(34, 197, 94, 0.25);
3938
+ color: #86efac;
3939
+ }
3940
+
3941
+ .ui-badge--warning {
3942
+ background-color: #fef3c7;
3943
+ color: #b45309;
3944
+ }
3945
+
3946
+ [data-theme="dark"] .ui-badge--warning,
3947
+ .dark .ui-badge--warning {
3948
+ background-color: rgba(245, 158, 11, 0.25);
3949
+ color: #fcd34d;
3950
+ }
3951
+
3952
+ .ui-badge--danger {
3953
+ background-color: #fee2e2;
3954
+ color: #b91c1c;
3955
+ }
3956
+
3957
+ [data-theme="dark"] .ui-badge--danger,
3958
+ .dark .ui-badge--danger {
3959
+ background-color: rgba(239, 68, 68, 0.25);
3960
+ color: #fca5a5;
3961
+ }
3962
+
3963
+ .ui-avatar {
3964
+ display: inline-flex;
3965
+ align-items: center;
3966
+ justify-content: center;
3967
+ border-radius: 9999px;
3968
+ overflow: hidden;
3969
+ background-color: var(--bg-tertiary, #e5e7eb);
3970
+ color: var(--text-secondary, #6b7280);
3971
+ font-weight: 600;
3972
+ flex-shrink: 0;
3973
+ }
3974
+
3975
+ .ui-avatar__img {
3976
+ width: 100%;
3977
+ height: 100%;
3978
+ object-fit: cover;
3979
+ }
3980
+
3981
+ .ui-avatar__fallback {
3982
+ display: flex;
3983
+ align-items: center;
3984
+ justify-content: center;
3985
+ width: 100%;
3986
+ height: 100%;
3987
+ }
3988
+
3989
+ .ui-avatar--sm {
3990
+ width: 2rem;
3991
+ height: 2rem;
3992
+ font-size: 0.75rem;
3993
+ }
3994
+
3995
+ .ui-avatar--md {
3996
+ width: 2.5rem;
3997
+ height: 2.5rem;
3998
+ font-size: 0.875rem;
3999
+ }
4000
+
4001
+ .ui-avatar--lg {
4002
+ width: 3rem;
4003
+ height: 3rem;
4004
+ font-size: 1rem;
4005
+ }
4006
+
4007
+ .ui-card {
4008
+ background-color: var(--bg-primary, #fff);
4009
+ border: 1px solid var(--border-primary, #e5e7eb);
4010
+ border-radius: 0.5rem;
4011
+ overflow: hidden;
4012
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
4013
+ }
4014
+
4015
+ [data-theme="dark"] .ui-card,
4016
+ .dark .ui-card {
4017
+ background-color: var(--bg-secondary);
4018
+ border-color: var(--border-primary);
4019
+ }
4020
+
4021
+ .ui-card__header {
4022
+ padding: 1rem 1.25rem;
4023
+ border-bottom: 1px solid var(--border-primary, #e5e7eb);
4024
+ font-weight: 600;
4025
+ font-size: 1rem;
4026
+ color: var(--text-primary, #111827);
4027
+ }
4028
+
4029
+ .ui-card__body {
4030
+ padding: 1.25rem;
4031
+ color: var(--text-secondary, #374151);
4032
+ font-size: 0.875rem;
4033
+ line-height: 1.5;
4034
+ }
4035
+
4036
+ .ui-card__footer {
4037
+ padding: 0.75rem 1.25rem;
4038
+ border-top: 1px solid var(--border-primary, #e5e7eb);
4039
+ background-color: var(--bg-tertiary, #f9fafb);
4040
+ }
4041
+
4042
+ [data-theme="dark"] .ui-card__footer,
4043
+ .dark .ui-card__footer {
4044
+ background-color: var(--bg-tertiary);
4045
+ border-top-color: var(--border-primary);
4046
+ }
4047
+
4048
+ /* Image card */
4049
+ .ui-card__image-wrapper {
4050
+ width: 100%;
4051
+ overflow: hidden;
4052
+ line-height: 0;
4053
+ }
4054
+
4055
+ .ui-card__image {
4056
+ width: 100%;
4057
+ height: auto;
4058
+ display: block;
4059
+ object-fit: cover;
4060
+ vertical-align: middle;
4061
+ }
4062
+
4063
+ .ui-card:has(.ui-card__image-wrapper) .ui-card__image-wrapper {
4064
+ border-radius: 0.5rem 0.5rem 0 0;
4065
+ }
4066
+
4067
+ .ui-card__title {
4068
+ font-weight: 600;
4069
+ font-size: 1rem;
4070
+ color: var(--text-primary, #111827);
4071
+ margin: 0;
4072
+ }
4073
+
4074
+ .ui-card__subtitle {
4075
+ font-size: 0.875rem;
4076
+ color: var(--text-secondary, #6b7280);
4077
+ margin: 0.25rem 0 0 0;
4078
+ }
4079
+
4080
+ /* Dark variant – always dark (ignores theme) */
4081
+ .ui-card--dark {
4082
+ background-color: #1f2937;
4083
+ border-color: #374151;
4084
+ }
4085
+
4086
+ [data-theme="dark"] .ui-card--dark,
4087
+ .dark .ui-card--dark {
4088
+ background-color: #111827;
4089
+ border-color: #374151;
4090
+ }
4091
+
4092
+ .ui-card--dark .ui-card__body {
4093
+ background-color: inherit;
4094
+ color: #f9fafb;
4095
+ }
4096
+
4097
+ .ui-card--dark .ui-card__title {
4098
+ color: #fff;
4099
+ }
4100
+
4101
+ .ui-card--dark .ui-card__subtitle {
4102
+ color: #9ca3af;
4103
+ }
4104
+
4105
+ /* Light variant – always light (ignores theme) */
4106
+ .ui-card--light {
4107
+ background-color: #fff;
4108
+ border-color: #e5e7eb;
4109
+ }
4110
+
4111
+ .ui-card--light .ui-card__body {
4112
+ color: #374151;
4113
+ }
4114
+
4115
+ .ui-card--light .ui-card__title {
4116
+ color: #111827;
4117
+ }
4118
+
4119
+ .ui-card--light .ui-card__subtitle {
4120
+ color: #6b7280;
4121
+ }
4122
+
4123
+ /* Keep light variant light in dark mode (override theme) */
4124
+ [data-theme="dark"] .ui-card--light,
4125
+ .dark .ui-card--light {
4126
+ background-color: #fff;
4127
+ border-color: #e5e7eb;
4128
+ }
4129
+
4130
+ [data-theme="dark"] .ui-card--light .ui-card__body,
4131
+ .dark .ui-card--light .ui-card__body {
4132
+ color: #374151;
4133
+ }
4134
+
4135
+ [data-theme="dark"] .ui-card--light .ui-card__title,
4136
+ .dark .ui-card--light .ui-card__title {
4137
+ color: #111827;
4138
+ }
4139
+
4140
+ [data-theme="dark"] .ui-card--light .ui-card__subtitle,
4141
+ .dark .ui-card--light .ui-card__subtitle {
4142
+ color: #6b7280;
4143
+ }
4144
+
4145
+ [data-theme="dark"] .ui-card--light .ui-card__footer,
4146
+ .dark .ui-card--light .ui-card__footer {
4147
+ background-color: #f9fafb;
4148
+ border-top-color: #e5e7eb;
4149
+ }
4150
+
4151
+ .ui-switch {
4152
+ display: inline-flex;
4153
+ align-items: center;
4154
+ gap: 0.5rem;
4155
+ cursor: pointer;
4156
+ user-select: none;
4157
+ }
4158
+
4159
+ .ui-switch--disabled {
4160
+ opacity: 0.5;
4161
+ cursor: not-allowed;
4162
+ }
4163
+
4164
+ .ui-switch__input {
4165
+ position: absolute;
4166
+ width: 1px;
4167
+ height: 1px;
4168
+ padding: 0;
4169
+ margin: -1px;
4170
+ overflow: hidden;
4171
+ clip: rect(0, 0, 0, 0);
4172
+ white-space: nowrap;
4173
+ border: 0;
4174
+ }
4175
+
4176
+ .ui-switch__input:focus-visible + .ui-switch__track {
4177
+ outline: 2px solid var(--accent-primary, #3b82f6);
4178
+ outline-offset: 2px;
4179
+ }
4180
+
4181
+ .ui-switch__track {
4182
+ display: inline-flex;
4183
+ flex-shrink: 0;
4184
+ align-items: center;
4185
+ border-radius: 9999px;
4186
+ background-color: var(--bg-tertiary, #d1d5db);
4187
+ transition: background-color 0.2s ease;
4188
+ }
4189
+
4190
+ .ui-switch__thumb {
4191
+ border-radius: 9999px;
4192
+ background-color: #fff;
4193
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
4194
+ transition: transform 0.2s ease;
4195
+ }
4196
+
4197
+ .ui-switch--checked .ui-switch__track {
4198
+ background-color: var(--accent-primary, #3b82f6);
4199
+ }
4200
+
4201
+ .ui-switch--sm .ui-switch__track {
4202
+ width: 2rem;
4203
+ height: 1rem;
4204
+ padding: 0.125rem;
4205
+ }
4206
+
4207
+ .ui-switch--sm .ui-switch__thumb {
4208
+ width: 0.75rem;
4209
+ height: 0.75rem;
4210
+ }
4211
+
4212
+ .ui-switch--sm.ui-switch--checked .ui-switch__thumb {
4213
+ transform: translateX(1rem);
4214
+ }
4215
+
4216
+ .ui-switch--md .ui-switch__track {
4217
+ width: 2.75rem;
4218
+ height: 1.375rem;
4219
+ padding: 0.125rem;
4220
+ }
4221
+
4222
+ .ui-switch--md .ui-switch__thumb {
4223
+ width: 1.125rem;
4224
+ height: 1.125rem;
4225
+ }
4226
+
4227
+ .ui-switch--md.ui-switch--checked .ui-switch__thumb {
4228
+ transform: translateX(1.375rem);
4229
+ }
4230
+
4231
+ .ui-switch--lg .ui-switch__track {
4232
+ width: 3.5rem;
4233
+ height: 1.75rem;
4234
+ padding: 0.1875rem;
4235
+ }
4236
+
4237
+ .ui-switch--lg .ui-switch__thumb {
4238
+ width: 1.375rem;
4239
+ height: 1.375rem;
4240
+ }
4241
+
4242
+ .ui-switch--lg.ui-switch--checked .ui-switch__thumb {
4243
+ transform: translateX(1.75rem);
4244
+ }
4245
+
4246
+ .ui-switch__label {
4247
+ font-size: 0.875rem;
4248
+ color: var(--text-primary, #111827);
4249
+ }
4250
+
4251
+ .ui-datetime-picker {
4252
+ display: inline-block;
4253
+ }
4254
+
4255
+ .ui-datetime-picker__input {
4256
+ display: block;
4257
+ width: 100%;
4258
+ box-sizing: border-box;
4259
+ padding: 0.5rem 0.75rem;
4260
+ font-size: 0.875rem;
4261
+ font-family: inherit;
4262
+ color: var(--text-primary, #111827);
4263
+ background-color: var(--bg-primary, #fff);
4264
+ border: 1px solid var(--border-primary, #e5e7eb);
4265
+ border-radius: 0.375rem;
4266
+ transition: border-color 0.2s, box-shadow 0.2s;
4267
+ color-scheme: light;
4268
+ }
4269
+
4270
+ .ui-datetime-picker__input:hover:not(:disabled) {
4271
+ border-color: var(--border-secondary, #d1d5db);
4272
+ }
4273
+
4274
+ .ui-datetime-picker__input:focus {
4275
+ outline: none;
4276
+ border-color: var(--accent-primary, #3b82f6);
4277
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
4278
+ }
4279
+
4280
+ .ui-datetime-picker__input:disabled {
4281
+ opacity: 0.5;
4282
+ cursor: not-allowed;
4283
+ }
4284
+
4285
+ .ui-datetime-picker--disabled .ui-datetime-picker__input {
4286
+ opacity: 0.5;
4287
+ cursor: not-allowed;
4288
+ }
4289
+
4290
+ /* Theme: native picker icon and popup follow dark/light */
4291
+ [data-theme="dark"] .ui-datetime-picker__input,
4292
+ .dark .ui-datetime-picker__input {
4293
+ color-scheme: dark;
4294
+ }
4295
+
4296
+ /* Sizes – width fits content per mode; datetime needs more width for date + time */
4297
+ .ui-datetime-picker--sm .ui-datetime-picker__input {
4298
+ padding: 0.375rem 0.5rem;
4299
+ font-size: 0.8125rem;
4300
+ }
4301
+
4302
+ .ui-datetime-picker--sm.ui-datetime-picker--date .ui-datetime-picker__input {
4303
+ width: 8.5rem;
4304
+ min-width: 8.5rem;
4305
+ }
4306
+
4307
+ .ui-datetime-picker--sm.ui-datetime-picker--datetime .ui-datetime-picker__input {
4308
+ width: 13rem;
4309
+ min-width: 13rem;
4310
+ }
4311
+
4312
+ .ui-datetime-picker--sm.ui-datetime-picker--time .ui-datetime-picker__input {
4313
+ width: 6.5rem;
4314
+ min-width: 6.5rem;
4315
+ }
4316
+
4317
+ .ui-datetime-picker--md.ui-datetime-picker--date .ui-datetime-picker__input {
4318
+ width: 10rem;
4319
+ min-width: 10rem;
4320
+ }
4321
+
4322
+ .ui-datetime-picker--md.ui-datetime-picker--datetime .ui-datetime-picker__input {
4323
+ width: 16rem;
4324
+ min-width: 16rem;
4325
+ }
4326
+
4327
+ .ui-datetime-picker--md.ui-datetime-picker--time .ui-datetime-picker__input {
4328
+ width: 7.5rem;
4329
+ min-width: 7.5rem;
4330
+ }
4331
+
4332
+ .ui-datetime-picker--lg .ui-datetime-picker__input {
4333
+ padding: 0.625rem 0.875rem;
4334
+ font-size: 1rem;
4335
+ }
4336
+
4337
+ .ui-datetime-picker--lg.ui-datetime-picker--date .ui-datetime-picker__input {
4338
+ width: 11.5rem;
4339
+ min-width: 11.5rem;
4340
+ }
4341
+
4342
+ .ui-datetime-picker--lg.ui-datetime-picker--datetime .ui-datetime-picker__input {
4343
+ width: 19rem;
4344
+ min-width: 19rem;
4345
+ }
4346
+
4347
+ .ui-datetime-picker--lg.ui-datetime-picker--time .ui-datetime-picker__input {
4348
+ width: 8.5rem;
4349
+ min-width: 8.5rem;
4350
+ }
4351
+
4352
+ .ui-upload {
4353
+ position: relative;
4354
+ display: flex;
4355
+ flex-direction: column;
4356
+ align-items: center;
4357
+ justify-content: center;
4358
+ min-height: 8rem;
4359
+ padding: 1.5rem;
4360
+ border: 2px dashed var(--border-primary, #d1d5db);
4361
+ border-radius: 0.5rem;
4362
+ background-color: var(--bg-tertiary, #f9fafb);
4363
+ cursor: pointer;
4364
+ transition: border-color 0.2s, background-color 0.2s;
4365
+ }
4366
+
4367
+ .ui-upload:hover:not(.ui-upload--disabled) {
4368
+ border-color: var(--accent-primary, #3b82f6);
4369
+ background-color: var(--bg-secondary, #f3f4f6);
4370
+ }
4371
+
4372
+ .ui-upload--dragover {
4373
+ border-color: var(--accent-primary, #3b82f6);
4374
+ background-color: rgba(59, 130, 246, 0.08);
4375
+ }
4376
+
4377
+ .ui-upload--disabled {
4378
+ opacity: 0.5;
4379
+ cursor: not-allowed;
4380
+ }
4381
+
4382
+ .ui-upload--error {
4383
+ border-color: #dc2626;
4384
+ }
4385
+
4386
+ .ui-upload__input {
4387
+ position: absolute;
4388
+ width: 0;
4389
+ height: 0;
4390
+ opacity: 0;
4391
+ pointer-events: none;
4392
+ }
4393
+
4394
+ .ui-upload__content {
4395
+ display: flex;
4396
+ flex-direction: column;
4397
+ align-items: center;
4398
+ gap: 0.5rem;
4399
+ pointer-events: none;
4400
+ }
4401
+
4402
+ .ui-upload__icon {
4403
+ font-size: 1.5rem;
4404
+ color: var(--text-secondary, #6b7280);
4405
+ }
4406
+
4407
+ .ui-upload__text {
4408
+ font-size: 0.875rem;
4409
+ color: var(--text-secondary, #6b7280);
4410
+ }
4411
+
4412
+ .ui-upload__error {
4413
+ margin-top: 0.5rem;
4414
+ font-size: 0.8125rem;
4415
+ color: #dc2626;
4416
+ }
4417
+
4418
+ .ui-skeleton {
4419
+ background: linear-gradient(
4420
+ 90deg,
4421
+ var(--bg-tertiary, #f3f4f6) 25%,
4422
+ var(--border-primary, #e5e7eb) 50%,
4423
+ var(--bg-tertiary, #f3f4f6) 75%
4424
+ );
4425
+ background-size: 200% 100%;
4426
+ animation: ui-skeleton-shimmer 1.5s ease-in-out infinite;
4427
+ }
4428
+
4429
+ @keyframes ui-skeleton-shimmer {
4430
+ 0% {
4431
+ background-position: 200% 0;
4432
+ }
4433
+ 100% {
4434
+ background-position: -200% 0;
4435
+ }
4436
+ }
4437
+
4438
+ .ui-skeleton--text {
4439
+ border-radius: 0.25rem;
4440
+ height: 1em;
4441
+ }
4442
+
4443
+ .ui-skeleton--circular {
4444
+ border-radius: 9999px;
4445
+ }
4446
+
4447
+ .ui-skeleton--rectangular {
4448
+ border-radius: 0.375rem;
4449
+ }
4450
+
4451
+ .ui-drawer {
4452
+ position: fixed;
4453
+ top: 0;
4454
+ left: 0;
4455
+ right: 0;
4456
+ bottom: 0;
4457
+ pointer-events: none;
4458
+ }
4459
+
4460
+ .ui-drawer__overlay {
4461
+ position: fixed;
4462
+ top: 0;
4463
+ left: 0;
4464
+ right: 0;
4465
+ bottom: 0;
4466
+ background-color: rgba(0, 0, 0, 0.5);
4467
+ pointer-events: auto;
4468
+ animation: ui-drawer-overlay-in 0.2s ease-out;
4469
+ }
4470
+
4471
+ @keyframes ui-drawer-overlay-in {
4472
+ from {
4473
+ opacity: 0;
4474
+ }
4475
+ to {
4476
+ opacity: 1;
4477
+ }
4478
+ }
4479
+
4480
+ .ui-drawer__content {
4481
+ position: fixed;
4482
+ background-color: var(--bg-primary, #fff);
4483
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
4484
+ pointer-events: auto;
4485
+ display: flex;
4486
+ flex-direction: column;
4487
+ overflow: hidden;
4488
+ }
4489
+
4490
+ .ui-drawer__content--left {
4491
+ top: 0;
4492
+ left: 0;
4493
+ bottom: 0;
4494
+ animation: ui-drawer-slide-left-in 0.3s ease-out;
4495
+ }
4496
+
4497
+ .ui-drawer__content--right {
4498
+ top: 0;
4499
+ right: 0;
4500
+ bottom: 0;
4501
+ animation: ui-drawer-slide-right-in 0.3s ease-out;
4502
+ }
4503
+
4504
+ .ui-drawer__content--top {
4505
+ top: 0;
4506
+ left: 0;
4507
+ right: 0;
4508
+ animation: ui-drawer-slide-top-in 0.3s ease-out;
4509
+ }
4510
+
4511
+ .ui-drawer__content--bottom {
4512
+ bottom: 0;
4513
+ left: 0;
4514
+ right: 0;
4515
+ animation: ui-drawer-slide-bottom-in 0.3s ease-out;
4516
+ }
4517
+
4518
+ /* Sizes - left/right */
4519
+ .ui-drawer__content--left.ui-drawer__content--sm,
4520
+ .ui-drawer__content--right.ui-drawer__content--sm {
4521
+ width: 20rem;
4522
+ }
4523
+
4524
+ .ui-drawer__content--left.ui-drawer__content--md,
4525
+ .ui-drawer__content--right.ui-drawer__content--md {
4526
+ width: 28rem;
4527
+ }
4528
+
4529
+ .ui-drawer__content--left.ui-drawer__content--lg,
4530
+ .ui-drawer__content--right.ui-drawer__content--lg {
4531
+ width: 32rem;
4532
+ }
4533
+
4534
+ .ui-drawer__content--left.ui-drawer__content--full,
4535
+ .ui-drawer__content--right.ui-drawer__content--full {
4536
+ width: 100%;
4537
+ }
4538
+
4539
+ /* Sizes - top/bottom */
4540
+ .ui-drawer__content--top.ui-drawer__content--sm,
4541
+ .ui-drawer__content--bottom.ui-drawer__content--sm {
4542
+ height: 16rem;
4543
+ }
4544
+
4545
+ .ui-drawer__content--top.ui-drawer__content--md,
4546
+ .ui-drawer__content--bottom.ui-drawer__content--md {
4547
+ height: 24rem;
4548
+ }
4549
+
4550
+ .ui-drawer__content--top.ui-drawer__content--lg,
4551
+ .ui-drawer__content--bottom.ui-drawer__content--lg {
4552
+ height: 32rem;
4553
+ }
4554
+
4555
+ .ui-drawer__content--top.ui-drawer__content--full,
4556
+ .ui-drawer__content--bottom.ui-drawer__content--full {
4557
+ height: 100%;
4558
+ }
4559
+
4560
+ @keyframes ui-drawer-slide-left-in {
4561
+ from {
4562
+ transform: translateX(-100%);
4563
+ }
4564
+ to {
4565
+ transform: translateX(0);
4566
+ }
4567
+ }
4568
+
4569
+ @keyframes ui-drawer-slide-right-in {
4570
+ from {
4571
+ transform: translateX(100%);
4572
+ }
4573
+ to {
4574
+ transform: translateX(0);
4575
+ }
4576
+ }
4577
+
4578
+ @keyframes ui-drawer-slide-top-in {
4579
+ from {
4580
+ transform: translateY(-100%);
4581
+ }
4582
+ to {
4583
+ transform: translateY(0);
4584
+ }
4585
+ }
4586
+
4587
+ @keyframes ui-drawer-slide-bottom-in {
4588
+ from {
4589
+ transform: translateY(100%);
4590
+ }
4591
+ to {
4592
+ transform: translateY(0);
4593
+ }
4594
+ }
4595
+
4596
+ .ui-drawer__header {
4597
+ position: relative;
4598
+ padding: 1rem 1.25rem;
4599
+ padding-right: 2.5rem;
4600
+ border-bottom: 1px solid var(--border-primary, #e5e7eb);
4601
+ font-weight: 600;
4602
+ font-size: 1rem;
4603
+ color: var(--text-primary, #111827);
4604
+ flex-shrink: 0;
4605
+ }
4606
+
4607
+ .ui-drawer__close {
4608
+ position: absolute;
4609
+ top: 0.75rem;
4610
+ right: 0.75rem;
4611
+ width: 2rem;
4612
+ height: 2rem;
4613
+ padding: 0;
4614
+ border: none;
4615
+ background: transparent;
4616
+ color: var(--text-secondary, #6b7280);
4617
+ cursor: pointer;
4618
+ border-radius: 0.25rem;
4619
+ display: flex;
4620
+ align-items: center;
4621
+ justify-content: center;
4622
+ }
4623
+
4624
+ .ui-drawer__close:hover {
4625
+ background: var(--bg-tertiary, #f3f4f6);
4626
+ color: var(--text-primary, #111827);
4627
+ }
4628
+
4629
+ .ui-drawer__body {
4630
+ padding: 1.25rem;
4631
+ overflow-y: auto;
4632
+ flex: 1;
4633
+ min-height: 0;
4634
+ color: var(--text-secondary, #374151);
4635
+ font-size: 0.875rem;
4636
+ }
4637
+
4638
+ .ui-drawer__footer {
4639
+ padding: 0.75rem 1.25rem;
4640
+ border-top: 1px solid var(--border-primary, #e5e7eb);
4641
+ background-color: var(--bg-tertiary, #f9fafb);
4642
+ flex-shrink: 0;
4643
+ }
4644
+
3682
4645
  /* Uiplex Theme Variables */
3683
4646
 
3684
4647
  :root {