@tomny-dev/uzi 0.3.0 → 0.4.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 (55) hide show
  1. package/README.md +28 -0
  2. package/dist/components/data-table/DataTable.d.ts +36 -0
  3. package/dist/components/data-table/DataTable.d.ts.map +1 -0
  4. package/dist/components/data-table/DataTable.test.d.ts +2 -0
  5. package/dist/components/data-table/DataTable.test.d.ts.map +1 -0
  6. package/dist/components/empty-state-page/EmptyStatePage.d.ts +26 -0
  7. package/dist/components/empty-state-page/EmptyStatePage.d.ts.map +1 -0
  8. package/dist/components/empty-state-page/EmptyStatePage.test.d.ts +2 -0
  9. package/dist/components/empty-state-page/EmptyStatePage.test.d.ts.map +1 -0
  10. package/dist/components/error-page/ErrorPage.d.ts +32 -0
  11. package/dist/components/error-page/ErrorPage.d.ts.map +1 -0
  12. package/dist/components/error-page/ErrorPage.test.d.ts +2 -0
  13. package/dist/components/error-page/ErrorPage.test.d.ts.map +1 -0
  14. package/dist/components/settings-page/SettingsPage.d.ts +38 -0
  15. package/dist/components/settings-page/SettingsPage.d.ts.map +1 -0
  16. package/dist/components/settings-page/SettingsPage.test.d.ts +2 -0
  17. package/dist/components/settings-page/SettingsPage.test.d.ts.map +1 -0
  18. package/dist/index.cjs +10 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +5 -1
  22. package/dist/index63.js +63 -0
  23. package/dist/index63.js.map +1 -0
  24. package/dist/index64.cjs +91 -0
  25. package/dist/index64.cjs.map +1 -0
  26. package/dist/index64.js +246 -0
  27. package/dist/index64.js.map +1 -0
  28. package/dist/index65.cjs +248 -0
  29. package/dist/index65.cjs.map +1 -0
  30. package/dist/index65.js +47 -0
  31. package/dist/index65.js.map +1 -0
  32. package/dist/index66.cjs +67 -0
  33. package/dist/index66.cjs.map +1 -0
  34. package/dist/index66.js +86 -0
  35. package/dist/index66.js.map +1 -0
  36. package/dist/index67.cjs +88 -0
  37. package/dist/index67.cjs.map +1 -0
  38. package/dist/index67.js +25 -0
  39. package/dist/index67.js.map +1 -0
  40. package/dist/index68.cjs +34 -0
  41. package/dist/index68.cjs.map +1 -0
  42. package/dist/index68.js +101 -0
  43. package/dist/index68.js.map +1 -0
  44. package/dist/index69.cjs +105 -0
  45. package/dist/index69.cjs.map +1 -0
  46. package/dist/index69.js +23 -0
  47. package/dist/index69.js.map +1 -0
  48. package/dist/index70.cjs +31 -0
  49. package/dist/index70.cjs.map +1 -0
  50. package/dist/index70.js +159 -0
  51. package/dist/index70.js.map +1 -0
  52. package/dist/index71.cjs +161 -0
  53. package/dist/index71.cjs.map +1 -0
  54. package/dist/style.css +532 -0
  55. package/package.json +9 -1
package/dist/style.css CHANGED
@@ -2673,4 +2673,536 @@ button.uzi-sidebar-nav-module__item__uMHkJ {
2673
2673
  .uzi-auth-pages-module__backLink__ezB3X:hover {
2674
2674
  text-decoration: underline;
2675
2675
  }
2676
+ .uzi-data-table-module__wrapper__7521u {
2677
+ width: 100%;
2678
+ overflow-x: auto;
2679
+ -webkit-overflow-scrolling: touch;
2680
+ }
2681
+
2682
+ .uzi-data-table-module__tableContainer__BJcbK {
2683
+ width: 100%;
2684
+ overflow-x: auto;
2685
+ }
2686
+
2687
+ .uzi-data-table-module__table__Mv5vN {
2688
+ width: 100%;
2689
+ border-collapse: collapse;
2690
+ font-size: 0.875rem;
2691
+ text-align: left;
2692
+ color: var(--foreground);
2693
+ }
2694
+
2695
+ .uzi-data-table-module__thead__dWIBv {
2696
+ border-bottom: 2px solid var(--border);
2697
+ }
2698
+
2699
+ .uzi-data-table-module__headerCell__kwwWs {
2700
+ padding: 0.75rem 1rem;
2701
+ font-weight: 600;
2702
+ font-size: 0.8rem;
2703
+ text-transform: uppercase;
2704
+ letter-spacing: 0.05em;
2705
+ color: var(--muted-foreground);
2706
+ white-space: nowrap;
2707
+ vertical-align: bottom;
2708
+ border-bottom: 2px solid var(--border);
2709
+ }
2710
+
2711
+ .uzi-data-table-module__headerCellFixed__8WRi5 {
2712
+ white-space: nowrap;
2713
+ }
2714
+
2715
+ .uzi-data-table-module__alignLeft__Kwz-k {
2716
+ text-align: left;
2717
+ }
2718
+
2719
+ .uzi-data-table-module__alignCenter__BxT33 {
2720
+ text-align: center;
2721
+ }
2722
+
2723
+ .uzi-data-table-module__alignRight__B3fd1 {
2724
+ text-align: right;
2725
+ }
2726
+
2727
+ .uzi-data-table-module__sortableHeader__aAEjv {
2728
+ display: inline-flex;
2729
+ align-items: center;
2730
+ gap: 0.375rem;
2731
+ background: none;
2732
+ border: none;
2733
+ padding: 0;
2734
+ font: inherit;
2735
+ color: inherit;
2736
+ cursor: pointer;
2737
+ }
2738
+
2739
+ .uzi-data-table-module__clickableHeader__8F9R3 {
2740
+ cursor: pointer;
2741
+ }
2742
+
2743
+ .uzi-data-table-module__clickableHeader__8F9R3:hover {
2744
+ color: var(--foreground);
2745
+ }
2746
+
2747
+ .uzi-data-table-module__clickableHeader__8F9R3:focus-visible {
2748
+ outline: var(--focus-ring);
2749
+ outline-offset: var(--focus-ring-offset);
2750
+ }
2751
+
2752
+ .uzi-data-table-module__headerLabel__bsfii {
2753
+ font: inherit;
2754
+ }
2755
+
2756
+ .uzi-data-table-module__sortIcon__nAsRD {
2757
+ font-size: 0.7rem;
2758
+ opacity: 0.4;
2759
+ user-select: none;
2760
+ }
2761
+
2762
+ .uzi-data-table-module__tbody__yWSPd {
2763
+ border-top: 1px solid var(--border);
2764
+ }
2765
+
2766
+ .uzi-data-table-module__row__im568 {
2767
+ border-bottom: 1px solid var(--border);
2768
+ transition: background-color 0.12s ease;
2769
+ }
2770
+
2771
+ .uzi-data-table-module__row__im568:hover {
2772
+ background-color: var(--muted);
2773
+ }
2774
+
2775
+ .uzi-data-table-module__rowSelected__U91El {
2776
+ background-color: color-mix(in srgb, var(--primary) 10%, transparent);
2777
+ }
2778
+
2779
+ .uzi-data-table-module__cell__I2qYk {
2780
+ padding: 0.75rem 1rem;
2781
+ vertical-align: middle;
2782
+ white-space: nowrap;
2783
+ }
2784
+
2785
+ .uzi-data-table-module__checkbox__XHo0c {
2786
+ width: 1rem;
2787
+ height: 1rem;
2788
+ accent-color: var(--primary);
2789
+ cursor: pointer;
2790
+ border-radius: 4px;
2791
+ }
2792
+
2793
+ .uzi-data-table-module__loadingCell__YOsVj {
2794
+ padding: 2rem 1rem;
2795
+ text-align: center;
2796
+ }
2797
+
2798
+ .uzi-data-table-module__loadingRow__TONNo {
2799
+ display: flex;
2800
+ flex-direction: column;
2801
+ gap: 0.5rem;
2802
+ margin-bottom: 0.75rem;
2803
+ opacity: 0.6;
2804
+ }
2805
+
2806
+ .uzi-data-table-module__skeletonBar__JTU6c {
2807
+ height: 0.75rem;
2808
+ border-radius: 4px;
2809
+ background: linear-gradient(90deg, var(--muted) 25%, var(--secondary) 50%, var(--muted) 75%);
2810
+ background-size: 200% 100%;
2811
+ animation: uzi-data-table-module__shimmer__30BeV 1.5s infinite;
2812
+ }
2813
+
2814
+ @keyframes uzi-data-table-module__shimmer__30BeV {
2815
+ 0% { background-position: 200% 0; }
2816
+ 100% { background-position: -200% 0; }
2817
+ }
2818
+
2819
+ .uzi-data-table-module__emptyCell__CNH4t {
2820
+ padding: 2rem 1rem;
2821
+ text-align: center;
2822
+ color: var(--muted-foreground);
2823
+ font-style: italic;
2824
+ }
2825
+
2826
+ .uzi-data-table-module__rowActions__NV6Ag {
2827
+ display: inline-flex;
2828
+ gap: 0.5rem;
2829
+ }
2830
+
2831
+ .uzi-data-table-module__actionBtn__78gdR {
2832
+ display: inline-flex;
2833
+ align-items: center;
2834
+ gap: 0.25rem;
2835
+ background: none;
2836
+ border: none;
2837
+ color: var(--muted-foreground);
2838
+ cursor: pointer;
2839
+ font-size: 0.8rem;
2840
+ padding: 0.25rem 0.5rem;
2841
+ border-radius: 4px;
2842
+ transition: color 0.12s, background-color 0.12s;
2843
+ }
2844
+
2845
+ .uzi-data-table-module__actionBtn__78gdR:hover {
2846
+ color: var(--foreground);
2847
+ background-color: var(--muted);
2848
+ }
2849
+
2850
+ .uzi-data-table-module__actionBtn__78gdR:focus-visible {
2851
+ outline: var(--focus-ring);
2852
+ outline-offset: var(--focus-ring-offset);
2853
+ }
2854
+
2855
+ .uzi-data-table-module__pagination__qOgpw {
2856
+ display: flex;
2857
+ align-items: center;
2858
+ justify-content: space-between;
2859
+ padding: 0.75rem 1rem;
2860
+ border-top: 1px solid var(--border);
2861
+ font-size: 0.8rem;
2862
+ color: var(--muted-foreground);
2863
+ }
2864
+
2865
+ .uzi-data-table-module__paginationButtons__v64jr {
2866
+ display: inline-flex;
2867
+ gap: 0.25rem;
2868
+ }
2869
+
2870
+ .uzi-data-table-module__pageBtn__gdLj2 {
2871
+ display: inline-flex;
2872
+ align-items: center;
2873
+ justify-content: center;
2874
+ width: 2rem;
2875
+ height: 2rem;
2876
+ border: 1px solid var(--border);
2877
+ border-radius: 6px;
2878
+ background: var(--background);
2879
+ color: var(--foreground);
2880
+ cursor: pointer;
2881
+ font-size: 0.85rem;
2882
+ transition: background-color 0.12s, border-color 0.12s;
2883
+ }
2884
+
2885
+ .uzi-data-table-module__pageBtn__gdLj2:hover:not(:disabled) {
2886
+ background-color: var(--muted);
2887
+ border-color: var(--accent);
2888
+ }
2889
+
2890
+ .uzi-data-table-module__pageBtn__gdLj2:focus-visible {
2891
+ outline: var(--focus-ring);
2892
+ outline-offset: var(--focus-ring-offset);
2893
+ }
2894
+
2895
+ .uzi-data-table-module__pageBtn__gdLj2:disabled {
2896
+ opacity: 0.4;
2897
+ cursor: not-allowed;
2898
+ }
2899
+ .uzi-settings-page-module__wrapper__G7OOt {
2900
+ display: flex;
2901
+ flex-direction: column;
2902
+ min-height: 100vh;
2903
+ background: var(--background);
2904
+ color: var(--foreground);
2905
+ }
2906
+
2907
+ .uzi-settings-page-module__header__ao-nv {
2908
+ padding: 2rem 2rem 0;
2909
+ flex-shrink: 0;
2910
+ }
2911
+
2912
+ .uzi-settings-page-module__headerContent__xwP9V {
2913
+ max-width: 64rem;
2914
+ margin: 0 auto;
2915
+ }
2916
+
2917
+ .uzi-settings-page-module__title__anF9l {
2918
+ margin: 0 0 0.25rem;
2919
+ font-size: 1.5rem;
2920
+ font-weight: 600;
2921
+ color: var(--foreground);
2922
+ line-height: 1.3;
2923
+ }
2924
+
2925
+ .uzi-settings-page-module__description__Qw6EQ {
2926
+ margin: 0;
2927
+ font-size: 0.9rem;
2928
+ color: var(--muted-foreground);
2929
+ line-height: 1.5;
2930
+ }
2931
+
2932
+ .uzi-settings-page-module__content__MBz6q {
2933
+ flex: 1;
2934
+ padding: 1.5rem 2rem 6rem;
2935
+ max-width: 64rem;
2936
+ margin: 0 auto;
2937
+ width: 100%;
2938
+ overflow-y: auto;
2939
+ }
2940
+
2941
+ .uzi-settings-page-module__sections__HV2n4 {
2942
+ display: flex;
2943
+ flex-direction: column;
2944
+ gap: 2rem;
2945
+ }
2946
+
2947
+ .uzi-settings-page-module__section__Vjoe3 {
2948
+ border-bottom: 1px solid var(--border);
2949
+ padding-bottom: 1.5rem;
2950
+ }
2951
+
2952
+ .uzi-settings-page-module__section__Vjoe3:last-of-type {
2953
+ border-bottom: none;
2954
+ }
2955
+
2956
+ .uzi-settings-page-module__sectionHeader__XiOWN {
2957
+ margin-bottom: 1.25rem;
2958
+ }
2959
+
2960
+ .uzi-settings-page-module__sectionTitle__bN5lO {
2961
+ margin: 0 0 0.25rem;
2962
+ font-size: 1.125rem;
2963
+ font-weight: 600;
2964
+ color: var(--foreground);
2965
+ }
2966
+
2967
+ .uzi-settings-page-module__sectionDescription__3wjhy {
2968
+ margin: 0;
2969
+ font-size: 0.85rem;
2970
+ color: var(--muted-foreground);
2971
+ line-height: 1.5;
2972
+ }
2973
+
2974
+ .uzi-settings-page-module__sectionBody__zraHK {
2975
+ display: flex;
2976
+ flex-direction: column;
2977
+ gap: 1.25rem;
2978
+ }
2979
+
2980
+ .uzi-settings-page-module__dangerZone__GD8XX {
2981
+ margin-top: 2rem;
2982
+ border: 1px solid var(--ts-danger-border, var(--destructive));
2983
+ border-radius: 8px;
2984
+ background: var(--ts-danger-bg, color-mix(in srgb, var(--destructive) 8%, transparent));
2985
+ padding: 1.5rem;
2986
+ }
2987
+
2988
+ .uzi-settings-page-module__dangerZoneHeader__2d3R1 {
2989
+ margin-bottom: 1rem;
2990
+ }
2991
+
2992
+ .uzi-settings-page-module__dangerZoneTitle__ljU2k {
2993
+ margin: 0 0 0.25rem;
2994
+ font-size: 1rem;
2995
+ font-weight: 600;
2996
+ color: var(--ts-danger-text, var(--destructive));
2997
+ }
2998
+
2999
+ .uzi-settings-page-module__dangerZoneDescription__Z3Ohe {
3000
+ margin: 0;
3001
+ font-size: 0.85rem;
3002
+ color: var(--muted-foreground);
3003
+ line-height: 1.5;
3004
+ }
3005
+
3006
+ .uzi-settings-page-module__dangerZoneBody__zAQbu {
3007
+ display: flex;
3008
+ flex-direction: column;
3009
+ gap: 0.75rem;
3010
+ }
3011
+
3012
+ .uzi-settings-page-module__footer__dO4Xo {
3013
+ position: fixed;
3014
+ bottom: 0;
3015
+ left: 0;
3016
+ right: 0;
3017
+ border-top: 1px solid var(--border);
3018
+ background: var(--background);
3019
+ z-index: 10;
3020
+ padding: 0.75rem 2rem;
3021
+ }
3022
+
3023
+ .uzi-settings-page-module__footerContent__pPOdb {
3024
+ max-width: 64rem;
3025
+ margin: 0 auto;
3026
+ display: flex;
3027
+ align-items: center;
3028
+ justify-content: space-between;
3029
+ gap: 1rem;
3030
+ }
3031
+
3032
+ .uzi-settings-page-module__savingIndicator__ujaC5 {
3033
+ font-size: 0.85rem;
3034
+ color: var(--muted-foreground);
3035
+ }
3036
+
3037
+ @media (max-width: 48rem) {
3038
+ .uzi-settings-page-module__header__ao-nv {
3039
+ padding: 1.5rem 1rem 0;
3040
+ }
3041
+
3042
+ .uzi-settings-page-module__content__MBz6q {
3043
+ padding: 1rem 1rem 6rem;
3044
+ }
3045
+
3046
+ .uzi-settings-page-module__footer__dO4Xo {
3047
+ padding: 0.75rem 1rem;
3048
+ }
3049
+
3050
+ .uzi-settings-page-module__footerContent__pPOdb {
3051
+ flex-direction: column;
3052
+ align-items: stretch;
3053
+ gap: 0.5rem;
3054
+ }
3055
+ }
3056
+ .uzi-error-page-module__layout__OVDE8 {
3057
+ display: flex;
3058
+ align-items: center;
3059
+ justify-content: center;
3060
+ min-height: 100vh;
3061
+ min-height: 100dvh;
3062
+ padding: 24px;
3063
+ background: var(--background);
3064
+ }
3065
+
3066
+ .uzi-error-page-module__card__2veSo {
3067
+ text-align: center;
3068
+ display: flex;
3069
+ flex-direction: column;
3070
+ align-items: center;
3071
+ gap: 1.5rem;
3072
+ max-width: 40rem;
3073
+ padding: 3rem 2rem;
3074
+ }
3075
+
3076
+ .uzi-error-page-module__icon__vJy8E {
3077
+ color: var(--muted-foreground);
3078
+ }
3079
+
3080
+ .uzi-error-page-module__iconSvg__h4u4V {
3081
+ width: 4rem;
3082
+ height: 4rem;
3083
+ stroke-width: 1.5;
3084
+ }
3085
+
3086
+ .uzi-error-page-module__statusCode__Ub40l {
3087
+ font-size: 6rem;
3088
+ font-weight: 700;
3089
+ line-height: 1;
3090
+ color: var(--muted-foreground);
3091
+ letter-spacing: -0.04em;
3092
+ }
3093
+
3094
+ .uzi-error-page-module__content__b2dAY {
3095
+ display: flex;
3096
+ flex-direction: column;
3097
+ align-items: center;
3098
+ gap: 1rem;
3099
+ }
3100
+
3101
+ .uzi-error-page-module__title__8iioy {
3102
+ margin: 0;
3103
+ font-size: 1.5rem;
3104
+ font-weight: 600;
3105
+ color: var(--foreground);
3106
+ line-height: 1.3;
3107
+ }
3108
+
3109
+ .uzi-error-page-module__subtitle__NVk-v {
3110
+ margin: 0;
3111
+ font-size: 1rem;
3112
+ color: var(--muted-foreground);
3113
+ line-height: 1.6;
3114
+ max-width: 32rem;
3115
+ }
3116
+
3117
+ .uzi-error-page-module__action__iX5fQ {
3118
+ display: flex;
3119
+ flex-wrap: wrap;
3120
+ justify-content: center;
3121
+ gap: 0.75rem;
3122
+ margin-top: 0.5rem;
3123
+ }
3124
+
3125
+ @media (max-width: 48rem) {
3126
+ .uzi-error-page-module__statusCode__Ub40l {
3127
+ font-size: 4rem;
3128
+ }
3129
+
3130
+ .uzi-error-page-module__title__8iioy {
3131
+ font-size: 1.25rem;
3132
+ }
3133
+
3134
+ .uzi-error-page-module__card__2veSo {
3135
+ padding: 2rem 1.5rem;
3136
+ }
3137
+ }
3138
+ .uzi-empty-state-page-module__wrapper__3f-kg {
3139
+ display: flex;
3140
+ align-items: center;
3141
+ justify-content: center;
3142
+ min-height: 100vh;
3143
+ min-height: 100dvh;
3144
+ padding: 24px;
3145
+ background: var(--background);
3146
+ }
3147
+
3148
+ .uzi-empty-state-page-module__card__vcQUh {
3149
+ display: flex;
3150
+ flex-direction: column;
3151
+ align-items: center;
3152
+ gap: 1.5rem;
3153
+ max-width: 28rem;
3154
+ width: 100%;
3155
+ padding: 2.5rem 2rem;
3156
+ border-radius: var(--ts-card-radius, 12px);
3157
+ border: 1px solid var(--ts-card-border, var(--border));
3158
+ background: var(--ts-card-bg, var(--card));
3159
+ box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));
3160
+ color: var(--ts-card-fg, var(--foreground));
3161
+ text-align: center;
3162
+ }
3163
+
3164
+ .uzi-empty-state-page-module__iconArea__xpt5d {
3165
+ display: grid;
3166
+ place-items: center;
3167
+ color: var(--muted-foreground);
3168
+ }
3169
+
3170
+ .uzi-empty-state-page-module__iconSvg__1TzoN {
3171
+ width: 3.5rem;
3172
+ height: 3.5rem;
3173
+ stroke-width: 1.5;
3174
+ }
3175
+
3176
+ .uzi-empty-state-page-module__content__OjvBh {
3177
+ display: grid;
3178
+ gap: 0.5rem;
3179
+ }
3180
+
3181
+ .uzi-empty-state-page-module__title__nvFC7 {
3182
+ margin: 0;
3183
+ font-size: 1.25rem;
3184
+ font-weight: 600;
3185
+ color: var(--foreground);
3186
+ line-height: 1.3;
3187
+ }
3188
+
3189
+ .uzi-empty-state-page-module__description__GqDMs {
3190
+ margin: 0;
3191
+ font-size: 0.9rem;
3192
+ color: var(--muted-foreground);
3193
+ line-height: 1.6;
3194
+ }
3195
+
3196
+ .uzi-empty-state-page-module__actions__ojrjI {
3197
+ display: flex;
3198
+ flex-wrap: wrap;
3199
+ justify-content: center;
3200
+ gap: 0.625rem;
3201
+ }
3202
+
3203
+ @media (max-width: 48rem) {
3204
+ .uzi-empty-state-page-module__card__vcQUh {
3205
+ padding: 2rem 1.5rem;
3206
+ }
3207
+ }
2676
3208
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomny-dev/uzi",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Rapid-fire React UI components. Ship faster, build more.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -48,6 +48,8 @@
48
48
  "dev": "vite build --watch",
49
49
  "lint": "tsc --noEmit",
50
50
  "test": "vitest run",
51
+ "storybook": "storybook dev -p 6006",
52
+ "build-storybook": "storybook build",
51
53
  "verify:package": "node scripts/verify-client-boundary.mjs"
52
54
  },
53
55
  "peerDependencies": {
@@ -63,12 +65,18 @@
63
65
  "@radix-ui/react-toast": "^1.2.15"
64
66
  },
65
67
  "devDependencies": {
68
+ "@storybook/addon-essentials": "^8.6.14",
69
+ "@storybook/addon-links": "^8.6.18",
70
+ "@storybook/addon-storysource": "^8.6.14",
71
+ "@storybook/react": "8",
72
+ "@storybook/react-vite": "^8.6.18",
66
73
  "@testing-library/jest-dom": "^6.9.1",
67
74
  "@testing-library/react": "^16.3.2",
68
75
  "@types/react": "^18.2.0",
69
76
  "@types/react-dom": "^18.2.0",
70
77
  "@vitejs/plugin-react": "^5.2.0",
71
78
  "jsdom": "^29.1.1",
79
+ "storybook": "^8.6.18",
72
80
  "typescript": "^5.4.3",
73
81
  "vite": "^8.0.0",
74
82
  "vite-plugin-css-injected-by-js": "^5.0.1",