@contractspec/lib.ui-kit 1.46.1 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/ui/accordion.d.ts +5 -5
  2. package/dist/ui/accordion.d.ts.map +1 -1
  3. package/dist/ui/alert-dialog.d.ts +9 -9
  4. package/dist/ui/alert-dialog.d.ts.map +1 -1
  5. package/dist/ui/alert.d.ts +4 -4
  6. package/dist/ui/aspect-ratio.d.ts +5 -5
  7. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  8. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -1
  9. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -1
  10. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -1
  11. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -1
  12. package/dist/ui/avatar.d.ts +4 -4
  13. package/dist/ui/avatar.d.ts.map +1 -1
  14. package/dist/ui/badge.d.ts +3 -3
  15. package/dist/ui/badge.d.ts.map +1 -1
  16. package/dist/ui/breadcrumb.d.ts +8 -8
  17. package/dist/ui/breadcrumb.d.ts.map +1 -1
  18. package/dist/ui/button.d.ts +7 -7
  19. package/dist/ui/button.d.ts.map +1 -1
  20. package/dist/ui/card.d.ts +7 -7
  21. package/dist/ui/checkbox.d.ts +3 -3
  22. package/dist/ui/collapsible.d.ts +8 -8
  23. package/dist/ui/context-menu.d.ts +16 -16
  24. package/dist/ui/date-picker.d.ts +2 -2
  25. package/dist/ui/date-range-picker.d.ts +2 -2
  26. package/dist/ui/datetime-picker.d.ts +2 -2
  27. package/dist/ui/dialog.d.ts +10 -10
  28. package/dist/ui/dropdown-menu.d.ts +16 -16
  29. package/dist/ui/empty-state.d.ts +4 -4
  30. package/dist/ui/empty.d.ts +9 -9
  31. package/dist/ui/fab.d.ts +3 -3
  32. package/dist/ui/field.d.ts +13 -13
  33. package/dist/ui/form.d.ts +7 -7
  34. package/dist/ui/form.d.ts.map +1 -1
  35. package/dist/ui/hover-card.d.ts +6 -6
  36. package/dist/ui/hover-card.d.ts.map +1 -1
  37. package/dist/ui/input.d.ts +2 -2
  38. package/dist/ui/input.d.ts.map +1 -1
  39. package/dist/ui/label.d.ts +2 -2
  40. package/dist/ui/label.d.ts.map +1 -1
  41. package/dist/ui/link.d.ts +2 -2
  42. package/dist/ui/link.d.ts.map +1 -1
  43. package/dist/ui/loading-button.d.ts +2 -2
  44. package/dist/ui/loading-button.d.ts.map +1 -1
  45. package/dist/ui/loading-overlay.d.ts +2 -2
  46. package/dist/ui/loading-overlay.d.ts.map +1 -1
  47. package/dist/ui/loading-screen.d.ts +2 -2
  48. package/dist/ui/loading-screen.d.ts.map +1 -1
  49. package/dist/ui/marketing/FeatureGrid.d.ts +2 -2
  50. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -1
  51. package/dist/ui/marketing/Hero.d.ts +2 -2
  52. package/dist/ui/marketing/Hero.d.ts.map +1 -1
  53. package/dist/ui/marketing/PricingTable.d.ts +2 -2
  54. package/dist/ui/marketing/PricingTable.d.ts.map +1 -1
  55. package/dist/ui/menubar.d.ts +17 -17
  56. package/dist/ui/menubar.d.ts.map +1 -1
  57. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +0 -2
  58. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -1
  59. package/dist/ui/molecules/SkeletonList.d.ts +2 -2
  60. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -1
  61. package/dist/ui/navigation-menu.d.ts +12 -12
  62. package/dist/ui/navigation-menu.d.ts.map +1 -1
  63. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +2 -2
  64. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
  65. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -1
  66. package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -2
  67. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -1
  68. package/dist/ui/organisms/ListPage/ListPage.js +0 -2
  69. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -1
  70. package/dist/ui/page-header.d.ts +4 -4
  71. package/dist/ui/page-header.d.ts.map +1 -1
  72. package/dist/ui/password-strength.d.ts +2 -2
  73. package/dist/ui/password-strength.js.map +1 -1
  74. package/dist/ui/popover.d.ts +6 -6
  75. package/dist/ui/progress.d.ts +2 -2
  76. package/dist/ui/radio-group.d.ts +3 -3
  77. package/dist/ui/select.d.ts +13 -13
  78. package/dist/ui/separator.d.ts +2 -2
  79. package/dist/ui/skeleton.d.ts +2 -2
  80. package/dist/ui/stack.d.ts +17 -17
  81. package/dist/ui/stack.d.ts.map +1 -1
  82. package/dist/ui/stepper.d.ts +2 -2
  83. package/dist/ui/switch.d.ts +2 -2
  84. package/dist/ui/table.d.ts +8 -8
  85. package/dist/ui/tabs.d.ts +9 -9
  86. package/dist/ui/text.d.ts +2 -2
  87. package/dist/ui/time-picker.d.ts +2 -2
  88. package/dist/ui/time-picker.d.ts.map +1 -1
  89. package/dist/ui/toggle-group.d.ts +4 -4
  90. package/dist/ui/toggle.d.ts +6 -6
  91. package/dist/ui/toggle.d.ts.map +1 -1
  92. package/dist/ui/tooltip.d.ts +6 -6
  93. package/dist/ui/tooltip.d.ts.map +1 -1
  94. package/dist/ui/typography.d.ts +12 -12
  95. package/dist/ui/typography.d.ts.map +1 -1
  96. package/dist/ui/useColorScheme.d.ts +2 -2
  97. package/dist/ui/useListState.js.map +1 -1
  98. package/dist/ui/usecases/UseCaseCard.d.ts +2 -2
  99. package/dist/ui/usecases/UserStoryCard.d.ts +2 -2
  100. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -1
  101. package/package.json +13 -10
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,KAAA;;;;;;;;GAQN,cAAA,CAAe,YAAY,KAAA,CAAM,cAAc,cAAA,CAAe,WAAQ,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"label.d.ts","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,KAAA;;;;;;;;GAQN,cAAA,CAAe,YAAY,KAAA,CAAM,cAAc,cAAA,CAAe,WAAQ,oBAAA,CAAA,GAAA,CAAA"}
package/dist/ui/link.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime87 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime102 from "react/jsx-runtime";
3
3
  import { Link as Link$1, LinkProps } from "expo-router";
4
4
 
5
5
  //#region ui/link.d.ts
@@ -8,7 +8,7 @@ declare function Link({
8
8
  ...props
9
9
  }: LinkProps & {
10
10
  ref?: React$1.RefObject<typeof Link$1>;
11
- }): react_jsx_runtime87.JSX.Element;
11
+ }): react_jsx_runtime102.JSX.Element;
12
12
  //#endregion
13
13
  export { Link };
14
14
  //# sourceMappingURL=link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":[],"mappings":";;;;;iBAIS,IAAA;;;GAGN;QACK,OAAA,CAAM,iBAAiB;IAC9B,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"link.d.ts","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":[],"mappings":";;;;;iBAIS,IAAA;;;GAGN;QACK,OAAA,CAAM,iBAAiB;IAC9B,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { ButtonProps } from "./button.js";
2
2
  import React from "react";
3
- import * as react_jsx_runtime88 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime106 from "react/jsx-runtime";
4
4
 
5
5
  //#region ui/loading-button.d.ts
6
6
  interface LoadingButtonProps extends ButtonProps {
@@ -14,7 +14,7 @@ declare function LoadingButton({
14
14
  children,
15
15
  disabled,
16
16
  ...props
17
- }: LoadingButtonProps): react_jsx_runtime88.JSX.Element;
17
+ }: LoadingButtonProps): react_jsx_runtime106.JSX.Element;
18
18
  //#endregion
19
19
  export { LoadingButton };
20
20
  //# sourceMappingURL=loading-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-button.d.ts","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":[],"mappings":";;;;;UAOU,kBAAA,SAA2B;;;EAA3B,QAAA,EAGE,KAAA,CAAM,SAHW;AAM7B;AACE,iBADc,aAAA,CACd;EAAA,SAAA;EAAA,WAAA;EAAA,QAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAKC,kBALD,CAAA,EAKmB,mBAAA,CAAA,GAAA,CAAA,OALnB"}
1
+ {"version":3,"file":"loading-button.d.ts","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":[],"mappings":";;;;;UAOU,kBAAA,SAA2B;;;EAA3B,QAAA,EAGE,KAAA,CAAM,SAHW;AAM7B;AACE,iBADc,aAAA,CACd;EAAA,SAAA;EAAA,WAAA;EAAA,QAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAKC,kBALD,CAAA,EAKmB,oBAAA,CAAA,GAAA,CAAA,OALnB"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime89 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime104 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/loading-overlay.d.ts
4
4
  interface LoadingOverlayProps {
@@ -10,7 +10,7 @@ declare function LoadingOverlay({
10
10
  isVisible,
11
11
  title,
12
12
  subtitle
13
- }: LoadingOverlayProps): react_jsx_runtime89.JSX.Element | null;
13
+ }: LoadingOverlayProps): react_jsx_runtime104.JSX.Element | null;
14
14
  //#endregion
15
15
  export { LoadingOverlay };
16
16
  //# sourceMappingURL=loading-overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-overlay.d.ts","names":[],"sources":["../../ui/loading-overlay.tsx"],"sourcesContent":[],"mappings":";;;UAMU,mBAAA;;;EAAA,QAAA,CAAA,EAAA,MAAA;AAMV;AACE,iBADc,cAAA,CACd;EAAA,SAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAGC,mBAHD,CAAA,EAGoB,mBAAA,CAAA,GAAA,CAAA,OAAA,GAHpB,IAAA"}
1
+ {"version":3,"file":"loading-overlay.d.ts","names":[],"sources":["../../ui/loading-overlay.tsx"],"sourcesContent":[],"mappings":";;;UAMU,mBAAA;;;EAAA,QAAA,CAAA,EAAA,MAAA;AAMV;AACE,iBADc,cAAA,CACd;EAAA,SAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAGC,mBAHD,CAAA,EAGoB,oBAAA,CAAA,GAAA,CAAA,OAAA,GAHpB,IAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime90 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime107 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/loading-screen.d.ts
4
4
  interface LoadingScreenProps {
@@ -8,7 +8,7 @@ interface LoadingScreenProps {
8
8
  declare function LoadingScreen({
9
9
  title,
10
10
  variant
11
- }: LoadingScreenProps): react_jsx_runtime90.JSX.Element;
11
+ }: LoadingScreenProps): react_jsx_runtime107.JSX.Element;
12
12
  //#endregion
13
13
  export { LoadingScreen };
14
14
  //# sourceMappingURL=loading-screen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-screen.d.ts","names":[],"sources":["../../ui/loading-screen.tsx"],"sourcesContent":[],"mappings":";;;UAOU,kBAAA;;;AAQW;AAHL,iBAAA,aAAA,CAAa;EAAA,KAAA;EAAA;AAAA,CAAA,EAG1B,kBAH0B,CAAA,EAGR,mBAAA,CAAA,GAAA,CAAA,OAHQ"}
1
+ {"version":3,"file":"loading-screen.d.ts","names":[],"sources":["../../ui/loading-screen.tsx"],"sourcesContent":[],"mappings":";;;UAOU,kBAAA;;;AAQW;AAHL,iBAAA,aAAA,CAAa;EAAA,KAAA;EAAA;AAAA,CAAA,EAG1B,kBAH0B,CAAA,EAGR,oBAAA,CAAA,GAAA,CAAA,OAHQ"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime109 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime80 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/marketing/FeatureGrid.d.ts
5
5
  interface FeatureItem {
@@ -15,7 +15,7 @@ declare function FeatureGrid({
15
15
  items: FeatureItem[];
16
16
  columns?: 2 | 3 | 4;
17
17
  className?: string;
18
- }): react_jsx_runtime109.JSX.Element;
18
+ }): react_jsx_runtime80.JSX.Element;
19
19
  //#endregion
20
20
  export { FeatureGrid, FeatureItem };
21
21
  //# sourceMappingURL=FeatureGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureGrid.d.ts","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,WAAA;SACR,OAAA,CAAM;gBACC,OAAA,CAAM;EAFL,IAAA,CAAA,EAGR,OAAA,CAAM,SAHa;;AAEZ,iBAIA,WAAA,CAJM;EAAA,KAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACb,KAAM,EAQN,WARM,EAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,CAAA;EAGR,SAAA,CAAA,EAAA,MAAW;CACzB,CAAA,EAOD,oBAAA,CAAA,GAAA,CAAA,OAPC"}
1
+ {"version":3,"file":"FeatureGrid.d.ts","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,WAAA;SACR,OAAA,CAAM;gBACC,OAAA,CAAM;EAFL,IAAA,CAAA,EAGR,OAAA,CAAM,SAHa;;AAEZ,iBAIA,WAAA,CAJM;EAAA,KAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACb,KAAM,EAQN,WARM,EAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,CAAA;EAGR,SAAA,CAAA,EAAA,MAAW;CACzB,CAAA,EAOD,mBAAA,CAAA,GAAA,CAAA,OAPC"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime110 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime81 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/marketing/Hero.d.ts
5
5
  declare function Hero({
@@ -22,7 +22,7 @@ declare function Hero({
22
22
  onClick?: () => void;
23
23
  };
24
24
  className?: string;
25
- }): react_jsx_runtime110.JSX.Element;
25
+ }): react_jsx_runtime81.JSX.Element;
26
26
  //#endregion
27
27
  export { Hero };
28
28
  //# sourceMappingURL=Hero.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.d.ts","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":[],"mappings":";;;;iBAKgB,IAAA;;;;;;;SAOP,OAAA,CAAM;aACF,OAAA,CAAM;EARH,UAAI,CAAA,EAAA;IAClB,KAAA,EAAA,MAAA;IACA,IAAA,CAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA;IAEO,KAAM,EAAA,MAAA;IACF,IAAM,CAAA,EAAA,MAAA;IAIlB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;IAAA,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"Hero.d.ts","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":[],"mappings":";;;;iBAKgB,IAAA;;;;;;;SAOP,OAAA,CAAM;aACF,OAAA,CAAM;EARH,UAAI,CAAA,EAAA;IAClB,KAAA,EAAA,MAAA;IACA,IAAA,CAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA;IAEO,KAAM,EAAA,MAAA;IACF,IAAM,CAAA,EAAA,MAAA;IAIlB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;IAAA,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime111 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime82 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/marketing/PricingTable.d.ts
4
4
  interface PricingTier {
@@ -19,7 +19,7 @@ declare function PricingTable({
19
19
  }: {
20
20
  tiers: PricingTier[];
21
21
  className?: string;
22
- }): react_jsx_runtime111.JSX.Element;
22
+ }): react_jsx_runtime82.JSX.Element;
23
23
  //#endregion
24
24
  export { PricingTable, PricingTier };
25
25
  //# sourceMappingURL=PricingTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PricingTable.d.ts","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,WAAA;;;EAAA,OAAA,CAAA,EAAA,MAAW;EASZ,QAAA,EAAA,MAAY,EAAA;EAC1B,GAAA,CAAA,EAAA;IACA,KAAA,EAAA,MAAA;IAEO,IAAA,CAAA,EAAA,MAAA;IAER,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;;iBANe,YAAA;;;;SAIP;;IAER,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"PricingTable.d.ts","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,WAAA;;;EAAA,OAAA,CAAA,EAAA,MAAW;EASZ,QAAA,EAAA,MAAY,EAAA;EAC1B,GAAA,CAAA,EAAA;IACA,KAAA,EAAA,MAAA;IAEO,IAAA,CAAA,EAAA,MAAA;IAER,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;;iBANe,YAAA;;;;SAIP;;IAER,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,27 +1,27 @@
1
1
  import * as React$1 from "react";
2
- import * as react_native31 from "react-native";
2
+ import * as react_native34 from "react-native";
3
3
  import { TextProps, View } from "react-native";
4
- import * as react_jsx_runtime97 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime111 from "react/jsx-runtime";
5
5
  import * as MenubarPrimitive from "@rn-primitives/menubar";
6
6
 
7
7
  //#region ui/menubar.d.ts
8
- declare const MenubarMenu: React$1.ForwardRefExoticComponent<react_native31.ViewProps & {
8
+ declare const MenubarMenu: React$1.ForwardRefExoticComponent<react_native34.ViewProps & {
9
9
  asChild?: boolean;
10
10
  } & {
11
11
  value: string | undefined;
12
12
  } & React$1.RefAttributes<View>>;
13
- declare const MenubarGroup: React$1.ForwardRefExoticComponent<react_native31.ViewProps & {
13
+ declare const MenubarGroup: React$1.ForwardRefExoticComponent<react_native34.ViewProps & {
14
14
  asChild?: boolean;
15
15
  } & React$1.RefAttributes<View>>;
16
16
  declare const MenubarPortal: typeof MenubarPrimitive.Portal;
17
- declare const MenubarSub: React$1.ForwardRefExoticComponent<react_native31.ViewProps & {
17
+ declare const MenubarSub: React$1.ForwardRefExoticComponent<react_native34.ViewProps & {
18
18
  asChild?: boolean;
19
19
  } & {
20
20
  defaultOpen?: boolean;
21
21
  open?: boolean;
22
22
  onOpenChange?: (value: boolean) => void;
23
23
  } & React$1.RefAttributes<View>>;
24
- declare const MenubarRadioGroup: React$1.ForwardRefExoticComponent<react_native31.ViewProps & {
24
+ declare const MenubarRadioGroup: React$1.ForwardRefExoticComponent<react_native34.ViewProps & {
25
25
  asChild?: boolean;
26
26
  } & {
27
27
  value: string | undefined;
@@ -32,13 +32,13 @@ declare function Menubar({
32
32
  ...props
33
33
  }: MenubarPrimitive.RootProps & {
34
34
  ref?: React$1.RefObject<MenubarPrimitive.RootRef>;
35
- }): react_jsx_runtime97.JSX.Element;
35
+ }): react_jsx_runtime111.JSX.Element;
36
36
  declare function MenubarTrigger({
37
37
  className,
38
38
  ...props
39
39
  }: MenubarPrimitive.TriggerProps & {
40
40
  ref?: React$1.RefObject<MenubarPrimitive.TriggerRef>;
41
- }): react_jsx_runtime97.JSX.Element;
41
+ }): react_jsx_runtime111.JSX.Element;
42
42
  declare function MenubarSubTrigger({
43
43
  className,
44
44
  inset,
@@ -49,13 +49,13 @@ declare function MenubarSubTrigger({
49
49
  className?: string;
50
50
  inset?: boolean;
51
51
  children?: React$1.ReactNode;
52
- }): react_jsx_runtime97.JSX.Element;
52
+ }): react_jsx_runtime111.JSX.Element;
53
53
  declare function MenubarSubContent({
54
54
  className,
55
55
  ...props
56
56
  }: MenubarPrimitive.SubContentProps & {
57
57
  ref?: React$1.RefObject<MenubarPrimitive.SubContentRef>;
58
- }): react_jsx_runtime97.JSX.Element;
58
+ }): react_jsx_runtime111.JSX.Element;
59
59
  declare function MenubarContent({
60
60
  className,
61
61
  portalHost,
@@ -64,7 +64,7 @@ declare function MenubarContent({
64
64
  ref?: React$1.RefObject<MenubarPrimitive.ContentRef>;
65
65
  className?: string;
66
66
  portalHost?: string;
67
- }): react_jsx_runtime97.JSX.Element;
67
+ }): react_jsx_runtime111.JSX.Element;
68
68
  declare function MenubarItem({
69
69
  className,
70
70
  inset,
@@ -73,7 +73,7 @@ declare function MenubarItem({
73
73
  ref?: React$1.RefObject<MenubarPrimitive.ItemRef>;
74
74
  className?: string;
75
75
  inset?: boolean;
76
- }): react_jsx_runtime97.JSX.Element;
76
+ }): react_jsx_runtime111.JSX.Element;
77
77
  declare function MenubarCheckboxItem({
78
78
  className,
79
79
  children,
@@ -82,7 +82,7 @@ declare function MenubarCheckboxItem({
82
82
  }: MenubarPrimitive.CheckboxItemProps & {
83
83
  ref?: React$1.RefObject<MenubarPrimitive.CheckboxItemRef>;
84
84
  children?: React$1.ReactNode;
85
- }): react_jsx_runtime97.JSX.Element;
85
+ }): react_jsx_runtime111.JSX.Element;
86
86
  declare function MenubarRadioItem({
87
87
  className,
88
88
  children,
@@ -90,7 +90,7 @@ declare function MenubarRadioItem({
90
90
  }: MenubarPrimitive.RadioItemProps & {
91
91
  ref?: React$1.RefObject<MenubarPrimitive.RadioItemRef>;
92
92
  children?: React$1.ReactNode;
93
- }): react_jsx_runtime97.JSX.Element;
93
+ }): react_jsx_runtime111.JSX.Element;
94
94
  declare function MenubarLabel({
95
95
  className,
96
96
  inset,
@@ -99,17 +99,17 @@ declare function MenubarLabel({
99
99
  ref?: React$1.RefObject<MenubarPrimitive.LabelRef>;
100
100
  className?: string;
101
101
  inset?: boolean;
102
- }): react_jsx_runtime97.JSX.Element;
102
+ }): react_jsx_runtime111.JSX.Element;
103
103
  declare function MenubarSeparator({
104
104
  className,
105
105
  ...props
106
106
  }: MenubarPrimitive.SeparatorProps & {
107
107
  ref?: React$1.RefObject<MenubarPrimitive.SeparatorRef>;
108
- }): react_jsx_runtime97.JSX.Element;
108
+ }): react_jsx_runtime111.JSX.Element;
109
109
  declare function MenubarShortcut({
110
110
  className,
111
111
  ...props
112
- }: TextProps): react_jsx_runtime97.JSX.Element;
112
+ }: TextProps): react_jsx_runtime111.JSX.Element;
113
113
  //#endregion
114
114
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
115
115
  //# sourceMappingURL=menubar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.d.ts","names":[],"sources":["../../ui/menubar.tsx"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"menubar.d.ts","names":[],"sources":["../../ui/menubar.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { Button } from "../../button.js";
2
2
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../collapsible.js";
3
3
  import { FilterSelect } from "../../atoms/FilterSelect/FilterSelect.js";
4
- import "../../atoms/FilterSelect/index.js";
5
4
  import { SearchInput } from "../../atoms/SearchInput/SearchInput.js";
6
- import "../../atoms/SearchInput/index.js";
7
5
  import React, { useState } from "react";
8
6
  import { jsx, jsxs } from "react/jsx-runtime";
9
7
  import { ChevronDown, ChevronUp, Filter } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"file":"SearchAndFilter.js","names":["SearchAndFilter: React.FC<SearchAndFilterProps>"],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronDown, ChevronUp, Filter } from 'lucide-react';\nimport { Button } from '../../button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../../collapsible';\nimport { SearchInput } from '../../atoms/SearchInput';\nimport { FilterSelect } from '../../atoms/FilterSelect';\nimport type { SearchAndFilterProps } from './types';\n\nexport const SearchAndFilter: React.FC<SearchAndFilterProps> = ({\n searchValue,\n onSearchChange,\n searchPlaceholder,\n filters = [],\n isLoading = false,\n disabled = false,\n className = '',\n collapsible = true,\n defaultCollapsed = false,\n}) => {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n\n const hasFilters = filters.length > 0;\n const activeFiltersCount = filters.filter((f) => f.value).length;\n\n // On mobile, show collapsible by default; on desktop, always show filters\n const shouldUseCollapsible = collapsible && hasFilters;\n\n console.log('SearchAndFilter', { filters });\n\n const FilterComponents = () => (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n {filters.map((filter) => (\n <FilterSelect\n key={filter.key}\n value={{ value: filter.value, label: filter.value }}\n options={filter.options}\n onChange={filter.onChange}\n label={filter.label}\n disabled={disabled || isLoading}\n showCounts={filter.showCounts}\n className=\"min-w-0\"\n />\n ))}\n </div>\n );\n\n return (\n <div className={`space-y-4 ${className}`}>\n {/* Search - Always visible */}\n <div className=\"flex flex-col gap-4 sm:flex-row\">\n <div className=\"flex-1\">\n <SearchInput\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n disabled={disabled || isLoading}\n className=\"w-full\"\n />\n </div>\n\n {/* Filter toggle for mobile */}\n {shouldUseCollapsible && (\n <Collapsible\n open={!isCollapsed}\n onOpenChange={setIsCollapsed}\n className=\"sm:hidden\"\n >\n <CollapsibleTrigger asChild>\n <Button\n variant=\"outline\"\n className=\"sm:hidden\"\n disabled={disabled || isLoading}\n >\n <Filter className=\"mr-2 h-4 w-4\" />\n Filtres\n {activeFiltersCount > 0 && (\n <span className=\"bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm\">\n {activeFiltersCount}\n </span>\n )}\n {isCollapsed ? (\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronUp className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"mt-4 space-y-4\">\n <FilterComponents />\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n\n {/* Filters - Always visible on desktop, collapsible on mobile */}\n {hasFilters && (\n <div className=\"hidden sm:block\">\n <FilterComponents />\n </div>\n )}\n\n {/* Active filters summary */}\n {activeFiltersCount > 0 && (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-muted-foreground text-base\">\n Filtres actifs:\n </span>\n {filters\n .filter((f) => f.value)\n .map((filter) => {\n const selectedOption = filter.options.find(\n (opt) => opt.value === filter.value\n );\n return (\n <Button\n key={filter.key}\n variant=\"secondary\"\n size=\"sm\"\n onPress={() => filter.onChange(undefined)}\n disabled={disabled || isLoading}\n className=\"h-7 px-2 text-sm\"\n >\n {filter.label}: {selectedOption?.label}\n <span className=\"ml-1\">×</span>\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAYA,MAAaA,mBAAmD,EAC9D,aACA,gBACA,mBACA,UAAU,EAAE,EACZ,YAAY,OACZ,WAAW,OACX,YAAY,IACZ,cAAc,MACd,mBAAmB,YACf;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,iBAAiB;CAEhE,MAAM,aAAa,QAAQ,SAAS;CACpC,MAAM,qBAAqB,QAAQ,QAAQ,MAAM,EAAE,MAAM,CAAC;CAG1D,MAAM,uBAAuB,eAAe;AAE5C,SAAQ,IAAI,mBAAmB,EAAE,SAAS,CAAC;CAE3C,MAAM,yBACJ,oBAAC;EAAI,WAAU;YACZ,QAAQ,KAAK,WACZ,oBAAC;GAEC,OAAO;IAAE,OAAO,OAAO;IAAO,OAAO,OAAO;IAAO;GACnD,SAAS,OAAO;GAChB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,UAAU,YAAY;GACtB,YAAY,OAAO;GACnB,WAAU;KAPL,OAAO,IAQZ,CACF;GACE;AAGR,QACE,qBAAC;EAAI,WAAW,aAAa;;GAE3B,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,OAAO;MACP,UAAU;MACV,aAAa;MACb,UAAU,YAAY;MACtB,WAAU;OACV;MACE,EAGL,wBACC,qBAAC;KACC,MAAM,CAAC;KACP,cAAc;KACd,WAAU;gBAEV,oBAAC;MAAmB;gBAClB,qBAAC;OACC,SAAQ;OACR,WAAU;OACV,UAAU,YAAY;;QAEtB,oBAAC,UAAO,WAAU,iBAAiB;;QAElC,qBAAqB,KACpB,oBAAC;SAAK,WAAU;mBACb;UACI;QAER,cACC,oBAAC,eAAY,WAAU,iBAAiB,GAExC,oBAAC,aAAU,WAAU,iBAAiB;;QAEjC;OACU,EACrB,oBAAC;MAAmB,WAAU;gBAC5B,oBAAC,qBAAmB;OACD;MACT;KAEZ;GAGL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,qBAAmB;KAChB;GAIP,qBAAqB,KACpB,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eAAkC;MAE3C,EACN,QACE,QAAQ,MAAM,EAAE,MAAM,CACtB,KAAK,WAAW;KACf,MAAM,iBAAiB,OAAO,QAAQ,MACnC,QAAQ,IAAI,UAAU,OAAO,MAC/B;AACD,YACE,qBAAC;MAEC,SAAQ;MACR,MAAK;MACL,eAAe,OAAO,SAAS,OAAU;MACzC,UAAU,YAAY;MACtB,WAAU;;OAET,OAAO;OAAM;OAAG,gBAAgB;OACjC,oBAAC;QAAK,WAAU;kBAAO;SAAQ;;QAR1B,OAAO,IASL;MAEX;KACA;;GAEJ"}
1
+ {"version":3,"file":"SearchAndFilter.js","names":[],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronDown, ChevronUp, Filter } from 'lucide-react';\nimport { Button } from '../../button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../../collapsible';\nimport { SearchInput } from '../../atoms/SearchInput';\nimport { FilterSelect } from '../../atoms/FilterSelect';\nimport type { SearchAndFilterProps } from './types';\n\nexport const SearchAndFilter: React.FC<SearchAndFilterProps> = ({\n searchValue,\n onSearchChange,\n searchPlaceholder,\n filters = [],\n isLoading = false,\n disabled = false,\n className = '',\n collapsible = true,\n defaultCollapsed = false,\n}) => {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n\n const hasFilters = filters.length > 0;\n const activeFiltersCount = filters.filter((f) => f.value).length;\n\n // On mobile, show collapsible by default; on desktop, always show filters\n const shouldUseCollapsible = collapsible && hasFilters;\n\n console.log('SearchAndFilter', { filters });\n\n const FilterComponents = () => (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n {filters.map((filter) => (\n <FilterSelect\n key={filter.key}\n value={{ value: filter.value, label: filter.value }}\n options={filter.options}\n onChange={filter.onChange}\n label={filter.label}\n disabled={disabled || isLoading}\n showCounts={filter.showCounts}\n className=\"min-w-0\"\n />\n ))}\n </div>\n );\n\n return (\n <div className={`space-y-4 ${className}`}>\n {/* Search - Always visible */}\n <div className=\"flex flex-col gap-4 sm:flex-row\">\n <div className=\"flex-1\">\n <SearchInput\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n disabled={disabled || isLoading}\n className=\"w-full\"\n />\n </div>\n\n {/* Filter toggle for mobile */}\n {shouldUseCollapsible && (\n <Collapsible\n open={!isCollapsed}\n onOpenChange={setIsCollapsed}\n className=\"sm:hidden\"\n >\n <CollapsibleTrigger asChild>\n <Button\n variant=\"outline\"\n className=\"sm:hidden\"\n disabled={disabled || isLoading}\n >\n <Filter className=\"mr-2 h-4 w-4\" />\n Filtres\n {activeFiltersCount > 0 && (\n <span className=\"bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm\">\n {activeFiltersCount}\n </span>\n )}\n {isCollapsed ? (\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronUp className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"mt-4 space-y-4\">\n <FilterComponents />\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n\n {/* Filters - Always visible on desktop, collapsible on mobile */}\n {hasFilters && (\n <div className=\"hidden sm:block\">\n <FilterComponents />\n </div>\n )}\n\n {/* Active filters summary */}\n {activeFiltersCount > 0 && (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-muted-foreground text-base\">\n Filtres actifs:\n </span>\n {filters\n .filter((f) => f.value)\n .map((filter) => {\n const selectedOption = filter.options.find(\n (opt) => opt.value === filter.value\n );\n return (\n <Button\n key={filter.key}\n variant=\"secondary\"\n size=\"sm\"\n onPress={() => filter.onChange(undefined)}\n disabled={disabled || isLoading}\n className=\"h-7 px-2 text-sm\"\n >\n {filter.label}: {selectedOption?.label}\n <span className=\"ml-1\">×</span>\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,MAAa,mBAAmD,EAC9D,aACA,gBACA,mBACA,UAAU,EAAE,EACZ,YAAY,OACZ,WAAW,OACX,YAAY,IACZ,cAAc,MACd,mBAAmB,YACf;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,iBAAiB;CAEhE,MAAM,aAAa,QAAQ,SAAS;CACpC,MAAM,qBAAqB,QAAQ,QAAQ,MAAM,EAAE,MAAM,CAAC;CAG1D,MAAM,uBAAuB,eAAe;AAE5C,SAAQ,IAAI,mBAAmB,EAAE,SAAS,CAAC;CAE3C,MAAM,yBACJ,oBAAC;EAAI,WAAU;YACZ,QAAQ,KAAK,WACZ,oBAAC;GAEC,OAAO;IAAE,OAAO,OAAO;IAAO,OAAO,OAAO;IAAO;GACnD,SAAS,OAAO;GAChB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,UAAU,YAAY;GACtB,YAAY,OAAO;GACnB,WAAU;KAPL,OAAO,IAQZ,CACF;GACE;AAGR,QACE,qBAAC;EAAI,WAAW,aAAa;;GAE3B,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,OAAO;MACP,UAAU;MACV,aAAa;MACb,UAAU,YAAY;MACtB,WAAU;OACV;MACE,EAGL,wBACC,qBAAC;KACC,MAAM,CAAC;KACP,cAAc;KACd,WAAU;gBAEV,oBAAC;MAAmB;gBAClB,qBAAC;OACC,SAAQ;OACR,WAAU;OACV,UAAU,YAAY;;QAEtB,oBAAC,UAAO,WAAU,iBAAiB;;QAElC,qBAAqB,KACpB,oBAAC;SAAK,WAAU;mBACb;UACI;QAER,cACC,oBAAC,eAAY,WAAU,iBAAiB,GAExC,oBAAC,aAAU,WAAU,iBAAiB;;QAEjC;OACU,EACrB,oBAAC;MAAmB,WAAU;gBAC5B,oBAAC,qBAAmB;OACD;MACT;KAEZ;GAGL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,qBAAmB;KAChB;GAIP,qBAAqB,KACpB,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eAAkC;MAE3C,EACN,QACE,QAAQ,MAAM,EAAE,MAAM,CACtB,KAAK,WAAW;KACf,MAAM,iBAAiB,OAAO,QAAQ,MACnC,QAAQ,IAAI,UAAU,OAAO,MAC/B;AACD,YACE,qBAAC;MAEC,SAAQ;MACR,MAAK;MACL,eAAe,OAAO,SAAS,OAAU;MACzC,UAAU,YAAY;MACtB,WAAU;;OAET,OAAO;OAAM;OAAG,gBAAgB;OACjC,oBAAC;QAAK,WAAU;kBAAO;SAAQ;;QAR1B,OAAO,IASL;MAEX;KACA;;GAEJ"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime112 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime79 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/molecules/SkeletonList.d.ts
4
4
  interface Props {
@@ -10,7 +10,7 @@ declare function SkeletonList({
10
10
  count,
11
11
  className,
12
12
  itemClassName
13
- }: Props): react_jsx_runtime112.JSX.Element;
13
+ }: Props): react_jsx_runtime79.JSX.Element;
14
14
  //#endregion
15
15
  export { SkeletonList };
16
16
  //# sourceMappingURL=SkeletonList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonList.d.ts","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":[],"mappings":";;;UAGU,KAAA;;;EAAA,aAAK,CAAA,EAAA,MAAA;AAMf;AACE,iBADc,YAAA,CACd;EAAA,KAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAGC,KAHD,CAAA,EAGM,oBAAA,CAAA,GAAA,CAAA,OAHN"}
1
+ {"version":3,"file":"SkeletonList.d.ts","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":[],"mappings":";;;UAGU,KAAA;;;EAAA,aAAK,CAAA,EAAA,MAAA;AAMf;AACE,iBADc,YAAA,CACd;EAAA,KAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAGC,KAHD,CAAA,EAGM,mBAAA,CAAA,GAAA,CAAA,OAHN"}
@@ -1,9 +1,9 @@
1
1
  import * as React$1 from "react";
2
- import * as react_native29 from "react-native";
2
+ import * as react_native38 from "react-native";
3
3
  import { View } from "react-native";
4
- import * as react_jsx_runtime91 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime124 from "react/jsx-runtime";
5
5
  import * as NavigationMenuPrimitive from "@rn-primitives/navigation-menu";
6
- import * as class_variance_authority_types6 from "class-variance-authority/types";
6
+ import * as class_variance_authority_types11 from "class-variance-authority/types";
7
7
 
8
8
  //#region ui/navigation-menu.d.ts
9
9
  declare function NavigationMenu({
@@ -12,19 +12,19 @@ declare function NavigationMenu({
12
12
  ...props
13
13
  }: NavigationMenuPrimitive.RootProps & {
14
14
  ref?: React$1.RefObject<NavigationMenuPrimitive.RootRef>;
15
- }): react_jsx_runtime91.JSX.Element;
15
+ }): react_jsx_runtime124.JSX.Element;
16
16
  declare function NavigationMenuList({
17
17
  className,
18
18
  ...props
19
19
  }: NavigationMenuPrimitive.ListProps & {
20
20
  ref?: React$1.RefObject<NavigationMenuPrimitive.ListRef>;
21
- }): react_jsx_runtime91.JSX.Element;
22
- declare const NavigationMenuItem: React$1.ForwardRefExoticComponent<react_native29.ViewProps & {
21
+ }): react_jsx_runtime124.JSX.Element;
22
+ declare const NavigationMenuItem: React$1.ForwardRefExoticComponent<react_native38.ViewProps & {
23
23
  asChild?: boolean;
24
24
  } & {
25
25
  value: string | undefined;
26
26
  } & React$1.RefAttributes<View>>;
27
- declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types6.ClassProp | undefined) => string;
27
+ declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types11.ClassProp | undefined) => string;
28
28
  declare function NavigationMenuTrigger({
29
29
  className,
30
30
  children,
@@ -32,7 +32,7 @@ declare function NavigationMenuTrigger({
32
32
  }: Omit<NavigationMenuPrimitive.TriggerProps, 'children'> & {
33
33
  children?: React$1.ReactNode;
34
34
  ref?: React$1.RefObject<NavigationMenuPrimitive.TriggerRef>;
35
- }): react_jsx_runtime91.JSX.Element;
35
+ }): react_jsx_runtime124.JSX.Element;
36
36
  declare function NavigationMenuContent({
37
37
  className,
38
38
  children,
@@ -41,8 +41,8 @@ declare function NavigationMenuContent({
41
41
  }: NavigationMenuPrimitive.ContentProps & {
42
42
  portalHost?: string;
43
43
  ref?: React$1.RefObject<NavigationMenuPrimitive.ContentRef>;
44
- }): react_jsx_runtime91.JSX.Element;
45
- declare const NavigationMenuLink: React$1.ForwardRefExoticComponent<Omit<react_native29.PressableProps & React$1.RefAttributes<View>, "ref"> & {
44
+ }): react_jsx_runtime124.JSX.Element;
45
+ declare const NavigationMenuLink: React$1.ForwardRefExoticComponent<Omit<react_native38.PressableProps & React$1.RefAttributes<View>, "ref"> & {
46
46
  asChild?: boolean;
47
47
  } & {
48
48
  onKeyDown?: (ev: React$1.KeyboardEvent) => void;
@@ -55,14 +55,14 @@ declare function NavigationMenuViewport({
55
55
  ...props
56
56
  }: NavigationMenuPrimitive.ViewportProps & {
57
57
  ref?: React$1.RefObject<NavigationMenuPrimitive.ViewportRef>;
58
- }): react_jsx_runtime91.JSX.Element;
58
+ }): react_jsx_runtime124.JSX.Element;
59
59
  declare function NavigationMenuIndicator({
60
60
  ref,
61
61
  className,
62
62
  ...props
63
63
  }: NavigationMenuPrimitive.IndicatorProps & {
64
64
  ref?: React$1.RefObject<NavigationMenuPrimitive.IndicatorRef>;
65
- }): react_jsx_runtime91.JSX.Element;
65
+ }): react_jsx_runtime124.JSX.Element;
66
66
  //#endregion
67
67
  export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
68
68
  //# sourceMappingURL=navigation-menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAgBS,cAAA;;;;GAIN,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;IAC/C,mBAAA,CAAA,GAAA,CAAA;iBAeQ,kBAAA;;;AAlCqC,GAqC3C,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;AAtCF,CAAA,CAAA,EAuC7C,mBAAA,CAAA,GAAA,CAAA,OA1BsB;cAsCjB,kBArCJ,EAqCsB,OAAA,CAAA,yBArCtB,CAqCqD,cAAA,CAA/B,SAAA,GArCtB;EACA,OAAA,CAAA,EAAA,OAAA;CAEC,GAAA;EACqB,KAAA,EAAA,MAAA,GAAA,SAAwB;CAAxC,wBAAM,KAAA,CAAA,CAAA;cAmCR,0BAlCL,EAAA,CAAA,KAAA,CAAA,EAoCA,+BAAA,CAF+B,SAAA,GAlC/B,SAAA,EAAA,GAAA,MAAA;iBAsCQ,qBAAA,CAtCR;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA0CE,IA1CF,CA0CO,uBAAA,CAAwB,YA1C/B,EAAA,UAAA,CAAA,GAAA;EAeQ,QAAA,CAAA,EA4BI,OAAA,CAAM,SA5BQ;EACzB,GAAA,CAAA,EA4BM,OAAA,CAAM,SA5BZ,CA4BsB,uBAAA,CAAwB,UA5B9C,CAAA;CAEC,CAAA,EA2BF,mBAAA,CAAA,GAAA,CAAA,OA3B0B;iBAiElB,qBAAA,CAhEuC;EAAA,SAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAqE7C,uBAAA,CAAwB,YArEqB,GAAA;EAAxC,UAAM,CAAA,EAAA,MAAA;EACb,GAAA,CAAA,EAsEO,OAAA,CAAM,SAtEb,CAsEuB,uBAAA,CAAwB,UAtE/C,CAAA;CAAA,CAAA,EAuEA,mBAAA,CAAA,GAAA,CAAA,OAvEA;AAAA,cAiGK,kBArFiD,EAqF/B,OAAA,CAAA,yBArF+B,CAqF/B,IArF+B,CAqFA,cAAA,CAA/B,cAAA,GAAA,OAAA,CAAA,aArF+B,CAqF/B,IArF+B,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAA/B;;;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,GAAA;EAElB,MAAA,CAAA,EAAA,OAAA;AAA0B,CAAA,wBAIvB,KAAqB,CAAA,CAAA;iBAiFrB,sBAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;CAAA,EAmFC,uBAAA,CAAwB,aAnFzB,GAAA;EACA,GAAA,CAAA,EAmFM,OAAA,CAAM,SAnFZ,CAmFsB,uBAAA,CAAwB,WAnF9C,CAAA;CAEM,CAAA,EAkFP,mBAAA,CAAA,GAAA,CAAA,OAlF+B;iBAkGvB,uBAAA,CAlGN;EAAA,GAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAsGA,uBAAA,CAAwB,cAtGxB,GAAA;EACU,GAAA,CAAA,EAsGL,OAAA,CAAM,SAtGK,CAsGK,uBAAA,CAAwB,YAtG7B,CAAA;CACK,CAAA,EAsGvB,mBAAA,CAAA,GAAA,CAAA,OAtG+C"}
1
+ {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAgBS,cAAA;;;;GAIN,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;IAC/C,oBAAA,CAAA,GAAA,CAAA;iBAeQ,kBAAA;;;AAlCqC,GAqC3C,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;AAtCF,CAAA,CAAA,EAuC7C,oBAAA,CAAA,GAAA,CAAA,OA1BsB;cAsCjB,kBArCJ,EAqCsB,OAAA,CAAA,yBArCtB,CAqCqD,cAAA,CAA/B,SAAA,GArCtB;EACA,OAAA,CAAA,EAAA,OAAA;CAEC,GAAA;EACqB,KAAA,EAAA,MAAA,GAAA,SAAwB;CAAxC,wBAAM,KAAA,CAAA,CAAA;cAmCR,0BAlCL,EAAA,CAAA,KAAA,CAAA,EAoCA,gCAAA,CAF+B,SAAA,GAlC/B,SAAA,EAAA,GAAA,MAAA;iBAsCQ,qBAAA,CAtCR;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA0CE,IA1CF,CA0CO,uBAAA,CAAwB,YA1C/B,EAAA,UAAA,CAAA,GAAA;EAeQ,QAAA,CAAA,EA4BI,OAAA,CAAM,SA5BQ;EACzB,GAAA,CAAA,EA4BM,OAAA,CAAM,SA5BZ,CA4BsB,uBAAA,CAAwB,UA5B9C,CAAA;CAEC,CAAA,EA2BF,oBAAA,CAAA,GAAA,CAAA,OA3B0B;iBAiElB,qBAAA,CAhEuC;EAAA,SAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAqE7C,uBAAA,CAAwB,YArEqB,GAAA;EAAxC,UAAM,CAAA,EAAA,MAAA;EACb,GAAA,CAAA,EAsEO,OAAA,CAAM,SAtEb,CAsEuB,uBAAA,CAAwB,UAtE/C,CAAA;CAAA,CAAA,EAuEA,oBAAA,CAAA,GAAA,CAAA,OAvEA;AAAA,cAiGK,kBArFiD,EAqF/B,OAAA,CAAA,yBArF+B,CAqF/B,IArF+B,CAqFA,cAAA,CAA/B,cAAA,GAAA,OAAA,CAAA,aArF+B,CAqF/B,IArF+B,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAA/B;;;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,GAAA;EAElB,MAAA,CAAA,EAAA,OAAA;AAA0B,CAAA,wBAIvB,KAAqB,CAAA,CAAA;iBAiFrB,sBAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;CAAA,EAmFC,uBAAA,CAAwB,aAnFzB,GAAA;EACA,GAAA,CAAA,EAmFM,OAAA,CAAM,SAnFZ,CAmFsB,uBAAA,CAAwB,WAnF9C,CAAA;CAEM,CAAA,EAkFP,oBAAA,CAAA,GAAA,CAAA,OAlF+B;iBAkGvB,uBAAA,CAlGN;EAAA,GAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAsGA,uBAAA,CAAwB,cAtGxB,GAAA;EACU,GAAA,CAAA,EAsGL,OAAA,CAAM,SAtGK,CAsGK,uBAAA,CAAwB,YAtG7B,CAAA;CACK,CAAA,EAsGvB,oBAAA,CAAA,GAAA,CAAA,OAtG+C"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime120 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime98 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/organisms/ErrorBoundary/ErrorBoundary.d.ts
5
5
  interface ErrorBoundaryState {
@@ -22,7 +22,7 @@ declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBou
22
22
  static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
23
23
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
24
24
  resetError: () => void;
25
- render(): string | number | bigint | boolean | react_jsx_runtime120.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
25
+ render(): string | number | bigint | boolean | react_jsx_runtime98.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
26
26
  }
27
27
  declare const useErrorHandler: () => (error: Error) => never;
28
28
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","names":[],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":[],"mappings":";;;;UAOU,kBAAA;;SAED;EAFC,OAAA,EAAA,MAAA,GAAA,IAAkB;AAEd;UAIJ,kBAAA,CACQ;EACe,QAAA,EADrB,KAAA,CAAM,SACe;EAApB,QAAM,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,kBAAd,CAAA;EACC,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,EAAkB,KAAA,CAAM,SAAxB,EAAA,GAAA,IAAA;;UAGV,kBAAA,CAH2C;EAG3C,KAAA,EACD,KADC;EAmEG,OAAA,EAAA,MAAA,GAAc,IAAA;EACzB,UAAA,EAAA,GAAA,GAAA,IAAA;;AAGmB,cAJR,aAAA,SAAsB,KAAA,CAAM,SAIpB,CAHnB,kBAGmB,EAFnB,kBAEmB,CAAA,CAAA;EASoB,WAAA,CAAA,KAAA,EATpB,kBASoB;EAAgB,OAAA,wBAAA,CAAA,KAAA,EAAhB,KAAgB,CAAA,EAAR,OAAQ,CAAA,kBAAA,CAAA;EAAR,iBAAA,CAAA,KAAA,EAOtB,KAPsB,EAAA,SAAA,EAOJ,KAAA,CAAM,SAPF,CAAA,EAAA,IAAA;EAOtB,UAAA,EAAA,GAAA,GAAA,IAAA;EAAkB,MAAM,CAAA,CAAA,EAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAgC3C,OAhC2C,CAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,KAAA,CAAA,WAhC2C,GAgC3C,KAAA,CAAA,YAhC2C,CAAA,OAAA,EAAA,MAAA,GAgC3C,KAAA,CAAA,qBAhC2C,CAAA,GAAA,CAAA,CAAA,GAgC3C,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAAA,IAAA,GAAA,SAAA,CAAA,GAAA,IAAA,GAAA,SAAA;;AAgC3C,cAkBK,eAlBL,EAAA,GAAA,GAAA,CAAA,KAAA,EAmB2B,KAnB3B,EAAA,GAAA,KAAA"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","names":[],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":[],"mappings":";;;;UAOU,kBAAA;;SAED;EAFC,OAAA,EAAA,MAAA,GAAA,IAAkB;AAEd;UAIJ,kBAAA,CACQ;EACe,QAAA,EADrB,KAAA,CAAM,SACe;EAApB,QAAM,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,kBAAd,CAAA;EACC,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,EAAkB,KAAA,CAAM,SAAxB,EAAA,GAAA,IAAA;;UAGV,kBAAA,CAH2C;EAG3C,KAAA,EACD,KADC;EAmEG,OAAA,EAAA,MAAA,GAAc,IAAA;EACzB,UAAA,EAAA,GAAA,GAAA,IAAA;;AAGmB,cAJR,aAAA,SAAsB,KAAA,CAAM,SAIpB,CAHnB,kBAGmB,EAFnB,kBAEmB,CAAA,CAAA;EASoB,WAAA,CAAA,KAAA,EATpB,kBASoB;EAAgB,OAAA,wBAAA,CAAA,KAAA,EAAhB,KAAgB,CAAA,EAAR,OAAQ,CAAA,kBAAA,CAAA;EAAR,iBAAA,CAAA,KAAA,EAOtB,KAPsB,EAAA,SAAA,EAOJ,KAAA,CAAM,SAPF,CAAA,EAAA,IAAA;EAOtB,UAAA,EAAA,GAAA,GAAA,IAAA;EAAkB,MAAM,CAAA,CAAA,EAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,mBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAgC3C,OAhC2C,CAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,KAAA,CAAA,WAhC2C,GAgC3C,KAAA,CAAA,YAhC2C,CAAA,OAAA,EAAA,MAAA,GAgC3C,KAAA,CAAA,qBAhC2C,CAAA,GAAA,CAAA,CAAA,GAgC3C,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAAA,IAAA,GAAA,SAAA,CAAA,GAAA,IAAA,GAAA,SAAA;;AAgC3C,cAkBK,eAlBL,EAAA,GAAA,GAAA,CAAA,KAAA,EAmB2B,KAnB3B,EAAA,GAAA,KAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.js","names":["DefaultErrorFallback: React.FC<ErrorFallbackProps>"],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n// import * as Sentry from '@sentry/nextjs';\nimport { AlertTriangle, RefreshCw, Home } from 'lucide-react';\nimport { Button } from '../../button';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n errorId: string | null;\n}\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n fallback?: React.ComponentType<ErrorFallbackProps>;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n errorId: string | null;\n resetError: () => void;\n}\n\nconst DefaultErrorFallback: React.FC<ErrorFallbackProps> = ({\n error,\n errorId,\n resetError,\n}) => {\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md rounded-lg bg-white p-6 text-center shadow-lg\">\n <div className=\"mb-4 flex justify-center\">\n <AlertTriangle className=\"h-12 w-12 text-red-500\" />\n </div>\n\n <h1 className=\"mb-2 text-2xl font-semibold text-gray-900\">\n Une erreur s'est produite\n </h1>\n\n <p className=\"mb-6 text-gray-600\">\n Nous nous excusons pour ce désagrément. Notre équipe a été notifiée et\n travaille à résoudre le problème.\n </p>\n\n {isDevelopment && (\n <div className=\"mb-6 rounded-md bg-red-50 p-4 text-left\">\n <p className=\"mb-2 text-base font-medium text-red-800\">\n Erreur de développement:\n </p>\n <p className=\"font-mono text-sm break-all text-red-700\">\n {error.message}\n </p>\n {errorId && (\n <p className=\"mt-2 text-sm text-red-600\">ID: {errorId}</p>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col justify-center gap-3 sm:flex-row\">\n <Button onPress={resetError} className=\"flex items-center gap-2\">\n <RefreshCw className=\"h-4 w-4\" />\n Réessayer\n </Button>\n\n <Button\n onPress={() => (window.location.href = '/')}\n variant=\"secondary\"\n className=\"flex items-center gap-2\"\n >\n <Home className=\"h-4 w-4\" />\n Accueil\n </Button>\n </div>\n\n {!isDevelopment && errorId && (\n <p className=\"mt-4 text-sm text-gray-500\">Code d'erreur: {errorId}</p>\n )}\n </div>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n errorId: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n // Generate unique error ID\n const errorId = `err_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n // Log to Sentry with additional context\n // Sentry.withScope((scope) => {\n // scope.setTag('errorBoundary', true);\n // scope.setContext('errorInfo', { ...errorInfo });\n // scope.setContext('errorId', { errorId });\n // Sentry.captureException(error);\n // });\n\n // Update state with error ID\n this.setState({ errorId });\n\n // Call custom error handler if provided\n this.props.onError?.(error, errorInfo);\n\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.error('ErrorBoundary caught an error:', error, errorInfo);\n }\n }\n\n resetError = () => {\n this.setState({\n hasError: false,\n error: null,\n errorId: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error) {\n const FallbackComponent = this.props.fallback || DefaultErrorFallback;\n\n return (\n <FallbackComponent\n error={this.state.error}\n errorId={this.state.errorId}\n resetError={this.resetError}\n />\n );\n }\n\n return this.props.children;\n }\n}\n\n// Hook for functional components to trigger error boundary\nexport const useErrorHandler = () => {\n return React.useCallback((error: Error) => {\n // This will be caught by the nearest error boundary\n throw error;\n }, []);\n};\n\nexport type { ErrorBoundaryProps, ErrorFallbackProps };\n"],"mappings":";;;;;;;;AAyBA,MAAMA,wBAAsD,EAC1D,OACA,SACA,iBACI;AAGJ,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAI,WAAU;eACb,oBAAC,iBAAc,WAAU,2BAA2B;MAChD;IAEN,oBAAC;KAAG,WAAU;eAA4C;MAErD;IAEL,oBAAC;KAAE,WAAU;eAAqB;MAG9B;IAGF,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAE,WAAU;iBAA0C;QAEnD;MACJ,oBAAC;OAAE,WAAU;iBACV,MAAM;QACL;MACH,WACC,qBAAC;OAAE,WAAU;kBAA4B,QAAK;QAAY;;MAExD;IAGR,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAO,SAAS;MAAY,WAAU;iBACrC,oBAAC,aAAU,WAAU,YAAY;OAE1B,EAET,qBAAC;MACC,eAAgB,OAAO,SAAS,OAAO;MACvC,SAAQ;MACR,WAAU;iBAEV,oBAAC,QAAK,WAAU,YAAY;OAErB;MACL;IAEL;;IAGG;GACF;;AAIV,IAAa,gBAAb,cAAmC,MAAM,UAGvC;CACA,YAAY,OAA2B;AACrC,QAAM,MAAM;AACZ,OAAK,QAAQ;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACV;;CAGH,OAAO,yBAAyB,OAA2C;AACzE,SAAO;GACL,UAAU;GACV;GACD;;CAGH,kBAAkB,OAAc,WAA4B;EAE1D,MAAM,UAAU,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,EAAE;AAW5E,OAAK,SAAS,EAAE,SAAS,CAAC;AAG1B,OAAK,MAAM,UAAU,OAAO,UAAU;AAIpC,UAAQ,MAAM,kCAAkC,OAAO,UAAU;;CAIrE,mBAAmB;AACjB,OAAK,SAAS;GACZ,UAAU;GACV,OAAO;GACP,SAAS;GACV,CAAC;;CAGJ,SAAS;AACP,MAAI,KAAK,MAAM,YAAY,KAAK,MAAM,MAGpC,QACE,oBAHwB,KAAK,MAAM,YAAY;GAI7C,OAAO,KAAK,MAAM;GAClB,SAAS,KAAK,MAAM;GACpB,YAAY,KAAK;IACjB;AAIN,SAAO,KAAK,MAAM;;;AAKtB,MAAa,wBAAwB;AACnC,QAAO,MAAM,aAAa,UAAiB;AAEzC,QAAM;IACL,EAAE,CAAC"}
1
+ {"version":3,"file":"ErrorBoundary.js","names":[],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n// import * as Sentry from '@sentry/nextjs';\nimport { AlertTriangle, RefreshCw, Home } from 'lucide-react';\nimport { Button } from '../../button';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n errorId: string | null;\n}\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n fallback?: React.ComponentType<ErrorFallbackProps>;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n errorId: string | null;\n resetError: () => void;\n}\n\nconst DefaultErrorFallback: React.FC<ErrorFallbackProps> = ({\n error,\n errorId,\n resetError,\n}) => {\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md rounded-lg bg-white p-6 text-center shadow-lg\">\n <div className=\"mb-4 flex justify-center\">\n <AlertTriangle className=\"h-12 w-12 text-red-500\" />\n </div>\n\n <h1 className=\"mb-2 text-2xl font-semibold text-gray-900\">\n Une erreur s'est produite\n </h1>\n\n <p className=\"mb-6 text-gray-600\">\n Nous nous excusons pour ce désagrément. Notre équipe a été notifiée et\n travaille à résoudre le problème.\n </p>\n\n {isDevelopment && (\n <div className=\"mb-6 rounded-md bg-red-50 p-4 text-left\">\n <p className=\"mb-2 text-base font-medium text-red-800\">\n Erreur de développement:\n </p>\n <p className=\"font-mono text-sm break-all text-red-700\">\n {error.message}\n </p>\n {errorId && (\n <p className=\"mt-2 text-sm text-red-600\">ID: {errorId}</p>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col justify-center gap-3 sm:flex-row\">\n <Button onPress={resetError} className=\"flex items-center gap-2\">\n <RefreshCw className=\"h-4 w-4\" />\n Réessayer\n </Button>\n\n <Button\n onPress={() => (window.location.href = '/')}\n variant=\"secondary\"\n className=\"flex items-center gap-2\"\n >\n <Home className=\"h-4 w-4\" />\n Accueil\n </Button>\n </div>\n\n {!isDevelopment && errorId && (\n <p className=\"mt-4 text-sm text-gray-500\">Code d'erreur: {errorId}</p>\n )}\n </div>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n errorId: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n // Generate unique error ID\n const errorId = `err_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n // Log to Sentry with additional context\n // Sentry.withScope((scope) => {\n // scope.setTag('errorBoundary', true);\n // scope.setContext('errorInfo', { ...errorInfo });\n // scope.setContext('errorId', { errorId });\n // Sentry.captureException(error);\n // });\n\n // Update state with error ID\n this.setState({ errorId });\n\n // Call custom error handler if provided\n this.props.onError?.(error, errorInfo);\n\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.error('ErrorBoundary caught an error:', error, errorInfo);\n }\n }\n\n resetError = () => {\n this.setState({\n hasError: false,\n error: null,\n errorId: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error) {\n const FallbackComponent = this.props.fallback || DefaultErrorFallback;\n\n return (\n <FallbackComponent\n error={this.state.error}\n errorId={this.state.errorId}\n resetError={this.resetError}\n />\n );\n }\n\n return this.props.children;\n }\n}\n\n// Hook for functional components to trigger error boundary\nexport const useErrorHandler = () => {\n return React.useCallback((error: Error) => {\n // This will be caught by the nearest error boundary\n throw error;\n }, []);\n};\n\nexport type { ErrorBoundaryProps, ErrorFallbackProps };\n"],"mappings":";;;;;;;;AAyBA,MAAM,wBAAsD,EAC1D,OACA,SACA,iBACI;AAGJ,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAI,WAAU;eACb,oBAAC,iBAAc,WAAU,2BAA2B;MAChD;IAEN,oBAAC;KAAG,WAAU;eAA4C;MAErD;IAEL,oBAAC;KAAE,WAAU;eAAqB;MAG9B;IAGF,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAE,WAAU;iBAA0C;QAEnD;MACJ,oBAAC;OAAE,WAAU;iBACV,MAAM;QACL;MACH,WACC,qBAAC;OAAE,WAAU;kBAA4B,QAAK;QAAY;;MAExD;IAGR,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAO,SAAS;MAAY,WAAU;iBACrC,oBAAC,aAAU,WAAU,YAAY;OAE1B,EAET,qBAAC;MACC,eAAgB,OAAO,SAAS,OAAO;MACvC,SAAQ;MACR,WAAU;iBAEV,oBAAC,QAAK,WAAU,YAAY;OAErB;MACL;IAEL;;IAGG;GACF;;AAIV,IAAa,gBAAb,cAAmC,MAAM,UAGvC;CACA,YAAY,OAA2B;AACrC,QAAM,MAAM;AACZ,OAAK,QAAQ;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACV;;CAGH,OAAO,yBAAyB,OAA2C;AACzE,SAAO;GACL,UAAU;GACV;GACD;;CAGH,kBAAkB,OAAc,WAA4B;EAE1D,MAAM,UAAU,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,EAAE;AAW5E,OAAK,SAAS,EAAE,SAAS,CAAC;AAG1B,OAAK,MAAM,UAAU,OAAO,UAAU;AAIpC,UAAQ,MAAM,kCAAkC,OAAO,UAAU;;CAIrE,mBAAmB;AACjB,OAAK,SAAS;GACZ,UAAU;GACV,OAAO;GACP,SAAS;GACV,CAAC;;CAGJ,SAAS;AACP,MAAI,KAAK,MAAM,YAAY,KAAK,MAAM,MAGpC,QACE,oBAHwB,KAAK,MAAM,YAAY;GAI7C,OAAO,KAAK,MAAM;GAClB,SAAS,KAAK,MAAM;GACpB,YAAY,KAAK;IACjB;AAIN,SAAO,KAAK,MAAM;;;AAKtB,MAAa,wBAAwB;AACnC,QAAO,MAAM,aAAa,UAAiB;AAEzC,QAAM;IACL,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ListPageProps } from "./types.js";
2
- import * as react_jsx_runtime121 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime99 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/organisms/ListPage/ListPage.d.ts
5
5
  declare function ListPage<T>({
@@ -23,7 +23,7 @@ declare function ListPage<T>({
23
23
  renderStats,
24
24
  className,
25
25
  itemClassName
26
- }: ListPageProps<T>): react_jsx_runtime121.JSX.Element;
26
+ }: ListPageProps<T>): react_jsx_runtime99.JSX.Element;
27
27
  //#endregion
28
28
  export { ListPage };
29
29
  //# sourceMappingURL=ListPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":[],"mappings":";;;;iBAYgB;;;;;;;;;;;;;;;;;;;;;GAqBb,cAAc,KAAE,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"ListPage.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":[],"mappings":";;;;iBAYgB;;;;;;;;;;;;;;;;;;;;;GAqBb,cAAc,KAAE,mBAAA,CAAA,GAAA,CAAA"}
@@ -3,9 +3,7 @@ import { Card, CardContent } from "../../card.js";
3
3
  import { HStack, VStack } from "../../stack.js";
4
4
  import { Separator } from "../../separator.js";
5
5
  import { Pagination } from "../../atoms/Pagination/Pagination.js";
6
- import "../../atoms/Pagination/index.js";
7
6
  import { SearchAndFilter } from "../../molecules/SearchAndFilter/SearchAndFilter.js";
8
- import "../../molecules/SearchAndFilter/index.js";
9
7
  import React from "react";
10
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
9
  import { AlertTriangle, Loader2, Plus, RefreshCcw } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.js","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { AlertTriangle, Loader2, Plus, RefreshCcw } from 'lucide-react';\nimport { Button } from '../../button';\nimport { Card, CardContent } from '../../card';\nimport { VStack, HStack } from '../../stack';\nimport { Separator } from '../../separator';\nimport { SearchAndFilter } from '../../molecules/SearchAndFilter';\nimport { Pagination } from '../../atoms/Pagination';\nimport type { ListPageProps } from './types';\nimport type { FilterOption } from '../../atoms/FilterSelect/types';\n\nexport function ListPage<T>({\n title,\n description,\n header,\n items,\n totalItems,\n totalPages,\n isLoading,\n isFetching,\n error,\n listState,\n searchPlaceholder,\n filters = [],\n onRefresh,\n primaryAction,\n toolbar,\n renderItem,\n renderEmpty,\n renderStats,\n className = '',\n itemClassName = '',\n}: ListPageProps<T>) {\n const {\n searchQuery,\n setSearchQuery,\n filters: filterValues,\n setFilter,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage,\n } = listState;\n\n // Loading state with no items\n if (isLoading && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex items-center gap-4 p-6\">\n <Loader2 className=\"text-primary h-8 w-8 animate-spin\" />\n <div>\n <h3 className=\"font-medium\">Chargement...</h3>\n <p className=\"text-muted-foreground text-base\">\n Récupération des données en cours\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Error state with no items\n if (error && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-6 text-center\">\n <AlertTriangle className=\"text-destructive h-12 w-12\" />\n <div>\n <h3 className=\"font-medium\">Erreur de chargement</h3>\n <p className=\"text-muted-foreground text-base\">\n {error.message || 'Une erreur est survenue'}\n </p>\n </div>\n {onRefresh && (\n <Button onPress={onRefresh} variant=\"outline\" size=\"sm\">\n <RefreshCcw className=\"mr-2 h-4 w-4\" />\n Réessayer\n </Button>\n )}\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Prepare filter configurations\n const filterConfigs = filters.map((filter) => ({\n key: filter.key,\n label: filter.label,\n value: filterValues[filter.key] || '',\n options: filter.options,\n onChange: (value: FilterOption | undefined) => {\n setFilter(filter.key, value?.value || '');\n },\n showCounts: filter.showCounts,\n }));\n\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {/* Header */}\n {header ? (\n header\n ) : (\n <HStack className=\"items-center justify-between\">\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n\n <HStack className=\"items-center gap-4\">\n {toolbar}\n {(isLoading || isFetching) && (\n <div className=\"text-muted-foreground flex items-center gap-2 text-base\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n <span className=\"hidden sm:inline\">Mise à jour...</span>\n </div>\n )}\n\n {onRefresh && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onPress={onRefresh}\n disabled={Boolean(isLoading)}\n aria-label=\"Rafraîchir\"\n >\n <RefreshCcw\n className={`mr-2 h-4 w-4 ${isLoading || isFetching ? 'animate-spin' : ''}`}\n />\n <span className=\"hidden sm:inline\">Rafraîchir</span>\n </Button>\n )}\n\n {primaryAction && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n )}\n </>\n )}\n </HStack>\n </HStack>\n )}\n\n {/* Stats (optional) */}\n {renderStats && (\n <>\n {renderStats(items)}\n <Separator />\n </>\n )}\n\n {/* Search and Filters */}\n <SearchAndFilter\n searchValue={searchQuery}\n onSearchChange={setSearchQuery}\n searchPlaceholder={searchPlaceholder}\n filters={filterConfigs}\n isLoading={isLoading}\n />\n\n {/* Content */}\n {items.length === 0 && !isLoading ? (\n renderEmpty ? (\n renderEmpty()\n ) : (\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-8 text-center\">\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n <div className=\"bg-muted-foreground/20 h-6 w-6 rounded-full\" />\n </div>\n <div>\n <h3 className=\"font-medium\">Aucun élément trouvé</h3>\n <p className=\"text-muted-foreground text-base\">\n {searchQuery || Object.values(filterValues).some((v) => v)\n ? 'Essayez de modifier vos critères de recherche'\n : 'Commencez par créer votre premier élément'}\n </p>\n </div>\n {primaryAction &&\n !searchQuery &&\n !Object.values(filterValues).some((v) => v) && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n )}\n </>\n )}\n </CardContent>\n </Card>\n )\n ) : (\n <>\n {/* Items List */}\n <div className={`space-y-4 ${itemClassName}`}>\n {items.map((item, index) => renderItem(item, index))}\n </div>\n\n {/* Pagination */}\n {totalPages > 1 && (\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n totalItems={totalItems}\n itemsPerPage={itemsPerPage}\n onPageChange={setCurrentPage}\n onItemsPerPageChange={setItemsPerPage}\n disabled={isLoading}\n />\n )}\n </>\n )}\n </VStack>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.js","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { AlertTriangle, Loader2, Plus, RefreshCcw } from 'lucide-react';\nimport { Button } from '../../button';\nimport { Card, CardContent } from '../../card';\nimport { VStack, HStack } from '../../stack';\nimport { Separator } from '../../separator';\nimport { SearchAndFilter } from '../../molecules/SearchAndFilter';\nimport { Pagination } from '../../atoms/Pagination';\nimport type { ListPageProps } from './types';\nimport type { FilterOption } from '../../atoms/FilterSelect/types';\n\nexport function ListPage<T>({\n title,\n description,\n header,\n items,\n totalItems,\n totalPages,\n isLoading,\n isFetching,\n error,\n listState,\n searchPlaceholder,\n filters = [],\n onRefresh,\n primaryAction,\n toolbar,\n renderItem,\n renderEmpty,\n renderStats,\n className = '',\n itemClassName = '',\n}: ListPageProps<T>) {\n const {\n searchQuery,\n setSearchQuery,\n filters: filterValues,\n setFilter,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage,\n } = listState;\n\n // Loading state with no items\n if (isLoading && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex items-center gap-4 p-6\">\n <Loader2 className=\"text-primary h-8 w-8 animate-spin\" />\n <div>\n <h3 className=\"font-medium\">Chargement...</h3>\n <p className=\"text-muted-foreground text-base\">\n Récupération des données en cours\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Error state with no items\n if (error && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-6 text-center\">\n <AlertTriangle className=\"text-destructive h-12 w-12\" />\n <div>\n <h3 className=\"font-medium\">Erreur de chargement</h3>\n <p className=\"text-muted-foreground text-base\">\n {error.message || 'Une erreur est survenue'}\n </p>\n </div>\n {onRefresh && (\n <Button onPress={onRefresh} variant=\"outline\" size=\"sm\">\n <RefreshCcw className=\"mr-2 h-4 w-4\" />\n Réessayer\n </Button>\n )}\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Prepare filter configurations\n const filterConfigs = filters.map((filter) => ({\n key: filter.key,\n label: filter.label,\n value: filterValues[filter.key] || '',\n options: filter.options,\n onChange: (value: FilterOption | undefined) => {\n setFilter(filter.key, value?.value || '');\n },\n showCounts: filter.showCounts,\n }));\n\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {/* Header */}\n {header ? (\n header\n ) : (\n <HStack className=\"items-center justify-between\">\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n\n <HStack className=\"items-center gap-4\">\n {toolbar}\n {(isLoading || isFetching) && (\n <div className=\"text-muted-foreground flex items-center gap-2 text-base\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n <span className=\"hidden sm:inline\">Mise à jour...</span>\n </div>\n )}\n\n {onRefresh && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onPress={onRefresh}\n disabled={Boolean(isLoading)}\n aria-label=\"Rafraîchir\"\n >\n <RefreshCcw\n className={`mr-2 h-4 w-4 ${isLoading || isFetching ? 'animate-spin' : ''}`}\n />\n <span className=\"hidden sm:inline\">Rafraîchir</span>\n </Button>\n )}\n\n {primaryAction && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n )}\n </>\n )}\n </HStack>\n </HStack>\n )}\n\n {/* Stats (optional) */}\n {renderStats && (\n <>\n {renderStats(items)}\n <Separator />\n </>\n )}\n\n {/* Search and Filters */}\n <SearchAndFilter\n searchValue={searchQuery}\n onSearchChange={setSearchQuery}\n searchPlaceholder={searchPlaceholder}\n filters={filterConfigs}\n isLoading={isLoading}\n />\n\n {/* Content */}\n {items.length === 0 && !isLoading ? (\n renderEmpty ? (\n renderEmpty()\n ) : (\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-8 text-center\">\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n <div className=\"bg-muted-foreground/20 h-6 w-6 rounded-full\" />\n </div>\n <div>\n <h3 className=\"font-medium\">Aucun élément trouvé</h3>\n <p className=\"text-muted-foreground text-base\">\n {searchQuery || Object.values(filterValues).some((v) => v)\n ? 'Essayez de modifier vos critères de recherche'\n : 'Commencez par créer votre premier élément'}\n </p>\n </div>\n {primaryAction &&\n !searchQuery &&\n !Object.values(filterValues).some((v) => v) && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n )}\n </>\n )}\n </CardContent>\n </Card>\n )\n ) : (\n <>\n {/* Items List */}\n <div className={`space-y-4 ${itemClassName}`}>\n {items.map((item, index) => renderItem(item, index))}\n </div>\n\n {/* Pagination */}\n {totalPages > 1 && (\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n totalItems={totalItems}\n itemsPerPage={itemsPerPage}\n onPageChange={setCurrentPage}\n onItemsPerPageChange={setItemsPerPage}\n disabled={isLoading}\n />\n )}\n </>\n )}\n </VStack>\n );\n}\n"],"mappings":"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"}