@aviala-design/spiral 2.8.1 → 2.9.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/component-changelogs.json +18 -0
- package/dist/index.cjs +788 -579
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +73 -1
- package/dist/index.d.ts +73 -1
- package/dist/index.js +668 -466
- package/dist/index.js.map +1 -1
- package/dist/props.json +199 -0
- package/dist/styles.css +33 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -76,6 +76,18 @@ __export(index_exports, {
|
|
|
76
76
|
DatePickerContent: () => DatePickerContent,
|
|
77
77
|
DatePickerField: () => DatePickerField,
|
|
78
78
|
DatePickerTrigger: () => DatePickerTrigger,
|
|
79
|
+
Drawer: () => Drawer,
|
|
80
|
+
DrawerBody: () => DrawerBody,
|
|
81
|
+
DrawerClose: () => DrawerClose,
|
|
82
|
+
DrawerContent: () => DrawerContent,
|
|
83
|
+
DrawerDescription: () => DrawerDescription,
|
|
84
|
+
DrawerFooter: () => DrawerFooter,
|
|
85
|
+
DrawerHeader: () => DrawerHeader,
|
|
86
|
+
DrawerHeaderText: () => DrawerHeaderText,
|
|
87
|
+
DrawerOverlay: () => DrawerOverlay,
|
|
88
|
+
DrawerPortal: () => DrawerPortal,
|
|
89
|
+
DrawerTitle: () => DrawerTitle,
|
|
90
|
+
DrawerTrigger: () => DrawerTrigger,
|
|
79
91
|
Feedback: () => Feedback,
|
|
80
92
|
Fieldset: () => Fieldset,
|
|
81
93
|
Form: () => Form,
|
|
@@ -191,6 +203,7 @@ __export(index_exports, {
|
|
|
191
203
|
backChevronSide: () => backChevronSide,
|
|
192
204
|
buttonVariants: () => buttonVariants,
|
|
193
205
|
cn: () => cn,
|
|
206
|
+
drawerContentVariants: () => drawerContentVariants,
|
|
194
207
|
enUS: () => en_US_default,
|
|
195
208
|
formatDisplayDate: () => formatDisplayDate,
|
|
196
209
|
formatMonthYear: () => formatMonthYear,
|
|
@@ -528,6 +541,9 @@ var zhCN = {
|
|
|
528
541
|
Modal: {
|
|
529
542
|
close: "\u5173\u95ED\u5BF9\u8BDD\u6846"
|
|
530
543
|
},
|
|
544
|
+
Drawer: {
|
|
545
|
+
close: "\u5173\u95ED\u62BD\u5C49"
|
|
546
|
+
},
|
|
531
547
|
Feedback: {
|
|
532
548
|
close: "\u5173\u95ED"
|
|
533
549
|
},
|
|
@@ -662,6 +678,9 @@ var enUS = {
|
|
|
662
678
|
Modal: {
|
|
663
679
|
close: "Close dialog"
|
|
664
680
|
},
|
|
681
|
+
Drawer: {
|
|
682
|
+
close: "Close drawer"
|
|
683
|
+
},
|
|
665
684
|
Feedback: {
|
|
666
685
|
close: "Dismiss"
|
|
667
686
|
},
|
|
@@ -5197,6 +5216,7 @@ var Slider = (0, import_react39.forwardRef)(
|
|
|
5197
5216
|
onLostPointerCapture,
|
|
5198
5217
|
showValueTooltip = false,
|
|
5199
5218
|
formatValueTooltip,
|
|
5219
|
+
orientation,
|
|
5200
5220
|
...props
|
|
5201
5221
|
}, ref) => {
|
|
5202
5222
|
const resolvedType = type ?? "default";
|
|
@@ -5209,10 +5229,31 @@ var Slider = (0, import_react39.forwardRef)(
|
|
|
5209
5229
|
const [activeThumbIndex, setActiveThumbIndex] = (0, import_react39.useState)(
|
|
5210
5230
|
null
|
|
5211
5231
|
);
|
|
5232
|
+
const valueTransitionAxisKey = `${resolvedType}:${orientation ?? "horizontal"}`;
|
|
5233
|
+
const [valueTransitionGate, setValueTransitionGate] = (0, import_react39.useState)({
|
|
5234
|
+
axisKey: valueTransitionAxisKey,
|
|
5235
|
+
ready: false
|
|
5236
|
+
});
|
|
5237
|
+
const valueTransitionReady = valueTransitionGate.axisKey === valueTransitionAxisKey && valueTransitionGate.ready;
|
|
5212
5238
|
const [uncontrolledValue, setUncontrolledValue] = (0, import_react39.useState)(
|
|
5213
5239
|
resolvedDefaultValue
|
|
5214
5240
|
);
|
|
5215
5241
|
const currentValues = value ?? uncontrolledValue;
|
|
5242
|
+
(0, import_react39.useLayoutEffect)(() => {
|
|
5243
|
+
let frame2 = 0;
|
|
5244
|
+
const frame1 = requestAnimationFrame(() => {
|
|
5245
|
+
frame2 = requestAnimationFrame(() => {
|
|
5246
|
+
setValueTransitionGate({
|
|
5247
|
+
axisKey: valueTransitionAxisKey,
|
|
5248
|
+
ready: true
|
|
5249
|
+
});
|
|
5250
|
+
});
|
|
5251
|
+
});
|
|
5252
|
+
return () => {
|
|
5253
|
+
cancelAnimationFrame(frame1);
|
|
5254
|
+
cancelAnimationFrame(frame2);
|
|
5255
|
+
};
|
|
5256
|
+
}, [valueTransitionAxisKey]);
|
|
5216
5257
|
const handleValueChange = (next) => {
|
|
5217
5258
|
if (value == null) setUncontrolledValue(next);
|
|
5218
5259
|
if (showValueTooltip) {
|
|
@@ -5264,7 +5305,9 @@ var Slider = (0, import_react39.forwardRef)(
|
|
|
5264
5305
|
"data-type": resolvedType,
|
|
5265
5306
|
"data-disabled": disabled ? "true" : void 0,
|
|
5266
5307
|
"data-dragging": isDragging ? "true" : void 0,
|
|
5308
|
+
"data-value-transition": valueTransitionReady ? "true" : void 0,
|
|
5267
5309
|
"data-value-tooltip": showValueTooltip ? "true" : void 0,
|
|
5310
|
+
orientation,
|
|
5268
5311
|
onValueChange: handleValueChange,
|
|
5269
5312
|
onPointerDown: handlePointerDown,
|
|
5270
5313
|
onPointerMove: handlePointerMove,
|
|
@@ -8753,10 +8796,163 @@ var ModalFooter = (0, import_react52.forwardRef)(
|
|
|
8753
8796
|
);
|
|
8754
8797
|
ModalFooter.displayName = "ModalFooter";
|
|
8755
8798
|
|
|
8756
|
-
// src/components/
|
|
8757
|
-
var
|
|
8799
|
+
// src/components/drawer.tsx
|
|
8800
|
+
var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
8801
|
+
var import_icons15 = require("@aviala-design/icons");
|
|
8802
|
+
var import_class_variance_authority12 = require("class-variance-authority");
|
|
8758
8803
|
var import_react53 = require("react");
|
|
8759
8804
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
8805
|
+
var DRAWER_ICON_SIZE = 22;
|
|
8806
|
+
var drawerContentVariants = (0, import_class_variance_authority12.cva)("aviala-drawer-content", {
|
|
8807
|
+
variants: {
|
|
8808
|
+
position: {
|
|
8809
|
+
left: "aviala-drawer-content--position-left",
|
|
8810
|
+
right: "aviala-drawer-content--position-right",
|
|
8811
|
+
top: "aviala-drawer-content--position-top",
|
|
8812
|
+
bottom: "aviala-drawer-content--position-bottom"
|
|
8813
|
+
}
|
|
8814
|
+
},
|
|
8815
|
+
defaultVariants: {
|
|
8816
|
+
position: "right"
|
|
8817
|
+
}
|
|
8818
|
+
});
|
|
8819
|
+
function assignRef4(ref, value) {
|
|
8820
|
+
if (!ref) return;
|
|
8821
|
+
if (typeof ref === "function") {
|
|
8822
|
+
ref(value);
|
|
8823
|
+
return;
|
|
8824
|
+
}
|
|
8825
|
+
ref.current = value;
|
|
8826
|
+
}
|
|
8827
|
+
function renderDrawerIcon(node) {
|
|
8828
|
+
if (!node) return null;
|
|
8829
|
+
const content = (0, import_react53.isValidElement)(node) && typeof node.type !== "string" ? (0, import_react53.cloneElement)(node, {
|
|
8830
|
+
width: DRAWER_ICON_SIZE,
|
|
8831
|
+
height: DRAWER_ICON_SIZE,
|
|
8832
|
+
className: cn(
|
|
8833
|
+
node.props.className,
|
|
8834
|
+
"shrink-0"
|
|
8835
|
+
)
|
|
8836
|
+
}) : node;
|
|
8837
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "aviala-drawer__icon", "aria-hidden": true, children: content });
|
|
8838
|
+
}
|
|
8839
|
+
var Drawer = DialogPrimitive2.Root;
|
|
8840
|
+
var DrawerTrigger = DialogPrimitive2.Trigger;
|
|
8841
|
+
var DrawerPortal = DialogPrimitive2.Portal;
|
|
8842
|
+
var DrawerClose = DialogPrimitive2.Close;
|
|
8843
|
+
var DrawerOverlay = (0, import_react53.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
8844
|
+
DialogPrimitive2.Overlay,
|
|
8845
|
+
{
|
|
8846
|
+
ref,
|
|
8847
|
+
className: cn("aviala-drawer-overlay", className),
|
|
8848
|
+
...props
|
|
8849
|
+
}
|
|
8850
|
+
));
|
|
8851
|
+
DrawerOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
8852
|
+
var DrawerContent = (0, import_react53.forwardRef)(
|
|
8853
|
+
({
|
|
8854
|
+
className,
|
|
8855
|
+
children,
|
|
8856
|
+
position = "right",
|
|
8857
|
+
portalled = true,
|
|
8858
|
+
showOverlay = true,
|
|
8859
|
+
onOpenAutoFocus,
|
|
8860
|
+
...props
|
|
8861
|
+
}, ref) => {
|
|
8862
|
+
const [overlayContainer, setOverlayContainer] = (0, import_react53.useState)(null);
|
|
8863
|
+
const overlay = showOverlay ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerOverlay, {}) : null;
|
|
8864
|
+
const panel = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
8865
|
+
DialogPrimitive2.Content,
|
|
8866
|
+
{
|
|
8867
|
+
ref: (node) => {
|
|
8868
|
+
assignRef4(ref, node);
|
|
8869
|
+
setOverlayContainer(node);
|
|
8870
|
+
},
|
|
8871
|
+
className: cn(drawerContentVariants({ position }), className),
|
|
8872
|
+
"data-position": position ?? "right",
|
|
8873
|
+
onOpenAutoFocus,
|
|
8874
|
+
...props,
|
|
8875
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(OverlayContainerProvider, { container: overlayContainer, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "aviala-drawer-content__surface", children }) })
|
|
8876
|
+
}
|
|
8877
|
+
);
|
|
8878
|
+
if (!portalled) {
|
|
8879
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
8880
|
+
overlay,
|
|
8881
|
+
panel
|
|
8882
|
+
] });
|
|
8883
|
+
}
|
|
8884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(DialogPrimitive2.Portal, { children: [
|
|
8885
|
+
overlay,
|
|
8886
|
+
panel
|
|
8887
|
+
] });
|
|
8888
|
+
}
|
|
8889
|
+
);
|
|
8890
|
+
DrawerContent.displayName = DialogPrimitive2.Content.displayName;
|
|
8891
|
+
var DrawerHeader = (0, import_react53.forwardRef)(
|
|
8892
|
+
({
|
|
8893
|
+
className,
|
|
8894
|
+
children,
|
|
8895
|
+
icon,
|
|
8896
|
+
showIcon = false,
|
|
8897
|
+
showClose = true,
|
|
8898
|
+
closeLabel,
|
|
8899
|
+
...props
|
|
8900
|
+
}, ref) => {
|
|
8901
|
+
const locale = useLocaleMessages("Drawer");
|
|
8902
|
+
const resolvedCloseLabel = closeLabel ?? locale.close;
|
|
8903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { ref, className: cn("aviala-drawer__header", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "aviala-drawer__header-row", children: [
|
|
8904
|
+
showIcon ? renderDrawerIcon(icon) : null,
|
|
8905
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "aviala-drawer__header-main", children }),
|
|
8906
|
+
showClose ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
8907
|
+
Button,
|
|
8908
|
+
{
|
|
8909
|
+
type: "button",
|
|
8910
|
+
mode: "noBackgroundCustom",
|
|
8911
|
+
iconOnly: true,
|
|
8912
|
+
"aria-label": resolvedCloseLabel,
|
|
8913
|
+
className: "aviala-drawer__close",
|
|
8914
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.SymbolWrong, { "aria-hidden": true })
|
|
8915
|
+
}
|
|
8916
|
+
) }) : null
|
|
8917
|
+
] }) });
|
|
8918
|
+
}
|
|
8919
|
+
);
|
|
8920
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
8921
|
+
var DrawerTitle = (0, import_react53.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DialogPrimitive2.Title, { ref, asChild: true, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Typography, { level: "text", className: cn("aviala-drawer__title", className), children }) }));
|
|
8922
|
+
DrawerTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
8923
|
+
var DrawerDescription = (0, import_react53.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DialogPrimitive2.Description, { ref, asChild: true, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Typography, { level: "caption", className: cn("aviala-drawer__description", className), children }) }));
|
|
8924
|
+
DrawerDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
8925
|
+
function DrawerHeaderText({
|
|
8926
|
+
title,
|
|
8927
|
+
description,
|
|
8928
|
+
...props
|
|
8929
|
+
}) {
|
|
8930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerHeader, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "aviala-drawer__header-typeface", children: [
|
|
8931
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerTitle, { children: title }),
|
|
8932
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerDescription, { children: description }) : null
|
|
8933
|
+
] }) });
|
|
8934
|
+
}
|
|
8935
|
+
var DrawerBody = (0, import_react53.forwardRef)(
|
|
8936
|
+
({ className, children, layout = "default", title, description, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { ref, className: cn("aviala-drawer__body", className), ...props, children: layout === "text" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
8937
|
+
Typeface,
|
|
8938
|
+
{
|
|
8939
|
+
className: "aviala-drawer__body-typeface",
|
|
8940
|
+
content: "textTitle",
|
|
8941
|
+
primary: title,
|
|
8942
|
+
secondary: description ?? children
|
|
8943
|
+
}
|
|
8944
|
+
) : children })
|
|
8945
|
+
);
|
|
8946
|
+
DrawerBody.displayName = "DrawerBody";
|
|
8947
|
+
var DrawerFooter = (0, import_react53.forwardRef)(
|
|
8948
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { ref, className: cn("aviala-drawer__footer", className), ...props })
|
|
8949
|
+
);
|
|
8950
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
8951
|
+
|
|
8952
|
+
// src/components/tooltip.tsx
|
|
8953
|
+
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
8954
|
+
var import_react54 = require("react");
|
|
8955
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
8760
8956
|
var TOOLTIP_DELAY_DURATION = 300;
|
|
8761
8957
|
function TooltipProvider({
|
|
8762
8958
|
children,
|
|
@@ -8764,7 +8960,7 @@ function TooltipProvider({
|
|
|
8764
8960
|
skipDelayDuration = 0,
|
|
8765
8961
|
...props
|
|
8766
8962
|
}) {
|
|
8767
|
-
return /* @__PURE__ */ (0,
|
|
8963
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8768
8964
|
TooltipPrimitive.Provider,
|
|
8769
8965
|
{
|
|
8770
8966
|
delayDuration,
|
|
@@ -8776,7 +8972,7 @@ function TooltipProvider({
|
|
|
8776
8972
|
}
|
|
8777
8973
|
var Tooltip = TooltipPrimitive.Root;
|
|
8778
8974
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
8779
|
-
var TooltipContent = (0,
|
|
8975
|
+
var TooltipContent = (0, import_react54.forwardRef)(
|
|
8780
8976
|
({
|
|
8781
8977
|
className,
|
|
8782
8978
|
children,
|
|
@@ -8787,7 +8983,7 @@ var TooltipContent = (0, import_react53.forwardRef)(
|
|
|
8787
8983
|
...props
|
|
8788
8984
|
}, ref) => {
|
|
8789
8985
|
const overlayContainer = useOverlayPortalContainer();
|
|
8790
|
-
return /* @__PURE__ */ (0,
|
|
8986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TooltipPrimitive.Portal, { container: overlayContainer, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
8791
8987
|
TooltipPrimitive.Content,
|
|
8792
8988
|
{
|
|
8793
8989
|
ref,
|
|
@@ -8796,7 +8992,7 @@ var TooltipContent = (0, import_react53.forwardRef)(
|
|
|
8796
8992
|
className: cn("aviala-tooltip-content", className),
|
|
8797
8993
|
...props,
|
|
8798
8994
|
children: [
|
|
8799
|
-
/* @__PURE__ */ (0,
|
|
8995
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8800
8996
|
"div",
|
|
8801
8997
|
{
|
|
8802
8998
|
className: cn(
|
|
@@ -8806,13 +9002,13 @@ var TooltipContent = (0, import_react53.forwardRef)(
|
|
|
8806
9002
|
children
|
|
8807
9003
|
}
|
|
8808
9004
|
),
|
|
8809
|
-
showArrow ? /* @__PURE__ */ (0,
|
|
9005
|
+
showArrow ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8810
9006
|
TooltipPrimitive.Arrow,
|
|
8811
9007
|
{
|
|
8812
9008
|
asChild: true,
|
|
8813
9009
|
width: TOOLTIP_POINTER.width,
|
|
8814
9010
|
height: TOOLTIP_POINTER.height,
|
|
8815
|
-
children: /* @__PURE__ */ (0,
|
|
9011
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
8816
9012
|
OverlayPointerSvg,
|
|
8817
9013
|
{
|
|
8818
9014
|
className: "aviala-tooltip-content__arrow",
|
|
@@ -8831,8 +9027,8 @@ var TooltipContent = (0, import_react53.forwardRef)(
|
|
|
8831
9027
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
8832
9028
|
|
|
8833
9029
|
// src/components/responsive-tooltip.tsx
|
|
8834
|
-
var
|
|
8835
|
-
var
|
|
9030
|
+
var import_react55 = require("react");
|
|
9031
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
8836
9032
|
var RESPONSIVE_TOOLTIP_LONG_PRESS_MS = 500;
|
|
8837
9033
|
var LONG_PRESS_MOVE_THRESHOLD_PX = 10;
|
|
8838
9034
|
function ResponsiveTooltip({
|
|
@@ -8853,26 +9049,26 @@ function ResponsiveTooltip({
|
|
|
8853
9049
|
}) {
|
|
8854
9050
|
const coarse = useCoarsePointer();
|
|
8855
9051
|
const isControlled = openProp !== void 0;
|
|
8856
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
9052
|
+
const [internalOpen, setInternalOpen] = (0, import_react55.useState)(defaultOpen);
|
|
8857
9053
|
const open = isControlled ? openProp : internalOpen;
|
|
8858
|
-
const setOpen = (0,
|
|
9054
|
+
const setOpen = (0, import_react55.useCallback)(
|
|
8859
9055
|
(next) => {
|
|
8860
9056
|
if (!isControlled) setInternalOpen(next);
|
|
8861
9057
|
onOpenChange?.(next);
|
|
8862
9058
|
},
|
|
8863
9059
|
[isControlled, onOpenChange]
|
|
8864
9060
|
);
|
|
8865
|
-
const longPressTimerRef = (0,
|
|
8866
|
-
const pressOriginRef = (0,
|
|
8867
|
-
const suppressClickRef = (0,
|
|
8868
|
-
const clearLongPressTimer = (0,
|
|
9061
|
+
const longPressTimerRef = (0, import_react55.useRef)(null);
|
|
9062
|
+
const pressOriginRef = (0, import_react55.useRef)(null);
|
|
9063
|
+
const suppressClickRef = (0, import_react55.useRef)(false);
|
|
9064
|
+
const clearLongPressTimer = (0, import_react55.useCallback)(() => {
|
|
8869
9065
|
if (longPressTimerRef.current != null) {
|
|
8870
9066
|
clearTimeout(longPressTimerRef.current);
|
|
8871
9067
|
longPressTimerRef.current = null;
|
|
8872
9068
|
}
|
|
8873
9069
|
}, []);
|
|
8874
|
-
(0,
|
|
8875
|
-
const handlePointerDown = (0,
|
|
9070
|
+
(0, import_react55.useEffect)(() => () => clearLongPressTimer(), [clearLongPressTimer]);
|
|
9071
|
+
const handlePointerDown = (0, import_react55.useCallback)(
|
|
8876
9072
|
(event) => {
|
|
8877
9073
|
if (event.pointerType === "mouse") return;
|
|
8878
9074
|
clearLongPressTimer();
|
|
@@ -8886,7 +9082,7 @@ function ResponsiveTooltip({
|
|
|
8886
9082
|
},
|
|
8887
9083
|
[clearLongPressTimer, longPressMs, setOpen]
|
|
8888
9084
|
);
|
|
8889
|
-
const handlePointerMove = (0,
|
|
9085
|
+
const handlePointerMove = (0, import_react55.useCallback)(
|
|
8890
9086
|
(event) => {
|
|
8891
9087
|
const origin = pressOriginRef.current;
|
|
8892
9088
|
if (!origin || longPressTimerRef.current == null) return;
|
|
@@ -8899,13 +9095,13 @@ function ResponsiveTooltip({
|
|
|
8899
9095
|
},
|
|
8900
9096
|
[clearLongPressTimer]
|
|
8901
9097
|
);
|
|
8902
|
-
const handlePointerEnd = (0,
|
|
9098
|
+
const handlePointerEnd = (0, import_react55.useCallback)(() => {
|
|
8903
9099
|
clearLongPressTimer();
|
|
8904
9100
|
pressOriginRef.current = null;
|
|
8905
9101
|
}, [clearLongPressTimer]);
|
|
8906
9102
|
if (coarse) {
|
|
8907
|
-
return /* @__PURE__ */ (0,
|
|
8908
|
-
/* @__PURE__ */ (0,
|
|
9103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
9104
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
8909
9105
|
PopoverTrigger,
|
|
8910
9106
|
{
|
|
8911
9107
|
asChild: true,
|
|
@@ -8928,7 +9124,7 @@ function ResponsiveTooltip({
|
|
|
8928
9124
|
children
|
|
8929
9125
|
}
|
|
8930
9126
|
),
|
|
8931
|
-
/* @__PURE__ */ (0,
|
|
9127
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
8932
9128
|
PopoverContent,
|
|
8933
9129
|
{
|
|
8934
9130
|
appearance: "tooltip",
|
|
@@ -8944,7 +9140,7 @@ function ResponsiveTooltip({
|
|
|
8944
9140
|
)
|
|
8945
9141
|
] });
|
|
8946
9142
|
}
|
|
8947
|
-
return /* @__PURE__ */ (0,
|
|
9143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
8948
9144
|
Tooltip,
|
|
8949
9145
|
{
|
|
8950
9146
|
delayDuration,
|
|
@@ -8952,8 +9148,8 @@ function ResponsiveTooltip({
|
|
|
8952
9148
|
defaultOpen,
|
|
8953
9149
|
onOpenChange,
|
|
8954
9150
|
children: [
|
|
8955
|
-
/* @__PURE__ */ (0,
|
|
8956
|
-
/* @__PURE__ */ (0,
|
|
9151
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipTrigger, { asChild: true, children }),
|
|
9152
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
8957
9153
|
TooltipContent,
|
|
8958
9154
|
{
|
|
8959
9155
|
side,
|
|
@@ -8972,12 +9168,12 @@ function ResponsiveTooltip({
|
|
|
8972
9168
|
}
|
|
8973
9169
|
|
|
8974
9170
|
// src/components/feedback.tsx
|
|
8975
|
-
var
|
|
8976
|
-
var
|
|
8977
|
-
var
|
|
8978
|
-
var
|
|
9171
|
+
var import_class_variance_authority13 = require("class-variance-authority");
|
|
9172
|
+
var import_icons16 = require("@aviala-design/icons");
|
|
9173
|
+
var import_react56 = require("react");
|
|
9174
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
8979
9175
|
var FEEDBACK_ICON_SIZE = 22;
|
|
8980
|
-
var feedbackVariants = (0,
|
|
9176
|
+
var feedbackVariants = (0, import_class_variance_authority13.cva)("aviala-feedback", {
|
|
8981
9177
|
variants: {
|
|
8982
9178
|
type: {
|
|
8983
9179
|
information: "aviala-feedback--type-information",
|
|
@@ -9003,7 +9199,7 @@ var feedbackVariants = (0, import_class_variance_authority12.cva)("aviala-feedba
|
|
|
9003
9199
|
});
|
|
9004
9200
|
function renderFeedbackIcon(node) {
|
|
9005
9201
|
if (!node) return null;
|
|
9006
|
-
const content = (0,
|
|
9202
|
+
const content = (0, import_react56.isValidElement)(node) && typeof node.type !== "string" ? (0, import_react56.cloneElement)(node, {
|
|
9007
9203
|
width: FEEDBACK_ICON_SIZE,
|
|
9008
9204
|
height: FEEDBACK_ICON_SIZE,
|
|
9009
9205
|
className: cn(
|
|
@@ -9011,25 +9207,25 @@ function renderFeedbackIcon(node) {
|
|
|
9011
9207
|
"shrink-0"
|
|
9012
9208
|
)
|
|
9013
9209
|
}) : node;
|
|
9014
|
-
return /* @__PURE__ */ (0,
|
|
9210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "aviala-feedback__icon", "aria-hidden": true, children: content });
|
|
9015
9211
|
}
|
|
9016
9212
|
function defaultStatusIcon(type, mode) {
|
|
9017
9213
|
const iconMode = mode === "primary" ? "fill" : "default";
|
|
9018
9214
|
const thickness = "Regular";
|
|
9019
9215
|
switch (type) {
|
|
9020
9216
|
case "information":
|
|
9021
|
-
return /* @__PURE__ */ (0,
|
|
9217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.SymbolInformationCircle, { thickness, mode: iconMode, "aria-hidden": true });
|
|
9022
9218
|
case "warning":
|
|
9023
|
-
return /* @__PURE__ */ (0,
|
|
9219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.SymbolWarningCircle, { thickness, mode: iconMode, "aria-hidden": true });
|
|
9024
9220
|
case "wrong":
|
|
9025
|
-
return /* @__PURE__ */ (0,
|
|
9221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.SymbolWrongCircle, { thickness, mode: iconMode, "aria-hidden": true });
|
|
9026
9222
|
case "success":
|
|
9027
|
-
return /* @__PURE__ */ (0,
|
|
9223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.SymbolRightCircle, { thickness, mode: iconMode, "aria-hidden": true });
|
|
9028
9224
|
case "normal":
|
|
9029
|
-
return /* @__PURE__ */ (0,
|
|
9225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.GeneralNotification, { thickness, mode: "default", "aria-hidden": true });
|
|
9030
9226
|
}
|
|
9031
9227
|
}
|
|
9032
|
-
var Feedback = (0,
|
|
9228
|
+
var Feedback = (0, import_react56.forwardRef)(
|
|
9033
9229
|
({
|
|
9034
9230
|
className,
|
|
9035
9231
|
type = "information",
|
|
@@ -9053,7 +9249,7 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9053
9249
|
const tone = mode === "primary" ? "white" : "default";
|
|
9054
9250
|
const isSmall = resolvedSize === "small";
|
|
9055
9251
|
const resolvedRole = resolvedType === "wrong" ? "alert" : "status";
|
|
9056
|
-
return /* @__PURE__ */ (0,
|
|
9252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
9057
9253
|
"div",
|
|
9058
9254
|
{
|
|
9059
9255
|
ref,
|
|
@@ -9067,9 +9263,9 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9067
9263
|
"data-size": resolvedSize,
|
|
9068
9264
|
"data-mode": mode,
|
|
9069
9265
|
...props,
|
|
9070
|
-
children: /* @__PURE__ */ (0,
|
|
9266
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "aviala-feedback__body", children: [
|
|
9071
9267
|
renderFeedbackIcon(icon ?? defaultStatusIcon(resolvedType, mode)),
|
|
9072
|
-
isSmall ? /* @__PURE__ */ (0,
|
|
9268
|
+
isSmall ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Typography, { level: "text", tone, className: "aviala-feedback__title", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
9073
9269
|
Typeface,
|
|
9074
9270
|
{
|
|
9075
9271
|
className: "aviala-feedback__typeface",
|
|
@@ -9079,7 +9275,7 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9079
9275
|
tone
|
|
9080
9276
|
}
|
|
9081
9277
|
),
|
|
9082
|
-
action ? /* @__PURE__ */ (0,
|
|
9278
|
+
action ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
9083
9279
|
Link,
|
|
9084
9280
|
{
|
|
9085
9281
|
level: "text",
|
|
@@ -9095,7 +9291,7 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9095
9291
|
children: action
|
|
9096
9292
|
}
|
|
9097
9293
|
) : null,
|
|
9098
|
-
showClose ? /* @__PURE__ */ (0,
|
|
9294
|
+
showClose ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
9099
9295
|
Link,
|
|
9100
9296
|
{
|
|
9101
9297
|
level: "text",
|
|
@@ -9104,7 +9300,7 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9104
9300
|
href: onClose ? "#" : void 0,
|
|
9105
9301
|
"aria-label": resolvedCloseLabel,
|
|
9106
9302
|
className: "aviala-feedback__close",
|
|
9107
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
9303
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons16.SymbolWrong, { "aria-hidden": true }),
|
|
9108
9304
|
onClick: (event) => {
|
|
9109
9305
|
if (onClose) {
|
|
9110
9306
|
event.preventDefault();
|
|
@@ -9121,12 +9317,12 @@ var Feedback = (0, import_react55.forwardRef)(
|
|
|
9121
9317
|
Feedback.displayName = "Feedback";
|
|
9122
9318
|
|
|
9123
9319
|
// src/components/alert.tsx
|
|
9124
|
-
var
|
|
9125
|
-
var
|
|
9126
|
-
var
|
|
9127
|
-
var
|
|
9320
|
+
var import_icons17 = require("@aviala-design/icons");
|
|
9321
|
+
var import_class_variance_authority14 = require("class-variance-authority");
|
|
9322
|
+
var import_react57 = require("react");
|
|
9323
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
9128
9324
|
var ALERT_ICON_SIZE = 16;
|
|
9129
|
-
var alertVariants = (0,
|
|
9325
|
+
var alertVariants = (0, import_class_variance_authority14.cva)("aviala-alert", {
|
|
9130
9326
|
variants: {
|
|
9131
9327
|
type: {
|
|
9132
9328
|
info: "aviala-alert--type-info",
|
|
@@ -9152,7 +9348,7 @@ var alertVariants = (0, import_class_variance_authority13.cva)("aviala-alert", {
|
|
|
9152
9348
|
});
|
|
9153
9349
|
function renderAlertIcon(node) {
|
|
9154
9350
|
if (!node) return null;
|
|
9155
|
-
const content = (0,
|
|
9351
|
+
const content = (0, import_react57.isValidElement)(node) && typeof node.type !== "string" ? (0, import_react57.cloneElement)(node, {
|
|
9156
9352
|
width: ALERT_ICON_SIZE,
|
|
9157
9353
|
height: ALERT_ICON_SIZE,
|
|
9158
9354
|
className: cn(
|
|
@@ -9160,23 +9356,23 @@ function renderAlertIcon(node) {
|
|
|
9160
9356
|
"shrink-0"
|
|
9161
9357
|
)
|
|
9162
9358
|
}) : node;
|
|
9163
|
-
return /* @__PURE__ */ (0,
|
|
9359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "aviala-alert__icon", "aria-hidden": true, children: content });
|
|
9164
9360
|
}
|
|
9165
9361
|
function defaultStatusIcon2(type) {
|
|
9166
9362
|
const iconProps = { thickness: "Regular", mode: "fill", "aria-hidden": true };
|
|
9167
9363
|
switch (type) {
|
|
9168
9364
|
case "info":
|
|
9169
9365
|
case "neutral":
|
|
9170
|
-
return /* @__PURE__ */ (0,
|
|
9366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons17.SymbolInformationCircle, { ...iconProps });
|
|
9171
9367
|
case "warning":
|
|
9172
|
-
return /* @__PURE__ */ (0,
|
|
9368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons17.SymbolWarningCircle, { ...iconProps });
|
|
9173
9369
|
case "error":
|
|
9174
|
-
return /* @__PURE__ */ (0,
|
|
9370
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons17.SymbolWrongCircle, { ...iconProps });
|
|
9175
9371
|
case "success":
|
|
9176
|
-
return /* @__PURE__ */ (0,
|
|
9372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons17.SymbolRightCircle, { ...iconProps });
|
|
9177
9373
|
}
|
|
9178
9374
|
}
|
|
9179
|
-
var Alert = (0,
|
|
9375
|
+
var Alert = (0, import_react57.forwardRef)(
|
|
9180
9376
|
({
|
|
9181
9377
|
className,
|
|
9182
9378
|
type = "info",
|
|
@@ -9204,7 +9400,7 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9204
9400
|
const resolvedType = type ?? "info";
|
|
9205
9401
|
const resolvedRole = resolvedType === "error" ? "alert" : "status";
|
|
9206
9402
|
const hasActions = showActions && (action || secondaryAction);
|
|
9207
|
-
return /* @__PURE__ */ (0,
|
|
9403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
9208
9404
|
"div",
|
|
9209
9405
|
{
|
|
9210
9406
|
ref,
|
|
@@ -9216,9 +9412,9 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9216
9412
|
"data-appearance": appearance,
|
|
9217
9413
|
...props,
|
|
9218
9414
|
children: [
|
|
9219
|
-
/* @__PURE__ */ (0,
|
|
9415
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "aviala-alert__body", children: [
|
|
9220
9416
|
showIcon ? renderAlertIcon(icon ?? defaultStatusIcon2(resolvedType)) : null,
|
|
9221
|
-
isSmall ? /* @__PURE__ */ (0,
|
|
9417
|
+
isSmall ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Typography, { level: "text", className: "aviala-alert__title", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
9222
9418
|
Typeface,
|
|
9223
9419
|
{
|
|
9224
9420
|
className: "aviala-alert__typeface",
|
|
@@ -9227,7 +9423,7 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9227
9423
|
secondary: description
|
|
9228
9424
|
}
|
|
9229
9425
|
),
|
|
9230
|
-
quickAction ? /* @__PURE__ */ (0,
|
|
9426
|
+
quickAction ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
9231
9427
|
Link,
|
|
9232
9428
|
{
|
|
9233
9429
|
level: "text",
|
|
@@ -9243,7 +9439,7 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9243
9439
|
children: quickAction
|
|
9244
9440
|
}
|
|
9245
9441
|
) : null,
|
|
9246
|
-
dismissible ? /* @__PURE__ */ (0,
|
|
9442
|
+
dismissible ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
9247
9443
|
Link,
|
|
9248
9444
|
{
|
|
9249
9445
|
level: "text",
|
|
@@ -9252,7 +9448,7 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9252
9448
|
href: onDismiss ? "#" : void 0,
|
|
9253
9449
|
"aria-label": resolvedCloseLabel,
|
|
9254
9450
|
className: "aviala-alert__close",
|
|
9255
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
9451
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons17.SymbolWrong, { "aria-hidden": true }),
|
|
9256
9452
|
onClick: (event) => {
|
|
9257
9453
|
if (onDismiss) {
|
|
9258
9454
|
event.preventDefault();
|
|
@@ -9262,8 +9458,8 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9262
9458
|
}
|
|
9263
9459
|
) : null
|
|
9264
9460
|
] }),
|
|
9265
|
-
hasActions ? /* @__PURE__ */ (0,
|
|
9266
|
-
action ? /* @__PURE__ */ (0,
|
|
9461
|
+
hasActions ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "aviala-alert__actions", children: [
|
|
9462
|
+
action ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
9267
9463
|
Link,
|
|
9268
9464
|
{
|
|
9269
9465
|
level: "caption",
|
|
@@ -9279,7 +9475,7 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9279
9475
|
children: action
|
|
9280
9476
|
}
|
|
9281
9477
|
) : null,
|
|
9282
|
-
secondaryAction ? /* @__PURE__ */ (0,
|
|
9478
|
+
secondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
9283
9479
|
Link,
|
|
9284
9480
|
{
|
|
9285
9481
|
level: "caption",
|
|
@@ -9304,32 +9500,32 @@ var Alert = (0, import_react56.forwardRef)(
|
|
|
9304
9500
|
Alert.displayName = "Alert";
|
|
9305
9501
|
|
|
9306
9502
|
// src/components/list.tsx
|
|
9307
|
-
var
|
|
9308
|
-
var
|
|
9309
|
-
var
|
|
9310
|
-
var List = (0,
|
|
9311
|
-
({ className, title, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
9312
|
-
title != null ? /* @__PURE__ */ (0,
|
|
9313
|
-
/* @__PURE__ */ (0,
|
|
9503
|
+
var import_icons18 = require("@aviala-design/icons");
|
|
9504
|
+
var import_react58 = require("react");
|
|
9505
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
9506
|
+
var List = (0, import_react58.forwardRef)(
|
|
9507
|
+
({ className, title, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { ref, className: cn("aviala-list", className), ...props, children: [
|
|
9508
|
+
title != null ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListTitle, { children: title }) : null,
|
|
9509
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListGroup, { children })
|
|
9314
9510
|
] })
|
|
9315
9511
|
);
|
|
9316
9512
|
List.displayName = "List";
|
|
9317
|
-
var ListTitle = (0,
|
|
9318
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
9513
|
+
var ListTitle = (0, import_react58.forwardRef)(
|
|
9514
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { ref, className: cn("aviala-list-title", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: cn(typographyVariants({ level: "text" })), children }) })
|
|
9319
9515
|
);
|
|
9320
9516
|
ListTitle.displayName = "ListTitle";
|
|
9321
|
-
var ListGroup = (0,
|
|
9322
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
9517
|
+
var ListGroup = (0, import_react58.forwardRef)(
|
|
9518
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { ref, className: cn("aviala-list-group", className), role: "list", ...props, children })
|
|
9323
9519
|
);
|
|
9324
9520
|
ListGroup.displayName = "ListGroup";
|
|
9325
9521
|
function ListItemGroup({ label, children, className }) {
|
|
9326
|
-
return /* @__PURE__ */ (0,
|
|
9327
|
-
label != null ? /* @__PURE__ */ (0,
|
|
9328
|
-
/* @__PURE__ */ (0,
|
|
9522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: cn("aviala-list", className), children: [
|
|
9523
|
+
label != null ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListTitle, { children: label }) : null,
|
|
9524
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListGroup, { children })
|
|
9329
9525
|
] });
|
|
9330
9526
|
}
|
|
9331
|
-
var ListDivider = (0,
|
|
9332
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
9527
|
+
var ListDivider = (0, import_react58.forwardRef)(
|
|
9528
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
9333
9529
|
"span",
|
|
9334
9530
|
{
|
|
9335
9531
|
ref,
|
|
@@ -9340,15 +9536,15 @@ var ListDivider = (0, import_react57.forwardRef)(
|
|
|
9340
9536
|
)
|
|
9341
9537
|
);
|
|
9342
9538
|
ListDivider.displayName = "ListDivider";
|
|
9343
|
-
var ListSeparator = (0,
|
|
9344
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
9539
|
+
var ListSeparator = (0, import_react58.forwardRef)(
|
|
9540
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("hr", { ref, className: cn("aviala-list-separator", className), ...props })
|
|
9345
9541
|
);
|
|
9346
9542
|
ListSeparator.displayName = "ListSeparator";
|
|
9347
9543
|
function renderLeadingIcon(node, leading) {
|
|
9348
9544
|
if (leading === "none") return null;
|
|
9349
9545
|
const iconSize = leading === "shaped" ? 20 : 22;
|
|
9350
|
-
const content = node ?? (leading === "shaped" ? /* @__PURE__ */ (0,
|
|
9351
|
-
const rendered = (0,
|
|
9546
|
+
const content = node ?? (leading === "shaped" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons18.GeneralSetting, { "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons18.GeneralSetting, { "aria-hidden": true }));
|
|
9547
|
+
const rendered = (0, import_react58.isValidElement)(content) && typeof content.type !== "string" ? (0, import_react58.cloneElement)(content, {
|
|
9352
9548
|
width: iconSize,
|
|
9353
9549
|
height: iconSize,
|
|
9354
9550
|
className: cn(
|
|
@@ -9356,7 +9552,7 @@ function renderLeadingIcon(node, leading) {
|
|
|
9356
9552
|
"shrink-0"
|
|
9357
9553
|
)
|
|
9358
9554
|
}) : content;
|
|
9359
|
-
return /* @__PURE__ */ (0,
|
|
9555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "aviala-list-item__icon", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
9360
9556
|
"span",
|
|
9361
9557
|
{
|
|
9362
9558
|
className: cn(
|
|
@@ -9366,7 +9562,7 @@ function renderLeadingIcon(node, leading) {
|
|
|
9366
9562
|
}
|
|
9367
9563
|
) });
|
|
9368
9564
|
}
|
|
9369
|
-
var ListItem = (0,
|
|
9565
|
+
var ListItem = (0, import_react58.forwardRef)(
|
|
9370
9566
|
({
|
|
9371
9567
|
className,
|
|
9372
9568
|
itemType = "select",
|
|
@@ -9394,48 +9590,48 @@ var ListItem = (0, import_react57.forwardRef)(
|
|
|
9394
9590
|
}, ref) => {
|
|
9395
9591
|
const locale = useLocaleMessages("List");
|
|
9396
9592
|
const rtl = useRtl();
|
|
9397
|
-
const ChevronIcon = rtl ?
|
|
9593
|
+
const ChevronIcon = rtl ? import_icons18.DirectionArrowLeftLight : import_icons18.DirectionArrowRightLight;
|
|
9398
9594
|
const isInteractive = interactive ?? (onClick != null || href != null);
|
|
9399
9595
|
const chevronVisible = showChevron ?? itemType === "action";
|
|
9400
|
-
const primaryAction = action ?? /* @__PURE__ */ (0,
|
|
9401
|
-
const chevron = chevronVisible ? /* @__PURE__ */ (0,
|
|
9596
|
+
const primaryAction = action ?? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons18.GeneralSetting, { "aria-hidden": true }), children: actionLabel });
|
|
9597
|
+
const chevron = chevronVisible ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "aviala-list-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ChevronIcon, { width: 18, height: 18 }) }) : null;
|
|
9402
9598
|
const renderTrailing = () => {
|
|
9403
9599
|
const hideActions = !showTrailing || trailing === null;
|
|
9404
9600
|
if (hideActions) {
|
|
9405
|
-
return chevron && itemType === "action" ? /* @__PURE__ */ (0,
|
|
9601
|
+
return chevron && itemType === "action" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "aviala-list-item__more", children: chevron }) : null;
|
|
9406
9602
|
}
|
|
9407
9603
|
if (trailing !== void 0) return trailing;
|
|
9408
9604
|
switch (itemType) {
|
|
9409
9605
|
case "action":
|
|
9410
|
-
return /* @__PURE__ */ (0,
|
|
9411
|
-
/* @__PURE__ */ (0,
|
|
9606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "aviala-list-item__more", children: [
|
|
9607
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "aviala-list-item__trailing", children: [
|
|
9412
9608
|
primaryAction,
|
|
9413
|
-
secondaryAction ?? /* @__PURE__ */ (0,
|
|
9609
|
+
secondaryAction ?? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
9414
9610
|
Button,
|
|
9415
9611
|
{
|
|
9416
9612
|
mode: "default",
|
|
9417
9613
|
size: "regular",
|
|
9418
9614
|
iconOnly: true,
|
|
9419
9615
|
"aria-label": locale.more,
|
|
9420
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
9616
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons18.GeneralSetting, { "aria-hidden": true })
|
|
9421
9617
|
}
|
|
9422
9618
|
)
|
|
9423
9619
|
] }),
|
|
9424
|
-
/* @__PURE__ */ (0,
|
|
9620
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListDivider, {}),
|
|
9425
9621
|
chevron
|
|
9426
9622
|
] });
|
|
9427
9623
|
case "switch":
|
|
9428
|
-
return /* @__PURE__ */ (0,
|
|
9624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "aviala-list-item__trailing", children: [
|
|
9429
9625
|
primaryAction,
|
|
9430
|
-
/* @__PURE__ */ (0,
|
|
9431
|
-
/* @__PURE__ */ (0,
|
|
9626
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListDivider, {}),
|
|
9627
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Switch, { ...switchProps })
|
|
9432
9628
|
] });
|
|
9433
9629
|
case "select":
|
|
9434
9630
|
default:
|
|
9435
|
-
return /* @__PURE__ */ (0,
|
|
9631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "aviala-list-item__trailing", children: [
|
|
9436
9632
|
primaryAction,
|
|
9437
|
-
/* @__PURE__ */ (0,
|
|
9438
|
-
/* @__PURE__ */ (0,
|
|
9633
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ListDivider, {}),
|
|
9634
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "aviala-list-item__select", children: select })
|
|
9439
9635
|
] });
|
|
9440
9636
|
}
|
|
9441
9637
|
};
|
|
@@ -9449,15 +9645,15 @@ var ListItem = (0, import_react57.forwardRef)(
|
|
|
9449
9645
|
"data-top-divider": showTopDivider === void 0 ? void 0 : showTopDivider ? "true" : "false"
|
|
9450
9646
|
};
|
|
9451
9647
|
const trailingNode = renderTrailing();
|
|
9452
|
-
const body = /* @__PURE__ */ (0,
|
|
9648
|
+
const body = /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
9453
9649
|
renderLeadingIcon(icon, leading),
|
|
9454
|
-
/* @__PURE__ */ (0,
|
|
9455
|
-
/* @__PURE__ */ (0,
|
|
9650
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "aviala-list-item__body", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "aviala-list-item__content", children: [
|
|
9651
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "aviala-list-item__head", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Typeface, { content: "textCaption", primary: title, secondary: subtitle }) }),
|
|
9456
9652
|
trailingNode
|
|
9457
9653
|
] }) })
|
|
9458
9654
|
] });
|
|
9459
9655
|
if (href && !disabled) {
|
|
9460
|
-
return /* @__PURE__ */ (0,
|
|
9656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
9461
9657
|
"a",
|
|
9462
9658
|
{
|
|
9463
9659
|
ref,
|
|
@@ -9473,7 +9669,7 @@ var ListItem = (0, import_react57.forwardRef)(
|
|
|
9473
9669
|
}
|
|
9474
9670
|
);
|
|
9475
9671
|
}
|
|
9476
|
-
return /* @__PURE__ */ (0,
|
|
9672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
9477
9673
|
"div",
|
|
9478
9674
|
{
|
|
9479
9675
|
ref,
|
|
@@ -9492,14 +9688,14 @@ ListItem.displayName = "ListItem";
|
|
|
9492
9688
|
// src/components/navigation.tsx
|
|
9493
9689
|
var PopoverPrimitive7 = __toESM(require("@radix-ui/react-popover"), 1);
|
|
9494
9690
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
9495
|
-
var
|
|
9496
|
-
var
|
|
9691
|
+
var import_react59 = require("react");
|
|
9692
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
9497
9693
|
function navigationItemButtonMode(active) {
|
|
9498
9694
|
return active ? "second" : "noBackgroundCustom";
|
|
9499
9695
|
}
|
|
9500
|
-
var NavigationDirectionContext = (0,
|
|
9696
|
+
var NavigationDirectionContext = (0, import_react59.createContext)("vertical");
|
|
9501
9697
|
function useNavigationDirection() {
|
|
9502
|
-
return (0,
|
|
9698
|
+
return (0, import_react59.useContext)(NavigationDirectionContext);
|
|
9503
9699
|
}
|
|
9504
9700
|
var NAVIGATION_ANIMATION_MS_FALLBACK = 300;
|
|
9505
9701
|
var NAVIGATION_ANIMATION_EASING_FALLBACK = "cubic-bezier(0.16, 1, 0.3, 1)";
|
|
@@ -9661,21 +9857,21 @@ function runIndicatorAnimation(el, group, start, next, durationMs, easing, gener
|
|
|
9661
9857
|
};
|
|
9662
9858
|
}
|
|
9663
9859
|
function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
9664
|
-
const indicatorRef = (0,
|
|
9665
|
-
const metricsRef = (0,
|
|
9666
|
-
const animationRef = (0,
|
|
9667
|
-
const animationGenerationRef = (0,
|
|
9668
|
-
const isAnimatingRef = (0,
|
|
9669
|
-
const layoutTrackingFrameRef = (0,
|
|
9670
|
-
const isLayoutTrackingRef = (0,
|
|
9671
|
-
const isInitialMount = (0,
|
|
9672
|
-
const [activeRevision, setActiveRevision] = (0,
|
|
9673
|
-
const measureIndicator = (0,
|
|
9860
|
+
const indicatorRef = (0, import_react59.useRef)(null);
|
|
9861
|
+
const metricsRef = (0, import_react59.useRef)(null);
|
|
9862
|
+
const animationRef = (0, import_react59.useRef)(null);
|
|
9863
|
+
const animationGenerationRef = (0, import_react59.useRef)(0);
|
|
9864
|
+
const isAnimatingRef = (0, import_react59.useRef)(false);
|
|
9865
|
+
const layoutTrackingFrameRef = (0, import_react59.useRef)(null);
|
|
9866
|
+
const isLayoutTrackingRef = (0, import_react59.useRef)(false);
|
|
9867
|
+
const isInitialMount = (0, import_react59.useRef)(true);
|
|
9868
|
+
const [activeRevision, setActiveRevision] = (0, import_react59.useState)(0);
|
|
9869
|
+
const measureIndicator = (0, import_react59.useCallback)(() => {
|
|
9674
9870
|
const group = groupRef.current;
|
|
9675
9871
|
if (!group) return null;
|
|
9676
9872
|
return measureNavigationIndicator(group, direction);
|
|
9677
9873
|
}, [direction, groupRef]);
|
|
9678
|
-
const syncIndicator = (0,
|
|
9874
|
+
const syncIndicator = (0, import_react59.useCallback)(
|
|
9679
9875
|
(metrics, instant = false) => {
|
|
9680
9876
|
metricsRef.current = metrics;
|
|
9681
9877
|
const el = indicatorRef.current;
|
|
@@ -9683,14 +9879,14 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9683
9879
|
},
|
|
9684
9880
|
[]
|
|
9685
9881
|
);
|
|
9686
|
-
const cancelLayoutTracking = (0,
|
|
9882
|
+
const cancelLayoutTracking = (0, import_react59.useCallback)(() => {
|
|
9687
9883
|
if (layoutTrackingFrameRef.current != null) {
|
|
9688
9884
|
cancelAnimationFrame(layoutTrackingFrameRef.current);
|
|
9689
9885
|
layoutTrackingFrameRef.current = null;
|
|
9690
9886
|
}
|
|
9691
9887
|
isLayoutTrackingRef.current = false;
|
|
9692
9888
|
}, []);
|
|
9693
|
-
const remeasureIndicator = (0,
|
|
9889
|
+
const remeasureIndicator = (0, import_react59.useCallback)(() => {
|
|
9694
9890
|
if (isLayoutTrackingRef.current) return;
|
|
9695
9891
|
const metrics = measureIndicator();
|
|
9696
9892
|
if (!metrics) return;
|
|
@@ -9699,7 +9895,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9699
9895
|
isAnimatingRef.current = false;
|
|
9700
9896
|
syncIndicator(metrics, true);
|
|
9701
9897
|
}, [measureIndicator, syncIndicator]);
|
|
9702
|
-
const startExpandCollapseTracking = (0,
|
|
9898
|
+
const startExpandCollapseTracking = (0, import_react59.useCallback)(() => {
|
|
9703
9899
|
const group = groupRef.current;
|
|
9704
9900
|
const el = indicatorRef.current;
|
|
9705
9901
|
if (!group || !el) return;
|
|
@@ -9756,14 +9952,14 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9756
9952
|
};
|
|
9757
9953
|
layoutTrackingFrameRef.current = requestAnimationFrame(tick);
|
|
9758
9954
|
}, [cancelLayoutTracking, groupRef, measureIndicator, syncIndicator]);
|
|
9759
|
-
const onIndicatorRef = (0,
|
|
9955
|
+
const onIndicatorRef = (0, import_react59.useCallback)((node) => {
|
|
9760
9956
|
indicatorRef.current = node;
|
|
9761
9957
|
if (node && metricsRef.current && isInitialMount.current) {
|
|
9762
9958
|
applyIndicatorMetrics(node, metricsRef.current, true);
|
|
9763
9959
|
isInitialMount.current = false;
|
|
9764
9960
|
}
|
|
9765
9961
|
}, []);
|
|
9766
|
-
(0,
|
|
9962
|
+
(0, import_react59.useLayoutEffect)(() => {
|
|
9767
9963
|
const group = groupRef.current;
|
|
9768
9964
|
const next = measureIndicator();
|
|
9769
9965
|
if (!next) return;
|
|
@@ -9811,7 +10007,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9811
10007
|
syncIndicator,
|
|
9812
10008
|
groupRef
|
|
9813
10009
|
]);
|
|
9814
|
-
(0,
|
|
10010
|
+
(0, import_react59.useLayoutEffect)(() => {
|
|
9815
10011
|
const group = groupRef.current;
|
|
9816
10012
|
if (!group) return;
|
|
9817
10013
|
const observer = new MutationObserver((mutations) => {
|
|
@@ -9868,7 +10064,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9868
10064
|
startExpandCollapseTracking,
|
|
9869
10065
|
syncIndicator
|
|
9870
10066
|
]);
|
|
9871
|
-
(0,
|
|
10067
|
+
(0, import_react59.useEffect)(() => {
|
|
9872
10068
|
if (direction !== "vertical") return;
|
|
9873
10069
|
const group = groupRef.current;
|
|
9874
10070
|
if (!group) return;
|
|
@@ -9896,7 +10092,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
|
|
|
9896
10092
|
}, [direction, groupRef, measureIndicator, syncIndicator]);
|
|
9897
10093
|
return onIndicatorRef;
|
|
9898
10094
|
}
|
|
9899
|
-
var Navigation = (0,
|
|
10095
|
+
var Navigation = (0, import_react59.forwardRef)(
|
|
9900
10096
|
({
|
|
9901
10097
|
className,
|
|
9902
10098
|
as: Tag2 = "nav",
|
|
@@ -9904,7 +10100,7 @@ var Navigation = (0, import_react58.forwardRef)(
|
|
|
9904
10100
|
direction = "vertical",
|
|
9905
10101
|
dividingLine = false,
|
|
9906
10102
|
...props
|
|
9907
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
10103
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(NavigationDirectionContext.Provider, { value: direction, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
9908
10104
|
Tag2,
|
|
9909
10105
|
{
|
|
9910
10106
|
ref,
|
|
@@ -9917,8 +10113,8 @@ var Navigation = (0, import_react58.forwardRef)(
|
|
|
9917
10113
|
) })
|
|
9918
10114
|
);
|
|
9919
10115
|
Navigation.displayName = "Navigation";
|
|
9920
|
-
var NavigationBrand = (0,
|
|
9921
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
10116
|
+
var NavigationBrand = (0, import_react59.forwardRef)(
|
|
10117
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
9922
10118
|
"div",
|
|
9923
10119
|
{
|
|
9924
10120
|
ref,
|
|
@@ -9928,40 +10124,40 @@ var NavigationBrand = (0, import_react58.forwardRef)(
|
|
|
9928
10124
|
)
|
|
9929
10125
|
);
|
|
9930
10126
|
NavigationBrand.displayName = "NavigationBrand";
|
|
9931
|
-
var NavigationBrandTitle = (0,
|
|
10127
|
+
var NavigationBrandTitle = (0, import_react59.forwardRef)(({ className, asChild = false, children, ...props }, ref) => {
|
|
9932
10128
|
const Comp = asChild ? import_react_slot5.Slot : "a";
|
|
9933
|
-
return /* @__PURE__ */ (0,
|
|
10129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
9934
10130
|
Comp,
|
|
9935
10131
|
{
|
|
9936
10132
|
ref,
|
|
9937
10133
|
className: cn("aviala-navigation-brand__title aviala-focus-ring", className),
|
|
9938
10134
|
...props,
|
|
9939
|
-
children: asChild ? children : /* @__PURE__ */ (0,
|
|
10135
|
+
children: asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Typography, { level: "text", as: "span", children })
|
|
9940
10136
|
}
|
|
9941
10137
|
);
|
|
9942
10138
|
});
|
|
9943
10139
|
NavigationBrandTitle.displayName = "NavigationBrandTitle";
|
|
9944
|
-
var NavigationSection = (0,
|
|
10140
|
+
var NavigationSection = (0, import_react59.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
9945
10141
|
"div",
|
|
9946
10142
|
{
|
|
9947
10143
|
ref,
|
|
9948
10144
|
className: cn("aviala-navigation-section", className),
|
|
9949
10145
|
...props,
|
|
9950
|
-
children: /* @__PURE__ */ (0,
|
|
10146
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Typography, { level: "caption", as: "p", children })
|
|
9951
10147
|
}
|
|
9952
10148
|
));
|
|
9953
10149
|
NavigationSection.displayName = "NavigationSection";
|
|
9954
|
-
var NavigationGroup = (0,
|
|
10150
|
+
var NavigationGroup = (0, import_react59.forwardRef)(
|
|
9955
10151
|
({ className, children, ...props }, ref) => {
|
|
9956
10152
|
const direction = useNavigationDirection();
|
|
9957
10153
|
const layoutKey = useThemeLayoutKey();
|
|
9958
|
-
const groupRef = (0,
|
|
10154
|
+
const groupRef = (0, import_react59.useRef)(null);
|
|
9959
10155
|
const onIndicatorRef = useNavigationIndicator(
|
|
9960
10156
|
groupRef,
|
|
9961
10157
|
direction,
|
|
9962
10158
|
layoutKey
|
|
9963
10159
|
);
|
|
9964
|
-
const setRefs = (0,
|
|
10160
|
+
const setRefs = (0, import_react59.useCallback)(
|
|
9965
10161
|
(node) => {
|
|
9966
10162
|
groupRef.current = node;
|
|
9967
10163
|
if (typeof ref === "function") {
|
|
@@ -9972,14 +10168,14 @@ var NavigationGroup = (0, import_react58.forwardRef)(
|
|
|
9972
10168
|
},
|
|
9973
10169
|
[ref]
|
|
9974
10170
|
);
|
|
9975
|
-
return /* @__PURE__ */ (0,
|
|
10171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
9976
10172
|
"div",
|
|
9977
10173
|
{
|
|
9978
10174
|
ref: setRefs,
|
|
9979
10175
|
className: cn("aviala-navigation-group", className),
|
|
9980
10176
|
...props,
|
|
9981
10177
|
children: [
|
|
9982
|
-
/* @__PURE__ */ (0,
|
|
10178
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
9983
10179
|
"span",
|
|
9984
10180
|
{
|
|
9985
10181
|
ref: onIndicatorRef,
|
|
@@ -9995,17 +10191,17 @@ var NavigationGroup = (0, import_react58.forwardRef)(
|
|
|
9995
10191
|
}
|
|
9996
10192
|
);
|
|
9997
10193
|
NavigationGroup.displayName = "NavigationGroup";
|
|
9998
|
-
var NavigationItemGroup = (0,
|
|
10194
|
+
var NavigationItemGroup = (0, import_react59.forwardRef)(({ className, expanded, children, ...props }, ref) => {
|
|
9999
10195
|
const isCollapsible = expanded !== void 0;
|
|
10000
10196
|
const isCollapsed = isCollapsible && !expanded;
|
|
10001
|
-
const innerRef = (0,
|
|
10002
|
-
(0,
|
|
10197
|
+
const innerRef = (0, import_react59.useRef)(null);
|
|
10198
|
+
(0, import_react59.useLayoutEffect)(() => {
|
|
10003
10199
|
const inner = innerRef.current;
|
|
10004
10200
|
if (!inner) return;
|
|
10005
10201
|
if (isCollapsed) inner.setAttribute("inert", "");
|
|
10006
10202
|
else inner.removeAttribute("inert");
|
|
10007
10203
|
}, [isCollapsed]);
|
|
10008
|
-
return /* @__PURE__ */ (0,
|
|
10204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10009
10205
|
"div",
|
|
10010
10206
|
{
|
|
10011
10207
|
ref,
|
|
@@ -10013,7 +10209,7 @@ var NavigationItemGroup = (0, import_react58.forwardRef)(({ className, expanded,
|
|
|
10013
10209
|
"data-expanded": isCollapsible ? expanded ? "true" : "false" : void 0,
|
|
10014
10210
|
"aria-hidden": isCollapsed ? true : void 0,
|
|
10015
10211
|
...props,
|
|
10016
|
-
children: isCollapsible ? /* @__PURE__ */ (0,
|
|
10212
|
+
children: isCollapsible ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { ref: innerRef, className: "aviala-navigation-item-group__inner", children }) : children
|
|
10017
10213
|
}
|
|
10018
10214
|
);
|
|
10019
10215
|
});
|
|
@@ -10024,9 +10220,9 @@ function renderItemIcon3(node) {
|
|
|
10024
10220
|
level: "text",
|
|
10025
10221
|
biggerSize: true
|
|
10026
10222
|
});
|
|
10027
|
-
return /* @__PURE__ */ (0,
|
|
10223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "aviala-navigation-item__icon", children: content });
|
|
10028
10224
|
}
|
|
10029
|
-
var NavigationItem = (0,
|
|
10225
|
+
var NavigationItem = (0, import_react59.forwardRef)(
|
|
10030
10226
|
({
|
|
10031
10227
|
className,
|
|
10032
10228
|
active,
|
|
@@ -10041,9 +10237,9 @@ var NavigationItem = (0, import_react58.forwardRef)(
|
|
|
10041
10237
|
const Comp = asChild ? import_react_slot5.Slot : "a";
|
|
10042
10238
|
const isActive = active ?? ariaCurrent === "page";
|
|
10043
10239
|
const mode = navigationItemButtonMode(isActive);
|
|
10044
|
-
const controlContent = /* @__PURE__ */ (0,
|
|
10240
|
+
const controlContent = /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
|
|
10045
10241
|
renderItemIcon3(leftIcon),
|
|
10046
|
-
/* @__PURE__ */ (0,
|
|
10242
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10047
10243
|
Typography,
|
|
10048
10244
|
{
|
|
10049
10245
|
level: "text",
|
|
@@ -10052,15 +10248,15 @@ var NavigationItem = (0, import_react58.forwardRef)(
|
|
|
10052
10248
|
children
|
|
10053
10249
|
}
|
|
10054
10250
|
),
|
|
10055
|
-
rightIcon ? /* @__PURE__ */ (0,
|
|
10251
|
+
rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
|
|
10056
10252
|
] });
|
|
10057
|
-
return /* @__PURE__ */ (0,
|
|
10253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10058
10254
|
"span",
|
|
10059
10255
|
{
|
|
10060
10256
|
className: cn("aviala-navigation-item", className),
|
|
10061
10257
|
"data-item-type": itemType,
|
|
10062
10258
|
"data-active": isActive ? "true" : "false",
|
|
10063
|
-
children: /* @__PURE__ */ (0,
|
|
10259
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10064
10260
|
Comp,
|
|
10065
10261
|
{
|
|
10066
10262
|
ref,
|
|
@@ -10079,7 +10275,7 @@ var NavigationItem = (0, import_react58.forwardRef)(
|
|
|
10079
10275
|
}
|
|
10080
10276
|
);
|
|
10081
10277
|
NavigationItem.displayName = "NavigationItem";
|
|
10082
|
-
var NavigationActions = (0,
|
|
10278
|
+
var NavigationActions = (0, import_react59.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10083
10279
|
"div",
|
|
10084
10280
|
{
|
|
10085
10281
|
ref,
|
|
@@ -10089,7 +10285,7 @@ var NavigationActions = (0, import_react58.forwardRef)(({ className, children, .
|
|
|
10089
10285
|
}
|
|
10090
10286
|
));
|
|
10091
10287
|
NavigationActions.displayName = "NavigationActions";
|
|
10092
|
-
var NavigationActionsSlot = (0,
|
|
10288
|
+
var NavigationActionsSlot = (0, import_react59.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10093
10289
|
"div",
|
|
10094
10290
|
{
|
|
10095
10291
|
ref,
|
|
@@ -10099,9 +10295,9 @@ var NavigationActionsSlot = (0, import_react58.forwardRef)(({ className, ...prop
|
|
|
10099
10295
|
));
|
|
10100
10296
|
NavigationActionsSlot.displayName = "NavigationActionsSlot";
|
|
10101
10297
|
var NAVIGATION_MENU_CLOSE_DELAY_MS = 150;
|
|
10102
|
-
var NavigationItemMenuContext = (0,
|
|
10298
|
+
var NavigationItemMenuContext = (0, import_react59.createContext)(null);
|
|
10103
10299
|
function useNavigationItemMenuContext(component) {
|
|
10104
|
-
const context = (0,
|
|
10300
|
+
const context = (0, import_react59.useContext)(NavigationItemMenuContext);
|
|
10105
10301
|
if (!context) {
|
|
10106
10302
|
throw new Error(`${component} must be used within <NavigationItemMenu>`);
|
|
10107
10303
|
}
|
|
@@ -10115,28 +10311,28 @@ function NavigationItemMenu({
|
|
|
10115
10311
|
onOpenChange,
|
|
10116
10312
|
children
|
|
10117
10313
|
}) {
|
|
10118
|
-
const [internalValue, setInternalValue] = (0,
|
|
10314
|
+
const [internalValue, setInternalValue] = (0, import_react59.useState)(defaultValue);
|
|
10119
10315
|
const isValueControlled = valueProp !== void 0;
|
|
10120
10316
|
const value = isValueControlled ? valueProp : internalValue;
|
|
10121
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
10317
|
+
const [internalOpen, setInternalOpen] = (0, import_react59.useState)(false);
|
|
10122
10318
|
const isOpenControlled = openProp !== void 0;
|
|
10123
10319
|
const open = isOpenControlled ? openProp : internalOpen;
|
|
10124
|
-
const closeTimerRef = (0,
|
|
10125
|
-
const openedByHoverRef = (0,
|
|
10126
|
-
const setOpen = (0,
|
|
10320
|
+
const closeTimerRef = (0, import_react59.useRef)(null);
|
|
10321
|
+
const openedByHoverRef = (0, import_react59.useRef)(false);
|
|
10322
|
+
const setOpen = (0, import_react59.useCallback)(
|
|
10127
10323
|
(nextOpen) => {
|
|
10128
10324
|
if (!isOpenControlled) setInternalOpen(nextOpen);
|
|
10129
10325
|
onOpenChange?.(nextOpen);
|
|
10130
10326
|
},
|
|
10131
10327
|
[isOpenControlled, onOpenChange]
|
|
10132
10328
|
);
|
|
10133
|
-
const cancelClose = (0,
|
|
10329
|
+
const cancelClose = (0, import_react59.useCallback)(() => {
|
|
10134
10330
|
if (closeTimerRef.current != null) {
|
|
10135
10331
|
window.clearTimeout(closeTimerRef.current);
|
|
10136
10332
|
closeTimerRef.current = null;
|
|
10137
10333
|
}
|
|
10138
10334
|
}, []);
|
|
10139
|
-
const openMenu = (0,
|
|
10335
|
+
const openMenu = (0, import_react59.useCallback)(
|
|
10140
10336
|
(viaHover) => {
|
|
10141
10337
|
cancelClose();
|
|
10142
10338
|
openedByHoverRef.current = viaHover;
|
|
@@ -10144,14 +10340,14 @@ function NavigationItemMenu({
|
|
|
10144
10340
|
},
|
|
10145
10341
|
[cancelClose, setOpen]
|
|
10146
10342
|
);
|
|
10147
|
-
const scheduleClose = (0,
|
|
10343
|
+
const scheduleClose = (0, import_react59.useCallback)(() => {
|
|
10148
10344
|
cancelClose();
|
|
10149
10345
|
closeTimerRef.current = window.setTimeout(() => {
|
|
10150
10346
|
closeTimerRef.current = null;
|
|
10151
10347
|
setOpen(false);
|
|
10152
10348
|
}, NAVIGATION_MENU_CLOSE_DELAY_MS);
|
|
10153
10349
|
}, [cancelClose, setOpen]);
|
|
10154
|
-
const select = (0,
|
|
10350
|
+
const select = (0, import_react59.useCallback)(
|
|
10155
10351
|
(nextValue) => {
|
|
10156
10352
|
if (!isValueControlled) setInternalValue(nextValue);
|
|
10157
10353
|
onValueChange?.(nextValue);
|
|
@@ -10160,8 +10356,8 @@ function NavigationItemMenu({
|
|
|
10160
10356
|
},
|
|
10161
10357
|
[cancelClose, isValueControlled, onValueChange, setOpen]
|
|
10162
10358
|
);
|
|
10163
|
-
(0,
|
|
10164
|
-
const contextValue = (0,
|
|
10359
|
+
(0, import_react59.useEffect)(() => cancelClose, [cancelClose]);
|
|
10360
|
+
const contextValue = (0, import_react59.useMemo)(
|
|
10165
10361
|
() => ({
|
|
10166
10362
|
value,
|
|
10167
10363
|
hasSelection: value != null && value !== "",
|
|
@@ -10173,7 +10369,7 @@ function NavigationItemMenu({
|
|
|
10173
10369
|
}),
|
|
10174
10370
|
[cancelClose, openMenu, scheduleClose, select, value]
|
|
10175
10371
|
);
|
|
10176
|
-
const handleOpenChange = (0,
|
|
10372
|
+
const handleOpenChange = (0, import_react59.useCallback)(
|
|
10177
10373
|
(nextOpen) => {
|
|
10178
10374
|
if (nextOpen) openedByHoverRef.current = false;
|
|
10179
10375
|
cancelClose();
|
|
@@ -10181,9 +10377,9 @@ function NavigationItemMenu({
|
|
|
10181
10377
|
},
|
|
10182
10378
|
[cancelClose, setOpen]
|
|
10183
10379
|
);
|
|
10184
|
-
return /* @__PURE__ */ (0,
|
|
10380
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(NavigationItemMenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Popover, { open, onOpenChange: handleOpenChange, children }) });
|
|
10185
10381
|
}
|
|
10186
|
-
var NavigationItemMenuTrigger = (0,
|
|
10382
|
+
var NavigationItemMenuTrigger = (0, import_react59.forwardRef)(
|
|
10187
10383
|
({
|
|
10188
10384
|
className,
|
|
10189
10385
|
active,
|
|
@@ -10195,7 +10391,7 @@ var NavigationItemMenuTrigger = (0, import_react58.forwardRef)(
|
|
|
10195
10391
|
const menu = useNavigationItemMenuContext("NavigationItemMenuTrigger");
|
|
10196
10392
|
const isActive = active ?? menu.hasSelection;
|
|
10197
10393
|
const mode = navigationItemButtonMode(isActive);
|
|
10198
|
-
return /* @__PURE__ */ (0,
|
|
10394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10199
10395
|
"span",
|
|
10200
10396
|
{
|
|
10201
10397
|
className: cn("aviala-navigation-item", className),
|
|
@@ -10203,7 +10399,7 @@ var NavigationItemMenuTrigger = (0, import_react58.forwardRef)(
|
|
|
10203
10399
|
"data-active": isActive ? "true" : "false",
|
|
10204
10400
|
onMouseEnter: () => menu.openMenu(true),
|
|
10205
10401
|
onMouseLeave: menu.scheduleClose,
|
|
10206
|
-
children: /* @__PURE__ */ (0,
|
|
10402
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive7.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
10207
10403
|
"button",
|
|
10208
10404
|
{
|
|
10209
10405
|
ref,
|
|
@@ -10216,7 +10412,7 @@ var NavigationItemMenuTrigger = (0, import_react58.forwardRef)(
|
|
|
10216
10412
|
...props,
|
|
10217
10413
|
children: [
|
|
10218
10414
|
renderItemIcon3(leftIcon),
|
|
10219
|
-
/* @__PURE__ */ (0,
|
|
10415
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10220
10416
|
Typography,
|
|
10221
10417
|
{
|
|
10222
10418
|
level: "text",
|
|
@@ -10225,7 +10421,7 @@ var NavigationItemMenuTrigger = (0, import_react58.forwardRef)(
|
|
|
10225
10421
|
children
|
|
10226
10422
|
}
|
|
10227
10423
|
),
|
|
10228
|
-
rightIcon ? /* @__PURE__ */ (0,
|
|
10424
|
+
rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
|
|
10229
10425
|
]
|
|
10230
10426
|
}
|
|
10231
10427
|
) })
|
|
@@ -10234,7 +10430,7 @@ var NavigationItemMenuTrigger = (0, import_react58.forwardRef)(
|
|
|
10234
10430
|
}
|
|
10235
10431
|
);
|
|
10236
10432
|
NavigationItemMenuTrigger.displayName = "NavigationItemMenuTrigger";
|
|
10237
|
-
var NavigationItemMenuContent = (0,
|
|
10433
|
+
var NavigationItemMenuContent = (0, import_react59.forwardRef)(
|
|
10238
10434
|
({
|
|
10239
10435
|
className,
|
|
10240
10436
|
side,
|
|
@@ -10248,7 +10444,7 @@ var NavigationItemMenuContent = (0, import_react58.forwardRef)(
|
|
|
10248
10444
|
const direction = useNavigationDirection();
|
|
10249
10445
|
const writingDirection = useDirection();
|
|
10250
10446
|
const menu = useNavigationItemMenuContext("NavigationItemMenuContent");
|
|
10251
|
-
return /* @__PURE__ */ (0,
|
|
10447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive7.Portal, { container: overlayContainer, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10252
10448
|
PopoverPrimitive7.Content,
|
|
10253
10449
|
{
|
|
10254
10450
|
ref,
|
|
@@ -10269,7 +10465,7 @@ var NavigationItemMenuContent = (0, import_react58.forwardRef)(
|
|
|
10269
10465
|
}
|
|
10270
10466
|
);
|
|
10271
10467
|
NavigationItemMenuContent.displayName = "NavigationItemMenuContent";
|
|
10272
|
-
var NavigationItemMenuItem = (0,
|
|
10468
|
+
var NavigationItemMenuItem = (0, import_react59.forwardRef)(
|
|
10273
10469
|
({
|
|
10274
10470
|
className,
|
|
10275
10471
|
value,
|
|
@@ -10283,7 +10479,7 @@ var NavigationItemMenuItem = (0, import_react58.forwardRef)(
|
|
|
10283
10479
|
}, ref) => {
|
|
10284
10480
|
const menu = useNavigationItemMenuContext("NavigationItemMenuItem");
|
|
10285
10481
|
const isSelected = selected ?? menu.value === value;
|
|
10286
|
-
return /* @__PURE__ */ (0,
|
|
10482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
10287
10483
|
"button",
|
|
10288
10484
|
{
|
|
10289
10485
|
ref,
|
|
@@ -10303,7 +10499,7 @@ var NavigationItemMenuItem = (0, import_react58.forwardRef)(
|
|
|
10303
10499
|
...props,
|
|
10304
10500
|
children: [
|
|
10305
10501
|
renderItemIcon3(leftIcon),
|
|
10306
|
-
/* @__PURE__ */ (0,
|
|
10502
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
10307
10503
|
Typography,
|
|
10308
10504
|
{
|
|
10309
10505
|
level: "text",
|
|
@@ -10312,7 +10508,7 @@ var NavigationItemMenuItem = (0, import_react58.forwardRef)(
|
|
|
10312
10508
|
children
|
|
10313
10509
|
}
|
|
10314
10510
|
),
|
|
10315
|
-
rightIcon ? /* @__PURE__ */ (0,
|
|
10511
|
+
rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "aviala-navigation-menu-item__trailing", children: renderItemIcon3(rightIcon) }) : null
|
|
10316
10512
|
]
|
|
10317
10513
|
}
|
|
10318
10514
|
);
|
|
@@ -10321,11 +10517,11 @@ var NavigationItemMenuItem = (0, import_react58.forwardRef)(
|
|
|
10321
10517
|
NavigationItemMenuItem.displayName = "NavigationItemMenuItem";
|
|
10322
10518
|
|
|
10323
10519
|
// src/components/tab.tsx
|
|
10324
|
-
var
|
|
10325
|
-
var
|
|
10326
|
-
var TabContext = (0,
|
|
10520
|
+
var import_react60 = require("react");
|
|
10521
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
10522
|
+
var TabContext = (0, import_react60.createContext)(null);
|
|
10327
10523
|
function useTabContext() {
|
|
10328
|
-
const ctx = (0,
|
|
10524
|
+
const ctx = (0, import_react60.useContext)(TabContext);
|
|
10329
10525
|
if (!ctx) {
|
|
10330
10526
|
throw new Error("TabItem must be used within Tab");
|
|
10331
10527
|
}
|
|
@@ -10337,10 +10533,10 @@ function tabItemButtonMode(style, active) {
|
|
|
10337
10533
|
return active ? "noBackground" : "noBackgroundCustom";
|
|
10338
10534
|
}
|
|
10339
10535
|
function useTabState(value, defaultValue, onValueChange) {
|
|
10340
|
-
const [internal, setInternal] = (0,
|
|
10536
|
+
const [internal, setInternal] = (0, import_react60.useState)(defaultValue ?? "");
|
|
10341
10537
|
const isControlled = value !== void 0;
|
|
10342
10538
|
const current = isControlled ? value : internal;
|
|
10343
|
-
const setValue = (0,
|
|
10539
|
+
const setValue = (0, import_react60.useCallback)(
|
|
10344
10540
|
(next) => {
|
|
10345
10541
|
if (!isControlled) setInternal(next);
|
|
10346
10542
|
onValueChange?.(next);
|
|
@@ -10383,9 +10579,9 @@ function measureTabIndicator(list) {
|
|
|
10383
10579
|
};
|
|
10384
10580
|
}
|
|
10385
10581
|
function useTabIndicator(listRef, enabled, layoutKey, value) {
|
|
10386
|
-
const indicatorRef = (0,
|
|
10387
|
-
const isInitial = (0,
|
|
10388
|
-
const sync = (0,
|
|
10582
|
+
const indicatorRef = (0, import_react60.useRef)(null);
|
|
10583
|
+
const isInitial = (0, import_react60.useRef)(true);
|
|
10584
|
+
const sync = (0, import_react60.useCallback)(
|
|
10389
10585
|
(instant) => {
|
|
10390
10586
|
const list = listRef.current;
|
|
10391
10587
|
const el = indicatorRef.current;
|
|
@@ -10398,7 +10594,7 @@ function useTabIndicator(listRef, enabled, layoutKey, value) {
|
|
|
10398
10594
|
},
|
|
10399
10595
|
[enabled, listRef]
|
|
10400
10596
|
);
|
|
10401
|
-
(0,
|
|
10597
|
+
(0, import_react60.useLayoutEffect)(() => {
|
|
10402
10598
|
if (!enabled) {
|
|
10403
10599
|
if (indicatorRef.current) indicatorRef.current.dataset.visible = "false";
|
|
10404
10600
|
return;
|
|
@@ -10406,7 +10602,7 @@ function useTabIndicator(listRef, enabled, layoutKey, value) {
|
|
|
10406
10602
|
sync(isInitial.current);
|
|
10407
10603
|
isInitial.current = false;
|
|
10408
10604
|
}, [enabled, layoutKey, sync, value]);
|
|
10409
|
-
(0,
|
|
10605
|
+
(0, import_react60.useEffect)(() => {
|
|
10410
10606
|
if (!enabled) return;
|
|
10411
10607
|
const list = listRef.current;
|
|
10412
10608
|
if (!list) return;
|
|
@@ -10429,11 +10625,11 @@ function renderTabIcon(node) {
|
|
|
10429
10625
|
level: "text",
|
|
10430
10626
|
biggerSize: true
|
|
10431
10627
|
});
|
|
10432
|
-
return /* @__PURE__ */ (0,
|
|
10628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "aviala-tab-item__icon", children: content });
|
|
10433
10629
|
}
|
|
10434
10630
|
function TabCardEar({ side }) {
|
|
10435
10631
|
const d = side === "start" ? "M8 8L0 8C4 8 8 5.5 8 0L8 8Z" : "M0 8L8 8C4 8 0 5.5 0 0L0 8Z";
|
|
10436
|
-
return /* @__PURE__ */ (0,
|
|
10632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "aviala-tab-item__ear", "data-side": side, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
10437
10633
|
"svg",
|
|
10438
10634
|
{
|
|
10439
10635
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -10441,11 +10637,11 @@ function TabCardEar({ side }) {
|
|
|
10441
10637
|
height: "8",
|
|
10442
10638
|
viewBox: "0 0 8 8",
|
|
10443
10639
|
fill: "none",
|
|
10444
|
-
children: /* @__PURE__ */ (0,
|
|
10640
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("path", { d, fill: "currentColor" })
|
|
10445
10641
|
}
|
|
10446
10642
|
) });
|
|
10447
10643
|
}
|
|
10448
|
-
var Tab = (0,
|
|
10644
|
+
var Tab = (0, import_react60.forwardRef)(
|
|
10449
10645
|
({
|
|
10450
10646
|
className,
|
|
10451
10647
|
style: tabStyle = "default",
|
|
@@ -10463,18 +10659,18 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10463
10659
|
const [value, setValue] = useTabState(valueProp, defaultValue, onValueChange);
|
|
10464
10660
|
const layoutKey = useThemeLayoutKey();
|
|
10465
10661
|
const direction = useDirection();
|
|
10466
|
-
const listRef = (0,
|
|
10467
|
-
const itemsRef = (0,
|
|
10662
|
+
const listRef = (0, import_react60.useRef)(null);
|
|
10663
|
+
const itemsRef = (0, import_react60.useRef)(/* @__PURE__ */ new Map());
|
|
10468
10664
|
const showIndicator = tabStyle === "default";
|
|
10469
10665
|
const indicatorRef = useTabIndicator(listRef, showIndicator, layoutKey, value);
|
|
10470
|
-
const registerItem = (0,
|
|
10666
|
+
const registerItem = (0, import_react60.useCallback)(
|
|
10471
10667
|
(itemValue, el) => {
|
|
10472
10668
|
if (el) itemsRef.current.set(itemValue, el);
|
|
10473
10669
|
else itemsRef.current.delete(itemValue);
|
|
10474
10670
|
},
|
|
10475
10671
|
[]
|
|
10476
10672
|
);
|
|
10477
|
-
const ctx = (0,
|
|
10673
|
+
const ctx = (0, import_react60.useMemo)(
|
|
10478
10674
|
() => ({
|
|
10479
10675
|
value,
|
|
10480
10676
|
onValueChange: setValue,
|
|
@@ -10484,7 +10680,7 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10484
10680
|
}),
|
|
10485
10681
|
[value, setValue, tabStyle, disabled, registerItem]
|
|
10486
10682
|
);
|
|
10487
|
-
const focusAdjacent = (0,
|
|
10683
|
+
const focusAdjacent = (0, import_react60.useCallback)(
|
|
10488
10684
|
(current, delta) => {
|
|
10489
10685
|
const entries = Array.from(itemsRef.current.entries()).filter(
|
|
10490
10686
|
([, el2]) => !el2.disabled
|
|
@@ -10531,7 +10727,7 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10531
10727
|
}
|
|
10532
10728
|
}
|
|
10533
10729
|
};
|
|
10534
|
-
return /* @__PURE__ */ (0,
|
|
10730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TabContext.Provider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
10535
10731
|
"div",
|
|
10536
10732
|
{
|
|
10537
10733
|
ref,
|
|
@@ -10541,8 +10737,8 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10541
10737
|
...spiralDebugId("tab"),
|
|
10542
10738
|
...props,
|
|
10543
10739
|
children: [
|
|
10544
|
-
startSlot != null && startSlot !== false ? /* @__PURE__ */ (0,
|
|
10545
|
-
/* @__PURE__ */ (0,
|
|
10740
|
+
startSlot != null && startSlot !== false ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "aviala-tab__slot", "data-slot": "start", children: startSlot }) : null,
|
|
10741
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
10546
10742
|
"div",
|
|
10547
10743
|
{
|
|
10548
10744
|
ref: listRef,
|
|
@@ -10552,7 +10748,7 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10552
10748
|
onKeyDown: handleListKeyDown,
|
|
10553
10749
|
...spiralDebugId("tab.list"),
|
|
10554
10750
|
children: [
|
|
10555
|
-
showIndicator ? /* @__PURE__ */ (0,
|
|
10751
|
+
showIndicator ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
10556
10752
|
"span",
|
|
10557
10753
|
{
|
|
10558
10754
|
ref: indicatorRef,
|
|
@@ -10565,14 +10761,14 @@ var Tab = (0, import_react59.forwardRef)(
|
|
|
10565
10761
|
]
|
|
10566
10762
|
}
|
|
10567
10763
|
),
|
|
10568
|
-
endSlot != null && endSlot !== false ? /* @__PURE__ */ (0,
|
|
10764
|
+
endSlot != null && endSlot !== false ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "aviala-tab__slot", "data-slot": "end", children: endSlot }) : null
|
|
10569
10765
|
]
|
|
10570
10766
|
}
|
|
10571
10767
|
) });
|
|
10572
10768
|
}
|
|
10573
10769
|
);
|
|
10574
10770
|
Tab.displayName = "Tab";
|
|
10575
|
-
var TabItem = (0,
|
|
10771
|
+
var TabItem = (0, import_react60.forwardRef)(
|
|
10576
10772
|
({
|
|
10577
10773
|
className,
|
|
10578
10774
|
value,
|
|
@@ -10586,7 +10782,7 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10586
10782
|
const active = ctx.value === value;
|
|
10587
10783
|
const disabled = Boolean(ctx.disabled || disabledProp);
|
|
10588
10784
|
const mode = tabItemButtonMode(ctx.style, active);
|
|
10589
|
-
const setRefs = (0,
|
|
10785
|
+
const setRefs = (0, import_react60.useCallback)(
|
|
10590
10786
|
(node) => {
|
|
10591
10787
|
ctx.registerItem(value, node);
|
|
10592
10788
|
if (typeof ref === "function") ref(node);
|
|
@@ -10595,7 +10791,7 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10595
10791
|
[ctx, ref, value]
|
|
10596
10792
|
);
|
|
10597
10793
|
const showCardEars = ctx.style === "card" && active;
|
|
10598
|
-
return /* @__PURE__ */ (0,
|
|
10794
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
10599
10795
|
"span",
|
|
10600
10796
|
{
|
|
10601
10797
|
className: cn("aviala-tab-item", className),
|
|
@@ -10604,8 +10800,8 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10604
10800
|
"data-disabled": disabled ? "true" : void 0,
|
|
10605
10801
|
...spiralDebugId("tab.item"),
|
|
10606
10802
|
children: [
|
|
10607
|
-
showCardEars ? /* @__PURE__ */ (0,
|
|
10608
|
-
/* @__PURE__ */ (0,
|
|
10803
|
+
showCardEars ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TabCardEar, { side: "start" }) : null,
|
|
10804
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
10609
10805
|
"button",
|
|
10610
10806
|
{
|
|
10611
10807
|
ref: setRefs,
|
|
@@ -10628,7 +10824,7 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10628
10824
|
...props,
|
|
10629
10825
|
children: [
|
|
10630
10826
|
renderTabIcon(leftIcon),
|
|
10631
|
-
children != null && children !== false ? /* @__PURE__ */ (0,
|
|
10827
|
+
children != null && children !== false ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
10632
10828
|
Typography,
|
|
10633
10829
|
{
|
|
10634
10830
|
level: "text",
|
|
@@ -10640,7 +10836,7 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10640
10836
|
]
|
|
10641
10837
|
}
|
|
10642
10838
|
),
|
|
10643
|
-
showCardEars ? /* @__PURE__ */ (0,
|
|
10839
|
+
showCardEars ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TabCardEar, { side: "end" }) : null
|
|
10644
10840
|
]
|
|
10645
10841
|
}
|
|
10646
10842
|
);
|
|
@@ -10649,11 +10845,11 @@ var TabItem = (0, import_react59.forwardRef)(
|
|
|
10649
10845
|
TabItem.displayName = "TabItem";
|
|
10650
10846
|
|
|
10651
10847
|
// src/components/upload.tsx
|
|
10652
|
-
var
|
|
10653
|
-
var
|
|
10654
|
-
var
|
|
10655
|
-
var
|
|
10656
|
-
var uploadVariants = (0,
|
|
10848
|
+
var import_icons19 = require("@aviala-design/icons");
|
|
10849
|
+
var import_class_variance_authority15 = require("class-variance-authority");
|
|
10850
|
+
var import_react61 = require("react");
|
|
10851
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
10852
|
+
var uploadVariants = (0, import_class_variance_authority15.cva)("aviala-upload aviala-focus-ring", {
|
|
10657
10853
|
variants: {
|
|
10658
10854
|
style: {
|
|
10659
10855
|
default: "aviala-upload--style-default",
|
|
@@ -10664,7 +10860,7 @@ var uploadVariants = (0, import_class_variance_authority14.cva)("aviala-upload a
|
|
|
10664
10860
|
style: "default"
|
|
10665
10861
|
}
|
|
10666
10862
|
});
|
|
10667
|
-
var Upload = (0,
|
|
10863
|
+
var Upload = (0, import_react61.forwardRef)(
|
|
10668
10864
|
({
|
|
10669
10865
|
className,
|
|
10670
10866
|
style = "default",
|
|
@@ -10686,8 +10882,8 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10686
10882
|
const resolvedTitle = title ?? locale.title;
|
|
10687
10883
|
const resolvedDescription = description ?? locale.description;
|
|
10688
10884
|
const resolvedLabel = label ?? locale.label;
|
|
10689
|
-
const inputRef = (0,
|
|
10690
|
-
const [dragging, setDragging] = (0,
|
|
10885
|
+
const inputRef = (0, import_react61.useRef)(null);
|
|
10886
|
+
const [dragging, setDragging] = (0, import_react61.useState)(false);
|
|
10691
10887
|
const resolvedStyle = style ?? "default";
|
|
10692
10888
|
const allowDrag = dragAndDrop ?? resolvedStyle === "large";
|
|
10693
10889
|
const openPicker = () => {
|
|
@@ -10706,7 +10902,7 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10706
10902
|
onChange?.(event.dataTransfer.files);
|
|
10707
10903
|
}
|
|
10708
10904
|
};
|
|
10709
|
-
return /* @__PURE__ */ (0,
|
|
10905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
10710
10906
|
"div",
|
|
10711
10907
|
{
|
|
10712
10908
|
ref,
|
|
@@ -10737,7 +10933,7 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10737
10933
|
onDrop: handleDrop,
|
|
10738
10934
|
...props,
|
|
10739
10935
|
children: [
|
|
10740
|
-
/* @__PURE__ */ (0,
|
|
10936
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
10741
10937
|
"input",
|
|
10742
10938
|
{
|
|
10743
10939
|
ref: inputRef,
|
|
@@ -10752,8 +10948,8 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10752
10948
|
...inputProps
|
|
10753
10949
|
}
|
|
10754
10950
|
),
|
|
10755
|
-
/* @__PURE__ */ (0,
|
|
10756
|
-
resolvedStyle === "large" ? /* @__PURE__ */ (0,
|
|
10951
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "aviala-upload__icon", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons19.GeneralUpload, { width: 16, height: 16 }) }),
|
|
10952
|
+
resolvedStyle === "large" ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
10757
10953
|
Typeface,
|
|
10758
10954
|
{
|
|
10759
10955
|
className: "aviala-upload__typeface",
|
|
@@ -10761,7 +10957,7 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10761
10957
|
primary: resolvedTitle,
|
|
10762
10958
|
secondary: resolvedDescription
|
|
10763
10959
|
}
|
|
10764
|
-
) : /* @__PURE__ */ (0,
|
|
10960
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typography, { level: "text", as: "span", className: "aviala-upload__label", children: resolvedLabel })
|
|
10765
10961
|
]
|
|
10766
10962
|
}
|
|
10767
10963
|
);
|
|
@@ -10770,14 +10966,14 @@ var Upload = (0, import_react60.forwardRef)(
|
|
|
10770
10966
|
Upload.displayName = "Upload";
|
|
10771
10967
|
|
|
10772
10968
|
// src/components/video/video.tsx
|
|
10773
|
-
var
|
|
10969
|
+
var import_react67 = require("react");
|
|
10774
10970
|
|
|
10775
10971
|
// src/components/video/video-controls.tsx
|
|
10776
|
-
var
|
|
10777
|
-
var
|
|
10972
|
+
var import_icons21 = require("@aviala-design/icons");
|
|
10973
|
+
var import_react65 = require("react");
|
|
10778
10974
|
|
|
10779
10975
|
// src/components/video/use-video-state.ts
|
|
10780
|
-
var
|
|
10976
|
+
var import_react62 = require("react");
|
|
10781
10977
|
function videoObjectFitToCss(fit) {
|
|
10782
10978
|
switch (fit) {
|
|
10783
10979
|
case "stretch":
|
|
@@ -10841,26 +11037,26 @@ function useVideoState({
|
|
|
10841
11037
|
onPrevious,
|
|
10842
11038
|
onNext
|
|
10843
11039
|
}) {
|
|
10844
|
-
const [playing, setPlaying] = (0,
|
|
10845
|
-
const [currentTime, setCurrentTime] = (0,
|
|
10846
|
-
const [duration, setDuration] = (0,
|
|
10847
|
-
const [seeking, setSeeking] = (0,
|
|
10848
|
-
const [fullscreen, setFullscreen] = (0,
|
|
10849
|
-
const [internalMuted, setInternalMuted] = (0,
|
|
11040
|
+
const [playing, setPlaying] = (0, import_react62.useState)(false);
|
|
11041
|
+
const [currentTime, setCurrentTime] = (0, import_react62.useState)(0);
|
|
11042
|
+
const [duration, setDuration] = (0, import_react62.useState)(0);
|
|
11043
|
+
const [seeking, setSeeking] = (0, import_react62.useState)(false);
|
|
11044
|
+
const [fullscreen, setFullscreen] = (0, import_react62.useState)(false);
|
|
11045
|
+
const [internalMuted, setInternalMuted] = (0, import_react62.useState)(defaultMuted);
|
|
10850
11046
|
const muted = mutedProp ?? internalMuted;
|
|
10851
|
-
const [internalRate, setInternalRate] = (0,
|
|
11047
|
+
const [internalRate, setInternalRate] = (0, import_react62.useState)(defaultPlaybackRate);
|
|
10852
11048
|
const playbackRate = rateProp ?? internalRate;
|
|
10853
|
-
const [internalObjectFit, setInternalObjectFit] = (0,
|
|
11049
|
+
const [internalObjectFit, setInternalObjectFit] = (0, import_react62.useState)(defaultObjectFit);
|
|
10854
11050
|
const objectFit = objectFitProp ?? internalObjectFit;
|
|
10855
|
-
const [internalVolumeBalance, setInternalVolumeBalance] = (0,
|
|
11051
|
+
const [internalVolumeBalance, setInternalVolumeBalance] = (0, import_react62.useState)(defaultVolumeBalance);
|
|
10856
11052
|
const volumeBalance = volumeBalanceProp ?? internalVolumeBalance;
|
|
10857
|
-
const [internalVolume, setInternalVolume] = (0,
|
|
11053
|
+
const [internalVolume, setInternalVolume] = (0, import_react62.useState)(
|
|
10858
11054
|
() => Math.min(1, Math.max(0, defaultVolume))
|
|
10859
11055
|
);
|
|
10860
11056
|
const volume = volumeProp ?? internalVolume;
|
|
10861
|
-
const balanceGraphRef = (0,
|
|
10862
|
-
const seekingRef = (0,
|
|
10863
|
-
const setMuted = (0,
|
|
11057
|
+
const balanceGraphRef = (0, import_react62.useRef)(null);
|
|
11058
|
+
const seekingRef = (0, import_react62.useRef)(false);
|
|
11059
|
+
const setMuted = (0, import_react62.useCallback)(
|
|
10864
11060
|
(next) => {
|
|
10865
11061
|
if (mutedProp === void 0) setInternalMuted(next);
|
|
10866
11062
|
onMutedChange?.(next);
|
|
@@ -10869,7 +11065,7 @@ function useVideoState({
|
|
|
10869
11065
|
},
|
|
10870
11066
|
[mutedProp, onMutedChange, videoRef]
|
|
10871
11067
|
);
|
|
10872
|
-
const setPlaybackRate = (0,
|
|
11068
|
+
const setPlaybackRate = (0, import_react62.useCallback)(
|
|
10873
11069
|
(next) => {
|
|
10874
11070
|
if (rateProp === void 0) setInternalRate(next);
|
|
10875
11071
|
onPlaybackRateChange?.(next);
|
|
@@ -10878,14 +11074,14 @@ function useVideoState({
|
|
|
10878
11074
|
},
|
|
10879
11075
|
[rateProp, onPlaybackRateChange, videoRef]
|
|
10880
11076
|
);
|
|
10881
|
-
const setObjectFit = (0,
|
|
11077
|
+
const setObjectFit = (0, import_react62.useCallback)(
|
|
10882
11078
|
(next) => {
|
|
10883
11079
|
if (objectFitProp === void 0) setInternalObjectFit(next);
|
|
10884
11080
|
onObjectFitChange?.(next);
|
|
10885
11081
|
},
|
|
10886
11082
|
[objectFitProp, onObjectFitChange]
|
|
10887
11083
|
);
|
|
10888
|
-
const setVolume = (0,
|
|
11084
|
+
const setVolume = (0, import_react62.useCallback)(
|
|
10889
11085
|
(next) => {
|
|
10890
11086
|
const clamped = Math.min(1, Math.max(0, next));
|
|
10891
11087
|
if (volumeProp === void 0) setInternalVolume(clamped);
|
|
@@ -10897,14 +11093,14 @@ function useVideoState({
|
|
|
10897
11093
|
},
|
|
10898
11094
|
[muted, onVolumeChange, setMuted, videoRef, volumeProp]
|
|
10899
11095
|
);
|
|
10900
|
-
const setVolumeBalance = (0,
|
|
11096
|
+
const setVolumeBalance = (0, import_react62.useCallback)(
|
|
10901
11097
|
(next) => {
|
|
10902
11098
|
if (volumeBalanceProp === void 0) setInternalVolumeBalance(next);
|
|
10903
11099
|
onVolumeBalanceChange?.(next);
|
|
10904
11100
|
},
|
|
10905
11101
|
[volumeBalanceProp, onVolumeBalanceChange]
|
|
10906
11102
|
);
|
|
10907
|
-
(0,
|
|
11103
|
+
(0, import_react62.useEffect)(() => {
|
|
10908
11104
|
const video = videoRef.current;
|
|
10909
11105
|
if (!video) return;
|
|
10910
11106
|
video.muted = muted;
|
|
@@ -10944,7 +11140,7 @@ function useVideoState({
|
|
|
10944
11140
|
video.removeEventListener("volumechange", onVolumeChangeEvent);
|
|
10945
11141
|
};
|
|
10946
11142
|
}, [videoRef, muted, playbackRate, volume, mutedProp, volumeProp]);
|
|
10947
|
-
(0,
|
|
11143
|
+
(0, import_react62.useEffect)(() => {
|
|
10948
11144
|
if (!playing) return;
|
|
10949
11145
|
const video = videoRef.current;
|
|
10950
11146
|
if (!video) return;
|
|
@@ -10959,7 +11155,7 @@ function useVideoState({
|
|
|
10959
11155
|
raf = requestAnimationFrame(tick);
|
|
10960
11156
|
return () => cancelAnimationFrame(raf);
|
|
10961
11157
|
}, [playing, videoRef]);
|
|
10962
|
-
(0,
|
|
11158
|
+
(0, import_react62.useEffect)(() => {
|
|
10963
11159
|
const onFullscreenChange = () => {
|
|
10964
11160
|
const root = rootRef.current;
|
|
10965
11161
|
const active = document.fullscreenElement === root || // Safari
|
|
@@ -10973,7 +11169,7 @@ function useVideoState({
|
|
|
10973
11169
|
document.removeEventListener("webkitfullscreenchange", onFullscreenChange);
|
|
10974
11170
|
};
|
|
10975
11171
|
}, [rootRef]);
|
|
10976
|
-
(0,
|
|
11172
|
+
(0, import_react62.useEffect)(() => {
|
|
10977
11173
|
const video = videoRef.current;
|
|
10978
11174
|
if (!video) return;
|
|
10979
11175
|
let cancelled = false;
|
|
@@ -11015,7 +11211,7 @@ function useVideoState({
|
|
|
11015
11211
|
cancelled = true;
|
|
11016
11212
|
};
|
|
11017
11213
|
}, [volumeBalance, videoRef]);
|
|
11018
|
-
(0,
|
|
11214
|
+
(0, import_react62.useEffect)(() => {
|
|
11019
11215
|
return () => {
|
|
11020
11216
|
const graph = balanceGraphRef.current;
|
|
11021
11217
|
if (!graph) return;
|
|
@@ -11028,7 +11224,7 @@ function useVideoState({
|
|
|
11028
11224
|
balanceGraphRef.current = null;
|
|
11029
11225
|
};
|
|
11030
11226
|
}, []);
|
|
11031
|
-
const togglePlay = (0,
|
|
11227
|
+
const togglePlay = (0, import_react62.useCallback)(() => {
|
|
11032
11228
|
const video = videoRef.current;
|
|
11033
11229
|
if (!video) return;
|
|
11034
11230
|
if (video.paused) {
|
|
@@ -11037,7 +11233,7 @@ function useVideoState({
|
|
|
11037
11233
|
video.pause();
|
|
11038
11234
|
}
|
|
11039
11235
|
}, [videoRef]);
|
|
11040
|
-
const seekBy = (0,
|
|
11236
|
+
const seekBy = (0, import_react62.useCallback)(
|
|
11041
11237
|
(delta) => {
|
|
11042
11238
|
const video = videoRef.current;
|
|
11043
11239
|
if (!video) return;
|
|
@@ -11050,21 +11246,21 @@ function useVideoState({
|
|
|
11050
11246
|
},
|
|
11051
11247
|
[videoRef]
|
|
11052
11248
|
);
|
|
11053
|
-
const handlePrevious = (0,
|
|
11249
|
+
const handlePrevious = (0, import_react62.useCallback)(() => {
|
|
11054
11250
|
if (onPrevious) {
|
|
11055
11251
|
onPrevious();
|
|
11056
11252
|
return;
|
|
11057
11253
|
}
|
|
11058
11254
|
seekBy(-skipSeconds);
|
|
11059
11255
|
}, [onPrevious, seekBy, skipSeconds]);
|
|
11060
|
-
const handleNext = (0,
|
|
11256
|
+
const handleNext = (0, import_react62.useCallback)(() => {
|
|
11061
11257
|
if (onNext) {
|
|
11062
11258
|
onNext();
|
|
11063
11259
|
return;
|
|
11064
11260
|
}
|
|
11065
11261
|
seekBy(skipSeconds);
|
|
11066
11262
|
}, [onNext, seekBy, skipSeconds]);
|
|
11067
|
-
const seekTo = (0,
|
|
11263
|
+
const seekTo = (0, import_react62.useCallback)(
|
|
11068
11264
|
(time) => {
|
|
11069
11265
|
const video = videoRef.current;
|
|
11070
11266
|
if (!video) return;
|
|
@@ -11077,11 +11273,11 @@ function useVideoState({
|
|
|
11077
11273
|
},
|
|
11078
11274
|
[videoRef]
|
|
11079
11275
|
);
|
|
11080
|
-
const beginSeek = (0,
|
|
11276
|
+
const beginSeek = (0, import_react62.useCallback)(() => {
|
|
11081
11277
|
seekingRef.current = true;
|
|
11082
11278
|
setSeeking(true);
|
|
11083
11279
|
}, []);
|
|
11084
|
-
const previewSeek = (0,
|
|
11280
|
+
const previewSeek = (0, import_react62.useCallback)(
|
|
11085
11281
|
(time) => {
|
|
11086
11282
|
const video = videoRef.current;
|
|
11087
11283
|
if (!video) return;
|
|
@@ -11094,14 +11290,14 @@ function useVideoState({
|
|
|
11094
11290
|
},
|
|
11095
11291
|
[videoRef]
|
|
11096
11292
|
);
|
|
11097
|
-
const endSeek = (0,
|
|
11293
|
+
const endSeek = (0, import_react62.useCallback)(() => {
|
|
11098
11294
|
seekingRef.current = false;
|
|
11099
11295
|
setSeeking(false);
|
|
11100
11296
|
}, []);
|
|
11101
|
-
const toggleMute = (0,
|
|
11297
|
+
const toggleMute = (0, import_react62.useCallback)(() => {
|
|
11102
11298
|
setMuted(!muted);
|
|
11103
11299
|
}, [muted, setMuted]);
|
|
11104
|
-
const toggleFullscreen = (0,
|
|
11300
|
+
const toggleFullscreen = (0, import_react62.useCallback)(async () => {
|
|
11105
11301
|
const root = rootRef.current;
|
|
11106
11302
|
if (!root) return;
|
|
11107
11303
|
const doc = document;
|
|
@@ -11148,7 +11344,7 @@ function useVideoState({
|
|
|
11148
11344
|
}
|
|
11149
11345
|
|
|
11150
11346
|
// src/components/video/video-animated-icon.tsx
|
|
11151
|
-
var
|
|
11347
|
+
var import_react63 = require("react");
|
|
11152
11348
|
|
|
11153
11349
|
// src/components/video/video-animated-icon-markup.ts
|
|
11154
11350
|
var VIDEO_ANIMATED_ICON_MARKUP = {
|
|
@@ -11159,7 +11355,7 @@ var VIDEO_ANIMATED_ICON_MARKUP = {
|
|
|
11159
11355
|
};
|
|
11160
11356
|
|
|
11161
11357
|
// src/components/video/video-animated-icon.tsx
|
|
11162
|
-
var
|
|
11358
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
11163
11359
|
var VIDEO_TRANSPORT_ANIMATION_MS = 550;
|
|
11164
11360
|
function prefersReducedMotion3() {
|
|
11165
11361
|
return typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
@@ -11219,21 +11415,21 @@ function setLayerActive(layer, active) {
|
|
|
11219
11415
|
function setLayerRest(layer, rest) {
|
|
11220
11416
|
layer.dataset.rest = rest ? "true" : "false";
|
|
11221
11417
|
}
|
|
11222
|
-
var VideoAnimatedIcon = (0,
|
|
11418
|
+
var VideoAnimatedIcon = (0, import_react63.memo)(function VideoAnimatedIcon2({
|
|
11223
11419
|
name,
|
|
11224
11420
|
playToken = 0
|
|
11225
11421
|
}) {
|
|
11226
|
-
const uid = (0,
|
|
11227
|
-
const hostRef = (0,
|
|
11228
|
-
const playLayerRef = (0,
|
|
11229
|
-
const pauseLayerRef = (0,
|
|
11230
|
-
const singleLayerRef = (0,
|
|
11231
|
-
const lockRef = (0,
|
|
11232
|
-
const shownRef = (0,
|
|
11233
|
-
const nameRef = (0,
|
|
11422
|
+
const uid = (0, import_react63.useId)().replace(/:/g, "");
|
|
11423
|
+
const hostRef = (0, import_react63.useRef)(null);
|
|
11424
|
+
const playLayerRef = (0, import_react63.useRef)(null);
|
|
11425
|
+
const pauseLayerRef = (0, import_react63.useRef)(null);
|
|
11426
|
+
const singleLayerRef = (0, import_react63.useRef)(null);
|
|
11427
|
+
const lockRef = (0, import_react63.useRef)(false);
|
|
11428
|
+
const shownRef = (0, import_react63.useRef)(name);
|
|
11429
|
+
const nameRef = (0, import_react63.useRef)(name);
|
|
11234
11430
|
nameRef.current = name;
|
|
11235
11431
|
const isPlayPause = name === "play" || name === "pause";
|
|
11236
|
-
(0,
|
|
11432
|
+
(0, import_react63.useLayoutEffect)(() => {
|
|
11237
11433
|
if (isPlayPause) {
|
|
11238
11434
|
const playLayer = playLayerRef.current;
|
|
11239
11435
|
const pauseLayer = pauseLayerRef.current;
|
|
@@ -11257,7 +11453,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11257
11453
|
setLayerRest(layer, true);
|
|
11258
11454
|
shownRef.current = name;
|
|
11259
11455
|
}, []);
|
|
11260
|
-
(0,
|
|
11456
|
+
(0, import_react63.useLayoutEffect)(() => {
|
|
11261
11457
|
if (playToken === 0) return;
|
|
11262
11458
|
if (prefersReducedMotion3()) {
|
|
11263
11459
|
const target2 = nameRef.current;
|
|
@@ -11309,7 +11505,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11309
11505
|
}, VIDEO_TRANSPORT_ANIMATION_MS);
|
|
11310
11506
|
return () => window.clearTimeout(timer);
|
|
11311
11507
|
}, [playToken]);
|
|
11312
|
-
(0,
|
|
11508
|
+
(0, import_react63.useLayoutEffect)(() => {
|
|
11313
11509
|
if (lockRef.current) return;
|
|
11314
11510
|
if (shownRef.current === name) return;
|
|
11315
11511
|
if (name !== "play" && name !== "pause") return;
|
|
@@ -11322,8 +11518,8 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11322
11518
|
shownRef.current = name;
|
|
11323
11519
|
}, [name]);
|
|
11324
11520
|
if (isPlayPause) {
|
|
11325
|
-
return /* @__PURE__ */ (0,
|
|
11326
|
-
/* @__PURE__ */ (0,
|
|
11521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { ref: hostRef, className: "aviala-video__animated-icon", "aria-hidden": true, children: [
|
|
11522
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11327
11523
|
"span",
|
|
11328
11524
|
{
|
|
11329
11525
|
ref: playLayerRef,
|
|
@@ -11331,7 +11527,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11331
11527
|
"data-active": "true"
|
|
11332
11528
|
}
|
|
11333
11529
|
),
|
|
11334
|
-
/* @__PURE__ */ (0,
|
|
11530
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11335
11531
|
"span",
|
|
11336
11532
|
{
|
|
11337
11533
|
ref: pauseLayerRef,
|
|
@@ -11341,7 +11537,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11341
11537
|
)
|
|
11342
11538
|
] });
|
|
11343
11539
|
}
|
|
11344
|
-
return /* @__PURE__ */ (0,
|
|
11540
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11345
11541
|
"span",
|
|
11346
11542
|
{
|
|
11347
11543
|
ref: hostRef,
|
|
@@ -11349,7 +11545,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11349
11545
|
"data-flip": name === "next" ? "true" : void 0,
|
|
11350
11546
|
"data-mirror-motion": name === "previous" ? "true" : void 0,
|
|
11351
11547
|
"aria-hidden": true,
|
|
11352
|
-
children: /* @__PURE__ */ (0,
|
|
11548
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11353
11549
|
"span",
|
|
11354
11550
|
{
|
|
11355
11551
|
ref: singleLayerRef,
|
|
@@ -11363,7 +11559,7 @@ var VideoAnimatedIcon = (0, import_react62.memo)(function VideoAnimatedIcon2({
|
|
|
11363
11559
|
});
|
|
11364
11560
|
|
|
11365
11561
|
// src/components/video/video-settings.tsx
|
|
11366
|
-
var
|
|
11562
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
11367
11563
|
function VideoSettings({
|
|
11368
11564
|
locale,
|
|
11369
11565
|
objectFit,
|
|
@@ -11372,29 +11568,29 @@ function VideoSettings({
|
|
|
11372
11568
|
onVolumeBalanceChange,
|
|
11373
11569
|
trigger
|
|
11374
11570
|
}) {
|
|
11375
|
-
return /* @__PURE__ */ (0,
|
|
11376
|
-
/* @__PURE__ */ (0,
|
|
11377
|
-
/* @__PURE__ */ (0,
|
|
11378
|
-
/* @__PURE__ */ (0,
|
|
11379
|
-
/* @__PURE__ */ (0,
|
|
11380
|
-
/* @__PURE__ */ (0,
|
|
11381
|
-
/* @__PURE__ */ (0,
|
|
11571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Popover, { children: [
|
|
11572
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(PopoverTrigger, { asChild: true, children: trigger }),
|
|
11573
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(PopoverContent, { side: "top", align: "end", showArrow: true, flush: true, sideOffset: 8, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "aviala-video__settings-body", children: [
|
|
11574
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Typography, { level: "subtitle", children: locale.settingsTitle }),
|
|
11575
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "aviala-video__settings-section", children: [
|
|
11576
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Typography, { level: "text", children: locale.aspectRatio }),
|
|
11577
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
11382
11578
|
SegmentatorGroup,
|
|
11383
11579
|
{
|
|
11384
11580
|
equalWidth: true,
|
|
11385
11581
|
value: objectFit,
|
|
11386
11582
|
onValueChange: (value) => onObjectFitChange(value),
|
|
11387
11583
|
children: [
|
|
11388
|
-
/* @__PURE__ */ (0,
|
|
11389
|
-
/* @__PURE__ */ (0,
|
|
11390
|
-
/* @__PURE__ */ (0,
|
|
11584
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SegmentatorItem, { value: "original", children: locale.aspectOriginal }),
|
|
11585
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SegmentatorItem, { value: "stretch", children: locale.aspectStretch }),
|
|
11586
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SegmentatorItem, { value: "fill", children: locale.aspectFill })
|
|
11391
11587
|
]
|
|
11392
11588
|
}
|
|
11393
11589
|
)
|
|
11394
11590
|
] }),
|
|
11395
|
-
/* @__PURE__ */ (0,
|
|
11396
|
-
/* @__PURE__ */ (0,
|
|
11397
|
-
/* @__PURE__ */ (0,
|
|
11591
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "aviala-video__settings-row", children: [
|
|
11592
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Typography, { level: "text", children: locale.volumeBalance }),
|
|
11593
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
11398
11594
|
Switch,
|
|
11399
11595
|
{
|
|
11400
11596
|
size: "small",
|
|
@@ -11409,9 +11605,9 @@ function VideoSettings({
|
|
|
11409
11605
|
}
|
|
11410
11606
|
|
|
11411
11607
|
// src/components/video/video-speed.tsx
|
|
11412
|
-
var
|
|
11413
|
-
var
|
|
11414
|
-
var
|
|
11608
|
+
var import_icons20 = require("@aviala-design/icons");
|
|
11609
|
+
var import_react64 = require("react");
|
|
11610
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
11415
11611
|
function formatSpeedRate(template, rate) {
|
|
11416
11612
|
return interpolate(template, { rate });
|
|
11417
11613
|
}
|
|
@@ -11424,11 +11620,11 @@ function VideoSpeed({
|
|
|
11424
11620
|
onPlaybackRateChange,
|
|
11425
11621
|
trigger
|
|
11426
11622
|
}) {
|
|
11427
|
-
const [open, setOpen] = (0,
|
|
11428
|
-
return /* @__PURE__ */ (0,
|
|
11429
|
-
/* @__PURE__ */ (0,
|
|
11430
|
-
/* @__PURE__ */ (0,
|
|
11431
|
-
/* @__PURE__ */ (0,
|
|
11623
|
+
const [open, setOpen] = (0, import_react64.useState)(false);
|
|
11624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
11625
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(PopoverTrigger, { asChild: true, children: trigger }),
|
|
11626
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(PopoverContent, { side: "top", align: "center", showArrow: true, flush: true, sideOffset: 8, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "aviala-video__speed-menu", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "aviala-select-group", role: "none", children: [
|
|
11627
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11432
11628
|
"div",
|
|
11433
11629
|
{
|
|
11434
11630
|
className: cn(
|
|
@@ -11438,7 +11634,7 @@ function VideoSpeed({
|
|
|
11438
11634
|
children: title
|
|
11439
11635
|
}
|
|
11440
11636
|
),
|
|
11441
|
-
/* @__PURE__ */ (0,
|
|
11637
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11442
11638
|
"div",
|
|
11443
11639
|
{
|
|
11444
11640
|
className: "aviala-select-group__slot",
|
|
@@ -11446,7 +11642,7 @@ function VideoSpeed({
|
|
|
11446
11642
|
"aria-label": label,
|
|
11447
11643
|
children: playbackRates.map((rate) => {
|
|
11448
11644
|
const selected = rate === playbackRate;
|
|
11449
|
-
return /* @__PURE__ */ (0,
|
|
11645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
11450
11646
|
"button",
|
|
11451
11647
|
{
|
|
11452
11648
|
type: "button",
|
|
@@ -11460,7 +11656,7 @@ function VideoSpeed({
|
|
|
11460
11656
|
setOpen(false);
|
|
11461
11657
|
},
|
|
11462
11658
|
children: [
|
|
11463
|
-
/* @__PURE__ */ (0,
|
|
11659
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11464
11660
|
"span",
|
|
11465
11661
|
{
|
|
11466
11662
|
className: cn(
|
|
@@ -11470,12 +11666,12 @@ function VideoSpeed({
|
|
|
11470
11666
|
children: formatSpeedRate(rateTemplate, rate)
|
|
11471
11667
|
}
|
|
11472
11668
|
),
|
|
11473
|
-
selected ? /* @__PURE__ */ (0,
|
|
11669
|
+
selected ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
11474
11670
|
"span",
|
|
11475
11671
|
{
|
|
11476
11672
|
className: "aviala-select-item__trailing-radio",
|
|
11477
11673
|
"aria-hidden": true,
|
|
11478
|
-
children: /* @__PURE__ */ (0,
|
|
11674
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_icons20.SymbolRight, { level: "text", biggerSize: true, "aria-hidden": true })
|
|
11479
11675
|
}
|
|
11480
11676
|
) : null
|
|
11481
11677
|
]
|
|
@@ -11490,17 +11686,17 @@ function VideoSpeed({
|
|
|
11490
11686
|
}
|
|
11491
11687
|
|
|
11492
11688
|
// src/components/video/video-volume.tsx
|
|
11493
|
-
var
|
|
11689
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
11494
11690
|
function VideoVolume({
|
|
11495
11691
|
label,
|
|
11496
11692
|
percent,
|
|
11497
11693
|
onPercentChange,
|
|
11498
11694
|
trigger
|
|
11499
11695
|
}) {
|
|
11500
|
-
return /* @__PURE__ */ (0,
|
|
11501
|
-
/* @__PURE__ */ (0,
|
|
11502
|
-
/* @__PURE__ */ (0,
|
|
11503
|
-
/* @__PURE__ */ (0,
|
|
11696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Popover, { children: [
|
|
11697
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(PopoverTrigger, { asChild: true, children: trigger }),
|
|
11698
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(PopoverContent, { side: "top", align: "center", showArrow: true, flush: true, sideOffset: 8, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "aviala-video__volume-body", children: [
|
|
11699
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
11504
11700
|
Slider,
|
|
11505
11701
|
{
|
|
11506
11702
|
className: "aviala-video__volume-slider",
|
|
@@ -11514,13 +11710,13 @@ function VideoVolume({
|
|
|
11514
11710
|
onValueChange: (values) => onPercentChange(values[0] ?? 0)
|
|
11515
11711
|
}
|
|
11516
11712
|
),
|
|
11517
|
-
/* @__PURE__ */ (0,
|
|
11713
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typography, { level: "text", children: `${percent}%` })
|
|
11518
11714
|
] }) })
|
|
11519
11715
|
] });
|
|
11520
11716
|
}
|
|
11521
11717
|
|
|
11522
11718
|
// src/components/video/video-controls.tsx
|
|
11523
|
-
var
|
|
11719
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
11524
11720
|
function volumePercent(volume, muted) {
|
|
11525
11721
|
if (muted) return 0;
|
|
11526
11722
|
return Math.round(Math.min(1, Math.max(0, volume)) * 100);
|
|
@@ -11528,17 +11724,17 @@ function volumePercent(volume, muted) {
|
|
|
11528
11724
|
function VolumeTriggerIcon({
|
|
11529
11725
|
percent
|
|
11530
11726
|
}) {
|
|
11531
|
-
if (percent <= 0) return /* @__PURE__ */ (0,
|
|
11532
|
-
if (percent < 34) return /* @__PURE__ */ (0,
|
|
11533
|
-
if (percent < 67) return /* @__PURE__ */ (0,
|
|
11534
|
-
return /* @__PURE__ */ (0,
|
|
11727
|
+
if (percent <= 0) return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralVolumeSlash, { mode: "fill", "aria-hidden": true });
|
|
11728
|
+
if (percent < 34) return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralVolumeMin, { mode: "fill", "aria-hidden": true });
|
|
11729
|
+
if (percent < 67) return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralVolumeMiddle, { mode: "fill", "aria-hidden": true });
|
|
11730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralVolumeMax, { mode: "fill", "aria-hidden": true });
|
|
11535
11731
|
}
|
|
11536
11732
|
function ControlIconButton({
|
|
11537
11733
|
label,
|
|
11538
11734
|
icon,
|
|
11539
11735
|
onClick
|
|
11540
11736
|
}) {
|
|
11541
|
-
return /* @__PURE__ */ (0,
|
|
11737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11542
11738
|
Button,
|
|
11543
11739
|
{
|
|
11544
11740
|
type: "button",
|
|
@@ -11552,34 +11748,34 @@ function ControlIconButton({
|
|
|
11552
11748
|
}
|
|
11553
11749
|
);
|
|
11554
11750
|
}
|
|
11555
|
-
var VideoTransportButtons = (0,
|
|
11751
|
+
var VideoTransportButtons = (0, import_react65.memo)(function VideoTransportButtons2({
|
|
11556
11752
|
playing,
|
|
11557
11753
|
locale,
|
|
11558
11754
|
onTogglePlay,
|
|
11559
11755
|
onPrevious,
|
|
11560
11756
|
onNext
|
|
11561
11757
|
}) {
|
|
11562
|
-
const [prevToken, setPrevToken] = (0,
|
|
11563
|
-
const [nextToken, setNextToken] = (0,
|
|
11564
|
-
const [playToken, setPlayToken] = (0,
|
|
11565
|
-
const playLockRef = (0,
|
|
11566
|
-
return /* @__PURE__ */ (0,
|
|
11567
|
-
/* @__PURE__ */ (0,
|
|
11758
|
+
const [prevToken, setPrevToken] = (0, import_react65.useState)(0);
|
|
11759
|
+
const [nextToken, setNextToken] = (0, import_react65.useState)(0);
|
|
11760
|
+
const [playToken, setPlayToken] = (0, import_react65.useState)(0);
|
|
11761
|
+
const playLockRef = (0, import_react65.useRef)(false);
|
|
11762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "aviala-video__group", children: [
|
|
11763
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11568
11764
|
ControlIconButton,
|
|
11569
11765
|
{
|
|
11570
11766
|
label: locale.previous,
|
|
11571
|
-
icon: /* @__PURE__ */ (0,
|
|
11767
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(VideoAnimatedIcon, { name: "previous", playToken: prevToken }),
|
|
11572
11768
|
onClick: () => {
|
|
11573
11769
|
setPrevToken((token) => token + 1);
|
|
11574
11770
|
onPrevious();
|
|
11575
11771
|
}
|
|
11576
11772
|
}
|
|
11577
11773
|
),
|
|
11578
|
-
/* @__PURE__ */ (0,
|
|
11774
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11579
11775
|
ControlIconButton,
|
|
11580
11776
|
{
|
|
11581
11777
|
label: playing ? locale.pause : locale.play,
|
|
11582
|
-
icon: /* @__PURE__ */ (0,
|
|
11778
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11583
11779
|
VideoAnimatedIcon,
|
|
11584
11780
|
{
|
|
11585
11781
|
name: playing ? "pause" : "play",
|
|
@@ -11597,11 +11793,11 @@ var VideoTransportButtons = (0, import_react64.memo)(function VideoTransportButt
|
|
|
11597
11793
|
}
|
|
11598
11794
|
}
|
|
11599
11795
|
),
|
|
11600
|
-
/* @__PURE__ */ (0,
|
|
11796
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11601
11797
|
ControlIconButton,
|
|
11602
11798
|
{
|
|
11603
11799
|
label: locale.next,
|
|
11604
|
-
icon: /* @__PURE__ */ (0,
|
|
11800
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(VideoAnimatedIcon, { name: "next", playToken: nextToken }),
|
|
11605
11801
|
onClick: () => {
|
|
11606
11802
|
setNextToken((token) => token + 1);
|
|
11607
11803
|
onNext();
|
|
@@ -11617,9 +11813,9 @@ function VideoTimeInput({
|
|
|
11617
11813
|
}) {
|
|
11618
11814
|
const safeDuration = Number.isFinite(duration) && duration > 0 ? duration : 0;
|
|
11619
11815
|
const timeLabel = `${formatVideoTime(currentTime)} / ${formatVideoTime(safeDuration)}`;
|
|
11620
|
-
const [editing, setEditing] = (0,
|
|
11621
|
-
const [draft, setDraft] = (0,
|
|
11622
|
-
(0,
|
|
11816
|
+
const [editing, setEditing] = (0, import_react65.useState)(false);
|
|
11817
|
+
const [draft, setDraft] = (0, import_react65.useState)(timeLabel);
|
|
11818
|
+
(0, import_react65.useEffect)(() => {
|
|
11623
11819
|
if (!editing) setDraft(timeLabel);
|
|
11624
11820
|
}, [editing, timeLabel]);
|
|
11625
11821
|
const commit = () => {
|
|
@@ -11630,7 +11826,7 @@ function VideoTimeInput({
|
|
|
11630
11826
|
}
|
|
11631
11827
|
setEditing(false);
|
|
11632
11828
|
};
|
|
11633
|
-
return /* @__PURE__ */ (0,
|
|
11829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11634
11830
|
Input,
|
|
11635
11831
|
{
|
|
11636
11832
|
className: "aviala-video__time",
|
|
@@ -11692,9 +11888,9 @@ function VideoControls({
|
|
|
11692
11888
|
const sliderMax = safeDuration > 0 ? safeDuration : 1;
|
|
11693
11889
|
const sliderValue = Math.min(Math.max(0, currentTime), sliderMax);
|
|
11694
11890
|
const percent = volumePercent(volume, muted);
|
|
11695
|
-
return /* @__PURE__ */ (0,
|
|
11696
|
-
/* @__PURE__ */ (0,
|
|
11697
|
-
/* @__PURE__ */ (0,
|
|
11891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "aviala-video__controls", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "aviala-video__bar", children: [
|
|
11892
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "aviala-video__bar-bg", "aria-hidden": true }),
|
|
11893
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11698
11894
|
VideoTransportButtons,
|
|
11699
11895
|
{
|
|
11700
11896
|
playing,
|
|
@@ -11704,8 +11900,8 @@ function VideoControls({
|
|
|
11704
11900
|
onNext
|
|
11705
11901
|
}
|
|
11706
11902
|
),
|
|
11707
|
-
/* @__PURE__ */ (0,
|
|
11708
|
-
/* @__PURE__ */ (0,
|
|
11903
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "aviala-video__progress", children: [
|
|
11904
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11709
11905
|
VideoTimeInput,
|
|
11710
11906
|
{
|
|
11711
11907
|
currentTime,
|
|
@@ -11718,7 +11914,7 @@ function VideoControls({
|
|
|
11718
11914
|
}
|
|
11719
11915
|
}
|
|
11720
11916
|
),
|
|
11721
|
-
/* @__PURE__ */ (0,
|
|
11917
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11722
11918
|
Slider,
|
|
11723
11919
|
{
|
|
11724
11920
|
className: "aviala-video__seek",
|
|
@@ -11742,8 +11938,8 @@ function VideoControls({
|
|
|
11742
11938
|
}
|
|
11743
11939
|
)
|
|
11744
11940
|
] }),
|
|
11745
|
-
/* @__PURE__ */ (0,
|
|
11746
|
-
/* @__PURE__ */ (0,
|
|
11941
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "aviala-video__group", children: [
|
|
11942
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11747
11943
|
VideoSpeed,
|
|
11748
11944
|
{
|
|
11749
11945
|
label: locale.speed,
|
|
@@ -11752,7 +11948,7 @@ function VideoControls({
|
|
|
11752
11948
|
playbackRate,
|
|
11753
11949
|
playbackRates,
|
|
11754
11950
|
onPlaybackRateChange,
|
|
11755
|
-
trigger: /* @__PURE__ */ (0,
|
|
11951
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11756
11952
|
Button,
|
|
11757
11953
|
{
|
|
11758
11954
|
type: "button",
|
|
@@ -11766,13 +11962,13 @@ function VideoControls({
|
|
|
11766
11962
|
)
|
|
11767
11963
|
}
|
|
11768
11964
|
),
|
|
11769
|
-
/* @__PURE__ */ (0,
|
|
11965
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11770
11966
|
VideoVolume,
|
|
11771
11967
|
{
|
|
11772
11968
|
label: locale.volume,
|
|
11773
11969
|
percent,
|
|
11774
11970
|
onPercentChange: (next) => onVolumeChange(next / 100),
|
|
11775
|
-
trigger: /* @__PURE__ */ (0,
|
|
11971
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11776
11972
|
Button,
|
|
11777
11973
|
{
|
|
11778
11974
|
type: "button",
|
|
@@ -11781,12 +11977,12 @@ function VideoControls({
|
|
|
11781
11977
|
iconOnly: true,
|
|
11782
11978
|
allRound: true,
|
|
11783
11979
|
"aria-label": locale.volume,
|
|
11784
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
11980
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(VolumeTriggerIcon, { percent })
|
|
11785
11981
|
}
|
|
11786
11982
|
)
|
|
11787
11983
|
}
|
|
11788
11984
|
),
|
|
11789
|
-
/* @__PURE__ */ (0,
|
|
11985
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11790
11986
|
VideoSettings,
|
|
11791
11987
|
{
|
|
11792
11988
|
locale,
|
|
@@ -11794,7 +11990,7 @@ function VideoControls({
|
|
|
11794
11990
|
volumeBalance,
|
|
11795
11991
|
onObjectFitChange,
|
|
11796
11992
|
onVolumeBalanceChange,
|
|
11797
|
-
trigger: /* @__PURE__ */ (0,
|
|
11993
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11798
11994
|
Button,
|
|
11799
11995
|
{
|
|
11800
11996
|
type: "button",
|
|
@@ -11803,16 +11999,16 @@ function VideoControls({
|
|
|
11803
11999
|
iconOnly: true,
|
|
11804
12000
|
allRound: true,
|
|
11805
12001
|
"aria-label": locale.settings,
|
|
11806
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
12002
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralSetting, { mode: "fill", "aria-hidden": true })
|
|
11807
12003
|
}
|
|
11808
12004
|
)
|
|
11809
12005
|
}
|
|
11810
12006
|
),
|
|
11811
|
-
/* @__PURE__ */ (0,
|
|
12007
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
11812
12008
|
ControlIconButton,
|
|
11813
12009
|
{
|
|
11814
12010
|
label: fullscreen ? locale.exitFullscreen : locale.fullscreen,
|
|
11815
|
-
icon: /* @__PURE__ */ (0,
|
|
12011
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_icons21.GeneralFullScreen, { mode: "fill", "aria-hidden": true }),
|
|
11816
12012
|
onClick: onToggleFullscreen
|
|
11817
12013
|
}
|
|
11818
12014
|
)
|
|
@@ -11821,7 +12017,7 @@ function VideoControls({
|
|
|
11821
12017
|
}
|
|
11822
12018
|
|
|
11823
12019
|
// src/components/video/use-controls-auto-hide.ts
|
|
11824
|
-
var
|
|
12020
|
+
var import_react66 = require("react");
|
|
11825
12021
|
var DEFAULT_AUTO_HIDE_DELAY_MS = 2500;
|
|
11826
12022
|
function isOverlayOpen() {
|
|
11827
12023
|
if (typeof document === "undefined") return false;
|
|
@@ -11843,23 +12039,23 @@ function useVideoControlsAutoHide({
|
|
|
11843
12039
|
seeking,
|
|
11844
12040
|
rootRef
|
|
11845
12041
|
}) {
|
|
11846
|
-
const [hidden, setHidden] = (0,
|
|
11847
|
-
const timerRef = (0,
|
|
11848
|
-
const enabledRef = (0,
|
|
11849
|
-
const playingRef = (0,
|
|
11850
|
-
const seekingRef = (0,
|
|
11851
|
-
const delayRef = (0,
|
|
12042
|
+
const [hidden, setHidden] = (0, import_react66.useState)(false);
|
|
12043
|
+
const timerRef = (0, import_react66.useRef)(null);
|
|
12044
|
+
const enabledRef = (0, import_react66.useRef)(enabled);
|
|
12045
|
+
const playingRef = (0, import_react66.useRef)(playing);
|
|
12046
|
+
const seekingRef = (0, import_react66.useRef)(seeking);
|
|
12047
|
+
const delayRef = (0, import_react66.useRef)(delayMs);
|
|
11852
12048
|
enabledRef.current = enabled;
|
|
11853
12049
|
playingRef.current = playing;
|
|
11854
12050
|
seekingRef.current = seeking;
|
|
11855
12051
|
delayRef.current = delayMs;
|
|
11856
|
-
const clearTimer = (0,
|
|
12052
|
+
const clearTimer = (0, import_react66.useCallback)(() => {
|
|
11857
12053
|
if (timerRef.current != null) {
|
|
11858
12054
|
window.clearTimeout(timerRef.current);
|
|
11859
12055
|
timerRef.current = null;
|
|
11860
12056
|
}
|
|
11861
12057
|
}, []);
|
|
11862
|
-
const scheduleHide = (0,
|
|
12058
|
+
const scheduleHide = (0, import_react66.useCallback)(() => {
|
|
11863
12059
|
clearTimer();
|
|
11864
12060
|
if (!enabledRef.current || !playingRef.current) return;
|
|
11865
12061
|
timerRef.current = window.setTimeout(() => {
|
|
@@ -11872,11 +12068,11 @@ function useVideoControlsAutoHide({
|
|
|
11872
12068
|
setHidden(true);
|
|
11873
12069
|
}, delayRef.current);
|
|
11874
12070
|
}, [clearTimer, rootRef]);
|
|
11875
|
-
const reveal = (0,
|
|
12071
|
+
const reveal = (0, import_react66.useCallback)(() => {
|
|
11876
12072
|
setHidden(false);
|
|
11877
12073
|
scheduleHide();
|
|
11878
12074
|
}, [scheduleHide]);
|
|
11879
|
-
(0,
|
|
12075
|
+
(0, import_react66.useEffect)(() => {
|
|
11880
12076
|
if (!enabled || !playing) {
|
|
11881
12077
|
clearTimer();
|
|
11882
12078
|
setHidden(false);
|
|
@@ -11889,7 +12085,7 @@ function useVideoControlsAutoHide({
|
|
|
11889
12085
|
}
|
|
11890
12086
|
scheduleHide();
|
|
11891
12087
|
}, [clearTimer, enabled, playing, scheduleHide, seeking]);
|
|
11892
|
-
(0,
|
|
12088
|
+
(0, import_react66.useEffect)(() => {
|
|
11893
12089
|
const root = rootRef.current;
|
|
11894
12090
|
if (!root || !enabled) return;
|
|
11895
12091
|
const onActivity = () => {
|
|
@@ -11905,13 +12101,13 @@ function useVideoControlsAutoHide({
|
|
|
11905
12101
|
root.removeEventListener("focusin", onActivity);
|
|
11906
12102
|
};
|
|
11907
12103
|
}, [enabled, reveal, rootRef]);
|
|
11908
|
-
(0,
|
|
12104
|
+
(0, import_react66.useEffect)(() => () => clearTimer(), [clearTimer]);
|
|
11909
12105
|
return enabled && playing ? hidden : false;
|
|
11910
12106
|
}
|
|
11911
12107
|
|
|
11912
12108
|
// src/components/video/video.tsx
|
|
11913
|
-
var
|
|
11914
|
-
var Video = (0,
|
|
12109
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
12110
|
+
var Video = (0, import_react67.forwardRef)(
|
|
11915
12111
|
({
|
|
11916
12112
|
appearance = "default",
|
|
11917
12113
|
skipSeconds = 10,
|
|
@@ -11944,8 +12140,8 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
11944
12140
|
...videoProps
|
|
11945
12141
|
}, ref) => {
|
|
11946
12142
|
const locale = useLocaleMessages("Video");
|
|
11947
|
-
const rootRef = (0,
|
|
11948
|
-
const videoRef = (0,
|
|
12143
|
+
const rootRef = (0, import_react67.useRef)(null);
|
|
12144
|
+
const videoRef = (0, import_react67.useRef)(null);
|
|
11949
12145
|
const state = useVideoState({
|
|
11950
12146
|
videoRef,
|
|
11951
12147
|
rootRef,
|
|
@@ -11975,7 +12171,7 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
11975
12171
|
seeking: state.seeking,
|
|
11976
12172
|
rootRef
|
|
11977
12173
|
});
|
|
11978
|
-
(0,
|
|
12174
|
+
(0, import_react67.useImperativeHandle)(
|
|
11979
12175
|
ref,
|
|
11980
12176
|
() => ({
|
|
11981
12177
|
video: videoRef.current,
|
|
@@ -11984,7 +12180,7 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
11984
12180
|
}),
|
|
11985
12181
|
[]
|
|
11986
12182
|
);
|
|
11987
|
-
return /* @__PURE__ */ (0,
|
|
12183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
11988
12184
|
"div",
|
|
11989
12185
|
{
|
|
11990
12186
|
ref: rootRef,
|
|
@@ -12005,7 +12201,7 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
12005
12201
|
"data-fullscreen": state.fullscreen ? "true" : void 0,
|
|
12006
12202
|
...spiralDebugId("video"),
|
|
12007
12203
|
children: [
|
|
12008
|
-
/* @__PURE__ */ (0,
|
|
12204
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "aviala-video__stage", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12009
12205
|
"video",
|
|
12010
12206
|
{
|
|
12011
12207
|
ref: videoRef,
|
|
@@ -12024,7 +12220,7 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
12024
12220
|
children
|
|
12025
12221
|
}
|
|
12026
12222
|
) }),
|
|
12027
|
-
/* @__PURE__ */ (0,
|
|
12223
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
12028
12224
|
VideoControls,
|
|
12029
12225
|
{
|
|
12030
12226
|
locale,
|
|
@@ -12060,8 +12256,8 @@ var Video = (0, import_react66.forwardRef)(
|
|
|
12060
12256
|
Video.displayName = "Video";
|
|
12061
12257
|
|
|
12062
12258
|
// src/components/scroll-picker.tsx
|
|
12063
|
-
var
|
|
12064
|
-
var
|
|
12259
|
+
var import_react68 = require("react");
|
|
12260
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
12065
12261
|
var LOOP_SECTIONS2 = WHEEL_LOOP_SECTIONS;
|
|
12066
12262
|
var MIDDLE_SECTION2 = WHEEL_LOOP_MIDDLE_SECTION;
|
|
12067
12263
|
function readMetrics(container) {
|
|
@@ -12089,7 +12285,7 @@ function readRawIndex(container, metrics) {
|
|
|
12089
12285
|
return Math.round(fractionalIndexAtScrollTop(metrics, container.scrollTop));
|
|
12090
12286
|
}
|
|
12091
12287
|
function ScrollPicker({ className, children, ...props }) {
|
|
12092
|
-
return /* @__PURE__ */ (0,
|
|
12288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn("aviala-scroll-picker", className), ...props, children });
|
|
12093
12289
|
}
|
|
12094
12290
|
function ScrollPickerColumn({
|
|
12095
12291
|
className,
|
|
@@ -12101,29 +12297,29 @@ function ScrollPickerColumn({
|
|
|
12101
12297
|
formatValue,
|
|
12102
12298
|
getValueKey
|
|
12103
12299
|
}) {
|
|
12104
|
-
const scrollRef = (0,
|
|
12105
|
-
const clipTrackRef = (0,
|
|
12106
|
-
const isUserScrollingRef = (0,
|
|
12107
|
-
const isProgrammaticScrollRef = (0,
|
|
12108
|
-
const smoothTargetValueRef = (0,
|
|
12109
|
-
const scrollEndTimerRef = (0,
|
|
12110
|
-
const wheelAccumRef = (0,
|
|
12111
|
-
const wheelAccumIdleTimerRef = (0,
|
|
12112
|
-
const selectedValueRef = (0,
|
|
12113
|
-
const reactId = (0,
|
|
12300
|
+
const scrollRef = (0, import_react68.useRef)(null);
|
|
12301
|
+
const clipTrackRef = (0, import_react68.useRef)(null);
|
|
12302
|
+
const isUserScrollingRef = (0, import_react68.useRef)(false);
|
|
12303
|
+
const isProgrammaticScrollRef = (0, import_react68.useRef)(false);
|
|
12304
|
+
const smoothTargetValueRef = (0, import_react68.useRef)(null);
|
|
12305
|
+
const scrollEndTimerRef = (0, import_react68.useRef)(void 0);
|
|
12306
|
+
const wheelAccumRef = (0, import_react68.useRef)(0);
|
|
12307
|
+
const wheelAccumIdleTimerRef = (0, import_react68.useRef)(void 0);
|
|
12308
|
+
const selectedValueRef = (0, import_react68.useRef)(value);
|
|
12309
|
+
const reactId = (0, import_react68.useId)();
|
|
12114
12310
|
selectedValueRef.current = value;
|
|
12115
|
-
const getIndex = (0,
|
|
12311
|
+
const getIndex = (0, import_react68.useCallback)(
|
|
12116
12312
|
(candidate) => {
|
|
12117
12313
|
const index = values.findIndex((item) => Object.is(item, candidate));
|
|
12118
12314
|
return index >= 0 ? index : 0;
|
|
12119
12315
|
},
|
|
12120
12316
|
[values]
|
|
12121
12317
|
);
|
|
12122
|
-
const repeatedValues = (0,
|
|
12318
|
+
const repeatedValues = (0, import_react68.useMemo)(() => {
|
|
12123
12319
|
if (!loop) return [...values];
|
|
12124
12320
|
return Array.from({ length: LOOP_SECTIONS2 }, () => values).flat();
|
|
12125
12321
|
}, [loop, values]);
|
|
12126
|
-
const syncClipTrack = (0,
|
|
12322
|
+
const syncClipTrack = (0, import_react68.useCallback)(() => {
|
|
12127
12323
|
const container = scrollRef.current;
|
|
12128
12324
|
const track = clipTrackRef.current;
|
|
12129
12325
|
if (!container || !track) return;
|
|
@@ -12134,7 +12330,7 @@ function ScrollPickerColumn({
|
|
|
12134
12330
|
const offset = container.scrollTop + (container.clientHeight - bandHeight) / 2;
|
|
12135
12331
|
track.style.transform = `translate3d(0, ${-offset}px, 0)`;
|
|
12136
12332
|
}, []);
|
|
12137
|
-
const scrollToIndex = (0,
|
|
12333
|
+
const scrollToIndex = (0, import_react68.useCallback)(
|
|
12138
12334
|
(index, behavior = "auto") => {
|
|
12139
12335
|
const container = scrollRef.current;
|
|
12140
12336
|
if (!container) return;
|
|
@@ -12150,7 +12346,7 @@ function ScrollPickerColumn({
|
|
|
12150
12346
|
},
|
|
12151
12347
|
[syncClipTrack]
|
|
12152
12348
|
);
|
|
12153
|
-
const settleScroll = (0,
|
|
12349
|
+
const settleScroll = (0, import_react68.useCallback)(() => {
|
|
12154
12350
|
const container = scrollRef.current;
|
|
12155
12351
|
if (!container) return;
|
|
12156
12352
|
const wasProgrammatic = isProgrammaticScrollRef.current;
|
|
@@ -12207,7 +12403,7 @@ function ScrollPickerColumn({
|
|
|
12207
12403
|
wheelAccumRef.current = 0;
|
|
12208
12404
|
syncClipTrack();
|
|
12209
12405
|
}, [loop, onChange, syncClipTrack, values]);
|
|
12210
|
-
const handleScroll = (0,
|
|
12406
|
+
const handleScroll = (0, import_react68.useCallback)(() => {
|
|
12211
12407
|
syncClipTrack();
|
|
12212
12408
|
if (isProgrammaticScrollRef.current) return;
|
|
12213
12409
|
isUserScrollingRef.current = true;
|
|
@@ -12216,7 +12412,7 @@ function ScrollPickerColumn({
|
|
|
12216
12412
|
}
|
|
12217
12413
|
scrollEndTimerRef.current = setTimeout(settleScroll, WHEEL_SCROLL_END_MS);
|
|
12218
12414
|
}, [settleScroll, syncClipTrack]);
|
|
12219
|
-
(0,
|
|
12415
|
+
(0, import_react68.useLayoutEffect)(() => {
|
|
12220
12416
|
if (isUserScrollingRef.current) return;
|
|
12221
12417
|
if (smoothTargetValueRef.current != null && Object.is(smoothTargetValueRef.current, value)) {
|
|
12222
12418
|
return;
|
|
@@ -12240,7 +12436,7 @@ function ScrollPickerColumn({
|
|
|
12240
12436
|
}
|
|
12241
12437
|
scrollToIndex(targetIndex, "auto");
|
|
12242
12438
|
}, [getIndex, loop, scrollToIndex, syncClipTrack, value, values.length]);
|
|
12243
|
-
(0,
|
|
12439
|
+
(0, import_react68.useEffect)(() => {
|
|
12244
12440
|
const container = scrollRef.current;
|
|
12245
12441
|
if (!container) return;
|
|
12246
12442
|
const onScrollEnd = () => {
|
|
@@ -12257,7 +12453,7 @@ function ScrollPickerColumn({
|
|
|
12257
12453
|
}
|
|
12258
12454
|
};
|
|
12259
12455
|
}, [settleScroll]);
|
|
12260
|
-
(0,
|
|
12456
|
+
(0, import_react68.useEffect)(() => {
|
|
12261
12457
|
const container = scrollRef.current;
|
|
12262
12458
|
if (!container) return;
|
|
12263
12459
|
const onWheel = (event) => {
|
|
@@ -12353,9 +12549,9 @@ function ScrollPickerColumn({
|
|
|
12353
12549
|
}
|
|
12354
12550
|
};
|
|
12355
12551
|
const selectedOptionId = `${reactId}-${getIndex(value)}`;
|
|
12356
|
-
return /* @__PURE__ */ (0,
|
|
12357
|
-
/* @__PURE__ */ (0,
|
|
12358
|
-
/* @__PURE__ */ (0,
|
|
12552
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: cn("aviala-scroll-picker-column", className), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "aviala-scroll-picker-column__viewport", children: [
|
|
12553
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "aviala-scroll-picker-column__highlight", "aria-hidden": true }),
|
|
12554
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12359
12555
|
"div",
|
|
12360
12556
|
{
|
|
12361
12557
|
ref: scrollRef,
|
|
@@ -12366,13 +12562,13 @@ function ScrollPickerColumn({
|
|
|
12366
12562
|
"aria-activedescendant": selectedOptionId,
|
|
12367
12563
|
tabIndex: 0,
|
|
12368
12564
|
onKeyDown: handleKeyDown,
|
|
12369
|
-
children: /* @__PURE__ */ (0,
|
|
12565
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("ul", { className: "aviala-scroll-picker-column__list", children: repeatedValues.map((itemValue, index) => {
|
|
12370
12566
|
const isCommitted = Object.is(itemValue, value);
|
|
12371
12567
|
const valueIndex = loop ? normalizeWheelIndex(index, values.length) : index;
|
|
12372
12568
|
const optionId = `${reactId}-${loop ? index : valueIndex}`;
|
|
12373
12569
|
const key = getValueKey?.(itemValue, index) ?? `${String(itemValue)}-${index}`;
|
|
12374
12570
|
const useSelectedId = isCommitted && (!loop || Math.floor(index / values.length) === MIDDLE_SECTION2);
|
|
12375
|
-
return /* @__PURE__ */ (0,
|
|
12571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("li", { className: "contents", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12376
12572
|
ScrollPickerItem,
|
|
12377
12573
|
{
|
|
12378
12574
|
id: useSelectedId ? selectedOptionId : optionId,
|
|
@@ -12391,9 +12587,9 @@ function ScrollPickerColumn({
|
|
|
12391
12587
|
}) })
|
|
12392
12588
|
}
|
|
12393
12589
|
),
|
|
12394
|
-
/* @__PURE__ */ (0,
|
|
12590
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "aviala-scroll-picker-column__clip", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref: clipTrackRef, className: "aviala-scroll-picker-column__clip-track", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "aviala-scroll-picker-column__list", children: repeatedValues.map((itemValue, index) => {
|
|
12395
12591
|
const key = getValueKey?.(itemValue, index) ?? `clip-${String(itemValue)}-${index}`;
|
|
12396
|
-
return /* @__PURE__ */ (0,
|
|
12592
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12397
12593
|
"div",
|
|
12398
12594
|
{
|
|
12399
12595
|
className: cn(
|
|
@@ -12414,7 +12610,7 @@ function ScrollPickerItem({
|
|
|
12414
12610
|
className,
|
|
12415
12611
|
onSelect
|
|
12416
12612
|
}) {
|
|
12417
|
-
return /* @__PURE__ */ (0,
|
|
12613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
12418
12614
|
"button",
|
|
12419
12615
|
{
|
|
12420
12616
|
type: "button",
|
|
@@ -12435,15 +12631,15 @@ function ScrollPickerItem({
|
|
|
12435
12631
|
}
|
|
12436
12632
|
|
|
12437
12633
|
// src/components/breadcrumb.tsx
|
|
12438
|
-
var
|
|
12439
|
-
var
|
|
12440
|
-
var
|
|
12441
|
-
var
|
|
12442
|
-
var BreadcrumbSizeContext = (0,
|
|
12634
|
+
var import_icons22 = require("@aviala-design/icons");
|
|
12635
|
+
var import_class_variance_authority16 = require("class-variance-authority");
|
|
12636
|
+
var import_react69 = require("react");
|
|
12637
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
12638
|
+
var BreadcrumbSizeContext = (0, import_react69.createContext)("default");
|
|
12443
12639
|
function breadcrumbTypeLevel(size) {
|
|
12444
12640
|
return size === "small" ? "caption" : "text";
|
|
12445
12641
|
}
|
|
12446
|
-
var breadcrumbVariants = (0,
|
|
12642
|
+
var breadcrumbVariants = (0, import_class_variance_authority16.cva)("aviala-breadcrumb", {
|
|
12447
12643
|
variants: {
|
|
12448
12644
|
size: {
|
|
12449
12645
|
default: "aviala-breadcrumb--size-default",
|
|
@@ -12454,11 +12650,11 @@ var breadcrumbVariants = (0, import_class_variance_authority15.cva)("aviala-brea
|
|
|
12454
12650
|
size: "default"
|
|
12455
12651
|
}
|
|
12456
12652
|
});
|
|
12457
|
-
var Breadcrumb = (0,
|
|
12653
|
+
var Breadcrumb = (0, import_react69.forwardRef)(
|
|
12458
12654
|
({ className, size = "default", children, ...props }, ref) => {
|
|
12459
12655
|
const locale = useLocaleMessages("Breadcrumb");
|
|
12460
12656
|
const resolvedSize = size ?? "default";
|
|
12461
|
-
return /* @__PURE__ */ (0,
|
|
12657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(BreadcrumbSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12462
12658
|
"nav",
|
|
12463
12659
|
{
|
|
12464
12660
|
ref,
|
|
@@ -12466,18 +12662,18 @@ var Breadcrumb = (0, import_react68.forwardRef)(
|
|
|
12466
12662
|
className: cn(breadcrumbVariants({ size: resolvedSize }), className),
|
|
12467
12663
|
"data-size": resolvedSize,
|
|
12468
12664
|
...props,
|
|
12469
|
-
children: /* @__PURE__ */ (0,
|
|
12665
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("ol", { className: "aviala-breadcrumb__list", children })
|
|
12470
12666
|
}
|
|
12471
12667
|
) });
|
|
12472
12668
|
}
|
|
12473
12669
|
);
|
|
12474
12670
|
Breadcrumb.displayName = "Breadcrumb";
|
|
12475
|
-
var BreadcrumbItem = (0,
|
|
12671
|
+
var BreadcrumbItem = (0, import_react69.forwardRef)(
|
|
12476
12672
|
({ className, href, current = false, icon, onClick, children, ...props }, ref) => {
|
|
12477
|
-
const size = (0,
|
|
12478
|
-
const label = /* @__PURE__ */ (0,
|
|
12479
|
-
icon ? /* @__PURE__ */ (0,
|
|
12480
|
-
children != null ? /* @__PURE__ */ (0,
|
|
12673
|
+
const size = (0, import_react69.useContext)(BreadcrumbSizeContext);
|
|
12674
|
+
const label = /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
12675
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "aviala-breadcrumb-item__icon", children: icon }) : null,
|
|
12676
|
+
children != null ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12481
12677
|
Typography,
|
|
12482
12678
|
{
|
|
12483
12679
|
level: breadcrumbTypeLevel(size),
|
|
@@ -12487,13 +12683,13 @@ var BreadcrumbItem = (0, import_react68.forwardRef)(
|
|
|
12487
12683
|
}
|
|
12488
12684
|
) : null
|
|
12489
12685
|
] });
|
|
12490
|
-
return /* @__PURE__ */ (0,
|
|
12686
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12491
12687
|
"li",
|
|
12492
12688
|
{
|
|
12493
12689
|
ref,
|
|
12494
12690
|
className: cn("aviala-breadcrumb-item-wrap", className),
|
|
12495
12691
|
...props,
|
|
12496
|
-
children: href != null ? /* @__PURE__ */ (0,
|
|
12692
|
+
children: href != null ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12497
12693
|
"a",
|
|
12498
12694
|
{
|
|
12499
12695
|
href,
|
|
@@ -12502,7 +12698,7 @@ var BreadcrumbItem = (0, import_react68.forwardRef)(
|
|
|
12502
12698
|
"aria-current": current ? "page" : void 0,
|
|
12503
12699
|
children: label
|
|
12504
12700
|
}
|
|
12505
|
-
) : onClick != null ? /* @__PURE__ */ (0,
|
|
12701
|
+
) : onClick != null ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12506
12702
|
"button",
|
|
12507
12703
|
{
|
|
12508
12704
|
type: "button",
|
|
@@ -12512,7 +12708,7 @@ var BreadcrumbItem = (0, import_react68.forwardRef)(
|
|
|
12512
12708
|
onClick,
|
|
12513
12709
|
children: label
|
|
12514
12710
|
}
|
|
12515
|
-
) : /* @__PURE__ */ (0,
|
|
12711
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12516
12712
|
"span",
|
|
12517
12713
|
{
|
|
12518
12714
|
className: "aviala-breadcrumb-item",
|
|
@@ -12526,10 +12722,10 @@ var BreadcrumbItem = (0, import_react68.forwardRef)(
|
|
|
12526
12722
|
}
|
|
12527
12723
|
);
|
|
12528
12724
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
12529
|
-
var BreadcrumbSeparator = (0,
|
|
12725
|
+
var BreadcrumbSeparator = (0, import_react69.forwardRef)(
|
|
12530
12726
|
({ className, children = "/", ...props }, ref) => {
|
|
12531
|
-
const size = (0,
|
|
12532
|
-
return /* @__PURE__ */ (0,
|
|
12727
|
+
const size = (0, import_react69.useContext)(BreadcrumbSizeContext);
|
|
12728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12533
12729
|
"li",
|
|
12534
12730
|
{
|
|
12535
12731
|
ref,
|
|
@@ -12537,13 +12733,13 @@ var BreadcrumbSeparator = (0, import_react68.forwardRef)(
|
|
|
12537
12733
|
"aria-hidden": true,
|
|
12538
12734
|
className: cn("aviala-breadcrumb-separator", className),
|
|
12539
12735
|
...props,
|
|
12540
|
-
children: /* @__PURE__ */ (0,
|
|
12736
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typography, { level: breadcrumbTypeLevel(size), as: "span", children })
|
|
12541
12737
|
}
|
|
12542
12738
|
);
|
|
12543
12739
|
}
|
|
12544
12740
|
);
|
|
12545
12741
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
12546
|
-
var BreadcrumbEllipsisItem = (0,
|
|
12742
|
+
var BreadcrumbEllipsisItem = (0, import_react69.forwardRef)(
|
|
12547
12743
|
({
|
|
12548
12744
|
className,
|
|
12549
12745
|
href,
|
|
@@ -12553,13 +12749,13 @@ var BreadcrumbEllipsisItem = (0, import_react68.forwardRef)(
|
|
|
12553
12749
|
...props
|
|
12554
12750
|
}, ref) => {
|
|
12555
12751
|
const rtl = useRtl();
|
|
12556
|
-
const ChevronIcon = rtl ?
|
|
12557
|
-
const content = /* @__PURE__ */ (0,
|
|
12558
|
-
/* @__PURE__ */ (0,
|
|
12559
|
-
showChevron ? /* @__PURE__ */ (0,
|
|
12752
|
+
const ChevronIcon = rtl ? import_icons22.DirectionArrowLeftLight : import_icons22.DirectionArrowRightLight;
|
|
12753
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
12754
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typography, { level: "text", as: "span", className: "aviala-breadcrumb-ellipsis-item__label", children }),
|
|
12755
|
+
showChevron ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "aviala-breadcrumb-ellipsis-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ChevronIcon, { width: 14, height: 14, thickness: "Light" }) }) : null
|
|
12560
12756
|
] });
|
|
12561
12757
|
if (href != null) {
|
|
12562
|
-
return /* @__PURE__ */ (0,
|
|
12758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12563
12759
|
"a",
|
|
12564
12760
|
{
|
|
12565
12761
|
ref,
|
|
@@ -12571,7 +12767,7 @@ var BreadcrumbEllipsisItem = (0, import_react68.forwardRef)(
|
|
|
12571
12767
|
}
|
|
12572
12768
|
);
|
|
12573
12769
|
}
|
|
12574
|
-
return /* @__PURE__ */ (0,
|
|
12770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12575
12771
|
"button",
|
|
12576
12772
|
{
|
|
12577
12773
|
ref,
|
|
@@ -12585,7 +12781,7 @@ var BreadcrumbEllipsisItem = (0, import_react68.forwardRef)(
|
|
|
12585
12781
|
}
|
|
12586
12782
|
);
|
|
12587
12783
|
BreadcrumbEllipsisItem.displayName = "BreadcrumbEllipsisItem";
|
|
12588
|
-
var BreadcrumbEllipsis = (0,
|
|
12784
|
+
var BreadcrumbEllipsis = (0, import_react69.forwardRef)(
|
|
12589
12785
|
({
|
|
12590
12786
|
className,
|
|
12591
12787
|
children,
|
|
@@ -12598,11 +12794,11 @@ var BreadcrumbEllipsis = (0, import_react68.forwardRef)(
|
|
|
12598
12794
|
...props
|
|
12599
12795
|
}, ref) => {
|
|
12600
12796
|
const locale = useLocaleMessages("Breadcrumb");
|
|
12601
|
-
const size = (0,
|
|
12602
|
-
const [uncontrolledActivated, setUncontrolledActivated] = (0,
|
|
12797
|
+
const size = (0, import_react69.useContext)(BreadcrumbSizeContext);
|
|
12798
|
+
const [uncontrolledActivated, setUncontrolledActivated] = (0, import_react69.useState)(defaultActivated);
|
|
12603
12799
|
const isControlled = activatedProp !== void 0;
|
|
12604
12800
|
const activated = isControlled ? Boolean(activatedProp) : uncontrolledActivated;
|
|
12605
|
-
const setActivated = (0,
|
|
12801
|
+
const setActivated = (0, import_react69.useCallback)(
|
|
12606
12802
|
(next) => {
|
|
12607
12803
|
if (!isControlled) setUncontrolledActivated(next);
|
|
12608
12804
|
onActivatedChange?.(next);
|
|
@@ -12610,8 +12806,8 @@ var BreadcrumbEllipsis = (0, import_react68.forwardRef)(
|
|
|
12610
12806
|
[isControlled, onActivatedChange]
|
|
12611
12807
|
);
|
|
12612
12808
|
const iconSize = 14;
|
|
12613
|
-
const icon = children ?? /* @__PURE__ */ (0,
|
|
12614
|
-
const trigger = /* @__PURE__ */ (0,
|
|
12809
|
+
const icon = children ?? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_icons22.SymbolMore, { width: iconSize, height: iconSize, thickness: "Light", "aria-hidden": true });
|
|
12810
|
+
const trigger = /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12615
12811
|
"button",
|
|
12616
12812
|
{
|
|
12617
12813
|
type: "button",
|
|
@@ -12630,9 +12826,9 @@ var BreadcrumbEllipsis = (0, import_react68.forwardRef)(
|
|
|
12630
12826
|
children: icon
|
|
12631
12827
|
}
|
|
12632
12828
|
);
|
|
12633
|
-
return /* @__PURE__ */ (0,
|
|
12634
|
-
/* @__PURE__ */ (0,
|
|
12635
|
-
/* @__PURE__ */ (0,
|
|
12829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", { ref, className: cn("aviala-breadcrumb-ellipsis-wrap", className), children: menu != null ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Popover, { open: activated, onOpenChange: setActivated, children: [
|
|
12830
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PopoverTrigger, { asChild: true, children: trigger }),
|
|
12831
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
12636
12832
|
PopoverContent,
|
|
12637
12833
|
{
|
|
12638
12834
|
className: "aviala-breadcrumb-ellipsis-menu",
|
|
@@ -12641,7 +12837,7 @@ var BreadcrumbEllipsis = (0, import_react68.forwardRef)(
|
|
|
12641
12837
|
sideOffset: 7,
|
|
12642
12838
|
showArrow: false,
|
|
12643
12839
|
role: "menu",
|
|
12644
|
-
children: /* @__PURE__ */ (0,
|
|
12840
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "aviala-breadcrumb-ellipsis-menu__items", children: menu })
|
|
12645
12841
|
}
|
|
12646
12842
|
)
|
|
12647
12843
|
] }) : trigger });
|
|
@@ -12650,9 +12846,9 @@ var BreadcrumbEllipsis = (0, import_react68.forwardRef)(
|
|
|
12650
12846
|
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
12651
12847
|
|
|
12652
12848
|
// src/components/pagehead.tsx
|
|
12653
|
-
var
|
|
12654
|
-
var
|
|
12655
|
-
var Pagehead = (0,
|
|
12849
|
+
var import_react70 = require("react");
|
|
12850
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
12851
|
+
var Pagehead = (0, import_react70.forwardRef)(
|
|
12656
12852
|
({
|
|
12657
12853
|
className,
|
|
12658
12854
|
back,
|
|
@@ -12662,26 +12858,26 @@ var Pagehead = (0, import_react69.forwardRef)(
|
|
|
12662
12858
|
actions,
|
|
12663
12859
|
children,
|
|
12664
12860
|
...props
|
|
12665
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
12666
|
-
/* @__PURE__ */ (0,
|
|
12667
|
-
back != null ? /* @__PURE__ */ (0,
|
|
12668
|
-
/* @__PURE__ */ (0,
|
|
12669
|
-
breadcrumb != null ? /* @__PURE__ */ (0,
|
|
12670
|
-
title != null || description != null ? /* @__PURE__ */ (0,
|
|
12861
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("header", { ref, className: cn("aviala-pagehead", className), ...props, children: [
|
|
12862
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "aviala-pagehead__main", children: [
|
|
12863
|
+
back != null ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "aviala-pagehead__back", children: back }) : null,
|
|
12864
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "aviala-pagehead__title-block", children: [
|
|
12865
|
+
breadcrumb != null ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "aviala-pagehead__breadcrumb", children: breadcrumb }) : null,
|
|
12866
|
+
title != null || description != null ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "aviala-pagehead__title", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Typeface, { content: "textCaption", primary: title, secondary: description }) }) : null,
|
|
12671
12867
|
children
|
|
12672
12868
|
] })
|
|
12673
12869
|
] }),
|
|
12674
|
-
actions != null ? /* @__PURE__ */ (0,
|
|
12870
|
+
actions != null ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "aviala-pagehead__actions", children: actions }) : null
|
|
12675
12871
|
] })
|
|
12676
12872
|
);
|
|
12677
12873
|
Pagehead.displayName = "Pagehead";
|
|
12678
12874
|
|
|
12679
12875
|
// src/components/steps.tsx
|
|
12680
|
-
var
|
|
12681
|
-
var
|
|
12682
|
-
var
|
|
12683
|
-
var
|
|
12684
|
-
var stepsVariants = (0,
|
|
12876
|
+
var import_icons23 = require("@aviala-design/icons");
|
|
12877
|
+
var import_class_variance_authority17 = require("class-variance-authority");
|
|
12878
|
+
var import_react71 = require("react");
|
|
12879
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
12880
|
+
var stepsVariants = (0, import_class_variance_authority17.cva)("aviala-steps", {
|
|
12685
12881
|
variants: {
|
|
12686
12882
|
direction: {
|
|
12687
12883
|
horizontal: "aviala-steps--direction-horizontal",
|
|
@@ -12692,8 +12888,8 @@ var stepsVariants = (0, import_class_variance_authority16.cva)("aviala-steps", {
|
|
|
12692
12888
|
direction: "horizontal"
|
|
12693
12889
|
}
|
|
12694
12890
|
});
|
|
12695
|
-
var Steps = (0,
|
|
12696
|
-
({ className, direction = "horizontal", children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
12891
|
+
var Steps = (0, import_react71.forwardRef)(
|
|
12892
|
+
({ className, direction = "horizontal", children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12697
12893
|
"div",
|
|
12698
12894
|
{
|
|
12699
12895
|
ref,
|
|
@@ -12708,20 +12904,20 @@ Steps.displayName = "Steps";
|
|
|
12708
12904
|
function defaultStepsIconContent(state, index) {
|
|
12709
12905
|
switch (state) {
|
|
12710
12906
|
case "done":
|
|
12711
|
-
return /* @__PURE__ */ (0,
|
|
12907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_icons23.SymbolRight, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
|
|
12712
12908
|
case "fail":
|
|
12713
|
-
return /* @__PURE__ */ (0,
|
|
12909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_icons23.SymbolWrong, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
|
|
12714
12910
|
case "warning":
|
|
12715
|
-
return /* @__PURE__ */ (0,
|
|
12911
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_icons23.SymbolWarning, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
|
|
12716
12912
|
case "waiting":
|
|
12717
12913
|
case "inProgress":
|
|
12718
12914
|
case "default":
|
|
12719
12915
|
default:
|
|
12720
|
-
return index != null ? /* @__PURE__ */ (0,
|
|
12916
|
+
return index != null ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Typography, { level: "caption", as: "span", className: "aviala-steps-icon__index", children: index }) : null;
|
|
12721
12917
|
}
|
|
12722
12918
|
}
|
|
12723
|
-
var StepsIcon = (0,
|
|
12724
|
-
({ className, state = "default", index, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
12919
|
+
var StepsIcon = (0, import_react71.forwardRef)(
|
|
12920
|
+
({ className, state = "default", index, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12725
12921
|
"span",
|
|
12726
12922
|
{
|
|
12727
12923
|
ref,
|
|
@@ -12733,7 +12929,7 @@ var StepsIcon = (0, import_react70.forwardRef)(
|
|
|
12733
12929
|
)
|
|
12734
12930
|
);
|
|
12735
12931
|
StepsIcon.displayName = "StepsIcon";
|
|
12736
|
-
var StepsItem = (0,
|
|
12932
|
+
var StepsItem = (0, import_react71.forwardRef)(
|
|
12737
12933
|
({
|
|
12738
12934
|
className,
|
|
12739
12935
|
state = "default",
|
|
@@ -12743,7 +12939,7 @@ var StepsItem = (0, import_react70.forwardRef)(
|
|
|
12743
12939
|
icon,
|
|
12744
12940
|
children,
|
|
12745
12941
|
...props
|
|
12746
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
12942
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
12747
12943
|
"div",
|
|
12748
12944
|
{
|
|
12749
12945
|
ref,
|
|
@@ -12751,9 +12947,9 @@ var StepsItem = (0, import_react70.forwardRef)(
|
|
|
12751
12947
|
"data-state": state,
|
|
12752
12948
|
...props,
|
|
12753
12949
|
children: [
|
|
12754
|
-
icon ?? /* @__PURE__ */ (0,
|
|
12755
|
-
/* @__PURE__ */ (0,
|
|
12756
|
-
title != null ? /* @__PURE__ */ (0,
|
|
12950
|
+
icon ?? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StepsIcon, { state, index }),
|
|
12951
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "aviala-steps-item__body", children: [
|
|
12952
|
+
title != null ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12757
12953
|
Typography,
|
|
12758
12954
|
{
|
|
12759
12955
|
level: "subtitle",
|
|
@@ -12762,7 +12958,7 @@ var StepsItem = (0, import_react70.forwardRef)(
|
|
|
12762
12958
|
children: title
|
|
12763
12959
|
}
|
|
12764
12960
|
) : null,
|
|
12765
|
-
description != null ? /* @__PURE__ */ (0,
|
|
12961
|
+
description != null ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
12766
12962
|
Typography,
|
|
12767
12963
|
{
|
|
12768
12964
|
level: "text",
|
|
@@ -12780,9 +12976,9 @@ var StepsItem = (0, import_react70.forwardRef)(
|
|
|
12780
12976
|
StepsItem.displayName = "StepsItem";
|
|
12781
12977
|
|
|
12782
12978
|
// src/components/pagination.tsx
|
|
12783
|
-
var
|
|
12784
|
-
var
|
|
12785
|
-
var
|
|
12979
|
+
var import_icons24 = require("@aviala-design/icons");
|
|
12980
|
+
var import_react72 = require("react");
|
|
12981
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
12786
12982
|
function buildPageList(page, pageCount) {
|
|
12787
12983
|
if (pageCount <= 7) {
|
|
12788
12984
|
return Array.from({ length: pageCount }, (_, index) => index + 1);
|
|
@@ -12815,7 +13011,7 @@ function ellipsisRange(pages, index) {
|
|
|
12815
13011
|
for (let p = start; p <= end; p += 1) range.push(p);
|
|
12816
13012
|
return range;
|
|
12817
13013
|
}
|
|
12818
|
-
var Pagination = (0,
|
|
13014
|
+
var Pagination = (0, import_react72.forwardRef)(
|
|
12819
13015
|
({
|
|
12820
13016
|
className,
|
|
12821
13017
|
page: pageProp,
|
|
@@ -12835,15 +13031,15 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12835
13031
|
}, ref) => {
|
|
12836
13032
|
const locale = useLocaleMessages("Pagination");
|
|
12837
13033
|
const rtl = useRtl();
|
|
12838
|
-
const PrevIcon = rtl ?
|
|
12839
|
-
const NextIcon = rtl ?
|
|
13034
|
+
const PrevIcon = rtl ? import_icons24.DirectionArrowRightLight : import_icons24.DirectionArrowLeftLight;
|
|
13035
|
+
const NextIcon = rtl ? import_icons24.DirectionArrowLeftLight : import_icons24.DirectionArrowRightLight;
|
|
12840
13036
|
const resolvedJumpLabel = jumpLabel ?? locale.jumpTo;
|
|
12841
13037
|
const resolvedSizeLabel = sizeLabel ?? locale.pageSize;
|
|
12842
13038
|
const resolvedSizeOptionLabel = sizeOptionLabel ?? ((size) => interpolate(locale.items, { size }));
|
|
12843
|
-
const [uncontrolledPage, setUncontrolledPage] = (0,
|
|
12844
|
-
const [uncontrolledPageSize, setUncontrolledPageSize] = (0,
|
|
12845
|
-
const [jumpValue, setJumpValue] = (0,
|
|
12846
|
-
const [openEllipsis, setOpenEllipsis] = (0,
|
|
13039
|
+
const [uncontrolledPage, setUncontrolledPage] = (0, import_react72.useState)(defaultPage);
|
|
13040
|
+
const [uncontrolledPageSize, setUncontrolledPageSize] = (0, import_react72.useState)(defaultPageSize);
|
|
13041
|
+
const [jumpValue, setJumpValue] = (0, import_react72.useState)("");
|
|
13042
|
+
const [openEllipsis, setOpenEllipsis] = (0, import_react72.useState)(null);
|
|
12847
13043
|
const page = pageProp ?? uncontrolledPage;
|
|
12848
13044
|
const pageSize = pageSizeProp ?? uncontrolledPageSize;
|
|
12849
13045
|
const safePageCount = Math.max(1, pageCount);
|
|
@@ -12864,7 +13060,7 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12864
13060
|
setPage(parsed);
|
|
12865
13061
|
setJumpValue("");
|
|
12866
13062
|
};
|
|
12867
|
-
return /* @__PURE__ */ (0,
|
|
13063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
12868
13064
|
"div",
|
|
12869
13065
|
{
|
|
12870
13066
|
ref,
|
|
@@ -12873,8 +13069,8 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12873
13069
|
"aria-label": props["aria-label"] ?? locale.pagination,
|
|
12874
13070
|
...props,
|
|
12875
13071
|
children: [
|
|
12876
|
-
/* @__PURE__ */ (0,
|
|
12877
|
-
/* @__PURE__ */ (0,
|
|
13072
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "aviala-pagination__controls", children: [
|
|
13073
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12878
13074
|
Button,
|
|
12879
13075
|
{
|
|
12880
13076
|
mode: "noBackgroundCustom",
|
|
@@ -12882,18 +13078,18 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12882
13078
|
iconOnly: true,
|
|
12883
13079
|
"aria-label": locale.previous,
|
|
12884
13080
|
disabled: currentPage <= 1,
|
|
12885
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
13081
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(PrevIcon, { "aria-hidden": true }),
|
|
12886
13082
|
onClick: () => setPage(currentPage - 1)
|
|
12887
13083
|
}
|
|
12888
13084
|
),
|
|
12889
|
-
/* @__PURE__ */ (0,
|
|
12890
|
-
(item, index) => item === "ellipsis" ? /* @__PURE__ */ (0,
|
|
13085
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "aviala-pagination__pages", children: pages.map(
|
|
13086
|
+
(item, index) => item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
12891
13087
|
Popover,
|
|
12892
13088
|
{
|
|
12893
13089
|
open: openEllipsis === index,
|
|
12894
13090
|
onOpenChange: (open) => setOpenEllipsis(open ? index : null),
|
|
12895
13091
|
children: [
|
|
12896
|
-
/* @__PURE__ */ (0,
|
|
13092
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12897
13093
|
"button",
|
|
12898
13094
|
{
|
|
12899
13095
|
type: "button",
|
|
@@ -12904,10 +13100,10 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12904
13100
|
),
|
|
12905
13101
|
"aria-label": locale.morePages,
|
|
12906
13102
|
"aria-haspopup": "menu",
|
|
12907
|
-
children: /* @__PURE__ */ (0,
|
|
13103
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Typography, { level: "text", as: "span", children: "\u2026" })
|
|
12908
13104
|
}
|
|
12909
13105
|
) }),
|
|
12910
|
-
/* @__PURE__ */ (0,
|
|
13106
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(PopoverContent, { className: "aviala-pagination__ellipsis-content", showArrow: true, flush: true, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "aviala-pagination__ellipsis-menu", children: ellipsisRange(pages, index).map((p) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12911
13107
|
"button",
|
|
12912
13108
|
{
|
|
12913
13109
|
type: "button",
|
|
@@ -12920,14 +13116,14 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12920
13116
|
setPage(p);
|
|
12921
13117
|
setOpenEllipsis(null);
|
|
12922
13118
|
},
|
|
12923
|
-
children: /* @__PURE__ */ (0,
|
|
13119
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Typography, { level: "text", as: "span", children: p })
|
|
12924
13120
|
},
|
|
12925
13121
|
p
|
|
12926
13122
|
)) }) })
|
|
12927
13123
|
]
|
|
12928
13124
|
},
|
|
12929
13125
|
`ellipsis-${index}`
|
|
12930
|
-
) : /* @__PURE__ */ (0,
|
|
13126
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12931
13127
|
"button",
|
|
12932
13128
|
{
|
|
12933
13129
|
type: "button",
|
|
@@ -12939,12 +13135,12 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12939
13135
|
"data-active": item === currentPage ? "true" : void 0,
|
|
12940
13136
|
"aria-current": item === currentPage ? "page" : void 0,
|
|
12941
13137
|
onClick: () => setPage(item),
|
|
12942
|
-
children: /* @__PURE__ */ (0,
|
|
13138
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Typography, { level: "text", as: "span", children: item })
|
|
12943
13139
|
},
|
|
12944
13140
|
item
|
|
12945
13141
|
)
|
|
12946
13142
|
) }),
|
|
12947
|
-
/* @__PURE__ */ (0,
|
|
13143
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12948
13144
|
Button,
|
|
12949
13145
|
{
|
|
12950
13146
|
mode: "noBackgroundCustom",
|
|
@@ -12952,14 +13148,14 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12952
13148
|
iconOnly: true,
|
|
12953
13149
|
"aria-label": locale.next,
|
|
12954
13150
|
disabled: currentPage >= safePageCount,
|
|
12955
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
13151
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(NextIcon, { "aria-hidden": true }),
|
|
12956
13152
|
onClick: () => setPage(currentPage + 1)
|
|
12957
13153
|
}
|
|
12958
13154
|
)
|
|
12959
13155
|
] }),
|
|
12960
|
-
showJump ? /* @__PURE__ */ (0,
|
|
12961
|
-
/* @__PURE__ */ (0,
|
|
12962
|
-
/* @__PURE__ */ (0,
|
|
13156
|
+
showJump ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "aviala-pagination__jump", children: [
|
|
13157
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Typography, { level: "text", as: "span", children: resolvedJumpLabel }),
|
|
13158
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12963
13159
|
Input,
|
|
12964
13160
|
{
|
|
12965
13161
|
className: "aviala-pagination__jump-input",
|
|
@@ -12979,15 +13175,15 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12979
13175
|
}
|
|
12980
13176
|
)
|
|
12981
13177
|
] }) : null,
|
|
12982
|
-
showSizeChanger ? /* @__PURE__ */ (0,
|
|
12983
|
-
/* @__PURE__ */ (0,
|
|
12984
|
-
/* @__PURE__ */ (0,
|
|
13178
|
+
showSizeChanger ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "aviala-pagination__size", children: [
|
|
13179
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Typography, { level: "text", as: "span", children: resolvedSizeLabel }),
|
|
13180
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
12985
13181
|
Select,
|
|
12986
13182
|
{
|
|
12987
13183
|
value: String(pageSize),
|
|
12988
13184
|
onValueChange: (value) => setPageSize(Number(value)),
|
|
12989
13185
|
children: [
|
|
12990
|
-
/* @__PURE__ */ (0,
|
|
13186
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12991
13187
|
SelectTrigger,
|
|
12992
13188
|
{
|
|
12993
13189
|
size: "regular",
|
|
@@ -12995,7 +13191,7 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
12995
13191
|
"aria-label": locale.pageSizeAria
|
|
12996
13192
|
}
|
|
12997
13193
|
),
|
|
12998
|
-
/* @__PURE__ */ (0,
|
|
13194
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SelectContent, { children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SelectItemGroup, { children: pageSizeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
12999
13195
|
SelectItem,
|
|
13000
13196
|
{
|
|
13001
13197
|
value: String(option),
|
|
@@ -13016,16 +13212,16 @@ var Pagination = (0, import_react71.forwardRef)(
|
|
|
13016
13212
|
Pagination.displayName = "Pagination";
|
|
13017
13213
|
|
|
13018
13214
|
// src/components/card.tsx
|
|
13019
|
-
var
|
|
13020
|
-
var
|
|
13021
|
-
var
|
|
13022
|
-
var Card = (0,
|
|
13023
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
13215
|
+
var import_icons25 = require("@aviala-design/icons");
|
|
13216
|
+
var import_react73 = require("react");
|
|
13217
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
13218
|
+
var Card = (0, import_react73.forwardRef)(
|
|
13219
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { ref, className: cn("aviala-card", className), ...props, children })
|
|
13024
13220
|
);
|
|
13025
13221
|
Card.displayName = "Card";
|
|
13026
13222
|
function renderCardIcon(node) {
|
|
13027
13223
|
if (!node) return null;
|
|
13028
|
-
const content = (0,
|
|
13224
|
+
const content = (0, import_react73.isValidElement)(node) && typeof node.type !== "string" ? (0, import_react73.cloneElement)(node, {
|
|
13029
13225
|
width: 14,
|
|
13030
13226
|
height: 14,
|
|
13031
13227
|
className: cn(
|
|
@@ -13033,9 +13229,9 @@ function renderCardIcon(node) {
|
|
|
13033
13229
|
"shrink-0"
|
|
13034
13230
|
)
|
|
13035
13231
|
}) : node;
|
|
13036
|
-
return /* @__PURE__ */ (0,
|
|
13232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "aviala-card-head__icon", children: content });
|
|
13037
13233
|
}
|
|
13038
|
-
var CardHead = (0,
|
|
13234
|
+
var CardHead = (0, import_react73.forwardRef)(
|
|
13039
13235
|
({
|
|
13040
13236
|
className,
|
|
13041
13237
|
slotType = "select",
|
|
@@ -13053,39 +13249,39 @@ var CardHead = (0, import_react72.forwardRef)(
|
|
|
13053
13249
|
}, ref) => {
|
|
13054
13250
|
const locale = useLocaleMessages("Card");
|
|
13055
13251
|
const rtl = useRtl();
|
|
13056
|
-
const ChevronIcon = rtl ?
|
|
13057
|
-
const primaryAction = action ?? /* @__PURE__ */ (0,
|
|
13252
|
+
const ChevronIcon = rtl ? import_icons25.DirectionArrowLeftLight : import_icons25.DirectionArrowRightLight;
|
|
13253
|
+
const primaryAction = action ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_icons25.GeneralSetting, { "aria-hidden": true }), children: actionLabel });
|
|
13058
13254
|
const renderTrailing = () => {
|
|
13059
13255
|
if (trailing !== void 0) return trailing;
|
|
13060
13256
|
switch (slotType) {
|
|
13061
13257
|
case "action":
|
|
13062
|
-
return /* @__PURE__ */ (0,
|
|
13258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "aviala-card-head__trailing", children: [
|
|
13063
13259
|
primaryAction,
|
|
13064
|
-
secondaryAction ?? /* @__PURE__ */ (0,
|
|
13260
|
+
secondaryAction ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13065
13261
|
Button,
|
|
13066
13262
|
{
|
|
13067
13263
|
mode: "default",
|
|
13068
13264
|
size: "regular",
|
|
13069
13265
|
iconOnly: true,
|
|
13070
13266
|
"aria-label": locale.more,
|
|
13071
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
13267
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_icons25.GeneralSetting, { "aria-hidden": true })
|
|
13072
13268
|
}
|
|
13073
13269
|
),
|
|
13074
|
-
/* @__PURE__ */ (0,
|
|
13075
|
-
/* @__PURE__ */ (0,
|
|
13270
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "aviala-card__divider", "aria-hidden": true }),
|
|
13271
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ChevronIcon, { width: 14, height: 14, "aria-hidden": true })
|
|
13076
13272
|
] });
|
|
13077
13273
|
case "switch":
|
|
13078
|
-
return /* @__PURE__ */ (0,
|
|
13274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "aviala-card-head__trailing", children: [
|
|
13079
13275
|
primaryAction,
|
|
13080
|
-
/* @__PURE__ */ (0,
|
|
13081
|
-
/* @__PURE__ */ (0,
|
|
13276
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "aviala-card__divider", "aria-hidden": true }),
|
|
13277
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Switch, { ...switchProps })
|
|
13082
13278
|
] });
|
|
13083
13279
|
case "select":
|
|
13084
13280
|
default:
|
|
13085
|
-
return select != null ? /* @__PURE__ */ (0,
|
|
13281
|
+
return select != null ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "aviala-card-head__trailing", children: select }) : null;
|
|
13086
13282
|
}
|
|
13087
13283
|
};
|
|
13088
|
-
return /* @__PURE__ */ (0,
|
|
13284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
13089
13285
|
"div",
|
|
13090
13286
|
{
|
|
13091
13287
|
ref,
|
|
@@ -13093,9 +13289,9 @@ var CardHead = (0, import_react72.forwardRef)(
|
|
|
13093
13289
|
"data-type": slotType,
|
|
13094
13290
|
...props,
|
|
13095
13291
|
children: [
|
|
13096
|
-
/* @__PURE__ */ (0,
|
|
13097
|
-
renderCardIcon(icon ?? /* @__PURE__ */ (0,
|
|
13098
|
-
/* @__PURE__ */ (0,
|
|
13292
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "aviala-card-head__main", children: [
|
|
13293
|
+
renderCardIcon(icon ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_icons25.GeneralSetting, { "aria-hidden": true })),
|
|
13294
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "aviala-card-head__title", children: title != null || description != null ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Typeface, { content: "textCaption", primary: title, secondary: description }) : children })
|
|
13099
13295
|
] }),
|
|
13100
13296
|
renderTrailing()
|
|
13101
13297
|
]
|
|
@@ -13104,11 +13300,11 @@ var CardHead = (0, import_react72.forwardRef)(
|
|
|
13104
13300
|
}
|
|
13105
13301
|
);
|
|
13106
13302
|
CardHead.displayName = "CardHead";
|
|
13107
|
-
var CardBody = (0,
|
|
13108
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
13303
|
+
var CardBody = (0, import_react73.forwardRef)(
|
|
13304
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { ref, className: cn("aviala-card-body", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "aviala-card-body__content", children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Typography, { level: "text", as: "span", children }) : children }) })
|
|
13109
13305
|
);
|
|
13110
13306
|
CardBody.displayName = "CardBody";
|
|
13111
|
-
var CardBottom = (0,
|
|
13307
|
+
var CardBottom = (0, import_react73.forwardRef)(
|
|
13112
13308
|
({
|
|
13113
13309
|
className,
|
|
13114
13310
|
slotType = "action",
|
|
@@ -13123,47 +13319,47 @@ var CardBottom = (0, import_react72.forwardRef)(
|
|
|
13123
13319
|
}, ref) => {
|
|
13124
13320
|
const locale = useLocaleMessages("Card");
|
|
13125
13321
|
const rtl = useRtl();
|
|
13126
|
-
const ChevronIcon = rtl ?
|
|
13127
|
-
const primaryAction = action ?? /* @__PURE__ */ (0,
|
|
13322
|
+
const ChevronIcon = rtl ? import_icons25.DirectionArrowLeftLight : import_icons25.DirectionArrowRightLight;
|
|
13323
|
+
const primaryAction = action ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_icons25.GeneralSetting, { "aria-hidden": true }), children: actionLabel });
|
|
13128
13324
|
const renderTrailing = () => {
|
|
13129
13325
|
if (trailing !== void 0) return trailing;
|
|
13130
13326
|
if (children != null) return children;
|
|
13131
13327
|
switch (slotType) {
|
|
13132
13328
|
case "switch":
|
|
13133
|
-
return /* @__PURE__ */ (0,
|
|
13329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
13134
13330
|
primaryAction,
|
|
13135
|
-
/* @__PURE__ */ (0,
|
|
13136
|
-
/* @__PURE__ */ (0,
|
|
13331
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "aviala-card__divider", "aria-hidden": true }),
|
|
13332
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Switch, { ...switchProps })
|
|
13137
13333
|
] });
|
|
13138
13334
|
case "select":
|
|
13139
13335
|
return select;
|
|
13140
13336
|
case "action":
|
|
13141
13337
|
default:
|
|
13142
|
-
return /* @__PURE__ */ (0,
|
|
13338
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
13143
13339
|
primaryAction,
|
|
13144
|
-
secondaryAction ?? /* @__PURE__ */ (0,
|
|
13340
|
+
secondaryAction ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13145
13341
|
Button,
|
|
13146
13342
|
{
|
|
13147
13343
|
mode: "default",
|
|
13148
13344
|
size: "regular",
|
|
13149
13345
|
iconOnly: true,
|
|
13150
13346
|
"aria-label": locale.more,
|
|
13151
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
13347
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_icons25.GeneralSetting, { "aria-hidden": true })
|
|
13152
13348
|
}
|
|
13153
13349
|
),
|
|
13154
|
-
/* @__PURE__ */ (0,
|
|
13155
|
-
/* @__PURE__ */ (0,
|
|
13350
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "aviala-card__divider", "aria-hidden": true }),
|
|
13351
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ChevronIcon, { width: 14, height: 14, "aria-hidden": true })
|
|
13156
13352
|
] });
|
|
13157
13353
|
}
|
|
13158
13354
|
};
|
|
13159
|
-
return /* @__PURE__ */ (0,
|
|
13355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
13160
13356
|
"div",
|
|
13161
13357
|
{
|
|
13162
13358
|
ref,
|
|
13163
13359
|
className: cn("aviala-card-bottom", className),
|
|
13164
13360
|
"data-type": slotType,
|
|
13165
13361
|
...props,
|
|
13166
|
-
children: /* @__PURE__ */ (0,
|
|
13362
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "aviala-card-bottom__trailing", children: renderTrailing() })
|
|
13167
13363
|
}
|
|
13168
13364
|
);
|
|
13169
13365
|
}
|
|
@@ -13171,10 +13367,10 @@ var CardBottom = (0, import_react72.forwardRef)(
|
|
|
13171
13367
|
CardBottom.displayName = "CardBottom";
|
|
13172
13368
|
|
|
13173
13369
|
// src/components/table.tsx
|
|
13174
|
-
var
|
|
13175
|
-
var
|
|
13176
|
-
var Table = (0,
|
|
13177
|
-
({ className, stickyHeader = false, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
13370
|
+
var import_react74 = require("react");
|
|
13371
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
13372
|
+
var Table = (0, import_react74.forwardRef)(
|
|
13373
|
+
({ className, stickyHeader = false, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13178
13374
|
"div",
|
|
13179
13375
|
{
|
|
13180
13376
|
ref,
|
|
@@ -13187,8 +13383,8 @@ var Table = (0, import_react73.forwardRef)(
|
|
|
13187
13383
|
)
|
|
13188
13384
|
);
|
|
13189
13385
|
Table.displayName = "Table";
|
|
13190
|
-
var TableRow = (0,
|
|
13191
|
-
({ className, header = false, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
13386
|
+
var TableRow = (0, import_react74.forwardRef)(
|
|
13387
|
+
({ className, header = false, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13192
13388
|
"div",
|
|
13193
13389
|
{
|
|
13194
13390
|
ref,
|
|
@@ -13203,7 +13399,7 @@ var TableRow = (0, import_react73.forwardRef)(
|
|
|
13203
13399
|
TableRow.displayName = "TableRow";
|
|
13204
13400
|
function renderCellIcon(node, sized = true) {
|
|
13205
13401
|
if (!node) return null;
|
|
13206
|
-
const content = sized && (0,
|
|
13402
|
+
const content = sized && (0, import_react74.isValidElement)(node) && typeof node.type !== "string" ? (0, import_react74.cloneElement)(node, {
|
|
13207
13403
|
width: 16,
|
|
13208
13404
|
height: 16,
|
|
13209
13405
|
className: cn(
|
|
@@ -13211,39 +13407,39 @@ function renderCellIcon(node, sized = true) {
|
|
|
13211
13407
|
"shrink-0"
|
|
13212
13408
|
)
|
|
13213
13409
|
}) : node;
|
|
13214
|
-
return /* @__PURE__ */ (0,
|
|
13410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "aviala-table-cell__icon", children: content });
|
|
13215
13411
|
}
|
|
13216
13412
|
function renderTextBlock(text, caption) {
|
|
13217
|
-
return /* @__PURE__ */ (0,
|
|
13218
|
-
/* @__PURE__ */ (0,
|
|
13219
|
-
caption != null && caption !== false ? /* @__PURE__ */ (0,
|
|
13413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "aviala-table-cell__text", children: [
|
|
13414
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Typography, { level: "text", as: "span", children: text }),
|
|
13415
|
+
caption != null && caption !== false ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Typography, { level: "caption", as: "span", className: "aviala-table-cell__caption", children: caption }) : null
|
|
13220
13416
|
] });
|
|
13221
13417
|
}
|
|
13222
13418
|
function renderActions(actions) {
|
|
13223
13419
|
if (actions == null) return null;
|
|
13224
|
-
return /* @__PURE__ */ (0,
|
|
13420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "aviala-table-cell__actions", children: actions });
|
|
13225
13421
|
}
|
|
13226
13422
|
function renderCellBody(main, actions) {
|
|
13227
|
-
return /* @__PURE__ */ (0,
|
|
13228
|
-
/* @__PURE__ */ (0,
|
|
13423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { className: "aviala-table-cell__body", children: [
|
|
13424
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "aviala-table-cell__main", children: main }),
|
|
13229
13425
|
renderActions(actions)
|
|
13230
13426
|
] });
|
|
13231
13427
|
}
|
|
13232
|
-
var TableHead = (0,
|
|
13428
|
+
var TableHead = (0, import_react74.forwardRef)(
|
|
13233
13429
|
({ className, content = "text", actions, checkboxProps, children, ...props }, ref) => {
|
|
13234
13430
|
const renderBody = () => {
|
|
13235
13431
|
if (content === "checkbox") {
|
|
13236
|
-
return children ?? /* @__PURE__ */ (0,
|
|
13432
|
+
return children ?? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Checkbox, { ...checkboxProps });
|
|
13237
13433
|
}
|
|
13238
13434
|
if (children != null) {
|
|
13239
|
-
return /* @__PURE__ */ (0,
|
|
13240
|
-
/* @__PURE__ */ (0,
|
|
13435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13436
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "aviala-table-cell__main", children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Typography, { level: "text", as: "span", children }) : children }),
|
|
13241
13437
|
renderActions(actions)
|
|
13242
13438
|
] });
|
|
13243
13439
|
}
|
|
13244
13440
|
return null;
|
|
13245
13441
|
};
|
|
13246
|
-
return /* @__PURE__ */ (0,
|
|
13442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13247
13443
|
"div",
|
|
13248
13444
|
{
|
|
13249
13445
|
ref,
|
|
@@ -13257,7 +13453,7 @@ var TableHead = (0, import_react73.forwardRef)(
|
|
|
13257
13453
|
}
|
|
13258
13454
|
);
|
|
13259
13455
|
TableHead.displayName = "TableHead";
|
|
13260
|
-
var TableCell = (0,
|
|
13456
|
+
var TableCell = (0, import_react74.forwardRef)(
|
|
13261
13457
|
({
|
|
13262
13458
|
className,
|
|
13263
13459
|
content = "text",
|
|
@@ -13279,16 +13475,16 @@ var TableCell = (0, import_react73.forwardRef)(
|
|
|
13279
13475
|
if (children != null) return children;
|
|
13280
13476
|
switch (content) {
|
|
13281
13477
|
case "checkbox":
|
|
13282
|
-
return /* @__PURE__ */ (0,
|
|
13478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Checkbox, { ...checkboxProps });
|
|
13283
13479
|
case "switch":
|
|
13284
|
-
return /* @__PURE__ */ (0,
|
|
13480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Switch, { ...switchProps });
|
|
13285
13481
|
case "action":
|
|
13286
13482
|
return renderActions(actions);
|
|
13287
13483
|
case "icon+text":
|
|
13288
|
-
return /* @__PURE__ */ (0,
|
|
13484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13289
13485
|
grabber,
|
|
13290
13486
|
renderCellBody(
|
|
13291
|
-
/* @__PURE__ */ (0,
|
|
13487
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13292
13488
|
renderCellIcon(icon),
|
|
13293
13489
|
renderTextBlock(text, caption)
|
|
13294
13490
|
] }),
|
|
@@ -13296,44 +13492,44 @@ var TableCell = (0, import_react73.forwardRef)(
|
|
|
13296
13492
|
)
|
|
13297
13493
|
] });
|
|
13298
13494
|
case "icon-place+text":
|
|
13299
|
-
return /* @__PURE__ */ (0,
|
|
13495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13300
13496
|
grabber,
|
|
13301
13497
|
renderCellBody(
|
|
13302
|
-
/* @__PURE__ */ (0,
|
|
13303
|
-
/* @__PURE__ */ (0,
|
|
13498
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13499
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "aviala-table-cell__icon-place", children: iconPlace ?? renderCellIcon(icon, false) ?? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Avatar, { content: "text", level: "text", lineHeightFix: false, children: "A" }) }),
|
|
13304
13500
|
renderTextBlock(text, caption)
|
|
13305
13501
|
] }),
|
|
13306
13502
|
actions
|
|
13307
13503
|
)
|
|
13308
13504
|
] });
|
|
13309
13505
|
case "people":
|
|
13310
|
-
return /* @__PURE__ */ (0,
|
|
13506
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13311
13507
|
grabber,
|
|
13312
13508
|
renderCellBody(
|
|
13313
|
-
/* @__PURE__ */ (0,
|
|
13314
|
-
people ?? /* @__PURE__ */ (0,
|
|
13509
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13510
|
+
people ?? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Avatar, { content: "text", level: "text", lineHeightFix: false, children: "A" }),
|
|
13315
13511
|
renderTextBlock(text, caption)
|
|
13316
13512
|
] }),
|
|
13317
13513
|
actions
|
|
13318
13514
|
)
|
|
13319
13515
|
] });
|
|
13320
13516
|
case "badge":
|
|
13321
|
-
return /* @__PURE__ */ (0,
|
|
13517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13322
13518
|
grabber,
|
|
13323
13519
|
renderCellBody(
|
|
13324
|
-
badge ?? /* @__PURE__ */ (0,
|
|
13520
|
+
badge ?? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Badge, { style: "theme", level: "caption", children: badgeLabel ?? "Text" }),
|
|
13325
13521
|
actions
|
|
13326
13522
|
)
|
|
13327
13523
|
] });
|
|
13328
13524
|
case "text":
|
|
13329
13525
|
default:
|
|
13330
|
-
return /* @__PURE__ */ (0,
|
|
13526
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
13331
13527
|
grabber,
|
|
13332
13528
|
renderCellBody(renderTextBlock(text, caption), actions)
|
|
13333
13529
|
] });
|
|
13334
13530
|
}
|
|
13335
13531
|
};
|
|
13336
|
-
return /* @__PURE__ */ (0,
|
|
13532
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
13337
13533
|
"div",
|
|
13338
13534
|
{
|
|
13339
13535
|
ref,
|
|
@@ -13394,6 +13590,18 @@ TableCell.displayName = "TableCell";
|
|
|
13394
13590
|
DatePickerContent,
|
|
13395
13591
|
DatePickerField,
|
|
13396
13592
|
DatePickerTrigger,
|
|
13593
|
+
Drawer,
|
|
13594
|
+
DrawerBody,
|
|
13595
|
+
DrawerClose,
|
|
13596
|
+
DrawerContent,
|
|
13597
|
+
DrawerDescription,
|
|
13598
|
+
DrawerFooter,
|
|
13599
|
+
DrawerHeader,
|
|
13600
|
+
DrawerHeaderText,
|
|
13601
|
+
DrawerOverlay,
|
|
13602
|
+
DrawerPortal,
|
|
13603
|
+
DrawerTitle,
|
|
13604
|
+
DrawerTrigger,
|
|
13397
13605
|
Feedback,
|
|
13398
13606
|
Fieldset,
|
|
13399
13607
|
Form,
|
|
@@ -13509,6 +13717,7 @@ TableCell.displayName = "TableCell";
|
|
|
13509
13717
|
backChevronSide,
|
|
13510
13718
|
buttonVariants,
|
|
13511
13719
|
cn,
|
|
13720
|
+
drawerContentVariants,
|
|
13512
13721
|
enUS,
|
|
13513
13722
|
formatDisplayDate,
|
|
13514
13723
|
formatMonthYear,
|