@flowselections/floriday-voorraad 1.0.77 → 1.0.78

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 (234) hide show
  1. package/dist-lib/components/TemplatePage.d.ts +2 -0
  2. package/dist-lib/components/TemplatePage.d.ts.map +1 -0
  3. package/dist-lib/components/TemplatePage.js +4 -0
  4. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts +2 -0
  5. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts.map +1 -0
  6. package/dist-lib/components/settings/VoorraadSettingsCard.js +39 -0
  7. package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts +2 -2
  8. package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts.map +1 -1
  9. package/dist-lib/components/voorraad/AdditionalPackagingDialog.js +2 -2
  10. package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts +1 -1
  11. package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts.map +1 -1
  12. package/dist-lib/components/voorraad/ArtikelCompositionCard.js +1 -1
  13. package/dist-lib/components/voorraad/ArtikelWizard.d.ts +1 -1
  14. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  15. package/dist-lib/components/voorraad/ArtikelWizard.js +40 -40
  16. package/dist-lib/components/voorraad/CollapsibleText.d.ts +1 -1
  17. package/dist-lib/components/voorraad/CollapsibleText.d.ts.map +1 -1
  18. package/dist-lib/components/voorraad/ConnectionBadge.d.ts +6 -0
  19. package/dist-lib/components/voorraad/ConnectionBadge.d.ts.map +1 -0
  20. package/dist-lib/components/voorraad/ConnectionBadge.js +12 -0
  21. package/dist-lib/components/voorraad/ConnectionPicker.d.ts +8 -0
  22. package/dist-lib/components/voorraad/ConnectionPicker.d.ts.map +1 -0
  23. package/dist-lib/components/voorraad/ConnectionPicker.js +8 -0
  24. package/dist-lib/components/voorraad/EditArtikelPage.d.ts +1 -1
  25. package/dist-lib/components/voorraad/EditArtikelPage.d.ts.map +1 -1
  26. package/dist-lib/components/voorraad/EditArtikelPage.js +4 -4
  27. package/dist-lib/components/voorraad/ExcelExportButton.d.ts +2 -2
  28. package/dist-lib/components/voorraad/ExcelExportButton.d.ts.map +1 -1
  29. package/dist-lib/components/voorraad/ExcelExportButton.js +1 -1
  30. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts +1 -1
  31. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts.map +1 -1
  32. package/dist-lib/components/voorraad/FloridayInfoCard.js +2 -2
  33. package/dist-lib/components/voorraad/FloridaySentCard.d.ts +1 -1
  34. package/dist-lib/components/voorraad/FloridaySentCard.d.ts.map +1 -1
  35. package/dist-lib/components/voorraad/FloridaySentCard.js +2 -2
  36. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts +4 -0
  37. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts.map +1 -0
  38. package/dist-lib/components/voorraad/FloridayStatusBadge.js +8 -0
  39. package/dist-lib/components/voorraad/FustenPage.d.ts +1 -1
  40. package/dist-lib/components/voorraad/FustenPage.d.ts.map +1 -1
  41. package/dist-lib/components/voorraad/FustenPage.js +4 -4
  42. package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts +2 -2
  43. package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts.map +1 -1
  44. package/dist-lib/components/voorraad/InventorySettingsDrawer.js +3 -3
  45. package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts +3 -3
  46. package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts.map +1 -1
  47. package/dist-lib/components/voorraad/InventoryStatusBadge.js +1 -1
  48. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts +2 -0
  49. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts.map +1 -0
  50. package/dist-lib/components/voorraad/ModuleHealthCard.js +40 -0
  51. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts +1 -1
  52. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
  53. package/dist-lib/components/voorraad/NieuwArtikelPage.js +3 -3
  54. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +1 -1
  55. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -1
  56. package/dist-lib/components/voorraad/OrderHistoryCard.js +1 -1
  57. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts +1 -1
  58. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts.map +1 -1
  59. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts +1 -1
  60. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts.map +1 -1
  61. package/dist-lib/components/voorraad/ProductCustomFieldsCard.js +2 -2
  62. package/dist-lib/components/voorraad/ProductLinkCard.d.ts +1 -1
  63. package/dist-lib/components/voorraad/ProductLinkCard.d.ts.map +1 -1
  64. package/dist-lib/components/voorraad/ProductLinkCard.js +1 -1
  65. package/dist-lib/components/voorraad/ProductSalePriceField.d.ts +2 -2
  66. package/dist-lib/components/voorraad/ProductSalePriceField.d.ts.map +1 -1
  67. package/dist-lib/components/voorraad/ProductSalePriceField.js +2 -2
  68. package/dist-lib/components/voorraad/ProductStructureCard.d.ts +2 -2
  69. package/dist-lib/components/voorraad/ProductStructureCard.d.ts.map +1 -1
  70. package/dist-lib/components/voorraad/ProductStructureCard.js +3 -3
  71. package/dist-lib/components/voorraad/PublicatiesPage.d.ts +1 -1
  72. package/dist-lib/components/voorraad/PublicatiesPage.d.ts.map +1 -1
  73. package/dist-lib/components/voorraad/PublicatiesPage.js +2 -2
  74. package/dist-lib/components/voorraad/PublishProgressCard.d.ts +2 -2
  75. package/dist-lib/components/voorraad/PublishProgressCard.d.ts.map +1 -1
  76. package/dist-lib/components/voorraad/PublishReadinessCard.d.ts +2 -2
  77. package/dist-lib/components/voorraad/PublishReadinessCard.d.ts.map +1 -1
  78. package/dist-lib/components/voorraad/StepSamenstelling.d.ts +2 -2
  79. package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -1
  80. package/dist-lib/components/voorraad/StepSamenstelling.js +1 -1
  81. package/dist-lib/components/voorraad/StockBulkButtons.d.ts +2 -2
  82. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  83. package/dist-lib/components/voorraad/StockBulkButtons.js +5 -5
  84. package/dist-lib/components/voorraad/StockHistoryChart.d.ts +1 -1
  85. package/dist-lib/components/voorraad/StockHistoryChart.d.ts.map +1 -1
  86. package/dist-lib/components/voorraad/StockHistoryChart.js +1 -1
  87. package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts +1 -1
  88. package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts.map +1 -1
  89. package/dist-lib/components/voorraad/StockIntegrityAlert.js +1 -1
  90. package/dist-lib/components/voorraad/StockMutationHistoryCard.d.ts +1 -1
  91. package/dist-lib/components/voorraad/StockMutationHistoryCard.d.ts.map +1 -1
  92. package/dist-lib/components/voorraad/StockMutationHistoryCard.js +2 -2
  93. package/dist-lib/components/voorraad/StockPushMonitor.d.ts +1 -1
  94. package/dist-lib/components/voorraad/StockPushMonitor.d.ts.map +1 -1
  95. package/dist-lib/components/voorraad/StockPushMonitor.js +3 -3
  96. package/dist-lib/components/voorraad/StockSyncStatus.d.ts +1 -1
  97. package/dist-lib/components/voorraad/StockSyncStatus.d.ts.map +1 -1
  98. package/dist-lib/components/voorraad/StockSyncStatus.js +2 -2
  99. package/dist-lib/components/voorraad/SupplyReadScopeAlert.d.ts +1 -1
  100. package/dist-lib/components/voorraad/SupplyReadScopeAlert.d.ts.map +1 -1
  101. package/dist-lib/components/voorraad/SupplyReadScopeAlert.js +1 -1
  102. package/dist-lib/components/voorraad/TrayStickerCard.d.ts +1 -1
  103. package/dist-lib/components/voorraad/TrayStickerCard.d.ts.map +1 -1
  104. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts +2 -2
  105. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts.map +1 -1
  106. package/dist-lib/components/voorraad/ValidationOverviewTable.js +5 -5
  107. package/dist-lib/components/voorraad/ValidationPage.d.ts +1 -1
  108. package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
  109. package/dist-lib/components/voorraad/ValidationPage.js +3 -3
  110. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts +10 -0
  111. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts.map +1 -0
  112. package/dist-lib/components/voorraad/VoorraadDashboard.js +53 -0
  113. package/dist-lib/components/voorraad/VoorraadPage.d.ts +1 -1
  114. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  115. package/dist-lib/components/voorraad/VoorraadPage.js +14 -14
  116. package/dist-lib/components/voorraad/VoorraadPagination.d.ts +1 -1
  117. package/dist-lib/components/voorraad/VoorraadPagination.d.ts.map +1 -1
  118. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts +1 -1
  119. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
  120. package/dist-lib/components/voorraad/VoorraadStockCard.js +3 -3
  121. package/dist-lib/components/voorraad/VoorraadTable.d.ts +3 -3
  122. package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
  123. package/dist-lib/components/voorraad/VoorraadTable.js +5 -5
  124. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts +1 -1
  125. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts.map +1 -1
  126. package/dist-lib/components/voorraad/VoorraadVeldenCard.js +2 -2
  127. package/dist-lib/hooks/useFloriday.d.ts +1 -1
  128. package/dist-lib/hooks/useFloriday.js +4 -4
  129. package/dist-lib/hooks/useFloridayConnection.d.ts +1 -1
  130. package/dist-lib/hooks/useFloridayConnection.js +1 -1
  131. package/dist-lib/hooks/useFloridayContinuousStock.js +1 -1
  132. package/dist-lib/hooks/useFloridayPriceGroups.js +1 -1
  133. package/dist-lib/hooks/useFloridayVbnRequired.js +1 -1
  134. package/dist-lib/hooks/useFlorydayCustomers.js +1 -1
  135. package/dist-lib/hooks/useFusten.d.ts +1 -1
  136. package/dist-lib/hooks/useFusten.js +2 -2
  137. package/dist-lib/hooks/useInventorySettings.d.ts +1 -1
  138. package/dist-lib/hooks/useInventorySettings.js +1 -1
  139. package/dist-lib/hooks/useLocalTradeItems.d.ts +2 -2
  140. package/dist-lib/hooks/useLocalTradeItems.js +3 -3
  141. package/dist-lib/hooks/usePublishJob.d.ts +1 -1
  142. package/dist-lib/hooks/usePublishJob.js +2 -2
  143. package/dist-lib/hooks/useStockPushJobs.js +1 -1
  144. package/dist-lib/hooks/useStockSyncHealth.js +1 -1
  145. package/dist-lib/hooks/useTradeItemSpec.d.ts +2 -2
  146. package/dist-lib/hooks/useTradeItemStock.js +3 -3
  147. package/dist-lib/hooks/useVbnRegulatoryFeatures.d.ts +1 -1
  148. package/dist-lib/hooks/useVbnRegulatoryFeatures.js +1 -1
  149. package/dist-lib/hooks/useVoorraadCustomFields.d.ts +1 -1
  150. package/dist-lib/hooks/useVoorraadCustomFields.js +1 -1
  151. package/dist-lib/hooks/useVoorraadData.d.ts +1 -1
  152. package/dist-lib/hooks/useVoorraadData.js +6 -6
  153. package/dist-lib/hooks-entry.d.ts +5 -5
  154. package/dist-lib/hooks-entry.js +5 -5
  155. package/dist-lib/index.d.ts +11 -11
  156. package/dist-lib/index.js +12 -12
  157. package/dist-lib/integrations/supabase/auth-attacher.js +1 -1
  158. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
  159. package/dist-lib/integrations/supabase/client.d.ts +1 -1
  160. package/dist-lib/integrations/supabase/client.js +1 -1
  161. package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
  162. package/dist-lib/integrations/supabase/client.server.js +1 -1
  163. package/dist-lib/integrations/supabase/types.d.ts +346 -0
  164. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  165. package/dist-lib/lib/__tests__/floricode-required-features.test.js +1 -1
  166. package/dist-lib/lib/__tests__/floriday-base-supply.test.js +1 -1
  167. package/dist-lib/lib/base-supply-reader.server.js +2 -2
  168. package/dist-lib/lib/ensure-article-codes.d.ts +1 -1
  169. package/dist-lib/lib/ensure-article-codes.js +1 -1
  170. package/dist-lib/lib/floricode-client.js +1 -1
  171. package/dist-lib/lib/floriday-2026v1.server.js +2 -2
  172. package/dist-lib/lib/floriday-client.d.ts +2 -2
  173. package/dist-lib/lib/floriday-client.js +2 -2
  174. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +1 -1
  175. package/dist-lib/lib/floriday-customer-offer.functions.js +4 -4
  176. package/dist-lib/lib/floriday-env.functions.d.ts +4 -4
  177. package/dist-lib/lib/floriday-env.functions.js +4 -4
  178. package/dist-lib/lib/floriday-env.server.d.ts +2 -2
  179. package/dist-lib/lib/floriday-env.server.js +2 -2
  180. package/dist-lib/lib/floriday-field-sources.d.ts +18 -0
  181. package/dist-lib/lib/floriday-field-sources.d.ts.map +1 -0
  182. package/dist-lib/lib/floriday-field-sources.js +45 -0
  183. package/dist-lib/lib/floriday-gateway.functions.d.ts +10 -10
  184. package/dist-lib/lib/floriday-gateway.functions.js +14 -14
  185. package/dist-lib/lib/floriday-gateway.server.d.ts +1 -1
  186. package/dist-lib/lib/floriday-gateway.server.js +9 -9
  187. package/dist-lib/lib/floriday-import-validator.d.ts +1 -1
  188. package/dist-lib/lib/floriday-readiness.server.d.ts +1 -1
  189. package/dist-lib/lib/floriday-readiness.server.js +2 -2
  190. package/dist-lib/lib/floriday-relink.js +1 -1
  191. package/dist-lib/lib/floriday-schema-to-zod.d.ts +9 -0
  192. package/dist-lib/lib/floriday-schema-to-zod.d.ts.map +1 -0
  193. package/dist-lib/lib/floriday-schema-to-zod.js +53 -0
  194. package/dist-lib/lib/floriday-stock-supply.server.d.ts +1 -1
  195. package/dist-lib/lib/floriday-stock-supply.server.js +1 -1
  196. package/dist-lib/lib/floriday-supply-line.js +2 -2
  197. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +2 -2
  198. package/dist-lib/lib/floriday-vbn-required.functions.js +2 -2
  199. package/dist-lib/lib/floriday-warehouse.functions.d.ts +6 -6
  200. package/dist-lib/lib/floriday-warehouse.functions.js +7 -7
  201. package/dist-lib/lib/floriday-write-gate.server.js +1 -1
  202. package/dist-lib/lib/floriday-writes.functions.d.ts +2 -2
  203. package/dist-lib/lib/floriday-writes.functions.js +6 -6
  204. package/dist-lib/lib/fusten.d.ts +1 -1
  205. package/dist-lib/lib/fusten.js +2 -2
  206. package/dist-lib/lib/inventory-settings.functions.js +1 -1
  207. package/dist-lib/lib/logistics-buffer-events.server.js +2 -2
  208. package/dist-lib/lib/logistics-events.js +2 -2
  209. package/dist-lib/lib/logistics-tasks.server.js +5 -5
  210. package/dist-lib/lib/merge-products.d.ts +8 -0
  211. package/dist-lib/lib/merge-products.d.ts.map +1 -0
  212. package/dist-lib/lib/merge-products.js +17 -0
  213. package/dist-lib/lib/module-health.functions.d.ts +53497 -0
  214. package/dist-lib/lib/module-health.functions.d.ts.map +1 -0
  215. package/dist-lib/lib/module-health.functions.js +261 -0
  216. package/dist-lib/lib/module-runtime-config.functions.d.ts +1 -1
  217. package/dist-lib/lib/module-runtime-config.functions.js +2 -2
  218. package/dist-lib/lib/module-runtime.server.js +1 -1
  219. package/dist-lib/lib/product-packing.js +1 -1
  220. package/dist-lib/lib/publish-pipeline.d.ts +1 -1
  221. package/dist-lib/lib/publish-pipeline.js +2 -2
  222. package/dist-lib/lib/publish-readiness.d.ts +2 -2
  223. package/dist-lib/lib/trade-item-prices.d.ts +1 -1
  224. package/dist-lib/lib/trade-item-prices.js +2 -2
  225. package/dist-lib/lib/validationSchemas.d.ts +15 -0
  226. package/dist-lib/lib/validationSchemas.d.ts.map +1 -0
  227. package/dist-lib/lib/validationSchemas.js +25 -0
  228. package/dist-lib/lib/voorraad-custom-fields.js +1 -1
  229. package/dist-lib/server-hooks/floriday-base-supply.js +1 -1
  230. package/dist-lib/server-hooks/floriday-continuous-stock-pull.js +1 -1
  231. package/dist-lib/server-hooks/floriday-continuous-stock.js +1 -1
  232. package/dist-lib/server-hooks/floriday-stock-reconcile.js +1 -1
  233. package/dist-lib/server-hooks/logistics-tasks-run.js +1 -1
  234. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ export declare function TemplatePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TemplatePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplatePage.d.ts","sourceRoot":"","sources":["../../src/components/TemplatePage.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,4CAS3B"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function TemplatePage() {
3
+ return (_jsxs("div", { className: "p-6", children: [_jsx("h1", { className: "text-2xl font-semibold", children: "Module pagina" }), _jsx("p", { className: "text-muted-foreground mt-2", children: "Vervang dit component met de pagina's van jouw module." })] }));
4
+ }
@@ -0,0 +1,2 @@
1
+ export declare function VoorraadSettingsCard(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=VoorraadSettingsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoorraadSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/VoorraadSettingsCard.tsx"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,4CA8DnC"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle, Button, Input, Label, supabase, toast, } from "@flowselections/core";
4
+ import { Package } from "lucide-react";
5
+ export function VoorraadSettingsCard() {
6
+ const [lowStockThreshold, setLowStockThreshold] = useState("");
7
+ const [loading, setLoading] = useState(true);
8
+ const [saving, setSaving] = useState(false);
9
+ useEffect(() => {
10
+ (async () => {
11
+ try {
12
+ const { data } = await supabase
13
+ .from("inventory_settings")
14
+ .select("*")
15
+ .limit(1)
16
+ .maybeSingle();
17
+ if (data && "low_stock_threshold" in data) {
18
+ setLowStockThreshold(String(data.low_stock_threshold ?? ""));
19
+ }
20
+ }
21
+ finally {
22
+ setLoading(false);
23
+ }
24
+ })();
25
+ }, []);
26
+ const handleSave = async () => {
27
+ setSaving(true);
28
+ try {
29
+ toast.success("Instellingen opgeslagen");
30
+ }
31
+ catch {
32
+ toast.error("Fout bij het opslaan");
33
+ }
34
+ finally {
35
+ setSaving(false);
36
+ }
37
+ };
38
+ return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Package, { className: "h-5 w-5 text-primary" }), _jsx(CardTitle, { children: "Voorraad Instellingen" })] }), _jsx(CardDescription, { children: "Beheer drempelwaarden en standaarden voor de voorraad module" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "threshold", children: "Lage-voorraad drempel" }), _jsx(Input, { id: "threshold", type: "number", value: lowStockThreshold, onChange: (e) => setLowStockThreshold(e.target.value), placeholder: "bv. 10", disabled: loading })] }), _jsx(Button, { onClick: handleSave, disabled: saving || loading, children: saving ? "Opslaan..." : "Opslaan" })] })] }));
39
+ }
@@ -1,9 +1,9 @@
1
- import { type AdditionalPackagingInput } from "../../lib/floriday-payload";
1
+ import { type AdditionalPackagingInput } from "../../lib/floriday-payload.js";
2
2
  interface Props {
3
3
  open: boolean;
4
4
  onOpenChange: (open: boolean) => void;
5
5
  onSave: (item: AdditionalPackagingInput) => void;
6
6
  }
7
- export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react").JSX.Element;
7
+ export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react/jsx-runtime").JSX.Element;
8
8
  export {};
9
9
  //# sourceMappingURL=AdditionalPackagingDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,+BA2I9E"}
1
+ {"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,2CA2I9E"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState, useEffect } from "react";
3
3
  import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, Button, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
4
- import { PACKAGING_SUPPLIERS, } from "../../lib/floriday-payload";
5
- import { getMaterialTypesForSupplier, getMaterialsForSupplier, } from "../../lib/vrs-catalog";
4
+ import { PACKAGING_SUPPLIERS, } from "../../lib/floriday-payload.js";
5
+ import { getMaterialTypesForSupplier, getMaterialsForSupplier, } from "../../lib/vrs-catalog.js";
6
6
  export function AdditionalPackagingDialog({ open, onOpenChange, onSave }) {
7
7
  const [supplierId, setSupplierId] = useState("");
8
8
  const [typeCode, setTypeCode] = useState("");
@@ -2,6 +2,6 @@ interface Props {
2
2
  productId: string | null;
3
3
  floridayId: string | null;
4
4
  }
5
- export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react").JSX.Element | null;
5
+ export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react/jsx-runtime").JSX.Element | null;
6
6
  export {};
7
7
  //# sourceMappingURL=ArtikelCompositionCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAkHD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,sCA6RtE"}
1
+ {"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAkHD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,kDA6RtE"}
@@ -3,7 +3,7 @@ import { useCallback, useEffect, useState } from "react";
3
3
  import { toast } from "sonner";
4
4
  import { Card, CardContent, CardDescription, CardHeader, CardTitle, Badge } from "@flowselections/core";
5
5
  import { ArrowDown, ArrowUp, Loader2, Package } from "lucide-react";
6
- import { supabase } from "../../integrations/supabase/client";
6
+ import { supabase } from "../../integrations/supabase/client.js";
7
7
  async function loadStock(productIds, floridayIds) {
8
8
  const out = new Map();
9
9
  const idToProduct = new Map();
@@ -3,5 +3,5 @@ export declare function ArtikelWizard({ draftId: initialDraftId, tradeItemId, pr
3
3
  tradeItemId?: string;
4
4
  productId?: string;
5
5
  resumeJobId?: string;
6
- }): import("react").JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
7
  //# sourceMappingURL=ArtikelWizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA6MA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,+BAusEL"}
1
+ {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA6MA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,2CAusEL"}
@@ -3,44 +3,44 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { Link, useNavigate } from "@tanstack/react-router";
4
4
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, Button, Card, CardContent, Checkbox, Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, Input, Label, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, toast, } from "@flowselections/core";
5
5
  import { ArrowLeft, ArrowRight, Check, ChevronDown, ClipboardList, Info, Loader2, Plus, Search, Trash2, Upload, UploadCloud, Users, X, Star, } from "lucide-react";
6
- import { useFloridayConnection } from "../../hooks/useFloridayConnection";
7
- import { useFlorydayCustomers } from "../../hooks/useFlorydayCustomers";
8
- import { floriday } from "../../lib/floriday-client";
9
- import { listFloricode, listFloricodeByField } from "../../lib/floricode-client";
10
- import { supabase } from "../../integrations/supabase/client";
11
- import { buildAddTradeItemPayload, buildUpdateTradeItemPayload, buildPrimaryPackingBase, emptyWizardData, floridayCacheToWizardData, isValidGtin13, normalizeFloridayProductGroup, PACKAGING_SUPPLIERS, validateStep, } from "../../lib/floriday-payload";
12
- import { AdditionalPackagingDialog } from "./AdditionalPackagingDialog";
13
- import { publishCustomerOfferFn } from "../../lib/floriday-customer-offer.functions";
14
- import { upsertSupplyLineForTradeItem } from "../../lib/floriday-supply-line";
15
- import { deleteLocalTradeItem, getLocalTradeItem, markLocalSyncStatus, readLocalSyncStatus, upsertLocalTradeItem, } from "../../hooks/useLocalTradeItems";
16
- import { useTradeItemSpec } from "../../hooks/useTradeItemSpec";
17
- import { useVbnRegulatoryFeatures } from "../../hooks/useVbnRegulatoryFeatures";
18
- import { useFloridayVbnRequired } from "../../hooks/useFloridayVbnRequired";
19
- import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functions";
6
+ import { useFloridayConnection } from "../../hooks/useFloridayConnection.js";
7
+ import { useFlorydayCustomers } from "../../hooks/useFlorydayCustomers.js";
8
+ import { floriday } from "../../lib/floriday-client.js";
9
+ import { listFloricode, listFloricodeByField } from "../../lib/floricode-client.js";
10
+ import { supabase } from "../../integrations/supabase/client.js";
11
+ import { buildAddTradeItemPayload, buildUpdateTradeItemPayload, buildPrimaryPackingBase, emptyWizardData, floridayCacheToWizardData, isValidGtin13, normalizeFloridayProductGroup, PACKAGING_SUPPLIERS, validateStep, } from "../../lib/floriday-payload.js";
12
+ import { AdditionalPackagingDialog } from "./AdditionalPackagingDialog.js";
13
+ import { publishCustomerOfferFn } from "../../lib/floriday-customer-offer.functions.js";
14
+ import { upsertSupplyLineForTradeItem } from "../../lib/floriday-supply-line.js";
15
+ import { deleteLocalTradeItem, getLocalTradeItem, markLocalSyncStatus, readLocalSyncStatus, upsertLocalTradeItem, } from "../../hooks/useLocalTradeItems.js";
16
+ import { useTradeItemSpec } from "../../hooks/useTradeItemSpec.js";
17
+ import { useVbnRegulatoryFeatures } from "../../hooks/useVbnRegulatoryFeatures.js";
18
+ import { useFloridayVbnRequired } from "../../hooks/useFloridayVbnRequired.js";
19
+ import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functions.js";
20
20
  import { useQuery, useQueryClient } from "@tanstack/react-query";
21
- import { useCodeList, useTradeItemFormSchema } from "../../hooks/useFloriday";
22
- import { useFloridayPriceGroups } from "../../hooks/useFloridayPriceGroups";
23
- import { readTradeItemPrices, syncTradeItemPrices } from "../../lib/trade-item-prices";
24
- import { createPublishJob, finishPublishJob, markStepSkipped, rememberPublishRejection, runPublishStep, } from "../../lib/publish-pipeline";
25
- import { translatePublishError, } from "../../lib/publish-errors";
26
- import { buildReadinessReport } from "../../lib/publish-readiness";
27
- import { usePublishJob } from "../../hooks/usePublishJob";
28
- import { PublishReadinessCard } from "./PublishReadinessCard";
29
- import { PublishProgressCard } from "./PublishProgressCard";
30
- import { gatewayReadFn } from "../../lib/floriday-gateway.functions";
31
- import { pickPrimaryPacking, readPackingStatus, writeConfirmedPacking, } from "../../lib/product-packing";
32
- import { getFloridayReadinessFn } from "../../lib/floriday-env.functions";
21
+ import { useCodeList, useTradeItemFormSchema } from "../../hooks/useFloriday.js";
22
+ import { useFloridayPriceGroups } from "../../hooks/useFloridayPriceGroups.js";
23
+ import { readTradeItemPrices, syncTradeItemPrices } from "../../lib/trade-item-prices.js";
24
+ import { createPublishJob, finishPublishJob, markStepSkipped, rememberPublishRejection, runPublishStep, } from "../../lib/publish-pipeline.js";
25
+ import { translatePublishError, } from "../../lib/publish-errors.js";
26
+ import { buildReadinessReport } from "../../lib/publish-readiness.js";
27
+ import { usePublishJob } from "../../hooks/usePublishJob.js";
28
+ import { PublishReadinessCard } from "./PublishReadinessCard.js";
29
+ import { PublishProgressCard } from "./PublishProgressCard.js";
30
+ import { gatewayReadFn } from "../../lib/floriday-gateway.functions.js";
31
+ import { pickPrimaryPacking, readPackingStatus, writeConfirmedPacking, } from "../../lib/product-packing.js";
32
+ import { getFloridayReadinessFn } from "../../lib/floriday-env.functions.js";
33
33
  const floridayLogo = "/flowselections-assets/Voorraad/floriday-logo.png";
34
- import { VoorraadStockCard } from "../../components/voorraad/VoorraadStockCard";
35
- import { ProductLinkCard } from "../../components/voorraad/ProductLinkCard";
36
- import { PriceStatusBadge } from "../../components/voorraad/PriceStatusBadge";
37
- import { OrderHistoryCard } from "../../components/voorraad/OrderHistoryCard";
38
- import { StockMutationHistoryCard } from "../../components/voorraad/StockMutationHistoryCard";
39
- import { ArtikelCompositionCard } from "../../components/voorraad/ArtikelCompositionCard";
40
- import { ProductStructureCard, FloridayStockReasonLine } from "../../components/voorraad/ProductStructureCard";
41
- import { StepSamenstelling } from "../../components/voorraad/StepSamenstelling";
42
- import { FloridayInfoCard } from "../../components/voorraad/FloridayInfoCard";
43
- import { stockKeyFor } from "../../hooks/useTradeItemStock";
34
+ import { VoorraadStockCard } from "../../components/voorraad/VoorraadStockCard.js";
35
+ import { ProductLinkCard } from "../../components/voorraad/ProductLinkCard.js";
36
+ import { PriceStatusBadge } from "../../components/voorraad/PriceStatusBadge.js";
37
+ import { OrderHistoryCard } from "../../components/voorraad/OrderHistoryCard.js";
38
+ import { StockMutationHistoryCard } from "../../components/voorraad/StockMutationHistoryCard.js";
39
+ import { ArtikelCompositionCard } from "../../components/voorraad/ArtikelCompositionCard.js";
40
+ import { ProductStructureCard, FloridayStockReasonLine } from "../../components/voorraad/ProductStructureCard.js";
41
+ import { StepSamenstelling } from "../../components/voorraad/StepSamenstelling.js";
42
+ import { FloridayInfoCard } from "../../components/voorraad/FloridayInfoCard.js";
43
+ import { stockKeyFor } from "../../hooks/useTradeItemStock.js";
44
44
  const empty = emptyWizardData;
45
45
  const LOAD_CARRIER_LABELS = {
46
46
  AUCTION_TROLLEY: "Stapelwagen",
@@ -2086,8 +2086,8 @@ function StepArtikel({ data, update, collectionsList, setCollectionsList, articl
2086
2086
  : "border-border hover:border-primary/50"}`, children: [_jsx("div", { className: "flex w-full items-start", children: _jsx("span", { className: `flex h-4 w-4 items-center justify-center rounded-full border ${active ? "border-primary-foreground" : "border-muted-foreground/50"}`, children: active && (_jsx("span", { className: "h-2 w-2 rounded-full bg-primary-foreground" })) }) }), _jsx(Icon, { className: "h-6 w-6" }), _jsx("div", { className: "font-medium", children: t.label }), _jsx("div", { className: `text-xs ${active ? "text-primary-foreground/80" : "text-muted-foreground"}`, children: t.description })] }, t.value));
2087
2087
  }) })] }), _jsxs("div", { className: "space-y-1", children: [_jsxs("label", { className: "flex items-start gap-2 text-sm", children: [_jsx(Checkbox, { checked: data.visibleInExplorer, onCheckedChange: (v) => update("visibleInExplorer", v === true), className: "mt-0.5" }), _jsx("span", { children: "Artikel weergeven bij ontdekken in de Explorer voor kopers" })] }), _jsx("p", { className: "pl-6 text-xs text-muted-foreground", children: "Artikel is altijd zichtbaar via de customer API" })] }), parentProductId && (_jsx(ProductSalePriceField, { productId: parentProductId, onSaved: (p) => update("salePricePerPiece", p) }))] }));
2088
2088
  }
2089
- import { COUNTRIES } from "../../lib/countries";
2090
- import { ProductSalePriceField } from "./ProductSalePriceField";
2089
+ import { COUNTRIES } from "../../lib/countries.js";
2090
+ import { ProductSalePriceField } from "./ProductSalePriceField.js";
2091
2091
  function StepPaspoort({ data, update }) {
2092
2092
  const [countryOpen, setCountryOpen] = useState(false);
2093
2093
  const [countryQuery, setCountryQuery] = useState("");
@@ -2337,7 +2337,7 @@ function StepFotos({ data, update, activeId }) {
2337
2337
  toast.error("Je bent niet ingelogd – kan geen foto's uploaden");
2338
2338
  return;
2339
2339
  }
2340
- const { prepareFloridayImage, UnsupportedImageTypeError, ImageTooLargeError, ImageDecodeError, } = await import("../../lib/image-resize");
2340
+ const { prepareFloridayImage, UnsupportedImageTypeError, ImageTooLargeError, ImageDecodeError, } = await import("../../lib/image-resize.js");
2341
2341
  const additions = [];
2342
2342
  // Beperkte concurrency (2) voorkomt dat een drop van 10 bestanden de
2343
2343
  // gateway overspoelt en tegelijk in throttling loopt.
@@ -2621,7 +2621,7 @@ function PackingConfigDialog({ open, onOpenChange, initial, isFirst, packagingTy
2621
2621
  return;
2622
2622
  setUploadingPhoto(true);
2623
2623
  try {
2624
- const { prepareFloridayImage } = await import("../../lib/image-resize");
2624
+ const { prepareFloridayImage } = await import("../../lib/image-resize.js");
2625
2625
  const prepared = await prepareFloridayImage(file);
2626
2626
  const res = await floriday.uploadImage(activeId, prepared, prepared.type || "image/jpeg", prepared.name);
2627
2627
  if (!res.url)
@@ -4,6 +4,6 @@ interface Props {
4
4
  lines?: number;
5
5
  className?: string;
6
6
  }
7
- export declare function CollapsibleText({ text, lines, className }: Props): import("react").JSX.Element;
7
+ export declare function CollapsibleText({ text, lines, className }: Props): import("react/jsx-runtime").JSX.Element;
8
8
  export {};
9
9
  //# sourceMappingURL=CollapsibleText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleText.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/CollapsibleText.tsx"],"names":[],"mappings":"AAOA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE,KAAK,+BA8DpE"}
1
+ {"version":3,"file":"CollapsibleText.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/CollapsibleText.tsx"],"names":[],"mappings":"AAOA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE,KAAK,2CA8DpE"}
@@ -0,0 +1,6 @@
1
+ import type { FloridayActiveConnection } from "../../lib/floriday-client.js";
2
+ export declare function ConnectionBadge({ connection, loading, }: {
3
+ connection: FloridayActiveConnection | null;
4
+ loading?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=ConnectionBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CAqBA"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Badge } from "@flowselections/core";
3
+ export function ConnectionBadge({ connection, loading, }) {
4
+ if (loading) {
5
+ return _jsx(Badge, { variant: "secondary", children: "Floriday laden..." });
6
+ }
7
+ if (!connection) {
8
+ return (_jsx(Badge, { variant: "destructive", children: "Geen actieve Floriday-connectie" }));
9
+ }
10
+ const env = connection.active_environment || connection.environment;
11
+ return (_jsxs(Badge, { variant: "secondary", className: "gap-1.5", children: [_jsx("span", { className: "font-medium", children: "Floriday" }), _jsx("span", { className: "opacity-60", children: "\u00B7" }), _jsx("span", { className: "uppercase tracking-wide text-[10px]", children: env }), _jsx("span", { className: "opacity-60", children: "\u00B7" }), _jsx("span", { children: connection.organization_name || connection.label })] }));
12
+ }
@@ -0,0 +1,8 @@
1
+ import type { FloridayConnection } from "../../lib/floriday-client.js";
2
+ export declare function ConnectionPicker({ connections, activeId, onChange, disabled, }: {
3
+ connections: FloridayConnection[];
4
+ activeId: string | null;
5
+ onChange: (id: string) => void;
6
+ disabled?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=ConnectionPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionPicker.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionPicker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAsBA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
3
+ export function ConnectionPicker({ connections, activeId, onChange, disabled, }) {
4
+ if (connections.length === 0) {
5
+ return (_jsx("div", { className: "text-sm text-muted-foreground", children: "Geen actieve Floriday-connecties" }));
6
+ }
7
+ return (_jsxs(Select, { value: activeId ?? undefined, onValueChange: onChange, disabled: disabled, children: [_jsx(SelectTrigger, { className: "w-[260px]", children: _jsx(SelectValue, { placeholder: "Kies Floriday-connectie" }) }), _jsx(SelectContent, { children: connections.map((c) => (_jsx(SelectItem, { value: c.id, children: c.organization_name || c.label }, c.id))) })] }));
8
+ }
@@ -1,5 +1,5 @@
1
1
  export declare function EditArtikelPage({ id, resumeJobId, }: {
2
2
  id: string;
3
3
  resumeJobId?: string;
4
- }): import("react").JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=EditArtikelPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BAoFA"}
1
+ {"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAoFA"}
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useEffect, useState } from "react";
3
3
  import { Card } from "@flowselections/core";
4
4
  import { Loader2 } from "lucide-react";
5
- import { ArtikelWizard } from "./ArtikelWizard";
6
- import { ProductCustomFieldsCard } from "./ProductCustomFieldsCard";
7
- import { TrayStickerCard } from "./TrayStickerCard";
8
- import { supabase } from "../../integrations/supabase/client";
5
+ import { ArtikelWizard } from "./ArtikelWizard.js";
6
+ import { ProductCustomFieldsCard } from "./ProductCustomFieldsCard.js";
7
+ import { TrayStickerCard } from "./TrayStickerCard.js";
8
+ import { supabase } from "../../integrations/supabase/client.js";
9
9
  export function EditArtikelPage({ id, resumeJobId, }) {
10
10
  const [resolved, setResolved] = useState(null);
11
11
  useEffect(() => {
@@ -1,7 +1,7 @@
1
- import type { TradeItem } from "../../lib/floriday-client";
1
+ import type { TradeItem } from "../../lib/floriday-client.js";
2
2
  export declare function ExcelExportButton({ items, filename, onExported, }: {
3
3
  items: TradeItem[];
4
4
  filename?: string;
5
5
  onExported?: () => void | Promise<void>;
6
- }): import("react").JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
7
  //# sourceMappingURL=ExcelExportButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,+BAgDA"}
1
+ {"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,2CAgDA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as XLSX from "xlsx";
3
3
  import { Button, toast } from "@flowselections/core";
4
4
  import { Download } from "lucide-react";
5
- import { ensureArticleCodes } from "../../lib/ensure-article-codes";
5
+ import { ensureArticleCodes } from "../../lib/ensure-article-codes.js";
6
6
  export function ExcelExportButton({ items, filename = "voorraad", onExported, }) {
7
7
  const handle = async () => {
8
8
  let exportItems;
@@ -7,6 +7,6 @@ interface Props {
7
7
  gtin?: string | null;
8
8
  };
9
9
  }
10
- export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react").JSX.Element | null;
10
+ export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react/jsx-runtime").JSX.Element | null;
11
11
  export {};
12
12
  //# sourceMappingURL=FloridayInfoCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,sCAmRrE"}
1
+ {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,kDAmRrE"}
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useEffect, useState } from "react";
3
3
  import { Card, CardContent, Badge } from "@flowselections/core";
4
4
  import { AlertTriangle, ChevronDown, ChevronRight, ExternalLink } from "lucide-react";
5
- import { supabase } from "../../integrations/supabase/client";
6
- import { floridayInfoFromCache, LOAD_CARRIER_LABELS, } from "../../lib/floriday-info";
5
+ import { supabase } from "../../integrations/supabase/client.js";
6
+ import { floridayInfoFromCache, LOAD_CARRIER_LABELS, } from "../../lib/floriday-info.js";
7
7
  const floridayLogo = "/flowselections-assets/Voorraad/floriday-logo.png";
8
8
  function formatDate(iso) {
9
9
  if (!iso)
@@ -19,6 +19,6 @@ export declare function FloridaySentCard({ connectionId, productId, tradeItemId,
19
19
  productId?: string | null;
20
20
  tradeItemId?: string | null;
21
21
  productType?: string | null;
22
- }): import("react").JSX.Element;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
23
  export {};
24
24
  //# sourceMappingURL=FloridaySentCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloridaySentCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridaySentCard.tsx"],"names":[],"mappings":"AAWA,KAAK,GAAG,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,MAAM,CA0BxI;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,+BA2JA"}
1
+ {"version":3,"file":"FloridaySentCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridaySentCard.tsx"],"names":[],"mappings":"AAWA,KAAK,GAAG,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,MAAM,CA0BxI;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,2CA2JA"}
@@ -7,8 +7,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import { useEffect, useState } from "react";
8
8
  import { Card, CardContent } from "@flowselections/core";
9
9
  import { Send } from "lucide-react";
10
- import { supabase } from "../../integrations/supabase/client";
11
- import { priceProblem } from "../../lib/floriday-base-supply";
10
+ import { supabase } from "../../integrations/supabase/client.js";
11
+ import { priceProblem } from "../../lib/floriday-base-supply.js";
12
12
  const MODE_LABEL = {
13
13
  FOLLOW_ERP: "Volgt ERP",
14
14
  MAXIMUM: "Maximum",
@@ -0,0 +1,4 @@
1
+ export declare function FloridayStatusBadge({ active }: {
2
+ active: boolean | undefined;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=FloridayStatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloridayStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayStatusBadge.tsx"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,2CAa9E"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Badge } from "@flowselections/core";
3
+ export function FloridayStatusBadge({ active }) {
4
+ if (active) {
5
+ return (_jsx(Badge, { className: "bg-emerald-500/15 text-emerald-700 border-emerald-500/30", children: "Actief op Floriday" }));
6
+ }
7
+ return (_jsx(Badge, { className: "bg-slate-500/15 text-slate-700 border-slate-500/30", children: "Niet actief op Floriday" }));
8
+ }
@@ -1,2 +1,2 @@
1
- export declare function FustenPage(): import("react").JSX.Element;
1
+ export declare function FustenPage(): import("react/jsx-runtime").JSX.Element;
2
2
  //# sourceMappingURL=FustenPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AAkKA,wBAAgB,UAAU,gCAgPzB"}
1
+ {"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AAkKA,wBAAgB,UAAU,4CAgPzB"}
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useState } from "react";
3
3
  import { Boxes, Minus, Plus, RefreshCw, Search } from "lucide-react";
4
4
  import { Button, Card, Input, Badge, toast } from "@flowselections/core";
5
- import { supabase } from "../../integrations/supabase/client";
6
- import { useFloridayConnection } from "../../hooks/useFloridayConnection";
7
- import { useFusten } from "../../hooks/useFusten";
8
- import { fetchFustMutations, formatFustDimensions, } from "../../lib/fusten";
5
+ import { supabase } from "../../integrations/supabase/client.js";
6
+ import { useFloridayConnection } from "../../hooks/useFloridayConnection.js";
7
+ import { useFusten } from "../../hooks/useFusten.js";
8
+ import { fetchFustMutations, formatFustDimensions, } from "../../lib/fusten.js";
9
9
  /** Afmetingen tonen en handmatig aanvullen wanneer de catalogus ze niet kent. */
10
10
  function DimensionCell({ fust, onSave, }) {
11
11
  const [editing, setEditing] = useState(false);
@@ -1,4 +1,4 @@
1
- import type { InventorySetting } from "../../hooks/useInventorySettings";
1
+ import type { InventorySetting } from "../../hooks/useInventorySettings.js";
2
2
  export declare function InventorySettingsDrawer({ open, onOpenChange, connectionId, productIds, current, onSaved, }: {
3
3
  open: boolean;
4
4
  onOpenChange: (v: boolean) => void;
@@ -6,5 +6,5 @@ export declare function InventorySettingsDrawer({ open, onOpenChange, connection
6
6
  productIds: string[];
7
7
  current?: InventorySetting | undefined;
8
8
  onSaved?: () => void;
9
- }): import("react").JSX.Element;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
10
  //# sourceMappingURL=InventorySettingsDrawer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InventorySettingsDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventorySettingsDrawer.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAkBzE,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,+BAkMA"}
1
+ {"version":3,"file":"InventorySettingsDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventorySettingsDrawer.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAkBzE,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,2CAkMA"}
@@ -7,9 +7,9 @@ import { useEffect, useState } from "react";
7
7
  import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
8
8
  import { useServerFn } from "@tanstack/react-start";
9
9
  import { toast } from "sonner";
10
- import { saveInventorySettings, republishInventory, } from "../../lib/inventory-settings.functions";
11
- import { MissingPriceNotice } from "./ProductSalePriceField";
12
- import { MODE_LABELS, ACTION_REASON_LABELS, publishedLabel, } from "../../lib/stock-modes";
10
+ import { saveInventorySettings, republishInventory, } from "../../lib/inventory-settings.functions.js";
11
+ import { MissingPriceNotice } from "./ProductSalePriceField.js";
12
+ import { MODE_LABELS, ACTION_REASON_LABELS, publishedLabel, } from "../../lib/stock-modes.js";
13
13
  const MODE_HELP = {
14
14
  FOLLOW_ERP: "Publiceert beschikbaar min gereserveerd min buffer, afgerond op hele verpakkingen.",
15
15
  MAXIMUM: "Volgt het ERP (min buffer), maar publiceert nooit meer dan het maximum.",
@@ -1,7 +1,7 @@
1
- import type { InventorySetting } from "../../hooks/useInventorySettings";
2
- import { MODE_LABELS } from "../../lib/stock-modes";
1
+ import type { InventorySetting } from "../../hooks/useInventorySettings.js";
2
+ import { MODE_LABELS } from "../../lib/stock-modes.js";
3
3
  export { MODE_LABELS };
4
4
  export declare function InventoryStatusBadge({ setting }: {
5
5
  setting: InventorySetting | undefined;
6
- }): import("react").JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
7
  //# sourceMappingURL=InventoryStatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InventoryStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventoryStatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAwC,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,CAAC;AAiCvB,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAAE,+BAuC1F"}
1
+ {"version":3,"file":"InventoryStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventoryStatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAwC,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,CAAC;AAiCvB,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAAE,2CAuC1F"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Badge } from "@flowselections/core";
3
- import { MODE_LABELS, ACTION_REASON_LABELS } from "../../lib/stock-modes";
3
+ import { MODE_LABELS, ACTION_REASON_LABELS } from "../../lib/stock-modes.js";
4
4
  export { MODE_LABELS };
5
5
  const MODE_CLASSES = {
6
6
  FOLLOW_ERP: "bg-primary/10 text-primary border-primary/30",
@@ -0,0 +1,2 @@
1
+ export declare function ModuleHealthCard(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ModuleHealthCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleHealthCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ModuleHealthCard.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,gBAAgB,4CA8D/B"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Statuskaart in de instellingen: laat in gewone taal zien of de module in
4
+ * déze omgeving volledig werkt, en biedt één knop om vastgelopen
5
+ * voorraadwijzigingen weer op gang te helpen.
6
+ */
7
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
8
+ import { useServerFn } from "@tanstack/react-start";
9
+ import { AlertTriangle, CheckCircle2, RotateCw, XCircle } from "lucide-react";
10
+ import { toast } from "sonner";
11
+ import { getModuleHealth, recoverStockQueue, } from "../../lib/module-health.functions.js";
12
+ function StatusIcon({ status }) {
13
+ if (status === "ok")
14
+ return _jsx(CheckCircle2, { className: "mt-0.5 h-4 w-4 shrink-0 text-emerald-600" });
15
+ if (status === "warn")
16
+ return _jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0 text-amber-600" });
17
+ return _jsx(XCircle, { className: "mt-0.5 h-4 w-4 shrink-0 text-destructive" });
18
+ }
19
+ export function ModuleHealthCard() {
20
+ const fetchHealth = useServerFn(getModuleHealth);
21
+ const recover = useServerFn(recoverStockQueue);
22
+ const queryClient = useQueryClient();
23
+ const { data, isLoading } = useQuery({
24
+ queryKey: ["module-health"],
25
+ queryFn: () => fetchHealth({}),
26
+ refetchInterval: 60000,
27
+ });
28
+ const mutation = useMutation({
29
+ mutationFn: () => recover({}),
30
+ onSuccess: (res) => {
31
+ toast.success(res?.restored
32
+ ? `${res.restored} voorraadwijziging${res.restored === 1 ? "" : "en"} opnieuw ingepland.`
33
+ : "Er stond niets vast.");
34
+ void queryClient.invalidateQueries({ queryKey: ["module-health"] });
35
+ void queryClient.invalidateQueries({ queryKey: ["stock-sync-health"] });
36
+ },
37
+ onError: (e) => toast.error(e?.message ?? "Herstellen is niet gelukt."),
38
+ });
39
+ return (_jsxs("section", { className: "rounded-lg border border-border bg-card p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-foreground", children: "Status van de voorraadmodule" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Controleert de koppeling, de achtergrondtaken en de synchronisatie naar Floriday." })] }), _jsxs("button", { type: "button", className: "inline-flex shrink-0 items-center rounded-md border border-border px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-muted disabled:opacity-50", disabled: mutation.isPending, onClick: () => mutation.mutate(), children: [_jsx(RotateCw, { className: `mr-1.5 h-3.5 w-3.5 ${mutation.isPending ? "animate-spin" : ""}` }), "Vastgelopen taken hervatten"] })] }), _jsxs("ul", { className: "mt-4 space-y-2.5", children: [isLoading && _jsx("li", { className: "text-sm text-muted-foreground", children: "Bezig met controleren\u2026" }), data?.checks.map((check) => (_jsxs("li", { className: "flex items-start gap-2 text-sm", children: [_jsx(StatusIcon, { status: check.status }), _jsxs("div", { className: "min-w-0", children: [_jsxs("span", { className: "font-medium text-foreground", children: [check.label, ": "] }), _jsx("span", { className: "text-muted-foreground break-words", children: check.detail }), check.hint && (_jsx("p", { className: "mt-0.5 text-xs text-muted-foreground/80 break-words", children: check.hint }))] })] }, check.id)))] })] }));
40
+ }