@vertesia/ui 1.5.0-dev.20260910.052912Z → 1.5.0
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/lib/core/components/Link.js +1 -1
- package/lib/core/components/Link.js.map +1 -1
- package/lib/core/components/Spinner.js +1 -1
- package/lib/core/components/Spinner.js.map +1 -1
- package/lib/core/components/TagsInput.js +7 -7
- package/lib/core/components/TagsInput.js.map +1 -1
- package/lib/core/components/shadcn/badge.js +1 -1
- package/lib/core/components/shadcn/badge.js.map +1 -1
- package/lib/core/components/shadcn/button.d.ts.map +1 -1
- package/lib/core/components/shadcn/button.js +2 -2
- package/lib/core/components/shadcn/button.js.map +1 -1
- package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js +2 -2
- package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
- package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.js +1 -1
- package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -1
- package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.js +1 -1
- package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -1
- package/lib/core/components/shadcn/filters/comboBox/TextCombobox.js +1 -1
- package/lib/core/components/shadcn/filters/comboBox/TextCombobox.js.map +1 -1
- package/lib/core/components/shadcn/filters/filter/dateFilter.js +1 -1
- package/lib/core/components/shadcn/filters/filter/dateFilter.js.map +1 -1
- package/lib/core/components/shadcn/filters/filters.js +1 -1
- package/lib/core/components/shadcn/filters/filters.js.map +1 -1
- package/lib/core/components/shadcn/overflowTabs.js +2 -2
- package/lib/core/components/shadcn/overflowTabs.js.map +1 -1
- package/lib/core/components/shadcn/tabs.js +1 -1
- package/lib/core/components/shadcn/tabs.js.map +1 -1
- package/lib/features/activity-doc/ActivityDoc.js +1 -1
- package/lib/features/activity-doc/ActivityDoc.js.map +1 -1
- package/lib/features/agent/chat/AskUserWidget.d.ts +1 -0
- package/lib/features/agent/chat/AskUserWidget.d.ts.map +1 -1
- package/lib/features/agent/chat/AskUserWidget.js +15 -4
- package/lib/features/agent/chat/AskUserWidget.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +5 -3
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +3 -2
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/features/layout/GenericPageNavHeader.js +1 -1
- package/lib/features/layout/GenericPageNavHeader.js.map +1 -1
- package/lib/features/magic-pdf/AnnotatedImageSlider.js +1 -1
- package/lib/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
- package/lib/features/magic-pdf/GroundedExtractionView.js +3 -3
- package/lib/features/magic-pdf/GroundedExtractionView.js.map +1 -1
- package/lib/features/permissions/UserPermissionsProvider.js +1 -1
- package/lib/features/permissions/UserPermissionsProvider.js.map +1 -1
- package/lib/features/store/objects/DocumentPreviewPanel.js +5 -5
- package/lib/features/store/objects/DocumentPreviewPanel.js.map +1 -1
- package/lib/features/store/objects/components/DocumentInput.js +1 -1
- package/lib/features/store/objects/components/DocumentInput.js.map +1 -1
- package/lib/features/store/objects/upload/DocumentUploadModal.js +1 -1
- package/lib/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/features/user/UserInfo.d.ts +2 -0
- package/lib/features/user/UserInfo.d.ts.map +1 -1
- package/lib/features/user/UserInfo.js +1 -1
- package/lib/features/user/UserInfo.js.map +1 -1
- package/lib/router/RouteComponent.d.ts.map +1 -1
- package/lib/router/RouteComponent.js +15 -12
- package/lib/router/RouteComponent.js.map +1 -1
- package/lib/session/UserSession.d.ts.map +1 -1
- package/lib/session/UserSession.js +4 -0
- package/lib/session/UserSession.js.map +1 -1
- package/lib/shell/SplashScreen.js +1 -1
- package/lib/shell/SplashScreen.js.map +1 -1
- package/lib/vertesia-ui-core.js +3 -3
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +32 -32
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +2 -2
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/lib/widgets/json-view/JSONCode.js +1 -1
- package/lib/widgets/json-view/JSONCode.js.map +1 -1
- package/lib/widgets/upload/DropZone.d.ts.map +1 -1
- package/lib/widgets/upload/DropZone.js +1 -1
- package/lib/widgets/upload/DropZone.js.map +1 -1
- package/package.json +7 -7
- package/src/core/components/Link.tsx +1 -1
- package/src/core/components/Spinner.tsx +1 -1
- package/src/core/components/TagsInput.tsx +7 -7
- package/src/core/components/shadcn/badge.tsx +1 -1
- package/src/core/components/shadcn/button.tsx +2 -3
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +2 -2
- package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +1 -1
- package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +1 -1
- package/src/core/components/shadcn/filters/comboBox/TextCombobox.tsx +1 -1
- package/src/core/components/shadcn/filters/filter/dateFilter.tsx +1 -1
- package/src/core/components/shadcn/filters/filters.tsx +1 -1
- package/src/core/components/shadcn/overflowTabs.tsx +2 -2
- package/src/core/components/shadcn/tabs.tsx +1 -1
- package/src/css/utilities.css +7 -0
- package/src/features/activity-doc/ActivityDoc.tsx +1 -1
- package/src/features/agent/chat/AskUserWidget.test.tsx +24 -2
- package/src/features/agent/chat/AskUserWidget.tsx +19 -4
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +62 -0
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +8 -7
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +4 -3
- package/src/features/layout/GenericPageNavHeader.test.tsx +36 -0
- package/src/features/layout/GenericPageNavHeader.tsx +1 -1
- package/src/features/magic-pdf/AnnotatedImageSlider.tsx +1 -1
- package/src/features/magic-pdf/GroundedExtractionView.tsx +3 -3
- package/src/features/permissions/UserPermissionsProvider.tsx +1 -1
- package/src/features/store/objects/DocumentPreviewPanel.tsx +10 -10
- package/src/features/store/objects/components/DocumentInput.tsx +1 -1
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +1 -1
- package/src/features/user/UserInfo.tsx +1 -1
- package/src/router/RouteComponent.test.tsx +65 -1
- package/src/router/RouteComponent.tsx +18 -15
- package/src/session/UserSession.test.ts +65 -0
- package/src/session/UserSession.ts +4 -0
- package/src/shell/SplashScreen.tsx +1 -1
- package/src/widgets/json-view/JSONCode.test.tsx +2 -2
- package/src/widgets/json-view/JSONCode.tsx +1 -1
- package/src/widgets/upload/DropZone.tsx +2 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONCode.js","sourceRoot":"","sources":["../../../src/widgets/json-view/JSONCode.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAyC;IAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACX,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,OAAO,CACH,cACI,SAAS,EAAE,wGAAwG,SAAS,IAAI,EAAE,EAAE,YAEpI,yBACK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,2BACK,cAAc,CAAC,IAAI,CAAC,EACpB,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAFhC,QAAQ,KAAK,EAAE,CAGnB,CACV,CAAC,GACC,GACL,CACT,CAAC;AACN,CAAC;AAED,kFAAkF;AAClF,6EAA6E;AAC7E,kFAAkF;AAClF,uFAAuF;AACvF,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,gFAAgF,CAAC;AAC5G,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;QACzD,0DAA0D;QAC1D,MAAM,KAAK,GAAG,WAAW,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,KAAK;YACnB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"JSONCode.js","sourceRoot":"","sources":["../../../src/widgets/json-view/JSONCode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/widgets/upload/DropZone.tsx"],"names":[],"mappings":"AA+BA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAEpF;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAmB,EAAE,SAAc,EAAE,EAAE,aAAa,+
|
|
1
|
+
{"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/widgets/upload/DropZone.tsx"],"names":[],"mappings":"AA+BA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAEpF;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAmB,EAAE,SAAc,EAAE,EAAE,aAAa,+BA0M5G"}
|
|
@@ -176,6 +176,6 @@ export function DropZone({ onDrop, message, buttonLabel, allowFolders = true, cl
|
|
|
176
176
|
handleInputFiles(folderInput.files);
|
|
177
177
|
};
|
|
178
178
|
};
|
|
179
|
-
return (_jsxs("div", { className: `flex flex-col items-center justify-center py-12 border-2 rounded-lg transition-colors ${isDragging ? 'border-
|
|
179
|
+
return (_jsxs("div", { className: `flex flex-col items-center justify-center py-12 border-2 rounded-lg transition-colors ${isDragging ? 'border-info bg-info' : 'border-dashed border-border'} ${className}`, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [_jsx(UploadIcon, { className: `h-12 w-12 mb-3 transition-colors ${isDragging ? 'text-info' : 'text-muted/50'}` }), _jsx("p", { className: "text-muted", children: message }), _jsxs("div", { className: "flex gap-2 justify-center mt-2", children: [_jsx(Button, { onClick: selectFile, children: resolvedButtonLabel }), allowFolders && _jsx(Button, { onClick: selectFolder, children: t('upload.selectFolder') })] })] }));
|
|
180
180
|
}
|
|
181
181
|
//# sourceMappingURL=DropZone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/widgets/upload/DropZone.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/widgets/upload/DropZone.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAoBzC,SAAS,WAAW,CAAC,KAAsB;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB;IAC5C,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,CAAC;AAiCD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAiB;IACzG,MAAM,EAAE,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,mBAAmB,GAAG,WAAW,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,6EAA6E;QAC7E,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC,EAAE,CAAC;YAChF,aAAa,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,CAAkB,EAAE,EAAE;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,qFAAqF;YACrF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAW,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAElC,MAAM,YAAY,GAAG,KAAK,EAAE,KAAsB,EAAE,EAAE;gBAClD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,WAAW;oBACX,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,IAAU,EAAE,EAAE;4BACtB,sDAAsD;4BACtD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;gCAC9C,QAAQ,EAAE,IAAI;gCACd,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,uBAAuB;6BAC9D,CAAC,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBAEH,oBAAoB;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;oBAED,8BAA8B;oBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjF,IAAI,UAAU,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC5B,CAAC;gBACL,CAAC;qBAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,oBAAoB;oBACpB,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;wBAC7D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;4BAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBAEH,sBAAsB;oBACtB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;oBAE7C,8BAA8B;oBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,UAAU,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC5B,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC;gBACD,4BAA4B;gBAC5B,MAAM,OAAO,CAAC,GAAG,CACb,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACf,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB;wBAC/B,CAAC,CAAE,IAAI,CAAC,gBAAgB,EAA6B;wBACrD,CAAC,CAAE,IAAmC,CAAC;oBAC3C,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC7B,CAAC,CAAC,CACL,CAAC;gBAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,eAAe,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;yBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;yBACjC,MAAM,CAAC,OAAO,CAAC,CACvB,CAAC;oBAEF,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;oBACzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;oBAE/B,IAAI,OAAO,GAAG,EAAE,CAAC;oBACjB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBAClB,OAAO,GAAG,CAAC,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC1F,CAAC;yBAAM,CAAC;wBACJ,OAAO,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC/D,CAAC;oBAED,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBACxD,2DAA2D;gBAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjE,qDAAqD;YACrD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,QAAyB,EAAE,EAAE;QACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvC,2DAA2D;YAC3D,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAExF,IAAI,cAAc,EAAE,CAAC;gBACjB,yCAAyC;gBACzC,MAAM,YAAY,GAAG,IAAI,GAAG,CACxB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACjF,CAAC;gBAEF,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;gBACtC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAEnC,yCAAyC;gBACzC,MAAM,gBAAgB,GAAG,CAAC,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;gBAErG,MAAM,aAAa,GAAG;oBAClB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,OAAO,EAAE,gBAAgB;iBAC5B,CAAC;gBAEF,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACJ,sBAAsB;gBACtB,MAAM,QAAQ,GAAG;oBACb,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,OAAO,EAAE,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;iBACnE,CAAC;gBACF,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC;QACvB,SAAS,EAAE,KAAK,EAAE,CAAC;QACnB,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE;YACtB,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpD,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;QACxB,WAA+D,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,uDAAuD;QAChJ,WAAW,EAAE,KAAK,EAAE,CAAC;QACrB,WAAW,CAAC,QAAQ,GAAG,GAAG,EAAE;YACxB,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CAEH,eACI,SAAS,EAAE,yFACP,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,6BACzC,IAAI,SAAS,EAAE,EACf,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,UAAU,aAElB,KAAC,UAAU,IAAC,SAAS,EAAE,oCAAoC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,GAAI,EAC3G,YAAG,SAAS,EAAC,YAAY,YAAE,OAAO,GAAK,EAEvC,eAAK,SAAS,EAAC,gCAAgC,aAC3C,KAAC,MAAM,IAAC,OAAO,EAAE,UAAU,YAAG,mBAAmB,GAAU,EAC1D,YAAY,IAAI,KAAC,MAAM,IAAC,OAAO,EAAE,YAAY,YAAG,CAAC,CAAC,qBAAqB,CAAC,GAAU,IACjF,IACJ,CACT,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/ui",
|
|
3
|
-
"version": "1.5.0
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Vertesia UI components and and hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -92,11 +92,11 @@
|
|
|
92
92
|
"vega": "^6.3.1",
|
|
93
93
|
"vega-embed": "^7.1.0",
|
|
94
94
|
"vega-lite": "^6.4.3",
|
|
95
|
-
"@vertesia/
|
|
96
|
-
"@vertesia/common": "1.5.0
|
|
97
|
-
"@vertesia/
|
|
98
|
-
"@vertesia/
|
|
99
|
-
"@vertesia/
|
|
95
|
+
"@vertesia/fusion-ux": "1.5.0",
|
|
96
|
+
"@vertesia/common": "1.5.0",
|
|
97
|
+
"@vertesia/json": "1.5.0",
|
|
98
|
+
"@vertesia/rich-text": "1.5.0",
|
|
99
|
+
"@vertesia/client": "1.5.0"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
102
102
|
"@testing-library/react": "^16.3.2",
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
"url": "https://github.com/vertesia/composableai.git",
|
|
180
180
|
"directory": "packages/ui"
|
|
181
181
|
},
|
|
182
|
-
"gitHead": "
|
|
182
|
+
"gitHead": "3485742020066ab1fd3292487cf3a9577b5e4d91",
|
|
183
183
|
"scripts": {
|
|
184
184
|
"clean:lib": "rimraf ./lib ./tsconfig.tsbuildinfo",
|
|
185
185
|
"clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo",
|
|
@@ -12,7 +12,7 @@ export function Link({ underline = 'always', className, children, ...others }: L
|
|
|
12
12
|
underlineClass = 'hover:underline';
|
|
13
13
|
}
|
|
14
14
|
return (
|
|
15
|
-
<a className={clsx('text-
|
|
15
|
+
<a className={clsx('text-info', className, underlineClass)} {...others}>
|
|
16
16
|
{children}
|
|
17
17
|
</a>
|
|
18
18
|
);
|
|
@@ -27,7 +27,7 @@ export function Spinner({ size, className }: SpinnerProps) {
|
|
|
27
27
|
const sizeClass = getRealSize(size || 'md');
|
|
28
28
|
return (
|
|
29
29
|
<svg
|
|
30
|
-
className={clsx('animate-[spin_0.8s_linear_infinite] text-
|
|
30
|
+
className={clsx('animate-[spin_0.8s_linear_infinite] text-info', sizeClass, className)}
|
|
31
31
|
xmlns="http://www.w3.org/2000/svg"
|
|
32
32
|
fill="none"
|
|
33
33
|
viewBox="0 0 24 24"
|
|
@@ -278,7 +278,7 @@ function TagsInputContent({
|
|
|
278
278
|
<span
|
|
279
279
|
key={item}
|
|
280
280
|
className={clsx(
|
|
281
|
-
'inline-flex items-center justify-between gap-2 px-2 py-1 text-sm bg-
|
|
281
|
+
'inline-flex items-center justify-between gap-2 px-2 py-1 text-sm bg-info text-foreground ring-1 ring-primary/30 rounded-md w-full transition-all',
|
|
282
282
|
pendingDeleteIndex === index &&
|
|
283
283
|
'ring-2 ring-destructive shadow-[0_0_8px_rgba(252,165,165,0.5)]',
|
|
284
284
|
)}
|
|
@@ -288,7 +288,7 @@ function TagsInputContent({
|
|
|
288
288
|
type="button"
|
|
289
289
|
onClick={(e) => handleRemove(item, e)}
|
|
290
290
|
disabled={disabled}
|
|
291
|
-
className="hover:bg-
|
|
291
|
+
className="hover:bg-info rounded-sm transition-colors flex-shrink-0"
|
|
292
292
|
>
|
|
293
293
|
<X className="h-3 w-3" />
|
|
294
294
|
</button>
|
|
@@ -303,7 +303,7 @@ function TagsInputContent({
|
|
|
303
303
|
<span
|
|
304
304
|
key={item}
|
|
305
305
|
className={clsx(
|
|
306
|
-
'inline-flex items-center gap-1 px-2 py-1 text-sm bg-
|
|
306
|
+
'inline-flex items-center gap-1 px-2 py-1 text-sm bg-info text-foreground ring-1 ring-primary/30 rounded-md transition-all',
|
|
307
307
|
pendingDeleteIndex === index &&
|
|
308
308
|
'ring-2 ring-destructive shadow-[0_0_8px_rgba(252,165,165,0.5)]',
|
|
309
309
|
)}
|
|
@@ -313,7 +313,7 @@ function TagsInputContent({
|
|
|
313
313
|
type="button"
|
|
314
314
|
onClick={(e) => handleRemove(item, e)}
|
|
315
315
|
disabled={disabled}
|
|
316
|
-
className="hover:bg-
|
|
316
|
+
className="hover:bg-info rounded-sm transition-colors"
|
|
317
317
|
>
|
|
318
318
|
<X className="h-3 w-3" />
|
|
319
319
|
</button>
|
|
@@ -381,7 +381,7 @@ function TagsInputContent({
|
|
|
381
381
|
className={clsx(
|
|
382
382
|
'px-3 py-2 text-sm cursor-pointer transition-colors',
|
|
383
383
|
index === highlightedIndex
|
|
384
|
-
? 'bg-
|
|
384
|
+
? 'bg-info text-foreground'
|
|
385
385
|
: 'hover:bg-muted/50',
|
|
386
386
|
)}
|
|
387
387
|
>
|
|
@@ -404,9 +404,9 @@ function TagsInputContent({
|
|
|
404
404
|
onClick={() => handleCreate(searchTerm)}
|
|
405
405
|
onMouseEnter={() => setHighlightedIndex(filteredOptions.length)}
|
|
406
406
|
className={clsx(
|
|
407
|
-
'!flex w-full justify-start px-3 py-2 text-sm cursor-pointer transition-colors text-
|
|
407
|
+
'!flex w-full justify-start px-3 py-2 text-sm cursor-pointer transition-colors text-info',
|
|
408
408
|
highlightedIndex === filteredOptions.length
|
|
409
|
-
? 'bg-
|
|
409
|
+
? 'bg-info'
|
|
410
410
|
: 'hover:bg-muted/50',
|
|
411
411
|
)}
|
|
412
412
|
>
|
|
@@ -8,7 +8,7 @@ const badgeVariants = cva('inline-flex items-center rounded-md px-2 py-1 text-xs
|
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
10
10
|
default: 'text-foreground bg-muted',
|
|
11
|
-
secondary: 'bg-secondary text-
|
|
11
|
+
secondary: 'bg-secondary text-info',
|
|
12
12
|
destructive: 'bg-destructive text-destructive',
|
|
13
13
|
attention: 'bg-attention text-attention',
|
|
14
14
|
success: 'bg-success text-success',
|
|
@@ -47,11 +47,10 @@ const buttonVariants = cva(
|
|
|
47
47
|
destructive:
|
|
48
48
|
'bg-destructive text-destructive ring-1 ring-inset ring-destructive/50 shadow-xs hover:bg-destructive/50',
|
|
49
49
|
outline: 'border border-input bg-background shadow-xs hover:bg-muted ring-inset',
|
|
50
|
-
secondary:
|
|
51
|
-
'bg-primary/5 dark:bg-primary/10 text-primary shadow-xs hover:bg-primary/10 dark:hover:bg-primary/20 ring-inset',
|
|
50
|
+
secondary: 'bg-info text-info shadow-xs hover:bg-mixer-info/10 ring-inset',
|
|
52
51
|
ghost: 'hover:bg-muted/50 dark:hover:bg-muted/20 ring-inset',
|
|
53
52
|
link: 'text-foreground underline-offset-4 hover:underline ring-inset',
|
|
54
|
-
primary: 'bg-primary text-
|
|
53
|
+
primary: 'bg-primary text-primary shadow-xs hover:bg-primary/90 ring-inset',
|
|
55
54
|
unstyled: '',
|
|
56
55
|
},
|
|
57
56
|
size: {
|
|
@@ -91,7 +91,7 @@ export const DateCombobox = ({
|
|
|
91
91
|
|
|
92
92
|
return (
|
|
93
93
|
<Popover _open={open} onOpenChange={setOpen}>
|
|
94
|
-
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-
|
|
94
|
+
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-info shrink-0 transition">
|
|
95
95
|
<div className="flex gap-1.5 items-center min-h-[20px]">{getDisplayText()}</div>
|
|
96
96
|
</PopoverTrigger>
|
|
97
97
|
<PopoverContent className="w-auto p-0" align="start" side="bottom" alignOffset={-4} sideOffset={6}>
|
|
@@ -137,7 +137,7 @@ export const DateCombobox = ({
|
|
|
137
137
|
return 'bg-primary text-primary-foreground rounded-e-md font-semibold';
|
|
138
138
|
}
|
|
139
139
|
if (currentDate > startDate && currentDate < endDate) {
|
|
140
|
-
return 'bg-
|
|
140
|
+
return 'bg-info text-info font-medium';
|
|
141
141
|
}
|
|
142
142
|
} else {
|
|
143
143
|
// Only start date selected
|
|
@@ -50,7 +50,7 @@ export const SelectionCombobox = ({
|
|
|
50
50
|
}
|
|
51
51
|
}}
|
|
52
52
|
>
|
|
53
|
-
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-
|
|
53
|
+
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-info shrink-0">
|
|
54
54
|
<div className="flex gap-1.5 items-center">
|
|
55
55
|
{filterValues?.length === 1
|
|
56
56
|
? (() => {
|
|
@@ -30,7 +30,7 @@ export const StringListCombobox = ({
|
|
|
30
30
|
}
|
|
31
31
|
}}
|
|
32
32
|
>
|
|
33
|
-
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-
|
|
33
|
+
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-info shrink-0 transition">
|
|
34
34
|
<div className="flex gap-1.5 items-center">
|
|
35
35
|
{filterValues.length > 0
|
|
36
36
|
? filterValues.length === 1
|
|
@@ -32,7 +32,7 @@ export const TextCombobox = ({
|
|
|
32
32
|
}
|
|
33
33
|
}}
|
|
34
34
|
>
|
|
35
|
-
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-
|
|
35
|
+
<PopoverTrigger className="rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-info shrink-0 transition">
|
|
36
36
|
<div className="flex gap-1.5 items-center">{filterValue || 'Enter text...'}</div>
|
|
37
37
|
</PopoverTrigger>
|
|
38
38
|
<PopoverContent className="w-[300px] p-3">
|
|
@@ -205,7 +205,7 @@ export default function DateFilter({
|
|
|
205
205
|
return 'bg-primary text-primary-foreground rounded-e-md font-semibold';
|
|
206
206
|
}
|
|
207
207
|
if (currentDate > startDate && currentDate < endDate) {
|
|
208
|
-
return 'bg-
|
|
208
|
+
return 'bg-info text-info font-medium';
|
|
209
209
|
}
|
|
210
210
|
} else {
|
|
211
211
|
// Only start date selected
|
|
@@ -130,7 +130,7 @@ export default function Filters({ filters, setFilters, filterGroups }: FiltersPr
|
|
|
130
130
|
onClick={() => {
|
|
131
131
|
setFilters((prev) => prev.filter((f) => f !== filter));
|
|
132
132
|
}}
|
|
133
|
-
className="bg-muted rounded-s-none rounded-e-sm size-8 hover:text-
|
|
133
|
+
className="bg-muted rounded-s-none rounded-e-sm size-8 hover:text-info hover:bg-muted/50 transition shrink-0"
|
|
134
134
|
>
|
|
135
135
|
<X className="size-6" />
|
|
136
136
|
</Button>
|
|
@@ -15,7 +15,7 @@ const VARIANT_CLASSES: Record<OverflowTabsVariant, { base: string; active: strin
|
|
|
15
15
|
tabs: {
|
|
16
16
|
base: 'flex items-center border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer shrink-0',
|
|
17
17
|
inactive: 'border-transparent text-muted hover:border-border hover:text-foreground',
|
|
18
|
-
active: 'border-primary text-
|
|
18
|
+
active: 'border-primary text-info',
|
|
19
19
|
icon: 'ms-1 size-4',
|
|
20
20
|
},
|
|
21
21
|
pills: {
|
|
@@ -307,7 +307,7 @@ export function OverflowTabsBar({ tabs, current, onTabChange, variant = 'tabs',
|
|
|
307
307
|
key={tab.name}
|
|
308
308
|
disabled={tab.disabled}
|
|
309
309
|
onClick={() => onTabChange(tab.name)}
|
|
310
|
-
className={cn(tab.name === current && 'text-
|
|
310
|
+
className={cn(tab.name === current && 'text-info')}
|
|
311
311
|
>
|
|
312
312
|
{tab.label}
|
|
313
313
|
</DropdownMenuItem>
|
|
@@ -344,7 +344,7 @@ const TabsTrigger: React.ForwardRefExoticComponent<
|
|
|
344
344
|
? cn(
|
|
345
345
|
'border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer',
|
|
346
346
|
'border-transparent text-muted hover:border-border hover:text-foreground',
|
|
347
|
-
'data-[state=active]:border-primary data-[state=active]:text-
|
|
347
|
+
'data-[state=active]:border-primary data-[state=active]:text-info',
|
|
348
348
|
'disabled:pointer-events-none disabled:opacity-50',
|
|
349
349
|
)
|
|
350
350
|
: cn(
|
package/src/css/utilities.css
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
.dark {
|
|
5
5
|
--mixer: oklch(0 0 0);
|
|
6
6
|
}
|
|
7
|
+
/* PROTOTYPE: mirror of `bg-*`. Resolves --color-<name>-foreground first so `text-info`
|
|
8
|
+
* yields white on the solid primary surface; tokens without a -foreground (the six status
|
|
9
|
+
* semantics) fall through to the built-in utility and keep their current meaning. */
|
|
10
|
+
@utility text-* {
|
|
11
|
+
color: --value(--color-* -foreground, [*]);
|
|
12
|
+
}
|
|
13
|
+
|
|
7
14
|
@utility text-mixer-* {
|
|
8
15
|
color: color-mix(
|
|
9
16
|
in oklab,
|
|
@@ -6,7 +6,7 @@ import type React from 'react';
|
|
|
6
6
|
import { useMemo, useState } from 'react';
|
|
7
7
|
|
|
8
8
|
function Badge({ children, secondary = false }: { children: React.ReactNode; secondary?: boolean }) {
|
|
9
|
-
const className = secondary ? 'bg-secondary text-
|
|
9
|
+
const className = secondary ? 'bg-secondary text-info' : 'text-foreground bg-muted';
|
|
10
10
|
return <span className={className}>{children}</span>;
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { fireEvent, screen } from '@testing-library/react';
|
|
2
|
+
import { Env } from '@vertesia/ui/env';
|
|
1
3
|
import type { ReactNode } from 'react';
|
|
2
4
|
import { describe, expect, it, vi } from 'vitest';
|
|
3
5
|
import { renderWithProviders } from '../../../__tests__/test-utils.js';
|
|
@@ -18,7 +20,7 @@ function getScrollablePrompt(container: HTMLElement): HTMLElement {
|
|
|
18
20
|
|
|
19
21
|
describe('AskUserWidget', () => {
|
|
20
22
|
it('does not crash when runtime options data is not an array', () => {
|
|
21
|
-
const warn = vi.spyOn(
|
|
23
|
+
const warn = vi.spyOn(Env.logger, 'warn').mockImplementation(() => undefined);
|
|
22
24
|
|
|
23
25
|
expect(() =>
|
|
24
26
|
renderWithProviders(
|
|
@@ -32,7 +34,27 @@ describe('AskUserWidget', () => {
|
|
|
32
34
|
),
|
|
33
35
|
).not.toThrow();
|
|
34
36
|
|
|
35
|
-
expect(warn).toHaveBeenCalledWith('
|
|
37
|
+
expect(warn).toHaveBeenCalledWith('AskUserWidget received invalid options; rendering without options', {
|
|
38
|
+
vertesia: { component: 'AskUserWidget', received_type: 'string' },
|
|
39
|
+
});
|
|
40
|
+
warn.mockRestore();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it.each([false, true])('rejects malformed entries in compact=%s without breaking text submission', (compact) => {
|
|
44
|
+
const onSubmit = vi.fn();
|
|
45
|
+
const warn = vi.spyOn(Env.logger, 'warn').mockImplementation(() => undefined);
|
|
46
|
+
renderWithProviders(
|
|
47
|
+
<AskUserWidget
|
|
48
|
+
question="Choose"
|
|
49
|
+
compact={compact}
|
|
50
|
+
options={[null] as unknown as AskUserOption[]}
|
|
51
|
+
allowFreeResponse
|
|
52
|
+
onSubmit={onSubmit}
|
|
53
|
+
/>,
|
|
54
|
+
);
|
|
55
|
+
fireEvent.change(screen.getByRole('textbox'), { target: { value: 'My answer' } });
|
|
56
|
+
fireEvent.click(screen.getByRole('button', { name: 'Send' }));
|
|
57
|
+
expect(onSubmit).toHaveBeenCalledWith('My answer');
|
|
36
58
|
warn.mockRestore();
|
|
37
59
|
});
|
|
38
60
|
|
|
@@ -13,6 +13,21 @@ export interface AskUserOption {
|
|
|
13
13
|
icon?: React.ReactNode;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
export function isAskUserOptions(value: unknown): value is AskUserOption[] {
|
|
17
|
+
return (
|
|
18
|
+
Array.isArray(value) &&
|
|
19
|
+
value.every((option: unknown) => {
|
|
20
|
+
if (!option || typeof option !== 'object' || Array.isArray(option)) return false;
|
|
21
|
+
const { id, label, description } = option as Partial<AskUserOption>;
|
|
22
|
+
return (
|
|
23
|
+
typeof id === 'string' &&
|
|
24
|
+
typeof label === 'string' &&
|
|
25
|
+
(description == null || typeof description === 'string')
|
|
26
|
+
);
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
16
31
|
/** Props for the AskUserWidget component */
|
|
17
32
|
export interface AskUserWidgetProps {
|
|
18
33
|
/** The question or prompt to display */
|
|
@@ -153,11 +168,12 @@ export function AskUserWidget({
|
|
|
153
168
|
|
|
154
169
|
const styles = VARIANT_STYLES[variant];
|
|
155
170
|
const DefaultIcon = VARIANT_ICONS[variant];
|
|
156
|
-
const
|
|
171
|
+
const validOptions = isAskUserOptions(options);
|
|
172
|
+
const safeOptions = validOptions ? options : [];
|
|
157
173
|
const invalidOptionsReported = React.useRef(false);
|
|
158
174
|
|
|
159
175
|
React.useEffect(() => {
|
|
160
|
-
if (options === undefined ||
|
|
176
|
+
if (options === undefined || validOptions || invalidOptionsReported.current) return;
|
|
161
177
|
|
|
162
178
|
invalidOptionsReported.current = true;
|
|
163
179
|
Env.logger.warn('AskUserWidget received invalid options; rendering without options', {
|
|
@@ -166,8 +182,7 @@ export function AskUserWidget({
|
|
|
166
182
|
received_type: typeof options,
|
|
167
183
|
},
|
|
168
184
|
});
|
|
169
|
-
|
|
170
|
-
}, [options]);
|
|
185
|
+
}, [options, validOptions]);
|
|
171
186
|
|
|
172
187
|
const toggleOption = (optionId: string) => {
|
|
173
188
|
setSelectedOptions((prev) => {
|
|
@@ -1599,6 +1599,68 @@ describe('AllMessagesMixed summary view', () => {
|
|
|
1599
1599
|
expect(screen.getAllByText(/quotes\.md/).length).toBeGreaterThan(0);
|
|
1600
1600
|
});
|
|
1601
1601
|
|
|
1602
|
+
describe.each(['summary', 'stacked', 'activity'] as const)('request input in %s view', (mode) => {
|
|
1603
|
+
function renderPrompt(options: unknown) {
|
|
1604
|
+
const onSendMessage = vi.fn();
|
|
1605
|
+
const prompt = makeMessage({
|
|
1606
|
+
timestamp: 2_000,
|
|
1607
|
+
type: AgentMessageType.REQUEST_INPUT,
|
|
1608
|
+
message: 'Choose a response',
|
|
1609
|
+
details: { request_id: 'robust-ask', ux: { options, variant: 'default', multiSelect: false } },
|
|
1610
|
+
});
|
|
1611
|
+
if (mode === 'stacked') {
|
|
1612
|
+
renderStacked([prompt], false, { onSendMessage });
|
|
1613
|
+
} else if (mode === 'activity') {
|
|
1614
|
+
renderSummary(
|
|
1615
|
+
[
|
|
1616
|
+
makeMessage({
|
|
1617
|
+
timestamp: 1_000,
|
|
1618
|
+
message: 'Waiting for input',
|
|
1619
|
+
details: {
|
|
1620
|
+
event_class: 'activity',
|
|
1621
|
+
tool: 'ask_user',
|
|
1622
|
+
tool_run_id: 'ask-run',
|
|
1623
|
+
tool_status: 'running',
|
|
1624
|
+
activity_group_id: 'ask-group',
|
|
1625
|
+
},
|
|
1626
|
+
}),
|
|
1627
|
+
{ ...prompt, details: { ...prompt.details, activity_group_id: 'ask-group', tool: 'ask_user' } },
|
|
1628
|
+
makeMessage({ timestamp: 3_000, message: 'Finished', type: AgentMessageType.COMPLETE }),
|
|
1629
|
+
],
|
|
1630
|
+
true,
|
|
1631
|
+
new Map(),
|
|
1632
|
+
{ onSendMessage },
|
|
1633
|
+
);
|
|
1634
|
+
fireEvent.click(screen.getByRole('button', { name: /Worked\s*for/ }));
|
|
1635
|
+
} else {
|
|
1636
|
+
renderSummary([prompt], false, new Map(), { onSendMessage });
|
|
1637
|
+
}
|
|
1638
|
+
return onSendMessage;
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
it.each([
|
|
1642
|
+
{ name: 'a string', options: 'null' },
|
|
1643
|
+
{ name: 'null', options: null },
|
|
1644
|
+
{ name: 'a null entry', options: [null] },
|
|
1645
|
+
{ name: 'an object label', options: [{ id: 'a', label: {} }] },
|
|
1646
|
+
{ name: 'mixed valid and invalid entries', options: [{ id: 'a', label: 'A' }, null] },
|
|
1647
|
+
])('allows text submission for $name', ({ options }) => {
|
|
1648
|
+
const onSendMessage = renderPrompt(options);
|
|
1649
|
+
fireEvent.change(screen.getByRole('textbox'), { target: { value: 'Custom response' } });
|
|
1650
|
+
fireEvent.click(screen.getByRole('button', { name: 'Send' }));
|
|
1651
|
+
expect(onSendMessage).toHaveBeenCalledWith('Custom response', {
|
|
1652
|
+
request_input_response: { request_id: 'robust-ask' },
|
|
1653
|
+
});
|
|
1654
|
+
});
|
|
1655
|
+
|
|
1656
|
+
it('preserves valid choices and their response IDs', () => {
|
|
1657
|
+
const onSendMessage = renderPrompt([{ id: 'a', label: 'Choice A' }]);
|
|
1658
|
+
fireEvent.click(screen.getByRole('button', { name: 'Choice A' }));
|
|
1659
|
+
expect(onSendMessage).toHaveBeenCalledWith('a', { request_input_response: { request_id: 'robust-ask' } });
|
|
1660
|
+
expect(screen.queryByRole('textbox')).toBeNull();
|
|
1661
|
+
});
|
|
1662
|
+
});
|
|
1663
|
+
|
|
1602
1664
|
it('renders pending ask options compactly in summary view', () => {
|
|
1603
1665
|
renderSummary([
|
|
1604
1666
|
makeMessage({
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
} from 'lucide-react';
|
|
31
31
|
import React, { Component, type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
32
32
|
import { AnimatedThinkingDots, PulsatingCircle } from '../AnimatedThinkingDots';
|
|
33
|
-
import { AskUserWidget } from '../AskUserWidget';
|
|
33
|
+
import { AskUserWidget, isAskUserOptions } from '../AskUserWidget';
|
|
34
34
|
import { DocumentEditingActionCard, parseMarkdownEditingAction } from '../DocumentEditingActionCard.js';
|
|
35
35
|
import { ThinkingMessages } from '../WaitingMessages';
|
|
36
36
|
import {
|
|
@@ -758,11 +758,12 @@ function SummaryMessage({
|
|
|
758
758
|
const requestInputDetails = message.details as AskUserMessageDetails | undefined;
|
|
759
759
|
if (message.type === AgentMessageType.REQUEST_INPUT && requestInputDetails?.ux) {
|
|
760
760
|
const uxConfig = requestInputDetails.ux;
|
|
761
|
+
const hasSelectableOptions = isAskUserOptions(uxConfig.options) && uxConfig.options.length > 0;
|
|
761
762
|
return (
|
|
762
763
|
<div className="mx-auto w-full max-w-3xl px-1">
|
|
763
764
|
<AskUserWidget
|
|
764
765
|
question={content}
|
|
765
|
-
options={uxConfig.options}
|
|
766
|
+
options={hasSelectableOptions ? uxConfig.options : undefined}
|
|
766
767
|
variant={uxConfig.variant}
|
|
767
768
|
multiSelect={uxConfig.multiSelect}
|
|
768
769
|
onSelect={(optionId) =>
|
|
@@ -776,7 +777,7 @@ function SummaryMessage({
|
|
|
776
777
|
onMultiSelect={(optionIds) =>
|
|
777
778
|
sendRequestInputResponse(onSendMessage, message, optionIds.join(', '))
|
|
778
779
|
}
|
|
779
|
-
allowFreeResponse={!
|
|
780
|
+
allowFreeResponse={!hasSelectableOptions || !!uxConfig.free_response}
|
|
780
781
|
placeholder={uxConfig.free_response?.placeholder}
|
|
781
782
|
submitLabel={uxConfig.free_response?.submit_label}
|
|
782
783
|
onSubmit={(value) =>
|
|
@@ -2300,11 +2301,13 @@ function SummaryActivityRow({
|
|
|
2300
2301
|
<div className="mt-3 space-y-3">
|
|
2301
2302
|
{requestInputMessages.map((message) => {
|
|
2302
2303
|
const uxConfig = message.details.ux;
|
|
2304
|
+
const hasSelectableOptions =
|
|
2305
|
+
isAskUserOptions(uxConfig.options) && uxConfig.options.length > 0;
|
|
2303
2306
|
return (
|
|
2304
2307
|
<AskUserWidget
|
|
2305
2308
|
key={getAgentMessageRenderKey(message, 'work-request-input')}
|
|
2306
2309
|
question={getRequestInputDisplayText(message)}
|
|
2307
|
-
options={uxConfig.options}
|
|
2310
|
+
options={hasSelectableOptions ? uxConfig.options : undefined}
|
|
2308
2311
|
variant={uxConfig.variant}
|
|
2309
2312
|
multiSelect={uxConfig.multiSelect}
|
|
2310
2313
|
onSelect={(optionId) =>
|
|
@@ -2322,9 +2325,7 @@ function SummaryActivityRow({
|
|
|
2322
2325
|
optionIds.join(', '),
|
|
2323
2326
|
)
|
|
2324
2327
|
}
|
|
2325
|
-
allowFreeResponse={
|
|
2326
|
-
!uxConfig.options?.length || !!uxConfig.free_response
|
|
2327
|
-
}
|
|
2328
|
+
allowFreeResponse={!hasSelectableOptions || !!uxConfig.free_response}
|
|
2328
2329
|
placeholder={uxConfig.free_response?.placeholder}
|
|
2329
2330
|
submitLabel={uxConfig.free_response?.submit_label}
|
|
2330
2331
|
onSubmit={(value) =>
|
|
@@ -28,7 +28,7 @@ import { memo, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
28
28
|
import dayjs from '../../../../core/utils/dayjs.js';
|
|
29
29
|
import { useDownloadFile } from '../../../store/objects/components/useDownloadFile.js';
|
|
30
30
|
import { PulsatingCircle } from '../AnimatedThinkingDots';
|
|
31
|
-
import { AskUserWidget } from '../AskUserWidget';
|
|
31
|
+
import { AskUserWidget, isAskUserOptions } from '../AskUserWidget';
|
|
32
32
|
import { DocumentEditingActionCard, parseMarkdownEditingAction } from '../DocumentEditingActionCard.js';
|
|
33
33
|
import { useImageLightbox } from '../ImageLightbox';
|
|
34
34
|
import { getArtifactCacheKey, useArtifactUrlCache } from '../useArtifactUrlCache.js';
|
|
@@ -375,6 +375,7 @@ function MessageItemComponent({
|
|
|
375
375
|
// UX config for REQUEST_INPUT messages (narrowed const so it stays typed inside the JSX closures below)
|
|
376
376
|
const askUserUx =
|
|
377
377
|
message.type === AgentMessageType.REQUEST_INPUT ? (message.details as AskUserMessageDetails)?.ux : undefined;
|
|
378
|
+
const hasSelectableAskUserOptions = isAskUserOptions(askUserUx?.options) && askUserUx.options.length > 0;
|
|
378
379
|
|
|
379
380
|
// PERFORMANCE: Memoize markdown components to prevent MarkdownRenderer remounts
|
|
380
381
|
const markdownComponents = useMemo(
|
|
@@ -616,7 +617,7 @@ function MessageItemComponent({
|
|
|
616
617
|
{askUserUx ? (
|
|
617
618
|
<AskUserWidget
|
|
618
619
|
question={typeof messageContent === 'string' ? messageContent : ''}
|
|
619
|
-
options={askUserUx.options}
|
|
620
|
+
options={hasSelectableAskUserOptions ? askUserUx.options : undefined}
|
|
620
621
|
variant={askUserUx.variant}
|
|
621
622
|
multiSelect={askUserUx.multiSelect}
|
|
622
623
|
onSelect={(optionId) =>
|
|
@@ -630,7 +631,7 @@ function MessageItemComponent({
|
|
|
630
631
|
onMultiSelect={(optionIds) =>
|
|
631
632
|
sendRequestInputResponse(onSendMessage, message, optionIds.join(', '))
|
|
632
633
|
}
|
|
633
|
-
allowFreeResponse={!
|
|
634
|
+
allowFreeResponse={!hasSelectableAskUserOptions || !!askUserUx.free_response}
|
|
634
635
|
placeholder={askUserUx.free_response?.placeholder}
|
|
635
636
|
submitLabel={askUserUx.free_response?.submit_label}
|
|
636
637
|
onSubmit={(value) =>
|