nucleus-core-ts 0.9.916 → 0.9.918
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/.build-ok +1 -1
- package/dist/fe/components/AuthorizationPage/components/AuthorizationPage.d.ts +1 -1
- package/dist/fe/components/AuthorizationPage/components/AuthorizationPage.js +45 -53
- package/dist/fe/components/AuthorizationPage/components/ClaimList.d.ts +1 -1
- package/dist/fe/components/AuthorizationPage/components/ClaimList.js +11 -11
- package/dist/fe/components/AuthorizationPage/components/RoleClaimEditor.d.ts +1 -1
- package/dist/fe/components/AuthorizationPage/components/RoleClaimEditor.js +26 -40
- package/dist/fe/components/AuthorizationPage/components/RoleList.d.ts +1 -1
- package/dist/fe/components/AuthorizationPage/components/RoleList.js +15 -9
- package/dist/fe/components/AuthorizationPage/index.d.ts +1 -0
- package/dist/fe/components/AuthorizationPage/index.js +1 -0
- package/dist/fe/components/AuthorizationPage/labels.d.ts +109 -0
- package/dist/fe/components/AuthorizationPage/labels.js +63 -0
- package/dist/fe/components/AuthorizationPage/types/index.d.ts +5 -0
- package/dist/fe/components/DataTable/DataTable.d.ts +1 -1
- package/dist/fe/components/DataTable/DataTable.js +20 -11
- package/dist/fe/components/DataTable/components/EditableCell.d.ts +3 -1
- package/dist/fe/components/DataTable/components/EditableCell.js +9 -4
- package/dist/fe/components/DataTable/components/EmptyState.d.ts +3 -1
- package/dist/fe/components/DataTable/components/EmptyState.js +7 -2
- package/dist/fe/components/DataTable/components/HeaderCell.d.ts +3 -1
- package/dist/fe/components/DataTable/components/HeaderCell.js +3 -2
- package/dist/fe/components/DataTable/components/InfiniteScrollTrigger.d.ts +3 -1
- package/dist/fe/components/DataTable/components/InfiniteScrollTrigger.js +7 -2
- package/dist/fe/components/DataTable/components/LoadingSpinner.d.ts +3 -1
- package/dist/fe/components/DataTable/components/LoadingSpinner.js +10 -3
- package/dist/fe/components/DataTable/components/ResizeHandle.d.ts +3 -1
- package/dist/fe/components/DataTable/components/ResizeHandle.js +7 -2
- package/dist/fe/components/DataTable/components/SelectionCell.d.ts +3 -1
- package/dist/fe/components/DataTable/components/SelectionCell.js +8 -1
- package/dist/fe/components/DataTable/components/TableHeader.d.ts +3 -1
- package/dist/fe/components/DataTable/components/TableHeader.js +5 -3
- package/dist/fe/components/DataTable/components/TableRow.d.ts +3 -1
- package/dist/fe/components/DataTable/components/TableRow.js +5 -3
- package/dist/fe/components/DataTable/index.d.ts +1 -0
- package/dist/fe/components/DataTable/index.js +1 -0
- package/dist/fe/components/DataTable/labels.d.ts +82 -0
- package/dist/fe/components/DataTable/labels.js +31 -0
- package/dist/fe/components/DataTable/types/index.d.ts +7 -0
- package/dist/fe/components/DevicesPage/components/DeviceCard.d.ts +1 -1
- package/dist/fe/components/DevicesPage/components/DeviceCard.js +68 -42
- package/dist/fe/components/DevicesPage/components/DevicesHeader.d.ts +1 -1
- package/dist/fe/components/DevicesPage/components/DevicesHeader.js +9 -4
- package/dist/fe/components/DevicesPage/components/DevicesPage.d.ts +1 -1
- package/dist/fe/components/DevicesPage/components/DevicesPage.js +58 -41
- package/dist/fe/components/DevicesPage/index.d.ts +1 -0
- package/dist/fe/components/DevicesPage/index.js +1 -0
- package/dist/fe/components/DevicesPage/labels.d.ts +135 -0
- package/dist/fe/components/DevicesPage/labels.js +61 -0
- package/dist/fe/components/DevicesPage/types/index.d.ts +12 -0
- package/dist/fe/components/FormBuilder/components/FormBuilder.d.ts +1 -1
- package/dist/fe/components/FormBuilder/components/FormBuilder.js +13 -7
- package/dist/fe/components/FormBuilder/components/FormField.d.ts +1 -1
- package/dist/fe/components/FormBuilder/components/FormField.js +19 -10
- package/dist/fe/components/FormBuilder/hooks/useFormBuilder.d.ts +1 -1
- package/dist/fe/components/FormBuilder/hooks/useFormBuilder.js +2 -2
- package/dist/fe/components/FormBuilder/index.d.ts +1 -0
- package/dist/fe/components/FormBuilder/index.js +1 -0
- package/dist/fe/components/FormBuilder/labels.d.ts +99 -0
- package/dist/fe/components/FormBuilder/labels.js +31 -0
- package/dist/fe/components/FormBuilder/types/index.d.ts +12 -0
- package/dist/fe/components/FormBuilder/utils/fieldMapping.d.ts +11 -1
- package/dist/fe/components/FormBuilder/utils/fieldMapping.js +11 -2
- package/dist/fe/components/FormBuilder/utils/validation.d.ts +3 -2
- package/dist/fe/components/FormBuilder/utils/validation.js +22 -20
- package/dist/fe/components/NotificationCenter/components/NotificationBell.d.ts +1 -1
- package/dist/fe/components/NotificationCenter/components/NotificationBell.js +9 -4
- package/dist/fe/components/NotificationCenter/components/NotificationCenter.d.ts +1 -1
- package/dist/fe/components/NotificationCenter/components/NotificationCenter.js +25 -17
- package/dist/fe/components/NotificationCenter/index.d.ts +1 -0
- package/dist/fe/components/NotificationCenter/index.js +1 -0
- package/dist/fe/components/NotificationCenter/labels.d.ts +86 -0
- package/dist/fe/components/NotificationCenter/labels.js +41 -0
- package/dist/fe/components/NotificationCenter/types/index.d.ts +5 -0
- package/dist/fe/components/ProfilePage/components/AddressCard.d.ts +1 -1
- package/dist/fe/components/ProfilePage/components/AddressCard.js +16 -11
- package/dist/fe/components/ProfilePage/components/PhoneCard.d.ts +1 -1
- package/dist/fe/components/ProfilePage/components/PhoneCard.js +17 -12
- package/dist/fe/components/ProfilePage/components/ProfileHeader.d.ts +1 -1
- package/dist/fe/components/ProfilePage/components/ProfileHeader.js +19 -20
- package/dist/fe/components/ProfilePage/components/ProfilePage.d.ts +1 -1
- package/dist/fe/components/ProfilePage/components/ProfilePage.js +89 -81
- package/dist/fe/components/ProfilePage/index.d.ts +1 -0
- package/dist/fe/components/ProfilePage/index.js +1 -0
- package/dist/fe/components/ProfilePage/labels.d.ts +158 -0
- package/dist/fe/components/ProfilePage/labels.js +116 -0
- package/dist/fe/components/ProfilePage/types/index.d.ts +9 -0
- package/dist/fe/components/UsersPage/components/InviteUserModal.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/InviteUserModal.js +16 -11
- package/dist/fe/components/UsersPage/components/Pagination.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/Pagination.js +13 -22
- package/dist/fe/components/UsersPage/components/RoleAssignmentModal.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/RoleAssignmentModal.js +13 -13
- package/dist/fe/components/UsersPage/components/StatsCards.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/StatsCards.js +17 -6
- package/dist/fe/components/UsersPage/components/UserDetailDrawer.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/UserDetailDrawer.js +45 -55
- package/dist/fe/components/UsersPage/components/UserFilters.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/UserFilters.js +18 -19
- package/dist/fe/components/UsersPage/components/UserListItem.d.ts +3 -1
- package/dist/fe/components/UsersPage/components/UserListItem.js +23 -18
- package/dist/fe/components/UsersPage/components/UsersPage.d.ts +1 -1
- package/dist/fe/components/UsersPage/components/UsersPage.js +17 -6
- package/dist/fe/components/UsersPage/index.d.ts +1 -0
- package/dist/fe/components/UsersPage/index.js +1 -0
- package/dist/fe/components/UsersPage/labels.d.ts +159 -0
- package/dist/fe/components/UsersPage/labels.js +99 -0
- package/dist/fe/components/UsersPage/types/index.d.ts +6 -0
- package/dist/fe/components/VerificationFlowPage/components/FlowNode.js +34 -26
- package/dist/fe/components/VerificationFlowPage/components/NodePropertiesPanel.d.ts +6 -1
- package/dist/fe/components/VerificationFlowPage/components/NodePropertiesPanel.js +43 -33
- package/dist/fe/components/VerificationFlowPage/components/PendingTab.d.ts +4 -1
- package/dist/fe/components/VerificationFlowPage/components/PendingTab.js +17 -20
- package/dist/fe/components/VerificationFlowPage/components/PropertiesPanel.d.ts +4 -1
- package/dist/fe/components/VerificationFlowPage/components/PropertiesPanel.js +83 -97
- package/dist/fe/components/VerificationFlowPage/components/VerificationEntityList.d.ts +4 -1
- package/dist/fe/components/VerificationFlowPage/components/VerificationEntityList.js +43 -54
- package/dist/fe/components/VerificationFlowPage/components/VerificationFlowPage.d.ts +1 -1
- package/dist/fe/components/VerificationFlowPage/components/VerificationFlowPage.js +78 -69
- package/dist/fe/components/VerificationFlowPage/components/VerificationStatusCard.d.ts +4 -1
- package/dist/fe/components/VerificationFlowPage/components/VerificationStatusCard.js +57 -47
- package/dist/fe/components/VerificationFlowPage/index.d.ts +2 -1
- package/dist/fe/components/VerificationFlowPage/index.js +1 -0
- package/dist/fe/components/VerificationFlowPage/labels.d.ts +207 -0
- package/dist/fe/components/VerificationFlowPage/labels.js +212 -0
- package/dist/fe/components/VerificationFlowPage/types/index.d.ts +6 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/.build-ok
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.
|
|
1
|
+
0.9.918
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { AuthorizationPageProps } from '../types';
|
|
2
|
-
export declare function AuthorizationPage({ title, subtitle, className, defaultEntityFilter, defaultMethodFilter, defaultShowAssignedOnly, getRolesAction, addRoleAction, updateRoleAction, deleteRoleAction, getClaimsAction, getRoleClaimsAction, addRoleClaimAction, updateRoleClaimAction, deleteRoleClaimAction, onRoleCreated, onRoleDeleted, onClaimToggled, }: AuthorizationPageProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function AuthorizationPage({ title, subtitle, className, labels, defaultEntityFilter, defaultMethodFilter, defaultShowAssignedOnly, getRolesAction, addRoleAction, updateRoleAction, deleteRoleAction, getClaimsAction, getRoleClaimsAction, addRoleClaimAction, updateRoleClaimAction, deleteRoleClaimAction, onRoleCreated, onRoleDeleted, onClaimToggled, }: AuthorizationPageProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,6 +4,7 @@ import { useGSAP } from '@gsap/react';
|
|
|
4
4
|
import gsap from 'gsap';
|
|
5
5
|
import { useEffect, useEffectEvent, useRef, useState } from 'react';
|
|
6
6
|
import { cn } from '../../../utils/cn';
|
|
7
|
+
import { DEFAULT_AUTHORIZATION_LABELS } from '../labels';
|
|
7
8
|
import { useAuthorizationStore } from '../store';
|
|
8
9
|
gsap.registerPlugin(useGSAP);
|
|
9
10
|
const METHOD_COLORS = {
|
|
@@ -13,7 +14,12 @@ const METHOD_COLORS = {
|
|
|
13
14
|
PATCH: 'bg-orange-500/10 text-orange-600 dark:text-orange-400 border-orange-500/20',
|
|
14
15
|
DELETE: 'bg-red-500/10 text-red-600 dark:text-red-400 border-red-500/20'
|
|
15
16
|
};
|
|
16
|
-
export function AuthorizationPage({ title
|
|
17
|
+
export function AuthorizationPage({ title, subtitle, className, labels, defaultEntityFilter = 'all', defaultMethodFilter = 'all', defaultShowAssignedOnly = false, getRolesAction, addRoleAction, updateRoleAction, deleteRoleAction, getClaimsAction, getRoleClaimsAction, addRoleClaimAction, updateRoleClaimAction, deleteRoleClaimAction, onRoleCreated, onRoleDeleted, onClaimToggled }) {
|
|
18
|
+
const say = {
|
|
19
|
+
...DEFAULT_AUTHORIZATION_LABELS,
|
|
20
|
+
...labels
|
|
21
|
+
};
|
|
22
|
+
const heading = title ?? say.title;
|
|
17
23
|
const store = useAuthorizationStore();
|
|
18
24
|
const containerRef = useRef(null);
|
|
19
25
|
const contentRef = useRef(null);
|
|
@@ -291,17 +297,17 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
291
297
|
const entityOptions = [
|
|
292
298
|
{
|
|
293
299
|
value: 'all',
|
|
294
|
-
label:
|
|
300
|
+
label: say.allEntities
|
|
295
301
|
},
|
|
296
|
-
...Array.from(new Set(store.claims.map((claim)=>getClaimEntity(claim.action)))).sort((a, b)=>a.localeCompare(b)).map((entity)=>({
|
|
302
|
+
...Array.from(new Set(store.claims.map((claim)=>getClaimEntity(claim.action)))).sort((a, b)=>a.localeCompare(b, say.locale)).map((entity)=>({
|
|
297
303
|
value: entity,
|
|
298
|
-
label: entity
|
|
304
|
+
label: say.entityName(entity)
|
|
299
305
|
}))
|
|
300
306
|
];
|
|
301
307
|
const methodOptions = [
|
|
302
308
|
{
|
|
303
309
|
value: 'all',
|
|
304
|
-
label:
|
|
310
|
+
label: say.allMethods
|
|
305
311
|
},
|
|
306
312
|
{
|
|
307
313
|
value: 'get',
|
|
@@ -330,7 +336,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
330
336
|
acc[entity].push(claim);
|
|
331
337
|
return acc;
|
|
332
338
|
}, {});
|
|
333
|
-
const sortedEntities = Object.keys(groupedFilteredClaims).sort((a, b)=>a.localeCompare(b));
|
|
339
|
+
const sortedEntities = Object.keys(groupedFilteredClaims).sort((a, b)=>a.localeCompare(b, say.locale));
|
|
334
340
|
const toggleEntity = (entity)=>{
|
|
335
341
|
setExpandedEntities((prev)=>{
|
|
336
342
|
const next = new Set(prev);
|
|
@@ -386,7 +392,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
386
392
|
children: [
|
|
387
393
|
/*#__PURE__*/ _jsx("h1", {
|
|
388
394
|
className: "text-2xl sm:text-3xl font-bold text-zinc-900 dark:text-zinc-100",
|
|
389
|
-
children:
|
|
395
|
+
children: heading
|
|
390
396
|
}),
|
|
391
397
|
subtitle && /*#__PURE__*/ _jsx("p", {
|
|
392
398
|
className: "mt-1 text-sm text-zinc-500 dark:text-zinc-400",
|
|
@@ -405,7 +411,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
405
411
|
children: [
|
|
406
412
|
/*#__PURE__*/ _jsx("h2", {
|
|
407
413
|
className: "text-sm font-semibold text-zinc-900 dark:text-zinc-100 mb-3",
|
|
408
|
-
children:
|
|
414
|
+
children: say.rolesHeading
|
|
409
415
|
}),
|
|
410
416
|
/*#__PURE__*/ _jsxs("div", {
|
|
411
417
|
className: "space-y-2 mb-4",
|
|
@@ -414,7 +420,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
414
420
|
type: "text",
|
|
415
421
|
value: store.newRoleName,
|
|
416
422
|
onChange: (e)=>store.setNewRoleName(e.target.value),
|
|
417
|
-
placeholder:
|
|
423
|
+
placeholder: say.newRoleNamePlaceholder,
|
|
418
424
|
className: "w-full px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400"
|
|
419
425
|
}),
|
|
420
426
|
/*#__PURE__*/ _jsx("button", {
|
|
@@ -422,7 +428,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
422
428
|
onClick: handleCreateRole,
|
|
423
429
|
disabled: !store.newRoleName.trim() || addRoleAction.state.isPending,
|
|
424
430
|
className: "w-full px-3 py-2 text-sm font-medium text-white bg-emerald-600 hover:bg-emerald-700 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg transition-colors",
|
|
425
|
-
children: addRoleAction.state.isPending ?
|
|
431
|
+
children: addRoleAction.state.isPending ? say.creating : say.createRole
|
|
426
432
|
})
|
|
427
433
|
]
|
|
428
434
|
}),
|
|
@@ -448,7 +454,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
448
454
|
type: "button",
|
|
449
455
|
onClick: ()=>handleStartEditRole(role),
|
|
450
456
|
className: "p-1 text-zinc-500 hover:text-emerald-600 transition-colors",
|
|
451
|
-
title:
|
|
457
|
+
title: say.editDescription,
|
|
452
458
|
children: /*#__PURE__*/ _jsx("svg", {
|
|
453
459
|
className: "w-4 h-4",
|
|
454
460
|
fill: "none",
|
|
@@ -467,7 +473,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
467
473
|
type: "button",
|
|
468
474
|
onClick: ()=>handleDeleteRole(role.id),
|
|
469
475
|
className: "p-1 text-red-500 hover:text-red-700 transition-colors",
|
|
470
|
-
title:
|
|
476
|
+
title: say.deleteRole,
|
|
471
477
|
children: /*#__PURE__*/ _jsx("svg", {
|
|
472
478
|
className: "w-4 h-4",
|
|
473
479
|
fill: "none",
|
|
@@ -492,7 +498,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
492
498
|
/*#__PURE__*/ _jsx("textarea", {
|
|
493
499
|
value: store.editRoleDescription,
|
|
494
500
|
onChange: (e)=>store.setEditRoleDescription(e.target.value),
|
|
495
|
-
placeholder:
|
|
501
|
+
placeholder: say.roleDescriptionPlaceholder,
|
|
496
502
|
rows: 2,
|
|
497
503
|
className: "w-full px-2 py-1.5 text-xs border border-zinc-200 dark:border-zinc-700 rounded bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 resize-none"
|
|
498
504
|
}),
|
|
@@ -503,13 +509,13 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
503
509
|
type: "button",
|
|
504
510
|
onClick: handleSaveRoleDescription,
|
|
505
511
|
className: "flex-1 px-2 py-1 text-xs font-medium text-white bg-emerald-600 hover:bg-emerald-700 rounded transition-colors",
|
|
506
|
-
children:
|
|
512
|
+
children: say.save
|
|
507
513
|
}),
|
|
508
514
|
/*#__PURE__*/ _jsx("button", {
|
|
509
515
|
type: "button",
|
|
510
516
|
onClick: handleCancelEditRole,
|
|
511
517
|
className: "flex-1 px-2 py-1 text-xs font-medium text-zinc-600 dark:text-zinc-400 bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 rounded transition-colors",
|
|
512
|
-
children:
|
|
518
|
+
children: say.cancel
|
|
513
519
|
})
|
|
514
520
|
]
|
|
515
521
|
})
|
|
@@ -528,7 +534,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
528
534
|
children: [
|
|
529
535
|
/*#__PURE__*/ _jsx("h2", {
|
|
530
536
|
className: "text-sm font-semibold text-zinc-900 dark:text-zinc-100 mb-3",
|
|
531
|
-
children:
|
|
537
|
+
children: say.filtersHeading
|
|
532
538
|
}),
|
|
533
539
|
/*#__PURE__*/ _jsxs("div", {
|
|
534
540
|
className: "space-y-3",
|
|
@@ -538,7 +544,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
538
544
|
/*#__PURE__*/ _jsx("label", {
|
|
539
545
|
htmlFor: "claim-search",
|
|
540
546
|
className: "block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1",
|
|
541
|
-
children:
|
|
547
|
+
children: say.searchLabel
|
|
542
548
|
}),
|
|
543
549
|
/*#__PURE__*/ _jsx("input", {
|
|
544
550
|
id: "claim-search",
|
|
@@ -548,7 +554,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
548
554
|
setLocalSearch(e.target.value);
|
|
549
555
|
handleSearchChange(e.target.value);
|
|
550
556
|
},
|
|
551
|
-
placeholder:
|
|
557
|
+
placeholder: say.searchPlaceholder,
|
|
552
558
|
className: "w-full px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400"
|
|
553
559
|
})
|
|
554
560
|
]
|
|
@@ -558,7 +564,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
558
564
|
/*#__PURE__*/ _jsx("label", {
|
|
559
565
|
htmlFor: "entity-filter",
|
|
560
566
|
className: "block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1",
|
|
561
|
-
children:
|
|
567
|
+
children: say.entityLabel
|
|
562
568
|
}),
|
|
563
569
|
/*#__PURE__*/ _jsx("select", {
|
|
564
570
|
id: "entity-filter",
|
|
@@ -577,7 +583,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
577
583
|
/*#__PURE__*/ _jsx("label", {
|
|
578
584
|
htmlFor: "method-filter",
|
|
579
585
|
className: "block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1",
|
|
580
|
-
children:
|
|
586
|
+
children: say.methodLabel
|
|
581
587
|
}),
|
|
582
588
|
/*#__PURE__*/ _jsx("select", {
|
|
583
589
|
id: "method-filter",
|
|
@@ -603,7 +609,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
603
609
|
}),
|
|
604
610
|
/*#__PURE__*/ _jsx("span", {
|
|
605
611
|
className: cn('text-sm', !store.selectedRole ? 'text-zinc-400' : 'text-zinc-700 dark:text-zinc-300'),
|
|
606
|
-
children:
|
|
612
|
+
children: say.showAssignedOnly
|
|
607
613
|
})
|
|
608
614
|
]
|
|
609
615
|
})
|
|
@@ -624,7 +630,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
624
630
|
}),
|
|
625
631
|
/*#__PURE__*/ _jsx("div", {
|
|
626
632
|
className: "text-xs text-emerald-700 dark:text-emerald-300",
|
|
627
|
-
children:
|
|
633
|
+
children: say.assignedClaimsCaption
|
|
628
634
|
})
|
|
629
635
|
]
|
|
630
636
|
})
|
|
@@ -640,19 +646,11 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
640
646
|
children: [
|
|
641
647
|
/*#__PURE__*/ _jsx("h2", {
|
|
642
648
|
className: "text-lg font-semibold text-zinc-900 dark:text-zinc-100",
|
|
643
|
-
children:
|
|
649
|
+
children: say.claimsHeading
|
|
644
650
|
}),
|
|
645
|
-
/*#__PURE__*/
|
|
651
|
+
/*#__PURE__*/ _jsx("p", {
|
|
646
652
|
className: "text-sm text-zinc-500 dark:text-zinc-400",
|
|
647
|
-
children:
|
|
648
|
-
filteredClaims.length,
|
|
649
|
-
" of ",
|
|
650
|
-
store.claims.length,
|
|
651
|
-
" claims • ",
|
|
652
|
-
sortedEntities.length,
|
|
653
|
-
' ',
|
|
654
|
-
"entities"
|
|
655
|
-
]
|
|
653
|
+
children: say.claimsSummary(filteredClaims.length, store.claims.length, sortedEntities.length)
|
|
656
654
|
})
|
|
657
655
|
]
|
|
658
656
|
}),
|
|
@@ -663,13 +661,13 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
663
661
|
type: "button",
|
|
664
662
|
onClick: expandAll,
|
|
665
663
|
className: "px-3 py-1.5 text-xs font-medium text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 border border-zinc-200 dark:border-zinc-700 rounded-lg transition-colors",
|
|
666
|
-
children:
|
|
664
|
+
children: say.expandAll
|
|
667
665
|
}),
|
|
668
666
|
/*#__PURE__*/ _jsx("button", {
|
|
669
667
|
type: "button",
|
|
670
668
|
onClick: collapseAll,
|
|
671
669
|
className: "px-3 py-1.5 text-xs font-medium text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 border border-zinc-200 dark:border-zinc-700 rounded-lg transition-colors",
|
|
672
|
-
children:
|
|
670
|
+
children: say.collapseAll
|
|
673
671
|
})
|
|
674
672
|
]
|
|
675
673
|
})
|
|
@@ -679,7 +677,7 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
679
677
|
className: "max-h-[calc(100vh-280px)] overflow-y-auto",
|
|
680
678
|
children: sortedEntities.length === 0 ? /*#__PURE__*/ _jsx("div", {
|
|
681
679
|
className: "p-8 text-center text-zinc-500 dark:text-zinc-400",
|
|
682
|
-
children:
|
|
680
|
+
children: say.noClaimsMatchYourFilters
|
|
683
681
|
}) : sortedEntities.map((entity)=>{
|
|
684
682
|
const entityClaims = groupedFilteredClaims[entity] || [];
|
|
685
683
|
const isExpanded = expandedEntities.has(entity);
|
|
@@ -710,14 +708,11 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
710
708
|
}),
|
|
711
709
|
/*#__PURE__*/ _jsx("span", {
|
|
712
710
|
className: "font-medium text-zinc-900 dark:text-zinc-100",
|
|
713
|
-
children: entity
|
|
711
|
+
children: say.entityName(entity)
|
|
714
712
|
}),
|
|
715
|
-
/*#__PURE__*/
|
|
713
|
+
/*#__PURE__*/ _jsx("span", {
|
|
716
714
|
className: "text-xs text-zinc-500 dark:text-zinc-400",
|
|
717
|
-
children:
|
|
718
|
-
entityClaims.length,
|
|
719
|
-
" claims"
|
|
720
|
-
]
|
|
715
|
+
children: say.entityClaimCount(entityClaims.length)
|
|
721
716
|
}),
|
|
722
717
|
store.selectedRole && /*#__PURE__*/ _jsxs("span", {
|
|
723
718
|
className: cn('text-xs px-2 py-0.5 rounded-full', allAssigned ? 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400' : assignedCount > 0 ? 'bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400' : 'bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400'),
|
|
@@ -737,13 +732,13 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
737
732
|
type: "button",
|
|
738
733
|
onClick: ()=>handleBulkAssign(entity, true),
|
|
739
734
|
className: "px-2 py-1 text-xs font-medium text-emerald-600 hover:text-emerald-700 dark:text-emerald-400 dark:hover:text-emerald-300 border border-emerald-200 dark:border-emerald-800 rounded",
|
|
740
|
-
children:
|
|
735
|
+
children: say.assignAll
|
|
741
736
|
}),
|
|
742
737
|
/*#__PURE__*/ _jsx("button", {
|
|
743
738
|
type: "button",
|
|
744
739
|
onClick: ()=>handleBulkAssign(entity, false),
|
|
745
740
|
className: "px-2 py-1 text-xs font-medium text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 border border-red-200 dark:border-red-800 rounded",
|
|
746
|
-
children:
|
|
741
|
+
children: say.removeAll
|
|
747
742
|
})
|
|
748
743
|
]
|
|
749
744
|
}),
|
|
@@ -798,35 +793,32 @@ export function AuthorizationPage({ title = 'Authorization Management', subtitle
|
|
|
798
793
|
type: "text",
|
|
799
794
|
value: store.scopeInputValue,
|
|
800
795
|
onChange: (e)=>store.setScopeInputValue(e.target.value),
|
|
801
|
-
placeholder:
|
|
796
|
+
placeholder: say.scopePlaceholder,
|
|
802
797
|
className: "flex-1 px-2 py-1 text-xs border border-zinc-300 dark:border-zinc-600 rounded bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400"
|
|
803
798
|
}),
|
|
804
799
|
/*#__PURE__*/ _jsx("button", {
|
|
805
800
|
type: "button",
|
|
806
801
|
onClick: ()=>handleScopeSubmit(roleClaim.id),
|
|
807
802
|
className: "px-2 py-1 text-xs font-medium text-white bg-emerald-600 hover:bg-emerald-700 rounded transition-colors",
|
|
808
|
-
children:
|
|
803
|
+
children: say.save
|
|
809
804
|
}),
|
|
810
805
|
/*#__PURE__*/ _jsx("button", {
|
|
811
806
|
type: "button",
|
|
812
807
|
onClick: ()=>store.setEditingScopeClaimId(null),
|
|
813
808
|
className: "px-2 py-1 text-xs font-medium text-zinc-500 hover:text-zinc-700 dark:hover:text-zinc-300 transition-colors",
|
|
814
|
-
children:
|
|
809
|
+
children: say.cancel
|
|
815
810
|
})
|
|
816
811
|
]
|
|
817
812
|
}) : /*#__PURE__*/ _jsx("button", {
|
|
818
813
|
type: "button",
|
|
819
814
|
onClick: ()=>startEditingScope(claim.id, currentScope),
|
|
820
815
|
className: "text-xs text-zinc-500 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 transition-colors",
|
|
821
|
-
children: currentScope ? /*#__PURE__*/
|
|
816
|
+
children: currentScope ? /*#__PURE__*/ _jsx("span", {
|
|
822
817
|
className: "font-mono bg-zinc-200 dark:bg-zinc-700 px-1.5 py-0.5 rounded",
|
|
823
|
-
children:
|
|
824
|
-
"scope: ",
|
|
825
|
-
currentScope
|
|
826
|
-
]
|
|
818
|
+
children: say.scopeValue(currentScope)
|
|
827
819
|
}) : /*#__PURE__*/ _jsx("span", {
|
|
828
820
|
className: "italic hover:underline",
|
|
829
|
-
children:
|
|
821
|
+
children: say.addScopeFilter
|
|
830
822
|
})
|
|
831
823
|
})
|
|
832
824
|
})
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ClaimListProps } from '../types';
|
|
2
|
-
export declare function ClaimList({ claims, isLoading }: ClaimListProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function ClaimList({ claims, isLoading, labels }: ClaimListProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { cn } from '../../../utils/cn';
|
|
4
|
+
import { DEFAULT_AUTHORIZATION_LABELS } from '../labels';
|
|
4
5
|
import { authorizationPageTheme } from '../theme';
|
|
5
|
-
export function ClaimList({ claims, isLoading }) {
|
|
6
|
+
export function ClaimList({ claims, isLoading, labels }) {
|
|
6
7
|
const theme = authorizationPageTheme;
|
|
8
|
+
const say = {
|
|
9
|
+
...DEFAULT_AUTHORIZATION_LABELS,
|
|
10
|
+
...labels
|
|
11
|
+
};
|
|
7
12
|
const getClaimEntity = (action)=>{
|
|
8
13
|
const parts = action.split('.');
|
|
9
14
|
if (parts[1] === 'bulk') {
|
|
@@ -33,33 +38,28 @@ export function ClaimList({ claims, isLoading }) {
|
|
|
33
38
|
children: [
|
|
34
39
|
/*#__PURE__*/ _jsx("h2", {
|
|
35
40
|
className: theme.card.header,
|
|
36
|
-
children:
|
|
41
|
+
children: say.allClaimsHeading
|
|
37
42
|
}),
|
|
38
43
|
isLoading ? /*#__PURE__*/ _jsx("div", {
|
|
39
44
|
className: theme.loading.wrapper,
|
|
40
45
|
children: /*#__PURE__*/ _jsx("span", {
|
|
41
46
|
className: theme.loading.text,
|
|
42
|
-
children:
|
|
47
|
+
children: say.loadingClaims
|
|
43
48
|
})
|
|
44
49
|
}) : Object.keys(groupedClaims).length === 0 ? /*#__PURE__*/ _jsx("div", {
|
|
45
50
|
className: theme.empty.wrapper,
|
|
46
51
|
children: /*#__PURE__*/ _jsx("span", {
|
|
47
52
|
className: theme.empty.text,
|
|
48
|
-
children:
|
|
53
|
+
children: say.noClaimsMatchTheFilters
|
|
49
54
|
})
|
|
50
55
|
}) : /*#__PURE__*/ _jsx("div", {
|
|
51
56
|
className: theme.claimList.wrapper,
|
|
52
57
|
children: Object.entries(groupedClaims).map(([entity, entityClaims])=>/*#__PURE__*/ _jsxs("div", {
|
|
53
58
|
className: theme.claimList.group,
|
|
54
59
|
children: [
|
|
55
|
-
/*#__PURE__*/
|
|
60
|
+
/*#__PURE__*/ _jsx("div", {
|
|
56
61
|
className: theme.claimList.groupHeader,
|
|
57
|
-
children:
|
|
58
|
-
entity,
|
|
59
|
-
" (",
|
|
60
|
-
entityClaims.length,
|
|
61
|
-
")"
|
|
62
|
-
]
|
|
62
|
+
children: say.entityGroupHeader(say.entityName(entity), entityClaims.length)
|
|
63
63
|
}),
|
|
64
64
|
/*#__PURE__*/ _jsx("div", {
|
|
65
65
|
className: "divide-y divide-zinc-200 dark:divide-zinc-700",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { RoleClaimEditorProps } from '../types';
|
|
2
|
-
export declare function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, isToggling, onToggleClaim, onUpdateScope, editingScope, onEditScope, scopeValue, onScopeValueChange, }: RoleClaimEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function RoleClaimEditor({ labels, selectedRole, claims, roleClaims, isLoading, isToggling, onToggleClaim, onUpdateScope, editingScope, onEditScope, scopeValue, onScopeValueChange, }: RoleClaimEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { cn } from '../../../utils/cn';
|
|
4
|
+
import { DEFAULT_AUTHORIZATION_LABELS } from '../labels';
|
|
4
5
|
import { authorizationPageTheme } from '../theme';
|
|
5
|
-
export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, isToggling, onToggleClaim, onUpdateScope, editingScope, onEditScope, scopeValue, onScopeValueChange }) {
|
|
6
|
+
export function RoleClaimEditor({ labels, selectedRole, claims, roleClaims, isLoading, isToggling, onToggleClaim, onUpdateScope, editingScope, onEditScope, scopeValue, onScopeValueChange }) {
|
|
6
7
|
const theme = authorizationPageTheme;
|
|
8
|
+
const say = {
|
|
9
|
+
...DEFAULT_AUTHORIZATION_LABELS,
|
|
10
|
+
...labels
|
|
11
|
+
};
|
|
7
12
|
const getClaimEntity = (action)=>{
|
|
8
13
|
const parts = action.split('.');
|
|
9
14
|
if (parts[1] === 'bulk') {
|
|
@@ -40,13 +45,13 @@ export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, i
|
|
|
40
45
|
children: [
|
|
41
46
|
/*#__PURE__*/ _jsx("h2", {
|
|
42
47
|
className: theme.card.header,
|
|
43
|
-
children:
|
|
48
|
+
children: say.selectRoleHeading
|
|
44
49
|
}),
|
|
45
50
|
/*#__PURE__*/ _jsx("div", {
|
|
46
51
|
className: theme.empty.wrapper,
|
|
47
52
|
children: /*#__PURE__*/ _jsx("span", {
|
|
48
53
|
className: theme.empty.text,
|
|
49
|
-
children:
|
|
54
|
+
children: say.selectRoleHint
|
|
50
55
|
})
|
|
51
56
|
})
|
|
52
57
|
]
|
|
@@ -56,13 +61,9 @@ export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, i
|
|
|
56
61
|
return /*#__PURE__*/ _jsxs("div", {
|
|
57
62
|
className: theme.card.wrapper,
|
|
58
63
|
children: [
|
|
59
|
-
/*#__PURE__*/
|
|
64
|
+
/*#__PURE__*/ _jsx("h2", {
|
|
60
65
|
className: theme.card.header,
|
|
61
|
-
children:
|
|
62
|
-
'Claims for "',
|
|
63
|
-
selectedRole.name,
|
|
64
|
-
'"'
|
|
65
|
-
]
|
|
66
|
+
children: say.claimsForRole(selectedRole.name)
|
|
66
67
|
}),
|
|
67
68
|
/*#__PURE__*/ _jsxs("div", {
|
|
68
69
|
className: theme.empty.wrapper,
|
|
@@ -83,9 +84,9 @@ export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, i
|
|
|
83
84
|
/*#__PURE__*/ _jsxs("p", {
|
|
84
85
|
className: theme.empty.text,
|
|
85
86
|
children: [
|
|
86
|
-
|
|
87
|
+
say.godminFullAccess,
|
|
87
88
|
/*#__PURE__*/ _jsx("br", {}),
|
|
88
|
-
|
|
89
|
+
say.godminCannotModify
|
|
89
90
|
]
|
|
90
91
|
})
|
|
91
92
|
]
|
|
@@ -96,46 +97,34 @@ export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, i
|
|
|
96
97
|
return /*#__PURE__*/ _jsxs("div", {
|
|
97
98
|
className: theme.card.wrapper,
|
|
98
99
|
children: [
|
|
99
|
-
/*#__PURE__*/
|
|
100
|
+
/*#__PURE__*/ _jsx("h2", {
|
|
100
101
|
className: theme.card.header,
|
|
101
|
-
children:
|
|
102
|
-
'Claims for "',
|
|
103
|
-
selectedRole.name,
|
|
104
|
-
'"'
|
|
105
|
-
]
|
|
102
|
+
children: say.claimsForRole(selectedRole.name)
|
|
106
103
|
}),
|
|
107
|
-
/*#__PURE__*/
|
|
104
|
+
/*#__PURE__*/ _jsx("div", {
|
|
108
105
|
className: theme.stats.text,
|
|
109
|
-
children:
|
|
110
|
-
roleClaims.length,
|
|
111
|
-
" claims assigned"
|
|
112
|
-
]
|
|
106
|
+
children: say.assignedClaimCount(roleClaims.length)
|
|
113
107
|
}),
|
|
114
108
|
isLoading ? /*#__PURE__*/ _jsx("div", {
|
|
115
109
|
className: theme.loading.wrapper,
|
|
116
110
|
children: /*#__PURE__*/ _jsx("span", {
|
|
117
111
|
className: theme.loading.text,
|
|
118
|
-
children:
|
|
112
|
+
children: say.loadingClaims
|
|
119
113
|
})
|
|
120
114
|
}) : Object.keys(groupedClaims).length === 0 ? /*#__PURE__*/ _jsx("div", {
|
|
121
115
|
className: theme.empty.wrapper,
|
|
122
116
|
children: /*#__PURE__*/ _jsx("span", {
|
|
123
117
|
className: theme.empty.text,
|
|
124
|
-
children:
|
|
118
|
+
children: say.noClaimsMatchTheFilters
|
|
125
119
|
})
|
|
126
120
|
}) : /*#__PURE__*/ _jsx("div", {
|
|
127
121
|
className: "max-h-[500px] overflow-y-auto space-y-4",
|
|
128
122
|
children: Object.entries(groupedClaims).map(([entity, entityClaims])=>/*#__PURE__*/ _jsxs("div", {
|
|
129
123
|
className: theme.claimList.group,
|
|
130
124
|
children: [
|
|
131
|
-
/*#__PURE__*/
|
|
125
|
+
/*#__PURE__*/ _jsx("div", {
|
|
132
126
|
className: theme.claimList.groupHeader,
|
|
133
|
-
children:
|
|
134
|
-
entity,
|
|
135
|
-
" (",
|
|
136
|
-
entityClaims.length,
|
|
137
|
-
")"
|
|
138
|
-
]
|
|
127
|
+
children: say.entityGroupHeader(say.entityName(entity), entityClaims.length)
|
|
139
128
|
}),
|
|
140
129
|
/*#__PURE__*/ _jsx("div", {
|
|
141
130
|
className: "divide-y divide-zinc-200 dark:divide-zinc-700",
|
|
@@ -185,35 +174,32 @@ export function RoleClaimEditor({ selectedRole, claims, roleClaims, isLoading, i
|
|
|
185
174
|
type: "text",
|
|
186
175
|
value: scopeValue || '',
|
|
187
176
|
onChange: (e)=>onScopeValueChange?.(e.target.value),
|
|
188
|
-
placeholder:
|
|
177
|
+
placeholder: say.scopePlaceholder,
|
|
189
178
|
className: "flex-1 px-2 py-1 text-xs border border-zinc-300 dark:border-zinc-600 rounded bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400"
|
|
190
179
|
}),
|
|
191
180
|
/*#__PURE__*/ _jsx("button", {
|
|
192
181
|
type: "button",
|
|
193
182
|
onClick: ()=>handleScopeSubmit(roleClaim.id),
|
|
194
183
|
className: "px-2 py-1 text-xs font-medium text-white bg-emerald-600 hover:bg-emerald-700 rounded transition-colors",
|
|
195
|
-
children:
|
|
184
|
+
children: say.save
|
|
196
185
|
}),
|
|
197
186
|
/*#__PURE__*/ _jsx("button", {
|
|
198
187
|
type: "button",
|
|
199
188
|
onClick: handleScopeCancel,
|
|
200
189
|
className: "px-2 py-1 text-xs font-medium text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors",
|
|
201
|
-
children:
|
|
190
|
+
children: say.cancel
|
|
202
191
|
})
|
|
203
192
|
]
|
|
204
193
|
}) : /*#__PURE__*/ _jsx("button", {
|
|
205
194
|
type: "button",
|
|
206
195
|
onClick: ()=>startEditingScope(claim.id, currentScope),
|
|
207
196
|
className: "text-xs text-zinc-500 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 transition-colors",
|
|
208
|
-
children: currentScope ? /*#__PURE__*/
|
|
197
|
+
children: currentScope ? /*#__PURE__*/ _jsx("span", {
|
|
209
198
|
className: "font-mono bg-zinc-100 dark:bg-zinc-800 px-1.5 py-0.5 rounded",
|
|
210
|
-
children:
|
|
211
|
-
"Scope: ",
|
|
212
|
-
currentScope
|
|
213
|
-
]
|
|
199
|
+
children: say.scopeValue(currentScope)
|
|
214
200
|
}) : /*#__PURE__*/ _jsx("span", {
|
|
215
201
|
className: "italic",
|
|
216
|
-
children:
|
|
202
|
+
children: say.addScopeFilter
|
|
217
203
|
})
|
|
218
204
|
})
|
|
219
205
|
})
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { RoleListProps } from '../types';
|
|
2
|
-
export declare function RoleList({ roles, selectedRole, isLoading, isCreating, isDeleting, newRoleName, newRoleDescription, onNewRoleNameChange, onNewRoleDescriptionChange, onSelectRole, onDeleteRole, onCreateRole, }: RoleListProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function RoleList({ labels, roles, selectedRole, isLoading, isCreating, isDeleting, newRoleName, newRoleDescription, onNewRoleNameChange, onNewRoleDescriptionChange, onSelectRole, onDeleteRole, onCreateRole, }: RoleListProps): import("react/jsx-runtime").JSX.Element;
|