@aortl/admin-css 0.12.1 → 0.13.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.
- package/dist/admin.css +158 -0
- package/dist/admin.min.css +1 -1
- package/dist/admin.scoped.css +156 -0
- package/dist/admin.scoped.min.css +59 -21
- package/package.json +4 -2
- package/src/components/accordion.css +6 -0
- package/src/components/badge.css +5 -0
- package/src/components/breadcrumbs.css +8 -0
- package/src/components/button-group.css +18 -0
- package/src/components/button.css +16 -0
- package/src/components/index.css +1 -0
- package/src/components/input.css +14 -0
- package/src/components/link.css +32 -0
- package/src/components/menu.css +6 -0
- package/src/components/navbar.css +6 -0
- package/src/components/stat-card.css +5 -0
- package/src/components/tabs.css +5 -0
- package/src/components/textarea.css +23 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.link {
|
|
3
|
+
@apply inline-flex items-center gap-1
|
|
4
|
+
text-primary underline underline-offset-2
|
|
5
|
+
rounded-sm transition-colors duration-150
|
|
6
|
+
hover:text-primary-hover
|
|
7
|
+
focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Keep a leading icon from squishing when the link text wraps. The trailing
|
|
11
|
+
external arrow is already `flex: none` below. */
|
|
12
|
+
.link > :is(i, svg) {
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* External affordance: a trailing ↗ rendered from CSS so it ships identically
|
|
17
|
+
in both bundles — no JS, no icon-font dependency. The arrow is a masked box
|
|
18
|
+
tinted with `currentColor`, so it tracks the link's color (incl. hover). */
|
|
19
|
+
.link-external {
|
|
20
|
+
--link-external-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 7 7 17'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.link-external::after {
|
|
24
|
+
content: "";
|
|
25
|
+
flex: none;
|
|
26
|
+
width: 0.85em;
|
|
27
|
+
height: 0.85em;
|
|
28
|
+
background-color: currentColor;
|
|
29
|
+
-webkit-mask: var(--link-external-arrow) center / contain no-repeat;
|
|
30
|
+
mask: var(--link-external-arrow) center / contain no-repeat;
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/components/menu.css
CHANGED
|
@@ -106,6 +106,12 @@
|
|
|
106
106
|
@apply opacity-50 cursor-not-allowed;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
/* Don't let a constrained menu width squish a leading/trailing icon. */
|
|
110
|
+
.menu-trigger > :is(i, svg),
|
|
111
|
+
.menu-item > :is(i, svg) {
|
|
112
|
+
flex-shrink: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
109
115
|
.menu-separator {
|
|
110
116
|
@apply h-px my-1 bg-border border-0;
|
|
111
117
|
}
|
|
@@ -31,6 +31,12 @@
|
|
|
31
31
|
@apply bg-primary-muted text-primary;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* Keep brand/item icons at their intrinsic size in a crowded bar. */
|
|
35
|
+
.navbar-brand > :is(i, svg),
|
|
36
|
+
.navbar-item > :is(i, svg) {
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
34
40
|
/* Right-aligned slot for actions: shop selector, user menu, etc. */
|
|
35
41
|
.navbar-actions {
|
|
36
42
|
@apply flex items-center gap-2 ml-auto;
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
@apply flex items-center gap-2 text-sm text-text-muted font-medium;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/* Keep the label's leading icon at its intrinsic size. */
|
|
18
|
+
.stat-card-label > :is(i, svg) {
|
|
19
|
+
flex-shrink: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
.stat-card-value {
|
|
18
23
|
@apply text-2xl font-bold tabular-nums leading-tight;
|
|
19
24
|
}
|
package/src/components/tabs.css
CHANGED
|
@@ -30,6 +30,11 @@
|
|
|
30
30
|
@apply text-text;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/* Keep a tab's leading icon at its intrinsic size when the label is long. */
|
|
34
|
+
.tabs .tab > :is(i, svg) {
|
|
35
|
+
flex-shrink: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
33
38
|
/* Vanilla radio-input pattern: hide the inputs visually, treat the following
|
|
34
39
|
<label class="tab"> as the selected tab when the radio is :checked.
|
|
35
40
|
Pairs with `:has(input:checked)` below to show the right panel. */
|
|
@@ -18,6 +18,29 @@
|
|
|
18
18
|
@apply border-danger hover:border-danger focus-visible:outline-danger;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/* Status variants — border + focus outline only; text stays `text-text`, so
|
|
22
|
+
warning's yellow accent (which fails AA as text) is fine here. */
|
|
23
|
+
.textarea-info {
|
|
24
|
+
@apply border-info hover:border-info focus-visible:outline-info;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.textarea-success {
|
|
28
|
+
@apply border-success hover:border-success focus-visible:outline-success;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.textarea-warning {
|
|
32
|
+
@apply border-warning hover:border-warning focus-visible:outline-warning;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Grow with content (Chromium 123+; degrades to a fixed resizable box
|
|
36
|
+
elsewhere). `min-h-*` / the `rows` attribute stays the floor; cap growth
|
|
37
|
+
with a consumer `max-height`. Manual drag-resize is off — height is
|
|
38
|
+
content-driven. */
|
|
39
|
+
.textarea-autosize {
|
|
40
|
+
field-sizing: content;
|
|
41
|
+
resize: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
21
44
|
/* Sizes */
|
|
22
45
|
.textarea-sm {
|
|
23
46
|
@apply text-xs px-2.5 py-1.5 min-h-16;
|