@qoretechnologies/reqraft 0.10.2 → 0.10.5
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/.claude/CLAUDE.md +5 -0
- package/design/COMPACT_ENGINE_REDESIGN.md +156 -0
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +353 -0
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +158 -101
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +122 -105
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +9 -1
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +272 -82
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/compactRowStyles.d.ts +6 -3
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +76 -49
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
- package/dist/components/form/engine/readFirst.d.ts +19 -0
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +22 -1
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantCalmTable.js +94 -0
- package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -0
- package/dist/components/form/engine/variants/VariantCards.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantCards.js +80 -0
- package/dist/components/form/engine/variants/VariantCards.js.map +1 -0
- package/dist/components/form/engine/variants/VariantFocus.d.ts +7 -0
- package/dist/components/form/engine/variants/VariantFocus.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantFocus.js +138 -0
- package/dist/components/form/engine/variants/VariantFocus.js.map +1 -0
- package/dist/components/form/engine/variants/VariantMinimal.d.ts +6 -0
- package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -0
- package/dist/components/form/engine/variants/VariantMinimal.js +73 -0
- package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -0
- package/dist/components/form/engine/variants/focusDemo.d.ts +13 -0
- package/dist/components/form/engine/variants/focusDemo.d.ts.map +1 -0
- package/dist/components/form/engine/variants/focusDemo.js +139 -0
- package/dist/components/form/engine/variants/focusDemo.js.map +1 -0
- package/dist/components/form/engine/variants/variantModel.d.ts +70 -0
- package/dist/components/form/engine/variants/variantModel.d.ts.map +1 -0
- package/dist/components/form/engine/variants/variantModel.js +133 -0
- package/dist/components/form/engine/variants/variantModel.js.map +1 -0
- package/dist/components/form/engine/variants/variantParts.d.ts +79 -0
- package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -0
- package/dist/components/form/engine/variants/variantParts.js +191 -0
- package/dist/components/form/engine/variants/variantParts.js.map +1 -0
- package/dist/components/form/fields/auto/AutoFormField.d.ts +3 -0
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +5 -2
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/engine/CompactRow.tsx +273 -258
- package/src/components/form/engine/CompactToolbar.tsx +112 -85
- package/src/components/form/engine/FormEngine.stories.tsx +239 -115
- package/src/components/form/engine/FormEngine.tsx +332 -83
- package/src/components/form/engine/compactRowStyles.ts +221 -144
- package/src/components/form/engine/compactToolbarContext.ts +1 -0
- package/src/components/form/engine/readFirst.ts +35 -0
- package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +119 -0
- package/src/components/form/engine/variants/VariantCalmTable.tsx +242 -0
- package/src/components/form/engine/variants/VariantCards.tsx +212 -0
- package/src/components/form/engine/variants/VariantFocus.tsx +382 -0
- package/src/components/form/engine/variants/VariantMinimal.tsx +170 -0
- package/src/components/form/engine/variants/focusDemo.ts +145 -0
- package/src/components/form/engine/variants/variantModel.ts +216 -0
- package/src/components/form/engine/variants/variantParts.tsx +313 -0
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +9 -2
- package/src/components/form/fields/auto/AutoFormField.tsx +8 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.VariantCalmTable = void 0;
|
|
11
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* VARIANT 1 — "Calm Table"
|
|
14
|
+
*
|
|
15
|
+
* Direction: treat it like a clean data table. One status channel (segmented
|
|
16
|
+
* meter), one mark per row (a status dot), whitespace instead of borders/boxes.
|
|
17
|
+
* Errors are quiet inline text, not full-width red boxes. WHOLE-ROW hover.
|
|
18
|
+
* ONE unified description control (tap to reveal short+long inline). Click a row
|
|
19
|
+
* to edit it inline. Responsive: collapses to stacked label/value on phone.
|
|
20
|
+
*/
|
|
21
|
+
var reqore_1 = require("@qoretechnologies/reqore");
|
|
22
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
23
|
+
var variantParts_1 = require("./variantParts");
|
|
24
|
+
var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 22px;\n font-size: 13px;\n\n .vct-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr) auto;\n align-items: center;\n gap: 18px;\n min-height: 40px;\n padding: 6px 10px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.12s ease;\n }\n /* WHOLE-row hover (fixes: hover used to only tint the label cell) */\n .vct-row:hover,\n .vct-row:focus-within {\n background: ", ";\n }\n .vct-label {\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vct-actions {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n opacity: 0.85;\n }\n .vct-desc {\n grid-column: 1 / -1;\n padding: 2px 2px 6px 0;\n color: ", ";\n }\n .vct-reason {\n font-size: 12px;\n margin-left: 8px;\n }\n .vct-info {\n background: none;\n border: none;\n color: ", ";\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n border-radius: 6px;\n }\n .vct-info:hover {\n color: ", ";\n }\n\n @media (max-width: 620px) {\n .vct-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label actions' 'value value';\n row-gap: 2px;\n }\n .vct-label {\n grid-area: label;\n }\n .vct-value {\n grid-area: value;\n }\n .vct-actions {\n grid-area: actions;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 22px;\n font-size: 13px;\n\n .vct-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr) auto;\n align-items: center;\n gap: 18px;\n min-height: 40px;\n padding: 6px 10px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.12s ease;\n }\n /* WHOLE-row hover (fixes: hover used to only tint the label cell) */\n .vct-row:hover,\n .vct-row:focus-within {\n background: ", ";\n }\n .vct-label {\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vct-actions {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n opacity: 0.85;\n }\n .vct-desc {\n grid-column: 1 / -1;\n padding: 2px 2px 6px 0;\n color: ", ";\n }\n .vct-reason {\n font-size: 12px;\n margin-left: 8px;\n }\n .vct-info {\n background: none;\n border: none;\n color: ", ";\n cursor: pointer;\n padding: 4px;\n display: inline-flex;\n border-radius: 6px;\n }\n .vct-info:hover {\n color: ", ";\n }\n\n @media (max-width: 620px) {\n .vct-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label actions' 'value value';\n row-gap: 2px;\n }\n .vct-label {\n grid-area: label;\n }\n .vct-value {\n grid-area: value;\n }\n .vct-actions {\n grid-area: actions;\n }\n }\n"])), function (_a) {
|
|
25
|
+
var $hover = _a.$hover;
|
|
26
|
+
return $hover;
|
|
27
|
+
}, function (_a) {
|
|
28
|
+
var $muted = _a.$muted;
|
|
29
|
+
return $muted;
|
|
30
|
+
}, function (_a) {
|
|
31
|
+
var $faint = _a.$faint;
|
|
32
|
+
return $faint;
|
|
33
|
+
}, function (_a) {
|
|
34
|
+
var $muted = _a.$muted;
|
|
35
|
+
return $muted;
|
|
36
|
+
});
|
|
37
|
+
var Meter = function (_a) {
|
|
38
|
+
var form = _a.form;
|
|
39
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
40
|
+
var s = form.summary;
|
|
41
|
+
var filtering = form.filter === 'attention';
|
|
42
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 8 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 12, fontSize: 12, color: c.muted }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { size: 'small', effect: {
|
|
43
|
+
uppercase: true,
|
|
44
|
+
spaced: 1,
|
|
45
|
+
weight: 'bold',
|
|
46
|
+
color: (s.attention ? c.warning : c.success),
|
|
47
|
+
}, children: s.attention ? 'Draft' : 'Ready' }), (0, jsx_runtime_1.jsxs)("span", { children: [s.set, " of ", s.total, " set"] }), s.attention ?
|
|
48
|
+
(0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
|
|
49
|
+
marginLeft: 'auto',
|
|
50
|
+
background: 'none',
|
|
51
|
+
border: 'none',
|
|
52
|
+
cursor: 'pointer',
|
|
53
|
+
color: c.warning,
|
|
54
|
+
fontSize: 12,
|
|
55
|
+
textDecoration: 'underline',
|
|
56
|
+
textUnderlineOffset: 3,
|
|
57
|
+
}, children: filtering ? '← show all fields' : "".concat(s.attention, " need attention \u2192") })
|
|
58
|
+
: (0, jsx_runtime_1.jsx)("span", { style: { color: c.success, marginLeft: 'auto' }, children: "All clear" })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', height: 6, borderRadius: 3, overflow: 'hidden', background: c.line }, children: [(0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.set / s.total) * 100, "%"), background: c.success } }), (0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.attention / s.total) * 100, "%"), background: c.warning } })] })] }));
|
|
59
|
+
};
|
|
60
|
+
var VariantCalmTable = function (_a) {
|
|
61
|
+
var options = _a.options, values = _a.values;
|
|
62
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
63
|
+
var form = (0, variantParts_1.useVariantForm)(options, values);
|
|
64
|
+
var disc = (0, variantParts_1.useDisclosure)();
|
|
65
|
+
return ((0, jsx_runtime_1.jsxs)(Wrap, { "$line": c.line, "$hover": c.hover, "$muted": c.muted, "$faint": c.faint, children: [(0, jsx_runtime_1.jsx)(Meter, { form: form }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), form.visibleGroups.map(function (g) { return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 2 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
66
|
+
display: 'flex',
|
|
67
|
+
alignItems: 'center',
|
|
68
|
+
gap: 10,
|
|
69
|
+
padding: '0 10px 6px',
|
|
70
|
+
borderBottom: "1px solid ".concat(c.line),
|
|
71
|
+
marginBottom: 4,
|
|
72
|
+
}, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { effect: { weight: 'bold' }, children: g.label }), (0, jsx_runtime_1.jsx)("span", { style: { color: c.faint, fontSize: 12 }, children: g.rows.length })] }), g.rows.map(function (r) {
|
|
73
|
+
var hasDesc = !!(r.shortDesc || r.longDesc);
|
|
74
|
+
var open = disc.isOpen(r.name);
|
|
75
|
+
var editing = form.editing === r.name;
|
|
76
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: 'vct-row', role: 'button', tabIndex: 0, "aria-label": r.label, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vct-label', style: { color: c.text }, children: [r.label, r.required ?
|
|
77
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '9px', style: { color: c.danger } })
|
|
78
|
+
: null] }), (0, jsx_runtime_1.jsxs)("span", { className: 'vct-value', style: { minWidth: 0, color: c.muted }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.status === 'invalid' || r.status === 'todo' ?
|
|
79
|
+
(0, jsx_runtime_1.jsx)("span", { className: 'vct-reason', style: { color: r.status === 'invalid' ? c.danger : c.warning }, children: r.reason })
|
|
80
|
+
: null] }), (0, jsx_runtime_1.jsxs)("span", { className: 'vct-actions', children: [(0, jsx_runtime_1.jsx)(variantParts_1.StatusDot, { status: r.status }), hasDesc ?
|
|
81
|
+
(0, jsx_runtime_1.jsx)("button", { type: 'button', className: 'vct-info', "aria-label": 'Toggle description', "aria-expanded": open, onClick: function (e) {
|
|
82
|
+
e.stopPropagation();
|
|
83
|
+
disc.toggle(r.name);
|
|
84
|
+
}, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: open ? 'InformationFill' : 'InformationLine', size: '14px' }) })
|
|
85
|
+
: null] }), hasDesc && open ?
|
|
86
|
+
(0, jsx_runtime_1.jsxs)("div", { className: 'vct-desc', children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { children: r.shortDesc }) : null, r.longDesc ?
|
|
87
|
+
(0, jsx_runtime_1.jsx)("div", { style: { opacity: 0.8, marginTop: r.shortDesc ? 4 : 0 }, children: r.longDesc.replace(/[#`*]/g, '') })
|
|
88
|
+
: null] })
|
|
89
|
+
: null, editing ? (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit }) : null] }, r.name));
|
|
90
|
+
})] }, g.name)); })] }));
|
|
91
|
+
};
|
|
92
|
+
exports.VariantCalmTable = VariantCalmTable;
|
|
93
|
+
var templateObject_1;
|
|
94
|
+
//# sourceMappingURL=VariantCalmTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantCalmTable.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantCalmTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
|
|
2
|
+
export declare const VariantCards: ({ options, values, }: {
|
|
3
|
+
options: IQorusFormSchema;
|
|
4
|
+
values: Record<string, IQorusFormField>;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=VariantCards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantCards.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantCards.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAyEjF,eAAO,MAAM,YAAY,yBAGtB;IACD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC,4CA0HA,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.VariantCards = void 0;
|
|
11
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* VARIANT 2 — "Cards / Stack"
|
|
14
|
+
*
|
|
15
|
+
* Direction: breathing room over density. Each field is a subtle card with a
|
|
16
|
+
* generous tap target (phone-friendly). Status is shown with a single left
|
|
17
|
+
* accent — but ONLY for genuinely invalid (touched) fields; to-dos get a calm
|
|
18
|
+
* amber label dot, unset fields stay neutral. The description control sits on
|
|
19
|
+
* the LEFT under the label (where the text appears). Click a card to edit inline.
|
|
20
|
+
*/
|
|
21
|
+
var reqore_1 = require("@qoretechnologies/reqore");
|
|
22
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
23
|
+
var variantParts_1 = require("./variantParts");
|
|
24
|
+
var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 26px;\n font-size: 13px;\n\n .vc-card {\n position: relative;\n display: grid;\n grid-template-columns: minmax(200px, 0.7fr) minmax(0, 1.3fr);\n gap: 18px;\n padding: 14px 16px;\n border-radius: 10px;\n background: ", ";\n cursor: pointer;\n transition: background 0.12s ease;\n overflow: hidden;\n }\n .vc-card:hover,\n .vc-card:focus-within {\n background: ", ";\n }\n .vc-accent {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n }\n .vc-name {\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 7px;\n }\n .vc-descbtn {\n background: none;\n border: none;\n padding: 0;\n margin-top: 6px;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n }\n .vc-value {\n align-self: center;\n min-width: 0;\n }\n\n @media (max-width: 620px) {\n .vc-card {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 14px;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 26px;\n font-size: 13px;\n\n .vc-card {\n position: relative;\n display: grid;\n grid-template-columns: minmax(200px, 0.7fr) minmax(0, 1.3fr);\n gap: 18px;\n padding: 14px 16px;\n border-radius: 10px;\n background: ", ";\n cursor: pointer;\n transition: background 0.12s ease;\n overflow: hidden;\n }\n .vc-card:hover,\n .vc-card:focus-within {\n background: ", ";\n }\n .vc-accent {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n }\n .vc-name {\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 7px;\n }\n .vc-descbtn {\n background: none;\n border: none;\n padding: 0;\n margin-top: 6px;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n }\n .vc-value {\n align-self: center;\n min-width: 0;\n }\n\n @media (max-width: 620px) {\n .vc-card {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 14px;\n }\n }\n"])), function (_a) {
|
|
25
|
+
var $surface = _a.$surface;
|
|
26
|
+
return $surface;
|
|
27
|
+
}, function (_a) {
|
|
28
|
+
var $hover = _a.$hover;
|
|
29
|
+
return $hover;
|
|
30
|
+
});
|
|
31
|
+
var VariantCards = function (_a) {
|
|
32
|
+
var options = _a.options, values = _a.values;
|
|
33
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
34
|
+
var form = (0, variantParts_1.useVariantForm)(options, values);
|
|
35
|
+
var s = form.summary;
|
|
36
|
+
var disc = (0, variantParts_1.useDisclosure)();
|
|
37
|
+
return ((0, jsx_runtime_1.jsxs)(Wrap, { "$surface": c.surface, "$line": c.line, "$hover": c.hover, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 10 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'baseline', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'big', effect: { weight: 'bold' }, children: [s.pct, "% complete"] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, fontSize: 12 }, children: [s.set, "/", s.total, " set"] }), s.attention ?
|
|
38
|
+
(0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
|
|
39
|
+
background: 'none',
|
|
40
|
+
border: 'none',
|
|
41
|
+
cursor: 'pointer',
|
|
42
|
+
color: c.warning,
|
|
43
|
+
fontSize: 12,
|
|
44
|
+
textDecoration: 'underline',
|
|
45
|
+
textUnderlineOffset: 3,
|
|
46
|
+
}, children: form.filter === 'attention' ? '← show all' : "".concat(s.attention, " need attention \u2192") })
|
|
47
|
+
: null] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 4, borderRadius: 2, background: c.line, overflow: 'hidden' }, children: (0, jsx_runtime_1.jsx)("div", { style: { width: "".concat(s.pct, "%"), height: '100%', background: c.success } }) })] }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), form.visibleGroups.map(function (g) { return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 10 }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { effect: { weight: 'bold', uppercase: true, spaced: 1 }, size: 'small', children: g.label }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexFlow: 'column', gap: 8 }, children: g.rows.map(function (r) {
|
|
48
|
+
var hasDesc = !!(r.shortDesc || r.longDesc);
|
|
49
|
+
var open = disc.isOpen(r.name);
|
|
50
|
+
var editing = form.editing === r.name;
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: 'vc-card', role: 'button', tabIndex: 0, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [r.status === 'invalid' ?
|
|
52
|
+
(0, jsx_runtime_1.jsx)("span", { className: 'vc-accent', style: { background: c.danger } })
|
|
53
|
+
: null, (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vc-name', style: { color: c.text }, children: [r.status === 'todo' || r.status === 'invalid' ?
|
|
54
|
+
(0, jsx_runtime_1.jsx)("span", { "aria-hidden": true, style: {
|
|
55
|
+
width: 6,
|
|
56
|
+
height: 6,
|
|
57
|
+
borderRadius: '50%',
|
|
58
|
+
background: (0, variantParts_1.STATUS_COLOR)(r.status, c),
|
|
59
|
+
} })
|
|
60
|
+
: null, r.label, r.required ?
|
|
61
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '9px', style: { color: c.danger } })
|
|
62
|
+
: null] }), hasDesc ?
|
|
63
|
+
(0, jsx_runtime_1.jsxs)("button", { type: 'button', className: 'vc-descbtn', style: { color: c.faint }, "aria-expanded": open, onClick: function (e) {
|
|
64
|
+
e.stopPropagation();
|
|
65
|
+
disc.toggle(r.name);
|
|
66
|
+
}, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: open ? 'ArrowUpSLine' : 'QuestionLine', size: '12px' }), open ? 'Hide info' : 'Info'] })
|
|
67
|
+
: null, open ?
|
|
68
|
+
(0, jsx_runtime_1.jsxs)("div", { style: { color: c.muted, marginTop: 6, fontSize: 12, lineHeight: 1.5 }, children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { children: r.shortDesc }) : null, r.longDesc ?
|
|
69
|
+
(0, jsx_runtime_1.jsx)("div", { style: { opacity: 0.85, marginTop: r.shortDesc ? 4 : 0 }, children: r.longDesc.replace(/[#`*]/g, '') })
|
|
70
|
+
: null] })
|
|
71
|
+
: null] }), (0, jsx_runtime_1.jsxs)("div", { className: 'vc-value', style: { color: c.muted }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.status === 'invalid' ?
|
|
72
|
+
(0, jsx_runtime_1.jsx)("div", { style: { color: c.danger, fontSize: 12, marginTop: 4 }, children: r.reason })
|
|
73
|
+
: r.status === 'todo' ?
|
|
74
|
+
(0, jsx_runtime_1.jsx)("div", { style: { color: c.warning, fontSize: 12, marginTop: 4 }, children: r.reason })
|
|
75
|
+
: null] }), editing ? (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit }) : null] }, r.name));
|
|
76
|
+
}) })] }, g.name)); })] }));
|
|
77
|
+
};
|
|
78
|
+
exports.VariantCards = VariantCards;
|
|
79
|
+
var templateObject_1;
|
|
80
|
+
//# sourceMappingURL=VariantCards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantCards.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantCards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
|
|
2
|
+
export declare const VariantFocus: ({ options, values, config, }: {
|
|
3
|
+
options: IQorusFormSchema;
|
|
4
|
+
values: Record<string, IQorusFormField>;
|
|
5
|
+
config?: any;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=VariantFocus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantFocus.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantFocus.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA6PjF,eAAO,MAAM,YAAY,iCAItB;IACD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,4CAyGA,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.VariantFocus = void 0;
|
|
11
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* VARIANT 3 — "Focus" (production-leaning)
|
|
14
|
+
*
|
|
15
|
+
* The original Focus structure — three expandable boxes (Needs attention / Set /
|
|
16
|
+
* Optional) — with the engine's real functionality layered in:
|
|
17
|
+
* • REQUIRED (one-of) GROUPS highlighted as a "pick one" cluster in the box,
|
|
18
|
+
* • schema GROUPS as thin Minimal-style labels INSIDE the Set / Optional boxes,
|
|
19
|
+
* • a "Descriptions" toggle (short_desc under every field),
|
|
20
|
+
* • COMPLEX fields showing their nested value inline with Show-more,
|
|
21
|
+
* • real inline editing (AutoFormField) on click.
|
|
22
|
+
*
|
|
23
|
+
* Attention box and the rest are EXCLUSIVE: a field needing attention sits in the
|
|
24
|
+
* box until resolved, then drops into Set (or Optional) below.
|
|
25
|
+
*/
|
|
26
|
+
var reqore_1 = require("@qoretechnologies/reqore");
|
|
27
|
+
var react_1 = __importDefault(require("react"));
|
|
28
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
29
|
+
var variantParts_1 = require("./variantParts");
|
|
30
|
+
var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 18px;\n font-size: 13px;\n\n .vf-row {\n display: grid;\n grid-template-columns: minmax(190px, 320px) minmax(0, 1fr) auto;\n column-gap: 16px;\n row-gap: 2px;\n align-items: center;\n /* Single-line rows: centre the content within the min-height. */\n align-content: center;\n min-height: 38px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n }\n /* Rows with a description / preview / editor below: pin the name+value to the\n top instead of centring the whole block. */\n .vf-row.vf-tall {\n align-content: start;\n }\n .vf-row:hover,\n .vf-row[aria-expanded='true'] {\n background: ", ";\n }\n .vf-section {\n border-radius: 12px;\n padding: 6px;\n }\n .vf-sechead {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n user-select: none;\n }\n .vf-grouplabel {\n font-size: 10px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 10px 0 2px 12px;\n }\n .vf-cluster {\n border-radius: 10px;\n padding: 4px 4px 6px;\n margin: 2px 0;\n }\n .vf-desc {\n grid-column: 1 / -1;\n padding: 0 0 2px;\n font-size: 12px;\n line-height: 1.45;\n }\n .vf-preview {\n grid-column: 2 / -1;\n padding: 2px 0 4px;\n }\n @media (max-width: 640px) {\n .vf-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label dot' 'value value';\n row-gap: 2px;\n }\n .vf-label {\n grid-area: label;\n }\n .vf-value {\n grid-area: value;\n }\n .vf-dot {\n grid-area: dot;\n }\n .vf-preview {\n grid-column: 1 / -1;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 18px;\n font-size: 13px;\n\n .vf-row {\n display: grid;\n grid-template-columns: minmax(190px, 320px) minmax(0, 1fr) auto;\n column-gap: 16px;\n row-gap: 2px;\n align-items: center;\n /* Single-line rows: centre the content within the min-height. */\n align-content: center;\n min-height: 38px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n }\n /* Rows with a description / preview / editor below: pin the name+value to the\n top instead of centring the whole block. */\n .vf-row.vf-tall {\n align-content: start;\n }\n .vf-row:hover,\n .vf-row[aria-expanded='true'] {\n background: ", ";\n }\n .vf-section {\n border-radius: 12px;\n padding: 6px;\n }\n .vf-sechead {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n user-select: none;\n }\n .vf-grouplabel {\n font-size: 10px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 10px 0 2px 12px;\n }\n .vf-cluster {\n border-radius: 10px;\n padding: 4px 4px 6px;\n margin: 2px 0;\n }\n .vf-desc {\n grid-column: 1 / -1;\n padding: 0 0 2px;\n font-size: 12px;\n line-height: 1.45;\n }\n .vf-preview {\n grid-column: 2 / -1;\n padding: 2px 0 4px;\n }\n @media (max-width: 640px) {\n .vf-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label dot' 'value value';\n row-gap: 2px;\n }\n .vf-label {\n grid-area: label;\n }\n .vf-value {\n grid-area: value;\n }\n .vf-dot {\n grid-area: dot;\n }\n .vf-preview {\n grid-column: 1 / -1;\n }\n }\n"])), function (_a) {
|
|
31
|
+
var $hover = _a.$hover;
|
|
32
|
+
return $hover;
|
|
33
|
+
});
|
|
34
|
+
var Row = function (_a) {
|
|
35
|
+
var _b;
|
|
36
|
+
var r = _a.r, form = _a.form, showDesc = _a.showDesc;
|
|
37
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
38
|
+
var editing = form.editing === r.name;
|
|
39
|
+
var isHash = r.value.kind === 'hash';
|
|
40
|
+
// A row is "tall" (has something below the name/value line) when editing, when
|
|
41
|
+
// it's a complex preview, or when descriptions are shown for it.
|
|
42
|
+
var tall = editing || isHash || (showDesc && !!r.shortDesc);
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: tall ? 'vf-row vf-tall' : 'vf-row', role: 'button', tabIndex: 0, "aria-expanded": editing, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vf-label', style: { fontWeight: 600, color: c.text, display: 'flex', alignItems: 'center', gap: 6, minWidth: 0 }, children: [r.label, r.required ?
|
|
44
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '9px', style: { color: c.danger } })
|
|
45
|
+
: null] }), (0, jsx_runtime_1.jsxs)("span", { className: 'vf-value', style: { color: c.muted, minWidth: 0 }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.reason && r.status !== 'set' ?
|
|
46
|
+
(0, jsx_runtime_1.jsx)("span", { style: { color: (0, variantParts_1.STATUS_COLOR)(r.status, c), fontSize: 12, marginLeft: 8 }, children: r.reason })
|
|
47
|
+
: null] }), (0, jsx_runtime_1.jsx)("span", { className: 'vf-dot', style: { display: 'inline-flex', justifyContent: 'flex-end' }, children: (0, jsx_runtime_1.jsx)(variantParts_1.StatusDot, { status: r.status }) }), showDesc && r.shortDesc && !editing ?
|
|
48
|
+
(0, jsx_runtime_1.jsx)("div", { className: 'vf-desc', style: { color: c.faint }, children: r.shortDesc })
|
|
49
|
+
: null, isHash && !editing ?
|
|
50
|
+
(0, jsx_runtime_1.jsx)("div", { className: 'vf-preview', children: (0, jsx_runtime_1.jsx)(variantParts_1.ComplexPreview, { value: (_b = r.field) === null || _b === void 0 ? void 0 : _b.value, onOpen: function () { return !r.readOnly && form.startEdit(r.name); } }) })
|
|
51
|
+
: null, editing ?
|
|
52
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { className: 'vf-desc', style: { color: c.faint }, children: r.shortDesc }) : null, (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit })] })
|
|
53
|
+
: null] }));
|
|
54
|
+
};
|
|
55
|
+
/** A one-of required group, highlighted: "pick one of these". */
|
|
56
|
+
var RequiredCluster = function (_a) {
|
|
57
|
+
var rows = _a.rows, form = _a.form, showDesc = _a.showDesc;
|
|
58
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
59
|
+
var tint = c.warning;
|
|
60
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: 'vf-cluster', style: { background: "".concat(tint, "10"), border: "1px solid ".concat(tint, "33") }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 6, padding: '8px 0 2px 12px' }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'LinkM', size: '11px', style: { color: tint } }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 10, letterSpacing: 1, textTransform: 'uppercase', color: tint }, children: "One of the below is required" })] }), rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }));
|
|
61
|
+
};
|
|
62
|
+
var Section = function (_a) {
|
|
63
|
+
var title = _a.title, intent = _a.intent, count = _a.count, children = _a.children, _b = _a.defaultOpen, defaultOpen = _b === void 0 ? true : _b;
|
|
64
|
+
var _c = react_1.default.useState(defaultOpen), open = _c[0], setOpen = _c[1];
|
|
65
|
+
if (!count)
|
|
66
|
+
return null;
|
|
67
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: 'vf-section', style: { background: "".concat(intent, "0e"), border: "1px solid ".concat(intent, "22") }, children: [(0, jsx_runtime_1.jsxs)("div", { className: 'vf-sechead', onClick: function () { return setOpen(function (o) { return !o; }); }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: open ? 'ArrowDownSLine' : 'ArrowRightSLine', size: '15px' }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { effect: { weight: 'bold' }, children: title }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
68
|
+
background: "".concat(intent, "22"),
|
|
69
|
+
color: intent,
|
|
70
|
+
borderRadius: 20,
|
|
71
|
+
padding: '1px 9px',
|
|
72
|
+
fontSize: 12,
|
|
73
|
+
fontWeight: 700,
|
|
74
|
+
}, children: count })] }), open ? (0, jsx_runtime_1.jsx)("div", { children: children }) : null] }));
|
|
75
|
+
};
|
|
76
|
+
/** Rows of a given status, grouped by schema group with thin Minimal-style
|
|
77
|
+
* labels. Used inside the Set and Optional boxes. */
|
|
78
|
+
var GroupedRows = function (_a) {
|
|
79
|
+
var groups = _a.groups, status = _a.status, skip = _a.skip, form = _a.form, showDesc = _a.showDesc;
|
|
80
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
81
|
+
var sections = groups
|
|
82
|
+
.map(function (g) { return ({ g: g, rows: g.rows.filter(function (r) { return r.status === status && !skip.has(r.name); }) }); })
|
|
83
|
+
.filter(function (s) { return s.rows.length; });
|
|
84
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: sections.map(function (_a) {
|
|
85
|
+
var g = _a.g, rows = _a.rows;
|
|
86
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [sections.length > 1 ?
|
|
87
|
+
(0, jsx_runtime_1.jsx)("div", { className: 'vf-grouplabel', style: { color: c.faint }, children: g.label })
|
|
88
|
+
: null, rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }, g.name));
|
|
89
|
+
}) }));
|
|
90
|
+
};
|
|
91
|
+
var VariantFocus = function (_a) {
|
|
92
|
+
var options = _a.options, values = _a.values, config = _a.config;
|
|
93
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
94
|
+
var form = (0, variantParts_1.useVariantForm)(options, values, config);
|
|
95
|
+
var s = form.summary;
|
|
96
|
+
var showDesc = form.showDescriptions;
|
|
97
|
+
var allRows = form.visibleGroups.flatMap(function (g) { return g.rows; });
|
|
98
|
+
var unmetGroups = Object.values(form.requiredGroups).filter(function (g) { return !g.satisfied; });
|
|
99
|
+
var unmetMembers = new Set();
|
|
100
|
+
unmetGroups.forEach(function (g) { return g.members.forEach(function (m) { return unmetMembers.add(m); }); });
|
|
101
|
+
// Attention = invalid + individually-required-todo (NOT one-of members, which
|
|
102
|
+
// show as their cluster) + the unmet one-of clusters.
|
|
103
|
+
var attentionRows = allRows.filter(function (r) { return (r.status === 'invalid' || r.status === 'todo') && !unmetMembers.has(r.name); });
|
|
104
|
+
var attentionCount = attentionRows.length + unmetGroups.length;
|
|
105
|
+
var skip = new Set(attentionRows.map(function (r) { return r.name; }));
|
|
106
|
+
unmetMembers.forEach(function (n) { return skip.add(n); });
|
|
107
|
+
var setCount = allRows.filter(function (r) { return r.status === 'set' && !skip.has(r.name); }).length;
|
|
108
|
+
var optionalCount = allRows.filter(function (r) { return r.status === 'unset' && !skip.has(r.name); }).length;
|
|
109
|
+
// Group the attention items by schema group (placing each one-of cluster under
|
|
110
|
+
// its members' group) so the attention box reads like the Set / Optional boxes.
|
|
111
|
+
var clusterGroupName = function (members) { var _a; return (_a = form.visibleGroups.find(function (g) { return g.rows.some(function (r) { return r.name === members[0]; }); })) === null || _a === void 0 ? void 0 : _a.name; };
|
|
112
|
+
var attnGroups = form.visibleGroups
|
|
113
|
+
.map(function (g) { return ({
|
|
114
|
+
g: g,
|
|
115
|
+
rows: g.rows.filter(function (r) { return (r.status === 'invalid' || r.status === 'todo') && !unmetMembers.has(r.name); }),
|
|
116
|
+
clusters: unmetGroups.filter(function (rg) { return clusterGroupName(rg.members) === g.name; }),
|
|
117
|
+
}); })
|
|
118
|
+
.filter(function (x) { return x.rows.length || x.clusters.length; });
|
|
119
|
+
return ((0, jsx_runtime_1.jsxs)(Wrap, { "$hover": c.hover, "$faint": c.faint, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 10 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'baseline', gap: 12, flexWrap: 'wrap' }, children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'big', effect: { weight: 'bold' }, children: [s.pct, "% complete"] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, fontSize: 12 }, children: [s.set, "/", s.total, " set"] }), s.attention ?
|
|
120
|
+
(0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
|
|
121
|
+
background: 'none',
|
|
122
|
+
border: 'none',
|
|
123
|
+
cursor: 'pointer',
|
|
124
|
+
color: c.warning,
|
|
125
|
+
fontSize: 12,
|
|
126
|
+
textDecoration: 'underline',
|
|
127
|
+
textUnderlineOffset: 3,
|
|
128
|
+
}, children: form.filter === 'attention' ? '← show all' : "".concat(s.attention, " need attention \u2192") })
|
|
129
|
+
: null] }), (0, jsx_runtime_1.jsxs)("div", { style: { height: 4, borderRadius: 2, background: c.line, overflow: 'hidden', display: 'flex' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.set / s.total) * 100, "%"), background: c.success } }), (0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.attention / s.total) * 100, "%"), background: c.warning } })] })] }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), (0, jsx_runtime_1.jsx)(Section, { title: 'Needs attention', intent: c.warning, count: attentionCount, children: attnGroups.map(function (_a) {
|
|
130
|
+
var g = _a.g, rows = _a.rows, clusters = _a.clusters;
|
|
131
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [attnGroups.length > 1 ?
|
|
132
|
+
(0, jsx_runtime_1.jsx)("div", { className: 'vf-grouplabel', style: { color: c.faint }, children: g.label })
|
|
133
|
+
: null, clusters.map(function (cl) { return ((0, jsx_runtime_1.jsx)(RequiredCluster, { rows: allRows.filter(function (r) { return cl.members.includes(r.name); }), form: form, showDesc: showDesc }, cl.key)); }), rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }, g.name));
|
|
134
|
+
}) }), (0, jsx_runtime_1.jsx)(Section, { title: 'Set', intent: c.success, count: setCount, children: (0, jsx_runtime_1.jsx)(GroupedRows, { groups: form.visibleGroups, status: 'set', skip: skip, form: form, showDesc: showDesc }) }), (0, jsx_runtime_1.jsx)(Section, { title: 'Optional \u2014 not set', intent: c.muted, count: optionalCount, defaultOpen: false, children: (0, jsx_runtime_1.jsx)(GroupedRows, { groups: form.visibleGroups, status: 'unset', skip: skip, form: form, showDesc: showDesc }) })] }));
|
|
135
|
+
};
|
|
136
|
+
exports.VariantFocus = VariantFocus;
|
|
137
|
+
var templateObject_1;
|
|
138
|
+
//# sourceMappingURL=VariantFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantFocus.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantFocus.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
|
|
2
|
+
export declare const VariantMinimal: ({ options, values, }: {
|
|
3
|
+
options: IQorusFormSchema;
|
|
4
|
+
values: Record<string, IQorusFormField>;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=VariantMinimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantMinimal.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantMinimal.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA+DjF,eAAO,MAAM,cAAc,yBAGxB;IACD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC,4CA2FA,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.VariantMinimal = void 0;
|
|
11
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
12
|
+
/**
|
|
13
|
+
* VARIANT 4 — "Minimal" (Notion / Linear inspired)
|
|
14
|
+
*
|
|
15
|
+
* Direction: the lightest possible treatment. No surfaces, no boxes, no group
|
|
16
|
+
* panels — just a quiet `label · value` list with a hairline status tick on the
|
|
17
|
+
* left edge. TAP a row to reveal its description and edit it inline — NO hover
|
|
18
|
+
* dependency, so it behaves identically on phone. Densest of the four.
|
|
19
|
+
*/
|
|
20
|
+
var reqore_1 = require("@qoretechnologies/reqore");
|
|
21
|
+
var react_1 = __importDefault(require("react"));
|
|
22
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
23
|
+
var variantParts_1 = require("./variantParts");
|
|
24
|
+
var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 4px;\n font-size: 13px;\n\n .vm-group {\n font-size: 11px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 16px 0 6px 14px;\n }\n .vm-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr);\n gap: 14px;\n align-items: baseline;\n padding: 7px 12px 7px 14px;\n border-left: 2px solid transparent;\n cursor: pointer;\n border-radius: 0 6px 6px 0;\n }\n .vm-row[aria-expanded='true'] {\n background: ", ";\n }\n @media (hover: hover) {\n .vm-row:hover {\n background: ", ";\n }\n }\n .vm-label {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vm-detail {\n grid-column: 1 / -1;\n color: ", ";\n padding: 4px 0 2px;\n font-size: 12px;\n line-height: 1.5;\n }\n @media (max-width: 620px) {\n .vm-row {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 4px;\n font-size: 13px;\n\n .vm-group {\n font-size: 11px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 16px 0 6px 14px;\n }\n .vm-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr);\n gap: 14px;\n align-items: baseline;\n padding: 7px 12px 7px 14px;\n border-left: 2px solid transparent;\n cursor: pointer;\n border-radius: 0 6px 6px 0;\n }\n .vm-row[aria-expanded='true'] {\n background: ", ";\n }\n @media (hover: hover) {\n .vm-row:hover {\n background: ", ";\n }\n }\n .vm-label {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vm-detail {\n grid-column: 1 / -1;\n color: ", ";\n padding: 4px 0 2px;\n font-size: 12px;\n line-height: 1.5;\n }\n @media (max-width: 620px) {\n .vm-row {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n }\n"])), function (_a) {
|
|
25
|
+
var $hover = _a.$hover;
|
|
26
|
+
return $hover;
|
|
27
|
+
}, function (_a) {
|
|
28
|
+
var $hover = _a.$hover;
|
|
29
|
+
return $hover;
|
|
30
|
+
}, function (_a) {
|
|
31
|
+
var $faint = _a.$faint;
|
|
32
|
+
return $faint;
|
|
33
|
+
});
|
|
34
|
+
var VariantMinimal = function (_a) {
|
|
35
|
+
var options = _a.options, values = _a.values;
|
|
36
|
+
var c = (0, variantParts_1.useVariantColors)();
|
|
37
|
+
var form = (0, variantParts_1.useVariantForm)(options, values);
|
|
38
|
+
var s = form.summary;
|
|
39
|
+
return ((0, jsx_runtime_1.jsxs)(Wrap, { "$hover": c.hover, "$line": c.line, "$faint": c.faint, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
40
|
+
display: 'flex',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
gap: 10,
|
|
43
|
+
padding: '0 12px 10px',
|
|
44
|
+
borderBottom: "1px solid ".concat(c.line),
|
|
45
|
+
}, children: [(0, jsx_runtime_1.jsx)("span", { style: { width: 8, height: 8, borderRadius: '50%', background: s.attention ? c.warning : c.success } }), (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { effect: { weight: 'bold' }, children: [s.pct, "%"] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, fontSize: 12 }, children: [s.set, "/", s.total, " set"] }), s.attention ?
|
|
46
|
+
(0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
|
|
47
|
+
background: 'none',
|
|
48
|
+
border: 'none',
|
|
49
|
+
cursor: 'pointer',
|
|
50
|
+
color: c.warning,
|
|
51
|
+
fontSize: 12,
|
|
52
|
+
textDecoration: 'underline',
|
|
53
|
+
textUnderlineOffset: 3,
|
|
54
|
+
}, children: form.filter === 'attention' ? '← all' : "".concat(s.attention, " to resolve \u2192") })
|
|
55
|
+
: null] }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), form.visibleGroups.map(function (g) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: 'vm-group', style: { color: c.faint }, children: g.label }), g.rows.map(function (r) {
|
|
56
|
+
var editing = form.editing === r.name;
|
|
57
|
+
var hasDetail = !!(r.shortDesc || r.longDesc);
|
|
58
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: 'vm-row', role: 'button', tabIndex: 0, "aria-expanded": editing, style: { borderLeftColor: r.status === 'set' || r.status === 'unset' ? 'transparent' : (0, variantParts_1.STATUS_COLOR)(r.status, c) }, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vm-label', style: { color: c.text, fontWeight: 500 }, children: [r.label, r.required ?
|
|
59
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '8px', style: { color: c.danger } })
|
|
60
|
+
: null] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, minWidth: 0, display: 'inline-flex', alignItems: 'baseline', gap: 8 }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.status === 'invalid' || r.status === 'todo' ?
|
|
61
|
+
(0, jsx_runtime_1.jsxs)("span", { style: { color: (0, variantParts_1.STATUS_COLOR)(r.status, c), fontSize: 12 }, children: ["\u00B7 ", r.reason] })
|
|
62
|
+
: null] }), editing ?
|
|
63
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [hasDetail ?
|
|
64
|
+
(0, jsx_runtime_1.jsxs)("div", { className: 'vm-detail', children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { children: r.shortDesc }) : null, r.longDesc ?
|
|
65
|
+
(0, jsx_runtime_1.jsx)("div", { style: { marginTop: r.shortDesc ? 4 : 0 }, children: r.longDesc.replace(/[#`*]/g, '') })
|
|
66
|
+
: null] })
|
|
67
|
+
: null, (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit })] })
|
|
68
|
+
: null] }, r.name));
|
|
69
|
+
})] }, g.name)); })] }));
|
|
70
|
+
};
|
|
71
|
+
exports.VariantMinimal = VariantMinimal;
|
|
72
|
+
var templateObject_1;
|
|
73
|
+
//# sourceMappingURL=VariantMinimal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariantMinimal.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantMinimal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A richer, realistic demo schema for the Focus-Pro variant — exercises the
|
|
3
|
+
* features the basic fixture lacks: NAMED groups, a one-of REQUIRED GROUP,
|
|
4
|
+
* a complex nested hash (Show-more preview), allowed-values, files/lists, plus
|
|
5
|
+
* a mix of set / invalid / required-unset / optional states. Modelled loosely
|
|
6
|
+
* on a Qorus datasource connection config.
|
|
7
|
+
*/
|
|
8
|
+
import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
|
|
9
|
+
export declare const getFocusDemoOptions: () => IQorusFormSchema;
|
|
10
|
+
export declare const focusDemoValue: Record<string, IQorusFormField>;
|
|
11
|
+
export declare const focusDemoInvalid: Record<string, string>;
|
|
12
|
+
export declare const focusDemoGroupLabels: Record<string, string>;
|
|
13
|
+
//# sourceMappingURL=focusDemo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focusDemo.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/focusDemo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,eAAO,MAAM,mBAAmB,QAAO,gBAwGJ,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAe1D,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMvD,CAAC"}
|