@ramses1er/cbk-toolkit 2.1.1 → 2.3.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 (155) hide show
  1. package/dist/packages/lib/src/auth-guard.d.ts +10 -0
  2. package/dist/packages/lib/src/auth-guard.d.ts.map +1 -0
  3. package/dist/packages/lib/src/auth-guard.js +60 -0
  4. package/dist/packages/lib/src/auth-guard.js.map +1 -0
  5. package/dist/packages/lib/src/handle-server-error.d.ts +9 -0
  6. package/dist/packages/lib/src/handle-server-error.d.ts.map +1 -0
  7. package/dist/packages/lib/src/handle-server-error.js +43 -0
  8. package/dist/packages/lib/src/handle-server-error.js.map +1 -0
  9. package/dist/packages/lib/src/http-error.d.ts +6 -0
  10. package/dist/packages/lib/src/http-error.d.ts.map +1 -0
  11. package/dist/packages/lib/src/http-error.js +12 -0
  12. package/dist/packages/lib/src/http-error.js.map +1 -0
  13. package/dist/packages/lib/src/index.d.ts +5 -0
  14. package/dist/packages/lib/src/index.d.ts.map +1 -0
  15. package/dist/packages/lib/src/index.js +9 -0
  16. package/dist/packages/lib/src/index.js.map +1 -0
  17. package/dist/packages/lib/src/with-auth.d.ts +8 -0
  18. package/dist/packages/lib/src/with-auth.d.ts.map +1 -0
  19. package/dist/packages/lib/src/with-auth.js +32 -0
  20. package/dist/packages/lib/src/with-auth.js.map +1 -0
  21. package/dist/packages/ui/src/config/create-side-nav.d.ts +6 -0
  22. package/dist/packages/ui/src/config/create-side-nav.d.ts.map +1 -0
  23. package/dist/packages/ui/src/config/create-side-nav.js +9 -0
  24. package/dist/packages/ui/src/config/create-side-nav.js.map +1 -0
  25. package/dist/packages/ui/src/feedback/confirmation.d.ts +16 -0
  26. package/dist/packages/ui/src/feedback/confirmation.d.ts.map +1 -0
  27. package/dist/packages/ui/src/feedback/confirmation.js +82 -0
  28. package/dist/packages/ui/src/feedback/confirmation.js.map +1 -0
  29. package/dist/packages/ui/src/feedback/error-display.d.ts +7 -0
  30. package/dist/packages/ui/src/feedback/error-display.d.ts.map +1 -0
  31. package/dist/packages/ui/src/feedback/error-display.js +11 -0
  32. package/dist/packages/ui/src/feedback/error-display.js.map +1 -0
  33. package/dist/packages/ui/src/forms/date-picker.d.ts +4 -0
  34. package/dist/packages/ui/src/forms/date-picker.d.ts.map +1 -0
  35. package/dist/packages/ui/src/forms/date-picker.js +9 -0
  36. package/dist/packages/ui/src/forms/date-picker.js.map +1 -0
  37. package/dist/packages/ui/src/forms/field-container.d.ts +8 -0
  38. package/dist/packages/ui/src/forms/field-container.d.ts.map +1 -0
  39. package/dist/packages/ui/src/forms/field-container.js +6 -0
  40. package/dist/packages/ui/src/forms/field-container.js.map +1 -0
  41. package/dist/packages/ui/src/forms/form.d.ts +9 -0
  42. package/dist/packages/ui/src/forms/form.d.ts.map +1 -0
  43. package/dist/packages/ui/src/forms/form.js +63 -0
  44. package/dist/packages/ui/src/forms/form.js.map +1 -0
  45. package/dist/packages/ui/src/forms/input.d.ts +4 -0
  46. package/dist/packages/ui/src/forms/input.d.ts.map +1 -0
  47. package/dist/packages/ui/src/forms/input.js +13 -0
  48. package/dist/packages/ui/src/forms/input.js.map +1 -0
  49. package/dist/packages/ui/src/forms/label.d.ts +7 -0
  50. package/dist/packages/ui/src/forms/label.d.ts.map +1 -0
  51. package/dist/packages/ui/src/forms/label.js +9 -0
  52. package/dist/packages/ui/src/forms/label.js.map +1 -0
  53. package/dist/packages/ui/src/forms/select.d.ts +6 -0
  54. package/dist/packages/ui/src/forms/select.d.ts.map +1 -0
  55. package/dist/packages/ui/src/forms/select.js +19 -0
  56. package/dist/packages/ui/src/forms/select.js.map +1 -0
  57. package/dist/packages/ui/src/forms/textarea.d.ts +4 -0
  58. package/dist/packages/ui/src/forms/textarea.d.ts.map +1 -0
  59. package/dist/packages/ui/src/forms/textarea.js +9 -0
  60. package/dist/packages/ui/src/forms/textarea.js.map +1 -0
  61. package/dist/packages/ui/src/headers/header-content.d.ts +11 -0
  62. package/dist/packages/ui/src/headers/header-content.d.ts.map +1 -0
  63. package/dist/packages/ui/src/headers/header-content.js +6 -0
  64. package/dist/packages/ui/src/headers/header-content.js.map +1 -0
  65. package/dist/packages/ui/src/illustrations/topic-illustration.d.ts +1 -0
  66. package/dist/packages/ui/src/illustrations/topic-illustration.d.ts.map +1 -0
  67. package/dist/packages/ui/src/illustrations/topic-illustration.js +69 -0
  68. package/dist/packages/ui/src/illustrations/topic-illustration.js.map +1 -0
  69. package/dist/packages/ui/src/index.d.ts +28 -0
  70. package/dist/packages/ui/src/index.d.ts.map +1 -0
  71. package/dist/packages/ui/src/index.js +38 -0
  72. package/dist/packages/ui/src/index.js.map +1 -0
  73. package/dist/packages/ui/src/layouts/side-nav.d.ts +45 -0
  74. package/dist/packages/ui/src/layouts/side-nav.d.ts.map +1 -0
  75. package/dist/packages/ui/src/layouts/side-nav.js +127 -0
  76. package/dist/packages/ui/src/layouts/side-nav.js.map +1 -0
  77. package/dist/packages/ui/src/loaders/loader-submit.d.ts +8 -0
  78. package/dist/packages/ui/src/loaders/loader-submit.d.ts.map +1 -0
  79. package/dist/packages/ui/src/loaders/loader-submit.js +7 -0
  80. package/dist/packages/ui/src/loaders/loader-submit.js.map +1 -0
  81. package/dist/packages/ui/src/loaders/loading.d.ts +6 -0
  82. package/dist/packages/ui/src/loaders/loading.d.ts.map +1 -0
  83. package/dist/packages/ui/src/loaders/loading.js +7 -0
  84. package/dist/packages/ui/src/loaders/loading.js.map +1 -0
  85. package/dist/packages/ui/src/modals/modal.d.ts +10 -0
  86. package/dist/packages/ui/src/modals/modal.d.ts.map +1 -0
  87. package/dist/packages/ui/src/modals/modal.js +36 -0
  88. package/dist/packages/ui/src/modals/modal.js.map +1 -0
  89. package/dist/packages/ui/src/pages/access-denied.d.ts +8 -0
  90. package/dist/packages/ui/src/pages/access-denied.d.ts.map +1 -0
  91. package/dist/packages/ui/src/pages/access-denied.js +8 -0
  92. package/dist/packages/ui/src/pages/access-denied.js.map +1 -0
  93. package/dist/packages/ui/src/pages/session-expired.d.ts +6 -0
  94. package/dist/packages/ui/src/pages/session-expired.d.ts.map +1 -0
  95. package/dist/packages/ui/src/pages/session-expired.js +21 -0
  96. package/dist/packages/ui/src/pages/session-expired.js.map +1 -0
  97. package/dist/packages/ui/src/pwa/InstallPrompt.d.ts +7 -0
  98. package/dist/packages/ui/src/pwa/InstallPrompt.d.ts.map +1 -0
  99. package/dist/packages/ui/src/pwa/InstallPrompt.js +71 -0
  100. package/dist/packages/ui/src/pwa/InstallPrompt.js.map +1 -0
  101. package/dist/packages/ui/src/pwa/SwRegistration.d.ts +5 -0
  102. package/dist/packages/ui/src/pwa/SwRegistration.d.ts.map +1 -0
  103. package/dist/packages/ui/src/pwa/SwRegistration.js +13 -0
  104. package/dist/packages/ui/src/pwa/SwRegistration.js.map +1 -0
  105. package/dist/packages/ui/src/route-guard/route-guard.d.ts +31 -0
  106. package/dist/packages/ui/src/route-guard/route-guard.d.ts.map +1 -0
  107. package/dist/packages/ui/src/route-guard/route-guard.js +75 -0
  108. package/dist/packages/ui/src/route-guard/route-guard.js.map +1 -0
  109. package/dist/packages/ui/src/search/input-search.d.ts +1 -0
  110. package/dist/packages/ui/src/search/input-search.d.ts.map +1 -0
  111. package/dist/packages/ui/src/search/input-search.js +47 -0
  112. package/dist/packages/ui/src/search/input-search.js.map +1 -0
  113. package/dist/packages/ui/src/search/select-search.d.ts +1 -0
  114. package/dist/packages/ui/src/search/select-search.d.ts.map +1 -0
  115. package/dist/packages/ui/src/search/select-search.js +100 -0
  116. package/dist/packages/ui/src/search/select-search.js.map +1 -0
  117. package/dist/packages/ui/src/table/actions-menu.d.ts +14 -0
  118. package/dist/packages/ui/src/table/actions-menu.d.ts.map +1 -0
  119. package/dist/packages/ui/src/table/actions-menu.js +53 -0
  120. package/dist/packages/ui/src/table/actions-menu.js.map +1 -0
  121. package/dist/packages/ui/src/table/table.d.ts +24 -0
  122. package/dist/packages/ui/src/table/table.d.ts.map +1 -0
  123. package/dist/packages/ui/src/table/table.js +99 -0
  124. package/dist/packages/ui/src/table/table.js.map +1 -0
  125. package/dist/packages/utils/src/fetcher.d.ts +16 -0
  126. package/dist/packages/utils/src/fetcher.d.ts.map +1 -0
  127. package/dist/packages/utils/src/fetcher.js +38 -0
  128. package/dist/packages/utils/src/fetcher.js.map +1 -0
  129. package/dist/packages/utils/src/formatCurrency.d.ts +1 -0
  130. package/dist/packages/utils/src/formatCurrency.d.ts.map +1 -0
  131. package/dist/packages/utils/src/formatCurrency.js +2 -0
  132. package/dist/packages/utils/src/formatCurrency.js.map +1 -0
  133. package/dist/packages/utils/src/formatDate.d.ts +1 -0
  134. package/dist/packages/utils/src/formatDate.d.ts.map +1 -0
  135. package/dist/packages/utils/src/formatDate.js +2 -0
  136. package/dist/packages/utils/src/formatDate.js.map +1 -0
  137. package/dist/packages/utils/src/index.d.ts +3 -0
  138. package/dist/packages/utils/src/index.d.ts.map +1 -0
  139. package/dist/packages/utils/src/index.js +2 -0
  140. package/dist/packages/utils/src/index.js.map +1 -0
  141. package/dist/src/client.d.ts +3 -0
  142. package/dist/src/client.d.ts.map +1 -0
  143. package/dist/src/client.js +5 -0
  144. package/dist/src/client.js.map +1 -0
  145. package/dist/src/server.d.ts +2 -0
  146. package/dist/src/server.d.ts.map +1 -0
  147. package/dist/src/server.js +3 -0
  148. package/dist/src/server.js.map +1 -0
  149. package/package.json +8 -8
  150. package/dist/client.d.ts +0 -210
  151. package/dist/client.js +0 -1407
  152. package/dist/client.js.map +0 -1
  153. package/dist/server.d.ts +0 -33
  154. package/dist/server.js +0 -161
  155. package/dist/server.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Printer, ChevronLeft, ChevronRight } from "lucide-react";
4
+ import clsx from "clsx";
5
+ import { useState, useMemo, useCallback } from "react";
6
+ import { ErrorDisplay } from "../feedback/error-display";
7
+ const VISIBLE_PAGES = 5;
8
+ function priorityCellClass(col) {
9
+ const base = col.priority === "medium"
10
+ ? "hidden sm:table-cell"
11
+ : col.priority === "low"
12
+ ? "hidden lg:table-cell"
13
+ : "";
14
+ if (!base)
15
+ return "";
16
+ return col.excludeFromPrint ? base : `${base} print:table-cell`;
17
+ }
18
+ export function Table({ data, columns, loading, error, label, printable, pageSize = 5, pageSizeOptions = [5, 10, 20], showPagination = true, }) {
19
+ const [tooltip, setTooltip] = useState(null);
20
+ const [page, setPage] = useState(1);
21
+ const [perPage, setPerPage] = useState(pageSize);
22
+ const totalPages = useMemo(() => Math.max(1, Math.ceil(data.length / perPage)), [data.length, perPage]);
23
+ const safePage = Math.min(page, totalPages);
24
+ const displayData = useMemo(() => data.slice((safePage - 1) * perPage, safePage * perPage), [data, safePage, perPage]);
25
+ const paginationRange = useMemo(() => {
26
+ const half = Math.floor(VISIBLE_PAGES / 2);
27
+ let start = Math.max(1, safePage - half);
28
+ let end = Math.min(totalPages, start + VISIBLE_PAGES - 1);
29
+ if (end - start + 1 < VISIBLE_PAGES) {
30
+ start = Math.max(1, end - VISIBLE_PAGES + 1);
31
+ }
32
+ const range = [];
33
+ if (start > 1) {
34
+ range.push(1);
35
+ if (start > 2)
36
+ range.push("...");
37
+ }
38
+ for (let i = start; i <= end; i++)
39
+ range.push(i);
40
+ if (end < totalPages) {
41
+ if (end < totalPages - 1)
42
+ range.push("...");
43
+ range.push(totalPages);
44
+ }
45
+ return range;
46
+ }, [safePage, totalPages]);
47
+ const handlePageSizeChange = useCallback((value) => {
48
+ setPerPage(value);
49
+ setPage(1);
50
+ }, []);
51
+ const handleMouseEnter = (e, content) => {
52
+ const rect = e.currentTarget.getBoundingClientRect();
53
+ setTooltip({
54
+ content,
55
+ x: rect.left + rect.width / 2,
56
+ y: rect.top,
57
+ });
58
+ };
59
+ const handleMouseLeave = () => {
60
+ setTooltip(null);
61
+ };
62
+ const banner = error ? (_jsx("div", { className: "mb-4", children: _jsx(ErrorDisplay, { error: error }, error.message) })) : null;
63
+ if (loading) {
64
+ return (_jsxs("div", { className: "w-full overflow-x-auto", children: [banner, _jsx("div", { className: "rounded-lg shadow-md border border-gray-200", children: _jsx("div", { className: "flex items-center justify-center py-20 text-gray-500", children: "Chargement..." }) })] }));
65
+ }
66
+ if (!data || data.length === 0) {
67
+ return (_jsxs("div", { className: "w-full overflow-x-auto", children: [banner, _jsx("div", { className: "rounded-lg shadow-md border border-gray-200", children: _jsx("div", { className: "flex items-center justify-center py-20 text-gray-500", children: "Aucun \u00E9l\u00E9ment" }) })] }));
68
+ }
69
+ return (_jsxs("div", { className: "w-full overflow-x-auto", children: [banner, _jsxs("div", { className: "flex items-center justify-between mb-2", children: [label && (_jsxs("div", { className: "text-sm font-semibold text-gray-700", children: [label, ": ", data.length] })), printable && (_jsx("button", { onClick: () => window.print(), "aria-label": "Imprimer", onMouseEnter: (e) => handleMouseEnter(e, "Imprimer"), onMouseLeave: handleMouseLeave, className: "flex items-center justify-center w-9 h-9 text-white bg-gray-900 rounded-lg hover:bg-gray-700 transition-colors print:hidden ml-auto", children: _jsx(Printer, { className: "w-4 h-4" }) }))] }), _jsx("div", { className: "rounded-lg shadow-md border border-gray-200", children: _jsxs("table", { className: "w-full table-fixed divide-y divide-gray-200 print:table-fixed", children: [_jsx("thead", { className: "bg-gray-200 rounded-t-lg", children: _jsx("tr", { children: columns.map((col, index) => (_jsx("th", { className: clsx("px-6 py-3 text-left text-xs font-bold text-gray-900 uppercase tracking-wider", priorityCellClass(col), col.excludeFromPrint && "print:hidden"), children: col.header }, index))) }) }), _jsx("tbody", { className: clsx("bg-white divide-y divide-gray-200", printable && "print:hidden"), children: displayData.map((row, rowIndex) => (_jsx("tr", { className: "hover:bg-gray-100 transition-colors duration-200", children: columns.map((col, colIndex) => {
70
+ const cellContent = col.render
71
+ ? col.render(row)
72
+ : String(row[col.accessor]);
73
+ const textContent = typeof cellContent === "string" ? cellContent : "";
74
+ return (_jsx("td", { className: clsx("px-6 py-4 text-sm text-gray-700", priorityCellClass(col), col.excludeFromPrint && "print:hidden"), children: typeof cellContent === "string" ? (_jsx("div", { className: col.breakWords ? "break-words" : "", onMouseEnter: (e) => handleMouseEnter(e, textContent), onMouseLeave: handleMouseLeave, children: cellContent })) : (cellContent) }, colIndex));
75
+ }) }, rowIndex))) }), printable && (_jsx("tbody", { className: "hidden print:table-row-group", children: data.map((row, rowIndex) => (_jsx("tr", { children: columns.map((col, colIndex) => {
76
+ const cellContent = col.render
77
+ ? col.render(row)
78
+ : String(row[col.accessor]);
79
+ return (_jsx("td", { className: clsx("px-6 py-4 text-sm text-gray-700", col.excludeFromPrint && "print:hidden"), children: cellContent }, colIndex));
80
+ }) }, rowIndex))) }))] }) }), showPagination && totalPages > 1 && (_jsxs("div", { className: "flex flex-col items-center gap-3 mt-4 text-sm print:hidden sm:flex-row sm:justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 text-gray-600", children: [_jsx("span", { children: "Lignes par page :" }), _jsx("select", { value: perPage, onChange: (e) => handlePageSizeChange(Number(e.target.value)), className: "border border-gray-300 rounded px-2 py-1 text-sm bg-white focus:outline-none focus:ring-2 focus:ring-gray-500", children: pageSizeOptions.map((opt) => (_jsx("option", { value: opt, children: opt }, opt))) })] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { onClick: () => setPage((p) => Math.max(1, p - 1)), disabled: safePage <= 1, className: clsx("p-1.5 rounded transition-colors", safePage <= 1
81
+ ? "text-gray-300 cursor-not-allowed"
82
+ : "text-gray-600 hover:bg-gray-100"), children: _jsx(ChevronLeft, { className: "w-4 h-4" }) }), paginationRange.map((item, i) => item === "..." ? (_jsx("span", { className: "px-2 text-gray-400", children: "..." }, `ellipsis-${i}`)) : (_jsx("button", { onClick: () => setPage(item), className: clsx("min-w-8 px-2 py-1 rounded text-sm font-medium transition-colors", item === safePage
83
+ ? "bg-gray-200 text-gray-900"
84
+ : "text-gray-600 hover:bg-gray-100"), children: item }, item))), _jsx("button", { onClick: () => setPage((p) => Math.min(totalPages, p + 1)), disabled: safePage >= totalPages, className: clsx("p-1.5 rounded transition-colors", safePage >= totalPages
85
+ ? "text-gray-300 cursor-not-allowed"
86
+ : "text-gray-600 hover:bg-gray-100"), children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), _jsxs("div", { className: "text-gray-500", children: ["Page ", safePage, " sur ", totalPages] })] })), tooltip && (_jsx("div", { className: "fixed z-20 px-3 py-2 text-sm text-white bg-gray-800 rounded-lg shadow-lg pointer-events-none whitespace-nowrap", style: {
87
+ left: tooltip.x,
88
+ top: tooltip.y - 8,
89
+ transform: "translate(-50%, -100%)",
90
+ }, children: tooltip.content })), _jsx("style", { children: `
91
+ @media print {
92
+ body * { visibility: hidden; }
93
+ .w-full.overflow-x-auto { visibility: visible; }
94
+ .w-full.overflow-x-auto * { visibility: visible; }
95
+ .w-full.overflow-x-auto { position: absolute; left: 0; top: 0; width: 100%; }
96
+ }
97
+ ` })] }));
98
+ }
99
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../../packages/ui/src/table/table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAczD,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,SAAS,iBAAiB,CAAI,GAAc;IAC1C,MAAM,IAAI,GACR,GAAG,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK;YACtB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,EAAE,CAAC;IACX,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC;AAClE,CAAC;AAcD,MAAM,UAAU,KAAK,CAAI,EACvB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,GAAG,CAAC,EACZ,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAC7B,cAAc,GAAG,IAAI,GACP;IACd,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAI5B,IAAI,CAAC,CAAC;IAChB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,EACnD,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CACvB,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,EAC9D,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC1B,CAAC;IAEF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE,CAAC;YACpC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,KAAK,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,UAAU,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACzD,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,CACvB,CAAgC,EAChC,OAAe,EACf,EAAE;QACF,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACrD,UAAU,CAAC;YACT,OAAO;YACP,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;YAC7B,CAAC,EAAE,IAAI,CAAC,GAAG;SACZ,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CACrB,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,YAAY,IAAqB,KAAK,EAAE,KAAK,IAA3B,KAAK,CAAC,OAAO,CAAkB,GAC9C,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,EACP,cAAK,SAAS,EAAC,6CAA6C,YAC1D,cAAK,SAAS,EAAC,sDAAsD,8BAE/D,GACF,IACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,EACP,cAAK,SAAS,EAAC,6CAA6C,YAC1D,cAAK,SAAS,EAAC,sDAAsD,wCAE/D,GACF,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,EACP,eAAK,SAAS,EAAC,wCAAwC,aACpD,KAAK,IAAI,CACR,eAAK,SAAS,EAAC,qCAAqC,aACjD,KAAK,QAAI,IAAI,CAAC,MAAM,IACjB,CACP,EACA,SAAS,IAAI,CACZ,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,gBAClB,UAAU,EACrB,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,EACpD,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAC,qIAAqI,YAE/I,KAAC,OAAO,IAAC,SAAS,EAAC,SAAS,GAAG,GACxB,CACV,IACG,EACN,cAAK,SAAS,EAAC,6CAA6C,YAC1D,iBAAO,SAAS,EAAC,+DAA+D,aAC9E,gBAAO,SAAS,EAAC,0BAA0B,YACzC,uBACG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,aAEE,SAAS,EAAE,IAAI,CACb,8EAA8E,EAC9E,iBAAiB,CAAC,GAAG,CAAC,EACtB,GAAG,CAAC,gBAAgB,IAAI,cAAc,CACvC,YAEA,GAAG,CAAC,MAAM,IAPN,KAAK,CAQP,CACN,CAAC,GACC,GACC,EACR,gBACE,SAAS,EAAE,IAAI,CACb,mCAAmC,EACnC,SAAS,IAAI,cAAc,CAC5B,YAEA,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAClC,aAEE,SAAS,EAAC,kDAAkD,YAE3D,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oCAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM;wCAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;wCACjB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC,CAAC;oCAC/B,MAAM,WAAW,GACf,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;oCAErD,OAAO,CACL,aAEE,SAAS,EAAE,IAAI,CACb,iCAAiC,EACjC,iBAAiB,CAAC,GAAG,CAAC,EACtB,GAAG,CAAC,gBAAgB,IAAI,cAAc,CACvC,YAEA,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CACjC,cACE,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAC9C,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,EACrD,YAAY,EAAE,gBAAgB,YAE7B,WAAW,GACR,CACP,CAAC,CAAC,CAAC,CACF,WAAW,CACZ,IAjBI,QAAQ,CAkBV,CACN,CAAC;gCACJ,CAAC,CAAC,IAhCG,QAAQ,CAiCV,CACN,CAAC,GACI,EACP,SAAS,IAAI,CACZ,gBAAO,SAAS,EAAC,8BAA8B,YAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAC3B,uBACG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oCAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM;wCAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;wCACjB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC,CAAC;oCAE/B,OAAO,CACL,aAEE,SAAS,EAAE,IAAI,CACb,iCAAiC,EACjC,GAAG,CAAC,gBAAgB,IAAI,cAAc,CACvC,YAEA,WAAW,IANP,QAAQ,CAOV,CACN,CAAC;gCACJ,CAAC,CAAC,IAjBK,QAAQ,CAkBZ,CACN,CAAC,GACI,CACT,IACK,GACJ,EAEL,cAAc,IAAI,UAAU,GAAG,CAAC,IAAI,CACnC,eAAK,SAAS,EAAC,2FAA2F,aACxG,eAAK,SAAS,EAAC,uCAAuC,aACpD,+CAA8B,EAC9B,iBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC7D,SAAS,EAAC,+GAA+G,YAExH,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5B,iBAAkB,KAAK,EAAE,GAAG,YACzB,GAAG,IADO,GAAG,CAEP,CACV,CAAC,GACK,IACL,EAEN,eAAK,SAAS,EAAC,yBAAyB,aACtC,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EACjD,QAAQ,EAAE,QAAQ,IAAI,CAAC,EACvB,SAAS,EAAE,IAAI,CACb,iCAAiC,EACjC,QAAQ,IAAI,CAAC;oCACX,CAAC,CAAC,kCAAkC;oCACpC,CAAC,CAAC,iCAAiC,CACtC,YAED,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,GAC5B,EAER,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CACf,eAA4B,SAAS,EAAC,oBAAoB,qBAA/C,YAAY,CAAC,EAAE,CAEnB,CACR,CAAC,CAAC,CAAC,CACF,iBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,IAAI,CACb,iEAAiE,EACjE,IAAI,KAAK,QAAQ;oCACf,CAAC,CAAC,2BAA2B;oCAC7B,CAAC,CAAC,iCAAiC,CACtC,YAEA,IAAI,IATA,IAAI,CAUF,CACV,CACF,EAED,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAC1D,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAChC,SAAS,EAAE,IAAI,CACb,iCAAiC,EACjC,QAAQ,IAAI,UAAU;oCACpB,CAAC,CAAC,kCAAkC;oCACpC,CAAC,CAAC,iCAAiC,CACtC,YAED,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,GAC7B,IACL,EAEN,eAAK,SAAS,EAAC,eAAe,sBACtB,QAAQ,WAAO,UAAU,IAC3B,IACF,CACP,EAEA,OAAO,IAAI,CACV,cACE,SAAS,EAAC,gHAAgH,EAC1H,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO,CAAC,CAAC;oBACf,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC;oBAClB,SAAS,EAAE,wBAAwB;iBACpC,YAEA,OAAO,CAAC,OAAO,GACZ,CACP,EACD,0BAAQ;;;;;;;OAOP,GAAS,IACN,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare class ApiError extends Error {
2
+ status: number;
3
+ code?: string;
4
+ data?: unknown;
5
+ constructor(params: {
6
+ message: string;
7
+ status: number;
8
+ code?: string;
9
+ data?: unknown;
10
+ });
11
+ }
12
+ export type FetcherOptions = RequestInit & {
13
+ skipJsonParsing?: boolean;
14
+ };
15
+ export declare function fetcher<T = unknown>(url: string, options?: FetcherOptions): Promise<T>;
16
+ //# sourceMappingURL=fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../../packages/utils/src/fetcher.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEV,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB;CAMF;AAQD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CA+BZ"}
@@ -0,0 +1,38 @@
1
+ export class ApiError extends Error {
2
+ status;
3
+ code;
4
+ data;
5
+ constructor(params) {
6
+ super(params.message);
7
+ this.status = params.status;
8
+ this.code = params.code;
9
+ this.data = params.data;
10
+ }
11
+ }
12
+ export async function fetcher(url, options = {}) {
13
+ const { headers, skipJsonParsing = false, ...rest } = options;
14
+ const response = await fetch(url, {
15
+ credentials: "include",
16
+ headers: {
17
+ "Content-Type": "application/json",
18
+ ...headers,
19
+ },
20
+ ...rest,
21
+ });
22
+ let responseData = null;
23
+ const contentType = response.headers.get("content-type");
24
+ if (!skipJsonParsing && contentType?.includes("application/json")) {
25
+ responseData = await response.json();
26
+ }
27
+ if (!response.ok) {
28
+ const backendError = responseData;
29
+ throw new ApiError({
30
+ message: backendError?.message || "Une erreur est survenue",
31
+ status: backendError?.status || response.status,
32
+ code: backendError?.code,
33
+ data: responseData,
34
+ });
35
+ }
36
+ return responseData;
37
+ }
38
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../../../packages/utils/src/fetcher.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAC1B,MAAM,CAAS;IACf,IAAI,CAAU;IACd,IAAI,CAAW;IAEtB,YAAY,MAKX;QACC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAYD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAW,EACX,UAA0B,EAAE;IAE5B,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO;SACX;QACD,GAAG,IAAI;KACR,CAAC,CAAC;IAEH,IAAI,YAAY,GAAY,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,eAAe,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAClE,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,YAAiC,CAAC;QAEvD,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,yBAAyB;YAC3D,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM;YAC/C,IAAI,EAAE,YAAY,EAAE,IAAI;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAiB,CAAC;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=formatCurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatCurrency.d.ts","sourceRoot":"","sources":["../../../../packages/utils/src/formatCurrency.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=formatCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatCurrency.js","sourceRoot":"","sources":["../../../../packages/utils/src/formatCurrency.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=formatDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDate.d.ts","sourceRoot":"","sources":["../../../../packages/utils/src/formatDate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=formatDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../../../../packages/utils/src/formatDate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ApiError, fetcher } from "./fetcher";
2
+ export type { FetcherOptions } from "./fetcher";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ApiError, fetcher } from "./fetcher";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../packages/ui/src/index";
2
+ export * from "../packages/utils/src/index";
3
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AAGzC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ // ui exports
2
+ export * from "../packages/ui/src/index";
3
+ // utils exports
4
+ export * from "../packages/utils/src/index";
5
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,0BAA0B,CAAC;AAEzC,gBAAgB;AAChB,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../packages/lib/src/index";
2
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ // lib exports
2
+ export * from "../packages/lib/src/index";
3
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@ramses1er/cbk-toolkit",
3
- "version": "2.1.1",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./client": {
7
- "import": "./dist/client.js",
8
- "types": "./dist/client.d.ts"
7
+ "import": "./dist/src/client.js",
8
+ "types": "./dist/src/client.d.ts"
9
9
  },
10
10
  "./server": {
11
- "import": "./dist/server.js",
12
- "types": "./dist/server.d.ts"
11
+ "import": "./dist/src/server.js",
12
+ "types": "./dist/src/server.d.ts"
13
13
  }
14
14
  },
15
15
  "files": [
@@ -34,8 +34,8 @@
34
34
  "tsup": "^8.5.0"
35
35
  },
36
36
  "scripts": {
37
- "build": "tsup",
38
- "dev": "tsup --watch",
39
- "clean": "rm -rf dist"
37
+ "build": "tsc -p tsconfig.build.json",
38
+ "dev": "tsc -p tsconfig.build.json --watch",
39
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\""
40
40
  }
41
41
  }
package/dist/client.d.ts DELETED
@@ -1,210 +0,0 @@
1
- import * as React$1 from 'react';
2
- import React__default, { ReactNode, ComponentType } from 'react';
3
-
4
- type IconType = ReactNode | ComponentType<{
5
- size?: number;
6
- }>;
7
- interface NavItem {
8
- id: string;
9
- label: string;
10
- title?: string;
11
- icon?: IconType;
12
- href: string;
13
- subItems?: NavItem[];
14
- }
15
- type FooterItem = {
16
- icon?: IconType;
17
- label: string;
18
- href: string;
19
- } | {
20
- icon?: IconType;
21
- label: string;
22
- confirm: {
23
- title?: string;
24
- question: string;
25
- messageYes: string;
26
- messageNo: string;
27
- onAction: () => Promise<void> | void;
28
- };
29
- };
30
- interface SideNavStaticConfig {
31
- brand?: {
32
- logo?: ReactNode;
33
- name?: string;
34
- tagline?: string;
35
- };
36
- mainItems: NavItem[];
37
- title?: string;
38
- footer?: FooterItem[];
39
- toggleIcon?: ReactNode;
40
- }
41
- interface SideNavProps extends SideNavStaticConfig {
42
- children: ReactNode;
43
- currentPath: string;
44
- }
45
- declare function SideNav({ children, title, mainItems, currentPath, brand, footer, toggleIcon, }: SideNavProps): React$1.JSX.Element;
46
-
47
- declare function createSideNav(config: SideNavStaticConfig): ({ children, currentPath, }: {
48
- children: React.ReactNode;
49
- currentPath: string;
50
- }) => React$1.JSX.Element;
51
-
52
- declare class ApiError extends Error {
53
- status: number;
54
- code?: string;
55
- data?: unknown;
56
- constructor(params: {
57
- message: string;
58
- status: number;
59
- code?: string;
60
- data?: unknown;
61
- });
62
- }
63
- type FetcherOptions = RequestInit & {
64
- skipJsonParsing?: boolean;
65
- };
66
- declare function fetcher<T = unknown>(url: string, options?: FetcherOptions): Promise<T>;
67
-
68
- type Column<T> = {
69
- header: string;
70
- accessor?: keyof T;
71
- render?: (row: T) => React.ReactNode;
72
- excludeFromPrint?: boolean;
73
- };
74
- type TableProps<T> = {
75
- data: T[];
76
- columns: Column<T>[];
77
- loading?: boolean;
78
- error?: ApiError | null;
79
- label?: string;
80
- printable?: boolean;
81
- pageSize?: number;
82
- pageSizeOptions?: number[];
83
- showPagination?: boolean;
84
- };
85
- declare function Table<T>({ data, columns, loading, error, label, printable, pageSize, pageSizeOptions, showPagination, }: TableProps<T>): React$1.JSX.Element;
86
-
87
- type TableAction<T> = {
88
- label: string;
89
- icon: React__default.ReactNode;
90
- callback: (row: T) => void;
91
- color?: string;
92
- };
93
- type ActionsMenuProps<T> = {
94
- row: T;
95
- actions: TableAction<T>[];
96
- };
97
- declare function ActionsMenu<T>({ row, actions }: ActionsMenuProps<T>): React__default.JSX.Element;
98
-
99
- type ModalProps = {
100
- title: string;
101
- isOpen: boolean;
102
- onClose: () => void;
103
- children: React__default.ReactNode | ((requestClose: () => void) => React__default.ReactNode);
104
- };
105
- declare function Modal({ title, isOpen, onClose, children }: ModalProps): React__default.ReactPortal | null;
106
-
107
- interface ConfirmationProps {
108
- question: string;
109
- messageYes: string;
110
- messageNo: string;
111
- requestClose: () => void;
112
- onAction: () => void | Promise<void> | Promise<boolean> | Promise<{
113
- success: true;
114
- }>;
115
- isProcessing: boolean;
116
- error: ApiError | null;
117
- resetRequest: () => void;
118
- }
119
- declare function Confirmation({ question, messageYes, messageNo, requestClose, onAction, isProcessing, error, resetRequest, }: ConfirmationProps): React$1.JSX.Element | null;
120
-
121
- type HeaderContentProps = {
122
- title: string;
123
- description: string;
124
- actionLabel?: string;
125
- onAction?: () => void;
126
- icon?: React__default.ReactNode;
127
- };
128
- declare function HeaderContent({ title, description, actionLabel, onAction, icon, }: HeaderContentProps): React__default.JSX.Element;
129
-
130
- interface FormProps extends React__default.FormHTMLAttributes<HTMLFormElement> {
131
- erreurs?: ApiError | null;
132
- onErrorClose?: () => void;
133
- }
134
- declare const Form: React__default.FC<FormProps>;
135
-
136
- interface FieldContainerProps {
137
- children: React__default.ReactNode;
138
- className?: string;
139
- }
140
- declare function FieldContainer({ children, className }: FieldContainerProps): React__default.JSX.Element;
141
-
142
- interface LabelProps extends Omit<React__default.LabelHTMLAttributes<HTMLLabelElement>, "required"> {
143
- required?: boolean;
144
- }
145
- declare const Label: React__default.ForwardRefExoticComponent<LabelProps & React__default.RefAttributes<HTMLLabelElement>>;
146
-
147
- declare const Input: React__default.ForwardRefExoticComponent<React__default.InputHTMLAttributes<HTMLInputElement> & React__default.RefAttributes<HTMLInputElement>>;
148
-
149
- declare const Select: React__default.ForwardRefExoticComponent<React__default.SelectHTMLAttributes<HTMLSelectElement> & React__default.RefAttributes<HTMLSelectElement>>;
150
-
151
- declare const Option: React__default.ForwardRefExoticComponent<React__default.OptionHTMLAttributes<HTMLOptionElement> & React__default.RefAttributes<HTMLOptionElement>>;
152
-
153
- declare const TextArea: React__default.ForwardRefExoticComponent<React__default.TextareaHTMLAttributes<HTMLTextAreaElement> & React__default.RefAttributes<HTMLTextAreaElement>>;
154
-
155
- declare const DatePicker: React__default.ForwardRefExoticComponent<React__default.InputHTMLAttributes<HTMLInputElement> & React__default.RefAttributes<HTMLInputElement>>;
156
-
157
- interface LoadingProps {
158
- text: string;
159
- }
160
- declare function Loading(props: LoadingProps): React$1.JSX.Element;
161
-
162
- interface LoaderSubmitProps {
163
- label: string;
164
- loadingLabel: string;
165
- isLoading: boolean;
166
- }
167
- declare function LoaderSubmit({ label, loadingLabel, isLoading }: LoaderSubmitProps): React$1.JSX.Element;
168
-
169
- interface SessionExpiredProps {
170
- redirectUrl?: string;
171
- }
172
- declare function SessionExpired({ redirectUrl }: SessionExpiredProps): React$1.JSX.Element;
173
-
174
- interface AccessDeniedProps {
175
- logo: string;
176
- redirectTo: string;
177
- textRedirection: string;
178
- }
179
- declare function AccessDenied({ logo, redirectTo, textRedirection }: AccessDeniedProps): React$1.JSX.Element;
180
-
181
- type UseCurrentUser = () => {
182
- data?: {
183
- role: {
184
- name: string;
185
- };
186
- } | null;
187
- isLoading: boolean;
188
- };
189
- interface RouteGuardInputConfig {
190
- useCurrentUser: UseCurrentUser;
191
- pagePermissions: Record<string, string[]>;
192
- deniedPath?: string;
193
- }
194
- interface RouteGuardConfig {
195
- useCurrentUser: UseCurrentUser;
196
- pagePermissions: Record<string, string[]>;
197
- deniedPath: string;
198
- }
199
- declare function createRouteGuardConfig(input: RouteGuardInputConfig): RouteGuardConfig;
200
- interface RouteGuardProviderProps {
201
- children: ReactNode;
202
- config?: RouteGuardConfig;
203
- useCurrentUser?: UseCurrentUser;
204
- pagePermissions?: Record<string, string[]>;
205
- deniedPath?: string;
206
- }
207
- declare function RouteGuardProvider({ children, config, useCurrentUser, pagePermissions, deniedPath, }: RouteGuardProviderProps): React$1.JSX.Element;
208
- declare function routeGuard(page: string, Component: ComponentType): (props: Record<string, unknown>) => React$1.JSX.Element;
209
-
210
- export { AccessDenied, ActionsMenu, ApiError, type Column, Confirmation, DatePicker, type FetcherOptions, FieldContainer, type FooterItem, Form, HeaderContent, Input, Label, LoaderSubmit, Loading, Modal, type NavItem, Option, type RouteGuardConfig, RouteGuardProvider, Select, SessionExpired, SideNav, type SideNavProps, type SideNavStaticConfig, Table, type TableAction, TextArea, type UseCurrentUser, createRouteGuardConfig, createSideNav, fetcher, routeGuard };