@duskmoon-dev/core 1.19.1 → 1.19.3

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,66 @@
1
+ /**
2
+ * Sidebar Layout Composition Primitive
3
+ * Persistent, responsive sidebar + content grid; application code owns state.
4
+ */
5
+
6
+ @layer components {
7
+ .sidebar-layout {
8
+ --sidebar-layout-width: 17.5rem;
9
+ --sidebar-layout-compact-width: 5rem;
10
+ container-type: inline-size;
11
+ container-name: sidebar-layout;
12
+ display: grid;
13
+ grid-template-columns: auto minmax(0, 1fr);
14
+ grid-template-areas: "sidebar content";
15
+ width: 100%;
16
+ min-width: 0;
17
+ min-height: 0;
18
+ background-color: var(--color-surface);
19
+ color: var(--color-on-surface);
20
+ }
21
+
22
+ .sidebar-layout-sidebar {
23
+ display: none;
24
+ grid-area: sidebar;
25
+ width: var(--sidebar-layout-width);
26
+ min-width: 0;
27
+ overflow: hidden;
28
+ background-color: var(--color-surface-container-low);
29
+ color: var(--color-on-surface);
30
+ border-inline-end: 1px solid var(--color-outline-variant);
31
+ }
32
+
33
+ .sidebar-layout-content {
34
+ grid-area: content;
35
+ min-width: 0;
36
+ }
37
+
38
+ .sidebar-layout-start {
39
+ grid-template-columns: auto minmax(0, 1fr);
40
+ grid-template-areas: "sidebar content";
41
+ }
42
+
43
+ .sidebar-layout-end {
44
+ grid-template-columns: minmax(0, 1fr) auto;
45
+ grid-template-areas: "content sidebar";
46
+ }
47
+
48
+ .sidebar-layout-end > .sidebar-layout-sidebar {
49
+ border-inline-start: 1px solid var(--color-outline-variant);
50
+ border-inline-end: 0;
51
+ }
52
+
53
+ @container sidebar-layout (min-width: 48rem) {
54
+ .sidebar-layout-sidebar {
55
+ display: block;
56
+ }
57
+ }
58
+
59
+ .sidebar-layout-compact > .sidebar-layout-sidebar {
60
+ width: var(--sidebar-layout-compact-width);
61
+ }
62
+
63
+ .sidebar-layout-hidden > .sidebar-layout-sidebar {
64
+ display: none;
65
+ }
66
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Stack Composition Primitive
3
+ * Overlaps arbitrary children in one intrinsic CSS Grid area.
4
+ */
5
+
6
+ @layer components {
7
+ .stack {
8
+ --stack-inline-offset: 0;
9
+ --stack-block-offset: 0.375rem;
10
+ display: inline-grid;
11
+ place-items: stretch;
12
+ isolation: isolate;
13
+ }
14
+
15
+ .stack > * {
16
+ grid-area: 1 / 1;
17
+ position: relative;
18
+ min-width: 0;
19
+ }
20
+
21
+ .stack > :first-child {
22
+ z-index: 3;
23
+ }
24
+
25
+ .stack > :nth-child(2) {
26
+ z-index: 2;
27
+ inset-inline-start: var(--stack-inline-offset);
28
+ inset-block-start: var(--stack-block-offset);
29
+ }
30
+
31
+ .stack > :nth-child(n + 3) {
32
+ z-index: 1;
33
+ inset-inline-start: calc(var(--stack-inline-offset) * 2);
34
+ inset-block-start: calc(var(--stack-block-offset) * 2);
35
+ }
36
+
37
+ .stack-top {
38
+ --stack-inline-offset: 0;
39
+ --stack-block-offset: -0.375rem;
40
+ }
41
+
42
+ .stack-bottom {
43
+ --stack-inline-offset: 0;
44
+ --stack-block-offset: 0.375rem;
45
+ }
46
+
47
+ .stack-start {
48
+ --stack-inline-offset: -0.375rem;
49
+ --stack-block-offset: 0;
50
+ }
51
+
52
+ .stack-end {
53
+ --stack-inline-offset: 0.375rem;
54
+ --stack-block-offset: 0;
55
+ }
56
+ }
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for footer
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,57 @@
1
+ // Auto-generated from footer.css
2
+ export const css = `/**
3
+ * Footer Composition Primitive
4
+ * Responsive, content-neutral groups on an MD3 surface.
5
+ */
6
+
7
+ @layer components {
8
+ .footer {
9
+ display: grid;
10
+ grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
11
+ gap: var(--footer-gap, 2rem);
12
+ width: 100%;
13
+ padding: var(--footer-padding, 2rem);
14
+ background-color: var(--color-surface-container-low);
15
+ color: var(--color-on-surface);
16
+ }
17
+
18
+ .footer > :where(nav, section, div):not(.footer-horizontal):not(.footer-vertical) {
19
+ display: grid;
20
+ align-content: start;
21
+ gap: 0.75rem;
22
+ }
23
+
24
+ .footer-title {
25
+ color: var(--color-on-surface-variant);
26
+ font-size: 0.75rem;
27
+ font-weight: 600;
28
+ line-height: 1rem;
29
+ letter-spacing: 0.08em;
30
+ text-transform: uppercase;
31
+ }
32
+
33
+ .footer-center {
34
+ place-items: center;
35
+ text-align: center;
36
+ }
37
+
38
+ .footer-horizontal {
39
+ grid-template-columns: none;
40
+ grid-auto-flow: column;
41
+ grid-auto-columns: minmax(0, 1fr);
42
+ align-items: start;
43
+ }
44
+
45
+ .footer-vertical {
46
+ grid-template-columns: minmax(0, 1fr);
47
+ grid-auto-flow: row;
48
+ }
49
+ }
50
+ `;
51
+
52
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
53
+ if (sheet) {
54
+ sheet.replaceSync(css);
55
+ }
56
+ export const styles = sheet;
57
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for hero
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,66 @@
1
+ // Auto-generated from hero.css
2
+ export const css = `/**
3
+ * Hero Composition Primitive
4
+ * Layers a content region and an optional presentation-neutral overlay.
5
+ */
6
+
7
+ @layer components {
8
+ .hero {
9
+ display: grid;
10
+ width: 100%;
11
+ min-width: 0;
12
+ place-items: center;
13
+ isolation: isolate;
14
+ }
15
+
16
+ .hero > * {
17
+ grid-area: 1 / 1;
18
+ }
19
+
20
+ .hero-content {
21
+ z-index: 1;
22
+ display: flex;
23
+ width: min(100%, var(--hero-content-max-width, 80rem));
24
+ min-width: 0;
25
+ align-items: center;
26
+ justify-content: center;
27
+ }
28
+
29
+ .hero-overlay {
30
+ z-index: 0;
31
+ align-self: stretch;
32
+ justify-self: stretch;
33
+ pointer-events: none;
34
+ }
35
+
36
+ .hero-center {
37
+ justify-items: center;
38
+ text-align: center;
39
+ }
40
+
41
+ .hero-start {
42
+ justify-items: start;
43
+ text-align: start;
44
+ }
45
+
46
+ .hero-end {
47
+ justify-items: end;
48
+ text-align: end;
49
+ }
50
+
51
+ .hero-start > .hero-content {
52
+ justify-content: flex-start;
53
+ }
54
+
55
+ .hero-end > .hero-content {
56
+ justify-content: flex-end;
57
+ }
58
+ }
59
+ `;
60
+
61
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
62
+ if (sheet) {
63
+ sheet.replaceSync(css);
64
+ }
65
+ export const styles = sheet;
66
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for indicator
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,72 @@
1
+ // Auto-generated from indicator.css
2
+ export const css = `/**
3
+ * Indicator Composition Primitive
4
+ * Positions arbitrary content around an inline-sized anchor.
5
+ */
6
+
7
+ @layer components {
8
+ .indicator {
9
+ position: relative;
10
+ display: inline-grid;
11
+ width: max-content;
12
+ max-width: 100%;
13
+ }
14
+
15
+ .indicator-item {
16
+ --indicator-block: 0%;
17
+ --indicator-inline: 0%;
18
+ --indicator-x: 50%;
19
+ --indicator-y: -50%;
20
+ position: absolute;
21
+ z-index: 1;
22
+ inset-block-start: var(--indicator-block);
23
+ inset-inline-end: var(--indicator-inline);
24
+ translate: var(--indicator-x) var(--indicator-y);
25
+ }
26
+
27
+ .indicator-top {
28
+ --indicator-block: 0%;
29
+ --indicator-y: -50%;
30
+ }
31
+
32
+ .indicator-middle {
33
+ --indicator-block: 50%;
34
+ --indicator-y: -50%;
35
+ }
36
+
37
+ .indicator-bottom {
38
+ --indicator-block: 100%;
39
+ --indicator-y: -50%;
40
+ }
41
+
42
+ .indicator-start {
43
+ --indicator-inline: 100%;
44
+ --indicator-x: 50%;
45
+ }
46
+
47
+ .indicator-center {
48
+ --indicator-inline: 50%;
49
+ --indicator-x: 50%;
50
+ }
51
+
52
+ .indicator-end {
53
+ --indicator-inline: 0%;
54
+ --indicator-x: 50%;
55
+ }
56
+
57
+ :dir(rtl) .indicator-item {
58
+ --indicator-x: -50%;
59
+ }
60
+
61
+ :dir(rtl) .indicator-start {
62
+ --indicator-x: -50%;
63
+ }
64
+ }
65
+ `;
66
+
67
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
68
+ if (sheet) {
69
+ sheet.replaceSync(css);
70
+ }
71
+ export const styles = sheet;
72
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for join
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,79 @@
1
+ // Auto-generated from join.css
2
+ export const css = `/**
3
+ * Join Composition Primitive
4
+ * Visually connects arbitrary adjacent controls.
5
+ */
6
+
7
+ @layer components {
8
+ .join {
9
+ display: inline-flex;
10
+ align-items: stretch;
11
+ flex-direction: row;
12
+ width: max-content;
13
+ max-width: 100%;
14
+ vertical-align: middle;
15
+ }
16
+
17
+ .join > .join-item {
18
+ position: relative;
19
+ flex: 0 1 auto;
20
+ }
21
+
22
+ .join > .join-item:hover,
23
+ .join > .join-item:focus,
24
+ .join > .join-item:focus-within {
25
+ z-index: 1;
26
+ }
27
+
28
+ :is(.join, .join-horizontal) > .join-item:not(:first-child) {
29
+ margin-inline-start: -1px;
30
+ }
31
+
32
+ :is(.join, .join-horizontal) > .join-item:not(:first-child):not(:last-child) {
33
+ border-radius: 0;
34
+ }
35
+
36
+ :is(.join, .join-horizontal) > .join-item:first-child:not(:last-child) {
37
+ border-start-end-radius: 0;
38
+ border-end-end-radius: 0;
39
+ }
40
+
41
+ :is(.join, .join-horizontal) > .join-item:last-child:not(:first-child) {
42
+ border-start-start-radius: 0;
43
+ border-end-start-radius: 0;
44
+ }
45
+
46
+ .join-vertical {
47
+ flex-direction: column;
48
+ }
49
+
50
+ .join-vertical > .join-item {
51
+ margin-inline-start: 0;
52
+ }
53
+
54
+ .join-vertical > .join-item:not(:first-child) {
55
+ margin-block-start: -1px;
56
+ }
57
+
58
+ .join-vertical > .join-item:not(:first-child):not(:last-child) {
59
+ border-radius: 0;
60
+ }
61
+
62
+ .join-vertical > .join-item:first-child:not(:last-child) {
63
+ border-end-start-radius: 0;
64
+ border-end-end-radius: 0;
65
+ }
66
+
67
+ .join-vertical > .join-item:last-child:not(:first-child) {
68
+ border-start-start-radius: 0;
69
+ border-start-end-radius: 0;
70
+ }
71
+ }
72
+ `;
73
+
74
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
75
+ if (sheet) {
76
+ sheet.replaceSync(css);
77
+ }
78
+ export const styles = sheet;
79
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for mask
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,47 @@
1
+ // Auto-generated from mask.css
2
+ export const css = `/**
3
+ * Mask Composition Primitive
4
+ * Small, dependency-free catalog of reusable clipping shapes.
5
+ */
6
+
7
+ @layer components {
8
+ .mask {
9
+ display: inline-block;
10
+ max-width: 100%;
11
+ overflow: hidden;
12
+ vertical-align: middle;
13
+ object-fit: cover;
14
+ }
15
+
16
+ .mask-circle {
17
+ clip-path: circle(50% at 50% 50%);
18
+ }
19
+
20
+ .mask-squircle {
21
+ clip-path: inset(0 round 28%);
22
+ }
23
+
24
+ .mask-square {
25
+ clip-path: inset(0);
26
+ }
27
+
28
+ .mask-diamond {
29
+ clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
30
+ }
31
+
32
+ .mask-hexagon {
33
+ clip-path: polygon(25% 6.7%, 75% 6.7%, 100% 50%, 75% 93.3%, 25% 93.3%, 0 50%);
34
+ }
35
+
36
+ .mask-triangle {
37
+ clip-path: polygon(50% 0, 100% 100%, 0 100%);
38
+ }
39
+ }
40
+ `;
41
+
42
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
43
+ if (sheet) {
44
+ sheet.replaceSync(css);
45
+ }
46
+ export const styles = sheet;
47
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for sidebar-layout
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,75 @@
1
+ // Auto-generated from sidebar-layout.css
2
+ export const css = `/**
3
+ * Sidebar Layout Composition Primitive
4
+ * Persistent, responsive sidebar + content grid; application code owns state.
5
+ */
6
+
7
+ @layer components {
8
+ .sidebar-layout {
9
+ --sidebar-layout-width: 17.5rem;
10
+ --sidebar-layout-compact-width: 5rem;
11
+ container-type: inline-size;
12
+ container-name: sidebar-layout;
13
+ display: grid;
14
+ grid-template-columns: auto minmax(0, 1fr);
15
+ grid-template-areas: "sidebar content";
16
+ width: 100%;
17
+ min-width: 0;
18
+ min-height: 0;
19
+ background-color: var(--color-surface);
20
+ color: var(--color-on-surface);
21
+ }
22
+
23
+ .sidebar-layout-sidebar {
24
+ display: none;
25
+ grid-area: sidebar;
26
+ width: var(--sidebar-layout-width);
27
+ min-width: 0;
28
+ overflow: hidden;
29
+ background-color: var(--color-surface-container-low);
30
+ color: var(--color-on-surface);
31
+ border-inline-end: 1px solid var(--color-outline-variant);
32
+ }
33
+
34
+ .sidebar-layout-content {
35
+ grid-area: content;
36
+ min-width: 0;
37
+ }
38
+
39
+ .sidebar-layout-start {
40
+ grid-template-columns: auto minmax(0, 1fr);
41
+ grid-template-areas: "sidebar content";
42
+ }
43
+
44
+ .sidebar-layout-end {
45
+ grid-template-columns: minmax(0, 1fr) auto;
46
+ grid-template-areas: "content sidebar";
47
+ }
48
+
49
+ .sidebar-layout-end > .sidebar-layout-sidebar {
50
+ border-inline-start: 1px solid var(--color-outline-variant);
51
+ border-inline-end: 0;
52
+ }
53
+
54
+ @container sidebar-layout (min-width: 48rem) {
55
+ .sidebar-layout-sidebar {
56
+ display: block;
57
+ }
58
+ }
59
+
60
+ .sidebar-layout-compact > .sidebar-layout-sidebar {
61
+ width: var(--sidebar-layout-compact-width);
62
+ }
63
+
64
+ .sidebar-layout-hidden > .sidebar-layout-sidebar {
65
+ display: none;
66
+ }
67
+ }
68
+ `;
69
+
70
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
71
+ if (sheet) {
72
+ sheet.replaceSync(css);
73
+ }
74
+ export const styles = sheet;
75
+ export default sheet;
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for stack
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,65 @@
1
+ // Auto-generated from stack.css
2
+ export const css = `/**
3
+ * Stack Composition Primitive
4
+ * Overlaps arbitrary children in one intrinsic CSS Grid area.
5
+ */
6
+
7
+ @layer components {
8
+ .stack {
9
+ --stack-inline-offset: 0;
10
+ --stack-block-offset: 0.375rem;
11
+ display: inline-grid;
12
+ place-items: stretch;
13
+ isolation: isolate;
14
+ }
15
+
16
+ .stack > * {
17
+ grid-area: 1 / 1;
18
+ position: relative;
19
+ min-width: 0;
20
+ }
21
+
22
+ .stack > :first-child {
23
+ z-index: 3;
24
+ }
25
+
26
+ .stack > :nth-child(2) {
27
+ z-index: 2;
28
+ inset-inline-start: var(--stack-inline-offset);
29
+ inset-block-start: var(--stack-block-offset);
30
+ }
31
+
32
+ .stack > :nth-child(n + 3) {
33
+ z-index: 1;
34
+ inset-inline-start: calc(var(--stack-inline-offset) * 2);
35
+ inset-block-start: calc(var(--stack-block-offset) * 2);
36
+ }
37
+
38
+ .stack-top {
39
+ --stack-inline-offset: 0;
40
+ --stack-block-offset: -0.375rem;
41
+ }
42
+
43
+ .stack-bottom {
44
+ --stack-inline-offset: 0;
45
+ --stack-block-offset: 0.375rem;
46
+ }
47
+
48
+ .stack-start {
49
+ --stack-inline-offset: -0.375rem;
50
+ --stack-block-offset: 0;
51
+ }
52
+
53
+ .stack-end {
54
+ --stack-inline-offset: 0.375rem;
55
+ --stack-block-offset: 0;
56
+ }
57
+ }
58
+ `;
59
+
60
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
61
+ if (sheet) {
62
+ sheet.replaceSync(css);
63
+ }
64
+ export const styles = sheet;
65
+ export default sheet;