@yccui/ui 1.0.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 (153) hide show
  1. package/README.md +504 -0
  2. package/dist/components/DataDisplay/Accordion.d.ts +12 -0
  3. package/dist/components/DataDisplay/Accordion.d.ts.map +1 -0
  4. package/dist/components/DataDisplay/Avatar.d.ts +9 -0
  5. package/dist/components/DataDisplay/Avatar.d.ts.map +1 -0
  6. package/dist/components/DataDisplay/Badge.d.ts +8 -0
  7. package/dist/components/DataDisplay/Badge.d.ts.map +1 -0
  8. package/dist/components/DataDisplay/Banner.d.ts +13 -0
  9. package/dist/components/DataDisplay/Banner.d.ts.map +1 -0
  10. package/dist/components/DataDisplay/Card.d.ts +27 -0
  11. package/dist/components/DataDisplay/Card.d.ts.map +1 -0
  12. package/dist/components/DataDisplay/CompareBar.d.ts +10 -0
  13. package/dist/components/DataDisplay/CompareBar.d.ts.map +1 -0
  14. package/dist/components/DataDisplay/CopyButton.d.ts +8 -0
  15. package/dist/components/DataDisplay/CopyButton.d.ts.map +1 -0
  16. package/dist/components/DataDisplay/DataList.d.ts +11 -0
  17. package/dist/components/DataDisplay/DataList.d.ts.map +1 -0
  18. package/dist/components/DataDisplay/Donut.d.ts +10 -0
  19. package/dist/components/DataDisplay/Donut.d.ts.map +1 -0
  20. package/dist/components/DataDisplay/EmptyState.d.ts +10 -0
  21. package/dist/components/DataDisplay/EmptyState.d.ts.map +1 -0
  22. package/dist/components/DataDisplay/KV.d.ts +9 -0
  23. package/dist/components/DataDisplay/KV.d.ts.map +1 -0
  24. package/dist/components/DataDisplay/Popover.d.ts +9 -0
  25. package/dist/components/DataDisplay/Popover.d.ts.map +1 -0
  26. package/dist/components/DataDisplay/ProgressBar.d.ts +10 -0
  27. package/dist/components/DataDisplay/ProgressBar.d.ts.map +1 -0
  28. package/dist/components/DataDisplay/StatCard.d.ts +13 -0
  29. package/dist/components/DataDisplay/StatCard.d.ts.map +1 -0
  30. package/dist/components/DataDisplay/Table.d.ts +23 -0
  31. package/dist/components/DataDisplay/Table.d.ts.map +1 -0
  32. package/dist/components/DataDisplay/Tag.d.ts +9 -0
  33. package/dist/components/DataDisplay/Tag.d.ts.map +1 -0
  34. package/dist/components/DataDisplay/Timeline.d.ts +12 -0
  35. package/dist/components/DataDisplay/Timeline.d.ts.map +1 -0
  36. package/dist/components/DataDisplay/Tooltip.d.ts +9 -0
  37. package/dist/components/DataDisplay/Tooltip.d.ts.map +1 -0
  38. package/dist/components/DataDisplay/TrendSpark.d.ts +9 -0
  39. package/dist/components/DataDisplay/TrendSpark.d.ts.map +1 -0
  40. package/dist/components/DataDisplay/index.d.ts +39 -0
  41. package/dist/components/DataDisplay/index.d.ts.map +1 -0
  42. package/dist/components/Feedback/Alert.d.ts +9 -0
  43. package/dist/components/Feedback/Alert.d.ts.map +1 -0
  44. package/dist/components/Feedback/ConfirmDialog.d.ts +14 -0
  45. package/dist/components/Feedback/ConfirmDialog.d.ts.map +1 -0
  46. package/dist/components/Feedback/Drawer.d.ts +12 -0
  47. package/dist/components/Feedback/Drawer.d.ts.map +1 -0
  48. package/dist/components/Feedback/Modal.d.ts +14 -0
  49. package/dist/components/Feedback/Modal.d.ts.map +1 -0
  50. package/dist/components/Feedback/Skeleton.d.ts +8 -0
  51. package/dist/components/Feedback/Skeleton.d.ts.map +1 -0
  52. package/dist/components/Feedback/Spinner.d.ts +8 -0
  53. package/dist/components/Feedback/Spinner.d.ts.map +1 -0
  54. package/dist/components/Feedback/Toast.d.ts +20 -0
  55. package/dist/components/Feedback/Toast.d.ts.map +1 -0
  56. package/dist/components/Feedback/index.d.ts +15 -0
  57. package/dist/components/Feedback/index.d.ts.map +1 -0
  58. package/dist/components/Form/Button.d.ts +16 -0
  59. package/dist/components/Form/Button.d.ts.map +1 -0
  60. package/dist/components/Form/Checkbox.d.ts +12 -0
  61. package/dist/components/Form/Checkbox.d.ts.map +1 -0
  62. package/dist/components/Form/DateInput.d.ts +12 -0
  63. package/dist/components/Form/DateInput.d.ts.map +1 -0
  64. package/dist/components/Form/FileUpload.d.ts +11 -0
  65. package/dist/components/Form/FileUpload.d.ts.map +1 -0
  66. package/dist/components/Form/FormGroup.d.ts +11 -0
  67. package/dist/components/Form/FormGroup.d.ts.map +1 -0
  68. package/dist/components/Form/Input.d.ts +17 -0
  69. package/dist/components/Form/Input.d.ts.map +1 -0
  70. package/dist/components/Form/Radio.d.ts +13 -0
  71. package/dist/components/Form/Radio.d.ts.map +1 -0
  72. package/dist/components/Form/RadioGroup.d.ts +16 -0
  73. package/dist/components/Form/RadioGroup.d.ts.map +1 -0
  74. package/dist/components/Form/ScanZone.d.ts +8 -0
  75. package/dist/components/Form/ScanZone.d.ts.map +1 -0
  76. package/dist/components/Form/SearchInput.d.ts +13 -0
  77. package/dist/components/Form/SearchInput.d.ts.map +1 -0
  78. package/dist/components/Form/Select.d.ts +18 -0
  79. package/dist/components/Form/Select.d.ts.map +1 -0
  80. package/dist/components/Form/Textarea.d.ts +14 -0
  81. package/dist/components/Form/Textarea.d.ts.map +1 -0
  82. package/dist/components/Form/Toggle.d.ts +11 -0
  83. package/dist/components/Form/Toggle.d.ts.map +1 -0
  84. package/dist/components/Form/index.d.ts +27 -0
  85. package/dist/components/Form/index.d.ts.map +1 -0
  86. package/dist/components/Icons/Icon.d.ts +10 -0
  87. package/dist/components/Icons/Icon.d.ts.map +1 -0
  88. package/dist/components/Icons/index.d.ts +3 -0
  89. package/dist/components/Icons/index.d.ts.map +1 -0
  90. package/dist/components/Layout/Col.d.ts +12 -0
  91. package/dist/components/Layout/Col.d.ts.map +1 -0
  92. package/dist/components/Layout/Container.d.ts +9 -0
  93. package/dist/components/Layout/Container.d.ts.map +1 -0
  94. package/dist/components/Layout/Divider.d.ts +7 -0
  95. package/dist/components/Layout/Divider.d.ts.map +1 -0
  96. package/dist/components/Layout/Footer.d.ts +10 -0
  97. package/dist/components/Layout/Footer.d.ts.map +1 -0
  98. package/dist/components/Layout/Grid.d.ts +10 -0
  99. package/dist/components/Layout/Grid.d.ts.map +1 -0
  100. package/dist/components/Layout/Header.d.ts +15 -0
  101. package/dist/components/Layout/Header.d.ts.map +1 -0
  102. package/dist/components/Layout/Page.d.ts +14 -0
  103. package/dist/components/Layout/Page.d.ts.map +1 -0
  104. package/dist/components/Layout/PageHeader.d.ts +9 -0
  105. package/dist/components/Layout/PageHeader.d.ts.map +1 -0
  106. package/dist/components/Layout/Row.d.ts +9 -0
  107. package/dist/components/Layout/Row.d.ts.map +1 -0
  108. package/dist/components/Layout/Sidebar.d.ts +10 -0
  109. package/dist/components/Layout/Sidebar.d.ts.map +1 -0
  110. package/dist/components/Layout/Spacer.d.ts +7 -0
  111. package/dist/components/Layout/Spacer.d.ts.map +1 -0
  112. package/dist/components/Layout/Stack.d.ts +10 -0
  113. package/dist/components/Layout/Stack.d.ts.map +1 -0
  114. package/dist/components/Layout/index.d.ts +25 -0
  115. package/dist/components/Layout/index.d.ts.map +1 -0
  116. package/dist/components/Navigation/Breadcrumb.d.ts +12 -0
  117. package/dist/components/Navigation/Breadcrumb.d.ts.map +1 -0
  118. package/dist/components/Navigation/ContextMenu.d.ts +14 -0
  119. package/dist/components/Navigation/ContextMenu.d.ts.map +1 -0
  120. package/dist/components/Navigation/Nav.d.ts +31 -0
  121. package/dist/components/Navigation/Nav.d.ts.map +1 -0
  122. package/dist/components/Navigation/Pagination.d.ts +9 -0
  123. package/dist/components/Navigation/Pagination.d.ts.map +1 -0
  124. package/dist/components/Navigation/Stepper.d.ts +10 -0
  125. package/dist/components/Navigation/Stepper.d.ts.map +1 -0
  126. package/dist/components/Navigation/Tabs.d.ts +14 -0
  127. package/dist/components/Navigation/Tabs.d.ts.map +1 -0
  128. package/dist/components/Navigation/index.d.ts +13 -0
  129. package/dist/components/Navigation/index.d.ts.map +1 -0
  130. package/dist/components/index.d.ts +7 -0
  131. package/dist/components/index.d.ts.map +1 -0
  132. package/dist/index.cjs +5 -0
  133. package/dist/index.d.ts +11 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +3704 -0
  136. package/dist/pages/ComponentShowcase.d.ts +2 -0
  137. package/dist/pages/ComponentShowcase.d.ts.map +1 -0
  138. package/dist/pages/DashboardDemo.d.ts +2 -0
  139. package/dist/pages/DashboardDemo.d.ts.map +1 -0
  140. package/dist/pages/PrototypeHome.d.ts +3 -0
  141. package/dist/pages/PrototypeHome.d.ts.map +1 -0
  142. package/dist/pages/index.d.ts +4 -0
  143. package/dist/pages/index.d.ts.map +1 -0
  144. package/dist/styles.css +1 -0
  145. package/dist/tokens/colors.d.ts +259 -0
  146. package/dist/tokens/colors.d.ts.map +1 -0
  147. package/dist/tokens/index.d.ts +4 -0
  148. package/dist/tokens/index.d.ts.map +1 -0
  149. package/dist/tokens/layout.d.ts +138 -0
  150. package/dist/tokens/layout.d.ts.map +1 -0
  151. package/dist/tokens/typography.d.ts +148 -0
  152. package/dist/tokens/typography.d.ts.map +1 -0
  153. package/package.json +42 -0
package/dist/index.js ADDED
@@ -0,0 +1,3704 @@
1
+ import { jsxs as n, jsx as e, Fragment as ce } from "react/jsx-runtime";
2
+ import { useState as y, useMemo as ie, useRef as Ae, useCallback as Fe, useContext as _e, createContext as Ve, useEffect as na, isValidElement as ra, cloneElement as ia } from "react";
3
+ const we = {
4
+ Activity: [["polyline", { points: "22 12 18 12 15 21 9 3 6 12 2 12" }]],
5
+ AlertTriangle: [["path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }], ["path", { d: "M12 9v4" }], ["path", { d: "M12 17h.01" }]],
6
+ ArrowLeft: [["path", { d: "m12 19-7-7 7-7" }], ["path", { d: "M19 12H5" }]],
7
+ ArrowLeftRight: [["path", { d: "m16 3 4 4-4 4" }], ["path", { d: "M20 7H4" }], ["path", { d: "m8 21-4-4 4-4" }], ["path", { d: "M4 17h16" }]],
8
+ ArrowRight: [["path", { d: "M5 12h14" }], ["path", { d: "m12 5 7 7-7 7" }]],
9
+ BarChart3: [["path", { d: "M3 3v18h18" }], ["path", { d: "M18 17V9" }], ["path", { d: "M13 17V5" }], ["path", { d: "M8 17v-3" }]],
10
+ Bell: [["path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }], ["path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" }]],
11
+ BellOff: [["path", { d: "M13.73 21a2 2 0 0 1-3.46 0" }], ["path", { d: "M18.63 13A17.89 17.89 0 0 1 18 8" }], ["path", { d: "M6.26 6.26A6 6 0 0 0 6 8c0 7-3 9-3 9h14" }], ["path", { d: "m2 2 20 20" }]],
12
+ BookOpen: [["path", { d: "M12 7v14" }], ["path", { d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" }]],
13
+ Boxes: [["path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }], ["path", { d: "m7 16.5-4.74-2.85" }], ["path", { d: "m7 16.5 5-3" }], ["path", { d: "M7 16.5v5.17" }], ["path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }], ["path", { d: "m17 16.5-5-3" }], ["path", { d: "m17 16.5 4.74-2.85" }], ["path", { d: "M17 16.5v5.17" }], ["path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0Z" }], ["path", { d: "M12 8 7.26 5.15" }], ["path", { d: "m12 8 4.74-2.85" }], ["path", { d: "M12 13.5V8" }]],
14
+ Briefcase: [["rect", { x: 2, y: 7, width: 20, height: 14, rx: 2 }], ["path", { d: "M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" }]],
15
+ Cable: [["path", { d: "M4 9a2 2 0 0 1-2-2V5h6v2a2 2 0 0 1-2 2Z" }], ["path", { d: "M3 5V3" }], ["path", { d: "M7 5V3" }], ["path", { d: "M19 15a2 2 0 0 1 2 2v2h-6v-2a2 2 0 0 1 2-2Z" }], ["path", { d: "M17 21v-2" }], ["path", { d: "M21 21v-2" }], ["path", { d: "M5 9v3a4 4 0 0 0 4 4h6a4 4 0 0 0 4-4V9" }]],
16
+ Calendar: [["path", { d: "M8 2v4" }], ["path", { d: "M16 2v4" }], ["rect", { x: 3, y: 4, width: 18, height: 18, rx: 2 }], ["path", { d: "M3 10h18" }]],
17
+ Camera: [["path", { d: "M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z" }], ["circle", { cx: 12, cy: 13, r: 3 }]],
18
+ Check: [["polyline", { points: "20 6 9 17 4 12" }]],
19
+ CheckCircle2: [["circle", { cx: 12, cy: 12, r: 10 }], ["path", { d: "m9 12 2 2 4-4" }]],
20
+ ChevronDown: [["polyline", { points: "6 9 12 15 18 9" }]],
21
+ ChevronRight: [["polyline", { points: "9 18 15 12 9 6" }]],
22
+ ClipboardCheck: [["rect", { width: 8, height: 4, x: 8, y: 2, rx: 1, ry: 1 }], ["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }], ["path", { d: "m9 14 2 2 4-4" }]],
23
+ Clock: [["circle", { cx: 12, cy: 12, r: 10 }], ["polyline", { points: "12 6 12 12 16 14" }]],
24
+ Copy: [["rect", { x: 8, y: 8, width: 12, height: 12, rx: 2 }], ["path", { d: "M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2" }]],
25
+ Cpu: [["rect", { x: 4, y: 4, width: 16, height: 16, rx: 2 }], ["rect", { x: 9, y: 9, width: 6, height: 6 }], ["line", { x1: 15, y1: 2, x2: 15, y2: 4 }], ["line", { x1: 15, y1: 20, x2: 15, y2: 22 }], ["line", { x1: 2, y1: 15, x2: 4, y2: 15 }], ["line", { x1: 2, y1: 9, x2: 4, y2: 9 }], ["line", { x1: 20, y1: 15, x2: 22, y2: 15 }], ["line", { x1: 20, y1: 9, x2: 22, y2: 9 }], ["line", { x1: 9, y1: 2, x2: 9, y2: 4 }], ["line", { x1: 9, y1: 20, x2: 9, y2: 22 }]],
26
+ Database: [["ellipse", { cx: 12, cy: 5, rx: 9, ry: 3 }], ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5" }], ["path", { d: "M3 12A9 3 0 0 0 21 12" }]],
27
+ Download: [["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }], ["polyline", { points: "7 10 12 15 17 10" }], ["line", { x1: 12, y1: 15, x2: 12, y2: 3 }]],
28
+ Euro: [["path", { d: "M4 10h12" }], ["path", { d: "M4 14h9" }], ["path", { d: "M19 5a7 7 0 1 0 0 14" }]],
29
+ FileCheck: [["path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }], ["polyline", { points: "14 2 14 8 20 8" }], ["path", { d: "m9 15 2 2 4-4" }]],
30
+ FileSpreadsheet: [["path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }], ["polyline", { points: "14 2 14 8 20 8" }], ["path", { d: "M8 13h2" }], ["path", { d: "M8 17h2" }], ["path", { d: "M14 13h2" }], ["path", { d: "M14 17h2" }]],
31
+ FileText: [["path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }], ["polyline", { points: "14 2 14 8 20 8" }], ["line", { x1: 16, y1: 13, x2: 8, y2: 13 }], ["line", { x1: 16, y1: 17, x2: 8, y2: 17 }], ["line", { x1: 10, y1: 9, x2: 8, y2: 9 }]],
32
+ Filter: [["polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }]],
33
+ Gauge: [["path", { d: "m12 14 4-4" }], ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]],
34
+ Globe: [["circle", { cx: 12, cy: 12, r: 10 }], ["line", { x1: 2, y1: 12, x2: 22, y2: 12 }], ["path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" }]],
35
+ Hash: [["line", { x1: 4, y1: 9, x2: 20, y2: 9 }], ["line", { x1: 4, y1: 15, x2: 20, y2: 15 }], ["path", { d: "M10 3 8 21" }], ["path", { d: "M16 3 14 21" }]],
36
+ HelpCircle: [["circle", { cx: 12, cy: 12, r: 10 }], ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }], ["path", { d: "M12 17h.01" }]],
37
+ Home: [["path", { d: "m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }], ["polyline", { points: "9 22 9 12 15 12 15 22" }]],
38
+ Image: [["rect", { x: 3, y: 3, width: 18, height: 18, rx: 2 }], ["circle", { cx: 8.5, cy: 8.5, r: 1.5 }], ["path", { d: "m21 15-5-5L5 21" }]],
39
+ Landmark: [["line", { x1: 3, y1: 22, x2: 21, y2: 22 }], ["line", { x1: 6, y1: 18, x2: 6, y2: 11 }], ["line", { x1: 10, y1: 18, x2: 10, y2: 11 }], ["line", { x1: 14, y1: 18, x2: 14, y2: 11 }], ["line", { x1: 18, y1: 18, x2: 18, y2: 11 }], ["polygon", { points: "12 2 20 7 4 7" }]],
40
+ Layers: [["path", { d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z" }], ["path", { d: "m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65" }], ["path", { d: "m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65" }]],
41
+ LayoutDashboard: [["rect", { x: 3, y: 3, width: 7, height: 9, rx: 1 }], ["rect", { x: 14, y: 3, width: 7, height: 5, rx: 1 }], ["rect", { x: 14, y: 12, width: 7, height: 9, rx: 1 }], ["rect", { x: 3, y: 16, width: 7, height: 5, rx: 1 }]],
42
+ LayoutGrid: [["rect", { x: 3, y: 3, width: 7, height: 7, rx: 1 }], ["rect", { x: 14, y: 3, width: 7, height: 7, rx: 1 }], ["rect", { x: 14, y: 14, width: 7, height: 7, rx: 1 }], ["rect", { x: 3, y: 14, width: 7, height: 7, rx: 1 }]],
43
+ Link2: [["path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }], ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2" }], ["line", { x1: 8, y1: 12, x2: 16, y2: 12 }]],
44
+ Lock: [["rect", { x: 3, y: 11, width: 18, height: 11, rx: 2 }], ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4" }]],
45
+ Mail: [["rect", { x: 2, y: 4, width: 20, height: 16, rx: 2 }], ["path", { d: "m22 7-10 7L2 7" }]],
46
+ MapPin: [["path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }], ["circle", { cx: 12, cy: 10, r: 3 }]],
47
+ Menu: [["line", { x1: 4, y1: 6, x2: 20, y2: 6 }], ["line", { x1: 4, y1: 12, x2: 20, y2: 12 }], ["line", { x1: 4, y1: 18, x2: 20, y2: 18 }]],
48
+ PackageCheck: [["path", { d: "m16 16 2 2 4-4" }], ["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }], ["path", { d: "M3.3 7 12 12l8.7-5" }], ["path", { d: "M12 22V12" }]],
49
+ PackageOpen: [["path", { d: "M12 22v-9" }], ["path", { d: "m15.17 2.21 4.83 2.8a2 2 0 0 1 1 1.73v6.54a2 2 0 0 1-1 1.73l-1 .58" }], ["path", { d: "m2 8.3 10 5.8 10-5.8" }], ["path", { d: "M2 17.7V8.3a2 2 0 0 1 1-1.73l4.83-2.8" }]],
50
+ PackageSearch: [["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l5 2.857" }], ["path", { d: "M3.3 7 12 12l8.7-5" }], ["path", { d: "M12 22V12" }], ["circle", { cx: 18.5, cy: 15.5, r: 2.5 }], ["path", { d: "M20.27 17.27 22 19" }]],
51
+ Pause: [["rect", { x: 6, y: 4, width: 4, height: 16, rx: 1 }], ["rect", { x: 14, y: 4, width: 4, height: 16, rx: 1 }]],
52
+ Pencil: [["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }], ["path", { d: "m15 5 4 4" }]],
53
+ Plane: [["path", { d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" }]],
54
+ PlaneLanding: [["path", { d: "M2 22h20" }], ["path", { d: "M3 18 21 12 19 8 11 10 6 4 3 5l4 8-4 2z" }]],
55
+ PlaneTakeoff: [["path", { d: "M2 22h20" }], ["path", { d: "M6.36 17.4 4 17l-2-4 1.1-.55 3.77 1 4.12-2.5L4 4l1.5-2 9.65 6.05L19 5.7a2.09 2.09 0 0 1 2.85.75 2.06 2.06 0 0 1-.74 2.83z" }]],
56
+ Play: [["polygon", { points: "6 3 20 12 6 21 6 3" }]],
57
+ Plug: [["path", { d: "M12 22v-5" }], ["path", { d: "M9 8V2" }], ["path", { d: "M15 8V2" }], ["path", { d: "M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z" }]],
58
+ Plus: [["path", { d: "M5 12h14" }], ["path", { d: "M12 5v14" }]],
59
+ Power: [["path", { d: "M12 2v10" }], ["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" }]],
60
+ Printer: [["path", { d: "M6 9V2h12v7" }], ["path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }], ["rect", { x: 6, y: 14, width: 12, height: 8 }]],
61
+ Radio: [["circle", { cx: 12, cy: 12, r: 2 }], ["path", { d: "M4.93 19.07a10 10 0 0 1 0-14.14" }], ["path", { d: "M7.76 16.24a6 6 0 0 1 0-8.49" }], ["path", { d: "M16.24 7.76a6 6 0 0 1 0 8.49" }], ["path", { d: "M19.07 4.93a10 10 0 0 1 0 14.14" }]],
62
+ Receipt: [["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }], ["path", { d: "M16 8h-6" }], ["path", { d: "M16 12h-6" }]],
63
+ RefreshCw: [["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" }], ["path", { d: "M21 3v5h-5" }], ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" }], ["path", { d: "M3 21v-5h5" }]],
64
+ RotateCcw: [["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }], ["path", { d: "M3 3v5h5" }]],
65
+ Route: [["circle", { cx: 6, cy: 19, r: 3 }], ["path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }], ["circle", { cx: 18, cy: 5, r: 3 }]],
66
+ Ruler: [["path", { d: "M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z" }], ["path", { d: "m14.5 12.5 2-2" }], ["path", { d: "m11.5 9.5 2-2" }], ["path", { d: "m8.5 6.5 2-2" }], ["path", { d: "m17.5 15.5 2-2" }]],
67
+ Scale: [["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z" }], ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z" }], ["path", { d: "M7 21h10" }], ["path", { d: "M12 3v18" }], ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2" }]],
68
+ ScanLine: [["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }], ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }], ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }], ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }], ["path", { d: "M7 12h10" }]],
69
+ ScanSearch: [["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }], ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }], ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }], ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }], ["circle", { cx: 11.5, cy: 11.5, r: 2.5 }], ["path", { d: "M21 21l-2.5-2.5" }]],
70
+ Search: [["circle", { cx: 11, cy: 11, r: 8 }], ["path", { d: "m21 21-4.3-4.3" }]],
71
+ Send: [["path", { d: "m22 2-7 20-4-9-9-4Z" }], ["path", { d: "M22 2 11 13" }]],
72
+ Server: [["rect", { x: 2, y: 2, width: 20, height: 8, rx: 2 }], ["rect", { x: 2, y: 14, width: 20, height: 8, rx: 2 }], ["line", { x1: 6, y1: 6, x2: 6.01, y2: 6 }], ["line", { x1: 6, y1: 18, x2: 6.01, y2: 18 }]],
73
+ Settings: [["circle", { cx: 12, cy: 12, r: 3 }], ["path", { d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" }]],
74
+ ShieldCheck: [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { d: "m9 12 2 2 4-4" }]],
75
+ Ship: [["path", { d: "M12 10.189V14" }], ["path", { d: "M12 2v3" }], ["path", { d: "M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6" }], ["path", { d: "M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76" }], ["path", { d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }]],
76
+ SlidersHorizontal: [["line", { x1: 21, y1: 4, x2: 14, y2: 4 }], ["line", { x1: 10, y1: 4, x2: 3, y2: 4 }], ["line", { x1: 21, y1: 12, x2: 12, y2: 12 }], ["line", { x1: 8, y1: 12, x2: 3, y2: 12 }], ["line", { x1: 21, y1: 20, x2: 16, y2: 20 }], ["line", { x1: 12, y1: 20, x2: 3, y2: 20 }], ["line", { x1: 14, y1: 2, x2: 14, y2: 6 }], ["line", { x1: 8, y1: 10, x2: 8, y2: 14 }], ["line", { x1: 16, y1: 18, x2: 16, y2: 22 }]],
77
+ Split: [["path", { d: "M16 3h5v5" }], ["path", { d: "M8 3H3v5" }], ["path", { d: "M21 3l-7.83 7.83A4 4 0 0 0 12 13.66V22" }], ["path", { d: "M3 3l7.83 7.83" }]],
78
+ Square: [["rect", { x: 3, y: 3, width: 18, height: 18, rx: 2 }]],
79
+ Tag: [["path", { d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" }], ["circle", { cx: 7.5, cy: 7.5, r: 0.5 }]],
80
+ Tags: [["path", { d: "M3 5v6.172a2 2 0 0 0 .586 1.414L11 20l8-8-7.414-7.414A2 2 0 0 0 10.172 4H5a2 2 0 0 0-2 1z" }], ["circle", { cx: 7.5, cy: 8.5, r: 0.5 }]],
81
+ Trash2: [["path", { d: "M3 6h18" }], ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }], ["line", { x1: 10, y1: 11, x2: 10, y2: 17 }], ["line", { x1: 14, y1: 11, x2: 14, y2: 17 }]],
82
+ TrendingUp: [["polyline", { points: "22 7 13.5 15.5 8.5 10.5 2 17" }], ["polyline", { points: "16 7 22 7 22 13" }]],
83
+ Truck: [["path", { d: "M10 17h4V5H2v12h3" }], ["path", { d: "M20 17h2v-3.34a4 4 0 0 0-1.17-2.83L19 9h-5v8h1" }], ["circle", { cx: 7.5, cy: 17.5, r: 2.5 }], ["circle", { cx: 17.5, cy: 17.5, r: 2.5 }]],
84
+ Upload: [["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }], ["polyline", { points: "17 8 12 3 7 8" }], ["line", { x1: 12, y1: 3, x2: 12, y2: 15 }]],
85
+ Users: [["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }], ["circle", { cx: 9, cy: 7, r: 4 }], ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }], ["path", { d: "M16 3.13a4 4 0 0 1 0 7.75" }]],
86
+ Wallet: [["path", { d: "M21 12V7H5a2 2 0 0 1 0-4h14v4" }], ["path", { d: "M3 5v14a2 2 0 0 0 2 2h16v-5" }], ["path", { d: "M18 12a2 2 0 0 0 0 4h4v-4Z" }]],
87
+ Warehouse: [["path", { d: "M22 8.35V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8.35a2 2 0 0 1 1.18-1.82l8-3.6a2 2 0 0 1 1.64 0l8 3.6A2 2 0 0 1 22 8.35Z" }], ["path", { d: "M6 18h12" }], ["path", { d: "M6 14h12" }], ["path", { d: "M6 22V10" }]],
88
+ Workflow: [["rect", { x: 3, y: 3, width: 8, height: 8, rx: 2 }], ["path", { d: "M7 11v4a2 2 0 0 0 2 2h4" }], ["rect", { x: 13, y: 13, width: 8, height: 8, rx: 2 }]],
89
+ XCircle: [["circle", { cx: 12, cy: 12, r: 10 }], ["path", { d: "m15 9-6 6" }], ["path", { d: "m9 9 6 6" }]],
90
+ Zap: [["polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }]]
91
+ }, la = [...Object.keys(we), "LeafMark", "Barcode"].sort();
92
+ function ve(...a) {
93
+ return a.filter(Boolean).join(" ");
94
+ }
95
+ function ca([a, t], r) {
96
+ return a === "circle" ? /* @__PURE__ */ e("circle", { ...t }, r) : a === "rect" ? /* @__PURE__ */ e("rect", { ...t }, r) : a === "line" ? /* @__PURE__ */ e("line", { ...t }, r) : a === "polyline" ? /* @__PURE__ */ e("polyline", { ...t }, r) : a === "polygon" ? /* @__PURE__ */ e("polygon", { ...t }, r) : a === "ellipse" ? /* @__PURE__ */ e("ellipse", { ...t }, r) : /* @__PURE__ */ e("path", { ...t }, r);
97
+ }
98
+ function oa(a) {
99
+ const t = a || "YCC";
100
+ return Array.from({ length: 11 }, (r, i) => {
101
+ const l = t.charCodeAt(i % t.length) + i;
102
+ return { x: 3 + i * 1.7, width: l % 3 === 0 ? 0.9 : 0.4, height: 14 + l % 5 };
103
+ });
104
+ }
105
+ function s({ name: a, size: t = 16, color: r, className: i }) {
106
+ if (a === "LeafMark")
107
+ return /* @__PURE__ */ n("svg", { className: ve("ycc-icon", i), width: t, height: t, viewBox: "0 0 24 24", fill: "none", style: { color: r }, "aria-hidden": "true", children: [
108
+ /* @__PURE__ */ e("path", { d: "M5 19c0-7 5-13 14-14 0 9-5 14-12 14-1 0-2 0-2-1z", fill: "currentColor", opacity: "0.92" }),
109
+ /* @__PURE__ */ e("path", { d: "M5.5 18.5c3-5 7-8 11-9.5", stroke: "var(--ycc-card)", strokeWidth: "1.3", strokeLinecap: "round" })
110
+ ] });
111
+ if (a === "Barcode")
112
+ return /* @__PURE__ */ e("svg", { className: ve("ycc-icon", i), width: t, height: t, viewBox: "0 0 24 24", fill: "none", style: { color: r }, "aria-hidden": "true", children: oa(a).map((c, o) => /* @__PURE__ */ e("rect", { x: c.x, y: "4", width: c.width, height: c.height, fill: "currentColor" }, o)) });
113
+ const l = we[a] ?? we.HelpCircle;
114
+ return /* @__PURE__ */ e(
115
+ "svg",
116
+ {
117
+ className: ve("ycc-icon", i),
118
+ width: t,
119
+ height: t,
120
+ viewBox: "0 0 24 24",
121
+ stroke: "currentColor",
122
+ fill: "none",
123
+ strokeWidth: 1.5,
124
+ strokeLinecap: "round",
125
+ strokeLinejoin: "round",
126
+ style: { color: r },
127
+ "aria-hidden": "true",
128
+ children: l.map(ca)
129
+ }
130
+ );
131
+ }
132
+ function sa(...a) {
133
+ return a.filter(Boolean).join(" ");
134
+ }
135
+ function N({
136
+ variant: a = "primary",
137
+ size: t = "md",
138
+ loading: r = !1,
139
+ leftIcon: i,
140
+ rightIcon: l,
141
+ disabled: c,
142
+ onClick: o,
143
+ type: d = "button",
144
+ children: h,
145
+ className: p
146
+ }) {
147
+ return /* @__PURE__ */ n(
148
+ "button",
149
+ {
150
+ type: d,
151
+ disabled: c || r,
152
+ onClick: o,
153
+ className: sa(
154
+ "ycc-button",
155
+ `ycc-button--${a}`,
156
+ `ycc-button--${t}`,
157
+ r && "ycc-button--loading",
158
+ p
159
+ ),
160
+ children: [
161
+ r ? /* @__PURE__ */ e(s, { name: "RefreshCw", size: 14, className: "ycc-button__spinner" }) : i ? /* @__PURE__ */ e(s, { name: i, size: 14 }) : null,
162
+ r ? null : h,
163
+ !r && l ? /* @__PURE__ */ e(s, { name: l, size: 14 }) : null
164
+ ]
165
+ }
166
+ );
167
+ }
168
+ function da(...a) {
169
+ return a.filter(Boolean).join(" ");
170
+ }
171
+ function q({ checked: a, defaultChecked: t = !1, onChange: r, disabled: i, label: l, size: c = "md" }) {
172
+ const [o, d] = y(t), h = a ?? o;
173
+ function p() {
174
+ if (i) return;
175
+ const u = !h;
176
+ a === void 0 && d(u), r?.(u);
177
+ }
178
+ return /* @__PURE__ */ n("label", { className: "ycc-toggle", children: [
179
+ /* @__PURE__ */ e(
180
+ "button",
181
+ {
182
+ type: "button",
183
+ role: "switch",
184
+ "aria-checked": h,
185
+ disabled: i,
186
+ onClick: p,
187
+ className: da(
188
+ "ycc-toggle__control",
189
+ `ycc-toggle__control--${c}`,
190
+ h && "ycc-toggle__control--checked"
191
+ ),
192
+ children: /* @__PURE__ */ e("span", { className: "ycc-toggle__knob" })
193
+ }
194
+ ),
195
+ l ? /* @__PURE__ */ e("span", { children: l }) : null
196
+ ] });
197
+ }
198
+ function De(...a) {
199
+ return a.filter(Boolean).join(" ");
200
+ }
201
+ function H({ type: a = "text", error: t, size: r = "md", leftAddon: i, rightAddon: l, disabled: c, className: o, ...d }) {
202
+ return /* @__PURE__ */ n("div", { className: De("ycc-input-field", o), children: [
203
+ /* @__PURE__ */ n("div", { className: De("ycc-input-control", `ycc-input-control--${r}`, t && "ycc-input-control--error", c && "ycc-input-control--disabled"), children: [
204
+ i ? /* @__PURE__ */ e("span", { className: "ycc-input-addon", children: i }) : null,
205
+ /* @__PURE__ */ e("input", { className: "ycc-input", type: a, disabled: c, ...d }),
206
+ l ? /* @__PURE__ */ e("span", { className: "ycc-input-addon", children: l }) : null
207
+ ] }),
208
+ t ? /* @__PURE__ */ e("div", { className: "ycc-input-error", children: t }) : null
209
+ ] });
210
+ }
211
+ function ha(...a) {
212
+ return a.filter(Boolean).join(" ");
213
+ }
214
+ function ne({ options: a, placeholder: t, error: r, size: i = "md", ...l }) {
215
+ return /* @__PURE__ */ n("div", { className: "ycc-select-field", children: [
216
+ /* @__PURE__ */ n("select", { className: ha("ycc-select", `ycc-select--${i}`, r && "ycc-select--error"), ...l, children: [
217
+ t ? /* @__PURE__ */ e("option", { value: "", children: t }) : null,
218
+ a.map((c) => /* @__PURE__ */ e("option", { value: c.value, children: c.label }, c.value))
219
+ ] }),
220
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 14, className: "ycc-select-icon" }),
221
+ r ? /* @__PURE__ */ e("div", { className: "ycc-select-error", children: r }) : null
222
+ ] });
223
+ }
224
+ function Le(...a) {
225
+ return a.filter(Boolean).join(" ");
226
+ }
227
+ function se({ checked: a, defaultChecked: t, indeterminate: r, onChange: i, label: l, disabled: c }) {
228
+ return /* @__PURE__ */ n("label", { className: Le("ycc-checkbox", c && "ycc-checkbox--disabled"), children: [
229
+ /* @__PURE__ */ e("input", { className: "ycc-checkbox__input", type: "checkbox", checked: a, defaultChecked: t, disabled: c, onChange: i }),
230
+ /* @__PURE__ */ e("span", { className: Le("ycc-checkbox__box", a && "ycc-checkbox__box--checked", r && "ycc-checkbox__box--indeterminate") }),
231
+ l ? /* @__PURE__ */ e("span", { children: l }) : null
232
+ ] });
233
+ }
234
+ function ua(...a) {
235
+ return a.filter(Boolean).join(" ");
236
+ }
237
+ function me({ error: a, rows: t = 4, resize: r = "vertical", ...i }) {
238
+ return /* @__PURE__ */ n("div", { className: "ycc-textarea-field", children: [
239
+ /* @__PURE__ */ e("textarea", { className: ua("ycc-textarea", `ycc-textarea--${r}`, a && "ycc-textarea--error"), rows: t, ...i }),
240
+ a ? /* @__PURE__ */ e("div", { className: "ycc-textarea-error", children: a }) : null
241
+ ] });
242
+ }
243
+ function fe({ label: a, required: t, helper: r, error: i, children: l }) {
244
+ return /* @__PURE__ */ n("div", { className: "ycc-form-group", children: [
245
+ a ? /* @__PURE__ */ n("label", { className: "ycc-form-group__label", children: [
246
+ a,
247
+ " ",
248
+ t ? /* @__PURE__ */ e("span", { className: "ycc-form-group__required", children: "*" }) : null
249
+ ] }) : null,
250
+ l,
251
+ i ? /* @__PURE__ */ e("div", { className: "ycc-form-group__error", children: i }) : r ? /* @__PURE__ */ e("div", { className: "ycc-form-group__helper", children: r }) : null
252
+ ] });
253
+ }
254
+ function pa(a) {
255
+ return a.trim().toLowerCase().replace(/\s+/g, "-");
256
+ }
257
+ function oe({ label: a, variant: t, size: r = "sm" }) {
258
+ const i = pa(t);
259
+ return /* @__PURE__ */ e("span", { className: `ycc-badge ycc-badge--${r} ycc-badge--${i || "fallback"}`, children: a });
260
+ }
261
+ function ma(a) {
262
+ return a.trim().split(/\s+/).filter(Boolean).slice(0, 2).map((t) => t.charAt(0).toUpperCase()).join("");
263
+ }
264
+ function le({ src: a, name: t, size: r = "md", status: i }) {
265
+ return /* @__PURE__ */ n("span", { className: `ycc-avatar ycc-avatar--${r}`, "aria-label": t, children: [
266
+ a ? /* @__PURE__ */ e("img", { className: "ycc-avatar__image", src: a, alt: t }) : ma(t),
267
+ i ? /* @__PURE__ */ e("span", { className: `ycc-avatar__status ycc-avatar__status--${i}` }) : null
268
+ ] });
269
+ }
270
+ function Q({ label: a, onRemove: t, color: r, size: i = "sm" }) {
271
+ return /* @__PURE__ */ n("span", { className: `ycc-tag ycc-tag--${i}`, style: r ? { color: r, borderColor: r } : void 0, children: [
272
+ a,
273
+ t ? /* @__PURE__ */ e("button", { type: "button", className: "ycc-tag__remove", onClick: t, "aria-label": `Remove ${a}`, children: "×" }) : null
274
+ ] });
275
+ }
276
+ function We(...a) {
277
+ return a.filter(Boolean).join(" ");
278
+ }
279
+ function ge({ children: a, className: t, padding: r = "md", shadow: i }) {
280
+ return /* @__PURE__ */ e("section", { className: We("ycc-card", `ycc-card--padding-${r}`, i && "ycc-card--shadow", t), children: a });
281
+ }
282
+ function Se({ title: a, subtitle: t, actions: r, icon: i }) {
283
+ return /* @__PURE__ */ n("div", { className: "ycc-card-header", children: [
284
+ /* @__PURE__ */ n("div", { children: [
285
+ /* @__PURE__ */ n("div", { className: "ycc-card-header__title-row", children: [
286
+ i ? /* @__PURE__ */ e(s, { name: i, size: 15, className: "ycc-card-header__icon" }) : null,
287
+ /* @__PURE__ */ e("h3", { className: "ycc-card-header__title", children: a })
288
+ ] }),
289
+ t ? /* @__PURE__ */ e("p", { className: "ycc-card-header__subtitle", children: t }) : null
290
+ ] }),
291
+ r
292
+ ] });
293
+ }
294
+ function Lt({ children: a, className: t }) {
295
+ return /* @__PURE__ */ e("div", { className: We("ycc-card-body", t), children: a });
296
+ }
297
+ function Ge({ children: a, align: t = "right" }) {
298
+ return /* @__PURE__ */ e("div", { className: `ycc-card-footer ycc-card-footer--${t}`, children: a });
299
+ }
300
+ function V({ title: a, value: t, change: r, icon: i, iconColor: l, trend: c = "flat", subtitle: o, loading: d }) {
301
+ const h = r === void 0 || c === "flat" ? "flat" : r >= 0 ? "positive" : "negative", p = c === "down" ? "ArrowRight" : "TrendingUp";
302
+ return /* @__PURE__ */ n("article", { className: "ycc-stat-card", children: [
303
+ /* @__PURE__ */ n("div", { className: "ycc-stat-card__top", children: [
304
+ /* @__PURE__ */ e("div", { className: "ycc-stat-card__title", children: a }),
305
+ i ? /* @__PURE__ */ e(s, { name: i, size: 18, className: "ycc-stat-card__icon", color: l }) : null
306
+ ] }),
307
+ /* @__PURE__ */ e("div", { className: "ycc-stat-card__value", children: d ? /* @__PURE__ */ e("span", { className: "ycc-stat-card__skeleton" }) : t }),
308
+ /* @__PURE__ */ n("div", { className: "ycc-stat-card__meta", children: [
309
+ !d && r !== void 0 ? /* @__PURE__ */ n("span", { className: `ycc-stat-card__change ycc-stat-card__change--${h}`, children: [
310
+ c !== "flat" ? /* @__PURE__ */ e(s, { name: p, size: 12 }) : null,
311
+ r > 0 ? "+" : "",
312
+ r,
313
+ "%"
314
+ ] }) : null,
315
+ o ? /* @__PURE__ */ e("span", { children: o }) : null
316
+ ] })
317
+ ] });
318
+ }
319
+ function Ke({ message: a, variant: t = "info", title: r, onDismiss: i, action: l }) {
320
+ return /* @__PURE__ */ n("div", { className: `ycc-banner ycc-banner--${t}`, children: [
321
+ /* @__PURE__ */ n("span", { className: "ycc-banner__content", children: [
322
+ r ? /* @__PURE__ */ e("strong", { className: "ycc-banner__title", children: r }) : null,
323
+ /* @__PURE__ */ e("span", { children: a })
324
+ ] }),
325
+ /* @__PURE__ */ n("span", { className: "ycc-banner__actions", children: [
326
+ l ? /* @__PURE__ */ e("button", { type: "button", className: "ycc-banner__action", onClick: l.onClick, children: l.label }) : null,
327
+ i ? /* @__PURE__ */ e("button", { type: "button", onClick: i, "aria-label": "Dismiss banner", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 16 }) }) : null
328
+ ] })
329
+ ] });
330
+ }
331
+ function de(a) {
332
+ return typeof a == "string" || typeof a == "number" ? String(a) : "";
333
+ }
334
+ function ze(...a) {
335
+ return a.filter(Boolean).join(" ");
336
+ }
337
+ function Ue({
338
+ columns: a,
339
+ data: t,
340
+ loading: r,
341
+ searchable: i,
342
+ searchPlaceholder: l = "Search...",
343
+ striped: c,
344
+ clickableRows: o,
345
+ onRowClick: d,
346
+ emptyMessage: h = "No records found",
347
+ className: p
348
+ }) {
349
+ const [u, m] = y(""), [k, M] = y(null), z = ie(() => {
350
+ const f = u.toLowerCase(), O = f ? t.filter((g) => Object.values(g).some((A) => de(A).toLowerCase().includes(f))) : t;
351
+ return k ? [...O].sort((g, A) => {
352
+ const B = de(g[k.key]), G = de(A[k.key]);
353
+ return k.direction === "asc" ? B.localeCompare(G, void 0, { numeric: !0 }) : G.localeCompare(B, void 0, { numeric: !0 });
354
+ }) : O;
355
+ }, [t, u, k]);
356
+ function Z(f) {
357
+ f.sortable && M((O) => O?.key === f.key && O.direction === "asc" ? { key: f.key, direction: "desc" } : { key: f.key, direction: "asc" });
358
+ }
359
+ return /* @__PURE__ */ n("div", { className: ze("ycc-table-wrap", p), children: [
360
+ i ? /* @__PURE__ */ e("div", { className: "ycc-table-toolbar", children: /* @__PURE__ */ e(H, { value: u, onChange: (f) => m(f.target.value), placeholder: l, leftAddon: /* @__PURE__ */ e(s, { name: "Search", size: 14 }) }) }) : null,
361
+ /* @__PURE__ */ e("div", { className: "ycc-table-scroll", children: /* @__PURE__ */ n("table", { className: ze("ycc-table", c && "ycc-table--striped", o && "ycc-table--clickable"), children: [
362
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { children: a.map((f) => /* @__PURE__ */ e("th", { style: { width: f.width }, children: f.sortable ? /* @__PURE__ */ n("button", { type: "button", className: "ycc-table-sort", onClick: () => Z(f), children: [
363
+ f.header,
364
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 12 })
365
+ ] }) : f.header }, String(f.key))) }) }),
366
+ /* @__PURE__ */ e("tbody", { children: r ? Array.from({ length: 5 }, (f, O) => /* @__PURE__ */ e("tr", { children: a.map((g) => /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: "ycc-table-skeleton" }) }, String(g.key))) }, O)) : z.length ? z.map((f, O) => /* @__PURE__ */ e("tr", { onClick: () => d?.(f), children: a.map((g) => {
367
+ const A = f[g.key];
368
+ return /* @__PURE__ */ e("td", { children: g.render ? g.render(A, f) : de(A) }, String(g.key));
369
+ }) }, O)) : /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { className: "ycc-table-empty", colSpan: a.length, children: h }) }) })
370
+ ] }) })
371
+ ] });
372
+ }
373
+ function zt({ label: a, value: t, size: r = "md" }) {
374
+ return /* @__PURE__ */ n("div", { className: `ycc-kv ycc-kv--${r}`, children: [
375
+ /* @__PURE__ */ e("span", { className: "ycc-kv__label", children: a }),
376
+ /* @__PURE__ */ e("span", { className: "ycc-kv__value", children: t })
377
+ ] });
378
+ }
379
+ function Ot({ icon: a = "Inbox", title: t, message: r, action: i }) {
380
+ return /* @__PURE__ */ n("div", { className: "ycc-empty-state", children: [
381
+ /* @__PURE__ */ e("span", { className: "ycc-empty-state__icon", children: /* @__PURE__ */ e(s, { name: a, size: 24 }) }),
382
+ /* @__PURE__ */ e("h3", { children: t }),
383
+ r ? /* @__PURE__ */ e("p", { children: r }) : null,
384
+ i ? /* @__PURE__ */ e("div", { className: "ycc-empty-state__action", children: i }) : null
385
+ ] });
386
+ }
387
+ function ga(a, t) {
388
+ return Math.max(0, Math.min(a, t));
389
+ }
390
+ function Bt({ value: a, max: t = 100, size: r = 52, color: i = "var(--ycc-accent)", label: l }) {
391
+ const o = 2 * Math.PI * 18, d = t > 0 ? ga(a, t) / t : 0;
392
+ return /* @__PURE__ */ n("figure", { className: "ycc-donut", style: { width: r, height: r, color: i }, children: [
393
+ /* @__PURE__ */ n("svg", { viewBox: "0 0 44 44", "aria-label": l ?? `${Math.round(d * 100)}%`, children: [
394
+ /* @__PURE__ */ e("circle", { className: "ycc-donut__track", cx: "22", cy: "22", r: 18 }),
395
+ /* @__PURE__ */ e("circle", { className: "ycc-donut__value", cx: "22", cy: "22", r: 18, strokeDasharray: o, strokeDashoffset: o * (1 - d) })
396
+ ] }),
397
+ /* @__PURE__ */ e("figcaption", { children: l ?? `${Math.round(d * 100)}%` })
398
+ ] });
399
+ }
400
+ function ba(a, t, r) {
401
+ if (a.length === 0) return "";
402
+ const i = Math.min(...a), c = Math.max(...a) - i || 1;
403
+ return a.map((o, d) => {
404
+ const h = a.length === 1 ? t / 2 : d / (a.length - 1) * t, p = r - (o - i) / c * r;
405
+ return `${d === 0 ? "M" : "L"} ${h.toFixed(2)} ${p.toFixed(2)}`;
406
+ }).join(" ");
407
+ }
408
+ function Rt({ data: a, color: t = "var(--ycc-accent)", width: r = 120, height: i = 36 }) {
409
+ const l = { color: t };
410
+ return /* @__PURE__ */ e("svg", { className: "ycc-trend-spark", viewBox: `0 0 ${r} ${i}`, width: r, height: i, style: l, role: "img", "aria-label": "Trend sparkline", children: /* @__PURE__ */ e("path", { d: ba(a, r, i) }) });
411
+ }
412
+ function Et({ labelA: a, valueA: t, labelB: r, valueB: i, color: l = "var(--ycc-accent)" }) {
413
+ const c = Math.max(t + i, 1), d = { "--ycc-compare-a": `${Math.max(0, Math.min(100, t / c * 100))}%`, color: l };
414
+ return /* @__PURE__ */ n("div", { className: "ycc-compare-bar", style: d, children: [
415
+ /* @__PURE__ */ n("div", { className: "ycc-compare-bar__meta", children: [
416
+ /* @__PURE__ */ n("span", { children: [
417
+ a,
418
+ " ",
419
+ /* @__PURE__ */ e("strong", { children: t })
420
+ ] }),
421
+ /* @__PURE__ */ n("span", { children: [
422
+ r,
423
+ " ",
424
+ /* @__PURE__ */ e("strong", { children: i })
425
+ ] })
426
+ ] }),
427
+ /* @__PURE__ */ e("div", { className: "ycc-compare-bar__track", children: /* @__PURE__ */ e("span", {}) })
428
+ ] });
429
+ }
430
+ function $t({ content: a, children: t, position: r = "top" }) {
431
+ return /* @__PURE__ */ n("span", { className: `ycc-tooltip ycc-tooltip--${r}`, children: [
432
+ t,
433
+ /* @__PURE__ */ e("span", { className: "ycc-tooltip__content", role: "tooltip", children: a })
434
+ ] });
435
+ }
436
+ function Pt({ trigger: a, children: t, position: r = "bottom" }) {
437
+ const [i, l] = y(!1);
438
+ return /* @__PURE__ */ n("span", { className: `ycc-popover ycc-popover--${r}`, children: [
439
+ /* @__PURE__ */ e("button", { type: "button", className: "ycc-popover__trigger", onClick: () => l((c) => !c), "aria-expanded": i, children: a }),
440
+ i ? /* @__PURE__ */ e("span", { className: "ycc-popover__panel", children: t }) : null
441
+ ] });
442
+ }
443
+ function It({ items: a, defaultOpen: t = [] }) {
444
+ const [r, i] = y(t);
445
+ function l(c) {
446
+ i((o) => o.includes(c) ? o.filter((d) => d !== c) : [...o, c]);
447
+ }
448
+ return /* @__PURE__ */ e("div", { className: "ycc-accordion", children: a.map((c) => {
449
+ const o = r.includes(c.id);
450
+ return /* @__PURE__ */ n("section", { className: "ycc-accordion__item", children: [
451
+ /* @__PURE__ */ n("button", { type: "button", className: "ycc-accordion__button", onClick: () => l(c.id), "aria-expanded": o, children: [
452
+ /* @__PURE__ */ e("span", { children: c.title }),
453
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 14, className: o ? "ycc-accordion__chevron ycc-accordion__chevron--open" : "ycc-accordion__chevron" })
454
+ ] }),
455
+ o ? /* @__PURE__ */ e("div", { className: "ycc-accordion__content", children: c.content }) : null
456
+ ] }, c.id);
457
+ }) });
458
+ }
459
+ function ya(a) {
460
+ return a?.trim().toLowerCase().replace(/\s+/g, "-") || "default";
461
+ }
462
+ function Ht({ events: a }) {
463
+ return /* @__PURE__ */ e("ol", { className: "ycc-timeline", children: a.map((t, r) => /* @__PURE__ */ n("li", { className: `ycc-timeline__event ycc-timeline__event--${ya(t.variant)}`, children: [
464
+ /* @__PURE__ */ e("span", { className: "ycc-timeline__dot", children: t.icon ? /* @__PURE__ */ e(s, { name: t.icon, size: 12 }) : null }),
465
+ /* @__PURE__ */ n("div", { className: "ycc-timeline__body", children: [
466
+ /* @__PURE__ */ n("div", { className: "ycc-timeline__head", children: [
467
+ /* @__PURE__ */ e("strong", { children: t.label }),
468
+ /* @__PURE__ */ e("time", { children: t.timestamp })
469
+ ] }),
470
+ t.description ? /* @__PURE__ */ e("p", { children: t.description }) : null
471
+ ] })
472
+ ] }, `${t.label}-${r}`)) });
473
+ }
474
+ function Vt({ value: a, max: t = 100, label: r, variant: i = "default", showPercent: l }) {
475
+ const c = t > 0 ? Math.max(0, Math.min(100, a / t * 100)) : 0;
476
+ return /* @__PURE__ */ n("div", { className: `ycc-progress ycc-progress--${i}`, style: { "--ycc-progress-value": `${c}%` }, children: [
477
+ r || l ? /* @__PURE__ */ n("div", { className: "ycc-progress__meta", children: [
478
+ /* @__PURE__ */ e("span", { children: r }),
479
+ l ? /* @__PURE__ */ n("strong", { children: [
480
+ Math.round(c),
481
+ "%"
482
+ ] }) : null
483
+ ] }) : null,
484
+ /* @__PURE__ */ e("div", { className: "ycc-progress__track", children: /* @__PURE__ */ e("span", {}) })
485
+ ] });
486
+ }
487
+ function Wt({ items: a, columns: t = 2 }) {
488
+ return /* @__PURE__ */ e("dl", { className: "ycc-data-list", style: { "--ycc-data-list-columns": t }, children: a.map((r) => /* @__PURE__ */ n("div", { className: "ycc-data-list__item", children: [
489
+ /* @__PURE__ */ e("dt", { children: r.label }),
490
+ /* @__PURE__ */ e("dd", { children: r.value })
491
+ ] }, r.label)) });
492
+ }
493
+ function Gt({ value: a, label: t = "Copy", copiedLabel: r = "Copied" }) {
494
+ const [i, l] = y(!1);
495
+ async function c() {
496
+ await navigator.clipboard?.writeText(a), l(!0), window.setTimeout(() => l(!1), 1600);
497
+ }
498
+ return /* @__PURE__ */ n("button", { type: "button", className: i ? "ycc-copy-button ycc-copy-button--copied" : "ycc-copy-button", onClick: c, children: [
499
+ /* @__PURE__ */ e(s, { name: i ? "Check" : "Copy", size: 14 }),
500
+ i ? r : t
501
+ ] });
502
+ }
503
+ function va(...a) {
504
+ return a.filter(Boolean).join(" ");
505
+ }
506
+ function fa({ onFilesSelected: a, accept: t, multiple: r, maxSizeMB: i, label: l = "Drop files here or click to browse", disabled: c }) {
507
+ const o = Ae(null), [d, h] = y(!1), [p, u] = y([]), [m, k] = y("");
508
+ function M(g) {
509
+ if (i) {
510
+ const A = g.find((B) => B.size > i * 1024 * 1024);
511
+ if (A) return `${A.name} exceeds ${i}MB`;
512
+ }
513
+ return "";
514
+ }
515
+ function z(g) {
516
+ const A = M(g);
517
+ k(A), !A && (u(g), a(g));
518
+ }
519
+ function Z(g) {
520
+ z(Array.from(g.target.files ?? []));
521
+ }
522
+ function f(g) {
523
+ g.preventDefault(), h(!1), c || z(Array.from(g.dataTransfer.files));
524
+ }
525
+ function O(g) {
526
+ u((A) => A.filter((B) => B !== g));
527
+ }
528
+ return /* @__PURE__ */ n("div", { className: "ycc-file-upload", children: [
529
+ /* @__PURE__ */ n(
530
+ "label",
531
+ {
532
+ className: va("ycc-file-upload__zone", d && "ycc-file-upload__zone--drag", c && "ycc-file-upload__zone--disabled"),
533
+ onDragOver: (g) => {
534
+ g.preventDefault(), h(!0);
535
+ },
536
+ onDragLeave: () => h(!1),
537
+ onDrop: f,
538
+ onClick: () => !c && o.current?.click(),
539
+ children: [
540
+ /* @__PURE__ */ e(s, { name: "Upload", size: 18 }),
541
+ /* @__PURE__ */ e("span", { className: "ycc-file-upload__label", children: l }),
542
+ /* @__PURE__ */ n("span", { className: "ycc-file-upload__hint", children: [
543
+ t ?? "Any file",
544
+ i ? ` · max ${i}MB` : ""
545
+ ] }),
546
+ /* @__PURE__ */ e("input", { ref: o, className: "ycc-file-upload__input", type: "file", accept: t, multiple: r, disabled: c, onChange: Z })
547
+ ]
548
+ }
549
+ ),
550
+ m ? /* @__PURE__ */ e("div", { className: "ycc-file-upload__error", children: m }) : null,
551
+ /* @__PURE__ */ e("div", { className: "ycc-file-upload__files", children: p.map((g) => /* @__PURE__ */ e(Q, { label: g.name, onRemove: () => O(g) }, `${g.name}-${g.size}`)) })
552
+ ] });
553
+ }
554
+ function Kt({ onScan: a, placeholder: t = "Scan or type barcode...", active: r }) {
555
+ const [i, l] = y("");
556
+ function c(o) {
557
+ o.key !== "Enter" || !i.trim() || (a(i.trim()), l(""));
558
+ }
559
+ return /* @__PURE__ */ n("label", { className: r ? "ycc-scan-zone ycc-scan-zone--active" : "ycc-scan-zone", children: [
560
+ /* @__PURE__ */ e(s, { name: "Barcode", size: 24 }),
561
+ /* @__PURE__ */ e("span", { className: "ycc-scan-zone__text", children: "Scanner ready" }),
562
+ /* @__PURE__ */ e("input", { value: i, onChange: (o) => l(o.target.value), onKeyDown: c, placeholder: t })
563
+ ] });
564
+ }
565
+ function xa({ name: a, value: t, checked: r, defaultChecked: i, onChange: l, label: c, disabled: o }) {
566
+ return /* @__PURE__ */ n("label", { className: o ? "ycc-radio ycc-radio--disabled" : "ycc-radio", children: [
567
+ /* @__PURE__ */ e("input", { className: "ycc-radio__input", type: "radio", name: a, value: t, checked: r, defaultChecked: i, disabled: o, onChange: l }),
568
+ /* @__PURE__ */ e("span", { className: "ycc-radio__control" }),
569
+ c ? /* @__PURE__ */ e("span", { children: c }) : null
570
+ ] });
571
+ }
572
+ function Ut({ name: a, options: t, value: r, defaultValue: i, onChange: l, direction: c = "column", disabled: o }) {
573
+ function d(h) {
574
+ l?.(h.target.value);
575
+ }
576
+ return /* @__PURE__ */ e("div", { className: `ycc-radio-group ycc-radio-group--${c}`, role: "radiogroup", children: t.map((h) => /* @__PURE__ */ e(
577
+ xa,
578
+ {
579
+ name: a,
580
+ value: h.value,
581
+ label: h.label,
582
+ checked: r === void 0 ? void 0 : r === h.value,
583
+ defaultChecked: r === void 0 ? i === h.value : void 0,
584
+ disabled: o || h.disabled,
585
+ onChange: d
586
+ },
587
+ h.value
588
+ )) });
589
+ }
590
+ function jt({ error: a, size: t = "md", disabled: r, ...i }) {
591
+ return /* @__PURE__ */ n("div", { className: "ycc-date-input-field", children: [
592
+ /* @__PURE__ */ n("div", { className: `ycc-date-input-control ycc-date-input-control--${t}${a ? " ycc-date-input-control--error" : ""}${r ? " ycc-date-input-control--disabled" : ""}`, children: [
593
+ /* @__PURE__ */ e(s, { name: "Calendar", size: 14 }),
594
+ /* @__PURE__ */ e("input", { className: "ycc-date-input", type: "date", disabled: r, ...i })
595
+ ] }),
596
+ a ? /* @__PURE__ */ e("div", { className: "ycc-date-input-error", children: a }) : null
597
+ ] });
598
+ }
599
+ function qt({ value: a, defaultValue: t, onChange: r, onClear: i, placeholder: l = "Search...", disabled: c, size: o = "md" }) {
600
+ const d = !!(a || t);
601
+ return /* @__PURE__ */ n("div", { className: `ycc-search-input ycc-search-input--${o}${c ? " ycc-search-input--disabled" : ""}`, children: [
602
+ /* @__PURE__ */ e(s, { name: "Search", size: 14 }),
603
+ /* @__PURE__ */ e("input", { value: a, defaultValue: t, onChange: r, placeholder: l, disabled: c, type: "search" }),
604
+ i && d ? /* @__PURE__ */ e("button", { type: "button", onClick: i, "aria-label": "Clear search", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 14 }) }) : null
605
+ ] });
606
+ }
607
+ const je = Ve(null);
608
+ function Ca(a) {
609
+ const t = typeof a == "string" ? { message: a } : a;
610
+ return { message: t.message, duration: t.duration ?? 4e3, position: t.position ?? "top-right" };
611
+ }
612
+ function ka({ children: a }) {
613
+ const [t, r] = y([]), i = Ae(/* @__PURE__ */ new Map()), l = Fe((h) => {
614
+ window.clearTimeout(i.current.get(h)), i.current.delete(h), r((p) => p.filter((u) => u.id !== h));
615
+ }, []), c = Fe((h, p) => {
616
+ const u = Date.now() + Math.random(), m = { ...Ca(p), id: u, variant: h };
617
+ r((k) => [...k.slice(-4), m]), i.current.set(u, window.setTimeout(() => l(u), m.duration));
618
+ }, [l]), o = ie(() => ({
619
+ success: (h) => c("success", h),
620
+ error: (h) => c("error", h),
621
+ warning: (h) => c("warning", h),
622
+ info: (h) => c("info", h)
623
+ }), [c]), d = t.reduce((h, p) => (h[p.position].push(p), h), { "top-right": [], "top-left": [], "bottom-right": [], "bottom-left": [] });
624
+ return /* @__PURE__ */ n(je.Provider, { value: o, children: [
625
+ a,
626
+ Object.keys(d).map((h) => d[h].length ? /* @__PURE__ */ e("div", { className: `ycc-toast-viewport ycc-toast-viewport--${h}`, children: d[h].map((p) => /* @__PURE__ */ n(
627
+ "div",
628
+ {
629
+ className: `ycc-toast ycc-toast--${p.variant}`,
630
+ onMouseEnter: () => window.clearTimeout(i.current.get(p.id)),
631
+ onMouseLeave: () => i.current.set(p.id, window.setTimeout(() => l(p.id), p.duration)),
632
+ children: [
633
+ /* @__PURE__ */ e(s, { name: p.variant === "success" ? "CheckCircle2" : p.variant === "warning" ? "AlertTriangle" : p.variant === "error" ? "XCircle" : "HelpCircle", size: 18 }),
634
+ /* @__PURE__ */ e("span", { className: "ycc-toast__message", children: p.message }),
635
+ /* @__PURE__ */ e("button", { type: "button", onClick: () => l(p.id), "aria-label": "Dismiss toast", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 16 }) })
636
+ ]
637
+ },
638
+ p.id
639
+ )) }, h) : null)
640
+ ] });
641
+ }
642
+ function wa() {
643
+ const a = _e(je);
644
+ if (!a) throw new Error("useToast must be used inside ToastProvider");
645
+ return a;
646
+ }
647
+ function qe({ open: a, onClose: t, title: r, size: i = "md", children: l, footer: c, closeOnOverlay: o = !0, closeOnEscape: d = !0 }) {
648
+ const h = Ae(null);
649
+ na(() => {
650
+ if (!a || !d) return;
651
+ const u = (m) => {
652
+ m.key === "Escape" && t();
653
+ };
654
+ return document.addEventListener("keydown", u), () => document.removeEventListener("keydown", u);
655
+ }, [d, t, a]);
656
+ function p(u) {
657
+ if (u.key !== "Tab") return;
658
+ const m = h.current?.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])');
659
+ if (!m?.length) return;
660
+ const k = m[0], M = m[m.length - 1];
661
+ u.shiftKey && document.activeElement === k ? (u.preventDefault(), M.focus()) : !u.shiftKey && document.activeElement === M && (u.preventDefault(), k.focus());
662
+ }
663
+ return a ? /* @__PURE__ */ e("div", { className: "ycc-modal-overlay", onMouseDown: () => o && t(), children: /* @__PURE__ */ n("div", { ref: h, role: "dialog", "aria-modal": "true", className: `ycc-modal ycc-modal--${i}`, onMouseDown: (u) => u.stopPropagation(), onKeyDown: p, children: [
664
+ /* @__PURE__ */ n("div", { className: "ycc-modal__header", children: [
665
+ /* @__PURE__ */ e("h2", { className: "ycc-modal__title", children: r }),
666
+ /* @__PURE__ */ e("button", { type: "button", onClick: t, "aria-label": "Close modal", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 18 }) })
667
+ ] }),
668
+ /* @__PURE__ */ e("div", { className: "ycc-modal__body", children: l }),
669
+ c ? /* @__PURE__ */ e("div", { className: "ycc-modal__footer", children: c }) : null
670
+ ] }) }) : null;
671
+ }
672
+ const Na = {
673
+ info: "HelpCircle",
674
+ success: "CheckCircle2",
675
+ warning: "AlertTriangle",
676
+ danger: "XCircle"
677
+ };
678
+ function Aa({ variant: a, title: t, message: r, onDismiss: i }) {
679
+ return /* @__PURE__ */ n("div", { className: `ycc-alert ycc-alert--${a}`, children: [
680
+ /* @__PURE__ */ e(s, { name: Na[a], size: 18, className: "ycc-alert__icon" }),
681
+ /* @__PURE__ */ n("div", { className: "ycc-alert__body", children: [
682
+ t ? /* @__PURE__ */ e("div", { className: "ycc-alert__title", children: t }) : null,
683
+ /* @__PURE__ */ e("div", { className: "ycc-alert__message", children: r })
684
+ ] }),
685
+ i ? /* @__PURE__ */ e("button", { type: "button", className: "ycc-alert__dismiss", onClick: i, "aria-label": "Dismiss alert", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 16 }) }) : null
686
+ ] });
687
+ }
688
+ function _a({ size: a = "md", color: t, label: r = "Loading" }) {
689
+ return /* @__PURE__ */ e("svg", { className: `ycc-spinner ycc-spinner--${a}`, viewBox: "0 0 24 24", fill: "none", style: { color: t }, "aria-label": r, children: /* @__PURE__ */ e("circle", { className: "ycc-spinner__circle", cx: "12", cy: "12", r: "9", strokeWidth: "3" }) });
690
+ }
691
+ function Yt({ open: a, onClose: t, position: r = "right", size: i = "md", title: l, children: c }) {
692
+ return a ? /* @__PURE__ */ n("div", { className: "ycc-drawer-overlay", children: [
693
+ /* @__PURE__ */ e("button", { type: "button", className: "ycc-drawer-backdrop", "aria-label": "Close drawer", onClick: t }),
694
+ /* @__PURE__ */ n("aside", { className: `ycc-drawer ycc-drawer--${r} ycc-drawer--${i}`, children: [
695
+ /* @__PURE__ */ n("header", { className: "ycc-drawer__header", children: [
696
+ /* @__PURE__ */ e("h2", { children: l }),
697
+ /* @__PURE__ */ e("button", { type: "button", onClick: t, "aria-label": "Close drawer", children: /* @__PURE__ */ e(s, { name: "XCircle", size: 18 }) })
698
+ ] }),
699
+ /* @__PURE__ */ e("div", { className: "ycc-drawer__body", children: c })
700
+ ] })
701
+ ] }) : null;
702
+ }
703
+ function Jt({ width: a = "100%", height: t = "var(--ycc-space-4)", radius: r = "md" }) {
704
+ return /* @__PURE__ */ e("span", { className: `ycc-skeleton ycc-skeleton--${r}`, style: { width: a, height: t } });
705
+ }
706
+ function Qt({
707
+ open: a,
708
+ onClose: t,
709
+ onConfirm: r,
710
+ title: i = "Confirm action",
711
+ message: l,
712
+ confirmLabel: c = "Confirm",
713
+ cancelLabel: o = "Cancel",
714
+ danger: d
715
+ }) {
716
+ return /* @__PURE__ */ e(
717
+ qe,
718
+ {
719
+ open: a,
720
+ onClose: t,
721
+ title: i,
722
+ size: "sm",
723
+ footer: /* @__PURE__ */ n(ce, { children: [
724
+ /* @__PURE__ */ e(N, { variant: "ghost", onClick: t, children: o }),
725
+ /* @__PURE__ */ e(N, { variant: d ? "danger" : "primary", onClick: r, children: c })
726
+ ] }),
727
+ children: /* @__PURE__ */ e("div", { className: "ycc-confirm-dialog__message", children: l })
728
+ }
729
+ );
730
+ }
731
+ const Me = Ve({
732
+ activePage: "",
733
+ setActivePage: (a) => {
734
+ },
735
+ collapsed: !1
736
+ });
737
+ function Te(...a) {
738
+ return a.filter(Boolean).join(" ");
739
+ }
740
+ function Ye({ children: a, activePage: t, onNavigate: r, collapsed: i = !1 }) {
741
+ const [l, c] = y(t ?? ""), o = ie(() => ({
742
+ activePage: t ?? l,
743
+ collapsed: i,
744
+ setActivePage: (d) => {
745
+ c(d), r?.(d);
746
+ }
747
+ }), [t, i, l, r]);
748
+ return /* @__PURE__ */ e(Me.Provider, { value: o, children: /* @__PURE__ */ e("nav", { className: Te("ycc-nav", i && "ycc-nav--collapsed"), children: a }) });
749
+ }
750
+ function X({ label: a, icon: t, defaultExpanded: r = !0, children: i }) {
751
+ const [l, c] = y(r), { collapsed: o } = _e(Me);
752
+ return /* @__PURE__ */ n("div", { className: "ycc-nav-group", children: [
753
+ /* @__PURE__ */ n("button", { type: "button", className: "ycc-nav-group__button", onClick: () => c((d) => !d), title: o ? a : void 0, children: [
754
+ t ? /* @__PURE__ */ e(s, { name: t, size: 14 }) : null,
755
+ /* @__PURE__ */ e("span", { className: "ycc-nav-group__label", children: a }),
756
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 12, className: Te("ycc-nav-group__chevron", l && "ycc-nav-group__chevron--expanded") })
757
+ ] }),
758
+ l || o ? /* @__PURE__ */ e("div", { className: "ycc-nav-group__items", children: i }) : null
759
+ ] });
760
+ }
761
+ function L({ id: a, label: t, icon: r, badge: i, href: l, onClick: c }) {
762
+ const { activePage: o, setActivePage: d, collapsed: h } = _e(Me), u = Te("ycc-nav-item", o === a && "ycc-nav-item--active"), m = /* @__PURE__ */ n(ce, { children: [
763
+ r ? /* @__PURE__ */ e(s, { name: r, size: 16 }) : null,
764
+ /* @__PURE__ */ e("span", { className: "ycc-nav-item__label", children: t }),
765
+ i !== void 0 ? /* @__PURE__ */ e("span", { className: "ycc-nav-item__badge", children: /* @__PURE__ */ e(oe, { label: String(i), variant: "info" }) }) : null
766
+ ] });
767
+ function k() {
768
+ d(a), c?.();
769
+ }
770
+ return l ? /* @__PURE__ */ e("a", { href: l, className: u, title: h ? t : void 0, onClick: k, children: m }) : /* @__PURE__ */ e("button", { type: "button", className: u, title: h ? t : void 0, onClick: k, children: m });
771
+ }
772
+ function Je({ items: a, separator: t = "/" }) {
773
+ return /* @__PURE__ */ e("nav", { className: "ycc-breadcrumb", "aria-label": "Breadcrumb", children: a.map((r, i) => {
774
+ const l = i === a.length - 1;
775
+ return /* @__PURE__ */ n("span", { className: "ycc-breadcrumb__item", children: [
776
+ i > 0 ? /* @__PURE__ */ e("span", { className: "ycc-breadcrumb__separator", children: t }) : null,
777
+ l ? /* @__PURE__ */ e("span", { className: "ycc-breadcrumb__current", children: r.label }) : r.href ? /* @__PURE__ */ e("a", { className: "ycc-breadcrumb__link", href: r.href, children: r.label }) : /* @__PURE__ */ e("button", { type: "button", className: "ycc-breadcrumb__link", onClick: r.onClick, children: r.label })
778
+ ] }, `${r.label}-${i}`);
779
+ }) });
780
+ }
781
+ function Xt({ steps: a, currentStep: t }) {
782
+ return /* @__PURE__ */ e("ol", { className: "ycc-stepper", children: a.map((r, i) => {
783
+ const l = i < t ? "complete" : i === t ? "active" : "pending";
784
+ return /* @__PURE__ */ n("li", { className: `ycc-stepper__step ycc-stepper__step--${l}`, children: [
785
+ /* @__PURE__ */ e("span", { className: "ycc-stepper__marker", children: i + 1 }),
786
+ /* @__PURE__ */ n("span", { className: "ycc-stepper__text", children: [
787
+ /* @__PURE__ */ e("strong", { children: r.label }),
788
+ r.description ? /* @__PURE__ */ e("small", { children: r.description }) : null
789
+ ] })
790
+ ] }, `${r.label}-${i}`);
791
+ }) });
792
+ }
793
+ function Zt({ tabs: a, activeTab: t, onChange: r, children: i }) {
794
+ return /* @__PURE__ */ n("div", { className: "ycc-tabs", children: [
795
+ /* @__PURE__ */ e("div", { className: "ycc-tabs__list", role: "tablist", children: a.map((l) => /* @__PURE__ */ n("button", { type: "button", role: "tab", "aria-selected": t === l.id, className: t === l.id ? "ycc-tabs__tab ycc-tabs__tab--active" : "ycc-tabs__tab", onClick: () => r(l.id), children: [
796
+ l.icon ? /* @__PURE__ */ e(s, { name: l.icon, size: 14 }) : null,
797
+ l.label
798
+ ] }, l.id)) }),
799
+ i ? /* @__PURE__ */ e("div", { className: "ycc-tabs__panel", children: i }) : null
800
+ ] });
801
+ }
802
+ function en({ items: a, trigger: t }) {
803
+ const [r, i] = y(!1);
804
+ return /* @__PURE__ */ n("span", { className: "ycc-context-menu", onContextMenu: (l) => {
805
+ l.preventDefault(), i(!0);
806
+ }, children: [
807
+ /* @__PURE__ */ e("button", { type: "button", className: "ycc-context-menu__trigger", onClick: () => i((l) => !l), "aria-expanded": r, children: t }),
808
+ r ? /* @__PURE__ */ e("span", { className: "ycc-context-menu__panel", role: "menu", children: a.map((l) => /* @__PURE__ */ n(
809
+ "button",
810
+ {
811
+ type: "button",
812
+ role: "menuitem",
813
+ disabled: l.disabled,
814
+ className: l.danger ? "ycc-context-menu__item ycc-context-menu__item--danger" : "ycc-context-menu__item",
815
+ onClick: () => {
816
+ l.disabled || (l.onClick(), i(!1));
817
+ },
818
+ children: [
819
+ l.icon ? /* @__PURE__ */ e(s, { name: l.icon, size: 14 }) : null,
820
+ l.label
821
+ ]
822
+ },
823
+ l.label
824
+ )) }) : null
825
+ ] });
826
+ }
827
+ function Sa(a, t) {
828
+ return Array.from({ length: Math.max(t - a + 1, 0) }, (r, i) => a + i);
829
+ }
830
+ function an({ page: a, totalPages: t, onChange: r, siblingCount: i = 1 }) {
831
+ const l = Math.max(1, a - i), c = Math.min(t, a + i), o = Sa(l, c);
832
+ return /* @__PURE__ */ n("nav", { className: "ycc-pagination", "aria-label": "Pagination", children: [
833
+ /* @__PURE__ */ e("button", { type: "button", disabled: a <= 1, onClick: () => r(a - 1), "aria-label": "Previous page", children: /* @__PURE__ */ e(s, { name: "ArrowLeft", size: 14 }) }),
834
+ l > 1 ? /* @__PURE__ */ e("button", { type: "button", onClick: () => r(1), children: "1" }) : null,
835
+ l > 2 ? /* @__PURE__ */ e("span", { children: "..." }) : null,
836
+ o.map((d) => /* @__PURE__ */ e("button", { type: "button", "aria-current": d === a ? "page" : void 0, className: d === a ? "ycc-pagination__page--active" : void 0, onClick: () => r(d), children: d }, d)),
837
+ c < t - 1 ? /* @__PURE__ */ e("span", { children: "..." }) : null,
838
+ c < t ? /* @__PURE__ */ e("button", { type: "button", onClick: () => r(t), children: t }) : null,
839
+ /* @__PURE__ */ e("button", { type: "button", disabled: a >= t, onClick: () => r(a + 1), "aria-label": "Next page", children: /* @__PURE__ */ e(s, { name: "ArrowRight", size: 14 }) })
840
+ ] });
841
+ }
842
+ function Ma({ collapsed: a, onToggle: t, logo: r, children: i }) {
843
+ return /* @__PURE__ */ n("aside", { className: `ycc-sidebar${a ? " ycc-sidebar--collapsed" : ""}`, children: [
844
+ /* @__PURE__ */ e("div", { className: "ycc-sidebar__logo", children: r ?? (a ? "Y" : "Your Cargo Contact") }),
845
+ /* @__PURE__ */ e("div", { className: "ycc-sidebar__body", children: i }),
846
+ t ? /* @__PURE__ */ e("button", { type: "button", className: "ycc-sidebar__toggle", onClick: t, "aria-label": "Toggle sidebar", children: /* @__PURE__ */ e(s, { name: a ? "ChevronRight" : "ArrowLeft", size: 16 }) }) : null
847
+ ] });
848
+ }
849
+ function Ta({ onMenuToggle: a, title: t, user: r, notificationCount: i, onNotificationClick: l, onLogout: c }) {
850
+ const [o, d] = y(!1);
851
+ return /* @__PURE__ */ n("header", { className: "ycc-header", children: [
852
+ /* @__PURE__ */ n("div", { className: "ycc-header__left", children: [
853
+ /* @__PURE__ */ e("button", { type: "button", className: "ycc-header__icon-button", onClick: a, "aria-label": "Toggle menu", children: /* @__PURE__ */ e(s, { name: "Menu", size: 18 }) }),
854
+ t ? /* @__PURE__ */ e("h1", { className: "ycc-header__title", children: t }) : null
855
+ ] }),
856
+ /* @__PURE__ */ e("div", { className: "ycc-header__search", children: /* @__PURE__ */ e(H, { placeholder: "Search...", leftAddon: /* @__PURE__ */ e(s, { name: "Search", size: 14 }) }) }),
857
+ /* @__PURE__ */ n("div", { className: "ycc-header__right", children: [
858
+ /* @__PURE__ */ e(ne, { size: "sm", defaultValue: "en", options: [{ value: "en", label: "EN" }, { value: "nl", label: "NL" }] }),
859
+ /* @__PURE__ */ n("button", { type: "button", className: "ycc-header__icon-button", onClick: l, "aria-label": "Notifications", children: [
860
+ /* @__PURE__ */ e(s, { name: "Bell", size: 17 }),
861
+ i ? /* @__PURE__ */ e("span", { className: "ycc-header__counter", children: /* @__PURE__ */ e(oe, { label: String(i), variant: "info" }) }) : null
862
+ ] }),
863
+ r ? /* @__PURE__ */ n("div", { className: "ycc-header__user", children: [
864
+ /* @__PURE__ */ n("button", { type: "button", className: "ycc-header__user-button", onClick: () => d((h) => !h), children: [
865
+ /* @__PURE__ */ e(le, { name: r.name, src: r.avatar }),
866
+ /* @__PURE__ */ n("span", { className: "ycc-header__user-text", children: [
867
+ /* @__PURE__ */ e("span", { className: "ycc-header__user-name", children: r.name }),
868
+ /* @__PURE__ */ e("span", { className: "ycc-header__user-role", children: r.role })
869
+ ] })
870
+ ] }),
871
+ o ? /* @__PURE__ */ e("div", { className: "ycc-header__dropdown", children: /* @__PURE__ */ e(ge, { shadow: !0, padding: "sm", children: /* @__PURE__ */ e(N, { variant: "ghost", size: "sm", leftIcon: "Power", onClick: c, children: "Logout" }) }) }) : null
872
+ ] }) : null
873
+ ] })
874
+ ] });
875
+ }
876
+ function Fa({ copyright: a = `© ${(/* @__PURE__ */ new Date()).getFullYear()} Your Cargo Contact`, links: t = [] }) {
877
+ return /* @__PURE__ */ n("footer", { className: "ycc-footer", children: [
878
+ /* @__PURE__ */ e("span", { children: a }),
879
+ /* @__PURE__ */ e("span", { className: "ycc-footer__links", children: t.map((r) => /* @__PURE__ */ e("a", { href: r.href, children: r.label }, r.href)) })
880
+ ] });
881
+ }
882
+ function Da(a, t) {
883
+ return ra(a) ? ia(a, { collapsed: t }) : a;
884
+ }
885
+ function La({
886
+ nav: a,
887
+ user: t,
888
+ notificationCount: r,
889
+ onNotificationClick: i,
890
+ onLogout: l,
891
+ children: c,
892
+ defaultCollapsed: o = !1
893
+ }) {
894
+ const [d, h] = y(o), [p, u] = y(!1), k = { "--ycc-shell-offset": d ? "calc(var(--ycc-space-8) * 2)" : "var(--ycc-sidebar-width)" }, M = () => {
895
+ if (window.matchMedia("(max-width: 640px)").matches) {
896
+ u((z) => !z);
897
+ return;
898
+ }
899
+ h((z) => !z);
900
+ };
901
+ return /* @__PURE__ */ n("div", { className: "ycc-page", style: k, children: [
902
+ /* @__PURE__ */ e("div", { className: `ycc-page__sidebar${p ? " ycc-page__sidebar--open" : ""}`, children: /* @__PURE__ */ e(Ma, { collapsed: d, onToggle: () => h((z) => !z), children: Da(a, d) }) }),
903
+ p ? /* @__PURE__ */ e("button", { type: "button", className: "ycc-page__backdrop", "aria-label": "Close menu", onClick: () => u(!1) }) : null,
904
+ /* @__PURE__ */ e(
905
+ Ta,
906
+ {
907
+ onMenuToggle: M,
908
+ user: t,
909
+ notificationCount: r,
910
+ onNotificationClick: i,
911
+ onLogout: l
912
+ }
913
+ ),
914
+ /* @__PURE__ */ n("div", { className: "ycc-page__content", children: [
915
+ /* @__PURE__ */ e("main", { className: "ycc-page__main", children: c }),
916
+ /* @__PURE__ */ e(Fa, {})
917
+ ] })
918
+ ] });
919
+ }
920
+ const za = {
921
+ sm: "var(--ycc-breakpoint-sm)",
922
+ md: "768px",
923
+ lg: "var(--ycc-breakpoint-lg)",
924
+ xl: "1280px",
925
+ full: "100%"
926
+ };
927
+ function tn({ children: a, maxWidth: t = "lg", className: r }) {
928
+ const i = {
929
+ width: "100%",
930
+ maxWidth: za[t],
931
+ margin: "0 auto"
932
+ };
933
+ return /* @__PURE__ */ e("div", { className: r ? `ycc-container ${r}` : "ycc-container", style: i, children: a });
934
+ }
935
+ const Oa = {
936
+ start: "flex-start",
937
+ center: "center",
938
+ end: "flex-end",
939
+ stretch: "stretch"
940
+ };
941
+ function $({ children: a, gap: t = 3, align: r = "stretch" }) {
942
+ const i = {
943
+ "--ycc-grid-gap": `calc(var(--ycc-space-1) * ${t})`,
944
+ alignItems: Oa[r]
945
+ };
946
+ return /* @__PURE__ */ e("div", { className: "ycc-row", style: i, children: a });
947
+ }
948
+ function nn({ children: a, span: t = 12, sm: r, lg: i }) {
949
+ return /* @__PURE__ */ e("div", { className: "ycc-col", style: {
950
+ "--ycc-col-span": t,
951
+ "--ycc-col-sm": r ?? t,
952
+ "--ycc-col-lg": i ?? r ?? t
953
+ }, children: a });
954
+ }
955
+ function rn({ title: a, subtitle: t, actions: r }) {
956
+ return /* @__PURE__ */ n("header", { className: "ycc-page-header", children: [
957
+ /* @__PURE__ */ n("div", { children: [
958
+ /* @__PURE__ */ e("h1", { children: a }),
959
+ t ? /* @__PURE__ */ e("p", { children: t }) : null
960
+ ] }),
961
+ r ? /* @__PURE__ */ e("div", { className: "ycc-page-header__actions", children: r }) : null
962
+ ] });
963
+ }
964
+ function ln({ label: a, spacing: t = "md" }) {
965
+ return a ? /* @__PURE__ */ e("div", { className: `ycc-divider ycc-divider--${t}`, children: /* @__PURE__ */ e("span", { children: a }) }) : /* @__PURE__ */ e("hr", { className: `ycc-divider ycc-divider--${t}` });
966
+ }
967
+ function cn({ children: a, cols: t = 2, gap: r = 3, className: i }) {
968
+ const l = {
969
+ "--ycc-grid-cols": t,
970
+ "--ycc-grid-gap": `calc(var(--ycc-space-1) * ${r})`
971
+ };
972
+ return /* @__PURE__ */ e("div", { className: i ? `ycc-grid ${i}` : "ycc-grid", style: l, children: a });
973
+ }
974
+ const Ba = {
975
+ start: "flex-start",
976
+ center: "center",
977
+ end: "flex-end",
978
+ stretch: "stretch"
979
+ };
980
+ function on({ children: a, gap: t = 3, align: r = "stretch", className: i }) {
981
+ const l = {
982
+ "--ycc-stack-gap": `calc(var(--ycc-space-1) * ${t})`,
983
+ alignItems: Ba[r]
984
+ };
985
+ return /* @__PURE__ */ e("div", { className: i ? `ycc-stack ${i}` : "ycc-stack", style: l, children: a });
986
+ }
987
+ function sn({ size: a = 4, axis: t = "y" }) {
988
+ const r = { "--ycc-spacer-size": `calc(var(--ycc-space-1) * ${a})` };
989
+ return /* @__PURE__ */ e("span", { "aria-hidden": "true", className: `ycc-spacer ycc-spacer--${t}`, style: r });
990
+ }
991
+ const Ra = [
992
+ { name: "Omar Siddiqui", email: "omar.siddiqui@yourcargocontact.com", status: "delivered", role: "Broker", active: !0 },
993
+ { name: "Sara Malik", email: "sara.malik@yourcargocontact.com", status: "pending", role: "Agent", active: !1 },
994
+ { name: "Hassan Qureshi", email: "hassan.qureshi@yourcargocontact.com", status: "transit", role: "Supervisor", active: !0 },
995
+ { name: "Aisha Khan", email: "aisha.khan@yourcargocontact.com", status: "cleared", role: "Analyst", active: !1 },
996
+ { name: "Bilal Farooq", email: "bilal.farooq@yourcargocontact.com", status: "held", role: "Manager", active: !0 },
997
+ { name: "Mariam Sheikh", email: "mariam.sheikh@yourcargocontact.com", status: "rejected", role: "Broker", active: !1 },
998
+ { name: "Khalid Rahman", email: "khalid.rahman@yourcargocontact.com", status: "delivered", role: "Agent", active: !0 },
999
+ { name: "Nadia Hussain", email: "nadia.hussain@yourcargocontact.com", status: "transit", role: "Supervisor", active: !1 },
1000
+ { name: "Tariq Mehmood", email: "tariq.mehmood@yourcargocontact.com", status: "cleared", role: "Analyst", active: !0 },
1001
+ { name: "Zara Ahmed", email: "zara.ahmed@yourcargocontact.com", status: "pending", role: "Manager", active: !1 }
1002
+ ], Ea = [
1003
+ {
1004
+ key: "name",
1005
+ header: "Agent",
1006
+ render: (a, t) => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1007
+ /* @__PURE__ */ e(le, { name: t.name, size: "sm" }),
1008
+ /* @__PURE__ */ e("span", { children: t.name })
1009
+ ] })
1010
+ },
1011
+ { key: "email", header: "Email" },
1012
+ {
1013
+ key: "status",
1014
+ header: "Status",
1015
+ render: (a, t) => /* @__PURE__ */ e(oe, { label: t.status, variant: t.status })
1016
+ },
1017
+ {
1018
+ key: "role",
1019
+ header: "Role",
1020
+ render: (a, t) => /* @__PURE__ */ e(Q, { label: t.role })
1021
+ },
1022
+ {
1023
+ key: "active",
1024
+ header: "Active",
1025
+ render: (a, t) => /* @__PURE__ */ e(q, { checked: t.active, onChange: () => {
1026
+ }, size: "sm" })
1027
+ },
1028
+ {
1029
+ key: "actions",
1030
+ header: "Actions",
1031
+ render: () => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1032
+ /* @__PURE__ */ e(N, { variant: "ghost", size: "sm", children: "Edit" }),
1033
+ /* @__PURE__ */ e(N, { variant: "danger", size: "sm", children: "Delete" })
1034
+ ] })
1035
+ }
1036
+ ];
1037
+ function dn() {
1038
+ return /* @__PURE__ */ n(
1039
+ La,
1040
+ {
1041
+ nav: /* @__PURE__ */ n(Ye, { activePage: "airfreight", children: [
1042
+ /* @__PURE__ */ n(X, { label: "Freight", children: [
1043
+ /* @__PURE__ */ e(L, { id: "airfreight", label: "Air Freight", icon: "Plane" }),
1044
+ /* @__PURE__ */ e(L, { id: "seafreight", label: "Sea Freight", icon: "Anchor" }),
1045
+ /* @__PURE__ */ e(L, { id: "trucking", label: "Trucking", icon: "Truck" })
1046
+ ] }),
1047
+ /* @__PURE__ */ n(X, { label: "Customs", children: [
1048
+ /* @__PURE__ */ e(L, { id: "customs", label: "Customs", icon: "FileCheck" }),
1049
+ /* @__PURE__ */ e(L, { id: "bonded", label: "Bonded", icon: "Warehouse" })
1050
+ ] }),
1051
+ /* @__PURE__ */ n(X, { label: "Admin", children: [
1052
+ /* @__PURE__ */ e(L, { id: "hr", label: "HR", icon: "Users" }),
1053
+ /* @__PURE__ */ e(L, { id: "finance", label: "Finance", icon: "DollarSign" })
1054
+ ] })
1055
+ ] }),
1056
+ user: { name: "Ahmed Al-Rashid", role: "Operations Manager" },
1057
+ notificationCount: 3,
1058
+ children: [
1059
+ /* @__PURE__ */ e(Je, { items: [{ label: "Home" }, { label: "Dashboard" }] }),
1060
+ /* @__PURE__ */ n($, { gap: 16, children: [
1061
+ /* @__PURE__ */ e(V, { title: "Total Shipments", value: "1,284", change: 8.3, icon: "Package", trend: "up" }),
1062
+ /* @__PURE__ */ e(V, { title: "Revenue", value: "$94,210", change: 12.1, icon: "DollarSign", trend: "up" }),
1063
+ /* @__PURE__ */ e(V, { title: "Active Customers", value: "342", change: -2.4, icon: "Users", trend: "down" }),
1064
+ /* @__PURE__ */ e(V, { title: "On-Time Delivery", value: "97.2%", change: 0.8, icon: "CheckCircle", trend: "up" })
1065
+ ] }),
1066
+ /* @__PURE__ */ e(
1067
+ Ke,
1068
+ {
1069
+ variant: "info",
1070
+ message: "System maintenance scheduled Sunday 02:00-04:00 UTC. All services will be temporarily unavailable.",
1071
+ onDismiss: () => {
1072
+ }
1073
+ }
1074
+ ),
1075
+ /* @__PURE__ */ e(Ue, { columns: Ea, data: Ra, searchable: !0, striped: !0, clickableRows: !0 }),
1076
+ /* @__PURE__ */ n(ge, { shadow: !0, children: [
1077
+ /* @__PURE__ */ e(Se, { title: "New Shipment", subtitle: "Fill in the details below" }),
1078
+ /* @__PURE__ */ e(fe, { label: "Reference Number", required: !0, children: /* @__PURE__ */ e(H, { placeholder: "e.g. SHP-2024-001" }) }),
1079
+ /* @__PURE__ */ e(fe, { label: "Origin Port", required: !0, children: /* @__PURE__ */ e(
1080
+ ne,
1081
+ {
1082
+ options: [
1083
+ { value: "dxb", label: "Dubai (DXB)" },
1084
+ { value: "sin", label: "Singapore (SIN)" },
1085
+ { value: "lhr", label: "London (LHR)" },
1086
+ { value: "jfk", label: "New York (JFK)" },
1087
+ { value: "lhe", label: "Lahore (LHE)" }
1088
+ ],
1089
+ placeholder: "Select origin..."
1090
+ }
1091
+ ) }),
1092
+ /* @__PURE__ */ e(fe, { label: "Shipment Notes", children: /* @__PURE__ */ e(me, { placeholder: "Any special handling instructions...", rows: 3 }) }),
1093
+ /* @__PURE__ */ n(Ge, { align: "right", children: [
1094
+ /* @__PURE__ */ e(N, { variant: "ghost", size: "md", children: "Cancel" }),
1095
+ /* @__PURE__ */ e(N, { variant: "primary", size: "md", leftIcon: "Send", children: "Submit Shipment" })
1096
+ ] })
1097
+ ] })
1098
+ ]
1099
+ }
1100
+ );
1101
+ }
1102
+ const $a = {
1103
+ minHeight: "100vh",
1104
+ background: "#FFFFFF",
1105
+ padding: 40
1106
+ }, Pa = {
1107
+ maxWidth: 1200,
1108
+ margin: "0 auto",
1109
+ display: "flex",
1110
+ flexDirection: "column",
1111
+ gap: 24
1112
+ }, Ia = {
1113
+ display: "flex",
1114
+ flexDirection: "column",
1115
+ gap: 16
1116
+ }, S = {
1117
+ fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace"
1118
+ }, xe = [
1119
+ { value: "dxb", label: "Dubai (DXB)" },
1120
+ { value: "sin", label: "Singapore (SIN)" },
1121
+ { value: "lhr", label: "London (LHR)" },
1122
+ { value: "jfk", label: "New York (JFK)" },
1123
+ { value: "lhe", label: "Lahore (LHE)" }
1124
+ ];
1125
+ function Ha() {
1126
+ return [
1127
+ { label: "Primary", swatches: Object.entries(te).map(([a, t]) => ({ name: a, value: t })) },
1128
+ { label: "Neutral", swatches: Object.entries(P).map(([a, t]) => ({ name: a, value: t })) },
1129
+ {
1130
+ label: "Status",
1131
+ swatches: Object.entries(T).flatMap(([a, t]) => [
1132
+ { name: `${a}.text`, value: t.text },
1133
+ { name: `${a}.bg`, value: t.bg }
1134
+ ])
1135
+ },
1136
+ {
1137
+ label: "Milestone",
1138
+ swatches: Object.entries(F).flatMap(([a, t]) => [
1139
+ { name: `${a}.text`, value: t.text },
1140
+ { name: `${a}.bg`, value: t.bg }
1141
+ ])
1142
+ },
1143
+ {
1144
+ label: "Clearance",
1145
+ swatches: Object.entries(D).flatMap(([a, t]) => [
1146
+ { name: `${a}.text`, value: t.text },
1147
+ { name: `${a}.bg`, value: t.bg }
1148
+ ])
1149
+ },
1150
+ {
1151
+ label: "Semantic",
1152
+ swatches: [
1153
+ ...Object.entries(_).map(([a, t]) => ({ name: a, value: t })),
1154
+ ...Object.entries(Y).flatMap(([a, t]) => [
1155
+ { name: `direction.${a}.text`, value: t.text },
1156
+ { name: `direction.${a}.bg`, value: t.bg }
1157
+ ]),
1158
+ ...Object.entries(J).flatMap(([a, t]) => [
1159
+ { name: `tStatus.${a}.text`, value: t.text },
1160
+ { name: `tStatus.${a}.bg`, value: t.bg }
1161
+ ]),
1162
+ ...Object.entries(E).flatMap(([a, t]) => [
1163
+ { name: `warehouse.${a}.text`, value: t.text },
1164
+ { name: `warehouse.${a}.bg`, value: t.bg }
1165
+ ]),
1166
+ ...Object.entries(I).map(([a, t]) => ({ name: `branch.${a}`, value: t }))
1167
+ ]
1168
+ }
1169
+ ];
1170
+ }
1171
+ function Va() {
1172
+ return [
1173
+ { label: "STATUS", values: Object.keys(T) },
1174
+ { label: "MPILL", values: Object.keys(F) },
1175
+ { label: "CL", values: Object.keys(D) },
1176
+ { label: "BRANCH MODULE", values: Object.keys(I) },
1177
+ { label: "DIRECTION", values: Object.keys(Y) },
1178
+ { label: "T STATUS", values: Object.keys(J) }
1179
+ ];
1180
+ }
1181
+ const Wa = [
1182
+ { name: "Omar Siddiqui", email: "omar.siddiqui@yourcargocontact.com", status: "delivered", role: "Broker", active: !0 },
1183
+ { name: "Sara Malik", email: "sara.malik@yourcargocontact.com", status: "pending", role: "Agent", active: !1 },
1184
+ { name: "Hassan Qureshi", email: "hassan.qureshi@yourcargocontact.com", status: "transit", role: "Supervisor", active: !0 },
1185
+ { name: "Aisha Khan", email: "aisha.khan@yourcargocontact.com", status: "cleared", role: "Analyst", active: !1 },
1186
+ { name: "Bilal Farooq", email: "bilal.farooq@yourcargocontact.com", status: "held", role: "Manager", active: !0 }
1187
+ ], Ga = [
1188
+ {
1189
+ key: "name",
1190
+ header: "Agent",
1191
+ render: (a, t) => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1192
+ /* @__PURE__ */ e(le, { name: t.name, size: "sm" }),
1193
+ /* @__PURE__ */ e("span", { children: t.name })
1194
+ ] })
1195
+ },
1196
+ { key: "email", header: "Email" },
1197
+ { key: "status", header: "Status", render: (a, t) => /* @__PURE__ */ e(oe, { label: t.status, variant: t.status }) },
1198
+ { key: "role", header: "Role", render: (a, t) => /* @__PURE__ */ e(Q, { label: t.role }) },
1199
+ { key: "active", header: "Active", render: (a, t) => /* @__PURE__ */ e(q, { checked: t.active, onChange: () => {
1200
+ }, size: "sm" }) },
1201
+ {
1202
+ key: "actions",
1203
+ header: "Actions",
1204
+ render: () => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1205
+ /* @__PURE__ */ e(N, { variant: "ghost", size: "sm", children: "Edit" }),
1206
+ /* @__PURE__ */ e(N, { variant: "danger", size: "sm", children: "Delete" })
1207
+ ] })
1208
+ }
1209
+ ];
1210
+ function C({ title: a, children: t }) {
1211
+ return /* @__PURE__ */ n(ge, { shadow: !0, children: [
1212
+ /* @__PURE__ */ e(Se, { title: a }),
1213
+ /* @__PURE__ */ e("div", { style: Ia, children: t })
1214
+ ] });
1215
+ }
1216
+ function Ka(a) {
1217
+ return {
1218
+ fontFamily: "family" in a ? a.family : void 0,
1219
+ fontSize: a.size,
1220
+ fontWeight: a.weight,
1221
+ letterSpacing: "spacing" in a ? a.spacing : void 0,
1222
+ textTransform: "transform" in a ? a.transform : void 0
1223
+ };
1224
+ }
1225
+ function Ua({ label: a, values: t }) {
1226
+ return /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [
1227
+ /* @__PURE__ */ e("div", { style: { ...S, fontSize: 10, fontWeight: 700, letterSpacing: "0.05em" }, children: a }),
1228
+ /* @__PURE__ */ e("div", { style: { display: "flex", flexWrap: "wrap", gap: 8 }, children: t.map((r) => /* @__PURE__ */ e(oe, { label: r, variant: r, size: "md" }, `${a}-${r}`)) })
1229
+ ] });
1230
+ }
1231
+ function ja() {
1232
+ const a = wa();
1233
+ return /* @__PURE__ */ n($, { gap: 4, children: [
1234
+ /* @__PURE__ */ e(N, { variant: "primary", onClick: () => a.success("Shipment saved successfully"), children: "Success Toast" }),
1235
+ /* @__PURE__ */ e(N, { variant: "danger", onClick: () => a.error("Unable to delete shipment"), children: "Error Toast" }),
1236
+ /* @__PURE__ */ e(N, { variant: "secondary", onClick: () => a.warning("Customs documents need review"), children: "Warning Toast" }),
1237
+ /* @__PURE__ */ e(N, { variant: "ghost", onClick: () => a.info("New tracking update received"), children: "Info Toast" })
1238
+ ] });
1239
+ }
1240
+ function qa() {
1241
+ const [a, t] = y(!1), r = ["primary", "secondary", "ghost", "danger", "link"], i = ["sm", "md", "lg"], l = Ha(), c = Va();
1242
+ return /* @__PURE__ */ e("div", { style: $a, children: /* @__PURE__ */ n("main", { style: Pa, children: [
1243
+ /* @__PURE__ */ e(C, { title: "COLORS", children: l.map((o) => /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
1244
+ /* @__PURE__ */ e("div", { style: { ...S, fontSize: 11, fontWeight: 700, textTransform: "uppercase" }, children: o.label }),
1245
+ /* @__PURE__ */ e("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(88px, 1fr))", gap: 12 }, children: o.swatches.map((d) => /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [
1246
+ /* @__PURE__ */ e("div", { style: { width: 48, height: 48, background: d.value, border: "1px solid #E8EAF2", borderRadius: 4 } }),
1247
+ /* @__PURE__ */ e("div", { style: { ...S, fontSize: 10, color: "#1B2440" }, children: d.value }),
1248
+ /* @__PURE__ */ e("div", { style: { ...S, fontSize: 9, color: "#8A93AD" }, children: d.name })
1249
+ ] }, `${o.label}-${d.name}`)) })
1250
+ ] }, o.label)) }),
1251
+ /* @__PURE__ */ e(C, { title: "TYPOGRAPHY", children: Object.entries(Tt).map(([o, d]) => /* @__PURE__ */ n("div", { style: { display: "grid", gridTemplateColumns: "180px 1fr", gap: 16, alignItems: "baseline" }, children: [
1252
+ /* @__PURE__ */ e("div", { style: { ...S, fontSize: 11, color: "#8A93AD" }, children: o }),
1253
+ /* @__PURE__ */ e("div", { style: Ka(d), children: "The quick brown fox jumps over the lazy dog" })
1254
+ ] }, o)) }),
1255
+ /* @__PURE__ */ e(C, { title: "ICONS", children: /* @__PURE__ */ e("div", { style: { display: "grid", gridTemplateColumns: "repeat(8, minmax(0, 1fr))", gap: 12 }, children: la.map((o) => /* @__PURE__ */ n("div", { style: { display: "flex", minWidth: 0, flexDirection: "column", alignItems: "center", gap: 6 }, children: [
1256
+ /* @__PURE__ */ e(s, { name: o, size: 20 }),
1257
+ /* @__PURE__ */ e("div", { style: { ...S, maxWidth: "100%", overflow: "hidden", textOverflow: "ellipsis", fontSize: 9 }, children: o })
1258
+ ] }, o)) }) }),
1259
+ /* @__PURE__ */ e(C, { title: "BUTTONS", children: /* @__PURE__ */ e("div", { style: { overflowX: "auto" }, children: /* @__PURE__ */ n("table", { style: { width: "100%", borderCollapse: "separate", borderSpacing: 12 }, children: [
1260
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
1261
+ /* @__PURE__ */ e("th", { style: { ...S, textAlign: "left", fontSize: 11 }, children: "variant" }),
1262
+ i.map((o) => /* @__PURE__ */ e("th", { style: { ...S, textAlign: "left", fontSize: 11 }, children: o }, o)),
1263
+ /* @__PURE__ */ e("th", { style: { ...S, textAlign: "left", fontSize: 11 }, children: "loading" }),
1264
+ /* @__PURE__ */ e("th", { style: { ...S, textAlign: "left", fontSize: 11 }, children: "leftIcon" }),
1265
+ /* @__PURE__ */ e("th", { style: { ...S, textAlign: "left", fontSize: 11 }, children: "rightIcon" })
1266
+ ] }) }),
1267
+ /* @__PURE__ */ e("tbody", { children: r.map((o) => /* @__PURE__ */ n("tr", { children: [
1268
+ /* @__PURE__ */ e("td", { style: { ...S, fontSize: 11 }, children: o }),
1269
+ i.map((d) => /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(N, { variant: o, size: d, children: d }) }, `${o}-${d}`)),
1270
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(N, { variant: o, loading: !0, children: "Loading" }) }),
1271
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(N, { variant: o, leftIcon: "Plus", children: "Create" }) }),
1272
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(N, { variant: o, rightIcon: "ArrowRight", children: "Next" }) })
1273
+ ] }, o)) })
1274
+ ] }) }) }),
1275
+ /* @__PURE__ */ e(C, { title: "BADGES", children: c.map((o) => /* @__PURE__ */ e(Ua, { label: o.label, values: o.values }, o.label)) }),
1276
+ /* @__PURE__ */ e(C, { title: "AVATAR", children: /* @__PURE__ */ n("div", { style: { display: "flex", flexWrap: "wrap", gap: 20, alignItems: "center" }, children: [
1277
+ ["sm", "md", "lg"].map((o) => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [
1278
+ /* @__PURE__ */ e(le, { name: "Ahmed Al-Rashid", size: o }),
1279
+ /* @__PURE__ */ n("span", { style: { ...S, fontSize: 11 }, children: [
1280
+ "initials ",
1281
+ o
1282
+ ] })
1283
+ ] }, o)),
1284
+ ["online", "offline", "away"].map((o) => /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [
1285
+ /* @__PURE__ */ e(le, { name: "Sara Malik", status: o }),
1286
+ /* @__PURE__ */ e("span", { style: { ...S, fontSize: 11 }, children: o })
1287
+ ] }, o))
1288
+ ] }) }),
1289
+ /* @__PURE__ */ e(C, { title: "TOGGLE", children: /* @__PURE__ */ n($, { gap: 6, children: [
1290
+ /* @__PURE__ */ e(q, { label: "Off", checked: !1, onChange: () => {
1291
+ } }),
1292
+ /* @__PURE__ */ e(q, { label: "On", checked: !0, onChange: () => {
1293
+ } }),
1294
+ /* @__PURE__ */ e(q, { label: "Disabled off", checked: !1, disabled: !0 }),
1295
+ /* @__PURE__ */ e(q, { label: "Disabled on", checked: !0, disabled: !0 })
1296
+ ] }) }),
1297
+ /* @__PURE__ */ e(C, { title: "TAGS", children: /* @__PURE__ */ n($, { gap: 4, children: [
1298
+ /* @__PURE__ */ e(Q, { label: "Broker" }),
1299
+ /* @__PURE__ */ e(Q, { label: "Removable", onRemove: () => {
1300
+ } }),
1301
+ /* @__PURE__ */ e(Q, { label: "Custom Color", color: "#4338CA" })
1302
+ ] }) }),
1303
+ /* @__PURE__ */ e(C, { title: "INPUTS", children: ["sm", "md", "lg"].map((o) => /* @__PURE__ */ n($, { gap: 4, children: [
1304
+ /* @__PURE__ */ e(H, { size: o, placeholder: `Default ${o}` }),
1305
+ /* @__PURE__ */ e(H, { size: o, placeholder: "With error", error: "Required field" }),
1306
+ /* @__PURE__ */ e(H, { size: o, placeholder: "Search", leftAddon: /* @__PURE__ */ e(s, { name: "Search", size: 14 }) }),
1307
+ /* @__PURE__ */ e(H, { size: o, placeholder: "Weight", rightAddon: "kg" }),
1308
+ /* @__PURE__ */ e(H, { size: o, placeholder: "Disabled", disabled: !0 })
1309
+ ] }, o)) }),
1310
+ /* @__PURE__ */ e(C, { title: "SELECT", children: /* @__PURE__ */ n($, { gap: 4, children: [
1311
+ /* @__PURE__ */ e(ne, { options: xe, placeholder: "Select origin..." }),
1312
+ /* @__PURE__ */ e(ne, { options: xe, placeholder: "Select origin...", error: "Origin is required" }),
1313
+ /* @__PURE__ */ e(ne, { options: xe, placeholder: "Select origin...", disabled: !0 })
1314
+ ] }) }),
1315
+ /* @__PURE__ */ e(C, { title: "CHECKBOX", children: /* @__PURE__ */ n($, { gap: 6, children: [
1316
+ /* @__PURE__ */ e(se, { label: "Unchecked" }),
1317
+ /* @__PURE__ */ e(se, { label: "Checked", checked: !0, onChange: () => {
1318
+ } }),
1319
+ /* @__PURE__ */ e(se, { label: "Indeterminate", indeterminate: !0, onChange: () => {
1320
+ } }),
1321
+ /* @__PURE__ */ e(se, { label: "Disabled", disabled: !0 })
1322
+ ] }) }),
1323
+ /* @__PURE__ */ e(C, { title: "TEXTAREA", children: /* @__PURE__ */ n($, { gap: 4, children: [
1324
+ /* @__PURE__ */ e(me, { placeholder: "Default textarea", rows: 3 }),
1325
+ /* @__PURE__ */ e(me, { placeholder: "With error", error: "Notes are too short", rows: 3 }),
1326
+ /* @__PURE__ */ e(me, { placeholder: "No resize", resize: "none", rows: 3 })
1327
+ ] }) }),
1328
+ /* @__PURE__ */ e(C, { title: "FILE UPLOAD", children: /* @__PURE__ */ e(fa, { label: "Upload shipping documents", onFilesSelected: () => {
1329
+ }, multiple: !0, accept: ".pdf,.doc,.docx,.png,.jpg" }) }),
1330
+ /* @__PURE__ */ e(C, { title: "CARDS", children: /* @__PURE__ */ n(ge, { shadow: !0, children: [
1331
+ /* @__PURE__ */ e(Se, { title: "Shipment Summary", subtitle: "Recent operational activity", actions: /* @__PURE__ */ e(N, { variant: "ghost", size: "sm", children: "Export" }) }),
1332
+ /* @__PURE__ */ e("p", { style: { margin: 0, color: "#1B2440", fontSize: 13 }, children: "Container release, customs review, and delivery notes are ready for review." }),
1333
+ /* @__PURE__ */ n(Ge, { align: "between", children: [
1334
+ /* @__PURE__ */ e("span", { style: { color: "#8A93AD", fontSize: 12 }, children: "Last updated 2 min ago" }),
1335
+ /* @__PURE__ */ e(N, { variant: "primary", children: "Save" })
1336
+ ] })
1337
+ ] }) }),
1338
+ /* @__PURE__ */ e(C, { title: "STAT CARDS", children: /* @__PURE__ */ n($, { gap: 16, children: [
1339
+ /* @__PURE__ */ e(V, { title: "Total Shipments", value: "1,284", change: 8.3, icon: "Package", trend: "up" }),
1340
+ /* @__PURE__ */ e(V, { title: "Revenue", value: "$94,210", change: 12.1, icon: "DollarSign", trend: "up" }),
1341
+ /* @__PURE__ */ e(V, { title: "Active Customers", value: "342", change: -2.4, icon: "Users", trend: "down" }),
1342
+ /* @__PURE__ */ e(V, { title: "On-Time Delivery", value: "97.2%", change: 0.8, icon: "CheckCircle", trend: "up" })
1343
+ ] }) }),
1344
+ /* @__PURE__ */ e(C, { title: "BANNER", children: ["info", "success", "warning", "danger"].map((o) => /* @__PURE__ */ e(Ke, { variant: o, message: `${o} banner message for logistics operations.`, onDismiss: () => {
1345
+ } }, o)) }),
1346
+ /* @__PURE__ */ e(C, { title: "TABLE", children: /* @__PURE__ */ e(Ue, { columns: Ga, data: Wa, loading: !1, striped: !0 }) }),
1347
+ /* @__PURE__ */ e(C, { title: "TOAST", children: /* @__PURE__ */ e(ja, {}) }),
1348
+ /* @__PURE__ */ n(C, { title: "MODAL", children: [
1349
+ /* @__PURE__ */ e(N, { variant: "primary", onClick: () => t(!0), children: "Open Modal" }),
1350
+ /* @__PURE__ */ e(
1351
+ qe,
1352
+ {
1353
+ open: a,
1354
+ onClose: () => t(!1),
1355
+ size: "md",
1356
+ title: "Confirm Action",
1357
+ footer: /* @__PURE__ */ n(ce, { children: [
1358
+ /* @__PURE__ */ e(N, { variant: "ghost", onClick: () => t(!1), children: "Cancel" }),
1359
+ /* @__PURE__ */ e(N, { variant: "primary", onClick: () => t(!1), children: "Confirm" })
1360
+ ] }),
1361
+ children: "This action will update the selected shipment record and notify the assigned operations team."
1362
+ }
1363
+ )
1364
+ ] }),
1365
+ /* @__PURE__ */ e(C, { title: "ALERT", children: ["info", "success", "warning", "danger"].map((o) => /* @__PURE__ */ e(Aa, { variant: o, title: `${o} alert`, message: `This is a ${o} alert message.` }, o)) }),
1366
+ /* @__PURE__ */ e(C, { title: "SPINNER", children: /* @__PURE__ */ e($, { gap: 8, children: ["sm", "md", "lg"].map((o) => /* @__PURE__ */ n("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: 8 }, children: [
1367
+ /* @__PURE__ */ e(_a, { size: o }),
1368
+ /* @__PURE__ */ e("span", { style: { ...S, fontSize: 11 }, children: o })
1369
+ ] }, o)) }) }),
1370
+ /* @__PURE__ */ e(C, { title: "BREADCRUMB", children: /* @__PURE__ */ e(Je, { items: [{ label: "Home" }, { label: "Freight" }, { label: "Air Freight" }, { label: "Shipment #1284" }] }) }),
1371
+ /* @__PURE__ */ e(C, { title: "NAV", children: /* @__PURE__ */ e("div", { style: { width: 224, border: "1px solid #E8EAF2", borderRadius: 8, padding: 8 }, children: /* @__PURE__ */ n(Ye, { activePage: "airfreight", collapsed: !1, children: [
1372
+ /* @__PURE__ */ n(X, { label: "Freight", children: [
1373
+ /* @__PURE__ */ e(L, { id: "airfreight", label: "Air Freight", icon: "Plane" }),
1374
+ /* @__PURE__ */ e(L, { id: "seafreight", label: "Sea Freight", icon: "Anchor" }),
1375
+ /* @__PURE__ */ e(L, { id: "trucking", label: "Trucking", icon: "Truck" })
1376
+ ] }),
1377
+ /* @__PURE__ */ n(X, { label: "Customs", children: [
1378
+ /* @__PURE__ */ e(L, { id: "customs", label: "Customs", icon: "FileCheck" }),
1379
+ /* @__PURE__ */ e(L, { id: "bonded", label: "Bonded", icon: "Warehouse" })
1380
+ ] }),
1381
+ /* @__PURE__ */ n(X, { label: "Admin", children: [
1382
+ /* @__PURE__ */ e(L, { id: "hr", label: "HR", icon: "Users" }),
1383
+ /* @__PURE__ */ e(L, { id: "finance", label: "Finance", icon: "DollarSign" })
1384
+ ] })
1385
+ ] }) }) })
1386
+ ] }) });
1387
+ }
1388
+ function hn() {
1389
+ return /* @__PURE__ */ e(ka, { children: /* @__PURE__ */ e(qa, {}) });
1390
+ }
1391
+ const be = [
1392
+ { id: "home", label: "Home", icon: "Home" },
1393
+ { id: "ceo", label: "CEO Dashboard", icon: "LayoutGrid" },
1394
+ { id: "coo", label: "COO Dashboard", icon: "Gauge", section: "Operations" },
1395
+ { id: "files", label: "All files", icon: "LayoutGrid" },
1396
+ {
1397
+ id: "air",
1398
+ label: "Air Freight",
1399
+ icon: "Plane",
1400
+ children: [
1401
+ { id: "air-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1402
+ { id: "air-quotations", label: "Quotations", icon: "FileText" },
1403
+ { id: "air-files", label: "Files", icon: "Plane" },
1404
+ { id: "air-warehouse", label: "Warehouse", icon: "Warehouse" },
1405
+ { id: "air-track-trace", label: "Track & trace", icon: "ScanSearch" },
1406
+ { id: "air-awb-stock", label: "AWB stock", icon: "Hash" },
1407
+ { id: "air-security", label: "Security (RA/KC)", icon: "ShieldCheck" }
1408
+ ]
1409
+ },
1410
+ {
1411
+ id: "customs",
1412
+ label: "Customs",
1413
+ icon: "Landmark",
1414
+ children: [
1415
+ { id: "customs-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1416
+ { id: "customs-declarations", label: "Declarations", icon: "FileCheck" },
1417
+ { id: "customs-files", label: "Files", icon: "FileText" },
1418
+ { id: "customs-clearance", label: "Clearance", icon: "ClipboardCheck" },
1419
+ { id: "customs-hs-codes", label: "HS codes", icon: "Hash" },
1420
+ { id: "customs-security", label: "Security", icon: "ShieldCheck" }
1421
+ ]
1422
+ },
1423
+ {
1424
+ id: "sea",
1425
+ label: "Sea Freight",
1426
+ icon: "Ship",
1427
+ children: [
1428
+ { id: "sea-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1429
+ { id: "sea-quotations", label: "Quotations", icon: "FileText" },
1430
+ { id: "sea-files", label: "Files", icon: "Ship" },
1431
+ { id: "sea-containers", label: "Containers", icon: "Boxes" },
1432
+ { id: "sea-track-trace", label: "Track & trace", icon: "ScanSearch" },
1433
+ { id: "sea-bl-stock", label: "B/L stock", icon: "Hash" }
1434
+ ]
1435
+ },
1436
+ {
1437
+ id: "truck",
1438
+ label: "Trucking",
1439
+ icon: "Truck",
1440
+ children: [
1441
+ { id: "truck-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1442
+ { id: "truck-quotations", label: "Quotations", icon: "FileText" },
1443
+ { id: "truck-files", label: "Files", icon: "Truck" },
1444
+ { id: "truck-dispatch", label: "Dispatch", icon: "Route" },
1445
+ { id: "truck-track-trace", label: "Track & trace", icon: "ScanSearch" },
1446
+ { id: "truck-fleet", label: "Fleet", icon: "Truck" }
1447
+ ]
1448
+ },
1449
+ {
1450
+ id: "warehouse",
1451
+ label: "Warehouse (WMS)",
1452
+ icon: "Warehouse",
1453
+ children: [
1454
+ { id: "warehouse-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1455
+ { id: "warehouse-receipts", label: "Receipts", icon: "PackageCheck" },
1456
+ { id: "warehouse-files", label: "Files", icon: "FileText" },
1457
+ { id: "warehouse-inventory", label: "Inventory", icon: "Boxes" },
1458
+ { id: "warehouse-pick-pack", label: "Pick & pack", icon: "PackageOpen" },
1459
+ { id: "warehouse-dispatch", label: "Dispatch", icon: "Truck" }
1460
+ ]
1461
+ },
1462
+ { id: "cfo", label: "CFO Dashboard", icon: "Wallet", section: "Corporate Services" },
1463
+ {
1464
+ id: "backoffice",
1465
+ label: "Backoffice",
1466
+ icon: "FileText",
1467
+ children: [
1468
+ { id: "backoffice-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1469
+ { id: "backoffice-tasks", label: "Tasks", icon: "ClipboardCheck" },
1470
+ { id: "backoffice-files", label: "Files", icon: "FileText" },
1471
+ { id: "backoffice-automations", label: "Automations", icon: "Workflow" }
1472
+ ]
1473
+ },
1474
+ {
1475
+ id: "finance",
1476
+ label: "Finance",
1477
+ icon: "Wallet",
1478
+ children: [
1479
+ { id: "finance-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1480
+ { id: "finance-invoices", label: "Invoices", icon: "Receipt" },
1481
+ { id: "finance-payments", label: "Payments", icon: "Wallet" },
1482
+ { id: "finance-reports", label: "Reports", icon: "BarChart3" }
1483
+ ]
1484
+ },
1485
+ {
1486
+ id: "ap",
1487
+ label: "AP Control Tower",
1488
+ icon: "ClipboardCheck",
1489
+ children: [
1490
+ { id: "ap-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1491
+ { id: "ap-vendor-bills", label: "Vendor bills", icon: "Receipt" },
1492
+ { id: "ap-approvals", label: "Approvals", icon: "CheckCircle2" },
1493
+ { id: "ap-exceptions", label: "Exceptions", icon: "AlertTriangle" }
1494
+ ]
1495
+ },
1496
+ {
1497
+ id: "hr",
1498
+ label: "Human Resources",
1499
+ icon: "Users",
1500
+ children: [
1501
+ { id: "hr-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1502
+ { id: "hr-employees", label: "Employees", icon: "Users" },
1503
+ { id: "hr-attendance", label: "Attendance", icon: "Clock" },
1504
+ { id: "hr-training", label: "Training", icon: "BookOpen" }
1505
+ ]
1506
+ },
1507
+ {
1508
+ id: "affairs",
1509
+ label: "Corporate Affairs",
1510
+ icon: "Landmark",
1511
+ children: [
1512
+ { id: "affairs-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1513
+ { id: "affairs-licenses", label: "Licenses", icon: "ShieldCheck" },
1514
+ { id: "affairs-policies", label: "Policies", icon: "FileText" },
1515
+ { id: "affairs-cases", label: "Cases", icon: "Briefcase" }
1516
+ ]
1517
+ },
1518
+ { id: "cco", label: "CCO Dashboard", icon: "Activity", section: "Commercial" },
1519
+ {
1520
+ id: "marketing",
1521
+ label: "Marketing",
1522
+ icon: "Globe",
1523
+ children: [
1524
+ { id: "marketing-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1525
+ { id: "marketing-campaigns", label: "Campaigns", icon: "Activity" },
1526
+ { id: "marketing-leads", label: "Leads", icon: "Users" },
1527
+ { id: "marketing-content", label: "Content", icon: "FileText" }
1528
+ ]
1529
+ },
1530
+ {
1531
+ id: "sales",
1532
+ label: "Sales",
1533
+ icon: "Briefcase",
1534
+ children: [
1535
+ { id: "sales-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1536
+ { id: "sales-opportunities", label: "Opportunities", icon: "TrendingUp" },
1537
+ { id: "sales-quotations", label: "Quotations", icon: "FileText" },
1538
+ { id: "sales-customers", label: "Customers", icon: "Users" }
1539
+ ]
1540
+ },
1541
+ {
1542
+ id: "admin",
1543
+ label: "Admin",
1544
+ icon: "Lock",
1545
+ section: "System",
1546
+ children: [
1547
+ { id: "admin-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1548
+ { id: "admin-users", label: "Users", icon: "Users" },
1549
+ { id: "admin-roles", label: "Roles", icon: "ShieldCheck" },
1550
+ { id: "admin-audit-log", label: "Audit log", icon: "FileText" }
1551
+ ]
1552
+ },
1553
+ {
1554
+ id: "general",
1555
+ label: "General (shared)",
1556
+ icon: "Settings",
1557
+ children: [
1558
+ { id: "general-dashboard", label: "Dashboard", icon: "LayoutGrid" },
1559
+ { id: "general-master-data", label: "Master data", icon: "Database" },
1560
+ { id: "general-shared-files", label: "Shared files", icon: "FileText" },
1561
+ { id: "general-settings", label: "Settings", icon: "Settings" }
1562
+ ]
1563
+ },
1564
+ { id: "public", label: "Public website", icon: "Globe", external: !0, promoted: !0 }
1565
+ ], Oe = {
1566
+ "Your Cargo Contact (HQ)": be.map((a) => a.id),
1567
+ "YCC Colchester": ["home", "ceo", "coo", "files", "air", "customs", "sea", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1568
+ "YCC Liège": ["home", "ceo", "coo", "files", "air", "truck", "warehouse", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1569
+ "Linex UK": ["home", "ceo", "coo", "files", "customs", "sea", "truck", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1570
+ CCL: ["home", "ceo", "coo", "files", "customs", "sea", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1571
+ "Linex France": ["home", "ceo", "coo", "files", "customs", "truck", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1572
+ "YCC Madrid": ["home", "ceo", "coo", "files", "air", "truck", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"],
1573
+ "YCC Barcelona": ["home", "ceo", "coo", "files", "sea", "truck", "cfo", "hr", "affairs", "cco", "marketing", "sales", "admin", "general", "public"]
1574
+ };
1575
+ function Qe(a) {
1576
+ const t = Oe[a] ?? Oe["Your Cargo Contact (HQ)"], r = a === "Your Cargo Contact (HQ)";
1577
+ return be.filter((i) => t.includes(i.id)).map((i) => r ? i : { ...i, children: void 0 });
1578
+ }
1579
+ function Ya(a) {
1580
+ return Qe(a).flatMap((t) => [t.id, ...t.children?.map((r) => r.id) ?? []]);
1581
+ }
1582
+ const Be = ["Dubai DXB", "Madrid MAD", "Singapore SIN", "London LHR", "New York JFK"], Re = [
1583
+ { name: "Mark", role: "Administrator" },
1584
+ { name: "Eva Bakker", role: "Customs" },
1585
+ { name: "Sven Mol", role: "Air Freight" },
1586
+ { name: "Ravi Nair", role: "Sea Freight" },
1587
+ { name: "Tom Visser", role: "Trucking" },
1588
+ { name: "Lina Roos", role: "Finance" },
1589
+ { name: "Nora Smit", role: "Sales" },
1590
+ { name: "Daan Bos", role: "Warehouse" },
1591
+ { name: "Iris Vos", role: "Backoffice" },
1592
+ { name: "Sara Vidal", role: "Marketing" },
1593
+ { name: "Pim de Groot", role: "Human Resources" },
1594
+ { name: "Hannah de Wit", role: "Corporate Affairs" }
1595
+ ], Ja = {
1596
+ home: {
1597
+ title: "Your Cargo Contact",
1598
+ eyebrow: "Customs · Freight · Warehousing",
1599
+ description: "Welcome, Mark. One platform for declarations, freight files, warehousing and back-office across every department.",
1600
+ icon: "Home",
1601
+ metrics: [
1602
+ { label: "Open files", value: "1,284", change: "+8.3%", tone: "blue" },
1603
+ { label: "Released today", value: "216", change: "+12", tone: "green" },
1604
+ { label: "Pending reviews", value: "38", change: "-4", tone: "amber" },
1605
+ { label: "On-time delivery", value: "97.2%", change: "+0.8%", tone: "violet" }
1606
+ ],
1607
+ work: [
1608
+ { ref: "SHP-1284", customer: "Atlas Foods", owner: "Sara Malik", status: "Released", due: "Today" },
1609
+ { ref: "SHP-1285", customer: "Nile Trading", owner: "Omar Reyes", status: "In transit", due: "Tomorrow" },
1610
+ { ref: "SHP-1286", customer: "Blue Harbor", owner: "Lea Santos", status: "Docs needed", due: "Jun 28" }
1611
+ ]
1612
+ },
1613
+ ceo: {
1614
+ title: "CEO Dashboard",
1615
+ eyebrow: "Executive overview",
1616
+ description: "Revenue, service quality, customer movement, and cross-branch operating health.",
1617
+ icon: "BarChart3",
1618
+ metrics: [
1619
+ { label: "Monthly revenue", value: "$482K", change: "+14.2%", tone: "green" },
1620
+ { label: "Gross margin", value: "32.6%", change: "+2.1%", tone: "blue" },
1621
+ { label: "Key accounts", value: "84", change: "+6", tone: "violet" },
1622
+ { label: "Escalations", value: "7", change: "-3", tone: "amber" }
1623
+ ],
1624
+ work: [
1625
+ { ref: "CEO-441", customer: "Board pack", owner: "Mark Jensen", status: "Ready", due: "Today" },
1626
+ { ref: "CEO-442", customer: "Top accounts", owner: "Lina Park", status: "Review", due: "Jun 27" },
1627
+ { ref: "CEO-443", customer: "Branch forecast", owner: "Ahmed Noor", status: "Draft", due: "Jul 01" }
1628
+ ]
1629
+ },
1630
+ coo: {
1631
+ title: "COO Dashboard",
1632
+ eyebrow: "Operations control",
1633
+ description: "Live operational throughput across air, road, warehouse, and customs desks.",
1634
+ icon: "Gauge",
1635
+ metrics: [
1636
+ { label: "Throughput", value: "748", change: "+6.8%", tone: "blue" },
1637
+ { label: "SLA met", value: "94%", change: "+1.4%", tone: "green" },
1638
+ { label: "Bottlenecks", value: "11", change: "-5", tone: "amber" },
1639
+ { label: "Capacity", value: "81%", change: "+3%", tone: "violet" }
1640
+ ],
1641
+ work: [
1642
+ { ref: "OPS-214", customer: "Night shift handover", owner: "Noor Ali", status: "Active", due: "Today" },
1643
+ { ref: "OPS-215", customer: "Warehouse dock plan", owner: "Marta Ruiz", status: "Planned", due: "Tomorrow" },
1644
+ { ref: "OPS-216", customer: "Customs queue", owner: "Chen Wei", status: "At risk", due: "Today" }
1645
+ ]
1646
+ },
1647
+ files: {
1648
+ title: "All files",
1649
+ eyebrow: "Document workspace",
1650
+ description: "A searchable working set for declarations, invoices, airway bills, and delivery notes.",
1651
+ icon: "FileText",
1652
+ metrics: [
1653
+ { label: "Total files", value: "8,410", change: "+312", tone: "blue" },
1654
+ { label: "Missing docs", value: "26", change: "-9", tone: "amber" },
1655
+ { label: "Completed", value: "1,102", change: "+91", tone: "green" },
1656
+ { label: "Archived", value: "21K", change: "+1.1K", tone: "violet" }
1657
+ ],
1658
+ work: [
1659
+ { ref: "DOC-771", customer: "Commercial invoice", owner: "Sara Malik", status: "Uploaded", due: "Today" },
1660
+ { ref: "DOC-772", customer: "AWB packet", owner: "Omar Reyes", status: "Missing stamp", due: "Today" },
1661
+ { ref: "DOC-773", customer: "Packing list", owner: "Lea Santos", status: "Verified", due: "Jun 29" }
1662
+ ]
1663
+ },
1664
+ air: {
1665
+ title: "Air Freight",
1666
+ eyebrow: "Freight operations",
1667
+ description: "Airway bill tracking, airport handoffs, customs readiness, and delivery milestones.",
1668
+ icon: "Plane",
1669
+ metrics: [
1670
+ { label: "Flights tracked", value: "142", change: "+18", tone: "blue" },
1671
+ { label: "Arrivals today", value: "37", change: "+5", tone: "green" },
1672
+ { label: "Held shipments", value: "9", change: "-2", tone: "amber" },
1673
+ { label: "Avg clearance", value: "3.2h", change: "-0.4h", tone: "violet" }
1674
+ ],
1675
+ work: [
1676
+ { ref: "AWB-889201", customer: "Falcon Pharma", owner: "Yusuf Khan", status: "Landed", due: "Today" },
1677
+ { ref: "AWB-889202", customer: "Iberia Retail", owner: "Ana Lopez", status: "Customs", due: "Today" },
1678
+ { ref: "AWB-889203", customer: "Pearl Devices", owner: "Mina Chen", status: "Departed", due: "Tomorrow" }
1679
+ ]
1680
+ },
1681
+ customs: {
1682
+ title: "Customs",
1683
+ eyebrow: "Declaration control",
1684
+ description: "Customs declarations, inspection queues, release events, and authority messages.",
1685
+ icon: "Landmark",
1686
+ metrics: [
1687
+ { label: "Declarations", value: "312", change: "+27", tone: "blue" },
1688
+ { label: "Cleared today", value: "86", change: "+14", tone: "green" },
1689
+ { label: "Held", value: "12", change: "-3", tone: "amber" },
1690
+ { label: "Avg review", value: "2.8h", change: "-0.6h", tone: "violet" }
1691
+ ],
1692
+ work: [
1693
+ { ref: "CUS-6201", customer: "Atlas Foods", owner: "Sara Malik", status: "Cleared", due: "Today" },
1694
+ { ref: "CUS-6202", customer: "Iberia Retail", owner: "Ana Lopez", status: "Inspection", due: "Today" },
1695
+ { ref: "CUS-6203", customer: "Falcon Pharma", owner: "Yusuf Khan", status: "Submitted", due: "Tomorrow" }
1696
+ ]
1697
+ },
1698
+ sea: {
1699
+ title: "Sea Freight",
1700
+ eyebrow: "Ocean operations",
1701
+ description: "Container milestones, vessel arrivals, demurrage exposure, and port handoffs.",
1702
+ icon: "Ship",
1703
+ metrics: [
1704
+ { label: "Containers", value: "428", change: "+31", tone: "blue" },
1705
+ { label: "Arrivals", value: "19", change: "+4", tone: "green" },
1706
+ { label: "Demurrage risk", value: "7", change: "-2", tone: "amber" },
1707
+ { label: "Port dwell", value: "1.9d", change: "-0.3d", tone: "violet" }
1708
+ ],
1709
+ work: [
1710
+ { ref: "SEA-7741", customer: "Blue Harbor", owner: "Lea Santos", status: "At port", due: "Today" },
1711
+ { ref: "SEA-7742", customer: "Nile Trading", owner: "Omar Reyes", status: "Sailing", due: "Jul 02" },
1712
+ { ref: "SEA-7743", customer: "Oceanic Parts", owner: "Nadia Karim", status: "Discharged", due: "Tomorrow" }
1713
+ ]
1714
+ },
1715
+ truck: {
1716
+ title: "Trucking",
1717
+ eyebrow: "Road transport",
1718
+ description: "Fleet dispatch, delivery windows, driver assignments, and cross-dock visibility.",
1719
+ icon: "Truck",
1720
+ metrics: [
1721
+ { label: "Active trucks", value: "58", change: "+7", tone: "blue" },
1722
+ { label: "On route", value: "41", change: "+3", tone: "green" },
1723
+ { label: "Delayed stops", value: "6", change: "-2", tone: "amber" },
1724
+ { label: "Utilization", value: "88%", change: "+4%", tone: "violet" }
1725
+ ],
1726
+ work: [
1727
+ { ref: "TRK-5401", customer: "Metro Foods", owner: "Hassan Raza", status: "On route", due: "14:30" },
1728
+ { ref: "TRK-5402", customer: "Delta Textiles", owner: "Victor Cruz", status: "Loading", due: "16:00" },
1729
+ { ref: "TRK-5403", customer: "Oceanic Parts", owner: "Nadia Karim", status: "Delivered", due: "Done" }
1730
+ ]
1731
+ },
1732
+ warehouse: {
1733
+ title: "Warehouse (WMS)",
1734
+ eyebrow: "Warehouse management",
1735
+ description: "Inbound receipts, put-away, inventory movements, picks, and outbound scans.",
1736
+ icon: "Warehouse",
1737
+ metrics: [
1738
+ { label: "Pallets stored", value: "3,842", change: "+112", tone: "blue" },
1739
+ { label: "Picked today", value: "694", change: "+58", tone: "green" },
1740
+ { label: "Exceptions", value: "14", change: "-6", tone: "amber" },
1741
+ { label: "Dock usage", value: "76%", change: "+5%", tone: "violet" }
1742
+ ],
1743
+ work: [
1744
+ { ref: "WMS-1801", customer: "Metro Foods", owner: "Marta Ruiz", status: "Receiving", due: "10:30" },
1745
+ { ref: "WMS-1802", customer: "Pearl Devices", owner: "Mina Chen", status: "Put-away", due: "Today" },
1746
+ { ref: "WMS-1803", customer: "Delta Textiles", owner: "Victor Cruz", status: "Outbound", due: "16:00" }
1747
+ ]
1748
+ },
1749
+ cfo: {
1750
+ title: "CFO Dashboard",
1751
+ eyebrow: "Finance control",
1752
+ description: "Receivables, payable exposure, branch profitability, and invoice approvals.",
1753
+ icon: "Wallet",
1754
+ metrics: [
1755
+ { label: "Receivables", value: "$214K", change: "-8%", tone: "green" },
1756
+ { label: "Payables", value: "$96K", change: "+3%", tone: "blue" },
1757
+ { label: "Overdue", value: "$18K", change: "-$6K", tone: "amber" },
1758
+ { label: "Profitability", value: "24%", change: "+2%", tone: "violet" }
1759
+ ],
1760
+ work: [
1761
+ { ref: "FIN-901", customer: "Invoice batch", owner: "Elena Rossi", status: "Approved", due: "Today" },
1762
+ { ref: "FIN-902", customer: "Vendor payments", owner: "Bilal Shah", status: "Queued", due: "Tomorrow" },
1763
+ { ref: "FIN-903", customer: "Margin report", owner: "Mark Jensen", status: "Review", due: "Jun 30" }
1764
+ ]
1765
+ },
1766
+ backoffice: {
1767
+ title: "Backoffice",
1768
+ eyebrow: "Administrative processing",
1769
+ description: "Internal tasks, document cleanup, branch support, and operational follow-ups.",
1770
+ icon: "FileText",
1771
+ metrics: [
1772
+ { label: "Tasks open", value: "143", change: "-18", tone: "green" },
1773
+ { label: "Documents fixed", value: "72", change: "+21", tone: "blue" },
1774
+ { label: "Waiting input", value: "16", change: "-4", tone: "amber" },
1775
+ { label: "Automation rate", value: "64%", change: "+7%", tone: "violet" }
1776
+ ],
1777
+ work: [
1778
+ { ref: "BKO-411", customer: "Invoice cleanup", owner: "Bilal Shah", status: "Active", due: "Today" },
1779
+ { ref: "BKO-412", customer: "Data validation", owner: "Priya Shah", status: "Queued", due: "Tomorrow" },
1780
+ { ref: "BKO-413", customer: "Branch support", owner: "Noor Ali", status: "Review", due: "Jun 29" }
1781
+ ]
1782
+ },
1783
+ finance: {
1784
+ title: "Finance",
1785
+ eyebrow: "Finance operations",
1786
+ description: "Invoice issuance, payment matching, customer balances, and branch settlements.",
1787
+ icon: "Wallet",
1788
+ metrics: [
1789
+ { label: "Invoices", value: "516", change: "+44", tone: "blue" },
1790
+ { label: "Collected", value: "$148K", change: "+9%", tone: "green" },
1791
+ { label: "Disputes", value: "8", change: "-2", tone: "amber" },
1792
+ { label: "Matched", value: "92%", change: "+3%", tone: "violet" }
1793
+ ],
1794
+ work: [
1795
+ { ref: "PAY-221", customer: "Atlas Foods", owner: "Elena Rossi", status: "Matched", due: "Today" },
1796
+ { ref: "PAY-222", customer: "Falcon Pharma", owner: "Bilal Shah", status: "Pending", due: "Tomorrow" },
1797
+ { ref: "PAY-223", customer: "Blue Harbor", owner: "Mark Jensen", status: "Disputed", due: "Jun 30" }
1798
+ ]
1799
+ },
1800
+ ap: {
1801
+ title: "AP Control Tower",
1802
+ eyebrow: "Accounts payable",
1803
+ description: "Vendor bills, approval routes, payment readiness, and exception management.",
1804
+ icon: "ClipboardCheck",
1805
+ metrics: [
1806
+ { label: "Vendor bills", value: "238", change: "+19", tone: "blue" },
1807
+ { label: "Approved", value: "174", change: "+26", tone: "green" },
1808
+ { label: "Exceptions", value: "13", change: "-5", tone: "amber" },
1809
+ { label: "Cycle time", value: "1.6d", change: "-0.2d", tone: "violet" }
1810
+ ],
1811
+ work: [
1812
+ { ref: "AP-701", customer: "Port handling bill", owner: "Elena Rossi", status: "Approved", due: "Today" },
1813
+ { ref: "AP-702", customer: "Carrier invoice", owner: "Bilal Shah", status: "Needs review", due: "Tomorrow" },
1814
+ { ref: "AP-703", customer: "Warehouse vendor", owner: "Priya Shah", status: "Queued", due: "Jun 29" }
1815
+ ]
1816
+ },
1817
+ hr: {
1818
+ title: "Human Resources",
1819
+ eyebrow: "People operations",
1820
+ description: "Staffing, shift coverage, compliance training, and department onboarding.",
1821
+ icon: "Users",
1822
+ metrics: [
1823
+ { label: "Employees", value: "126", change: "+4", tone: "blue" },
1824
+ { label: "Open roles", value: "9", change: "+2", tone: "violet" },
1825
+ { label: "Training due", value: "17", change: "-6", tone: "amber" },
1826
+ { label: "Coverage", value: "98%", change: "+1%", tone: "green" }
1827
+ ],
1828
+ work: [
1829
+ { ref: "HR-330", customer: "Broker onboarding", owner: "Fatima Noor", status: "In progress", due: "Jul 03" },
1830
+ { ref: "HR-331", customer: "COO shift roster", owner: "Daniel Meyer", status: "Ready", due: "Today" },
1831
+ { ref: "HR-332", customer: "Safety training", owner: "Priya Shah", status: "Pending", due: "Jun 28" }
1832
+ ]
1833
+ },
1834
+ affairs: {
1835
+ title: "Corporate Affairs",
1836
+ eyebrow: "Governance",
1837
+ description: "Licenses, compliance renewals, legal tasks, and authority correspondence.",
1838
+ icon: "Landmark",
1839
+ metrics: [
1840
+ { label: "Licenses", value: "24", change: "0", tone: "blue" },
1841
+ { label: "Renewals", value: "5", change: "-1", tone: "amber" },
1842
+ { label: "Compliant", value: "100%", change: "OK", tone: "green" },
1843
+ { label: "Cases", value: "3", change: "-2", tone: "violet" }
1844
+ ],
1845
+ work: [
1846
+ { ref: "CA-711", customer: "Free zone renewal", owner: "Maya Hall", status: "Submitted", due: "Jul 05" },
1847
+ { ref: "CA-712", customer: "Authority letter", owner: "Omar Reyes", status: "Draft", due: "Today" },
1848
+ { ref: "CA-713", customer: "Policy review", owner: "Ana Lopez", status: "Approved", due: "Done" }
1849
+ ]
1850
+ },
1851
+ cco: {
1852
+ title: "CCO Dashboard",
1853
+ eyebrow: "Commercial growth",
1854
+ description: "Pipeline, conversion, account expansion, and commercial team performance.",
1855
+ icon: "TrendingUp",
1856
+ metrics: [
1857
+ { label: "Pipeline", value: "$1.8M", change: "+11%", tone: "green" },
1858
+ { label: "New leads", value: "64", change: "+14", tone: "blue" },
1859
+ { label: "Conversion", value: "28%", change: "+3%", tone: "violet" },
1860
+ { label: "At risk", value: "4", change: "-1", tone: "amber" }
1861
+ ],
1862
+ work: [
1863
+ { ref: "COM-490", customer: "Global Foods RFP", owner: "Lina Park", status: "Proposal", due: "Jun 29" },
1864
+ { ref: "COM-491", customer: "Retail expansion", owner: "Ahmed Noor", status: "Negotiation", due: "Jul 02" },
1865
+ { ref: "COM-492", customer: "Renewal pack", owner: "Mark Jensen", status: "Ready", due: "Today" }
1866
+ ]
1867
+ },
1868
+ marketing: {
1869
+ title: "Marketing",
1870
+ eyebrow: "Campaign workspace",
1871
+ description: "Campaign planning, website requests, lead sources, and content approvals.",
1872
+ icon: "Globe",
1873
+ metrics: [
1874
+ { label: "Campaigns", value: "12", change: "+2", tone: "blue" },
1875
+ { label: "Inbound leads", value: "138", change: "+24", tone: "green" },
1876
+ { label: "Approvals", value: "6", change: "-3", tone: "amber" },
1877
+ { label: "Traffic", value: "42K", change: "+18%", tone: "violet" }
1878
+ ],
1879
+ work: [
1880
+ { ref: "MKT-221", customer: "Air freight landing page", owner: "Sofia Lane", status: "Review", due: "Today" },
1881
+ { ref: "MKT-222", customer: "LinkedIn campaign", owner: "Bilal Shah", status: "Live", due: "Active" },
1882
+ { ref: "MKT-223", customer: "Case study", owner: "Mina Chen", status: "Draft", due: "Jul 04" }
1883
+ ]
1884
+ },
1885
+ sales: {
1886
+ title: "Sales",
1887
+ eyebrow: "Sales workspace",
1888
+ description: "Opportunities, quotes, account activities, and follow-up actions for commercial teams.",
1889
+ icon: "Briefcase",
1890
+ metrics: [
1891
+ { label: "Quotes sent", value: "78", change: "+17", tone: "blue" },
1892
+ { label: "Won deals", value: "21", change: "+6", tone: "green" },
1893
+ { label: "Follow-ups", value: "34", change: "-8", tone: "amber" },
1894
+ { label: "Win rate", value: "31%", change: "+4%", tone: "violet" }
1895
+ ],
1896
+ work: [
1897
+ { ref: "SAL-310", customer: "Metro Foods", owner: "Lina Park", status: "Quoted", due: "Today" },
1898
+ { ref: "SAL-311", customer: "Global Foods RFP", owner: "Ahmed Noor", status: "Negotiation", due: "Jul 02" },
1899
+ { ref: "SAL-312", customer: "Pearl Devices", owner: "Sofia Lane", status: "Follow-up", due: "Tomorrow" }
1900
+ ]
1901
+ },
1902
+ admin: {
1903
+ title: "Admin",
1904
+ eyebrow: "System administration",
1905
+ description: "Roles, permissions, workspace controls, audit activity, and access governance.",
1906
+ icon: "Lock",
1907
+ metrics: [
1908
+ { label: "Active users", value: "126", change: "+4", tone: "blue" },
1909
+ { label: "Roles", value: "18", change: "+1", tone: "violet" },
1910
+ { label: "Access alerts", value: "3", change: "-2", tone: "amber" },
1911
+ { label: "Healthy checks", value: "99%", change: "OK", tone: "green" }
1912
+ ],
1913
+ work: [
1914
+ { ref: "ADM-101", customer: "Role update", owner: "Mark Jensen", status: "Applied", due: "Today" },
1915
+ { ref: "ADM-102", customer: "New branch user", owner: "Fatima Noor", status: "Pending", due: "Tomorrow" },
1916
+ { ref: "ADM-103", customer: "Audit review", owner: "Daniel Meyer", status: "Scheduled", due: "Jul 01" }
1917
+ ]
1918
+ },
1919
+ general: {
1920
+ title: "General (shared)",
1921
+ eyebrow: "Shared settings",
1922
+ description: "Shared references, workspace defaults, master data, and team-level configuration.",
1923
+ icon: "Settings",
1924
+ metrics: [
1925
+ { label: "Shared lists", value: "42", change: "+3", tone: "blue" },
1926
+ { label: "Automations", value: "16", change: "+2", tone: "green" },
1927
+ { label: "Draft changes", value: "5", change: "-1", tone: "amber" },
1928
+ { label: "Sync status", value: "Live", change: "OK", tone: "violet" }
1929
+ ],
1930
+ work: [
1931
+ { ref: "GEN-501", customer: "Port master data", owner: "Marta Ruiz", status: "Updated", due: "Today" },
1932
+ { ref: "GEN-502", customer: "Team defaults", owner: "Noor Ali", status: "Draft", due: "Tomorrow" },
1933
+ { ref: "GEN-503", customer: "Notification rules", owner: "Priya Shah", status: "Active", due: "Done" }
1934
+ ]
1935
+ },
1936
+ public: {
1937
+ title: "Public website",
1938
+ eyebrow: "Customer portal",
1939
+ description: "Public-facing service pages, contact forms, quote requests, and live tracking entry points.",
1940
+ icon: "Globe",
1941
+ metrics: [
1942
+ { label: "Visitors", value: "18.4K", change: "+22%", tone: "green" },
1943
+ { label: "Quote requests", value: "94", change: "+16", tone: "blue" },
1944
+ { label: "Open forms", value: "11", change: "-5", tone: "amber" },
1945
+ { label: "Uptime", value: "99.9%", change: "OK", tone: "violet" }
1946
+ ],
1947
+ work: [
1948
+ { ref: "WEB-801", customer: "Quote form", owner: "Sofia Lane", status: "Live", due: "Active" },
1949
+ { ref: "WEB-802", customer: "Tracking page", owner: "Marta Ruiz", status: "Updated", due: "Today" },
1950
+ { ref: "WEB-803", customer: "Service content", owner: "Lina Park", status: "Draft", due: "Jul 01" }
1951
+ ]
1952
+ }
1953
+ }, Qa = be.flatMap((a) => a.children?.map((t) => ({ ...t, parentId: a.id, parentLabel: a.label, parentIcon: a.icon })) ?? []);
1954
+ function Xa(a) {
1955
+ const t = Qa.find((d) => d.id === a), r = be.find((d) => d.id === a), i = t?.label ?? r?.label ?? "Workspace", l = t?.parentLabel ?? r?.section ?? "Workspace", c = t?.icon ?? r?.icon ?? "LayoutGrid", o = a.toUpperCase().replace(/[^A-Z0-9]+/g, "-").slice(0, 10);
1956
+ return {
1957
+ title: i,
1958
+ eyebrow: t ? `${l} module` : "Workspace module",
1959
+ description: `${i} workspace for ${l.toLowerCase()} records, operational tracking, approvals, and team follow-up.`,
1960
+ icon: c,
1961
+ metrics: [
1962
+ { label: "Open records", value: String(42 + a.length * 3), change: "+8", tone: "blue" },
1963
+ { label: "Completed", value: String(18 + a.length * 2), change: "+5", tone: "green" },
1964
+ { label: "Needs review", value: String(3 + a.length % 7), change: "-2", tone: "amber" },
1965
+ { label: "SLA health", value: `${90 + a.length % 8}%`, change: "+1.2%", tone: "violet" }
1966
+ ],
1967
+ work: [
1968
+ { ref: `${o}-101`, customer: `${i} queue`, owner: "Sara Malik", status: "Active", due: "Today" },
1969
+ { ref: `${o}-102`, customer: `${l} follow-up`, owner: "Omar Reyes", status: "Review", due: "Tomorrow" },
1970
+ { ref: `${o}-103`, customer: `${i} report`, owner: "Lea Santos", status: "Ready", due: "Jun 30" }
1971
+ ]
1972
+ };
1973
+ }
1974
+ function Za(a) {
1975
+ return Ja[a] ?? Xa(a);
1976
+ }
1977
+ function et(a, t) {
1978
+ return a.id === t || !!a.children?.some((r) => r.id === t);
1979
+ }
1980
+ function Xe({ compact: a = !1 }) {
1981
+ return /* @__PURE__ */ n(
1982
+ "svg",
1983
+ {
1984
+ className: a ? "ycc-prototype-logo ycc-prototype-logo--compact" : "ycc-prototype-logo",
1985
+ viewBox: "0 0 300 110",
1986
+ "aria-label": "YCC logo",
1987
+ role: "img",
1988
+ children: [
1989
+ /* @__PURE__ */ e("path", { className: "ycc-prototype-logo__shape", d: "M17 55C34 24 83 9 161 6C100 14 57 29 38 55C57 81 100 96 161 104C83 101 34 86 17 55Z" }),
1990
+ /* @__PURE__ */ e("text", { className: "ycc-prototype-logo__letters", x: "56", y: "79", children: "YCC" })
1991
+ ]
1992
+ }
1993
+ );
1994
+ }
1995
+ function at({
1996
+ item: a,
1997
+ activePage: t,
1998
+ open: r,
1999
+ onSelect: i,
2000
+ onToggle: l
2001
+ }) {
2002
+ const c = a.id === t, o = et(a, t), d = !!a.children?.length;
2003
+ return /* @__PURE__ */ n(ce, { children: [
2004
+ a.section ? /* @__PURE__ */ e("div", { className: "prototype-sidebar__section", children: a.section }) : null,
2005
+ /* @__PURE__ */ n(
2006
+ "button",
2007
+ {
2008
+ type: "button",
2009
+ className: `prototype-sidebar__item${c ? " prototype-sidebar__item--active" : ""}${o && !c ? " prototype-sidebar__item--expanded" : ""}${a.promoted ? " prototype-sidebar__item--promoted" : ""}`,
2010
+ onClick: () => {
2011
+ i(a.id), d && l(a.id);
2012
+ },
2013
+ "aria-current": a.id === t ? "page" : void 0,
2014
+ "aria-expanded": d ? r : void 0,
2015
+ children: [
2016
+ /* @__PURE__ */ e(s, { name: a.icon, size: 18 }),
2017
+ /* @__PURE__ */ e("span", { children: a.label }),
2018
+ d ? /* @__PURE__ */ e(s, { name: r ? "ChevronDown" : "ChevronRight", size: 16, className: "prototype-sidebar__item-chevron" }) : null,
2019
+ a.external ? /* @__PURE__ */ e(s, { name: "ArrowRight", size: 16, className: "prototype-sidebar__item-chevron" }) : null
2020
+ ]
2021
+ }
2022
+ ),
2023
+ d && r ? /* @__PURE__ */ e("div", { className: "prototype-sidebar__submenu", role: "group", "aria-label": `${a.label} pages`, children: a.children?.map((h) => /* @__PURE__ */ n(
2024
+ "button",
2025
+ {
2026
+ type: "button",
2027
+ className: `prototype-sidebar__subitem${t === h.id ? " prototype-sidebar__subitem--active" : ""}`,
2028
+ onClick: () => i(h.id),
2029
+ "aria-current": t === h.id ? "page" : void 0,
2030
+ children: [
2031
+ /* @__PURE__ */ e(s, { name: h.icon, size: 18 }),
2032
+ /* @__PURE__ */ e("span", { children: h.label })
2033
+ ]
2034
+ },
2035
+ h.id
2036
+ )) }) : null
2037
+ ] });
2038
+ }
2039
+ function tt({
2040
+ activePage: a,
2041
+ branch: t,
2042
+ branches: r,
2043
+ items: i,
2044
+ branchOpen: l,
2045
+ openMenus: c,
2046
+ onSelectPage: o,
2047
+ onToggleBranchMenu: d,
2048
+ onSelectBranch: h,
2049
+ onToggleMenu: p
2050
+ }) {
2051
+ return /* @__PURE__ */ n("aside", { className: "prototype-sidebar", children: [
2052
+ /* @__PURE__ */ e("button", { type: "button", className: "prototype-sidebar__logo", onClick: () => o("home"), "aria-label": "Go to Home", children: /* @__PURE__ */ e(Xe, {}) }),
2053
+ /* @__PURE__ */ n("div", { className: "prototype-sidebar__workspace", children: [
2054
+ /* @__PURE__ */ n("div", { className: "prototype-sidebar__workspace-pill", children: [
2055
+ /* @__PURE__ */ e(s, { name: "Lock", size: 15 }),
2056
+ /* @__PURE__ */ e("span", { children: "Administrator workspace" })
2057
+ ] }),
2058
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-sidebar__branch", onClick: d, "aria-expanded": l, "aria-haspopup": "listbox", children: [
2059
+ /* @__PURE__ */ e(s, { name: "Globe", size: 15 }),
2060
+ /* @__PURE__ */ e("span", { children: t }),
2061
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 16 })
2062
+ ] }),
2063
+ l ? /* @__PURE__ */ e("div", { className: "prototype-sidebar__branch-menu", role: "listbox", "aria-label": "Select workspace", children: r.map((u) => /* @__PURE__ */ n(
2064
+ "button",
2065
+ {
2066
+ type: "button",
2067
+ role: "option",
2068
+ "aria-selected": u === t,
2069
+ className: "prototype-sidebar__branch-option",
2070
+ onClick: () => h(u),
2071
+ children: [
2072
+ /* @__PURE__ */ e("span", { className: "prototype-sidebar__branch-check", children: u === t ? "✓" : "" }),
2073
+ /* @__PURE__ */ e("span", { children: u })
2074
+ ]
2075
+ },
2076
+ u
2077
+ )) }) : null
2078
+ ] }),
2079
+ /* @__PURE__ */ e("nav", { className: "prototype-sidebar__nav", "aria-label": "Workspace navigation", children: i.map((u) => /* @__PURE__ */ e(
2080
+ at,
2081
+ {
2082
+ item: u,
2083
+ activePage: a,
2084
+ open: c.includes(u.id),
2085
+ onSelect: o,
2086
+ onToggle: p
2087
+ },
2088
+ u.id
2089
+ )) }),
2090
+ /* @__PURE__ */ n("div", { className: "prototype-sidebar__footer", children: [
2091
+ "© Customs Gateways LLC-FZ",
2092
+ /* @__PURE__ */ e("br", {}),
2093
+ "White-label platform"
2094
+ ] })
2095
+ ] });
2096
+ }
2097
+ function nt({
2098
+ query: a,
2099
+ language: t,
2100
+ notifications: r,
2101
+ userMenuOpen: i,
2102
+ users: l,
2103
+ activeUser: c,
2104
+ onQueryChange: o,
2105
+ onToggleLanguage: d,
2106
+ onToggleNotifications: h,
2107
+ onToggleUserMenu: p,
2108
+ onSelectUser: u
2109
+ }) {
2110
+ return /* @__PURE__ */ n("header", { className: "prototype-topbar", children: [
2111
+ /* @__PURE__ */ n("label", { className: "prototype-topbar__search", children: [
2112
+ /* @__PURE__ */ e(s, { name: "Search", size: 20 }),
2113
+ /* @__PURE__ */ e("input", { value: a, onChange: (m) => o(m.target.value), placeholder: "Search here...", "aria-label": "Search" })
2114
+ ] }),
2115
+ /* @__PURE__ */ n("div", { className: "prototype-topbar__actions", children: [
2116
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-topbar__language", onClick: d, children: [
2117
+ /* @__PURE__ */ e(s, { name: "Globe", size: 18 }),
2118
+ /* @__PURE__ */ e("span", { children: t }),
2119
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 16 })
2120
+ ] }),
2121
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-topbar__bell", "aria-label": "Notifications", onClick: h, children: [
2122
+ /* @__PURE__ */ e(s, { name: "Bell", size: 20 }),
2123
+ /* @__PURE__ */ e("span", {})
2124
+ ] }),
2125
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-topbar__user", onClick: p, children: [
2126
+ /* @__PURE__ */ e("div", { className: "prototype-topbar__avatar", children: c.name.charAt(0) }),
2127
+ /* @__PURE__ */ n("div", { children: [
2128
+ /* @__PURE__ */ e("strong", { children: c.name }),
2129
+ /* @__PURE__ */ e("span", { children: c.role })
2130
+ ] }),
2131
+ /* @__PURE__ */ e(s, { name: "ChevronDown", size: 16 })
2132
+ ] })
2133
+ ] }),
2134
+ r ? /* @__PURE__ */ n("div", { className: "prototype-popover prototype-popover--notifications", children: [
2135
+ /* @__PURE__ */ e("strong", { children: "Notifications" }),
2136
+ /* @__PURE__ */ e("p", { children: "3 shipment alerts need review." }),
2137
+ /* @__PURE__ */ e("p", { children: "AWB-889202 moved to customs." }),
2138
+ /* @__PURE__ */ e("p", { children: "TRK-5401 is 12 minutes ahead of schedule." })
2139
+ ] }) : null,
2140
+ i ? /* @__PURE__ */ n("div", { className: "prototype-popover prototype-popover--user", children: [
2141
+ /* @__PURE__ */ e("div", { className: "prototype-login-switcher__title", children: "Switch login (demo)" }),
2142
+ /* @__PURE__ */ e("div", { className: "prototype-login-switcher__list", children: l.map((m) => {
2143
+ const k = m.name === c.name;
2144
+ return /* @__PURE__ */ n(
2145
+ "button",
2146
+ {
2147
+ type: "button",
2148
+ className: `prototype-login-switcher__person${k ? " prototype-login-switcher__person--selected" : ""}`,
2149
+ onClick: () => u(m),
2150
+ children: [
2151
+ /* @__PURE__ */ e("span", { className: "prototype-login-switcher__avatar", children: m.name.charAt(0) }),
2152
+ /* @__PURE__ */ n("span", { className: "prototype-login-switcher__identity", children: [
2153
+ /* @__PURE__ */ e("strong", { children: m.name }),
2154
+ /* @__PURE__ */ e("span", { children: m.role })
2155
+ ] }),
2156
+ k ? /* @__PURE__ */ e(s, { name: "Check", size: 18, className: "prototype-login-switcher__check" }) : null
2157
+ ]
2158
+ },
2159
+ m.name
2160
+ );
2161
+ }) })
2162
+ ] }) : null
2163
+ ] });
2164
+ }
2165
+ function rt({ onOpenAir: a, onOpenFiles: t }) {
2166
+ return /* @__PURE__ */ n("section", { className: "prototype-welcome", "aria-labelledby": "prototype-title", children: [
2167
+ /* @__PURE__ */ e("div", { className: "prototype-welcome__mark", children: /* @__PURE__ */ e(Xe, { compact: !0 }) }),
2168
+ /* @__PURE__ */ e("h1", { id: "prototype-title", children: "Your Cargo Contact" }),
2169
+ /* @__PURE__ */ e("p", { className: "prototype-welcome__kicker", children: "Customs · Freight · Warehousing" }),
2170
+ /* @__PURE__ */ e("p", { className: "prototype-welcome__copy", children: "Welcome, Mark. One platform for declarations, freight files, warehousing and back-office across every department." }),
2171
+ /* @__PURE__ */ n("div", { className: "prototype-welcome__actions", children: [
2172
+ /* @__PURE__ */ e("button", { type: "button", className: "prototype-action prototype-action--primary", onClick: a, children: "Open Air Freight" }),
2173
+ /* @__PURE__ */ e("button", { type: "button", className: "prototype-action", onClick: t, children: "Review Files" })
2174
+ ] }),
2175
+ /* @__PURE__ */ e("p", { className: "prototype-welcome__copyright", children: "© Customs Gateways LLC-FZ · White-label platform" })
2176
+ ] });
2177
+ }
2178
+ function it({ metric: a }) {
2179
+ return /* @__PURE__ */ n("article", { className: `prototype-metric prototype-metric--${a.tone}`, children: [
2180
+ /* @__PURE__ */ e("span", { children: a.label }),
2181
+ /* @__PURE__ */ e("strong", { children: a.value }),
2182
+ /* @__PURE__ */ e("em", { children: a.change })
2183
+ ] });
2184
+ }
2185
+ function lt({
2186
+ rows: a,
2187
+ onRowAction: t
2188
+ }) {
2189
+ return /* @__PURE__ */ e("div", { className: "prototype-table-wrap", children: /* @__PURE__ */ n("table", { className: "prototype-table", children: [
2190
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
2191
+ /* @__PURE__ */ e("th", { children: "Reference" }),
2192
+ /* @__PURE__ */ e("th", { children: "Customer" }),
2193
+ /* @__PURE__ */ e("th", { children: "Owner" }),
2194
+ /* @__PURE__ */ e("th", { children: "Status" }),
2195
+ /* @__PURE__ */ e("th", { children: "Due" }),
2196
+ /* @__PURE__ */ e("th", { children: "Action" })
2197
+ ] }) }),
2198
+ /* @__PURE__ */ e("tbody", { children: a.map((r) => /* @__PURE__ */ n("tr", { children: [
2199
+ /* @__PURE__ */ e("td", { children: r.ref }),
2200
+ /* @__PURE__ */ e("td", { children: r.customer }),
2201
+ /* @__PURE__ */ e("td", { children: r.owner }),
2202
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: "prototype-status", children: r.status }) }),
2203
+ /* @__PURE__ */ e("td", { children: r.due }),
2204
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("button", { type: "button", className: "prototype-mini-button", onClick: () => t(r), children: "Open" }) })
2205
+ ] }, r.ref)) })
2206
+ ] }) });
2207
+ }
2208
+ function ct({
2209
+ data: a,
2210
+ activePage: t,
2211
+ filteredWork: r,
2212
+ message: i,
2213
+ onRowAction: l,
2214
+ onCreateShipment: c,
2215
+ onRefresh: o
2216
+ }) {
2217
+ return /* @__PURE__ */ n("section", { className: "prototype-dashboard", "aria-labelledby": "prototype-page-title", children: [
2218
+ /* @__PURE__ */ n("div", { className: "prototype-dashboard__head", children: [
2219
+ /* @__PURE__ */ n("div", { children: [
2220
+ /* @__PURE__ */ e("p", { children: a.eyebrow }),
2221
+ /* @__PURE__ */ e("h1", { id: "prototype-page-title", children: a.title }),
2222
+ /* @__PURE__ */ e("span", { children: a.description })
2223
+ ] }),
2224
+ /* @__PURE__ */ e("div", { className: "prototype-dashboard__icon", children: /* @__PURE__ */ e(s, { name: a.icon, size: 30 }) })
2225
+ ] }),
2226
+ i ? /* @__PURE__ */ e("div", { className: "prototype-feedback", children: i }) : null,
2227
+ /* @__PURE__ */ e("div", { className: "prototype-metrics", children: a.metrics.map((d) => /* @__PURE__ */ e(it, { metric: d }, d.label)) }),
2228
+ /* @__PURE__ */ n("div", { className: "prototype-panel", children: [
2229
+ /* @__PURE__ */ n("div", { className: "prototype-panel__head", children: [
2230
+ /* @__PURE__ */ n("div", { children: [
2231
+ /* @__PURE__ */ e("strong", { children: t === "files" ? "Document queue" : "Active work" }),
2232
+ /* @__PURE__ */ n("span", { children: [
2233
+ r.length,
2234
+ " records shown"
2235
+ ] })
2236
+ ] }),
2237
+ /* @__PURE__ */ n("div", { className: "prototype-panel__actions", children: [
2238
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-action", onClick: o, children: [
2239
+ /* @__PURE__ */ e(s, { name: "RefreshCw", size: 15 }),
2240
+ "Refresh"
2241
+ ] }),
2242
+ /* @__PURE__ */ n("button", { type: "button", className: "prototype-action prototype-action--primary", onClick: c, children: [
2243
+ /* @__PURE__ */ e(s, { name: "Plus", size: 15 }),
2244
+ "New file"
2245
+ ] })
2246
+ ] })
2247
+ ] }),
2248
+ /* @__PURE__ */ e(lt, { rows: r, onRowAction: l })
2249
+ ] })
2250
+ ] });
2251
+ }
2252
+ function Ze({ kind: a }) {
2253
+ const t = a === "ceo";
2254
+ return /* @__PURE__ */ n("div", { className: "executive-banner", children: [
2255
+ /* @__PURE__ */ n("div", { className: "executive-banner__title", children: [
2256
+ /* @__PURE__ */ e(s, { name: t ? "TrendingUp" : "Gauge", size: 15 }),
2257
+ /* @__PURE__ */ e("strong", { children: t ? "Outcomes, not tasks" : "Operations overview" }),
2258
+ t ? null : /* @__PURE__ */ e("span", { children: "COO-DASHBOARD" })
2259
+ ] }),
2260
+ /* @__PURE__ */ e("p", { children: t ? "Volumes and margin per mode, what we move and who drives the margin - plus only the COO/CFO/CCO items that have been outstanding too long. Figures are illustrative in this prototype." : "Live parameters and to-do items across Air Freight, Customs, Sea Freight, Trucking and Warehouse (WMS)." })
2261
+ ] });
2262
+ }
2263
+ function W({ title: a, section: t }) {
2264
+ return /* @__PURE__ */ n("div", { className: "executive-heading", children: [
2265
+ /* @__PURE__ */ n("div", { className: "executive-breadcrumb", children: [
2266
+ /* @__PURE__ */ e("span", { children: "Home" }),
2267
+ t ? /* @__PURE__ */ n(ce, { children: [
2268
+ /* @__PURE__ */ e(s, { name: "ChevronRight", size: 12 }),
2269
+ /* @__PURE__ */ e("span", { children: t })
2270
+ ] }) : null,
2271
+ /* @__PURE__ */ e(s, { name: "ChevronRight", size: 12 }),
2272
+ /* @__PURE__ */ e("span", { children: a })
2273
+ ] }),
2274
+ /* @__PURE__ */ e("h1", { children: a })
2275
+ ] });
2276
+ }
2277
+ const ot = [
2278
+ ["Freight files", "6", "dark"],
2279
+ ["Manifests in progress", "6", "blue"],
2280
+ ["Inspections open", "3", "orange"],
2281
+ ["Declarations rejected", "3", "red"],
2282
+ ["WMS on hold", "3", "red"],
2283
+ ["Outbound open", "4", "violet"]
2284
+ ], st = [
2285
+ { title: "Air Freight", page: "air", stats: [["Files", "2", "dark"], ["In progress", "1", "blue"], ["Cleared", "0", "green"]] },
2286
+ { title: "Customs", page: "customs", stats: [["Manifests", "6", "dark"], ["Inspections", "3", "orange"], ["Rejected", "3", "red"]] },
2287
+ { title: "Sea Freight", page: "sea", stats: [["Files", "2", "dark"], ["In progress", "1", "blue"], ["Cleared", "0", "green"]] },
2288
+ { title: "Trucking", page: "truck", stats: [["Files", "2", "dark"], ["In progress", "0", "blue"], ["Cleared", "1", "green"]] },
2289
+ { title: "Warehouse (WMS)", page: "warehouse", stats: [["SKUs", "8", "dark"], ["On hold", "3", "red"], ["Outbound", "4", "violet"]] }
2290
+ ], dt = [
2291
+ ["1", "Sea Freight: file(s) in draft to complete", "sea"],
2292
+ ["1", "Trucking: file(s) in draft to complete", "truck"],
2293
+ ["2", "Customs: new manifest(s) awaiting audit / compliance", "customs"],
2294
+ ["3", "Customs: inspection(s) awaiting value declaration", "customs"]
2295
+ ];
2296
+ function ht({ onOpen: a }) {
2297
+ return /* @__PURE__ */ n("section", { className: "executive-page", children: [
2298
+ /* @__PURE__ */ e(W, { title: "COO Dashboard", section: "Operations" }),
2299
+ /* @__PURE__ */ e(Ze, { kind: "coo" }),
2300
+ /* @__PURE__ */ e("div", { className: "coo-kpi-grid", children: ot.map(([t, r, i]) => /* @__PURE__ */ n("article", { className: "coo-kpi", children: [
2301
+ /* @__PURE__ */ e("span", { children: t }),
2302
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${i}`, children: r })
2303
+ ] }, t)) }),
2304
+ /* @__PURE__ */ e("div", { className: "coo-module-grid", children: st.map((t) => /* @__PURE__ */ n("article", { className: "coo-module-card", children: [
2305
+ /* @__PURE__ */ n("div", { className: "coo-module-card__head", children: [
2306
+ /* @__PURE__ */ e("h2", { children: t.title }),
2307
+ /* @__PURE__ */ n("button", { type: "button", onClick: () => a(t.page), children: [
2308
+ "Open ",
2309
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 })
2310
+ ] })
2311
+ ] }),
2312
+ /* @__PURE__ */ e("div", { className: "coo-module-card__stats", children: t.stats.map(([r, i, l]) => /* @__PURE__ */ n("div", { className: "coo-module-stat", children: [
2313
+ /* @__PURE__ */ e("span", { children: r }),
2314
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${l}`, children: i })
2315
+ ] }, r)) })
2316
+ ] }, t.title)) }),
2317
+ /* @__PURE__ */ e("h2", { className: "executive-section-title", children: "Operations to-do" }),
2318
+ /* @__PURE__ */ e("div", { className: "todo-list", children: dt.map(([t, r, i]) => /* @__PURE__ */ n("div", { className: "todo-row", children: [
2319
+ /* @__PURE__ */ e("strong", { children: t }),
2320
+ /* @__PURE__ */ e("span", { children: r }),
2321
+ /* @__PURE__ */ n("button", { type: "button", onClick: () => a(i), children: [
2322
+ "Open ",
2323
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 })
2324
+ ] })
2325
+ ] }, r)) })
2326
+ ] });
2327
+ }
2328
+ const ut = [
2329
+ { title: "Air freight", icon: "Plane", gpm: "24.6% GPM", tone: "green", inbound: "412", outbound: "388", page: "air" },
2330
+ { title: "Sea freight", icon: "Ship", gpm: "18.2% GPM", tone: "orange", inbound: "96", outbound: "74", page: "sea" },
2331
+ { title: "Trucking", icon: "Truck", gpm: "14.1% GPM", tone: "orange", inbound: "210", outbound: "240", page: "truck" }
2332
+ ], pt = [
2333
+ ["COO", "Customs clearance backlog not cleared", "6d", "hot"],
2334
+ ["COO", "Inbound shipments stuck >1 week in the loads", "8d", "hot"],
2335
+ ["CFO", "Supplier invoices >30 days awaiting approval", "12d", "danger"],
2336
+ ["CCO", "Quotations awaiting response", "5d", "muted"]
2337
+ ], mt = [
2338
+ ["Electronics & components", 22],
2339
+ ["Machinery & parts", 18],
2340
+ ["Perishables & food", 15],
2341
+ ["Pharma & healthcare", 12],
2342
+ ["Apparel & textiles", 9]
2343
+ ], gt = [
2344
+ ["Lumitech Electronics B.V.", 14.2],
2345
+ ["Gulf Components Trading", 11.8],
2346
+ ["Pacific Foods Ltd", 9.6],
2347
+ ["NorthSea Marine BV", 7.4],
2348
+ ["Apex Robotics", 6.1]
2349
+ ];
2350
+ function Ee({ title: a, icon: t, rows: r, footer: i }) {
2351
+ return /* @__PURE__ */ n("article", { className: "exec-bar-card", children: [
2352
+ /* @__PURE__ */ n("h2", { children: [
2353
+ /* @__PURE__ */ e(s, { name: t, size: 15 }),
2354
+ " ",
2355
+ a
2356
+ ] }),
2357
+ r.map(([l, c]) => /* @__PURE__ */ n("div", { className: "exec-bar-row", children: [
2358
+ /* @__PURE__ */ n("div", { children: [
2359
+ /* @__PURE__ */ e("strong", { children: l }),
2360
+ /* @__PURE__ */ n("span", { children: [
2361
+ c,
2362
+ "%"
2363
+ ] })
2364
+ ] }),
2365
+ /* @__PURE__ */ e("div", { className: "exec-bar-track", children: /* @__PURE__ */ e("span", { style: { width: `${Math.min(c * 4, 100)}%` } }) })
2366
+ ] }, l)),
2367
+ /* @__PURE__ */ e("p", { children: i })
2368
+ ] });
2369
+ }
2370
+ function bt({ onOpen: a }) {
2371
+ return /* @__PURE__ */ n("section", { className: "executive-page", children: [
2372
+ /* @__PURE__ */ e(W, { title: "CEO Dashboard" }),
2373
+ /* @__PURE__ */ e(Ze, { kind: "ceo" }),
2374
+ /* @__PURE__ */ e("div", { className: "ceo-mode-grid", children: ut.map((t) => /* @__PURE__ */ n("article", { className: "ceo-mode-card", children: [
2375
+ /* @__PURE__ */ n("div", { className: "ceo-mode-card__head", children: [
2376
+ /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(s, { name: t.icon, size: 16 }) }),
2377
+ /* @__PURE__ */ e("h2", { children: t.title }),
2378
+ /* @__PURE__ */ e("em", { className: `ceo-gpm ceo-gpm--${t.tone}`, children: t.gpm })
2379
+ ] }),
2380
+ /* @__PURE__ */ n("div", { className: "ceo-mode-card__stats", children: [
2381
+ /* @__PURE__ */ n("div", { children: [
2382
+ /* @__PURE__ */ e("strong", { children: t.inbound }),
2383
+ /* @__PURE__ */ e("span", { children: "Inbound" })
2384
+ ] }),
2385
+ /* @__PURE__ */ n("div", { children: [
2386
+ /* @__PURE__ */ e("strong", { children: t.outbound }),
2387
+ /* @__PURE__ */ e("span", { children: "Outbound" })
2388
+ ] })
2389
+ ] }),
2390
+ /* @__PURE__ */ n("button", { type: "button", onClick: () => a(t.page), children: [
2391
+ "Open dashboard ",
2392
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 })
2393
+ ] })
2394
+ ] }, t.title)) }),
2395
+ /* @__PURE__ */ n("article", { className: "escalation-card", children: [
2396
+ /* @__PURE__ */ n("h2", { children: [
2397
+ /* @__PURE__ */ e(s, { name: "AlertTriangle", size: 15 }),
2398
+ " Escalations - outstanding too long on COO / CFO / CCO"
2399
+ ] }),
2400
+ pt.map(([t, r, i, l]) => /* @__PURE__ */ n("div", { className: "escalation-row", children: [
2401
+ /* @__PURE__ */ e("strong", { className: `escalation-pill escalation-pill--${t.toLowerCase()}`, children: t }),
2402
+ /* @__PURE__ */ e("span", { children: r }),
2403
+ /* @__PURE__ */ n("em", { className: `escalation-days escalation-days--${l}`, children: [
2404
+ /* @__PURE__ */ e(s, { name: "Clock", size: 12 }),
2405
+ " ",
2406
+ i
2407
+ ] }),
2408
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 14 })
2409
+ ] }, r)),
2410
+ /* @__PURE__ */ e("p", { children: "Only items past their threshold surface here; the CEO doesn't see the full task lists. Each row opens the owning dashboard." })
2411
+ ] }),
2412
+ /* @__PURE__ */ n("div", { className: "exec-bottom-grid", children: [
2413
+ /* @__PURE__ */ e(Ee, { title: "Top 5 goods categories", icon: "Boxes", rows: mt, footer: "High-level categories by share of shipments moved." }),
2414
+ /* @__PURE__ */ e(Ee, { title: "Top 5 customers - share of GPM", icon: "Users", rows: gt, footer: "Share of total gross profit margin contributed by each customer." })
2415
+ ] })
2416
+ ] });
2417
+ }
2418
+ const $e = [
2419
+ { file: "AF-2026-00142", service: "Air Freight", dir: "Import", customer: "TechShop BV", route: "PVG - Shanghai -> AMS - Amsterdam", status: "In progress" },
2420
+ { file: "AF-2026-00151", service: "Air Freight", dir: "Export", customer: "Dutch Flowers BV", route: "AMS - Amsterdam -> NRT - Tokyo", status: "Invoiced" },
2421
+ { file: "AF-202606044905", service: "Air Freight", dir: "Export", customer: "Uitvaart Service Nederland BV", route: "AMS - Amsterdam, Schiphol -> ASR - Kayseri", status: "Invoiced" },
2422
+ { file: "SF-2026-00088", service: "Sea Freight", dir: "Import", customer: "FashionHub", route: "NSA -> RTM", status: "In progress" },
2423
+ { file: "SF-2026-00090", service: "Sea Freight", dir: "Export", customer: "AgriExport NL", route: "RTM -> LOS", status: "Draft" },
2424
+ { file: "TR-2026-00210", service: "Trucking", dir: "Import", customer: "FashionHub", route: "IST -> AMS", status: "Cleared" },
2425
+ { file: "TR-2026-00214", service: "Trucking", dir: "Export", customer: "GlowStore", route: "TIL -> BER", status: "Draft" },
2426
+ { file: "CB-2026-00024", service: "Customs - Bulk", dir: "Import", customer: "GadgetHub", route: "Consolidated e-commerce", status: "In progress" },
2427
+ { file: "CS-2026-00017", service: "Customs - Single", dir: "Import", customer: "MediSupply", route: "-", status: "Docs ready" }
2428
+ ], yt = ["All", "Air", "Sea", "Truck", "Cust. Bulk", "Cust. Single"];
2429
+ function vt(a, t) {
2430
+ return t === "All" ? !0 : t === "Air" ? a.service === "Air Freight" : t === "Sea" ? a.service === "Sea Freight" : t === "Truck" ? a.service === "Trucking" : t === "Cust. Bulk" ? a.service === "Customs - Bulk" : a.service === "Customs - Single";
2431
+ }
2432
+ function ft() {
2433
+ const [a, t] = y(""), [r, i] = y("All"), l = $e.filter((c) => {
2434
+ const o = a.trim().toLowerCase(), d = `${c.file} ${c.service} ${c.dir} ${c.customer} ${c.route} ${c.status}`.toLowerCase();
2435
+ return vt(c, r) && (!o || d.includes(o));
2436
+ });
2437
+ return /* @__PURE__ */ n("section", { className: "files-page", children: [
2438
+ /* @__PURE__ */ e(W, { title: "All files", section: "Operations" }),
2439
+ /* @__PURE__ */ e("h1", { className: "files-page__title", children: "All files - every modality" }),
2440
+ /* @__PURE__ */ n("div", { className: "files-banner", children: [
2441
+ /* @__PURE__ */ n("div", { children: [
2442
+ /* @__PURE__ */ e(s, { name: "LayoutGrid", size: 14 }),
2443
+ /* @__PURE__ */ e("strong", { children: "One overview across Air, Sea, Trucking & Customs" })
2444
+ ] }),
2445
+ /* @__PURE__ */ e("p", { children: "Search every file regardless of modality and open it directly - like the classic single work list, but with each type keeping its own continuous number." })
2446
+ ] }),
2447
+ /* @__PURE__ */ n("div", { className: "files-toolbar", children: [
2448
+ /* @__PURE__ */ n("label", { className: "files-search", children: [
2449
+ /* @__PURE__ */ e(s, { name: "Search", size: 15 }),
2450
+ /* @__PURE__ */ e("input", { value: a, onChange: (c) => t(c.target.value), placeholder: "Search all files..." })
2451
+ ] }),
2452
+ /* @__PURE__ */ e("div", { className: "files-tabs", children: yt.map((c) => /* @__PURE__ */ e("button", { type: "button", className: r === c ? "files-tab files-tab--active" : "files-tab", onClick: () => i(c), children: c }, c)) })
2453
+ ] }),
2454
+ /* @__PURE__ */ e("div", { className: "files-table-card", children: /* @__PURE__ */ n("table", { className: "files-table", children: [
2455
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
2456
+ /* @__PURE__ */ e("th", { children: "File" }),
2457
+ /* @__PURE__ */ e("th", { children: "Service" }),
2458
+ /* @__PURE__ */ e("th", { children: "Dir" }),
2459
+ /* @__PURE__ */ e("th", { children: "Customer" }),
2460
+ /* @__PURE__ */ e("th", { children: "Route" }),
2461
+ /* @__PURE__ */ e("th", { children: "Status" })
2462
+ ] }) }),
2463
+ /* @__PURE__ */ e("tbody", { children: l.map((c) => /* @__PURE__ */ n("tr", { children: [
2464
+ /* @__PURE__ */ e("td", { className: "files-table__file", children: c.file }),
2465
+ /* @__PURE__ */ e("td", { children: c.service }),
2466
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `files-pill files-pill--${c.dir.toLowerCase()}`, children: c.dir }) }),
2467
+ /* @__PURE__ */ e("td", { className: "files-table__customer", children: c.customer }),
2468
+ /* @__PURE__ */ e("td", { children: c.route }),
2469
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `files-status files-status--${c.status.toLowerCase().replace(/\s+/g, "-")}`, children: c.status }) })
2470
+ ] }, c.file)) })
2471
+ ] }) }),
2472
+ /* @__PURE__ */ n("p", { className: "files-page__meta", children: [
2473
+ l.length,
2474
+ " of ",
2475
+ $e.length,
2476
+ " files across all modalities."
2477
+ ] })
2478
+ ] });
2479
+ }
2480
+ const xt = [
2481
+ { label: "Open files", value: "12", tone: "blue" },
2482
+ { label: "Quotes pending", value: "4", tone: "orange" },
2483
+ { label: "Departures today", value: "7", tone: "green" },
2484
+ { label: "Security checks", value: "3", tone: "violet" }
2485
+ ], Ct = [
2486
+ ["AF-2026-00142", "TechShop BV", "PVG -> AMS", "In progress"],
2487
+ ["AF-2026-00151", "Dutch Flowers BV", "AMS -> NRT", "Invoiced"],
2488
+ ["AF-202606044905", "Uitvaart Service Nederland BV", "AMS -> ASR", "Invoiced"],
2489
+ ["AF-2026-00168", "MediSupply", "DXB -> AMS", "Docs ready"]
2490
+ ];
2491
+ function kt({ onOpen: a }) {
2492
+ return /* @__PURE__ */ n("section", { className: "air-page", children: [
2493
+ /* @__PURE__ */ e(W, { title: "Air Freight Dashboard", section: "Operations" }),
2494
+ /* @__PURE__ */ n("div", { className: "files-banner", children: [
2495
+ /* @__PURE__ */ n("div", { children: [
2496
+ /* @__PURE__ */ e(s, { name: "Plane", size: 14 }),
2497
+ /* @__PURE__ */ e("strong", { children: "Air Freight operations" })
2498
+ ] }),
2499
+ /* @__PURE__ */ e("p", { children: "Follow quotations, airway bill files, warehouse handoffs, track & trace updates and security checks from one dashboard." })
2500
+ ] }),
2501
+ /* @__PURE__ */ e("div", { className: "air-card-grid", children: xt.map((t) => /* @__PURE__ */ n("article", { className: "air-stat-card", children: [
2502
+ /* @__PURE__ */ e("span", { children: t.label }),
2503
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${t.tone}`, children: t.value })
2504
+ ] }, t.label)) }),
2505
+ /* @__PURE__ */ e("div", { className: "air-module-grid", children: [
2506
+ ["Quotations", "air-quotations", "FileText"],
2507
+ ["Files", "air-files", "Plane"],
2508
+ ["Warehouse", "air-warehouse", "Warehouse"],
2509
+ ["Track & trace", "air-track-trace", "ScanSearch"],
2510
+ ["AWB stock", "air-awb-stock", "Hash"],
2511
+ ["Security (RA/KC)", "air-security", "ShieldCheck"]
2512
+ ].map(([t, r, i]) => /* @__PURE__ */ n("button", { type: "button", className: "air-module-button", onClick: () => a(r), children: [
2513
+ /* @__PURE__ */ e(s, { name: i, size: 16 }),
2514
+ /* @__PURE__ */ e("span", { children: t }),
2515
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 })
2516
+ ] }, r)) }),
2517
+ /* @__PURE__ */ n("article", { className: "files-table-card", children: [
2518
+ /* @__PURE__ */ e("div", { className: "air-table-title", children: "Recent Air Freight files" }),
2519
+ /* @__PURE__ */ n("table", { className: "files-table", children: [
2520
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
2521
+ /* @__PURE__ */ e("th", { children: "File" }),
2522
+ /* @__PURE__ */ e("th", { children: "Customer" }),
2523
+ /* @__PURE__ */ e("th", { children: "Route" }),
2524
+ /* @__PURE__ */ e("th", { children: "Status" })
2525
+ ] }) }),
2526
+ /* @__PURE__ */ e("tbody", { children: Ct.map(([t, r, i, l]) => /* @__PURE__ */ n("tr", { children: [
2527
+ /* @__PURE__ */ e("td", { className: "files-table__file", children: t }),
2528
+ /* @__PURE__ */ e("td", { className: "files-table__customer", children: r }),
2529
+ /* @__PURE__ */ e("td", { children: i }),
2530
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `files-status files-status--${l.toLowerCase().replace(/\s+/g, "-")}`, children: l }) })
2531
+ ] }, t)) })
2532
+ ] })
2533
+ ] })
2534
+ ] });
2535
+ }
2536
+ const wt = [
2537
+ ["Plane", "Inbound: Flight arrived · 176-9001 2234 (Gulf Components Trading)"],
2538
+ ["FileCheck", "Inbound: Released (NoA) · 020-4456 7781 (NorthSea Marine BV)"],
2539
+ ["Warehouse", "Inbound: Arrived at YCC · 618-3321 0098 (Pacific Foods Ltd)"],
2540
+ ["Truck", "Outbound: Handler arrived · WH-26-0002"],
2541
+ ["Boxes", "Outbound: Loaded · WH-26-0001 (176-1234 5675)"]
2542
+ ], Nt = [
2543
+ {
2544
+ awb: "176-9001 2234",
2545
+ customer: "Gulf Components Trading · DXB -> EK149 · ETA 12 Jun 14:20",
2546
+ status: "Expected",
2547
+ done: 1,
2548
+ action: "Confirm: Flight arrived",
2549
+ update: "Key milestones"
2550
+ },
2551
+ {
2552
+ awb: "020-4456 7781",
2553
+ customer: "NorthSea Marine BV · JFK -> LH405 · ETA 12 Jun 09:05",
2554
+ status: "Flight arrived",
2555
+ done: 2,
2556
+ action: "Confirm: Released (NoA)",
2557
+ update: "All updates"
2558
+ },
2559
+ {
2560
+ awb: "618-3321 0098",
2561
+ customer: "Pacific Foods Ltd · SIN -> SQ338 · ETA 11 Jun 22:40",
2562
+ status: "Collected",
2563
+ done: 4,
2564
+ action: "Confirm: Arrived at YCC",
2565
+ update: "No updates"
2566
+ }
2567
+ ];
2568
+ function At() {
2569
+ const a = ["Expected", "Flight arrived", "Released (NoA)", "Collected", "Arrived at YCC", "Left YCC"];
2570
+ return /* @__PURE__ */ n("section", { className: "air-detail-page", children: [
2571
+ /* @__PURE__ */ e(W, { title: "Track & trace", section: "Air Freight" }),
2572
+ /* @__PURE__ */ e("div", { className: "air-summary-grid air-summary-grid--four", children: [
2573
+ ["Inbound active", "3", "blue"],
2574
+ ["Awaiting NoA", "1", "orange"],
2575
+ ["Outbound in transit", "2", "violet"],
2576
+ ["Open actions", "5", "red"]
2577
+ ].map(([t, r, i]) => /* @__PURE__ */ n("article", { className: "air-summary-card", children: [
2578
+ /* @__PURE__ */ e("span", { children: t }),
2579
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${i}`, children: r })
2580
+ ] }, t)) }),
2581
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2582
+ /* @__PURE__ */ n("h2", { children: [
2583
+ /* @__PURE__ */ e(s, { name: "Activity", size: 14 }),
2584
+ " Operator actions / triggers"
2585
+ ] }),
2586
+ /* @__PURE__ */ e("div", { className: "trigger-list", children: wt.map(([t, r]) => /* @__PURE__ */ n("button", { type: "button", className: "trigger-row", children: [
2587
+ /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(s, { name: t, size: 14 }) }),
2588
+ /* @__PURE__ */ e("strong", { children: r }),
2589
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 })
2590
+ ] }, r)) }),
2591
+ /* @__PURE__ */ e("p", { children: "This feed also surfaces on the Air Freight dashboard so the operator starts the day here." })
2592
+ ] }),
2593
+ /* @__PURE__ */ n("div", { className: "track-toolbar", children: [
2594
+ /* @__PURE__ */ n("div", { className: "track-tabs", children: [
2595
+ /* @__PURE__ */ e("button", { type: "button", className: "track-tab track-tab--active", children: "Inbound" }),
2596
+ /* @__PURE__ */ e("button", { type: "button", className: "track-tab", children: "Outbound" }),
2597
+ /* @__PURE__ */ n("button", { type: "button", className: "track-tab", children: [
2598
+ "NoA inbox ",
2599
+ /* @__PURE__ */ e("span", { children: "3" })
2600
+ ] })
2601
+ ] }),
2602
+ /* @__PURE__ */ n("label", { className: "track-search", children: [
2603
+ /* @__PURE__ */ e(s, { name: "Search", size: 13 }),
2604
+ /* @__PURE__ */ e("input", { placeholder: "Search AWB / custom" })
2605
+ ] })
2606
+ ] }),
2607
+ /* @__PURE__ */ n("article", { className: "air-panel milestone-card", children: [
2608
+ /* @__PURE__ */ e("h2", { children: "Inbound - import milestones" }),
2609
+ Nt.map((t) => /* @__PURE__ */ n("div", { className: "milestone-row", children: [
2610
+ /* @__PURE__ */ n("div", { className: "milestone-head", children: [
2611
+ /* @__PURE__ */ e("span", { className: "shipment-icon", children: /* @__PURE__ */ e(s, { name: "Plane", size: 17 }) }),
2612
+ /* @__PURE__ */ n("div", { children: [
2613
+ /* @__PURE__ */ e("strong", { children: t.awb }),
2614
+ /* @__PURE__ */ e("em", { children: t.status }),
2615
+ /* @__PURE__ */ e("p", { children: t.customer })
2616
+ ] }),
2617
+ /* @__PURE__ */ e("small", { children: t.update })
2618
+ ] }),
2619
+ /* @__PURE__ */ e("div", { className: "milestone-line", children: a.map((r, i) => /* @__PURE__ */ n("div", { className: i < t.done ? "milestone-step milestone-step--done" : "milestone-step", children: [
2620
+ /* @__PURE__ */ e("span", {}),
2621
+ /* @__PURE__ */ e("small", { children: r })
2622
+ ] }, r)) }),
2623
+ /* @__PURE__ */ n("div", { className: "milestone-actions", children: [
2624
+ /* @__PURE__ */ n("button", { type: "button", className: "air-action-primary", children: [
2625
+ /* @__PURE__ */ e(s, { name: "ArrowRight", size: 13 }),
2626
+ " ",
2627
+ t.action
2628
+ ] }),
2629
+ /* @__PURE__ */ n("button", { type: "button", className: "air-action-secondary", children: [
2630
+ /* @__PURE__ */ e(s, { name: "Bell", size: 13 }),
2631
+ " Notify customer"
2632
+ ] })
2633
+ ] })
2634
+ ] }, t.awb)),
2635
+ /* @__PURE__ */ e("p", { children: '"Released (NoA)" is the Notice of Arrival. "Arrived at YCC" feeds the warehouse intake.' })
2636
+ ] })
2637
+ ] });
2638
+ }
2639
+ function _t() {
2640
+ const a = [
2641
+ ["Turkish Airlines (TK)", "136", "140"],
2642
+ ["KLM (KL)", "99", "100"],
2643
+ ["Emirates SkyCargo (EK)", "199", "200"],
2644
+ ["Lufthansa Cargo (LH)", "10", "10"]
2645
+ ], t = [
2646
+ ["AMS", "195", "200"],
2647
+ ["LGG", "40", "40"],
2648
+ ["DXB", "199", "200"],
2649
+ ["Global Pool", "10", "10"]
2650
+ ], r = [
2651
+ ["TK 235 · AMS", "96", "0.2", "480d"],
2652
+ ["KL 074 · AMS", "99", "0.2", "495d"],
2653
+ ["TK 235 · LGG", "40", "0.2", "200d"],
2654
+ ["EK 176 · DXB", "199", "0.2", "995d"],
2655
+ ["LH 020 · Global Pool", "10", "0.2", "50d"]
2656
+ ];
2657
+ return /* @__PURE__ */ n("section", { className: "air-detail-page", children: [
2658
+ /* @__PURE__ */ n("div", { className: "air-page-titlebar", children: [
2659
+ /* @__PURE__ */ e(W, { title: "AWB Stock Management", section: "Air Freight" }),
2660
+ /* @__PURE__ */ e("div", { className: "awb-tabs", children: ["Dashboard", "Stock ranges", "Allocations", "Alerts", "Transfers"].map((i, l) => /* @__PURE__ */ e("button", { type: "button", className: l === 0 ? "awb-tab awb-tab--active" : "awb-tab", children: i }, i)) })
2661
+ ] }),
2662
+ /* @__PURE__ */ n("div", { className: "files-banner", children: [
2663
+ /* @__PURE__ */ n("div", { children: [
2664
+ /* @__PURE__ */ e(s, { name: "Hash", size: 15 }),
2665
+ /* @__PURE__ */ e("strong", { children: "One globally controlled AWB inventory" })
2666
+ ] }),
2667
+ /* @__PURE__ */ e("p", { children: "Register airline stock ranges, allocate the next valid AWB on booking, and track each number from allocation to invoicing. Numbers are validated against the IATA Modulo-7 check digit." })
2668
+ ] }),
2669
+ /* @__PURE__ */ e("div", { className: "air-summary-grid air-summary-grid--six", children: [
2670
+ ["Total stock", "450", "violet"],
2671
+ ["Available", "444", "green"],
2672
+ ["Reserved", "1", "orange"],
2673
+ ["Issued / Used", "4", "blue"],
2674
+ ["Cancelled / Void", "1", "red"],
2675
+ ["Active alerts", "3", "orange"]
2676
+ ].map(([i, l, c]) => /* @__PURE__ */ n("article", { className: "air-summary-card", children: [
2677
+ /* @__PURE__ */ e("span", { children: i }),
2678
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${c}`, children: l })
2679
+ ] }, i)) }),
2680
+ /* @__PURE__ */ n("div", { className: "inventory-grid", children: [
2681
+ /* @__PURE__ */ e(Pe, { title: "Available per airline", icon: "Plane", rows: a }),
2682
+ /* @__PURE__ */ e(Pe, { title: "Available per branch", icon: "ArrowLeftRight", rows: t }),
2683
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2684
+ /* @__PURE__ */ n("h2", { children: [
2685
+ /* @__PURE__ */ e(s, { name: "Activity", size: 15 }),
2686
+ " Forecast - days to exhaustion"
2687
+ ] }),
2688
+ /* @__PURE__ */ n("table", { className: "inventory-table", children: [
2689
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
2690
+ /* @__PURE__ */ e("th", { children: "Range" }),
2691
+ /* @__PURE__ */ e("th", { children: "Avail." }),
2692
+ /* @__PURE__ */ e("th", { children: "Avg/day" }),
2693
+ /* @__PURE__ */ e("th", { children: "Days left" })
2694
+ ] }) }),
2695
+ /* @__PURE__ */ e("tbody", { children: r.map(([i, l, c, o]) => /* @__PURE__ */ n("tr", { children: [
2696
+ /* @__PURE__ */ e("td", { children: i }),
2697
+ /* @__PURE__ */ e("td", { children: l }),
2698
+ /* @__PURE__ */ e("td", { children: c }),
2699
+ /* @__PURE__ */ e("td", { className: "positive", children: o })
2700
+ ] }, i)) })
2701
+ ] })
2702
+ ] }),
2703
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2704
+ /* @__PURE__ */ n("h2", { children: [
2705
+ /* @__PURE__ */ e(s, { name: "AlertTriangle", size: 15 }),
2706
+ " Alerts"
2707
+ ] }),
2708
+ /* @__PURE__ */ n("div", { className: "alert-list", children: [
2709
+ /* @__PURE__ */ n("p", { children: [
2710
+ /* @__PURE__ */ e("span", { className: "dot dot--orange" }),
2711
+ " ",
2712
+ /* @__PURE__ */ e("strong", { children: "Range expiring:" }),
2713
+ " KLM (KL) 074 @ AMS expires in 18d (28-06-2026)"
2714
+ ] }),
2715
+ /* @__PURE__ */ n("p", { children: [
2716
+ /* @__PURE__ */ e("span", { className: "dot dot--blue" }),
2717
+ " ",
2718
+ /* @__PURE__ */ e("strong", { children: "AWB gap:" }),
2719
+ " Prefix 235: gap 3469902-3469902 unused"
2720
+ ] }),
2721
+ /* @__PURE__ */ n("p", { children: [
2722
+ /* @__PURE__ */ e("span", { className: "dot dot--blue" }),
2723
+ " ",
2724
+ /* @__PURE__ */ e("strong", { children: "AWB gap:" }),
2725
+ " Prefix 235: gap 3469904-3469993 unused"
2726
+ ] })
2727
+ ] })
2728
+ ] })
2729
+ ] })
2730
+ ] });
2731
+ }
2732
+ function Pe({ title: a, icon: t, rows: r }) {
2733
+ return /* @__PURE__ */ n("article", { className: "air-panel inventory-list", children: [
2734
+ /* @__PURE__ */ n("h2", { children: [
2735
+ /* @__PURE__ */ e(s, { name: t, size: 15 }),
2736
+ " ",
2737
+ a
2738
+ ] }),
2739
+ r.map(([i, l, c]) => /* @__PURE__ */ n("div", { className: "inventory-list__row", children: [
2740
+ /* @__PURE__ */ e("span", { children: i }),
2741
+ /* @__PURE__ */ n("strong", { children: [
2742
+ l,
2743
+ " ",
2744
+ /* @__PURE__ */ n("em", { children: [
2745
+ "/ ",
2746
+ c
2747
+ ] })
2748
+ ] })
2749
+ ] }, i))
2750
+ ] });
2751
+ }
2752
+ function St() {
2753
+ const a = [
2754
+ ["WH-26-0001", "Lumitech Electronics B.V. · EK150 -> DXB · 6 colli · 482 kg", "Import", "Received", "8d", "A-12-03", "2", !0],
2755
+ ["WH-26-0002", "Vortex Pumps NV · 3 colli · 310 kg", "Export", "Received", "Damage", "B-04-07", "1", !1],
2756
+ ["WH-26-0003", "NorthSea Marine BV · LH404 -> JFK · 11 colli · 1.240 kg", "Import", "Expected", "", "-", "0", !1],
2757
+ ["WH-26-0004", "Apex Robotics · EK150 -> DXB · 2 colli · 96 kg", "Export", "Out-scanned", "", "A-01-01", "1", !1]
2758
+ ];
2759
+ return /* @__PURE__ */ n("section", { className: "air-detail-page", children: [
2760
+ /* @__PURE__ */ n("div", { className: "air-page-titlebar", children: [
2761
+ /* @__PURE__ */ e(W, { title: "Warehouse - loads intake", section: "Air Freight" }),
2762
+ /* @__PURE__ */ n("button", { type: "button", className: "air-action-primary", children: [
2763
+ /* @__PURE__ */ e(s, { name: "Plus", size: 14 }),
2764
+ " Announce new arrival"
2765
+ ] })
2766
+ ] }),
2767
+ /* @__PURE__ */ e("div", { className: "air-summary-grid air-summary-grid--four", children: [
2768
+ ["In loads", "2", "blue"],
2769
+ ["Alerts (>1 week)", "1", "red"],
2770
+ ["Damage reported", "1", "orange"],
2771
+ ["Out-scanned", "1", "green"]
2772
+ ].map(([t, r, i]) => /* @__PURE__ */ n("article", { className: "air-summary-card", children: [
2773
+ /* @__PURE__ */ e("span", { children: t }),
2774
+ /* @__PURE__ */ e("strong", { className: `exec-tone-${i}`, children: r })
2775
+ ] }, t)) }),
2776
+ /* @__PURE__ */ n("div", { className: "warehouse-alert warehouse-alert--danger", children: [
2777
+ /* @__PURE__ */ e(s, { name: "AlertTriangle", size: 15 }),
2778
+ " 1 shipment(s) in the loods over 1 week without an out-scan."
2779
+ ] }),
2780
+ /* @__PURE__ */ n("div", { className: "warehouse-alert warehouse-alert--warning", children: [
2781
+ /* @__PURE__ */ e(s, { name: "AlertTriangle", size: 15 }),
2782
+ " 1 shipment(s) with reported damage."
2783
+ ] }),
2784
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2785
+ /* @__PURE__ */ n("h2", { children: [
2786
+ /* @__PURE__ */ e(s, { name: "Warehouse", size: 15 }),
2787
+ " Announced shipments"
2788
+ ] }),
2789
+ /* @__PURE__ */ n("label", { className: "files-search warehouse-search", children: [
2790
+ /* @__PURE__ */ e(s, { name: "Search", size: 14 }),
2791
+ /* @__PURE__ */ e("input", { placeholder: "Search reference / customer / AWB / flight" })
2792
+ ] }),
2793
+ /* @__PURE__ */ e("div", { className: "shipment-list", children: a.map(([t, r, i, l, c, o, d, h]) => /* @__PURE__ */ n("button", { type: "button", className: h ? "shipment-row shipment-row--alert" : "shipment-row", children: [
2794
+ /* @__PURE__ */ e("span", { className: "shipment-icon", children: /* @__PURE__ */ e(s, { name: "Plane", size: 17 }) }),
2795
+ /* @__PURE__ */ n("span", { className: "shipment-main", children: [
2796
+ /* @__PURE__ */ e("strong", { children: t }),
2797
+ /* @__PURE__ */ e("span", { className: `files-pill files-pill--${i.toLowerCase()}`, children: i }),
2798
+ /* @__PURE__ */ e("span", { className: `files-status files-status--${l.toLowerCase().replace(/\s+/g, "-")}`, children: l }),
2799
+ c ? /* @__PURE__ */ e("em", { children: c }) : null,
2800
+ /* @__PURE__ */ e("small", { children: r })
2801
+ ] }),
2802
+ /* @__PURE__ */ n("span", { className: "shipment-side", children: [
2803
+ /* @__PURE__ */ e(s, { name: "MapPin", size: 13 }),
2804
+ " ",
2805
+ o,
2806
+ " ",
2807
+ /* @__PURE__ */ e(s, { name: "FileText", size: 13 }),
2808
+ " ",
2809
+ d
2810
+ ] })
2811
+ ] }, t)) }),
2812
+ /* @__PURE__ */ e("p", { children: "Open a shipment to handle it, or announce a new arrival. Out-scan marks departure and feeds Track & Trace." })
2813
+ ] })
2814
+ ] });
2815
+ }
2816
+ function Mt() {
2817
+ return /* @__PURE__ */ n("section", { className: "air-detail-page", children: [
2818
+ /* @__PURE__ */ e(W, { title: "Aviation Security - RA/KC validation", section: "Air Freight" }),
2819
+ /* @__PURE__ */ n("div", { className: "files-banner", children: [
2820
+ /* @__PURE__ */ n("div", { children: [
2821
+ /* @__PURE__ */ e(s, { name: "ShieldCheck", size: 15 }),
2822
+ /* @__PURE__ */ e("strong", { children: "EU aviation security compliance" })
2823
+ ] }),
2824
+ /* @__PURE__ */ e("p", { children: "As a Regulated Agent, YCC determines the security status of every consignment. Cargo from a valid Known Consignor is accepted as secure; otherwise it must be screened." })
2825
+ ] }),
2826
+ /* @__PURE__ */ n("div", { className: "security-grid", children: [
2827
+ /* @__PURE__ */ n("article", { className: "air-panel security-status-card", children: [
2828
+ /* @__PURE__ */ n("h2", { children: [
2829
+ /* @__PURE__ */ e(s, { name: "ShieldCheck", size: 15 }),
2830
+ " Regulated Agent status"
2831
+ ] }),
2832
+ /* @__PURE__ */ e("span", { children: "Agent" }),
2833
+ /* @__PURE__ */ e("strong", { children: "Your Cargo Contact B.V." }),
2834
+ /* @__PURE__ */ e("span", { children: "RA number" }),
2835
+ /* @__PURE__ */ e("strong", { children: "NL/RA/00528-00" }),
2836
+ /* @__PURE__ */ e("span", { children: "Valid until" }),
2837
+ /* @__PURE__ */ e("strong", { children: "31-12-2026" }),
2838
+ /* @__PURE__ */ e("em", { children: "Valid" }),
2839
+ /* @__PURE__ */ e("p", { children: "Set under Admin > Company details." })
2840
+ ] }),
2841
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2842
+ /* @__PURE__ */ n("h2", { children: [
2843
+ /* @__PURE__ */ e(s, { name: "CheckCircle2", size: 15 }),
2844
+ " Consignment validation tool"
2845
+ ] }),
2846
+ /* @__PURE__ */ n("div", { className: "security-form-grid", children: [
2847
+ /* @__PURE__ */ n("label", { children: [
2848
+ "Shipper / Consignor",
2849
+ /* @__PURE__ */ n("select", { children: [
2850
+ /* @__PURE__ */ e("option", { children: "Select shipper" }),
2851
+ /* @__PURE__ */ e("option", { children: "Dutch Flowers BV" })
2852
+ ] })
2853
+ ] }),
2854
+ /* @__PURE__ */ n("label", { children: [
2855
+ "Screening method (if not KC)",
2856
+ /* @__PURE__ */ n("select", { children: [
2857
+ /* @__PURE__ */ e("option", { children: "-" }),
2858
+ /* @__PURE__ */ e("option", { children: "XRY" }),
2859
+ /* @__PURE__ */ e("option", { children: "EDS" })
2860
+ ] })
2861
+ ] }),
2862
+ /* @__PURE__ */ n("label", { children: [
2863
+ "Target",
2864
+ /* @__PURE__ */ n("select", { children: [
2865
+ /* @__PURE__ */ e("option", { children: "SPX" }),
2866
+ /* @__PURE__ */ e("option", { children: "SCO" })
2867
+ ] })
2868
+ ] })
2869
+ ] }),
2870
+ /* @__PURE__ */ n("button", { type: "button", className: "air-action-primary", children: [
2871
+ /* @__PURE__ */ e(s, { name: "ShieldCheck", size: 14 }),
2872
+ " Validate consignment"
2873
+ ] })
2874
+ ] })
2875
+ ] }),
2876
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2877
+ /* @__PURE__ */ n("h2", { children: [
2878
+ /* @__PURE__ */ e(s, { name: "AlertTriangle", size: 15 }),
2879
+ " Certificate alerts"
2880
+ ] }),
2881
+ /* @__PURE__ */ n("p", { children: [
2882
+ /* @__PURE__ */ e("span", { className: "dot dot--orange" }),
2883
+ " ",
2884
+ /* @__PURE__ */ e("strong", { children: "Dutch Flowers BV" }),
2885
+ " (KC) - expires in 18d, 28-06-2026"
2886
+ ] })
2887
+ ] }),
2888
+ /* @__PURE__ */ n("article", { className: "air-panel", children: [
2889
+ /* @__PURE__ */ n("h2", { children: [
2890
+ /* @__PURE__ */ e(s, { name: "Users", size: 15 }),
2891
+ " Known Consignor / Account Consignor register"
2892
+ ] }),
2893
+ /* @__PURE__ */ n("table", { className: "security-table", children: [
2894
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
2895
+ /* @__PURE__ */ e("th", { children: "Consignor" }),
2896
+ /* @__PURE__ */ e("th", { children: "Type" }),
2897
+ /* @__PURE__ */ e("th", { children: "Certificate" }),
2898
+ /* @__PURE__ */ e("th", { children: "Valid until" }),
2899
+ /* @__PURE__ */ e("th", { children: "Station" }),
2900
+ /* @__PURE__ */ e("th", { children: "Status" })
2901
+ ] }) }),
2902
+ /* @__PURE__ */ e("tbody", { children: [
2903
+ ["Uitvaart Service Nederland BV", "KC", "NL/KC/00231-01", "31-12-2026", "AMS", "Valid"],
2904
+ ["MediSupply BV", "KC", "NL/KC/00488-02", "30-09-2026", "AMS", "Valid"],
2905
+ ["FashionHub", "AC", "AC-2026-114", "31-07-2026", "AMS", "Valid"],
2906
+ ["Dutch Flowers BV", "KC", "NL/KC/00120-03", "28-06-2026", "AMS", "18d"]
2907
+ ].map(([t, r, i, l, c, o]) => /* @__PURE__ */ n("tr", { children: [
2908
+ /* @__PURE__ */ e("td", { children: t }),
2909
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: "files-status files-status--cleared", children: r }) }),
2910
+ /* @__PURE__ */ e("td", { children: i }),
2911
+ /* @__PURE__ */ e("td", { children: l }),
2912
+ /* @__PURE__ */ e("td", { children: c }),
2913
+ /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: o === "Valid" ? "files-status files-status--cleared" : "files-status files-status--invoiced", children: o }) })
2914
+ ] }, i)) })
2915
+ ] }),
2916
+ /* @__PURE__ */ n("div", { className: "security-form", children: [
2917
+ /* @__PURE__ */ n("label", { children: [
2918
+ "Consignor name",
2919
+ /* @__PURE__ */ e("input", {})
2920
+ ] }),
2921
+ /* @__PURE__ */ n("label", { children: [
2922
+ "Type",
2923
+ /* @__PURE__ */ n("select", { children: [
2924
+ /* @__PURE__ */ e("option", { children: "KC" }),
2925
+ /* @__PURE__ */ e("option", { children: "AC" })
2926
+ ] })
2927
+ ] }),
2928
+ /* @__PURE__ */ n("label", { children: [
2929
+ "Certificate",
2930
+ /* @__PURE__ */ e("input", {})
2931
+ ] }),
2932
+ /* @__PURE__ */ n("label", { children: [
2933
+ "Valid until",
2934
+ /* @__PURE__ */ e("input", { placeholder: "dd-mm-yyyy" })
2935
+ ] }),
2936
+ /* @__PURE__ */ n("label", { children: [
2937
+ "Station",
2938
+ /* @__PURE__ */ n("select", { children: [
2939
+ /* @__PURE__ */ e("option", { children: "AMS" }),
2940
+ /* @__PURE__ */ e("option", { children: "DXB" })
2941
+ ] })
2942
+ ] })
2943
+ ] }),
2944
+ /* @__PURE__ */ n("button", { type: "button", className: "air-action-primary", children: [
2945
+ /* @__PURE__ */ e(s, { name: "Plus", size: 14 }),
2946
+ " Register consignor"
2947
+ ] })
2948
+ ] })
2949
+ ] });
2950
+ }
2951
+ function un() {
2952
+ const [a, t] = y("home"), [r, i] = y(0), [l, c] = y(0), [o, d] = y(""), [h, p] = y(!1), [u, m] = y(!1), [k, M] = y(!1), [z, Z] = y(["air"]), [f, O] = y(Re[0]), [g, A] = y(""), B = [
2953
+ "Your Cargo Contact (HQ)",
2954
+ "YCC Colchester",
2955
+ "YCC Liège",
2956
+ "Linex UK",
2957
+ "CCL",
2958
+ "Linex France",
2959
+ "YCC Madrid",
2960
+ "YCC Barcelona"
2961
+ ], G = ["Eng (US)", "Esp (ES)", "العربية"], ea = ie(() => Qe(B[r]), [r, B]), ee = Za(a), aa = ie(() => {
2962
+ const b = o.trim().toLowerCase();
2963
+ return b ? ee.work.filter((ae) => Object.values(ae).some((ye) => ye.toLowerCase().includes(b))) : ee.work;
2964
+ }, [ee.work, o]);
2965
+ function K(b) {
2966
+ t(b), A(""), d(""), p(!1), m(!1), M(!1);
2967
+ }
2968
+ function ta(b) {
2969
+ Z((ae) => ae.includes(b) ? ae.filter((ye) => ye !== b) : [...ae, b]);
2970
+ }
2971
+ function U(b) {
2972
+ A(b);
2973
+ }
2974
+ return /* @__PURE__ */ n("div", { className: "prototype-shell", children: [
2975
+ /* @__PURE__ */ e(
2976
+ tt,
2977
+ {
2978
+ activePage: a,
2979
+ branch: B[r],
2980
+ branches: B,
2981
+ items: ea,
2982
+ branchOpen: k,
2983
+ openMenus: z,
2984
+ onSelectPage: K,
2985
+ onToggleMenu: ta,
2986
+ onToggleBranchMenu: () => {
2987
+ M((b) => !b), p(!1), m(!1);
2988
+ },
2989
+ onSelectBranch: (b) => {
2990
+ i(B.indexOf(b)), Ya(b).includes(a) || (t("home"), d("")), M(!1), U(`Workspace switched to ${b}.`);
2991
+ }
2992
+ }
2993
+ ),
2994
+ /* @__PURE__ */ n("div", { className: "prototype-main", children: [
2995
+ /* @__PURE__ */ e(
2996
+ nt,
2997
+ {
2998
+ query: o,
2999
+ language: G[l],
3000
+ notifications: h,
3001
+ userMenuOpen: u,
3002
+ users: Re,
3003
+ activeUser: f,
3004
+ onQueryChange: d,
3005
+ onToggleLanguage: () => {
3006
+ const b = (l + 1) % G.length;
3007
+ c(b), U(`Language changed to ${G[b]}.`);
3008
+ },
3009
+ onToggleNotifications: () => {
3010
+ p((b) => !b), m(!1), M(!1);
3011
+ },
3012
+ onToggleUserMenu: () => {
3013
+ m((b) => !b), p(!1), M(!1);
3014
+ },
3015
+ onSelectUser: (b) => {
3016
+ O(b), m(!1), U(`Demo login switched to ${b.name} with ${b.role} access.`);
3017
+ }
3018
+ }
3019
+ ),
3020
+ /* @__PURE__ */ e("main", { className: "prototype-content", children: a === "home" ? /* @__PURE__ */ e(rt, { onOpenAir: () => K("air"), onOpenFiles: () => K("files") }) : a === "ceo" ? /* @__PURE__ */ e(bt, { onOpen: K }) : a === "coo" ? /* @__PURE__ */ e(ht, { onOpen: K }) : a === "files" ? /* @__PURE__ */ e(ft, {}) : a === "air" || a === "air-dashboard" ? /* @__PURE__ */ e(kt, { onOpen: K }) : a === "air-track-trace" ? /* @__PURE__ */ e(At, {}) : a === "air-awb-stock" ? /* @__PURE__ */ e(_t, {}) : a === "air-warehouse" ? /* @__PURE__ */ e(St, {}) : a === "air-security" ? /* @__PURE__ */ e(Mt, {}) : /* @__PURE__ */ e(
3021
+ ct,
3022
+ {
3023
+ data: ee,
3024
+ activePage: a,
3025
+ filteredWork: aa,
3026
+ message: g,
3027
+ onRowAction: (b) => U(`${b.ref} opened for ${b.customer}. Assigned owner: ${b.owner}.`),
3028
+ onCreateShipment: () => U(`New ${a === "files" ? "document" : "shipment"} draft created from ${Be[r + 1] ?? Be[0]}.`),
3029
+ onRefresh: () => U(`${ee.title} refreshed with latest dummy data.`)
3030
+ }
3031
+ ) })
3032
+ ] })
3033
+ ] });
3034
+ }
3035
+ const te = {
3036
+ accent: "#5B7CE6",
3037
+ // primary action color, icon tint, active stepper fill
3038
+ indigo: "#6366F1",
3039
+ // active nav item text, user avatar bg, role chip text
3040
+ indigoBg: "#EEF0FE",
3041
+ // active nav bg, role chip bg, PGTS info banner bg
3042
+ navy: "#0E1438"
3043
+ // dark button bg, label print header, print document accents
3044
+ }, P = {
3045
+ page: "#F4F5F9",
3046
+ // app root background (body bg)
3047
+ card: "#FFFFFF",
3048
+ // card surface, sidebar, topbar
3049
+ soft: "#F6F7FB",
3050
+ // inset areas, form field bg, empty states, drag-zone default
3051
+ border: "#E8EAF2",
3052
+ // all card borders, dividers, input borders, connector bars
3053
+ ink: "#1B2440",
3054
+ // primary text
3055
+ sub: "#8A93AD",
3056
+ // secondary / supporting text, disabled icons
3057
+ faint: "#AEB4C9"
3058
+ // placeholder text, disabled icons, footnote text
3059
+ }, T = {
3060
+ released: { text: "#16A34A", bg: "#DCFCE7" },
3061
+ // Auto-released
3062
+ review: { text: "#EA580C", bg: "#FEF3C7" },
3063
+ // Human review
3064
+ hold: { text: "#C2410C", bg: "#FFEDD5" },
3065
+ // On hold
3066
+ inspect: { text: "#B91C1C", bg: "#FEE2E2" },
3067
+ // Physical inspection
3068
+ unknown: { text: "#6D28D9", bg: "#EDE9FE" },
3069
+ // Unknown parcel
3070
+ missing: { text: "#475569", bg: "#E2E8F0" }
3071
+ // Missing (not scanned)
3072
+ }, F = {
3073
+ cleared: { text: "#16A34A", bg: "#DCFCE7" },
3074
+ progress: { text: "#1D4ED8", bg: "#DBEAFE" },
3075
+ hold: { text: "#B91C1C", bg: "#FEE2E2" },
3076
+ pending: { text: "#EA580C", bg: "#FEF3C7" },
3077
+ active: { text: "#16A34A", bg: "#DCFCE7" },
3078
+ inactive: { text: "#64748B", bg: "#F1F5F9" }
3079
+ }, D = {
3080
+ ready: { text: "#64748B", bg: "#F1F5F9" },
3081
+ submitted: { text: "#1D4ED8", bg: "#DBEAFE" },
3082
+ ack: { text: "#6D28D9", bg: "#EDE9FE" },
3083
+ released: { text: "#16A34A", bg: "#DCFCE7" },
3084
+ hold: { text: "#B91C1C", bg: "#FEE2E2" },
3085
+ docs: { text: "#EA580C", bg: "#FEF3C7" }
3086
+ }, _ = {
3087
+ // Text on colored backgrounds (dark variants for readability)
3088
+ successTextDark: "#166534",
3089
+ // on #DCFCE7 / #ECFDF5
3090
+ warningTextDark: "#9A3412",
3091
+ // on #FEF3C7 / #FEF9EC
3092
+ dangerTextDark: "#B91C1C",
3093
+ // on #FEE2E2
3094
+ infoTextDeep: "#3730A3",
3095
+ // on C.indigoBg (PGTS/RTO banner title)
3096
+ infoTextMid: "#4338CA",
3097
+ // on C.indigoBg (PGTS/RTO banner body)
3098
+ // Raw semantic signals
3099
+ success: "#16A34A",
3100
+ warning: "#EA580C",
3101
+ danger: "#B91C1C",
3102
+ blue: "#1D4ED8",
3103
+ purple: "#6D28D9",
3104
+ slate: "#475569",
3105
+ // Alert border colors (used on banner borders)
3106
+ borderRed: "#FCA5A5",
3107
+ borderAmber: "#FCD34D",
3108
+ borderGreen: "#86EFAC",
3109
+ borderGreenSoft: "#A7F3D0"
3110
+ }, Y = {
3111
+ import: { text: "#1D4ED8", bg: "#EFF4FF" },
3112
+ export: { text: "#6D28D9", bg: "#F1ECFE" }
3113
+ }, J = {
3114
+ T1: { text: "#1D4ED8", bg: "#EFF4FF" },
3115
+ T2: { text: "#6D28D9", bg: "#F1ECFE" }
3116
+ }, E = {
3117
+ Draft: { text: "#64748B", bg: "#F1F5F9" },
3118
+ Expected: { text: "#1D4ED8", bg: "#EFF4FF" },
3119
+ Received: { text: "#EA580C", bg: "#FEF3C7" },
3120
+ Located: { text: "#6D28D9", bg: "#F1ECFE" },
3121
+ "Out-scanned": { text: "#16A34A", bg: "#DCFCE7" }
3122
+ }, I = {
3123
+ air: "#4338CA",
3124
+ sea: "#0369A1",
3125
+ road: "#C2410C",
3126
+ customs: "#15803D",
3127
+ warehouse: "#7C3AED",
3128
+ backoffice: "#64748B"
3129
+ }, he = {
3130
+ VIS: "#5B7CE6",
3131
+ // Vision-OCR
3132
+ HIST: "#0EA5E9",
3133
+ // Historical Match
3134
+ LLM: "#8B5CF6",
3135
+ // LLM Reasoner
3136
+ STAT: "#14B8A6"
3137
+ // Market-Stat
3138
+ }, pn = {
3139
+ // Primary
3140
+ accent: te.accent,
3141
+ indigo: te.indigo,
3142
+ "indigo-bg": te.indigoBg,
3143
+ navy: te.navy,
3144
+ // Neutral
3145
+ page: P.page,
3146
+ card: P.card,
3147
+ soft: P.soft,
3148
+ border: P.border,
3149
+ ink: P.ink,
3150
+ sub: P.sub,
3151
+ faint: P.faint,
3152
+ // Semantic signals
3153
+ success: _.success,
3154
+ warning: _.warning,
3155
+ danger: _.danger,
3156
+ blue: _.blue,
3157
+ purple: _.purple,
3158
+ slate: _.slate,
3159
+ // Text on colored surfaces
3160
+ "success-text": _.successTextDark,
3161
+ "warning-text": _.warningTextDark,
3162
+ "danger-text": _.dangerTextDark,
3163
+ "info-text-deep": _.infoTextDeep,
3164
+ "info-text-mid": _.infoTextMid,
3165
+ // Alert borders
3166
+ "border-red": _.borderRed,
3167
+ "border-amber": _.borderAmber,
3168
+ "border-green": _.borderGreen,
3169
+ "border-green-soft": _.borderGreenSoft,
3170
+ // Status pairs
3171
+ "status-released-text": T.released.text,
3172
+ "status-released-bg": T.released.bg,
3173
+ "status-review-text": T.review.text,
3174
+ "status-review-bg": T.review.bg,
3175
+ "status-hold-text": T.hold.text,
3176
+ "status-hold-bg": T.hold.bg,
3177
+ "status-inspect-text": T.inspect.text,
3178
+ "status-inspect-bg": T.inspect.bg,
3179
+ "status-unknown-text": T.unknown.text,
3180
+ "status-unknown-bg": T.unknown.bg,
3181
+ "status-missing-text": T.missing.text,
3182
+ "status-missing-bg": T.missing.bg,
3183
+ // Milestone pairs
3184
+ "ms-cleared-text": F.cleared.text,
3185
+ "ms-cleared-bg": F.cleared.bg,
3186
+ "ms-progress-text": F.progress.text,
3187
+ "ms-progress-bg": F.progress.bg,
3188
+ "ms-hold-text": F.hold.text,
3189
+ "ms-hold-bg": F.hold.bg,
3190
+ "ms-pending-text": F.pending.text,
3191
+ "ms-pending-bg": F.pending.bg,
3192
+ "ms-active-text": F.active.text,
3193
+ "ms-active-bg": F.active.bg,
3194
+ "ms-inactive-text": F.inactive.text,
3195
+ "ms-inactive-bg": F.inactive.bg,
3196
+ // Clearance pairs
3197
+ "cl-ready-text": D.ready.text,
3198
+ "cl-ready-bg": D.ready.bg,
3199
+ "cl-submitted-text": D.submitted.text,
3200
+ "cl-submitted-bg": D.submitted.bg,
3201
+ "cl-ack-text": D.ack.text,
3202
+ "cl-ack-bg": D.ack.bg,
3203
+ "cl-released-text": D.released.text,
3204
+ "cl-released-bg": D.released.bg,
3205
+ "cl-hold-text": D.hold.text,
3206
+ "cl-hold-bg": D.hold.bg,
3207
+ "cl-docs-text": D.docs.text,
3208
+ "cl-docs-bg": D.docs.bg,
3209
+ // Direction and T-status pairs
3210
+ "direction-import-text": Y.import.text,
3211
+ "direction-import-bg": Y.import.bg,
3212
+ "direction-export-text": Y.export.text,
3213
+ "direction-export-bg": Y.export.bg,
3214
+ "tstatus-t1-text": J.T1.text,
3215
+ "tstatus-t1-bg": J.T1.bg,
3216
+ "tstatus-t2-text": J.T2.text,
3217
+ "tstatus-t2-bg": J.T2.bg,
3218
+ // Warehouse status pairs
3219
+ "warehouse-draft-text": E.Draft.text,
3220
+ "warehouse-draft-bg": E.Draft.bg,
3221
+ "warehouse-expected-text": E.Expected.text,
3222
+ "warehouse-expected-bg": E.Expected.bg,
3223
+ "warehouse-received-text": E.Received.text,
3224
+ "warehouse-received-bg": E.Received.bg,
3225
+ "warehouse-located-text": E.Located.text,
3226
+ "warehouse-located-bg": E.Located.bg,
3227
+ "warehouse-out-scanned-text": E["Out-scanned"].text,
3228
+ "warehouse-out-scanned-bg": E["Out-scanned"].bg,
3229
+ // Branch module colors
3230
+ "branch-air": I.air,
3231
+ "branch-sea": I.sea,
3232
+ "branch-road": I.road,
3233
+ "branch-customs": I.customs,
3234
+ "branch-warehouse": I.warehouse,
3235
+ "branch-backoffice": I.backoffice,
3236
+ // AI bots
3237
+ "bot-vis": he.VIS,
3238
+ "bot-hist": he.HIST,
3239
+ "bot-llm": he.LLM,
3240
+ "bot-stat": he.STAT
3241
+ }, Ne = {
3242
+ // Used for every text node across the entire app (FONT constant)
3243
+ sans: "'Poppins', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
3244
+ // Used for AWB numbers, T-refs, PGTS refs, parcel IDs, integrity hashes
3245
+ mono: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace"
3246
+ }, x = {
3247
+ regular: 400,
3248
+ medium: 500,
3249
+ semibold: 600,
3250
+ bold: 700,
3251
+ extrabold: 800,
3252
+ black: 900
3253
+ }, v = {
3254
+ // Micro — nav chrome and labels
3255
+ xs2: "9px",
3256
+ // nav group headers ("Operations", "Commercial") — text-[9px]
3257
+ xs: "10px",
3258
+ // field labels (uppercase + tracking-wide), bot source text — text-[10px]
3259
+ xs3: "10.5px",
3260
+ // footnotes, panel footer text — text-[10.5px]
3261
+ // Small — secondary content
3262
+ sm2: "11px",
3263
+ // secondary meta info, pill footnotes, notify chip — text-[11px]
3264
+ sm: "12px",
3265
+ // standard body / form text, alert banners — text-[12px]
3266
+ sm3: "12.5px",
3267
+ // sidebar nav section labels — text-[12.5px]
3268
+ // Base — primary content
3269
+ base: "13px",
3270
+ // card primary text, table cell values, ref numbers — text-[13px]
3271
+ md: "14px",
3272
+ // topbar search input, dossier prose (text-sm = 14px)
3273
+ md2: "15px",
3274
+ // shipper name in detail view — text-[15px]
3275
+ md3: "16px",
3276
+ // compact KPI/card values in operational dashboards
3277
+ // Large — headings and KPI
3278
+ lg: "18px",
3279
+ // detail page title ("Announce arrival", "Register bonded storage") — text-[18px]
3280
+ xl: "20px",
3281
+ // KPI values, report headings (text-xl)
3282
+ "2xl": "24px"
3283
+ // KPI primary large value (text-2xl)
3284
+ }, ue = {
3285
+ none: "1",
3286
+ // leading-none (avatar initials, badge counters)
3287
+ tight: "1.25",
3288
+ // leading-tight (stepper labels, two-line nav items)
3289
+ snug: "1.375",
3290
+ // leading-snug (DocHeader paragraph, notification text)
3291
+ normal: "1.5"
3292
+ // leading-normal (default body)
3293
+ }, re = {
3294
+ wide: "0.025em",
3295
+ // tracking-wide (field labels: Lbl component)
3296
+ wider: "0.05em"
3297
+ // tracking-wider (sidebar group headers)
3298
+ }, Tt = {
3299
+ // ── Navigation chrome
3300
+ navGroupLabel: {
3301
+ size: v.xs2,
3302
+ weight: x.bold,
3303
+ spacing: re.wider,
3304
+ transform: "uppercase"
3305
+ },
3306
+ navSectionLabel: {
3307
+ size: v.sm3,
3308
+ weight: x.semibold
3309
+ },
3310
+ navItem: {
3311
+ size: v.sm,
3312
+ weight: x.medium
3313
+ },
3314
+ // ── Form elements
3315
+ fieldLabel: {
3316
+ size: v.xs,
3317
+ weight: x.semibold,
3318
+ spacing: re.wide,
3319
+ transform: "uppercase"
3320
+ },
3321
+ input: {
3322
+ size: v.sm,
3323
+ weight: x.regular
3324
+ },
3325
+ // ── Content hierarchy
3326
+ pageTitle: {
3327
+ size: v.xl,
3328
+ weight: x.bold
3329
+ },
3330
+ detailTitle: {
3331
+ size: v.lg,
3332
+ weight: x.bold
3333
+ },
3334
+ panelTitle: {
3335
+ size: v.md,
3336
+ weight: x.bold
3337
+ },
3338
+ body: {
3339
+ size: v.sm,
3340
+ weight: x.regular
3341
+ },
3342
+ meta: {
3343
+ size: v.sm2,
3344
+ weight: x.regular
3345
+ },
3346
+ footnote: {
3347
+ size: v.xs3,
3348
+ weight: x.regular
3349
+ },
3350
+ // ── Data display
3351
+ kpiValue: {
3352
+ size: v["2xl"],
3353
+ weight: x.bold
3354
+ },
3355
+ kpiLabel: {
3356
+ size: v.xs,
3357
+ weight: x.semibold,
3358
+ spacing: re.wide,
3359
+ transform: "uppercase"
3360
+ },
3361
+ tableValue: {
3362
+ size: v.base,
3363
+ weight: x.regular
3364
+ },
3365
+ reference: {
3366
+ size: v.base,
3367
+ weight: x.bold,
3368
+ family: Ne.mono
3369
+ },
3370
+ badge: {
3371
+ size: "11px",
3372
+ weight: x.semibold
3373
+ },
3374
+ chip: {
3375
+ size: "10px",
3376
+ weight: x.bold
3377
+ },
3378
+ // ── Buttons
3379
+ btn: {
3380
+ size: v.xs,
3381
+ weight: x.semibold
3382
+ }
3383
+ }, mn = {
3384
+ "font-sans": Ne.sans,
3385
+ "font-mono": Ne.mono,
3386
+ "size-xs2": v.xs2,
3387
+ "size-xs": v.xs,
3388
+ "size-xs3": v.xs3,
3389
+ "size-sm2": v.sm2,
3390
+ "size-sm": v.sm,
3391
+ "size-sm3": v.sm3,
3392
+ "size-base": v.base,
3393
+ "size-md": v.md,
3394
+ "size-md2": v.md2,
3395
+ "size-md3": v.md3,
3396
+ "size-lg": v.lg,
3397
+ "size-xl": v.xl,
3398
+ "size-2xl": v["2xl"],
3399
+ "weight-regular": String(x.regular),
3400
+ "weight-medium": String(x.medium),
3401
+ "weight-semibold": String(x.semibold),
3402
+ "weight-bold": String(x.bold),
3403
+ "weight-extrabold": String(x.extrabold),
3404
+ "weight-black": String(x.black),
3405
+ "leading-tight": ue.tight,
3406
+ "leading-none": ue.none,
3407
+ "leading-snug": ue.snug,
3408
+ "leading-normal": ue.normal,
3409
+ "tracking-wide": re.wide,
3410
+ "tracking-wider": re.wider
3411
+ }, R = {
3412
+ 0: "0px",
3413
+ 0.5: "2px",
3414
+ // py-0.5 — pill vertical padding
3415
+ 1: "4px",
3416
+ // gap-1, mb-0.5 — tightest gap
3417
+ 1.5: "6px",
3418
+ // gap-1.5, px-1.5, py-1, mb-1 — tight gap
3419
+ 2: "8px",
3420
+ // gap-2, px-2, py-1.5 — standard gap
3421
+ 2.5: "10px",
3422
+ // gap-2.5, px-2.5, py-2 — search bar / chip pad
3423
+ 3: "12px",
3424
+ // gap-3, px-3, py-2.5, mb-3 — section gap
3425
+ 3.5: "14px",
3426
+ // px-3.5, py-3 — alert banner / Btn padding
3427
+ 4: "16px",
3428
+ // gap-4, px-4, py-3.5 — card internal gap
3429
+ 5: "20px",
3430
+ // py-5 — main content vertical pad
3431
+ 6: "24px",
3432
+ // px-6, py-6 — main content horizontal pad, topbar px
3433
+ 8: "32px"
3434
+ // px-8 — dossier print horizontal pad
3435
+ }, w = {
3436
+ // App shell
3437
+ sidebarWidth: "224px",
3438
+ // w-[224px] — Sidebar component
3439
+ topbarHeight: "58px",
3440
+ // h-[58px] — Topbar component
3441
+ // Sidebar internals
3442
+ logoHeight: "46px",
3443
+ // img height inside Sidebar logo zone
3444
+ // Icon sizes used across the app (passed as `size` prop)
3445
+ icon: {
3446
+ xs: 11,
3447
+ // ChevronRight in breadcrumb, inline chips
3448
+ sm: 12,
3449
+ // inline row meta icons (MapPin, FileText, Calendar, Euro)
3450
+ md: 13,
3451
+ // action chip icons (CheckCircle2, AlertTriangle inline)
3452
+ base: 14,
3453
+ // Btn icon, ChevronDown, Search topbar
3454
+ lg: 15,
3455
+ // PanelCard icon, alert banner icon, topbar Bell, Lbl icon
3456
+ xl: 16,
3457
+ // SidebarItem icon, row avatar icon, back arrow, topbar Bell
3458
+ "2xl": 17,
3459
+ // topbar Bell (notification)
3460
+ "3xl": 18
3461
+ // ScanZone icons (Camera, Upload)
3462
+ },
3463
+ // Avatars / icon containers
3464
+ avatar: {
3465
+ sm: "24px",
3466
+ // user switch dropdown avatar (h-6 w-6)
3467
+ md: "28px",
3468
+ // Stepper circle (h-7 w-7)
3469
+ base: "32px",
3470
+ // Topbar user avatar (h-8 w-8)
3471
+ lg: "36px"
3472
+ // row icon container (h-9 w-9, grid place-items-center rounded-lg)
3473
+ },
3474
+ // Thumbnails (ScanZone document previews)
3475
+ thumbnailWidth: "88px",
3476
+ thumbnailHeight: "64px",
3477
+ // Max-widths
3478
+ searchBarMax: "340px",
3479
+ // list page search bars (maxWidth: 340)
3480
+ topbarSearchMax: "max-w-md",
3481
+ // topbar global search
3482
+ dossierMax: "800px",
3483
+ // max-w-[800px] dossier print area
3484
+ // Donut chart defaults
3485
+ donutDefault: "52px",
3486
+ donutLarge: "72px"
3487
+ // ShipperDetail donut
3488
+ }, j = {
3489
+ none: "0px",
3490
+ sm: "4px",
3491
+ // rounded — progress bars, compare bars, sparkline bars
3492
+ md: "6px",
3493
+ // (implied Tailwind md, not explicitly observed but logical gap)
3494
+ lg: "8px",
3495
+ // rounded-lg — Btn, inputs, search bar, nav items, thumbnails
3496
+ xl: "12px",
3497
+ // rounded-xl — section panels, alert banners, list row items, form areas
3498
+ "2xl": "16px",
3499
+ // rounded-2xl — Card, PanelCard, Kpi, page-level cards
3500
+ full: "9999px"
3501
+ // rounded-full — status pills, avatar circles, tab switcher, notification dot
3502
+ }, Ie = {
3503
+ // shadow-sm — ShipperRow hover state
3504
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
3505
+ // shadow-lg — Topbar user dropdown
3506
+ lg: "0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)",
3507
+ // No other shadows observed in the prototype
3508
+ none: "none"
3509
+ }, He = {
3510
+ sm: "640px",
3511
+ // sm: — KPI grid 2-col → 4-col, form 1-col → 2-col
3512
+ lg: "1024px"
3513
+ // lg: — Shipper detail 1-col → 3-col, dossier media grid
3514
+ }, pe = {
3515
+ base: 0,
3516
+ raised: 10,
3517
+ dropdown: 20,
3518
+ // z-20 — Topbar user account dropdown
3519
+ overlay: 30
3520
+ // Dossier / Proforma full-screen overlay (implied above shell)
3521
+ }, Ce = {
3522
+ // ChevronDown rotation in sidebar accordion
3523
+ chevron: "transform 0.15s ease",
3524
+ // Tailwind `transition` class on interactive elements (Btn, row buttons)
3525
+ default: "all 0.15s ease",
3526
+ // Connectivity feed polling interval (not a CSS transition, but a timing constant)
3527
+ feedPoll: 4e3
3528
+ // ms
3529
+ }, ke = {
3530
+ // @keyframes flpulse — used on connectivity status indicators
3531
+ flpulse: {
3532
+ name: "flpulse",
3533
+ keyframes: `
3534
+ 0% { opacity: 0.3; }
3535
+ 50% { opacity: 1; }
3536
+ 100% { opacity: 0.3; }
3537
+ `,
3538
+ duration: "1.5s",
3539
+ timing: "ease-in-out",
3540
+ iteration: "infinite"
3541
+ }
3542
+ }, gn = {
3543
+ // Spacing
3544
+ "space-0": R[0],
3545
+ "space-0_5": R[0.5],
3546
+ "space-1": R[1],
3547
+ "space-1_5": R[1.5],
3548
+ "space-2": R[2],
3549
+ "space-2_5": R[2.5],
3550
+ "space-3": R[3],
3551
+ "space-3_5": R[3.5],
3552
+ "space-4": R[4],
3553
+ "space-5": R[5],
3554
+ "space-6": R[6],
3555
+ "space-8": R[8],
3556
+ // Shell
3557
+ "sidebar-width": w.sidebarWidth,
3558
+ "topbar-height": w.topbarHeight,
3559
+ "logo-height": w.logoHeight,
3560
+ // Icon sizes
3561
+ "icon-xs": String(w.icon.xs),
3562
+ "icon-sm": String(w.icon.sm),
3563
+ "icon-md": String(w.icon.md),
3564
+ "icon-base": String(w.icon.base),
3565
+ "icon-lg": String(w.icon.lg),
3566
+ "icon-xl": String(w.icon.xl),
3567
+ "icon-2xl": String(w.icon["2xl"]),
3568
+ "icon-3xl": String(w.icon["3xl"]),
3569
+ // Avatar and media sizes
3570
+ "avatar-sm": w.avatar.sm,
3571
+ "avatar-md": w.avatar.md,
3572
+ "avatar-base": w.avatar.base,
3573
+ "avatar-lg": w.avatar.lg,
3574
+ "thumbnail-width": w.thumbnailWidth,
3575
+ "thumbnail-height": w.thumbnailHeight,
3576
+ "search-bar-max": w.searchBarMax,
3577
+ "topbar-search-max": w.topbarSearchMax,
3578
+ "dossier-max": w.dossierMax,
3579
+ "donut-default": w.donutDefault,
3580
+ "donut-large": w.donutLarge,
3581
+ // Radius
3582
+ "radius-sm": j.sm,
3583
+ "radius-md": j.md,
3584
+ "radius-lg": j.lg,
3585
+ "radius-xl": j.xl,
3586
+ "radius-2xl": j["2xl"],
3587
+ "radius-full": j.full,
3588
+ // Shadow
3589
+ "shadow-sm": Ie.sm,
3590
+ "shadow-lg": Ie.lg,
3591
+ // Z-index
3592
+ "z-base": String(pe.base),
3593
+ "z-raised": String(pe.raised),
3594
+ "z-dropdown": String(pe.dropdown),
3595
+ "z-overlay": String(pe.overlay),
3596
+ // Breakpoints and transitions
3597
+ "breakpoint-sm": He.sm,
3598
+ "breakpoint-lg": He.lg,
3599
+ "transition-chevron": Ce.chevron,
3600
+ "transition-default": Ce.default,
3601
+ "feed-poll-ms": String(Ce.feedPoll),
3602
+ "flpulse-duration": ke.flpulse.duration,
3603
+ "flpulse-timing": ke.flpulse.timing,
3604
+ "flpulse-iteration": ke.flpulse.iteration
3605
+ };
3606
+ export {
3607
+ It as Accordion,
3608
+ Aa as Alert,
3609
+ le as Avatar,
3610
+ oe as Badge,
3611
+ Ke as Banner,
3612
+ Je as Breadcrumb,
3613
+ N as Button,
3614
+ ge as Card,
3615
+ Lt as CardBody,
3616
+ Ge as CardFooter,
3617
+ Se as CardHeader,
3618
+ se as Checkbox,
3619
+ nn as Col,
3620
+ Et as CompareBar,
3621
+ hn as ComponentShowcase,
3622
+ Qt as ConfirmDialog,
3623
+ tn as Container,
3624
+ en as ContextMenu,
3625
+ Gt as CopyButton,
3626
+ dn as DashboardDemo,
3627
+ Wt as DataList,
3628
+ jt as DateInput,
3629
+ ln as Divider,
3630
+ Bt as Donut,
3631
+ Yt as Drawer,
3632
+ Ot as EmptyState,
3633
+ fa as FileUpload,
3634
+ Fa as Footer,
3635
+ fe as FormGroup,
3636
+ cn as Grid,
3637
+ Ta as Header,
3638
+ s as Icon,
3639
+ H as Input,
3640
+ zt as KV,
3641
+ qe as Modal,
3642
+ Ye as Nav,
3643
+ Me as NavContext,
3644
+ X as NavGroup,
3645
+ L as NavItem,
3646
+ La as Page,
3647
+ rn as PageHeader,
3648
+ an as Pagination,
3649
+ Pt as Popover,
3650
+ Vt as ProgressBar,
3651
+ un as PrototypeHome,
3652
+ xa as Radio,
3653
+ Ut as RadioGroup,
3654
+ $ as Row,
3655
+ Kt as ScanZone,
3656
+ qt as SearchInput,
3657
+ ne as Select,
3658
+ Ma as Sidebar,
3659
+ Jt as Skeleton,
3660
+ sn as Spacer,
3661
+ _a as Spinner,
3662
+ on as Stack,
3663
+ V as StatCard,
3664
+ Xt as Stepper,
3665
+ Ue as Table,
3666
+ Zt as Tabs,
3667
+ Q as Tag,
3668
+ me as Textarea,
3669
+ Ht as Timeline,
3670
+ ka as ToastProvider,
3671
+ q as Toggle,
3672
+ $t as Tooltip,
3673
+ Rt as TrendSpark,
3674
+ he as aiBot,
3675
+ ke as animation,
3676
+ I as branchModule,
3677
+ He as breakpoint,
3678
+ D as clearance,
3679
+ pn as colorTokens,
3680
+ Y as direction,
3681
+ Ne as fontFamily,
3682
+ v as fontSize,
3683
+ x as fontWeight,
3684
+ la as iconNames,
3685
+ gn as layoutTokens,
3686
+ re as letterSpacing,
3687
+ ue as lineHeight,
3688
+ F as milestone,
3689
+ P as neutral,
3690
+ te as primary,
3691
+ j as radius,
3692
+ _ as semantic,
3693
+ Ie as shadow,
3694
+ w as size,
3695
+ R as spacing,
3696
+ T as status,
3697
+ J as tStatus,
3698
+ Tt as textStyle,
3699
+ Ce as transition,
3700
+ mn as typographyTokens,
3701
+ wa as useToast,
3702
+ E as warehouseStatus,
3703
+ pe as zIndex
3704
+ };