@burdenoff/microfe-organization 2026.525.2 → 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
- package/dist/generated/global-operations.d.ts +0 -1738
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-types.d.ts +0 -23527
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts +0 -2
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-types.d.ts +0 -57851
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -56
- package/dist/index.d.ts.map +0 -1
- package/dist/organization-management/AdminOrganizationRoot.d.ts +0 -16
- package/dist/organization-management/AdminOrganizationRoot.d.ts.map +0 -1
- package/dist/organization-management/AdminOrganizationRoutes.d.ts +0 -16
- package/dist/organization-management/AdminOrganizationRoutes.d.ts.map +0 -1
- package/dist/organization-management/UserOrganizationRoot.d.ts +0 -24
- package/dist/organization-management/UserOrganizationRoot.d.ts.map +0 -1
- package/dist/organization-management/UserOrganizationRoutes.d.ts +0 -34
- package/dist/organization-management/UserOrganizationRoutes.d.ts.map +0 -1
- package/dist/organization-management/constants/permissions.d.ts +0 -30
- package/dist/organization-management/constants/permissions.d.ts.map +0 -1
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts +0 -19
- package/dist/organization-management/hooks/useOrganizationEventEmitter.d.ts.map +0 -1
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts +0 -11
- package/dist/organization-management/hooks/useOrganizationPageView.d.ts.map +0 -1
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts +0 -18
- package/dist/organization-management/modules/members/components/InviteMemberForm.d.ts.map +0 -1
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts +0 -6
- package/dist/organization-management/modules/members/components/InviteStatusBadge.d.ts.map +0 -1
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts +0 -11
- package/dist/organization-management/modules/members/components/MemberRoleBadge.d.ts.map +0 -1
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts +0 -22
- package/dist/organization-management/modules/members/components/MyInviteCard.d.ts.map +0 -1
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts +0 -6
- package/dist/organization-management/modules/members/components/PendingInvitesList.d.ts.map +0 -1
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts +0 -80
- package/dist/organization-management/modules/members/hooks/useInvites.d.ts.map +0 -1
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts +0 -84
- package/dist/organization-management/modules/members/hooks/useMembers.d.ts.map +0 -1
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts +0 -6
- package/dist/organization-management/modules/members/pages/InviteMemberPage.d.ts.map +0 -1
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts +0 -6
- package/dist/organization-management/modules/members/pages/MemberDetailPage.d.ts.map +0 -1
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts +0 -2
- package/dist/organization-management/modules/members/pages/MembersListPage.d.ts.map +0 -1
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts +0 -6
- package/dist/organization-management/modules/members/pages/MyInvitesPage.d.ts.map +0 -1
- package/dist/organization-management/modules/members/types/index.d.ts +0 -35
- package/dist/organization-management/modules/members/types/index.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts +0 -13
- package/dist/organization-management/modules/organizations/components/OrganizationForm.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts +0 -13
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts +0 -118
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/hooks/useOrgsWithPermission.d.ts +0 -26
- package/dist/organization-management/modules/organizations/hooks/useOrgsWithPermission.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts +0 -6
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts +0 -2
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts +0 -6
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts +0 -19
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/schemas/index.d.ts +0 -53
- package/dist/organization-management/modules/organizations/schemas/index.d.ts.map +0 -1
- package/dist/organization-management/modules/organizations/types/index.d.ts +0 -34
- package/dist/organization-management/modules/organizations/types/index.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts +0 -13
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts +0 -16
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts +0 -16
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts +0 -13
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts +0 -47
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts +0 -133
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts +0 -2
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts +0 -2
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts +0 -2
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts +0 -2
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts +0 -44
- package/dist/organization-management/modules/workspaces/schemas/index.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/types/index.d.ts +0 -39
- package/dist/organization-management/modules/workspaces/types/index.d.ts.map +0 -1
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts +0 -48
- package/dist/organization-management/modules/workspaces/types/workspace-member.d.ts.map +0 -1
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts +0 -19
- package/dist/organization-management/providers/OrgConsoleProvider.d.ts.map +0 -1
- package/dist/organization-management/providers/OrgScopedPermissions.d.ts +0 -22
- package/dist/organization-management/providers/OrgScopedPermissions.d.ts.map +0 -1
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts +0 -28
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.d.ts.map +0 -1
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts +0 -14
- package/dist/organization-management/shared/components/feedback/EmptyState.d.ts.map +0 -1
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts +0 -11
- package/dist/organization-management/shared/components/feedback/ErrorState.d.ts.map +0 -1
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts +0 -6
- package/dist/organization-management/shared/components/feedback/LoadingState.d.ts.map +0 -1
- package/dist/organization-management/shared/components/input/SearchInput.d.ts +0 -15
- package/dist/organization-management/shared/components/input/SearchInput.d.ts.map +0 -1
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts +0 -10
- package/dist/organization-management/shared/components/input/SelectionCheckbox.d.ts.map +0 -1
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts +0 -2
- package/dist/organization-management/shared/hooks/useDebouncedValue.d.ts.map +0 -1
- package/dist/organization-management/shared/hooks/useTr.d.ts +0 -14
- package/dist/organization-management/shared/hooks/useTr.d.ts.map +0 -1
- package/dist/organization-management/shared/logger.d.ts +0 -11
- package/dist/organization-management/shared/logger.d.ts.map +0 -1
- package/dist/organization-management/shared/recaptcha.d.ts +0 -2
- package/dist/organization-management/shared/recaptcha.d.ts.map +0 -1
- package/dist/organization-management/shared/types/graphql.d.ts +0 -131
- package/dist/organization-management/shared/types/graphql.d.ts.map +0 -1
- package/dist/organization-management/shared/utils/cn.d.ts +0 -8
- package/dist/organization-management/shared/utils/cn.d.ts.map +0 -1
- package/dist/organization-management/types/index.d.ts +0 -46
- package/dist/organization-management/types/index.d.ts.map +0 -1
- package/dist/utils/nativeBridge.d.ts +0 -3
- package/dist/utils/nativeBridge.d.ts.map +0 -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"}
|