@mantis-core/ui 0.3.0 → 0.5.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 (234) hide show
  1. package/COMPONENTS.md +115 -15
  2. package/dist/components/Forms/ColorPickerInput.d.ts +10 -0
  3. package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -0
  4. package/dist/components/Forms/ColorPickerInput.js +13 -0
  5. package/dist/components/Forms/ColorPickerInput.js.map +1 -0
  6. package/dist/components/Forms/Combobox.d.ts +10 -0
  7. package/dist/components/Forms/Combobox.d.ts.map +1 -0
  8. package/dist/components/Forms/Combobox.js +11 -0
  9. package/dist/components/Forms/Combobox.js.map +1 -0
  10. package/dist/components/Forms/DatePresets.d.ts +14 -0
  11. package/dist/components/Forms/DatePresets.d.ts.map +1 -0
  12. package/dist/components/Forms/DatePresets.js +55 -0
  13. package/dist/components/Forms/DatePresets.js.map +1 -0
  14. package/dist/components/Forms/OtpInput.d.ts +11 -0
  15. package/dist/components/Forms/OtpInput.d.ts.map +1 -0
  16. package/dist/components/Forms/OtpInput.js +11 -0
  17. package/dist/components/Forms/OtpInput.js.map +1 -0
  18. package/dist/components/Forms/PasswordInput.d.ts +12 -0
  19. package/dist/components/Forms/PasswordInput.d.ts.map +1 -0
  20. package/dist/components/Forms/PasswordInput.js +31 -0
  21. package/dist/components/Forms/PasswordInput.js.map +1 -0
  22. package/dist/components/Forms/RatingInput.d.ts +11 -0
  23. package/dist/components/Forms/RatingInput.d.ts.map +1 -0
  24. package/dist/components/Forms/RatingInput.js +11 -0
  25. package/dist/components/Forms/RatingInput.js.map +1 -0
  26. package/dist/components/Forms/TagsInput.d.ts +10 -0
  27. package/dist/components/Forms/TagsInput.d.ts.map +1 -0
  28. package/dist/components/Forms/TagsInput.js +11 -0
  29. package/dist/components/Forms/TagsInput.js.map +1 -0
  30. package/dist/components/auth/ChangePasswordForm.d.ts +16 -0
  31. package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -0
  32. package/dist/components/auth/ChangePasswordForm.js +23 -0
  33. package/dist/components/auth/ChangePasswordForm.js.map +1 -0
  34. package/dist/components/auth/ForgotPasswordForm.d.ts +15 -0
  35. package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -0
  36. package/dist/components/auth/ForgotPasswordForm.js +14 -0
  37. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  38. package/dist/components/auth/LoginForm.d.ts +22 -0
  39. package/dist/components/auth/LoginForm.d.ts.map +1 -0
  40. package/dist/components/auth/LoginForm.js +20 -0
  41. package/dist/components/auth/LoginForm.js.map +1 -0
  42. package/dist/components/auth/ResetPasswordForm.d.ts +16 -0
  43. package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -0
  44. package/dist/components/auth/ResetPasswordForm.js +23 -0
  45. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  46. package/dist/components/auth/UserMenu.d.ts +22 -0
  47. package/dist/components/auth/UserMenu.d.ts.map +1 -0
  48. package/dist/components/auth/UserMenu.js +95 -0
  49. package/dist/components/auth/UserMenu.js.map +1 -0
  50. package/dist/components/auth/index.d.ts +11 -0
  51. package/dist/components/auth/index.d.ts.map +1 -0
  52. package/dist/components/auth/index.js +6 -0
  53. package/dist/components/auth/index.js.map +1 -0
  54. package/dist/components/charts/BarChart.d.ts +20 -0
  55. package/dist/components/charts/BarChart.d.ts.map +1 -0
  56. package/dist/components/charts/BarChart.js +28 -0
  57. package/dist/components/charts/BarChart.js.map +1 -0
  58. package/dist/components/charts/DonutChart.d.ts +21 -0
  59. package/dist/components/charts/DonutChart.d.ts.map +1 -0
  60. package/dist/components/charts/DonutChart.js +26 -0
  61. package/dist/components/charts/DonutChart.js.map +1 -0
  62. package/dist/components/charts/LineChart.d.ts +20 -0
  63. package/dist/components/charts/LineChart.d.ts.map +1 -0
  64. package/dist/components/charts/LineChart.js +27 -0
  65. package/dist/components/charts/LineChart.js.map +1 -0
  66. package/dist/components/charts/chart-setup.d.ts +3 -0
  67. package/dist/components/charts/chart-setup.d.ts.map +1 -0
  68. package/dist/components/charts/chart-setup.js +10 -0
  69. package/dist/components/charts/chart-setup.js.map +1 -0
  70. package/dist/components/charts/defaults.d.ts +13 -0
  71. package/dist/components/charts/defaults.d.ts.map +1 -0
  72. package/dist/components/charts/defaults.js +54 -0
  73. package/dist/components/charts/defaults.js.map +1 -0
  74. package/dist/components/charts/index.d.ts +9 -0
  75. package/dist/components/charts/index.d.ts.map +1 -0
  76. package/dist/components/charts/index.js +6 -0
  77. package/dist/components/charts/index.js.map +1 -0
  78. package/dist/components/data/DescriptionList.d.ts +11 -0
  79. package/dist/components/data/DescriptionList.d.ts.map +1 -0
  80. package/dist/components/data/DescriptionList.js +23 -0
  81. package/dist/components/data/DescriptionList.js.map +1 -0
  82. package/dist/components/data/StatCard.d.ts +14 -0
  83. package/dist/components/data/StatCard.d.ts.map +1 -0
  84. package/dist/components/data/StatCard.js +39 -0
  85. package/dist/components/data/StatCard.js.map +1 -0
  86. package/dist/components/data/Timeline.d.ts +15 -0
  87. package/dist/components/data/Timeline.d.ts.map +1 -0
  88. package/dist/components/data/Timeline.js +20 -0
  89. package/dist/components/data/Timeline.js.map +1 -0
  90. package/dist/components/feedback/Avatar.d.ts +9 -0
  91. package/dist/components/feedback/Avatar.d.ts.map +1 -0
  92. package/dist/components/feedback/Avatar.js +15 -0
  93. package/dist/components/feedback/Avatar.js.map +1 -0
  94. package/dist/components/feedback/CardSkeleton.d.ts +6 -0
  95. package/dist/components/feedback/CardSkeleton.d.ts.map +1 -0
  96. package/dist/components/feedback/CardSkeleton.js +7 -0
  97. package/dist/components/feedback/CardSkeleton.js.map +1 -0
  98. package/dist/components/feedback/EmptyState.d.ts +9 -0
  99. package/dist/components/feedback/EmptyState.d.ts.map +1 -0
  100. package/dist/components/feedback/EmptyState.js +6 -0
  101. package/dist/components/feedback/EmptyState.js.map +1 -0
  102. package/dist/components/feedback/ErrorBoundary.d.ts +18 -0
  103. package/dist/components/feedback/ErrorBoundary.d.ts.map +1 -0
  104. package/dist/components/feedback/ErrorBoundary.js +24 -0
  105. package/dist/components/feedback/ErrorBoundary.js.map +1 -0
  106. package/dist/components/feedback/TableSkeleton.d.ts +7 -0
  107. package/dist/components/feedback/TableSkeleton.d.ts.map +1 -0
  108. package/dist/components/feedback/TableSkeleton.js +7 -0
  109. package/dist/components/feedback/TableSkeleton.js.map +1 -0
  110. package/dist/components/feedback/Tag.d.ts +6 -0
  111. package/dist/components/feedback/Tag.d.ts.map +1 -0
  112. package/dist/components/feedback/Tag.js +7 -0
  113. package/dist/components/feedback/Tag.js.map +1 -0
  114. package/dist/components/navigation/CommandPalette.d.ts +17 -0
  115. package/dist/components/navigation/CommandPalette.d.ts.map +1 -0
  116. package/dist/components/navigation/CommandPalette.js +73 -0
  117. package/dist/components/navigation/CommandPalette.js.map +1 -0
  118. package/dist/components/navigation/PageTabs.d.ts +14 -0
  119. package/dist/components/navigation/PageTabs.d.ts.map +1 -0
  120. package/dist/components/navigation/PageTabs.js +21 -0
  121. package/dist/components/navigation/PageTabs.js.map +1 -0
  122. package/dist/components/overlays/Drawer.d.ts +6 -0
  123. package/dist/components/overlays/Drawer.d.ts.map +1 -0
  124. package/dist/components/overlays/Drawer.js +8 -0
  125. package/dist/components/overlays/Drawer.js.map +1 -0
  126. package/dist/components/overlays/Modal.d.ts +6 -0
  127. package/dist/components/overlays/Modal.d.ts.map +1 -0
  128. package/dist/components/overlays/Modal.js +8 -0
  129. package/dist/components/overlays/Modal.js.map +1 -0
  130. package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -1
  131. package/dist/components/pages/app-shell/AppShell.js +11 -9
  132. package/dist/components/pages/app-shell/AppShell.js.map +1 -1
  133. package/dist/components/pages/app-shell/types.d.ts +4 -0
  134. package/dist/components/pages/app-shell/types.d.ts.map +1 -1
  135. package/dist/validation/index.d.ts +2 -0
  136. package/dist/validation/index.d.ts.map +1 -0
  137. package/dist/validation/index.js +3 -0
  138. package/dist/validation/index.js.map +1 -0
  139. package/dist/validation/rules.d.ts +10 -0
  140. package/dist/validation/rules.d.ts.map +1 -0
  141. package/dist/validation/rules.js +39 -0
  142. package/dist/validation/rules.js.map +1 -0
  143. package/dist/validation/zod.d.ts +2 -0
  144. package/dist/validation/zod.d.ts.map +1 -0
  145. package/dist/validation/zod.js +3 -0
  146. package/dist/validation/zod.js.map +1 -0
  147. package/docs/components/action-column.md +14 -13
  148. package/docs/components/admin-page-configurator.md +23 -0
  149. package/docs/components/admin-page-header.md +15 -17
  150. package/docs/components/admin-page-layout-shell.md +22 -0
  151. package/docs/components/admin-page-layout.md +11 -20
  152. package/docs/components/app-shell.md +20 -0
  153. package/docs/components/async-select.md +18 -17
  154. package/docs/components/avatar.md +19 -0
  155. package/docs/components/bar-chart.md +21 -0
  156. package/docs/components/breadcrumbs.md +15 -0
  157. package/docs/components/button.md +20 -15
  158. package/docs/components/card-skeleton.md +15 -0
  159. package/docs/components/change-password-form.md +17 -0
  160. package/docs/components/ckeditor-input.md +15 -16
  161. package/docs/components/color-picker-input.md +19 -0
  162. package/docs/components/combobox.md +19 -0
  163. package/docs/components/command-palette.md +17 -0
  164. package/docs/components/confirm-dialog.md +19 -17
  165. package/docs/components/currency-input.md +21 -0
  166. package/docs/components/data-state.md +15 -15
  167. package/docs/components/date-input.md +17 -18
  168. package/docs/components/date-presets.md +18 -0
  169. package/docs/components/date-range-input.md +20 -0
  170. package/docs/components/description-list.md +16 -0
  171. package/docs/components/dirty-form-guard.md +15 -23
  172. package/docs/components/donut-chart.md +21 -0
  173. package/docs/components/drawer.md +19 -0
  174. package/docs/components/drop-down.md +18 -20
  175. package/docs/components/empty-state.md +18 -0
  176. package/docs/components/error-boundary.md +17 -0
  177. package/docs/components/error-message.md +11 -9
  178. package/docs/components/file-dropzone.md +28 -16
  179. package/docs/components/filter-pannel.md +12 -14
  180. package/docs/components/forgot-password-form.md +18 -0
  181. package/docs/components/form-actions-bar.md +29 -18
  182. package/docs/components/form-field-render.md +16 -16
  183. package/docs/components/form-section.md +15 -11
  184. package/docs/components/form-wizard.md +18 -0
  185. package/docs/components/hidden-field.md +12 -15
  186. package/docs/components/index-column.md +12 -9
  187. package/docs/components/line-chart.md +21 -0
  188. package/docs/components/loading.md +14 -12
  189. package/docs/components/login-form.md +22 -0
  190. package/docs/components/map-picker-client.md +14 -14
  191. package/docs/components/map-picker-osm.md +16 -14
  192. package/docs/components/map-picker.md +14 -17
  193. package/docs/components/menu-button.md +14 -18
  194. package/docs/components/modal.md +20 -0
  195. package/docs/components/multi-select-filter.md +14 -16
  196. package/docs/components/multi-select.md +18 -19
  197. package/docs/components/number-input.md +17 -16
  198. package/docs/components/otp-input.md +18 -0
  199. package/docs/components/page-tabs.md +16 -0
  200. package/docs/components/page-title.md +11 -9
  201. package/docs/components/paginated-table.md +19 -26
  202. package/docs/components/pagination.md +15 -18
  203. package/docs/components/password-input.md +19 -0
  204. package/docs/components/phone-input.md +18 -0
  205. package/docs/components/radio-group.md +20 -0
  206. package/docs/components/range-slider.md +20 -0
  207. package/docs/components/rating-input.md +19 -0
  208. package/docs/components/render-field.md +15 -20
  209. package/docs/components/reset-password-form.md +17 -0
  210. package/docs/components/rich-text-preview.md +15 -14
  211. package/docs/components/search-input.md +19 -0
  212. package/docs/components/select.md +19 -19
  213. package/docs/components/stat-card.md +19 -0
  214. package/docs/components/status-badge.md +16 -10
  215. package/docs/components/switch.md +16 -19
  216. package/docs/components/table-filter-field.md +13 -17
  217. package/docs/components/table-skeleton.md +16 -0
  218. package/docs/components/table-toolbar.md +16 -15
  219. package/docs/components/tag.md +18 -0
  220. package/docs/components/tags-input.md +19 -0
  221. package/docs/components/text-area.md +16 -16
  222. package/docs/components/text-input.md +16 -15
  223. package/docs/components/time-picker.md +17 -14
  224. package/docs/components/timeline.md +15 -0
  225. package/docs/components/toggle-inline-button.md +17 -18
  226. package/docs/components/toggle.md +20 -17
  227. package/docs/components/upload-files-preview.md +20 -22
  228. package/docs/components/user-menu.md +19 -0
  229. package/docs/contracts/component-doc-schema.md +78 -0
  230. package/docs/contracts/dependency-map.md +68 -29
  231. package/docs/contracts/style-imports.md +38 -12
  232. package/llms.txt +106 -0
  233. package/package.json +40 -4
  234. package/PRIMEREACT_MAPPING.md +0 -6
@@ -0,0 +1,14 @@
1
+ import React, { type ReactNode } from "react";
2
+ type StatCardProps = React.HTMLAttributes<HTMLDivElement> & {
3
+ label: string;
4
+ value: ReactNode;
5
+ icon?: ReactNode;
6
+ trend?: {
7
+ value: number;
8
+ direction: "up" | "down";
9
+ };
10
+ footer?: ReactNode;
11
+ };
12
+ declare const StatCard: React.FC<StatCardProps>;
13
+ export default StatCard;
14
+ //# sourceMappingURL=StatCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatCard.d.ts","sourceRoot":"","sources":["../../../src/components/data/StatCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,KAAK,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,CAAC;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ const StatCard = ({ label, value, icon, trend, footer, className, ...rest }) => (_jsxs("div", { className: classNames("mantis-core-stat-card", className), style: {
4
+ background: "var(--card)",
5
+ border: "1px solid var(--border)",
6
+ borderRadius: "8px",
7
+ padding: "20px",
8
+ }, ...rest, children: [_jsxs("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between", gap: "12px" }, children: [_jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [_jsx("p", { style: {
9
+ margin: 0,
10
+ fontSize: "12px",
11
+ fontWeight: 600,
12
+ textTransform: "uppercase",
13
+ letterSpacing: "0.05em",
14
+ color: "var(--muted-foreground)",
15
+ }, children: label }), _jsx("p", { style: {
16
+ margin: "6px 0 0",
17
+ fontSize: "28px",
18
+ fontWeight: 700,
19
+ lineHeight: 1.1,
20
+ color: "var(--foreground, inherit)",
21
+ }, children: value })] }), icon && (_jsx("span", { style: {
22
+ flexShrink: 0,
23
+ color: "var(--primary)",
24
+ display: "flex",
25
+ alignItems: "center",
26
+ }, children: icon }))] }), trend && (_jsxs("p", { style: {
27
+ margin: "10px 0 0",
28
+ fontSize: "13px",
29
+ fontWeight: 500,
30
+ color: trend.direction === "up" ? "green" : "red",
31
+ }, children: [trend.direction === "up" ? "▲" : "▼", " ", trend.value, "%"] })), footer && (_jsx("div", { style: {
32
+ marginTop: "12px",
33
+ paddingTop: "12px",
34
+ borderTop: "1px solid var(--border)",
35
+ color: "var(--muted-foreground)",
36
+ fontSize: "13px",
37
+ }, children: footer }))] }));
38
+ export default StatCard;
39
+ //# sourceMappingURL=StatCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatCard.js","sourceRoot":"","sources":["../../../src/components/data/StatCard.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AAUpC,MAAM,QAAQ,GAA4B,CAAC,EACzC,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,EAAE,CAAC,CACJ,eACE,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,EACzD,KAAK,EAAE;QACL,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,MAAM;KAChB,KACG,IAAI,aAER,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,aACrG,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAClC,YACE,KAAK,EAAE;gCACL,MAAM,EAAE,CAAC;gCACT,QAAQ,EAAE,MAAM;gCAChB,UAAU,EAAE,GAAG;gCACf,aAAa,EAAE,WAAW;gCAC1B,aAAa,EAAE,QAAQ;gCACvB,KAAK,EAAE,yBAAyB;6BACjC,YAEA,KAAK,GACJ,EACJ,YACE,KAAK,EAAE;gCACL,MAAM,EAAE,SAAS;gCACjB,QAAQ,EAAE,MAAM;gCAChB,UAAU,EAAE,GAAG;gCACf,UAAU,EAAE,GAAG;gCACf,KAAK,EAAE,4BAA4B;6BACpC,YAEA,KAAK,GACJ,IACA,EACL,IAAI,IAAI,CACP,eACE,KAAK,EAAE;wBACL,UAAU,EAAE,CAAC;wBACb,KAAK,EAAE,gBAAgB;wBACvB,OAAO,EAAE,MAAM;wBACf,UAAU,EAAE,QAAQ;qBACrB,YAEA,IAAI,GACA,CACR,IACG,EAEL,KAAK,IAAI,CACR,aACE,KAAK,EAAE;gBACL,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;aAClD,aAEA,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAG,KAAK,CAAC,KAAK,SACjD,CACL,EAEA,MAAM,IAAI,CACT,cACE,KAAK,EAAE;gBACL,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,yBAAyB;gBACpC,KAAK,EAAE,yBAAyB;gBAChC,QAAQ,EAAE,MAAM;aACjB,YAEA,MAAM,GACH,CACP,IACG,CACP,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React, { type ReactNode } from "react";
2
+ import { type TimelineProps as PrimeTimelineProps } from "primereact/timeline";
3
+ type TimelineItem = {
4
+ date?: string;
5
+ title: string;
6
+ description?: string;
7
+ icon?: ReactNode;
8
+ color?: string;
9
+ };
10
+ type TimelineProps = Omit<PrimeTimelineProps, "value" | "content" | "marker"> & {
11
+ items: TimelineItem[];
12
+ };
13
+ declare const Timeline: React.FC<TimelineProps>;
14
+ export default Timeline;
15
+ //# sourceMappingURL=Timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../src/components/data/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAA6B,KAAK,aAAa,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1G,KAAK,YAAY,GAAG;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG;IAC9E,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkDrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Timeline as PrimeTimeline } from "primereact/timeline";
3
+ const Timeline = ({ items, ...rest }) => (_jsx("div", { className: "mantis-core-timeline", children: _jsx(PrimeTimeline, { value: items, content: (item) => (_jsxs("div", { style: { paddingBottom: "12px" }, children: [_jsx("p", { style: { margin: 0, fontWeight: 600, fontSize: "14px" }, children: item.title }), item.description && (_jsx("p", { style: { margin: "4px 0 0", fontSize: "13px", color: "var(--muted-foreground)" }, children: item.description })), item.date && (_jsx("p", { style: { margin: "4px 0 0", fontSize: "12px", color: "var(--muted-foreground)" }, children: item.date }))] })), marker: (item) => item.icon ? (_jsx("span", { style: {
4
+ display: "flex",
5
+ alignItems: "center",
6
+ justifyContent: "center",
7
+ width: "28px",
8
+ height: "28px",
9
+ borderRadius: "50%",
10
+ background: item.color ?? "var(--primary)",
11
+ color: "white",
12
+ }, children: item.icon })) : (_jsx("span", { style: {
13
+ display: "block",
14
+ width: "12px",
15
+ height: "12px",
16
+ borderRadius: "50%",
17
+ background: item.color ?? "var(--primary)",
18
+ } })), ...rest }) }));
19
+ export default Timeline;
20
+ //# sourceMappingURL=Timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../../../src/components/data/Timeline.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,IAAI,aAAa,EAA4C,MAAM,qBAAqB,CAAC;AAc1G,MAAM,QAAQ,GAA4B,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAChE,cAAK,SAAS,EAAC,sBAAsB,YACnC,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAC/B,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aACnC,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,IAAI,CAAC,KAAK,GAAK,EAC3E,IAAI,CAAC,WAAW,IAAI,CACnB,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAChF,IAAI,CAAC,WAAW,GACf,CACL,EACA,IAAI,CAAC,IAAI,IAAI,CACZ,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAChF,IAAI,CAAC,IAAI,GACR,CACL,IACG,CACP,EACD,MAAM,EAAE,CAAC,IAAkB,EAAE,EAAE,CAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACV,eACE,KAAK,EAAE;gBACL,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,gBAAgB;gBAC1C,KAAK,EAAE,OAAO;aACf,YAEA,IAAI,CAAC,IAAI,GACL,CACR,CAAC,CAAC,CAAC,CACF,eACE,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,gBAAgB;aAC3C,GACD,CACH,KAEC,IAAI,GACR,GACE,CACP,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { AvatarProps as PrimeAvatarProps } from "primereact/avatar";
2
+ export interface AvatarProps extends Omit<PrimeAvatarProps, "label"> {
3
+ /** Shown as initials when no `image` is provided. Derives first letter of first + last word. */
4
+ name?: string;
5
+ /** Override initials explicitly (falls back to name-derived initials). */
6
+ label?: string;
7
+ }
8
+ export default function Avatar({ name, label, image, className, ...rest }: AvatarProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/Avatar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAClE,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,WAAW,2CAWrF"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { Avatar as PrimeAvatar } from "primereact/avatar";
5
+ function initials(name) {
6
+ const parts = name.trim().split(/\s+/);
7
+ if (parts.length === 1)
8
+ return parts[0][0].toUpperCase();
9
+ return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
10
+ }
11
+ export default function Avatar({ name, label, image, className, ...rest }) {
12
+ const resolvedLabel = label ?? (name && !image ? initials(name) : undefined);
13
+ return (_jsx(PrimeAvatar, { image: image, label: resolvedLabel, className: classNames("mantis-core-avatar", className), ...rest }));
14
+ }
15
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../src/components/feedback/Avatar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAU1D,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAe;IACpF,MAAM,aAAa,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7E,OAAO,CACL,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,KAClD,IAAI,GACR,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export interface CardSkeletonProps extends HTMLAttributes<HTMLDivElement> {
3
+ count?: number;
4
+ }
5
+ export default function CardSkeleton({ count, className, ...rest }: CardSkeletonProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=CardSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardSkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/CardSkeleton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAS,EACT,SAAS,EACT,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAYnB"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ import { Skeleton } from "primereact/skeleton";
4
+ export default function CardSkeleton({ count = 3, className, ...rest }) {
5
+ return (_jsx("div", { className: classNames("mantis-core-card-skeleton", className), ...rest, children: Array.from({ length: count }, (_, i) => (_jsxs("div", { className: "mantis-core-card-skeleton__card", children: [_jsx(Skeleton, { height: "10rem", className: "mantis-core-card-skeleton__image" }), _jsx(Skeleton, { height: "1rem", className: "mantis-core-card-skeleton__line" }), _jsx(Skeleton, { height: "1rem", width: "60%", className: "mantis-core-card-skeleton__line" })] }, i))) }));
6
+ }
7
+ //# sourceMappingURL=CardSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardSkeleton.js","sourceRoot":"","sources":["../../../src/components/feedback/CardSkeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM/C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,GAAG,CAAC,EACT,SAAS,EACT,GAAG,IAAI,EACW;IAClB,OAAO,CACL,cAAK,SAAS,EAAE,UAAU,CAAC,2BAA2B,EAAE,SAAS,CAAC,KAAM,IAAI,YACzE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACvC,eAAa,SAAS,EAAC,iCAAiC,aACtD,KAAC,QAAQ,IAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,kCAAkC,GAAG,EACxE,KAAC,QAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,iCAAiC,GAAG,EACtE,KAAC,QAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,iCAAiC,GAAG,KAH1E,CAAC,CAIL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
3
+ icon?: ReactNode;
4
+ title: ReactNode;
5
+ description?: ReactNode;
6
+ action?: ReactNode;
7
+ }
8
+ export default function EmptyState({ icon, title, description, action, className, ...rest }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/EmptyState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,eAAe,2CAWjB"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ export default function EmptyState({ icon, title, description, action, className, ...rest }) {
4
+ return (_jsxs("div", { className: classNames("mantis-core-empty-state", className), ...rest, children: [icon && _jsx("div", { className: "mantis-core-empty-state__icon", children: icon }), _jsx("h3", { className: "mantis-core-empty-state__title", children: title }), description && (_jsx("p", { className: "mantis-core-empty-state__description", children: description })), action && _jsx("div", { className: "mantis-core-empty-state__action", children: action })] }));
5
+ }
6
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../../src/components/feedback/EmptyState.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAUpC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACS;IAChB,OAAO,CACL,eAAK,SAAS,EAAE,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAAM,IAAI,aACvE,IAAI,IAAI,cAAK,SAAS,EAAC,+BAA+B,YAAE,IAAI,GAAO,EACpE,aAAI,SAAS,EAAC,gCAAgC,YAAE,KAAK,GAAM,EAC1D,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,sCAAsC,YAAE,WAAW,GAAK,CACtE,EACA,MAAM,IAAI,cAAK,SAAS,EAAC,iCAAiC,YAAE,MAAM,GAAO,IACtE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Component } from "react";
2
+ import type { ErrorInfo, ReactNode } from "react";
3
+ export interface ErrorBoundaryProps {
4
+ children: ReactNode;
5
+ fallback?: ReactNode | ((error: Error) => ReactNode);
6
+ onError?: (error: Error, info: ErrorInfo) => void;
7
+ }
8
+ interface State {
9
+ error: Error | null;
10
+ }
11
+ export default class ErrorBoundary extends Component<ErrorBoundaryProps, State> {
12
+ state: State;
13
+ static getDerivedStateFromError(error: Error): State;
14
+ componentDidCatch(error: Error, info: ErrorInfo): void;
15
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=ErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACnD;AAED,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC;IAC7E,KAAK,EAAE,KAAK,CAAmB;IAE/B,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAIpD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS;IAI/C,MAAM;CAgBP"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Component } from "react";
3
+ export default class ErrorBoundary extends Component {
4
+ state = { error: null };
5
+ static getDerivedStateFromError(error) {
6
+ return { error };
7
+ }
8
+ componentDidCatch(error, info) {
9
+ this.props.onError?.(error, info);
10
+ }
11
+ render() {
12
+ const { error } = this.state;
13
+ const { children, fallback } = this.props;
14
+ if (error) {
15
+ if (typeof fallback === "function")
16
+ return fallback(error);
17
+ if (fallback !== undefined)
18
+ return fallback;
19
+ return (_jsx("div", { className: "mantis-core-error-boundary", children: _jsx("p", { className: "mantis-core-error-boundary__message", children: error.message }) }));
20
+ }
21
+ return children;
22
+ }
23
+ }
24
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/components/feedback/ErrorBoundary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAalC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAoC;IAC7E,KAAK,GAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAE/B,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,IAAe;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,OAAO,QAAQ,KAAK,UAAU;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC;YAC5C,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,YAAG,SAAS,EAAC,qCAAqC,YAAE,KAAK,CAAC,OAAO,GAAK,GAClE,CACP,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export interface TableSkeletonProps extends HTMLAttributes<HTMLDivElement> {
3
+ rows?: number;
4
+ columns?: number;
5
+ }
6
+ export default function TableSkeleton({ rows, columns, className, ...rest }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=TableSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/TableSkeleton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,IAAQ,EACR,OAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAYpB"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ import { Skeleton } from "primereact/skeleton";
4
+ export default function TableSkeleton({ rows = 5, columns = 4, className, ...rest }) {
5
+ return (_jsx("div", { className: classNames("mantis-core-table-skeleton", className), ...rest, children: Array.from({ length: rows }, (_, r) => (_jsx("div", { className: "mantis-core-table-skeleton__row", children: Array.from({ length: columns }, (_, c) => (_jsx(Skeleton, { className: "mantis-core-table-skeleton__cell", height: "2rem" }, c))) }, r))) }));
6
+ }
7
+ //# sourceMappingURL=TableSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSkeleton.js","sourceRoot":"","sources":["../../../src/components/feedback/TableSkeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,IAAI,GAAG,CAAC,EACR,OAAO,GAAG,CAAC,EACX,SAAS,EACT,GAAG,IAAI,EACY;IACnB,OAAO,CACL,cAAK,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAAM,IAAI,YAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACtC,cAAa,SAAS,EAAC,iCAAiC,YACrD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACzC,KAAC,QAAQ,IAAS,SAAS,EAAC,kCAAkC,EAAC,MAAM,EAAC,MAAM,IAA7D,CAAC,CAA+D,CAChF,CAAC,IAHM,CAAC,CAIL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TagProps as PrimeTagProps } from "primereact/tag";
2
+ export type TagProps = Omit<PrimeTagProps, "className"> & {
3
+ className?: string;
4
+ };
5
+ export default function Tag({ className, ...rest }: TagProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/Tag.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,2CAO3D"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ import { Tag as PrimeTag } from "primereact/tag";
4
+ export default function Tag({ className, ...rest }) {
5
+ return (_jsx(PrimeTag, { className: classNames("mantis-core-tag", className), ...rest }));
6
+ }
7
+ //# sourceMappingURL=Tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../../src/components/feedback/Tag.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAOjD,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAY;IAC1D,OAAO,CACL,KAAC,QAAQ,IACP,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAC/C,IAAI,GACR,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React, { type ReactNode } from "react";
2
+ type Command = {
3
+ id: string;
4
+ label: string;
5
+ icon?: ReactNode;
6
+ keywords?: string[];
7
+ onSelect: () => void;
8
+ };
9
+ type CommandPaletteProps = {
10
+ commands: Command[];
11
+ open?: boolean;
12
+ onOpenChange?: (open: boolean) => void;
13
+ };
14
+ declare const CommandPalette: React.FC<CommandPaletteProps>;
15
+ export declare function useCommandPalette(onOpen?: () => void): void;
16
+ export default CommandPalette;
17
+ //# sourceMappingURL=CommandPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/CommandPalette.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAG3E,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA6GjD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAW3D;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useEffect, useRef } from "react";
4
+ import { Dialog } from "primereact/dialog";
5
+ const CommandPalette = ({ commands, open = false, onOpenChange }) => {
6
+ const [query, setQuery] = useState("");
7
+ const inputRef = useRef(null);
8
+ const filtered = query
9
+ ? commands.filter((cmd) => {
10
+ const q = query.toLowerCase();
11
+ return (cmd.label.toLowerCase().includes(q) ||
12
+ cmd.keywords?.some((k) => k.toLowerCase().includes(q)));
13
+ })
14
+ : commands;
15
+ const close = () => {
16
+ setQuery("");
17
+ onOpenChange?.(false);
18
+ };
19
+ const handleSelect = (cmd) => {
20
+ cmd.onSelect();
21
+ close();
22
+ };
23
+ // Focus input when opened
24
+ useEffect(() => {
25
+ if (open) {
26
+ setTimeout(() => inputRef.current?.focus(), 50);
27
+ }
28
+ }, [open]);
29
+ return (_jsx(Dialog, { visible: open, onHide: close, header: null, showHeader: false, dismissableMask: true, className: "mantis-core-command-palette", style: { width: "500px", maxWidth: "90vw" }, pt: { content: { style: { padding: 0 } } }, children: _jsxs("div", { style: { display: "flex", flexDirection: "column", overflow: "hidden" }, children: [_jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), placeholder: "Buscar comando...", style: {
30
+ width: "100%",
31
+ padding: "12px 16px",
32
+ border: "none",
33
+ borderBottom: "1px solid var(--border)",
34
+ outline: "none",
35
+ fontSize: "14px",
36
+ background: "var(--card)",
37
+ color: "inherit",
38
+ boxSizing: "border-box",
39
+ } }), _jsxs("ul", { style: {
40
+ listStyle: "none",
41
+ margin: 0,
42
+ padding: "4px",
43
+ maxHeight: "320px",
44
+ overflowY: "auto",
45
+ }, children: [filtered.map((cmd) => (_jsx("li", { children: _jsxs("button", { onClick: () => handleSelect(cmd), style: {
46
+ width: "100%",
47
+ display: "flex",
48
+ alignItems: "center",
49
+ gap: "10px",
50
+ padding: "10px 12px",
51
+ border: "none",
52
+ background: "transparent",
53
+ cursor: "pointer",
54
+ fontSize: "14px",
55
+ borderRadius: "6px",
56
+ textAlign: "left",
57
+ color: "inherit",
58
+ }, onMouseEnter: (e) => (e.currentTarget.style.background = "color-mix(in oklch, var(--primary), transparent 90%)"), onMouseLeave: (e) => (e.currentTarget.style.background = "transparent"), children: [cmd.icon && _jsx("span", { style: { flexShrink: 0 }, children: cmd.icon }), _jsx("span", { children: cmd.label })] }) }, cmd.id))), filtered.length === 0 && (_jsx("li", { style: { padding: "16px", textAlign: "center", color: "var(--muted-foreground)", fontSize: "14px" }, children: "Sin resultados" }))] })] }) }));
59
+ };
60
+ export function useCommandPalette(onOpen) {
61
+ useEffect(() => {
62
+ const handler = (e) => {
63
+ if ((e.metaKey || e.ctrlKey) && e.key === "k") {
64
+ e.preventDefault();
65
+ onOpen?.();
66
+ }
67
+ };
68
+ window.addEventListener("keydown", handler);
69
+ return () => window.removeEventListener("keydown", handler);
70
+ }, [onOpen]);
71
+ }
72
+ export default CommandPalette;
73
+ //# sourceMappingURL=CommandPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandPalette.js","sourceRoot":"","sources":["../../../src/components/navigation/CommandPalette.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React, { type ReactNode } from "react";
2
+ import { type TabMenuProps } from "primereact/tabmenu";
3
+ type PageTabsProps = Omit<TabMenuProps, "model"> & {
4
+ tabs: {
5
+ label: string;
6
+ icon?: ReactNode;
7
+ href?: string;
8
+ command?: () => void;
9
+ }[];
10
+ activeIndex?: number;
11
+ };
12
+ declare const PageTabs: React.FC<PageTabsProps>;
13
+ export default PageTabs;
14
+ //# sourceMappingURL=PageTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTabs.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/PageTabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGhE,KAAK,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IACjD,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,EAAE,CAAC;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA0BrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { usePathname, useRouter } from "next/navigation";
4
+ import { TabMenu } from "primereact/tabmenu";
5
+ const PageTabs = ({ tabs, activeIndex, ...rest }) => {
6
+ const pathname = usePathname();
7
+ const router = useRouter();
8
+ const model = tabs.map((tab) => ({
9
+ label: tab.label,
10
+ icon: tab.icon,
11
+ command: tab.href
12
+ ? () => router.push(tab.href)
13
+ : tab.command,
14
+ }));
15
+ // Derive active index from pathname when href tabs are used
16
+ const resolvedActiveIndex = activeIndex ??
17
+ tabs.findIndex((t) => t.href && (pathname === t.href || pathname.startsWith(t.href + "/")));
18
+ return (_jsx("div", { className: "mantis-core-page-tabs", children: _jsx(TabMenu, { model: model, activeIndex: resolvedActiveIndex >= 0 ? resolvedActiveIndex : 0, ...rest }) }));
19
+ };
20
+ export default PageTabs;
21
+ //# sourceMappingURL=PageTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTabs.js","sourceRoot":"","sources":["../../../src/components/navigation/PageTabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAQhE,MAAM,QAAQ,GAA4B,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC3E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAe,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAA0B;QACpC,OAAO,EAAE,GAAG,CAAC,IAAI;YACf,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,OAAO;KAChB,CAAC,CAAC,CAAC;IAEJ,4DAA4D;IAC5D,MAAM,mBAAmB,GACvB,WAAW;QACX,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9F,OAAO,CACL,cAAK,SAAS,EAAC,uBAAuB,YACpC,KAAC,OAAO,IACN,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC3D,IAAI,GACR,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SidebarProps } from "primereact/sidebar";
2
+ export type DrawerProps = Omit<SidebarProps, "className"> & {
3
+ className?: string;
4
+ };
5
+ export default function Drawer({ position, className, ...rest }: DrawerProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Drawer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,QAAkB,EAClB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,WAAW,2CAQb"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { Sidebar } from "primereact/sidebar";
5
+ export default function Drawer({ position = "right", className, ...rest }) {
6
+ return (_jsx(Sidebar, { position: position, className: classNames("mantis-core-drawer", className), ...rest }));
7
+ }
8
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/overlays/Drawer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,QAAQ,GAAG,OAAO,EAClB,SAAS,EACT,GAAG,IAAI,EACK;IACZ,OAAO,CACL,KAAC,OAAO,IACN,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,KAClD,IAAI,GACR,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { DialogProps } from "primereact/dialog";
2
+ export type ModalProps = Omit<DialogProps, "className"> & {
3
+ className?: string;
4
+ };
5
+ export default function Modal({ modal, dismissableMask, draggable, className, ...rest }: ModalProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/Modal.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,KAAY,EACZ,eAAsB,EACtB,SAAiB,EACjB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,UAAU,2CAUZ"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { Dialog } from "primereact/dialog";
5
+ export default function Modal({ modal = true, dismissableMask = true, draggable = false, className, ...rest }) {
6
+ return (_jsx(Dialog, { modal: modal, dismissableMask: dismissableMask, draggable: draggable, className: classNames("mantis-core-modal", className), ...rest }));
7
+ }
8
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/overlays/Modal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,KAAK,GAAG,IAAI,EACZ,eAAe,GAAG,IAAI,EACtB,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,GAAG,IAAI,EACI;IACX,OAAO,CACL,KAAC,MAAM,IACL,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,KACjD,IAAI,GACR,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/AppShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAyFzD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAyHrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/AppShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAqGzD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4LrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -7,23 +7,25 @@ import classNames from "classnames";
7
7
  import { Sidebar } from "primereact/sidebar";
8
8
  // ─── helpers ────────────────────────────────────────────────────────────────
9
9
  const isActive = (pathname, href) => Boolean(href && (pathname === href || pathname.startsWith(href + "/")));
10
- const NavItemLink = ({ item, pathname, onClick }) => {
10
+ const NavItemLink = ({ item, pathname, onClick, collapsed = false }) => {
11
11
  const active = isActive(pathname, item.href);
12
- const cls = classNames("mantis-core-appshell-nav-item", "w-full flex items-center gap-2.5 px-3 py-2.5 rounded-md text-sm transition-all duration-150 text-left", active
12
+ const cls = classNames("mantis-core-appshell-nav-item", "w-full flex items-center gap-2.5 px-3 py-2.5 rounded-md text-sm transition-all duration-150 text-left", collapsed ? "justify-center" : "", active
13
13
  ? "bg-primary/10 text-primary font-semibold"
14
14
  : "text-muted-foreground font-medium hover:bg-primary/5 hover:text-primary");
15
- const inner = (_jsxs(_Fragment, { children: [item.icon && (_jsx("span", { className: 'shrink-0 w-4 flex items-center justify-center', children: item.icon })), _jsx("span", { className: 'flex-1 truncate', children: item.label }), active && _jsx("span", { className: 'w-1.5 h-1.5 rounded-full bg-primary shrink-0' })] }));
16
- return item.href ? (_jsx(Link, { href: item.href, onClick: onClick, className: cls, children: inner })) : (_jsx("button", { onClick: onClick, className: cls, children: inner }));
15
+ const inner = (_jsxs(_Fragment, { children: [item.icon && (_jsx("span", { className: 'shrink-0 w-4 flex items-center justify-center', children: item.icon })), !collapsed && _jsx("span", { className: 'flex-1 truncate', children: item.label }), !collapsed && active && _jsx("span", { className: 'w-1.5 h-1.5 rounded-full bg-primary shrink-0' })] }));
16
+ return item.href ? (_jsx(Link, { href: item.href, onClick: onClick, className: cls, title: collapsed ? item.label : undefined, children: inner })) : (_jsx("button", { onClick: onClick, className: cls, title: collapsed ? item.label : undefined, children: inner }));
17
17
  };
18
- const NavGroup = ({ item, pathname, onNavigate }) => (_jsxs("div", { className: 'mantis-core-appshell-nav-group', children: [_jsxs("span", { className: 'block px-3 py-1.5 text-[0.7rem] font-semibold uppercase tracking-wider', style: { color: "var(--muted-foreground)" }, children: [item.icon && _jsx("span", { className: 'mr-1.5', children: item.icon }), item.label] }), item.children?.map((child) => (_jsx(NavItemLink, { item: child, pathname: pathname, onClick: onNavigate }, child.label)))] }));
19
- const NavList = ({ items, pathname, onNavigate }) => (_jsx("ul", { className: 'flex flex-col gap-0.5 list-none m-0 p-0', children: items.map((item) => item.children?.length ? (_jsx("li", { children: _jsx(NavGroup, { item: item, pathname: pathname, onNavigate: onNavigate }) }, item.label)) : (_jsx("li", { children: _jsx(NavItemLink, { item: item, pathname: pathname, onClick: onNavigate }) }, item.label))) }));
18
+ const NavGroup = ({ item, pathname, onNavigate, collapsed = false }) => (_jsxs("div", { className: 'mantis-core-appshell-nav-group', children: [!collapsed && (_jsxs("span", { className: 'block px-3 py-1.5 text-[0.7rem] font-semibold uppercase tracking-wider', style: { color: "var(--muted-foreground)" }, children: [item.icon && _jsx("span", { className: 'mr-1.5', children: item.icon }), item.label] })), item.children?.map((child) => (_jsx(NavItemLink, { item: child, pathname: pathname, onClick: onNavigate, collapsed: collapsed }, child.label)))] }));
19
+ const NavList = ({ items, pathname, onNavigate, collapsed = false }) => (_jsx("ul", { className: 'flex flex-col gap-0.5 list-none m-0 p-0', children: items.map((item) => item.children?.length ? (_jsx("li", { children: _jsx(NavGroup, { item: item, pathname: pathname, onNavigate: onNavigate, collapsed: collapsed }) }, item.label)) : (_jsx("li", { children: _jsx(NavItemLink, { item: item, pathname: pathname, onClick: onNavigate, collapsed: collapsed }) }, item.label))) }));
20
20
  // ─── AppShell ────────────────────────────────────────────────────────────────
21
- const AppShell = ({ navItems, brand, topbarActions, user, footer, children, }) => {
21
+ const AppShell = ({ navItems, brand, topbarActions, user, footer, children, collapsible = false, defaultCollapsed = false, }) => {
22
22
  const pathname = usePathname();
23
23
  const [mobileOpen, setMobileOpen] = useState(false);
24
- return (_jsxs("div", { className: 'mantis-core-appshell flex min-h-screen', children: [_jsxs("aside", { className: 'mantis-core-appshell-sidebar hidden lg:flex flex-col w-60 shrink-0 border-r border-border', style: { background: "var(--card)" }, children: [brand && (_jsx("div", { className: 'mantis-core-appshell-sidebar-brand flex items-center h-16 px-4 border-b border-border shrink-0', style: {
24
+ const [collapsed, setCollapsed] = useState(defaultCollapsed);
25
+ return (_jsxs("div", { className: 'mantis-core-appshell flex min-h-screen', children: [_jsxs("aside", { className: classNames("mantis-core-appshell-sidebar hidden lg:flex flex-col shrink-0 border-r border-border transition-[width] duration-200", collapsible && collapsed ? "w-14" : "w-60"), style: { background: "var(--card)" }, children: [brand && (_jsxs("div", { className: 'mantis-core-appshell-sidebar-brand flex items-center h-16 px-4 border-b border-border shrink-0', style: {
25
26
  background: "linear-gradient(110deg, color-mix(in oklch, var(--primary), white 92%), color-mix(in oklch, var(--accent), white 90%))",
26
- }, children: brand })), _jsx("nav", { className: 'flex-1 overflow-y-auto p-3', children: _jsx(NavList, { items: navItems, pathname: pathname }) }), footer && (_jsx("div", { className: 'mantis-core-appshell-sidebar-footer shrink-0 border-t border-border p-3', children: footer }))] }), _jsxs("div", { className: 'flex flex-col flex-1 min-w-0', children: [_jsxs("header", { className: 'mantis-core-appshell-topbar flex items-center h-16 px-4 sm:px-6 border-b border-border shrink-0 gap-3', style: {
27
+ overflow: "hidden",
28
+ }, children: [!collapsed && brand, collapsible && (_jsx("button", { onClick: () => setCollapsed((c) => !c), "aria-label": "Toggle sidebar", className: classNames("ml-auto p-1 rounded-sm bg-transparent border-0 cursor-pointer text-muted-foreground hover:text-primary transition-colors duration-150", collapsed ? "mx-auto" : ""), style: { lineHeight: 0 }, children: _jsx("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none', stroke: 'currentColor', strokeWidth: '1.75', strokeLinecap: 'round', strokeLinejoin: 'round', children: collapsed ? (_jsx("polyline", { points: '6 3 11 8 6 13' })) : (_jsx("polyline", { points: '10 3 5 8 10 13' })) }) }))] })), !brand && collapsible && (_jsx("div", { className: 'flex items-center justify-center h-10 border-b border-border', children: _jsx("button", { onClick: () => setCollapsed((c) => !c), "aria-label": "Toggle sidebar", className: 'p-1 rounded-sm bg-transparent border-0 cursor-pointer text-muted-foreground hover:text-primary transition-colors duration-150', style: { lineHeight: 0 }, children: _jsx("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none', stroke: 'currentColor', strokeWidth: '1.75', strokeLinecap: 'round', strokeLinejoin: 'round', children: collapsed ? (_jsx("polyline", { points: '6 3 11 8 6 13' })) : (_jsx("polyline", { points: '10 3 5 8 10 13' })) }) }) })), _jsx("nav", { className: 'flex-1 overflow-y-auto p-3', children: _jsx(NavList, { items: navItems, pathname: pathname, collapsed: collapsible && collapsed }) }), footer && !collapsed && (_jsx("div", { className: 'mantis-core-appshell-sidebar-footer shrink-0 border-t border-border p-3', children: footer }))] }), _jsxs("div", { className: 'flex flex-col flex-1 min-w-0', children: [_jsxs("header", { className: 'mantis-core-appshell-topbar flex items-center h-16 px-4 sm:px-6 border-b border-border shrink-0 gap-3', style: {
27
29
  background: "var(--card)",
28
30
  boxShadow: "0 1px 3px color-mix(in oklch, var(--foreground), transparent 92%)",
29
31
  }, children: [_jsx("button", { className: 'lg:hidden p-2 rounded-sm bg-transparent border-0 cursor-pointer text-muted-foreground hover:text-primary transition-colors duration-150 leading-none', "aria-label": 'Abrir men\u00FA', "aria-expanded": mobileOpen, onClick: () => setMobileOpen(true), children: _jsxs("svg", { width: '18', height: '18', viewBox: '0 0 18 18', fill: 'none', stroke: 'currentColor', strokeWidth: '1.75', strokeLinecap: 'round', children: [_jsx("line", { x1: '2', y1: '4.5', x2: '16', y2: '4.5' }), _jsx("line", { x1: '2', y1: '9', x2: '16', y2: '9' }), _jsx("line", { x1: '2', y1: '13.5', x2: '16', y2: '13.5' })] }) }), brand && (_jsx("div", { className: 'lg:hidden flex items-center', children: brand })), _jsx("div", { className: 'flex-1' }), topbarActions && (_jsx("div", { className: 'mantis-core-appshell-topbar-actions flex items-center gap-2', children: topbarActions })), user && (_jsx("div", { className: 'mantis-core-appshell-topbar-user flex items-center', children: user }))] }), _jsx("main", { className: 'mantis-core-appshell-content flex-1', children: children })] }), _jsxs(Sidebar, { visible: mobileOpen, onHide: () => setMobileOpen(false), position: 'left', className: 'mantis-core-appshell-mobile-drawer w-72', style: { background: "var(--card)" }, children: [brand && (_jsx("div", { className: 'flex items-center mb-4 pb-4 border-b border-border', style: {