@kashi-ui/css 0.2.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.
@@ -0,0 +1,165 @@
1
+ /* تقویم شمسی و انتخاب تاریخ
2
+ * ساختار را کامپوننت React می‌سازد (Calendar و DatePicker)؛ این استایل برای هر پیاده‌سازی دیگری هم قابل‌استفاده است.
3
+ *
4
+ * متغیرها: --k-calendar-day-size --k-calendar-radius --k-calendar-bg --k-datepicker-width
5
+ */
6
+ .k-calendar {
7
+ --_day: var(--k-calendar-day-size, calc(2.5rem * var(--k-density)));
8
+
9
+ display: grid;
10
+ gap: var(--k-space-2);
11
+ inline-size: max-content;
12
+ max-inline-size: 100%;
13
+ color: var(--k-text-primary);
14
+ font-size: var(--k-text-sm);
15
+ }
16
+
17
+ .k-calendar__header {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ gap: var(--k-space-2);
22
+ }
23
+
24
+ .k-calendar__selects { display: flex; gap: var(--k-space-1); }
25
+
26
+ .k-calendar__select {
27
+ appearance: none;
28
+ min-block-size: 2.25rem;
29
+ padding-block: 0;
30
+ padding-inline: var(--k-space-3) var(--k-space-6);
31
+ border: 1px solid transparent;
32
+ border-radius: var(--k-radius-md);
33
+ background:
34
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23687491' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E") no-repeat,
35
+ transparent;
36
+ background-position: left var(--k-space-1_5) center;
37
+ background-size: 1rem;
38
+ color: var(--k-text-primary);
39
+ font: inherit;
40
+ font-weight: var(--k-weight-semibold);
41
+ cursor: pointer;
42
+ }
43
+ [dir="ltr"] .k-calendar__select { background-position: right var(--k-space-1_5) center; }
44
+ .k-calendar__select:hover { background-color: var(--k-bg-hover); }
45
+ .k-calendar__select:focus-visible { outline: 2px solid transparent; border-color: var(--k-border-brand); box-shadow: var(--k-ring-brand); }
46
+ .k-calendar__select option { background: var(--k-bg-elevated); color: var(--k-text-primary); }
47
+
48
+ .k-calendar__grid { border-collapse: collapse; margin-inline: auto; }
49
+ .k-calendar__grid th {
50
+ block-size: 2rem;
51
+ padding: 0;
52
+ color: var(--k-text-tertiary);
53
+ font-size: var(--k-text-xs);
54
+ font-weight: var(--k-weight-medium);
55
+ text-align: center;
56
+ }
57
+ .k-calendar__grid td { padding: 1px; text-align: center; }
58
+
59
+ .k-calendar__day {
60
+ position: relative;
61
+ display: inline-grid;
62
+ place-items: center;
63
+ inline-size: var(--_day);
64
+ block-size: var(--_day);
65
+ padding: 0;
66
+ border: 0;
67
+ border-radius: var(--k-calendar-radius, var(--k-radius-full));
68
+ background: transparent;
69
+ color: var(--k-text-secondary);
70
+ font: inherit;
71
+ font-variant-numeric: tabular-nums;
72
+ cursor: pointer;
73
+ transition: background-color var(--k-duration-fast) var(--k-ease-standard);
74
+ }
75
+ .k-calendar__day:hover { background: var(--k-bg-hover); color: var(--k-text-primary); }
76
+ .k-calendar__day:focus-visible { outline: 2px solid transparent; box-shadow: var(--k-ring-brand); }
77
+
78
+ /* امروز: نقطهٔ زیر عدد */
79
+ .k-calendar__day[aria-current="date"] { color: var(--k-text-brand); font-weight: var(--k-weight-bold); }
80
+ .k-calendar__day[aria-current="date"]::after {
81
+ content: "";
82
+ position: absolute;
83
+ inset-block-end: 0.3rem;
84
+ inline-size: 0.25rem;
85
+ block-size: 0.25rem;
86
+ border-radius: 50%;
87
+ background: currentColor;
88
+ }
89
+
90
+ [aria-selected="true"] > .k-calendar__day {
91
+ background: var(--k-bg-brand);
92
+ color: var(--k-text-on-brand);
93
+ font-weight: var(--k-weight-semibold);
94
+ box-shadow: var(--k-shadow-xs), var(--k-shadow-skeuomorphic);
95
+ }
96
+ [aria-selected="true"] > .k-calendar__day:focus-visible { box-shadow: var(--k-ring-brand); }
97
+
98
+ .k-calendar__day[aria-disabled="true"] {
99
+ color: var(--k-text-quaternary);
100
+ text-decoration: line-through;
101
+ cursor: not-allowed;
102
+ }
103
+ .k-calendar__day[aria-disabled="true"]:hover { background: transparent; }
104
+
105
+ .k-calendar__footer {
106
+ display: flex;
107
+ justify-content: center;
108
+ padding-block-start: var(--k-space-2);
109
+ border-block-start: 1px solid var(--k-border-secondary);
110
+ }
111
+
112
+ /* انتخاب تاریخ: فیلد + تقویم شناور */
113
+ .k-datepicker { position: relative; }
114
+ .k-datepicker .k-input { padding-inline-end: var(--k-space-1); }
115
+ .k-datepicker__toggle { margin-block: -0.25rem; }
116
+
117
+ .k-datepicker__popover {
118
+ position: absolute;
119
+ inset-inline-end: 0;
120
+ z-index: var(--k-z-dropdown);
121
+ inline-size: var(--k-datepicker-width, max-content);
122
+ max-inline-size: calc(100vw - 2rem);
123
+ padding: var(--k-space-4);
124
+ border: 1px solid var(--k-border-secondary);
125
+ border-radius: var(--k-radius-xl);
126
+ background: var(--k-calendar-bg, var(--k-bg-elevated));
127
+ box-shadow: var(--k-shadow-xl);
128
+ animation: k-pop-in var(--k-duration-fast) var(--k-ease-standard);
129
+ }
130
+ @keyframes k-pop-in { from { opacity: 0; translate: 0 -4px; } }
131
+
132
+ /* متن کوچک داخل فیلد، مثل نام بانک */
133
+ .k-input__meta {
134
+ color: var(--k-text-tertiary);
135
+ font-size: var(--k-text-sm);
136
+ white-space: nowrap;
137
+ }
138
+
139
+ @media (forced-colors: active) {
140
+ [aria-selected="true"] > .k-calendar__day { forced-color-adjust: none; background: Highlight; color: HighlightText; }
141
+ .k-calendar__day[aria-current="date"] { outline: 1px solid CanvasText; }
142
+ .k-datepicker__popover { border-color: CanvasText; }
143
+ }
144
+
145
+ /* نشان بانک داخل فیلد (کارت، شبا): لوگو + نام */
146
+ .k-bank {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ gap: var(--k-space-1_5);
150
+ color: var(--k-text-tertiary);
151
+ font-size: var(--k-text-sm);
152
+ white-space: nowrap;
153
+ }
154
+ .k-bank__logo {
155
+ inline-size: 1.5rem;
156
+ block-size: 1.5rem;
157
+ flex-shrink: 0;
158
+ border-radius: var(--k-radius-sm);
159
+ animation: k-pop-in var(--k-duration-normal) var(--k-ease-standard);
160
+ }
161
+ /* لوگوهای تیره روی پس‌زمینهٔ تیره دیده شوند */
162
+ [data-theme="dark"] .k-bank__logo, :root:not([data-theme]) .k-bank__logo {
163
+ padding: 1px;
164
+ background: #fff;
165
+ }
package/dist/kashi.css CHANGED
@@ -710,6 +710,172 @@
710
710
  .k-btn[aria-busy="true"]::after { border-color: ButtonText; border-block-start-color: transparent; }
711
711
  }
712
712
 
713
+ /* تقویم شمسی و انتخاب تاریخ
714
+ * ساختار را کامپوننت React می‌سازد (Calendar و DatePicker)؛ این استایل برای هر پیاده‌سازی دیگری هم قابل‌استفاده است.
715
+ *
716
+ * متغیرها: --k-calendar-day-size --k-calendar-radius --k-calendar-bg --k-datepicker-width
717
+ */
718
+ .k-calendar {
719
+ --_day: var(--k-calendar-day-size, calc(2.5rem * var(--k-density)));
720
+
721
+ display: grid;
722
+ gap: var(--k-space-2);
723
+ inline-size: max-content;
724
+ max-inline-size: 100%;
725
+ color: var(--k-text-primary);
726
+ font-size: var(--k-text-sm);
727
+ }
728
+
729
+ .k-calendar__header {
730
+ display: flex;
731
+ align-items: center;
732
+ justify-content: space-between;
733
+ gap: var(--k-space-2);
734
+ }
735
+
736
+ .k-calendar__selects { display: flex; gap: var(--k-space-1); }
737
+
738
+ .k-calendar__select {
739
+ appearance: none;
740
+ min-block-size: 2.25rem;
741
+ padding-block: 0;
742
+ padding-inline: var(--k-space-3) var(--k-space-6);
743
+ border: 1px solid transparent;
744
+ border-radius: var(--k-radius-md);
745
+ background:
746
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23687491' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E") no-repeat,
747
+ transparent;
748
+ background-position: left var(--k-space-1_5) center;
749
+ background-size: 1rem;
750
+ color: var(--k-text-primary);
751
+ font: inherit;
752
+ font-weight: var(--k-weight-semibold);
753
+ cursor: pointer;
754
+ }
755
+ [dir="ltr"] .k-calendar__select { background-position: right var(--k-space-1_5) center; }
756
+ .k-calendar__select:hover { background-color: var(--k-bg-hover); }
757
+ .k-calendar__select:focus-visible { outline: 2px solid transparent; border-color: var(--k-border-brand); box-shadow: var(--k-ring-brand); }
758
+ .k-calendar__select option { background: var(--k-bg-elevated); color: var(--k-text-primary); }
759
+
760
+ .k-calendar__grid { border-collapse: collapse; margin-inline: auto; }
761
+ .k-calendar__grid th {
762
+ block-size: 2rem;
763
+ padding: 0;
764
+ color: var(--k-text-tertiary);
765
+ font-size: var(--k-text-xs);
766
+ font-weight: var(--k-weight-medium);
767
+ text-align: center;
768
+ }
769
+ .k-calendar__grid td { padding: 1px; text-align: center; }
770
+
771
+ .k-calendar__day {
772
+ position: relative;
773
+ display: inline-grid;
774
+ place-items: center;
775
+ inline-size: var(--_day);
776
+ block-size: var(--_day);
777
+ padding: 0;
778
+ border: 0;
779
+ border-radius: var(--k-calendar-radius, var(--k-radius-full));
780
+ background: transparent;
781
+ color: var(--k-text-secondary);
782
+ font: inherit;
783
+ font-variant-numeric: tabular-nums;
784
+ cursor: pointer;
785
+ transition: background-color var(--k-duration-fast) var(--k-ease-standard);
786
+ }
787
+ .k-calendar__day:hover { background: var(--k-bg-hover); color: var(--k-text-primary); }
788
+ .k-calendar__day:focus-visible { outline: 2px solid transparent; box-shadow: var(--k-ring-brand); }
789
+
790
+ /* امروز: نقطهٔ زیر عدد */
791
+ .k-calendar__day[aria-current="date"] { color: var(--k-text-brand); font-weight: var(--k-weight-bold); }
792
+ .k-calendar__day[aria-current="date"]::after {
793
+ content: "";
794
+ position: absolute;
795
+ inset-block-end: 0.3rem;
796
+ inline-size: 0.25rem;
797
+ block-size: 0.25rem;
798
+ border-radius: 50%;
799
+ background: currentColor;
800
+ }
801
+
802
+ [aria-selected="true"] > .k-calendar__day {
803
+ background: var(--k-bg-brand);
804
+ color: var(--k-text-on-brand);
805
+ font-weight: var(--k-weight-semibold);
806
+ box-shadow: var(--k-shadow-xs), var(--k-shadow-skeuomorphic);
807
+ }
808
+ [aria-selected="true"] > .k-calendar__day:focus-visible { box-shadow: var(--k-ring-brand); }
809
+
810
+ .k-calendar__day[aria-disabled="true"] {
811
+ color: var(--k-text-quaternary);
812
+ text-decoration: line-through;
813
+ cursor: not-allowed;
814
+ }
815
+ .k-calendar__day[aria-disabled="true"]:hover { background: transparent; }
816
+
817
+ .k-calendar__footer {
818
+ display: flex;
819
+ justify-content: center;
820
+ padding-block-start: var(--k-space-2);
821
+ border-block-start: 1px solid var(--k-border-secondary);
822
+ }
823
+
824
+ /* انتخاب تاریخ: فیلد + تقویم شناور */
825
+ .k-datepicker { position: relative; }
826
+ .k-datepicker .k-input { padding-inline-end: var(--k-space-1); }
827
+ .k-datepicker__toggle { margin-block: -0.25rem; }
828
+
829
+ .k-datepicker__popover {
830
+ position: absolute;
831
+ inset-inline-end: 0;
832
+ z-index: var(--k-z-dropdown);
833
+ inline-size: var(--k-datepicker-width, max-content);
834
+ max-inline-size: calc(100vw - 2rem);
835
+ padding: var(--k-space-4);
836
+ border: 1px solid var(--k-border-secondary);
837
+ border-radius: var(--k-radius-xl);
838
+ background: var(--k-calendar-bg, var(--k-bg-elevated));
839
+ box-shadow: var(--k-shadow-xl);
840
+ animation: k-pop-in var(--k-duration-fast) var(--k-ease-standard);
841
+ }
842
+ @keyframes k-pop-in { from { opacity: 0; translate: 0 -4px; } }
843
+
844
+ /* متن کوچک داخل فیلد، مثل نام بانک */
845
+ .k-input__meta {
846
+ color: var(--k-text-tertiary);
847
+ font-size: var(--k-text-sm);
848
+ white-space: nowrap;
849
+ }
850
+
851
+ @media (forced-colors: active) {
852
+ [aria-selected="true"] > .k-calendar__day { forced-color-adjust: none; background: Highlight; color: HighlightText; }
853
+ .k-calendar__day[aria-current="date"] { outline: 1px solid CanvasText; }
854
+ .k-datepicker__popover { border-color: CanvasText; }
855
+ }
856
+
857
+ /* نشان بانک داخل فیلد (کارت، شبا): لوگو + نام */
858
+ .k-bank {
859
+ display: inline-flex;
860
+ align-items: center;
861
+ gap: var(--k-space-1_5);
862
+ color: var(--k-text-tertiary);
863
+ font-size: var(--k-text-sm);
864
+ white-space: nowrap;
865
+ }
866
+ .k-bank__logo {
867
+ inline-size: 1.5rem;
868
+ block-size: 1.5rem;
869
+ flex-shrink: 0;
870
+ border-radius: var(--k-radius-sm);
871
+ animation: k-pop-in var(--k-duration-normal) var(--k-ease-standard);
872
+ }
873
+ /* لوگوهای تیره روی پس‌زمینهٔ تیره دیده شوند */
874
+ [data-theme="dark"] .k-bank__logo, :root:not([data-theme]) .k-bank__logo {
875
+ padding: 1px;
876
+ background: #fff;
877
+ }
878
+
713
879
  /* کارت
714
880
  * <article class="k-card">
715
881
  * <header class="k-card__header">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kashi-ui/css",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "استایل کامپوننت‌های کاشی با CSS خالص — برای هر فریم‌ورکی",
5
5
  "main": "./dist/kashi.css",
6
6
  "style": "./dist/kashi.css",
@@ -21,7 +21,7 @@
21
21
  "build": "node build.mjs"
22
22
  },
23
23
  "dependencies": {
24
- "@kashi-ui/tokens": "^0.2.0"
24
+ "@kashi-ui/tokens": "^0.4.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "vazirmatn": "^33.0.3"