@nestledjs/data-browser 0.1.1 → 0.1.4

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 (83) hide show
  1. package/index.d.ts +15 -0
  2. package/index.js +64 -0
  3. package/lib/admin-data.d.ts +2 -0
  4. package/lib/components/filters/DateRangeFilter.d.ts +7 -0
  5. package/lib/components/filters/DateRangeFilter.js +105 -0
  6. package/lib/components/filters/NumberRangeFilter.d.ts +8 -0
  7. package/lib/components/filters/NumberRangeFilter.js +115 -0
  8. package/lib/components/filters/RelationComponents.d.ts +32 -0
  9. package/lib/components/filters/RelationComponents.js +265 -0
  10. package/lib/components/filters/RelationFilterField.d.ts +8 -0
  11. package/lib/components/filters/RelationFilterField.js +116 -0
  12. package/lib/components/filters/index.d.ts +4 -0
  13. package/lib/components/index.d.ts +2 -0
  14. package/lib/components/shared/AdminBreadcrumbs.d.ts +13 -0
  15. package/lib/components/shared/AdminBreadcrumbs.js +103 -0
  16. package/lib/components/shared/AdminErrorStates.d.ts +30 -0
  17. package/lib/components/shared/AdminErrorStates.js +214 -0
  18. package/lib/components/shared/AdminStatusDisplay.d.ts +21 -0
  19. package/lib/components/shared/AdminStatusDisplay.js +205 -0
  20. package/lib/components/shared/index.d.ts +3 -0
  21. package/lib/context/AdminDataContext.d.ts +47 -0
  22. package/lib/context/AdminDataContext.js +28 -0
  23. package/lib/hooks/useAdminList.d.ts +5 -0
  24. package/lib/hooks/useAdminList.js +41 -0
  25. package/lib/hooks/useClickOutside.d.ts +2 -0
  26. package/lib/hooks/useClickOutside.js +13 -0
  27. package/lib/hooks/useDebounce.d.ts +1 -0
  28. package/lib/hooks/useDebounce.js +13 -0
  29. package/lib/hooks/useRelationData.d.ts +7 -0
  30. package/lib/hooks/useRelationData.js +64 -0
  31. package/lib/layouts/AdminDataLayout.d.ts +5 -0
  32. package/lib/layouts/AdminDataLayout.js +315 -0
  33. package/lib/pages/AdminDataCreatePage.d.ts +4 -0
  34. package/lib/pages/AdminDataCreatePage.js +487 -0
  35. package/lib/pages/AdminDataEditPage.d.ts +4 -0
  36. package/lib/pages/AdminDataEditPage.js +903 -0
  37. package/lib/pages/AdminDataIndexPage.d.ts +4 -0
  38. package/lib/pages/AdminDataIndexPage.js +91 -0
  39. package/lib/pages/AdminDataListPage.d.ts +9 -0
  40. package/lib/pages/AdminDataListPage.js +1218 -0
  41. package/lib/types/index.d.ts +60 -0
  42. package/lib/types/index.js +16 -0
  43. package/lib/utils/graphql-utils.d.ts +25 -0
  44. package/lib/utils/graphql-utils.js +265 -0
  45. package/lib/utils/secure-storage.d.ts +50 -0
  46. package/lib/utils/secure-storage.js +145 -0
  47. package/lib/utils/string-utils.d.ts +6 -0
  48. package/lib/utils/string-utils.js +27 -0
  49. package/package.json +16 -3
  50. package/.babelrc +0 -12
  51. package/LICENSE +0 -21
  52. package/eslint.config.mjs +0 -12
  53. package/project.json +0 -35
  54. package/src/index.ts +0 -28
  55. package/src/lib/admin-data.spec.tsx +0 -10
  56. package/src/lib/admin-data.tsx +0 -9
  57. package/src/lib/components/filters/DateRangeFilter.tsx +0 -88
  58. package/src/lib/components/filters/NumberRangeFilter.tsx +0 -111
  59. package/src/lib/components/filters/RelationComponents.tsx +0 -176
  60. package/src/lib/components/filters/RelationFilterField.tsx +0 -106
  61. package/src/lib/components/filters/index.ts +0 -5
  62. package/src/lib/components/index.ts +0 -2
  63. package/src/lib/components/shared/AdminBreadcrumbs.tsx +0 -88
  64. package/src/lib/components/shared/AdminErrorStates.tsx +0 -180
  65. package/src/lib/components/shared/AdminStatusDisplay.tsx +0 -292
  66. package/src/lib/components/shared/index.ts +0 -3
  67. package/src/lib/context/AdminDataContext.tsx +0 -74
  68. package/src/lib/hooks/useAdminList.ts +0 -42
  69. package/src/lib/hooks/useClickOutside.ts +0 -21
  70. package/src/lib/hooks/useDebounce.ts +0 -16
  71. package/src/lib/hooks/useRelationData.ts +0 -114
  72. package/src/lib/layouts/AdminDataLayout.tsx +0 -251
  73. package/src/lib/pages/AdminDataCreatePage.tsx +0 -415
  74. package/src/lib/pages/AdminDataEditPage.tsx +0 -777
  75. package/src/lib/pages/AdminDataIndexPage.tsx +0 -50
  76. package/src/lib/pages/AdminDataListPage.tsx +0 -921
  77. package/src/lib/types/index.ts +0 -51
  78. package/src/lib/utils/graphql-utils.ts +0 -538
  79. package/src/lib/utils/secure-storage.ts +0 -305
  80. package/src/lib/utils/string-utils.ts +0 -53
  81. package/tsconfig.json +0 -17
  82. package/tsconfig.lib.json +0 -20
  83. package/vite.config.ts +0 -35
@@ -0,0 +1,116 @@
1
+ import { jsxDEV as t } from "react/jsx-dev-runtime";
2
+ import { useState as b, useRef as R, useCallback as a, useMemo as I } from "react";
3
+ import { useClickOutside as g } from "../../hooks/useClickOutside.js";
4
+ import { useRelationData as D } from "../../hooks/useRelationData.js";
5
+ import { formatFieldName as p } from "../../utils/string-utils.js";
6
+ import { RelationDropdownButton as P, RelationDropdownContent as U } from "./RelationComponents.js";
7
+ function E({
8
+ fieldName: m,
9
+ relatedModelName: r,
10
+ currentValue: e,
11
+ onChange: l
12
+ }) {
13
+ const [c, n] = b(""), [i, o] = b(!1), f = R(null), u = a(() => {
14
+ o(!1);
15
+ }, []);
16
+ g(f, u, i);
17
+ const { relatedItems: d, loading: h, error: N, hasDocument: F } = D(r, c, i), j = I(
18
+ () => e != null && e.id ? d.find((s) => s.id === e.id) : null,
19
+ [e == null ? void 0 : e.id, d]
20
+ ), v = a((s) => {
21
+ l({ id: s.id }), o(!1), n("");
22
+ }, [l]), x = a(() => {
23
+ l(void 0), o(!1), n("");
24
+ }, [l]), y = a(() => {
25
+ o(!i), i || n("");
26
+ }, [i]);
27
+ return F ? /* @__PURE__ */ t("div", { className: "space-y-1", ref: f, children: [
28
+ /* @__PURE__ */ t("label", { className: "block text-sm font-medium text-gray-700", children: p(m) }, void 0, !1, {
29
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
30
+ lineNumber: 80,
31
+ columnNumber: 7
32
+ }, this),
33
+ /* @__PURE__ */ t("div", { className: "relative", children: [
34
+ /* @__PURE__ */ t(
35
+ P,
36
+ {
37
+ currentItem: j,
38
+ relatedModelName: r,
39
+ isOpen: i,
40
+ onClick: y
41
+ },
42
+ void 0,
43
+ !1,
44
+ {
45
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
46
+ lineNumber: 84,
47
+ columnNumber: 9
48
+ },
49
+ this
50
+ ),
51
+ i && /* @__PURE__ */ t(
52
+ U,
53
+ {
54
+ searchTerm: c,
55
+ onSearchChange: n,
56
+ relatedModelName: r,
57
+ items: d,
58
+ loading: h,
59
+ error: N,
60
+ onSelect: v,
61
+ onClear: x
62
+ },
63
+ void 0,
64
+ !1,
65
+ {
66
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
67
+ lineNumber: 92,
68
+ columnNumber: 11
69
+ },
70
+ this
71
+ )
72
+ ] }, void 0, !0, {
73
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
74
+ lineNumber: 83,
75
+ columnNumber: 7
76
+ }, this)
77
+ ] }, void 0, !0, {
78
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
79
+ lineNumber: 79,
80
+ columnNumber: 5
81
+ }, this) : /* @__PURE__ */ t("div", { className: "space-y-1", children: [
82
+ /* @__PURE__ */ t("label", { className: "block text-sm font-medium text-gray-700", children: [
83
+ p(m),
84
+ " ID"
85
+ ] }, void 0, !0, {
86
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
87
+ lineNumber: 64,
88
+ columnNumber: 9
89
+ }, this),
90
+ /* @__PURE__ */ t(
91
+ "input",
92
+ {
93
+ type: "text",
94
+ value: (e == null ? void 0 : e.id) || "",
95
+ onChange: (s) => l(s.target.value ? { id: s.target.value } : void 0),
96
+ placeholder: "Enter ID...",
97
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm"
98
+ },
99
+ void 0,
100
+ !1,
101
+ {
102
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
103
+ lineNumber: 67,
104
+ columnNumber: 9
105
+ },
106
+ this
107
+ )
108
+ ] }, void 0, !0, {
109
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
110
+ lineNumber: 63,
111
+ columnNumber: 7
112
+ }, this);
113
+ }
114
+ export {
115
+ E as RelationFilterField
116
+ };
@@ -0,0 +1,4 @@
1
+ export { DateRangeFilter } from './DateRangeFilter';
2
+ export { NumberRangeFilter } from './NumberRangeFilter';
3
+ export * from './RelationComponents';
4
+ export { RelationFilterField } from './RelationFilterField';
@@ -0,0 +1,2 @@
1
+ export * from './filters';
2
+ export * from './shared';
@@ -0,0 +1,13 @@
1
+ export interface BreadcrumbItem {
2
+ id: string;
3
+ label: string;
4
+ href?: string;
5
+ isActive?: boolean;
6
+ }
7
+ export interface AdminBreadcrumbsProps {
8
+ readonly items: readonly BreadcrumbItem[];
9
+ readonly showHome?: boolean;
10
+ readonly homeHref?: string;
11
+ readonly className?: string;
12
+ }
13
+ export declare function AdminBreadcrumbs({ items, showHome, homeHref, className, }: Readonly<AdminBreadcrumbsProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,103 @@
1
+ import { jsxDEV as s } from "react/jsx-dev-runtime";
2
+ import { Link as n } from "react-router";
3
+ import { HomeIcon as o, ChevronRightIcon as u } from "@heroicons/react/24/outline";
4
+ function x({
5
+ items: r,
6
+ showHome: t = !0,
7
+ homeHref: l = "/admin",
8
+ className: m = ""
9
+ }) {
10
+ const i = () => t ? /* @__PURE__ */ s("li", { className: "flex items-center", children: /* @__PURE__ */ s(
11
+ n,
12
+ {
13
+ to: l,
14
+ className: "text-gray-400 hover:text-gray-500",
15
+ "aria-label": "Home",
16
+ children: /* @__PURE__ */ s(o, { className: "h-5 w-5 flex-shrink-0" }, void 0, !1, {
17
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
18
+ lineNumber: 36,
19
+ columnNumber: 11
20
+ }, this)
21
+ },
22
+ void 0,
23
+ !1,
24
+ {
25
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
26
+ lineNumber: 31,
27
+ columnNumber: 9
28
+ },
29
+ this
30
+ ) }, "home", !1, {
31
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
32
+ lineNumber: 30,
33
+ columnNumber: 7
34
+ }, this) : null, d = (e, a, b) => {
35
+ const c = e.href && !e.isActive ? /* @__PURE__ */ s(
36
+ n,
37
+ {
38
+ to: e.href,
39
+ className: "text-sm font-medium text-gray-500 hover:text-gray-700",
40
+ children: e.label
41
+ },
42
+ void 0,
43
+ !1,
44
+ {
45
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
46
+ lineNumber: 44,
47
+ columnNumber: 7
48
+ },
49
+ this
50
+ ) : /* @__PURE__ */ s(
51
+ "span",
52
+ {
53
+ className: `text-sm font-medium ${e.isActive ? "text-gray-900" : "text-gray-500"}`,
54
+ children: e.label
55
+ },
56
+ void 0,
57
+ !1,
58
+ {
59
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
60
+ lineNumber: 51,
61
+ columnNumber: 7
62
+ },
63
+ this
64
+ );
65
+ return /* @__PURE__ */ s("li", { className: "flex items-center", children: [
66
+ (t || a > 0) && /* @__PURE__ */ s(
67
+ u,
68
+ {
69
+ className: "h-5 w-5 flex-shrink-0 text-gray-400 mr-4",
70
+ "aria-hidden": "true"
71
+ },
72
+ void 0,
73
+ !1,
74
+ {
75
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
76
+ lineNumber: 63,
77
+ columnNumber: 11
78
+ },
79
+ this
80
+ ),
81
+ c
82
+ ] }, e.id, !0, {
83
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
84
+ lineNumber: 61,
85
+ columnNumber: 7
86
+ }, this);
87
+ };
88
+ return /* @__PURE__ */ s("nav", { className: `flex ${m}`, "aria-label": "Breadcrumb", children: /* @__PURE__ */ s("ol", { className: "flex items-center space-x-4", children: [
89
+ i(),
90
+ r.map((e, a) => (r.length - 1, d(e, a)))
91
+ ] }, void 0, !0, {
92
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
93
+ lineNumber: 79,
94
+ columnNumber: 7
95
+ }, this) }, void 0, !1, {
96
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
97
+ lineNumber: 78,
98
+ columnNumber: 5
99
+ }, this);
100
+ }
101
+ export {
102
+ x as AdminBreadcrumbs
103
+ };
@@ -0,0 +1,30 @@
1
+ import { default as React } from 'react';
2
+ export type ErrorSeverity = 'warning' | 'error' | 'critical';
3
+ export interface AdminErrorStateProps {
4
+ readonly title: string;
5
+ readonly message?: string;
6
+ readonly severity?: ErrorSeverity;
7
+ readonly onRetry?: () => void;
8
+ readonly onDismiss?: () => void;
9
+ readonly className?: string;
10
+ readonly showIcon?: boolean;
11
+ }
12
+ export interface AdminEmptyStateProps {
13
+ readonly title: string;
14
+ readonly message?: string;
15
+ readonly actionLabel?: string;
16
+ readonly onAction?: () => void;
17
+ readonly className?: string;
18
+ readonly icon?: React.ComponentType<{
19
+ className?: string;
20
+ }>;
21
+ }
22
+ export interface AdminLoadingStateProps {
23
+ readonly title?: string;
24
+ readonly message?: string;
25
+ readonly className?: string;
26
+ readonly size?: 'small' | 'medium' | 'large';
27
+ }
28
+ export declare function AdminErrorState({ title, message, severity, onRetry, onDismiss, className, showIcon, }: Readonly<AdminErrorStateProps>): import("react/jsx-runtime").JSX.Element;
29
+ export declare function AdminEmptyState({ title, message, actionLabel, onAction, className, icon: IconComponent, }: Readonly<AdminEmptyStateProps>): import("react/jsx-runtime").JSX.Element;
30
+ export declare function AdminLoadingState({ title, message, className, size, }: Readonly<AdminLoadingStateProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,214 @@
1
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
2
+ import { XCircleIcon as m, ExclamationCircleIcon as c, ExclamationTriangleIcon as u } from "@heroicons/react/24/outline";
3
+ const b = (l) => ({
4
+ warning: {
5
+ icon: u,
6
+ bgColor: "bg-yellow-50",
7
+ borderColor: "border-yellow-200",
8
+ iconColor: "text-yellow-400",
9
+ titleColor: "text-yellow-800",
10
+ messageColor: "text-yellow-700",
11
+ buttonColor: "bg-yellow-100 text-yellow-800 hover:bg-yellow-200"
12
+ },
13
+ error: {
14
+ icon: c,
15
+ bgColor: "bg-red-50",
16
+ borderColor: "border-red-200",
17
+ iconColor: "text-red-400",
18
+ titleColor: "text-red-800",
19
+ messageColor: "text-red-700",
20
+ buttonColor: "bg-red-100 text-red-800 hover:bg-red-200"
21
+ },
22
+ critical: {
23
+ icon: m,
24
+ bgColor: "bg-red-100",
25
+ borderColor: "border-red-300",
26
+ iconColor: "text-red-500",
27
+ titleColor: "text-red-900",
28
+ messageColor: "text-red-800",
29
+ buttonColor: "bg-red-200 text-red-900 hover:bg-red-300"
30
+ }
31
+ })[l];
32
+ function f({
33
+ title: l,
34
+ message: t,
35
+ severity: i = "error",
36
+ onRetry: s,
37
+ onDismiss: n,
38
+ className: o = "",
39
+ showIcon: a = !0
40
+ }) {
41
+ const r = b(i), d = r.icon;
42
+ return /* @__PURE__ */ e("div", { className: `rounded-md border p-4 ${r.bgColor} ${r.borderColor} ${o}`, children: /* @__PURE__ */ e("div", { className: "flex", children: [
43
+ a && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: /* @__PURE__ */ e(d, { className: `h-5 w-5 ${r.iconColor}`, "aria-hidden": "true" }, void 0, !1, {
44
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
45
+ lineNumber: 82,
46
+ columnNumber: 13
47
+ }, this) }, void 0, !1, {
48
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
49
+ lineNumber: 81,
50
+ columnNumber: 11
51
+ }, this),
52
+ /* @__PURE__ */ e("div", { className: a ? "ml-3" : "", children: [
53
+ /* @__PURE__ */ e("h3", { className: `text-sm font-medium ${r.titleColor}`, children: l }, void 0, !1, {
54
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
55
+ lineNumber: 86,
56
+ columnNumber: 11
57
+ }, this),
58
+ t && /* @__PURE__ */ e("div", { className: `mt-2 text-sm ${r.messageColor}`, children: /* @__PURE__ */ e("p", { children: t }, void 0, !1, {
59
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
60
+ lineNumber: 91,
61
+ columnNumber: 15
62
+ }, this) }, void 0, !1, {
63
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
64
+ lineNumber: 90,
65
+ columnNumber: 13
66
+ }, this),
67
+ (s || n) && /* @__PURE__ */ e("div", { className: "mt-4", children: /* @__PURE__ */ e("div", { className: "-mx-2 -my-1.5 flex", children: [
68
+ s && /* @__PURE__ */ e(
69
+ "button",
70
+ {
71
+ type: "button",
72
+ onClick: s,
73
+ className: `rounded-md px-2 py-1.5 text-sm font-medium ${r.buttonColor} focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500`,
74
+ children: "Try Again"
75
+ },
76
+ void 0,
77
+ !1,
78
+ {
79
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
80
+ lineNumber: 98,
81
+ columnNumber: 19
82
+ },
83
+ this
84
+ ),
85
+ n && /* @__PURE__ */ e(
86
+ "button",
87
+ {
88
+ type: "button",
89
+ onClick: n,
90
+ className: `ml-3 rounded-md px-2 py-1.5 text-sm font-medium ${r.buttonColor} focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500`,
91
+ children: "Dismiss"
92
+ },
93
+ void 0,
94
+ !1,
95
+ {
96
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
97
+ lineNumber: 107,
98
+ columnNumber: 19
99
+ },
100
+ this
101
+ )
102
+ ] }, void 0, !0, {
103
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
104
+ lineNumber: 96,
105
+ columnNumber: 15
106
+ }, this) }, void 0, !1, {
107
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
108
+ lineNumber: 95,
109
+ columnNumber: 13
110
+ }, this)
111
+ ] }, void 0, !0, {
112
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
113
+ lineNumber: 85,
114
+ columnNumber: 9
115
+ }, this)
116
+ ] }, void 0, !0, {
117
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
118
+ lineNumber: 79,
119
+ columnNumber: 7
120
+ }, this) }, void 0, !1, {
121
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
122
+ lineNumber: 78,
123
+ columnNumber: 5
124
+ }, this);
125
+ }
126
+ function x({
127
+ title: l,
128
+ message: t,
129
+ actionLabel: i,
130
+ onAction: s,
131
+ className: n = "",
132
+ icon: o
133
+ }) {
134
+ return /* @__PURE__ */ e("div", { className: `text-center ${n}`, children: [
135
+ o && /* @__PURE__ */ e(o, { className: "mx-auto h-12 w-12 text-gray-400" }, void 0, !1, {
136
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
137
+ lineNumber: 135,
138
+ columnNumber: 9
139
+ }, this),
140
+ /* @__PURE__ */ e("h3", { className: "mt-2 text-sm font-medium text-gray-900", children: l }, void 0, !1, {
141
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
142
+ lineNumber: 137,
143
+ columnNumber: 7
144
+ }, this),
145
+ t && /* @__PURE__ */ e("p", { className: "mt-1 text-sm text-gray-500", children: t }, void 0, !1, {
146
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
147
+ lineNumber: 139,
148
+ columnNumber: 9
149
+ }, this),
150
+ i && s && /* @__PURE__ */ e("div", { className: "mt-6", children: /* @__PURE__ */ e(
151
+ "button",
152
+ {
153
+ type: "button",
154
+ onClick: s,
155
+ className: "inline-flex items-center rounded-md bg-green-web px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-green-web-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-web",
156
+ children: i
157
+ },
158
+ void 0,
159
+ !1,
160
+ {
161
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
162
+ lineNumber: 143,
163
+ columnNumber: 11
164
+ },
165
+ this
166
+ ) }, void 0, !1, {
167
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
168
+ lineNumber: 142,
169
+ columnNumber: 9
170
+ }, this)
171
+ ] }, void 0, !0, {
172
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
173
+ lineNumber: 133,
174
+ columnNumber: 5
175
+ }, this);
176
+ }
177
+ function p({
178
+ title: l = "Loading...",
179
+ message: t,
180
+ className: i = "",
181
+ size: s = "medium"
182
+ }) {
183
+ const n = () => ({
184
+ small: "h-4 w-4",
185
+ medium: "h-8 w-8",
186
+ large: "h-12 w-12"
187
+ })[s];
188
+ return /* @__PURE__ */ e("div", { className: `flex flex-col items-center justify-center p-8 ${i}`, children: [
189
+ /* @__PURE__ */ e("div", { className: `animate-spin rounded-full border-b-2 border-green-web ${n()}` }, void 0, !1, {
190
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
191
+ lineNumber: 173,
192
+ columnNumber: 7
193
+ }, this),
194
+ /* @__PURE__ */ e("h3", { className: "mt-4 text-sm font-medium text-gray-900", children: l }, void 0, !1, {
195
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
196
+ lineNumber: 174,
197
+ columnNumber: 7
198
+ }, this),
199
+ t && /* @__PURE__ */ e("p", { className: "mt-1 text-sm text-gray-500", children: t }, void 0, !1, {
200
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
201
+ lineNumber: 176,
202
+ columnNumber: 9
203
+ }, this)
204
+ ] }, void 0, !0, {
205
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminErrorStates.tsx",
206
+ lineNumber: 172,
207
+ columnNumber: 5
208
+ }, this);
209
+ }
210
+ export {
211
+ x as AdminEmptyState,
212
+ f as AdminErrorState,
213
+ p as AdminLoadingState
214
+ };
@@ -0,0 +1,21 @@
1
+ export type StatusType = 'active' | 'inactive' | 'pending' | 'approved' | 'rejected' | 'warning' | 'error' | 'success' | 'paused' | 'unknown';
2
+ export type StatusSize = 'small' | 'medium' | 'large';
3
+ export type StatusVariant = 'badge' | 'pill' | 'dot' | 'full';
4
+ export interface AdminStatusDisplayProps {
5
+ readonly status: StatusType;
6
+ readonly label?: string;
7
+ readonly size?: StatusSize;
8
+ readonly variant?: StatusVariant;
9
+ readonly showIcon?: boolean;
10
+ readonly className?: string;
11
+ readonly onClick?: () => void;
12
+ readonly tooltip?: string;
13
+ }
14
+ export interface AdminUserStatusProps {
15
+ readonly status: 'online' | 'offline' | 'away' | 'busy';
16
+ readonly showLabel?: boolean;
17
+ readonly size?: StatusSize;
18
+ readonly className?: string;
19
+ }
20
+ export declare function AdminStatusDisplay({ status, label, size, variant, showIcon, className, onClick, tooltip, }: Readonly<AdminStatusDisplayProps>): import("react/jsx-runtime").JSX.Element;
21
+ export declare function AdminUserStatus({ status, showLabel, size, className, }: Readonly<AdminUserStatusProps>): import("react/jsx-runtime").JSX.Element;