@yahoo/uds 3.145.0-beta.4 → 3.146.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/dist/automated-config/dist/generated/autoVariants.cjs +34 -0
- package/dist/automated-config/dist/generated/autoVariants.d.cts +5 -0
- package/dist/automated-config/dist/generated/autoVariants.d.ts +5 -0
- package/dist/automated-config/dist/generated/autoVariants.js +34 -0
- package/dist/automated-config/dist/generated/generatedConfigs.cjs +1457 -0
- package/dist/automated-config/dist/generated/generatedConfigs.d.cts +161 -1
- package/dist/automated-config/dist/generated/generatedConfigs.d.ts +161 -1
- package/dist/automated-config/dist/generated/generatedConfigs.js +1457 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +385 -0
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +2 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +2 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +385 -0
- package/dist/automated-config/dist/utils/buildConfigSchema.cjs +9 -5
- package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +3 -1
- package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +3 -1
- package/dist/automated-config/dist/utils/buildConfigSchema.js +9 -6
- package/dist/automated-config/dist/utils/index.cjs +14 -3
- package/dist/automated-config/dist/utils/index.d.cts +1 -1
- package/dist/automated-config/dist/utils/index.d.ts +1 -1
- package/dist/automated-config/dist/utils/index.js +14 -3
- package/dist/cli/runner.cjs +6 -2
- package/dist/cli/runner.js +6 -2
- package/dist/components/Banner/Banner.cjs +2 -1
- package/dist/components/Banner/Banner.js +2 -1
- package/dist/components/Banner/utils.cjs +3 -12
- package/dist/components/Banner/utils.d.cts +1 -6
- package/dist/components/Banner/utils.d.ts +1 -6
- package/dist/components/Banner/utils.js +2 -11
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
- package/dist/components/client/PaddleNav/PaddleButton.cjs +51 -0
- package/dist/components/client/PaddleNav/PaddleButton.d.cts +16 -0
- package/dist/components/client/PaddleNav/PaddleButton.d.ts +17 -0
- package/dist/components/client/PaddleNav/PaddleButton.js +49 -0
- package/dist/components/client/PaddleNav/PaddleButtonNext.cjs +18 -0
- package/dist/components/client/PaddleNav/PaddleButtonNext.d.cts +11 -0
- package/dist/components/client/PaddleNav/PaddleButtonNext.d.ts +12 -0
- package/dist/components/client/PaddleNav/PaddleButtonNext.js +16 -0
- package/dist/components/client/PaddleNav/PaddleButtonPrevious.cjs +18 -0
- package/dist/components/client/PaddleNav/PaddleButtonPrevious.d.cts +11 -0
- package/dist/components/client/PaddleNav/PaddleButtonPrevious.d.ts +12 -0
- package/dist/components/client/PaddleNav/PaddleButtonPrevious.js +16 -0
- package/dist/components/client/PaddleNav/PaddleNav.cjs +193 -0
- package/dist/components/client/PaddleNav/PaddleNav.d.cts +11 -0
- package/dist/components/client/PaddleNav/PaddleNav.d.ts +12 -0
- package/dist/components/client/PaddleNav/PaddleNav.js +191 -0
- package/dist/components/client/PaddleNav/PaddleNavContent.cjs +29 -0
- package/dist/components/client/PaddleNav/PaddleNavContent.d.cts +11 -0
- package/dist/components/client/PaddleNav/PaddleNavContent.d.ts +12 -0
- package/dist/components/client/PaddleNav/PaddleNavContent.js +27 -0
- package/dist/components/client/PaddleNav/index.cjs +11 -0
- package/dist/components/client/PaddleNav/index.d.cts +6 -0
- package/dist/components/client/PaddleNav/index.d.ts +7 -0
- package/dist/components/client/PaddleNav/index.js +7 -0
- package/dist/components/client/PaddleNav/paddleButtonIcons.cjs +12 -0
- package/dist/components/client/PaddleNav/paddleButtonIcons.d.cts +22 -0
- package/dist/components/client/PaddleNav/paddleButtonIcons.d.ts +23 -0
- package/dist/components/client/PaddleNav/paddleButtonIcons.js +10 -0
- package/dist/components/client/PaddleNav/paddleNavContext.cjs +20 -0
- package/dist/components/client/PaddleNav/paddleNavContext.d.cts +20 -0
- package/dist/components/client/PaddleNav/paddleNavContext.d.ts +21 -0
- package/dist/components/client/PaddleNav/paddleNavContext.js +16 -0
- package/dist/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.cjs +25 -0
- package/dist/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.d.cts +16 -0
- package/dist/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.d.ts +17 -0
- package/dist/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.js +24 -0
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +1 -1
- package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +1 -1
- package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +1 -1
- package/dist/components/client/index.cjs +8 -0
- package/dist/components/client/index.d.cts +5 -1
- package/dist/components/client/index.d.ts +5 -1
- package/dist/components/client/index.js +5 -1
- package/dist/components/index.cjs +8 -0
- package/dist/components/index.d.cts +5 -1
- package/dist/components/index.d.ts +5 -1
- package/dist/components/index.js +5 -1
- package/dist/config/dist/index.cjs +399 -14
- package/dist/config/dist/index.js +399 -14
- package/dist/css/dist/packages/config/dist/index.cjs +399 -14
- package/dist/css/dist/packages/config/dist/index.js +399 -14
- package/dist/icons/dist/types.d.cts +1 -1
- package/dist/icons/dist/types.d.ts +1 -1
- package/dist/index.cjs +11 -1
- package/dist/index.d.cts +9 -5
- package/dist/index.d.ts +9 -5
- package/dist/index.js +8 -4
- package/dist/styles/styler.d.cts +58 -53
- package/dist/styles/styler.d.ts +58 -53
- package/dist/styles/variants.d.cts +34 -0
- package/dist/styles/variants.d.ts +34 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +1457 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +1457 -1
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/buildConfigSchema.cjs +15 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/buildConfigSchema.js +15 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +14 -2
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +14 -2
- package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +399 -14
- package/dist/tailwind-internal/dist/packages/config/dist/index.js +399 -14
- package/dist/tailwind-internal/dist/plugins/components.cjs +1 -0
- package/dist/tailwind-internal/dist/plugins/components.js +2 -1
- package/dist/tailwind-internal/dist/utils/getNestedBorderRadiusUtilities.cjs +6 -0
- package/dist/tailwind-internal/dist/utils/getNestedBorderRadiusUtilities.js +6 -0
- package/dist/tokens/automation/configs/index.cjs +1 -0
- package/dist/tokens/automation/configs/index.d.cts +2 -2
- package/dist/tokens/automation/configs/index.d.ts +2 -2
- package/dist/tokens/automation/configs/index.js +2 -2
- package/dist/tokens/automation/index.cjs +3 -1
- package/dist/tokens/automation/index.d.cts +3 -3
- package/dist/tokens/automation/index.d.ts +3 -3
- package/dist/tokens/automation/index.js +4 -4
- package/dist/tokens/index.cjs +3 -1
- package/dist/tokens/index.d.cts +5 -5
- package/dist/tokens/index.d.ts +5 -5
- package/dist/tokens/index.js +4 -4
- package/dist/tokens/types.d.cts +6 -2
- package/dist/tokens/types.d.ts +6 -2
- package/dist/types/dist/index.d.cts +50 -1
- package/dist/types/dist/index.d.ts +50 -1
- package/dist/uds/generated/componentData.cjs +2781 -3273
- package/dist/uds/generated/componentData.js +2778 -2712
- package/dist/uds/generated/tailwindPurge.cjs +22 -0
- package/dist/uds/generated/tailwindPurge.js +22 -0
- package/dist/utils/hasDisplayName.cjs +17 -0
- package/dist/utils/hasDisplayName.d.cts +12 -0
- package/dist/utils/hasDisplayName.d.ts +12 -0
- package/dist/utils/hasDisplayName.js +15 -0
- package/generated/componentData.json +2712 -2507
- package/generated/tailwindPurge.ts +4 -4
- package/package.json +1 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
import { cx } from "../../../styles/styler.js";
|
|
4
|
+
import { hasDisplayName } from "../../../utils/hasDisplayName.js";
|
|
5
|
+
import { Box } from "../../Box.js";
|
|
6
|
+
import { useRtl } from "../../../hooks/useRtl.js";
|
|
7
|
+
import { PaddleNavContext, defaultPaddleHiddenByRole } from "./paddleNavContext.js";
|
|
8
|
+
import { PaddleButtonNext } from "./PaddleButtonNext.js";
|
|
9
|
+
import { PaddleButtonPrevious } from "./PaddleButtonPrevious.js";
|
|
10
|
+
import { PaddleNavContent } from "./PaddleNavContent.js";
|
|
11
|
+
import { resolvePaddleNavCornerOrientation } from "./utils/resolvePaddleNavCornerOrientation.js";
|
|
12
|
+
import { Children, forwardRef, isValidElement, useCallback, useMemo, useState } from "react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
//#region src/components/client/PaddleNav/PaddleNav.tsx
|
|
15
|
+
function isPaddleButtonPrevious(child) {
|
|
16
|
+
return child.type === PaddleButtonPrevious || hasDisplayName(child, "PaddleButtonPrevious");
|
|
17
|
+
}
|
|
18
|
+
function isPaddleButtonNext(child) {
|
|
19
|
+
return child.type === PaddleButtonNext || hasDisplayName(child, "PaddleButtonNext");
|
|
20
|
+
}
|
|
21
|
+
function partitionChildren(children) {
|
|
22
|
+
const contentNodes = [];
|
|
23
|
+
let previousPaddle;
|
|
24
|
+
let nextPaddle;
|
|
25
|
+
const passthroughNodes = [];
|
|
26
|
+
Children.forEach(children, (child) => {
|
|
27
|
+
if (!isValidElement(child)) {
|
|
28
|
+
passthroughNodes.push(child);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (isPaddleButtonPrevious(child)) {
|
|
32
|
+
if (!previousPaddle) previousPaddle = child;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (isPaddleButtonNext(child)) {
|
|
36
|
+
if (!nextPaddle) nextPaddle = child;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (child.type === PaddleNavContent || hasDisplayName(child, "PaddleNavContent")) {
|
|
40
|
+
contentNodes.push(child);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
passthroughNodes.push(child);
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
contentNodes,
|
|
47
|
+
previousPaddle,
|
|
48
|
+
nextPaddle,
|
|
49
|
+
passthroughNodes
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function getPaddleWrapperClassName(positionClasses, hidden) {
|
|
53
|
+
return cx(positionClasses, hidden && "pointer-events-none");
|
|
54
|
+
}
|
|
55
|
+
function getCornerInsetClasses(orientation, outsideContent) {
|
|
56
|
+
const inside = !outsideContent;
|
|
57
|
+
switch (orientation) {
|
|
58
|
+
case "top-left": return inside ? "top-2 left-2" : "-top-12 left-0";
|
|
59
|
+
case "top-right": return inside ? "top-2 right-2" : "-top-12 right-0";
|
|
60
|
+
case "bottom-left": return inside ? "bottom-2 left-2" : "-bottom-12 left-0";
|
|
61
|
+
case "bottom-right": return inside ? "bottom-2 right-2" : "-bottom-12 right-0";
|
|
62
|
+
default: return "";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const horizontalOverlayStartClass = "left-2 top-1/2 -translate-y-1/2";
|
|
66
|
+
const horizontalOverlayEndClass = "right-2 top-1/2 -translate-y-1/2";
|
|
67
|
+
/** Keeps prev/next paddles in [←][→] screen order inside a cluster when an ancestor sets dir="rtl". */
|
|
68
|
+
const paddleClusterClassName = "inline-flex flex-row gap-2 items-center pointer-events-auto";
|
|
69
|
+
const PaddleNav = forwardRef(function PaddleNav({ children, orientation = "horizontal", outsideContent = false, variant = "primary", size = "md", className, ...rest }, ref) {
|
|
70
|
+
const isRtl = useRtl();
|
|
71
|
+
const [paddleHiddenByRole, setPaddleHiddenByRole] = useState(defaultPaddleHiddenByRole);
|
|
72
|
+
const registerPaddleHidden = useCallback((role, hidden) => {
|
|
73
|
+
setPaddleHiddenByRole((current) => {
|
|
74
|
+
if (current[role] === hidden) return current;
|
|
75
|
+
return {
|
|
76
|
+
...current,
|
|
77
|
+
[role]: hidden
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}, []);
|
|
81
|
+
const paddleNavContextValue = useMemo(() => ({
|
|
82
|
+
orientation,
|
|
83
|
+
outsideContent,
|
|
84
|
+
variant,
|
|
85
|
+
size,
|
|
86
|
+
paddleHiddenByRole,
|
|
87
|
+
registerPaddleHidden
|
|
88
|
+
}), [
|
|
89
|
+
orientation,
|
|
90
|
+
outsideContent,
|
|
91
|
+
variant,
|
|
92
|
+
size,
|
|
93
|
+
paddleHiddenByRole,
|
|
94
|
+
registerPaddleHidden
|
|
95
|
+
]);
|
|
96
|
+
const { contentNodes, previousPaddle, nextPaddle, passthroughNodes } = partitionChildren(children);
|
|
97
|
+
const isVertical = orientation === "vertical";
|
|
98
|
+
const isHorizontalCenter = orientation === "horizontal";
|
|
99
|
+
const isCenter = isVertical || isHorizontalCenter;
|
|
100
|
+
const isCorner = !isCenter;
|
|
101
|
+
const resolvedOrientation = resolvePaddleNavCornerOrientation(orientation, isCorner ? isRtl : false);
|
|
102
|
+
const physicalCornerOrientation = isCorner && resolvedOrientation !== "horizontal" && resolvedOrientation !== "vertical" ? resolvedOrientation : void 0;
|
|
103
|
+
if (!(contentNodes.length > 0)) return /* @__PURE__ */ jsx(PaddleNavContext.Provider, {
|
|
104
|
+
value: paddleNavContextValue,
|
|
105
|
+
children: /* @__PURE__ */ jsxs(Box, {
|
|
106
|
+
ref,
|
|
107
|
+
dir: isVertical ? void 0 : "ltr",
|
|
108
|
+
className: cx(paddleClusterClassName, isVertical && "flex-col", className),
|
|
109
|
+
"data-paddle-nav-orientation": orientation,
|
|
110
|
+
"data-paddle-nav-outside": outsideContent ? "true" : "false",
|
|
111
|
+
...rest,
|
|
112
|
+
children: [
|
|
113
|
+
previousPaddle,
|
|
114
|
+
nextPaddle,
|
|
115
|
+
passthroughNodes
|
|
116
|
+
]
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
if (isCenter) {
|
|
120
|
+
if (outsideContent) return /* @__PURE__ */ jsx(PaddleNavContext.Provider, {
|
|
121
|
+
value: paddleNavContextValue,
|
|
122
|
+
children: /* @__PURE__ */ jsxs(Box, {
|
|
123
|
+
ref,
|
|
124
|
+
dir: isHorizontalCenter ? "ltr" : void 0,
|
|
125
|
+
display: "inline-flex",
|
|
126
|
+
alignItems: "center",
|
|
127
|
+
justifyContent: "center",
|
|
128
|
+
flexDirection: isVertical ? "column" : "row",
|
|
129
|
+
columnGap: isVertical ? void 0 : "2",
|
|
130
|
+
rowGap: isVertical ? "2" : void 0,
|
|
131
|
+
className,
|
|
132
|
+
"data-paddle-nav-orientation": orientation,
|
|
133
|
+
"data-paddle-nav-outside": "true",
|
|
134
|
+
...rest,
|
|
135
|
+
children: [
|
|
136
|
+
previousPaddle,
|
|
137
|
+
/* @__PURE__ */ jsx("div", {
|
|
138
|
+
className: cx("relative min-w-0 min-h-0 flex-1"),
|
|
139
|
+
children: contentNodes
|
|
140
|
+
}),
|
|
141
|
+
nextPaddle,
|
|
142
|
+
passthroughNodes
|
|
143
|
+
]
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
return /* @__PURE__ */ jsx(PaddleNavContext.Provider, {
|
|
147
|
+
value: paddleNavContextValue,
|
|
148
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
149
|
+
ref,
|
|
150
|
+
className: cx("relative inline-block", className),
|
|
151
|
+
"data-paddle-nav-orientation": orientation,
|
|
152
|
+
"data-paddle-nav-outside": "false",
|
|
153
|
+
...rest,
|
|
154
|
+
children: [
|
|
155
|
+
contentNodes,
|
|
156
|
+
previousPaddle && /* @__PURE__ */ jsx("div", {
|
|
157
|
+
className: getPaddleWrapperClassName(cx("absolute z-10 pointer-events-auto", isVertical ? "top-2 left-1/2 -translate-x-1/2" : horizontalOverlayStartClass), paddleHiddenByRole.previous),
|
|
158
|
+
children: previousPaddle
|
|
159
|
+
}),
|
|
160
|
+
nextPaddle && /* @__PURE__ */ jsx("div", {
|
|
161
|
+
className: getPaddleWrapperClassName(cx("absolute z-10 pointer-events-auto", isVertical ? "bottom-2 left-1/2 -translate-x-1/2" : horizontalOverlayEndClass), paddleHiddenByRole.next),
|
|
162
|
+
children: nextPaddle
|
|
163
|
+
}),
|
|
164
|
+
passthroughNodes
|
|
165
|
+
]
|
|
166
|
+
})
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return /* @__PURE__ */ jsx(PaddleNavContext.Provider, {
|
|
170
|
+
value: paddleNavContextValue,
|
|
171
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
172
|
+
ref,
|
|
173
|
+
className: cx("relative inline-block", className),
|
|
174
|
+
"data-paddle-nav-orientation": orientation,
|
|
175
|
+
"data-paddle-nav-outside": outsideContent ? "true" : "false",
|
|
176
|
+
...rest,
|
|
177
|
+
children: [
|
|
178
|
+
contentNodes,
|
|
179
|
+
(previousPaddle || nextPaddle) && physicalCornerOrientation && /* @__PURE__ */ jsxs("div", {
|
|
180
|
+
dir: "ltr",
|
|
181
|
+
className: cx("absolute z-10", paddleClusterClassName, getCornerInsetClasses(physicalCornerOrientation, outsideContent)),
|
|
182
|
+
children: [previousPaddle, nextPaddle]
|
|
183
|
+
}),
|
|
184
|
+
passthroughNodes
|
|
185
|
+
]
|
|
186
|
+
})
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
PaddleNav.displayName = "PaddleNav";
|
|
190
|
+
//#endregion
|
|
191
|
+
export { PaddleNav };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
5
|
+
const require_styles_styler = require("../../../styles/styler.cjs");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
//#region src/components/client/PaddleNav/PaddleNavContent.tsx
|
|
9
|
+
const PaddleNavContent = (0, react.forwardRef)(function PaddleNavContent({ asChild = false, className, children, ...rest }, ref) {
|
|
10
|
+
const mergedClassName = require_styles_styler.cx("min-w-0 min-h-0 relative", className);
|
|
11
|
+
if (asChild && (0, react.isValidElement)(children)) {
|
|
12
|
+
const child = children;
|
|
13
|
+
return (0, react.cloneElement)(child, {
|
|
14
|
+
...rest,
|
|
15
|
+
className: require_styles_styler.cx(mergedClassName, child.props.className),
|
|
16
|
+
"data-paddle-content": "true"
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
20
|
+
ref,
|
|
21
|
+
className: mergedClassName,
|
|
22
|
+
"data-paddle-content": "true",
|
|
23
|
+
...rest,
|
|
24
|
+
children
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
PaddleNavContent.displayName = "PaddleNavContent";
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.PaddleNavContent = PaddleNavContent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
import { UniversalPaddleNavContentProps } from "../../../types/dist/index.cjs";
|
|
3
|
+
import * as _$react from "react";
|
|
4
|
+
import { HTMLAttributes } from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/client/PaddleNav/PaddleNavContent.d.ts
|
|
7
|
+
type HtmlDivProps = Omit<HTMLAttributes<HTMLDivElement>, 'color'>;
|
|
8
|
+
type PaddleNavContentProps = UniversalPaddleNavContentProps & HtmlDivProps;
|
|
9
|
+
declare const PaddleNavContent: _$react.ForwardRefExoticComponent<UniversalPaddleNavContentProps & HtmlDivProps & _$react.RefAttributes<HTMLElement>>;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { PaddleNavContent, type PaddleNavContentProps };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { UniversalPaddleNavContentProps } from "../../../types/dist/index.js";
|
|
4
|
+
import * as _$react from "react";
|
|
5
|
+
import { HTMLAttributes } from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/components/client/PaddleNav/PaddleNavContent.d.ts
|
|
8
|
+
type HtmlDivProps = Omit<HTMLAttributes<HTMLDivElement>, 'color'>;
|
|
9
|
+
type PaddleNavContentProps = UniversalPaddleNavContentProps & HtmlDivProps;
|
|
10
|
+
declare const PaddleNavContent: _$react.ForwardRefExoticComponent<UniversalPaddleNavContentProps & HtmlDivProps & _$react.RefAttributes<HTMLElement>>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { PaddleNavContent, type PaddleNavContentProps };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
import { cx } from "../../../styles/styler.js";
|
|
4
|
+
import { cloneElement, forwardRef, isValidElement } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/client/PaddleNav/PaddleNavContent.tsx
|
|
7
|
+
const PaddleNavContent = forwardRef(function PaddleNavContent({ asChild = false, className, children, ...rest }, ref) {
|
|
8
|
+
const mergedClassName = cx("min-w-0 min-h-0 relative", className);
|
|
9
|
+
if (asChild && isValidElement(children)) {
|
|
10
|
+
const child = children;
|
|
11
|
+
return cloneElement(child, {
|
|
12
|
+
...rest,
|
|
13
|
+
className: cx(mergedClassName, child.props.className),
|
|
14
|
+
"data-paddle-content": "true"
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx("div", {
|
|
18
|
+
ref,
|
|
19
|
+
className: mergedClassName,
|
|
20
|
+
"data-paddle-content": "true",
|
|
21
|
+
...rest,
|
|
22
|
+
children
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
PaddleNavContent.displayName = "PaddleNavContent";
|
|
26
|
+
//#endregion
|
|
27
|
+
export { PaddleNavContent };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
const require_components_client_PaddleNav_PaddleButtonNext = require("./PaddleButtonNext.cjs");
|
|
5
|
+
const require_components_client_PaddleNav_PaddleButtonPrevious = require("./PaddleButtonPrevious.cjs");
|
|
6
|
+
const require_components_client_PaddleNav_PaddleNavContent = require("./PaddleNavContent.cjs");
|
|
7
|
+
const require_components_client_PaddleNav_PaddleNav = require("./PaddleNav.cjs");
|
|
8
|
+
exports.PaddleButtonNext = require_components_client_PaddleNav_PaddleButtonNext.PaddleButtonNext;
|
|
9
|
+
exports.PaddleButtonPrevious = require_components_client_PaddleNav_PaddleButtonPrevious.PaddleButtonPrevious;
|
|
10
|
+
exports.PaddleNav = require_components_client_PaddleNav_PaddleNav.PaddleNav;
|
|
11
|
+
exports.PaddleNavContent = require_components_client_PaddleNav_PaddleNavContent.PaddleNavContent;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
|
|
2
|
+
import { PaddleButtonNext, PaddleButtonNextProps } from "./PaddleButtonNext.cjs";
|
|
3
|
+
import { PaddleButtonPrevious, PaddleButtonPreviousProps } from "./PaddleButtonPrevious.cjs";
|
|
4
|
+
import { PaddleNav, PaddleNavProps } from "./PaddleNav.cjs";
|
|
5
|
+
import { PaddleNavContent, PaddleNavContentProps } from "./PaddleNavContent.cjs";
|
|
6
|
+
export { PaddleButtonNext, PaddleButtonNextProps, PaddleButtonPrevious, PaddleButtonPreviousProps, PaddleNav, PaddleNavContent, PaddleNavContentProps, PaddleNavProps };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { PaddleButtonNext, PaddleButtonNextProps } from "./PaddleButtonNext.js";
|
|
4
|
+
import { PaddleButtonPrevious, PaddleButtonPreviousProps } from "./PaddleButtonPrevious.js";
|
|
5
|
+
import { PaddleNav, PaddleNavProps } from "./PaddleNav.js";
|
|
6
|
+
import { PaddleNavContent, PaddleNavContentProps } from "./PaddleNavContent.js";
|
|
7
|
+
export { PaddleButtonNext, PaddleButtonNextProps, PaddleButtonPrevious, PaddleButtonPreviousProps, PaddleNav, PaddleNavContent, PaddleNavContentProps, PaddleNavProps };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
import { PaddleButtonNext } from "./PaddleButtonNext.js";
|
|
4
|
+
import { PaddleButtonPrevious } from "./PaddleButtonPrevious.js";
|
|
5
|
+
import { PaddleNavContent } from "./PaddleNavContent.js";
|
|
6
|
+
import { PaddleNav } from "./PaddleNav.js";
|
|
7
|
+
export { PaddleButtonNext, PaddleButtonPrevious, PaddleNav, PaddleNavContent };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
5
|
+
let _yahoo_uds_icons = require("@yahoo/uds-icons");
|
|
6
|
+
//#region src/components/client/PaddleNav/paddleButtonIcons.ts
|
|
7
|
+
function pickDefaultPaddleIcon(orientation, role) {
|
|
8
|
+
if (orientation === "vertical") return role === "previous" ? _yahoo_uds_icons.ChevronUp : _yahoo_uds_icons.ChevronDown;
|
|
9
|
+
return role === "previous" ? _yahoo_uds_icons.ChevronLeft : _yahoo_uds_icons.ChevronRight;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.pickDefaultPaddleIcon = pickDefaultPaddleIcon;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
import { PaddleNavOrientation } from "../../../types/dist/index.cjs";
|
|
3
|
+
import { IconVariant, SvgIconProps } from "../../../icons/dist/types.cjs";
|
|
4
|
+
import { PaddleButtonRole } from "./paddleNavContext.cjs";
|
|
5
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/components/client/PaddleNav/paddleButtonIcons.d.ts
|
|
8
|
+
declare function pickDefaultPaddleIcon(orientation: PaddleNavOrientation, role: PaddleButtonRole): {
|
|
9
|
+
({
|
|
10
|
+
size,
|
|
11
|
+
variant
|
|
12
|
+
}: SvgIconProps): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
metadata: {
|
|
14
|
+
name: string;
|
|
15
|
+
isSvgIcon: boolean;
|
|
16
|
+
variants: IconVariant[];
|
|
17
|
+
category: string;
|
|
18
|
+
tags: string[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { pickDefaultPaddleIcon };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { PaddleNavOrientation } from "../../../types/dist/index.js";
|
|
4
|
+
import { IconVariant, SvgIconProps } from "../../../icons/dist/types.js";
|
|
5
|
+
import { PaddleButtonRole } from "./paddleNavContext.js";
|
|
6
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/components/client/PaddleNav/paddleButtonIcons.d.ts
|
|
9
|
+
declare function pickDefaultPaddleIcon(orientation: PaddleNavOrientation, role: PaddleButtonRole): {
|
|
10
|
+
({
|
|
11
|
+
size,
|
|
12
|
+
variant
|
|
13
|
+
}: SvgIconProps): _$react_jsx_runtime0.JSX.Element;
|
|
14
|
+
metadata: {
|
|
15
|
+
name: string;
|
|
16
|
+
isSvgIcon: boolean;
|
|
17
|
+
variants: IconVariant[];
|
|
18
|
+
category: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { pickDefaultPaddleIcon };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp } from "@yahoo/uds-icons";
|
|
4
|
+
//#region src/components/client/PaddleNav/paddleButtonIcons.ts
|
|
5
|
+
function pickDefaultPaddleIcon(orientation, role) {
|
|
6
|
+
if (orientation === "vertical") return role === "previous" ? ChevronUp : ChevronDown;
|
|
7
|
+
return role === "previous" ? ChevronLeft : ChevronRight;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { pickDefaultPaddleIcon };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
//#region src/components/client/PaddleNav/paddleNavContext.tsx
|
|
7
|
+
const PaddleNavContext = (0, react.createContext)(null);
|
|
8
|
+
function usePaddleNavContext() {
|
|
9
|
+
const value = (0, react.useContext)(PaddleNavContext);
|
|
10
|
+
if (!value) throw new Error("PaddleButtonPrevious, PaddleButtonNext, and PaddleNavContent must be used within a PaddleNav component.");
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
const defaultPaddleHiddenByRole = {
|
|
14
|
+
previous: false,
|
|
15
|
+
next: false
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.PaddleNavContext = PaddleNavContext;
|
|
19
|
+
exports.defaultPaddleHiddenByRole = defaultPaddleHiddenByRole;
|
|
20
|
+
exports.usePaddleNavContext = usePaddleNavContext;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
import { PaddleNavOrientation, PaddleNavSize, PaddleNavVariant } from "../../../types/dist/index.cjs";
|
|
3
|
+
import * as _$react from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/client/PaddleNav/paddleNavContext.d.ts
|
|
6
|
+
type PaddleButtonRole = 'previous' | 'next';
|
|
7
|
+
type PaddleHiddenByRole = Record<PaddleButtonRole, boolean>;
|
|
8
|
+
interface PaddleNavContextValue {
|
|
9
|
+
orientation: PaddleNavOrientation;
|
|
10
|
+
outsideContent: boolean;
|
|
11
|
+
variant: PaddleNavVariant;
|
|
12
|
+
size: PaddleNavSize;
|
|
13
|
+
paddleHiddenByRole: PaddleHiddenByRole;
|
|
14
|
+
registerPaddleHidden: (role: PaddleButtonRole, hidden: boolean) => void;
|
|
15
|
+
}
|
|
16
|
+
declare const PaddleNavContext: _$react.Context<PaddleNavContextValue | null>;
|
|
17
|
+
declare function usePaddleNavContext(): PaddleNavContextValue;
|
|
18
|
+
declare const defaultPaddleHiddenByRole: PaddleHiddenByRole;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { type PaddleButtonRole, type PaddleHiddenByRole, PaddleNavContext, type PaddleNavContextValue, defaultPaddleHiddenByRole, usePaddleNavContext };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { PaddleNavOrientation, PaddleNavSize, PaddleNavVariant } from "../../../types/dist/index.js";
|
|
4
|
+
import * as _$react from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/client/PaddleNav/paddleNavContext.d.ts
|
|
7
|
+
type PaddleButtonRole = 'previous' | 'next';
|
|
8
|
+
type PaddleHiddenByRole = Record<PaddleButtonRole, boolean>;
|
|
9
|
+
interface PaddleNavContextValue {
|
|
10
|
+
orientation: PaddleNavOrientation;
|
|
11
|
+
outsideContent: boolean;
|
|
12
|
+
variant: PaddleNavVariant;
|
|
13
|
+
size: PaddleNavSize;
|
|
14
|
+
paddleHiddenByRole: PaddleHiddenByRole;
|
|
15
|
+
registerPaddleHidden: (role: PaddleButtonRole, hidden: boolean) => void;
|
|
16
|
+
}
|
|
17
|
+
declare const PaddleNavContext: _$react.Context<PaddleNavContextValue | null>;
|
|
18
|
+
declare function usePaddleNavContext(): PaddleNavContextValue;
|
|
19
|
+
declare const defaultPaddleHiddenByRole: PaddleHiddenByRole;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { type PaddleButtonRole, type PaddleHiddenByRole, PaddleNavContext, type PaddleNavContextValue, defaultPaddleHiddenByRole, usePaddleNavContext };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
//#region src/components/client/PaddleNav/paddleNavContext.tsx
|
|
5
|
+
const PaddleNavContext = createContext(null);
|
|
6
|
+
function usePaddleNavContext() {
|
|
7
|
+
const value = useContext(PaddleNavContext);
|
|
8
|
+
if (!value) throw new Error("PaddleButtonPrevious, PaddleButtonNext, and PaddleNavContent must be used within a PaddleNav component.");
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
const defaultPaddleHiddenByRole = {
|
|
12
|
+
previous: false,
|
|
13
|
+
next: false
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { PaddleNavContext, defaultPaddleHiddenByRole, usePaddleNavContext };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
//#region src/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.ts
|
|
5
|
+
function isCenterOrientation(orientation) {
|
|
6
|
+
return orientation === "horizontal" || orientation === "vertical";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Maps directionally-agnostic corner orientations to physical corners for layout.
|
|
10
|
+
* - `top-start` -> `top-left` (or `top-right` in RTL)
|
|
11
|
+
* - `top-end` -> `top-right` (or `top-left` in RTL)
|
|
12
|
+
* - `bottom-start` -> `bottom-left` (or `bottom-right` in RTL)
|
|
13
|
+
* - `bottom-end` -> `bottom-right` (or `bottom-left` in RTL)
|
|
14
|
+
*/
|
|
15
|
+
function resolvePaddleNavCornerOrientation(orientation, rtl) {
|
|
16
|
+
if (isCenterOrientation(orientation)) return orientation;
|
|
17
|
+
switch (orientation) {
|
|
18
|
+
case "top-start": return rtl ? "top-right" : "top-left";
|
|
19
|
+
case "top-end": return rtl ? "top-left" : "top-right";
|
|
20
|
+
case "bottom-start": return rtl ? "bottom-right" : "bottom-left";
|
|
21
|
+
case "bottom-end": return rtl ? "bottom-left" : "bottom-right";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.resolvePaddleNavCornerOrientation = resolvePaddleNavCornerOrientation;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
import { PaddleNavOrientation } from "../../../../types/dist/index.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.d.ts
|
|
5
|
+
type PhysicalCornerOrientation = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
6
|
+
type ResolvedPaddleNavLayoutOrientation = PhysicalCornerOrientation | Extract<PaddleNavOrientation, 'horizontal' | 'vertical'>;
|
|
7
|
+
/**
|
|
8
|
+
* Maps directionally-agnostic corner orientations to physical corners for layout.
|
|
9
|
+
* - `top-start` -> `top-left` (or `top-right` in RTL)
|
|
10
|
+
* - `top-end` -> `top-right` (or `top-left` in RTL)
|
|
11
|
+
* - `bottom-start` -> `bottom-left` (or `bottom-right` in RTL)
|
|
12
|
+
* - `bottom-end` -> `bottom-right` (or `bottom-left` in RTL)
|
|
13
|
+
*/
|
|
14
|
+
declare function resolvePaddleNavCornerOrientation(orientation: PaddleNavOrientation, rtl: boolean): ResolvedPaddleNavLayoutOrientation;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { type PhysicalCornerOrientation, type ResolvedPaddleNavLayoutOrientation, resolvePaddleNavCornerOrientation };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { PaddleNavOrientation } from "../../../../types/dist/index.js";
|
|
4
|
+
|
|
5
|
+
//#region src/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.d.ts
|
|
6
|
+
type PhysicalCornerOrientation = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
7
|
+
type ResolvedPaddleNavLayoutOrientation = PhysicalCornerOrientation | Extract<PaddleNavOrientation, 'horizontal' | 'vertical'>;
|
|
8
|
+
/**
|
|
9
|
+
* Maps directionally-agnostic corner orientations to physical corners for layout.
|
|
10
|
+
* - `top-start` -> `top-left` (or `top-right` in RTL)
|
|
11
|
+
* - `top-end` -> `top-right` (or `top-left` in RTL)
|
|
12
|
+
* - `bottom-start` -> `bottom-left` (or `bottom-right` in RTL)
|
|
13
|
+
* - `bottom-end` -> `bottom-right` (or `bottom-left` in RTL)
|
|
14
|
+
*/
|
|
15
|
+
declare function resolvePaddleNavCornerOrientation(orientation: PaddleNavOrientation, rtl: boolean): ResolvedPaddleNavLayoutOrientation;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { type PhysicalCornerOrientation, type ResolvedPaddleNavLayoutOrientation, resolvePaddleNavCornerOrientation };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
"use client";
|
|
3
|
+
//#region src/components/client/PaddleNav/utils/resolvePaddleNavCornerOrientation.ts
|
|
4
|
+
function isCenterOrientation(orientation) {
|
|
5
|
+
return orientation === "horizontal" || orientation === "vertical";
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Maps directionally-agnostic corner orientations to physical corners for layout.
|
|
9
|
+
* - `top-start` -> `top-left` (or `top-right` in RTL)
|
|
10
|
+
* - `top-end` -> `top-right` (or `top-left` in RTL)
|
|
11
|
+
* - `bottom-start` -> `bottom-left` (or `bottom-right` in RTL)
|
|
12
|
+
* - `bottom-end` -> `bottom-right` (or `bottom-left` in RTL)
|
|
13
|
+
*/
|
|
14
|
+
function resolvePaddleNavCornerOrientation(orientation, rtl) {
|
|
15
|
+
if (isCenterOrientation(orientation)) return orientation;
|
|
16
|
+
switch (orientation) {
|
|
17
|
+
case "top-start": return rtl ? "top-right" : "top-left";
|
|
18
|
+
case "top-end": return rtl ? "top-left" : "top-right";
|
|
19
|
+
case "bottom-start": return rtl ? "bottom-right" : "bottom-left";
|
|
20
|
+
case "bottom-end": return rtl ? "bottom-left" : "bottom-right";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { resolvePaddleNavCornerOrientation };
|
|
@@ -29,7 +29,7 @@ declare function usePopoverConfig(sizeProp?: PopoverSize | undefined, variantPro
|
|
|
29
29
|
gap: SpacingAlias;
|
|
30
30
|
dismissButtonSpacing: SpacingAlias;
|
|
31
31
|
dismissIconSize: number;
|
|
32
|
-
ariaKitPlacement: ("
|
|
32
|
+
ariaKitPlacement: ("bottom-start" | "bottom-end" | "top-start" | "top-end" | ("bottom" | "left" | "right" | "top") | "left-start" | "right-start" | "left-end" | "right-end") | undefined;
|
|
33
33
|
animationDuration: number;
|
|
34
34
|
};
|
|
35
35
|
//#endregion
|
|
@@ -30,7 +30,7 @@ declare function usePopoverConfig(sizeProp?: PopoverSize | undefined, variantPro
|
|
|
30
30
|
gap: SpacingAlias;
|
|
31
31
|
dismissButtonSpacing: SpacingAlias;
|
|
32
32
|
dismissIconSize: number;
|
|
33
|
-
ariaKitPlacement: ("
|
|
33
|
+
ariaKitPlacement: ("bottom-start" | "bottom-end" | "top-start" | "top-end" | ("bottom" | "left" | "right" | "top") | "left-start" | "right-start" | "left-end" | "right-end") | undefined;
|
|
34
34
|
animationDuration: number;
|
|
35
35
|
};
|
|
36
36
|
//#endregion
|