@ni/nimble-components 11.7.1 → 11.8.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/all-components-bundle.js +193 -14
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +1264 -1128
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/all-components.d.ts +1 -0
- package/dist/esm/all-components.js +1 -0
- package/dist/esm/all-components.js.map +1 -1
- package/dist/esm/breadcrumb-item/styles.js +2 -2
- package/dist/esm/breadcrumb-item/styles.js.map +1 -1
- package/dist/esm/card-button/index.d.ts +17 -0
- package/dist/esm/card-button/index.js +40 -0
- package/dist/esm/card-button/index.js.map +1 -0
- package/dist/esm/card-button/styles.d.ts +1 -0
- package/dist/esm/card-button/styles.js +149 -0
- package/dist/esm/card-button/styles.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-components.js","sourceRoot":"","sources":["../../src/all-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,CAAC;AACtB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,UAAU,CAAC;AAClB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC;AACvB,OAAO,QAAQ,CAAC;AAChB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,gBAAgB,CAAC;AACxB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,OAAO,CAAC;AACf,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,WAAW,CAAC;AACnB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"all-components.js","sourceRoot":"","sources":["../../src/all-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,CAAC;AACtB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,UAAU,CAAC;AAClB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC;AACvB,OAAO,QAAQ,CAAC;AAChB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC;AACrB,OAAO,gBAAgB,CAAC;AACxB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,OAAO,CAAC;AACf,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,WAAW,CAAC;AACnB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC"}
|
|
@@ -28,7 +28,7 @@ export const styles = css `
|
|
|
28
28
|
padding-right: calc(4px - ${borderWidth});
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.control:link {
|
|
31
|
+
.control:any-link {
|
|
32
32
|
cursor: pointer;
|
|
33
33
|
text-decoration: none;
|
|
34
34
|
}
|
|
@@ -42,7 +42,7 @@ export const styles = css `
|
|
|
42
42
|
text-decoration: underline;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.control:link${focusVisible} {
|
|
45
|
+
.control:any-link${focusVisible} {
|
|
46
46
|
border: ${borderWidth} solid ${borderHoverColor};
|
|
47
47
|
outline: 2px solid ${borderHoverColor};
|
|
48
48
|
outline-offset: 1px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/breadcrumb-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,oBAAoB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;kBAGV,aAAa;;gBAEf,QAAQ;iBACP,aAAa;mCACK,WAAW;;;;;;;;;;;;;;kBAc5B,WAAW;oCACO,WAAW;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/breadcrumb-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,oBAAoB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;kBAGV,aAAa;;gBAEf,QAAQ;iBACP,aAAa;mCACK,WAAW;;;;;;;;;;;;;;kBAc5B,WAAW;oCACO,WAAW;;;;;;;;;;;;;;;;;uBAiBxB,YAAY;kBACjB,WAAW,UAAU,gBAAgB;6BAC1B,gBAAgB;;;;;;;;;;;;;;;;;;;;iBAoB5B,QAAQ;kBACP,QAAQ;;;;gBAIV,oBAAoB;;CAEnC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Button as FoundationButton } from '@microsoft/fast-foundation';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'nimble-card-button': CardButton;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A nimble-styled card button
|
|
9
|
+
*/
|
|
10
|
+
export declare class CardButton extends FoundationButton {
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
* @remarks
|
|
14
|
+
* HTML Attribute: selected
|
|
15
|
+
*/
|
|
16
|
+
selected: boolean;
|
|
17
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr } from '@microsoft/fast-element';
|
|
3
|
+
import { Button as FoundationButton, buttonTemplate as template, DesignSystem } from '@microsoft/fast-foundation';
|
|
4
|
+
import { styles } from './styles';
|
|
5
|
+
/**
|
|
6
|
+
* A nimble-styled card button
|
|
7
|
+
*/
|
|
8
|
+
export class CardButton extends FoundationButton {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
* @remarks
|
|
14
|
+
* HTML Attribute: selected
|
|
15
|
+
*/
|
|
16
|
+
this.selected = false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
attr({ mode: 'boolean' })
|
|
21
|
+
], CardButton.prototype, "selected", void 0);
|
|
22
|
+
/**
|
|
23
|
+
* A function that returns a nimble-card-button registration for configuring the component with a DesignSystem.
|
|
24
|
+
* Implements {@link @microsoft/fast-foundation#buttonTemplate}
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
* @remarks
|
|
28
|
+
* Generates HTML Element: \<nimble-card-button\>
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
const nimbleCardButton = CardButton.compose({
|
|
32
|
+
baseName: 'card-button',
|
|
33
|
+
template,
|
|
34
|
+
styles,
|
|
35
|
+
shadowOptions: {
|
|
36
|
+
delegatesFocus: true
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/card-button/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,MAAM,IAAI,gBAAgB,EAC1B,cAAc,IAAI,QAAQ,EAC1B,YAAY,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,gBAAgB;IAAhD;;QACI;;;;WAIG;QAEI,aAAQ,GAAG,KAAK,CAAC;IAC5B,CAAC;CAAA;AADG;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;4CACF;AAG5B;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACX,cAAc,EAAE,IAAI;KACvB;CACJ,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("@microsoft/fast-element").ElementStyles;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { css } from '@microsoft/fast-element';
|
|
2
|
+
import { Black, Black15, Black91, White } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';
|
|
3
|
+
import { display } from '@microsoft/fast-foundation';
|
|
4
|
+
import { focusVisible } from '../utilities/style/focus';
|
|
5
|
+
import { borderWidth, smallDelay, buttonLabelFont, buttonLabelFontColor, borderHoverColor } from '../theme-provider/design-tokens';
|
|
6
|
+
import { themeBehavior } from '../utilities/style/theme';
|
|
7
|
+
import { hexToRgbaCssColor } from '../utilities/style/colors';
|
|
8
|
+
// prettier-ignore
|
|
9
|
+
export const styles = css `
|
|
10
|
+
${display('inline-flex')}
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
background-color: transparent;
|
|
14
|
+
color: ${buttonLabelFontColor};
|
|
15
|
+
font: ${buttonLabelFont};
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
outline: none;
|
|
18
|
+
border: none;
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host(:hover) {
|
|
23
|
+
box-shadow: 0px 1px 4px
|
|
24
|
+
var(--ni-private-card-button-box-shadow-hover-color);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:host(:active) {
|
|
28
|
+
box-shadow: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:host([disabled]) {
|
|
32
|
+
cursor: default;
|
|
33
|
+
box-shadow: none;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.control {
|
|
37
|
+
background-color: transparent;
|
|
38
|
+
height: 100%;
|
|
39
|
+
width: 100%;
|
|
40
|
+
border: ${borderWidth} solid transparent;
|
|
41
|
+
color: inherit;
|
|
42
|
+
border-radius: inherit;
|
|
43
|
+
fill: inherit;
|
|
44
|
+
cursor: inherit;
|
|
45
|
+
font: inherit;
|
|
46
|
+
outline: none;
|
|
47
|
+
transition: box-shadow ${smallDelay};
|
|
48
|
+
padding: 0px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.control:hover {
|
|
52
|
+
background: var(--ni-private-card-button-background-hover-color);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.control${focusVisible} {
|
|
56
|
+
box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;
|
|
57
|
+
border-color: ${borderHoverColor};
|
|
58
|
+
outline: ${borderWidth} solid ${borderHoverColor};
|
|
59
|
+
outline-offset: -4px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.control:active {
|
|
63
|
+
background: var(--ni-private-card-button-background-active-color);
|
|
64
|
+
border-color: var(--ni-private-card-button-border-active-color);
|
|
65
|
+
outline: none;
|
|
66
|
+
box-shadow: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:host([selected]) .control {
|
|
70
|
+
background: var(--ni-private-card-button-background-active-color);
|
|
71
|
+
border-color: var(--ni-private-card-button-border-selected-color);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:host([selected]) .control${focusVisible} {
|
|
75
|
+
border-color: ${borderHoverColor};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host([selected]) .control:active {
|
|
79
|
+
border-color: var(--ni-private-card-button-border-active-color);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:host([selected]) .control${focusVisible}:active {
|
|
83
|
+
outline: none;
|
|
84
|
+
box-shadow: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.control[disabled] {
|
|
88
|
+
background: transparent;
|
|
89
|
+
opacity: 0.3;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.control[disabled]:active {
|
|
93
|
+
border-color: transparent;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:host([selected]) .control[disabled]:active {
|
|
97
|
+
border-color: var(--ni-private-card-button-border-selected-color);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.content {
|
|
101
|
+
display: contents;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
slot[name='start'] {
|
|
105
|
+
display: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
slot[name='end'] {
|
|
109
|
+
display: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@media (prefers-reduced-motion) {
|
|
113
|
+
.control {
|
|
114
|
+
transition-duration: 0s;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
`
|
|
118
|
+
.withBehaviors(themeBehavior(
|
|
119
|
+
// Light theme
|
|
120
|
+
css `
|
|
121
|
+
:host {
|
|
122
|
+
--ni-private-card-button-box-shadow-hover-color: ${hexToRgbaCssColor(Black, 0.3)};
|
|
123
|
+
--ni-private-card-button-background-hover-color: ${hexToRgbaCssColor(White, 0.3)};
|
|
124
|
+
--ni-private-card-button-background-active-color: ${White};
|
|
125
|
+
--ni-private-card-button-border-active-color: ${hexToRgbaCssColor(Black91, 0.2)};
|
|
126
|
+
--ni-private-card-button-border-selected-color: ${hexToRgbaCssColor(Black91, 0.6)};
|
|
127
|
+
}
|
|
128
|
+
`,
|
|
129
|
+
// Dark theme
|
|
130
|
+
css `
|
|
131
|
+
:host {
|
|
132
|
+
--ni-private-card-button-box-shadow-hover-color: ${hexToRgbaCssColor(Black, 0.77)};
|
|
133
|
+
--ni-private-card-button-background-hover-color: ${hexToRgbaCssColor(Black15, 0.07)};
|
|
134
|
+
--ni-private-card-button-background-active-color: ${hexToRgbaCssColor(Black15, 0.15)};
|
|
135
|
+
--ni-private-card-button-border-active-color: ${hexToRgbaCssColor(Black15, 0.2)};
|
|
136
|
+
--ni-private-card-button-border-selected-color: ${Black15};
|
|
137
|
+
}
|
|
138
|
+
`,
|
|
139
|
+
// Color theme
|
|
140
|
+
css `
|
|
141
|
+
:host {
|
|
142
|
+
--ni-private-card-button-box-shadow-hover-color: ${hexToRgbaCssColor(White, 0.77)};
|
|
143
|
+
--ni-private-card-button-background-hover-color: ${hexToRgbaCssColor(White, 0.2)};
|
|
144
|
+
--ni-private-card-button-background-active-color: ${hexToRgbaCssColor(White, 0.4)};
|
|
145
|
+
--ni-private-card-button-border-active-color: ${hexToRgbaCssColor(White, 0.2)};
|
|
146
|
+
--ni-private-card-button-border-selected-color: ${hexToRgbaCssColor(White, 0.6)};
|
|
147
|
+
}
|
|
148
|
+
`));
|
|
149
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/card-button/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACH,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACR,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;;iBAIX,oBAAoB;gBACrB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;kBAyBb,WAAW;;;;;;;iCAOI,UAAU;;;;;;;;cAQ7B,YAAY;kCACQ,WAAW,IAAI,gBAAgB;wBACzC,gBAAgB;mBACrB,WAAW,UAAU,gBAAgB;;;;;;;;;;;;;;;;gCAgBxB,YAAY;wBACpB,gBAAgB;;;;;;;gCAOR,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC3C;KACI,aAAa,CACV,aAAa;AACT,cAAc;AACd,GAAG,CAAA;;uEAEwD,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;uEAC7B,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;wEAC5B,KAAK;oEACT,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC;sEAC7B,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC;;aAExF;AACD,aAAa;AACb,GAAG,CAAA;;uEAEwD,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;uEAC9B,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;wEAC/B,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;oEACpC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC;sEAC7B,OAAO;;aAEhE;AACD,cAAc;AACd,GAAG,CAAA;;uEAEwD,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;uEAC9B,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;wEAC5B,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;oEACjC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;sEAC3B,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;;aAEtF,CACJ,CACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ni/nimble-components",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.8.1",
|
|
4
4
|
"description": "Styled web components for the NI Nimble Design System",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npm run generate-icons && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@microsoft/fast-element": "^1.10.1",
|
|
51
51
|
"@microsoft/fast-foundation": "^2.46.11",
|
|
52
52
|
"@microsoft/fast-web-utilities": "^5.4.1",
|
|
53
|
-
"@ni/nimble-tokens": "^4.0.
|
|
53
|
+
"@ni/nimble-tokens": "^4.0.1",
|
|
54
54
|
"hex-rgb": "^5.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|