@dillingerstaffing/strand-vue 0.5.1 → 0.7.0
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/README.md +4 -2
- package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
- package/dist/components/InstrumentViewport/InstrumentViewport.vue.d.ts +27 -0
- package/dist/components/InstrumentViewport/InstrumentViewport.vue.d.ts.map +1 -0
- package/dist/components/InstrumentViewport/index.d.ts +2 -0
- package/dist/components/InstrumentViewport/index.d.ts.map +1 -0
- package/dist/components/ScrollReveal/ScrollReveal.vue.d.ts +34 -0
- package/dist/components/ScrollReveal/ScrollReveal.vue.d.ts.map +1 -0
- package/dist/components/ScrollReveal/index.d.ts +2 -0
- package/dist/components/ScrollReveal/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
- package/dist/components/Toast/ToastProvider.vue.d.ts.map +1 -1
- package/dist/css/strand-ui.css +149 -54
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +510 -433
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Alert/Alert.test.ts +40 -0
- package/src/components/Alert/Alert.vue +10 -0
- package/src/components/InstrumentViewport/InstrumentViewport.test.ts +61 -0
- package/src/components/InstrumentViewport/InstrumentViewport.vue +32 -0
- package/src/components/InstrumentViewport/index.ts +1 -0
- package/src/components/ScrollReveal/ScrollReveal.test.ts +74 -0
- package/src/components/ScrollReveal/ScrollReveal.vue +68 -0
- package/src/components/ScrollReveal/index.ts +1 -0
- package/src/components/Toast/Toast.test.ts +36 -0
- package/src/components/Toast/Toast.vue +10 -0
- package/src/components/Toast/ToastProvider.vue +12 -0
- package/src/index.ts +2 -0
package/README.md
CHANGED
|
@@ -36,13 +36,15 @@ import { Button, Card, Stack, Input } from '@dillingerstaffing/strand-vue'
|
|
|
36
36
|
|
|
37
37
|
## Components
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
34 components across 7 categories. Every component includes all interaction states, keyboard navigation, ARIA compliance, and `prefers-reduced-motion` support.
|
|
40
40
|
|
|
41
41
|
**Input:** Button, Input, Textarea, Select, Checkbox, Radio, Switch, Slider, FormField
|
|
42
|
-
**Display:** Card, Badge, Avatar, Tag, Table, DataReadout
|
|
42
|
+
**Display:** Card, Badge, Avatar, Tag, Table, DataReadout, CodeBlock
|
|
43
43
|
**Layout:** Stack, Grid, Container, Divider, Section
|
|
44
44
|
**Navigation:** Link, Tabs, Breadcrumb, Nav
|
|
45
45
|
**Feedback:** Toast, Alert, Dialog, Tooltip, Progress, Spinner, Skeleton
|
|
46
|
+
**Surface:** InstrumentViewport
|
|
47
|
+
**Animation:** ScrollReveal
|
|
46
48
|
|
|
47
49
|
## Same CSS, Different Framework
|
|
48
50
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.vue"],"names":[],"mappings":"AACA;
|
|
1
|
+
{"version":3,"file":"Alert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.vue"],"names":[],"mappings":"AACA;AAoEA,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IACjD,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA6CD,iBAAS,cAAc;WAwCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAcD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;YA5GV,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO;iBAEnC,OAAO;wFAmHrB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** Show grid overlay lines */
|
|
3
|
+
grid?: boolean;
|
|
4
|
+
/** Additional CSS class */
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
declare function __VLS_template(): {
|
|
8
|
+
attrs: Partial<{}>;
|
|
9
|
+
slots: {
|
|
10
|
+
default?(_: {}): any;
|
|
11
|
+
};
|
|
12
|
+
refs: {};
|
|
13
|
+
rootEl: HTMLDivElement;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
16
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
17
|
+
className: string;
|
|
18
|
+
grid: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
20
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=InstrumentViewport.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstrumentViewport.vue.d.ts","sourceRoot":"","sources":["../../../src/components/InstrumentViewport/InstrumentViewport.vue"],"names":[],"mappings":"AACA;AAoCA,UAAU,KAAK;IACb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAwBD,iBAAS,cAAc;WAwBT,OAAO,IAA6B;;yBAXrB,GAAG;;;;EAgB/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;eAjEP,MAAM;UAFX,OAAO;wFA2Ed,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InstrumentViewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** Intersection threshold (0-1) to trigger reveal */
|
|
3
|
+
threshold?: number;
|
|
4
|
+
/** Only reveal once (do not hide on exit) */
|
|
5
|
+
once?: boolean;
|
|
6
|
+
/** Additional CSS class */
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
declare function __VLS_template(): {
|
|
10
|
+
attrs: Partial<{}>;
|
|
11
|
+
slots: {
|
|
12
|
+
default?(_: {}): any;
|
|
13
|
+
};
|
|
14
|
+
refs: {
|
|
15
|
+
elRef: HTMLDivElement;
|
|
16
|
+
};
|
|
17
|
+
rootEl: HTMLDivElement;
|
|
18
|
+
};
|
|
19
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
20
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
21
|
+
className: string;
|
|
22
|
+
threshold: number;
|
|
23
|
+
once: boolean;
|
|
24
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
25
|
+
elRef: HTMLDivElement;
|
|
26
|
+
}, HTMLDivElement>;
|
|
27
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
28
|
+
export default _default;
|
|
29
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
30
|
+
new (): {
|
|
31
|
+
$slots: S;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=ScrollReveal.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollReveal.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollReveal/ScrollReveal.vue"],"names":[],"mappings":"AACA;AAwEA,UAAU,KAAK;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA2DD,iBAAS,cAAc;WA4BT,OAAO,IAA6B;;yBAZrB,GAAG;;;;;;EAiB/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;eAzGP,MAAM;eAJN,MAAM;UAEX,OAAO;;;kBAoHd,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollReveal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.vue"],"names":[],"mappings":"AACA;
|
|
1
|
+
{"version":3,"file":"Toast.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.vue"],"names":[],"mappings":"AACA;AA6DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAA;CAChB;;;;;;YAHU,WAAW;;AAkGtB,wBASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/ToastProvider.vue"],"names":[],"mappings":"AACA;
|
|
1
|
+
{"version":3,"file":"ToastProvider.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/ToastProvider.vue"],"names":[],"mappings":"AACA;AAkKA,iBAAS,cAAc;WAmDT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
package/dist/css/strand-ui.css
CHANGED
|
@@ -13,34 +13,45 @@
|
|
|
13
13
|
justify-content: space-between;
|
|
14
14
|
width: 100%;
|
|
15
15
|
padding: var(--strand-space-6);
|
|
16
|
-
padding-left: var(--strand-space-5);
|
|
17
16
|
border-radius: var(--strand-radius-md);
|
|
18
|
-
border-left: 4px solid transparent;
|
|
19
17
|
font-family: var(--strand-font-sans);
|
|
20
18
|
font-size: var(--strand-text-sm);
|
|
19
|
+
background: var(--strand-surface-recessed);
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
/* ── Status variants ── */
|
|
22
|
+
/* ── Status variants (neutral background, status color on prefix only) ── */
|
|
24
23
|
.strand-alert--info {
|
|
25
|
-
background: var(--strand-
|
|
26
|
-
border-left-color: var(--strand-blue-primary);
|
|
24
|
+
background: var(--strand-surface-recessed);
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
.strand-alert--success {
|
|
30
|
-
background:
|
|
31
|
-
border-left-color: var(--strand-green-positive);
|
|
28
|
+
background: var(--strand-surface-recessed);
|
|
32
29
|
}
|
|
33
30
|
|
|
34
31
|
.strand-alert--warning {
|
|
35
|
-
background:
|
|
36
|
-
border-left-color: var(--strand-amber-caution);
|
|
32
|
+
background: var(--strand-surface-recessed);
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
.strand-alert--error {
|
|
40
|
-
background:
|
|
41
|
-
border-left-color: var(--strand-red-alert);
|
|
36
|
+
background: var(--strand-surface-recessed);
|
|
42
37
|
}
|
|
43
38
|
|
|
39
|
+
/* ── Status prefix ── */
|
|
40
|
+
.strand-alert__status {
|
|
41
|
+
font-family: var(--strand-font-mono);
|
|
42
|
+
font-size: var(--strand-text-xs);
|
|
43
|
+
font-weight: var(--strand-weight-semibold);
|
|
44
|
+
letter-spacing: var(--strand-tracking-wider);
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
margin-right: var(--strand-space-3);
|
|
47
|
+
flex-shrink: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.strand-alert--info .strand-alert__status { color: var(--strand-blue-primary); }
|
|
51
|
+
.strand-alert--success .strand-alert__status { color: var(--strand-teal-vital); }
|
|
52
|
+
.strand-alert--warning .strand-alert__status { color: var(--strand-amber-caution); }
|
|
53
|
+
.strand-alert--error .strand-alert__status { color: var(--strand-red-alert); }
|
|
54
|
+
|
|
44
55
|
/* ── Content ── */
|
|
45
56
|
.strand-alert__content {
|
|
46
57
|
flex: 1;
|
|
@@ -53,8 +64,8 @@
|
|
|
53
64
|
display: inline-flex;
|
|
54
65
|
align-items: center;
|
|
55
66
|
justify-content: center;
|
|
56
|
-
width:
|
|
57
|
-
height:
|
|
67
|
+
width: var(--strand-space-6);
|
|
68
|
+
height: var(--strand-space-6);
|
|
58
69
|
margin-left: var(--strand-space-4);
|
|
59
70
|
padding: 0;
|
|
60
71
|
border: none;
|
|
@@ -134,8 +145,8 @@
|
|
|
134
145
|
}
|
|
135
146
|
|
|
136
147
|
.strand-avatar--xl {
|
|
137
|
-
width:
|
|
138
|
-
height:
|
|
148
|
+
width: var(--strand-space-16);
|
|
149
|
+
height: var(--strand-space-16);
|
|
139
150
|
font-size: var(--strand-text-lg);
|
|
140
151
|
}
|
|
141
152
|
|
|
@@ -314,13 +325,13 @@
|
|
|
314
325
|
.strand-btn--sm {
|
|
315
326
|
padding: var(--strand-space-1) var(--strand-space-3);
|
|
316
327
|
font-size: var(--strand-text-sm);
|
|
317
|
-
min-height:
|
|
328
|
+
min-height: var(--strand-touch-target);
|
|
318
329
|
}
|
|
319
330
|
|
|
320
331
|
.strand-btn--md {
|
|
321
332
|
padding: calc(var(--strand-space-2) + var(--strand-space-1) / 2) var(--strand-space-5);
|
|
322
333
|
font-size: var(--strand-text-sm);
|
|
323
|
-
min-height:
|
|
334
|
+
min-height: var(--strand-touch-target);
|
|
324
335
|
}
|
|
325
336
|
|
|
326
337
|
.strand-btn--lg {
|
|
@@ -332,12 +343,12 @@
|
|
|
332
343
|
/* ── Icon-only ── */
|
|
333
344
|
.strand-btn--icon-only.strand-btn--sm {
|
|
334
345
|
padding: var(--strand-space-1);
|
|
335
|
-
min-width:
|
|
346
|
+
min-width: var(--strand-touch-target);
|
|
336
347
|
}
|
|
337
348
|
|
|
338
349
|
.strand-btn--icon-only.strand-btn--md {
|
|
339
350
|
padding: var(--strand-space-2);
|
|
340
|
-
min-width:
|
|
351
|
+
min-width: var(--strand-touch-target);
|
|
341
352
|
}
|
|
342
353
|
|
|
343
354
|
.strand-btn--icon-only.strand-btn--lg {
|
|
@@ -555,6 +566,7 @@
|
|
|
555
566
|
display: inline-flex;
|
|
556
567
|
align-items: center;
|
|
557
568
|
gap: var(--strand-space-2);
|
|
569
|
+
min-height: var(--strand-touch-target);
|
|
558
570
|
cursor: pointer;
|
|
559
571
|
user-select: none;
|
|
560
572
|
font-family: var(--strand-font-sans);
|
|
@@ -581,8 +593,8 @@
|
|
|
581
593
|
display: flex;
|
|
582
594
|
align-items: center;
|
|
583
595
|
justify-content: center;
|
|
584
|
-
width:
|
|
585
|
-
height:
|
|
596
|
+
width: var(--strand-control-size);
|
|
597
|
+
height: var(--strand-control-size);
|
|
586
598
|
border: 1px solid var(--strand-gray-200);
|
|
587
599
|
border-radius: var(--strand-radius-sm);
|
|
588
600
|
background: var(--strand-surface-elevated);
|
|
@@ -676,7 +688,7 @@
|
|
|
676
688
|
line-height: var(--strand-leading-relaxed);
|
|
677
689
|
color: var(--strand-blue-midnight);
|
|
678
690
|
background: var(--strand-surface-recessed);
|
|
679
|
-
box-shadow: inset 0 1px 3px rgba(15, 23, 42, 0.06);
|
|
691
|
+
box-shadow: inset 0 1px 3px rgba(15, 23, 42, 0.06); /* strand-blue-abyss at 6% opacity */
|
|
680
692
|
border-radius: var(--strand-radius-lg);
|
|
681
693
|
padding: var(--strand-space-3) var(--strand-space-4);
|
|
682
694
|
overflow-x: auto;
|
|
@@ -919,10 +931,12 @@
|
|
|
919
931
|
|
|
920
932
|
/* ── Label ── */
|
|
921
933
|
.strand-form-field__label {
|
|
922
|
-
font-family: var(--strand-font-
|
|
923
|
-
font-size: var(--strand-text-
|
|
934
|
+
font-family: var(--strand-font-mono);
|
|
935
|
+
font-size: var(--strand-text-xs);
|
|
924
936
|
font-weight: var(--strand-weight-medium);
|
|
925
|
-
|
|
937
|
+
letter-spacing: var(--strand-tracking-widest);
|
|
938
|
+
text-transform: uppercase;
|
|
939
|
+
color: var(--strand-gray-500);
|
|
926
940
|
line-height: var(--strand-leading-snug);
|
|
927
941
|
}
|
|
928
942
|
|
|
@@ -1081,6 +1095,47 @@
|
|
|
1081
1095
|
}
|
|
1082
1096
|
|
|
1083
1097
|
|
|
1098
|
+
/* InstrumentViewport */
|
|
1099
|
+
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1100
|
+
|
|
1101
|
+
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1102
|
+
|
|
1103
|
+
.strand-instrument-viewport {
|
|
1104
|
+
background: var(--strand-blue-abyss);
|
|
1105
|
+
color: var(--strand-gray-100);
|
|
1106
|
+
border-radius: var(--strand-radius-lg);
|
|
1107
|
+
overflow: hidden;
|
|
1108
|
+
position: relative;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
.strand-instrument-viewport__label {
|
|
1112
|
+
color: var(--strand-gray-400);
|
|
1113
|
+
font-family: var(--strand-font-mono);
|
|
1114
|
+
font-size: var(--strand-text-xs);
|
|
1115
|
+
font-weight: var(--strand-weight-medium);
|
|
1116
|
+
letter-spacing: var(--strand-tracking-widest);
|
|
1117
|
+
text-transform: uppercase;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
.strand-instrument-viewport__value {
|
|
1121
|
+
color: var(--strand-on-blue-primary);
|
|
1122
|
+
font-family: var(--strand-font-mono);
|
|
1123
|
+
font-variant-numeric: tabular-nums;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/* Optional grid overlay */
|
|
1127
|
+
.strand-instrument-viewport--grid::before {
|
|
1128
|
+
content: '';
|
|
1129
|
+
position: absolute;
|
|
1130
|
+
inset: 0;
|
|
1131
|
+
background:
|
|
1132
|
+
linear-gradient(rgba(59, 142, 246, 0.04) 1px, transparent 1px),
|
|
1133
|
+
linear-gradient(90deg, rgba(59, 142, 246, 0.04) 1px, transparent 1px);
|
|
1134
|
+
background-size: var(--strand-viewport-grid-size) var(--strand-viewport-grid-size);
|
|
1135
|
+
pointer-events: none;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
|
|
1084
1139
|
/* Link */
|
|
1085
1140
|
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1086
1141
|
|
|
@@ -1125,7 +1180,7 @@
|
|
|
1125
1180
|
.strand-nav {
|
|
1126
1181
|
position: relative;
|
|
1127
1182
|
width: 100%;
|
|
1128
|
-
height:
|
|
1183
|
+
height: var(--strand-nav-height);
|
|
1129
1184
|
background: var(--strand-surface-elevated);
|
|
1130
1185
|
border-bottom: 1px solid var(--strand-gray-200);
|
|
1131
1186
|
font-family: var(--strand-font-sans);
|
|
@@ -1286,7 +1341,7 @@
|
|
|
1286
1341
|
|
|
1287
1342
|
.strand-nav {
|
|
1288
1343
|
height: auto;
|
|
1289
|
-
min-height:
|
|
1344
|
+
min-height: var(--strand-nav-height);
|
|
1290
1345
|
}
|
|
1291
1346
|
}
|
|
1292
1347
|
|
|
@@ -1408,6 +1463,7 @@
|
|
|
1408
1463
|
display: inline-flex;
|
|
1409
1464
|
align-items: center;
|
|
1410
1465
|
gap: var(--strand-space-2);
|
|
1466
|
+
min-height: var(--strand-touch-target);
|
|
1411
1467
|
cursor: pointer;
|
|
1412
1468
|
user-select: none;
|
|
1413
1469
|
font-family: var(--strand-font-sans);
|
|
@@ -1434,8 +1490,8 @@
|
|
|
1434
1490
|
display: flex;
|
|
1435
1491
|
align-items: center;
|
|
1436
1492
|
justify-content: center;
|
|
1437
|
-
width:
|
|
1438
|
-
height:
|
|
1493
|
+
width: var(--strand-control-size);
|
|
1494
|
+
height: var(--strand-control-size);
|
|
1439
1495
|
border: 1px solid var(--strand-gray-200);
|
|
1440
1496
|
border-radius: var(--strand-radius-full);
|
|
1441
1497
|
background: var(--strand-surface-elevated);
|
|
@@ -1501,6 +1557,40 @@
|
|
|
1501
1557
|
}
|
|
1502
1558
|
|
|
1503
1559
|
|
|
1560
|
+
/* ScrollReveal */
|
|
1561
|
+
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1562
|
+
|
|
1563
|
+
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1564
|
+
|
|
1565
|
+
.strand-reveal {
|
|
1566
|
+
opacity: 0;
|
|
1567
|
+
transform: translateY(24px);
|
|
1568
|
+
transition: opacity var(--strand-duration-glacial) var(--strand-ease-out-expo),
|
|
1569
|
+
transform var(--strand-duration-glacial) var(--strand-ease-out-expo);
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.strand-reveal--visible {
|
|
1573
|
+
opacity: 1;
|
|
1574
|
+
transform: translateY(0);
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
/* Stagger children */
|
|
1578
|
+
.strand-reveal-group > .strand-reveal:nth-child(1) { transition-delay: 0ms; }
|
|
1579
|
+
.strand-reveal-group > .strand-reveal:nth-child(2) { transition-delay: var(--strand-stagger-delay); }
|
|
1580
|
+
.strand-reveal-group > .strand-reveal:nth-child(3) { transition-delay: calc(var(--strand-stagger-delay) * 2); }
|
|
1581
|
+
.strand-reveal-group > .strand-reveal:nth-child(4) { transition-delay: calc(var(--strand-stagger-delay) * 3); }
|
|
1582
|
+
.strand-reveal-group > .strand-reveal:nth-child(5) { transition-delay: calc(var(--strand-stagger-delay) * 4); }
|
|
1583
|
+
.strand-reveal-group > .strand-reveal:nth-child(6) { transition-delay: var(--strand-duration-slow); }
|
|
1584
|
+
|
|
1585
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1586
|
+
.strand-reveal {
|
|
1587
|
+
opacity: 1;
|
|
1588
|
+
transform: none;
|
|
1589
|
+
transition: none;
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
|
|
1504
1594
|
/* Section */
|
|
1505
1595
|
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
1506
1596
|
|
|
@@ -1696,14 +1786,15 @@
|
|
|
1696
1786
|
transition: background var(--strand-duration-fast) var(--strand-ease-out-quart);
|
|
1697
1787
|
}
|
|
1698
1788
|
|
|
1699
|
-
/* ── Thumb: Webkit ── */
|
|
1789
|
+
/* ── Thumb: Webkit (44px touch target, 20px visual) ── */
|
|
1700
1790
|
.strand-slider__field::-webkit-slider-thumb {
|
|
1701
1791
|
appearance: none;
|
|
1702
1792
|
width: 20px;
|
|
1703
1793
|
height: 20px;
|
|
1704
1794
|
background: var(--strand-blue-primary);
|
|
1705
|
-
border:
|
|
1795
|
+
border: 12px solid transparent;
|
|
1706
1796
|
border-radius: var(--strand-radius-full);
|
|
1797
|
+
background-clip: padding-box;
|
|
1707
1798
|
cursor: pointer;
|
|
1708
1799
|
box-shadow: var(--strand-elevation-1);
|
|
1709
1800
|
transition:
|
|
@@ -1713,21 +1804,24 @@
|
|
|
1713
1804
|
|
|
1714
1805
|
.strand-slider__field:hover:not(:disabled)::-webkit-slider-thumb {
|
|
1715
1806
|
background: var(--strand-blue-vivid);
|
|
1807
|
+
background-clip: padding-box;
|
|
1716
1808
|
transform: scale(1.15);
|
|
1717
1809
|
}
|
|
1718
1810
|
|
|
1719
1811
|
.strand-slider__field:active:not(:disabled)::-webkit-slider-thumb {
|
|
1720
1812
|
background: var(--strand-blue-deep);
|
|
1813
|
+
background-clip: padding-box;
|
|
1721
1814
|
transform: scale(1.05);
|
|
1722
1815
|
}
|
|
1723
1816
|
|
|
1724
|
-
/* ── Thumb: Firefox ── */
|
|
1817
|
+
/* ── Thumb: Firefox (44px touch target, 20px visual) ── */
|
|
1725
1818
|
.strand-slider__field::-moz-range-thumb {
|
|
1726
1819
|
width: 20px;
|
|
1727
1820
|
height: 20px;
|
|
1728
1821
|
background: var(--strand-blue-primary);
|
|
1729
|
-
border:
|
|
1822
|
+
border: 12px solid transparent;
|
|
1730
1823
|
border-radius: var(--strand-radius-full);
|
|
1824
|
+
background-clip: padding-box;
|
|
1731
1825
|
cursor: pointer;
|
|
1732
1826
|
box-shadow: var(--strand-elevation-1);
|
|
1733
1827
|
transition:
|
|
@@ -1737,11 +1831,13 @@
|
|
|
1737
1831
|
|
|
1738
1832
|
.strand-slider__field:hover:not(:disabled)::-moz-range-thumb {
|
|
1739
1833
|
background: var(--strand-blue-vivid);
|
|
1834
|
+
background-clip: padding-box;
|
|
1740
1835
|
transform: scale(1.15);
|
|
1741
1836
|
}
|
|
1742
1837
|
|
|
1743
1838
|
.strand-slider__field:active:not(:disabled)::-moz-range-thumb {
|
|
1744
1839
|
background: var(--strand-blue-deep);
|
|
1840
|
+
background-clip: padding-box;
|
|
1745
1841
|
transform: scale(1.05);
|
|
1746
1842
|
}
|
|
1747
1843
|
|
|
@@ -1935,6 +2031,7 @@
|
|
|
1935
2031
|
display: inline-flex;
|
|
1936
2032
|
align-items: center;
|
|
1937
2033
|
gap: var(--strand-space-2);
|
|
2034
|
+
min-height: var(--strand-touch-target);
|
|
1938
2035
|
cursor: pointer;
|
|
1939
2036
|
user-select: none;
|
|
1940
2037
|
font-family: var(--strand-font-sans);
|
|
@@ -2121,7 +2218,7 @@
|
|
|
2121
2218
|
.strand-tabs [role="tablist"] {
|
|
2122
2219
|
display: flex;
|
|
2123
2220
|
gap: var(--strand-space-1);
|
|
2124
|
-
border-bottom: 1px solid var(--strand-gray-
|
|
2221
|
+
border-bottom: 1px solid var(--strand-gray-200);
|
|
2125
2222
|
}
|
|
2126
2223
|
|
|
2127
2224
|
/* ── Tab button ── */
|
|
@@ -2195,7 +2292,7 @@
|
|
|
2195
2292
|
}
|
|
2196
2293
|
|
|
2197
2294
|
.strand-tag--solid.strand-tag--teal {
|
|
2198
|
-
background:
|
|
2295
|
+
background: var(--strand-surface-recessed);
|
|
2199
2296
|
color: var(--strand-on-teal-tint);
|
|
2200
2297
|
}
|
|
2201
2298
|
|
|
@@ -2205,12 +2302,12 @@
|
|
|
2205
2302
|
}
|
|
2206
2303
|
|
|
2207
2304
|
.strand-tag--solid.strand-tag--amber {
|
|
2208
|
-
background:
|
|
2305
|
+
background: var(--strand-surface-recessed);
|
|
2209
2306
|
color: var(--strand-on-amber-tint);
|
|
2210
2307
|
}
|
|
2211
2308
|
|
|
2212
2309
|
.strand-tag--solid.strand-tag--red {
|
|
2213
|
-
background:
|
|
2310
|
+
background: var(--strand-surface-recessed);
|
|
2214
2311
|
color: var(--strand-on-red-tint);
|
|
2215
2312
|
}
|
|
2216
2313
|
|
|
@@ -2383,7 +2480,6 @@
|
|
|
2383
2480
|
padding: var(--strand-space-4) var(--strand-space-5);
|
|
2384
2481
|
background: var(--strand-surface-elevated);
|
|
2385
2482
|
border-radius: var(--strand-radius-lg);
|
|
2386
|
-
border-left: 4px solid transparent;
|
|
2387
2483
|
box-shadow: var(--strand-elevation-3);
|
|
2388
2484
|
font-family: var(--strand-font-sans);
|
|
2389
2485
|
font-size: var(--strand-text-sm);
|
|
@@ -2391,22 +2487,21 @@
|
|
|
2391
2487
|
animation: strand-toast-in var(--strand-duration-normal) var(--strand-ease-out-expo);
|
|
2392
2488
|
}
|
|
2393
2489
|
|
|
2394
|
-
/* ── Status
|
|
2395
|
-
.strand-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
.strand-toast--warning {
|
|
2404
|
-
border-left-color: var(--strand-amber-caution);
|
|
2490
|
+
/* ── Status prefix ── */
|
|
2491
|
+
.strand-toast__status {
|
|
2492
|
+
font-family: var(--strand-font-mono);
|
|
2493
|
+
font-size: var(--strand-text-xs);
|
|
2494
|
+
font-weight: var(--strand-weight-semibold);
|
|
2495
|
+
letter-spacing: var(--strand-tracking-wider);
|
|
2496
|
+
text-transform: uppercase;
|
|
2497
|
+
margin-right: var(--strand-space-3);
|
|
2498
|
+
flex-shrink: 0;
|
|
2405
2499
|
}
|
|
2406
2500
|
|
|
2407
|
-
.strand-toast--
|
|
2408
|
-
|
|
2409
|
-
}
|
|
2501
|
+
.strand-toast--info .strand-toast__status { color: var(--strand-blue-primary); }
|
|
2502
|
+
.strand-toast--success .strand-toast__status { color: var(--strand-teal-vital); }
|
|
2503
|
+
.strand-toast--warning .strand-toast__status { color: var(--strand-amber-caution); }
|
|
2504
|
+
.strand-toast--error .strand-toast__status { color: var(--strand-red-alert); }
|
|
2410
2505
|
|
|
2411
2506
|
/* ── Message ── */
|
|
2412
2507
|
.strand-toast__message {
|
|
@@ -2421,8 +2516,8 @@
|
|
|
2421
2516
|
display: inline-flex;
|
|
2422
2517
|
align-items: center;
|
|
2423
2518
|
justify-content: center;
|
|
2424
|
-
width:
|
|
2425
|
-
height:
|
|
2519
|
+
width: var(--strand-space-6);
|
|
2520
|
+
height: var(--strand-space-6);
|
|
2426
2521
|
margin-left: var(--strand-space-3);
|
|
2427
2522
|
padding: 0;
|
|
2428
2523
|
border: none;
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export { default as Grid } from './components/Grid/Grid.vue';
|
|
|
20
20
|
export { default as Container } from './components/Container/Container.vue';
|
|
21
21
|
export { default as Divider } from './components/Divider/Divider.vue';
|
|
22
22
|
export { default as Section } from './components/Section/Section.vue';
|
|
23
|
+
export { default as InstrumentViewport } from './components/InstrumentViewport/InstrumentViewport.vue';
|
|
24
|
+
export { default as ScrollReveal } from './components/ScrollReveal/ScrollReveal.vue';
|
|
23
25
|
export { default as Link } from './components/Link/Link.vue';
|
|
24
26
|
export { default as Tabs } from './components/Tabs/Tabs.vue';
|
|
25
27
|
export { default as Breadcrumb } from './components/Breadcrumb/Breadcrumb.vue';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAGrF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC"}
|