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.js
CHANGED
|
@@ -2197,8 +2197,9 @@ var Tabs = ({
|
|
|
2197
2197
|
updateBar();
|
|
2198
2198
|
const ro = new ResizeObserver(updateBar);
|
|
2199
2199
|
if (listRef.current) ro.observe(listRef.current);
|
|
2200
|
+
triggerRefs.current.forEach((trigger) => ro.observe(trigger));
|
|
2200
2201
|
return () => ro.disconnect();
|
|
2201
|
-
}, [updateBar]);
|
|
2202
|
+
}, [updateBar, items]);
|
|
2202
2203
|
const isPills = variant === "pills";
|
|
2203
2204
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2204
2205
|
RadixTabs.Root,
|
|
@@ -3366,6 +3367,17 @@ var TagLevelPicker = ({
|
|
|
3366
3367
|
);
|
|
3367
3368
|
};
|
|
3368
3369
|
|
|
3370
|
+
// src/ui/lib/warnDeprecatedTableProp.ts
|
|
3371
|
+
var warnedProps = /* @__PURE__ */ new Set();
|
|
3372
|
+
var warnDeprecatedTableProp = (component, prop, replacement) => {
|
|
3373
|
+
const key = `${component}.${prop}`;
|
|
3374
|
+
if (process.env.NODE_ENV === "production" || warnedProps.has(key)) return;
|
|
3375
|
+
warnedProps.add(key);
|
|
3376
|
+
console.warn(
|
|
3377
|
+
`[design-zystem] <${component} ${prop}> est d\xE9pr\xE9ci\xE9 et sera retir\xE9 : ${replacement}.`
|
|
3378
|
+
);
|
|
3379
|
+
};
|
|
3380
|
+
|
|
3369
3381
|
// src/ui/components/ui/Pagination.tsx
|
|
3370
3382
|
var import_react26 = require("react");
|
|
3371
3383
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
@@ -3588,6 +3600,7 @@ var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
|
3588
3600
|
var TableBody = ({
|
|
3589
3601
|
children,
|
|
3590
3602
|
useEvenBackground,
|
|
3603
|
+
isLined,
|
|
3591
3604
|
className
|
|
3592
3605
|
}) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3593
3606
|
"tbody",
|
|
@@ -3595,6 +3608,7 @@ var TableBody = ({
|
|
|
3595
3608
|
className: cn(
|
|
3596
3609
|
"text-neutral-800",
|
|
3597
3610
|
useEvenBackground && "[&>tr:nth-child(even)]:bg-grey-100",
|
|
3611
|
+
isLined && "[&>tr>td]:border-t [&>tr>td]:border-grey-200 [&>tr>th]:border-t [&>tr>th]:border-grey-200",
|
|
3598
3612
|
className
|
|
3599
3613
|
),
|
|
3600
3614
|
children
|
|
@@ -3906,12 +3920,25 @@ var Table = ({
|
|
|
3906
3920
|
className,
|
|
3907
3921
|
pagination,
|
|
3908
3922
|
variant,
|
|
3923
|
+
columnsAlign = "center",
|
|
3909
3924
|
toolbar,
|
|
3910
3925
|
selection,
|
|
3911
3926
|
zebra,
|
|
3912
3927
|
borderLeft = false
|
|
3913
3928
|
}) => {
|
|
3914
3929
|
var _a;
|
|
3930
|
+
if (zebra !== void 0)
|
|
3931
|
+
warnDeprecatedTableProp(
|
|
3932
|
+
"Table",
|
|
3933
|
+
"zebra",
|
|
3934
|
+
'utilise variant="zebra" ou variant="lined"'
|
|
3935
|
+
);
|
|
3936
|
+
if (borderLeft)
|
|
3937
|
+
warnDeprecatedTableProp(
|
|
3938
|
+
"Table",
|
|
3939
|
+
"borderLeft",
|
|
3940
|
+
"le style du tableau ne se r\xE8gle plus page par page"
|
|
3941
|
+
);
|
|
3915
3942
|
const isZebra = (variant != null ? variant : zebra === false ? "lined" : "zebra") === "zebra";
|
|
3916
3943
|
const loadingRowCount = (_a = pagination == null ? void 0 : pagination.itemsPerPage) != null ? _a : DEFAULT_LOADING_ROW_COUNT;
|
|
3917
3944
|
const hasRows = rows.length > 0;
|
|
@@ -3944,13 +3971,14 @@ var Table = ({
|
|
|
3944
3971
|
// bordures sont peintes par le modèle de fusion du tableau et
|
|
3945
3972
|
// restent à la position d'origine dans la grille au scroll.
|
|
3946
3973
|
"w-full table-fixed border-separate border-spacing-0 caption-bottom text-xs",
|
|
3947
|
-
"[&_tr>*:first-child:not(.table-select-cell)]:text-left [&_tr>.table-select-cell:first-child+*]:text-left
|
|
3974
|
+
"[&_tr>*:first-child:not(.table-select-cell)]:text-left [&_tr>.table-select-cell:first-child+*]:text-left",
|
|
3975
|
+
columnsAlign === "center" && "[&_tr>*:not(:first-child)]:text-center",
|
|
3948
3976
|
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"
|
|
3949
3977
|
),
|
|
3950
3978
|
style: { minWidth: minWidth || void 0 },
|
|
3951
3979
|
children: [
|
|
3952
3980
|
header,
|
|
3953
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TableBody, { useEvenBackground: isZebra, children: rows }),
|
|
3981
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TableBody, { useEvenBackground: isZebra, isLined: !isZebra, children: rows }),
|
|
3954
3982
|
footer
|
|
3955
3983
|
]
|
|
3956
3984
|
}
|
|
@@ -4090,26 +4118,34 @@ var TableRow = (0, import_react28.forwardRef)(
|
|
|
4090
4118
|
backgroundColor,
|
|
4091
4119
|
accentColor,
|
|
4092
4120
|
"data-index": dataIndex
|
|
4093
|
-
}, ref) =>
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4121
|
+
}, ref) => {
|
|
4122
|
+
if (backgroundColor)
|
|
4123
|
+
warnDeprecatedTableProp(
|
|
4124
|
+
"TableRow",
|
|
4125
|
+
"backgroundColor",
|
|
4126
|
+
"le statut passe par TableStatusCell"
|
|
4127
|
+
);
|
|
4128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4129
|
+
"tr",
|
|
4130
|
+
{
|
|
4131
|
+
ref,
|
|
4132
|
+
"data-index": dataIndex,
|
|
4133
|
+
onClick,
|
|
4134
|
+
onDoubleClick,
|
|
4135
|
+
className: cn(
|
|
4136
|
+
"transition-colors hover:bg-black/[0.025]",
|
|
4137
|
+
(onClick || onDoubleClick) && "cursor-pointer",
|
|
4138
|
+
accentColor && "border-l-4",
|
|
4139
|
+
className
|
|
4140
|
+
),
|
|
4141
|
+
style: {
|
|
4142
|
+
backgroundColor,
|
|
4143
|
+
borderLeftColor: accentColor
|
|
4144
|
+
},
|
|
4145
|
+
children
|
|
4146
|
+
}
|
|
4147
|
+
);
|
|
4148
|
+
}
|
|
4113
4149
|
);
|
|
4114
4150
|
TableRow.displayName = "TableRow";
|
|
4115
4151
|
|
|
@@ -4135,36 +4171,50 @@ var TableCell = ({
|
|
|
4135
4171
|
colSpan,
|
|
4136
4172
|
cursor,
|
|
4137
4173
|
className
|
|
4138
|
-
}) =>
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
"
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
borderLeft
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
)
|
|
4174
|
+
}) => {
|
|
4175
|
+
if (backgroundColor)
|
|
4176
|
+
warnDeprecatedTableProp(
|
|
4177
|
+
"TableCell",
|
|
4178
|
+
"backgroundColor",
|
|
4179
|
+
"le statut passe par TableStatusCell"
|
|
4180
|
+
);
|
|
4181
|
+
if (borderLeft)
|
|
4182
|
+
warnDeprecatedTableProp(
|
|
4183
|
+
"TableCell",
|
|
4184
|
+
"borderLeft",
|
|
4185
|
+
"le style du tableau ne se r\xE8gle plus page par page"
|
|
4186
|
+
);
|
|
4187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4188
|
+
"td",
|
|
4189
|
+
{
|
|
4190
|
+
colSpan,
|
|
4191
|
+
className: cn(
|
|
4192
|
+
"text-ellipsis whitespace-nowrap h-10 px-2 py-2 text-center text-xs font-semibold",
|
|
4193
|
+
// Une cellule fusionnée (section/groupe) ne tronque pas son contenu, et
|
|
4194
|
+
// ne doit pas clipper : elle porte souvent un enfant `sticky` (label de
|
|
4195
|
+
// groupe figé au scroll horizontal), qu'un ancêtre `overflow` cassé.
|
|
4196
|
+
colSpan ? "overflow-visible" : "overflow-hidden",
|
|
4197
|
+
borderLeft && "border-l border-grey-200",
|
|
4198
|
+
sticky && !backgroundColor && cn("z-[2]", SURFACE_CLASS2[surface]),
|
|
4199
|
+
sticky && backgroundColor && "z-[2]",
|
|
4200
|
+
accentColor && "border-l-4",
|
|
4201
|
+
cursor && CURSOR_CLASS[cursor],
|
|
4202
|
+
className
|
|
4203
|
+
),
|
|
4204
|
+
style: {
|
|
4205
|
+
width: colSpan ? void 0 : width || "auto",
|
|
4206
|
+
maxWidth: colSpan ? void 0 : width || "auto",
|
|
4207
|
+
minWidth: colSpan ? void 0 : width || "auto",
|
|
4208
|
+
position: sticky ? "sticky" : "static",
|
|
4209
|
+
left: sticky === "left" ? stickyOffset : void 0,
|
|
4210
|
+
right: sticky === "right" ? stickyOffset : void 0,
|
|
4211
|
+
backgroundColor,
|
|
4212
|
+
borderLeftColor: accentColor
|
|
4213
|
+
},
|
|
4214
|
+
children: centerContent ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Layout, { justify: "center", children }) : children
|
|
4215
|
+
}
|
|
4216
|
+
);
|
|
4217
|
+
};
|
|
4168
4218
|
|
|
4169
4219
|
// src/ui/components/ui/table/TableFooter.tsx
|
|
4170
4220
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
@@ -4203,56 +4253,120 @@ var TableFooterCell = ({
|
|
|
4203
4253
|
}
|
|
4204
4254
|
);
|
|
4205
4255
|
|
|
4206
|
-
// src/ui/components/ui/table/
|
|
4256
|
+
// src/ui/components/ui/table/TableGroupLabel.tsx
|
|
4207
4257
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4208
|
-
var
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4258
|
+
var TableGroupLabel = ({
|
|
4259
|
+
title,
|
|
4260
|
+
count,
|
|
4261
|
+
isCollapsed = false,
|
|
4262
|
+
onToggleCollapse,
|
|
4263
|
+
selection
|
|
4264
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Layout, { row: true, gap: 2, align: "center", children: [
|
|
4265
|
+
onToggleCollapse && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4266
|
+
Icon,
|
|
4267
|
+
{
|
|
4268
|
+
name: isCollapsed ? "chevron-right" : "chevron-down",
|
|
4269
|
+
size: "xs",
|
|
4270
|
+
"aria-expanded": !isCollapsed,
|
|
4271
|
+
"aria-label": isCollapsed ? `D\xE9plier ${title}` : `Replier ${title}`,
|
|
4272
|
+
onClick: onToggleCollapse
|
|
4273
|
+
}
|
|
4274
|
+
),
|
|
4275
|
+
selection && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4276
|
+
Checkbox,
|
|
4277
|
+
{
|
|
4278
|
+
"aria-label": selection.label,
|
|
4279
|
+
checked: selection.isSelected,
|
|
4280
|
+
onChange: selection.onToggle
|
|
4281
|
+
}
|
|
4282
|
+
),
|
|
4283
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: title }),
|
|
4284
|
+
count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-semibold text-grey-600", children: count })
|
|
4285
|
+
] });
|
|
4219
4286
|
|
|
4220
|
-
// src/ui/components/ui/table/
|
|
4287
|
+
// src/ui/components/ui/table/TableSectionRow.tsx
|
|
4221
4288
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4222
|
-
var
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
}
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4289
|
+
var TableSectionRow = (_a) => {
|
|
4290
|
+
var _b = _a, {
|
|
4291
|
+
colSpan
|
|
4292
|
+
} = _b, label = __objRest(_b, [
|
|
4293
|
+
"colSpan"
|
|
4294
|
+
]);
|
|
4295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
4296
|
+
"td",
|
|
4297
|
+
{
|
|
4298
|
+
colSpan,
|
|
4299
|
+
className: "h-8 bg-grey-300 px-2 text-left text-[11px] font-bold uppercase tracking-wide text-neutral-800",
|
|
4300
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TableGroupLabel, __spreadValues({}, label))
|
|
4301
|
+
}
|
|
4302
|
+
) });
|
|
4303
|
+
};
|
|
4233
4304
|
|
|
4234
|
-
// src/ui/components/ui/table/
|
|
4305
|
+
// src/ui/components/ui/table/TableSubgroupRow.tsx
|
|
4235
4306
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
4236
|
-
var
|
|
4237
|
-
var
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
colSpan
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4307
|
+
var TableSubgroupRow = (_a) => {
|
|
4308
|
+
var _b = _a, {
|
|
4309
|
+
colSpan
|
|
4310
|
+
} = _b, label = __objRest(_b, [
|
|
4311
|
+
"colSpan"
|
|
4312
|
+
]);
|
|
4313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
4314
|
+
"td",
|
|
4315
|
+
{
|
|
4316
|
+
colSpan,
|
|
4317
|
+
className: "h-9 bg-grey-200 py-0 pl-6 pr-2 text-left text-xs font-semibold text-neutral-800",
|
|
4318
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TableGroupLabel, __spreadValues({}, label))
|
|
4319
|
+
}
|
|
4320
|
+
) });
|
|
4321
|
+
};
|
|
4249
4322
|
|
|
4250
|
-
// src/ui/components/ui/table/
|
|
4323
|
+
// src/ui/components/ui/table/TableAlertRow.tsx
|
|
4251
4324
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
4252
|
-
var
|
|
4325
|
+
var ALERT_TONES = {
|
|
4326
|
+
red: { theme: "red-500", icon: "circle-exclamation" },
|
|
4327
|
+
yellow: { theme: "yellow-500", icon: "triangle-exclamation" },
|
|
4328
|
+
green: { theme: "green-700", icon: "circle-check" },
|
|
4329
|
+
blue: { theme: "blue-700", icon: "circle-info" }
|
|
4330
|
+
};
|
|
4331
|
+
var TableAlertRow = ({
|
|
4253
4332
|
children,
|
|
4254
|
-
colSpan
|
|
4255
|
-
|
|
4333
|
+
colSpan,
|
|
4334
|
+
tone = "yellow",
|
|
4335
|
+
action
|
|
4336
|
+
}) => {
|
|
4337
|
+
const { theme, icon } = ALERT_TONES[tone];
|
|
4338
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
4339
|
+
"td",
|
|
4340
|
+
{
|
|
4341
|
+
colSpan,
|
|
4342
|
+
role: "alert",
|
|
4343
|
+
className: cn(
|
|
4344
|
+
"h-10 px-2 text-left text-xs font-semibold",
|
|
4345
|
+
THEME_VARIANT_CLASSES.pale[theme]
|
|
4346
|
+
),
|
|
4347
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Layout, { row: true, gap: 2, align: "center", justify: "between", children: [
|
|
4348
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Layout, { row: true, gap: 2, align: "center", children: [
|
|
4349
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: icon, size: "xs", theme }),
|
|
4350
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children })
|
|
4351
|
+
] }),
|
|
4352
|
+
action && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
4353
|
+
Button,
|
|
4354
|
+
{
|
|
4355
|
+
size: "xs",
|
|
4356
|
+
variant: "outline",
|
|
4357
|
+
theme,
|
|
4358
|
+
label: action.label,
|
|
4359
|
+
onClick: action.onClick
|
|
4360
|
+
}
|
|
4361
|
+
)
|
|
4362
|
+
] })
|
|
4363
|
+
}
|
|
4364
|
+
) });
|
|
4365
|
+
};
|
|
4366
|
+
|
|
4367
|
+
// src/ui/components/ui/table/TableExpandedRow.tsx
|
|
4368
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
4369
|
+
var TableExpandedRow = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TableRow, { className: "bg-grey-100 hover:bg-grey-100", children });
|
|
4256
4370
|
|
|
4257
4371
|
// src/utils/string/capitalizeFirstLetter.ts
|
|
4258
4372
|
var capitalizeFirstLetter = (str) => {
|
|
@@ -4376,7 +4490,7 @@ var formatNameWithInitial = (firstname, lastname) => {
|
|
|
4376
4490
|
// src/ui/components/ui/Avatar.tsx
|
|
4377
4491
|
var import_react29 = require("react");
|
|
4378
4492
|
var RadixAvatar = __toESM(require("@radix-ui/react-avatar"));
|
|
4379
|
-
var
|
|
4493
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
4380
4494
|
var AvatarSizeContext = (0, import_react29.createContext)(40);
|
|
4381
4495
|
var useAvatarSize = () => (0, import_react29.useContext)(AvatarSizeContext);
|
|
4382
4496
|
var BADGE_BG_CLASS = {
|
|
@@ -4437,7 +4551,7 @@ var Avatar = (0, import_react29.forwardRef)(
|
|
|
4437
4551
|
"children"
|
|
4438
4552
|
]);
|
|
4439
4553
|
var _a2;
|
|
4440
|
-
return /* @__PURE__ */ (0,
|
|
4554
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AvatarSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4441
4555
|
RadixAvatar.Root,
|
|
4442
4556
|
__spreadProps(__spreadValues({
|
|
4443
4557
|
ref,
|
|
@@ -4448,9 +4562,9 @@ var Avatar = (0, import_react29.forwardRef)(
|
|
|
4448
4562
|
),
|
|
4449
4563
|
style: __spreadValues({ width: size, height: size, backgroundColor }, style)
|
|
4450
4564
|
}, props), {
|
|
4451
|
-
children: children != null ? children : /* @__PURE__ */ (0,
|
|
4452
|
-
src && /* @__PURE__ */ (0,
|
|
4453
|
-
/* @__PURE__ */ (0,
|
|
4565
|
+
children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
|
|
4566
|
+
src && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AvatarImage, { src, alt: name }),
|
|
4567
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4454
4568
|
AvatarFallback,
|
|
4455
4569
|
{
|
|
4456
4570
|
color,
|
|
@@ -4459,7 +4573,7 @@ var Avatar = (0, import_react29.forwardRef)(
|
|
|
4459
4573
|
children: getInitials({ name })
|
|
4460
4574
|
}
|
|
4461
4575
|
),
|
|
4462
|
-
badge && /* @__PURE__ */ (0,
|
|
4576
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AvatarBadge, { className: BADGE_BG_CLASS[badge.backgroundColor], children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4463
4577
|
FaIcon,
|
|
4464
4578
|
{
|
|
4465
4579
|
name: badge.icon,
|
|
@@ -4476,7 +4590,7 @@ var Avatar = (0, import_react29.forwardRef)(
|
|
|
4476
4590
|
Avatar.displayName = "Avatar";
|
|
4477
4591
|
var AvatarImage = (0, import_react29.forwardRef)((_a, ref) => {
|
|
4478
4592
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4479
|
-
return /* @__PURE__ */ (0,
|
|
4593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4480
4594
|
RadixAvatar.Image,
|
|
4481
4595
|
__spreadValues({
|
|
4482
4596
|
ref,
|
|
@@ -4516,7 +4630,7 @@ var AvatarFallback = (0, import_react29.forwardRef)(
|
|
|
4516
4630
|
"style"
|
|
4517
4631
|
]);
|
|
4518
4632
|
const size = useAvatarSize();
|
|
4519
|
-
return /* @__PURE__ */ (0,
|
|
4633
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4520
4634
|
RadixAvatar.Fallback,
|
|
4521
4635
|
__spreadValues({
|
|
4522
4636
|
ref,
|
|
@@ -4540,7 +4654,7 @@ var AvatarBadge = (0, import_react29.forwardRef)(
|
|
|
4540
4654
|
var _b = _a, { size, className, style } = _b, props = __objRest(_b, ["size", "className", "style"]);
|
|
4541
4655
|
const avatarSize = useAvatarSize();
|
|
4542
4656
|
const badgeSize = size != null ? size : Math.round(avatarSize * 0.35);
|
|
4543
|
-
return /* @__PURE__ */ (0,
|
|
4657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
4544
4658
|
"div",
|
|
4545
4659
|
__spreadValues({
|
|
4546
4660
|
ref,
|
|
@@ -4571,7 +4685,7 @@ var AvatarGroup = (_a) => {
|
|
|
4571
4685
|
);
|
|
4572
4686
|
const visible = max ? items.slice(0, max) : items;
|
|
4573
4687
|
const overflow = max ? items.length - max : 0;
|
|
4574
|
-
return /* @__PURE__ */ (0,
|
|
4688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Layout, __spreadProps(__spreadValues({ className: cn("-space-x-2", className) }, props), { children: [
|
|
4575
4689
|
visible.map(
|
|
4576
4690
|
(child, index) => (0, import_react29.cloneElement)(child, {
|
|
4577
4691
|
key: index,
|
|
@@ -4579,7 +4693,7 @@ var AvatarGroup = (_a) => {
|
|
|
4579
4693
|
className: cn("ring-2 ring-white", child.props.className)
|
|
4580
4694
|
})
|
|
4581
4695
|
),
|
|
4582
|
-
overflow > 0 && /* @__PURE__ */ (0,
|
|
4696
|
+
overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
4583
4697
|
Layout,
|
|
4584
4698
|
{
|
|
4585
4699
|
align: "center",
|
|
@@ -4600,15 +4714,15 @@ var AvatarGroup = (_a) => {
|
|
|
4600
4714
|
};
|
|
4601
4715
|
|
|
4602
4716
|
// src/ui/components/ui/table/TablePersonCell.tsx
|
|
4603
|
-
var
|
|
4717
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
4604
4718
|
var AVATAR_SIZE = 24;
|
|
4605
4719
|
var TablePersonCell = ({
|
|
4606
4720
|
firstName,
|
|
4607
4721
|
lastName,
|
|
4608
4722
|
src,
|
|
4609
4723
|
width
|
|
4610
|
-
}) => /* @__PURE__ */ (0,
|
|
4611
|
-
/* @__PURE__ */ (0,
|
|
4724
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TableCell, { width, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "inline-flex max-w-full items-center gap-2 align-middle", children: [
|
|
4725
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
4612
4726
|
Avatar,
|
|
4613
4727
|
{
|
|
4614
4728
|
size: AVATAR_SIZE,
|
|
@@ -4616,39 +4730,39 @@ var TablePersonCell = ({
|
|
|
4616
4730
|
src
|
|
4617
4731
|
}
|
|
4618
4732
|
),
|
|
4619
|
-
/* @__PURE__ */ (0,
|
|
4733
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "truncate", children: formatNameWithInitial(firstName, lastName != null ? lastName : null) })
|
|
4620
4734
|
] }) });
|
|
4621
4735
|
|
|
4622
4736
|
// src/ui/components/ui/table/TableClientCell.tsx
|
|
4623
|
-
var
|
|
4737
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
4624
4738
|
var TableClientCell = ({
|
|
4625
4739
|
name,
|
|
4626
4740
|
color,
|
|
4627
4741
|
width
|
|
4628
|
-
}) => /* @__PURE__ */ (0,
|
|
4629
|
-
/* @__PURE__ */ (0,
|
|
4742
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TableCell, { width, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("span", { className: "inline-flex max-w-full items-center gap-2 align-middle", children: [
|
|
4743
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4630
4744
|
"span",
|
|
4631
4745
|
{
|
|
4632
4746
|
"aria-hidden": "true",
|
|
4633
4747
|
"data-testid": "client-dot",
|
|
4634
|
-
className: "h-2
|
|
4748
|
+
className: "h-2 w-2 shrink-0 rounded-full",
|
|
4635
4749
|
style: { backgroundColor: color }
|
|
4636
4750
|
}
|
|
4637
4751
|
),
|
|
4638
|
-
/* @__PURE__ */ (0,
|
|
4752
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "truncate", children: name })
|
|
4639
4753
|
] }) });
|
|
4640
4754
|
|
|
4641
4755
|
// src/ui/components/ui/table/TableStatusCell.tsx
|
|
4642
|
-
var
|
|
4756
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
4643
4757
|
var TableStatusCell = ({
|
|
4644
4758
|
children,
|
|
4645
4759
|
theme,
|
|
4646
4760
|
width
|
|
4647
|
-
}) => /* @__PURE__ */ (0,
|
|
4761
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TableCell, { width, centerContent: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Badge, { size: "l", theme, children }) });
|
|
4648
4762
|
|
|
4649
4763
|
// src/ui/components/ui/Popover.tsx
|
|
4650
4764
|
var RadixPopover4 = __toESM(require("@radix-ui/react-popover"));
|
|
4651
|
-
var
|
|
4765
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
4652
4766
|
var Popover = ({
|
|
4653
4767
|
trigger,
|
|
4654
4768
|
items,
|
|
@@ -4660,9 +4774,9 @@ var Popover = ({
|
|
|
4660
4774
|
onOpenChange,
|
|
4661
4775
|
width,
|
|
4662
4776
|
className
|
|
4663
|
-
}) => /* @__PURE__ */ (0,
|
|
4664
|
-
/* @__PURE__ */ (0,
|
|
4665
|
-
/* @__PURE__ */ (0,
|
|
4777
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(RadixPopover4.Root, { open, onOpenChange, children: [
|
|
4778
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(RadixPopover4.Trigger, { asChild: true, children: trigger }),
|
|
4779
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(RadixPopover4.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
4666
4780
|
RadixPopover4.Content,
|
|
4667
4781
|
{
|
|
4668
4782
|
align,
|
|
@@ -4675,11 +4789,13 @@ var Popover = ({
|
|
|
4675
4789
|
"data-[state=open]:animate-[fade-in_150ms_ease-out]",
|
|
4676
4790
|
className
|
|
4677
4791
|
),
|
|
4678
|
-
children: items ? /* @__PURE__ */ (0,
|
|
4792
|
+
children: items ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Layout, { column: true, children: items.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
4679
4793
|
RadixPopover4.Close,
|
|
4680
4794
|
{
|
|
4681
4795
|
onClick: item.action,
|
|
4682
|
-
|
|
4796
|
+
disabled: item.disabled,
|
|
4797
|
+
title: item.title,
|
|
4798
|
+
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",
|
|
4683
4799
|
children: item.label
|
|
4684
4800
|
},
|
|
4685
4801
|
idx
|
|
@@ -4689,11 +4805,11 @@ var Popover = ({
|
|
|
4689
4805
|
] });
|
|
4690
4806
|
|
|
4691
4807
|
// src/ui/components/ui/table/TableActionsCell.tsx
|
|
4692
|
-
var
|
|
4808
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
4693
4809
|
var MAX_INLINE_TABLE_ACTIONS = 3;
|
|
4694
4810
|
var TableActionsCell = ({ actions, width }) => {
|
|
4695
4811
|
const hasMenu = actions.length > MAX_INLINE_TABLE_ACTIONS;
|
|
4696
|
-
return /* @__PURE__ */ (0,
|
|
4812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(TableCell, { width, centerContent: true, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
4697
4813
|
Layout,
|
|
4698
4814
|
{
|
|
4699
4815
|
row: true,
|
|
@@ -4701,10 +4817,10 @@ var TableActionsCell = ({ actions, width }) => {
|
|
|
4701
4817
|
align: "center",
|
|
4702
4818
|
justify: "center",
|
|
4703
4819
|
onClick: (event) => event.stopPropagation(),
|
|
4704
|
-
children: hasMenu ? /* @__PURE__ */ (0,
|
|
4820
|
+
children: hasMenu ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
4705
4821
|
Popover,
|
|
4706
4822
|
{
|
|
4707
|
-
trigger: /* @__PURE__ */ (0,
|
|
4823
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
4708
4824
|
Icon,
|
|
4709
4825
|
{
|
|
4710
4826
|
name: "ellipsis-vertical",
|
|
@@ -4712,28 +4828,36 @@ var TableActionsCell = ({ actions, width }) => {
|
|
|
4712
4828
|
onClick: () => void 0
|
|
4713
4829
|
}
|
|
4714
4830
|
),
|
|
4715
|
-
items: actions.map(
|
|
4716
|
-
label,
|
|
4717
|
-
|
|
4718
|
-
|
|
4831
|
+
items: actions.map(
|
|
4832
|
+
({ label, onClick, disabled, disabledReason }) => ({
|
|
4833
|
+
label,
|
|
4834
|
+
action: onClick,
|
|
4835
|
+
disabled,
|
|
4836
|
+
title: disabled ? disabledReason : void 0
|
|
4837
|
+
})
|
|
4838
|
+
)
|
|
4719
4839
|
}
|
|
4720
|
-
) : actions.map(({ label, icon, onClick }) =>
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4840
|
+
) : actions.map(({ label, icon, onClick, disabled, disabledReason }) => {
|
|
4841
|
+
const action = /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
4842
|
+
Icon,
|
|
4843
|
+
{
|
|
4844
|
+
name: icon,
|
|
4845
|
+
"aria-label": label,
|
|
4846
|
+
title: disabledReason ? void 0 : label,
|
|
4847
|
+
disabled,
|
|
4848
|
+
onClick
|
|
4849
|
+
},
|
|
4850
|
+
label
|
|
4851
|
+
);
|
|
4852
|
+
return disabled && disabledReason ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Tooltip, { content: disabledReason, children: action }, label) : action;
|
|
4853
|
+
})
|
|
4730
4854
|
}
|
|
4731
4855
|
) });
|
|
4732
4856
|
};
|
|
4733
4857
|
|
|
4734
4858
|
// src/ui/components/ui/table/TableSelectCell.tsx
|
|
4735
4859
|
var import_react30 = require("react");
|
|
4736
|
-
var
|
|
4860
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
4737
4861
|
var TableSelectCell = ({
|
|
4738
4862
|
isSelected,
|
|
4739
4863
|
onToggle,
|
|
@@ -4741,7 +4865,7 @@ var TableSelectCell = ({
|
|
|
4741
4865
|
width = "40px"
|
|
4742
4866
|
}) => {
|
|
4743
4867
|
const isRange = (0, import_react30.useRef)(false);
|
|
4744
|
-
return /* @__PURE__ */ (0,
|
|
4868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TableCell, { width, centerContent: true, className: "table-select-cell", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
4745
4869
|
Checkbox,
|
|
4746
4870
|
{
|
|
4747
4871
|
"aria-label": label,
|
|
@@ -4755,12 +4879,12 @@ var TableSelectCell = ({
|
|
|
4755
4879
|
};
|
|
4756
4880
|
|
|
4757
4881
|
// src/ui/components/ui/table/TableSelectHeaderCell.tsx
|
|
4758
|
-
var
|
|
4882
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
4759
4883
|
var TableSelectHeaderCell = ({
|
|
4760
4884
|
state,
|
|
4761
4885
|
onToggle,
|
|
4762
4886
|
width = "40px"
|
|
4763
|
-
}) => /* @__PURE__ */ (0,
|
|
4887
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TableHeaderCell, { width, className: "table-select-cell", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Layout, { justify: "center", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
4764
4888
|
Checkbox,
|
|
4765
4889
|
{
|
|
4766
4890
|
"aria-label": "S\xE9lectionner toutes les lignes de la page",
|
|
@@ -4834,7 +4958,7 @@ var useRowSelection = ({
|
|
|
4834
4958
|
// src/ui/components/ui/Radio.tsx
|
|
4835
4959
|
var RadixRadioGroup = __toESM(require("@radix-ui/react-radio-group"));
|
|
4836
4960
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
4837
|
-
var
|
|
4961
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
4838
4962
|
var radioVariants = (0, import_class_variance_authority12.cva)(
|
|
4839
4963
|
"relative h-[22px] w-[22px] shrink-0 rounded-full border-2 border-grey-300 outline-none transition-colors",
|
|
4840
4964
|
{
|
|
@@ -4889,23 +5013,23 @@ var Radio = ({
|
|
|
4889
5013
|
color,
|
|
4890
5014
|
width,
|
|
4891
5015
|
className
|
|
4892
|
-
}) => /* @__PURE__ */ (0,
|
|
5016
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
4893
5017
|
RadixRadioGroup.Root,
|
|
4894
5018
|
{
|
|
4895
5019
|
value,
|
|
4896
5020
|
onValueChange: onChange,
|
|
4897
5021
|
disabled,
|
|
4898
5022
|
asChild: true,
|
|
4899
|
-
children: /* @__PURE__ */ (0,
|
|
5023
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Layout, { column: true, gap: 2, className, width, children: items.map((item) => {
|
|
4900
5024
|
const itemId = `radio-${item.value}`;
|
|
4901
|
-
return /* @__PURE__ */ (0,
|
|
4902
|
-
/* @__PURE__ */ (0,
|
|
5025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Layout, { row: true, gap: 2, align: "center", children: [
|
|
5026
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
4903
5027
|
RadixRadioGroup.Item,
|
|
4904
5028
|
{
|
|
4905
5029
|
id: itemId,
|
|
4906
5030
|
value: item.value,
|
|
4907
5031
|
className: radioVariants({ color }),
|
|
4908
|
-
children: /* @__PURE__ */ (0,
|
|
5032
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
4909
5033
|
RadixRadioGroup.Indicator,
|
|
4910
5034
|
{
|
|
4911
5035
|
className: indicatorVariants({ color })
|
|
@@ -4913,7 +5037,7 @@ var Radio = ({
|
|
|
4913
5037
|
)
|
|
4914
5038
|
}
|
|
4915
5039
|
),
|
|
4916
|
-
item.label && /* @__PURE__ */ (0,
|
|
5040
|
+
item.label && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
4917
5041
|
Text,
|
|
4918
5042
|
{
|
|
4919
5043
|
as: "label",
|
|
@@ -4932,7 +5056,7 @@ var Radio = ({
|
|
|
4932
5056
|
var RadixProgress = __toESM(require("@radix-ui/react-progress"));
|
|
4933
5057
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
4934
5058
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
4935
|
-
var
|
|
5059
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
4936
5060
|
var trackVariants2 = (0, import_class_variance_authority13.cva)(
|
|
4937
5061
|
"relative w-full overflow-hidden rounded-full bg-grey-200",
|
|
4938
5062
|
{
|
|
@@ -5001,15 +5125,15 @@ var ProgressBar = ({
|
|
|
5001
5125
|
const editable = Boolean(onChange);
|
|
5002
5126
|
if (segments) {
|
|
5003
5127
|
const visible = segments.filter((segment) => segment.value > 0);
|
|
5004
|
-
return /* @__PURE__ */ (0,
|
|
5005
|
-
label && /* @__PURE__ */ (0,
|
|
5006
|
-
/* @__PURE__ */ (0,
|
|
5128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Layout, { column: true, fullWidth: true, gap: 1, className, children: [
|
|
5129
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs text-grey-600", children: label }),
|
|
5130
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5007
5131
|
"div",
|
|
5008
5132
|
{
|
|
5009
5133
|
role: "img",
|
|
5010
5134
|
"aria-label": ariaLabel != null ? ariaLabel : label,
|
|
5011
5135
|
className: cn(trackVariants2({ height }), "flex gap-0.5"),
|
|
5012
|
-
children: visible.map((segment, index) => /* @__PURE__ */ (0,
|
|
5136
|
+
children: visible.map((segment, index) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5013
5137
|
"span",
|
|
5014
5138
|
{
|
|
5015
5139
|
className: "h-full",
|
|
@@ -5027,16 +5151,16 @@ var ProgressBar = ({
|
|
|
5027
5151
|
}
|
|
5028
5152
|
if (!editable) {
|
|
5029
5153
|
const readOnlyPercent = Math.max(0, Math.min(100, percent));
|
|
5030
|
-
return /* @__PURE__ */ (0,
|
|
5031
|
-
label && /* @__PURE__ */ (0,
|
|
5032
|
-
/* @__PURE__ */ (0,
|
|
5033
|
-
/* @__PURE__ */ (0,
|
|
5154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Layout, { column: true, fullWidth: true, gap: 1, className, children: [
|
|
5155
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs text-grey-600", children: label }),
|
|
5156
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Layout, { fullWidth: true, align: "center", gap: 2, children: [
|
|
5157
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5034
5158
|
RadixProgress.Root,
|
|
5035
5159
|
{
|
|
5036
5160
|
value: readOnlyPercent,
|
|
5037
5161
|
"aria-label": ariaLabel != null ? ariaLabel : label,
|
|
5038
5162
|
className: trackVariants2({ height }),
|
|
5039
|
-
children: /* @__PURE__ */ (0,
|
|
5163
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5040
5164
|
RadixProgress.Indicator,
|
|
5041
5165
|
{
|
|
5042
5166
|
className: cn(
|
|
@@ -5051,11 +5175,11 @@ var ProgressBar = ({
|
|
|
5051
5175
|
)
|
|
5052
5176
|
}
|
|
5053
5177
|
),
|
|
5054
|
-
showLabel && /* @__PURE__ */ (0,
|
|
5178
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "shrink-0 text-xs font-semibold text-neutral-800", children: display(Math.round(readOnlyPercent)) })
|
|
5055
5179
|
] })
|
|
5056
5180
|
] });
|
|
5057
5181
|
}
|
|
5058
|
-
return /* @__PURE__ */ (0,
|
|
5182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
5059
5183
|
Layout,
|
|
5060
5184
|
{
|
|
5061
5185
|
column: true,
|
|
@@ -5063,9 +5187,9 @@ var ProgressBar = ({
|
|
|
5063
5187
|
gap: 1,
|
|
5064
5188
|
className: cn(disabled && "cursor-not-allowed opacity-60", className),
|
|
5065
5189
|
children: [
|
|
5066
|
-
label && /* @__PURE__ */ (0,
|
|
5067
|
-
/* @__PURE__ */ (0,
|
|
5068
|
-
showLabel && /* @__PURE__ */ (0,
|
|
5190
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs text-grey-600", children: label }),
|
|
5191
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "relative w-full pt-6", children: [
|
|
5192
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5069
5193
|
"span",
|
|
5070
5194
|
{
|
|
5071
5195
|
className: "absolute top-0 -translate-x-1/2 text-xs font-semibold text-neutral-800",
|
|
@@ -5073,7 +5197,7 @@ var ProgressBar = ({
|
|
|
5073
5197
|
children: display(current)
|
|
5074
5198
|
}
|
|
5075
5199
|
),
|
|
5076
|
-
/* @__PURE__ */ (0,
|
|
5200
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
5077
5201
|
RadixSlider.Root,
|
|
5078
5202
|
{
|
|
5079
5203
|
value: [current],
|
|
@@ -5084,7 +5208,7 @@ var ProgressBar = ({
|
|
|
5084
5208
|
disabled,
|
|
5085
5209
|
className: "relative flex h-5 w-full touch-none select-none items-center",
|
|
5086
5210
|
children: [
|
|
5087
|
-
/* @__PURE__ */ (0,
|
|
5211
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(RadixSlider.Track, { className: cn(trackVariants2({ height }), "grow"), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5088
5212
|
RadixSlider.Range,
|
|
5089
5213
|
{
|
|
5090
5214
|
className: cn(
|
|
@@ -5094,7 +5218,7 @@ var ProgressBar = ({
|
|
|
5094
5218
|
style: { backgroundColor: hexColor }
|
|
5095
5219
|
}
|
|
5096
5220
|
) }),
|
|
5097
|
-
/* @__PURE__ */ (0,
|
|
5221
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5098
5222
|
RadixSlider.Thumb,
|
|
5099
5223
|
{
|
|
5100
5224
|
className: cn(
|
|
@@ -5109,9 +5233,9 @@ var ProgressBar = ({
|
|
|
5109
5233
|
}
|
|
5110
5234
|
)
|
|
5111
5235
|
] }),
|
|
5112
|
-
showLabel && /* @__PURE__ */ (0,
|
|
5113
|
-
/* @__PURE__ */ (0,
|
|
5114
|
-
/* @__PURE__ */ (0,
|
|
5236
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Layout, { align: "center", justify: "between", children: [
|
|
5237
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs text-grey-600", children: display(min) }),
|
|
5238
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-xs text-grey-600", children: display(max) })
|
|
5115
5239
|
] })
|
|
5116
5240
|
]
|
|
5117
5241
|
}
|
|
@@ -5120,7 +5244,7 @@ var ProgressBar = ({
|
|
|
5120
5244
|
|
|
5121
5245
|
// src/ui/components/ui/Collapsible.tsx
|
|
5122
5246
|
var RadixCollapsible = __toESM(require("@radix-ui/react-collapsible"));
|
|
5123
|
-
var
|
|
5247
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
5124
5248
|
var Collapsible = RadixCollapsible.Root;
|
|
5125
5249
|
var CollapsibleTrigger = RadixCollapsible.Trigger;
|
|
5126
5250
|
var CollapsibleContent = (_a) => {
|
|
@@ -5129,7 +5253,7 @@ var CollapsibleContent = (_a) => {
|
|
|
5129
5253
|
} = _b, props = __objRest(_b, [
|
|
5130
5254
|
"className"
|
|
5131
5255
|
]);
|
|
5132
|
-
return /* @__PURE__ */ (0,
|
|
5256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
5133
5257
|
RadixCollapsible.Content,
|
|
5134
5258
|
__spreadValues({
|
|
5135
5259
|
className: "overflow-hidden data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] " + (className != null ? className : "")
|
|
@@ -5209,7 +5333,7 @@ var swallowRestOfClick = () => {
|
|
|
5209
5333
|
};
|
|
5210
5334
|
|
|
5211
5335
|
// src/ui/components/ui/Drawer.tsx
|
|
5212
|
-
var
|
|
5336
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
5213
5337
|
var KEEP_OPEN_SELECTOR = '[role="dialog"], [role="listbox"], [data-drawer-keep-open]';
|
|
5214
5338
|
var CONTENT_POSITION = {
|
|
5215
5339
|
top: "inset-x-4 top-4 rounded-2xl",
|
|
@@ -5274,8 +5398,8 @@ var Drawer = ({
|
|
|
5274
5398
|
return () => cancelAnimationFrame(frame);
|
|
5275
5399
|
}, [modal, open]);
|
|
5276
5400
|
const closeOnDismiss = (next) => !next && closeDrawer();
|
|
5277
|
-
const drawerPortal = /* @__PURE__ */ (0,
|
|
5278
|
-
/* @__PURE__ */ (0,
|
|
5401
|
+
const drawerPortal = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_vaul.Drawer.Portal, { children: [
|
|
5402
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5279
5403
|
import_vaul.Drawer.Overlay,
|
|
5280
5404
|
{
|
|
5281
5405
|
ref: overlayRef,
|
|
@@ -5287,7 +5411,7 @@ var Drawer = ({
|
|
|
5287
5411
|
)
|
|
5288
5412
|
}
|
|
5289
5413
|
),
|
|
5290
|
-
/* @__PURE__ */ (0,
|
|
5414
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5291
5415
|
import_vaul.Drawer.Content,
|
|
5292
5416
|
__spreadProps(__spreadValues({
|
|
5293
5417
|
ref: (node) => {
|
|
@@ -5319,14 +5443,14 @@ var Drawer = ({
|
|
|
5319
5443
|
})
|
|
5320
5444
|
)
|
|
5321
5445
|
] });
|
|
5322
|
-
return /* @__PURE__ */ (0,
|
|
5446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5323
5447
|
import_vaul.Drawer.Root,
|
|
5324
5448
|
{
|
|
5325
5449
|
direction,
|
|
5326
5450
|
modal,
|
|
5327
5451
|
open,
|
|
5328
5452
|
onOpenChange: closeOnDismiss,
|
|
5329
|
-
children: modal ? drawerPortal : /* @__PURE__ */ (0,
|
|
5453
|
+
children: modal ? drawerPortal : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5330
5454
|
DialogPrimitive.Root,
|
|
5331
5455
|
{
|
|
5332
5456
|
modal: false,
|
|
@@ -5344,7 +5468,7 @@ var DrawerHeader = (_a) => {
|
|
|
5344
5468
|
} = _b, props = __objRest(_b, [
|
|
5345
5469
|
"className"
|
|
5346
5470
|
]);
|
|
5347
|
-
return /* @__PURE__ */ (0,
|
|
5471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5348
5472
|
"div",
|
|
5349
5473
|
__spreadValues({
|
|
5350
5474
|
className: cn("flex w-full items-center justify-between", className)
|
|
@@ -5357,7 +5481,7 @@ var DrawerTitle = (_a) => {
|
|
|
5357
5481
|
} = _b, props = __objRest(_b, [
|
|
5358
5482
|
"className"
|
|
5359
5483
|
]);
|
|
5360
|
-
return /* @__PURE__ */ (0,
|
|
5484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5361
5485
|
import_vaul.Drawer.Title,
|
|
5362
5486
|
__spreadValues({
|
|
5363
5487
|
className: cn("text-base font-bold text-neutral-800", className)
|
|
@@ -5370,7 +5494,7 @@ var DrawerDescription = (_a) => {
|
|
|
5370
5494
|
} = _b, props = __objRest(_b, [
|
|
5371
5495
|
"className"
|
|
5372
5496
|
]);
|
|
5373
|
-
return /* @__PURE__ */ (0,
|
|
5497
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5374
5498
|
import_vaul.Drawer.Description,
|
|
5375
5499
|
__spreadValues({
|
|
5376
5500
|
className: cn("text-sm text-grey-500", className)
|
|
@@ -5383,7 +5507,7 @@ var DrawerBody = (_a) => {
|
|
|
5383
5507
|
} = _b, props = __objRest(_b, [
|
|
5384
5508
|
"className"
|
|
5385
5509
|
]);
|
|
5386
|
-
return /* @__PURE__ */ (0,
|
|
5510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", __spreadValues({ className: cn("min-h-0 flex-1 overflow-y-auto", className) }, props));
|
|
5387
5511
|
};
|
|
5388
5512
|
var DrawerFooter = (_a) => {
|
|
5389
5513
|
var _b = _a, {
|
|
@@ -5391,7 +5515,7 @@ var DrawerFooter = (_a) => {
|
|
|
5391
5515
|
} = _b, props = __objRest(_b, [
|
|
5392
5516
|
"className"
|
|
5393
5517
|
]);
|
|
5394
|
-
return /* @__PURE__ */ (0,
|
|
5518
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", __spreadValues({ className: cn("flex w-full flex-col gap-3", className) }, props));
|
|
5395
5519
|
};
|
|
5396
5520
|
var DrawerClose = import_vaul.Drawer.Close;
|
|
5397
5521
|
|
|
@@ -5405,11 +5529,11 @@ var SidebarCollapsedProvider = SidebarCollapsedContext.Provider;
|
|
|
5405
5529
|
var useSidebarCollapsed = () => (0, import_react33.useContext)(SidebarCollapsedContext);
|
|
5406
5530
|
|
|
5407
5531
|
// src/ui/components/ui/sidebar/Sidebar.tsx
|
|
5408
|
-
var
|
|
5532
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
5409
5533
|
var Sidebar = (0, import_react34.forwardRef)(
|
|
5410
5534
|
(_a, ref) => {
|
|
5411
5535
|
var _b = _a, { collapsed = false, className, children } = _b, props = __objRest(_b, ["collapsed", "className", "children"]);
|
|
5412
|
-
return /* @__PURE__ */ (0,
|
|
5536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SidebarCollapsedProvider, { value: collapsed, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
5413
5537
|
"aside",
|
|
5414
5538
|
__spreadProps(__spreadValues({
|
|
5415
5539
|
ref,
|
|
@@ -5428,10 +5552,10 @@ Sidebar.displayName = "Sidebar";
|
|
|
5428
5552
|
|
|
5429
5553
|
// src/ui/components/ui/sidebar/SidebarTrigger.tsx
|
|
5430
5554
|
var import_react35 = require("react");
|
|
5431
|
-
var
|
|
5555
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
5432
5556
|
var SidebarTrigger = (0, import_react35.forwardRef)((_a, ref) => {
|
|
5433
5557
|
var _b = _a, { collapsed, className } = _b, props = __objRest(_b, ["collapsed", "className"]);
|
|
5434
|
-
return /* @__PURE__ */ (0,
|
|
5558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5435
5559
|
"button",
|
|
5436
5560
|
__spreadProps(__spreadValues({
|
|
5437
5561
|
ref,
|
|
@@ -5442,7 +5566,7 @@ var SidebarTrigger = (0, import_react35.forwardRef)((_a, ref) => {
|
|
|
5442
5566
|
className
|
|
5443
5567
|
)
|
|
5444
5568
|
}, props), {
|
|
5445
|
-
children: /* @__PURE__ */ (0,
|
|
5569
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5446
5570
|
FaIcon,
|
|
5447
5571
|
{
|
|
5448
5572
|
name: collapsed ? "chevrons-right" : "chevrons-left",
|
|
@@ -5457,11 +5581,11 @@ SidebarTrigger.displayName = "SidebarTrigger";
|
|
|
5457
5581
|
|
|
5458
5582
|
// src/ui/components/ui/sidebar/SidebarHeader.tsx
|
|
5459
5583
|
var import_react36 = require("react");
|
|
5460
|
-
var
|
|
5584
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
5461
5585
|
var SidebarHeader = (0, import_react36.forwardRef)(
|
|
5462
5586
|
(_a, ref) => {
|
|
5463
5587
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5464
|
-
return /* @__PURE__ */ (0,
|
|
5588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
5465
5589
|
"div",
|
|
5466
5590
|
__spreadValues({
|
|
5467
5591
|
ref,
|
|
@@ -5474,11 +5598,11 @@ SidebarHeader.displayName = "SidebarHeader";
|
|
|
5474
5598
|
|
|
5475
5599
|
// src/ui/components/ui/sidebar/SidebarContent.tsx
|
|
5476
5600
|
var import_react37 = require("react");
|
|
5477
|
-
var
|
|
5601
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
5478
5602
|
var SidebarContent = (0, import_react37.forwardRef)(
|
|
5479
5603
|
(_a, ref) => {
|
|
5480
5604
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5481
|
-
return /* @__PURE__ */ (0,
|
|
5605
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
5482
5606
|
"div",
|
|
5483
5607
|
__spreadValues({
|
|
5484
5608
|
ref,
|
|
@@ -5495,20 +5619,20 @@ SidebarContent.displayName = "SidebarContent";
|
|
|
5495
5619
|
|
|
5496
5620
|
// src/ui/components/ui/sidebar/SidebarGroup.tsx
|
|
5497
5621
|
var import_react38 = require("react");
|
|
5498
|
-
var
|
|
5622
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
5499
5623
|
var SidebarGroup = (0, import_react38.forwardRef)(
|
|
5500
5624
|
(_a, ref) => {
|
|
5501
5625
|
var _b = _a, { label, className, children } = _b, props = __objRest(_b, ["label", "className", "children"]);
|
|
5502
5626
|
const collapsed = useSidebarCollapsed();
|
|
5503
|
-
return /* @__PURE__ */ (0,
|
|
5627
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
5504
5628
|
"div",
|
|
5505
5629
|
__spreadProps(__spreadValues({
|
|
5506
5630
|
ref,
|
|
5507
5631
|
className: cn("flex w-full flex-col p-2", className)
|
|
5508
5632
|
}, props), {
|
|
5509
5633
|
children: [
|
|
5510
|
-
label && !collapsed && /* @__PURE__ */ (0,
|
|
5511
|
-
/* @__PURE__ */ (0,
|
|
5634
|
+
label && !collapsed && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "flex h-8 shrink-0 items-center px-2 text-xs font-medium text-white/50", children: label }),
|
|
5635
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex flex-col gap-1", children })
|
|
5512
5636
|
]
|
|
5513
5637
|
})
|
|
5514
5638
|
);
|
|
@@ -5518,7 +5642,7 @@ SidebarGroup.displayName = "SidebarGroup";
|
|
|
5518
5642
|
|
|
5519
5643
|
// src/ui/components/ui/sidebar/SidebarMenuButton.tsx
|
|
5520
5644
|
var import_react39 = require("react");
|
|
5521
|
-
var
|
|
5645
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
5522
5646
|
var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
5523
5647
|
(_a, ref) => {
|
|
5524
5648
|
var _b = _a, {
|
|
@@ -5541,7 +5665,7 @@ var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
|
5541
5665
|
"className"
|
|
5542
5666
|
]);
|
|
5543
5667
|
const collapsed = useSidebarCollapsed();
|
|
5544
|
-
const button = /* @__PURE__ */ (0,
|
|
5668
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
5545
5669
|
"button",
|
|
5546
5670
|
__spreadProps(__spreadValues({
|
|
5547
5671
|
ref,
|
|
@@ -5557,7 +5681,7 @@ var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
|
5557
5681
|
)
|
|
5558
5682
|
}, props), {
|
|
5559
5683
|
children: [
|
|
5560
|
-
/* @__PURE__ */ (0,
|
|
5684
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5561
5685
|
FaIcon,
|
|
5562
5686
|
{
|
|
5563
5687
|
name: icon,
|
|
@@ -5566,7 +5690,7 @@ var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
|
5566
5690
|
className: "shrink-0"
|
|
5567
5691
|
}
|
|
5568
5692
|
),
|
|
5569
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
5693
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5570
5694
|
Text,
|
|
5571
5695
|
{
|
|
5572
5696
|
as: "span",
|
|
@@ -5577,8 +5701,8 @@ var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
|
5577
5701
|
children: label
|
|
5578
5702
|
}
|
|
5579
5703
|
),
|
|
5580
|
-
!collapsed && shortcut && /* @__PURE__ */ (0,
|
|
5581
|
-
!!badge && /* @__PURE__ */ (0,
|
|
5704
|
+
!collapsed && shortcut && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("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 }),
|
|
5705
|
+
!!badge && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5582
5706
|
"span",
|
|
5583
5707
|
{
|
|
5584
5708
|
className: cn(
|
|
@@ -5593,14 +5717,14 @@ var SidebarMenuButton = (0, import_react39.forwardRef)(
|
|
|
5593
5717
|
})
|
|
5594
5718
|
);
|
|
5595
5719
|
if (!collapsed) return button;
|
|
5596
|
-
return /* @__PURE__ */ (0,
|
|
5720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Tooltip, { content: label, side: "right", children: button });
|
|
5597
5721
|
}
|
|
5598
5722
|
);
|
|
5599
5723
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
5600
5724
|
|
|
5601
5725
|
// src/ui/components/ui/sidebar/SidebarActionCard.tsx
|
|
5602
5726
|
var import_react40 = require("react");
|
|
5603
|
-
var
|
|
5727
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
5604
5728
|
var SidebarActionCard = (0, import_react40.forwardRef)(
|
|
5605
5729
|
(_a, ref) => {
|
|
5606
5730
|
var _b = _a, {
|
|
@@ -5621,11 +5745,11 @@ var SidebarActionCard = (0, import_react40.forwardRef)(
|
|
|
5621
5745
|
const collapsed = useSidebarCollapsed();
|
|
5622
5746
|
const tooltip = subtitle ? `${title} ${subtitle}` : title;
|
|
5623
5747
|
const counter = badge ? badge > 99 ? "99+" : badge : null;
|
|
5624
|
-
const iconBadge = /* @__PURE__ */ (0,
|
|
5625
|
-
/* @__PURE__ */ (0,
|
|
5626
|
-
collapsed && counter && /* @__PURE__ */ (0,
|
|
5748
|
+
const iconBadge = /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "relative flex size-8 shrink-0 items-center justify-center rounded-full bg-yellow-200 text-neutral-800", children: [
|
|
5749
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(FaIcon, { name: icon, family: iconFamily, size: 16 }),
|
|
5750
|
+
collapsed && counter && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("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 })
|
|
5627
5751
|
] });
|
|
5628
|
-
const button = /* @__PURE__ */ (0,
|
|
5752
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
|
|
5629
5753
|
"button",
|
|
5630
5754
|
__spreadProps(__spreadValues({
|
|
5631
5755
|
ref,
|
|
@@ -5640,12 +5764,12 @@ var SidebarActionCard = (0, import_react40.forwardRef)(
|
|
|
5640
5764
|
}, props), {
|
|
5641
5765
|
children: [
|
|
5642
5766
|
iconBadge,
|
|
5643
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
5644
|
-
/* @__PURE__ */ (0,
|
|
5645
|
-
/* @__PURE__ */ (0,
|
|
5646
|
-
subtitle && /* @__PURE__ */ (0,
|
|
5767
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
|
|
5768
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5769
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-sm font-bold text-white", children: title }),
|
|
5770
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "truncate text-xs text-white/60", children: subtitle })
|
|
5647
5771
|
] }),
|
|
5648
|
-
counter ? /* @__PURE__ */ (0,
|
|
5772
|
+
counter ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("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__ */ (0, import_jsx_runtime74.jsx)(
|
|
5649
5773
|
FaIcon,
|
|
5650
5774
|
{
|
|
5651
5775
|
name: "chevron-right",
|
|
@@ -5659,18 +5783,18 @@ var SidebarActionCard = (0, import_react40.forwardRef)(
|
|
|
5659
5783
|
})
|
|
5660
5784
|
);
|
|
5661
5785
|
if (!collapsed) return button;
|
|
5662
|
-
return /* @__PURE__ */ (0,
|
|
5786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Tooltip, { content: tooltip, side: "right", children: button });
|
|
5663
5787
|
}
|
|
5664
5788
|
);
|
|
5665
5789
|
SidebarActionCard.displayName = "SidebarActionCard";
|
|
5666
5790
|
|
|
5667
5791
|
// src/ui/components/ui/sidebar/SidebarMenuSub.tsx
|
|
5668
5792
|
var import_react41 = require("react");
|
|
5669
|
-
var
|
|
5793
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
5670
5794
|
var SidebarMenuSub = (0, import_react41.forwardRef)(
|
|
5671
5795
|
(_a, ref) => {
|
|
5672
5796
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5673
|
-
return /* @__PURE__ */ (0,
|
|
5797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
5674
5798
|
"ul",
|
|
5675
5799
|
__spreadValues({
|
|
5676
5800
|
ref,
|
|
@@ -5686,23 +5810,23 @@ SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
|
5686
5810
|
|
|
5687
5811
|
// src/ui/components/ui/sidebar/SidebarMenuSubItem.tsx
|
|
5688
5812
|
var import_react42 = require("react");
|
|
5689
|
-
var
|
|
5813
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
5690
5814
|
var SidebarMenuSubItem = (0, import_react42.forwardRef)((_a, ref) => {
|
|
5691
5815
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5692
|
-
return /* @__PURE__ */ (0,
|
|
5816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("li", __spreadValues({ ref, className: cn("relative", className) }, props));
|
|
5693
5817
|
});
|
|
5694
5818
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
5695
5819
|
|
|
5696
5820
|
// src/ui/components/ui/sidebar/SidebarMenuSubButton.tsx
|
|
5697
5821
|
var import_react43 = require("react");
|
|
5698
|
-
var
|
|
5822
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
5699
5823
|
var SIZE_CLASS = {
|
|
5700
5824
|
default: "h-10",
|
|
5701
5825
|
lg: "h-14"
|
|
5702
5826
|
};
|
|
5703
5827
|
var SidebarMenuSubButton = (0, import_react43.forwardRef)((_a, ref) => {
|
|
5704
5828
|
var _b = _a, { active, size = "default", className } = _b, props = __objRest(_b, ["active", "size", "className"]);
|
|
5705
|
-
return /* @__PURE__ */ (0,
|
|
5829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
5706
5830
|
"button",
|
|
5707
5831
|
__spreadValues({
|
|
5708
5832
|
ref,
|
|
@@ -5722,11 +5846,11 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
5722
5846
|
|
|
5723
5847
|
// src/ui/components/ui/sidebar/SidebarFooter.tsx
|
|
5724
5848
|
var import_react44 = require("react");
|
|
5725
|
-
var
|
|
5849
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
5726
5850
|
var SidebarFooter = (0, import_react44.forwardRef)(
|
|
5727
5851
|
(_a, ref) => {
|
|
5728
5852
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5729
|
-
return /* @__PURE__ */ (0,
|
|
5853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
5730
5854
|
"div",
|
|
5731
5855
|
__spreadValues({
|
|
5732
5856
|
ref,
|
|
@@ -5738,7 +5862,7 @@ var SidebarFooter = (0, import_react44.forwardRef)(
|
|
|
5738
5862
|
SidebarFooter.displayName = "SidebarFooter";
|
|
5739
5863
|
|
|
5740
5864
|
// src/ui/components/ui/sidebar/SidebarSupportInfo.tsx
|
|
5741
|
-
var
|
|
5865
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
5742
5866
|
var SidebarSupportInfo = ({
|
|
5743
5867
|
phone,
|
|
5744
5868
|
hours,
|
|
@@ -5747,27 +5871,27 @@ var SidebarSupportInfo = ({
|
|
|
5747
5871
|
className
|
|
5748
5872
|
}) => {
|
|
5749
5873
|
const collapsed = useSidebarCollapsed();
|
|
5750
|
-
const badge = /* @__PURE__ */ (0,
|
|
5874
|
+
const badge = /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-full bg-white/10 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(FaIcon, { name: icon, family: iconFamily, size: 16 }) });
|
|
5751
5875
|
if (collapsed) {
|
|
5752
|
-
return /* @__PURE__ */ (0,
|
|
5876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: cn("flex justify-center px-2 py-1.5", className), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Tooltip, { content: `${phone} \u2014 ${hours}`, side: "right", children: badge }) });
|
|
5753
5877
|
}
|
|
5754
|
-
return /* @__PURE__ */ (0,
|
|
5878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: cn("flex items-center gap-2 px-2 py-1.5", className), children: [
|
|
5755
5879
|
badge,
|
|
5756
|
-
/* @__PURE__ */ (0,
|
|
5757
|
-
/* @__PURE__ */ (0,
|
|
5758
|
-
/* @__PURE__ */ (0,
|
|
5880
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex min-w-0 flex-col leading-tight", children: [
|
|
5881
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "truncate text-sm font-bold text-white", children: phone }),
|
|
5882
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "truncate text-xs text-white/50", children: hours })
|
|
5759
5883
|
] })
|
|
5760
5884
|
] });
|
|
5761
5885
|
};
|
|
5762
5886
|
|
|
5763
5887
|
// src/ui/components/ui/sidebar/SidebarMenuSearchInput.tsx
|
|
5764
5888
|
var import_react45 = require("react");
|
|
5765
|
-
var
|
|
5889
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
5766
5890
|
var SidebarMenuSearchInput = (0, import_react45.forwardRef)((_a, ref) => {
|
|
5767
5891
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5768
|
-
return /* @__PURE__ */ (0,
|
|
5769
|
-
/* @__PURE__ */ (0,
|
|
5770
|
-
/* @__PURE__ */ (0,
|
|
5892
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(InputGroup, { children: [
|
|
5893
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(InputGroupAddon, { align: "inline-start", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(FaIcon, { name: "magnifying-glass", size: 14, className: "text-white/50" }) }),
|
|
5894
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
5771
5895
|
Input,
|
|
5772
5896
|
__spreadValues({
|
|
5773
5897
|
ref,
|
|
@@ -5784,7 +5908,7 @@ SidebarMenuSearchInput.displayName = "SidebarMenuSearchInput";
|
|
|
5784
5908
|
// src/ui/components/ui/sidebar/SidebarUserMenu.tsx
|
|
5785
5909
|
var import_react46 = require("react");
|
|
5786
5910
|
var RadixPopover5 = __toESM(require("@radix-ui/react-popover"));
|
|
5787
|
-
var
|
|
5911
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
5788
5912
|
var panelClassName = cn(
|
|
5789
5913
|
"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)]",
|
|
5790
5914
|
"data-[state=open]:animate-[fade-in_150ms_ease-out]"
|
|
@@ -5806,8 +5930,8 @@ var SidebarUserMenu = ({
|
|
|
5806
5930
|
action();
|
|
5807
5931
|
setOpen(false);
|
|
5808
5932
|
};
|
|
5809
|
-
return /* @__PURE__ */ (0,
|
|
5810
|
-
/* @__PURE__ */ (0,
|
|
5933
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(RadixPopover5.Root, { open, onOpenChange: setOpen, children: [
|
|
5934
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(RadixPopover5.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
5811
5935
|
"button",
|
|
5812
5936
|
{
|
|
5813
5937
|
type: "button",
|
|
@@ -5817,10 +5941,10 @@ var SidebarUserMenu = ({
|
|
|
5817
5941
|
className
|
|
5818
5942
|
),
|
|
5819
5943
|
children: [
|
|
5820
|
-
/* @__PURE__ */ (0,
|
|
5821
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
5822
|
-
/* @__PURE__ */ (0,
|
|
5823
|
-
/* @__PURE__ */ (0,
|
|
5944
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Avatar, { name, src: avatarSrc, size: collapsed ? 28 : 32 }),
|
|
5945
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
|
|
5946
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5947
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5824
5948
|
Text,
|
|
5825
5949
|
{
|
|
5826
5950
|
as: "span",
|
|
@@ -5831,10 +5955,10 @@ var SidebarUserMenu = ({
|
|
|
5831
5955
|
children: name
|
|
5832
5956
|
}
|
|
5833
5957
|
),
|
|
5834
|
-
email && /* @__PURE__ */ (0,
|
|
5835
|
-
subtitle && !hideSubtitleInTrigger && /* @__PURE__ */ (0,
|
|
5958
|
+
email && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "truncate text-xs text-white/50", children: email }),
|
|
5959
|
+
subtitle && !hideSubtitleInTrigger && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "truncate text-xs text-white/50", children: subtitle })
|
|
5836
5960
|
] }),
|
|
5837
|
-
/* @__PURE__ */ (0,
|
|
5961
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5838
5962
|
FaIcon,
|
|
5839
5963
|
{
|
|
5840
5964
|
name: "sort",
|
|
@@ -5847,7 +5971,7 @@ var SidebarUserMenu = ({
|
|
|
5847
5971
|
]
|
|
5848
5972
|
}
|
|
5849
5973
|
) }),
|
|
5850
|
-
/* @__PURE__ */ (0,
|
|
5974
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(RadixPopover5.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
5851
5975
|
RadixPopover5.Content,
|
|
5852
5976
|
{
|
|
5853
5977
|
align: "end",
|
|
@@ -5855,10 +5979,10 @@ var SidebarUserMenu = ({
|
|
|
5855
5979
|
sideOffset: 6,
|
|
5856
5980
|
className: panelClassName,
|
|
5857
5981
|
children: [
|
|
5858
|
-
/* @__PURE__ */ (0,
|
|
5859
|
-
/* @__PURE__ */ (0,
|
|
5860
|
-
/* @__PURE__ */ (0,
|
|
5861
|
-
/* @__PURE__ */ (0,
|
|
5982
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center gap-2 px-2 py-1.5", children: [
|
|
5983
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Avatar, { name, src: avatarSrc, size: 32 }),
|
|
5984
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col leading-tight", children: [
|
|
5985
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5862
5986
|
Text,
|
|
5863
5987
|
{
|
|
5864
5988
|
as: "span",
|
|
@@ -5869,20 +5993,20 @@ var SidebarUserMenu = ({
|
|
|
5869
5993
|
children: name
|
|
5870
5994
|
}
|
|
5871
5995
|
),
|
|
5872
|
-
email && /* @__PURE__ */ (0,
|
|
5873
|
-
subtitle && !hideSubtitleInPanel && /* @__PURE__ */ (0,
|
|
5996
|
+
email && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "truncate text-xs text-white/50", children: email }),
|
|
5997
|
+
subtitle && !hideSubtitleInPanel && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "truncate text-xs text-white/50", children: subtitle })
|
|
5874
5998
|
] })
|
|
5875
5999
|
] }),
|
|
5876
|
-
actionGroups.map((group, groupIndex) => /* @__PURE__ */ (0,
|
|
6000
|
+
actionGroups.map((group, groupIndex) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5877
6001
|
"div",
|
|
5878
6002
|
{
|
|
5879
6003
|
className: "border-t border-white/10 py-1 first:border-t-0",
|
|
5880
6004
|
children: group.map(
|
|
5881
6005
|
(item) => {
|
|
5882
6006
|
var _a;
|
|
5883
|
-
return item.renderPanel || item.subActions ? /* @__PURE__ */ (0,
|
|
5884
|
-
/* @__PURE__ */ (0,
|
|
5885
|
-
/* @__PURE__ */ (0,
|
|
6007
|
+
return item.renderPanel || item.subActions ? /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(RadixPopover5.Root, { children: [
|
|
6008
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(RadixPopover5.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("button", { type: "button", className: rowClassName, children: [
|
|
6009
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5886
6010
|
FaIcon,
|
|
5887
6011
|
{
|
|
5888
6012
|
name: item.icon,
|
|
@@ -5891,8 +6015,8 @@ var SidebarUserMenu = ({
|
|
|
5891
6015
|
className: "shrink-0 text-white/70"
|
|
5892
6016
|
}
|
|
5893
6017
|
),
|
|
5894
|
-
/* @__PURE__ */ (0,
|
|
5895
|
-
/* @__PURE__ */ (0,
|
|
6018
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "flex-1", children: item.label }),
|
|
6019
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5896
6020
|
FaIcon,
|
|
5897
6021
|
{
|
|
5898
6022
|
name: "chevron-right",
|
|
@@ -5901,21 +6025,21 @@ var SidebarUserMenu = ({
|
|
|
5901
6025
|
}
|
|
5902
6026
|
)
|
|
5903
6027
|
] }) }),
|
|
5904
|
-
/* @__PURE__ */ (0,
|
|
6028
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(RadixPopover5.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5905
6029
|
RadixPopover5.Content,
|
|
5906
6030
|
{
|
|
5907
6031
|
align: "end",
|
|
5908
6032
|
side: "right",
|
|
5909
6033
|
sideOffset: 6,
|
|
5910
6034
|
className: panelClassName,
|
|
5911
|
-
children: item.renderPanel ? item.renderPanel(() => setOpen(false)) : (_a = item.subActions) == null ? void 0 : _a.map((sub) => /* @__PURE__ */ (0,
|
|
6035
|
+
children: item.renderPanel ? item.renderPanel(() => setOpen(false)) : (_a = item.subActions) == null ? void 0 : _a.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
5912
6036
|
"button",
|
|
5913
6037
|
{
|
|
5914
6038
|
type: "button",
|
|
5915
6039
|
onClick: () => runAndClose(sub.action),
|
|
5916
6040
|
className: rowClassName,
|
|
5917
6041
|
children: [
|
|
5918
|
-
/* @__PURE__ */ (0,
|
|
6042
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5919
6043
|
FaIcon,
|
|
5920
6044
|
{
|
|
5921
6045
|
name: sub.icon,
|
|
@@ -5931,14 +6055,14 @@ var SidebarUserMenu = ({
|
|
|
5931
6055
|
))
|
|
5932
6056
|
}
|
|
5933
6057
|
) })
|
|
5934
|
-
] }, item.label) : /* @__PURE__ */ (0,
|
|
6058
|
+
] }, item.label) : /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
5935
6059
|
"button",
|
|
5936
6060
|
{
|
|
5937
6061
|
type: "button",
|
|
5938
6062
|
onClick: () => runAndClose(item.action),
|
|
5939
6063
|
className: rowClassName,
|
|
5940
6064
|
children: [
|
|
5941
|
-
/* @__PURE__ */ (0,
|
|
6065
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5942
6066
|
FaIcon,
|
|
5943
6067
|
{
|
|
5944
6068
|
name: item.icon,
|
|
@@ -5965,15 +6089,15 @@ var SidebarUserMenu = ({
|
|
|
5965
6089
|
|
|
5966
6090
|
// src/ui/components/ui/Toaster.tsx
|
|
5967
6091
|
var import_sonner = require("sonner");
|
|
5968
|
-
var
|
|
5969
|
-
var Toaster = () => /* @__PURE__ */ (0,
|
|
6092
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
6093
|
+
var Toaster = () => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_sonner.Toaster, { position: "bottom-right", gap: 8 });
|
|
5970
6094
|
|
|
5971
6095
|
// src/ui/lib/toast.tsx
|
|
5972
6096
|
var import_sonner3 = require("sonner");
|
|
5973
6097
|
|
|
5974
6098
|
// src/ui/components/ui/ToastCard.tsx
|
|
5975
6099
|
var import_sonner2 = require("sonner");
|
|
5976
|
-
var
|
|
6100
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
5977
6101
|
var ICON = {
|
|
5978
6102
|
success: "circle-check",
|
|
5979
6103
|
error: "circle-xmark",
|
|
@@ -6015,7 +6139,7 @@ var ToastCard = ({
|
|
|
6015
6139
|
title,
|
|
6016
6140
|
message,
|
|
6017
6141
|
timeOut
|
|
6018
|
-
}) => /* @__PURE__ */ (0,
|
|
6142
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
|
|
6019
6143
|
Layout,
|
|
6020
6144
|
{
|
|
6021
6145
|
role: "status",
|
|
@@ -6027,14 +6151,14 @@ var ToastCard = ({
|
|
|
6027
6151
|
ACCENT_BORDER[type]
|
|
6028
6152
|
),
|
|
6029
6153
|
children: [
|
|
6030
|
-
/* @__PURE__ */ (0,
|
|
6154
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
6031
6155
|
"span",
|
|
6032
6156
|
{
|
|
6033
6157
|
className: cn(
|
|
6034
6158
|
"flex h-7 w-7 shrink-0 items-center justify-center rounded-full",
|
|
6035
6159
|
ACCENT_BG[type]
|
|
6036
6160
|
),
|
|
6037
|
-
children: /* @__PURE__ */ (0,
|
|
6161
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
6038
6162
|
FaIcon,
|
|
6039
6163
|
{
|
|
6040
6164
|
name: ICON[type],
|
|
@@ -6047,21 +6171,21 @@ var ToastCard = ({
|
|
|
6047
6171
|
)
|
|
6048
6172
|
}
|
|
6049
6173
|
),
|
|
6050
|
-
/* @__PURE__ */ (0,
|
|
6051
|
-
title && /* @__PURE__ */ (0,
|
|
6052
|
-
/* @__PURE__ */ (0,
|
|
6174
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(Layout, { column: true, flex: 1, gap: 0.5, className: "min-w-0", children: [
|
|
6175
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm font-bold text-neutral-800", children: title }),
|
|
6176
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm text-neutral-800", children: message })
|
|
6053
6177
|
] }),
|
|
6054
|
-
/* @__PURE__ */ (0,
|
|
6178
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
6055
6179
|
"button",
|
|
6056
6180
|
{
|
|
6057
6181
|
type: "button",
|
|
6058
6182
|
"aria-label": "Fermer",
|
|
6059
6183
|
onClick: () => import_sonner2.toast.dismiss(id),
|
|
6060
6184
|
className: "absolute right-2.5 top-2.5 text-grey-500 hover:text-neutral-800",
|
|
6061
|
-
children: /* @__PURE__ */ (0,
|
|
6185
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(FaIcon, { name: "xmark", size: 14 })
|
|
6062
6186
|
}
|
|
6063
6187
|
),
|
|
6064
|
-
type !== "loading" && /* @__PURE__ */ (0,
|
|
6188
|
+
type !== "loading" && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
6065
6189
|
"div",
|
|
6066
6190
|
{
|
|
6067
6191
|
className: cn(
|
|
@@ -6076,13 +6200,13 @@ var ToastCard = ({
|
|
|
6076
6200
|
);
|
|
6077
6201
|
|
|
6078
6202
|
// src/ui/lib/toast.tsx
|
|
6079
|
-
var
|
|
6203
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
6080
6204
|
var DEFAULT_TIMEOUT = 4e3;
|
|
6081
6205
|
var show = (type, message, options) => {
|
|
6082
6206
|
var _a;
|
|
6083
6207
|
const timeOut = type === "loading" ? Infinity : (_a = options == null ? void 0 : options.timeOut) != null ? _a : DEFAULT_TIMEOUT;
|
|
6084
6208
|
return import_sonner3.toast.custom(
|
|
6085
|
-
(id) => /* @__PURE__ */ (0,
|
|
6209
|
+
(id) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
6086
6210
|
ToastCard,
|
|
6087
6211
|
{
|
|
6088
6212
|
id,
|
|
@@ -6122,7 +6246,7 @@ var toast = {
|
|
|
6122
6246
|
// src/ui/components/ui/PageContainer.tsx
|
|
6123
6247
|
var import_react47 = require("react");
|
|
6124
6248
|
var import_class_variance_authority14 = require("class-variance-authority");
|
|
6125
|
-
var
|
|
6249
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
6126
6250
|
var pageContainerVariants = (0, import_class_variance_authority14.cva)(
|
|
6127
6251
|
"flex h-full w-full flex-col overflow-auto rounded-[10px] bg-grey-200 shadow-[0_1px_4px_rgba(0,0,0,0.16)]",
|
|
6128
6252
|
{
|
|
@@ -6140,7 +6264,7 @@ var pageContainerVariants = (0, import_class_variance_authority14.cva)(
|
|
|
6140
6264
|
var PageContainer = (0, import_react47.forwardRef)(
|
|
6141
6265
|
(_a, ref) => {
|
|
6142
6266
|
var _b = _a, { padding, className } = _b, props = __objRest(_b, ["padding", "className"]);
|
|
6143
|
-
return /* @__PURE__ */ (0,
|
|
6267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
6144
6268
|
"div",
|
|
6145
6269
|
__spreadValues({
|
|
6146
6270
|
ref,
|
|
@@ -6153,7 +6277,7 @@ PageContainer.displayName = "PageContainer";
|
|
|
6153
6277
|
|
|
6154
6278
|
// src/ui/components/ui/IconTabs.tsx
|
|
6155
6279
|
var import_react48 = require("react");
|
|
6156
|
-
var
|
|
6280
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
6157
6281
|
var IconTabs = ({
|
|
6158
6282
|
items,
|
|
6159
6283
|
value,
|
|
@@ -6184,8 +6308,8 @@ var IconTabs = ({
|
|
|
6184
6308
|
if (listRef.current) ro.observe(listRef.current);
|
|
6185
6309
|
return () => ro.disconnect();
|
|
6186
6310
|
}, [updateBar]);
|
|
6187
|
-
return /* @__PURE__ */ (0,
|
|
6188
|
-
/* @__PURE__ */ (0,
|
|
6311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(Layout, { column: true, className, children: [
|
|
6312
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
6189
6313
|
Layout,
|
|
6190
6314
|
{
|
|
6191
6315
|
ref: listRef,
|
|
@@ -6194,7 +6318,7 @@ var IconTabs = ({
|
|
|
6194
6318
|
gap: 1,
|
|
6195
6319
|
className: "relative rounded-[5px] bg-grey-100 p-1",
|
|
6196
6320
|
children: [
|
|
6197
|
-
/* @__PURE__ */ (0,
|
|
6321
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
6198
6322
|
"div",
|
|
6199
6323
|
{
|
|
6200
6324
|
className: "absolute rounded-[5px] bg-blue-50 transition-all duration-300",
|
|
@@ -6210,7 +6334,7 @@ var IconTabs = ({
|
|
|
6210
6334
|
var _a2;
|
|
6211
6335
|
const disabled = disabledIndexes.includes(index);
|
|
6212
6336
|
const active = value === index;
|
|
6213
|
-
return /* @__PURE__ */ (0,
|
|
6337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
6214
6338
|
"button",
|
|
6215
6339
|
{
|
|
6216
6340
|
type: "button",
|
|
@@ -6227,14 +6351,14 @@ var IconTabs = ({
|
|
|
6227
6351
|
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
6228
6352
|
),
|
|
6229
6353
|
children: [
|
|
6230
|
-
/* @__PURE__ */ (0,
|
|
6354
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
6231
6355
|
"i",
|
|
6232
6356
|
{
|
|
6233
6357
|
className: `fa-${(_a2 = item.iconFamily) != null ? _a2 : "regular"} fa-${item.icon}`,
|
|
6234
6358
|
style: { fontSize: 16 }
|
|
6235
6359
|
}
|
|
6236
6360
|
),
|
|
6237
|
-
item.caption && /* @__PURE__ */ (0,
|
|
6361
|
+
item.caption && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
6238
6362
|
"span",
|
|
6239
6363
|
{
|
|
6240
6364
|
className: cn(
|
|
@@ -6252,13 +6376,13 @@ var IconTabs = ({
|
|
|
6252
6376
|
]
|
|
6253
6377
|
}
|
|
6254
6378
|
),
|
|
6255
|
-
((_a = items[value]) == null ? void 0 : _a.label) && /* @__PURE__ */ (0,
|
|
6379
|
+
((_a = items[value]) == null ? void 0 : _a.label) && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "mt-2 text-center text-xs text-neutral-800", children: items[value].label })
|
|
6256
6380
|
] });
|
|
6257
6381
|
};
|
|
6258
6382
|
|
|
6259
6383
|
// src/ui/components/ui/Banner.tsx
|
|
6260
6384
|
var import_class_variance_authority15 = require("class-variance-authority");
|
|
6261
|
-
var
|
|
6385
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
6262
6386
|
var bannerVariants = (0, import_class_variance_authority15.cva)("rounded-[6px] px-4 py-2", {
|
|
6263
6387
|
variants: {
|
|
6264
6388
|
theme: {
|
|
@@ -6315,14 +6439,14 @@ var Banner = ({
|
|
|
6315
6439
|
}) => {
|
|
6316
6440
|
const align = textAlignByJustify[justify];
|
|
6317
6441
|
const textClass = TEXT_CLASS2[theme != null ? theme : "blue-700"];
|
|
6318
|
-
const content = children ? children : message ? /* @__PURE__ */ (0,
|
|
6319
|
-
/* @__PURE__ */ (0,
|
|
6320
|
-
badge && /* @__PURE__ */ (0,
|
|
6321
|
-
title && /* @__PURE__ */ (0,
|
|
6442
|
+
const content = children ? children : message ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Text, { size: "s", align, className: textClass, children: message }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(Layout, { column: true, align: justify, gap: 1, children: [
|
|
6443
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(Layout, { align: "center", gap: 2, children: [
|
|
6444
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Badge, { theme: theme != null ? theme : "blue-700", size: "m", children: badge }),
|
|
6445
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Text, { size: "s", weight: "bold", align, className: textClass, children: title })
|
|
6322
6446
|
] }),
|
|
6323
|
-
subtitle && /* @__PURE__ */ (0,
|
|
6447
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Text, { size: "xs", align, className: textClass, children: subtitle })
|
|
6324
6448
|
] });
|
|
6325
|
-
return /* @__PURE__ */ (0,
|
|
6449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
6326
6450
|
Layout,
|
|
6327
6451
|
{
|
|
6328
6452
|
role: "alert",
|
|
@@ -6333,15 +6457,15 @@ var Banner = ({
|
|
|
6333
6457
|
width,
|
|
6334
6458
|
className: cn(bannerVariants({ theme }), className),
|
|
6335
6459
|
children: [
|
|
6336
|
-
justify === "start" ? content : /* @__PURE__ */ (0,
|
|
6337
|
-
toggle ? /* @__PURE__ */ (0,
|
|
6460
|
+
justify === "start" ? content : /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Layout, { flex: 1, justify, align: "center", gap: 2, wrap: true, children: content }),
|
|
6461
|
+
toggle ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
6338
6462
|
Switch,
|
|
6339
6463
|
{
|
|
6340
6464
|
checked: toggle.checked,
|
|
6341
6465
|
onChange: toggle.onChange,
|
|
6342
6466
|
disabled: toggle.disabled
|
|
6343
6467
|
}
|
|
6344
|
-
) : action && /* @__PURE__ */ (0,
|
|
6468
|
+
) : action && /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
6345
6469
|
Button,
|
|
6346
6470
|
{
|
|
6347
6471
|
variant: "outline",
|
|
@@ -6452,7 +6576,7 @@ var resolveArcPlacement = (request) => {
|
|
|
6452
6576
|
};
|
|
6453
6577
|
|
|
6454
6578
|
// src/ui/components/ui/FloatingButton.tsx
|
|
6455
|
-
var
|
|
6579
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
6456
6580
|
var readStoredOffset = (key) => {
|
|
6457
6581
|
if (!key || typeof window === "undefined") return { x: 0, y: 0 };
|
|
6458
6582
|
try {
|
|
@@ -6650,7 +6774,7 @@ var FloatingButton = ({
|
|
|
6650
6774
|
const { itemSize } = placement.geometry;
|
|
6651
6775
|
const translateX = offset.x + (isOpen ? placement.shift.x : 0);
|
|
6652
6776
|
const translateY = offset.y + (isOpen ? placement.shift.y : 0);
|
|
6653
|
-
return /* @__PURE__ */ (0,
|
|
6777
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
|
|
6654
6778
|
"div",
|
|
6655
6779
|
{
|
|
6656
6780
|
ref: containerRef,
|
|
@@ -6668,7 +6792,7 @@ var FloatingButton = ({
|
|
|
6668
6792
|
actions.map((action, index) => {
|
|
6669
6793
|
var _a;
|
|
6670
6794
|
const itemOffset = arcOffset(index, actions.length, placement.geometry);
|
|
6671
|
-
return /* @__PURE__ */ (0,
|
|
6795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
|
|
6672
6796
|
"button",
|
|
6673
6797
|
{
|
|
6674
6798
|
type: "button",
|
|
@@ -6686,14 +6810,14 @@ var FloatingButton = ({
|
|
|
6686
6810
|
transform: isOpen ? `translate(${itemOffset.x}px, ${itemOffset.y}px)` : "scale(0.4)"
|
|
6687
6811
|
},
|
|
6688
6812
|
children: [
|
|
6689
|
-
/* @__PURE__ */ (0,
|
|
6690
|
-
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ (0,
|
|
6813
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: SUB_ICON[color], children: action.icon }),
|
|
6814
|
+
((_a = action.badge) != null ? _a : 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("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 })
|
|
6691
6815
|
]
|
|
6692
6816
|
},
|
|
6693
6817
|
action.id
|
|
6694
6818
|
);
|
|
6695
6819
|
}),
|
|
6696
|
-
/* @__PURE__ */ (0,
|
|
6820
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
|
|
6697
6821
|
"button",
|
|
6698
6822
|
{
|
|
6699
6823
|
type: "button",
|
|
@@ -6710,8 +6834,8 @@ var FloatingButton = ({
|
|
|
6710
6834
|
touchAction: draggable ? "none" : void 0
|
|
6711
6835
|
},
|
|
6712
6836
|
children: [
|
|
6713
|
-
isOpen ? /* @__PURE__ */ (0,
|
|
6714
|
-
!isOpen && mainBadge > 0 && /* @__PURE__ */ (0,
|
|
6837
|
+
isOpen ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(FaIcon, { name: "xmark", size: 20 }) : icon,
|
|
6838
|
+
!isOpen && mainBadge > 0 && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("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 })
|
|
6715
6839
|
]
|
|
6716
6840
|
}
|
|
6717
6841
|
)
|
|
@@ -6722,7 +6846,7 @@ var FloatingButton = ({
|
|
|
6722
6846
|
|
|
6723
6847
|
// src/ui/components/ui/ActivityFeedPanel.tsx
|
|
6724
6848
|
var import_react50 = require("react");
|
|
6725
|
-
var
|
|
6849
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
6726
6850
|
var PANEL_WIDTH = 500;
|
|
6727
6851
|
var PANEL_MAX_HEIGHT = 750;
|
|
6728
6852
|
var GAP = 8;
|
|
@@ -6789,7 +6913,7 @@ var ActivityFeedPanel = ({
|
|
|
6789
6913
|
return () => window.removeEventListener("resize", recompute);
|
|
6790
6914
|
}, [open, offset]);
|
|
6791
6915
|
if (!open) return null;
|
|
6792
|
-
return /* @__PURE__ */ (0,
|
|
6916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
6793
6917
|
Layout,
|
|
6794
6918
|
{
|
|
6795
6919
|
ref: panelRef,
|
|
@@ -6797,7 +6921,7 @@ var ActivityFeedPanel = ({
|
|
|
6797
6921
|
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)]",
|
|
6798
6922
|
style: __spreadProps(__spreadValues({}, placement), { maxHeight: PANEL_MAX_HEIGHT }),
|
|
6799
6923
|
children: [
|
|
6800
|
-
/* @__PURE__ */ (0,
|
|
6924
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
6801
6925
|
Layout,
|
|
6802
6926
|
{
|
|
6803
6927
|
align: "center",
|
|
@@ -6805,12 +6929,12 @@ var ActivityFeedPanel = ({
|
|
|
6805
6929
|
padding: 4,
|
|
6806
6930
|
className: "border-b border-grey-200",
|
|
6807
6931
|
children: [
|
|
6808
|
-
/* @__PURE__ */ (0,
|
|
6809
|
-
/* @__PURE__ */ (0,
|
|
6932
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(IconBadge, __spreadValues({ name: "bell", size: "m" }, PULSE_ICON_BADGE)),
|
|
6933
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Text, { size: "s", weight: "bold", children: title })
|
|
6810
6934
|
]
|
|
6811
6935
|
}
|
|
6812
6936
|
),
|
|
6813
|
-
/* @__PURE__ */ (0,
|
|
6937
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Layout, { column: true, fullWidth: true, style: { flex: "1 1 0%", minHeight: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
6814
6938
|
"div",
|
|
6815
6939
|
{
|
|
6816
6940
|
style: {
|
|
@@ -6821,10 +6945,10 @@ var ActivityFeedPanel = ({
|
|
|
6821
6945
|
scrollbarWidth: "none"
|
|
6822
6946
|
},
|
|
6823
6947
|
className: "[&::-webkit-scrollbar]:hidden",
|
|
6824
|
-
children: /* @__PURE__ */ (0,
|
|
6825
|
-
isLoading && /* @__PURE__ */ (0,
|
|
6826
|
-
!isLoading && items.length === 0 && /* @__PURE__ */ (0,
|
|
6827
|
-
items.map((item) => /* @__PURE__ */ (0,
|
|
6948
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(Layout, { column: true, padding: 2, gap: 1, fullWidth: true, children: [
|
|
6949
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Layout, { fullWidth: true, justify: "center", padding: 6, children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Spinner, {}) }),
|
|
6950
|
+
!isLoading && items.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Text, { size: "s", color: "grey-500", align: "center", className: "p-4", children: emptyMessage }),
|
|
6951
|
+
items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
6828
6952
|
Layout,
|
|
6829
6953
|
{
|
|
6830
6954
|
gap: 3,
|
|
@@ -6832,7 +6956,7 @@ var ActivityFeedPanel = ({
|
|
|
6832
6956
|
className: "cursor-pointer items-start rounded-[8px] p-2 hover:bg-grey-100",
|
|
6833
6957
|
onClick: item.onClick,
|
|
6834
6958
|
children: [
|
|
6835
|
-
/* @__PURE__ */ (0,
|
|
6959
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
6836
6960
|
IconBadge,
|
|
6837
6961
|
{
|
|
6838
6962
|
name: item.icon,
|
|
@@ -6841,9 +6965,9 @@ var ActivityFeedPanel = ({
|
|
|
6841
6965
|
iconColor: item.iconColor
|
|
6842
6966
|
}
|
|
6843
6967
|
),
|
|
6844
|
-
/* @__PURE__ */ (0,
|
|
6845
|
-
/* @__PURE__ */ (0,
|
|
6846
|
-
/* @__PURE__ */ (0,
|
|
6968
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(Layout, { column: true, gap: 0.5, className: "min-w-0 flex-1", children: [
|
|
6969
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Text, { size: "xs", children: item.text }),
|
|
6970
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Text, { size: "xxs", color: "grey-500", children: item.timeLabel })
|
|
6847
6971
|
] })
|
|
6848
6972
|
]
|
|
6849
6973
|
},
|
|
@@ -6858,7 +6982,7 @@ var ActivityFeedPanel = ({
|
|
|
6858
6982
|
};
|
|
6859
6983
|
|
|
6860
6984
|
// src/ui/components/ui/MetricCard.tsx
|
|
6861
|
-
var
|
|
6985
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
6862
6986
|
var ICON_WRAP_CLASS = {
|
|
6863
6987
|
"blue-700": "bg-blue-50 text-blue-700",
|
|
6864
6988
|
"blue-900": "bg-blue-50 text-blue-900",
|
|
@@ -6887,7 +7011,7 @@ var MetricCard = ({
|
|
|
6887
7011
|
selected = false,
|
|
6888
7012
|
children,
|
|
6889
7013
|
className
|
|
6890
|
-
}) => /* @__PURE__ */ (0,
|
|
7014
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
6891
7015
|
"div",
|
|
6892
7016
|
{
|
|
6893
7017
|
onClick,
|
|
@@ -6897,25 +7021,25 @@ var MetricCard = ({
|
|
|
6897
7021
|
selected && "border-blue-700",
|
|
6898
7022
|
className
|
|
6899
7023
|
),
|
|
6900
|
-
children: /* @__PURE__ */ (0,
|
|
6901
|
-
/* @__PURE__ */ (0,
|
|
7024
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Layout, { align: "center", gap: 3, fullWidth: true, children: [
|
|
7025
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
6902
7026
|
"span",
|
|
6903
7027
|
{
|
|
6904
7028
|
className: cn(
|
|
6905
7029
|
"flex h-9 w-9 shrink-0 items-center justify-center rounded-full",
|
|
6906
7030
|
ICON_WRAP_CLASS[accent]
|
|
6907
7031
|
),
|
|
6908
|
-
children: /* @__PURE__ */ (0,
|
|
7032
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("i", { className: `fa-${iconFamily} fa-${icon}`, style: { fontSize: 18 } })
|
|
6909
7033
|
}
|
|
6910
7034
|
),
|
|
6911
|
-
children ? children : layout === "row" ? /* @__PURE__ */ (0,
|
|
6912
|
-
/* @__PURE__ */ (0,
|
|
6913
|
-
/* @__PURE__ */ (0,
|
|
6914
|
-
] }) : /* @__PURE__ */ (0,
|
|
6915
|
-
/* @__PURE__ */ (0,
|
|
6916
|
-
/* @__PURE__ */ (0,
|
|
6917
|
-
/* @__PURE__ */ (0,
|
|
6918
|
-
subtitle && /* @__PURE__ */ (0,
|
|
7035
|
+
children ? children : layout === "row" ? /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Layout, { align: "center", gap: 1, children: [
|
|
7036
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text, { size: "s", weight: "bold", color: valueColor, children: value }),
|
|
7037
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text, { size: "s", color: "grey-600", children: title })
|
|
7038
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Layout, { column: true, gap: 1, children: [
|
|
7039
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text, { size: "s", color: "grey-600", children: title }),
|
|
7040
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Layout, { align: "baseline", gap: 1, children: [
|
|
7041
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text, { size: "s", weight: "bold", color: valueColor, children: value }),
|
|
7042
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Text, { size: "xs", color: "grey-600", children: subtitle })
|
|
6919
7043
|
] })
|
|
6920
7044
|
] })
|
|
6921
7045
|
] })
|
|
@@ -6923,7 +7047,7 @@ var MetricCard = ({
|
|
|
6923
7047
|
);
|
|
6924
7048
|
|
|
6925
7049
|
// src/ui/components/ui/Tile.tsx
|
|
6926
|
-
var
|
|
7050
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
6927
7051
|
var Tile = ({
|
|
6928
7052
|
children,
|
|
6929
7053
|
onClick,
|
|
@@ -6933,7 +7057,7 @@ var Tile = ({
|
|
|
6933
7057
|
className
|
|
6934
7058
|
}) => {
|
|
6935
7059
|
const isOutline = variant === "outline";
|
|
6936
|
-
return /* @__PURE__ */ (0,
|
|
7060
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
|
|
6937
7061
|
"div",
|
|
6938
7062
|
{
|
|
6939
7063
|
className: cn(
|
|
@@ -6944,7 +7068,7 @@ var Tile = ({
|
|
|
6944
7068
|
className
|
|
6945
7069
|
),
|
|
6946
7070
|
children: [
|
|
6947
|
-
onClick ? /* @__PURE__ */ (0,
|
|
7071
|
+
onClick ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
6948
7072
|
"button",
|
|
6949
7073
|
{
|
|
6950
7074
|
type: "button",
|
|
@@ -6957,7 +7081,7 @@ var Tile = ({
|
|
|
6957
7081
|
children
|
|
6958
7082
|
}
|
|
6959
7083
|
) : children,
|
|
6960
|
-
expandedContent && /* @__PURE__ */ (0,
|
|
7084
|
+
expandedContent && /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: cn(isOutline && "border-t border-grey-300"), children: expandedContent })
|
|
6961
7085
|
]
|
|
6962
7086
|
}
|
|
6963
7087
|
);
|
|
@@ -7112,16 +7236,16 @@ var formatName = (person, fallback = "") => {
|
|
|
7112
7236
|
};
|
|
7113
7237
|
|
|
7114
7238
|
// src/ui/components/ui/history/HistoryChangeRow.tsx
|
|
7115
|
-
var
|
|
7239
|
+
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
7116
7240
|
var HistoryChangeRow = ({ change }) => {
|
|
7117
7241
|
const { label, previousValue, nextValue, href, onClick } = change;
|
|
7118
7242
|
const hasValues = Boolean(previousValue || nextValue);
|
|
7119
|
-
return /* @__PURE__ */ (0,
|
|
7120
|
-
/* @__PURE__ */ (0,
|
|
7121
|
-
previousValue && /* @__PURE__ */ (0,
|
|
7122
|
-
previousValue && nextValue && /* @__PURE__ */ (0,
|
|
7123
|
-
nextValue && href && /* @__PURE__ */ (0,
|
|
7124
|
-
nextValue && onClick && /* @__PURE__ */ (0,
|
|
7243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Layout, { align: "center", gap: 1.5, wrap: true, children: [
|
|
7244
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Text, { size: "xs", weight: "semibold", color: "grey-600", children: hasValues ? `${label} :` : label }),
|
|
7245
|
+
previousValue && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Text, { size: "xs", color: "grey-600", children: previousValue }),
|
|
7246
|
+
previousValue && nextValue && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Icon, { name: "arrow-right", size: "xs", color: "grey-500" }),
|
|
7247
|
+
nextValue && href && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Link, { href, newTab: true, size: "xs", children: nextValue }),
|
|
7248
|
+
nextValue && onClick && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
7125
7249
|
"button",
|
|
7126
7250
|
{
|
|
7127
7251
|
type: "button",
|
|
@@ -7133,27 +7257,27 @@ var HistoryChangeRow = ({ change }) => {
|
|
|
7133
7257
|
children: nextValue
|
|
7134
7258
|
}
|
|
7135
7259
|
),
|
|
7136
|
-
nextValue && !href && !onClick && /* @__PURE__ */ (0,
|
|
7260
|
+
nextValue && !href && !onClick && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Text, { size: "xs", weight: "semibold", children: nextValue })
|
|
7137
7261
|
] });
|
|
7138
7262
|
};
|
|
7139
7263
|
|
|
7140
7264
|
// src/ui/components/ui/history/HistoryEntryCard.tsx
|
|
7141
|
-
var
|
|
7265
|
+
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
7142
7266
|
var CARD_CLASS = "group rounded-lg border border-grey-300 bg-white";
|
|
7143
7267
|
var HistoryEntryCard = ({ entry }) => {
|
|
7144
7268
|
const { title, date, author, badge, changes = [] } = entry;
|
|
7145
7269
|
const hasChanges = changes.length > 0;
|
|
7146
|
-
const summary = /* @__PURE__ */ (0,
|
|
7147
|
-
/* @__PURE__ */ (0,
|
|
7148
|
-
/* @__PURE__ */ (0,
|
|
7149
|
-
author && /* @__PURE__ */ (0,
|
|
7150
|
-
/* @__PURE__ */ (0,
|
|
7151
|
-
/* @__PURE__ */ (0,
|
|
7270
|
+
const summary = /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(Layout, { column: true, gap: 1, fullWidth: true, children: [
|
|
7271
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(Layout, { align: "center", justify: "between", gap: 2, fullWidth: true, children: [
|
|
7272
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(Layout, { align: "center", gap: 3, fullWidth: false, className: "min-w-0", children: [
|
|
7273
|
+
author && /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(import_jsx_runtime93.Fragment, { children: [
|
|
7274
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Avatar, { name: author.name, src: author.avatarSrc, size: 40 }),
|
|
7275
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Text, { size: "xs", weight: "bold", className: "whitespace-nowrap", children: author.name })
|
|
7152
7276
|
] }),
|
|
7153
|
-
badge && /* @__PURE__ */ (0,
|
|
7277
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Badge, { theme: badge.theme, size: "s", children: badge.label })
|
|
7154
7278
|
] }),
|
|
7155
|
-
/* @__PURE__ */ (0,
|
|
7156
|
-
date && /* @__PURE__ */ (0,
|
|
7279
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(Layout, { align: "center", gap: 2, fullWidth: false, className: "shrink-0", children: [
|
|
7280
|
+
date && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
7157
7281
|
Text,
|
|
7158
7282
|
{
|
|
7159
7283
|
size: "xxs",
|
|
@@ -7163,7 +7287,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
7163
7287
|
children: formatDate(date, "dateTime", "fr")
|
|
7164
7288
|
}
|
|
7165
7289
|
),
|
|
7166
|
-
hasChanges && /* @__PURE__ */ (0,
|
|
7290
|
+
hasChanges && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
7167
7291
|
Icon,
|
|
7168
7292
|
{
|
|
7169
7293
|
name: "chevron-down",
|
|
@@ -7174,14 +7298,14 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
7174
7298
|
)
|
|
7175
7299
|
] })
|
|
7176
7300
|
] }),
|
|
7177
|
-
title && /* @__PURE__ */ (0,
|
|
7301
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Text, { size: "xs", className: author ? "pl-[52px]" : void 0, children: title })
|
|
7178
7302
|
] });
|
|
7179
7303
|
if (!hasChanges) {
|
|
7180
|
-
return /* @__PURE__ */ (0,
|
|
7304
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: `${CARD_CLASS} p-3`, children: summary });
|
|
7181
7305
|
}
|
|
7182
|
-
return /* @__PURE__ */ (0,
|
|
7183
|
-
/* @__PURE__ */ (0,
|
|
7184
|
-
/* @__PURE__ */ (0,
|
|
7306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(Collapsible, { className: CARD_CLASS, children: [
|
|
7307
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(CollapsibleTrigger, { className: "w-full cursor-pointer p-3 text-left outline-none focus-visible:ring-2 focus-visible:ring-blue-200", children: summary }),
|
|
7308
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(CollapsibleContent, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
7185
7309
|
Layout,
|
|
7186
7310
|
{
|
|
7187
7311
|
column: true,
|
|
@@ -7189,7 +7313,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
7189
7313
|
paddingX: 3,
|
|
7190
7314
|
paddingBottom: 3,
|
|
7191
7315
|
className: author ? "pl-[64px]" : void 0,
|
|
7192
|
-
children: changes.map((change, index) => /* @__PURE__ */ (0,
|
|
7316
|
+
children: changes.map((change, index) => /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
7193
7317
|
HistoryChangeRow,
|
|
7194
7318
|
{
|
|
7195
7319
|
change
|
|
@@ -7202,7 +7326,7 @@ var HistoryEntryCard = ({ entry }) => {
|
|
|
7202
7326
|
};
|
|
7203
7327
|
|
|
7204
7328
|
// src/ui/components/ui/history/HistoryList.tsx
|
|
7205
|
-
var
|
|
7329
|
+
var import_jsx_runtime94 = require("react/jsx-runtime");
|
|
7206
7330
|
var SKELETON_COUNT = 4;
|
|
7207
7331
|
var HistoryList = ({
|
|
7208
7332
|
entries,
|
|
@@ -7214,8 +7338,8 @@ var HistoryList = ({
|
|
|
7214
7338
|
emptyLabel = "Aucun historique",
|
|
7215
7339
|
emptyDescription = "Aucune action enregistr\xE9e pour le moment.",
|
|
7216
7340
|
notice
|
|
7217
|
-
}) => /* @__PURE__ */ (0,
|
|
7218
|
-
filters.length > 0 && /* @__PURE__ */ (0,
|
|
7341
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(Layout, { column: true, gap: 2, fullWidth: true, className: "flex-1", children: [
|
|
7342
|
+
filters.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Layout, { gap: 2, wrap: true, fullWidth: true, justify: "center", children: filters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
7219
7343
|
TagBubble,
|
|
7220
7344
|
{
|
|
7221
7345
|
label: filter.label,
|
|
@@ -7226,22 +7350,22 @@ var HistoryList = ({
|
|
|
7226
7350
|
},
|
|
7227
7351
|
filter.value
|
|
7228
7352
|
)) }),
|
|
7229
|
-
isLoading && Array.from({ length: SKELETON_COUNT }, (_, index) => /* @__PURE__ */ (0,
|
|
7230
|
-
!isLoading && isError && /* @__PURE__ */ (0,
|
|
7231
|
-
!isLoading && !isError && entries.length === 0 && /* @__PURE__ */ (0,
|
|
7353
|
+
isLoading && Array.from({ length: SKELETON_COUNT }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Skeleton, { height: "72px" }, index)),
|
|
7354
|
+
!isLoading && isError && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Text, { size: "s", color: "red-900", align: "center", children: errorLabel }),
|
|
7355
|
+
!isLoading && !isError && entries.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
7232
7356
|
EmptyState,
|
|
7233
7357
|
{
|
|
7234
|
-
icon: /* @__PURE__ */ (0,
|
|
7358
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(FaIcon, { name: "clock-rotate-left", size: 20 }),
|
|
7235
7359
|
title: emptyLabel,
|
|
7236
7360
|
description: emptyDescription
|
|
7237
7361
|
}
|
|
7238
7362
|
),
|
|
7239
|
-
!isLoading && !isError && entries.map((entry) => /* @__PURE__ */ (0,
|
|
7240
|
-
!isLoading && !isError && notice && /* @__PURE__ */ (0,
|
|
7363
|
+
!isLoading && !isError && entries.map((entry) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(HistoryEntryCard, { entry }, entry.id)),
|
|
7364
|
+
!isLoading && !isError && notice && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Text, { size: "xs", color: "grey-600", align: "center", children: notice })
|
|
7241
7365
|
] });
|
|
7242
7366
|
|
|
7243
7367
|
// src/ui/components/ui/history/HistoryDrawer.tsx
|
|
7244
|
-
var
|
|
7368
|
+
var import_jsx_runtime95 = require("react/jsx-runtime");
|
|
7245
7369
|
var HistoryDrawer = (_a) => {
|
|
7246
7370
|
var _b = _a, {
|
|
7247
7371
|
open,
|
|
@@ -7252,7 +7376,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7252
7376
|
"onClose",
|
|
7253
7377
|
"title"
|
|
7254
7378
|
]);
|
|
7255
|
-
return /* @__PURE__ */ (0,
|
|
7379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
|
|
7256
7380
|
Drawer,
|
|
7257
7381
|
{
|
|
7258
7382
|
open,
|
|
@@ -7260,9 +7384,9 @@ var HistoryDrawer = (_a) => {
|
|
|
7260
7384
|
className: "z-[1060]",
|
|
7261
7385
|
overlayClassName: "z-[1050]",
|
|
7262
7386
|
children: [
|
|
7263
|
-
/* @__PURE__ */ (0,
|
|
7264
|
-
/* @__PURE__ */ (0,
|
|
7265
|
-
/* @__PURE__ */ (0,
|
|
7387
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(DrawerHeader, { children: [
|
|
7388
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(DrawerTitle, { className: "uppercase", children: title }),
|
|
7389
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
7266
7390
|
Icon,
|
|
7267
7391
|
{
|
|
7268
7392
|
name: "xmark",
|
|
@@ -7272,7 +7396,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7272
7396
|
}
|
|
7273
7397
|
) })
|
|
7274
7398
|
] }),
|
|
7275
|
-
/* @__PURE__ */ (0,
|
|
7399
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(DrawerBody, { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(HistoryList, __spreadValues({}, listProps)) })
|
|
7276
7400
|
]
|
|
7277
7401
|
}
|
|
7278
7402
|
);
|
|
@@ -7280,7 +7404,7 @@ var HistoryDrawer = (_a) => {
|
|
|
7280
7404
|
|
|
7281
7405
|
// src/ui/components/ui/history/HistoryButton.tsx
|
|
7282
7406
|
var import_react51 = require("react");
|
|
7283
|
-
var
|
|
7407
|
+
var import_jsx_runtime96 = require("react/jsx-runtime");
|
|
7284
7408
|
var LABEL = "Historique";
|
|
7285
7409
|
var SHORT_TOOLTIP = "Voir l\u2019historique des actions";
|
|
7286
7410
|
var HistoryButton = (_a) => {
|
|
@@ -7301,10 +7425,10 @@ var HistoryButton = (_a) => {
|
|
|
7301
7425
|
onOpenChange == null ? void 0 : onOpenChange(nextIsOpen);
|
|
7302
7426
|
};
|
|
7303
7427
|
const open = () => changeOpen(true);
|
|
7304
|
-
const icon = /* @__PURE__ */ (0,
|
|
7305
|
-
return /* @__PURE__ */ (0,
|
|
7306
|
-
variant === "icon" ? /* @__PURE__ */ (0,
|
|
7307
|
-
/* @__PURE__ */ (0,
|
|
7428
|
+
const icon = /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(FaIcon, { name: "clock-rotate-left", size: 14 });
|
|
7429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_jsx_runtime96.Fragment, { children: [
|
|
7430
|
+
variant === "icon" ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Tooltip, { content: tooltip, className: "z-[1100]", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Button, { iconLeft: icon, "aria-label": LABEL, onClick: open }) }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Button, { label: LABEL, iconLeft: icon, onClick: open }),
|
|
7431
|
+
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
7308
7432
|
HistoryDrawer,
|
|
7309
7433
|
__spreadValues({
|
|
7310
7434
|
open: isOpen,
|
|
@@ -7316,7 +7440,7 @@ var HistoryButton = (_a) => {
|
|
|
7316
7440
|
};
|
|
7317
7441
|
|
|
7318
7442
|
// src/ui/components/ui/Gantt.tsx
|
|
7319
|
-
var
|
|
7443
|
+
var import_jsx_runtime97 = require("react/jsx-runtime");
|
|
7320
7444
|
var Gantt = ({
|
|
7321
7445
|
days,
|
|
7322
7446
|
rows,
|
|
@@ -7332,7 +7456,7 @@ var Gantt = ({
|
|
|
7332
7456
|
const bodyHeight = rows.length * rowHeight;
|
|
7333
7457
|
const clickable = Boolean(onRowClick);
|
|
7334
7458
|
const gridCols = { gridTemplateColumns: `${labelWidth}px minmax(0, 1fr)` };
|
|
7335
|
-
return /* @__PURE__ */ (0,
|
|
7459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
|
|
7336
7460
|
"div",
|
|
7337
7461
|
{
|
|
7338
7462
|
className: cn(
|
|
@@ -7340,13 +7464,13 @@ var Gantt = ({
|
|
|
7340
7464
|
className
|
|
7341
7465
|
),
|
|
7342
7466
|
children: [
|
|
7343
|
-
/* @__PURE__ */ (0,
|
|
7467
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
|
|
7344
7468
|
"div",
|
|
7345
7469
|
{
|
|
7346
7470
|
className: "grid border-b border-grey-300 bg-grey-100",
|
|
7347
7471
|
style: gridCols,
|
|
7348
7472
|
children: [
|
|
7349
|
-
/* @__PURE__ */ (0,
|
|
7473
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7350
7474
|
Layout,
|
|
7351
7475
|
{
|
|
7352
7476
|
align: "center",
|
|
@@ -7354,7 +7478,7 @@ var Gantt = ({
|
|
|
7354
7478
|
children: labelHeader
|
|
7355
7479
|
}
|
|
7356
7480
|
),
|
|
7357
|
-
/* @__PURE__ */ (0,
|
|
7481
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "relative h-[30px]", children: days.map((day) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7358
7482
|
Layout,
|
|
7359
7483
|
{
|
|
7360
7484
|
fullHeight: true,
|
|
@@ -7368,13 +7492,13 @@ var Gantt = ({
|
|
|
7368
7492
|
]
|
|
7369
7493
|
}
|
|
7370
7494
|
),
|
|
7371
|
-
/* @__PURE__ */ (0,
|
|
7495
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
|
|
7372
7496
|
"div",
|
|
7373
7497
|
{
|
|
7374
7498
|
className: "grid overflow-y-auto overflow-x-hidden",
|
|
7375
7499
|
style: __spreadProps(__spreadValues({}, gridCols), { maxHeight }),
|
|
7376
7500
|
children: [
|
|
7377
|
-
/* @__PURE__ */ (0,
|
|
7501
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "min-w-0 border-r border-grey-300", children: rows.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7378
7502
|
Layout,
|
|
7379
7503
|
{
|
|
7380
7504
|
column: true,
|
|
@@ -7391,8 +7515,8 @@ var Gantt = ({
|
|
|
7391
7515
|
},
|
|
7392
7516
|
row.key
|
|
7393
7517
|
)) }),
|
|
7394
|
-
/* @__PURE__ */ (0,
|
|
7395
|
-
days.map((day, i) => /* @__PURE__ */ (0,
|
|
7518
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "min-w-0 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "relative w-full", style: { height: bodyHeight }, children: [
|
|
7519
|
+
days.map((day, i) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7396
7520
|
"div",
|
|
7397
7521
|
{
|
|
7398
7522
|
className: cn(
|
|
@@ -7403,7 +7527,7 @@ var Gantt = ({
|
|
|
7403
7527
|
},
|
|
7404
7528
|
day.key
|
|
7405
7529
|
)),
|
|
7406
|
-
bands.map((band) => /* @__PURE__ */ (0,
|
|
7530
|
+
bands.map((band) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7407
7531
|
"div",
|
|
7408
7532
|
{
|
|
7409
7533
|
title: band.title,
|
|
@@ -7414,7 +7538,7 @@ var Gantt = ({
|
|
|
7414
7538
|
)),
|
|
7415
7539
|
rows.map((row, i) => {
|
|
7416
7540
|
var _a, _b, _c;
|
|
7417
|
-
return /* @__PURE__ */ (0,
|
|
7541
|
+
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7418
7542
|
"div",
|
|
7419
7543
|
{
|
|
7420
7544
|
className: cn(
|
|
@@ -7422,7 +7546,7 @@ var Gantt = ({
|
|
|
7422
7546
|
i === 0 ? "border-t-0" : "border-t border-grey-200"
|
|
7423
7547
|
),
|
|
7424
7548
|
style: { top: i * rowHeight, height: rowHeight },
|
|
7425
|
-
children: row.bar && /* @__PURE__ */ (0,
|
|
7549
|
+
children: row.bar && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7426
7550
|
Layout,
|
|
7427
7551
|
{
|
|
7428
7552
|
align: "center",
|
|
@@ -7437,7 +7561,7 @@ var Gantt = ({
|
|
|
7437
7561
|
background: row.bar.color,
|
|
7438
7562
|
borderColor: row.bar.color
|
|
7439
7563
|
},
|
|
7440
|
-
children: row.bar.label && /* @__PURE__ */ (0,
|
|
7564
|
+
children: row.bar.label && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7441
7565
|
"span",
|
|
7442
7566
|
{
|
|
7443
7567
|
className: "overflow-hidden text-ellipsis whitespace-nowrap text-[10px] font-semibold",
|
|
@@ -7459,7 +7583,7 @@ var Gantt = ({
|
|
|
7459
7583
|
}
|
|
7460
7584
|
);
|
|
7461
7585
|
};
|
|
7462
|
-
var GanttDot = ({ color }) => /* @__PURE__ */ (0,
|
|
7586
|
+
var GanttDot = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7463
7587
|
"span",
|
|
7464
7588
|
{
|
|
7465
7589
|
className: "inline-block h-[9px] w-[9px] shrink-0 rounded-[3px]",
|
|
@@ -7469,7 +7593,7 @@ var GanttDot = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
|
7469
7593
|
var GanttSwatch = ({
|
|
7470
7594
|
color,
|
|
7471
7595
|
filled = true
|
|
7472
|
-
}) => /* @__PURE__ */ (0,
|
|
7596
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
7473
7597
|
"span",
|
|
7474
7598
|
{
|
|
7475
7599
|
className: "box-border inline-block h-3 w-[18px] shrink-0 rounded-[3px] border-[1.5px]",
|
|
@@ -7478,7 +7602,7 @@ var GanttSwatch = ({
|
|
|
7478
7602
|
);
|
|
7479
7603
|
|
|
7480
7604
|
// src/ui/components/ui/Timeline.tsx
|
|
7481
|
-
var
|
|
7605
|
+
var import_jsx_runtime98 = require("react/jsx-runtime");
|
|
7482
7606
|
var Timeline = ({
|
|
7483
7607
|
items,
|
|
7484
7608
|
lineColor = "#F1F5F9",
|
|
@@ -7486,22 +7610,22 @@ var Timeline = ({
|
|
|
7486
7610
|
className
|
|
7487
7611
|
}) => {
|
|
7488
7612
|
if (items.length === 0) {
|
|
7489
|
-
return /* @__PURE__ */ (0,
|
|
7613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Text, { size: "s", color: "grey-600", children: emptyLabel });
|
|
7490
7614
|
}
|
|
7491
|
-
return /* @__PURE__ */ (0,
|
|
7615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Layout, { column: true, className, children: items.map((item, index) => {
|
|
7492
7616
|
var _a;
|
|
7493
7617
|
const isLast = index === items.length - 1;
|
|
7494
7618
|
const dotColor = (_a = item.color) != null ? _a : "#377EA1";
|
|
7495
|
-
return /* @__PURE__ */ (0,
|
|
7496
|
-
/* @__PURE__ */ (0,
|
|
7497
|
-
/* @__PURE__ */ (0,
|
|
7619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Layout, { gap: 3, children: [
|
|
7620
|
+
/* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Layout, { column: true, align: "center", className: "w-4", children: [
|
|
7621
|
+
/* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
|
|
7498
7622
|
"span",
|
|
7499
7623
|
{
|
|
7500
7624
|
className: "mt-1 h-2.5 w-2.5 shrink-0 rounded-full",
|
|
7501
7625
|
style: { background: dotColor }
|
|
7502
7626
|
}
|
|
7503
7627
|
),
|
|
7504
|
-
!isLast && /* @__PURE__ */ (0,
|
|
7628
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
|
|
7505
7629
|
"span",
|
|
7506
7630
|
{
|
|
7507
7631
|
className: "w-0.5 flex-1 min-h-[16px]",
|
|
@@ -7509,10 +7633,10 @@ var Timeline = ({
|
|
|
7509
7633
|
}
|
|
7510
7634
|
)
|
|
7511
7635
|
] }),
|
|
7512
|
-
/* @__PURE__ */ (0,
|
|
7513
|
-
/* @__PURE__ */ (0,
|
|
7514
|
-
item.subtitle && /* @__PURE__ */ (0,
|
|
7515
|
-
item.description && /* @__PURE__ */ (0,
|
|
7636
|
+
/* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Layout, { column: true, gap: 0.5, className: isLast ? void 0 : "pb-4", children: [
|
|
7637
|
+
/* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Text, { size: "s", weight: item.highlighted ? "bold" : "semibold", children: item.title }),
|
|
7638
|
+
item.subtitle && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Text, { size: "xs", color: "grey-600", children: item.subtitle }),
|
|
7639
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "text-xs italic text-neutral-800", children: item.description })
|
|
7516
7640
|
] })
|
|
7517
7641
|
] }, item.id);
|
|
7518
7642
|
}) });
|
|
@@ -7521,7 +7645,7 @@ var Timeline = ({
|
|
|
7521
7645
|
// src/ui/components/ui/ColorPicker.tsx
|
|
7522
7646
|
var import_react52 = require("react");
|
|
7523
7647
|
var import_class_variance_authority16 = require("class-variance-authority");
|
|
7524
|
-
var
|
|
7648
|
+
var import_jsx_runtime99 = require("react/jsx-runtime");
|
|
7525
7649
|
var swatchVariants = (0, import_class_variance_authority16.cva)(
|
|
7526
7650
|
"inline-flex shrink-0 overflow-hidden rounded-[6px] border border-grey-300",
|
|
7527
7651
|
{
|
|
@@ -7565,7 +7689,7 @@ var ColorPicker = (0, import_react52.forwardRef)(
|
|
|
7565
7689
|
if (value === void 0) setInternalColor(next);
|
|
7566
7690
|
onChange == null ? void 0 : onChange(next);
|
|
7567
7691
|
};
|
|
7568
|
-
return /* @__PURE__ */ (0,
|
|
7692
|
+
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
|
|
7569
7693
|
Layout,
|
|
7570
7694
|
{
|
|
7571
7695
|
column: true,
|
|
@@ -7573,21 +7697,21 @@ var ColorPicker = (0, import_react52.forwardRef)(
|
|
|
7573
7697
|
gap: 1.5,
|
|
7574
7698
|
className: cn(disabled && "opacity-60", className),
|
|
7575
7699
|
children: [
|
|
7576
|
-
label && /* @__PURE__ */ (0,
|
|
7577
|
-
/* @__PURE__ */ (0,
|
|
7578
|
-
/* @__PURE__ */ (0,
|
|
7700
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { className: "text-xs font-semibold text-neutral-800", children: label }),
|
|
7701
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Layout, { gap: 2, children: [
|
|
7702
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
7579
7703
|
"label",
|
|
7580
7704
|
{
|
|
7581
7705
|
className: cn(
|
|
7582
7706
|
swatchVariants({ size }),
|
|
7583
7707
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
7584
7708
|
),
|
|
7585
|
-
children: /* @__PURE__ */ (0,
|
|
7709
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
7586
7710
|
"span",
|
|
7587
7711
|
{
|
|
7588
7712
|
className: "relative block h-full w-full",
|
|
7589
7713
|
style: { backgroundColor: currentColor },
|
|
7590
|
-
children: /* @__PURE__ */ (0,
|
|
7714
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
7591
7715
|
"input",
|
|
7592
7716
|
{
|
|
7593
7717
|
ref,
|
|
@@ -7602,7 +7726,7 @@ var ColorPicker = (0, import_react52.forwardRef)(
|
|
|
7602
7726
|
)
|
|
7603
7727
|
}
|
|
7604
7728
|
),
|
|
7605
|
-
/* @__PURE__ */ (0,
|
|
7729
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
7606
7730
|
"input",
|
|
7607
7731
|
__spreadProps(__spreadValues({
|
|
7608
7732
|
type: "text",
|
|
@@ -7642,7 +7766,7 @@ var COLOR_TOKENS = [
|
|
|
7642
7766
|
];
|
|
7643
7767
|
|
|
7644
7768
|
// src/ui/components/ui/ColorTokenPicker.tsx
|
|
7645
|
-
var
|
|
7769
|
+
var import_jsx_runtime100 = require("react/jsx-runtime");
|
|
7646
7770
|
var SWATCH_CLASS = {
|
|
7647
7771
|
"blue-700": "bg-blue-700",
|
|
7648
7772
|
"blue-900": "bg-blue-900",
|
|
@@ -7664,13 +7788,13 @@ var ColorTokenPicker = ({
|
|
|
7664
7788
|
disabled = false
|
|
7665
7789
|
}) => {
|
|
7666
7790
|
const [open, setOpen] = (0, import_react53.useState)(false);
|
|
7667
|
-
return /* @__PURE__ */ (0,
|
|
7791
|
+
return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
7668
7792
|
Popover,
|
|
7669
7793
|
{
|
|
7670
7794
|
open,
|
|
7671
7795
|
onOpenChange: disabled ? void 0 : setOpen,
|
|
7672
7796
|
align: "start",
|
|
7673
|
-
trigger: /* @__PURE__ */ (0,
|
|
7797
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
7674
7798
|
"button",
|
|
7675
7799
|
{
|
|
7676
7800
|
type: "button",
|
|
@@ -7681,7 +7805,7 @@ var ColorTokenPicker = ({
|
|
|
7681
7805
|
"focus-visible:ring-2 focus-visible:ring-blue-200",
|
|
7682
7806
|
disabled && "cursor-not-allowed opacity-50"
|
|
7683
7807
|
),
|
|
7684
|
-
children: /* @__PURE__ */ (0,
|
|
7808
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
7685
7809
|
"span",
|
|
7686
7810
|
{
|
|
7687
7811
|
className: cn(
|
|
@@ -7692,7 +7816,7 @@ var ColorTokenPicker = ({
|
|
|
7692
7816
|
)
|
|
7693
7817
|
}
|
|
7694
7818
|
),
|
|
7695
|
-
children: /* @__PURE__ */ (0,
|
|
7819
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(Layout, { wrap: true, gap: 2, className: "w-[168px] p-1", children: COLOR_TOKENS.map((token) => /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
7696
7820
|
"button",
|
|
7697
7821
|
{
|
|
7698
7822
|
type: "button",
|
|
@@ -7716,7 +7840,7 @@ var ColorTokenPicker = ({
|
|
|
7716
7840
|
|
|
7717
7841
|
// src/ui/components/ui/FileUploadZone.tsx
|
|
7718
7842
|
var import_react54 = require("react");
|
|
7719
|
-
var
|
|
7843
|
+
var import_jsx_runtime101 = require("react/jsx-runtime");
|
|
7720
7844
|
var ACCEPT_MAP = {
|
|
7721
7845
|
png: "image/png",
|
|
7722
7846
|
jpg: "image/jpeg",
|
|
@@ -7844,7 +7968,7 @@ var FileUploadZone = ({
|
|
|
7844
7968
|
onRemove == null ? void 0 : onRemove();
|
|
7845
7969
|
};
|
|
7846
7970
|
if (previewUrl) {
|
|
7847
|
-
return /* @__PURE__ */ (0,
|
|
7971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
7848
7972
|
Layout,
|
|
7849
7973
|
{
|
|
7850
7974
|
column: true,
|
|
@@ -7856,14 +7980,14 @@ var FileUploadZone = ({
|
|
|
7856
7980
|
className
|
|
7857
7981
|
),
|
|
7858
7982
|
children: [
|
|
7859
|
-
fileType && isPdf(fileType) ? /* @__PURE__ */ (0,
|
|
7983
|
+
fileType && isPdf(fileType) ? /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
7860
7984
|
"embed",
|
|
7861
7985
|
{
|
|
7862
7986
|
src: previewUrl,
|
|
7863
7987
|
type: "application/pdf",
|
|
7864
7988
|
className: "h-[500px] w-full rounded"
|
|
7865
7989
|
}
|
|
7866
|
-
) : /* @__PURE__ */ (0,
|
|
7990
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
7867
7991
|
"img",
|
|
7868
7992
|
{
|
|
7869
7993
|
src: previewUrl,
|
|
@@ -7871,13 +7995,13 @@ var FileUploadZone = ({
|
|
|
7871
7995
|
className: "max-h-[400px] max-w-full rounded object-contain"
|
|
7872
7996
|
}
|
|
7873
7997
|
),
|
|
7874
|
-
/* @__PURE__ */ (0,
|
|
7998
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
7875
7999
|
Button,
|
|
7876
8000
|
{
|
|
7877
8001
|
label: "Supprimer",
|
|
7878
8002
|
theme: "red-900",
|
|
7879
8003
|
size: "s",
|
|
7880
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
8004
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(FaIcon, { name: "trash", size: 14 }),
|
|
7881
8005
|
onClick: handleRemove
|
|
7882
8006
|
}
|
|
7883
8007
|
)
|
|
@@ -7886,14 +8010,14 @@ var FileUploadZone = ({
|
|
|
7886
8010
|
);
|
|
7887
8011
|
}
|
|
7888
8012
|
const showBrowse = !compact && browseLabel !== false;
|
|
7889
|
-
return /* @__PURE__ */ (0,
|
|
8013
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
7890
8014
|
Layout,
|
|
7891
8015
|
{
|
|
7892
8016
|
column: true,
|
|
7893
8017
|
gap: 1,
|
|
7894
8018
|
className: cn(fullWidth ? "w-full" : "w-fit", className),
|
|
7895
8019
|
children: [
|
|
7896
|
-
/* @__PURE__ */ (0,
|
|
8020
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
7897
8021
|
"label",
|
|
7898
8022
|
{
|
|
7899
8023
|
onDragOver: handleDragOver,
|
|
@@ -7907,7 +8031,7 @@ var FileUploadZone = ({
|
|
|
7907
8031
|
isDragging ? "border-solid border-blue-100 bg-blue-50" : cn(compact ? "border-grey-300" : "border-blue-50", "bg-grey-100")
|
|
7908
8032
|
),
|
|
7909
8033
|
children: [
|
|
7910
|
-
/* @__PURE__ */ (0,
|
|
8034
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
7911
8035
|
"input",
|
|
7912
8036
|
{
|
|
7913
8037
|
ref: inputRef,
|
|
@@ -7919,11 +8043,11 @@ var FileUploadZone = ({
|
|
|
7919
8043
|
className: "hidden"
|
|
7920
8044
|
}
|
|
7921
8045
|
),
|
|
7922
|
-
showIcon && /* @__PURE__ */ (0,
|
|
7923
|
-
/* @__PURE__ */ (0,
|
|
7924
|
-
showBrowse && /* @__PURE__ */ (0,
|
|
7925
|
-
/* @__PURE__ */ (0,
|
|
7926
|
-
/* @__PURE__ */ (0,
|
|
8046
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(FaIcon, { name: "cloud-arrow-up", size: 28, className: "text-blue-700" }),
|
|
8047
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-center text-sm text-grey-600", children: label }),
|
|
8048
|
+
showBrowse && /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(import_jsx_runtime101.Fragment, { children: [
|
|
8049
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-center text-xs text-grey-600", children: "ou" }),
|
|
8050
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
7927
8051
|
Button,
|
|
7928
8052
|
{
|
|
7929
8053
|
label: browseLabel,
|
|
@@ -7937,15 +8061,15 @@ var FileUploadZone = ({
|
|
|
7937
8061
|
}
|
|
7938
8062
|
)
|
|
7939
8063
|
] }),
|
|
7940
|
-
sublabel && /* @__PURE__ */ (0,
|
|
8064
|
+
sublabel && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-center text-xs text-grey-500", children: sublabel })
|
|
7941
8065
|
]
|
|
7942
8066
|
}
|
|
7943
8067
|
),
|
|
7944
|
-
showFileName && fileName && /* @__PURE__ */ (0,
|
|
7945
|
-
/* @__PURE__ */ (0,
|
|
7946
|
-
/* @__PURE__ */ (0,
|
|
8068
|
+
showFileName && fileName && /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(Layout, { align: "center", justify: "center", gap: 2, children: [
|
|
8069
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(FaIcon, { name: "file", size: 16, className: "text-green-700" }),
|
|
8070
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-sm text-green-700", children: fileName })
|
|
7947
8071
|
] }),
|
|
7948
|
-
inlineError && /* @__PURE__ */ (0,
|
|
8072
|
+
inlineError && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-center text-sm text-red-900", children: inlineError })
|
|
7949
8073
|
]
|
|
7950
8074
|
}
|
|
7951
8075
|
);
|
|
@@ -7953,7 +8077,7 @@ var FileUploadZone = ({
|
|
|
7953
8077
|
|
|
7954
8078
|
// src/ui/components/ui/FilePicker.tsx
|
|
7955
8079
|
var import_react55 = require("react");
|
|
7956
|
-
var
|
|
8080
|
+
var import_jsx_runtime102 = require("react/jsx-runtime");
|
|
7957
8081
|
var FilePicker = ({
|
|
7958
8082
|
label,
|
|
7959
8083
|
onSelect,
|
|
@@ -7968,8 +8092,8 @@ var FilePicker = ({
|
|
|
7968
8092
|
className
|
|
7969
8093
|
}) => {
|
|
7970
8094
|
const inputRef = (0, import_react55.useRef)(null);
|
|
7971
|
-
return /* @__PURE__ */ (0,
|
|
7972
|
-
/* @__PURE__ */ (0,
|
|
8095
|
+
return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(import_jsx_runtime102.Fragment, { children: [
|
|
8096
|
+
/* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
7973
8097
|
"input",
|
|
7974
8098
|
{
|
|
7975
8099
|
ref: inputRef,
|
|
@@ -7985,20 +8109,20 @@ var FilePicker = ({
|
|
|
7985
8109
|
}
|
|
7986
8110
|
}
|
|
7987
8111
|
),
|
|
7988
|
-
variant === "button" ? /* @__PURE__ */ (0,
|
|
8112
|
+
variant === "button" ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
7989
8113
|
Button,
|
|
7990
8114
|
{
|
|
7991
8115
|
variant: "outline",
|
|
7992
8116
|
label,
|
|
7993
8117
|
disabled,
|
|
7994
8118
|
className,
|
|
7995
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
8119
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Icon, { name: icon, family: iconFamily, size: "s", color: "inherit" }),
|
|
7996
8120
|
onClick: () => {
|
|
7997
8121
|
var _a;
|
|
7998
8122
|
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
7999
8123
|
}
|
|
8000
8124
|
}
|
|
8001
|
-
) : /* @__PURE__ */ (0,
|
|
8125
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Tooltip, { content: label, children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
8002
8126
|
Icon,
|
|
8003
8127
|
{
|
|
8004
8128
|
name: icon,
|
|
@@ -8020,7 +8144,7 @@ var FilePicker = ({
|
|
|
8020
8144
|
// src/ui/components/ui/Item.tsx
|
|
8021
8145
|
var import_react56 = require("react");
|
|
8022
8146
|
var import_class_variance_authority17 = require("class-variance-authority");
|
|
8023
|
-
var
|
|
8147
|
+
var import_jsx_runtime103 = require("react/jsx-runtime");
|
|
8024
8148
|
var itemVariants = (0, import_class_variance_authority17.cva)(
|
|
8025
8149
|
"group/item flex items-center rounded-[6px] border border-transparent transition-colors",
|
|
8026
8150
|
{
|
|
@@ -8041,7 +8165,7 @@ var itemVariants = (0, import_class_variance_authority17.cva)(
|
|
|
8041
8165
|
var Item4 = (0, import_react56.forwardRef)(
|
|
8042
8166
|
(_a, ref) => {
|
|
8043
8167
|
var _b = _a, { variant, size, className } = _b, props = __objRest(_b, ["variant", "size", "className"]);
|
|
8044
|
-
return /* @__PURE__ */ (0,
|
|
8168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
8045
8169
|
"div",
|
|
8046
8170
|
__spreadValues({
|
|
8047
8171
|
ref,
|
|
@@ -8066,7 +8190,7 @@ var itemMediaVariants = (0, import_class_variance_authority17.cva)(
|
|
|
8066
8190
|
);
|
|
8067
8191
|
var ItemMedia = (_a) => {
|
|
8068
8192
|
var _b = _a, { variant, className } = _b, props = __objRest(_b, ["variant", "className"]);
|
|
8069
|
-
return /* @__PURE__ */ (0,
|
|
8193
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", __spreadValues({ className: cn(itemMediaVariants({ variant }), className) }, props));
|
|
8070
8194
|
};
|
|
8071
8195
|
var ItemContent = (_a) => {
|
|
8072
8196
|
var _b = _a, {
|
|
@@ -8074,7 +8198,7 @@ var ItemContent = (_a) => {
|
|
|
8074
8198
|
} = _b, props = __objRest(_b, [
|
|
8075
8199
|
"className"
|
|
8076
8200
|
]);
|
|
8077
|
-
return /* @__PURE__ */ (0,
|
|
8201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
8078
8202
|
"div",
|
|
8079
8203
|
__spreadValues({
|
|
8080
8204
|
className: cn("flex min-w-0 flex-1 flex-col gap-1", className)
|
|
@@ -8087,7 +8211,7 @@ var ItemTitle = (_a) => {
|
|
|
8087
8211
|
} = _b, props = __objRest(_b, [
|
|
8088
8212
|
"className"
|
|
8089
8213
|
]);
|
|
8090
|
-
return /* @__PURE__ */ (0,
|
|
8214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
8091
8215
|
"div",
|
|
8092
8216
|
__spreadValues({
|
|
8093
8217
|
className: cn(
|
|
@@ -8103,7 +8227,7 @@ var ItemDescription = (_a) => {
|
|
|
8103
8227
|
} = _b, props = __objRest(_b, [
|
|
8104
8228
|
"className"
|
|
8105
8229
|
]);
|
|
8106
|
-
return /* @__PURE__ */ (0,
|
|
8230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", __spreadValues({ className: cn("text-sm text-grey-500", className) }, props));
|
|
8107
8231
|
};
|
|
8108
8232
|
var ItemActions = (_a) => {
|
|
8109
8233
|
var _b = _a, {
|
|
@@ -8111,7 +8235,7 @@ var ItemActions = (_a) => {
|
|
|
8111
8235
|
} = _b, props = __objRest(_b, [
|
|
8112
8236
|
"className"
|
|
8113
8237
|
]);
|
|
8114
|
-
return /* @__PURE__ */ (0,
|
|
8238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
8115
8239
|
"div",
|
|
8116
8240
|
__spreadValues({
|
|
8117
8241
|
className: cn("flex shrink-0 items-center gap-2", className)
|
|
@@ -8120,7 +8244,7 @@ var ItemActions = (_a) => {
|
|
|
8120
8244
|
};
|
|
8121
8245
|
|
|
8122
8246
|
// src/ui/components/ui/Attachment.tsx
|
|
8123
|
-
var
|
|
8247
|
+
var import_jsx_runtime104 = require("react/jsx-runtime");
|
|
8124
8248
|
var Attachment = ({
|
|
8125
8249
|
name,
|
|
8126
8250
|
size,
|
|
@@ -8134,7 +8258,7 @@ var Attachment = ({
|
|
|
8134
8258
|
}) => {
|
|
8135
8259
|
const isUploading = status === "uploading";
|
|
8136
8260
|
const isError = status === "error";
|
|
8137
|
-
return /* @__PURE__ */ (0,
|
|
8261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
|
|
8138
8262
|
Item4,
|
|
8139
8263
|
{
|
|
8140
8264
|
variant: "outline",
|
|
@@ -8146,12 +8270,12 @@ var Attachment = ({
|
|
|
8146
8270
|
),
|
|
8147
8271
|
style: { width },
|
|
8148
8272
|
children: [
|
|
8149
|
-
/* @__PURE__ */ (0,
|
|
8273
|
+
/* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
8150
8274
|
ItemMedia,
|
|
8151
8275
|
{
|
|
8152
8276
|
variant: "icon",
|
|
8153
8277
|
className: cn(isError && "border-red-900 bg-red-50"),
|
|
8154
|
-
children: isUploading ? /* @__PURE__ */ (0,
|
|
8278
|
+
children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(Spinner, { size: "s", color: "blue-700" }) : /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
8155
8279
|
FaIcon,
|
|
8156
8280
|
{
|
|
8157
8281
|
name: isError ? "triangle-exclamation" : "file",
|
|
@@ -8161,33 +8285,33 @@ var Attachment = ({
|
|
|
8161
8285
|
)
|
|
8162
8286
|
}
|
|
8163
8287
|
),
|
|
8164
|
-
/* @__PURE__ */ (0,
|
|
8165
|
-
/* @__PURE__ */ (0,
|
|
8166
|
-
isUploading ? /* @__PURE__ */ (0,
|
|
8288
|
+
/* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(ItemContent, { children: [
|
|
8289
|
+
/* @__PURE__ */ (0, import_jsx_runtime104.jsx)(ItemTitle, { children: name }),
|
|
8290
|
+
isUploading ? /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(ItemDescription, { className: "text-xs", children: [
|
|
8167
8291
|
"Uploading - ",
|
|
8168
8292
|
progress,
|
|
8169
8293
|
"%"
|
|
8170
|
-
] }) : isError ? /* @__PURE__ */ (0,
|
|
8294
|
+
] }) : isError ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(ItemDescription, { className: "text-xs text-red-900", children: errorMessage }) : size && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(ItemDescription, { className: "text-xs", children: size })
|
|
8171
8295
|
] }),
|
|
8172
|
-
(onRetry || onRemove) && /* @__PURE__ */ (0,
|
|
8173
|
-
isError && onRetry && /* @__PURE__ */ (0,
|
|
8296
|
+
(onRetry || onRemove) && /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(ItemActions, { children: [
|
|
8297
|
+
isError && onRetry && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
8174
8298
|
"button",
|
|
8175
8299
|
{
|
|
8176
8300
|
type: "button",
|
|
8177
8301
|
onClick: onRetry,
|
|
8178
8302
|
"aria-label": `R\xE9essayer l'envoi de ${name}`,
|
|
8179
8303
|
className: "text-grey-400 hover:text-grey-600",
|
|
8180
|
-
children: /* @__PURE__ */ (0,
|
|
8304
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(FaIcon, { name: "rotate-right", size: 12 })
|
|
8181
8305
|
}
|
|
8182
8306
|
),
|
|
8183
|
-
onRemove && /* @__PURE__ */ (0,
|
|
8307
|
+
onRemove && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
8184
8308
|
"button",
|
|
8185
8309
|
{
|
|
8186
8310
|
type: "button",
|
|
8187
8311
|
onClick: onRemove,
|
|
8188
8312
|
"aria-label": `Retirer ${name}`,
|
|
8189
8313
|
className: "text-grey-400 hover:text-grey-600",
|
|
8190
|
-
children: /* @__PURE__ */ (0,
|
|
8314
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(FaIcon, { name: "xmark", size: 12 })
|
|
8191
8315
|
}
|
|
8192
8316
|
)
|
|
8193
8317
|
] })
|
|
@@ -8199,7 +8323,7 @@ var Attachment = ({
|
|
|
8199
8323
|
// src/ui/components/ui/PdfPreview.tsx
|
|
8200
8324
|
var import_react57 = require("react");
|
|
8201
8325
|
var import_react_pdf = require("react-pdf");
|
|
8202
|
-
var
|
|
8326
|
+
var import_jsx_runtime105 = require("react/jsx-runtime");
|
|
8203
8327
|
import_react_pdf.pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${import_react_pdf.pdfjs.version}/build/pdf.worker.min.mjs`;
|
|
8204
8328
|
var PdfPreview = ({
|
|
8205
8329
|
file,
|
|
@@ -8210,9 +8334,9 @@ var PdfPreview = ({
|
|
|
8210
8334
|
const [hasError, setHasError] = (0, import_react57.useState)(false);
|
|
8211
8335
|
const [numPages, setNumPages] = (0, import_react57.useState)(0);
|
|
8212
8336
|
const height = Math.round(width * 1.3);
|
|
8213
|
-
const thumbnailSkeleton = /* @__PURE__ */ (0,
|
|
8337
|
+
const thumbnailSkeleton = /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(Skeleton, { width, height });
|
|
8214
8338
|
if (hasError) {
|
|
8215
|
-
return /* @__PURE__ */ (0,
|
|
8339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
|
|
8216
8340
|
Layout,
|
|
8217
8341
|
{
|
|
8218
8342
|
column: true,
|
|
@@ -8225,13 +8349,13 @@ var PdfPreview = ({
|
|
|
8225
8349
|
),
|
|
8226
8350
|
style: { width, height },
|
|
8227
8351
|
children: [
|
|
8228
|
-
/* @__PURE__ */ (0,
|
|
8229
|
-
/* @__PURE__ */ (0,
|
|
8352
|
+
/* @__PURE__ */ (0, import_jsx_runtime105.jsx)(FaIcon, { name: "file-pdf", size: 24 }),
|
|
8353
|
+
/* @__PURE__ */ (0, import_jsx_runtime105.jsx)("span", { className: "text-xs", children: "Aper\xE7u indisponible" })
|
|
8230
8354
|
]
|
|
8231
8355
|
}
|
|
8232
8356
|
);
|
|
8233
8357
|
}
|
|
8234
|
-
return /* @__PURE__ */ (0,
|
|
8358
|
+
return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
|
|
8235
8359
|
"div",
|
|
8236
8360
|
{
|
|
8237
8361
|
className: cn(
|
|
@@ -8239,7 +8363,7 @@ var PdfPreview = ({
|
|
|
8239
8363
|
className
|
|
8240
8364
|
),
|
|
8241
8365
|
style: { width, maxHeight },
|
|
8242
|
-
children: /* @__PURE__ */ (0,
|
|
8366
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
|
|
8243
8367
|
import_react_pdf.Document,
|
|
8244
8368
|
{
|
|
8245
8369
|
file,
|
|
@@ -8247,7 +8371,7 @@ var PdfPreview = ({
|
|
|
8247
8371
|
onLoadError: () => setHasError(true),
|
|
8248
8372
|
loading: thumbnailSkeleton,
|
|
8249
8373
|
error: thumbnailSkeleton,
|
|
8250
|
-
children: /* @__PURE__ */ (0,
|
|
8374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(Layout, { column: true, gap: 2, className: "p-2", children: Array.from({ length: numPages }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
|
|
8251
8375
|
import_react_pdf.Page,
|
|
8252
8376
|
{
|
|
8253
8377
|
pageNumber: i + 1,
|
|
@@ -8268,7 +8392,7 @@ var import_react59 = require("react");
|
|
|
8268
8392
|
|
|
8269
8393
|
// src/ui/components/ui/VideoPlayer.tsx
|
|
8270
8394
|
var import_react58 = require("react");
|
|
8271
|
-
var
|
|
8395
|
+
var import_jsx_runtime106 = require("react/jsx-runtime");
|
|
8272
8396
|
var formatVideoDuration = (seconds) => {
|
|
8273
8397
|
if (seconds === void 0 || !Number.isFinite(seconds) || seconds < 0)
|
|
8274
8398
|
return "";
|
|
@@ -8367,8 +8491,8 @@ var VideoPlayer = ({
|
|
|
8367
8491
|
const stopBubbling = (e) => {
|
|
8368
8492
|
e.stopPropagation();
|
|
8369
8493
|
};
|
|
8370
|
-
return /* @__PURE__ */ (0,
|
|
8371
|
-
/* @__PURE__ */ (0,
|
|
8494
|
+
return /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(import_jsx_runtime106.Fragment, { children: [
|
|
8495
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
|
|
8372
8496
|
Layout,
|
|
8373
8497
|
{
|
|
8374
8498
|
className: cn(
|
|
@@ -8379,7 +8503,7 @@ var VideoPlayer = ({
|
|
|
8379
8503
|
onClick: stopBubbling,
|
|
8380
8504
|
"data-testid": "video-player",
|
|
8381
8505
|
children: [
|
|
8382
|
-
isInlinePlaying ? /* @__PURE__ */ (0,
|
|
8506
|
+
isInlinePlaying ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8383
8507
|
"video",
|
|
8384
8508
|
{
|
|
8385
8509
|
ref: attachInlineVideo,
|
|
@@ -8391,7 +8515,7 @@ var VideoPlayer = ({
|
|
|
8391
8515
|
className: "h-full w-full bg-black object-contain",
|
|
8392
8516
|
"aria-label": title
|
|
8393
8517
|
}
|
|
8394
|
-
) : /* @__PURE__ */ (0,
|
|
8518
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
|
|
8395
8519
|
"button",
|
|
8396
8520
|
{
|
|
8397
8521
|
type: "button",
|
|
@@ -8399,7 +8523,7 @@ var VideoPlayer = ({
|
|
|
8399
8523
|
"aria-label": `Lire la vid\xE9o ${title}`,
|
|
8400
8524
|
className: "group relative flex h-full w-full items-center justify-center",
|
|
8401
8525
|
children: [
|
|
8402
|
-
visiblePoster ? /* @__PURE__ */ (0,
|
|
8526
|
+
visiblePoster ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8403
8527
|
"img",
|
|
8404
8528
|
{
|
|
8405
8529
|
src: visiblePoster,
|
|
@@ -8410,7 +8534,7 @@ var VideoPlayer = ({
|
|
|
8410
8534
|
) : (
|
|
8411
8535
|
// Sans vignette : première image de la vidéo (métadonnées seulement,
|
|
8412
8536
|
// `#t=0.1` force l'affichage d'une frame), tuile sombre si ça échoue.
|
|
8413
|
-
!hasFramePreviewError && /* @__PURE__ */ (0,
|
|
8537
|
+
!hasFramePreviewError && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8414
8538
|
"video",
|
|
8415
8539
|
{
|
|
8416
8540
|
src: `${src}#t=0.1`,
|
|
@@ -8425,12 +8549,12 @@ var VideoPlayer = ({
|
|
|
8425
8549
|
}
|
|
8426
8550
|
)
|
|
8427
8551
|
),
|
|
8428
|
-
/* @__PURE__ */ (0,
|
|
8429
|
-
formattedDuration && /* @__PURE__ */ (0,
|
|
8552
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)("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__ */ (0, import_jsx_runtime106.jsx)(FaIcon, { name: "play", family: "solid", size: 18 }) }),
|
|
8553
|
+
formattedDuration && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("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 })
|
|
8430
8554
|
]
|
|
8431
8555
|
}
|
|
8432
8556
|
),
|
|
8433
|
-
label && /* @__PURE__ */ (0,
|
|
8557
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8434
8558
|
Layout,
|
|
8435
8559
|
{
|
|
8436
8560
|
width: "auto",
|
|
@@ -8438,14 +8562,14 @@ var VideoPlayer = ({
|
|
|
8438
8562
|
children: label
|
|
8439
8563
|
}
|
|
8440
8564
|
),
|
|
8441
|
-
/* @__PURE__ */ (0,
|
|
8565
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
|
|
8442
8566
|
Layout,
|
|
8443
8567
|
{
|
|
8444
8568
|
width: "auto",
|
|
8445
8569
|
gap: 1,
|
|
8446
8570
|
className: "absolute right-1 top-1 rounded-full bg-white/90",
|
|
8447
8571
|
children: [
|
|
8448
|
-
/* @__PURE__ */ (0,
|
|
8572
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Tooltip, { content: "Agrandir la vid\xE9o", children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8449
8573
|
Icon,
|
|
8450
8574
|
{
|
|
8451
8575
|
name: "up-right-and-down-left-from-center",
|
|
@@ -8454,7 +8578,7 @@ var VideoPlayer = ({
|
|
|
8454
8578
|
"aria-label": "Agrandir la vid\xE9o"
|
|
8455
8579
|
}
|
|
8456
8580
|
) }),
|
|
8457
|
-
/* @__PURE__ */ (0,
|
|
8581
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Tooltip, { content: "T\xE9l\xE9charger la vid\xE9o", children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8458
8582
|
Icon,
|
|
8459
8583
|
{
|
|
8460
8584
|
name: "download",
|
|
@@ -8466,7 +8590,7 @@ var VideoPlayer = ({
|
|
|
8466
8590
|
]
|
|
8467
8591
|
}
|
|
8468
8592
|
),
|
|
8469
|
-
meta && !isInlinePlaying && /* @__PURE__ */ (0,
|
|
8593
|
+
meta && !isInlinePlaying && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8470
8594
|
Layout,
|
|
8471
8595
|
{
|
|
8472
8596
|
width: "auto",
|
|
@@ -8477,7 +8601,7 @@ var VideoPlayer = ({
|
|
|
8477
8601
|
]
|
|
8478
8602
|
}
|
|
8479
8603
|
),
|
|
8480
|
-
/* @__PURE__ */ (0,
|
|
8604
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
|
|
8481
8605
|
Modal,
|
|
8482
8606
|
{
|
|
8483
8607
|
open: isExpanded,
|
|
@@ -8485,9 +8609,9 @@ var VideoPlayer = ({
|
|
|
8485
8609
|
onOpenAutoFocus: focusExpandedVideo,
|
|
8486
8610
|
width: "70vw",
|
|
8487
8611
|
children: [
|
|
8488
|
-
/* @__PURE__ */ (0,
|
|
8489
|
-
/* @__PURE__ */ (0,
|
|
8490
|
-
/* @__PURE__ */ (0,
|
|
8612
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(ModalHeader, { className: "items-start text-left", children: /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(Layout, { align: "center", justify: "between", fullWidth: true, gap: 2, children: [
|
|
8613
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(Layout, { align: "center", gap: 2, className: "min-w-0", children: [
|
|
8614
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8491
8615
|
IconBadge,
|
|
8492
8616
|
{
|
|
8493
8617
|
name: "video",
|
|
@@ -8496,10 +8620,10 @@ var VideoPlayer = ({
|
|
|
8496
8620
|
iconColor: "blue_900"
|
|
8497
8621
|
}
|
|
8498
8622
|
),
|
|
8499
|
-
/* @__PURE__ */ (0,
|
|
8623
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(ModalTitle, { className: "truncate", children: title })
|
|
8500
8624
|
] }),
|
|
8501
|
-
/* @__PURE__ */ (0,
|
|
8502
|
-
/* @__PURE__ */ (0,
|
|
8625
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(Layout, { width: "auto", align: "center", gap: 1, children: [
|
|
8626
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Tooltip, { content: "T\xE9l\xE9charger la vid\xE9o", children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8503
8627
|
Icon,
|
|
8504
8628
|
{
|
|
8505
8629
|
name: "download",
|
|
@@ -8508,7 +8632,7 @@ var VideoPlayer = ({
|
|
|
8508
8632
|
"aria-label": "T\xE9l\xE9charger la vid\xE9o"
|
|
8509
8633
|
}
|
|
8510
8634
|
) }),
|
|
8511
|
-
/* @__PURE__ */ (0,
|
|
8635
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(ModalClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8512
8636
|
Icon,
|
|
8513
8637
|
{
|
|
8514
8638
|
name: "xmark",
|
|
@@ -8520,7 +8644,7 @@ var VideoPlayer = ({
|
|
|
8520
8644
|
) })
|
|
8521
8645
|
] })
|
|
8522
8646
|
] }) }),
|
|
8523
|
-
/* @__PURE__ */ (0,
|
|
8647
|
+
/* @__PURE__ */ (0, import_jsx_runtime106.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
8524
8648
|
"video",
|
|
8525
8649
|
{
|
|
8526
8650
|
ref: attachExpandedVideo,
|
|
@@ -8541,7 +8665,7 @@ var VideoPlayer = ({
|
|
|
8541
8665
|
};
|
|
8542
8666
|
|
|
8543
8667
|
// src/ui/components/ui/AudioPlayer.tsx
|
|
8544
|
-
var
|
|
8668
|
+
var import_jsx_runtime107 = require("react/jsx-runtime");
|
|
8545
8669
|
var DEFAULT_VOLUME2 = 0.5;
|
|
8546
8670
|
var clampVolume2 = (volume) => Number.isFinite(volume) ? Math.min(1, Math.max(0, volume)) : DEFAULT_VOLUME2;
|
|
8547
8671
|
var AudioPlayer = ({
|
|
@@ -8584,7 +8708,7 @@ var AudioPlayer = ({
|
|
|
8584
8708
|
const value = (_b = (_a = audioRef.current) == null ? void 0 : _a.duration) != null ? _b : 0;
|
|
8585
8709
|
setDuration(Number.isFinite(value) ? value : 0);
|
|
8586
8710
|
};
|
|
8587
|
-
return /* @__PURE__ */ (0,
|
|
8711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(
|
|
8588
8712
|
Layout,
|
|
8589
8713
|
{
|
|
8590
8714
|
gap: 3,
|
|
@@ -8593,7 +8717,7 @@ var AudioPlayer = ({
|
|
|
8593
8717
|
className: cn("rounded-lg border border-grey-300 p-2", className),
|
|
8594
8718
|
"data-testid": "audio-player",
|
|
8595
8719
|
children: [
|
|
8596
|
-
/* @__PURE__ */ (0,
|
|
8720
|
+
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
8597
8721
|
"audio",
|
|
8598
8722
|
{
|
|
8599
8723
|
ref: attachAudio,
|
|
@@ -8611,19 +8735,19 @@ var AudioPlayer = ({
|
|
|
8611
8735
|
"aria-label": title
|
|
8612
8736
|
}
|
|
8613
8737
|
),
|
|
8614
|
-
/* @__PURE__ */ (0,
|
|
8738
|
+
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
8615
8739
|
Button,
|
|
8616
8740
|
{
|
|
8617
8741
|
variant: "outline",
|
|
8618
8742
|
size: "s",
|
|
8619
8743
|
iconOnly: true,
|
|
8620
8744
|
"aria-label": isPlaying ? `Mettre en pause ${title}` : `Lire ${title}`,
|
|
8621
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
8745
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(Icon, { name: isPlaying ? "pause" : "play", size: "s", color: "inherit" }),
|
|
8622
8746
|
onClick: togglePlayback
|
|
8623
8747
|
}
|
|
8624
8748
|
),
|
|
8625
|
-
/* @__PURE__ */ (0,
|
|
8626
|
-
/* @__PURE__ */ (0,
|
|
8749
|
+
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(Text, { size: "xs", color: "grey-600", className: "tabular-nums", children: formatVideoDuration(currentTime) }),
|
|
8750
|
+
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
8627
8751
|
"input",
|
|
8628
8752
|
{
|
|
8629
8753
|
type: "range",
|
|
@@ -8637,7 +8761,7 @@ var AudioPlayer = ({
|
|
|
8637
8761
|
className: "h-1 min-w-0 flex-1 cursor-pointer accent-blue-700 disabled:cursor-default"
|
|
8638
8762
|
}
|
|
8639
8763
|
),
|
|
8640
|
-
/* @__PURE__ */ (0,
|
|
8764
|
+
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(Text, { size: "xs", color: "grey-600", className: "tabular-nums", children: formatVideoDuration(duration) })
|
|
8641
8765
|
]
|
|
8642
8766
|
}
|
|
8643
8767
|
);
|
|
@@ -8645,7 +8769,7 @@ var AudioPlayer = ({
|
|
|
8645
8769
|
|
|
8646
8770
|
// src/ui/components/ui/ScrollArea.tsx
|
|
8647
8771
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
8648
|
-
var
|
|
8772
|
+
var import_jsx_runtime108 = require("react/jsx-runtime");
|
|
8649
8773
|
var HIDDEN_SCROLLBAR_CLASSNAME = "w-0 h-0 opacity-0";
|
|
8650
8774
|
var ScrollArea = (_a) => {
|
|
8651
8775
|
var _b = _a, {
|
|
@@ -8661,13 +8785,13 @@ var ScrollArea = (_a) => {
|
|
|
8661
8785
|
"viewportRef",
|
|
8662
8786
|
"maxHeight"
|
|
8663
8787
|
]);
|
|
8664
|
-
return /* @__PURE__ */ (0,
|
|
8788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
|
|
8665
8789
|
RadixScrollArea.Root,
|
|
8666
8790
|
__spreadProps(__spreadValues({
|
|
8667
8791
|
className: cn("relative overflow-hidden", className)
|
|
8668
8792
|
}, props), {
|
|
8669
8793
|
children: [
|
|
8670
|
-
/* @__PURE__ */ (0,
|
|
8794
|
+
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
8671
8795
|
RadixScrollArea.Viewport,
|
|
8672
8796
|
{
|
|
8673
8797
|
ref: viewportRef,
|
|
@@ -8680,23 +8804,23 @@ var ScrollArea = (_a) => {
|
|
|
8680
8804
|
children
|
|
8681
8805
|
}
|
|
8682
8806
|
),
|
|
8683
|
-
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */ (0,
|
|
8807
|
+
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
8684
8808
|
RadixScrollArea.Scrollbar,
|
|
8685
8809
|
{
|
|
8686
8810
|
orientation: "vertical",
|
|
8687
8811
|
className: HIDDEN_SCROLLBAR_CLASSNAME,
|
|
8688
|
-
children: /* @__PURE__ */ (0,
|
|
8812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(RadixScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-grey-400" })
|
|
8689
8813
|
}
|
|
8690
8814
|
),
|
|
8691
|
-
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ (0,
|
|
8815
|
+
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
8692
8816
|
RadixScrollArea.Scrollbar,
|
|
8693
8817
|
{
|
|
8694
8818
|
orientation: "horizontal",
|
|
8695
8819
|
className: HIDDEN_SCROLLBAR_CLASSNAME,
|
|
8696
|
-
children: /* @__PURE__ */ (0,
|
|
8820
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(RadixScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-grey-400" })
|
|
8697
8821
|
}
|
|
8698
8822
|
),
|
|
8699
|
-
/* @__PURE__ */ (0,
|
|
8823
|
+
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(RadixScrollArea.Corner, {})
|
|
8700
8824
|
]
|
|
8701
8825
|
})
|
|
8702
8826
|
);
|
|
@@ -8704,7 +8828,7 @@ var ScrollArea = (_a) => {
|
|
|
8704
8828
|
|
|
8705
8829
|
// src/ui/components/ui/Message.tsx
|
|
8706
8830
|
var import_react60 = require("react");
|
|
8707
|
-
var
|
|
8831
|
+
var import_jsx_runtime109 = require("react/jsx-runtime");
|
|
8708
8832
|
var BUBBLE_BACKGROUND = {
|
|
8709
8833
|
own: { solid: "bg-blue-700", pale: "bg-blue-50" },
|
|
8710
8834
|
teammate: { solid: "bg-blue-100", pale: "bg-blue-100" },
|
|
@@ -8763,7 +8887,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8763
8887
|
const isInverted = isOwn && variant === "solid";
|
|
8764
8888
|
const contentColor = isInverted ? "white" : "neutral-800";
|
|
8765
8889
|
const metaColor = isInverted ? "white" : "grey-500";
|
|
8766
|
-
const avatar = showAuthor ? /* @__PURE__ */ (0,
|
|
8890
|
+
const avatar = showAuthor ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Avatar, { name: authorName, src: authorSrc, size: avatarSize }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
8767
8891
|
Layout,
|
|
8768
8892
|
{
|
|
8769
8893
|
width: `${avatarSize}px`,
|
|
@@ -8771,8 +8895,8 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8771
8895
|
"aria-hidden": "true"
|
|
8772
8896
|
}
|
|
8773
8897
|
);
|
|
8774
|
-
const actionsSlot = actions && !actionsOnHover ? /* @__PURE__ */ (0,
|
|
8775
|
-
const cornerActions = actions && actionsOnHover ? /* @__PURE__ */ (0,
|
|
8898
|
+
const actionsSlot = actions && !actionsOnHover ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Layout, { width: "auto", align: "center", className: "shrink-0", children: actions }) : null;
|
|
8899
|
+
const cornerActions = actions && actionsOnHover ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
8776
8900
|
Layout,
|
|
8777
8901
|
{
|
|
8778
8902
|
width: "auto",
|
|
@@ -8785,7 +8909,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8785
8909
|
children: actions
|
|
8786
8910
|
}
|
|
8787
8911
|
) : null;
|
|
8788
|
-
return /* @__PURE__ */ (0,
|
|
8912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
8789
8913
|
Layout,
|
|
8790
8914
|
__spreadProps(__spreadValues({
|
|
8791
8915
|
ref,
|
|
@@ -8796,7 +8920,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8796
8920
|
className
|
|
8797
8921
|
}, props), {
|
|
8798
8922
|
children: [
|
|
8799
|
-
/* @__PURE__ */ (0,
|
|
8923
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
8800
8924
|
Layout,
|
|
8801
8925
|
{
|
|
8802
8926
|
fullWidth: true,
|
|
@@ -8807,7 +8931,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8807
8931
|
children: [
|
|
8808
8932
|
!isRightAligned && avatar,
|
|
8809
8933
|
isRightAligned && actionsSlot,
|
|
8810
|
-
/* @__PURE__ */ (0,
|
|
8934
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
8811
8935
|
Layout,
|
|
8812
8936
|
{
|
|
8813
8937
|
column: true,
|
|
@@ -8816,7 +8940,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8816
8940
|
align: isRightAligned ? "end" : "start",
|
|
8817
8941
|
style: { maxWidth },
|
|
8818
8942
|
children: [
|
|
8819
|
-
bubble ? /* @__PURE__ */ (0,
|
|
8943
|
+
bubble ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
8820
8944
|
Layout,
|
|
8821
8945
|
{
|
|
8822
8946
|
column: true,
|
|
@@ -8830,16 +8954,16 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8830
8954
|
cornerActions && "pr-8"
|
|
8831
8955
|
),
|
|
8832
8956
|
children: [
|
|
8833
|
-
deleted ? /* @__PURE__ */ (0,
|
|
8834
|
-
time && /* @__PURE__ */ (0,
|
|
8957
|
+
deleted ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { size: "s", italic: true, color: metaColor, children: deletedLabel }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { size: "s", color: contentColor, children }),
|
|
8958
|
+
time && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Layout, { fullWidth: true, justify: "end", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { size: "xxs", color: metaColor, children: time }) }),
|
|
8835
8959
|
cornerActions
|
|
8836
8960
|
]
|
|
8837
8961
|
}
|
|
8838
|
-
) : cornerActions ? /* @__PURE__ */ (0,
|
|
8962
|
+
) : cornerActions ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Layout, { width: "auto", className: "relative", children: [
|
|
8839
8963
|
children,
|
|
8840
8964
|
cornerActions
|
|
8841
8965
|
] }) : children,
|
|
8842
|
-
status && /* @__PURE__ */ (0,
|
|
8966
|
+
status && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Layout, { fullWidth: true, justify: isRightAligned ? "end" : "start", children: status })
|
|
8843
8967
|
]
|
|
8844
8968
|
}
|
|
8845
8969
|
),
|
|
@@ -8848,7 +8972,7 @@ var Message = (0, import_react60.forwardRef)(
|
|
|
8848
8972
|
]
|
|
8849
8973
|
}
|
|
8850
8974
|
),
|
|
8851
|
-
showAuthor && showAuthorName && authorName && /* @__PURE__ */ (0,
|
|
8975
|
+
showAuthor && showAuthorName && authorName && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { size: "xs", color: "grey-600", children: authorName })
|
|
8852
8976
|
]
|
|
8853
8977
|
})
|
|
8854
8978
|
);
|
|
@@ -8858,7 +8982,7 @@ Message.displayName = "Message";
|
|
|
8858
8982
|
|
|
8859
8983
|
// src/ui/components/ui/MessageScroller.tsx
|
|
8860
8984
|
var import_react61 = require("react");
|
|
8861
|
-
var
|
|
8985
|
+
var import_jsx_runtime110 = require("react/jsx-runtime");
|
|
8862
8986
|
var SEPARATOR_LINE = {
|
|
8863
8987
|
neutral: "",
|
|
8864
8988
|
alert: "bg-red-500"
|
|
@@ -8871,9 +8995,9 @@ var MessageDateSeparator = ({
|
|
|
8871
8995
|
label,
|
|
8872
8996
|
tone = "neutral",
|
|
8873
8997
|
className
|
|
8874
|
-
}) => /* @__PURE__ */ (0,
|
|
8875
|
-
/* @__PURE__ */ (0,
|
|
8876
|
-
/* @__PURE__ */ (0,
|
|
8998
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Layout, { fullWidth: true, gap: 2, align: "center", className, children: [
|
|
8999
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Layout, { flex: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Divider, { className: SEPARATOR_LINE[tone] }) }),
|
|
9000
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Layout, { width: "auto", className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
8877
9001
|
Text,
|
|
8878
9002
|
{
|
|
8879
9003
|
size: "xs",
|
|
@@ -8882,7 +9006,7 @@ var MessageDateSeparator = ({
|
|
|
8882
9006
|
children: label
|
|
8883
9007
|
}
|
|
8884
9008
|
) }),
|
|
8885
|
-
/* @__PURE__ */ (0,
|
|
9009
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Layout, { flex: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Divider, { className: SEPARATOR_LINE[tone] }) })
|
|
8886
9010
|
] });
|
|
8887
9011
|
var MessageScroller = ({
|
|
8888
9012
|
children,
|
|
@@ -8922,13 +9046,13 @@ var MessageScroller = ({
|
|
|
8922
9046
|
if (isEmpty && emptyState) return emptyState;
|
|
8923
9047
|
return children;
|
|
8924
9048
|
};
|
|
8925
|
-
const scroller = /* @__PURE__ */ (0,
|
|
9049
|
+
const scroller = /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
8926
9050
|
ScrollArea,
|
|
8927
9051
|
{
|
|
8928
9052
|
viewportRef: scrollerRef,
|
|
8929
9053
|
className: cn("w-full", floatingFooter ? "min-h-0 flex-1" : className),
|
|
8930
9054
|
style: typeof height === "number" ? { height: `${height}px` } : { height },
|
|
8931
|
-
children: /* @__PURE__ */ (0,
|
|
9055
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
8932
9056
|
Layout,
|
|
8933
9057
|
{
|
|
8934
9058
|
column: true,
|
|
@@ -8951,9 +9075,9 @@ var MessageScroller = ({
|
|
|
8951
9075
|
}
|
|
8952
9076
|
);
|
|
8953
9077
|
if (!floatingFooter) return scroller;
|
|
8954
|
-
return /* @__PURE__ */ (0,
|
|
9078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Layout, { column: true, fullWidth: true, className: cn("relative min-h-0", className), children: [
|
|
8955
9079
|
scroller,
|
|
8956
|
-
/* @__PURE__ */ (0,
|
|
9080
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
8957
9081
|
Layout,
|
|
8958
9082
|
{
|
|
8959
9083
|
width: "auto",
|
|
@@ -8966,13 +9090,13 @@ var MessageScroller = ({
|
|
|
8966
9090
|
|
|
8967
9091
|
// src/ui/components/ui/Stepper.tsx
|
|
8968
9092
|
var import_react62 = require("react");
|
|
8969
|
-
var
|
|
9093
|
+
var import_jsx_runtime111 = require("react/jsx-runtime");
|
|
8970
9094
|
var Stepper = ({
|
|
8971
9095
|
numberOfSteps,
|
|
8972
9096
|
current = 0,
|
|
8973
9097
|
size = 28,
|
|
8974
9098
|
className
|
|
8975
|
-
}) => /* @__PURE__ */ (0,
|
|
9099
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
8976
9100
|
"nav",
|
|
8977
9101
|
{
|
|
8978
9102
|
"aria-label": "progression",
|
|
@@ -8983,8 +9107,8 @@ var Stepper = ({
|
|
|
8983
9107
|
children: Array.from({ length: numberOfSteps }, (_, i) => {
|
|
8984
9108
|
const isActive = i === current;
|
|
8985
9109
|
const isCompleted = i < current;
|
|
8986
|
-
return /* @__PURE__ */ (0,
|
|
8987
|
-
/* @__PURE__ */ (0,
|
|
9110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react62.Fragment, { children: [
|
|
9111
|
+
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
8988
9112
|
"div",
|
|
8989
9113
|
{
|
|
8990
9114
|
"aria-hidden": true,
|
|
@@ -8993,10 +9117,10 @@ var Stepper = ({
|
|
|
8993
9117
|
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"
|
|
8994
9118
|
),
|
|
8995
9119
|
style: { width: size, height: size },
|
|
8996
|
-
children: isCompleted ? /* @__PURE__ */ (0,
|
|
9120
|
+
children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(FaIcon, { name: "check", family: "solid", size: 12 }) : i + 1
|
|
8997
9121
|
}
|
|
8998
9122
|
),
|
|
8999
|
-
i < numberOfSteps - 1 && /* @__PURE__ */ (0,
|
|
9123
|
+
i < numberOfSteps - 1 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("div", { className: "h-px min-w-[8px] flex-1 bg-grey-300" })
|
|
9000
9124
|
] }, i);
|
|
9001
9125
|
})
|
|
9002
9126
|
}
|
|
@@ -9010,7 +9134,7 @@ var import_style2 = require("react-day-picker/style.css");
|
|
|
9010
9134
|
var import_date_fns = require("date-fns");
|
|
9011
9135
|
var import_locale2 = require("date-fns/locale");
|
|
9012
9136
|
var RadixPopover6 = __toESM(require("@radix-ui/react-popover"));
|
|
9013
|
-
var
|
|
9137
|
+
var import_jsx_runtime112 = require("react/jsx-runtime");
|
|
9014
9138
|
var formatMonthCaption = (month) => (0, import_date_fns.format)(month, "MMM yyyy", { locale: import_locale2.fr });
|
|
9015
9139
|
var isSameCalendarDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
9016
9140
|
var parseTypedDate = (text, minDate, maxDate) => {
|
|
@@ -9040,7 +9164,7 @@ var autoFormatTypedInput = (raw, isRange) => {
|
|
|
9040
9164
|
var RANGE_PRESETS = [
|
|
9041
9165
|
{
|
|
9042
9166
|
label: "Mois pr\xE9c\xE9dent",
|
|
9043
|
-
icon: /* @__PURE__ */ (0,
|
|
9167
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-arrow-up", size: 15 }),
|
|
9044
9168
|
getValue: () => [
|
|
9045
9169
|
(0, import_date_fns.startOfMonth)((0, import_date_fns.subMonths)(/* @__PURE__ */ new Date(), 1)),
|
|
9046
9170
|
(0, import_date_fns.endOfMonth)((0, import_date_fns.subMonths)(/* @__PURE__ */ new Date(), 1))
|
|
@@ -9048,34 +9172,34 @@ var RANGE_PRESETS = [
|
|
|
9048
9172
|
},
|
|
9049
9173
|
{
|
|
9050
9174
|
label: "Ce mois",
|
|
9051
|
-
icon: /* @__PURE__ */ (0,
|
|
9175
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-days", size: 15 }),
|
|
9052
9176
|
getValue: () => [(0, import_date_fns.startOfMonth)(/* @__PURE__ */ new Date()), (0, import_date_fns.endOfMonth)(/* @__PURE__ */ new Date())]
|
|
9053
9177
|
},
|
|
9054
9178
|
{
|
|
9055
9179
|
label: "Ce trimestre",
|
|
9056
|
-
icon: /* @__PURE__ */ (0,
|
|
9180
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-range", size: 15 }),
|
|
9057
9181
|
getValue: () => [(0, import_date_fns.startOfQuarter)(/* @__PURE__ */ new Date()), (0, import_date_fns.endOfQuarter)(/* @__PURE__ */ new Date())]
|
|
9058
9182
|
},
|
|
9059
9183
|
{
|
|
9060
9184
|
label: "Cette ann\xE9e",
|
|
9061
|
-
icon: /* @__PURE__ */ (0,
|
|
9185
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-clock", size: 15 }),
|
|
9062
9186
|
getValue: () => [(0, import_date_fns.startOfYear)(/* @__PURE__ */ new Date()), (0, import_date_fns.endOfYear)(/* @__PURE__ */ new Date())]
|
|
9063
9187
|
}
|
|
9064
9188
|
];
|
|
9065
9189
|
var SINGLE_PRESETS = [
|
|
9066
9190
|
{
|
|
9067
9191
|
label: "Aujourd'hui",
|
|
9068
|
-
icon: /* @__PURE__ */ (0,
|
|
9192
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-days", size: 15 }),
|
|
9069
9193
|
getValue: () => /* @__PURE__ */ new Date()
|
|
9070
9194
|
},
|
|
9071
9195
|
{
|
|
9072
9196
|
label: "Demain",
|
|
9073
|
-
icon: /* @__PURE__ */ (0,
|
|
9197
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-plus", size: 15 }),
|
|
9074
9198
|
getValue: () => (0, import_date_fns.addDays)(/* @__PURE__ */ new Date(), 1)
|
|
9075
9199
|
},
|
|
9076
9200
|
{
|
|
9077
9201
|
label: "Dans 7 jours",
|
|
9078
|
-
icon: /* @__PURE__ */ (0,
|
|
9202
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar-clock", size: 15 }),
|
|
9079
9203
|
getValue: () => (0, import_date_fns.addDays)(/* @__PURE__ */ new Date(), 7)
|
|
9080
9204
|
}
|
|
9081
9205
|
];
|
|
@@ -9163,7 +9287,7 @@ var DatePicker = ({
|
|
|
9163
9287
|
setIsEditing(false);
|
|
9164
9288
|
}
|
|
9165
9289
|
};
|
|
9166
|
-
const calendar = /* @__PURE__ */ (0,
|
|
9290
|
+
const calendar = /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(RadixPopover6.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9167
9291
|
RadixPopover6.Content,
|
|
9168
9292
|
{
|
|
9169
9293
|
align,
|
|
@@ -9175,7 +9299,7 @@ var DatePicker = ({
|
|
|
9175
9299
|
// mois (range) passait à la ligne et se faisait couper par max-h.
|
|
9176
9300
|
isRange && "max-h-[320px] max-w-[460px] overflow-y-auto [&_.rdp-months]:flex-nowrap"
|
|
9177
9301
|
),
|
|
9178
|
-
children: isRange ? /* @__PURE__ */ (0,
|
|
9302
|
+
children: isRange ? /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9179
9303
|
import_react_day_picker.DayPicker,
|
|
9180
9304
|
{
|
|
9181
9305
|
mode: "range",
|
|
@@ -9193,7 +9317,7 @@ var DatePicker = ({
|
|
|
9193
9317
|
showOutsideDays: true,
|
|
9194
9318
|
formatters: { formatCaption: formatMonthCaption }
|
|
9195
9319
|
}
|
|
9196
|
-
) : /* @__PURE__ */ (0,
|
|
9320
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9197
9321
|
import_react_day_picker.DayPicker,
|
|
9198
9322
|
{
|
|
9199
9323
|
mode: "single",
|
|
@@ -9211,8 +9335,8 @@ var DatePicker = ({
|
|
|
9211
9335
|
}
|
|
9212
9336
|
) });
|
|
9213
9337
|
if (!showPresets) {
|
|
9214
|
-
return /* @__PURE__ */ (0,
|
|
9215
|
-
/* @__PURE__ */ (0,
|
|
9338
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(RadixPopover6.Root, { open, onOpenChange: setOpen, children: [
|
|
9339
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(RadixPopover6.Anchor, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
|
|
9216
9340
|
Layout,
|
|
9217
9341
|
{
|
|
9218
9342
|
align: "center",
|
|
@@ -9226,7 +9350,7 @@ var DatePicker = ({
|
|
|
9226
9350
|
className
|
|
9227
9351
|
),
|
|
9228
9352
|
children: [
|
|
9229
|
-
/* @__PURE__ */ (0,
|
|
9353
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9230
9354
|
"input",
|
|
9231
9355
|
{
|
|
9232
9356
|
type: "text",
|
|
@@ -9247,14 +9371,14 @@ var DatePicker = ({
|
|
|
9247
9371
|
)
|
|
9248
9372
|
}
|
|
9249
9373
|
),
|
|
9250
|
-
/* @__PURE__ */ (0,
|
|
9374
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(RadixPopover6.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9251
9375
|
"button",
|
|
9252
9376
|
{
|
|
9253
9377
|
type: "button",
|
|
9254
9378
|
"aria-label": "Ouvrir le calendrier",
|
|
9255
9379
|
disabled,
|
|
9256
9380
|
className: "flex h-full w-8 shrink-0 items-center justify-center text-grey-500 hover:text-blue-700 disabled:cursor-not-allowed",
|
|
9257
|
-
children: /* @__PURE__ */ (0,
|
|
9381
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar", size: 14 })
|
|
9258
9382
|
}
|
|
9259
9383
|
) })
|
|
9260
9384
|
]
|
|
@@ -9263,10 +9387,10 @@ var DatePicker = ({
|
|
|
9263
9387
|
calendar
|
|
9264
9388
|
] });
|
|
9265
9389
|
}
|
|
9266
|
-
return /* @__PURE__ */ (0,
|
|
9267
|
-
/* @__PURE__ */ (0,
|
|
9268
|
-
/* @__PURE__ */ (0,
|
|
9269
|
-
/* @__PURE__ */ (0,
|
|
9390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(RadixPopover6.Root, { open, onOpenChange: setOpen, children: [
|
|
9391
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Layout, { column: true, gap: 1.5, align, className, children: [
|
|
9392
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Layout, { align: "center", gap: 1.5, width: "auto", children: [
|
|
9393
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(RadixPopover6.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9270
9394
|
"button",
|
|
9271
9395
|
{
|
|
9272
9396
|
type: "button",
|
|
@@ -9278,12 +9402,12 @@ var DatePicker = ({
|
|
|
9278
9402
|
hasValue && !activePreset ? "border-blue-700 bg-blue-50 text-blue-700" : "border-grey-300 bg-white text-neutral-800 hover:border-blue-700",
|
|
9279
9403
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
9280
9404
|
),
|
|
9281
|
-
children: /* @__PURE__ */ (0,
|
|
9405
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(FaIcon, { name: "calendar", size: 16 })
|
|
9282
9406
|
}
|
|
9283
9407
|
) }),
|
|
9284
9408
|
resolvedPresets.map((preset) => {
|
|
9285
9409
|
const active = activePreset === preset.label;
|
|
9286
|
-
return /* @__PURE__ */ (0,
|
|
9410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Tooltip, { content: preset.label, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9287
9411
|
"button",
|
|
9288
9412
|
{
|
|
9289
9413
|
type: "button",
|
|
@@ -9301,7 +9425,7 @@ var DatePicker = ({
|
|
|
9301
9425
|
) }, preset.label);
|
|
9302
9426
|
})
|
|
9303
9427
|
] }),
|
|
9304
|
-
hasValue && /* @__PURE__ */ (0,
|
|
9428
|
+
hasValue && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
9305
9429
|
"button",
|
|
9306
9430
|
{
|
|
9307
9431
|
type: "button",
|
|
@@ -9772,7 +9896,7 @@ var optimizeImage = async (file, desiredBaseName, opts = {}) => {
|
|
|
9772
9896
|
// src/ui/components/ui/Tour.tsx
|
|
9773
9897
|
var import_react64 = require("react");
|
|
9774
9898
|
var import_driver = require("driver.js");
|
|
9775
|
-
var
|
|
9899
|
+
var import_jsx_runtime113 = require("react/jsx-runtime");
|
|
9776
9900
|
var TOUR_TARGET_ATTRIBUTE = "data-tour-target";
|
|
9777
9901
|
var DEFAULT_LABELS = {
|
|
9778
9902
|
previous: "Pr\xE9c\xE9dent",
|
|
@@ -9784,7 +9908,7 @@ var DEFAULT_LABELS = {
|
|
|
9784
9908
|
var STAGE_PADDING = 6;
|
|
9785
9909
|
var GHOST_TRANSITION_MS = 200;
|
|
9786
9910
|
var HIGHLIGHT_DURATION_MS = 400;
|
|
9787
|
-
var TourTarget = ({ id, children }) => /* @__PURE__ */ (0,
|
|
9911
|
+
var TourTarget = ({ id, children }) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", __spreadProps(__spreadValues({}, { [TOUR_TARGET_ATTRIBUTE]: id }), { className: "contents", children }));
|
|
9788
9912
|
var isContents = (element) => getComputedStyle(element).display === "contents";
|
|
9789
9913
|
var measure = (element) => {
|
|
9790
9914
|
if (!isContents(element)) {
|