@letsprogram/ng-oat 0.1.3 → 0.1.5

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.
@@ -1,17 +1,111 @@
1
1
  @layer utilities {
2
+ /* ── Text alignment ──────────────────────────────────────────────────── */
2
3
  .align-left { text-align: start; }
3
4
  .align-center { text-align: center; }
4
5
  .align-right { text-align: end; }
6
+
7
+ .text-left { text-align: start; }
8
+ .text-center { text-align: center; }
9
+ .text-right { text-align: end; }
10
+
11
+ /* ── Text colors ─────────────────────────────────────────────────────── */
5
12
  .text-light { color: var(--muted-foreground); }
6
13
  .text-lighter { color: var(--faint-foreground); }
7
- .text-center { text-align: center; }
14
+ .text-danger { color: var(--danger); }
15
+ .text-success { color: var(--success); }
16
+ .text-warning { color: var(--warning); }
17
+ .text-primary { color: var(--primary); }
18
+ .text-muted { color: var(--muted-foreground); }
19
+
20
+ /* ── Text sizes (maps to theme tokens) ───────────────────────────────── */
21
+ .text-1 { font-size: var(--text-1); }
22
+ .text-2 { font-size: var(--text-2); }
23
+ .text-3 { font-size: var(--text-3); }
24
+ .text-4 { font-size: var(--text-4); }
25
+ .text-5 { font-size: var(--text-5); }
26
+ .text-6 { font-size: var(--text-6); }
27
+ .text-7 { font-size: var(--text-7); }
28
+ .text-8 { font-size: var(--text-8); }
29
+
30
+ .text-small { font-size: var(--text-7); }
31
+ .text-xs { font-size: var(--text-8); }
32
+ .text-regular { font-size: var(--text-regular); }
33
+
34
+ /* ── Font weight ─────────────────────────────────────────────────────── */
35
+ .font-normal { font-weight: var(--font-normal); }
36
+ .font-medium { font-weight: var(--font-medium); }
37
+ .font-semibold { font-weight: var(--font-semibold); }
38
+ .font-bold { font-weight: var(--font-bold); }
39
+
40
+ /* ── Font family ─────────────────────────────────────────────────────── */
41
+ .font-sans { font-family: var(--font-sans); }
42
+ .font-mono { font-family: var(--font-mono); }
43
+
44
+ /* ── Line-height ─────────────────────────────────────────────────────── */
45
+ .leading-none { line-height: var(--leading-none); }
46
+ .leading-tight { line-height: var(--leading-tight); }
47
+ .leading-snug { line-height: var(--leading-snug); }
48
+ .leading-normal { line-height: var(--leading-normal); }
49
+ .leading-relaxed { line-height: var(--leading-relaxed); }
50
+ .leading-loose { line-height: var(--leading-loose); }
51
+
52
+ /* ── Letter-spacing ──────────────────────────────────────────────────── */
53
+ .tracking-tighter { letter-spacing: var(--tracking-tighter); }
54
+ .tracking-tight { letter-spacing: var(--tracking-tight); }
55
+ .tracking-normal { letter-spacing: var(--tracking-normal); }
56
+ .tracking-wide { letter-spacing: var(--tracking-wide); }
57
+ .tracking-wider { letter-spacing: var(--tracking-wider); }
58
+ .tracking-widest { letter-spacing: var(--tracking-widest); }
59
+
60
+ /* ── Text transform ──────────────────────────────────────────────────── */
61
+ .uppercase { text-transform: uppercase; }
62
+ .lowercase { text-transform: lowercase; }
63
+ .capitalize { text-transform: capitalize; }
64
+ .normal-case { text-transform: none; }
65
+
66
+ /* ── Text decoration ─────────────────────────────────────────────────── */
67
+ .underline { text-decoration-line: underline; }
68
+ .overline { text-decoration-line: overline; }
69
+ .line-through { text-decoration-line: line-through; }
70
+ .no-underline { text-decoration-line: none; }
8
71
 
72
+ /* ── Text wrapping ───────────────────────────────────────────────────── */
73
+ .text-balance { text-wrap: balance; }
74
+ .text-pretty { text-wrap: pretty; }
75
+ .text-nowrap { text-wrap: nowrap; }
76
+
77
+ /* ── White-space ─────────────────────────────────────────────────────── */
78
+ .whitespace-normal { white-space: normal; }
79
+ .whitespace-nowrap { white-space: nowrap; }
80
+ .whitespace-pre { white-space: pre; }
81
+ .whitespace-pre-line { white-space: pre-line; }
82
+ .whitespace-pre-wrap { white-space: pre-wrap; }
83
+
84
+ /* ── Line clamp (multi-line truncation) ──────────────────────────────── */
85
+ .line-clamp-1 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; }
86
+ .line-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
87
+ .line-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
88
+ .line-clamp-4 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
89
+ .line-clamp-none { display: block; -webkit-box-orient: initial; -webkit-line-clamp: none; overflow: visible; }
90
+
91
+ /* ── Word break ──────────────────────────────────────────────────────── */
92
+ .break-normal { overflow-wrap: normal; word-break: normal; }
93
+ .break-words { overflow-wrap: break-word; }
94
+ .break-all { word-break: break-all; }
95
+
96
+ /* ── Flexbox ─────────────────────────────────────────────────────────── */
9
97
  .flex { display: flex; }
10
98
  .flex-col { flex-direction: column; }
99
+ .flex-row { flex-direction: row; }
100
+ .flex-wrap { flex-wrap: wrap; }
101
+ .flex-1 { flex: 1; }
11
102
  .items-center { align-items: center; }
103
+ .items-start { align-items: flex-start; }
104
+ .items-end { align-items: flex-end; }
12
105
  .justify-center { justify-content: center; }
13
106
  .justify-between { justify-content: space-between; }
14
107
  .justify-end { justify-content: flex-end; }
108
+ .justify-start { justify-content: flex-start; }
15
109
 
16
110
  /* Bootstrap inspired. */
17
111
  .hstack {
@@ -32,27 +126,199 @@
32
126
  gap: var(--space-3);
33
127
  }
34
128
 
129
+ /* ── Gap ──────────────────────────────────────────────────────────────── */
35
130
  .gap-1 { gap: var(--space-1); }
36
131
  .gap-2 { gap: var(--space-2); }
132
+ .gap-3 { gap: var(--space-3); }
37
133
  .gap-4 { gap: var(--space-4); }
134
+ .gap-6 { gap: var(--space-6); }
135
+ .gap-8 { gap: var(--space-8); }
38
136
 
137
+ /* ── Margin ──────────────────────────────────────────────────────────── */
138
+ .mt-0 { margin-block-start: 0; }
39
139
  .mt-2 { margin-block-start: var(--space-2); }
40
140
  .mt-4 { margin-block-start: var(--space-4); }
41
141
  .mt-6 { margin-block-start: var(--space-6); }
142
+ .mt-8 { margin-block-start: var(--space-8); }
42
143
 
144
+ .mb-0 { margin-block-end: 0; }
43
145
  .mb-2 { margin-block-end: var(--space-2); }
44
146
  .mb-4 { margin-block-end: var(--space-4); }
45
147
  .mb-6 { margin-block-end: var(--space-6); }
148
+ .mb-8 { margin-block-end: var(--space-8); }
149
+
150
+ /* ── Padding ─────────────────────────────────────────────────────────── */
151
+ .p-0 { padding: 0; }
152
+ .p-2 { padding: var(--space-2); }
46
153
  .p-4 { padding: var(--space-4); }
154
+ .p-6 { padding: var(--space-6); }
155
+ .p-8 { padding: var(--space-8); }
156
+
157
+ .px-2 { padding-inline: var(--space-2); }
158
+ .px-4 { padding-inline: var(--space-4); }
159
+ .py-2 { padding-block: var(--space-2); }
160
+ .py-4 { padding-block: var(--space-4); }
47
161
 
162
+ /* ── Width ───────────────────────────────────────────────────────────── */
48
163
  .w-100 { width: 100%; }
49
- .w-50 { width: 50%; }
50
- .w-25 { width: 25%; }
51
- .w-75 { width: 75%; }
164
+ .w-auto { width: auto; }
165
+ .max-w-sm { max-width: 24rem; }
166
+ .max-w-md { max-width: 28rem; }
167
+ .max-w-lg { max-width: 32rem; }
168
+ .max-w-xl { max-width: 36rem; }
169
+
170
+ /* ── Display ─────────────────────────────────────────────────────────── */
171
+ .d-none { display: none; }
172
+ .d-block { display: block; }
173
+ .d-flex { display: flex; }
174
+ .d-grid { display: grid; }
175
+ .d-inline { display: inline; }
176
+ .d-inline-block { display: inline-block; }
177
+ .d-inline-flex { display: inline-flex; }
178
+
179
+ /* ── Overflow ─────────────────────────────────────────────────────────── */
180
+ .overflow-auto { overflow: auto; }
181
+ .overflow-hidden { overflow: hidden; }
182
+ .overflow-x-auto { overflow-x: auto; }
183
+
184
+ /* ── Misc ─────────────────────────────────────────────────────────────── */
185
+ .truncate {
186
+ overflow: hidden;
187
+ text-overflow: ellipsis;
188
+ white-space: nowrap;
189
+ }
190
+
191
+ .sr-only {
192
+ position: absolute;
193
+ width: 1px;
194
+ height: 1px;
195
+ padding: 0;
196
+ margin: -1px;
197
+ overflow: hidden;
198
+ clip: rect(0, 0, 0, 0);
199
+ white-space: nowrap;
200
+ border-width: 0;
201
+ }
52
202
 
53
203
  :is(ul, ol, a).unstyled {
54
204
  list-style: none;
55
205
  text-decoration: none;
56
206
  padding: 0;
57
207
  }
208
+
209
+ /* ── Responsive display utilities (media queries) ────────────────────── */
210
+ @media (max-width: 639px) {
211
+ .sm\:d-none { display: none; }
212
+ .hide-mobile { display: none; }
213
+ }
214
+ @media (min-width: 640px) {
215
+ .sm\:d-block { display: block; }
216
+ .sm\:d-flex { display: flex; }
217
+ .sm\:d-grid { display: grid; }
218
+ .sm\:d-none { display: none; }
219
+ .sm\:flex-row { flex-direction: row; }
220
+ .sm\:flex-col { flex-direction: column; }
221
+ .show-mobile { display: none; }
222
+ }
223
+ @media (min-width: 768px) {
224
+ .md\:d-block { display: block; }
225
+ .md\:d-flex { display: flex; }
226
+ .md\:d-grid { display: grid; }
227
+ .md\:d-none { display: none; }
228
+ .md\:flex-row { flex-direction: row; }
229
+ .md\:flex-col { flex-direction: column; }
230
+ }
231
+ @media (min-width: 1024px) {
232
+ .lg\:d-block { display: block; }
233
+ .lg\:d-flex { display: flex; }
234
+ .lg\:d-grid { display: grid; }
235
+ .lg\:d-none { display: none; }
236
+ .lg\:flex-row { flex-direction: row; }
237
+ .lg\:flex-col { flex-direction: column; }
238
+ }
239
+ @media (min-width: 1280px) {
240
+ .xl\:d-block { display: block; }
241
+ .xl\:d-flex { display: flex; }
242
+ .xl\:d-grid { display: grid; }
243
+ .xl\:d-none { display: none; }
244
+ }
245
+
246
+ /* ── Responsive text alignment ───────────────────────────────────────── */
247
+ @media (min-width: 640px) {
248
+ .sm\:text-left { text-align: start; }
249
+ .sm\:text-center { text-align: center; }
250
+ .sm\:text-right { text-align: end; }
251
+ }
252
+ @media (min-width: 768px) {
253
+ .md\:text-left { text-align: start; }
254
+ .md\:text-center { text-align: center; }
255
+ .md\:text-right { text-align: end; }
256
+ }
257
+ @media (min-width: 1024px) {
258
+ .lg\:text-left { text-align: start; }
259
+ .lg\:text-center { text-align: center; }
260
+ .lg\:text-right { text-align: end; }
261
+ }
262
+
263
+ /* ── Responsive text sizes ─────────────────────────────────────────── */
264
+ @media (min-width: 640px) {
265
+ .sm\:text-1 { font-size: var(--text-1); }
266
+ .sm\:text-2 { font-size: var(--text-2); }
267
+ .sm\:text-3 { font-size: var(--text-3); }
268
+ .sm\:text-4 { font-size: var(--text-4); }
269
+ .sm\:text-5 { font-size: var(--text-5); }
270
+ .sm\:text-6 { font-size: var(--text-6); }
271
+ .sm\:text-7 { font-size: var(--text-7); }
272
+ .sm\:text-8 { font-size: var(--text-8); }
273
+ }
274
+ @media (min-width: 768px) {
275
+ .md\:text-1 { font-size: var(--text-1); }
276
+ .md\:text-2 { font-size: var(--text-2); }
277
+ .md\:text-3 { font-size: var(--text-3); }
278
+ .md\:text-4 { font-size: var(--text-4); }
279
+ .md\:text-5 { font-size: var(--text-5); }
280
+ .md\:text-6 { font-size: var(--text-6); }
281
+ .md\:text-7 { font-size: var(--text-7); }
282
+ .md\:text-8 { font-size: var(--text-8); }
283
+ }
284
+ @media (min-width: 1024px) {
285
+ .lg\:text-1 { font-size: var(--text-1); }
286
+ .lg\:text-2 { font-size: var(--text-2); }
287
+ .lg\:text-3 { font-size: var(--text-3); }
288
+ .lg\:text-4 { font-size: var(--text-4); }
289
+ .lg\:text-5 { font-size: var(--text-5); }
290
+ .lg\:text-6 { font-size: var(--text-6); }
291
+ .lg\:text-7 { font-size: var(--text-7); }
292
+ .lg\:text-8 { font-size: var(--text-8); }
293
+ }
294
+
295
+ /* ── Responsive gap ──────────────────────────────────────────────────── */
296
+ @media (min-width: 640px) {
297
+ .sm\:gap-2 { gap: var(--space-2); }
298
+ .sm\:gap-4 { gap: var(--space-4); }
299
+ .sm\:gap-6 { gap: var(--space-6); }
300
+ .sm\:gap-8 { gap: var(--space-8); }
301
+ }
302
+ @media (min-width: 768px) {
303
+ .md\:gap-2 { gap: var(--space-2); }
304
+ .md\:gap-4 { gap: var(--space-4); }
305
+ .md\:gap-6 { gap: var(--space-6); }
306
+ .md\:gap-8 { gap: var(--space-8); }
307
+ }
308
+
309
+ /* ── Responsive padding ──────────────────────────────────────────────── */
310
+ @media (min-width: 640px) {
311
+ .sm\:p-4 { padding: var(--space-4); }
312
+ .sm\:p-6 { padding: var(--space-6); }
313
+ .sm\:p-8 { padding: var(--space-8); }
314
+ .sm\:px-4 { padding-inline: var(--space-4); }
315
+ .sm\:px-6 { padding-inline: var(--space-6); }
316
+ }
317
+ @media (min-width: 768px) {
318
+ .md\:p-4 { padding: var(--space-4); }
319
+ .md\:p-6 { padding: var(--space-6); }
320
+ .md\:p-8 { padding: var(--space-8); }
321
+ .md\:px-4 { padding-inline: var(--space-4); }
322
+ .md\:px-6 { padding-inline: var(--space-6); }
323
+ }
58
324
  }