@12-apps/ui 6.24.1 → 6.24.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.
- package/NATIVE.md +1 -1
- package/dist/_internal/components/data-display/Alert/Alert.js +5 -3
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +1 -1
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
- package/dist/_internal/components/data-display/Banner/Banner.js +7 -2
- package/dist/_internal/components/data-display/Banner/Banner.styles.js +10 -1
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +6 -6
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +1 -1
- package/dist/_internal/components/data-display/index.js +5 -5
- package/dist/_internal/components/index.js +5 -5
- package/dist/{chunk-7L6LAVJ7.js → chunk-4IVDVZZ2.js} +25 -11
- package/dist/chunk-4IVDVZZ2.js.map +1 -0
- package/dist/{chunk-U2YJCNRU.js → chunk-4T7TXRGM.js} +2 -2
- package/dist/{chunk-E27Y7FF2.js → chunk-57Z2ND3N.js} +9 -10
- package/dist/{chunk-E27Y7FF2.js.map → chunk-57Z2ND3N.js.map} +1 -1
- package/dist/{chunk-6RZDDUSM.js → chunk-7GKRZJWI.js} +2 -2
- package/dist/{chunk-2C47DEVU.js → chunk-JD4IVP22.js} +2 -2
- package/dist/{chunk-JQ45NDBS.js → chunk-JPV45AD6.js} +3 -3
- package/dist/{chunk-PRUSQQDT.js → chunk-KM5O4ICK.js} +2 -2
- package/dist/{chunk-2YEZONLX.js → chunk-M4LFDGI6.js} +30 -5
- package/dist/chunk-M4LFDGI6.js.map +1 -0
- package/dist/{chunk-TSYWI3NP.js → chunk-NXNNICH7.js} +2 -2
- package/dist/{chunk-2FDBR77W.js → chunk-O6AZDQJJ.js} +2 -2
- package/dist/chunk-O6AZDQJJ.js.map +1 -0
- package/dist/{chunk-XO753WHD.js → chunk-QX2PLXQA.js} +2 -2
- package/dist/{chunk-OAYX4XN7.js → chunk-SQNW22ZZ.js} +2 -2
- package/dist/{chunk-O3336DJ6.js → chunk-SYJMI2NP.js} +2 -2
- package/dist/{chunk-B2Y3BABA.js → chunk-TXKZEKJN.js} +6 -9
- package/dist/chunk-TXKZEKJN.js.map +1 -0
- package/dist/{chunk-QFVFHIHE.js → chunk-WNMYWQ7D.js} +98 -30
- package/dist/chunk-WNMYWQ7D.js.map +1 -0
- package/dist/data-display/Alert.js +3 -3
- package/dist/data-display/Banner.js +7 -2
- package/dist/data-display/CardKit.js +5 -5
- package/dist/data-display/DataViews.js +11 -11
- package/dist/native/data-display/Alert.js +2 -5
- package/dist/native/data-display/Alert.js.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.d.ts +14 -0
- package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +66 -23
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.styles.d.ts.map +1 -1
- package/dist/types/components/data-display/Banner/Banner.d.ts.map +1 -1
- package/dist/types/components/data-display/Banner/Banner.styles.d.ts +3 -0
- package/dist/types/components/data-display/Banner/Banner.styles.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-view-nav.d.ts +1 -1
- package/dist/types/components/data-display/DataViews/data-views-view-nav.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +66 -23
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/data-display/Alert/Alert.metrics.ts +66 -9
- package/src/components/data-display/Alert/Alert.styles.tsx +4 -5
- package/src/components/data-display/Alert/Alert.tsx +139 -21
- package/src/components/data-display/Alert/NATIVE-NOTES.md +1 -1
- package/src/components/data-display/Banner/Banner.styles.ts +40 -2
- package/src/components/data-display/Banner/Banner.tsx +22 -9
- package/src/components/data-display/DataViews/data-views-view-nav.tsx +3 -3
- package/dist/chunk-2FDBR77W.js.map +0 -1
- package/dist/chunk-2YEZONLX.js.map +0 -1
- package/dist/chunk-7L6LAVJ7.js.map +0 -1
- package/dist/chunk-B2Y3BABA.js.map +0 -1
- package/dist/chunk-QFVFHIHE.js.map +0 -1
- /package/dist/{chunk-U2YJCNRU.js.map → chunk-4T7TXRGM.js.map} +0 -0
- /package/dist/{chunk-6RZDDUSM.js.map → chunk-7GKRZJWI.js.map} +0 -0
- /package/dist/{chunk-2C47DEVU.js.map → chunk-JD4IVP22.js.map} +0 -0
- /package/dist/{chunk-JQ45NDBS.js.map → chunk-JPV45AD6.js.map} +0 -0
- /package/dist/{chunk-PRUSQQDT.js.map → chunk-KM5O4ICK.js.map} +0 -0
- /package/dist/{chunk-TSYWI3NP.js.map → chunk-NXNNICH7.js.map} +0 -0
- /package/dist/{chunk-XO753WHD.js.map → chunk-QX2PLXQA.js.map} +0 -0
- /package/dist/{chunk-OAYX4XN7.js.map → chunk-SQNW22ZZ.js.map} +0 -0
- /package/dist/{chunk-O3336DJ6.js.map → chunk-SYJMI2NP.js.map} +0 -0
|
@@ -73,8 +73,6 @@ export declare const CLOSE_BUTTON: {
|
|
|
73
73
|
readonly padding: 5;
|
|
74
74
|
readonly iconSize: 18;
|
|
75
75
|
readonly opacity: 0.7;
|
|
76
|
-
readonly hoverRotateDeg: 90;
|
|
77
|
-
readonly hoverScale: 1.1;
|
|
78
76
|
readonly washAlpha: 0.1;
|
|
79
77
|
};
|
|
80
78
|
/**
|
|
@@ -97,16 +95,22 @@ export declare const GLASS: {
|
|
|
97
95
|
readonly blur: 20;
|
|
98
96
|
readonly saturatePercent: 180;
|
|
99
97
|
};
|
|
100
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* `gradient`: light→dark at 0.9 along 135°, a 0.2 white shimmer sweeping 1000px every 3s.
|
|
100
|
+
*
|
|
101
|
+
* It carries no hover of its own, and that is load-bearing rather than an
|
|
102
|
+
* omission. `alertVariantStyles` is spread AFTER the root's `'&:hover'` in the
|
|
103
|
+
* same object literal, so a second `'&:hover'` key does not merge with it — it
|
|
104
|
+
* REPLACES it. While this variant had one, `gradient` was the only alert that
|
|
105
|
+
* brightened on hover while every other variant darkened, and the only one to
|
|
106
|
+
* lose the shimmer reveal the root's hover performs.
|
|
107
|
+
*/
|
|
101
108
|
export declare const GRADIENT: {
|
|
102
109
|
readonly angleDeg: 135;
|
|
103
110
|
readonly stopAlpha: 0.9;
|
|
104
111
|
readonly shimmerAlpha: 0.2;
|
|
105
112
|
readonly shimmerMs: 3000;
|
|
106
113
|
readonly shimmerTravel: 1000;
|
|
107
|
-
readonly hoverBrightness: 1.1;
|
|
108
|
-
readonly hoverLift: 2;
|
|
109
|
-
readonly hoverScale: 1.01;
|
|
110
114
|
};
|
|
111
115
|
/** Emphasis: the glow's shadow and brightness, the pulse's wash. */
|
|
112
116
|
export declare const GLOW: {
|
|
@@ -120,28 +124,67 @@ export declare const PULSE: {
|
|
|
120
124
|
readonly ms: 2000;
|
|
121
125
|
readonly spread: 10;
|
|
122
126
|
};
|
|
123
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Pointer states — DOM only, kept so the web derives them.
|
|
129
|
+
*
|
|
130
|
+
* HOVER and ACTIVE carry NO geometry, and that is the point rather than an
|
|
131
|
+
* omission. They used to lift the card 3px, scale it 1.01, grow a 20px shadow
|
|
132
|
+
* and spin the icon 10deg at 1.15 — four things moving at once on a surface
|
|
133
|
+
* that is not a control, which made a page of alerts twitch under the pointer.
|
|
134
|
+
*
|
|
135
|
+
* Both are a TINT now: a flat inset layer over the surface. Two mechanisms
|
|
136
|
+
* came before it and each failed on a case the next had to fix. Dropping the
|
|
137
|
+
* element's `opacity` composites toward the PAGE, so it inverted the hover on
|
|
138
|
+
* a light tint (L* 95.0 idle, 89.1 hovered, 91.1 pressed) and vanished on a
|
|
139
|
+
* dark one. A `filter: brightness()` fixed the direction but is MULTIPLICATIVE,
|
|
140
|
+
* so it moved a near-black `glass` by four counts (ΔE76 1.71, under the JND)
|
|
141
|
+
* and Banner's 10%-alpha wash by ΔE76 0.44. A layer is additive: it reads the
|
|
142
|
+
* same on an opaque tint, a translucent wash and a gradient, and because it
|
|
143
|
+
* paints above the background and below the content the ink keeps its own
|
|
144
|
+
* contrast.
|
|
145
|
+
*/
|
|
124
146
|
export declare const HOVER: {
|
|
125
|
-
readonly
|
|
126
|
-
readonly scale: 1.01;
|
|
127
|
-
readonly shadowY: 8;
|
|
128
|
-
readonly shadowBlur: 20;
|
|
129
|
-
readonly shadowAlpha: 0.2;
|
|
130
|
-
readonly iconScale: 1.15;
|
|
131
|
-
readonly iconRotateDeg: 10;
|
|
147
|
+
readonly tintAlpha: 0.06;
|
|
132
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* The press: a 20% tint LAYER, eased back fast.
|
|
151
|
+
*
|
|
152
|
+
* The layer is the point. The first attempt dropped the whole element's
|
|
153
|
+
* opacity, which composites toward the PAGE and so behaves differently on
|
|
154
|
+
* every surface it is asked about. Measured: over a light page it made a light
|
|
155
|
+
* tint LIGHTER (L* 95.0 idle, 89.1 hovered, 91.1 pressed), so pushing the
|
|
156
|
+
* surface looked like the pointer leaving; over a dark page it landed back on
|
|
157
|
+
* the idle surface (ΔE76 0.82 on `glass`); on `gradient` it washed white body
|
|
158
|
+
* copy to 2.31:1, under AA; and it diluted the ink during a text-selection
|
|
159
|
+
* drag. A `brightness()` step instead of it fixed the direction but not the
|
|
160
|
+
* reach — a multiplier does nothing to a near-black `glass` in dark mode
|
|
161
|
+
* (ΔE76 1.71) and nothing to Banner's 10%-alpha wash (ΔE76 0.44), because it
|
|
162
|
+
* scales only what the element already paints.
|
|
163
|
+
*
|
|
164
|
+
* An inset shadow at 100vmax is a flat tint over the whole surface: ADDITIVE,
|
|
165
|
+
* so it reads the same on an opaque tint, a translucent wash and a gradient;
|
|
166
|
+
* painted above the background and below the content, so the ink keeps its
|
|
167
|
+
* own contrast; and animatable, which `background-image` is not.
|
|
168
|
+
*
|
|
169
|
+
* `ms` is 250 and not the 1000 first asked for, and the reason is that ONE
|
|
170
|
+
* property carries both states. CSS runs a transition from the DESTINATION
|
|
171
|
+
* state's declaration, and entering hover and releasing a press share that
|
|
172
|
+
* destination — so they cannot have different durations without a second
|
|
173
|
+
* animatable property, and both free pseudo-elements are already spent on the
|
|
174
|
+
* `gradient` shimmer and the `pulse` wash. At 1000ms the hover inherited the
|
|
175
|
+
* second: crossing an alert in 300ms peaked at a ≈ 0.024, under the JND, and
|
|
176
|
+
* for ~360ms the alert you had just LEFT was darker than the one under the
|
|
177
|
+
* pointer. A fast press-return is the smaller loss, and it is the call the
|
|
178
|
+
* product owner made when shown both.
|
|
179
|
+
*/
|
|
133
180
|
export declare const ACTIVE: {
|
|
134
|
-
readonly
|
|
135
|
-
readonly
|
|
136
|
-
readonly ms: 100;
|
|
181
|
+
readonly tintAlpha: 0.2;
|
|
182
|
+
readonly ms: 250;
|
|
137
183
|
};
|
|
138
184
|
export declare const FOCUS: {
|
|
139
|
-
readonly ringWidth:
|
|
140
|
-
readonly ringAlpha:
|
|
141
|
-
readonly offset:
|
|
142
|
-
readonly haloSpread: 6;
|
|
143
|
-
readonly haloAlpha: 0.1;
|
|
144
|
-
readonly ms: 200;
|
|
185
|
+
readonly ringWidth: 2;
|
|
186
|
+
readonly ringAlpha: 1;
|
|
187
|
+
readonly offset: 2;
|
|
145
188
|
};
|
|
146
189
|
/** `neutral` has no palette slot; the web has always drawn it from three greys. */
|
|
147
190
|
export declare const NEUTRAL_GREY: Record<'main' | 'light' | 'dark', UiGreyStep>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEpF;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,mBAAmB;;;CAA6C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,YAAY,iCAAiC,CAAC;AAE3D,4EAA4E;AAC5E,eAAO,MAAM,OAAO;;;;CAA8C,CAAC;AACnE,eAAO,MAAM,SAAS;;;;CAA4C,CAAC;AACnE,oEAAoE;AACpE,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,2FAA2F;AAC3F,eAAO,MAAM,cAAc;;;CAAsD,CAAC;AAElF,2GAA2G;AAC3G,eAAO,MAAM,KAAK;;;;;CAAsF,CAAC;AACzG,iDAAiD;AACjD,eAAO,MAAM,WAAW;;;CAA4C,CAAC;AAErE,qGAAqG;AACrG,eAAO,MAAM,SAAS;;;;;;CAAuG,CAAC;AAC9H,oGAAoG;AACpG,eAAO,MAAM,WAAW;;;;CAAmE,CAAC;AAC5F,mFAAmF;AACnF,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"Alert.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.styles.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAKL,KAAK,YAAY,EAgBlB,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;;UAa1B,CAAC;AAiCF,eAAO,MAAM,gBAAgB;;;;;UAO5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;UASvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;UAUtB,CAAC;AAIF,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,KAAG,YAgBjE,CAAC;AAUF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,SAGtD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,KAAK,EACZ,cAAc,YAAY,EAC1B,SAAS,OAAO,GAAG,SAAS,KAC3B,SA+DD,CAAC;AA2DH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,eAAe,MAAM,GAAG,SAAS,EACjC,cAAc,YAAY,KACzB,
|
|
1
|
+
{"version":3,"file":"Alert.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.styles.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAKL,KAAK,YAAY,EAgBlB,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;;UAa1B,CAAC;AAiCF,eAAO,MAAM,gBAAgB;;;;;UAO5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;UASvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;UAUtB,CAAC;AAIF,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,KAAG,YAgBjE,CAAC;AAUF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,SAGtD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,KAAK,EACZ,cAAc,YAAY,EAC1B,SAAS,OAAO,GAAG,SAAS,KAC3B,SA+DD,CAAC;AA2DH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,eAAe,MAAM,GAAG,SAAS,EACjC,cAAc,YAAY,KACzB,SAgDD,CAAC;AA+BH,eAAO,MAAM,mBAAmB,GAC9B,cAAc,YAAY,EAC1B,MAAM,OAAO,EACb,OAAO,OAAO,KACb,SAiBD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Banner/Banner.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Banner/Banner.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AA6OjE,eAAO,MAAM,MAAM,oFAqElB,CAAC"}
|
|
@@ -8,4 +8,7 @@ export declare const fadeInSlide: {
|
|
|
8
8
|
} & string;
|
|
9
9
|
export declare const getVariantColor: (theme: Theme, variant: BannerVariant) => PaletteColor;
|
|
10
10
|
export declare const bannerPartStyles: (theme: Theme, colorPalette: PaletteColor) => CSSObject;
|
|
11
|
+
export declare const bannerPointerStates: (theme: Theme) => CSSObject;
|
|
12
|
+
/** The seconds the tint takes easing back, shared with `Alert`. */
|
|
13
|
+
export declare const BANNER_TINT_S: number;
|
|
11
14
|
//# sourceMappingURL=Banner.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Banner/Banner.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Banner.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Banner/Banner.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,eAAO,MAAM,WAAW;;;;;UASvB,CAAC;AAiBF,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,EAAE,SAAS,aAAa,iBAQnE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,cAAc,YAAY,KAAG,SA+E1E,CAAC;AAkBH,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,KAAG,SAcjD,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAAmB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { SavedViewSummary } from "./data-views-types";
|
|
|
4
4
|
export interface ViewNavHandlers {
|
|
5
5
|
views: SavedViewSummary[];
|
|
6
6
|
activeViewId?: string | null;
|
|
7
|
-
/** `null` selects the built-in
|
|
7
|
+
/** `null` selects the built-in view named by `copy.nav.mainView`. */
|
|
8
8
|
onSelectView: (id: string | null) => void;
|
|
9
9
|
onEditView: (view: SavedViewSummary) => void;
|
|
10
10
|
onPatchView: (view: SavedViewSummary, changes: Partial<Pick<SavedViewSummary, "isDefault" | "pinned" | "shared">>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-view-nav.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-view-nav.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,
|
|
1
|
+
{"version":3,"file":"data-views-view-nav.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-view-nav.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qEAAqE;IACrE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CACX,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,KACxE,IAAI,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChD;AAoBD,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmEpB;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,GACb,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoDpB;AAkFD,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAYpB;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,MAAM,EACN,YAAY,GACb,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+DpB"}
|
|
@@ -73,8 +73,6 @@ export declare const CLOSE_BUTTON: {
|
|
|
73
73
|
readonly padding: 5;
|
|
74
74
|
readonly iconSize: 18;
|
|
75
75
|
readonly opacity: 0.7;
|
|
76
|
-
readonly hoverRotateDeg: 90;
|
|
77
|
-
readonly hoverScale: 1.1;
|
|
78
76
|
readonly washAlpha: 0.1;
|
|
79
77
|
};
|
|
80
78
|
/**
|
|
@@ -97,16 +95,22 @@ export declare const GLASS: {
|
|
|
97
95
|
readonly blur: 20;
|
|
98
96
|
readonly saturatePercent: 180;
|
|
99
97
|
};
|
|
100
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* `gradient`: light→dark at 0.9 along 135°, a 0.2 white shimmer sweeping 1000px every 3s.
|
|
100
|
+
*
|
|
101
|
+
* It carries no hover of its own, and that is load-bearing rather than an
|
|
102
|
+
* omission. `alertVariantStyles` is spread AFTER the root's `'&:hover'` in the
|
|
103
|
+
* same object literal, so a second `'&:hover'` key does not merge with it — it
|
|
104
|
+
* REPLACES it. While this variant had one, `gradient` was the only alert that
|
|
105
|
+
* brightened on hover while every other variant darkened, and the only one to
|
|
106
|
+
* lose the shimmer reveal the root's hover performs.
|
|
107
|
+
*/
|
|
101
108
|
export declare const GRADIENT: {
|
|
102
109
|
readonly angleDeg: 135;
|
|
103
110
|
readonly stopAlpha: 0.9;
|
|
104
111
|
readonly shimmerAlpha: 0.2;
|
|
105
112
|
readonly shimmerMs: 3000;
|
|
106
113
|
readonly shimmerTravel: 1000;
|
|
107
|
-
readonly hoverBrightness: 1.1;
|
|
108
|
-
readonly hoverLift: 2;
|
|
109
|
-
readonly hoverScale: 1.01;
|
|
110
114
|
};
|
|
111
115
|
/** Emphasis: the glow's shadow and brightness, the pulse's wash. */
|
|
112
116
|
export declare const GLOW: {
|
|
@@ -120,28 +124,67 @@ export declare const PULSE: {
|
|
|
120
124
|
readonly ms: 2000;
|
|
121
125
|
readonly spread: 10;
|
|
122
126
|
};
|
|
123
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Pointer states — DOM only, kept so the web derives them.
|
|
129
|
+
*
|
|
130
|
+
* HOVER and ACTIVE carry NO geometry, and that is the point rather than an
|
|
131
|
+
* omission. They used to lift the card 3px, scale it 1.01, grow a 20px shadow
|
|
132
|
+
* and spin the icon 10deg at 1.15 — four things moving at once on a surface
|
|
133
|
+
* that is not a control, which made a page of alerts twitch under the pointer.
|
|
134
|
+
*
|
|
135
|
+
* Both are a TINT now: a flat inset layer over the surface. Two mechanisms
|
|
136
|
+
* came before it and each failed on a case the next had to fix. Dropping the
|
|
137
|
+
* element's `opacity` composites toward the PAGE, so it inverted the hover on
|
|
138
|
+
* a light tint (L* 95.0 idle, 89.1 hovered, 91.1 pressed) and vanished on a
|
|
139
|
+
* dark one. A `filter: brightness()` fixed the direction but is MULTIPLICATIVE,
|
|
140
|
+
* so it moved a near-black `glass` by four counts (ΔE76 1.71, under the JND)
|
|
141
|
+
* and Banner's 10%-alpha wash by ΔE76 0.44. A layer is additive: it reads the
|
|
142
|
+
* same on an opaque tint, a translucent wash and a gradient, and because it
|
|
143
|
+
* paints above the background and below the content the ink keeps its own
|
|
144
|
+
* contrast.
|
|
145
|
+
*/
|
|
124
146
|
export declare const HOVER: {
|
|
125
|
-
readonly
|
|
126
|
-
readonly scale: 1.01;
|
|
127
|
-
readonly shadowY: 8;
|
|
128
|
-
readonly shadowBlur: 20;
|
|
129
|
-
readonly shadowAlpha: 0.2;
|
|
130
|
-
readonly iconScale: 1.15;
|
|
131
|
-
readonly iconRotateDeg: 10;
|
|
147
|
+
readonly tintAlpha: 0.06;
|
|
132
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* The press: a 20% tint LAYER, eased back fast.
|
|
151
|
+
*
|
|
152
|
+
* The layer is the point. The first attempt dropped the whole element's
|
|
153
|
+
* opacity, which composites toward the PAGE and so behaves differently on
|
|
154
|
+
* every surface it is asked about. Measured: over a light page it made a light
|
|
155
|
+
* tint LIGHTER (L* 95.0 idle, 89.1 hovered, 91.1 pressed), so pushing the
|
|
156
|
+
* surface looked like the pointer leaving; over a dark page it landed back on
|
|
157
|
+
* the idle surface (ΔE76 0.82 on `glass`); on `gradient` it washed white body
|
|
158
|
+
* copy to 2.31:1, under AA; and it diluted the ink during a text-selection
|
|
159
|
+
* drag. A `brightness()` step instead of it fixed the direction but not the
|
|
160
|
+
* reach — a multiplier does nothing to a near-black `glass` in dark mode
|
|
161
|
+
* (ΔE76 1.71) and nothing to Banner's 10%-alpha wash (ΔE76 0.44), because it
|
|
162
|
+
* scales only what the element already paints.
|
|
163
|
+
*
|
|
164
|
+
* An inset shadow at 100vmax is a flat tint over the whole surface: ADDITIVE,
|
|
165
|
+
* so it reads the same on an opaque tint, a translucent wash and a gradient;
|
|
166
|
+
* painted above the background and below the content, so the ink keeps its
|
|
167
|
+
* own contrast; and animatable, which `background-image` is not.
|
|
168
|
+
*
|
|
169
|
+
* `ms` is 250 and not the 1000 first asked for, and the reason is that ONE
|
|
170
|
+
* property carries both states. CSS runs a transition from the DESTINATION
|
|
171
|
+
* state's declaration, and entering hover and releasing a press share that
|
|
172
|
+
* destination — so they cannot have different durations without a second
|
|
173
|
+
* animatable property, and both free pseudo-elements are already spent on the
|
|
174
|
+
* `gradient` shimmer and the `pulse` wash. At 1000ms the hover inherited the
|
|
175
|
+
* second: crossing an alert in 300ms peaked at a ≈ 0.024, under the JND, and
|
|
176
|
+
* for ~360ms the alert you had just LEFT was darker than the one under the
|
|
177
|
+
* pointer. A fast press-return is the smaller loss, and it is the call the
|
|
178
|
+
* product owner made when shown both.
|
|
179
|
+
*/
|
|
133
180
|
export declare const ACTIVE: {
|
|
134
|
-
readonly
|
|
135
|
-
readonly
|
|
136
|
-
readonly ms: 100;
|
|
181
|
+
readonly tintAlpha: 0.2;
|
|
182
|
+
readonly ms: 250;
|
|
137
183
|
};
|
|
138
184
|
export declare const FOCUS: {
|
|
139
|
-
readonly ringWidth:
|
|
140
|
-
readonly ringAlpha:
|
|
141
|
-
readonly offset:
|
|
142
|
-
readonly haloSpread: 6;
|
|
143
|
-
readonly haloAlpha: 0.1;
|
|
144
|
-
readonly ms: 200;
|
|
185
|
+
readonly ringWidth: 2;
|
|
186
|
+
readonly ringAlpha: 1;
|
|
187
|
+
readonly offset: 2;
|
|
145
188
|
};
|
|
146
189
|
/** `neutral` has no palette slot; the web has always drawn it from three greys. */
|
|
147
190
|
export declare const NEUTRAL_GREY: Record<'main' | 'light' | 'dark', UiGreyStep>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEpF;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,mBAAmB;;;CAA6C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,YAAY,iCAAiC,CAAC;AAE3D,4EAA4E;AAC5E,eAAO,MAAM,OAAO;;;;CAA8C,CAAC;AACnE,eAAO,MAAM,SAAS;;;;CAA4C,CAAC;AACnE,oEAAoE;AACpE,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,2FAA2F;AAC3F,eAAO,MAAM,cAAc;;;CAAsD,CAAC;AAElF,2GAA2G;AAC3G,eAAO,MAAM,KAAK;;;;;CAAsF,CAAC;AACzG,iDAAiD;AACjD,eAAO,MAAM,WAAW;;;CAA4C,CAAC;AAErE,qGAAqG;AACrG,eAAO,MAAM,SAAS;;;;;;CAAuG,CAAC;AAC9H,oGAAoG;AACpG,eAAO,MAAM,WAAW;;;;CAAmE,CAAC;AAC5F,mFAAmF;AACnF,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"Alert.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Alert/Alert.metrics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@ export const ICON_SLOT = { size: 22, opacity: 0.9, marginRightUnits: 1.75, paddi
|
|
|
44
44
|
/** The action slot: MUI's `4px 0 0 16px` with the 16px ours, pushed right, 8px into the padding. */
|
|
45
45
|
export const ACTION_SLOT = { paddingLeftUnits: 2, paddingTop: 4, marginRight: -8 } as const;
|
|
46
46
|
/** The close button: MUI's small `IconButton` (5px padding, 18px glyph) at 0.7. */
|
|
47
|
-
export const CLOSE_BUTTON = { padding: 5, iconSize: 18, opacity: 0.7,
|
|
47
|
+
export const CLOSE_BUTTON = { padding: 5, iconSize: 18, opacity: 0.7, washAlpha: 0.1 } as const;
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* A semantic Alert's surface and ink: an OPAQUE tint of the hue with a dark
|
|
@@ -54,26 +54,83 @@ export const CLOSE_BUTTON = { padding: 5, iconSize: 18, opacity: 0.7, hoverRotat
|
|
|
54
54
|
export const SEMANTIC_SURFACE = { tint: { light: 0.9, dark: 0.8 }, ink: 0.6, borderAlpha: 0.35 } as const;
|
|
55
55
|
/** `glass`: 85% paper under a 20px blur, a 0.4 divider hairline. */
|
|
56
56
|
export const GLASS = { backgroundAlpha: 0.85, borderAlpha: 0.4, blur: 20, saturatePercent: 180 } as const;
|
|
57
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* `gradient`: light→dark at 0.9 along 135°, a 0.2 white shimmer sweeping 1000px every 3s.
|
|
59
|
+
*
|
|
60
|
+
* It carries no hover of its own, and that is load-bearing rather than an
|
|
61
|
+
* omission. `alertVariantStyles` is spread AFTER the root's `'&:hover'` in the
|
|
62
|
+
* same object literal, so a second `'&:hover'` key does not merge with it — it
|
|
63
|
+
* REPLACES it. While this variant had one, `gradient` was the only alert that
|
|
64
|
+
* brightened on hover while every other variant darkened, and the only one to
|
|
65
|
+
* lose the shimmer reveal the root's hover performs.
|
|
66
|
+
*/
|
|
58
67
|
export const GRADIENT = {
|
|
59
68
|
angleDeg: 135,
|
|
60
69
|
stopAlpha: 0.9,
|
|
61
70
|
shimmerAlpha: 0.2,
|
|
62
71
|
shimmerMs: 3000,
|
|
63
72
|
shimmerTravel: 1000,
|
|
64
|
-
hoverBrightness: 1.1,
|
|
65
|
-
hoverLift: 2,
|
|
66
|
-
hoverScale: 1.01,
|
|
67
73
|
} as const;
|
|
68
74
|
|
|
69
75
|
/** Emphasis: the glow's shadow and brightness, the pulse's wash. */
|
|
70
76
|
export const GLOW = { blur: 20, spread: 5, alpha: 0.3, brightness: 1.05 } as const;
|
|
71
77
|
export const PULSE = { alpha: 0.2, ms: 2000, spread: 10 } as const;
|
|
72
78
|
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Pointer states — DOM only, kept so the web derives them.
|
|
81
|
+
*
|
|
82
|
+
* HOVER and ACTIVE carry NO geometry, and that is the point rather than an
|
|
83
|
+
* omission. They used to lift the card 3px, scale it 1.01, grow a 20px shadow
|
|
84
|
+
* and spin the icon 10deg at 1.15 — four things moving at once on a surface
|
|
85
|
+
* that is not a control, which made a page of alerts twitch under the pointer.
|
|
86
|
+
*
|
|
87
|
+
* Both are a TINT now: a flat inset layer over the surface. Two mechanisms
|
|
88
|
+
* came before it and each failed on a case the next had to fix. Dropping the
|
|
89
|
+
* element's `opacity` composites toward the PAGE, so it inverted the hover on
|
|
90
|
+
* a light tint (L* 95.0 idle, 89.1 hovered, 91.1 pressed) and vanished on a
|
|
91
|
+
* dark one. A `filter: brightness()` fixed the direction but is MULTIPLICATIVE,
|
|
92
|
+
* so it moved a near-black `glass` by four counts (ΔE76 1.71, under the JND)
|
|
93
|
+
* and Banner's 10%-alpha wash by ΔE76 0.44. A layer is additive: it reads the
|
|
94
|
+
* same on an opaque tint, a translucent wash and a gradient, and because it
|
|
95
|
+
* paints above the background and below the content the ink keeps its own
|
|
96
|
+
* contrast.
|
|
97
|
+
*/
|
|
98
|
+
export const HOVER = { tintAlpha: 0.06 } as const;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The press: a 20% tint LAYER, eased back fast.
|
|
102
|
+
*
|
|
103
|
+
* The layer is the point. The first attempt dropped the whole element's
|
|
104
|
+
* opacity, which composites toward the PAGE and so behaves differently on
|
|
105
|
+
* every surface it is asked about. Measured: over a light page it made a light
|
|
106
|
+
* tint LIGHTER (L* 95.0 idle, 89.1 hovered, 91.1 pressed), so pushing the
|
|
107
|
+
* surface looked like the pointer leaving; over a dark page it landed back on
|
|
108
|
+
* the idle surface (ΔE76 0.82 on `glass`); on `gradient` it washed white body
|
|
109
|
+
* copy to 2.31:1, under AA; and it diluted the ink during a text-selection
|
|
110
|
+
* drag. A `brightness()` step instead of it fixed the direction but not the
|
|
111
|
+
* reach — a multiplier does nothing to a near-black `glass` in dark mode
|
|
112
|
+
* (ΔE76 1.71) and nothing to Banner's 10%-alpha wash (ΔE76 0.44), because it
|
|
113
|
+
* scales only what the element already paints.
|
|
114
|
+
*
|
|
115
|
+
* An inset shadow at 100vmax is a flat tint over the whole surface: ADDITIVE,
|
|
116
|
+
* so it reads the same on an opaque tint, a translucent wash and a gradient;
|
|
117
|
+
* painted above the background and below the content, so the ink keeps its
|
|
118
|
+
* own contrast; and animatable, which `background-image` is not.
|
|
119
|
+
*
|
|
120
|
+
* `ms` is 250 and not the 1000 first asked for, and the reason is that ONE
|
|
121
|
+
* property carries both states. CSS runs a transition from the DESTINATION
|
|
122
|
+
* state's declaration, and entering hover and releasing a press share that
|
|
123
|
+
* destination — so they cannot have different durations without a second
|
|
124
|
+
* animatable property, and both free pseudo-elements are already spent on the
|
|
125
|
+
* `gradient` shimmer and the `pulse` wash. At 1000ms the hover inherited the
|
|
126
|
+
* second: crossing an alert in 300ms peaked at a ≈ 0.024, under the JND, and
|
|
127
|
+
* for ~360ms the alert you had just LEFT was darker than the one under the
|
|
128
|
+
* pointer. A fast press-return is the smaller loss, and it is the call the
|
|
129
|
+
* product owner made when shown both.
|
|
130
|
+
*/
|
|
131
|
+
export const ACTIVE = { tintAlpha: 0.2, ms: 250 } as const;
|
|
132
|
+
|
|
133
|
+
export const FOCUS = { ringWidth: 2, ringAlpha: 1, offset: 2 } as const;
|
|
77
134
|
|
|
78
135
|
/** `neutral` has no palette slot; the web has always drawn it from three greys. */
|
|
79
136
|
export const NEUTRAL_GREY: Record<'main' | 'light' | 'dark', UiGreyStep> = { main: 500, light: 300, dark: 700 };
|
|
@@ -333,16 +333,15 @@ export const alertVariantStyles = (
|
|
|
333
333
|
background: `linear-gradient(90deg, transparent, ${alpha(theme.palette.common.white, GRADIENT.shimmerAlpha)}, transparent)`,
|
|
334
334
|
animation: `${shimmerAnimation} ${seconds(GRADIENT.shimmerMs)} infinite`,
|
|
335
335
|
},
|
|
336
|
-
'&:hover': {
|
|
337
|
-
filter: `brightness(${GRADIENT.hoverBrightness})`,
|
|
338
|
-
transform: `translateY(-${GRADIENT.hoverLift}px) scale(${GRADIENT.hoverScale})`,
|
|
339
|
-
},
|
|
340
336
|
}),
|
|
341
337
|
});
|
|
342
338
|
|
|
343
339
|
/** The web's glow: a soft shadow of the hue and a touch of brightness. */
|
|
344
340
|
const glowStyles = (colorPalette: AlertPalette): CSSObject => ({
|
|
345
|
-
|
|
341
|
+
// No `!important`: the pointer states paint their tint as an INSET shadow on
|
|
342
|
+
// the same property, and compose this one alongside it rather than fighting
|
|
343
|
+
// it. `glowShadow` in `Alert.tsx` is the other half of that pair.
|
|
344
|
+
boxShadow: `0 0 ${GLOW.blur}px ${GLOW.spread}px ${alpha(colorPalette.main, GLOW.alpha)}`,
|
|
346
345
|
filter: `brightness(${GLOW.brightness})`,
|
|
347
346
|
});
|
|
348
347
|
|