jk-ui-cli 0.0.1

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,189 @@
1
+ @utility ui-form-ring-base {
2
+ @apply outline outline-transparent ring-transparent ring-offset-transparent ring-3 ring-offset-1;
3
+ }
4
+
5
+ @utility ui-form-ring {
6
+ @apply focus:ring-(--focus-ring) focus:outline-(--ui-input-focus-outline);
7
+ }
8
+
9
+ @utility ui-input-opt-ring {
10
+ @apply data-[active=true]:ring-(--focus-ring) data-[active=true]:outline-(--ui-input-focus-outline) hover:outline-(--ui-input-focus-outline);
11
+ }
12
+
13
+ @utility ui-input-opt-ring-danger {
14
+ @apply data-[active=true]:aria-invalid:ring-(--focus-ring-invalid) data-[active=true]:aria-invalid:outline-(--ui-input-focus-outline-invalid);
15
+ }
16
+
17
+
18
+
19
+ @utility ui-form-input {
20
+ @apply disabled:hover:cursor-not-allowed disabled:opacity-60 transition-all ease-linear duration-200;
21
+ }
22
+
23
+ @utility ui-form-outline {
24
+ @apply outline-offset-0 focus:outline-offset-0 focus:border-transparent;
25
+ }
26
+
27
+ @utility ui-form-otp-outline {
28
+ @apply outline-offset-0 data-[active=true]:outline-offset-0 data-[active=true]:border-transparent;
29
+ }
30
+
31
+
32
+ @utility ui-form-group-base {
33
+ @apply w-full data-invalide:outline-(--ui-input-invalid-outline);
34
+
35
+ & input,
36
+ & select {
37
+ @apply flex-1 placeholder-(--ui-input-place-holder) leading-6;
38
+ }
39
+ }
40
+
41
+ @utility ui-form-group {
42
+ @apply has-disabled:hover:cursor-not-allowed disabled:hover:cursor-not-allowed has-disabled:opacity-80 disabled:opacity-80 outline-offset-0 transition-all ease-linear duration-200;
43
+
44
+ & input {
45
+ @apply outline-none focus:outline-none appearance-none;
46
+ }
47
+ }
48
+
49
+
50
+ @utility ui-form-group-ring {
51
+ @apply focus-within:outline-offset-0 focus-within:border-transparent focus-within:outline-(--ui-input-focus-outline) focus-within:ring-(--focus-ring);
52
+ }
53
+
54
+ @utility ui-input-select-trigger-base {
55
+ @apply relative focus:enabled:hover:border-ring/80 enabled:hover:border-fg-muted/30 flex w-full min-w-0 items-center;
56
+ }
57
+
58
+ @utility ui-form-select-trigger {
59
+ @apply relative;
60
+ }
61
+
62
+ @utility ui-form-select-trigger-invalid {
63
+ @apply group-open/select:border-ring/70 group-open/select:ring-3 group-open/select:ring-ring/20;
64
+ }
65
+
66
+ @utility ui-form-select-triger-invalid-base {
67
+ @apply group-focus/select:group-invalid/select:border-(--select-trigger-danger-border) group-focus/select:group-invalid/select:enabled:hover:border-(--select-trigger-danger-border-hover);
68
+ }
69
+
70
+ @utility ui-form-select-trigger-invalid-outline {
71
+ @apply group-open/select:invalid:border-(--select-trigger-danger-border) group-open/select:invalid:ring-3 group-open/select:invalid:ring-(--select-trigger-danger-ring) group-invalid/select:border-(--select-trigger-danger-border) group-invalid/select:ring-(--select-trigger-danger-ring) group-invalid/select:enabled:hover:border-(--select-trigger-danger-border);
72
+ }
73
+
74
+ @utility ui-form-select-trigger-access {
75
+ @apply in-disabled:bg-bg-muted in-disabled:opacity-50 forced-colors:in-disabled:border-[GrayText] forced-colors:in-disabled:text-[GrayText];
76
+ }
77
+
78
+ @utility ui-form-select-trigger-ring {
79
+ @apply focus:outline-offset-0 focus:border-transparent focus:outline-(--ui-input-focus-outline) focus:ring-(--focus-ring)
80
+ }
81
+
82
+ /* to complete for select trigger */
83
+
84
+ /* "*:data-[slot=icon]:size-5 *:data-[slot=icon]:shrink-0 *:data-[slot=icon]:self-center *:data-[slot=icon]:text-(--btn-icon) pressed:*:data-[slot=icon]:text-(--btn-icon-active) focus-visible:*:data-[slot=icon]:text-(--btn-icon-active)/80 enabled:hover:*:data-[slot=icon]:text-(--btn-icon-active)/90 sm:*:data-[slot=icon]:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:hover:[--btn-icon:ButtonText]",
85
+ "*:data-[slot=loader]:size-5 *:data-[slot=loader]:shrink-0 *:data-[slot=loader]:self-center *:data-[slot=loader]:text-(--btn-icon) sm:*:data-[slot=loader]:size-4",
86
+
87
+ "forced-colors:group-focus/select:border-[Highlight] forced-colors:group-invalid/select:border-[Mark] forced-colors:group-focus/select:group-invalid/select:border-[Mark]",
88
+ "group-disabled/select:bg-muted group-disabled/select:opacity-50 forced-colors:group-disabled/select:border-[GrayText] forced-colors:group-disabled/select:text-[GrayText]",
89
+ "",
90
+ "dark:scheme-dark", */
91
+
92
+
93
+
94
+
95
+ @utility ui-form-input-xs {
96
+ @apply px-2 text-xs h-6;
97
+ }
98
+
99
+ @utility ui-form-input-sm {
100
+ @apply px-2.5 text-sm h-8;
101
+ }
102
+
103
+ @utility ui-form-input-md {
104
+ @apply px-3 text-sm h-9;
105
+ }
106
+
107
+ @utility ui-form-input-lg {
108
+ @apply px-3 text-sm h-10;
109
+ }
110
+
111
+ @utility ui-form-input-xl {
112
+ @apply px-3.5 text-base h-11;
113
+ }
114
+
115
+ @utility ui-form-base {
116
+ @apply appearance-none w-full placeholder-(--ui-input-place-holder) data-invalid:outline-(--ui-input-invalid-outline) leading-6;
117
+ }
118
+
119
+
120
+
121
+ @utility ui_c_r {
122
+ @apply outline-offset-0 outline outline-transparent fx-checked:outline-offset-0 fx-checked:border-transparent fx-indeterminate:outline-offset-0 fx-indeterminate:border-transparent fx-checked:outline-(--ui-input-focus-outline) fx-indeterminate:outline-(--ui-input-focus-outline);
123
+ }
124
+
125
+ @utility ui_c_r-selected {
126
+ @apply bg-(--checkbox-bg) text-(--checkbox-fg) fx-checked:[--checkbox-bg:var(--checkbox-bg-checked)] fx-checked:[--checkbox-fg:var(--checkbox-fg-checked)];
127
+ }
128
+
129
+ @utility ui-c_r-ring {
130
+ @apply ring-transparent ring-offset-transparent fx-focus-visible:ring-(--focus-ring) ring-3 ring-offset-1;
131
+ }
132
+
133
+ @utility ui_c_r_invalid {
134
+ @apply border-transparent outline outline-(--invalid-outline) outline-offset-0;
135
+ }
136
+
137
+ @utility ui-c_r-selected-indeterminate {
138
+
139
+ &[data-checked="true"],
140
+ &[data-indeterminate="true"] {
141
+ @apply bg-(--checkbox-bg) text-(--checkbox-fg)
142
+ }
143
+ }
144
+
145
+
146
+
147
+ @utility ui-c_r-group {
148
+ @apply space-y-3 has-[[slot=description]]:space-y-6 has-[[slot=description]]:**:data-[slot=label]:font-medium **:[[slot=description]]:block;
149
+ }
150
+
151
+ @utility ui-c_r-wrapper {
152
+ @apply grid gap-y-1 gap-x-3;
153
+ }
154
+
155
+ @utility ui-c_r-wrapper-indicator {
156
+ @apply *:data-[slot=indicator]:col-start-1 *:data-[slot=indicator]:row-start-1;
157
+ }
158
+
159
+ @utility ui-c_r-wrapper-label {
160
+ @apply *:data-[slot=label]:col-start-2 *:data-[slot=label]:row-start-1;
161
+ }
162
+
163
+ @utility ui-c_r-wrapper-description {
164
+ @apply has-[[slot=description]]:**:data-[slot=label]:font-medium *:[[slot=description]]:col-start-2 *:[[slot=description]]:row-start-2
165
+ }
166
+
167
+ @utility ui-checkbox-base {
168
+ @apply in-disabled:bg-bg-muted relative size-(--checkbox-size) *:data-[slot=check-indicator]:size-(--checkbox-indicator-size) isolate flex shrink-0 items-center justify-center;
169
+ }
170
+
171
+
172
+ @utility ui-radio-base {
173
+ @apply relative isolate size-(--radio-size) flex before:absolute rounded-full before:rounded-full;
174
+ }
175
+
176
+ @utility ui-radio-indicator {
177
+ @apply before:top-1/2 before:left-1/2 before:-translate-1/2 before:size-2 before:bg-current
178
+ }
179
+
180
+ @utility ui-data-segment-placeholder {
181
+ @apply text-(--ui-input-place-holder) [data-focused]:text-(--date-segment-focus-fg)
182
+ }
183
+
184
+ @utility ui-date-segment {
185
+ color: var(--date-segment-focus-fg) !important;
186
+ @apply bg-(--date-segment-focus-bg) forced-colors:bg-[Highlight] forced-colors:text-[HighlightText]
187
+ }
188
+
189
+
@@ -0,0 +1,128 @@
1
+
2
+
3
+ @utility ui-grid-dotted {
4
+ background-image: radial-gradient(currentColor var(--dotsize), var(--bg-grid-dotted) var(--dotsize));
5
+ background-size: var(--unify-ui-grid-width) var(--unify-ui-grid-height);
6
+ }
7
+
8
+ @utility ui-radial-gradient {
9
+ background: radial-gradient(125% 125% at 50% 10%, var(--unify-radial-bg) 40%, currentColor 100%);
10
+ }
11
+
12
+ @utility ui-grid {
13
+ --unify-grid-color: currentColor;
14
+ background-image: linear-gradient(to right, var(--unify-grid-color) 1px, transparent 1px), linear-gradient(to bottom, var(--unify-grid-color) 1px, transparent 1px);
15
+ background-size: var(--unify-ui-grid-width) var(--unify-ui-grid-height);
16
+ }
17
+
18
+ @utility ui-striper-overlay-mask {
19
+ mask-image: radial-gradient(ellipse 60% 50% at 50% 0%, #000 70%, transparent 110%);
20
+ }
21
+
22
+ @utility ui-grid-w-xs {
23
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xs);
24
+ }
25
+
26
+ @utility ui-grid-w-sm {
27
+ --unify-ui-grid-width: var(--unify-ui-grid-width-sm);
28
+ }
29
+
30
+ @utility ui-grid-w-md {
31
+ --unify-ui-grid-width: var(--unify-ui-grid-width-md);
32
+ }
33
+
34
+ @utility ui-grid-w-lg {
35
+ --unify-ui-grid-width: var(--unify-ui-grid-width-lg);
36
+ }
37
+
38
+ @utility ui-grid-w-xl {
39
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xl);
40
+ }
41
+
42
+ @utility ui-grid-w-2xl {
43
+ --unify-ui-grid-width: var(--unify-ui-grid-width-2xl);
44
+ }
45
+
46
+ @utility ui-grid-h-xs {
47
+ --unify-ui-grid-height: var(--unify-ui-grid-height-xs);
48
+ }
49
+
50
+ @utility ui-grid-h-sm {
51
+ --unify-ui-grid-height: var(--unify-ui-grid-height-sm);
52
+ }
53
+
54
+ @utility ui-grid-h-md {
55
+ --unify-ui-grid-height: var(--unify-ui-grid-height-md);
56
+ }
57
+
58
+ @utility ui-grid-h-lg {
59
+ --unify-ui-grid-height: var(--unify-ui-grid-height-lg);
60
+ }
61
+
62
+ @utility ui-grid-h-xl {
63
+ --unify-ui-grid-height: var(--unify-ui-grid-height-xl);
64
+ }
65
+
66
+ @utility ui-grid-h-2xl {
67
+ --unify-ui-grid-height: var(--unify-ui-grid-height-2xl);
68
+ }
69
+
70
+ @utility ui-grid-square-xs {
71
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xs);
72
+ --unify-ui-grid-height: var(--unify-ui-grid-width-xs);
73
+ }
74
+
75
+ @utility ui-grid-square-sm {
76
+ --unify-ui-grid-width: var(--unify-ui-grid-width-sm);
77
+ --unify-ui-grid-height: var(--unify-ui-grid-width-sm);
78
+ }
79
+
80
+ @utility ui-grid-square-md {
81
+ --unify-ui-grid-width: var(--unify-ui-grid-width-md);
82
+ --unify-ui-grid-height: var(--unify-ui-grid-width-md);
83
+ }
84
+
85
+ @utility ui-grid-square-lg {
86
+ --unify-ui-grid-width: var(--unify-ui-grid-width-lg);
87
+ --unify-ui-grid-height: var(--unify-ui-grid-width-lg);
88
+ }
89
+
90
+ @utility ui-grid-square-xl {
91
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xl);
92
+ --unify-ui-grid-height: var(--unify-ui-grid-width-xl);
93
+ }
94
+
95
+ @utility ui-grid-square-2xl {
96
+ --unify-ui-grid-width: var(--unify-ui-grid-width-2xl);
97
+ --unify-ui-grid-height: var(--unify-ui-grid-width-2xl);
98
+ }
99
+
100
+ @utility ui-grid-rec-xs {
101
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xs);
102
+ --unify-ui-grid-height: var(--unify-ui-grid-height-xs);
103
+ }
104
+
105
+ @utility ui-grid-rec-sm {
106
+ --unify-ui-grid-width: var(--unify-ui-grid-width-sm);
107
+ --unify-ui-grid-height: var(--unify-ui-grid-height-sm);
108
+ }
109
+
110
+ @utility ui-grid-rec-md {
111
+ --unify-ui-grid-width: var(--unify-ui-grid-width-md);
112
+ --unify-ui-grid-height: var(--unify-ui-grid-height-md);
113
+ }
114
+
115
+ @utility ui-grid-rec-lg {
116
+ --unify-ui-grid-width: var(--unify-ui-grid-width-lg);
117
+ --unify-ui-grid-height: var(--unify-ui-grid-height-lg);
118
+ }
119
+
120
+ @utility ui-grid-rec-xl {
121
+ --unify-ui-grid-width: var(--unify-ui-grid-width-xl);
122
+ --unify-ui-grid-height: var(--unify-ui-grid-height-xl);
123
+ }
124
+
125
+ @utility ui-grid-rec-2xl {
126
+ --unify-ui-grid-width: var(--unify-ui-grid-width-2xl);
127
+ --unify-ui-grid-height: var(--unify-ui-grid-height-2xl);
128
+ }
@@ -0,0 +1,171 @@
1
+ @utility ui-radius {
2
+ @apply rounded-(--ui-radius);
3
+ }
4
+
5
+ @utility ui-soft {
6
+ @apply bg-(--ui-soft-bg) text-(--ui-soft-text);
7
+ }
8
+
9
+ @utility ui-solid {
10
+ @apply bg-(--ui-solid-bg) text-(--ui-solid-text);
11
+ }
12
+
13
+ @utility ui-outline {
14
+ @apply text-(--ui-outline-text) border border-(--ui-outline-border);
15
+ }
16
+
17
+ @utility ui-subtle {
18
+ @apply bg-(--ui-subtle-bg) border text-(--ui-subtle-text) border-(--ui-subtle-border);
19
+ }
20
+
21
+
22
+ @utility aspect-utrawide {
23
+ @apply aspect-[21/9];
24
+ }
25
+
26
+ @utility aspect-standard-tv {
27
+ @apply aspect-[4/3];
28
+ }
29
+
30
+ @utility aspect-35mm-film {
31
+ @apply aspect-[3/2];
32
+ }
33
+
34
+ @utility avatar-xs {
35
+ width: calc(var(--spacing, 0.25rem) * 6.5);
36
+ height: calc(var(--spacing, 0.25rem) * 6.5);
37
+ }
38
+
39
+ @utility avatar-sm {
40
+ width: calc(var(--spacing, 0.25rem) * 8);
41
+ height: calc(var(--spacing, 0.25rem) * 8);
42
+ }
43
+
44
+ @utility avatar-md {
45
+ width: calc(var(--spacing, 0.25rem) * 9.5);
46
+ height: calc(var(--spacing, 0.25rem) * 9.5);
47
+ }
48
+
49
+ @utility avatar-lg {
50
+ width: calc(var(--spacing, 0.25rem) * 10.5);
51
+ height: calc(var(--spacing, 0.25rem) * 10.5);
52
+ }
53
+
54
+ @utility avatar-xl {
55
+ width: calc(var(--spacing, 0.25rem) * 12);
56
+ height: calc(var(--spacing, 0.25rem) * 12);
57
+ }
58
+
59
+ @utility avatar-placeholder {
60
+ @apply flex items-center justify-center truncate;
61
+ }
62
+
63
+ @utility avatar-placeholder-xs {
64
+ width: calc(var(--spacing, 0.25rem) * 6.5);
65
+ height: calc(var(--spacing, 0.25rem) * 6.5);
66
+ @apply text-xs;
67
+ }
68
+
69
+ @utility avatar-placeholder-sm {
70
+ width: calc(var(--spacing, 0.25rem) * 8);
71
+ height: calc(var(--spacing, 0.25rem) * 8);
72
+ @apply text-sm;
73
+ }
74
+
75
+ @utility avatar-placeholder-md {
76
+ width: calc(var(--spacing, 0.25rem) * 8);
77
+ height: calc(var(--spacing, 0.25rem) * 8);
78
+ @apply text-sm;
79
+ }
80
+
81
+ @utility avatar-placeholder-lg {
82
+ width: calc(var(--spacing, 0.25rem) * 10.5);
83
+ height: calc(var(--spacing, 0.25rem) * 10.5);
84
+ @apply text-base;
85
+ }
86
+
87
+ @utility avatar-placeholder-xl {
88
+ width: calc(var(--spacing, 0.25rem) * 12);
89
+ height: calc(var(--spacing, 0.25rem) * 12);
90
+ @apply text-base;
91
+ }
92
+
93
+
94
+ @utility badge-xs {
95
+ padding: calc(var(--spacing, 0.25rem) * 0.5) calc(var(--spacing, 0.25rem) * 1);
96
+ @apply text-xs;
97
+ }
98
+
99
+ @utility badge-sm {
100
+ padding: calc(var(--spacing, 0.25rem) * 0.65) calc(var(--spacing, 0.25rem) * 1.5);
101
+ @apply text-xs;
102
+ }
103
+
104
+ @utility badge-md {
105
+ @apply text-sm;
106
+ padding: calc(var(--spacing, 0.25rem) * 1) calc(var(--spacing, 0.25rem) * 2);
107
+
108
+ }
109
+
110
+ @utility badge-lg {
111
+ padding: calc(var(--spacing, 0.25rem) * 1.115) calc(var(--spacing, 0.25rem) * 2.5);
112
+ }
113
+
114
+ @utility badge-xl {
115
+ padding: calc(var(--spacing, 0.25rem) * 1.3) calc(var(--spacing, 0.25rem) * 3);
116
+ }
117
+
118
+ @utility kbd-xs {
119
+ padding: calc(var(--spacing, 0.25rem) * 0.5) calc(var(--spacing, 0.25rem) * 1);
120
+ @apply text-xs;
121
+ }
122
+
123
+ @utility kbd-sm {
124
+ padding: calc(var(--spacing, 0.25rem) * 0.65) calc(var(--spacing, 0.25rem) * 1.5);
125
+ @apply text-xs;
126
+ }
127
+
128
+ @utility kbd-md {
129
+ @apply text-sm;
130
+ padding: calc(var(--spacing, 0.25rem) * 1) calc(var(--spacing, 0.25rem) * 2);
131
+
132
+ }
133
+
134
+ @utility kbd-lg {
135
+ padding: calc(var(--spacing, 0.25rem) * 1.115) calc(var(--spacing, 0.25rem) * 2.5);
136
+ }
137
+
138
+ @utility kbd-xl {
139
+ padding: calc(var(--spacing, 0.25rem) * 1.3) calc(var(--spacing, 0.25rem) * 3);
140
+ }
141
+
142
+
143
+
144
+
145
+ @utility divider-custom {
146
+ @apply relative before:absolute before:inset-x-0 flex items-center;
147
+ }
148
+
149
+ @utility divider-custom-1 {
150
+ @apply before:h-px;
151
+ }
152
+
153
+ @utility divider-custom-2 {
154
+ @apply before:h-[2px];
155
+ }
156
+
157
+ @utility divider-custom-3 {
158
+ @apply before:h-[3px];
159
+ }
160
+
161
+ @utility divider-custom-4 {
162
+ @apply before:h-[4px];
163
+ }
164
+
165
+ @utility divider-custom-6 {
166
+ @apply before:h-[6px];
167
+ }
168
+
169
+ @utility divider-custom-8 {
170
+ @apply before:h-[8px];
171
+ }
@@ -0,0 +1,189 @@
1
+ @utility dropdown-content {
2
+ @apply grid max-h-[inherit] grid-cols-[auto_1fr] overflow-y-auto overscroll-contain outline-hidden *:[[role='group']+[role=group]]:mt-4 *:[[role='group']+[role=separator]]:mt-1
3
+ }
4
+
5
+ @utility dropdown-item-base {
6
+ border-radius: calc(var(--dropdown-radius) - var(--dropdown-padding));
7
+ @apply outline-none focus:outline rounded-md px-3.5 py-1.5 ease-linear duration-200 transition-colors;
8
+ }
9
+
10
+
11
+ @utility dropdown-item-grid {
12
+ @apply col-span-full grid grid-cols-[auto_1fr_1.5rem_0.5rem_auto] supports-[grid-template-columns:subgrid]:grid-cols-subgrid;
13
+ }
14
+
15
+ @utility dropdown-item-bg {
16
+ @apply text-fg focus:outline-primary hover:text-fg-title focus:bg-bg-muted hover:bg-bg-muted fx-focus-active:bg-bg-muted;
17
+ }
18
+
19
+ @utility dropdown-item-bg-danger {
20
+ @apply focus:outline-danger focus:bg-danger-50 hover:bg-danger-100 text-danger dark:hover:bg-danger-500/10 dark:focus:bg-danger-500/10 **:slot-icon:text-danger/60 fx-focus-active:bg-danger-100 dark:fx-focus-active:bg-danger-500/10;
21
+ }
22
+
23
+
24
+ @utility dropdown-item-icon {
25
+ @apply *:data-[slot=icon]:col-start-1 *:data-[slot=icon]:row-start-1 *:data-[slot=icon]:mr-(--mr-icon) *:data-[slot=icon]:-ml-0.5 *:data-[slot=icon]:shrink-0 [&_[data-slot='icon']:not([class*='text-'])]:text-fg-muted;
26
+ }
27
+
28
+ @utility dropdown-item-has-description {
29
+ @apply not-has-[[slot=description]]:*:data-[slot=icon]:text-sm sm:not-has-[[slot=description]]:*:data-[slot=icon]:text-xs
30
+ }
31
+
32
+ @utility dropdown-item-description {
33
+ @apply has-[[slot=description]]:*:data-[slot=icon]:h-lh has-[[slot=description]]:[&_[data-slot='icon']:not([class*='w-'])]:text-sm sm:has-[[slot=description]]:[&_[data-slot='icon']:not([class*='w-'])]:text-xs
34
+ }
35
+
36
+ @utility dropdown-item-label {
37
+ @apply [&>[slot=label]+[data-slot=icon]]:absolute [&>[slot=label]+[data-slot=icon]]:right-1;
38
+ }
39
+
40
+ @utility dropdown-item-avatar {
41
+ @apply *:data-[slot=avatar]:*:mr-(--mr-icon) *:data-[slot=avatar]:mr-(--mr-icon) has-[[slot=description]]:*:data-[slot=avatar]:row-span-2 *:data-[slot=avatar]:[--avatar-size:--spacing(6)] sm:*:data-[slot=avatar]:[--avatar-size:--spacing(5)];
42
+ }
43
+
44
+ @utility dropdown-item-force-color {
45
+ @apply forced-color-adjust-none forced-colors:text-[CanvasText] forced-colors:**:slot-icon:text-[CanvasText] forced-colors:group-focus:**:slot-icon:text-[CanvasText];
46
+ }
47
+
48
+ /* ================================== */
49
+ /* popover
50
+ */
51
+
52
+ @utility dropdown-item-radius {
53
+ --popover-inner-radius: calc(var(--popover-radius) - var(--popover-padding));
54
+ }
55
+
56
+ /* animation */
57
+ @utility popover-animation {
58
+ @apply placement-left:exiting:slide-out-to-right-1 placement-right:exiting:slide-out-to-left-1 placement-top:exiting:slide-out-to-bottom-1 placement-bottom:exiting:slide-out-to-top-1 placement-left:entering:slide-in-from-right-1 placement-right:entering:slide-in-from-left-1 placement-top:entering:slide-in-from-bottom-1 placement-bottom:entering:slide-in-from-top-1;
59
+
60
+ }
61
+
62
+
63
+ /* dropdown hover and states */
64
+ @utility dropdown-item-hover {
65
+ @apply forced-colors:bg-[Highlight] forced-colors:text-[HighlightText];
66
+
67
+ &[data-hovered="true"],
68
+ &[data-focused="true"] {
69
+ @apply bg-(--dropdown-item-hover-and-select) text-(--dropdown-item-hover-and-select-fg);
70
+ }
71
+ }
72
+
73
+ @utility dropdown-item-danger {
74
+ @apply [--dropdown-item-hover-and-select:var(--dropdown-item-danger-hover-and-select)] [--dropdown-item-hover-and-select-fg:var(--dropdown-item-danger-hover-and-select-fg)] [--dropdown-item-selected-fg:var(--dropdown-item-danger-fg)];
75
+ }
76
+
77
+ @utility dropdown-item-warning {
78
+ @apply [--dropdown-item-hover-and-select:var(--dropdown-item-warning-hover-and-select)] [--dropdown-item-hover-and-select-fg:var(--dropdown-item-warning-hover-and-select-fg)] [--dropdown-item-selected-fg:var(--dropdown-item-warning-fg)];
79
+ }
80
+
81
+ @utility dropdown-item-selected {
82
+ &[data-selected="true"] {
83
+ @apply text-(--dropdown-item-selected-fg);
84
+ }
85
+ }
86
+
87
+ @utility dropdown-item-disabled {
88
+ &[data-disabled="true"] {
89
+ @apply opacity-50 forced-colors:text-[GrayText];
90
+ }
91
+ }
92
+
93
+
94
+ @utility modal-overlay {
95
+ height: var(--visual-viewport-height,100vh);
96
+ @apply fixed inset-0 z-50 bg-gray-800/60
97
+ }
98
+
99
+ @utility sheet-overlay {
100
+ @apply fixed inset-0 z-50 h-(--page-height) w-screen overflow-hidden bg-gray-800/60;
101
+ }
102
+
103
+ @utility modal-overlay-entering {
104
+ @apply entering:fade-in entering:animate-in entering:duration-300 entering:ease-out;
105
+ }
106
+
107
+ @utility modal-overlay-exiting {
108
+ @apply exiting:fade-out exiting:animate-out exiting:ease-in;
109
+ }
110
+
111
+ @utility modal-overlay-grid {
112
+ @apply grid grid-rows-[1fr_auto] justify-items-center sm:grid-rows-[1fr_auto_3fr]
113
+ }
114
+
115
+
116
+ @utility modal-transition-entering {
117
+ @apply entering:slide-in-from-bottom sm:entering:zoom-in-95 sm:entering:slide-in-from-bottom-0 entering:animate-in entering:duration-300 entering:ease-out;
118
+ }
119
+
120
+ @utility modal-transition-exiting {
121
+ @apply exiting:slide-out-to-bottom sm:exiting:zoom-out-95 sm:exiting:slide-out-to-bottom-0 exiting:animate-out exiting:ease-in;
122
+ }
123
+
124
+ @utility modal-size-fullscreen {
125
+ :is(& *) {
126
+ &[data-slot="dialog-body"] {
127
+ min-height: calc(var(--visual-viewport-height) - var(--visual-viewport-vertical-padding) - var(--dialog-header-height, 0px) - var(--dialog-footer-height, 0px));
128
+ }
129
+ }
130
+
131
+ @apply sm:rounded-ui sm:[--visual-viewport-vertical-padding:16px]
132
+ }
133
+
134
+ @utility overlay-on-enterring {
135
+ @apply entering:fade-in entering:animate-in entering:duration-500
136
+ }
137
+
138
+ @utility overlay-on-exiting {
139
+ @apply exiting:fade-out exiting:animate-out exiting:duration-300
140
+ }
141
+
142
+ @utility dialog-footer {
143
+ gap: var(--gap, calc(var(--spacing) * 3));
144
+ padding-top: calc(var(--gutter) - calc(var(--spacing) * 3));
145
+ @apply p-(--gutter) flex items-center;
146
+ }
147
+
148
+
149
+ /* range calendar */
150
+ @utility cell-selection-selected {
151
+ @apply fx-selected:bg-(--range-selected-bg)
152
+ }
153
+
154
+ @utility cell-radius {
155
+ @apply [td:first-child_&]:rounded-s-ui data-selection-start:rounded-s-ui [td:last-child_&]:rounded-e-ui data-selection-end:rounded-e-ui
156
+ }
157
+
158
+
159
+ @utility cell-span-selection-none {
160
+ @apply group-hover:bg-bg-muted/60 group-data-pressed:bg-bg-muted/80
161
+ }
162
+
163
+ @utility cell-span-selection-middle-base {
164
+ @apply text-(--range-selected-fg)! group-hover:bg-(--range-selected-bg-hover) group-data-pressed:bg-(--range-selected-bg-pressed) forced-colors:group-hover:bg-[Highlight]
165
+ }
166
+
167
+ @utility cell-span-selection-middle-invalid {
168
+ @apply text-(--range-selected-invalid-fg) group-invalid:group-hover:bg-(--range-selected-invalid-bg-hover) group-invalid:group-data-pressed:bg-(--range-selected-invalid-bg-pressed) forced-colors:group-invalid:group-hover:bg-[Mark]
169
+ }
170
+
171
+
172
+
173
+
174
+
175
+ @utility ui-card {
176
+ @apply p-(--card-padding) rounded-(--card-radius)
177
+ }
178
+
179
+ @utility inner-radius {
180
+ border-radius: calc(var(--card-radius) - var(--card-padding));
181
+ }
182
+
183
+ @utility d-flex-items-center {
184
+ @apply flex items-center;
185
+ }
186
+
187
+ @utility d-flex-place-center {
188
+ @apply flex justify-center items-center;
189
+ }