@neo-ui-kit/react 1.3.17 → 1.4.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 +22 -1
- package/dist/chunks/{chunk-TMCWA446.js → chunk-KAVSRD45.js} +83 -6
- package/dist/components/controls/Slider/styles.css +2 -0
- package/dist/components/controls/shared.css +24 -0
- package/dist/components/feedback/Badge/styles.css +2 -0
- package/dist/components/foundation/Loader/Loader.d.ts +1 -1
- package/dist/components/foundation/LoaderGenerator/LoaderGenerator.d.ts +1 -0
- package/dist/components/layout/Avatar/styles.css +3 -0
- package/dist/components/layout/Card/Card.d.ts +1 -1
- package/dist/components/layout/Card/styles.css +3 -0
- package/dist/components/layout/Grid/styles.css +12 -12
- package/dist/components/layout/Stack/styles.css +9 -9
- package/dist/components/layout/shared.d.ts +1 -1
- package/dist/components/media/RotaryKnob/styles.css +7 -0
- package/dist/core/base.d.ts +1 -1
- package/dist/core/responsive.d.ts +1 -1
- package/dist/forms.js +1 -1
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,7 +65,7 @@ import "@neo-ui-kit/react/styles.css";
|
|
|
65
65
|
To test repository changes before publishing, run `npm run package` from the repository root and install the resulting archive in a separate application:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
npm install /path/to/adui/release/neo-ui-kit-react-1.
|
|
68
|
+
npm install /path/to/adui/release/neo-ui-kit-react-1.4.0.tgz
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Maintainers publish new versions from `Pro100Dimka/adui` using the `release.yml` GitHub Actions workflow, a matching `v<version>` tag, and the `npm-publication` environment. npm trusts its OIDC identity; no `NPM_TOKEN` is required. The workflow checks the project and packed consumer before publishing the tested archive. Published `1.0.0` cannot be overwritten: code and README changes in npm require a new package version. See the [repository release instructions](https://github.com/Pro100Dimka/adui#npm-пакет).
|
|
@@ -404,3 +404,24 @@ const [transport, setTransport] = useState<QuantumBackgroundTransport>();
|
|
|
404
404
|
```
|
|
405
405
|
|
|
406
406
|
The documentation page builds exactly such a panel (song, player, microphone, snapshot, fullscreen, field and sensitivity, plus a closed “Тонкая настройка” section) outside the component. `QuantumFieldExperience`, `QuantumFieldExperienceProps` and `quantumFieldExperienceControls` remain compatible aliases; note that `QuantumFieldExperience` no longer renders its own control panel. The separate lightweight `QuantumField` primitive documented above keeps its original props and rendering; it is not an alias of the full background.
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
### Viewport sizes
|
|
410
|
+
|
|
411
|
+
Responsive Grid, Stack and FormFields layout uses the available window width in CSS pixels:
|
|
412
|
+
|
|
413
|
+
| Name | Window width |
|
|
414
|
+
| --- | --- |
|
|
415
|
+
| xs | Below 768 px |
|
|
416
|
+
| sm | 768 to 1023 px |
|
|
417
|
+
| md | 1024 to 1919 px |
|
|
418
|
+
| lg | 1920 to 2559 px |
|
|
419
|
+
| xlg | 2560 px and above |
|
|
420
|
+
|
|
421
|
+
Values carry forward until the next specified breakpoint. `base` remains an alias for `xs`, and `xl` for `xlg`; explicit canonical keys take priority. Nested layouts resolve their own values independently.
|
|
422
|
+
|
|
423
|
+
```tsx
|
|
424
|
+
<Grid columns={{ xs: 1, sm: 2, md: 3, lg: 4, xlg: 5 }} gap={3} />
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
Control `size` selects physical geometry (`xs`, `sm`, `md`, `lg`, `xlg`); it does not limit a component to a particular screen. Explicit compact controls remain compact on large displays. Numeric and CSS-length dimensions remain supported by Icon and Loader. Card padding also includes `xs` and `xlg`.
|
|
@@ -69,7 +69,7 @@ var illustrations = illustrations_default;
|
|
|
69
69
|
|
|
70
70
|
// src/components/layout/Icon/Icon.tsx
|
|
71
71
|
import { jsx } from "react/jsx-runtime";
|
|
72
|
-
var iconSizes = { xs: "1rem", sm: "1.25rem", md: "1.5rem", lg: "2rem" };
|
|
72
|
+
var iconSizes = { xs: "1rem", sm: "1.25rem", md: "1.5rem", lg: "2rem", xlg: "2.5rem" };
|
|
73
73
|
var Icon = ({
|
|
74
74
|
name = "music",
|
|
75
75
|
size,
|
|
@@ -1128,7 +1128,7 @@ import { jsx as jsx14 } from "react/jsx-runtime";
|
|
|
1128
1128
|
var Switch = (p) => /* @__PURE__ */ jsx14(BooleanControl, { kind: "Switch", ...p });
|
|
1129
1129
|
|
|
1130
1130
|
// src/core/responsive.ts
|
|
1131
|
-
var BREAKPOINTS = ["
|
|
1131
|
+
var BREAKPOINTS = ["xs", "sm", "md", "lg", "xlg"];
|
|
1132
1132
|
function spacing(value) {
|
|
1133
1133
|
if (typeof value !== "number") return value;
|
|
1134
1134
|
if (value === 0) return "0";
|
|
@@ -1137,11 +1137,11 @@ function spacing(value) {
|
|
|
1137
1137
|
function responsiveVars(name, value, format = String, fallback) {
|
|
1138
1138
|
const values = value != null && typeof value === "object" && !Array.isArray(value) ? value : { base: value ?? fallback };
|
|
1139
1139
|
const result = {};
|
|
1140
|
-
let current = values.base ?? fallback;
|
|
1140
|
+
let current = values.xs ?? values.base ?? fallback;
|
|
1141
1141
|
for (const bp of BREAKPOINTS) {
|
|
1142
|
-
current = values[bp] ?? current;
|
|
1142
|
+
current = values[bp] ?? (bp === "xlg" ? values.xl : void 0) ?? current;
|
|
1143
1143
|
if (current != null)
|
|
1144
|
-
result[`--ad-${name}${bp === "
|
|
1144
|
+
result[`--ad-${name}${bp === "xs" ? "" : `-${bp}`}`] = format(current);
|
|
1145
1145
|
}
|
|
1146
1146
|
return result;
|
|
1147
1147
|
}
|
|
@@ -2590,6 +2590,7 @@ var RotaryKnob = (p) => {
|
|
|
2590
2590
|
const baseRef = useRef14(null);
|
|
2591
2591
|
const feedbackRef = useRef14(null);
|
|
2592
2592
|
const rotorRef = useRef14(null);
|
|
2593
|
+
const rasterRef = useRef14(null);
|
|
2593
2594
|
const controlRef = useRef14(null);
|
|
2594
2595
|
const readoutRef = useRef14(null);
|
|
2595
2596
|
const controllerRef = useRef14(null);
|
|
@@ -2623,7 +2624,7 @@ var RotaryKnob = (p) => {
|
|
|
2623
2624
|
const initialRef = useRef14(initial);
|
|
2624
2625
|
const resetRef = useRef14(void 0);
|
|
2625
2626
|
resetRef.current = p.resetValue === void 0 ? void 0 : toPosition(p.resetValue);
|
|
2626
|
-
const diameter = p.diameter ?? { xs: 84, sm: 124, md: 220, lg: 320 }[normalizeSize(p.size) ?? "md"];
|
|
2627
|
+
const diameter = p.diameter ?? { xs: 84, sm: 124, md: 220, lg: 320, xlg: 400 }[normalizeSize(p.size) ?? "md"];
|
|
2627
2628
|
useLayoutEffect4(() => {
|
|
2628
2629
|
const root = rootRef.current;
|
|
2629
2630
|
const canvas = baseRef.current;
|
|
@@ -2660,6 +2661,69 @@ var RotaryKnob = (p) => {
|
|
|
2660
2661
|
let previousFrame = 0;
|
|
2661
2662
|
let disposed = false;
|
|
2662
2663
|
let renderingSize = 0;
|
|
2664
|
+
let rasterTimer = 0;
|
|
2665
|
+
const raster = rasterRef.current;
|
|
2666
|
+
const rasterContext = paintable ? raster?.getContext("2d") : null;
|
|
2667
|
+
function invalidateRaster() {
|
|
2668
|
+
clearTimeout(rasterTimer);
|
|
2669
|
+
if (!rasterContext || !("filter" in rasterContext) || !raster) return;
|
|
2670
|
+
raster.hidden = true;
|
|
2671
|
+
delete root.dataset.rasterized;
|
|
2672
|
+
if (!disposed) rasterTimer = window.setTimeout(cacheRaster, 500);
|
|
2673
|
+
}
|
|
2674
|
+
function cacheRaster() {
|
|
2675
|
+
if (!raster || !rasterContext || disposed || renderingSize || drag || animationFrame || root.matches(":hover") || !canvas.width) return;
|
|
2676
|
+
const size = parseFloat(getComputedStyle(root).width);
|
|
2677
|
+
if (!size) return;
|
|
2678
|
+
const ratio = devicePixelRatio || 1;
|
|
2679
|
+
const padding = Math.ceil(parseFloat(getComputedStyle(root).fontSize) * 8);
|
|
2680
|
+
const extent = size + padding * 2;
|
|
2681
|
+
raster.width = raster.height = Math.ceil(extent * ratio);
|
|
2682
|
+
Object.assign(raster.style, {
|
|
2683
|
+
left: `${-padding}px`,
|
|
2684
|
+
top: `${-padding}px`,
|
|
2685
|
+
width: `${raster.width / ratio}px`,
|
|
2686
|
+
height: `${raster.height / ratio}px`
|
|
2687
|
+
});
|
|
2688
|
+
const turned = document.createElement("canvas");
|
|
2689
|
+
turned.width = turned.height = Math.ceil(size * ratio);
|
|
2690
|
+
const turning = turned.getContext("2d");
|
|
2691
|
+
if (!turning) return;
|
|
2692
|
+
turning.translate(size * ratio / 2, size * ratio / 2);
|
|
2693
|
+
turning.rotate((valueAngle(visualValue) - initialAngle) / degrees);
|
|
2694
|
+
turning.drawImage(
|
|
2695
|
+
rotor,
|
|
2696
|
+
-size * ratio / 2,
|
|
2697
|
+
-size * ratio / 2,
|
|
2698
|
+
size * ratio,
|
|
2699
|
+
size * ratio
|
|
2700
|
+
);
|
|
2701
|
+
for (const [source, element] of [
|
|
2702
|
+
[canvas, canvas],
|
|
2703
|
+
[feedback, feedback],
|
|
2704
|
+
[turned, rotor.parentElement]
|
|
2705
|
+
]) {
|
|
2706
|
+
if (!element) return;
|
|
2707
|
+
rasterContext.filter = getComputedStyle(element).filter.replace(
|
|
2708
|
+
/(-?[\d.]+)px/g,
|
|
2709
|
+
(_, pixels) => `${Number(pixels) * ratio}px`
|
|
2710
|
+
);
|
|
2711
|
+
rasterContext.drawImage(
|
|
2712
|
+
source,
|
|
2713
|
+
0,
|
|
2714
|
+
0,
|
|
2715
|
+
source === turned ? size * ratio : source.width,
|
|
2716
|
+
source === turned ? size * ratio : source.height,
|
|
2717
|
+
padding * ratio,
|
|
2718
|
+
padding * ratio,
|
|
2719
|
+
size * ratio,
|
|
2720
|
+
size * ratio
|
|
2721
|
+
);
|
|
2722
|
+
}
|
|
2723
|
+
rasterContext.filter = "none";
|
|
2724
|
+
raster.hidden = false;
|
|
2725
|
+
root.dataset.rasterized = "true";
|
|
2726
|
+
}
|
|
2663
2727
|
async function render() {
|
|
2664
2728
|
if (disposed || !painted) return;
|
|
2665
2729
|
const cssSize = root.getBoundingClientRect().width;
|
|
@@ -2671,6 +2735,7 @@ var RotaryKnob = (p) => {
|
|
|
2671
2735
|
);
|
|
2672
2736
|
if (!size || renderingSize === size || [canvas, rotor, feedback].every((layer) => layer.width === size && layer.height === size)) return;
|
|
2673
2737
|
renderingSize = size;
|
|
2738
|
+
invalidateRaster();
|
|
2674
2739
|
canvas.width = canvas.height = size;
|
|
2675
2740
|
const center = size / 2;
|
|
2676
2741
|
const radius = size * 0.445;
|
|
@@ -2947,6 +3012,7 @@ var RotaryKnob = (p) => {
|
|
|
2947
3012
|
}
|
|
2948
3013
|
function paintFeedback() {
|
|
2949
3014
|
if (!painted || !feedback.width || disposed) return;
|
|
3015
|
+
invalidateRaster();
|
|
2950
3016
|
const scale2 = feedback.width * 0.445;
|
|
2951
3017
|
const start = (startAngle - 90) / degrees;
|
|
2952
3018
|
const end = (valueAngle(visualValue) - 90) / degrees;
|
|
@@ -3254,6 +3320,14 @@ var RotaryKnob = (p) => {
|
|
|
3254
3320
|
root.addEventListener("pointerleave", resetHover, {
|
|
3255
3321
|
signal: listeners.signal
|
|
3256
3322
|
});
|
|
3323
|
+
for (const event of ["pointerenter", "pointerleave"])
|
|
3324
|
+
root.addEventListener(event, invalidateRaster, { signal: listeners.signal });
|
|
3325
|
+
const tokens = typeof MutationObserver === "undefined" ? null : new MutationObserver(invalidateRaster);
|
|
3326
|
+
for (let node = root; node; node = node.parentElement)
|
|
3327
|
+
tokens?.observe(node, {
|
|
3328
|
+
attributes: true,
|
|
3329
|
+
attributeFilter: ["style", "class", "data-ad-theme", "data-ad-color-scheme"]
|
|
3330
|
+
});
|
|
3257
3331
|
window.addEventListener("blur", () => finishDrag(true), {
|
|
3258
3332
|
signal: listeners.signal
|
|
3259
3333
|
});
|
|
@@ -3289,6 +3363,8 @@ var RotaryKnob = (p) => {
|
|
|
3289
3363
|
finishDrag();
|
|
3290
3364
|
listeners.abort();
|
|
3291
3365
|
observer.disconnect();
|
|
3366
|
+
tokens?.disconnect();
|
|
3367
|
+
clearTimeout(rasterTimer);
|
|
3292
3368
|
clearTimeout(renderTimer);
|
|
3293
3369
|
cancelAnimationFrame(animationFrame);
|
|
3294
3370
|
cancelAnimationFrame(hoverFrame);
|
|
@@ -3350,6 +3426,7 @@ var RotaryKnob = (p) => {
|
|
|
3350
3426
|
}
|
|
3351
3427
|
),
|
|
3352
3428
|
/* @__PURE__ */ jsx29("span", { className: "knob__surface knob__rotor-frame", "aria-hidden": "true", children: /* @__PURE__ */ jsx29("canvas", { className: "knob__rotor", ref: rotorRef }) }),
|
|
3429
|
+
/* @__PURE__ */ jsx29("canvas", { className: "knob__raster", ref: rasterRef, hidden: true, "aria-hidden": "true" }),
|
|
3353
3430
|
/* @__PURE__ */ jsx29("span", { className: "knob__sheen", "aria-hidden": "true" }),
|
|
3354
3431
|
/* @__PURE__ */ jsx29(
|
|
3355
3432
|
"div",
|
|
@@ -120,6 +120,30 @@
|
|
|
120
120
|
--ad-size-pad-x: 0.95rem;
|
|
121
121
|
--ad-size-gap: 0.72rem;
|
|
122
122
|
}
|
|
123
|
+
:is(
|
|
124
|
+
.ad-button,
|
|
125
|
+
.ad-icon-button,
|
|
126
|
+
.ad-toggle-button,
|
|
127
|
+
.ad-split-button,
|
|
128
|
+
.ad-input-base,
|
|
129
|
+
.ad-text-field-shell,
|
|
130
|
+
.ad-text-area,
|
|
131
|
+
.ad-number-field,
|
|
132
|
+
.ad-select,
|
|
133
|
+
.ad-switch,
|
|
134
|
+
.ad-checkbox,
|
|
135
|
+
.ad-slider,
|
|
136
|
+
.ad-file-picker,
|
|
137
|
+
.ad-tabs,
|
|
138
|
+
.ad-tab,
|
|
139
|
+
.ad-segmented-control
|
|
140
|
+
)[data-ad-size="xlg"] {
|
|
141
|
+
--ad-size-h: 3.5rem;
|
|
142
|
+
--ad-size-font: 1.0625rem;
|
|
143
|
+
--ad-size-radius: 1rem;
|
|
144
|
+
--ad-size-pad-x: 1.125rem;
|
|
145
|
+
--ad-size-gap: 0.85rem;
|
|
146
|
+
}
|
|
123
147
|
|
|
124
148
|
@keyframes ad-btn-breathe {
|
|
125
149
|
50% {
|
|
@@ -8,7 +8,7 @@ export interface LoaderProps extends Omit<CommonProps, "size"> {
|
|
|
8
8
|
/** The picture that moves: a logo, an icon, any image (transparent PNG/SVG/WebP look best). */
|
|
9
9
|
src?: string;
|
|
10
10
|
animation?: LoaderAnimation;
|
|
11
|
-
/** xs/sm/md/lg, a CSS length, or pixels converted to rem at the 16px design baseline. */
|
|
11
|
+
/** xs/sm/md/lg/xlg, a CSS length, or pixels converted to rem at the 16px design baseline. */
|
|
12
12
|
size?: number | string;
|
|
13
13
|
/** Speed multiplier: 2 is twice as fast. */
|
|
14
14
|
speed?: number;
|
|
@@ -21,6 +21,7 @@ export declare const loaderSizes: {
|
|
|
21
21
|
readonly sm: 6.5;
|
|
22
22
|
readonly md: 9;
|
|
23
23
|
readonly lg: 12;
|
|
24
|
+
readonly xlg: 16;
|
|
24
25
|
};
|
|
25
26
|
export declare const loaderRenderKey: ({ animation }: Pick<LoaderSettings, "animation">) => "flip" | "fill" | "wave" | "palette" | "glow" | "pulse" | "spin" | "breathe" | "bounce" | "orbit" | "shine" | "wobble" | "radar";
|
|
26
27
|
/** Removes large, smoothly connected background regions while preserving enclosed logo details. */
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import type { CardProps } from "../shared";
|
|
3
3
|
export declare const Card: ({ as, border, shell, padding, title, description, eyebrow, icon, actions, level, children, ...p }: CardProps) => React.DetailedReactHTMLElement<{
|
|
4
4
|
ref: React.RefObject<HTMLElement | null>;
|
|
5
|
-
"data-ad-padding": "sm" | "md" | "lg" | "none";
|
|
5
|
+
"data-ad-padding": "xs" | "sm" | "md" | "lg" | "xlg" | "none";
|
|
6
6
|
onPointerMove: (event: React.PointerEvent<HTMLElement>) => void;
|
|
7
7
|
id: string | undefined;
|
|
8
8
|
className: string;
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
grid-column: var(--ad-grid-column-start) / var(--ad-grid-column-end);
|
|
25
25
|
grid-row: var(--ad-grid-row-start) / var(--ad-grid-row-end);
|
|
26
26
|
}
|
|
27
|
-
@media (min-width:
|
|
27
|
+
@media (min-width: 768px) {
|
|
28
28
|
.ad-grid:not(.ad-grid--auto-fit) {
|
|
29
29
|
grid-template-columns: var(--ad-grid-columns-sm);
|
|
30
30
|
}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
grid-row: var(--ad-grid-row-start-sm) / var(--ad-grid-row-end-sm);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
@media (min-width:
|
|
43
|
+
@media (min-width: 1024px) {
|
|
44
44
|
.ad-grid:not(.ad-grid--auto-fit) {
|
|
45
45
|
grid-template-columns: var(--ad-grid-columns-md);
|
|
46
46
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
grid-row: var(--ad-grid-row-start-md) / var(--ad-grid-row-end-md);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
@media (min-width:
|
|
59
|
+
@media (min-width: 1920px) {
|
|
60
60
|
.ad-grid:not(.ad-grid--auto-fit) {
|
|
61
61
|
grid-template-columns: var(--ad-grid-columns-lg);
|
|
62
62
|
}
|
|
@@ -72,19 +72,19 @@
|
|
|
72
72
|
grid-row: var(--ad-grid-row-start-lg) / var(--ad-grid-row-end-lg);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
@media (min-width:
|
|
75
|
+
@media (min-width: 2560px) {
|
|
76
76
|
.ad-grid:not(.ad-grid--auto-fit) {
|
|
77
|
-
grid-template-columns: var(--ad-grid-columns-
|
|
77
|
+
grid-template-columns: var(--ad-grid-columns-xlg);
|
|
78
78
|
}
|
|
79
79
|
.ad-grid {
|
|
80
|
-
row-gap: var(--ad-grid-row-gap-
|
|
81
|
-
column-gap: var(--ad-grid-column-gap-
|
|
82
|
-
align-items: var(--ad-grid-align-
|
|
83
|
-
justify-items: var(--ad-grid-justify-
|
|
84
|
-
justify-content: var(--ad-grid-distribution-
|
|
80
|
+
row-gap: var(--ad-grid-row-gap-xlg);
|
|
81
|
+
column-gap: var(--ad-grid-column-gap-xlg);
|
|
82
|
+
align-items: var(--ad-grid-align-xlg);
|
|
83
|
+
justify-items: var(--ad-grid-justify-xlg);
|
|
84
|
+
justify-content: var(--ad-grid-distribution-xlg);
|
|
85
85
|
}
|
|
86
86
|
.ad-grid-item {
|
|
87
|
-
grid-column: var(--ad-grid-column-start-
|
|
88
|
-
grid-row: var(--ad-grid-row-start-
|
|
87
|
+
grid-column: var(--ad-grid-column-start-xlg) / var(--ad-grid-column-end-xlg);
|
|
88
|
+
grid-row: var(--ad-grid-row-start-xlg) / var(--ad-grid-row-end-xlg);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
.ad-stack__divider {
|
|
16
16
|
display: contents;
|
|
17
17
|
}
|
|
18
|
-
@media (min-width:
|
|
18
|
+
@media (min-width: 768px) {
|
|
19
19
|
.ad-stack {
|
|
20
20
|
flex-direction: var(--ad-stack-direction-sm);
|
|
21
21
|
gap: var(--ad-stack-gap-sm);
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
flex-wrap: var(--ad-stack-wrap-sm);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
@media (min-width:
|
|
27
|
+
@media (min-width: 1024px) {
|
|
28
28
|
.ad-stack {
|
|
29
29
|
flex-direction: var(--ad-stack-direction-md);
|
|
30
30
|
gap: var(--ad-stack-gap-md);
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
flex-wrap: var(--ad-stack-wrap-md);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
@media (min-width:
|
|
36
|
+
@media (min-width: 1920px) {
|
|
37
37
|
.ad-stack {
|
|
38
38
|
flex-direction: var(--ad-stack-direction-lg);
|
|
39
39
|
gap: var(--ad-stack-gap-lg);
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
flex-wrap: var(--ad-stack-wrap-lg);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
@media (min-width:
|
|
45
|
+
@media (min-width: 2560px) {
|
|
46
46
|
.ad-stack {
|
|
47
|
-
flex-direction: var(--ad-stack-direction-
|
|
48
|
-
gap: var(--ad-stack-gap-
|
|
49
|
-
align-items: var(--ad-stack-align-
|
|
50
|
-
justify-content: var(--ad-stack-justify-
|
|
51
|
-
flex-wrap: var(--ad-stack-wrap-
|
|
47
|
+
flex-direction: var(--ad-stack-direction-xlg);
|
|
48
|
+
gap: var(--ad-stack-gap-xlg);
|
|
49
|
+
align-items: var(--ad-stack-align-xlg);
|
|
50
|
+
justify-content: var(--ad-stack-justify-xlg);
|
|
51
|
+
flex-wrap: var(--ad-stack-wrap-xlg);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -31,7 +31,7 @@ export interface CardProps extends CommonProps, Omit<HeaderProps, "as"> {
|
|
|
31
31
|
as?: "section" | "div" | "article";
|
|
32
32
|
border?: boolean;
|
|
33
33
|
shell?: boolean;
|
|
34
|
-
padding?: "none" | "sm" | "md" | "lg";
|
|
34
|
+
padding?: "none" | "xs" | "sm" | "md" | "lg" | "xlg";
|
|
35
35
|
material?: Material;
|
|
36
36
|
}
|
|
37
37
|
export interface AvatarProps extends CommonProps {
|
|
@@ -76,6 +76,13 @@
|
|
|
76
76
|
user-select: none;
|
|
77
77
|
-webkit-user-select: none;
|
|
78
78
|
}
|
|
79
|
+
.ad-rotary-knob .knob__raster {
|
|
80
|
+
position: absolute;
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
83
|
+
.ad-rotary-knob[data-rasterized] .knob__surface {
|
|
84
|
+
visibility: hidden;
|
|
85
|
+
}
|
|
79
86
|
.ad-rotary-knob .knob__control:active,
|
|
80
87
|
.ad-rotary-knob.is-dragging .knob__control {
|
|
81
88
|
cursor: grabbing;
|
package/dist/core/base.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AriaRole, CSSProperties, ReactNode, Ref } from "react";
|
|
2
2
|
export type Material = "shell" | "card" | "glass" | "ruby" | "tile" | "input" | "dialog" | "ghost" | "danger";
|
|
3
3
|
export type Variant = "primary" | "secondary" | "ghost" | "danger";
|
|
4
|
-
export type ControlSize = "xs" | "sm" | "md" | "lg";
|
|
4
|
+
export type ControlSize = "xs" | "sm" | "md" | "lg" | "xlg";
|
|
5
5
|
export type LegacySize = "small" | "medium" | "large";
|
|
6
6
|
export type Size = ControlSize | LegacySize;
|
|
7
7
|
export type Tone = "success" | "warning" | "error" | "processing" | "pending" | "offline" | "info";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties } from "react";
|
|
2
|
-
export type Breakpoint = "
|
|
2
|
+
export type Breakpoint = "xs" | "sm" | "md" | "lg" | "xlg" | "base" | "xl";
|
|
3
3
|
export type Responsive<T> = T | Partial<Record<Breakpoint, T>>;
|
|
4
4
|
export type Spacing = number | string;
|
|
5
5
|
/** Numbers are steps of the spacing scale; strings are raw CSS lengths. */
|
package/dist/forms.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
useSvgId,
|
|
63
63
|
variantMaterial,
|
|
64
64
|
vectorElement
|
|
65
|
-
} from "./chunks/chunk-
|
|
65
|
+
} from "./chunks/chunk-KAVSRD45.js";
|
|
66
66
|
import {
|
|
67
67
|
ThemeProvider,
|
|
68
68
|
createNeonRenderer,
|
|
@@ -369,7 +369,7 @@ var Card = ({
|
|
|
369
369
|
import { useInsertionEffect, useRef as useRef2 } from "react";
|
|
370
370
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
371
371
|
var loaderAnimations = ["spin", "pulse", "breathe", "bounce", "flip", "orbit", "wave", "glow", "fill", "shine", "wobble", "radar", "palette"];
|
|
372
|
-
var loaderSizes = { xs: "2rem", sm: "3rem", md: "4rem", lg: "6rem" };
|
|
372
|
+
var loaderSizes = { xs: "2rem", sm: "3rem", md: "4rem", lg: "6rem", xlg: "8rem" };
|
|
373
373
|
var loaderAnimationLabel = (animation, translate2 = tr) => translate2(
|
|
374
374
|
{
|
|
375
375
|
spin: "\u0412\u0440\u0430\u0449\u0435\u043D\u0438\u0435",
|
|
@@ -520,7 +520,7 @@ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
|
520
520
|
var loaderGeneratorAnimations = loaderAnimations.filter(
|
|
521
521
|
(animation) => animation !== "orbit" && animation !== "radar"
|
|
522
522
|
);
|
|
523
|
-
var loaderSizes2 = { xs: 4.5, sm: 6.5, md: 9, lg: 12 };
|
|
523
|
+
var loaderSizes2 = { xs: 4.5, sm: 6.5, md: 9, lg: 12, xlg: 16 };
|
|
524
524
|
var loaderRenderKey = ({ animation }) => animation;
|
|
525
525
|
var loaderSizeItems = Object.keys(loaderSizes2).map((value) => ({
|
|
526
526
|
value,
|