@mantis-core/ui 0.1.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/COMPONENTS.md +15 -142
  2. package/PRIMEREACT_MAPPING.md +6 -0
  3. package/README.md +56 -72
  4. package/dist/components/Forms/AsyncSelect.d.ts +20 -0
  5. package/dist/components/Forms/AsyncSelect.d.ts.map +1 -0
  6. package/dist/components/Forms/AsyncSelect.js +77 -0
  7. package/dist/components/Forms/AsyncSelect.js.map +1 -0
  8. package/dist/components/Forms/CurrencyInput.d.ts +12 -0
  9. package/dist/components/Forms/CurrencyInput.d.ts.map +1 -0
  10. package/dist/components/Forms/CurrencyInput.js +9 -0
  11. package/dist/components/Forms/CurrencyInput.js.map +1 -0
  12. package/dist/components/Forms/DateRangeInput.d.ts +10 -0
  13. package/dist/components/Forms/DateRangeInput.d.ts.map +1 -0
  14. package/dist/components/Forms/DateRangeInput.js +13 -0
  15. package/dist/components/Forms/DateRangeInput.js.map +1 -0
  16. package/dist/components/Forms/DirtyFormGuard.d.ts +5 -0
  17. package/dist/components/Forms/DirtyFormGuard.d.ts.map +1 -0
  18. package/dist/components/Forms/DirtyFormGuard.js +8 -0
  19. package/dist/components/Forms/DirtyFormGuard.js.map +1 -0
  20. package/dist/components/Forms/FileDropzone.d.ts +29 -0
  21. package/dist/components/Forms/FileDropzone.d.ts.map +1 -0
  22. package/dist/components/Forms/FileDropzone.js +137 -0
  23. package/dist/components/Forms/FileDropzone.js.map +1 -0
  24. package/dist/components/Forms/FormActionsBar.d.ts +26 -0
  25. package/dist/components/Forms/FormActionsBar.d.ts.map +1 -0
  26. package/dist/components/Forms/FormActionsBar.js +16 -0
  27. package/dist/components/Forms/FormActionsBar.js.map +1 -0
  28. package/dist/components/Forms/FormWizard.d.ts +17 -0
  29. package/dist/components/Forms/FormWizard.d.ts.map +1 -0
  30. package/dist/components/Forms/FormWizard.js +63 -0
  31. package/dist/components/Forms/FormWizard.js.map +1 -0
  32. package/dist/components/Forms/PhoneInput.d.ts +11 -0
  33. package/dist/components/Forms/PhoneInput.d.ts.map +1 -0
  34. package/dist/components/Forms/PhoneInput.js +9 -0
  35. package/dist/components/Forms/PhoneInput.js.map +1 -0
  36. package/dist/components/Forms/RadioGroup.d.ts +15 -0
  37. package/dist/components/Forms/RadioGroup.d.ts.map +1 -0
  38. package/dist/components/Forms/RadioGroup.js +9 -0
  39. package/dist/components/Forms/RadioGroup.js.map +1 -0
  40. package/dist/components/Forms/RangeSlider.d.ts +13 -0
  41. package/dist/components/Forms/RangeSlider.d.ts.map +1 -0
  42. package/dist/components/Forms/RangeSlider.js +9 -0
  43. package/dist/components/Forms/RangeSlider.js.map +1 -0
  44. package/dist/components/Forms/SearchInput.d.ts +14 -0
  45. package/dist/components/Forms/SearchInput.d.ts.map +1 -0
  46. package/dist/components/Forms/SearchInput.js +34 -0
  47. package/dist/components/Forms/SearchInput.js.map +1 -0
  48. package/dist/components/Forms/useDirtyFormGuard.d.ts +12 -0
  49. package/dist/components/Forms/useDirtyFormGuard.d.ts.map +1 -0
  50. package/dist/components/Forms/useDirtyFormGuard.js +36 -0
  51. package/dist/components/Forms/useDirtyFormGuard.js.map +1 -0
  52. package/dist/components/pages/AdminPageHeader.d.ts.map +1 -1
  53. package/dist/components/pages/AdminPageHeader.js +2 -9
  54. package/dist/components/pages/AdminPageHeader.js.map +1 -1
  55. package/dist/components/pages/app-shell/AppShell.d.ts +5 -0
  56. package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -0
  57. package/dist/components/pages/app-shell/AppShell.js +36 -0
  58. package/dist/components/pages/app-shell/AppShell.js.map +1 -0
  59. package/dist/components/pages/app-shell/Breadcrumbs.d.ts +8 -0
  60. package/dist/components/pages/app-shell/Breadcrumbs.d.ts.map +1 -0
  61. package/dist/components/pages/app-shell/Breadcrumbs.js +17 -0
  62. package/dist/components/pages/app-shell/Breadcrumbs.js.map +1 -0
  63. package/dist/components/pages/app-shell/index.d.ts +4 -0
  64. package/dist/components/pages/app-shell/index.d.ts.map +1 -0
  65. package/dist/components/pages/app-shell/index.js +3 -0
  66. package/dist/components/pages/app-shell/index.js.map +1 -0
  67. package/dist/components/pages/app-shell/types.d.ts +20 -0
  68. package/dist/components/pages/app-shell/types.d.ts.map +1 -0
  69. package/dist/components/pages/app-shell/types.js +2 -0
  70. package/dist/components/pages/app-shell/types.js.map +1 -0
  71. package/dist/components/ui/ConfirmDialog.d.ts +19 -0
  72. package/dist/components/ui/ConfirmDialog.d.ts.map +1 -0
  73. package/dist/components/ui/ConfirmDialog.js +20 -0
  74. package/dist/components/ui/ConfirmDialog.js.map +1 -0
  75. package/dist/components/ui/DataState.d.ts +20 -0
  76. package/dist/components/ui/DataState.d.ts.map +1 -0
  77. package/dist/components/ui/DataState.js +30 -0
  78. package/dist/components/ui/DataState.js.map +1 -0
  79. package/dist/components/ui/StatusBadge.d.ts +12 -0
  80. package/dist/components/ui/StatusBadge.d.ts.map +1 -0
  81. package/dist/components/ui/StatusBadge.js +19 -0
  82. package/dist/components/ui/StatusBadge.js.map +1 -0
  83. package/dist/index.d.ts +16 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +8 -0
  86. package/dist/index.js.map +1 -1
  87. package/docs/README.md +72 -0
  88. package/docs/components/action-column.md +17 -0
  89. package/docs/components/admin-page-header.md +21 -0
  90. package/docs/components/admin-page-layout.md +29 -0
  91. package/docs/components/async-select.md +26 -0
  92. package/docs/components/button.md +25 -0
  93. package/docs/components/ckeditor-input.md +24 -0
  94. package/docs/components/confirm-dialog.md +21 -0
  95. package/docs/components/data-state.md +19 -0
  96. package/docs/components/date-input.md +22 -0
  97. package/docs/components/dirty-form-guard.md +31 -0
  98. package/docs/components/drop-down.md +28 -0
  99. package/docs/components/error-message.md +13 -0
  100. package/docs/components/file-dropzone.md +25 -0
  101. package/docs/components/filter-pannel.md +23 -0
  102. package/docs/components/form-actions-bar.md +22 -0
  103. package/docs/components/form-field-render.md +20 -0
  104. package/docs/components/form-section.md +15 -0
  105. package/docs/components/hidden-field.md +19 -0
  106. package/docs/components/index-column.md +13 -0
  107. package/docs/components/loading.md +21 -0
  108. package/docs/components/map-picker-client.md +22 -0
  109. package/docs/components/map-picker-osm.md +18 -0
  110. package/docs/components/map-picker.md +21 -0
  111. package/docs/components/menu-button.md +22 -0
  112. package/docs/components/multi-select-filter.md +20 -0
  113. package/docs/components/multi-select.md +23 -0
  114. package/docs/components/number-input.md +20 -0
  115. package/docs/components/page-title.md +13 -0
  116. package/docs/components/paginated-table.md +35 -0
  117. package/docs/components/pagination.md +27 -0
  118. package/docs/components/render-field.md +24 -0
  119. package/docs/components/rich-text-preview.md +18 -0
  120. package/docs/components/select.md +28 -0
  121. package/docs/components/status-badge.md +14 -0
  122. package/docs/components/switch.md +27 -0
  123. package/docs/components/table-filter-field.md +21 -0
  124. package/docs/components/table-toolbar.md +19 -0
  125. package/docs/components/text-area.md +20 -0
  126. package/docs/components/text-input.md +23 -0
  127. package/docs/components/time-picker.md +22 -0
  128. package/docs/components/toggle-inline-button.md +22 -0
  129. package/docs/components/toggle.md +21 -0
  130. package/docs/components/upload-files-preview.md +26 -0
  131. package/docs/contracts/controller-props.md +28 -0
  132. package/docs/contracts/dependency-map.md +57 -0
  133. package/docs/contracts/style-imports.md +27 -0
  134. package/package.json +6 -4
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import Link from "next/link";
5
+ import { usePathname } from "next/navigation";
6
+ import classNames from "classnames";
7
+ import { Sidebar } from "primereact/sidebar";
8
+ // ─── helpers ────────────────────────────────────────────────────────────────
9
+ const isActive = (pathname, href) => Boolean(href && (pathname === href || pathname.startsWith(href + "/")));
10
+ const NavItemLink = ({ item, pathname, onClick }) => {
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
13
+ ? "bg-primary/10 text-primary font-semibold"
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 }));
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))) }));
20
+ // ─── AppShell ────────────────────────────────────────────────────────────────
21
+ const AppShell = ({ navItems, brand, topbarActions, user, footer, children, }) => {
22
+ const pathname = usePathname();
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: {
25
+ 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
+ background: "var(--card)",
28
+ boxShadow: "0 1px 3px color-mix(in oklch, var(--foreground), transparent 92%)",
29
+ }, 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: {
30
+ background: "linear-gradient(110deg, color-mix(in oklch, var(--primary), white 92%), color-mix(in oklch, var(--accent), white 90%))",
31
+ margin: "-1rem -1rem 1rem",
32
+ padding: "1rem",
33
+ }, children: brand })), _jsx(NavList, { items: navItems, pathname: pathname, onNavigate: () => setMobileOpen(false) }), footer && (_jsx("div", { className: 'mt-auto pt-4 border-t border-border', children: footer }))] })] }));
34
+ };
35
+ export default AppShell;
36
+ //# sourceMappingURL=AppShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/AppShell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import type { AdminBreadcrumbItem } from "../admin-layout/types";
3
+ type BreadcrumbsProps = {
4
+ items: readonly AdminBreadcrumbItem[];
5
+ };
6
+ declare const Breadcrumbs: React.FC<BreadcrumbsProps>;
7
+ export default Breadcrumbs;
8
+ //# sourceMappingURL=Breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/Breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACvC,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoC3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Link from "next/link";
3
+ const Breadcrumbs = ({ items }) => {
4
+ if (!items.length)
5
+ return null;
6
+ return (_jsx("nav", { "aria-label": 'Breadcrumb', className: 'mb-2', children: _jsx("ol", { className: 'flex flex-wrap items-center gap-1.5 text-xs', children: items.map((item, index) => {
7
+ const isLast = index === items.length - 1;
8
+ return (_jsxs("li", { className: 'flex items-center gap-1.5', children: [item.href && !isLast ? (_jsx(Link, { href: item.href, className: 'transition-colors hover:opacity-80', style: { color: "var(--muted-foreground)" }, children: item.label })) : (_jsx("span", { style: {
9
+ color: isLast
10
+ ? "color-mix(in oklch, var(--primary), black 24%)"
11
+ : "var(--muted-foreground)",
12
+ fontWeight: isLast ? 600 : 500,
13
+ }, children: item.label })), !isLast && _jsx("span", { style: { color: "var(--muted-foreground)" }, children: "/" })] }, `${item.label}-${index}`));
14
+ }) }) }));
15
+ };
16
+ export default Breadcrumbs;
17
+ //# sourceMappingURL=Breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/Breadcrumbs.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,MAAM,WAAW,GAA+B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5D,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,CACL,4BAAgB,YAAY,EAAC,SAAS,EAAC,MAAM,YAC3C,aAAI,SAAS,EAAC,6CAA6C,YACxD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE1C,OAAO,CACL,cAAmC,SAAS,EAAC,2BAA2B,aACrE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAC1C,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,CACF,eACE,KAAK,EAAE;gCACL,KAAK,EAAE,MAAM;oCACX,CAAC,CAAC,gDAAgD;oCAClD,CAAC,CAAC,yBAAyB;gCAC7B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;6BAC/B,YACA,IAAI,CAAC,KAAK,GACN,CACR,EACA,CAAC,MAAM,IAAI,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,kBAAU,KAnBhE,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAoB5B,CACN,CAAC;YACJ,CAAC,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default as AppShell } from "./AppShell";
2
+ export { default as Breadcrumbs } from "./Breadcrumbs";
3
+ export type { AppNavItem, AppShellProps } from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as AppShell } from "./AppShell";
2
+ export { default as Breadcrumbs } from "./Breadcrumbs";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from "react";
2
+ export type AppNavItem = {
3
+ label: string;
4
+ href?: string;
5
+ icon?: ReactNode;
6
+ children?: AppNavItem[];
7
+ };
8
+ export type AppShellProps = {
9
+ navItems: AppNavItem[];
10
+ /** Brand slot: logo/name rendered in the sidebar header and topbar (mobile) */
11
+ brand?: ReactNode;
12
+ /** Extra content rendered in the topbar right area, before the user slot */
13
+ topbarActions?: ReactNode;
14
+ /** User profile slot rendered at the end of the topbar */
15
+ user?: ReactNode;
16
+ /** Optional footer rendered at the bottom of the sidebar */
17
+ footer?: ReactNode;
18
+ children: ReactNode;
19
+ };
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/pages/app-shell/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from "react";
2
+ export type ConfirmDialogSeverity = "primary" | "info" | "success" | "warning" | "danger";
3
+ export interface ConfirmDialogProps {
4
+ visible: boolean;
5
+ title?: ReactNode;
6
+ message?: ReactNode;
7
+ icon?: ReactNode;
8
+ confirmLabel?: string;
9
+ cancelLabel?: string;
10
+ confirmSeverity?: ConfirmDialogSeverity;
11
+ loading?: boolean;
12
+ disabled?: boolean;
13
+ width?: string;
14
+ className?: string;
15
+ onConfirm: () => void | Promise<void>;
16
+ onCancel: () => void;
17
+ }
18
+ export default function ConfirmDialog({ visible, title, message, icon, confirmLabel, cancelLabel, confirmSeverity, loading, disabled, width, className, onConfirm, onCancel, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=ConfirmDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ConfirmDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAeD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,OAAO,EACP,KAAqB,EACrB,OAAyB,EACzB,IAAI,EACJ,YAAoC,EACpC,WAAkC,EAClC,eAA0B,EAC1B,OAAe,EACf,QAAgB,EAChB,KAAe,EACf,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAkCpB"}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { Dialog } from "primereact/dialog";
5
+ import Button from "../Buttons/Button";
6
+ const DEFAULT_TITLE = "Confirmar accion";
7
+ const DEFAULT_MESSAGE = "Esta accion no se puede deshacer.";
8
+ const DEFAULT_CONFIRM_LABEL = "Confirmar";
9
+ const DEFAULT_CANCEL_LABEL = "Cancelar";
10
+ const CONFIRM_VARIANT_MAP = {
11
+ primary: "primary",
12
+ info: "info",
13
+ success: "success",
14
+ warning: "warning",
15
+ danger: "danger",
16
+ };
17
+ export default function ConfirmDialog({ visible, title = DEFAULT_TITLE, message = DEFAULT_MESSAGE, icon, confirmLabel = DEFAULT_CONFIRM_LABEL, cancelLabel = DEFAULT_CANCEL_LABEL, confirmSeverity = "danger", loading = false, disabled = false, width = "30rem", className, onConfirm, onCancel, }) {
18
+ return (_jsxs(Dialog, { visible: visible, onHide: onCancel, header: null, draggable: false, closable: !loading, style: { width, maxWidth: "calc(100vw - 2rem)" }, className: classNames("mantis-core-confirm-dialog", className), children: [_jsxs("div", { className: 'mantis-core-confirm-dialog__body', children: [icon ? _jsx("div", { className: 'mantis-core-confirm-dialog__icon', children: icon }) : null, _jsx("h3", { className: 'mantis-core-confirm-dialog__title', children: title }), _jsx("div", { className: 'mantis-core-confirm-dialog__message', children: message })] }), _jsxs("div", { className: 'mantis-core-confirm-dialog__actions', children: [_jsx(Button, { label: cancelLabel, variant: 'secondary', outlined: true, onClick: onCancel, disabled: loading || disabled }), _jsx(Button, { label: confirmLabel, variant: CONFIRM_VARIANT_MAP[confirmSeverity], onClick: onConfirm, loading: loading, disabled: loading || disabled })] })] }));
19
+ }
20
+ //# sourceMappingURL=ConfirmDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/ui/ConfirmDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,MAA8B,MAAM,mBAAmB,CAAC;AAoB/D,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAC5D,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAC1C,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAExC,MAAM,mBAAmB,GAAiD;IACxE,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,OAAO,EACP,KAAK,GAAG,aAAa,EACrB,OAAO,GAAG,eAAe,EACzB,IAAI,EACJ,YAAY,GAAG,qBAAqB,EACpC,WAAW,GAAG,oBAAoB,EAClC,eAAe,GAAG,QAAQ,EAC1B,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,OAAO,EACf,SAAS,EACT,SAAS,EACT,QAAQ,GACW;IACnB,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,OAAO,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAChD,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,SAAS,CAAC,aAC9D,eAAK,SAAS,EAAC,kCAAkC,aAC9C,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,kCAAkC,YAAE,IAAI,GAAO,CAAC,CAAC,CAAC,IAAI,EAC7E,aAAI,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAM,EAC9D,cAAK,SAAS,EAAC,qCAAqC,YAAE,OAAO,GAAO,IAChE,EAEN,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,MAAM,IACL,KAAK,EAAE,WAAW,EAClB,OAAO,EAAC,WAAW,EACnB,QAAQ,QACR,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,OAAO,IAAI,QAAQ,GAC7B,EACF,KAAC,MAAM,IACL,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,mBAAmB,CAAC,eAAe,CAAC,EAC7C,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,IAAI,QAAQ,GAC7B,IACE,IACC,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from "react";
2
+ export type DataStateStatus = "ready" | "loading" | "empty" | "error";
3
+ export interface DataStateProps {
4
+ status: DataStateStatus;
5
+ className?: string;
6
+ children?: ReactNode;
7
+ icon?: ReactNode;
8
+ loadingTitle?: ReactNode;
9
+ loadingDescription?: ReactNode;
10
+ emptyTitle?: ReactNode;
11
+ emptyDescription?: ReactNode;
12
+ emptyAction?: ReactNode;
13
+ errorTitle?: ReactNode;
14
+ errorDescription?: ReactNode;
15
+ errorAction?: ReactNode;
16
+ onRetry?: () => void;
17
+ retryLabel?: string;
18
+ }
19
+ export default function DataState({ status, className, children, icon, loadingTitle, loadingDescription, emptyTitle, emptyDescription, emptyAction, errorTitle, errorDescription, errorAction, onRetry, retryLabel, }: DataStateProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=DataState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataState.d.ts","sourceRoot":"","sources":["../../../src/components/ui/DataState.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAoC,EACpC,kBAAgD,EAChD,UAAgC,EAChC,gBAA4C,EAC5C,WAAW,EACX,UAAgC,EAChC,gBAA4C,EAC5C,WAAW,EACX,OAAO,EACP,UAAgC,GACjC,EAAE,cAAc,2CAoChB"}
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { AlertTriangle, Inbox, LoaderCircle } from "lucide-react";
5
+ import Button from "../Buttons/Button";
6
+ const DEFAULT_LOADING_TITLE = "Cargando informacion";
7
+ const DEFAULT_LOADING_DESCRIPTION = "Espera un momento mientras consultamos los datos.";
8
+ const DEFAULT_EMPTY_TITLE = "Sin resultados";
9
+ const DEFAULT_EMPTY_DESCRIPTION = "No hay registros para mostrar con los filtros actuales.";
10
+ const DEFAULT_ERROR_TITLE = "No se pudo cargar la informacion";
11
+ const DEFAULT_ERROR_DESCRIPTION = "Ocurrio un error al consultar los datos.";
12
+ const DEFAULT_RETRY_LABEL = "Reintentar";
13
+ export default function DataState({ status, className, children, icon, loadingTitle = DEFAULT_LOADING_TITLE, loadingDescription = DEFAULT_LOADING_DESCRIPTION, emptyTitle = DEFAULT_EMPTY_TITLE, emptyDescription = DEFAULT_EMPTY_DESCRIPTION, emptyAction, errorTitle = DEFAULT_ERROR_TITLE, errorDescription = DEFAULT_ERROR_DESCRIPTION, errorAction, onRetry, retryLabel = DEFAULT_RETRY_LABEL, }) {
14
+ if (status === "ready") {
15
+ return _jsx(_Fragment, { children: children });
16
+ }
17
+ const stateIcon = icon ??
18
+ (status === "loading" ? (_jsx(LoaderCircle, { className: 'mantis-core-data-state__icon--spin', size: 20 })) : status === "empty" ? (_jsx(Inbox, { size: 20 })) : (_jsx(AlertTriangle, { size: 20 })));
19
+ const title = status === "loading" ? loadingTitle : status === "empty" ? emptyTitle : errorTitle;
20
+ const description = status === "loading"
21
+ ? loadingDescription
22
+ : status === "empty"
23
+ ? emptyDescription
24
+ : errorDescription;
25
+ const action = status === "empty"
26
+ ? emptyAction
27
+ : errorAction ?? (onRetry ? _jsx(Button, { label: retryLabel, onClick: onRetry }) : null);
28
+ return (_jsxs("div", { className: classNames("mantis-core-data-state", `mantis-core-data-state--${status}`, className), children: [_jsx("div", { className: 'mantis-core-data-state__icon', children: stateIcon }), _jsx("h3", { className: 'mantis-core-data-state__title', children: title }), _jsx("p", { className: 'mantis-core-data-state__description', children: description }), action ? _jsx("div", { className: 'mantis-core-data-state__action', children: action }) : null] }));
29
+ }
30
+ //# sourceMappingURL=DataState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataState.js","sourceRoot":"","sources":["../../../src/components/ui/DataState.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAqBvC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AACrD,MAAM,2BAA2B,GAAG,mDAAmD,CAAC;AACxF,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,yBAAyB,GAAG,yDAAyD,CAAC;AAC5F,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAC/D,MAAM,yBAAyB,GAAG,0CAA0C,CAAC;AAC7E,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GAAG,qBAAqB,EACpC,kBAAkB,GAAG,2BAA2B,EAChD,UAAU,GAAG,mBAAmB,EAChC,gBAAgB,GAAG,yBAAyB,EAC5C,WAAW,EACX,UAAU,GAAG,mBAAmB,EAChC,gBAAgB,GAAG,yBAAyB,EAC5C,WAAW,EACX,OAAO,EACP,UAAU,GAAG,mBAAmB,GACjB;IACf,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACzB,CAAC;IAED,MAAM,SAAS,GACb,IAAI;QACJ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACtB,KAAC,YAAY,IAAC,SAAS,EAAC,oCAAoC,EAAC,IAAI,EAAE,EAAE,GAAI,CAC1E,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACvB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,CACpB,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,CAC5B,CAAC,CAAC;IAEL,MAAM,KAAK,GACT,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACrF,MAAM,WAAW,GACf,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,MAAM,KAAK,OAAO;YAClB,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,gBAAgB,CAAC;IACzB,MAAM,MAAM,GACV,MAAM,KAAK,OAAO;QAChB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAExF,OAAO,CACL,eAAK,SAAS,EAAE,UAAU,CAAC,wBAAwB,EAAE,2BAA2B,MAAM,EAAE,EAAE,SAAS,CAAC,aAClG,cAAK,SAAS,EAAC,8BAA8B,YAAE,SAAS,GAAO,EAC/D,aAAI,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAM,EAC1D,YAAG,SAAS,EAAC,qCAAqC,YAAE,WAAW,GAAK,EACnE,MAAM,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,gCAAgC,YAAE,MAAM,GAAO,CAAC,CAAC,CAAC,IAAI,IAC3E,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export type StatusBadgeTone = "success" | "muted" | "warning" | "info" | "danger";
3
+ export type StatusBadgeSize = "sm" | "md";
4
+ export interface StatusBadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
5
+ label?: ReactNode;
6
+ tone?: StatusBadgeTone;
7
+ size?: StatusBadgeSize;
8
+ block?: boolean;
9
+ children?: ReactNode;
10
+ }
11
+ export default function StatusBadge({ label, tone, size, block, className, children, ...rest }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/StatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACzF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,KAAK,EACL,IAAc,EACd,IAAW,EACX,KAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,gBAAgB,2CAgBlB"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ const TONE_CLASS_MAP = {
4
+ success: "mantis-core-status-badge--success",
5
+ muted: "mantis-core-status-badge--muted",
6
+ warning: "mantis-core-status-badge--warning",
7
+ info: "mantis-core-status-badge--info",
8
+ danger: "mantis-core-status-badge--danger",
9
+ };
10
+ const SIZE_CLASS_MAP = {
11
+ sm: "mantis-core-status-badge--sm",
12
+ md: "mantis-core-status-badge--md",
13
+ };
14
+ export default function StatusBadge({ label, tone = "muted", size = "md", block = false, className, children, ...rest }) {
15
+ return (_jsx("span", { className: classNames("mantis-core-status-badge", TONE_CLASS_MAP[tone], SIZE_CLASS_MAP[size], {
16
+ "mantis-core-status-badge--block": block,
17
+ }, className), ...rest, children: label ?? children }));
18
+ }
19
+ //# sourceMappingURL=StatusBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../../src/components/ui/StatusBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAcpC,MAAM,cAAc,GAAoC;IACtD,OAAO,EAAE,mCAAmC;IAC5C,KAAK,EAAE,iCAAiC;IACxC,OAAO,EAAE,mCAAmC;IAC5C,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE,kCAAkC;CAC3C,CAAC;AAEF,MAAM,cAAc,GAAoC;IACtD,EAAE,EAAE,8BAA8B;IAClC,EAAE,EAAE,8BAA8B;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,KAAK,EACL,IAAI,GAAG,OAAO,EACd,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,KAAK,EACb,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACU;IACjB,OAAO,CACL,eACE,SAAS,EAAE,UAAU,CACnB,0BAA0B,EAC1B,cAAc,CAAC,IAAI,CAAC,EACpB,cAAc,CAAC,IAAI,CAAC,EACpB;YACE,iCAAiC,EAAE,KAAK;SACzC,EACD,SAAS,CACV,KACG,IAAI,YACP,KAAK,IAAI,QAAQ,GACb,CACR,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -21,6 +21,8 @@ export { default as RenderField } from "./components/Forms/RenderField";
21
21
  export type { RenderFieldProps } from "./components/Forms/RenderField";
22
22
  export { default as Select } from "./components/Forms/Select";
23
23
  export type { SelectProps } from "./components/Forms/Select";
24
+ export { default as AsyncSelect } from "./components/Forms/AsyncSelect";
25
+ export type { AsyncSelectProps } from "./components/Forms/AsyncSelect";
24
26
  export { default as Switch } from "./components/Forms/Switch";
25
27
  export type { SwitchProps } from "./components/Forms/Switch";
26
28
  export { default as TextArea } from "./components/Forms/TextArea";
@@ -35,6 +37,14 @@ export { default as ToggleInlineButton } from "./components/Forms/ToggleInlineBu
35
37
  export type { ToggleInlineButtonProps } from "./components/Forms/ToggleInlineButton";
36
38
  export { default as UploadFilesPreview } from "./components/Forms/UploadFilesPreview";
37
39
  export type { UploadFilesPreviewCopy, UploadFilesPreviewProps, UploadPreviewItem, } from "./components/Forms/UploadFilesPreview";
40
+ export { default as FileDropzone } from "./components/Forms/FileDropzone";
41
+ export type { FileDropzoneProps, FileDropzoneRejectedFile, FileDropzoneRejectCode, } from "./components/Forms/FileDropzone";
42
+ export { default as FormActionsBar } from "./components/Forms/FormActionsBar";
43
+ export type { FormActionsBarProps } from "./components/Forms/FormActionsBar";
44
+ export { default as DirtyFormGuard } from "./components/Forms/DirtyFormGuard";
45
+ export type { DirtyFormGuardProps } from "./components/Forms/DirtyFormGuard";
46
+ export { default as useDirtyFormGuard } from "./components/Forms/useDirtyFormGuard";
47
+ export type { UseDirtyFormGuardOptions, UseDirtyFormGuardResult, } from "./components/Forms/useDirtyFormGuard";
38
48
  export type { ControllerProps } from "./components/Forms/types";
39
49
  export { default as TableToolbar } from "./components/table-toolbar";
40
50
  export type { TableToolbarProps } from "./components/table-toolbar";
@@ -60,6 +70,12 @@ export { Pagination, PaginationInfo, PageSizeSelector } from "./components/ui/Pa
60
70
  export type { PaginationProps, PaginationInfoProps, PageSizeSelectorProps } from "./components/ui/Pagination";
61
71
  export { default as RichTextPreview } from "./components/ui/RichTextPreview";
62
72
  export type { RichTextPreviewProps } from "./components/ui/RichTextPreview";
73
+ export { default as StatusBadge } from "./components/ui/StatusBadge";
74
+ export type { StatusBadgeProps, StatusBadgeSize, StatusBadgeTone } from "./components/ui/StatusBadge";
75
+ export { default as DataState } from "./components/ui/DataState";
76
+ export type { DataStateProps, DataStateStatus } from "./components/ui/DataState";
77
+ export { default as ConfirmDialog } from "./components/ui/ConfirmDialog";
78
+ export type { ConfirmDialogProps, ConfirmDialogSeverity } from "./components/ui/ConfirmDialog";
63
79
  export { default as MapPicker } from "./components/Maps/MapPicker";
64
80
  export type { MapPickerProps } from "./components/Maps/MapPicker";
65
81
  export { default as MapPickerClient } from "./components/Maps/MapPickerClient";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export { default as MultiSelect } from "./components/Forms/MultiSelect";
10
10
  export { default as NumberInput } from "./components/Forms/NumberInput";
11
11
  export { default as RenderField } from "./components/Forms/RenderField";
12
12
  export { default as Select } from "./components/Forms/Select";
13
+ export { default as AsyncSelect } from "./components/Forms/AsyncSelect";
13
14
  export { default as Switch } from "./components/Forms/Switch";
14
15
  export { default as TextArea } from "./components/Forms/TextArea";
15
16
  export { default as TextInput } from "./components/Forms/TextInput";
@@ -17,6 +18,10 @@ export { default as TimePicker } from "./components/Forms/TimePicker";
17
18
  export { default as Toggle } from "./components/Forms/Toggle";
18
19
  export { default as ToggleInlineButton } from "./components/Forms/ToggleInlineButton";
19
20
  export { default as UploadFilesPreview } from "./components/Forms/UploadFilesPreview";
21
+ export { default as FileDropzone } from "./components/Forms/FileDropzone";
22
+ export { default as FormActionsBar } from "./components/Forms/FormActionsBar";
23
+ export { default as DirtyFormGuard } from "./components/Forms/DirtyFormGuard";
24
+ export { default as useDirtyFormGuard } from "./components/Forms/useDirtyFormGuard";
20
25
  export { default as TableToolbar } from "./components/table-toolbar";
21
26
  export { default as TableFilterField } from "./components/table-filter-field";
22
27
  export { default as ActionColumn } from "./components/Tables/ActionColumn";
@@ -33,6 +38,9 @@ export { AdminPageLayoutProvider, useAdminPageLayout } from "./components/pages/
33
38
  export { default as AdminPageLayoutShell } from "./components/pages/admin-layout/AdminPageLayoutShell";
34
39
  export { Pagination, PaginationInfo, PageSizeSelector } from "./components/ui/Pagination";
35
40
  export { default as RichTextPreview } from "./components/ui/RichTextPreview";
41
+ export { default as StatusBadge } from "./components/ui/StatusBadge";
42
+ export { default as DataState } from "./components/ui/DataState";
43
+ export { default as ConfirmDialog } from "./components/ui/ConfirmDialog";
36
44
  export { default as MapPicker } from "./components/Maps/MapPicker";
37
45
  export { default as MapPickerClient } from "./components/Maps/MapPickerClient";
38
46
  export { default as MapPickerOSM } from "./components/Maps/MapPickerOSM";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/docs/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # @mantis-core/ui Docs
2
+
3
+ This folder contains focused documentation files intended for direct human lookup and efficient LLM retrieval.
4
+
5
+ ## Contracts
6
+
7
+ - [Controller props](./contracts/controller-props.md)
8
+ - [Underlying library map](./contracts/dependency-map.md)
9
+ - [Style import guide](./contracts/style-imports.md)
10
+
11
+ ## Components
12
+
13
+ ### Buttons and loaders
14
+
15
+ - [Button](./components/button.md)
16
+ - [Loading](./components/loading.md)
17
+
18
+ ### Forms
19
+
20
+ - [TextInput](./components/text-input.md)
21
+ - [TextArea](./components/text-area.md)
22
+ - [NumberInput](./components/number-input.md)
23
+ - [DateInput](./components/date-input.md)
24
+ - [DropDown](./components/drop-down.md)
25
+ - [MultiSelect](./components/multi-select.md)
26
+ - [Select](./components/select.md)
27
+ - [AsyncSelect](./components/async-select.md)
28
+ - [CKEditorInput](./components/ckeditor-input.md)
29
+ - [TimePicker](./components/time-picker.md)
30
+ - [Switch](./components/switch.md)
31
+ - [Toggle](./components/toggle.md)
32
+ - [ToggleInlineButton](./components/toggle-inline-button.md)
33
+ - [FileDropzone](./components/file-dropzone.md)
34
+ - [UploadFilesPreview](./components/upload-files-preview.md)
35
+ - [FormActionsBar](./components/form-actions-bar.md)
36
+ - [FormFieldRender](./components/form-field-render.md)
37
+ - [RenderField](./components/render-field.md)
38
+ - [ErrorMessage](./components/error-message.md)
39
+ - [HiddenField](./components/hidden-field.md)
40
+ - [DirtyFormGuard and useDirtyFormGuard](./components/dirty-form-guard.md)
41
+
42
+ ### Tables
43
+
44
+ - [TableToolbar](./components/table-toolbar.md)
45
+ - [TableFilterField](./components/table-filter-field.md)
46
+ - [PaginatedTable](./components/paginated-table.md)
47
+ - [ActionColumn](./components/action-column.md)
48
+ - [MenuButton](./components/menu-button.md)
49
+ - [FilterPannel](./components/filter-pannel.md)
50
+ - [MultiSelectFilter](./components/multi-select-filter.md)
51
+ - [IndexColumn](./components/index-column.md)
52
+
53
+ ### Page and layout
54
+
55
+ - [PageTitle](./components/page-title.md)
56
+ - [FormSection](./components/form-section.md)
57
+ - [AdminPageHeader](./components/admin-page-header.md)
58
+ - [Admin page layout](./components/admin-page-layout.md)
59
+
60
+ ### Generic UI
61
+
62
+ - [Pagination, PaginationInfo, PageSizeSelector](./components/pagination.md)
63
+ - [RichTextPreview](./components/rich-text-preview.md)
64
+ - [StatusBadge](./components/status-badge.md)
65
+ - [DataState](./components/data-state.md)
66
+ - [ConfirmDialog](./components/confirm-dialog.md)
67
+
68
+ ### Maps
69
+
70
+ - [MapPicker](./components/map-picker.md)
71
+ - [MapPickerClient](./components/map-picker-client.md)
72
+ - [MapPickerOSM](./components/map-picker-osm.md)
@@ -0,0 +1,17 @@
1
+ # ActionColumn
2
+
3
+ - Export: `ActionColumn`
4
+ - Extra exports: `ActionColumnProps`
5
+ - Import: `import { ActionColumn } from "@mantis-core/ui";`
6
+ - Base library: `primereact/column`
7
+ - Base typing: `ColumnProps & { label?: string; icon?: string }`
8
+ - Required styles: usually `@mantis-core/styles/scss/table.scss` through table context
9
+
10
+ ## Example
11
+
12
+ ```tsx
13
+ {ActionColumn(
14
+ (row) => [{ label: "Open", route: `/admin/items/${row.id}` }],
15
+ { label: "Actions" },
16
+ )}
17
+ ```
@@ -0,0 +1,21 @@
1
+ # AdminPageHeader
2
+
3
+ - Export: `AdminPageHeader`
4
+ - Import: `import { AdminPageHeader } from "@mantis-core/ui";`
5
+ - Base library: custom header + `next/link`
6
+ - Base typing: `{ title: string; description?: string; actions?: ReactNode; breadcrumbs?: readonly AdminBreadcrumbItem[] }`
7
+ - Required styles: none
8
+
9
+ ## Example
10
+
11
+ ```tsx
12
+ <AdminPageHeader
13
+ title="Clients"
14
+ description="Manage B2B accounts"
15
+ breadcrumbs={[
16
+ { label: "Dashboard", href: "/admin" },
17
+ { label: "Clients" },
18
+ ]}
19
+ actions={<Button label="New client" icon="pi pi-plus" />}
20
+ />
21
+ ```
@@ -0,0 +1,29 @@
1
+ # Admin Page Layout
2
+
3
+ - Exports:
4
+ - `AdminPageLayoutProvider`
5
+ - `useAdminPageLayout`
6
+ - `AdminPageConfigurator`
7
+ - `AdminPageLayoutShell`
8
+ - `AdminBreadcrumbItem`
9
+ - `AdminPageLayoutConfig`
10
+ - Import: `import { AdminPageLayoutProvider, AdminPageConfigurator, AdminPageLayoutShell } from "@mantis-core/ui";`
11
+ - Base library: React context + custom shell
12
+ - Required styles: none
13
+
14
+ ## Example
15
+
16
+ ```tsx
17
+ <AdminPageLayoutProvider>
18
+ <AdminPageLayoutShell>
19
+ <AdminPageConfigurator config={{ title: "Leads" }}>
20
+ <LeadsTable />
21
+ </AdminPageConfigurator>
22
+ </AdminPageLayoutShell>
23
+ </AdminPageLayoutProvider>
24
+ ```
25
+
26
+ ## Notes
27
+
28
+ - `useAdminPageLayout` must run inside `AdminPageLayoutProvider`.
29
+ - `AdminPageLayoutShell` renders `AdminPageHeader` when `config.title` exists and `hideHeader` is not set.
@@ -0,0 +1,26 @@
1
+ # AsyncSelect
2
+
3
+ - Export: `AsyncSelect`
4
+ - Extra exports: `AsyncSelectProps`
5
+ - Import: `import { AsyncSelect } from "@mantis-core/ui";`
6
+ - Base library: `react-select/async` or `react-select/async-creatable`
7
+ - Base typing: `Omit<ReactSelectProps<SelectOption>, "name" | "defaultValue" | "options"> & { controller: ControllerProps; block?: boolean; variant?: ButtonVariant; isCreatable?: boolean; loadOptions; defaultOptions?; cacheOptions?; debounceMs?; onCreateOption?; formatCreateLabel? }`
8
+ - Form contract: [`ControllerProps`](../contracts/controller-props.md)
9
+ - Required styles: `@mantis-core/styles/scss/select.scss`
10
+
11
+ ## Example
12
+
13
+ ```tsx
14
+ <AsyncSelect
15
+ controller={{ name: "city", control: form.control }}
16
+ block
17
+ loadOptions={async (input) => searchCities(input)}
18
+ defaultOptions
19
+ debounceMs={300}
20
+ />
21
+ ```
22
+
23
+ ## Notes
24
+
25
+ - `loadOptions` is required.
26
+ - Debouncing is implemented inside the wrapper.
@@ -0,0 +1,25 @@
1
+ # Button
2
+
3
+ - Export: `Button`
4
+ - Import: `import { Button } from "@mantis-core/ui";`
5
+ - Base library: `primereact/button`
6
+ - Base typing: `Omit<PrimeButtonProps, "onClick" | "ref">` plus `href`, `variant`, `block`, `sm`, `lg`, `outlined`, `text`, `rounded`
7
+ - Required styles: `@mantis-core/styles/scss/buttons.scss`
8
+
9
+ ## Example
10
+
11
+ ```tsx
12
+ <Button
13
+ label="Save"
14
+ icon="pi pi-check"
15
+ variant="primary"
16
+ rounded
17
+ onClick={() => console.log("saved")}
18
+ />
19
+ ```
20
+
21
+ ## Notes
22
+
23
+ - PrimeReact props still pass through.
24
+ - `href` triggers client navigation with `next/navigation`.
25
+ - `ButtonVariant` accepts `danger`, but the tokenized SCSS loop is defined around `error`.