design-zystem 1.0.430 → 1.0.432
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/ui/index.d.mts +40 -11
- package/dist/ui/index.d.ts +40 -11
- package/dist/ui/index.js +690 -566
- package/dist/ui/index.mjs +691 -567
- package/dist/ui/style.css +1 -1
- package/package.json +1 -1
package/dist/ui/index.mjs
CHANGED
|
@@ -1983,8 +1983,9 @@ var Tabs = ({
|
|
|
1983
1983
|
updateBar();
|
|
1984
1984
|
const ro = new ResizeObserver(updateBar);
|
|
1985
1985
|
if (listRef.current) ro.observe(listRef.current);
|
|
1986
|
+
triggerRefs.current.forEach((trigger) => ro.observe(trigger));
|
|
1986
1987
|
return () => ro.disconnect();
|
|
1987
|
-
}, [updateBar]);
|
|
1988
|
+
}, [updateBar, items]);
|
|
1988
1989
|
const isPills = variant === "pills";
|
|
1989
1990
|
return /* @__PURE__ */ jsxs11(
|
|
1990
1991
|
RadixTabs.Root,
|
|
@@ -3162,6 +3163,17 @@ var TagLevelPicker = ({
|
|
|
3162
3163
|
);
|
|
3163
3164
|
};
|
|
3164
3165
|
|
|
3166
|
+
// src/ui/lib/warnDeprecatedTableProp.ts
|
|
3167
|
+
var warnedProps = /* @__PURE__ */ new Set();
|
|
3168
|
+
var warnDeprecatedTableProp = (component, prop, replacement) => {
|
|
3169
|
+
const key = `${component}.${prop}`;
|
|
3170
|
+
if (process.env.NODE_ENV === "production" || warnedProps.has(key)) return;
|
|
3171
|
+
warnedProps.add(key);
|
|
3172
|
+
console.warn(
|
|
3173
|
+
`[design-zystem] <${component} ${prop}> est d\xE9pr\xE9ci\xE9 et sera retir\xE9 : ${replacement}.`
|
|
3174
|
+
);
|
|
3175
|
+
};
|
|
3176
|
+
|
|
3165
3177
|
// src/ui/components/ui/Pagination.tsx
|
|
3166
3178
|
import { useMemo as useMemo2 } from "react";
|
|
3167
3179
|
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
@@ -3384,6 +3396,7 @@ import { jsx as jsx36 } from "react/jsx-runtime";
|
|
|
3384
3396
|
var TableBody = ({
|
|
3385
3397
|
children,
|
|
3386
3398
|
useEvenBackground,
|
|
3399
|
+
isLined,
|
|
3387
3400
|
className
|
|
3388
3401
|
}) => /* @__PURE__ */ jsx36(
|
|
3389
3402
|
"tbody",
|
|
@@ -3391,6 +3404,7 @@ var TableBody = ({
|
|
|
3391
3404
|
className: cn(
|
|
3392
3405
|
"text-neutral-800",
|
|
3393
3406
|
useEvenBackground && "[&>tr:nth-child(even)]:bg-grey-100",
|
|
3407
|
+
isLined && "[&>tr>td]:border-t [&>tr>td]:border-grey-200 [&>tr>th]:border-t [&>tr>th]:border-grey-200",
|
|
3394
3408
|
className
|
|
3395
3409
|
),
|
|
3396
3410
|
children
|
|
@@ -3702,12 +3716,25 @@ var Table = ({
|
|
|
3702
3716
|
className,
|
|
3703
3717
|
pagination,
|
|
3704
3718
|
variant,
|
|
3719
|
+
columnsAlign = "center",
|
|
3705
3720
|
toolbar,
|
|
3706
3721
|
selection,
|
|
3707
3722
|
zebra,
|
|
3708
3723
|
borderLeft = false
|
|
3709
3724
|
}) => {
|
|
3710
3725
|
var _a;
|
|
3726
|
+
if (zebra !== void 0)
|
|
3727
|
+
warnDeprecatedTableProp(
|
|
3728
|
+
"Table",
|
|
3729
|
+
"zebra",
|
|
3730
|
+
'utilise variant="zebra" ou variant="lined"'
|
|
3731
|
+
);
|
|
3732
|
+
if (borderLeft)
|
|
3733
|
+
warnDeprecatedTableProp(
|
|
3734
|
+
"Table",
|
|
3735
|
+
"borderLeft",
|
|
3736
|
+
"le style du tableau ne se r\xE8gle plus page par page"
|
|
3737
|
+
);
|
|
3711
3738
|
const isZebra = (variant != null ? variant : zebra === false ? "lined" : "zebra") === "zebra";
|
|
3712
3739
|
const loadingRowCount = (_a = pagination == null ? void 0 : pagination.itemsPerPage) != null ? _a : DEFAULT_LOADING_ROW_COUNT;
|
|
3713
3740
|
const hasRows = rows.length > 0;
|
|
@@ -3740,13 +3767,14 @@ var Table = ({
|
|
|
3740
3767
|
// bordures sont peintes par le modèle de fusion du tableau et
|
|
3741
3768
|
// restent à la position d'origine dans la grille au scroll.
|
|
3742
3769
|
"w-full table-fixed border-separate border-spacing-0 caption-bottom text-xs",
|
|
3743
|
-
"[&_tr>*:first-child:not(.table-select-cell)]:text-left [&_tr>.table-select-cell:first-child+*]:text-left
|
|
3770
|
+
"[&_tr>*:first-child:not(.table-select-cell)]:text-left [&_tr>.table-select-cell:first-child+*]:text-left",
|
|
3771
|
+
columnsAlign === "center" && "[&_tr>*:not(:first-child)]:text-center",
|
|
3744
3772
|
borderLeft && "[&_th:not(:first-child)]:border-l [&_td:not(:first-child)]:border-l [&_th:not(:first-child)]:border-grey-200 [&_td:not(:first-child)]:border-grey-200"
|
|
3745
3773
|
),
|
|
3746
3774
|
style: { minWidth: minWidth || void 0 },
|
|
3747
3775
|
children: [
|
|
3748
3776
|
header,
|
|
3749
|
-
/* @__PURE__ */ jsx42(TableBody, { useEvenBackground: isZebra, children: rows }),
|
|
3777
|
+
/* @__PURE__ */ jsx42(TableBody, { useEvenBackground: isZebra, isLined: !isZebra, children: rows }),
|
|
3750
3778
|
footer
|
|
3751
3779
|
]
|
|
3752
3780
|
}
|
|
@@ -3886,26 +3914,34 @@ var TableRow = forwardRef18(
|
|
|
3886
3914
|
backgroundColor,
|
|
3887
3915
|
accentColor,
|
|
3888
3916
|
"data-index": dataIndex
|
|
3889
|
-
}, ref) =>
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3917
|
+
}, ref) => {
|
|
3918
|
+
if (backgroundColor)
|
|
3919
|
+
warnDeprecatedTableProp(
|
|
3920
|
+
"TableRow",
|
|
3921
|
+
"backgroundColor",
|
|
3922
|
+
"le statut passe par TableStatusCell"
|
|
3923
|
+
);
|
|
3924
|
+
return /* @__PURE__ */ jsx46(
|
|
3925
|
+
"tr",
|
|
3926
|
+
{
|
|
3927
|
+
ref,
|
|
3928
|
+
"data-index": dataIndex,
|
|
3929
|
+
onClick,
|
|
3930
|
+
onDoubleClick,
|
|
3931
|
+
className: cn(
|
|
3932
|
+
"transition-colors hover:bg-black/[0.025]",
|
|
3933
|
+
(onClick || onDoubleClick) && "cursor-pointer",
|
|
3934
|
+
accentColor && "border-l-4",
|
|
3935
|
+
className
|
|
3936
|
+
),
|
|
3937
|
+
style: {
|
|
3938
|
+
backgroundColor,
|
|
3939
|
+
borderLeftColor: accentColor
|
|
3940
|
+
},
|
|
3941
|
+
children
|
|
3942
|
+
}
|
|
3943
|
+
);
|
|
3944
|
+
}
|
|
3909
3945
|
);
|
|
3910
3946
|
TableRow.displayName = "TableRow";
|
|
3911
3947
|
|
|
@@ -3931,36 +3967,50 @@ var TableCell = ({
|
|
|
3931
3967
|
colSpan,
|
|
3932
3968
|
cursor,
|
|
3933
3969
|
className
|
|
3934
|
-
}) =>
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
"
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
borderLeft
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
)
|
|
3970
|
+
}) => {
|
|
3971
|
+
if (backgroundColor)
|
|
3972
|
+
warnDeprecatedTableProp(
|
|
3973
|
+
"TableCell",
|
|
3974
|
+
"backgroundColor",
|
|
3975
|
+
"le statut passe par TableStatusCell"
|
|
3976
|
+
);
|
|
3977
|
+
if (borderLeft)
|
|
3978
|
+
warnDeprecatedTableProp(
|
|
3979
|
+
"TableCell",
|
|
3980
|
+
"borderLeft",
|
|
3981
|
+
"le style du tableau ne se r\xE8gle plus page par page"
|
|
3982
|
+
);
|
|
3983
|
+
return /* @__PURE__ */ jsx47(
|
|
3984
|
+
"td",
|
|
3985
|
+
{
|
|
3986
|
+
colSpan,
|
|
3987
|
+
className: cn(
|
|
3988
|
+
"text-ellipsis whitespace-nowrap h-10 px-2 py-2 text-center text-xs font-semibold",
|
|
3989
|
+
// Une cellule fusionnée (section/groupe) ne tronque pas son contenu, et
|
|
3990
|
+
// ne doit pas clipper : elle porte souvent un enfant `sticky` (label de
|
|
3991
|
+
// groupe figé au scroll horizontal), qu'un ancêtre `overflow` cassé.
|
|
3992
|
+
colSpan ? "overflow-visible" : "overflow-hidden",
|
|
3993
|
+
borderLeft && "border-l border-grey-200",
|
|
3994
|
+
sticky && !backgroundColor && cn("z-[2]", SURFACE_CLASS2[surface]),
|
|
3995
|
+
sticky && backgroundColor && "z-[2]",
|
|
3996
|
+
accentColor && "border-l-4",
|
|
3997
|
+
cursor && CURSOR_CLASS[cursor],
|
|
3998
|
+
className
|
|
3999
|
+
),
|
|
4000
|
+
style: {
|
|
4001
|
+
width: colSpan ? void 0 : width || "auto",
|
|
4002
|
+
maxWidth: colSpan ? void 0 : width || "auto",
|
|
4003
|
+
minWidth: colSpan ? void 0 : width || "auto",
|
|
4004
|
+
position: sticky ? "sticky" : "static",
|
|
4005
|
+
left: sticky === "left" ? stickyOffset : void 0,
|
|
4006
|
+
right: sticky === "right" ? stickyOffset : void 0,
|
|
4007
|
+
backgroundColor,
|
|
4008
|
+
borderLeftColor: accentColor
|
|
4009
|
+
},
|
|
4010
|
+
children: centerContent ? /* @__PURE__ */ jsx47(Layout, { justify: "center", children }) : children
|
|
4011
|
+
}
|
|
4012
|
+
);
|
|
4013
|
+
};
|
|
3964
4014
|
|
|
3965
4015
|
// src/ui/components/ui/table/TableFooter.tsx
|
|
3966
4016
|
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
@@ -3999,56 +4049,120 @@ var TableFooterCell = ({
|
|
|
3999
4049
|
}
|
|
4000
4050
|
);
|
|
4001
4051
|
|
|
4052
|
+
// src/ui/components/ui/table/TableGroupLabel.tsx
|
|
4053
|
+
import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4054
|
+
var TableGroupLabel = ({
|
|
4055
|
+
title,
|
|
4056
|
+
count,
|
|
4057
|
+
isCollapsed = false,
|
|
4058
|
+
onToggleCollapse,
|
|
4059
|
+
selection
|
|
4060
|
+
}) => /* @__PURE__ */ jsxs25(Layout, { row: true, gap: 2, align: "center", children: [
|
|
4061
|
+
onToggleCollapse && /* @__PURE__ */ jsx51(
|
|
4062
|
+
Icon,
|
|
4063
|
+
{
|
|
4064
|
+
name: isCollapsed ? "chevron-right" : "chevron-down",
|
|
4065
|
+
size: "xs",
|
|
4066
|
+
"aria-expanded": !isCollapsed,
|
|
4067
|
+
"aria-label": isCollapsed ? `D\xE9plier ${title}` : `Replier ${title}`,
|
|
4068
|
+
onClick: onToggleCollapse
|
|
4069
|
+
}
|
|
4070
|
+
),
|
|
4071
|
+
selection && /* @__PURE__ */ jsx51(
|
|
4072
|
+
Checkbox,
|
|
4073
|
+
{
|
|
4074
|
+
"aria-label": selection.label,
|
|
4075
|
+
checked: selection.isSelected,
|
|
4076
|
+
onChange: selection.onToggle
|
|
4077
|
+
}
|
|
4078
|
+
),
|
|
4079
|
+
/* @__PURE__ */ jsx51("span", { children: title }),
|
|
4080
|
+
count !== void 0 && /* @__PURE__ */ jsx51("span", { className: "font-semibold text-grey-600", children: count })
|
|
4081
|
+
] });
|
|
4082
|
+
|
|
4002
4083
|
// src/ui/components/ui/table/TableSectionRow.tsx
|
|
4003
|
-
import { jsx as
|
|
4004
|
-
var TableSectionRow = ({
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
}
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4084
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
4085
|
+
var TableSectionRow = (_a) => {
|
|
4086
|
+
var _b = _a, {
|
|
4087
|
+
colSpan
|
|
4088
|
+
} = _b, label = __objRest(_b, [
|
|
4089
|
+
"colSpan"
|
|
4090
|
+
]);
|
|
4091
|
+
return /* @__PURE__ */ jsx52(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx52(
|
|
4092
|
+
"td",
|
|
4093
|
+
{
|
|
4094
|
+
colSpan,
|
|
4095
|
+
className: "h-8 bg-grey-300 px-2 text-left text-[11px] font-bold uppercase tracking-wide text-neutral-800",
|
|
4096
|
+
children: /* @__PURE__ */ jsx52(TableGroupLabel, __spreadValues({}, label))
|
|
4097
|
+
}
|
|
4098
|
+
) });
|
|
4099
|
+
};
|
|
4015
4100
|
|
|
4016
4101
|
// src/ui/components/ui/table/TableSubgroupRow.tsx
|
|
4017
|
-
import { jsx as
|
|
4018
|
-
var TableSubgroupRow = ({
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
}
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4102
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
4103
|
+
var TableSubgroupRow = (_a) => {
|
|
4104
|
+
var _b = _a, {
|
|
4105
|
+
colSpan
|
|
4106
|
+
} = _b, label = __objRest(_b, [
|
|
4107
|
+
"colSpan"
|
|
4108
|
+
]);
|
|
4109
|
+
return /* @__PURE__ */ jsx53(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx53(
|
|
4110
|
+
"td",
|
|
4111
|
+
{
|
|
4112
|
+
colSpan,
|
|
4113
|
+
className: "h-9 bg-grey-200 py-0 pl-6 pr-2 text-left text-xs font-semibold text-neutral-800",
|
|
4114
|
+
children: /* @__PURE__ */ jsx53(TableGroupLabel, __spreadValues({}, label))
|
|
4115
|
+
}
|
|
4116
|
+
) });
|
|
4117
|
+
};
|
|
4029
4118
|
|
|
4030
4119
|
// src/ui/components/ui/table/TableAlertRow.tsx
|
|
4031
|
-
import { jsx as
|
|
4032
|
-
var
|
|
4033
|
-
|
|
4034
|
-
"
|
|
4035
|
-
{
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4120
|
+
import { jsx as jsx54, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4121
|
+
var ALERT_TONES = {
|
|
4122
|
+
red: { theme: "red-500", icon: "circle-exclamation" },
|
|
4123
|
+
yellow: { theme: "yellow-500", icon: "triangle-exclamation" },
|
|
4124
|
+
green: { theme: "green-700", icon: "circle-check" },
|
|
4125
|
+
blue: { theme: "blue-700", icon: "circle-info" }
|
|
4126
|
+
};
|
|
4127
|
+
var TableAlertRow = ({
|
|
4128
|
+
children,
|
|
4129
|
+
colSpan,
|
|
4130
|
+
tone = "yellow",
|
|
4131
|
+
action
|
|
4132
|
+
}) => {
|
|
4133
|
+
const { theme, icon } = ALERT_TONES[tone];
|
|
4134
|
+
return /* @__PURE__ */ jsx54(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx54(
|
|
4135
|
+
"td",
|
|
4136
|
+
{
|
|
4137
|
+
colSpan,
|
|
4138
|
+
role: "alert",
|
|
4139
|
+
className: cn(
|
|
4140
|
+
"h-10 px-2 text-left text-xs font-semibold",
|
|
4141
|
+
THEME_VARIANT_CLASSES.pale[theme]
|
|
4142
|
+
),
|
|
4143
|
+
children: /* @__PURE__ */ jsxs26(Layout, { row: true, gap: 2, align: "center", justify: "between", children: [
|
|
4144
|
+
/* @__PURE__ */ jsxs26(Layout, { row: true, gap: 2, align: "center", children: [
|
|
4145
|
+
/* @__PURE__ */ jsx54(Icon, { name: icon, size: "xs", theme }),
|
|
4146
|
+
/* @__PURE__ */ jsx54("span", { children })
|
|
4147
|
+
] }),
|
|
4148
|
+
action && /* @__PURE__ */ jsx54(
|
|
4149
|
+
Button,
|
|
4150
|
+
{
|
|
4151
|
+
size: "xs",
|
|
4152
|
+
variant: "outline",
|
|
4153
|
+
theme,
|
|
4154
|
+
label: action.label,
|
|
4155
|
+
onClick: action.onClick
|
|
4156
|
+
}
|
|
4157
|
+
)
|
|
4158
|
+
] })
|
|
4159
|
+
}
|
|
4160
|
+
) });
|
|
4161
|
+
};
|
|
4045
4162
|
|
|
4046
4163
|
// src/ui/components/ui/table/TableExpandedRow.tsx
|
|
4047
|
-
import { jsx as
|
|
4048
|
-
var TableExpandedRow = ({
|
|
4049
|
-
children,
|
|
4050
|
-
colSpan
|
|
4051
|
-
}) => /* @__PURE__ */ jsx54(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx54("td", { colSpan, className: "bg-white p-3 text-left text-xs", children }) });
|
|
4164
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
4165
|
+
var TableExpandedRow = ({ children }) => /* @__PURE__ */ jsx55(TableRow, { className: "bg-grey-100 hover:bg-grey-100", children });
|
|
4052
4166
|
|
|
4053
4167
|
// src/utils/string/capitalizeFirstLetter.ts
|
|
4054
4168
|
var capitalizeFirstLetter = (str) => {
|
|
@@ -4179,7 +4293,7 @@ import {
|
|
|
4179
4293
|
isValidElement
|
|
4180
4294
|
} from "react";
|
|
4181
4295
|
import * as RadixAvatar from "@radix-ui/react-avatar";
|
|
4182
|
-
import { Fragment as Fragment4, jsx as
|
|
4296
|
+
import { Fragment as Fragment4, jsx as jsx56, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4183
4297
|
var AvatarSizeContext = createContext2(40);
|
|
4184
4298
|
var useAvatarSize = () => useContext2(AvatarSizeContext);
|
|
4185
4299
|
var BADGE_BG_CLASS = {
|
|
@@ -4240,7 +4354,7 @@ var Avatar = forwardRef19(
|
|
|
4240
4354
|
"children"
|
|
4241
4355
|
]);
|
|
4242
4356
|
var _a2;
|
|
4243
|
-
return /* @__PURE__ */
|
|
4357
|
+
return /* @__PURE__ */ jsx56(AvatarSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx56(
|
|
4244
4358
|
RadixAvatar.Root,
|
|
4245
4359
|
__spreadProps(__spreadValues({
|
|
4246
4360
|
ref,
|
|
@@ -4251,9 +4365,9 @@ var Avatar = forwardRef19(
|
|
|
4251
4365
|
),
|
|
4252
4366
|
style: __spreadValues({ width: size, height: size, backgroundColor }, style)
|
|
4253
4367
|
}, props), {
|
|
4254
|
-
children: children != null ? children : /* @__PURE__ */
|
|
4255
|
-
src && /* @__PURE__ */
|
|
4256
|
-
/* @__PURE__ */
|
|
4368
|
+
children: children != null ? children : /* @__PURE__ */ jsxs27(Fragment4, { children: [
|
|
4369
|
+
src && /* @__PURE__ */ jsx56(AvatarImage, { src, alt: name }),
|
|
4370
|
+
/* @__PURE__ */ jsx56(
|
|
4257
4371
|
AvatarFallback,
|
|
4258
4372
|
{
|
|
4259
4373
|
color,
|
|
@@ -4262,7 +4376,7 @@ var Avatar = forwardRef19(
|
|
|
4262
4376
|
children: getInitials({ name })
|
|
4263
4377
|
}
|
|
4264
4378
|
),
|
|
4265
|
-
badge && /* @__PURE__ */
|
|
4379
|
+
badge && /* @__PURE__ */ jsx56(AvatarBadge, { className: BADGE_BG_CLASS[badge.backgroundColor], children: /* @__PURE__ */ jsx56(
|
|
4266
4380
|
FaIcon,
|
|
4267
4381
|
{
|
|
4268
4382
|
name: badge.icon,
|
|
@@ -4279,7 +4393,7 @@ var Avatar = forwardRef19(
|
|
|
4279
4393
|
Avatar.displayName = "Avatar";
|
|
4280
4394
|
var AvatarImage = forwardRef19((_a, ref) => {
|
|
4281
4395
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4282
|
-
return /* @__PURE__ */
|
|
4396
|
+
return /* @__PURE__ */ jsx56(
|
|
4283
4397
|
RadixAvatar.Image,
|
|
4284
4398
|
__spreadValues({
|
|
4285
4399
|
ref,
|
|
@@ -4319,7 +4433,7 @@ var AvatarFallback = forwardRef19(
|
|
|
4319
4433
|
"style"
|
|
4320
4434
|
]);
|
|
4321
4435
|
const size = useAvatarSize();
|
|
4322
|
-
return /* @__PURE__ */
|
|
4436
|
+
return /* @__PURE__ */ jsx56(
|
|
4323
4437
|
RadixAvatar.Fallback,
|
|
4324
4438
|
__spreadValues({
|
|
4325
4439
|
ref,
|
|
@@ -4343,7 +4457,7 @@ var AvatarBadge = forwardRef19(
|
|
|
4343
4457
|
var _b = _a, { size, className, style } = _b, props = __objRest(_b, ["size", "className", "style"]);
|
|
4344
4458
|
const avatarSize = useAvatarSize();
|
|
4345
4459
|
const badgeSize = size != null ? size : Math.round(avatarSize * 0.35);
|
|
4346
|
-
return /* @__PURE__ */
|
|
4460
|
+
return /* @__PURE__ */ jsx56(
|
|
4347
4461
|
"div",
|
|
4348
4462
|
__spreadValues({
|
|
4349
4463
|
ref,
|
|
@@ -4374,7 +4488,7 @@ var AvatarGroup = (_a) => {
|
|
|
4374
4488
|
);
|
|
4375
4489
|
const visible = max ? items.slice(0, max) : items;
|
|
4376
4490
|
const overflow = max ? items.length - max : 0;
|
|
4377
|
-
return /* @__PURE__ */
|
|
4491
|
+
return /* @__PURE__ */ jsxs27(Layout, __spreadProps(__spreadValues({ className: cn("-space-x-2", className) }, props), { children: [
|
|
4378
4492
|
visible.map(
|
|
4379
4493
|
(child, index) => cloneElement(child, {
|
|
4380
4494
|
key: index,
|
|
@@ -4382,7 +4496,7 @@ var AvatarGroup = (_a) => {
|
|
|
4382
4496
|
className: cn("ring-2 ring-white", child.props.className)
|
|
4383
4497
|
})
|
|
4384
4498
|
),
|
|
4385
|
-
overflow > 0 && /* @__PURE__ */
|
|
4499
|
+
overflow > 0 && /* @__PURE__ */ jsxs27(
|
|
4386
4500
|
Layout,
|
|
4387
4501
|
{
|
|
4388
4502
|
align: "center",
|
|
@@ -4403,15 +4517,15 @@ var AvatarGroup = (_a) => {
|
|
|
4403
4517
|
};
|
|
4404
4518
|
|
|
4405
4519
|
// src/ui/components/ui/table/TablePersonCell.tsx
|
|
4406
|
-
import { jsx as
|
|
4520
|
+
import { jsx as jsx57, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4407
4521
|
var AVATAR_SIZE = 24;
|
|
4408
4522
|
var TablePersonCell = ({
|
|
4409
4523
|
firstName,
|
|
4410
4524
|
lastName,
|
|
4411
4525
|
src,
|
|
4412
4526
|
width
|
|
4413
|
-
}) => /* @__PURE__ */
|
|
4414
|
-
/* @__PURE__ */
|
|
4527
|
+
}) => /* @__PURE__ */ jsx57(TableCell, { width, children: /* @__PURE__ */ jsxs28("span", { className: "inline-flex max-w-full items-center gap-2 align-middle", children: [
|
|
4528
|
+
/* @__PURE__ */ jsx57(
|
|
4415
4529
|
Avatar,
|
|
4416
4530
|
{
|
|
4417
4531
|
size: AVATAR_SIZE,
|
|
@@ -4419,39 +4533,39 @@ var TablePersonCell = ({
|
|
|
4419
4533
|
src
|
|
4420
4534
|
}
|
|
4421
4535
|
),
|
|
4422
|
-
/* @__PURE__ */
|
|
4536
|
+
/* @__PURE__ */ jsx57("span", { className: "truncate", children: formatNameWithInitial(firstName, lastName != null ? lastName : null) })
|
|
4423
4537
|
] }) });
|
|
4424
4538
|
|
|
4425
4539
|
// src/ui/components/ui/table/TableClientCell.tsx
|
|
4426
|
-
import { jsx as
|
|
4540
|
+
import { jsx as jsx58, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4427
4541
|
var TableClientCell = ({
|
|
4428
4542
|
name,
|
|
4429
4543
|
color,
|
|
4430
4544
|
width
|
|
4431
|
-
}) => /* @__PURE__ */
|
|
4432
|
-
/* @__PURE__ */
|
|
4545
|
+
}) => /* @__PURE__ */ jsx58(TableCell, { width, children: /* @__PURE__ */ jsxs29("span", { className: "inline-flex max-w-full items-center gap-2 align-middle", children: [
|
|
4546
|
+
/* @__PURE__ */ jsx58(
|
|
4433
4547
|
"span",
|
|
4434
4548
|
{
|
|
4435
4549
|
"aria-hidden": "true",
|
|
4436
4550
|
"data-testid": "client-dot",
|
|
4437
|
-
className: "h-2
|
|
4551
|
+
className: "h-2 w-2 shrink-0 rounded-full",
|
|
4438
4552
|
style: { backgroundColor: color }
|
|
4439
4553
|
}
|
|
4440
4554
|
),
|
|
4441
|
-
/* @__PURE__ */
|
|
4555
|
+
/* @__PURE__ */ jsx58("span", { className: "truncate", children: name })
|
|
4442
4556
|
] }) });
|
|
4443
4557
|
|
|
4444
4558
|
// src/ui/components/ui/table/TableStatusCell.tsx
|
|
4445
|
-
import { jsx as
|
|
4559
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
4446
4560
|
var TableStatusCell = ({
|
|
4447
4561
|
children,
|
|
4448
4562
|
theme,
|
|
4449
4563
|
width
|
|
4450
|
-
}) => /* @__PURE__ */
|
|
4564
|
+
}) => /* @__PURE__ */ jsx59(TableCell, { width, centerContent: true, children: /* @__PURE__ */ jsx59(Badge, { size: "l", theme, children }) });
|
|
4451
4565
|
|
|
4452
4566
|
// src/ui/components/ui/Popover.tsx
|
|
4453
4567
|
import * as RadixPopover4 from "@radix-ui/react-popover";
|
|
4454
|
-
import { jsx as
|
|
4568
|
+
import { jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4455
4569
|
var Popover = ({
|
|
4456
4570
|
trigger,
|
|
4457
4571
|
items,
|
|
@@ -4463,9 +4577,9 @@ var Popover = ({
|
|
|
4463
4577
|
onOpenChange,
|
|
4464
4578
|
width,
|
|
4465
4579
|
className
|
|
4466
|
-
}) => /* @__PURE__ */
|
|
4467
|
-
/* @__PURE__ */
|
|
4468
|
-
/* @__PURE__ */
|
|
4580
|
+
}) => /* @__PURE__ */ jsxs30(RadixPopover4.Root, { open, onOpenChange, children: [
|
|
4581
|
+
/* @__PURE__ */ jsx60(RadixPopover4.Trigger, { asChild: true, children: trigger }),
|
|
4582
|
+
/* @__PURE__ */ jsx60(RadixPopover4.Portal, { children: /* @__PURE__ */ jsx60(
|
|
4469
4583
|
RadixPopover4.Content,
|
|
4470
4584
|
{
|
|
4471
4585
|
align,
|
|
@@ -4478,11 +4592,13 @@ var Popover = ({
|
|
|
4478
4592
|
"data-[state=open]:animate-[fade-in_150ms_ease-out]",
|
|
4479
4593
|
className
|
|
4480
4594
|
),
|
|
4481
|
-
children: items ? /* @__PURE__ */
|
|
4595
|
+
children: items ? /* @__PURE__ */ jsx60(Layout, { column: true, children: items.map((item, idx) => /* @__PURE__ */ jsx60(
|
|
4482
4596
|
RadixPopover4.Close,
|
|
4483
4597
|
{
|
|
4484
4598
|
onClick: item.action,
|
|
4485
|
-
|
|
4599
|
+
disabled: item.disabled,
|
|
4600
|
+
title: item.title,
|
|
4601
|
+
className: "cursor-pointer rounded-[4px] px-3 py-2 text-left text-sm font-medium text-neutral-800 outline-none hover:bg-grey-100 disabled:cursor-not-allowed disabled:text-grey-500 disabled:hover:bg-transparent",
|
|
4486
4602
|
children: item.label
|
|
4487
4603
|
},
|
|
4488
4604
|
idx
|
|
@@ -4492,11 +4608,11 @@ var Popover = ({
|
|
|
4492
4608
|
] });
|
|
4493
4609
|
|
|
4494
4610
|
// src/ui/components/ui/table/TableActionsCell.tsx
|
|
4495
|
-
import { jsx as
|
|
4611
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
4496
4612
|
var MAX_INLINE_TABLE_ACTIONS = 3;
|
|
4497
4613
|
var TableActionsCell = ({ actions, width }) => {
|
|
4498
4614
|
const hasMenu = actions.length > MAX_INLINE_TABLE_ACTIONS;
|
|
4499
|
-
return /* @__PURE__ */
|
|
4615
|
+
return /* @__PURE__ */ jsx61(TableCell, { width, centerContent: true, children: /* @__PURE__ */ jsx61(
|
|
4500
4616
|
Layout,
|
|
4501
4617
|
{
|
|
4502
4618
|
row: true,
|
|
@@ -4504,10 +4620,10 @@ var TableActionsCell = ({ actions, width }) => {
|
|
|
4504
4620
|
align: "center",
|
|
4505
4621
|
justify: "center",
|
|
4506
4622
|
onClick: (event) => event.stopPropagation(),
|
|
4507
|
-
children: hasMenu ? /* @__PURE__ */
|
|
4623
|
+
children: hasMenu ? /* @__PURE__ */ jsx61(
|
|
4508
4624
|
Popover,
|
|
4509
4625
|
{
|
|
4510
|
-
trigger: /* @__PURE__ */
|
|
4626
|
+
trigger: /* @__PURE__ */ jsx61(
|
|
4511
4627
|
Icon,
|
|
4512
4628
|
{
|
|
4513
4629
|
name: "ellipsis-vertical",
|
|
@@ -4515,28 +4631,36 @@ var TableActionsCell = ({ actions, width }) => {
|
|
|
4515
4631
|
onClick: () => void 0
|
|
4516
4632
|
}
|
|
4517
4633
|
),
|
|
4518
|
-
items: actions.map(
|
|
4519
|
-
label,
|
|
4520
|
-
|
|
4521
|
-
|
|
4634
|
+
items: actions.map(
|
|
4635
|
+
({ label, onClick, disabled, disabledReason }) => ({
|
|
4636
|
+
label,
|
|
4637
|
+
action: onClick,
|
|
4638
|
+
disabled,
|
|
4639
|
+
title: disabled ? disabledReason : void 0
|
|
4640
|
+
})
|
|
4641
|
+
)
|
|
4522
4642
|
}
|
|
4523
|
-
) : actions.map(({ label, icon, onClick }) =>
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4643
|
+
) : actions.map(({ label, icon, onClick, disabled, disabledReason }) => {
|
|
4644
|
+
const action = /* @__PURE__ */ jsx61(
|
|
4645
|
+
Icon,
|
|
4646
|
+
{
|
|
4647
|
+
name: icon,
|
|
4648
|
+
"aria-label": label,
|
|
4649
|
+
title: disabledReason ? void 0 : label,
|
|
4650
|
+
disabled,
|
|
4651
|
+
onClick
|
|
4652
|
+
},
|
|
4653
|
+
label
|
|
4654
|
+
);
|
|
4655
|
+
return disabled && disabledReason ? /* @__PURE__ */ jsx61(Tooltip, { content: disabledReason, children: action }, label) : action;
|
|
4656
|
+
})
|
|
4533
4657
|
}
|
|
4534
4658
|
) });
|
|
4535
4659
|
};
|
|
4536
4660
|
|
|
4537
4661
|
// src/ui/components/ui/table/TableSelectCell.tsx
|
|
4538
4662
|
import { useRef as useRef7 } from "react";
|
|
4539
|
-
import { jsx as
|
|
4663
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
4540
4664
|
var TableSelectCell = ({
|
|
4541
4665
|
isSelected,
|
|
4542
4666
|
onToggle,
|
|
@@ -4544,7 +4668,7 @@ var TableSelectCell = ({
|
|
|
4544
4668
|
width = "40px"
|
|
4545
4669
|
}) => {
|
|
4546
4670
|
const isRange = useRef7(false);
|
|
4547
|
-
return /* @__PURE__ */
|
|
4671
|
+
return /* @__PURE__ */ jsx62(TableCell, { width, centerContent: true, className: "table-select-cell", children: /* @__PURE__ */ jsx62("span", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsx62(
|
|
4548
4672
|
Checkbox,
|
|
4549
4673
|
{
|
|
4550
4674
|
"aria-label": label,
|
|
@@ -4558,12 +4682,12 @@ var TableSelectCell = ({
|
|
|
4558
4682
|
};
|
|
4559
4683
|
|
|
4560
4684
|
// src/ui/components/ui/table/TableSelectHeaderCell.tsx
|
|
4561
|
-
import { jsx as
|
|
4685
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
4562
4686
|
var TableSelectHeaderCell = ({
|
|
4563
4687
|
state,
|
|
4564
4688
|
onToggle,
|
|
4565
4689
|
width = "40px"
|
|
4566
|
-
}) => /* @__PURE__ */
|
|
4690
|
+
}) => /* @__PURE__ */ jsx63(TableHeaderCell, { width, className: "table-select-cell", children: /* @__PURE__ */ jsx63(Layout, { justify: "center", children: /* @__PURE__ */ jsx63("span", { children: /* @__PURE__ */ jsx63(
|
|
4567
4691
|
Checkbox,
|
|
4568
4692
|
{
|
|
4569
4693
|
"aria-label": "S\xE9lectionner toutes les lignes de la page",
|
|
@@ -4637,7 +4761,7 @@ var useRowSelection = ({
|
|
|
4637
4761
|
// src/ui/components/ui/Radio.tsx
|
|
4638
4762
|
import * as RadixRadioGroup from "@radix-ui/react-radio-group";
|
|
4639
4763
|
import { cva as cva12 } from "class-variance-authority";
|
|
4640
|
-
import { jsx as
|
|
4764
|
+
import { jsx as jsx64, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4641
4765
|
var radioVariants = cva12(
|
|
4642
4766
|
"relative h-[22px] w-[22px] shrink-0 rounded-full border-2 border-grey-300 outline-none transition-colors",
|
|
4643
4767
|
{
|
|
@@ -4692,23 +4816,23 @@ var Radio = ({
|
|
|
4692
4816
|
color,
|
|
4693
4817
|
width,
|
|
4694
4818
|
className
|
|
4695
|
-
}) => /* @__PURE__ */
|
|
4819
|
+
}) => /* @__PURE__ */ jsx64(
|
|
4696
4820
|
RadixRadioGroup.Root,
|
|
4697
4821
|
{
|
|
4698
4822
|
value,
|
|
4699
4823
|
onValueChange: onChange,
|
|
4700
4824
|
disabled,
|
|
4701
4825
|
asChild: true,
|
|
4702
|
-
children: /* @__PURE__ */
|
|
4826
|
+
children: /* @__PURE__ */ jsx64(Layout, { column: true, gap: 2, className, width, children: items.map((item) => {
|
|
4703
4827
|
const itemId = `radio-${item.value}`;
|
|
4704
|
-
return /* @__PURE__ */
|
|
4705
|
-
/* @__PURE__ */
|
|
4828
|
+
return /* @__PURE__ */ jsxs31(Layout, { row: true, gap: 2, align: "center", children: [
|
|
4829
|
+
/* @__PURE__ */ jsx64(
|
|
4706
4830
|
RadixRadioGroup.Item,
|
|
4707
4831
|
{
|
|
4708
4832
|
id: itemId,
|
|
4709
4833
|
value: item.value,
|
|
4710
4834
|
className: radioVariants({ color }),
|
|
4711
|
-
children: /* @__PURE__ */
|
|
4835
|
+
children: /* @__PURE__ */ jsx64(
|
|
4712
4836
|
RadixRadioGroup.Indicator,
|
|
4713
4837
|
{
|
|
4714
4838
|
className: indicatorVariants({ color })
|
|
@@ -4716,7 +4840,7 @@ var Radio = ({
|
|
|
4716
4840
|
)
|
|
4717
4841
|
}
|
|
4718
4842
|
),
|
|
4719
|
-
item.label && /* @__PURE__ */
|
|
4843
|
+
item.label && /* @__PURE__ */ jsx64(
|
|
4720
4844
|
Text,
|
|
4721
4845
|
{
|
|
4722
4846
|
as: "label",
|
|
@@ -4735,7 +4859,7 @@ var Radio = ({
|
|
|
4735
4859
|
import * as RadixProgress from "@radix-ui/react-progress";
|
|
4736
4860
|
import * as RadixSlider from "@radix-ui/react-slider";
|
|
4737
4861
|
import { cva as cva13 } from "class-variance-authority";
|
|
4738
|
-
import { jsx as
|
|
4862
|
+
import { jsx as jsx65, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4739
4863
|
var trackVariants2 = cva13(
|
|
4740
4864
|
"relative w-full overflow-hidden rounded-full bg-grey-200",
|
|
4741
4865
|
{
|
|
@@ -4804,15 +4928,15 @@ var ProgressBar = ({
|
|
|
4804
4928
|
const editable = Boolean(onChange);
|
|
4805
4929
|
if (segments) {
|
|
4806
4930
|
const visible = segments.filter((segment) => segment.value > 0);
|
|
4807
|
-
return /* @__PURE__ */
|
|
4808
|
-
label && /* @__PURE__ */
|
|
4809
|
-
/* @__PURE__ */
|
|
4931
|
+
return /* @__PURE__ */ jsxs32(Layout, { column: true, fullWidth: true, gap: 1, className, children: [
|
|
4932
|
+
label && /* @__PURE__ */ jsx65("span", { className: "text-xs text-grey-600", children: label }),
|
|
4933
|
+
/* @__PURE__ */ jsx65(
|
|
4810
4934
|
"div",
|
|
4811
4935
|
{
|
|
4812
4936
|
role: "img",
|
|
4813
4937
|
"aria-label": ariaLabel != null ? ariaLabel : label,
|
|
4814
4938
|
className: cn(trackVariants2({ height }), "flex gap-0.5"),
|
|
4815
|
-
children: visible.map((segment, index) => /* @__PURE__ */
|
|
4939
|
+
children: visible.map((segment, index) => /* @__PURE__ */ jsx65(
|
|
4816
4940
|
"span",
|
|
4817
4941
|
{
|
|
4818
4942
|
className: "h-full",
|
|
@@ -4830,16 +4954,16 @@ var ProgressBar = ({
|
|
|
4830
4954
|
}
|
|
4831
4955
|
if (!editable) {
|
|
4832
4956
|
const readOnlyPercent = Math.max(0, Math.min(100, percent));
|
|
4833
|
-
return /* @__PURE__ */
|
|
4834
|
-
label && /* @__PURE__ */
|
|
4835
|
-
/* @__PURE__ */
|
|
4836
|
-
/* @__PURE__ */
|
|
4957
|
+
return /* @__PURE__ */ jsxs32(Layout, { column: true, fullWidth: true, gap: 1, className, children: [
|
|
4958
|
+
label && /* @__PURE__ */ jsx65("span", { className: "text-xs text-grey-600", children: label }),
|
|
4959
|
+
/* @__PURE__ */ jsxs32(Layout, { fullWidth: true, align: "center", gap: 2, children: [
|
|
4960
|
+
/* @__PURE__ */ jsx65(
|
|
4837
4961
|
RadixProgress.Root,
|
|
4838
4962
|
{
|
|
4839
4963
|
value: readOnlyPercent,
|
|
4840
4964
|
"aria-label": ariaLabel != null ? ariaLabel : label,
|
|
4841
4965
|
className: trackVariants2({ height }),
|
|
4842
|
-
children: /* @__PURE__ */
|
|
4966
|
+
children: /* @__PURE__ */ jsx65(
|
|
4843
4967
|
RadixProgress.Indicator,
|
|
4844
4968
|
{
|
|
4845
4969
|
className: cn(
|
|
@@ -4854,11 +4978,11 @@ var ProgressBar = ({
|
|
|
4854
4978
|
)
|
|
4855
4979
|
}
|
|
4856
4980
|
),
|
|
4857
|
-
showLabel && /* @__PURE__ */
|
|
4981
|
+
showLabel && /* @__PURE__ */ jsx65("span", { className: "shrink-0 text-xs font-semibold text-neutral-800", children: display(Math.round(readOnlyPercent)) })
|
|
4858
4982
|
] })
|
|
4859
4983
|
] });
|
|
4860
4984
|
}
|
|
4861
|
-
return /* @__PURE__ */
|
|
4985
|
+
return /* @__PURE__ */ jsxs32(
|
|
4862
4986
|
Layout,
|
|
4863
4987
|
{
|
|
4864
4988
|
column: true,
|
|
@@ -4866,9 +4990,9 @@ var ProgressBar = ({
|
|
|
4866
4990
|
gap: 1,
|
|
4867
4991
|
className: cn(disabled && "cursor-not-allowed opacity-60", className),
|
|
4868
4992
|
children: [
|
|
4869
|
-
label && /* @__PURE__ */
|
|
4870
|
-
/* @__PURE__ */
|
|
4871
|
-
showLabel && /* @__PURE__ */
|
|
4993
|
+
label && /* @__PURE__ */ jsx65("span", { className: "text-xs text-grey-600", children: label }),
|
|
4994
|
+
/* @__PURE__ */ jsxs32("div", { className: "relative w-full pt-6", children: [
|
|
4995
|
+
showLabel && /* @__PURE__ */ jsx65(
|
|
4872
4996
|
"span",
|
|
4873
4997
|
{
|
|
4874
4998
|
className: "absolute top-0 -translate-x-1/2 text-xs font-semibold text-neutral-800",
|
|
@@ -4876,7 +5000,7 @@ var ProgressBar = ({
|
|
|
4876
5000
|
children: display(current)
|
|
4877
5001
|
}
|
|
4878
5002
|
),
|
|
4879
|
-
/* @__PURE__ */
|
|
5003
|
+
/* @__PURE__ */ jsxs32(
|
|
4880
5004
|
RadixSlider.Root,
|
|
4881
5005
|
{
|
|
4882
5006
|
value: [current],
|
|
@@ -4887,7 +5011,7 @@ var ProgressBar = ({
|
|
|
4887
5011
|
disabled,
|
|
4888
5012
|
className: "relative flex h-5 w-full touch-none select-none items-center",
|
|
4889
5013
|
children: [
|
|
4890
|
-
/* @__PURE__ */
|
|
5014
|
+
/* @__PURE__ */ jsx65(RadixSlider.Track, { className: cn(trackVariants2({ height }), "grow"), children: /* @__PURE__ */ jsx65(
|
|
4891
5015
|
RadixSlider.Range,
|
|
4892
5016
|
{
|
|
4893
5017
|
className: cn(
|
|
@@ -4897,7 +5021,7 @@ var ProgressBar = ({
|
|
|
4897
5021
|
style: { backgroundColor: hexColor }
|
|
4898
5022
|
}
|
|
4899
5023
|
) }),
|
|
4900
|
-
/* @__PURE__ */
|
|
5024
|
+
/* @__PURE__ */ jsx65(
|
|
4901
5025
|
RadixSlider.Thumb,
|
|
4902
5026
|
{
|
|
4903
5027
|
className: cn(
|
|
@@ -4912,9 +5036,9 @@ var ProgressBar = ({
|
|
|
4912
5036
|
}
|
|
4913
5037
|
)
|
|
4914
5038
|
] }),
|
|
4915
|
-
showLabel && /* @__PURE__ */
|
|
4916
|
-
/* @__PURE__ */
|
|
4917
|
-
/* @__PURE__ */
|
|
5039
|
+
showLabel && /* @__PURE__ */ jsxs32(Layout, { align: "center", justify: "between", children: [
|
|
5040
|
+
/* @__PURE__ */ jsx65("span", { className: "text-xs text-grey-600", children: display(min) }),
|
|
5041
|
+
/* @__PURE__ */ jsx65("span", { className: "text-xs text-grey-600", children: display(max) })
|
|
4918
5042
|
] })
|
|
4919
5043
|
]
|
|
4920
5044
|
}
|
|
@@ -4923,7 +5047,7 @@ var ProgressBar = ({
|
|
|
4923
5047
|
|
|
4924
5048
|
// src/ui/components/ui/Collapsible.tsx
|
|
4925
5049
|
import * as RadixCollapsible from "@radix-ui/react-collapsible";
|
|
4926
|
-
import { jsx as
|
|
5050
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
4927
5051
|
var Collapsible = RadixCollapsible.Root;
|
|
4928
5052
|
var CollapsibleTrigger = RadixCollapsible.Trigger;
|
|
4929
5053
|
var CollapsibleContent = (_a) => {
|
|
@@ -4932,7 +5056,7 @@ var CollapsibleContent = (_a) => {
|
|
|
4932
5056
|
} = _b, props = __objRest(_b, [
|
|
4933
5057
|
"className"
|
|
4934
5058
|
]);
|
|
4935
|
-
return /* @__PURE__ */
|
|
5059
|
+
return /* @__PURE__ */ jsx66(
|
|
4936
5060
|
RadixCollapsible.Content,
|
|
4937
5061
|
__spreadValues({
|
|
4938
5062
|
className: "overflow-hidden data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] " + (className != null ? className : "")
|
|
@@ -5012,7 +5136,7 @@ var swallowRestOfClick = () => {
|
|
|
5012
5136
|
};
|
|
5013
5137
|
|
|
5014
5138
|
// src/ui/components/ui/Drawer.tsx
|
|
5015
|
-
import { jsx as
|
|
5139
|
+
import { jsx as jsx67, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5016
5140
|
var KEEP_OPEN_SELECTOR = '[role="dialog"], [role="listbox"], [data-drawer-keep-open]';
|
|
5017
5141
|
var CONTENT_POSITION = {
|
|
5018
5142
|
top: "inset-x-4 top-4 rounded-2xl",
|
|
@@ -5077,8 +5201,8 @@ var Drawer = ({
|
|
|
5077
5201
|
return () => cancelAnimationFrame(frame);
|
|
5078
5202
|
}, [modal, open]);
|
|
5079
5203
|
const closeOnDismiss = (next) => !next && closeDrawer();
|
|
5080
|
-
const drawerPortal = /* @__PURE__ */
|
|
5081
|
-
/* @__PURE__ */
|
|
5204
|
+
const drawerPortal = /* @__PURE__ */ jsxs33(VaulDrawer.Portal, { children: [
|
|
5205
|
+
/* @__PURE__ */ jsx67(
|
|
5082
5206
|
VaulDrawer.Overlay,
|
|
5083
5207
|
{
|
|
5084
5208
|
ref: overlayRef,
|
|
@@ -5090,7 +5214,7 @@ var Drawer = ({
|
|
|
5090
5214
|
)
|
|
5091
5215
|
}
|
|
5092
5216
|
),
|
|
5093
|
-
/* @__PURE__ */
|
|
5217
|
+
/* @__PURE__ */ jsx67(
|
|
5094
5218
|
VaulDrawer.Content,
|
|
5095
5219
|
__spreadProps(__spreadValues({
|
|
5096
5220
|
ref: (node) => {
|
|
@@ -5122,14 +5246,14 @@ var Drawer = ({
|
|
|
5122
5246
|
})
|
|
5123
5247
|
)
|
|
5124
5248
|
] });
|
|
5125
|
-
return /* @__PURE__ */
|
|
5249
|
+
return /* @__PURE__ */ jsx67(
|
|
5126
5250
|
VaulDrawer.Root,
|
|
5127
5251
|
{
|
|
5128
5252
|
direction,
|
|
5129
5253
|
modal,
|
|
5130
5254
|
open,
|
|
5131
5255
|
onOpenChange: closeOnDismiss,
|
|
5132
|
-
children: modal ? drawerPortal : /* @__PURE__ */
|
|
5256
|
+
children: modal ? drawerPortal : /* @__PURE__ */ jsx67(
|
|
5133
5257
|
DialogPrimitive.Root,
|
|
5134
5258
|
{
|
|
5135
5259
|
modal: false,
|
|
@@ -5147,7 +5271,7 @@ var DrawerHeader = (_a) => {
|
|
|
5147
5271
|
} = _b, props = __objRest(_b, [
|
|
5148
5272
|
"className"
|
|
5149
5273
|
]);
|
|
5150
|
-
return /* @__PURE__ */
|
|
5274
|
+
return /* @__PURE__ */ jsx67(
|
|
5151
5275
|
"div",
|
|
5152
5276
|
__spreadValues({
|
|
5153
5277
|
className: cn("flex w-full items-center justify-between", className)
|
|
@@ -5160,7 +5284,7 @@ var DrawerTitle = (_a) => {
|
|
|
5160
5284
|
} = _b, props = __objRest(_b, [
|
|
5161
5285
|
"className"
|
|
5162
5286
|
]);
|
|
5163
|
-
return /* @__PURE__ */
|
|
5287
|
+
return /* @__PURE__ */ jsx67(
|
|
5164
5288
|
VaulDrawer.Title,
|
|
5165
5289
|
__spreadValues({
|
|
5166
5290
|
className: cn("text-base font-bold text-neutral-800", className)
|
|
@@ -5173,7 +5297,7 @@ var DrawerDescription = (_a) => {
|
|
|
5173
5297
|
} = _b, props = __objRest(_b, [
|
|
5174
5298
|
"className"
|
|
5175
5299
|
]);
|
|
5176
|
-
return /* @__PURE__ */
|
|
5300
|
+
return /* @__PURE__ */ jsx67(
|
|
5177
5301
|
VaulDrawer.Description,
|
|
5178
5302
|
__spreadValues({
|
|
5179
5303
|
className: cn("text-sm text-grey-500", className)
|
|
@@ -5186,7 +5310,7 @@ var DrawerBody = (_a) => {
|
|
|
5186
5310
|
} = _b, props = __objRest(_b, [
|
|
5187
5311
|
"className"
|
|
5188
5312
|
]);
|
|
5189
|
-
return /* @__PURE__ */
|
|
5313
|
+
return /* @__PURE__ */ jsx67("div", __spreadValues({ className: cn("min-h-0 flex-1 overflow-y-auto", className) }, props));
|
|
5190
5314
|
};
|
|
5191
5315
|
var DrawerFooter = (_a) => {
|
|
5192
5316
|
var _b = _a, {
|
|
@@ -5194,7 +5318,7 @@ var DrawerFooter = (_a) => {
|
|
|
5194
5318
|
} = _b, props = __objRest(_b, [
|
|
5195
5319
|
"className"
|
|
5196
5320
|
]);
|
|
5197
|
-
return /* @__PURE__ */
|
|
5321
|
+
return /* @__PURE__ */ jsx67("div", __spreadValues({ className: cn("flex w-full flex-col gap-3", className) }, props));
|
|
5198
5322
|
};
|
|
5199
5323
|
var DrawerClose = VaulDrawer.Close;
|
|
5200
5324
|
|
|
@@ -5208,11 +5332,11 @@ var SidebarCollapsedProvider = SidebarCollapsedContext.Provider;
|
|
|
5208
5332
|
var useSidebarCollapsed = () => useContext3(SidebarCollapsedContext);
|
|
5209
5333
|
|
|
5210
5334
|
// src/ui/components/ui/sidebar/Sidebar.tsx
|
|
5211
|
-
import { jsx as
|
|
5335
|
+
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
5212
5336
|
var Sidebar = forwardRef20(
|
|
5213
5337
|
(_a, ref) => {
|
|
5214
5338
|
var _b = _a, { collapsed = false, className, children } = _b, props = __objRest(_b, ["collapsed", "className", "children"]);
|
|
5215
|
-
return /* @__PURE__ */
|
|
5339
|
+
return /* @__PURE__ */ jsx68(SidebarCollapsedProvider, { value: collapsed, children: /* @__PURE__ */ jsx68(
|
|
5216
5340
|
"aside",
|
|
5217
5341
|
__spreadProps(__spreadValues({
|
|
5218
5342
|
ref,
|
|
@@ -5231,10 +5355,10 @@ Sidebar.displayName = "Sidebar";
|
|
|
5231
5355
|
|
|
5232
5356
|
// src/ui/components/ui/sidebar/SidebarTrigger.tsx
|
|
5233
5357
|
import { forwardRef as forwardRef21 } from "react";
|
|
5234
|
-
import { jsx as
|
|
5358
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
5235
5359
|
var SidebarTrigger = forwardRef21((_a, ref) => {
|
|
5236
5360
|
var _b = _a, { collapsed, className } = _b, props = __objRest(_b, ["collapsed", "className"]);
|
|
5237
|
-
return /* @__PURE__ */
|
|
5361
|
+
return /* @__PURE__ */ jsx69(
|
|
5238
5362
|
"button",
|
|
5239
5363
|
__spreadProps(__spreadValues({
|
|
5240
5364
|
ref,
|
|
@@ -5245,7 +5369,7 @@ var SidebarTrigger = forwardRef21((_a, ref) => {
|
|
|
5245
5369
|
className
|
|
5246
5370
|
)
|
|
5247
5371
|
}, props), {
|
|
5248
|
-
children: /* @__PURE__ */
|
|
5372
|
+
children: /* @__PURE__ */ jsx69(
|
|
5249
5373
|
FaIcon,
|
|
5250
5374
|
{
|
|
5251
5375
|
name: collapsed ? "chevrons-right" : "chevrons-left",
|
|
@@ -5260,11 +5384,11 @@ SidebarTrigger.displayName = "SidebarTrigger";
|
|
|
5260
5384
|
|
|
5261
5385
|
// src/ui/components/ui/sidebar/SidebarHeader.tsx
|
|
5262
5386
|
import { forwardRef as forwardRef22 } from "react";
|
|
5263
|
-
import { jsx as
|
|
5387
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
5264
5388
|
var SidebarHeader = forwardRef22(
|
|
5265
5389
|
(_a, ref) => {
|
|
5266
5390
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5267
|
-
return /* @__PURE__ */
|
|
5391
|
+
return /* @__PURE__ */ jsx70(
|
|
5268
5392
|
"div",
|
|
5269
5393
|
__spreadValues({
|
|
5270
5394
|
ref,
|
|
@@ -5277,11 +5401,11 @@ SidebarHeader.displayName = "SidebarHeader";
|
|
|
5277
5401
|
|
|
5278
5402
|
// src/ui/components/ui/sidebar/SidebarContent.tsx
|
|
5279
5403
|
import { forwardRef as forwardRef23 } from "react";
|
|
5280
|
-
import { jsx as
|
|
5404
|
+
import { jsx as jsx71 } from "react/jsx-runtime";
|
|
5281
5405
|
var SidebarContent = forwardRef23(
|
|
5282
5406
|
(_a, ref) => {
|
|
5283
5407
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5284
|
-
return /* @__PURE__ */
|
|
5408
|
+
return /* @__PURE__ */ jsx71(
|
|
5285
5409
|
"div",
|
|
5286
5410
|
__spreadValues({
|
|
5287
5411
|
ref,
|
|
@@ -5298,20 +5422,20 @@ SidebarContent.displayName = "SidebarContent";
|
|
|
5298
5422
|
|
|
5299
5423
|
// src/ui/components/ui/sidebar/SidebarGroup.tsx
|
|
5300
5424
|
import { forwardRef as forwardRef24 } from "react";
|
|
5301
|
-
import { jsx as
|
|
5425
|
+
import { jsx as jsx72, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5302
5426
|
var SidebarGroup = forwardRef24(
|
|
5303
5427
|
(_a, ref) => {
|
|
5304
5428
|
var _b = _a, { label, className, children } = _b, props = __objRest(_b, ["label", "className", "children"]);
|
|
5305
5429
|
const collapsed = useSidebarCollapsed();
|
|
5306
|
-
return /* @__PURE__ */
|
|
5430
|
+
return /* @__PURE__ */ jsxs34(
|
|
5307
5431
|
"div",
|
|
5308
5432
|
__spreadProps(__spreadValues({
|
|
5309
5433
|
ref,
|
|
5310
5434
|
className: cn("flex w-full flex-col p-2", className)
|
|
5311
5435
|
}, props), {
|
|
5312
5436
|
children: [
|
|
5313
|
-
label && !collapsed && /* @__PURE__ */
|
|
5314
|
-
/* @__PURE__ */
|
|
5437
|
+
label && !collapsed && /* @__PURE__ */ jsx72("span", { className: "flex h-8 shrink-0 items-center px-2 text-xs font-medium text-white/50", children: label }),
|
|
5438
|
+
/* @__PURE__ */ jsx72("div", { className: "flex flex-col gap-1", children })
|
|
5315
5439
|
]
|
|
5316
5440
|
})
|
|
5317
5441
|
);
|
|
@@ -5321,7 +5445,7 @@ SidebarGroup.displayName = "SidebarGroup";
|
|
|
5321
5445
|
|
|
5322
5446
|
// src/ui/components/ui/sidebar/SidebarMenuButton.tsx
|
|
5323
5447
|
import { forwardRef as forwardRef25 } from "react";
|
|
5324
|
-
import { jsx as
|
|
5448
|
+
import { jsx as jsx73, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
5325
5449
|
var SidebarMenuButton = forwardRef25(
|
|
5326
5450
|
(_a, ref) => {
|
|
5327
5451
|
var _b = _a, {
|
|
@@ -5344,7 +5468,7 @@ var SidebarMenuButton = forwardRef25(
|
|
|
5344
5468
|
"className"
|
|
5345
5469
|
]);
|
|
5346
5470
|
const collapsed = useSidebarCollapsed();
|
|
5347
|
-
const button = /* @__PURE__ */
|
|
5471
|
+
const button = /* @__PURE__ */ jsxs35(
|
|
5348
5472
|
"button",
|
|
5349
5473
|
__spreadProps(__spreadValues({
|
|
5350
5474
|
ref,
|
|
@@ -5360,7 +5484,7 @@ var SidebarMenuButton = forwardRef25(
|
|
|
5360
5484
|
)
|
|
5361
5485
|
}, props), {
|
|
5362
5486
|
children: [
|
|
5363
|
-
/* @__PURE__ */
|
|
5487
|
+
/* @__PURE__ */ jsx73(
|
|
5364
5488
|
FaIcon,
|
|
5365
5489
|
{
|
|
5366
5490
|
name: icon,
|
|
@@ -5369,7 +5493,7 @@ var SidebarMenuButton = forwardRef25(
|
|
|
5369
5493
|
className: "shrink-0"
|
|
5370
5494
|
}
|
|
5371
5495
|
),
|
|
5372
|
-
!collapsed && /* @__PURE__ */
|
|
5496
|
+
!collapsed && /* @__PURE__ */ jsx73(
|
|
5373
5497
|
Text,
|
|
5374
5498
|
{
|
|
5375
5499
|
as: "span",
|
|
@@ -5380,8 +5504,8 @@ var SidebarMenuButton = forwardRef25(
|
|
|
5380
5504
|
children: label
|
|
5381
5505
|
}
|
|
5382
5506
|
),
|
|
5383
|
-
!collapsed && shortcut && /* @__PURE__ */
|
|
5384
|
-
!!badge && /* @__PURE__ */
|
|
5507
|
+
!collapsed && shortcut && /* @__PURE__ */ jsx73("kbd", { className: "shrink-0 rounded border border-white/15 bg-white/5 px-1.5 py-0.5 text-[10px] font-medium text-white/50", children: shortcut }),
|
|
5508
|
+
!!badge && /* @__PURE__ */ jsx73(
|
|
5385
5509
|
"span",
|
|
5386
5510
|
{
|
|
5387
5511
|
className: cn(
|
|
@@ -5396,14 +5520,14 @@ var SidebarMenuButton = forwardRef25(
|
|
|
5396
5520
|
})
|
|
5397
5521
|
);
|
|
5398
5522
|
if (!collapsed) return button;
|
|
5399
|
-
return /* @__PURE__ */
|
|
5523
|
+
return /* @__PURE__ */ jsx73(Tooltip, { content: label, side: "right", children: button });
|
|
5400
5524
|
}
|
|
5401
5525
|
);
|
|
5402
5526
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
5403
5527
|
|
|
5404
5528
|
// src/ui/components/ui/sidebar/SidebarActionCard.tsx
|
|
5405
5529
|
import { forwardRef as forwardRef26 } from "react";
|
|
5406
|
-
import { Fragment as Fragment5, jsx as
|
|
5530
|
+
import { Fragment as Fragment5, jsx as jsx74, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5407
5531
|
var SidebarActionCard = forwardRef26(
|
|
5408
5532
|
(_a, ref) => {
|
|
5409
5533
|
var _b = _a, {
|
|
@@ -5424,11 +5548,11 @@ var SidebarActionCard = forwardRef26(
|
|
|
5424
5548
|
const collapsed = useSidebarCollapsed();
|
|
5425
5549
|
const tooltip = subtitle ? `${title} ${subtitle}` : title;
|
|
5426
5550
|
const counter = badge ? badge > 99 ? "99+" : badge : null;
|
|
5427
|
-
const iconBadge = /* @__PURE__ */
|
|
5428
|
-
/* @__PURE__ */
|
|
5429
|
-
collapsed && counter && /* @__PURE__ */
|
|
5551
|
+
const iconBadge = /* @__PURE__ */ jsxs36("span", { className: "relative flex size-8 shrink-0 items-center justify-center rounded-full bg-yellow-200 text-neutral-800", children: [
|
|
5552
|
+
/* @__PURE__ */ jsx74(FaIcon, { name: icon, family: iconFamily, size: 16 }),
|
|
5553
|
+
collapsed && counter && /* @__PURE__ */ jsx74("span", { className: "absolute -right-1.5 -top-1.5 inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-red-500 px-1.5 text-xs font-bold text-white", children: counter })
|
|
5430
5554
|
] });
|
|
5431
|
-
const button = /* @__PURE__ */
|
|
5555
|
+
const button = /* @__PURE__ */ jsxs36(
|
|
5432
5556
|
"button",
|
|
5433
5557
|
__spreadProps(__spreadValues({
|
|
5434
5558
|
ref,
|
|
@@ -5443,12 +5567,12 @@ var SidebarActionCard = forwardRef26(
|
|
|
5443
5567
|
}, props), {
|
|
5444
5568
|
children: [
|
|
5445
5569
|
iconBadge,
|
|
5446
|
-
!collapsed && /* @__PURE__ */
|
|
5447
|
-
/* @__PURE__ */
|
|
5448
|
-
/* @__PURE__ */
|
|
5449
|
-
subtitle && /* @__PURE__ */
|
|
5570
|
+
!collapsed && /* @__PURE__ */ jsxs36(Fragment5, { children: [
|
|
5571
|
+
/* @__PURE__ */ jsxs36("span", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5572
|
+
/* @__PURE__ */ jsx74("span", { className: "truncate text-sm font-bold text-white", children: title }),
|
|
5573
|
+
subtitle && /* @__PURE__ */ jsx74("span", { className: "truncate text-xs text-white/60", children: subtitle })
|
|
5450
5574
|
] }),
|
|
5451
|
-
counter ? /* @__PURE__ */
|
|
5575
|
+
counter ? /* @__PURE__ */ jsx74("span", { className: "inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-red-500 px-1.5 text-xs font-bold text-white", children: counter }) : /* @__PURE__ */ jsx74(
|
|
5452
5576
|
FaIcon,
|
|
5453
5577
|
{
|
|
5454
5578
|
name: "chevron-right",
|
|
@@ -5462,18 +5586,18 @@ var SidebarActionCard = forwardRef26(
|
|
|
5462
5586
|
})
|
|
5463
5587
|
);
|
|
5464
5588
|
if (!collapsed) return button;
|
|
5465
|
-
return /* @__PURE__ */
|
|
5589
|
+
return /* @__PURE__ */ jsx74(Tooltip, { content: tooltip, side: "right", children: button });
|
|
5466
5590
|
}
|
|
5467
5591
|
);
|
|
5468
5592
|
SidebarActionCard.displayName = "SidebarActionCard";
|
|
5469
5593
|
|
|
5470
5594
|
// src/ui/components/ui/sidebar/SidebarMenuSub.tsx
|
|
5471
5595
|
import { forwardRef as forwardRef27 } from "react";
|
|
5472
|
-
import { jsx as
|
|
5596
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
5473
5597
|
var SidebarMenuSub = forwardRef27(
|
|
5474
5598
|
(_a, ref) => {
|
|
5475
5599
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5476
|
-
return /* @__PURE__ */
|
|
5600
|
+
return /* @__PURE__ */ jsx75(
|
|
5477
5601
|
"ul",
|
|
5478
5602
|
__spreadValues({
|
|
5479
5603
|
ref,
|
|
@@ -5489,23 +5613,23 @@ SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
|
5489
5613
|
|
|
5490
5614
|
// src/ui/components/ui/sidebar/SidebarMenuSubItem.tsx
|
|
5491
5615
|
import { forwardRef as forwardRef28 } from "react";
|
|
5492
|
-
import { jsx as
|
|
5616
|
+
import { jsx as jsx76 } from "react/jsx-runtime";
|
|
5493
5617
|
var SidebarMenuSubItem = forwardRef28((_a, ref) => {
|
|
5494
5618
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5495
|
-
return /* @__PURE__ */
|
|
5619
|
+
return /* @__PURE__ */ jsx76("li", __spreadValues({ ref, className: cn("relative", className) }, props));
|
|
5496
5620
|
});
|
|
5497
5621
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
5498
5622
|
|
|
5499
5623
|
// src/ui/components/ui/sidebar/SidebarMenuSubButton.tsx
|
|
5500
5624
|
import { forwardRef as forwardRef29 } from "react";
|
|
5501
|
-
import { jsx as
|
|
5625
|
+
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
5502
5626
|
var SIZE_CLASS = {
|
|
5503
5627
|
default: "h-10",
|
|
5504
5628
|
lg: "h-14"
|
|
5505
5629
|
};
|
|
5506
5630
|
var SidebarMenuSubButton = forwardRef29((_a, ref) => {
|
|
5507
5631
|
var _b = _a, { active, size = "default", className } = _b, props = __objRest(_b, ["active", "size", "className"]);
|
|
5508
|
-
return /* @__PURE__ */
|
|
5632
|
+
return /* @__PURE__ */ jsx77(
|
|
5509
5633
|
"button",
|
|
5510
5634
|
__spreadValues({
|
|
5511
5635
|
ref,
|
|
@@ -5525,11 +5649,11 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
5525
5649
|
|
|
5526
5650
|
// src/ui/components/ui/sidebar/SidebarFooter.tsx
|
|
5527
5651
|
import { forwardRef as forwardRef30 } from "react";
|
|
5528
|
-
import { jsx as
|
|
5652
|
+
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
5529
5653
|
var SidebarFooter = forwardRef30(
|
|
5530
5654
|
(_a, ref) => {
|
|
5531
5655
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5532
|
-
return /* @__PURE__ */
|
|
5656
|
+
return /* @__PURE__ */ jsx78(
|
|
5533
5657
|
"div",
|
|
5534
5658
|
__spreadValues({
|
|
5535
5659
|
ref,
|
|
@@ -5541,7 +5665,7 @@ var SidebarFooter = forwardRef30(
|
|
|
5541
5665
|
SidebarFooter.displayName = "SidebarFooter";
|
|
5542
5666
|
|
|
5543
5667
|
// src/ui/components/ui/sidebar/SidebarSupportInfo.tsx
|
|
5544
|
-
import { jsx as
|
|
5668
|
+
import { jsx as jsx79, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5545
5669
|
var SidebarSupportInfo = ({
|
|
5546
5670
|
phone,
|
|
5547
5671
|
hours,
|
|
@@ -5550,27 +5674,27 @@ var SidebarSupportInfo = ({
|
|
|
5550
5674
|
className
|
|
5551
5675
|
}) => {
|
|
5552
5676
|
const collapsed = useSidebarCollapsed();
|
|
5553
|
-
const badge = /* @__PURE__ */
|
|
5677
|
+
const badge = /* @__PURE__ */ jsx79("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-full bg-white/10 text-white", children: /* @__PURE__ */ jsx79(FaIcon, { name: icon, family: iconFamily, size: 16 }) });
|
|
5554
5678
|
if (collapsed) {
|
|
5555
|
-
return /* @__PURE__ */
|
|
5679
|
+
return /* @__PURE__ */ jsx79("div", { className: cn("flex justify-center px-2 py-1.5", className), children: /* @__PURE__ */ jsx79(Tooltip, { content: `${phone} \u2014 ${hours}`, side: "right", children: badge }) });
|
|
5556
5680
|
}
|
|
5557
|
-
return /* @__PURE__ */
|
|
5681
|
+
return /* @__PURE__ */ jsxs37("div", { className: cn("flex items-center gap-2 px-2 py-1.5", className), children: [
|
|
5558
5682
|
badge,
|
|
5559
|
-
/* @__PURE__ */
|
|
5560
|
-
/* @__PURE__ */
|
|
5561
|
-
/* @__PURE__ */
|
|
5683
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex min-w-0 flex-col leading-tight", children: [
|
|
5684
|
+
/* @__PURE__ */ jsx79("span", { className: "truncate text-sm font-bold text-white", children: phone }),
|
|
5685
|
+
/* @__PURE__ */ jsx79("span", { className: "truncate text-xs text-white/50", children: hours })
|
|
5562
5686
|
] })
|
|
5563
5687
|
] });
|
|
5564
5688
|
};
|
|
5565
5689
|
|
|
5566
5690
|
// src/ui/components/ui/sidebar/SidebarMenuSearchInput.tsx
|
|
5567
5691
|
import { forwardRef as forwardRef31 } from "react";
|
|
5568
|
-
import { jsx as
|
|
5692
|
+
import { jsx as jsx80, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5569
5693
|
var SidebarMenuSearchInput = forwardRef31((_a, ref) => {
|
|
5570
5694
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5571
|
-
return /* @__PURE__ */
|
|
5572
|
-
/* @__PURE__ */
|
|
5573
|
-
/* @__PURE__ */
|
|
5695
|
+
return /* @__PURE__ */ jsxs38(InputGroup, { children: [
|
|
5696
|
+
/* @__PURE__ */ jsx80(InputGroupAddon, { align: "inline-start", children: /* @__PURE__ */ jsx80(FaIcon, { name: "magnifying-glass", size: 14, className: "text-white/50" }) }),
|
|
5697
|
+
/* @__PURE__ */ jsx80(
|
|
5574
5698
|
Input,
|
|
5575
5699
|
__spreadValues({
|
|
5576
5700
|
ref,
|
|
@@ -5587,7 +5711,7 @@ SidebarMenuSearchInput.displayName = "SidebarMenuSearchInput";
|
|
|
5587
5711
|
// src/ui/components/ui/sidebar/SidebarUserMenu.tsx
|
|
5588
5712
|
import { useState as useState10 } from "react";
|
|
5589
5713
|
import * as RadixPopover5 from "@radix-ui/react-popover";
|
|
5590
|
-
import { Fragment as Fragment6, jsx as
|
|
5714
|
+
import { Fragment as Fragment6, jsx as jsx81, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5591
5715
|
var panelClassName = cn(
|
|
5592
5716
|
"z-[9999] min-w-[220px] rounded-lg border border-white/10 bg-blue-800 p-1 shadow-[0_4px_16px_rgba(0,0,0,0.4)]",
|
|
5593
5717
|
"data-[state=open]:animate-[fade-in_150ms_ease-out]"
|
|
@@ -5609,8 +5733,8 @@ var SidebarUserMenu = ({
|
|
|
5609
5733
|
action();
|
|
5610
5734
|
setOpen(false);
|
|
5611
5735
|
};
|
|
5612
|
-
return /* @__PURE__ */
|
|
5613
|
-
/* @__PURE__ */
|
|
5736
|
+
return /* @__PURE__ */ jsxs39(RadixPopover5.Root, { open, onOpenChange: setOpen, children: [
|
|
5737
|
+
/* @__PURE__ */ jsx81(RadixPopover5.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs39(
|
|
5614
5738
|
"button",
|
|
5615
5739
|
{
|
|
5616
5740
|
type: "button",
|
|
@@ -5620,10 +5744,10 @@ var SidebarUserMenu = ({
|
|
|
5620
5744
|
className
|
|
5621
5745
|
),
|
|
5622
5746
|
children: [
|
|
5623
|
-
/* @__PURE__ */
|
|
5624
|
-
!collapsed && /* @__PURE__ */
|
|
5625
|
-
/* @__PURE__ */
|
|
5626
|
-
/* @__PURE__ */
|
|
5747
|
+
/* @__PURE__ */ jsx81(Avatar, { name, src: avatarSrc, size: collapsed ? 28 : 32 }),
|
|
5748
|
+
!collapsed && /* @__PURE__ */ jsxs39(Fragment6, { children: [
|
|
5749
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5750
|
+
/* @__PURE__ */ jsx81(
|
|
5627
5751
|
Text,
|
|
5628
5752
|
{
|
|
5629
5753
|
as: "span",
|
|
@@ -5634,10 +5758,10 @@ var SidebarUserMenu = ({
|
|
|
5634
5758
|
children: name
|
|
5635
5759
|
}
|
|
5636
5760
|
),
|
|
5637
|
-
email && /* @__PURE__ */
|
|
5638
|
-
subtitle && !hideSubtitleInTrigger && /* @__PURE__ */
|
|
5761
|
+
email && /* @__PURE__ */ jsx81("span", { className: "truncate text-xs text-white/50", children: email }),
|
|
5762
|
+
subtitle && !hideSubtitleInTrigger && /* @__PURE__ */ jsx81("span", { className: "truncate text-xs text-white/50", children: subtitle })
|
|
5639
5763
|
] }),
|
|
5640
|
-
/* @__PURE__ */
|
|
5764
|
+
/* @__PURE__ */ jsx81(
|
|
5641
5765
|
FaIcon,
|
|
5642
5766
|
{
|
|
5643
5767
|
name: "sort",
|
|
@@ -5650,7 +5774,7 @@ var SidebarUserMenu = ({
|
|
|
5650
5774
|
]
|
|
5651
5775
|
}
|
|
5652
5776
|
) }),
|
|
5653
|
-
/* @__PURE__ */
|
|
5777
|
+
/* @__PURE__ */ jsx81(RadixPopover5.Portal, { children: /* @__PURE__ */ jsxs39(
|
|
5654
5778
|
RadixPopover5.Content,
|
|
5655
5779
|
{
|
|
5656
5780
|
align: "end",
|
|
@@ -5658,10 +5782,10 @@ var SidebarUserMenu = ({
|
|
|
5658
5782
|
sideOffset: 6,
|
|
5659
5783
|
className: panelClassName,
|
|
5660
5784
|
children: [
|
|
5661
|
-
/* @__PURE__ */
|
|
5662
|
-
/* @__PURE__ */
|
|
5663
|
-
/* @__PURE__ */
|
|
5664
|
-
/* @__PURE__ */
|
|
5785
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2 px-2 py-1.5", children: [
|
|
5786
|
+
/* @__PURE__ */ jsx81(Avatar, { name, src: avatarSrc, size: 32 }),
|
|
5787
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5788
|
+
/* @__PURE__ */ jsx81(
|
|
5665
5789
|
Text,
|
|
5666
5790
|
{
|
|
5667
5791
|
as: "span",
|
|
@@ -5672,20 +5796,20 @@ var SidebarUserMenu = ({
|
|
|
5672
5796
|
children: name
|
|
5673
5797
|
}
|
|
5674
5798
|
),
|
|
5675
|
-
email && /* @__PURE__ */
|
|
5676
|
-
subtitle && !hideSubtitleInPanel && /* @__PURE__ */
|
|
5799
|
+
email && /* @__PURE__ */ jsx81("span", { className: "truncate text-xs text-white/50", children: email }),
|
|
5800
|
+
subtitle && !hideSubtitleInPanel && /* @__PURE__ */ jsx81("span", { className: "truncate text-xs text-white/50", children: subtitle })
|
|
5677
5801
|
] })
|
|
5678
5802
|
] }),
|
|
5679
|
-
actionGroups.map((group, groupIndex) => /* @__PURE__ */
|
|
5803
|
+
actionGroups.map((group, groupIndex) => /* @__PURE__ */ jsx81(
|
|
5680
5804
|
"div",
|
|
5681
5805
|
{
|
|
5682
5806
|
className: "border-t border-white/10 py-1 first:border-t-0",
|
|
5683
5807
|
children: group.map(
|
|
5684
5808
|
(item) => {
|
|
5685
5809
|
var _a;
|
|
5686
|
-
return item.renderPanel || item.subActions ? /* @__PURE__ */
|
|
5687
|
-
/* @__PURE__ */
|
|
5688
|
-
/* @__PURE__ */
|
|
5810
|
+
return item.renderPanel || item.subActions ? /* @__PURE__ */ jsxs39(RadixPopover5.Root, { children: [
|
|
5811
|
+
/* @__PURE__ */ jsx81(RadixPopover5.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs39("button", { type: "button", className: rowClassName, children: [
|
|
5812
|
+
/* @__PURE__ */ jsx81(
|
|
5689
5813
|
FaIcon,
|
|
5690
5814
|
{
|
|
5691
5815
|
name: item.icon,
|
|
@@ -5694,8 +5818,8 @@ var SidebarUserMenu = ({
|
|
|
5694
5818
|
className: "shrink-0 text-white/70"
|
|
5695
5819
|
}
|
|
5696
5820
|
),
|
|
5697
|
-
/* @__PURE__ */
|
|
5698
|
-
/* @__PURE__ */
|
|
5821
|
+
/* @__PURE__ */ jsx81("span", { className: "flex-1", children: item.label }),
|
|
5822
|
+
/* @__PURE__ */ jsx81(
|
|
5699
5823
|
FaIcon,
|
|
5700
5824
|
{
|
|
5701
5825
|
name: "chevron-right",
|
|
@@ -5704,21 +5828,21 @@ var SidebarUserMenu = ({
|
|
|
5704
5828
|
}
|
|
5705
5829
|
)
|
|
5706
5830
|
] }) }),
|
|
5707
|
-
/* @__PURE__ */
|
|
5831
|
+
/* @__PURE__ */ jsx81(RadixPopover5.Portal, { children: /* @__PURE__ */ jsx81(
|
|
5708
5832
|
RadixPopover5.Content,
|
|
5709
5833
|
{
|
|
5710
5834
|
align: "end",
|
|
5711
5835
|
side: "right",
|
|
5712
5836
|
sideOffset: 6,
|
|
5713
5837
|
className: panelClassName,
|
|
5714
|
-
children: item.renderPanel ? item.renderPanel(() => setOpen(false)) : (_a = item.subActions) == null ? void 0 : _a.map((sub) => /* @__PURE__ */
|
|
5838
|
+
children: item.renderPanel ? item.renderPanel(() => setOpen(false)) : (_a = item.subActions) == null ? void 0 : _a.map((sub) => /* @__PURE__ */ jsxs39(
|
|
5715
5839
|
"button",
|
|
5716
5840
|
{
|
|
5717
5841
|
type: "button",
|
|
5718
5842
|
onClick: () => runAndClose(sub.action),
|
|
5719
5843
|
className: rowClassName,
|
|
5720
5844
|
children: [
|
|
5721
|
-
/* @__PURE__ */
|
|
5845
|
+
/* @__PURE__ */ jsx81(
|
|
5722
5846
|
FaIcon,
|
|
5723
5847
|
{
|
|
5724
5848
|
name: sub.icon,
|
|
@@ -5734,14 +5858,14 @@ var SidebarUserMenu = ({
|
|
|
5734
5858
|
))
|
|
5735
5859
|
}
|
|
5736
5860
|
) })
|
|
5737
|
-
] }, item.label) : /* @__PURE__ */
|
|
5861
|
+
] }, item.label) : /* @__PURE__ */ jsxs39(
|
|
5738
5862
|
"button",
|
|
5739
5863
|
{
|
|
5740
5864
|
type: "button",
|
|
5741
5865
|
onClick: () => runAndClose(item.action),
|
|
5742
5866
|
className: rowClassName,
|
|
5743
5867
|
children: [
|
|
5744
|
-
/* @__PURE__ */
|
|
5868
|
+
/* @__PURE__ */ jsx81(
|
|
5745
5869
|
FaIcon,
|
|
5746
5870
|
{
|
|
5747
5871
|
name: item.icon,
|
|
@@ -5768,15 +5892,15 @@ var SidebarUserMenu = ({
|
|
|
5768
5892
|
|
|
5769
5893
|
// src/ui/components/ui/Toaster.tsx
|
|
5770
5894
|
import { Toaster as SonnerToaster } from "sonner";
|
|
5771
|
-
import { jsx as
|
|
5772
|
-
var Toaster = () => /* @__PURE__ */
|
|
5895
|
+
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
5896
|
+
var Toaster = () => /* @__PURE__ */ jsx82(SonnerToaster, { position: "bottom-right", gap: 8 });
|
|
5773
5897
|
|
|
5774
5898
|
// src/ui/lib/toast.tsx
|
|
5775
5899
|
import { toast as sonnerToast2 } from "sonner";
|
|
5776
5900
|
|
|
5777
5901
|
// src/ui/components/ui/ToastCard.tsx
|
|
5778
5902
|
import { toast as sonnerToast } from "sonner";
|
|
5779
|
-
import { jsx as
|
|
5903
|
+
import { jsx as jsx83, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5780
5904
|
var ICON = {
|
|
5781
5905
|
success: "circle-check",
|
|
5782
5906
|
error: "circle-xmark",
|
|
@@ -5818,7 +5942,7 @@ var ToastCard = ({
|
|
|
5818
5942
|
title,
|
|
5819
5943
|
message,
|
|
5820
5944
|
timeOut
|
|
5821
|
-
}) => /* @__PURE__ */
|
|
5945
|
+
}) => /* @__PURE__ */ jsxs40(
|
|
5822
5946
|
Layout,
|
|
5823
5947
|
{
|
|
5824
5948
|
role: "status",
|
|
@@ -5830,14 +5954,14 @@ var ToastCard = ({
|
|
|
5830
5954
|
ACCENT_BORDER[type]
|
|
5831
5955
|
),
|
|
5832
5956
|
children: [
|
|
5833
|
-
/* @__PURE__ */
|
|
5957
|
+
/* @__PURE__ */ jsx83(
|
|
5834
5958
|
"span",
|
|
5835
5959
|
{
|
|
5836
5960
|
className: cn(
|
|
5837
5961
|
"flex h-7 w-7 shrink-0 items-center justify-center rounded-full",
|
|
5838
5962
|
ACCENT_BG[type]
|
|
5839
5963
|
),
|
|
5840
|
-
children: /* @__PURE__ */
|
|
5964
|
+
children: /* @__PURE__ */ jsx83(
|
|
5841
5965
|
FaIcon,
|
|
5842
5966
|
{
|
|
5843
5967
|
name: ICON[type],
|
|
@@ -5850,21 +5974,21 @@ var ToastCard = ({
|
|
|
5850
5974
|
)
|
|
5851
5975
|
}
|
|
5852
5976
|
),
|
|
5853
|
-
/* @__PURE__ */
|
|
5854
|
-
title && /* @__PURE__ */
|
|
5855
|
-
/* @__PURE__ */
|
|
5977
|
+
/* @__PURE__ */ jsxs40(Layout, { column: true, flex: 1, gap: 0.5, className: "min-w-0", children: [
|
|
5978
|
+
title && /* @__PURE__ */ jsx83("p", { className: "text-sm font-bold text-neutral-800", children: title }),
|
|
5979
|
+
/* @__PURE__ */ jsx83("p", { className: "text-sm text-neutral-800", children: message })
|
|
5856
5980
|
] }),
|
|
5857
|
-
/* @__PURE__ */
|
|
5981
|
+
/* @__PURE__ */ jsx83(
|
|
5858
5982
|
"button",
|
|
5859
5983
|
{
|
|
5860
5984
|
type: "button",
|
|
5861
5985
|
"aria-label": "Fermer",
|
|
5862
5986
|
onClick: () => sonnerToast.dismiss(id),
|
|
5863
5987
|
className: "absolute right-2.5 top-2.5 text-grey-500 hover:text-neutral-800",
|
|
5864
|
-
children: /* @__PURE__ */
|
|
5988
|
+
children: /* @__PURE__ */ jsx83(FaIcon, { name: "xmark", size: 14 })
|
|
5865
5989
|
}
|
|
5866
5990
|
),
|
|
5867
|
-
type !== "loading" && /* @__PURE__ */
|
|
5991
|
+
type !== "loading" && /* @__PURE__ */ jsx83(
|
|
5868
5992
|
"div",
|
|
5869
5993
|
{
|
|
5870
5994
|
className: cn(
|
|
@@ -5879,13 +6003,13 @@ var ToastCard = ({
|
|
|
5879
6003
|
);
|
|
5880
6004
|
|
|
5881
6005
|
// src/ui/lib/toast.tsx
|
|
5882
|
-
import { jsx as
|
|
6006
|
+
import { jsx as jsx84 } from "react/jsx-runtime";
|
|
5883
6007
|
var DEFAULT_TIMEOUT = 4e3;
|
|
5884
6008
|
var show = (type, message, options) => {
|
|
5885
6009
|
var _a;
|
|
5886
6010
|
const timeOut = type === "loading" ? Infinity : (_a = options == null ? void 0 : options.timeOut) != null ? _a : DEFAULT_TIMEOUT;
|
|
5887
6011
|
return sonnerToast2.custom(
|
|
5888
|
-
(id) => /* @__PURE__ */
|
|
6012
|
+
(id) => /* @__PURE__ */ jsx84(
|
|
5889
6013
|
ToastCard,
|
|
5890
6014
|
{
|
|
5891
6015
|
id,
|
|
@@ -5925,7 +6049,7 @@ var toast = {
|
|
|
5925
6049
|
// src/ui/components/ui/PageContainer.tsx
|
|
5926
6050
|
import { forwardRef as forwardRef32 } from "react";
|
|
5927
6051
|
import { cva as cva14 } from "class-variance-authority";
|
|
5928
|
-
import { jsx as
|
|
6052
|
+
import { jsx as jsx85 } from "react/jsx-runtime";
|
|
5929
6053
|
var pageContainerVariants = cva14(
|
|
5930
6054
|
"flex h-full w-full flex-col overflow-auto rounded-[10px] bg-grey-200 shadow-[0_1px_4px_rgba(0,0,0,0.16)]",
|
|
5931
6055
|
{
|
|
@@ -5943,7 +6067,7 @@ var pageContainerVariants = cva14(
|
|
|
5943
6067
|
var PageContainer = forwardRef32(
|
|
5944
6068
|
(_a, ref) => {
|
|
5945
6069
|
var _b = _a, { padding, className } = _b, props = __objRest(_b, ["padding", "className"]);
|
|
5946
|
-
return /* @__PURE__ */
|
|
6070
|
+
return /* @__PURE__ */ jsx85(
|
|
5947
6071
|
"div",
|
|
5948
6072
|
__spreadValues({
|
|
5949
6073
|
ref,
|
|
@@ -5956,7 +6080,7 @@ PageContainer.displayName = "PageContainer";
|
|
|
5956
6080
|
|
|
5957
6081
|
// src/ui/components/ui/IconTabs.tsx
|
|
5958
6082
|
import { useCallback as useCallback3, useEffect as useEffect7, useRef as useRef10, useState as useState11 } from "react";
|
|
5959
|
-
import { jsx as
|
|
6083
|
+
import { jsx as jsx86, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5960
6084
|
var IconTabs = ({
|
|
5961
6085
|
items,
|
|
5962
6086
|
value,
|
|
@@ -5987,8 +6111,8 @@ var IconTabs = ({
|
|
|
5987
6111
|
if (listRef.current) ro.observe(listRef.current);
|
|
5988
6112
|
return () => ro.disconnect();
|
|
5989
6113
|
}, [updateBar]);
|
|
5990
|
-
return /* @__PURE__ */
|
|
5991
|
-
/* @__PURE__ */
|
|
6114
|
+
return /* @__PURE__ */ jsxs41(Layout, { column: true, className, children: [
|
|
6115
|
+
/* @__PURE__ */ jsxs41(
|
|
5992
6116
|
Layout,
|
|
5993
6117
|
{
|
|
5994
6118
|
ref: listRef,
|
|
@@ -5997,7 +6121,7 @@ var IconTabs = ({
|
|
|
5997
6121
|
gap: 1,
|
|
5998
6122
|
className: "relative rounded-[5px] bg-grey-100 p-1",
|
|
5999
6123
|
children: [
|
|
6000
|
-
/* @__PURE__ */
|
|
6124
|
+
/* @__PURE__ */ jsx86(
|
|
6001
6125
|
"div",
|
|
6002
6126
|
{
|
|
6003
6127
|
className: "absolute rounded-[5px] bg-blue-50 transition-all duration-300",
|
|
@@ -6013,7 +6137,7 @@ var IconTabs = ({
|
|
|
6013
6137
|
var _a2;
|
|
6014
6138
|
const disabled = disabledIndexes.includes(index);
|
|
6015
6139
|
const active = value === index;
|
|
6016
|
-
return /* @__PURE__ */
|
|
6140
|
+
return /* @__PURE__ */ jsxs41(
|
|
6017
6141
|
"button",
|
|
6018
6142
|
{
|
|
6019
6143
|
type: "button",
|
|
@@ -6030,14 +6154,14 @@ var IconTabs = ({
|
|
|
6030
6154
|
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
6031
6155
|
),
|
|
6032
6156
|
children: [
|
|
6033
|
-
/* @__PURE__ */
|
|
6157
|
+
/* @__PURE__ */ jsx86(
|
|
6034
6158
|
"i",
|
|
6035
6159
|
{
|
|
6036
6160
|
className: `fa-${(_a2 = item.iconFamily) != null ? _a2 : "regular"} fa-${item.icon}`,
|
|
6037
6161
|
style: { fontSize: 16 }
|
|
6038
6162
|
}
|
|
6039
6163
|
),
|
|
6040
|
-
item.caption && /* @__PURE__ */
|
|
6164
|
+
item.caption && /* @__PURE__ */ jsx86(
|
|
6041
6165
|
"span",
|
|
6042
6166
|
{
|
|
6043
6167
|
className: cn(
|
|
@@ -6055,13 +6179,13 @@ var IconTabs = ({
|
|
|
6055
6179
|
]
|
|
6056
6180
|
}
|
|
6057
6181
|
),
|
|
6058
|
-
((_a = items[value]) == null ? void 0 : _a.label) && /* @__PURE__ */
|
|
6182
|
+
((_a = items[value]) == null ? void 0 : _a.label) && /* @__PURE__ */ jsx86("span", { className: "mt-2 text-center text-xs text-neutral-800", children: items[value].label })
|
|
6059
6183
|
] });
|
|
6060
6184
|
};
|
|
6061
6185
|
|
|
6062
6186
|
// src/ui/components/ui/Banner.tsx
|
|
6063
6187
|
import { cva as cva15 } from "class-variance-authority";
|
|
6064
|
-
import { jsx as
|
|
6188
|
+
import { jsx as jsx87, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6065
6189
|
var bannerVariants = cva15("rounded-[6px] px-4 py-2", {
|
|
6066
6190
|
variants: {
|
|
6067
6191
|
theme: {
|
|
@@ -6118,14 +6242,14 @@ var Banner = ({
|
|
|
6118
6242
|
}) => {
|
|
6119
6243
|
const align = textAlignByJustify[justify];
|
|
6120
6244
|
const textClass = TEXT_CLASS2[theme != null ? theme : "blue-700"];
|
|
6121
|
-
const content = children ? children : message ? /* @__PURE__ */
|
|
6122
|
-
/* @__PURE__ */
|
|
6123
|
-
badge && /* @__PURE__ */
|
|
6124
|
-
title && /* @__PURE__ */
|
|
6245
|
+
const content = children ? children : message ? /* @__PURE__ */ jsx87(Text, { size: "s", align, className: textClass, children: message }) : /* @__PURE__ */ jsxs42(Layout, { column: true, align: justify, gap: 1, children: [
|
|
6246
|
+
/* @__PURE__ */ jsxs42(Layout, { align: "center", gap: 2, children: [
|
|
6247
|
+
badge && /* @__PURE__ */ jsx87(Badge, { theme: theme != null ? theme : "blue-700", size: "m", children: badge }),
|
|
6248
|
+
title && /* @__PURE__ */ jsx87(Text, { size: "s", weight: "bold", align, className: textClass, children: title })
|
|
6125
6249
|
] }),
|
|
6126
|
-
subtitle && /* @__PURE__ */
|
|
6250
|
+
subtitle && /* @__PURE__ */ jsx87(Text, { size: "xs", align, className: textClass, children: subtitle })
|
|
6127
6251
|
] });
|
|
6128
|
-
return /* @__PURE__ */
|
|
6252
|
+
return /* @__PURE__ */ jsxs42(
|
|
6129
6253
|
Layout,
|
|
6130
6254
|
{
|
|
6131
6255
|
role: "alert",
|
|
@@ -6136,15 +6260,15 @@ var Banner = ({
|
|
|
6136
6260
|
width,
|
|
6137
6261
|
className: cn(bannerVariants({ theme }), className),
|
|
6138
6262
|
children: [
|
|
6139
|
-
justify === "start" ? content : /* @__PURE__ */
|
|
6140
|
-
toggle ? /* @__PURE__ */
|
|
6263
|
+
justify === "start" ? content : /* @__PURE__ */ jsx87(Layout, { flex: 1, justify, align: "center", gap: 2, wrap: true, children: content }),
|
|
6264
|
+
toggle ? /* @__PURE__ */ jsx87(
|
|
6141
6265
|
Switch,
|
|
6142
6266
|
{
|
|
6143
6267
|
checked: toggle.checked,
|
|
6144
6268
|
onChange: toggle.onChange,
|
|
6145
6269
|
disabled: toggle.disabled
|
|
6146
6270
|
}
|
|
6147
|
-
) : action && /* @__PURE__ */
|
|
6271
|
+
) : action && /* @__PURE__ */ jsxs42(
|
|
6148
6272
|
Button,
|
|
6149
6273
|
{
|
|
6150
6274
|
variant: "outline",
|
|
@@ -6261,7 +6385,7 @@ var resolveArcPlacement = (request) => {
|
|
|
6261
6385
|
};
|
|
6262
6386
|
|
|
6263
6387
|
// src/ui/components/ui/FloatingButton.tsx
|
|
6264
|
-
import { jsx as
|
|
6388
|
+
import { jsx as jsx88, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6265
6389
|
var readStoredOffset = (key) => {
|
|
6266
6390
|
if (!key || typeof window === "undefined") return { x: 0, y: 0 };
|
|
6267
6391
|
try {
|
|
@@ -6459,7 +6583,7 @@ var FloatingButton = ({
|
|
|
6459
6583
|
const { itemSize } = placement.geometry;
|
|
6460
6584
|
const translateX = offset.x + (isOpen ? placement.shift.x : 0);
|
|
6461
6585
|
const translateY = offset.y + (isOpen ? placement.shift.y : 0);
|
|
6462
|
-
return /* @__PURE__ */
|
|
6586
|
+
return /* @__PURE__ */ jsxs43(
|
|
6463
6587
|
"div",
|
|
6464
6588
|
{
|
|
6465
6589
|
ref: containerRef,
|
|
@@ -6477,7 +6601,7 @@ var FloatingButton = ({
|
|
|
6477
6601
|
actions.map((action, index) => {
|
|
6478
6602
|
var _a;
|
|
6479
6603
|
const itemOffset = arcOffset(index, actions.length, placement.geometry);
|
|
6480
|
-
return /* @__PURE__ */
|
|
6604
|
+
return /* @__PURE__ */ jsxs43(
|
|
6481
6605
|
"button",
|
|
6482
6606
|
{
|
|
6483
6607
|
type: "button",
|
|
@@ -6495,14 +6619,14 @@ var FloatingButton = ({
|
|
|
6495
6619
|
transform: isOpen ? `translate(${itemOffset.x}px, ${itemOffset.y}px)` : "scale(0.4)"
|
|
6496
6620
|
},
|
|
6497
6621
|
children: [
|
|
6498
|
-
/* @__PURE__ */
|
|
6499
|
-
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */
|
|
6622
|
+
/* @__PURE__ */ jsx88("span", { className: SUB_ICON[color], children: action.icon }),
|
|
6623
|
+
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ jsx88("span", { className: "absolute -right-1 -top-1 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-red-500 px-1 text-[11px] font-bold text-white", children: action.badge })
|
|
6500
6624
|
]
|
|
6501
6625
|
},
|
|
6502
6626
|
action.id
|
|
6503
6627
|
);
|
|
6504
6628
|
}),
|
|
6505
|
-
/* @__PURE__ */
|
|
6629
|
+
/* @__PURE__ */ jsxs43(
|
|
6506
6630
|
"button",
|
|
6507
6631
|
{
|
|
6508
6632
|
type: "button",
|
|
@@ -6519,8 +6643,8 @@ var FloatingButton = ({
|
|
|
6519
6643
|
touchAction: draggable ? "none" : void 0
|
|
6520
6644
|
},
|
|
6521
6645
|
children: [
|
|
6522
|
-
isOpen ? /* @__PURE__ */
|
|
6523
|
-
!isOpen && mainBadge > 0 && /* @__PURE__ */
|
|
6646
|
+
isOpen ? /* @__PURE__ */ jsx88(FaIcon, { name: "xmark", size: 20 }) : icon,
|
|
6647
|
+
!isOpen && mainBadge > 0 && /* @__PURE__ */ jsx88("span", { className: "absolute -right-1 -top-1 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-red-500 px-1 text-[11px] font-bold text-white", children: mainBadge })
|
|
6524
6648
|
]
|
|
6525
6649
|
}
|
|
6526
6650
|
)
|
|
@@ -6531,7 +6655,7 @@ var FloatingButton = ({
|
|
|
6531
6655
|
|
|
6532
6656
|
// src/ui/components/ui/ActivityFeedPanel.tsx
|
|
6533
6657
|
import { useEffect as useEffect9, useRef as useRef12, useState as useState13 } from "react";
|
|
6534
|
-
import { jsx as
|
|
6658
|
+
import { jsx as jsx89, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6535
6659
|
var PANEL_WIDTH = 500;
|
|
6536
6660
|
var PANEL_MAX_HEIGHT = 750;
|
|
6537
6661
|
var GAP = 8;
|
|
@@ -6598,7 +6722,7 @@ var ActivityFeedPanel = ({
|
|
|
6598
6722
|
return () => window.removeEventListener("resize", recompute);
|
|
6599
6723
|
}, [open, offset]);
|
|
6600
6724
|
if (!open) return null;
|
|
6601
|
-
return /* @__PURE__ */
|
|
6725
|
+
return /* @__PURE__ */ jsxs44(
|
|
6602
6726
|
Layout,
|
|
6603
6727
|
{
|
|
6604
6728
|
ref: panelRef,
|
|
@@ -6606,7 +6730,7 @@ var ActivityFeedPanel = ({
|
|
|
6606
6730
|
className: "fixed z-30 w-[500px] max-w-[calc(100vw-32px)] overflow-hidden rounded-[10px] border border-grey-200 bg-white shadow-[0_20px_50px_-18px_rgba(15,36,48,0.35)]",
|
|
6607
6731
|
style: __spreadProps(__spreadValues({}, placement), { maxHeight: PANEL_MAX_HEIGHT }),
|
|
6608
6732
|
children: [
|
|
6609
|
-
/* @__PURE__ */
|
|
6733
|
+
/* @__PURE__ */ jsxs44(
|
|
6610
6734
|
Layout,
|
|
6611
6735
|
{
|
|
6612
6736
|
align: "center",
|
|
@@ -6614,12 +6738,12 @@ var ActivityFeedPanel = ({
|
|
|
6614
6738
|
padding: 4,
|
|
6615
6739
|
className: "border-b border-grey-200",
|
|
6616
6740
|
children: [
|
|
6617
|
-
/* @__PURE__ */
|
|
6618
|
-
/* @__PURE__ */
|
|
6741
|
+
/* @__PURE__ */ jsx89(IconBadge, __spreadValues({ name: "bell", size: "m" }, PULSE_ICON_BADGE)),
|
|
6742
|
+
/* @__PURE__ */ jsx89(Text, { size: "s", weight: "bold", children: title })
|
|
6619
6743
|
]
|
|
6620
6744
|
}
|
|
6621
6745
|
),
|
|
6622
|
-
/* @__PURE__ */
|
|
6746
|
+
/* @__PURE__ */ jsx89(Layout, { column: true, fullWidth: true, style: { flex: "1 1 0%", minHeight: 0 }, children: /* @__PURE__ */ jsx89(
|
|
6623
6747
|
"div",
|
|
6624
6748
|
{
|
|
6625
6749
|
style: {
|
|
@@ -6630,10 +6754,10 @@ var ActivityFeedPanel = ({
|
|
|
6630
6754
|
scrollbarWidth: "none"
|
|
6631
6755
|
},
|
|
6632
6756
|
className: "[&::-webkit-scrollbar]:hidden",
|
|
6633
|
-
children: /* @__PURE__ */
|
|
6634
|
-
isLoading && /* @__PURE__ */
|
|
6635
|
-
!isLoading && items.length === 0 && /* @__PURE__ */
|
|
6636
|
-
items.map((item) => /* @__PURE__ */
|
|
6757
|
+
children: /* @__PURE__ */ jsxs44(Layout, { column: true, padding: 2, gap: 1, fullWidth: true, children: [
|
|
6758
|
+
isLoading && /* @__PURE__ */ jsx89(Layout, { fullWidth: true, justify: "center", padding: 6, children: /* @__PURE__ */ jsx89(Spinner, {}) }),
|
|
6759
|
+
!isLoading && items.length === 0 && /* @__PURE__ */ jsx89(Text, { size: "s", color: "grey-500", align: "center", className: "p-4", children: emptyMessage }),
|
|
6760
|
+
items.map((item) => /* @__PURE__ */ jsxs44(
|
|
6637
6761
|
Layout,
|
|
6638
6762
|
{
|
|
6639
6763
|
gap: 3,
|
|
@@ -6641,7 +6765,7 @@ var ActivityFeedPanel = ({
|
|
|
6641
6765
|
className: "cursor-pointer items-start rounded-[8px] p-2 hover:bg-grey-100",
|
|
6642
6766
|
onClick: item.onClick,
|
|
6643
6767
|
children: [
|
|
6644
|
-
/* @__PURE__ */
|
|
6768
|
+
/* @__PURE__ */ jsx89(
|
|
6645
6769
|
IconBadge,
|
|
6646
6770
|
{
|
|
6647
6771
|
name: item.icon,
|
|
@@ -6650,9 +6774,9 @@ var ActivityFeedPanel = ({
|
|
|
6650
6774
|
iconColor: item.iconColor
|
|
6651
6775
|
}
|
|
6652
6776
|
),
|
|
6653
|
-
/* @__PURE__ */
|
|
6654
|
-
/* @__PURE__ */
|
|
6655
|
-
/* @__PURE__ */
|
|
6777
|
+
/* @__PURE__ */ jsxs44(Layout, { column: true, gap: 0.5, className: "min-w-0 flex-1", children: [
|
|
6778
|
+
/* @__PURE__ */ jsx89(Text, { size: "xs", children: item.text }),
|
|
6779
|
+
/* @__PURE__ */ jsx89(Text, { size: "xxs", color: "grey-500", children: item.timeLabel })
|
|
6656
6780
|
] })
|
|
6657
6781
|
]
|
|
6658
6782
|
},
|
|
@@ -6667,7 +6791,7 @@ var ActivityFeedPanel = ({
|
|
|
6667
6791
|
};
|
|
6668
6792
|
|
|
6669
6793
|
// src/ui/components/ui/MetricCard.tsx
|
|
6670
|
-
import { jsx as
|
|
6794
|
+
import { jsx as jsx90, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6671
6795
|
var ICON_WRAP_CLASS = {
|
|
6672
6796
|
"blue-700": "bg-blue-50 text-blue-700",
|
|
6673
6797
|
"blue-900": "bg-blue-50 text-blue-900",
|
|
@@ -6696,7 +6820,7 @@ var MetricCard = ({
|
|
|
6696
6820
|
selected = false,
|
|
6697
6821
|
children,
|
|
6698
6822
|
className
|
|
6699
|
-
}) => /* @__PURE__ */
|
|
6823
|
+
}) => /* @__PURE__ */ jsx90(
|
|
6700
6824
|
"div",
|
|
6701
6825
|
{
|
|
6702
6826
|
onClick,
|
|
@@ -6706,25 +6830,25 @@ var MetricCard = ({
|
|
|
6706
6830
|
selected && "border-blue-700",
|
|
6707
6831
|
className
|
|
6708
6832
|
),
|
|
6709
|
-
children: /* @__PURE__ */
|
|
6710
|
-
/* @__PURE__ */
|
|
6833
|
+
children: /* @__PURE__ */ jsxs45(Layout, { align: "center", gap: 3, fullWidth: true, children: [
|
|
6834
|
+
/* @__PURE__ */ jsx90(
|
|
6711
6835
|
"span",
|
|
6712
6836
|
{
|
|
6713
6837
|
className: cn(
|
|
6714
6838
|
"flex h-9 w-9 shrink-0 items-center justify-center rounded-full",
|
|
6715
6839
|
ICON_WRAP_CLASS[accent]
|
|
6716
6840
|
),
|
|
6717
|
-
children: /* @__PURE__ */
|
|
6841
|
+
children: /* @__PURE__ */ jsx90("i", { className: `fa-${iconFamily} fa-${icon}`, style: { fontSize: 18 } })
|
|
6718
6842
|
}
|
|
6719
6843
|
),
|
|
6720
|
-
children ? children : layout === "row" ? /* @__PURE__ */
|
|
6721
|
-
/* @__PURE__ */
|
|
6722
|
-
/* @__PURE__ */
|
|
6723
|
-
] }) : /* @__PURE__ */
|
|
6724
|
-
/* @__PURE__ */
|
|
6725
|
-
/* @__PURE__ */
|
|
6726
|
-
/* @__PURE__ */
|
|
6727
|
-
subtitle && /* @__PURE__ */
|
|
6844
|
+
children ? children : layout === "row" ? /* @__PURE__ */ jsxs45(Layout, { align: "center", gap: 1, children: [
|
|
6845
|
+
/* @__PURE__ */ jsx90(Text, { size: "s", weight: "bold", color: valueColor, children: value }),
|
|
6846
|
+
/* @__PURE__ */ jsx90(Text, { size: "s", color: "grey-600", children: title })
|
|
6847
|
+
] }) : /* @__PURE__ */ jsxs45(Layout, { column: true, gap: 1, children: [
|
|
6848
|
+
/* @__PURE__ */ jsx90(Text, { size: "s", color: "grey-600", children: title }),
|
|
6849
|
+
/* @__PURE__ */ jsxs45(Layout, { align: "baseline", gap: 1, children: [
|
|
6850
|
+
/* @__PURE__ */ jsx90(Text, { size: "s", weight: "bold", color: valueColor, children: value }),
|
|
6851
|
+
subtitle && /* @__PURE__ */ jsx90(Text, { size: "xs", color: "grey-600", children: subtitle })
|
|
6728
6852
|
] })
|
|
6729
6853
|
] })
|
|
6730
6854
|
] })
|
|
@@ -6732,7 +6856,7 @@ var MetricCard = ({
|
|
|
6732
6856
|
);
|
|
6733
6857
|
|
|
6734
6858
|
// src/ui/components/ui/Tile.tsx
|
|
6735
|
-
import { jsx as
|
|
6859
|
+
import { jsx as jsx91, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6736
6860
|
var Tile = ({
|
|
6737
6861
|
children,
|
|
6738
6862
|
onClick,
|
|
@@ -6742,7 +6866,7 @@ var Tile = ({
|
|
|
6742
6866
|
className
|
|
6743
6867
|
}) => {
|
|
6744
6868
|
const isOutline = variant === "outline";
|
|
6745
|
-
return /* @__PURE__ */
|
|
6869
|
+
return /* @__PURE__ */ jsxs46(
|
|
6746
6870
|
"div",
|
|
6747
6871
|
{
|
|
6748
6872
|
className: cn(
|
|
@@ -6753,7 +6877,7 @@ var Tile = ({
|
|
|
6753
6877
|
className
|
|
6754
6878
|
),
|
|
6755
6879
|
children: [
|
|
6756
|
-
onClick ? /* @__PURE__ */
|
|
6880
|
+
onClick ? /* @__PURE__ */ jsx91(
|
|
6757
6881
|
"button",
|
|
6758
6882
|
{
|
|
6759
6883
|
type: "button",
|
|
@@ -6766,7 +6890,7 @@ var Tile = ({
|
|
|
6766
6890
|
children
|
|
6767
6891
|
}
|
|
6768
6892
|
) : children,
|
|
6769
|
-
expandedContent && /* @__PURE__ */
|
|
6893
|
+
expandedContent && /* @__PURE__ */ jsx91("div", { className: cn(isOutline && "border-t border-grey-300"), children: expandedContent })
|
|
6770
6894
|
]
|
|
6771
6895
|
}
|
|
6772
6896
|
);
|
|
@@ -6921,16 +7045,16 @@ var formatName = (person, fallback = "") => {
|
|
|
6921
7045
|
};
|
|
6922
7046
|
|
|
6923
7047
|
// src/ui/components/ui/history/HistoryChangeRow.tsx
|
|
6924
|
-
import { jsx as
|
|
7048
|
+
import { jsx as jsx92, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
6925
7049
|
var HistoryChangeRow = ({ change }) => {
|
|
6926
7050
|
const { label, previousValue, nextValue, href, onClick } = change;
|
|
6927
7051
|
const hasValues = Boolean(previousValue || nextValue);
|
|
6928
|
-
return /* @__PURE__ */
|
|
6929
|
-
/* @__PURE__ */
|
|
6930
|
-
previousValue && /* @__PURE__ */
|
|
6931
|
-
previousValue && nextValue && /* @__PURE__ */
|
|
6932
|
-
nextValue && href && /* @__PURE__ */
|
|
6933
|
-
nextValue && onClick && /* @__PURE__ */
|
|
7052
|
+
return /* @__PURE__ */ jsxs47(Layout, { align: "center", gap: 1.5, wrap: true, children: [
|
|
7053
|
+
/* @__PURE__ */ jsx92(Text, { size: "xs", weight: "semibold", color: "grey-600", children: hasValues ? `${label} :` : label }),
|
|
7054
|
+
previousValue && /* @__PURE__ */ jsx92(Text, { size: "xs", color: "grey-600", children: previousValue }),
|
|
7055
|
+
previousValue && nextValue && /* @__PURE__ */ jsx92(Icon, { name: "arrow-right", size: "xs", color: "grey-500" }),
|
|
7056
|
+
nextValue && href && /* @__PURE__ */ jsx92(Link, { href, newTab: true, size: "xs", children: nextValue }),
|
|
7057
|
+
nextValue && onClick && /* @__PURE__ */ jsx92(
|
|
6934
7058
|
"button",
|
|
6935
7059
|
{
|
|
6936
7060
|
type: "button",
|
|
@@ -6942,27 +7066,27 @@ var HistoryChangeRow = ({ change }) => {
|
|
|
6942
7066
|
children: nextValue
|
|
6943
7067
|
}
|
|
6944
7068
|
),
|
|
6945
|
-
nextValue && !href && !onClick && /* @__PURE__ */
|
|
7069
|
+
nextValue && !href && !onClick && /* @__PURE__ */ jsx92(Text, { size: "xs", weight: "semibold", children: nextValue })
|
|
6946
7070
|
] });
|
|
6947
7071
|
};
|
|
6948
7072
|
|
|
6949
7073
|
// src/ui/components/ui/history/HistoryEntryCard.tsx
|
|
6950
|
-
import { Fragment as Fragment7, jsx as
|
|
7074
|
+
import { Fragment as Fragment7, jsx as jsx93, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
6951
7075
|
var CARD_CLASS = "group rounded-lg border border-grey-300 bg-white";
|
|
6952
7076
|
var HistoryEntryCard = ({ entry }) => {
|
|
6953
7077
|
const { title, date, author, badge, changes = [] } = entry;
|
|
6954
7078
|
const hasChanges = changes.length > 0;
|
|
6955
|
-
const summary = /* @__PURE__ */
|
|
6956
|
-
/* @__PURE__ */
|
|
6957
|
-
/* @__PURE__ */
|
|
6958
|
-
author && /* @__PURE__ */
|
|
6959
|
-
/* @__PURE__ */
|
|
6960
|
-
/* @__PURE__ */
|
|
7079
|
+
const summary = /* @__PURE__ */ jsxs48(Layout, { column: true, gap: 1, fullWidth: true, children: [
|
|
7080
|
+
/* @__PURE__ */ jsxs48(Layout, { align: "center", justify: "between", gap: 2, fullWidth: true, children: [
|
|
7081
|
+
/* @__PURE__ */ jsxs48(Layout, { align: "center", gap: 3, fullWidth: false, className: "min-w-0", children: [
|
|
7082
|
+
author && /* @__PURE__ */ jsxs48(Fragment7, { children: [
|
|
7083
|
+
/* @__PURE__ */ jsx93(Avatar, { name: author.name, src: author.avatarSrc, size: 40 }),
|
|
7084
|
+
/* @__PURE__ */ jsx93(Text, { size: "xs", weight: "bold", className: "whitespace-nowrap", children: author.name })
|
|
6961
7085
|
] }),
|
|
6962
|
-
badge && /* @__PURE__ */
|
|
7086
|
+
badge && /* @__PURE__ */ jsx93(Badge, { theme: badge.theme, size: "s", children: badge.label })
|
|
6963
7087
|
] }),
|
|
6964
|
-
/* @__PURE__ */
|
|
6965
|
-
date && /* @__PURE__ */
|
|
7088
|
+
/* @__PURE__ */ jsxs48(Layout, { align: "center", gap: 2, fullWidth: false, className: "shrink-0", children: [
|
|
7089
|
+
date && /* @__PURE__ */ jsx93(
|
|
6966
7090
|
Text,
|
|
6967
7091
|
{
|
|
6968
7092
|
size: "xxs",
|
|
@@ -6972,7 +7096,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
6972
7096
|
children: formatDate(date, "dateTime", "fr")
|
|
6973
7097
|
}
|
|
6974
7098
|
),
|
|
6975
|
-
hasChanges && /* @__PURE__ */
|
|
7099
|
+
hasChanges && /* @__PURE__ */ jsx93(
|
|
6976
7100
|
Icon,
|
|
6977
7101
|
{
|
|
6978
7102
|
name: "chevron-down",
|
|
@@ -6983,14 +7107,14 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
6983
7107
|
)
|
|
6984
7108
|
] })
|
|
6985
7109
|
] }),
|
|
6986
|
-
title && /* @__PURE__ */
|
|
7110
|
+
title && /* @__PURE__ */ jsx93(Text, { size: "xs", className: author ? "pl-[52px]" : void 0, children: title })
|
|
6987
7111
|
] });
|
|
6988
7112
|
if (!hasChanges) {
|
|
6989
|
-
return /* @__PURE__ */
|
|
7113
|
+
return /* @__PURE__ */ jsx93("div", { className: `${CARD_CLASS} p-3`, children: summary });
|
|
6990
7114
|
}
|
|
6991
|
-
return /* @__PURE__ */
|
|
6992
|
-
/* @__PURE__ */
|
|
6993
|
-
/* @__PURE__ */
|
|
7115
|
+
return /* @__PURE__ */ jsxs48(Collapsible, { className: CARD_CLASS, children: [
|
|
7116
|
+
/* @__PURE__ */ jsx93(CollapsibleTrigger, { className: "w-full cursor-pointer p-3 text-left outline-none focus-visible:ring-2 focus-visible:ring-blue-200", children: summary }),
|
|
7117
|
+
/* @__PURE__ */ jsx93(CollapsibleContent, { children: /* @__PURE__ */ jsx93(
|
|
6994
7118
|
Layout,
|
|
6995
7119
|
{
|
|
6996
7120
|
column: true,
|
|
@@ -6998,7 +7122,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
6998
7122
|
paddingX: 3,
|
|
6999
7123
|
paddingBottom: 3,
|
|
7000
7124
|
className: author ? "pl-[64px]" : void 0,
|
|
7001
|
-
children: changes.map((change, index) => /* @__PURE__ */
|
|
7125
|
+
children: changes.map((change, index) => /* @__PURE__ */ jsx93(
|
|
7002
7126
|
HistoryChangeRow,
|
|
7003
7127
|
{
|
|
7004
7128
|
change
|
|
@@ -7011,7 +7135,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
7011
7135
|
};
|
|
7012
7136
|
|
|
7013
7137
|
// src/ui/components/ui/history/HistoryList.tsx
|
|
7014
|
-
import { jsx as
|
|
7138
|
+
import { jsx as jsx94, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
7015
7139
|
var SKELETON_COUNT = 4;
|
|
7016
7140
|
var HistoryList = ({
|
|
7017
7141
|
entries,
|
|
@@ -7023,8 +7147,8 @@ var HistoryList = ({
|
|
|
7023
7147
|
emptyLabel = "Aucun historique",
|
|
7024
7148
|
emptyDescription = "Aucune action enregistr\xE9e pour le moment.",
|
|
7025
7149
|
notice
|
|
7026
|
-
}) => /* @__PURE__ */
|
|
7027
|
-
filters.length > 0 && /* @__PURE__ */
|
|
7150
|
+
}) => /* @__PURE__ */ jsxs49(Layout, { column: true, gap: 2, fullWidth: true, className: "flex-1", children: [
|
|
7151
|
+
filters.length > 0 && /* @__PURE__ */ jsx94(Layout, { gap: 2, wrap: true, fullWidth: true, justify: "center", children: filters.map((filter) => /* @__PURE__ */ jsx94(
|
|
7028
7152
|
TagBubble,
|
|
7029
7153
|
{
|
|
7030
7154
|
label: filter.label,
|
|
@@ -7035,22 +7159,22 @@ var HistoryList = ({
|
|
|
7035
7159
|
},
|
|
7036
7160
|
filter.value
|
|
7037
7161
|
)) }),
|
|
7038
|
-
isLoading && Array.from({ length: SKELETON_COUNT }, (_, index) => /* @__PURE__ */
|
|
7039
|
-
!isLoading && isError && /* @__PURE__ */
|
|
7040
|
-
!isLoading && !isError && entries.length === 0 && /* @__PURE__ */
|
|
7162
|
+
isLoading && Array.from({ length: SKELETON_COUNT }, (_, index) => /* @__PURE__ */ jsx94(Skeleton, { height: "72px" }, index)),
|
|
7163
|
+
!isLoading && isError && /* @__PURE__ */ jsx94(Text, { size: "s", color: "red-900", align: "center", children: errorLabel }),
|
|
7164
|
+
!isLoading && !isError && entries.length === 0 && /* @__PURE__ */ jsx94(
|
|
7041
7165
|
EmptyState,
|
|
7042
7166
|
{
|
|
7043
|
-
icon: /* @__PURE__ */
|
|
7167
|
+
icon: /* @__PURE__ */ jsx94(FaIcon, { name: "clock-rotate-left", size: 20 }),
|
|
7044
7168
|
title: emptyLabel,
|
|
7045
7169
|
description: emptyDescription
|
|
7046
7170
|
}
|
|
7047
7171
|
),
|
|
7048
|
-
!isLoading && !isError && entries.map((entry) => /* @__PURE__ */
|
|
7049
|
-
!isLoading && !isError && notice && /* @__PURE__ */
|
|
7172
|
+
!isLoading && !isError && entries.map((entry) => /* @__PURE__ */ jsx94(HistoryEntryCard, { entry }, entry.id)),
|
|
7173
|
+
!isLoading && !isError && notice && /* @__PURE__ */ jsx94(Text, { size: "xs", color: "grey-600", align: "center", children: notice })
|
|
7050
7174
|
] });
|
|
7051
7175
|
|
|
7052
7176
|
// src/ui/components/ui/history/HistoryDrawer.tsx
|
|
7053
|
-
import { jsx as
|
|
7177
|
+
import { jsx as jsx95, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
7054
7178
|
var HistoryDrawer = (_a) => {
|
|
7055
7179
|
var _b = _a, {
|
|
7056
7180
|
open,
|
|
@@ -7061,7 +7185,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7061
7185
|
"onClose",
|
|
7062
7186
|
"title"
|
|
7063
7187
|
]);
|
|
7064
|
-
return /* @__PURE__ */
|
|
7188
|
+
return /* @__PURE__ */ jsxs50(
|
|
7065
7189
|
Drawer,
|
|
7066
7190
|
{
|
|
7067
7191
|
open,
|
|
@@ -7069,9 +7193,9 @@ var HistoryDrawer = (_a) => {
|
|
|
7069
7193
|
className: "z-[1060]",
|
|
7070
7194
|
overlayClassName: "z-[1050]",
|
|
7071
7195
|
children: [
|
|
7072
|
-
/* @__PURE__ */
|
|
7073
|
-
/* @__PURE__ */
|
|
7074
|
-
/* @__PURE__ */
|
|
7196
|
+
/* @__PURE__ */ jsxs50(DrawerHeader, { children: [
|
|
7197
|
+
/* @__PURE__ */ jsx95(DrawerTitle, { className: "uppercase", children: title }),
|
|
7198
|
+
/* @__PURE__ */ jsx95(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx95(
|
|
7075
7199
|
Icon,
|
|
7076
7200
|
{
|
|
7077
7201
|
name: "xmark",
|
|
@@ -7081,7 +7205,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7081
7205
|
}
|
|
7082
7206
|
) })
|
|
7083
7207
|
] }),
|
|
7084
|
-
/* @__PURE__ */
|
|
7208
|
+
/* @__PURE__ */ jsx95(DrawerBody, { className: "flex flex-col", children: /* @__PURE__ */ jsx95(HistoryList, __spreadValues({}, listProps)) })
|
|
7085
7209
|
]
|
|
7086
7210
|
}
|
|
7087
7211
|
);
|
|
@@ -7089,7 +7213,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7089
7213
|
|
|
7090
7214
|
// src/ui/components/ui/history/HistoryButton.tsx
|
|
7091
7215
|
import { useState as useState14 } from "react";
|
|
7092
|
-
import { Fragment as Fragment8, jsx as
|
|
7216
|
+
import { Fragment as Fragment8, jsx as jsx96, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
7093
7217
|
var LABEL = "Historique";
|
|
7094
7218
|
var SHORT_TOOLTIP = "Voir l\u2019historique des actions";
|
|
7095
7219
|
var HistoryButton = (_a) => {
|
|
@@ -7110,10 +7234,10 @@ var HistoryButton = (_a) => {
|
|
|
7110
7234
|
onOpenChange == null ? void 0 : onOpenChange(nextIsOpen);
|
|
7111
7235
|
};
|
|
7112
7236
|
const open = () => changeOpen(true);
|
|
7113
|
-
const icon = /* @__PURE__ */
|
|
7114
|
-
return /* @__PURE__ */
|
|
7115
|
-
variant === "icon" ? /* @__PURE__ */
|
|
7116
|
-
/* @__PURE__ */
|
|
7237
|
+
const icon = /* @__PURE__ */ jsx96(FaIcon, { name: "clock-rotate-left", size: 14 });
|
|
7238
|
+
return /* @__PURE__ */ jsxs51(Fragment8, { children: [
|
|
7239
|
+
variant === "icon" ? /* @__PURE__ */ jsx96(Tooltip, { content: tooltip, className: "z-[1100]", children: /* @__PURE__ */ jsx96(Button, { iconLeft: icon, "aria-label": LABEL, onClick: open }) }) : /* @__PURE__ */ jsx96(Button, { label: LABEL, iconLeft: icon, onClick: open }),
|
|
7240
|
+
/* @__PURE__ */ jsx96(
|
|
7117
7241
|
HistoryDrawer,
|
|
7118
7242
|
__spreadValues({
|
|
7119
7243
|
open: isOpen,
|
|
@@ -7125,7 +7249,7 @@ var HistoryButton = (_a) => {
|
|
|
7125
7249
|
};
|
|
7126
7250
|
|
|
7127
7251
|
// src/ui/components/ui/Gantt.tsx
|
|
7128
|
-
import { jsx as
|
|
7252
|
+
import { jsx as jsx97, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
7129
7253
|
var Gantt = ({
|
|
7130
7254
|
days,
|
|
7131
7255
|
rows,
|
|
@@ -7141,7 +7265,7 @@ var Gantt = ({
|
|
|
7141
7265
|
const bodyHeight = rows.length * rowHeight;
|
|
7142
7266
|
const clickable = Boolean(onRowClick);
|
|
7143
7267
|
const gridCols = { gridTemplateColumns: `${labelWidth}px minmax(0, 1fr)` };
|
|
7144
|
-
return /* @__PURE__ */
|
|
7268
|
+
return /* @__PURE__ */ jsxs52(
|
|
7145
7269
|
"div",
|
|
7146
7270
|
{
|
|
7147
7271
|
className: cn(
|
|
@@ -7149,13 +7273,13 @@ var Gantt = ({
|
|
|
7149
7273
|
className
|
|
7150
7274
|
),
|
|
7151
7275
|
children: [
|
|
7152
|
-
/* @__PURE__ */
|
|
7276
|
+
/* @__PURE__ */ jsxs52(
|
|
7153
7277
|
"div",
|
|
7154
7278
|
{
|
|
7155
7279
|
className: "grid border-b border-grey-300 bg-grey-100",
|
|
7156
7280
|
style: gridCols,
|
|
7157
7281
|
children: [
|
|
7158
|
-
/* @__PURE__ */
|
|
7282
|
+
/* @__PURE__ */ jsx97(
|
|
7159
7283
|
Layout,
|
|
7160
7284
|
{
|
|
7161
7285
|
align: "center",
|
|
@@ -7163,7 +7287,7 @@ var Gantt = ({
|
|
|
7163
7287
|
children: labelHeader
|
|
7164
7288
|
}
|
|
7165
7289
|
),
|
|
7166
|
-
/* @__PURE__ */
|
|
7290
|
+
/* @__PURE__ */ jsx97("div", { className: "relative h-[30px]", children: days.map((day) => /* @__PURE__ */ jsx97(
|
|
7167
7291
|
Layout,
|
|
7168
7292
|
{
|
|
7169
7293
|
fullHeight: true,
|
|
@@ -7177,13 +7301,13 @@ var Gantt = ({
|
|
|
7177
7301
|
]
|
|
7178
7302
|
}
|
|
7179
7303
|
),
|
|
7180
|
-
/* @__PURE__ */
|
|
7304
|
+
/* @__PURE__ */ jsxs52(
|
|
7181
7305
|
"div",
|
|
7182
7306
|
{
|
|
7183
7307
|
className: "grid overflow-y-auto overflow-x-hidden",
|
|
7184
7308
|
style: __spreadProps(__spreadValues({}, gridCols), { maxHeight }),
|
|
7185
7309
|
children: [
|
|
7186
|
-
/* @__PURE__ */
|
|
7310
|
+
/* @__PURE__ */ jsx97("div", { className: "min-w-0 border-r border-grey-300", children: rows.map((row, i) => /* @__PURE__ */ jsx97(
|
|
7187
7311
|
Layout,
|
|
7188
7312
|
{
|
|
7189
7313
|
column: true,
|
|
@@ -7200,8 +7324,8 @@ var Gantt = ({
|
|
|
7200
7324
|
},
|
|
7201
7325
|
row.key
|
|
7202
7326
|
)) }),
|
|
7203
|
-
/* @__PURE__ */
|
|
7204
|
-
days.map((day, i) => /* @__PURE__ */
|
|
7327
|
+
/* @__PURE__ */ jsx97("div", { className: "min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs52("div", { className: "relative w-full", style: { height: bodyHeight }, children: [
|
|
7328
|
+
days.map((day, i) => /* @__PURE__ */ jsx97(
|
|
7205
7329
|
"div",
|
|
7206
7330
|
{
|
|
7207
7331
|
className: cn(
|
|
@@ -7212,7 +7336,7 @@ var Gantt = ({
|
|
|
7212
7336
|
},
|
|
7213
7337
|
day.key
|
|
7214
7338
|
)),
|
|
7215
|
-
bands.map((band) => /* @__PURE__ */
|
|
7339
|
+
bands.map((band) => /* @__PURE__ */ jsx97(
|
|
7216
7340
|
"div",
|
|
7217
7341
|
{
|
|
7218
7342
|
title: band.title,
|
|
@@ -7223,7 +7347,7 @@ var Gantt = ({
|
|
|
7223
7347
|
)),
|
|
7224
7348
|
rows.map((row, i) => {
|
|
7225
7349
|
var _a, _b, _c;
|
|
7226
|
-
return /* @__PURE__ */
|
|
7350
|
+
return /* @__PURE__ */ jsx97(
|
|
7227
7351
|
"div",
|
|
7228
7352
|
{
|
|
7229
7353
|
className: cn(
|
|
@@ -7231,7 +7355,7 @@ var Gantt = ({
|
|
|
7231
7355
|
i === 0 ? "border-t-0" : "border-t border-grey-200"
|
|
7232
7356
|
),
|
|
7233
7357
|
style: { top: i * rowHeight, height: rowHeight },
|
|
7234
|
-
children: row.bar && /* @__PURE__ */
|
|
7358
|
+
children: row.bar && /* @__PURE__ */ jsx97(
|
|
7235
7359
|
Layout,
|
|
7236
7360
|
{
|
|
7237
7361
|
align: "center",
|
|
@@ -7246,7 +7370,7 @@ var Gantt = ({
|
|
|
7246
7370
|
background: row.bar.color,
|
|
7247
7371
|
borderColor: row.bar.color
|
|
7248
7372
|
},
|
|
7249
|
-
children: row.bar.label && /* @__PURE__ */
|
|
7373
|
+
children: row.bar.label && /* @__PURE__ */ jsx97(
|
|
7250
7374
|
"span",
|
|
7251
7375
|
{
|
|
7252
7376
|
className: "overflow-hidden text-ellipsis whitespace-nowrap text-[10px] font-semibold",
|
|
@@ -7268,7 +7392,7 @@ var Gantt = ({
|
|
|
7268
7392
|
}
|
|
7269
7393
|
);
|
|
7270
7394
|
};
|
|
7271
|
-
var GanttDot = ({ color }) => /* @__PURE__ */
|
|
7395
|
+
var GanttDot = ({ color }) => /* @__PURE__ */ jsx97(
|
|
7272
7396
|
"span",
|
|
7273
7397
|
{
|
|
7274
7398
|
className: "inline-block h-[9px] w-[9px] shrink-0 rounded-[3px]",
|
|
@@ -7278,7 +7402,7 @@ var GanttDot = ({ color }) => /* @__PURE__ */ jsx96(
|
|
|
7278
7402
|
var GanttSwatch = ({
|
|
7279
7403
|
color,
|
|
7280
7404
|
filled = true
|
|
7281
|
-
}) => /* @__PURE__ */
|
|
7405
|
+
}) => /* @__PURE__ */ jsx97(
|
|
7282
7406
|
"span",
|
|
7283
7407
|
{
|
|
7284
7408
|
className: "box-border inline-block h-3 w-[18px] shrink-0 rounded-[3px] border-[1.5px]",
|
|
@@ -7287,7 +7411,7 @@ var GanttSwatch = ({
|
|
|
7287
7411
|
);
|
|
7288
7412
|
|
|
7289
7413
|
// src/ui/components/ui/Timeline.tsx
|
|
7290
|
-
import { jsx as
|
|
7414
|
+
import { jsx as jsx98, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
7291
7415
|
var Timeline = ({
|
|
7292
7416
|
items,
|
|
7293
7417
|
lineColor = "#F1F5F9",
|
|
@@ -7295,22 +7419,22 @@ var Timeline = ({
|
|
|
7295
7419
|
className
|
|
7296
7420
|
}) => {
|
|
7297
7421
|
if (items.length === 0) {
|
|
7298
|
-
return /* @__PURE__ */
|
|
7422
|
+
return /* @__PURE__ */ jsx98(Text, { size: "s", color: "grey-600", children: emptyLabel });
|
|
7299
7423
|
}
|
|
7300
|
-
return /* @__PURE__ */
|
|
7424
|
+
return /* @__PURE__ */ jsx98(Layout, { column: true, className, children: items.map((item, index) => {
|
|
7301
7425
|
var _a;
|
|
7302
7426
|
const isLast = index === items.length - 1;
|
|
7303
7427
|
const dotColor = (_a = item.color) != null ? _a : "#377EA1";
|
|
7304
|
-
return /* @__PURE__ */
|
|
7305
|
-
/* @__PURE__ */
|
|
7306
|
-
/* @__PURE__ */
|
|
7428
|
+
return /* @__PURE__ */ jsxs53(Layout, { gap: 3, children: [
|
|
7429
|
+
/* @__PURE__ */ jsxs53(Layout, { column: true, align: "center", className: "w-4", children: [
|
|
7430
|
+
/* @__PURE__ */ jsx98(
|
|
7307
7431
|
"span",
|
|
7308
7432
|
{
|
|
7309
7433
|
className: "mt-1 h-2.5 w-2.5 shrink-0 rounded-full",
|
|
7310
7434
|
style: { background: dotColor }
|
|
7311
7435
|
}
|
|
7312
7436
|
),
|
|
7313
|
-
!isLast && /* @__PURE__ */
|
|
7437
|
+
!isLast && /* @__PURE__ */ jsx98(
|
|
7314
7438
|
"span",
|
|
7315
7439
|
{
|
|
7316
7440
|
className: "w-0.5 flex-1 min-h-[16px]",
|
|
@@ -7318,10 +7442,10 @@ var Timeline = ({
|
|
|
7318
7442
|
}
|
|
7319
7443
|
)
|
|
7320
7444
|
] }),
|
|
7321
|
-
/* @__PURE__ */
|
|
7322
|
-
/* @__PURE__ */
|
|
7323
|
-
item.subtitle && /* @__PURE__ */
|
|
7324
|
-
item.description && /* @__PURE__ */
|
|
7445
|
+
/* @__PURE__ */ jsxs53(Layout, { column: true, gap: 0.5, className: isLast ? void 0 : "pb-4", children: [
|
|
7446
|
+
/* @__PURE__ */ jsx98(Text, { size: "s", weight: item.highlighted ? "bold" : "semibold", children: item.title }),
|
|
7447
|
+
item.subtitle && /* @__PURE__ */ jsx98(Text, { size: "xs", color: "grey-600", children: item.subtitle }),
|
|
7448
|
+
item.description && /* @__PURE__ */ jsx98("span", { className: "text-xs italic text-neutral-800", children: item.description })
|
|
7325
7449
|
] })
|
|
7326
7450
|
] }, item.id);
|
|
7327
7451
|
}) });
|
|
@@ -7330,7 +7454,7 @@ var Timeline = ({
|
|
|
7330
7454
|
// src/ui/components/ui/ColorPicker.tsx
|
|
7331
7455
|
import { forwardRef as forwardRef33, useState as useState15 } from "react";
|
|
7332
7456
|
import { cva as cva16 } from "class-variance-authority";
|
|
7333
|
-
import { jsx as
|
|
7457
|
+
import { jsx as jsx99, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
7334
7458
|
var swatchVariants = cva16(
|
|
7335
7459
|
"inline-flex shrink-0 overflow-hidden rounded-[6px] border border-grey-300",
|
|
7336
7460
|
{
|
|
@@ -7374,7 +7498,7 @@ var ColorPicker = forwardRef33(
|
|
|
7374
7498
|
if (value === void 0) setInternalColor(next);
|
|
7375
7499
|
onChange == null ? void 0 : onChange(next);
|
|
7376
7500
|
};
|
|
7377
|
-
return /* @__PURE__ */
|
|
7501
|
+
return /* @__PURE__ */ jsxs54(
|
|
7378
7502
|
Layout,
|
|
7379
7503
|
{
|
|
7380
7504
|
column: true,
|
|
@@ -7382,21 +7506,21 @@ var ColorPicker = forwardRef33(
|
|
|
7382
7506
|
gap: 1.5,
|
|
7383
7507
|
className: cn(disabled && "opacity-60", className),
|
|
7384
7508
|
children: [
|
|
7385
|
-
label && /* @__PURE__ */
|
|
7386
|
-
/* @__PURE__ */
|
|
7387
|
-
/* @__PURE__ */
|
|
7509
|
+
label && /* @__PURE__ */ jsx99("span", { className: "text-xs font-semibold text-neutral-800", children: label }),
|
|
7510
|
+
/* @__PURE__ */ jsxs54(Layout, { gap: 2, children: [
|
|
7511
|
+
/* @__PURE__ */ jsx99(
|
|
7388
7512
|
"label",
|
|
7389
7513
|
{
|
|
7390
7514
|
className: cn(
|
|
7391
7515
|
swatchVariants({ size }),
|
|
7392
7516
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
7393
7517
|
),
|
|
7394
|
-
children: /* @__PURE__ */
|
|
7518
|
+
children: /* @__PURE__ */ jsx99(
|
|
7395
7519
|
"span",
|
|
7396
7520
|
{
|
|
7397
7521
|
className: "relative block h-full w-full",
|
|
7398
7522
|
style: { backgroundColor: currentColor },
|
|
7399
|
-
children: /* @__PURE__ */
|
|
7523
|
+
children: /* @__PURE__ */ jsx99(
|
|
7400
7524
|
"input",
|
|
7401
7525
|
{
|
|
7402
7526
|
ref,
|
|
@@ -7411,7 +7535,7 @@ var ColorPicker = forwardRef33(
|
|
|
7411
7535
|
)
|
|
7412
7536
|
}
|
|
7413
7537
|
),
|
|
7414
|
-
/* @__PURE__ */
|
|
7538
|
+
/* @__PURE__ */ jsx99(
|
|
7415
7539
|
"input",
|
|
7416
7540
|
__spreadProps(__spreadValues({
|
|
7417
7541
|
type: "text",
|
|
@@ -7451,7 +7575,7 @@ var COLOR_TOKENS = [
|
|
|
7451
7575
|
];
|
|
7452
7576
|
|
|
7453
7577
|
// src/ui/components/ui/ColorTokenPicker.tsx
|
|
7454
|
-
import { jsx as
|
|
7578
|
+
import { jsx as jsx100 } from "react/jsx-runtime";
|
|
7455
7579
|
var SWATCH_CLASS = {
|
|
7456
7580
|
"blue-700": "bg-blue-700",
|
|
7457
7581
|
"blue-900": "bg-blue-900",
|
|
@@ -7473,13 +7597,13 @@ var ColorTokenPicker = ({
|
|
|
7473
7597
|
disabled = false
|
|
7474
7598
|
}) => {
|
|
7475
7599
|
const [open, setOpen] = useState16(false);
|
|
7476
|
-
return /* @__PURE__ */
|
|
7600
|
+
return /* @__PURE__ */ jsx100(
|
|
7477
7601
|
Popover,
|
|
7478
7602
|
{
|
|
7479
7603
|
open,
|
|
7480
7604
|
onOpenChange: disabled ? void 0 : setOpen,
|
|
7481
7605
|
align: "start",
|
|
7482
|
-
trigger: /* @__PURE__ */
|
|
7606
|
+
trigger: /* @__PURE__ */ jsx100(
|
|
7483
7607
|
"button",
|
|
7484
7608
|
{
|
|
7485
7609
|
type: "button",
|
|
@@ -7490,7 +7614,7 @@ var ColorTokenPicker = ({
|
|
|
7490
7614
|
"focus-visible:ring-2 focus-visible:ring-blue-200",
|
|
7491
7615
|
disabled && "cursor-not-allowed opacity-50"
|
|
7492
7616
|
),
|
|
7493
|
-
children: /* @__PURE__ */
|
|
7617
|
+
children: /* @__PURE__ */ jsx100(
|
|
7494
7618
|
"span",
|
|
7495
7619
|
{
|
|
7496
7620
|
className: cn(
|
|
@@ -7501,7 +7625,7 @@ var ColorTokenPicker = ({
|
|
|
7501
7625
|
)
|
|
7502
7626
|
}
|
|
7503
7627
|
),
|
|
7504
|
-
children: /* @__PURE__ */
|
|
7628
|
+
children: /* @__PURE__ */ jsx100(Layout, { wrap: true, gap: 2, className: "w-[168px] p-1", children: COLOR_TOKENS.map((token) => /* @__PURE__ */ jsx100(
|
|
7505
7629
|
"button",
|
|
7506
7630
|
{
|
|
7507
7631
|
type: "button",
|
|
@@ -7525,7 +7649,7 @@ var ColorTokenPicker = ({
|
|
|
7525
7649
|
|
|
7526
7650
|
// src/ui/components/ui/FileUploadZone.tsx
|
|
7527
7651
|
import { useCallback as useCallback5, useRef as useRef13, useState as useState17 } from "react";
|
|
7528
|
-
import { Fragment as Fragment9, jsx as
|
|
7652
|
+
import { Fragment as Fragment9, jsx as jsx101, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
7529
7653
|
var ACCEPT_MAP = {
|
|
7530
7654
|
png: "image/png",
|
|
7531
7655
|
jpg: "image/jpeg",
|
|
@@ -7653,7 +7777,7 @@ var FileUploadZone = ({
|
|
|
7653
7777
|
onRemove == null ? void 0 : onRemove();
|
|
7654
7778
|
};
|
|
7655
7779
|
if (previewUrl) {
|
|
7656
|
-
return /* @__PURE__ */
|
|
7780
|
+
return /* @__PURE__ */ jsxs55(
|
|
7657
7781
|
Layout,
|
|
7658
7782
|
{
|
|
7659
7783
|
column: true,
|
|
@@ -7665,14 +7789,14 @@ var FileUploadZone = ({
|
|
|
7665
7789
|
className
|
|
7666
7790
|
),
|
|
7667
7791
|
children: [
|
|
7668
|
-
fileType && isPdf(fileType) ? /* @__PURE__ */
|
|
7792
|
+
fileType && isPdf(fileType) ? /* @__PURE__ */ jsx101(
|
|
7669
7793
|
"embed",
|
|
7670
7794
|
{
|
|
7671
7795
|
src: previewUrl,
|
|
7672
7796
|
type: "application/pdf",
|
|
7673
7797
|
className: "h-[500px] w-full rounded"
|
|
7674
7798
|
}
|
|
7675
|
-
) : /* @__PURE__ */
|
|
7799
|
+
) : /* @__PURE__ */ jsx101(
|
|
7676
7800
|
"img",
|
|
7677
7801
|
{
|
|
7678
7802
|
src: previewUrl,
|
|
@@ -7680,13 +7804,13 @@ var FileUploadZone = ({
|
|
|
7680
7804
|
className: "max-h-[400px] max-w-full rounded object-contain"
|
|
7681
7805
|
}
|
|
7682
7806
|
),
|
|
7683
|
-
/* @__PURE__ */
|
|
7807
|
+
/* @__PURE__ */ jsx101(
|
|
7684
7808
|
Button,
|
|
7685
7809
|
{
|
|
7686
7810
|
label: "Supprimer",
|
|
7687
7811
|
theme: "red-900",
|
|
7688
7812
|
size: "s",
|
|
7689
|
-
iconLeft: /* @__PURE__ */
|
|
7813
|
+
iconLeft: /* @__PURE__ */ jsx101(FaIcon, { name: "trash", size: 14 }),
|
|
7690
7814
|
onClick: handleRemove
|
|
7691
7815
|
}
|
|
7692
7816
|
)
|
|
@@ -7695,14 +7819,14 @@ var FileUploadZone = ({
|
|
|
7695
7819
|
);
|
|
7696
7820
|
}
|
|
7697
7821
|
const showBrowse = !compact && browseLabel !== false;
|
|
7698
|
-
return /* @__PURE__ */
|
|
7822
|
+
return /* @__PURE__ */ jsxs55(
|
|
7699
7823
|
Layout,
|
|
7700
7824
|
{
|
|
7701
7825
|
column: true,
|
|
7702
7826
|
gap: 1,
|
|
7703
7827
|
className: cn(fullWidth ? "w-full" : "w-fit", className),
|
|
7704
7828
|
children: [
|
|
7705
|
-
/* @__PURE__ */
|
|
7829
|
+
/* @__PURE__ */ jsxs55(
|
|
7706
7830
|
"label",
|
|
7707
7831
|
{
|
|
7708
7832
|
onDragOver: handleDragOver,
|
|
@@ -7716,7 +7840,7 @@ var FileUploadZone = ({
|
|
|
7716
7840
|
isDragging ? "border-solid border-blue-100 bg-blue-50" : cn(compact ? "border-grey-300" : "border-blue-50", "bg-grey-100")
|
|
7717
7841
|
),
|
|
7718
7842
|
children: [
|
|
7719
|
-
/* @__PURE__ */
|
|
7843
|
+
/* @__PURE__ */ jsx101(
|
|
7720
7844
|
"input",
|
|
7721
7845
|
{
|
|
7722
7846
|
ref: inputRef,
|
|
@@ -7728,11 +7852,11 @@ var FileUploadZone = ({
|
|
|
7728
7852
|
className: "hidden"
|
|
7729
7853
|
}
|
|
7730
7854
|
),
|
|
7731
|
-
showIcon && /* @__PURE__ */
|
|
7732
|
-
/* @__PURE__ */
|
|
7733
|
-
showBrowse && /* @__PURE__ */
|
|
7734
|
-
/* @__PURE__ */
|
|
7735
|
-
/* @__PURE__ */
|
|
7855
|
+
showIcon && /* @__PURE__ */ jsx101(FaIcon, { name: "cloud-arrow-up", size: 28, className: "text-blue-700" }),
|
|
7856
|
+
/* @__PURE__ */ jsx101("span", { className: "text-center text-sm text-grey-600", children: label }),
|
|
7857
|
+
showBrowse && /* @__PURE__ */ jsxs55(Fragment9, { children: [
|
|
7858
|
+
/* @__PURE__ */ jsx101("span", { className: "text-center text-xs text-grey-600", children: "ou" }),
|
|
7859
|
+
/* @__PURE__ */ jsx101(
|
|
7736
7860
|
Button,
|
|
7737
7861
|
{
|
|
7738
7862
|
label: browseLabel,
|
|
@@ -7746,15 +7870,15 @@ var FileUploadZone = ({
|
|
|
7746
7870
|
}
|
|
7747
7871
|
)
|
|
7748
7872
|
] }),
|
|
7749
|
-
sublabel && /* @__PURE__ */
|
|
7873
|
+
sublabel && /* @__PURE__ */ jsx101("span", { className: "text-center text-xs text-grey-500", children: sublabel })
|
|
7750
7874
|
]
|
|
7751
7875
|
}
|
|
7752
7876
|
),
|
|
7753
|
-
showFileName && fileName && /* @__PURE__ */
|
|
7754
|
-
/* @__PURE__ */
|
|
7755
|
-
/* @__PURE__ */
|
|
7877
|
+
showFileName && fileName && /* @__PURE__ */ jsxs55(Layout, { align: "center", justify: "center", gap: 2, children: [
|
|
7878
|
+
/* @__PURE__ */ jsx101(FaIcon, { name: "file", size: 16, className: "text-green-700" }),
|
|
7879
|
+
/* @__PURE__ */ jsx101("span", { className: "text-sm text-green-700", children: fileName })
|
|
7756
7880
|
] }),
|
|
7757
|
-
inlineError && /* @__PURE__ */
|
|
7881
|
+
inlineError && /* @__PURE__ */ jsx101("span", { className: "text-center text-sm text-red-900", children: inlineError })
|
|
7758
7882
|
]
|
|
7759
7883
|
}
|
|
7760
7884
|
);
|
|
@@ -7762,7 +7886,7 @@ var FileUploadZone = ({
|
|
|
7762
7886
|
|
|
7763
7887
|
// src/ui/components/ui/FilePicker.tsx
|
|
7764
7888
|
import { useRef as useRef14 } from "react";
|
|
7765
|
-
import { Fragment as Fragment10, jsx as
|
|
7889
|
+
import { Fragment as Fragment10, jsx as jsx102, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
7766
7890
|
var FilePicker = ({
|
|
7767
7891
|
label,
|
|
7768
7892
|
onSelect,
|
|
@@ -7777,8 +7901,8 @@ var FilePicker = ({
|
|
|
7777
7901
|
className
|
|
7778
7902
|
}) => {
|
|
7779
7903
|
const inputRef = useRef14(null);
|
|
7780
|
-
return /* @__PURE__ */
|
|
7781
|
-
/* @__PURE__ */
|
|
7904
|
+
return /* @__PURE__ */ jsxs56(Fragment10, { children: [
|
|
7905
|
+
/* @__PURE__ */ jsx102(
|
|
7782
7906
|
"input",
|
|
7783
7907
|
{
|
|
7784
7908
|
ref: inputRef,
|
|
@@ -7794,20 +7918,20 @@ var FilePicker = ({
|
|
|
7794
7918
|
}
|
|
7795
7919
|
}
|
|
7796
7920
|
),
|
|
7797
|
-
variant === "button" ? /* @__PURE__ */
|
|
7921
|
+
variant === "button" ? /* @__PURE__ */ jsx102(
|
|
7798
7922
|
Button,
|
|
7799
7923
|
{
|
|
7800
7924
|
variant: "outline",
|
|
7801
7925
|
label,
|
|
7802
7926
|
disabled,
|
|
7803
7927
|
className,
|
|
7804
|
-
iconLeft: /* @__PURE__ */
|
|
7928
|
+
iconLeft: /* @__PURE__ */ jsx102(Icon, { name: icon, family: iconFamily, size: "s", color: "inherit" }),
|
|
7805
7929
|
onClick: () => {
|
|
7806
7930
|
var _a;
|
|
7807
7931
|
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
7808
7932
|
}
|
|
7809
7933
|
}
|
|
7810
|
-
) : /* @__PURE__ */
|
|
7934
|
+
) : /* @__PURE__ */ jsx102(Tooltip, { content: label, children: /* @__PURE__ */ jsx102(
|
|
7811
7935
|
Icon,
|
|
7812
7936
|
{
|
|
7813
7937
|
name: icon,
|
|
@@ -7829,7 +7953,7 @@ var FilePicker = ({
|
|
|
7829
7953
|
// src/ui/components/ui/Item.tsx
|
|
7830
7954
|
import { forwardRef as forwardRef34 } from "react";
|
|
7831
7955
|
import { cva as cva17 } from "class-variance-authority";
|
|
7832
|
-
import { jsx as
|
|
7956
|
+
import { jsx as jsx103 } from "react/jsx-runtime";
|
|
7833
7957
|
var itemVariants = cva17(
|
|
7834
7958
|
"group/item flex items-center rounded-[6px] border border-transparent transition-colors",
|
|
7835
7959
|
{
|
|
@@ -7850,7 +7974,7 @@ var itemVariants = cva17(
|
|
|
7850
7974
|
var Item4 = forwardRef34(
|
|
7851
7975
|
(_a, ref) => {
|
|
7852
7976
|
var _b = _a, { variant, size, className } = _b, props = __objRest(_b, ["variant", "size", "className"]);
|
|
7853
|
-
return /* @__PURE__ */
|
|
7977
|
+
return /* @__PURE__ */ jsx103(
|
|
7854
7978
|
"div",
|
|
7855
7979
|
__spreadValues({
|
|
7856
7980
|
ref,
|
|
@@ -7875,7 +7999,7 @@ var itemMediaVariants = cva17(
|
|
|
7875
7999
|
);
|
|
7876
8000
|
var ItemMedia = (_a) => {
|
|
7877
8001
|
var _b = _a, { variant, className } = _b, props = __objRest(_b, ["variant", "className"]);
|
|
7878
|
-
return /* @__PURE__ */
|
|
8002
|
+
return /* @__PURE__ */ jsx103("div", __spreadValues({ className: cn(itemMediaVariants({ variant }), className) }, props));
|
|
7879
8003
|
};
|
|
7880
8004
|
var ItemContent = (_a) => {
|
|
7881
8005
|
var _b = _a, {
|
|
@@ -7883,7 +8007,7 @@ var ItemContent = (_a) => {
|
|
|
7883
8007
|
} = _b, props = __objRest(_b, [
|
|
7884
8008
|
"className"
|
|
7885
8009
|
]);
|
|
7886
|
-
return /* @__PURE__ */
|
|
8010
|
+
return /* @__PURE__ */ jsx103(
|
|
7887
8011
|
"div",
|
|
7888
8012
|
__spreadValues({
|
|
7889
8013
|
className: cn("flex min-w-0 flex-1 flex-col gap-1", className)
|
|
@@ -7896,7 +8020,7 @@ var ItemTitle = (_a) => {
|
|
|
7896
8020
|
} = _b, props = __objRest(_b, [
|
|
7897
8021
|
"className"
|
|
7898
8022
|
]);
|
|
7899
|
-
return /* @__PURE__ */
|
|
8023
|
+
return /* @__PURE__ */ jsx103(
|
|
7900
8024
|
"div",
|
|
7901
8025
|
__spreadValues({
|
|
7902
8026
|
className: cn(
|
|
@@ -7912,7 +8036,7 @@ var ItemDescription = (_a) => {
|
|
|
7912
8036
|
} = _b, props = __objRest(_b, [
|
|
7913
8037
|
"className"
|
|
7914
8038
|
]);
|
|
7915
|
-
return /* @__PURE__ */
|
|
8039
|
+
return /* @__PURE__ */ jsx103("div", __spreadValues({ className: cn("text-sm text-grey-500", className) }, props));
|
|
7916
8040
|
};
|
|
7917
8041
|
var ItemActions = (_a) => {
|
|
7918
8042
|
var _b = _a, {
|
|
@@ -7920,7 +8044,7 @@ var ItemActions = (_a) => {
|
|
|
7920
8044
|
} = _b, props = __objRest(_b, [
|
|
7921
8045
|
"className"
|
|
7922
8046
|
]);
|
|
7923
|
-
return /* @__PURE__ */
|
|
8047
|
+
return /* @__PURE__ */ jsx103(
|
|
7924
8048
|
"div",
|
|
7925
8049
|
__spreadValues({
|
|
7926
8050
|
className: cn("flex shrink-0 items-center gap-2", className)
|
|
@@ -7929,7 +8053,7 @@ var ItemActions = (_a) => {
|
|
|
7929
8053
|
};
|
|
7930
8054
|
|
|
7931
8055
|
// src/ui/components/ui/Attachment.tsx
|
|
7932
|
-
import { jsx as
|
|
8056
|
+
import { jsx as jsx104, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
7933
8057
|
var Attachment = ({
|
|
7934
8058
|
name,
|
|
7935
8059
|
size,
|
|
@@ -7943,7 +8067,7 @@ var Attachment = ({
|
|
|
7943
8067
|
}) => {
|
|
7944
8068
|
const isUploading = status === "uploading";
|
|
7945
8069
|
const isError = status === "error";
|
|
7946
|
-
return /* @__PURE__ */
|
|
8070
|
+
return /* @__PURE__ */ jsxs57(
|
|
7947
8071
|
Item4,
|
|
7948
8072
|
{
|
|
7949
8073
|
variant: "outline",
|
|
@@ -7955,12 +8079,12 @@ var Attachment = ({
|
|
|
7955
8079
|
),
|
|
7956
8080
|
style: { width },
|
|
7957
8081
|
children: [
|
|
7958
|
-
/* @__PURE__ */
|
|
8082
|
+
/* @__PURE__ */ jsx104(
|
|
7959
8083
|
ItemMedia,
|
|
7960
8084
|
{
|
|
7961
8085
|
variant: "icon",
|
|
7962
8086
|
className: cn(isError && "border-red-900 bg-red-50"),
|
|
7963
|
-
children: isUploading ? /* @__PURE__ */
|
|
8087
|
+
children: isUploading ? /* @__PURE__ */ jsx104(Spinner, { size: "s", color: "blue-700" }) : /* @__PURE__ */ jsx104(
|
|
7964
8088
|
FaIcon,
|
|
7965
8089
|
{
|
|
7966
8090
|
name: isError ? "triangle-exclamation" : "file",
|
|
@@ -7970,33 +8094,33 @@ var Attachment = ({
|
|
|
7970
8094
|
)
|
|
7971
8095
|
}
|
|
7972
8096
|
),
|
|
7973
|
-
/* @__PURE__ */
|
|
7974
|
-
/* @__PURE__ */
|
|
7975
|
-
isUploading ? /* @__PURE__ */
|
|
8097
|
+
/* @__PURE__ */ jsxs57(ItemContent, { children: [
|
|
8098
|
+
/* @__PURE__ */ jsx104(ItemTitle, { children: name }),
|
|
8099
|
+
isUploading ? /* @__PURE__ */ jsxs57(ItemDescription, { className: "text-xs", children: [
|
|
7976
8100
|
"Uploading - ",
|
|
7977
8101
|
progress,
|
|
7978
8102
|
"%"
|
|
7979
|
-
] }) : isError ? /* @__PURE__ */
|
|
8103
|
+
] }) : isError ? /* @__PURE__ */ jsx104(ItemDescription, { className: "text-xs text-red-900", children: errorMessage }) : size && /* @__PURE__ */ jsx104(ItemDescription, { className: "text-xs", children: size })
|
|
7980
8104
|
] }),
|
|
7981
|
-
(onRetry || onRemove) && /* @__PURE__ */
|
|
7982
|
-
isError && onRetry && /* @__PURE__ */
|
|
8105
|
+
(onRetry || onRemove) && /* @__PURE__ */ jsxs57(ItemActions, { children: [
|
|
8106
|
+
isError && onRetry && /* @__PURE__ */ jsx104(
|
|
7983
8107
|
"button",
|
|
7984
8108
|
{
|
|
7985
8109
|
type: "button",
|
|
7986
8110
|
onClick: onRetry,
|
|
7987
8111
|
"aria-label": `R\xE9essayer l'envoi de ${name}`,
|
|
7988
8112
|
className: "text-grey-400 hover:text-grey-600",
|
|
7989
|
-
children: /* @__PURE__ */
|
|
8113
|
+
children: /* @__PURE__ */ jsx104(FaIcon, { name: "rotate-right", size: 12 })
|
|
7990
8114
|
}
|
|
7991
8115
|
),
|
|
7992
|
-
onRemove && /* @__PURE__ */
|
|
8116
|
+
onRemove && /* @__PURE__ */ jsx104(
|
|
7993
8117
|
"button",
|
|
7994
8118
|
{
|
|
7995
8119
|
type: "button",
|
|
7996
8120
|
onClick: onRemove,
|
|
7997
8121
|
"aria-label": `Retirer ${name}`,
|
|
7998
8122
|
className: "text-grey-400 hover:text-grey-600",
|
|
7999
|
-
children: /* @__PURE__ */
|
|
8123
|
+
children: /* @__PURE__ */ jsx104(FaIcon, { name: "xmark", size: 12 })
|
|
8000
8124
|
}
|
|
8001
8125
|
)
|
|
8002
8126
|
] })
|
|
@@ -8008,7 +8132,7 @@ var Attachment = ({
|
|
|
8008
8132
|
// src/ui/components/ui/PdfPreview.tsx
|
|
8009
8133
|
import { useState as useState18 } from "react";
|
|
8010
8134
|
import { Document, Page, pdfjs } from "react-pdf";
|
|
8011
|
-
import { jsx as
|
|
8135
|
+
import { jsx as jsx105, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
8012
8136
|
pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
|
|
8013
8137
|
var PdfPreview = ({
|
|
8014
8138
|
file,
|
|
@@ -8019,9 +8143,9 @@ var PdfPreview = ({
|
|
|
8019
8143
|
const [hasError, setHasError] = useState18(false);
|
|
8020
8144
|
const [numPages, setNumPages] = useState18(0);
|
|
8021
8145
|
const height = Math.round(width * 1.3);
|
|
8022
|
-
const thumbnailSkeleton = /* @__PURE__ */
|
|
8146
|
+
const thumbnailSkeleton = /* @__PURE__ */ jsx105(Skeleton, { width, height });
|
|
8023
8147
|
if (hasError) {
|
|
8024
|
-
return /* @__PURE__ */
|
|
8148
|
+
return /* @__PURE__ */ jsxs58(
|
|
8025
8149
|
Layout,
|
|
8026
8150
|
{
|
|
8027
8151
|
column: true,
|
|
@@ -8034,13 +8158,13 @@ var PdfPreview = ({
|
|
|
8034
8158
|
),
|
|
8035
8159
|
style: { width, height },
|
|
8036
8160
|
children: [
|
|
8037
|
-
/* @__PURE__ */
|
|
8038
|
-
/* @__PURE__ */
|
|
8161
|
+
/* @__PURE__ */ jsx105(FaIcon, { name: "file-pdf", size: 24 }),
|
|
8162
|
+
/* @__PURE__ */ jsx105("span", { className: "text-xs", children: "Aper\xE7u indisponible" })
|
|
8039
8163
|
]
|
|
8040
8164
|
}
|
|
8041
8165
|
);
|
|
8042
8166
|
}
|
|
8043
|
-
return /* @__PURE__ */
|
|
8167
|
+
return /* @__PURE__ */ jsx105(
|
|
8044
8168
|
"div",
|
|
8045
8169
|
{
|
|
8046
8170
|
className: cn(
|
|
@@ -8048,7 +8172,7 @@ var PdfPreview = ({
|
|
|
8048
8172
|
className
|
|
8049
8173
|
),
|
|
8050
8174
|
style: { width, maxHeight },
|
|
8051
|
-
children: /* @__PURE__ */
|
|
8175
|
+
children: /* @__PURE__ */ jsx105(
|
|
8052
8176
|
Document,
|
|
8053
8177
|
{
|
|
8054
8178
|
file,
|
|
@@ -8056,7 +8180,7 @@ var PdfPreview = ({
|
|
|
8056
8180
|
onLoadError: () => setHasError(true),
|
|
8057
8181
|
loading: thumbnailSkeleton,
|
|
8058
8182
|
error: thumbnailSkeleton,
|
|
8059
|
-
children: /* @__PURE__ */
|
|
8183
|
+
children: /* @__PURE__ */ jsx105(Layout, { column: true, gap: 2, className: "p-2", children: Array.from({ length: numPages }, (_, i) => /* @__PURE__ */ jsx105(
|
|
8060
8184
|
Page,
|
|
8061
8185
|
{
|
|
8062
8186
|
pageNumber: i + 1,
|
|
@@ -8082,7 +8206,7 @@ import {
|
|
|
8082
8206
|
useRef as useRef15,
|
|
8083
8207
|
useState as useState19
|
|
8084
8208
|
} from "react";
|
|
8085
|
-
import { Fragment as Fragment11, jsx as
|
|
8209
|
+
import { Fragment as Fragment11, jsx as jsx106, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
8086
8210
|
var formatVideoDuration = (seconds) => {
|
|
8087
8211
|
if (seconds === void 0 || !Number.isFinite(seconds) || seconds < 0)
|
|
8088
8212
|
return "";
|
|
@@ -8181,8 +8305,8 @@ var VideoPlayer = ({
|
|
|
8181
8305
|
const stopBubbling = (e) => {
|
|
8182
8306
|
e.stopPropagation();
|
|
8183
8307
|
};
|
|
8184
|
-
return /* @__PURE__ */
|
|
8185
|
-
/* @__PURE__ */
|
|
8308
|
+
return /* @__PURE__ */ jsxs59(Fragment11, { children: [
|
|
8309
|
+
/* @__PURE__ */ jsxs59(
|
|
8186
8310
|
Layout,
|
|
8187
8311
|
{
|
|
8188
8312
|
className: cn(
|
|
@@ -8193,7 +8317,7 @@ var VideoPlayer = ({
|
|
|
8193
8317
|
onClick: stopBubbling,
|
|
8194
8318
|
"data-testid": "video-player",
|
|
8195
8319
|
children: [
|
|
8196
|
-
isInlinePlaying ? /* @__PURE__ */
|
|
8320
|
+
isInlinePlaying ? /* @__PURE__ */ jsx106(
|
|
8197
8321
|
"video",
|
|
8198
8322
|
{
|
|
8199
8323
|
ref: attachInlineVideo,
|
|
@@ -8205,7 +8329,7 @@ var VideoPlayer = ({
|
|
|
8205
8329
|
className: "h-full w-full bg-black object-contain",
|
|
8206
8330
|
"aria-label": title
|
|
8207
8331
|
}
|
|
8208
|
-
) : /* @__PURE__ */
|
|
8332
|
+
) : /* @__PURE__ */ jsxs59(
|
|
8209
8333
|
"button",
|
|
8210
8334
|
{
|
|
8211
8335
|
type: "button",
|
|
@@ -8213,7 +8337,7 @@ var VideoPlayer = ({
|
|
|
8213
8337
|
"aria-label": `Lire la vid\xE9o ${title}`,
|
|
8214
8338
|
className: "group relative flex h-full w-full items-center justify-center",
|
|
8215
8339
|
children: [
|
|
8216
|
-
visiblePoster ? /* @__PURE__ */
|
|
8340
|
+
visiblePoster ? /* @__PURE__ */ jsx106(
|
|
8217
8341
|
"img",
|
|
8218
8342
|
{
|
|
8219
8343
|
src: visiblePoster,
|
|
@@ -8224,7 +8348,7 @@ var VideoPlayer = ({
|
|
|
8224
8348
|
) : (
|
|
8225
8349
|
// Sans vignette : première image de la vidéo (métadonnées seulement,
|
|
8226
8350
|
// `#t=0.1` force l'affichage d'une frame), tuile sombre si ça échoue.
|
|
8227
|
-
!hasFramePreviewError && /* @__PURE__ */
|
|
8351
|
+
!hasFramePreviewError && /* @__PURE__ */ jsx106(
|
|
8228
8352
|
"video",
|
|
8229
8353
|
{
|
|
8230
8354
|
src: `${src}#t=0.1`,
|
|
@@ -8239,12 +8363,12 @@ var VideoPlayer = ({
|
|
|
8239
8363
|
}
|
|
8240
8364
|
)
|
|
8241
8365
|
),
|
|
8242
|
-
/* @__PURE__ */
|
|
8243
|
-
formattedDuration && /* @__PURE__ */
|
|
8366
|
+
/* @__PURE__ */ jsx106("span", { className: "relative flex h-12 w-12 items-center justify-center rounded-full bg-blue-900 text-white transition-colors group-hover:bg-blue-950", children: /* @__PURE__ */ jsx106(FaIcon, { name: "play", family: "solid", size: 18 }) }),
|
|
8367
|
+
formattedDuration && /* @__PURE__ */ jsx106("span", { className: "absolute bottom-2 left-2 rounded bg-black/60 px-1.5 py-0.5 text-xs font-medium text-white", children: formattedDuration })
|
|
8244
8368
|
]
|
|
8245
8369
|
}
|
|
8246
8370
|
),
|
|
8247
|
-
label && /* @__PURE__ */
|
|
8371
|
+
label && /* @__PURE__ */ jsx106(
|
|
8248
8372
|
Layout,
|
|
8249
8373
|
{
|
|
8250
8374
|
width: "auto",
|
|
@@ -8252,14 +8376,14 @@ var VideoPlayer = ({
|
|
|
8252
8376
|
children: label
|
|
8253
8377
|
}
|
|
8254
8378
|
),
|
|
8255
|
-
/* @__PURE__ */
|
|
8379
|
+
/* @__PURE__ */ jsxs59(
|
|
8256
8380
|
Layout,
|
|
8257
8381
|
{
|
|
8258
8382
|
width: "auto",
|
|
8259
8383
|
gap: 1,
|
|
8260
8384
|
className: "absolute right-1 top-1 rounded-full bg-white/90",
|
|
8261
8385
|
children: [
|
|
8262
|
-
/* @__PURE__ */
|
|
8386
|
+
/* @__PURE__ */ jsx106(Tooltip, { content: "Agrandir la vid\xE9o", children: /* @__PURE__ */ jsx106(
|
|
8263
8387
|
Icon,
|
|
8264
8388
|
{
|
|
8265
8389
|
name: "up-right-and-down-left-from-center",
|
|
@@ -8268,7 +8392,7 @@ var VideoPlayer = ({
|
|
|
8268
8392
|
"aria-label": "Agrandir la vid\xE9o"
|
|
8269
8393
|
}
|
|
8270
8394
|
) }),
|
|
8271
|
-
/* @__PURE__ */
|
|
8395
|
+
/* @__PURE__ */ jsx106(Tooltip, { content: "T\xE9l\xE9charger la vid\xE9o", children: /* @__PURE__ */ jsx106(
|
|
8272
8396
|
Icon,
|
|
8273
8397
|
{
|
|
8274
8398
|
name: "download",
|
|
@@ -8280,7 +8404,7 @@ var VideoPlayer = ({
|
|
|
8280
8404
|
]
|
|
8281
8405
|
}
|
|
8282
8406
|
),
|
|
8283
|
-
meta && !isInlinePlaying && /* @__PURE__ */
|
|
8407
|
+
meta && !isInlinePlaying && /* @__PURE__ */ jsx106(
|
|
8284
8408
|
Layout,
|
|
8285
8409
|
{
|
|
8286
8410
|
width: "auto",
|
|
@@ -8291,7 +8415,7 @@ var VideoPlayer = ({
|
|
|
8291
8415
|
]
|
|
8292
8416
|
}
|
|
8293
8417
|
),
|
|
8294
|
-
/* @__PURE__ */
|
|
8418
|
+
/* @__PURE__ */ jsxs59(
|
|
8295
8419
|
Modal,
|
|
8296
8420
|
{
|
|
8297
8421
|
open: isExpanded,
|
|
@@ -8299,9 +8423,9 @@ var VideoPlayer = ({
|
|
|
8299
8423
|
onOpenAutoFocus: focusExpandedVideo,
|
|
8300
8424
|
width: "70vw",
|
|
8301
8425
|
children: [
|
|
8302
|
-
/* @__PURE__ */
|
|
8303
|
-
/* @__PURE__ */
|
|
8304
|
-
/* @__PURE__ */
|
|
8426
|
+
/* @__PURE__ */ jsx106(ModalHeader, { className: "items-start text-left", children: /* @__PURE__ */ jsxs59(Layout, { align: "center", justify: "between", fullWidth: true, gap: 2, children: [
|
|
8427
|
+
/* @__PURE__ */ jsxs59(Layout, { align: "center", gap: 2, className: "min-w-0", children: [
|
|
8428
|
+
/* @__PURE__ */ jsx106(
|
|
8305
8429
|
IconBadge,
|
|
8306
8430
|
{
|
|
8307
8431
|
name: "video",
|
|
@@ -8310,10 +8434,10 @@ var VideoPlayer = ({
|
|
|
8310
8434
|
iconColor: "blue_900"
|
|
8311
8435
|
}
|
|
8312
8436
|
),
|
|
8313
|
-
/* @__PURE__ */
|
|
8437
|
+
/* @__PURE__ */ jsx106(ModalTitle, { className: "truncate", children: title })
|
|
8314
8438
|
] }),
|
|
8315
|
-
/* @__PURE__ */
|
|
8316
|
-
/* @__PURE__ */
|
|
8439
|
+
/* @__PURE__ */ jsxs59(Layout, { width: "auto", align: "center", gap: 1, children: [
|
|
8440
|
+
/* @__PURE__ */ jsx106(Tooltip, { content: "T\xE9l\xE9charger la vid\xE9o", children: /* @__PURE__ */ jsx106(
|
|
8317
8441
|
Icon,
|
|
8318
8442
|
{
|
|
8319
8443
|
name: "download",
|
|
@@ -8322,7 +8446,7 @@ var VideoPlayer = ({
|
|
|
8322
8446
|
"aria-label": "T\xE9l\xE9charger la vid\xE9o"
|
|
8323
8447
|
}
|
|
8324
8448
|
) }),
|
|
8325
|
-
/* @__PURE__ */
|
|
8449
|
+
/* @__PURE__ */ jsx106(ModalClose, { asChild: true, children: /* @__PURE__ */ jsx106(
|
|
8326
8450
|
Icon,
|
|
8327
8451
|
{
|
|
8328
8452
|
name: "xmark",
|
|
@@ -8334,7 +8458,7 @@ var VideoPlayer = ({
|
|
|
8334
8458
|
) })
|
|
8335
8459
|
] })
|
|
8336
8460
|
] }) }),
|
|
8337
|
-
/* @__PURE__ */
|
|
8461
|
+
/* @__PURE__ */ jsx106(ModalBody, { children: /* @__PURE__ */ jsx106(
|
|
8338
8462
|
"video",
|
|
8339
8463
|
{
|
|
8340
8464
|
ref: attachExpandedVideo,
|
|
@@ -8355,7 +8479,7 @@ var VideoPlayer = ({
|
|
|
8355
8479
|
};
|
|
8356
8480
|
|
|
8357
8481
|
// src/ui/components/ui/AudioPlayer.tsx
|
|
8358
|
-
import { jsx as
|
|
8482
|
+
import { jsx as jsx107, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
8359
8483
|
var DEFAULT_VOLUME2 = 0.5;
|
|
8360
8484
|
var clampVolume2 = (volume) => Number.isFinite(volume) ? Math.min(1, Math.max(0, volume)) : DEFAULT_VOLUME2;
|
|
8361
8485
|
var AudioPlayer = ({
|
|
@@ -8398,7 +8522,7 @@ var AudioPlayer = ({
|
|
|
8398
8522
|
const value = (_b = (_a = audioRef.current) == null ? void 0 : _a.duration) != null ? _b : 0;
|
|
8399
8523
|
setDuration(Number.isFinite(value) ? value : 0);
|
|
8400
8524
|
};
|
|
8401
|
-
return /* @__PURE__ */
|
|
8525
|
+
return /* @__PURE__ */ jsxs60(
|
|
8402
8526
|
Layout,
|
|
8403
8527
|
{
|
|
8404
8528
|
gap: 3,
|
|
@@ -8407,7 +8531,7 @@ var AudioPlayer = ({
|
|
|
8407
8531
|
className: cn("rounded-lg border border-grey-300 p-2", className),
|
|
8408
8532
|
"data-testid": "audio-player",
|
|
8409
8533
|
children: [
|
|
8410
|
-
/* @__PURE__ */
|
|
8534
|
+
/* @__PURE__ */ jsx107(
|
|
8411
8535
|
"audio",
|
|
8412
8536
|
{
|
|
8413
8537
|
ref: attachAudio,
|
|
@@ -8425,19 +8549,19 @@ var AudioPlayer = ({
|
|
|
8425
8549
|
"aria-label": title
|
|
8426
8550
|
}
|
|
8427
8551
|
),
|
|
8428
|
-
/* @__PURE__ */
|
|
8552
|
+
/* @__PURE__ */ jsx107(
|
|
8429
8553
|
Button,
|
|
8430
8554
|
{
|
|
8431
8555
|
variant: "outline",
|
|
8432
8556
|
size: "s",
|
|
8433
8557
|
iconOnly: true,
|
|
8434
8558
|
"aria-label": isPlaying ? `Mettre en pause ${title}` : `Lire ${title}`,
|
|
8435
|
-
iconLeft: /* @__PURE__ */
|
|
8559
|
+
iconLeft: /* @__PURE__ */ jsx107(Icon, { name: isPlaying ? "pause" : "play", size: "s", color: "inherit" }),
|
|
8436
8560
|
onClick: togglePlayback
|
|
8437
8561
|
}
|
|
8438
8562
|
),
|
|
8439
|
-
/* @__PURE__ */
|
|
8440
|
-
/* @__PURE__ */
|
|
8563
|
+
/* @__PURE__ */ jsx107(Text, { size: "xs", color: "grey-600", className: "tabular-nums", children: formatVideoDuration(currentTime) }),
|
|
8564
|
+
/* @__PURE__ */ jsx107(
|
|
8441
8565
|
"input",
|
|
8442
8566
|
{
|
|
8443
8567
|
type: "range",
|
|
@@ -8451,7 +8575,7 @@ var AudioPlayer = ({
|
|
|
8451
8575
|
className: "h-1 min-w-0 flex-1 cursor-pointer accent-blue-700 disabled:cursor-default"
|
|
8452
8576
|
}
|
|
8453
8577
|
),
|
|
8454
|
-
/* @__PURE__ */
|
|
8578
|
+
/* @__PURE__ */ jsx107(Text, { size: "xs", color: "grey-600", className: "tabular-nums", children: formatVideoDuration(duration) })
|
|
8455
8579
|
]
|
|
8456
8580
|
}
|
|
8457
8581
|
);
|
|
@@ -8459,7 +8583,7 @@ var AudioPlayer = ({
|
|
|
8459
8583
|
|
|
8460
8584
|
// src/ui/components/ui/ScrollArea.tsx
|
|
8461
8585
|
import * as RadixScrollArea from "@radix-ui/react-scroll-area";
|
|
8462
|
-
import { jsx as
|
|
8586
|
+
import { jsx as jsx108, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
8463
8587
|
var HIDDEN_SCROLLBAR_CLASSNAME = "w-0 h-0 opacity-0";
|
|
8464
8588
|
var ScrollArea = (_a) => {
|
|
8465
8589
|
var _b = _a, {
|
|
@@ -8475,13 +8599,13 @@ var ScrollArea = (_a) => {
|
|
|
8475
8599
|
"viewportRef",
|
|
8476
8600
|
"maxHeight"
|
|
8477
8601
|
]);
|
|
8478
|
-
return /* @__PURE__ */
|
|
8602
|
+
return /* @__PURE__ */ jsxs61(
|
|
8479
8603
|
RadixScrollArea.Root,
|
|
8480
8604
|
__spreadProps(__spreadValues({
|
|
8481
8605
|
className: cn("relative overflow-hidden", className)
|
|
8482
8606
|
}, props), {
|
|
8483
8607
|
children: [
|
|
8484
|
-
/* @__PURE__ */
|
|
8608
|
+
/* @__PURE__ */ jsx108(
|
|
8485
8609
|
RadixScrollArea.Viewport,
|
|
8486
8610
|
{
|
|
8487
8611
|
ref: viewportRef,
|
|
@@ -8494,23 +8618,23 @@ var ScrollArea = (_a) => {
|
|
|
8494
8618
|
children
|
|
8495
8619
|
}
|
|
8496
8620
|
),
|
|
8497
|
-
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */
|
|
8621
|
+
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */ jsx108(
|
|
8498
8622
|
RadixScrollArea.Scrollbar,
|
|
8499
8623
|
{
|
|
8500
8624
|
orientation: "vertical",
|
|
8501
8625
|
className: HIDDEN_SCROLLBAR_CLASSNAME,
|
|
8502
|
-
children: /* @__PURE__ */
|
|
8626
|
+
children: /* @__PURE__ */ jsx108(RadixScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-grey-400" })
|
|
8503
8627
|
}
|
|
8504
8628
|
),
|
|
8505
|
-
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */
|
|
8629
|
+
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ jsx108(
|
|
8506
8630
|
RadixScrollArea.Scrollbar,
|
|
8507
8631
|
{
|
|
8508
8632
|
orientation: "horizontal",
|
|
8509
8633
|
className: HIDDEN_SCROLLBAR_CLASSNAME,
|
|
8510
|
-
children: /* @__PURE__ */
|
|
8634
|
+
children: /* @__PURE__ */ jsx108(RadixScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-grey-400" })
|
|
8511
8635
|
}
|
|
8512
8636
|
),
|
|
8513
|
-
/* @__PURE__ */
|
|
8637
|
+
/* @__PURE__ */ jsx108(RadixScrollArea.Corner, {})
|
|
8514
8638
|
]
|
|
8515
8639
|
})
|
|
8516
8640
|
);
|
|
@@ -8518,7 +8642,7 @@ var ScrollArea = (_a) => {
|
|
|
8518
8642
|
|
|
8519
8643
|
// src/ui/components/ui/Message.tsx
|
|
8520
8644
|
import { forwardRef as forwardRef35 } from "react";
|
|
8521
|
-
import { jsx as
|
|
8645
|
+
import { jsx as jsx109, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
8522
8646
|
var BUBBLE_BACKGROUND = {
|
|
8523
8647
|
own: { solid: "bg-blue-700", pale: "bg-blue-50" },
|
|
8524
8648
|
teammate: { solid: "bg-blue-100", pale: "bg-blue-100" },
|
|
@@ -8577,7 +8701,7 @@ var Message = forwardRef35(
|
|
|
8577
8701
|
const isInverted = isOwn && variant === "solid";
|
|
8578
8702
|
const contentColor = isInverted ? "white" : "neutral-800";
|
|
8579
8703
|
const metaColor = isInverted ? "white" : "grey-500";
|
|
8580
|
-
const avatar = showAuthor ? /* @__PURE__ */
|
|
8704
|
+
const avatar = showAuthor ? /* @__PURE__ */ jsx109(Avatar, { name: authorName, src: authorSrc, size: avatarSize }) : /* @__PURE__ */ jsx109(
|
|
8581
8705
|
Layout,
|
|
8582
8706
|
{
|
|
8583
8707
|
width: `${avatarSize}px`,
|
|
@@ -8585,8 +8709,8 @@ var Message = forwardRef35(
|
|
|
8585
8709
|
"aria-hidden": "true"
|
|
8586
8710
|
}
|
|
8587
8711
|
);
|
|
8588
|
-
const actionsSlot = actions && !actionsOnHover ? /* @__PURE__ */
|
|
8589
|
-
const cornerActions = actions && actionsOnHover ? /* @__PURE__ */
|
|
8712
|
+
const actionsSlot = actions && !actionsOnHover ? /* @__PURE__ */ jsx109(Layout, { width: "auto", align: "center", className: "shrink-0", children: actions }) : null;
|
|
8713
|
+
const cornerActions = actions && actionsOnHover ? /* @__PURE__ */ jsx109(
|
|
8590
8714
|
Layout,
|
|
8591
8715
|
{
|
|
8592
8716
|
width: "auto",
|
|
@@ -8599,7 +8723,7 @@ var Message = forwardRef35(
|
|
|
8599
8723
|
children: actions
|
|
8600
8724
|
}
|
|
8601
8725
|
) : null;
|
|
8602
|
-
return /* @__PURE__ */
|
|
8726
|
+
return /* @__PURE__ */ jsxs62(
|
|
8603
8727
|
Layout,
|
|
8604
8728
|
__spreadProps(__spreadValues({
|
|
8605
8729
|
ref,
|
|
@@ -8610,7 +8734,7 @@ var Message = forwardRef35(
|
|
|
8610
8734
|
className
|
|
8611
8735
|
}, props), {
|
|
8612
8736
|
children: [
|
|
8613
|
-
/* @__PURE__ */
|
|
8737
|
+
/* @__PURE__ */ jsxs62(
|
|
8614
8738
|
Layout,
|
|
8615
8739
|
{
|
|
8616
8740
|
fullWidth: true,
|
|
@@ -8621,7 +8745,7 @@ var Message = forwardRef35(
|
|
|
8621
8745
|
children: [
|
|
8622
8746
|
!isRightAligned && avatar,
|
|
8623
8747
|
isRightAligned && actionsSlot,
|
|
8624
|
-
/* @__PURE__ */
|
|
8748
|
+
/* @__PURE__ */ jsxs62(
|
|
8625
8749
|
Layout,
|
|
8626
8750
|
{
|
|
8627
8751
|
column: true,
|
|
@@ -8630,7 +8754,7 @@ var Message = forwardRef35(
|
|
|
8630
8754
|
align: isRightAligned ? "end" : "start",
|
|
8631
8755
|
style: { maxWidth },
|
|
8632
8756
|
children: [
|
|
8633
|
-
bubble ? /* @__PURE__ */
|
|
8757
|
+
bubble ? /* @__PURE__ */ jsxs62(
|
|
8634
8758
|
Layout,
|
|
8635
8759
|
{
|
|
8636
8760
|
column: true,
|
|
@@ -8644,16 +8768,16 @@ var Message = forwardRef35(
|
|
|
8644
8768
|
cornerActions && "pr-8"
|
|
8645
8769
|
),
|
|
8646
8770
|
children: [
|
|
8647
|
-
deleted ? /* @__PURE__ */
|
|
8648
|
-
time && /* @__PURE__ */
|
|
8771
|
+
deleted ? /* @__PURE__ */ jsx109(Text, { size: "s", italic: true, color: metaColor, children: deletedLabel }) : /* @__PURE__ */ jsx109(Text, { size: "s", color: contentColor, children }),
|
|
8772
|
+
time && /* @__PURE__ */ jsx109(Layout, { fullWidth: true, justify: "end", children: /* @__PURE__ */ jsx109(Text, { size: "xxs", color: metaColor, children: time }) }),
|
|
8649
8773
|
cornerActions
|
|
8650
8774
|
]
|
|
8651
8775
|
}
|
|
8652
|
-
) : cornerActions ? /* @__PURE__ */
|
|
8776
|
+
) : cornerActions ? /* @__PURE__ */ jsxs62(Layout, { width: "auto", className: "relative", children: [
|
|
8653
8777
|
children,
|
|
8654
8778
|
cornerActions
|
|
8655
8779
|
] }) : children,
|
|
8656
|
-
status && /* @__PURE__ */
|
|
8780
|
+
status && /* @__PURE__ */ jsx109(Layout, { fullWidth: true, justify: isRightAligned ? "end" : "start", children: status })
|
|
8657
8781
|
]
|
|
8658
8782
|
}
|
|
8659
8783
|
),
|
|
@@ -8662,7 +8786,7 @@ var Message = forwardRef35(
|
|
|
8662
8786
|
]
|
|
8663
8787
|
}
|
|
8664
8788
|
),
|
|
8665
|
-
showAuthor && showAuthorName && authorName && /* @__PURE__ */
|
|
8789
|
+
showAuthor && showAuthorName && authorName && /* @__PURE__ */ jsx109(Text, { size: "xs", color: "grey-600", children: authorName })
|
|
8666
8790
|
]
|
|
8667
8791
|
})
|
|
8668
8792
|
);
|
|
@@ -8672,7 +8796,7 @@ Message.displayName = "Message";
|
|
|
8672
8796
|
|
|
8673
8797
|
// src/ui/components/ui/MessageScroller.tsx
|
|
8674
8798
|
import { useLayoutEffect as useLayoutEffect2, useRef as useRef17 } from "react";
|
|
8675
|
-
import { jsx as
|
|
8799
|
+
import { jsx as jsx110, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
8676
8800
|
var SEPARATOR_LINE = {
|
|
8677
8801
|
neutral: "",
|
|
8678
8802
|
alert: "bg-red-500"
|
|
@@ -8685,9 +8809,9 @@ var MessageDateSeparator = ({
|
|
|
8685
8809
|
label,
|
|
8686
8810
|
tone = "neutral",
|
|
8687
8811
|
className
|
|
8688
|
-
}) => /* @__PURE__ */
|
|
8689
|
-
/* @__PURE__ */
|
|
8690
|
-
/* @__PURE__ */
|
|
8812
|
+
}) => /* @__PURE__ */ jsxs63(Layout, { fullWidth: true, gap: 2, align: "center", className, children: [
|
|
8813
|
+
/* @__PURE__ */ jsx110(Layout, { flex: 1, children: /* @__PURE__ */ jsx110(Divider, { className: SEPARATOR_LINE[tone] }) }),
|
|
8814
|
+
/* @__PURE__ */ jsx110(Layout, { width: "auto", className: "shrink-0", children: /* @__PURE__ */ jsx110(
|
|
8691
8815
|
Text,
|
|
8692
8816
|
{
|
|
8693
8817
|
size: "xs",
|
|
@@ -8696,7 +8820,7 @@ var MessageDateSeparator = ({
|
|
|
8696
8820
|
children: label
|
|
8697
8821
|
}
|
|
8698
8822
|
) }),
|
|
8699
|
-
/* @__PURE__ */
|
|
8823
|
+
/* @__PURE__ */ jsx110(Layout, { flex: 1, children: /* @__PURE__ */ jsx110(Divider, { className: SEPARATOR_LINE[tone] }) })
|
|
8700
8824
|
] });
|
|
8701
8825
|
var MessageScroller = ({
|
|
8702
8826
|
children,
|
|
@@ -8736,13 +8860,13 @@ var MessageScroller = ({
|
|
|
8736
8860
|
if (isEmpty && emptyState) return emptyState;
|
|
8737
8861
|
return children;
|
|
8738
8862
|
};
|
|
8739
|
-
const scroller = /* @__PURE__ */
|
|
8863
|
+
const scroller = /* @__PURE__ */ jsx110(
|
|
8740
8864
|
ScrollArea,
|
|
8741
8865
|
{
|
|
8742
8866
|
viewportRef: scrollerRef,
|
|
8743
8867
|
className: cn("w-full", floatingFooter ? "min-h-0 flex-1" : className),
|
|
8744
8868
|
style: typeof height === "number" ? { height: `${height}px` } : { height },
|
|
8745
|
-
children: /* @__PURE__ */
|
|
8869
|
+
children: /* @__PURE__ */ jsxs63(
|
|
8746
8870
|
Layout,
|
|
8747
8871
|
{
|
|
8748
8872
|
column: true,
|
|
@@ -8765,9 +8889,9 @@ var MessageScroller = ({
|
|
|
8765
8889
|
}
|
|
8766
8890
|
);
|
|
8767
8891
|
if (!floatingFooter) return scroller;
|
|
8768
|
-
return /* @__PURE__ */
|
|
8892
|
+
return /* @__PURE__ */ jsxs63(Layout, { column: true, fullWidth: true, className: cn("relative min-h-0", className), children: [
|
|
8769
8893
|
scroller,
|
|
8770
|
-
/* @__PURE__ */
|
|
8894
|
+
/* @__PURE__ */ jsx110(
|
|
8771
8895
|
Layout,
|
|
8772
8896
|
{
|
|
8773
8897
|
width: "auto",
|
|
@@ -8780,13 +8904,13 @@ var MessageScroller = ({
|
|
|
8780
8904
|
|
|
8781
8905
|
// src/ui/components/ui/Stepper.tsx
|
|
8782
8906
|
import { Fragment as Fragment12 } from "react";
|
|
8783
|
-
import { jsx as
|
|
8907
|
+
import { jsx as jsx111, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
8784
8908
|
var Stepper = ({
|
|
8785
8909
|
numberOfSteps,
|
|
8786
8910
|
current = 0,
|
|
8787
8911
|
size = 28,
|
|
8788
8912
|
className
|
|
8789
|
-
}) => /* @__PURE__ */
|
|
8913
|
+
}) => /* @__PURE__ */ jsx111(
|
|
8790
8914
|
"nav",
|
|
8791
8915
|
{
|
|
8792
8916
|
"aria-label": "progression",
|
|
@@ -8797,8 +8921,8 @@ var Stepper = ({
|
|
|
8797
8921
|
children: Array.from({ length: numberOfSteps }, (_, i) => {
|
|
8798
8922
|
const isActive = i === current;
|
|
8799
8923
|
const isCompleted = i < current;
|
|
8800
|
-
return /* @__PURE__ */
|
|
8801
|
-
/* @__PURE__ */
|
|
8924
|
+
return /* @__PURE__ */ jsxs64(Fragment12, { children: [
|
|
8925
|
+
/* @__PURE__ */ jsx111(
|
|
8802
8926
|
"div",
|
|
8803
8927
|
{
|
|
8804
8928
|
"aria-hidden": true,
|
|
@@ -8807,10 +8931,10 @@ var Stepper = ({
|
|
|
8807
8931
|
isCompleted ? "border-blue-800 bg-blue-800 text-white" : isActive ? "border-blue-800 bg-white text-blue-800" : "border-grey-500 bg-white text-grey-500"
|
|
8808
8932
|
),
|
|
8809
8933
|
style: { width: size, height: size },
|
|
8810
|
-
children: isCompleted ? /* @__PURE__ */
|
|
8934
|
+
children: isCompleted ? /* @__PURE__ */ jsx111(FaIcon, { name: "check", family: "solid", size: 12 }) : i + 1
|
|
8811
8935
|
}
|
|
8812
8936
|
),
|
|
8813
|
-
i < numberOfSteps - 1 && /* @__PURE__ */
|
|
8937
|
+
i < numberOfSteps - 1 && /* @__PURE__ */ jsx111("div", { className: "h-px min-w-[8px] flex-1 bg-grey-300" })
|
|
8814
8938
|
] }, i);
|
|
8815
8939
|
})
|
|
8816
8940
|
}
|
|
@@ -8836,7 +8960,7 @@ import {
|
|
|
8836
8960
|
} from "date-fns";
|
|
8837
8961
|
import { fr as dateFnsFr } from "date-fns/locale";
|
|
8838
8962
|
import * as RadixPopover6 from "@radix-ui/react-popover";
|
|
8839
|
-
import { jsx as
|
|
8963
|
+
import { jsx as jsx112, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
8840
8964
|
var formatMonthCaption = (month) => format(month, "MMM yyyy", { locale: dateFnsFr });
|
|
8841
8965
|
var isSameCalendarDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
8842
8966
|
var parseTypedDate = (text, minDate, maxDate) => {
|
|
@@ -8866,7 +8990,7 @@ var autoFormatTypedInput = (raw, isRange) => {
|
|
|
8866
8990
|
var RANGE_PRESETS = [
|
|
8867
8991
|
{
|
|
8868
8992
|
label: "Mois pr\xE9c\xE9dent",
|
|
8869
|
-
icon: /* @__PURE__ */
|
|
8993
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-arrow-up", size: 15 }),
|
|
8870
8994
|
getValue: () => [
|
|
8871
8995
|
startOfMonth(subMonths(/* @__PURE__ */ new Date(), 1)),
|
|
8872
8996
|
endOfMonth(subMonths(/* @__PURE__ */ new Date(), 1))
|
|
@@ -8874,34 +8998,34 @@ var RANGE_PRESETS = [
|
|
|
8874
8998
|
},
|
|
8875
8999
|
{
|
|
8876
9000
|
label: "Ce mois",
|
|
8877
|
-
icon: /* @__PURE__ */
|
|
9001
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-days", size: 15 }),
|
|
8878
9002
|
getValue: () => [startOfMonth(/* @__PURE__ */ new Date()), endOfMonth(/* @__PURE__ */ new Date())]
|
|
8879
9003
|
},
|
|
8880
9004
|
{
|
|
8881
9005
|
label: "Ce trimestre",
|
|
8882
|
-
icon: /* @__PURE__ */
|
|
9006
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-range", size: 15 }),
|
|
8883
9007
|
getValue: () => [startOfQuarter(/* @__PURE__ */ new Date()), endOfQuarter(/* @__PURE__ */ new Date())]
|
|
8884
9008
|
},
|
|
8885
9009
|
{
|
|
8886
9010
|
label: "Cette ann\xE9e",
|
|
8887
|
-
icon: /* @__PURE__ */
|
|
9011
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-clock", size: 15 }),
|
|
8888
9012
|
getValue: () => [startOfYear(/* @__PURE__ */ new Date()), endOfYear(/* @__PURE__ */ new Date())]
|
|
8889
9013
|
}
|
|
8890
9014
|
];
|
|
8891
9015
|
var SINGLE_PRESETS = [
|
|
8892
9016
|
{
|
|
8893
9017
|
label: "Aujourd'hui",
|
|
8894
|
-
icon: /* @__PURE__ */
|
|
9018
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-days", size: 15 }),
|
|
8895
9019
|
getValue: () => /* @__PURE__ */ new Date()
|
|
8896
9020
|
},
|
|
8897
9021
|
{
|
|
8898
9022
|
label: "Demain",
|
|
8899
|
-
icon: /* @__PURE__ */
|
|
9023
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-plus", size: 15 }),
|
|
8900
9024
|
getValue: () => addDays(/* @__PURE__ */ new Date(), 1)
|
|
8901
9025
|
},
|
|
8902
9026
|
{
|
|
8903
9027
|
label: "Dans 7 jours",
|
|
8904
|
-
icon: /* @__PURE__ */
|
|
9028
|
+
icon: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar-clock", size: 15 }),
|
|
8905
9029
|
getValue: () => addDays(/* @__PURE__ */ new Date(), 7)
|
|
8906
9030
|
}
|
|
8907
9031
|
];
|
|
@@ -8989,7 +9113,7 @@ var DatePicker = ({
|
|
|
8989
9113
|
setIsEditing(false);
|
|
8990
9114
|
}
|
|
8991
9115
|
};
|
|
8992
|
-
const calendar = /* @__PURE__ */
|
|
9116
|
+
const calendar = /* @__PURE__ */ jsx112(RadixPopover6.Portal, { children: /* @__PURE__ */ jsx112(
|
|
8993
9117
|
RadixPopover6.Content,
|
|
8994
9118
|
{
|
|
8995
9119
|
align,
|
|
@@ -9001,7 +9125,7 @@ var DatePicker = ({
|
|
|
9001
9125
|
// mois (range) passait à la ligne et se faisait couper par max-h.
|
|
9002
9126
|
isRange && "max-h-[320px] max-w-[460px] overflow-y-auto [&_.rdp-months]:flex-nowrap"
|
|
9003
9127
|
),
|
|
9004
|
-
children: isRange ? /* @__PURE__ */
|
|
9128
|
+
children: isRange ? /* @__PURE__ */ jsx112(
|
|
9005
9129
|
DayPicker,
|
|
9006
9130
|
{
|
|
9007
9131
|
mode: "range",
|
|
@@ -9019,7 +9143,7 @@ var DatePicker = ({
|
|
|
9019
9143
|
showOutsideDays: true,
|
|
9020
9144
|
formatters: { formatCaption: formatMonthCaption }
|
|
9021
9145
|
}
|
|
9022
|
-
) : /* @__PURE__ */
|
|
9146
|
+
) : /* @__PURE__ */ jsx112(
|
|
9023
9147
|
DayPicker,
|
|
9024
9148
|
{
|
|
9025
9149
|
mode: "single",
|
|
@@ -9037,8 +9161,8 @@ var DatePicker = ({
|
|
|
9037
9161
|
}
|
|
9038
9162
|
) });
|
|
9039
9163
|
if (!showPresets) {
|
|
9040
|
-
return /* @__PURE__ */
|
|
9041
|
-
/* @__PURE__ */
|
|
9164
|
+
return /* @__PURE__ */ jsxs65(RadixPopover6.Root, { open, onOpenChange: setOpen, children: [
|
|
9165
|
+
/* @__PURE__ */ jsx112(RadixPopover6.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs65(
|
|
9042
9166
|
Layout,
|
|
9043
9167
|
{
|
|
9044
9168
|
align: "center",
|
|
@@ -9052,7 +9176,7 @@ var DatePicker = ({
|
|
|
9052
9176
|
className
|
|
9053
9177
|
),
|
|
9054
9178
|
children: [
|
|
9055
|
-
/* @__PURE__ */
|
|
9179
|
+
/* @__PURE__ */ jsx112(
|
|
9056
9180
|
"input",
|
|
9057
9181
|
{
|
|
9058
9182
|
type: "text",
|
|
@@ -9073,14 +9197,14 @@ var DatePicker = ({
|
|
|
9073
9197
|
)
|
|
9074
9198
|
}
|
|
9075
9199
|
),
|
|
9076
|
-
/* @__PURE__ */
|
|
9200
|
+
/* @__PURE__ */ jsx112(RadixPopover6.Trigger, { asChild: true, children: /* @__PURE__ */ jsx112(
|
|
9077
9201
|
"button",
|
|
9078
9202
|
{
|
|
9079
9203
|
type: "button",
|
|
9080
9204
|
"aria-label": "Ouvrir le calendrier",
|
|
9081
9205
|
disabled,
|
|
9082
9206
|
className: "flex h-full w-8 shrink-0 items-center justify-center text-grey-500 hover:text-blue-700 disabled:cursor-not-allowed",
|
|
9083
|
-
children: /* @__PURE__ */
|
|
9207
|
+
children: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar", size: 14 })
|
|
9084
9208
|
}
|
|
9085
9209
|
) })
|
|
9086
9210
|
]
|
|
@@ -9089,10 +9213,10 @@ var DatePicker = ({
|
|
|
9089
9213
|
calendar
|
|
9090
9214
|
] });
|
|
9091
9215
|
}
|
|
9092
|
-
return /* @__PURE__ */
|
|
9093
|
-
/* @__PURE__ */
|
|
9094
|
-
/* @__PURE__ */
|
|
9095
|
-
/* @__PURE__ */
|
|
9216
|
+
return /* @__PURE__ */ jsxs65(RadixPopover6.Root, { open, onOpenChange: setOpen, children: [
|
|
9217
|
+
/* @__PURE__ */ jsxs65(Layout, { column: true, gap: 1.5, align, className, children: [
|
|
9218
|
+
/* @__PURE__ */ jsxs65(Layout, { align: "center", gap: 1.5, width: "auto", children: [
|
|
9219
|
+
/* @__PURE__ */ jsx112(RadixPopover6.Trigger, { asChild: true, children: /* @__PURE__ */ jsx112(
|
|
9096
9220
|
"button",
|
|
9097
9221
|
{
|
|
9098
9222
|
type: "button",
|
|
@@ -9104,12 +9228,12 @@ var DatePicker = ({
|
|
|
9104
9228
|
hasValue && !activePreset ? "border-blue-700 bg-blue-50 text-blue-700" : "border-grey-300 bg-white text-neutral-800 hover:border-blue-700",
|
|
9105
9229
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
9106
9230
|
),
|
|
9107
|
-
children: /* @__PURE__ */
|
|
9231
|
+
children: /* @__PURE__ */ jsx112(FaIcon, { name: "calendar", size: 16 })
|
|
9108
9232
|
}
|
|
9109
9233
|
) }),
|
|
9110
9234
|
resolvedPresets.map((preset) => {
|
|
9111
9235
|
const active = activePreset === preset.label;
|
|
9112
|
-
return /* @__PURE__ */
|
|
9236
|
+
return /* @__PURE__ */ jsx112(Tooltip, { content: preset.label, children: /* @__PURE__ */ jsx112(
|
|
9113
9237
|
"button",
|
|
9114
9238
|
{
|
|
9115
9239
|
type: "button",
|
|
@@ -9127,7 +9251,7 @@ var DatePicker = ({
|
|
|
9127
9251
|
) }, preset.label);
|
|
9128
9252
|
})
|
|
9129
9253
|
] }),
|
|
9130
|
-
hasValue && /* @__PURE__ */
|
|
9254
|
+
hasValue && /* @__PURE__ */ jsx112(
|
|
9131
9255
|
"button",
|
|
9132
9256
|
{
|
|
9133
9257
|
type: "button",
|
|
@@ -9598,7 +9722,7 @@ var optimizeImage = async (file, desiredBaseName, opts = {}) => {
|
|
|
9598
9722
|
// src/ui/components/ui/Tour.tsx
|
|
9599
9723
|
import { useEffect as useEffect11, useRef as useRef18 } from "react";
|
|
9600
9724
|
import { driver } from "driver.js";
|
|
9601
|
-
import { jsx as
|
|
9725
|
+
import { jsx as jsx113 } from "react/jsx-runtime";
|
|
9602
9726
|
var TOUR_TARGET_ATTRIBUTE = "data-tour-target";
|
|
9603
9727
|
var DEFAULT_LABELS = {
|
|
9604
9728
|
previous: "Pr\xE9c\xE9dent",
|
|
@@ -9610,7 +9734,7 @@ var DEFAULT_LABELS = {
|
|
|
9610
9734
|
var STAGE_PADDING = 6;
|
|
9611
9735
|
var GHOST_TRANSITION_MS = 200;
|
|
9612
9736
|
var HIGHLIGHT_DURATION_MS = 400;
|
|
9613
|
-
var TourTarget = ({ id, children }) => /* @__PURE__ */
|
|
9737
|
+
var TourTarget = ({ id, children }) => /* @__PURE__ */ jsx113("div", __spreadProps(__spreadValues({}, { [TOUR_TARGET_ATTRIBUTE]: id }), { className: "contents", children }));
|
|
9614
9738
|
var isContents = (element) => getComputedStyle(element).display === "contents";
|
|
9615
9739
|
var measure = (element) => {
|
|
9616
9740
|
if (!isContents(element)) {
|