@burdenoff/microfe-organization 2026.525.3 → 2026.527.1
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.
- package/dist/organization-management/AdminOrganizationRoutes.js +1 -1
- package/dist/organization-management/AdminOrganizationRoutes.js.map +1 -1
- package/dist/organization-management/UserOrganizationRoutes.js +1 -1
- package/dist/organization-management/UserOrganizationRoutes.js.map +1 -1
- package/dist/organization-management/modules/members/components/MyInviteCard.js +2 -0
- package/dist/organization-management/modules/members/components/MyInviteCard.js.map +1 -1
- package/dist/organization-management/modules/members/components/PendingInvitesList.js +2 -0
- package/dist/organization-management/modules/members/components/PendingInvitesList.js.map +1 -1
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js +1 -0
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js +2 -1
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MembersListPage.js +10 -2
- package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +6 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +1 -0
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +15 -4
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js +2 -2
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js.map +1 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js.map +1 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +8 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +1 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +10 -0
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -1
- package/dist/organization-management/providers/OrgConsoleProvider.js +1 -1
- package/dist/organization-management/providers/OrgConsoleProvider.js.map +1 -1
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js +25 -86
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js.map +1 -1
- package/dist/organization-management/shared/components/dialog/ConfirmDialogView.js +69 -0
- package/dist/organization-management/shared/components/dialog/ConfirmDialogView.js.map +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js +1 -0
- package/dist/organization-management/shared/components/feedback/EmptyState.js.map +1 -1
- package/dist/organization-management/shared/components/feedback/ErrorState.js +2 -1
- package/dist/organization-management/shared/components/feedback/ErrorState.js.map +1 -1
- package/dist/organization-management/shared/components/feedback/LoadingState.js +1 -2
- package/dist/organization-management/shared/components/feedback/LoadingState.js.map +1 -1
- package/dist/organization-management/shared/components/input/SearchInput.js +1 -0
- package/dist/organization-management/shared/components/input/SearchInput.js.map +1 -1
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js +1 -1
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js.map +1 -1
- package/dist/organization-management/shared/types/graphql.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,105 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
5
|
-
import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
1
|
+
import { ConfirmDialog as e } from "./ConfirmDialogView.js";
|
|
2
|
+
import { useCallback as t, useMemo as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
6
4
|
//#region src/organization-management/shared/components/dialog/ConfirmDialog.tsx
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
icon: a,
|
|
10
|
-
iconContainerClassName: "bg-[var(--color-status-info-bgSubtle)]",
|
|
11
|
-
iconClassName: "text-[var(--color-status-info-text)]",
|
|
12
|
-
actionClassName: "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)] hover:opacity-90"
|
|
13
|
-
},
|
|
14
|
-
warning: {
|
|
15
|
-
icon: i,
|
|
16
|
-
iconContainerClassName: "bg-[var(--color-status-warning-bgSubtle)]",
|
|
17
|
-
iconClassName: "text-[var(--color-status-warning-text)]",
|
|
18
|
-
actionClassName: "bg-[var(--color-status-warning-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
19
|
-
},
|
|
20
|
-
danger: {
|
|
21
|
-
icon: r,
|
|
22
|
-
iconContainerClassName: "bg-[var(--color-status-error-bgSubtle)]",
|
|
23
|
-
iconClassName: "text-[var(--color-status-error-text)]",
|
|
24
|
-
actionClassName: "bg-[var(--color-status-error-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
function v({ open: t, onOpenChange: n, title: r, description: i, confirmText: a, cancelText: v, variant: y = "default", onConfirm: b }) {
|
|
28
|
-
let { t: x } = g(), S = e((e, t) => {
|
|
29
|
-
let n = x(e);
|
|
30
|
-
return n === e ? t : n;
|
|
31
|
-
}, [x]), C = _[y], w = C.icon, T = a ?? S("common.confirm", "Confirm"), E = v ?? S("common.cancel", "Cancel");
|
|
32
|
-
return /* @__PURE__ */ m(o, {
|
|
33
|
-
open: t,
|
|
34
|
-
onOpenChange: n,
|
|
35
|
-
children: /* @__PURE__ */ h(l, {
|
|
36
|
-
className: "max-w-md border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]",
|
|
37
|
-
children: [/* @__PURE__ */ m(f, { children: /* @__PURE__ */ h("div", {
|
|
38
|
-
className: "flex items-start gap-4",
|
|
39
|
-
children: [/* @__PURE__ */ m("div", {
|
|
40
|
-
className: `flex h-10 w-10 items-center justify-center rounded-full ${C.iconContainerClassName}`,
|
|
41
|
-
children: /* @__PURE__ */ m(w, { className: `h-5 w-5 ${C.iconClassName}` })
|
|
42
|
-
}), /* @__PURE__ */ h("div", {
|
|
43
|
-
className: "flex-1",
|
|
44
|
-
children: [/* @__PURE__ */ m(p, {
|
|
45
|
-
className: "text-lg text-[var(--color-text-primary)]",
|
|
46
|
-
children: r
|
|
47
|
-
}), /* @__PURE__ */ m(u, {
|
|
48
|
-
className: "mt-2 text-sm text-[var(--color-text-secondary)]",
|
|
49
|
-
children: i
|
|
50
|
-
})]
|
|
51
|
-
})]
|
|
52
|
-
}) }), /* @__PURE__ */ h(d, {
|
|
53
|
-
className: "mt-6",
|
|
54
|
-
children: [/* @__PURE__ */ m(c, {
|
|
55
|
-
className: "border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
|
|
56
|
-
children: E
|
|
57
|
-
}), /* @__PURE__ */ m(s, {
|
|
58
|
-
onClick: b,
|
|
59
|
-
className: C.actionClassName,
|
|
60
|
-
children: T
|
|
61
|
-
})]
|
|
62
|
-
})]
|
|
63
|
-
})
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
function y() {
|
|
67
|
-
let [r, i] = n({
|
|
5
|
+
function a() {
|
|
6
|
+
let [a, o] = r({
|
|
68
7
|
open: !1,
|
|
69
8
|
title: "",
|
|
70
9
|
description: ""
|
|
71
|
-
}), [
|
|
72
|
-
|
|
10
|
+
}), [s, c] = r(null), l = t((e) => {
|
|
11
|
+
o({
|
|
73
12
|
...e,
|
|
74
13
|
open: !0
|
|
75
|
-
}),
|
|
76
|
-
}, []),
|
|
77
|
-
|
|
14
|
+
}), c(() => e.onConfirm);
|
|
15
|
+
}, []), u = t((e) => {
|
|
16
|
+
o((t) => ({
|
|
78
17
|
...t,
|
|
79
18
|
open: e
|
|
80
|
-
})), e ||
|
|
19
|
+
})), e || c(null);
|
|
81
20
|
}, []);
|
|
82
21
|
return {
|
|
83
|
-
openConfirmDialog:
|
|
84
|
-
ConfirmDialog:
|
|
85
|
-
open:
|
|
86
|
-
onOpenChange:
|
|
87
|
-
title:
|
|
88
|
-
description:
|
|
89
|
-
confirmText:
|
|
90
|
-
cancelText:
|
|
91
|
-
variant:
|
|
22
|
+
openConfirmDialog: l,
|
|
23
|
+
ConfirmDialog: n(() => /* @__PURE__ */ i(e, {
|
|
24
|
+
open: a.open,
|
|
25
|
+
onOpenChange: u,
|
|
26
|
+
title: a.title,
|
|
27
|
+
description: a.description,
|
|
28
|
+
confirmText: a.confirmText,
|
|
29
|
+
cancelText: a.cancelText,
|
|
30
|
+
variant: a.variant,
|
|
92
31
|
onConfirm: () => {
|
|
93
|
-
|
|
32
|
+
s?.(), u(!1);
|
|
94
33
|
}
|
|
95
34
|
}), [
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
35
|
+
u,
|
|
36
|
+
s,
|
|
37
|
+
a
|
|
99
38
|
])
|
|
100
39
|
};
|
|
101
40
|
}
|
|
102
41
|
//#endregion
|
|
103
|
-
export {
|
|
42
|
+
export { a as useConfirmDialog };
|
|
104
43
|
|
|
105
44
|
//# sourceMappingURL=ConfirmDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmDialog.js","names":[],"sources":["../../../../../src/organization-management/shared/components/dialog/ConfirmDialog.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.js","names":[],"sources":["../../../../../src/organization-management/shared/components/dialog/ConfirmDialog.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport { ConfirmDialog, type ConfirmDialogVariant } from './ConfirmDialogView';\n\ninterface ConfirmDialogState {\n open: boolean;\n title: string;\n description: string;\n confirmText?: string;\n cancelText?: string;\n variant?: ConfirmDialogVariant;\n}\n\nexport function useConfirmDialog() {\n const [state, setState] = useState<ConfirmDialogState>({\n open: false,\n title: '',\n description: '',\n });\n const [onConfirm, setOnConfirm] = useState<(() => void) | null>(null);\n\n const openConfirmDialog = useCallback(\n (config: Omit<ConfirmDialogState, 'open'> & { onConfirm: () => void }) => {\n setState({ ...config, open: true });\n setOnConfirm(() => config.onConfirm);\n },\n []\n );\n\n const handleOpenChange = useCallback((open: boolean) => {\n setState((previousState) => ({ ...previousState, open }));\n if (!open) {\n setOnConfirm(null);\n }\n }, []);\n\n const dialog = useMemo(\n () => (\n <ConfirmDialog\n open={state.open}\n onOpenChange={handleOpenChange}\n title={state.title}\n description={state.description}\n confirmText={state.confirmText}\n cancelText={state.cancelText}\n variant={state.variant}\n onConfirm={() => {\n onConfirm?.();\n handleOpenChange(false);\n }}\n />\n ),\n [handleOpenChange, onConfirm, state]\n );\n\n return { openConfirmDialog, ConfirmDialog: dialog };\n}\n"],"mappings":";;;;AAYA,SAAgB,IAAmB;CACjC,IAAM,CAAC,GAAO,KAAY,EAA6B;EACrD,MAAM;EACN,OAAO;EACP,aAAa;EACd,CAAC,EACI,CAAC,GAAW,KAAgB,EAA8B,KAAK,EAE/D,IAAoB,GACvB,MAAyE;AAExE,EADA,EAAS;GAAE,GAAG;GAAQ,MAAM;GAAM,CAAC,EACnC,QAAmB,EAAO,UAAU;IAEtC,EAAE,CACH,EAEK,IAAmB,GAAa,MAAkB;AAEtD,EADA,GAAU,OAAmB;GAAE,GAAG;GAAe;GAAM,EAAE,EACpD,KACH,EAAa,KAAK;IAEnB,EAAE,CAAC;AAqBN,QAAO;EAAE;EAAmB,eAnBb,QAEX,kBAAC,GAAD;GACE,MAAM,EAAM;GACZ,cAAc;GACd,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,aAAa,EAAM;GACnB,YAAY,EAAM;GAClB,SAAS,EAAM;GACf,iBAAiB;AAEf,IADA,KAAa,EACb,EAAiB,GAAM;;GAEzB,CAAA,EAEJ;GAAC;GAAkB;GAAW;GAAM,CACrC;EAEkD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useCallback as e } from "react";
|
|
2
|
+
import { AlertCircle as t, AlertTriangle as n, Info as r } from "lucide-react";
|
|
3
|
+
import { AlertDialog as i, AlertDialogAction as a, AlertDialogCancel as o, AlertDialogContent as s, AlertDialogDescription as c, AlertDialogFooter as l, AlertDialogHeader as u, AlertDialogTitle as d } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
5
|
+
import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
|
+
//#region src/organization-management/shared/components/dialog/ConfirmDialogView.tsx
|
|
7
|
+
var h = {
|
|
8
|
+
default: {
|
|
9
|
+
icon: r,
|
|
10
|
+
iconContainerClassName: "bg-[var(--color-status-info-bgSubtle)]",
|
|
11
|
+
iconClassName: "text-[var(--color-status-info-text)]",
|
|
12
|
+
actionClassName: "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)] hover:opacity-90"
|
|
13
|
+
},
|
|
14
|
+
warning: {
|
|
15
|
+
icon: n,
|
|
16
|
+
iconContainerClassName: "bg-[var(--color-status-warning-bgSubtle)]",
|
|
17
|
+
iconClassName: "text-[var(--color-status-warning-text)]",
|
|
18
|
+
actionClassName: "bg-[var(--color-status-warning-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
19
|
+
},
|
|
20
|
+
danger: {
|
|
21
|
+
icon: t,
|
|
22
|
+
iconContainerClassName: "bg-[var(--color-status-error-bgSubtle)]",
|
|
23
|
+
iconClassName: "text-[var(--color-status-error-text)]",
|
|
24
|
+
actionClassName: "bg-[var(--color-status-error-bg)] text-[var(--color-text-inverse)] hover:opacity-90"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
function g({ open: t, onOpenChange: n, title: r, description: g, confirmText: _, cancelText: v, variant: y = "default", onConfirm: b }) {
|
|
28
|
+
let { t: x } = m(), S = e((e, t) => {
|
|
29
|
+
let n = x(e);
|
|
30
|
+
return n === e ? t : n;
|
|
31
|
+
}, [x]), C = h[y], w = C.icon, T = _ ?? S("common.confirm", "Confirm"), E = v ?? S("common.cancel", "Cancel");
|
|
32
|
+
return /* @__PURE__ */ f(i, {
|
|
33
|
+
open: t,
|
|
34
|
+
onOpenChange: n,
|
|
35
|
+
children: /* @__PURE__ */ p(s, {
|
|
36
|
+
className: "max-w-md border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]",
|
|
37
|
+
children: [/* @__PURE__ */ f(u, { children: /* @__PURE__ */ p("div", {
|
|
38
|
+
className: "flex items-start gap-4",
|
|
39
|
+
children: [/* @__PURE__ */ f("div", {
|
|
40
|
+
className: `flex h-10 w-10 items-center justify-center rounded-full ${C.iconContainerClassName}`,
|
|
41
|
+
children: /* @__PURE__ */ f(w, { className: `h-5 w-5 ${C.iconClassName}` })
|
|
42
|
+
}), /* @__PURE__ */ p("div", {
|
|
43
|
+
className: "flex-1",
|
|
44
|
+
children: [/* @__PURE__ */ f(d, {
|
|
45
|
+
className: "text-lg text-[var(--color-text-primary)]",
|
|
46
|
+
children: r
|
|
47
|
+
}), /* @__PURE__ */ f(c, {
|
|
48
|
+
className: "mt-2 text-sm text-[var(--color-text-secondary)]",
|
|
49
|
+
children: g
|
|
50
|
+
})]
|
|
51
|
+
})]
|
|
52
|
+
}) }), /* @__PURE__ */ p(l, {
|
|
53
|
+
className: "mt-6",
|
|
54
|
+
children: [/* @__PURE__ */ f(o, {
|
|
55
|
+
className: "border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
|
|
56
|
+
children: E
|
|
57
|
+
}), /* @__PURE__ */ f(a, {
|
|
58
|
+
onClick: b,
|
|
59
|
+
className: C.actionClassName,
|
|
60
|
+
children: T
|
|
61
|
+
})]
|
|
62
|
+
})]
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { g as ConfirmDialog };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=ConfirmDialogView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmDialogView.js","names":[],"sources":["../../../../../src/organization-management/shared/components/dialog/ConfirmDialogView.tsx"],"sourcesContent":["import { AlertCircle, AlertTriangle, Info } from 'lucide-react';\nimport { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@burdenoff/fe-libs/ui';\n\nexport type ConfirmDialogVariant = 'default' | 'warning' | 'danger';\n\nexport interface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description: string;\n confirmText?: string;\n cancelText?: string;\n variant?: ConfirmDialogVariant;\n onConfirm: () => void;\n}\n\nconst VARIANT_STYLES: Record<\n ConfirmDialogVariant,\n {\n icon: typeof Info;\n iconContainerClassName: string;\n iconClassName: string;\n actionClassName: string;\n }\n> = {\n default: {\n icon: Info,\n iconContainerClassName: 'bg-[var(--color-status-info-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-info-text)]',\n actionClassName:\n 'bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)] hover:opacity-90',\n },\n warning: {\n icon: AlertTriangle,\n iconContainerClassName: 'bg-[var(--color-status-warning-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-warning-text)]',\n actionClassName:\n 'bg-[var(--color-status-warning-bg)] text-[var(--color-text-inverse)] hover:opacity-90',\n },\n danger: {\n icon: AlertCircle,\n iconContainerClassName: 'bg-[var(--color-status-error-bgSubtle)]',\n iconClassName: 'text-[var(--color-status-error-text)]',\n actionClassName:\n 'bg-[var(--color-status-error-bg)] text-[var(--color-text-inverse)] hover:opacity-90',\n },\n};\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmText,\n cancelText,\n variant = 'default',\n onConfirm,\n}: ConfirmDialogProps) {\n const { t } = useI18n();\n const tr = useCallback(\n (key: string, fallback: string) => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n },\n [t]\n );\n const styles = VARIANT_STYLES[variant];\n const Icon = styles.icon;\n const resolvedConfirmText = confirmText ?? tr('common.confirm', 'Confirm');\n const resolvedCancelText = cancelText ?? tr('common.cancel', 'Cancel');\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"max-w-md border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)]\">\n <AlertDialogHeader>\n <div className=\"flex items-start gap-4\">\n <div\n className={`flex h-10 w-10 items-center justify-center rounded-full ${styles.iconContainerClassName}`}\n >\n <Icon className={`h-5 w-5 ${styles.iconClassName}`} />\n </div>\n <div className=\"flex-1\">\n <AlertDialogTitle className=\"text-lg text-[var(--color-text-primary)]\">\n {title}\n </AlertDialogTitle>\n <AlertDialogDescription className=\"mt-2 text-sm text-[var(--color-text-secondary)]\">\n {description}\n </AlertDialogDescription>\n </div>\n </div>\n </AlertDialogHeader>\n\n <AlertDialogFooter className=\"mt-6\">\n <AlertDialogCancel className=\"border-[var(--color-border-default)] bg-[var(--color-bg-surface)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]\">\n {resolvedCancelText}\n </AlertDialogCancel>\n <AlertDialogAction onClick={onConfirm} className={styles.actionClassName}>\n {resolvedConfirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":";;;;;;AA2BA,IAAM,IAQF;CACF,SAAS;EACP,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACD,SAAS;EACP,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACD,QAAQ;EACN,MAAM;EACN,wBAAwB;EACxB,eAAe;EACf,iBACE;EACH;CACF;AAED,SAAgB,EAAc,EAC5B,SACA,iBACA,UACA,gBACA,gBACA,eACA,aAAU,WACV,gBACqB;CACrB,IAAM,EAAE,SAAM,GAAS,EACjB,IAAK,GACR,GAAa,MAAqB;EACjC,IAAM,IAAa,EAAE,EAAI;AACzB,SAAO,MAAe,IAAM,IAAW;IAEzC,CAAC,EAAE,CACJ,EACK,IAAS,EAAe,IACxB,IAAO,EAAO,MACd,IAAsB,KAAe,EAAG,kBAAkB,UAAU,EACpE,IAAqB,KAAc,EAAG,iBAAiB,SAAS;AAEtE,QACE,kBAAC,GAAD;EAAmB;EAAoB;YACrC,kBAAC,GAAD;GAAoB,WAAU;aAA9B,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KACE,WAAW,2DAA2D,EAAO;eAE7E,kBAAC,GAAD,EAAM,WAAW,WAAW,EAAO,iBAAmB,CAAA;KAClD,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAkB,WAAU;gBACzB;MACgB,CAAA,EACnB,kBAAC,GAAD;MAAwB,WAAU;gBAC/B;MACsB,CAAA,CACrB;OACF;OACY,CAAA,EAEpB,kBAAC,GAAD;IAAmB,WAAU;cAA7B,CACE,kBAAC,GAAD;KAAmB,WAAU;eAC1B;KACiB,CAAA,EACpB,kBAAC,GAAD;KAAmB,SAAS;KAAW,WAAW,EAAO;eACtD;KACiB,CAAA,CACF;MACD;;EACT,CAAA"}
|
|
@@ -17,6 +17,7 @@ function n({ icon: n, title: r, description: i, action: a }) {
|
|
|
17
17
|
children: i
|
|
18
18
|
}),
|
|
19
19
|
a && /* @__PURE__ */ e("button", {
|
|
20
|
+
type: "button",
|
|
20
21
|
onClick: a.onClick,
|
|
21
22
|
className: "\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
22
23
|
children: a.label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/EmptyState.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\ninterface EmptyStateProps {\n icon: ReactNode;\n title: string;\n description: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function EmptyState({ icon, title, description, action }: EmptyStateProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\">\n <div className=\"text-[var(--color-text-muted)] mb-4\">{icon}</div>\n <h3 className=\"text-lg font-semibold text-[var(--color-text-primary)] mb-2\">{title}</h3>\n <p className=\"text-sm text-[var(--color-text-muted)] mb-6 max-w-md\">{description}</p>\n {action && (\n <button\n onClick={action.onClick}\n className=\"\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {action.label}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;AAYA,SAAgB,EAAW,EAAE,SAAM,UAAO,gBAAa,aAA2B;AAChF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAuC;IAAW,CAAA;GACjE,kBAAC,MAAD;IAAI,WAAU;cAA+D;IAAW,CAAA;GACxF,kBAAC,KAAD;IAAG,WAAU;cAAwD;IAAgB,CAAA;GACpF,KACC,kBAAC,UAAD;
|
|
1
|
+
{"version":3,"file":"EmptyState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/EmptyState.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\ninterface EmptyStateProps {\n icon: ReactNode;\n title: string;\n description: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function EmptyState({ icon, title, description, action }: EmptyStateProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\">\n <div className=\"text-[var(--color-text-muted)] mb-4\">{icon}</div>\n <h3 className=\"text-lg font-semibold text-[var(--color-text-primary)] mb-2\">{title}</h3>\n <p className=\"text-sm text-[var(--color-text-muted)] mb-6 max-w-md\">{description}</p>\n {action && (\n <button type=\"button\"\n onClick={action.onClick}\n className=\"\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {action.label}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;AAYA,SAAgB,EAAW,EAAE,SAAM,UAAO,gBAAa,aAA2B;AAChF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAuC;IAAW,CAAA;GACjE,kBAAC,MAAD;IAAI,WAAU;cAA+D;IAAW,CAAA;GACxF,kBAAC,KAAD;IAAG,WAAU;cAAwD;IAAgB,CAAA;GACpF,KACC,kBAAC,UAAD;IAAQ,MAAK;IACX,SAAS,EAAO;IAChB,WAAU;cAWT,EAAO;IACD,CAAA;GAEP"}
|
|
@@ -9,7 +9,7 @@ function i({ title: i, message: a, action: o }) {
|
|
|
9
9
|
role: "alert",
|
|
10
10
|
children: [
|
|
11
11
|
/* @__PURE__ */ n("div", {
|
|
12
|
-
className: "
|
|
12
|
+
className: "size-16 rounded-full bg-[var(--color-status-error-muted)] flex items-center justify-center mb-4",
|
|
13
13
|
children: /* @__PURE__ */ n(t, {
|
|
14
14
|
size: 32,
|
|
15
15
|
className: "text-[var(--color-status-error)]"
|
|
@@ -24,6 +24,7 @@ function i({ title: i, message: a, action: o }) {
|
|
|
24
24
|
children: a
|
|
25
25
|
}),
|
|
26
26
|
o && /* @__PURE__ */ n("button", {
|
|
27
|
+
type: "button",
|
|
27
28
|
onClick: o.onClick,
|
|
28
29
|
className: "\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n ",
|
|
29
30
|
children: o.label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/ErrorState.tsx"],"sourcesContent":["import { AlertCircle } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface ErrorStateProps {\n title?: string;\n message: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function ErrorState({ title, message, action }: ErrorStateProps) {\n const tr = useTr();\n const resolvedTitle = title ?? tr('common.error.title', 'Something went wrong');\n return (\n <div\n className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\"\n role=\"alert\"\n >\n <div className=\"
|
|
1
|
+
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/ErrorState.tsx"],"sourcesContent":["import { AlertCircle } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface ErrorStateProps {\n title?: string;\n message: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport function ErrorState({ title, message, action }: ErrorStateProps) {\n const tr = useTr();\n const resolvedTitle = title ?? tr('common.error.title', 'Something went wrong');\n return (\n <div\n className=\"flex flex-col items-center justify-center py-12 text-center animate-in fade-in duration-300\"\n role=\"alert\"\n >\n <div className=\"size-16 rounded-full bg-[var(--color-status-error-muted)] flex items-center justify-center mb-4\">\n <AlertCircle size={32} className=\"text-[var(--color-status-error)]\" />\n </div>\n <h3 className=\"text-lg font-semibold text-[var(--color-text-primary)] mb-2\">\n {resolvedTitle}\n </h3>\n <p className=\"text-sm text-[var(--color-text-muted)] mb-6 max-w-md\">{message}</p>\n {action && (\n <button type=\"button\"\n onClick={action.onClick}\n className=\"\n inline-flex items-center gap-2 px-4 py-2\n bg-[var(--color-action-primary-bg)]\n text-[var(--color-action-primary-text)]\n rounded-lg\n hover:opacity-90 hover:scale-[1.02]\n active:scale-[0.98]\n transition-all duration-200\n font-medium\n \"\n >\n {action.label}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAYA,SAAgB,EAAW,EAAE,UAAO,YAAS,aAA2B;CACtE,IAAM,IAAK,GAAO,EACZ,IAAgB,KAAS,EAAG,sBAAsB,uBAAuB;AAC/E,QACE,kBAAC,OAAD;EACE,WAAU;EACV,MAAK;YAFP;GAIE,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KAAa,MAAM;KAAI,WAAU;KAAqC,CAAA;IAClE,CAAA;GACN,kBAAC,MAAD;IAAI,WAAU;cACX;IACE,CAAA;GACL,kBAAC,KAAD;IAAG,WAAU;cAAwD;IAAY,CAAA;GAChF,KACC,kBAAC,UAAD;IAAQ,MAAK;IACX,SAAS,EAAO;IAChB,WAAU;cAWT,EAAO;IACD,CAAA;GAEP"}
|
|
@@ -4,9 +4,8 @@ import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
|
4
4
|
//#region src/organization-management/shared/components/feedback/LoadingState.tsx
|
|
5
5
|
function i({ message: i }) {
|
|
6
6
|
let a = e(), o = i ?? a("common.loading", "Loading...");
|
|
7
|
-
return /* @__PURE__ */ r("
|
|
7
|
+
return /* @__PURE__ */ r("output", {
|
|
8
8
|
className: "flex flex-col items-center justify-center py-12 animate-in fade-in duration-300",
|
|
9
|
-
role: "status",
|
|
10
9
|
"aria-live": "polite",
|
|
11
10
|
"aria-busy": "true",
|
|
12
11
|
children: [/* @__PURE__ */ n(t, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/LoadingState.tsx"],"sourcesContent":["import { Loader2 } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface LoadingStateProps {\n message?: string;\n}\n\nexport function LoadingState({ message }: LoadingStateProps) {\n const tr = useTr();\n const resolvedMessage = message ?? tr('common.loading', 'Loading...');\n return (\n <
|
|
1
|
+
{"version":3,"file":"LoadingState.js","names":[],"sources":["../../../../../src/organization-management/shared/components/feedback/LoadingState.tsx"],"sourcesContent":["import { Loader2 } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface LoadingStateProps {\n message?: string;\n}\n\nexport function LoadingState({ message }: LoadingStateProps) {\n const tr = useTr();\n const resolvedMessage = message ?? tr('common.loading', 'Loading...');\n return (\n <output\n className=\"flex flex-col items-center justify-center py-12 animate-in fade-in duration-300\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n >\n <Loader2 size={48} className=\"text-[var(--color-status-info)] animate-spin mb-4\" />\n <p className=\"text-sm text-[var(--color-text-muted)]\">{resolvedMessage}</p>\n </output>\n );\n}\n"],"mappings":";;;;AAOA,SAAgB,EAAa,EAAE,cAA8B;CAC3D,IAAM,IAAK,GAAO,EACZ,IAAkB,KAAW,EAAG,kBAAkB,aAAa;AACrE,QACE,kBAAC,UAAD;EACE,WAAU;EACV,aAAU;EACV,aAAU;YAHZ,CAKE,kBAAC,GAAD;GAAS,MAAM;GAAI,WAAU;GAAsD,CAAA,EACnF,kBAAC,KAAD;GAAG,WAAU;aAA0C;GAAoB,CAAA,CACpE"}
|
|
@@ -26,6 +26,7 @@ function a({ value: a, onChange: o, placeholder: s, className: c = "", label: l,
|
|
|
26
26
|
className: "\n w-full pl-[3.25rem] pr-10 py-2\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n text-[var(--color-text-primary)]\n placeholder:text-[var(--color-text-muted)]\n focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)]\n transition-all duration-200\n "
|
|
27
27
|
}),
|
|
28
28
|
a && /* @__PURE__ */ r("button", {
|
|
29
|
+
type: "button",
|
|
29
30
|
onClick: () => o(""),
|
|
30
31
|
className: "\n absolute right-3 top-1/2 -translate-y-1/2\n p-1 rounded-md\n text-[var(--color-text-muted)]\n hover:text-[var(--color-text-primary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n ",
|
|
31
32
|
"aria-label": "Clear search",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SearchInput.tsx"],"sourcesContent":["import { Search, X } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n label?: string;\n inputId?: string;\n}\n\n/**\n * SearchInput\n * Reusable search input component with clear button\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder,\n className = '',\n label,\n inputId,\n}: SearchInputProps) {\n const tr = useTr();\n const resolvedPlaceholder = placeholder ?? tr('common.search.placeholder', 'Search...');\n return (\n <div className={`relative ${className}`}>\n {label ? (\n <label htmlFor={inputId} className=\"sr-only\">\n {label}\n </label>\n ) : null}\n <Search\n size={18}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]\"\n />\n <input\n id={inputId}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={resolvedPlaceholder}\n aria-label={label ?? resolvedPlaceholder}\n className=\"\n w-full pl-[3.25rem] pr-10 py-2\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n text-[var(--color-text-primary)]\n placeholder:text-[var(--color-text-muted)]\n focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)]\n transition-all duration-200\n \"\n />\n {value && (\n <button\n onClick={() => onChange('')}\n className=\"\n absolute right-3 top-1/2 -translate-y-1/2\n p-1 rounded-md\n text-[var(--color-text-muted)]\n hover:text-[var(--color-text-primary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n \"\n aria-label=\"Clear search\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAgBA,SAAgB,EAAY,EAC1B,UACA,aACA,gBACA,eAAY,IACZ,UACA,cACmB;CACnB,IAAM,IAAK,GAAO,EACZ,IAAsB,KAAe,EAAG,6BAA6B,YAAY;AACvF,QACE,kBAAC,OAAD;EAAK,WAAW,YAAY;YAA5B;GACG,IACC,kBAAC,SAAD;IAAO,SAAS;IAAS,WAAU;cAChC;IACK,CAAA,GACN;GACJ,kBAAC,GAAD;IACE,MAAM;IACN,WAAU;IACV,CAAA;GACF,kBAAC,SAAD;IACE,IAAI;IACJ,MAAK;IACE;IACP,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;IACzC,aAAa;IACb,cAAY,KAAS;IACrB,WAAU;IAUV,CAAA;GACD,KACC,kBAAC,UAAD;
|
|
1
|
+
{"version":3,"file":"SearchInput.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SearchInput.tsx"],"sourcesContent":["import { Search, X } from 'lucide-react';\nimport { useTr } from '../../hooks/useTr';\n\ninterface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n label?: string;\n inputId?: string;\n}\n\n/**\n * SearchInput\n * Reusable search input component with clear button\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder,\n className = '',\n label,\n inputId,\n}: SearchInputProps) {\n const tr = useTr();\n const resolvedPlaceholder = placeholder ?? tr('common.search.placeholder', 'Search...');\n return (\n <div className={`relative ${className}`}>\n {label ? (\n <label htmlFor={inputId} className=\"sr-only\">\n {label}\n </label>\n ) : null}\n <Search\n size={18}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]\"\n />\n <input\n id={inputId}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={resolvedPlaceholder}\n aria-label={label ?? resolvedPlaceholder}\n className=\"\n w-full pl-[3.25rem] pr-10 py-2\n bg-[var(--color-bg-surface)]\n border border-[var(--color-border-default)]\n rounded-lg\n text-[var(--color-text-primary)]\n placeholder:text-[var(--color-text-muted)]\n focus:outline-none focus:ring-2 focus:ring-[var(--color-border-focus)]\n transition-all duration-200\n \"\n />\n {value && (\n <button type=\"button\"\n onClick={() => onChange('')}\n className=\"\n absolute right-3 top-1/2 -translate-y-1/2\n p-1 rounded-md\n text-[var(--color-text-muted)]\n hover:text-[var(--color-text-primary)]\n hover:bg-[var(--color-bg-subtle)]\n active:scale-95\n transition-all duration-200\n \"\n aria-label=\"Clear search\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAgBA,SAAgB,EAAY,EAC1B,UACA,aACA,gBACA,eAAY,IACZ,UACA,cACmB;CACnB,IAAM,IAAK,GAAO,EACZ,IAAsB,KAAe,EAAG,6BAA6B,YAAY;AACvF,QACE,kBAAC,OAAD;EAAK,WAAW,YAAY;YAA5B;GACG,IACC,kBAAC,SAAD;IAAO,SAAS;IAAS,WAAU;cAChC;IACK,CAAA,GACN;GACJ,kBAAC,GAAD;IACE,MAAM;IACN,WAAU;IACV,CAAA;GACF,kBAAC,SAAD;IACE,IAAI;IACJ,MAAK;IACE;IACP,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;IACzC,aAAa;IACb,cAAY,KAAS;IACrB,WAAU;IAUV,CAAA;GACD,KACC,kBAAC,UAAD;IAAQ,MAAK;IACX,eAAe,EAAS,GAAG;IAC3B,WAAU;IASV,cAAW;cAEX,kBAAC,GAAD,EAAG,MAAM,IAAM,CAAA;IACR,CAAA;GAEP"}
|
|
@@ -12,7 +12,7 @@ function r({ checked: r, indeterminate: i = !1, disabled: a = !1, onChange: o, a
|
|
|
12
12
|
disabled: a,
|
|
13
13
|
"aria-label": s,
|
|
14
14
|
onChange: (e) => o(e.target.checked),
|
|
15
|
-
className: "
|
|
15
|
+
className: "size-4 rounded border-[var(--color-border-default)] text-[var(--color-action-primary-bg)] focus:ring-2 focus:ring-[var(--color-border-focus)]"
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionCheckbox.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SelectionCheckbox.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ninterface SelectionCheckboxProps {\n checked: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n onChange: (checked: boolean) => void;\n ariaLabel: string;\n}\n\nexport function SelectionCheckbox({\n checked,\n indeterminate = false,\n disabled = false,\n onChange,\n ariaLabel,\n}: SelectionCheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate && !checked;\n }\n }, [checked, indeterminate]);\n\n return (\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n aria-label={ariaLabel}\n onChange={(event) => onChange(event.target.checked)}\n className=\"
|
|
1
|
+
{"version":3,"file":"SelectionCheckbox.js","names":[],"sources":["../../../../../src/organization-management/shared/components/input/SelectionCheckbox.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ninterface SelectionCheckboxProps {\n checked: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n onChange: (checked: boolean) => void;\n ariaLabel: string;\n}\n\nexport function SelectionCheckbox({\n checked,\n indeterminate = false,\n disabled = false,\n onChange,\n ariaLabel,\n}: SelectionCheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate && !checked;\n }\n }, [checked, indeterminate]);\n\n return (\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n aria-label={ariaLabel}\n onChange={(event) => onChange(event.target.checked)}\n className=\"size-4 rounded border-[var(--color-border-default)] text-[var(--color-action-primary-bg)] focus:ring-2 focus:ring-[var(--color-border-focus)]\"\n />\n );\n}\n"],"mappings":";;;AAUA,SAAgB,EAAkB,EAChC,YACA,mBAAgB,IAChB,cAAW,IACX,aACA,gBACyB;CACzB,IAAM,IAAW,EAAyB,KAAK;AAQ/C,QANA,QAAgB;AACd,EAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB,KAAiB,CAAC;IAEpD,CAAC,GAAS,EAAc,CAAC,EAG1B,kBAAC,SAAD;EACE,KAAK;EACL,MAAK;EACI;EACC;EACV,cAAY;EACZ,WAAW,MAAU,EAAS,EAAM,OAAO,QAAQ;EACnD,WAAU;EACV,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","names":[],"sources":["../../../../src/organization-management/shared/types/graphql.ts"],"sourcesContent":["/**\n * Shared GraphQL types\n * Generated types will be added via GraphQL Codegen\n */\n\n// Pagination\nexport interface PageInfo {\n totalCount: number;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n startCursor?: string;\n endCursor?: string;\n}\n\nexport interface PaginationInput {\n first?: number;\n after?: string;\n last?: number;\n before?: string;\n}\n\n// Connection pattern\nexport interface Connection<T> {\n items: T[];\n pageInfo: PageInfo;\n}\n\n// Common enums\
|
|
1
|
+
{"version":3,"file":"graphql.js","names":[],"sources":["../../../../src/organization-management/shared/types/graphql.ts"],"sourcesContent":["/**\n * Shared GraphQL types\n * Generated types will be added via GraphQL Codegen\n */\n\n// Pagination\nexport interface PageInfo {\n totalCount: number;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n startCursor?: string;\n endCursor?: string;\n}\n\nexport interface PaginationInput {\n first?: number;\n after?: string;\n last?: number;\n before?: string;\n}\n\n// Connection pattern\nexport interface Connection<T> {\n items: T[];\n pageInfo: PageInfo;\n}\n\n// Common enums\nenum TenantStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n SUSPENDED = 'SUSPENDED',\n}\n\nexport enum OrganizationStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nexport enum WorkspaceStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ARCHIVED = 'ARCHIVED',\n}\n\nenum ProductStatus {\n ACTIVE = 'ACTIVE',\n BETA = 'BETA',\n DEPRECATED = 'DEPRECATED',\n COMING_SOON = 'COMING_SOON',\n}\n\n// Base entity types (will be replaced by codegen)\nexport interface Tenant {\n id: string;\n name: string;\n slug: string;\n status: TenantStatus;\n subscriptionTier?: string;\n billingAccountId?: string;\n customDomain?: string;\n logoUrl?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n organizations?: Organization[];\n products?: PlatformProduct[];\n}\n\nexport interface Organization {\n id: string;\n tenantId: string;\n name: string;\n slug: string;\n description?: string;\n logo?: string;\n website?: string;\n status: OrganizationStatus;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n memberCount?: number;\n workspaceCount?: number;\n workspaces?: Workspace[];\n}\n\nexport interface Workspace {\n id: string;\n organizationId: string;\n tenantId: string;\n name: string;\n slug: string;\n status: WorkspaceStatus;\n type: string; // PERSONAL, TEAM, etc.\n memberCount?: number;\n endpoint?: string;\n region?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface Member {\n id: string;\n userId: string;\n organizationId: string;\n role: string;\n invitedBy?: string;\n joinedAt?: string;\n}\n\nexport interface PlatformProduct {\n id: string;\n name: string;\n slug: string;\n description?: string;\n category?: string;\n status: ProductStatus;\n iconUrl?: string;\n version?: string;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n"],"mappings":";AAkCA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD,EAEW,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,UACA,EAAA,WAAA,YACA,EAAA,WAAA;KACD"}
|