nucleus-core-ts 0.10.135 → 0.10.136
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/VerificationFlowPage/components/PendingTab.js +11 -4
- package/dist/fe/components/VerificationFlowPage/labels.d.ts +4 -0
- package/dist/fe/components/VerificationFlowPage/labels.js +3 -0
- package/dist/fe/components/VerificationFlowPage/model2/theme.js +10 -2
- package/dist/fe/components/VerificationFlowPage/theme/index.js +6 -6
- package/package.json +1 -1
package/dist/.build-ok
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.10.
|
|
1
|
+
0.10.136
|
|
@@ -357,6 +357,12 @@ export function PendingTab({ pendingAction, decideAction, uploadSignatureAction,
|
|
|
357
357
|
*/ const renderRevisionCard = (item)=>{
|
|
358
358
|
const returned = returnedSentence(say, item);
|
|
359
359
|
const confirming = withdrawingId === item.instance_id;
|
|
360
|
+
/*
|
|
361
|
+
* Round 1 of a chain that OPENS on the author's step — "the author confirms
|
|
362
|
+
* the draft, then the reviewers" — has sent nothing back. Measured on the
|
|
363
|
+
* running panel: the card said "returned to you for a correction" and
|
|
364
|
+
* offered "I fixed it, send again" for a record nobody had looked at yet.
|
|
365
|
+
*/ const firstRound = (item.pass_no ?? 1) <= 1 && !item.sent_back;
|
|
360
366
|
return /*#__PURE__*/ _jsxs("div", {
|
|
361
367
|
className: "flex flex-wrap items-start justify-between gap-3",
|
|
362
368
|
children: [
|
|
@@ -365,13 +371,14 @@ export function PendingTab({ pendingAction, decideAction, uploadSignatureAction,
|
|
|
365
371
|
children: [
|
|
366
372
|
/*#__PURE__*/ _jsx("p", {
|
|
367
373
|
className: theme.pending.card.title,
|
|
368
|
-
children: say.revisionCardTitle
|
|
374
|
+
children: firstRound ? say.revisionFirstTitle : say.revisionCardTitle
|
|
369
375
|
}),
|
|
370
376
|
/*#__PURE__*/ _jsxs("p", {
|
|
371
377
|
className: theme.pending.card.subtitle,
|
|
372
378
|
children: [
|
|
373
379
|
say.pendingCardTitle(item.flow_name, item.step_order),
|
|
374
|
-
item.step_name ? ` · ${item.step_name}` : null
|
|
380
|
+
item.step_name ? ` · ${item.step_name}` : null,
|
|
381
|
+
!firstRound && item.pass_no ? ` · ${say.pendingRound(item.pass_no, item.max_passes ?? item.pass_no)}` : null
|
|
375
382
|
]
|
|
376
383
|
}),
|
|
377
384
|
returned ? /*#__PURE__*/ _jsx("p", {
|
|
@@ -428,7 +435,7 @@ export function PendingTab({ pendingAction, decideAction, uploadSignatureAction,
|
|
|
428
435
|
},
|
|
429
436
|
"aria-describedby": `resubmit-hint-${item.instance_id}`,
|
|
430
437
|
className: theme.pending.approveButton,
|
|
431
|
-
children: say.resubmit
|
|
438
|
+
children: firstRound ? say.submitForReview : say.resubmit
|
|
432
439
|
}),
|
|
433
440
|
/*#__PURE__*/ _jsx("button", {
|
|
434
441
|
type: "button",
|
|
@@ -446,7 +453,7 @@ export function PendingTab({ pendingAction, decideAction, uploadSignatureAction,
|
|
|
446
453
|
/*#__PURE__*/ _jsx("p", {
|
|
447
454
|
id: `resubmit-hint-${item.instance_id}`,
|
|
448
455
|
className: theme.pending.card.decisionMeta,
|
|
449
|
-
children: say.resubmitHint
|
|
456
|
+
children: firstRound ? say.submitForReviewHint : say.resubmitHint
|
|
450
457
|
})
|
|
451
458
|
]
|
|
452
459
|
})
|
|
@@ -480,6 +480,10 @@ export type VerificationFlowLabels = {
|
|
|
480
480
|
maxPassesOutOfRange: string;
|
|
481
481
|
/** The author's correction card — a correction step, not a review. */
|
|
482
482
|
revisionCardTitle: string;
|
|
483
|
+
/** The same card on round 1, before anything has been sent back. */
|
|
484
|
+
revisionFirstTitle: string;
|
|
485
|
+
submitForReview: string;
|
|
486
|
+
submitForReviewHint: string;
|
|
483
487
|
returnedBecause: (reason: string) => string;
|
|
484
488
|
returnedNoReason: string;
|
|
485
489
|
resubmit: string;
|
|
@@ -350,6 +350,9 @@
|
|
|
350
350
|
liveFlowLocked: (n)=>`${n} review${n === 1 ? ' is' : 's are'} running under this flow, so its steps are locked. You can still rename steps and edit what they send.`,
|
|
351
351
|
maxPassesOutOfRange: 'Between 1 and 20.',
|
|
352
352
|
revisionCardTitle: 'Returned to you for a correction',
|
|
353
|
+
revisionFirstTitle: 'Check your record before the reviewers see it',
|
|
354
|
+
submitForReview: 'Send to the reviewers',
|
|
355
|
+
submitForReviewHint: 'Make any last changes on the record first; the reviewers read it as it is when you send it.',
|
|
353
356
|
returnedBecause: (reason)=>`Why it came back: ${reason}`,
|
|
354
357
|
returnedNoReason: 'The reviewer did not give a reason.',
|
|
355
358
|
resubmit: 'Fixed — send back for review',
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
*/ const dark = {
|
|
13
13
|
editor: {
|
|
14
14
|
root: 'flex-1 min-h-0 flex flex-col bg-[#08080d]',
|
|
15
|
-
scroll
|
|
15
|
+
// `relative`: the scroll box must be the positioning context. Without it the
|
|
16
|
+
// editor's `sr-only` labels (position: absolute) anchored to the page, not
|
|
17
|
+
// to this box, escaped its clipping and stretched the DOCUMENT to ~3000px —
|
|
18
|
+
// a second scrollbar, and the panel's sticky header sliding over Kaydet.
|
|
19
|
+
scroll: 'relative flex-1 overflow-y-auto px-6 py-5',
|
|
16
20
|
header: 'flex-shrink-0 px-6 pt-5 pb-3 flex items-start justify-between gap-4',
|
|
17
21
|
headerTitle: 'text-[13px] font-semibold text-white/90 tracking-tight',
|
|
18
22
|
headerSubtitle: 'text-[11px] text-white/40 mt-1 leading-relaxed max-w-prose',
|
|
@@ -140,7 +144,11 @@
|
|
|
140
144
|
const light = {
|
|
141
145
|
editor: {
|
|
142
146
|
root: 'flex-1 min-h-0 flex flex-col bg-slate-50',
|
|
143
|
-
scroll
|
|
147
|
+
// `relative`: the scroll box must be the positioning context. Without it the
|
|
148
|
+
// editor's `sr-only` labels (position: absolute) anchored to the page, not
|
|
149
|
+
// to this box, escaped its clipping and stretched the DOCUMENT to ~3000px —
|
|
150
|
+
// a second scrollbar, and the panel's sticky header sliding over Kaydet.
|
|
151
|
+
scroll: 'relative flex-1 overflow-y-auto px-6 py-5',
|
|
144
152
|
header: 'flex-shrink-0 px-6 pt-5 pb-3 flex items-start justify-between gap-4',
|
|
145
153
|
headerTitle: 'text-[13px] font-semibold text-slate-800 tracking-tight',
|
|
146
154
|
headerSubtitle: 'text-[11px] text-slate-500 mt-1 leading-relaxed max-w-prose',
|
|
@@ -47,7 +47,7 @@ export const verificationFlowPageTheme = {
|
|
|
47
47
|
select: 'rounded-lg border border-white/[0.08] bg-white/[0.04] px-3 py-1.5 text-[11px] text-white/70 outline-none focus:border-white/20'
|
|
48
48
|
},
|
|
49
49
|
palette: {
|
|
50
|
-
container: 'flex-1 overflow-auto p-4',
|
|
50
|
+
container: 'relative flex-1 overflow-auto p-4',
|
|
51
51
|
title: 'text-[10px] font-bold uppercase tracking-[0.15em] text-white/30 mb-3 px-1',
|
|
52
52
|
item: 'flex items-start gap-3 rounded-xl p-3 mb-2 cursor-grab active:cursor-grabbing transition-all border border-transparent hover:border-white/[0.08]',
|
|
53
53
|
itemIcon: 'w-9 h-9 rounded-lg flex items-center justify-center flex-shrink-0',
|
|
@@ -107,7 +107,7 @@ export const verificationFlowPageTheme = {
|
|
|
107
107
|
header: 'flex items-center justify-between px-4 py-3 border-b border-white/[0.06]',
|
|
108
108
|
headerTitle: 'text-[12px] font-semibold text-white/80',
|
|
109
109
|
closeButton: 'w-6 h-6 rounded-md flex items-center justify-center text-white/30 hover:text-white/60 hover:bg-white/[0.06] transition-all',
|
|
110
|
-
body: 'flex-1 overflow-auto p-4 space-y-5',
|
|
110
|
+
body: 'relative flex-1 overflow-auto p-4 space-y-5',
|
|
111
111
|
help: 'rounded-lg bg-white/[0.04] px-3 py-2.5 text-[11px] leading-relaxed text-white/50',
|
|
112
112
|
readOnlyRow: 'flex items-baseline justify-between gap-3 rounded-lg bg-white/[0.04] px-3 py-2 text-[11px] text-white/50',
|
|
113
113
|
readOnlyValue: 'text-[12px] font-semibold tabular-nums text-white/80',
|
|
@@ -193,7 +193,7 @@ export const verificationFlowPageTheme = {
|
|
|
193
193
|
}
|
|
194
194
|
},
|
|
195
195
|
flowList: {
|
|
196
|
-
container: 'flex-1 overflow-auto p-6',
|
|
196
|
+
container: 'relative flex-1 overflow-auto p-6',
|
|
197
197
|
grid: 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 max-w-6xl mx-auto',
|
|
198
198
|
createButton: 'group flex flex-col items-center justify-center rounded-xl border-2 border-dashed border-white/[0.08] bg-white/[0.02] p-8 min-h-[180px] cursor-pointer hover:border-white/[0.15] hover:bg-white/[0.04] transition-all',
|
|
199
199
|
createButtonIcon: 'text-white/20 group-hover:text-white/40 transition-colors mb-3',
|
|
@@ -274,7 +274,7 @@ export const verificationFlowPageLightTheme = {
|
|
|
274
274
|
select: 'rounded-lg border border-gray-200 bg-gray-50 px-3 py-1.5 text-[11px] text-gray-600 outline-none focus:border-gray-400'
|
|
275
275
|
},
|
|
276
276
|
palette: {
|
|
277
|
-
container: 'flex-1 overflow-auto p-4',
|
|
277
|
+
container: 'relative flex-1 overflow-auto p-4',
|
|
278
278
|
title: 'text-[10px] font-bold uppercase tracking-[0.15em] text-gray-400 mb-3 px-1',
|
|
279
279
|
item: 'flex items-start gap-3 rounded-xl p-3 mb-2 cursor-grab active:cursor-grabbing transition-all border border-transparent hover:border-gray-200',
|
|
280
280
|
itemIcon: 'w-9 h-9 rounded-lg flex items-center justify-center flex-shrink-0',
|
|
@@ -343,7 +343,7 @@ export const verificationFlowPageLightTheme = {
|
|
|
343
343
|
header: 'flex items-center justify-between px-4 py-3 border-b border-gray-200',
|
|
344
344
|
headerTitle: 'text-[12px] font-semibold text-gray-800',
|
|
345
345
|
closeButton: 'w-6 h-6 rounded-md flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-all',
|
|
346
|
-
body: 'flex-1 overflow-auto p-4 space-y-5',
|
|
346
|
+
body: 'relative flex-1 overflow-auto p-4 space-y-5',
|
|
347
347
|
help: 'rounded-lg bg-gray-50 border border-gray-200 px-3 py-2.5 text-[11px] leading-relaxed text-gray-600',
|
|
348
348
|
readOnlyRow: 'flex items-baseline justify-between gap-3 rounded-lg bg-gray-50 border border-gray-200 px-3 py-2 text-[11px] text-gray-500',
|
|
349
349
|
readOnlyValue: 'text-[12px] font-semibold tabular-nums text-gray-800',
|
|
@@ -429,7 +429,7 @@ export const verificationFlowPageLightTheme = {
|
|
|
429
429
|
}
|
|
430
430
|
},
|
|
431
431
|
flowList: {
|
|
432
|
-
container: 'flex-1 overflow-auto p-6',
|
|
432
|
+
container: 'relative flex-1 overflow-auto p-6',
|
|
433
433
|
grid: 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 max-w-6xl mx-auto',
|
|
434
434
|
createButton: 'group flex flex-col items-center justify-center rounded-xl border-2 border-dashed border-gray-300 bg-gray-50 p-8 min-h-[180px] cursor-pointer hover:border-gray-400 hover:bg-gray-100 transition-all',
|
|
435
435
|
createButtonIcon: 'text-gray-400 group-hover:text-gray-600 transition-colors mb-3',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nucleus-core-ts",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.136",
|
|
4
4
|
"description": "Production-ready, enterprise-grade TypeScript framework for building multi-tenant APIs",
|
|
5
5
|
"author": "Hidayet Can Özcan <hidayetcan@gmail.com>",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|