twntyx-css 1.0.14 → 1.0.16

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.
@@ -147,13 +147,15 @@
147
147
  "required": [],
148
148
  "dataAttributes": [],
149
149
  "roles": [],
150
- "aria": []
150
+ "aria": [
151
+ "aria-label"
152
+ ]
151
153
  },
152
154
  "a11y": {
153
155
  "interactive": true,
154
156
  "requiredRoles": [],
155
157
  "requiredAria": [
156
- "aria-label (when no visible label)"
158
+ "aria-label"
157
159
  ],
158
160
  "keyboardSupport": [
159
161
  "Tab",
package/llm/index.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "llmSchemaVersion": "1.0.0",
3
- "designSystemVersion": "1.0.14",
3
+ "designSystemVersion": "1.0.16",
4
4
  "packageName": "twntyx-css",
5
5
  "apiModel": "html-class",
6
- "sourceFingerprint": "94d3d0175b10a65cee9886ccc0f40c56003774ab488d46e7f073af7f9cc1925f",
6
+ "sourceFingerprint": "cf9f34775c1b86e3b2eb4ba59f55ea4075ab5faad4f27535cf971319d65014fc",
7
7
  "files": {
8
8
  "schema": "schema.json",
9
9
  "tokens": "tokens.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twntyx-css",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "exports": {
5
5
  "./llm": "./llm/index.json",
6
6
  "./llm/components/*": "./llm/components/*.json",
package/styles/menu.css CHANGED
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  li {
21
- @apply flex relative flex-col flex-wrap items-stretch shrink-0;
21
+ @apply flex relative flex-col flex-wrap items-stretch shrink-0 min-w-0 max-w-full;
22
22
 
23
23
  /* Default Link/Button Style */
24
24
  > *:not(ul, details, .menu-title, .menu-row) {
@@ -33,10 +33,10 @@
33
33
 
34
34
  /* Split row: main link + contextual action */
35
35
  > .menu-row {
36
- @apply flex gap-1 items-center px-4 py-2 w-full max-w-full text-sm rounded cursor-default include-hover-primary include-interactive text-text-tertiary hover:text-text-default;
36
+ @apply grid grid-cols-[minmax(0,1fr)_auto] items-center py-2 pl-0 pr-2 w-full max-w-full min-w-0 text-sm rounded cursor-default include-hover-primary include-interactive text-text-tertiary hover:text-text-default;
37
37
 
38
38
  > :where(a, button:not(.menu-row-action)) {
39
- @apply flex flex-1 gap-2 items-center min-w-0 p-0 rounded-none cursor-pointer text-inherit hover:text-inherit outline-transparent focus-visible:outline-transparent active:outline-transparent;
39
+ @apply flex gap-2 items-center min-w-0 py-0 pl-4 pr-1 rounded-none cursor-pointer text-inherit hover:text-inherit outline-transparent focus-visible:outline-transparent active:outline-transparent;
40
40
 
41
41
  &::before {
42
42
  @apply hidden;
@@ -45,22 +45,26 @@
45
45
  &:active > * {
46
46
  @apply translate-y-px duration-0;
47
47
  }
48
+
49
+ svg {
50
+ @apply shrink-0 fill-current size-5!;
51
+ }
48
52
  }
49
53
 
50
54
  > .menu-row-action {
51
- @apply relative z-10 flex shrink-0 justify-center items-center size-6 rounded cursor-pointer include-interactive text-text-tertiary hover:text-text-default;
55
+ @apply relative z-10 flex shrink-0 flex-none justify-center items-center -my-0.5 mr-0 size-6 rounded cursor-pointer include-interactive text-text-tertiary hover:text-text-default;
52
56
 
53
57
  &::before {
54
58
  @apply hidden;
55
59
  }
56
60
 
57
61
  svg {
58
- @apply fill-current size-4;
62
+ @apply fill-current size-4!;
59
63
  }
60
64
  }
61
65
 
62
66
  > .menu-row-input {
63
- @apply relative z-10 flex flex-1 min-w-0 select-text;
67
+ @apply relative z-10 flex min-w-0 py-0 pl-4 pr-1 select-text -my-1;
64
68
 
65
69
  .input-control {
66
70
  @apply flex-1 w-full min-h-0 p-0 border-transparent shadow-none bg-transparent input-ghost;
@@ -93,19 +97,19 @@
93
97
  }
94
98
 
95
99
  &.menu-row-action-hover > .menu-row > .menu-row-action {
96
- @apply opacity-0 pointer-events-none transition-opacity duration-75;
100
+ @apply hidden;
97
101
  }
98
102
 
99
- &.menu-row-action-hover > .menu-row:hover > .menu-row-action,
100
- &.menu-row-action-hover > .menu-row:focus-within > .menu-row-action {
101
- @apply opacity-100 pointer-events-auto;
103
+ &.menu-row-action-hover:hover > .menu-row > .menu-row-action,
104
+ &.menu-row-action-hover:focus-within > .menu-row > .menu-row-action {
105
+ @apply flex;
102
106
  }
103
107
 
104
- span {
108
+ > *:not(.menu-row) span {
105
109
  @apply truncate min-w-fit;
106
110
  }
107
111
 
108
- > * {
112
+ > *:not(.menu-row) {
109
113
  &:has(svg:only-child) {
110
114
  @apply px-2;
111
115
  }
@@ -113,16 +117,24 @@
113
117
  @apply w-full;
114
118
  }
115
119
  svg {
116
- @apply fill-current size-5;
120
+ @apply fill-current size-5!;
117
121
  }
118
122
  }
119
123
 
120
- :where(a, button) {
121
- @apply include-interactive;
122
- }
123
-
124
124
  > .menu-row > :where(a, button:not(.menu-row-action)) {
125
125
  @apply outline-transparent focus-visible:outline-transparent active:outline-transparent;
126
+
127
+ > span {
128
+ @apply block min-w-0 flex-1 truncate;
129
+ }
130
+
131
+ > span + span {
132
+ @apply shrink-0 flex-none min-w-fit overflow-visible whitespace-normal;
133
+ }
134
+ }
135
+
136
+ :where(a, button) {
137
+ @apply include-interactive;
126
138
  }
127
139
 
128
140
  &.is-selected {
@@ -244,14 +256,34 @@
244
256
  @apply text-xs;
245
257
  li {
246
258
  > .menu-row {
247
- @apply gap-1 px-2 py-1 text-xs;
259
+ @apply gap-1 py-1 pr-1 text-xs;
260
+
261
+ > :where(a, button:not(.menu-row-action)) {
262
+ @apply pl-2 pr-0.5;
263
+ }
264
+
265
+ > .menu-row-input {
266
+ @apply pl-2 pr-0.5;
267
+ }
268
+
269
+ > :where(a, button:not(.menu-row-action)) svg {
270
+ @apply size-3.5!;
271
+ }
272
+
273
+ > .menu-row-action {
274
+ @apply -my-0.5 mr-0 size-4;
275
+ }
276
+
277
+ > .menu-row-action svg {
278
+ @apply size-3!;
279
+ }
248
280
 
249
281
  .menu-row-input .input-text {
250
282
  @apply text-xs;
251
283
  }
252
284
  }
253
- > * {
254
- &:not(ul, details, .menu-title, .menu-row),
285
+ > *:not(.menu-row) {
286
+ &:not(ul, details, .menu-title),
255
287
  details > summary {
256
288
  @apply gap-1 px-2 py-1 text-xs;
257
289
  }
@@ -259,7 +291,7 @@
259
291
  @apply px-1;
260
292
  }
261
293
  > svg {
262
- @apply size-3.5;
294
+ @apply size-3.5!;
263
295
  }
264
296
  }
265
297
  }
@@ -277,14 +309,34 @@
277
309
  @apply text-xs;
278
310
  li {
279
311
  > .menu-row {
280
- @apply gap-1.5 px-3 py-1.5 text-xs;
312
+ @apply gap-1.5 py-1.5 pr-1.5 text-xs;
313
+
314
+ > :where(a, button:not(.menu-row-action)) {
315
+ @apply pl-3 pr-1;
316
+ }
317
+
318
+ > .menu-row-input {
319
+ @apply pl-3 pr-1;
320
+ }
321
+
322
+ > :where(a, button:not(.menu-row-action)) svg {
323
+ @apply size-[18px]!;
324
+ }
325
+
326
+ > .menu-row-action {
327
+ @apply -my-0.5 mr-0 size-5;
328
+ }
329
+
330
+ > .menu-row-action svg {
331
+ @apply size-3.5!;
332
+ }
281
333
 
282
334
  .menu-row-input .input-text {
283
335
  @apply text-xs;
284
336
  }
285
337
  }
286
- > * {
287
- &:not(ul, details, .menu-title, .menu-row),
338
+ > *:not(.menu-row) {
339
+ &:not(ul, details, .menu-title),
288
340
  details > summary {
289
341
  @apply gap-1.5 px-3 py-1.5 text-xs;
290
342
  }
@@ -292,7 +344,7 @@
292
344
  @apply px-1.5;
293
345
  }
294
346
  > svg {
295
- @apply size-[18px];
347
+ @apply size-[18px]!;
296
348
  }
297
349
  }
298
350
  }
@@ -310,14 +362,34 @@
310
362
  @apply text-base;
311
363
  li {
312
364
  > .menu-row {
313
- @apply gap-3 px-5 py-3 text-base;
365
+ @apply gap-3 py-3 pr-3 text-base;
366
+
367
+ > :where(a, button:not(.menu-row-action)) {
368
+ @apply pl-5 pr-1.5;
369
+ }
370
+
371
+ > .menu-row-input {
372
+ @apply pl-5 pr-1.5;
373
+ }
374
+
375
+ > :where(a, button:not(.menu-row-action)) svg {
376
+ @apply size-6!;
377
+ }
378
+
379
+ > .menu-row-action {
380
+ @apply -my-1 mr-0 size-7;
381
+ }
382
+
383
+ > .menu-row-action svg {
384
+ @apply size-4!;
385
+ }
314
386
 
315
387
  .menu-row-input .input-text {
316
388
  @apply text-base;
317
389
  }
318
390
  }
319
- > * {
320
- &:not(ul, details, .menu-title, .menu-row),
391
+ > *:not(.menu-row) {
392
+ &:not(ul, details, .menu-title),
321
393
  details > summary {
322
394
  @apply gap-3 px-5 py-3 text-base;
323
395
  }
@@ -325,7 +397,7 @@
325
397
  @apply px-3;
326
398
  }
327
399
  > svg {
328
- @apply size-6;
400
+ @apply size-6!;
329
401
  }
330
402
  }
331
403
  }