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