nexus-shared 3.2.0 → 4.1.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/CHANGELOG.md +2359 -0
- package/README.md +1911 -1123
- package/dist/Client.Index.d.ts +27 -0
- package/dist/Client.Index.js +27 -0
- package/dist/Components/Chats/ChatComposer.d.ts +7 -1
- package/dist/Components/Chats/ChatComposer.js +9 -6
- package/dist/Components/Chats/ChatParts.d.ts +15 -2
- package/dist/Components/Chats/ChatParts.js +15 -4
- package/dist/Components/Chats/ChatPopup.d.ts +46 -0
- package/dist/Components/Chats/ChatPopup.js +34 -0
- package/dist/Components/Chats/ChatThread.d.ts +9 -1
- package/dist/Components/Chats/ChatThread.js +54 -6
- package/dist/Components/Dashboards/DashboardBoard.d.ts +62 -0
- package/dist/Components/Dashboards/DashboardBoard.js +594 -0
- package/dist/Components/Dashboards/DashboardWidgets.d.ts +155 -0
- package/dist/Components/Dashboards/DashboardWidgets.js +159 -0
- package/dist/Components/Dashboards/WidgetFrame.d.ts +51 -0
- package/dist/Components/Dashboards/WidgetFrame.js +45 -0
- package/dist/Components/Documents/Button.d.ts +6 -1
- package/dist/Components/Documents/Button.js +2 -2
- package/dist/Components/Documents/DocumentFrame.d.ts +50 -0
- package/dist/Components/Documents/DocumentFrame.js +83 -0
- package/dist/Components/Documents/Menu.d.ts +4 -0
- package/dist/Components/Documents/Menu.js +40 -24
- package/dist/Components/Documents/PrintDocument.d.ts +95 -0
- package/dist/Components/Documents/PrintDocument.js +62 -0
- package/dist/Components/Documents/TabButtons.d.ts +6 -0
- package/dist/Components/Documents/TabButtons.js +5 -4
- package/dist/Components/Documents/Tabs.d.ts +59 -0
- package/dist/Components/Documents/Tabs.js +70 -0
- package/dist/Components/Domains/DomainCard.d.ts +98 -0
- package/dist/Components/Domains/DomainCard.js +182 -0
- package/dist/Components/Forms/ApiForm.js +24 -3
- package/dist/Components/Forms/Crud.d.ts +2 -2
- package/dist/Components/Forms/Crud.js +628 -247
- package/dist/Components/Forms/CrudActions.d.ts +137 -0
- package/dist/Components/Forms/CrudActions.js +214 -0
- package/dist/Components/Forms/CrudHistory.d.ts +6 -1
- package/dist/Components/Forms/CrudHistory.js +14 -6
- package/dist/Components/Forms/CrudNarrowPicker.d.ts +31 -0
- package/dist/Components/Forms/CrudNarrowPicker.js +180 -0
- package/dist/Components/Forms/CrudParts.d.ts +37 -2
- package/dist/Components/Forms/CrudParts.js +123 -7
- package/dist/Components/Forms/CrudRowForms.d.ts +26 -0
- package/dist/Components/Forms/CrudRowForms.js +174 -0
- package/dist/Components/Forms/CrudScopes.d.ts +28 -0
- package/dist/Components/Forms/CrudScopes.js +76 -0
- package/dist/Components/Forms/CrudTree.d.ts +90 -0
- package/dist/Components/Forms/CrudTree.js +363 -0
- package/dist/Components/Forms/CrudWorkspace.d.ts +73 -0
- package/dist/Components/Forms/CrudWorkspace.js +177 -0
- package/dist/Components/Forms/ExcelImport.js +3 -3
- package/dist/Components/Forms/Form.d.ts +6 -5
- package/dist/Components/Forms/Form.js +134 -21
- package/dist/Components/Forms/FormLeaveGuard.d.ts +44 -0
- package/dist/Components/Forms/FormLeaveGuard.js +65 -0
- package/dist/Components/Forms/FormQuestion.d.ts +6 -0
- package/dist/Components/Forms/FormQuestion.js +28 -0
- package/dist/Components/Forms/RecordFlows.d.ts +50 -0
- package/dist/Components/Forms/RecordFlows.js +282 -0
- package/dist/Components/Forms/SubmitForm.d.ts +37 -2
- package/dist/Components/Forms/SubmitForm.js +182 -10
- package/dist/Components/Inputs/CheckBox.js +1 -1
- package/dist/Components/Inputs/ChoiceField.d.ts +21 -1
- package/dist/Components/Inputs/ChoiceField.js +28 -2
- package/dist/Components/Inputs/ComputedInput.d.ts +51 -0
- package/dist/Components/Inputs/ComputedInput.js +179 -0
- package/dist/Components/Inputs/Dropdown.d.ts +13 -0
- package/dist/Components/Inputs/Dropdown.js +8 -6
- package/dist/Components/Inputs/DropdownParts.d.ts +3 -1
- package/dist/Components/Inputs/DropdownParts.js +16 -4
- package/dist/Components/Inputs/Field.d.ts +7 -1
- package/dist/Components/Inputs/Field.js +2 -2
- package/dist/Components/Inputs/GroupForm.d.ts +6 -6
- package/dist/Components/Inputs/GroupForm.js +12 -12
- package/dist/Components/Inputs/InputRenderer.d.ts +13 -6
- package/dist/Components/Inputs/InputRenderer.js +37 -32
- package/dist/Components/Inputs/MarkdownEditor.d.ts +6 -0
- package/dist/Components/Inputs/MarkdownEditor.js +32 -6
- package/dist/Components/Inputs/PictureInput.d.ts +41 -0
- package/dist/Components/Inputs/PictureInput.js +75 -0
- package/dist/Components/Inputs/RadioGroup.d.ts +16 -3
- package/dist/Components/Inputs/RadioGroup.js +8 -3
- package/dist/Components/Inputs/RowsInput.d.ts +15 -2
- package/dist/Components/Inputs/RowsInput.js +96 -8
- package/dist/Components/Inputs/TabularForm.d.ts +5 -5
- package/dist/Components/Inputs/TabularForm.js +45 -32
- package/dist/Components/Inputs/TextArea.d.ts +6 -0
- package/dist/Components/Inputs/TextArea.js +11 -2
- package/dist/Components/Inputs/TextBoxTypes.d.ts +6 -0
- package/dist/Components/Inputs/TextBoxTypes.js +17 -0
- package/dist/Components/Inputs/TreeView.d.ts +76 -2
- package/dist/Components/Inputs/TreeView.js +227 -16
- package/dist/Components/Layouts/MessageBox.d.ts +15 -2
- package/dist/Components/Layouts/MessageBox.js +56 -7
- package/dist/Components/Layouts/Popup.d.ts +34 -7
- package/dist/Components/Layouts/Popup.js +143 -13
- package/dist/Components/Layouts/PopupDock.d.ts +3 -1
- package/dist/Components/Layouts/PopupDock.js +2 -1
- package/dist/Components/Layouts/PopupHost.js +5 -4
- package/dist/Components/Messages/MailClient.d.ts +50 -0
- package/dist/Components/Messages/MailClient.js +410 -0
- package/dist/Components/Messages/MailColumns.d.ts +21 -0
- package/dist/Components/Messages/MailColumns.js +92 -0
- package/dist/Components/Messages/MailCompose.d.ts +46 -0
- package/dist/Components/Messages/MailCompose.js +154 -0
- package/dist/Components/Messages/MailReader.d.ts +43 -0
- package/dist/Components/Messages/MailReader.js +207 -0
- package/dist/Components/Messages/MailThread.d.ts +71 -0
- package/dist/Components/Messages/MailThread.js +185 -0
- package/dist/Components/Messages/MessageBell.d.ts +41 -0
- package/dist/Components/Messages/MessageBell.js +76 -0
- package/dist/Components/Viewers/DataTable.js +153 -49
- package/dist/Components/Viewers/DataTableColumns.d.ts +2 -2
- package/dist/Components/Viewers/DataTableColumns.js +2 -1
- package/dist/Components/Viewers/DataTableFilters.d.ts +1 -1
- package/dist/Components/Viewers/DataTableFilters.js +17 -2
- package/dist/Components/Viewers/DataTableParts.d.ts +23 -5
- package/dist/Components/Viewers/DataTableParts.js +26 -14
- package/dist/Components/Viewers/OwnerFiles.d.ts +227 -0
- package/dist/Components/Viewers/OwnerFiles.js +700 -0
- package/dist/Components/Viewers/QrCodeImage.d.ts +22 -0
- package/dist/Components/Viewers/QrCodeImage.js +15 -0
- package/dist/Components/Viewers/RecordCards.d.ts +16 -0
- package/dist/Components/Viewers/RecordCards.js +509 -0
- package/dist/Helpers/ApiModules.js +4 -0
- package/dist/Helpers/AuditEntries.d.ts +50 -0
- package/dist/Helpers/AuditEntries.js +96 -0
- package/dist/Helpers/BusyHooks.d.ts +6 -0
- package/dist/Helpers/BusyHooks.js +39 -0
- package/dist/Helpers/ChatBackend.d.ts +8 -1
- package/dist/Helpers/ChatBackend.js +18 -0
- package/dist/Helpers/ChatHelpers.d.ts +2 -0
- package/dist/Helpers/ChatHelpers.js +4 -1
- package/dist/Helpers/CrudBackend.d.ts +20 -2
- package/dist/Helpers/CrudBackend.js +46 -2
- package/dist/Helpers/CrudColumns.d.ts +91 -6
- package/dist/Helpers/CrudColumns.js +148 -7
- package/dist/Helpers/CrudDetailsTabs.d.ts +58 -0
- package/dist/Helpers/CrudDetailsTabs.js +126 -0
- package/dist/Helpers/CrudHelpers.d.ts +116 -2
- package/dist/Helpers/CrudHelpers.js +256 -0
- package/dist/Helpers/CrudNarrowPick.d.ts +83 -0
- package/dist/Helpers/CrudNarrowPick.js +157 -0
- package/dist/Helpers/CrudPickerPlan.d.ts +58 -0
- package/dist/Helpers/CrudPickerPlan.js +46 -0
- package/dist/Helpers/CrudRowForms.d.ts +32 -0
- package/dist/Helpers/CrudRowForms.js +76 -0
- package/dist/Helpers/CrudScopes.d.ts +32 -0
- package/dist/Helpers/CrudScopes.js +79 -0
- package/dist/Helpers/DashboardHelpers.d.ts +115 -0
- package/dist/Helpers/DashboardHelpers.js +305 -0
- package/dist/Helpers/DomainCards.d.ts +140 -0
- package/dist/Helpers/DomainCards.js +370 -0
- package/dist/Helpers/DropdownHelpers.d.ts +3 -1
- package/dist/Helpers/DropdownHelpers.js +6 -2
- package/dist/Helpers/ExcelHelpers.d.ts +1 -1
- package/dist/Helpers/ExcelHelpers.js +12 -11
- package/dist/Helpers/FileAdapter.d.ts +158 -0
- package/dist/Helpers/FileAdapter.js +173 -0
- package/dist/Helpers/FilePrimaries.d.ts +48 -0
- package/dist/Helpers/FilePrimaries.js +138 -0
- package/dist/Helpers/FormConfirm.d.ts +32 -0
- package/dist/Helpers/FormConfirm.js +40 -0
- package/dist/Helpers/FormStore.d.ts +100 -5
- package/dist/Helpers/FormStore.js +368 -25
- package/dist/Helpers/InputConditions.d.ts +56 -0
- package/dist/Helpers/InputConditions.js +192 -0
- package/dist/Helpers/InputMemory.d.ts +106 -0
- package/dist/Helpers/InputMemory.js +395 -0
- package/dist/Helpers/InputNarrowing.d.ts +50 -0
- package/dist/Helpers/InputNarrowing.js +148 -0
- package/dist/Helpers/InputParamsHelpers.d.ts +44 -1
- package/dist/Helpers/InputParamsHelpers.js +157 -74
- package/dist/Helpers/MailClientHelpers.d.ts +96 -0
- package/dist/Helpers/MailClientHelpers.js +211 -0
- package/dist/Helpers/MessageBackend.d.ts +152 -0
- package/dist/Helpers/MessageBackend.js +329 -0
- package/dist/Helpers/MessageHelpers.d.ts +160 -0
- package/dist/Helpers/MessageHelpers.js +573 -0
- package/dist/Helpers/MessageUnread.d.ts +95 -0
- package/dist/Helpers/MessageUnread.js +245 -0
- package/dist/Helpers/NexusDriveAdapter.d.ts +71 -0
- package/dist/Helpers/NexusDriveAdapter.js +236 -0
- package/dist/Helpers/NumberHelpers.d.ts +156 -0
- package/dist/Helpers/NumberHelpers.js +242 -0
- package/dist/Helpers/PagedPicker.d.ts +42 -0
- package/dist/Helpers/PagedPicker.js +85 -0
- package/dist/Helpers/Permissions.js +2 -1
- package/dist/Helpers/QrCode.d.ts +26 -0
- package/dist/Helpers/QrCode.js +463 -0
- package/dist/Helpers/RecordCards.d.ts +205 -0
- package/dist/Helpers/RecordCards.js +378 -0
- package/dist/Helpers/RequestCache.d.ts +14 -2
- package/dist/Helpers/RequestCache.js +22 -3
- package/dist/Helpers/RowsStore.d.ts +61 -2
- package/dist/Helpers/RowsStore.js +203 -16
- package/dist/Helpers/ServerPreview.d.ts +69 -0
- package/dist/Helpers/ServerPreview.js +99 -0
- package/dist/Helpers/TableColumns.js +4 -3
- package/dist/Helpers/TableExport.d.ts +7 -1
- package/dist/Helpers/TableExport.js +9 -3
- package/dist/Helpers/TableFilters.d.ts +1 -1
- package/dist/Helpers/TableFilters.js +24 -23
- package/dist/Helpers/TableHelpers.d.ts +38 -4
- package/dist/Helpers/TableHelpers.js +78 -10
- package/dist/Helpers/TableJoins.d.ts +13 -0
- package/dist/Helpers/TableJoins.js +34 -0
- package/dist/Helpers/TableStore.d.ts +28 -4
- package/dist/Helpers/TableStore.js +73 -11
- package/dist/Helpers/ToolbarFit.d.ts +23 -0
- package/dist/Helpers/ToolbarFit.js +30 -0
- package/dist/Helpers/TreeStore.d.ts +156 -6
- package/dist/Helpers/TreeStore.js +547 -18
- package/dist/Interfaces/ApiInterfaces.d.ts +10 -1
- package/dist/Interfaces/ApiInterfaces.js +10 -1
- package/dist/Interfaces/ChatInterfaces.d.ts +22 -0
- package/dist/Interfaces/CrudInterfaces.d.ts +539 -6
- package/dist/Interfaces/DashboardInterfaces.d.ts +123 -0
- package/dist/Interfaces/DashboardInterfaces.js +1 -0
- package/dist/Interfaces/DomainInterfaces.d.ts +145 -0
- package/dist/Interfaces/DomainInterfaces.js +1 -0
- package/dist/Interfaces/FileInterfaces.d.ts +183 -0
- package/dist/Interfaces/FileInterfaces.js +6 -0
- package/dist/Interfaces/FormInterfaces.d.ts +460 -32
- package/dist/Interfaces/FormInterfaces.js +79 -1
- package/dist/Interfaces/InputInterfaces.d.ts +22 -3
- package/dist/Interfaces/MailInterfaces.d.ts +192 -0
- package/dist/Interfaces/MailInterfaces.js +1 -0
- package/dist/Interfaces/RecordInterfaces.d.ts +367 -0
- package/dist/Interfaces/RecordInterfaces.js +1 -0
- package/dist/Interfaces/TableInterfaces.d.ts +102 -3
- package/dist/Services/ExcelApi.js +5 -0
- package/dist/Services/FileApi.d.ts +13 -0
- package/dist/Services/FileApi.js +29 -0
- package/dist/Services/ImageEditorLoader.d.ts +14 -0
- package/dist/Services/ImageEditorLoader.js +51 -0
- package/dist/Services/JoinSources.d.ts +79 -6
- package/dist/Services/JoinSources.js +132 -21
- package/dist/Services/MessageApi.d.ts +18 -0
- package/dist/Services/MessageApi.js +64 -0
- package/dist/Services/ModuleImport.d.ts +7 -0
- package/dist/Services/ModuleImport.js +22 -0
- package/dist/Shared.Index.d.ts +28 -0
- package/dist/Shared.Index.js +28 -0
- package/package.json +13 -2
- package/src/Styles/Nexus.Avatar.css +6 -5
- package/src/Styles/Nexus.Button.css +39 -4
- package/src/Styles/Nexus.Chat.css +114 -22
- package/src/Styles/Nexus.Choice.css +16 -0
- package/src/Styles/Nexus.Crud.css +486 -21
- package/src/Styles/Nexus.Dashboard.css +763 -0
- package/src/Styles/Nexus.Domain.css +384 -0
- package/src/Styles/Nexus.Dropdown.css +8 -0
- package/src/Styles/Nexus.Editor.css +20 -0
- package/src/Styles/Nexus.Files.css +437 -0
- package/src/Styles/Nexus.Form.css +5 -2
- package/src/Styles/Nexus.Index.css +7 -0
- package/src/Styles/Nexus.Input.css +73 -0
- package/src/Styles/Nexus.Mail.css +1062 -0
- package/src/Styles/Nexus.Menu.css +10 -1
- package/src/Styles/Nexus.Popup.css +135 -1
- package/src/Styles/Nexus.Print.css +288 -0
- package/src/Styles/Nexus.QrCode.css +12 -0
- package/src/Styles/Nexus.Record.css +430 -0
- package/src/Styles/Nexus.Tab.Buttons.css +87 -22
- package/src/Styles/Nexus.Table.css +1458 -1387
- package/src/Styles/Nexus.Theme.Picker.css +1 -0
- package/src/Styles/Nexus.Themes.css +12 -6
- package/src/Styles/Nexus.Tokens.css +8 -3
- package/src/Styles/Nexus.Tree.css +41 -1
package/dist/Shared.Index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Works everywhere: server components, client components, and plain TypeScript.
|
|
2
2
|
// Components
|
|
3
3
|
export * from "./Components/Documents/Button.js";
|
|
4
|
+
export * from "./Components/Documents/PrintDocument.js";
|
|
4
5
|
export * from "./Components/Inputs/Field.js";
|
|
5
6
|
export * from "./Components/Layouts/ThemeScript.js";
|
|
6
7
|
export * from "./Components/Viewers/MarkdownView.js";
|
|
8
|
+
export * from "./Components/Viewers/QrCodeImage.js";
|
|
7
9
|
export * from "./Components/Viewers/RichTextView.js";
|
|
8
10
|
// Helpers
|
|
9
11
|
export * from "./Helpers/ApiClient.js";
|
|
@@ -18,23 +20,43 @@ export * from "./Helpers/ChatStore.js";
|
|
|
18
20
|
export * from "./Helpers/ChatSummaries.js";
|
|
19
21
|
export * from "./Helpers/ClassHelpers.js";
|
|
20
22
|
export * from "./Helpers/CodeHelpers.js";
|
|
23
|
+
export { setAuditActorNames } from "./Helpers/AuditEntries.js";
|
|
21
24
|
export * from "./Helpers/CrudBackend.js";
|
|
22
25
|
export * from "./Helpers/CrudColumns.js";
|
|
26
|
+
export * from "./Helpers/CrudDetailsTabs.js";
|
|
23
27
|
export * from "./Helpers/CrudHelpers.js";
|
|
28
|
+
export * from "./Helpers/DashboardHelpers.js";
|
|
24
29
|
export * from "./Helpers/DateHelpers.js";
|
|
25
30
|
export * from "./Helpers/DateTimeHelpers.js";
|
|
31
|
+
export * from "./Helpers/DomainCards.js";
|
|
26
32
|
export * from "./Helpers/DropdownHelpers.js";
|
|
27
33
|
export * from "./Helpers/ExcelBackend.js";
|
|
28
34
|
export * from "./Helpers/ExcelHelpers.js";
|
|
35
|
+
export * from "./Helpers/FileAdapter.js";
|
|
36
|
+
export * from "./Helpers/FilePrimaries.js";
|
|
37
|
+
export * from "./Helpers/NexusDriveAdapter.js";
|
|
38
|
+
export * from "./Helpers/FormConfirm.js";
|
|
29
39
|
export * from "./Helpers/FormDrafts.js";
|
|
30
40
|
export * from "./Helpers/FormStore.js";
|
|
31
41
|
export * from "./Helpers/InputParamsHelpers.js";
|
|
42
|
+
export * from "./Helpers/InputConditions.js";
|
|
43
|
+
export * from "./Helpers/InputNarrowing.js";
|
|
44
|
+
export * from "./Helpers/CrudNarrowPick.js";
|
|
45
|
+
export * from "./Helpers/CrudScopes.js";
|
|
46
|
+
export * from "./Helpers/CrudRowForms.js";
|
|
32
47
|
export * from "./Helpers/MarkdownEditing.js";
|
|
33
48
|
export * from "./Helpers/MarkdownHelpers.js";
|
|
49
|
+
export * from "./Helpers/MailClientHelpers.js";
|
|
50
|
+
export * from "./Helpers/MessageBackend.js";
|
|
34
51
|
export * from "./Helpers/MessageBuilder.js";
|
|
52
|
+
export * from "./Helpers/MessageHelpers.js";
|
|
53
|
+
export * from "./Helpers/MessageUnread.js";
|
|
35
54
|
export * from "./Helpers/NepaliCalendar.js";
|
|
36
55
|
export * from "./Helpers/NumberHelpers.js";
|
|
56
|
+
export * from "./Helpers/PagedPicker.js";
|
|
37
57
|
export * from "./Helpers/Permissions.js";
|
|
58
|
+
export * from "./Helpers/QrCode.js";
|
|
59
|
+
export * from "./Helpers/RecordCards.js";
|
|
38
60
|
export * from "./Helpers/RequestCache.js";
|
|
39
61
|
export * from "./Helpers/RichTextHelpers.js";
|
|
40
62
|
export * from "./Helpers/RowsStore.js";
|
|
@@ -44,18 +66,24 @@ export * from "./Helpers/TableJoins.js";
|
|
|
44
66
|
export * from "./Helpers/TableStore.js";
|
|
45
67
|
export * from "./Helpers/ThemeHelpers.js";
|
|
46
68
|
export * from "./Helpers/TimeHelpers.js";
|
|
69
|
+
export * from "./Helpers/ToolbarFit.js";
|
|
47
70
|
export * from "./Helpers/TreeStore.js";
|
|
48
71
|
export * from "./Helpers/ValidationHelpers.js";
|
|
49
72
|
// Interfaces
|
|
50
73
|
export * from "./Interfaces/ApiInterfaces.js";
|
|
51
74
|
export * from "./Interfaces/ChatInterfaces.js";
|
|
52
75
|
export * from "./Interfaces/CrudInterfaces.js";
|
|
76
|
+
export * from "./Interfaces/DashboardInterfaces.js";
|
|
53
77
|
export * from "./Interfaces/DateInterfaces.js";
|
|
78
|
+
export * from "./Interfaces/DomainInterfaces.js";
|
|
54
79
|
export * from "./Interfaces/ExcelInterfaces.js";
|
|
80
|
+
export * from "./Interfaces/FileInterfaces.js";
|
|
55
81
|
export * from "./Interfaces/FormInterfaces.js";
|
|
56
82
|
export * from "./Interfaces/InputInterfaces.js";
|
|
83
|
+
export * from "./Interfaces/MailInterfaces.js";
|
|
57
84
|
export * from "./Interfaces/MessageInterfaces.js";
|
|
58
85
|
export * from "./Interfaces/PreferenceInterfaces.js";
|
|
86
|
+
export * from "./Interfaces/RecordInterfaces.js";
|
|
59
87
|
export * from "./Interfaces/TableInterfaces.js";
|
|
60
88
|
export * from "./Interfaces/ThemeInterfaces.js";
|
|
61
89
|
export * from "./Interfaces/TypeInterfaces.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexus-shared",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "The Nexus component library for React and Next.js: params-driven inputs and forms, a data table with a CRUD on top, popups and toasts, an API layer with permissions, Markdown and rich text editors, and 7 themes in light and dark.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -44,27 +44,38 @@
|
|
|
44
44
|
"CHANGELOG.md"
|
|
45
45
|
],
|
|
46
46
|
"scripts": {
|
|
47
|
-
"build": "tsc -p tsconfig.build.json",
|
|
47
|
+
"build": "tsc -p tsconfig.build.json && tsc -p tsconfig.build.module-import.json",
|
|
48
48
|
"typecheck": "tsc -p tsconfig.json",
|
|
49
49
|
"test": "node scripts/test-all.mjs",
|
|
50
50
|
"check:themes": "node scripts/check-themes.mjs",
|
|
51
51
|
"test:api": "node scripts/test-api.mts",
|
|
52
52
|
"test:proxy": "node scripts/test-api-proxy.mts",
|
|
53
53
|
"test:chat": "node scripts/test-chat.mts",
|
|
54
|
+
"test:crud-tabs": "node scripts/test-crud-details-tabs.mts",
|
|
55
|
+
"test:crud-profile": "node scripts/test-crud-profile-fields.mts",
|
|
54
56
|
"test:codes": "node scripts/test-code-helpers.mts",
|
|
57
|
+
"test:dashboard": "node scripts/test-dashboard.mts",
|
|
55
58
|
"test:dates": "node scripts/test-date-helpers.mts",
|
|
56
59
|
"test:datetimes": "node scripts/test-datetime-helpers.mts",
|
|
57
60
|
"test:drag": "node scripts/test-drag-helpers.mts",
|
|
58
61
|
"test:excel": "node scripts/test-excel.mts",
|
|
62
|
+
"test:files": "node scripts/test-files.mts",
|
|
59
63
|
"test:dropdown": "node scripts/test-dropdown-helpers.mts",
|
|
60
64
|
"test:forms": "node scripts/test-form-store.mts",
|
|
65
|
+
"test:form-confirm": "node scripts/test-form-confirm.mts",
|
|
66
|
+
"test:domain-card": "node scripts/test-domain-card.mts",
|
|
67
|
+
"test:mail": "node scripts/test-mail.mts",
|
|
68
|
+
"test:mail-client": "node scripts/test-mail-client.mts",
|
|
69
|
+
"test:message-bell": "node scripts/test-message-bell.mts",
|
|
61
70
|
"test:markdown": "node scripts/test-markdown.mts",
|
|
62
71
|
"test:numbers": "node scripts/test-number-helpers.mts",
|
|
63
72
|
"test:popups": "node scripts/test-popup-rules.mts",
|
|
73
|
+
"test:qr": "node scripts/test-qr-code.mts",
|
|
64
74
|
"test:richtext": "node scripts/test-richtext.mts",
|
|
65
75
|
"test:rows": "node scripts/test-rows-store.mts",
|
|
66
76
|
"test:table": "node scripts/test-table.mts",
|
|
67
77
|
"test:times": "node scripts/test-time-helpers.mts",
|
|
78
|
+
"test:toolbar-fit": "node scripts/test-toolbar-fit.mts",
|
|
68
79
|
"test:tree": "node scripts/test-tree-store.mts",
|
|
69
80
|
"test:types": "tsc -p scripts/type-checks/tsconfig.json"
|
|
70
81
|
},
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* A person's avatar, wherever one is drawn: the chat, a dropdown's avatar column, the admin bar.
|
|
2
|
+
* A person's avatar, wherever one is drawn: the chat, a dropdown's avatar column, the admin bar. Its tones also back an
|
|
3
|
+
* owner's initials in a picture with none (`.nx-picture--initials`, Nexus.Files.css), so a name has one tone everywhere.
|
|
3
4
|
*/
|
|
4
5
|
@layer nexus.components {
|
|
5
6
|
.nx-avatar {
|
|
@@ -29,19 +30,19 @@
|
|
|
29
30
|
--nx-avatar-size: 44px;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
.nx-avatar[data-tone="primary"] {
|
|
33
|
+
:is(.nx-avatar, .nx-picture)[data-tone="primary"] {
|
|
33
34
|
background: var(--nx-primary-soft);
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
.nx-avatar[data-tone="info"] {
|
|
37
|
+
:is(.nx-avatar, .nx-picture)[data-tone="info"] {
|
|
37
38
|
background: var(--nx-info-soft);
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
.nx-avatar[data-tone="success"] {
|
|
41
|
+
:is(.nx-avatar, .nx-picture)[data-tone="success"] {
|
|
41
42
|
background: var(--nx-success-soft);
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
.nx-avatar[data-tone="warning"] {
|
|
45
|
+
:is(.nx-avatar, .nx-picture)[data-tone="warning"] {
|
|
45
46
|
background: var(--nx-warning-soft);
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
vertical-align: 0;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
.nx-btn:hover:not(:disabled) {
|
|
42
|
+
.nx-btn:hover:not(:disabled, [aria-disabled="true"]) {
|
|
43
43
|
background: var(--nx-btn-bg-hover);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
.nx-btn:active:not(:disabled) {
|
|
46
|
+
.nx-btn:active:not(:disabled, [aria-disabled="true"]) {
|
|
47
47
|
transform: translateY(1px);
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -52,12 +52,18 @@
|
|
|
52
52
|
box-shadow: var(--nx-focus-ring);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
.
|
|
55
|
+
/* Unavailable. One marked `aria-disabled` looks the same and stays in the Tab order, so a press can say why; its ring
|
|
56
|
+
is drawn strong enough to read through the dimming. */
|
|
57
|
+
.nx-btn:is(:disabled, [aria-disabled="true"]) {
|
|
56
58
|
cursor: not-allowed;
|
|
57
59
|
opacity: 0.55;
|
|
58
60
|
box-shadow: none;
|
|
59
61
|
}
|
|
60
62
|
|
|
63
|
+
.nx-btn[aria-disabled="true"]:focus-visible {
|
|
64
|
+
box-shadow: 0 0 0 3px var(--nx-primary);
|
|
65
|
+
}
|
|
66
|
+
|
|
61
67
|
.nx-btn[aria-busy="true"] {
|
|
62
68
|
cursor: progress;
|
|
63
69
|
opacity: 0.8;
|
|
@@ -120,7 +126,7 @@
|
|
|
120
126
|
.nx-btn--hover-success,
|
|
121
127
|
.nx-btn--hover-warning,
|
|
122
128
|
.nx-btn--hover-info
|
|
123
|
-
):is(:hover, :focus-visible):not(:disabled) {
|
|
129
|
+
):is(:hover, :focus-visible):not(:disabled, [aria-disabled="true"]) {
|
|
124
130
|
--nx-btn-bg: var(--nx-btn-tone-soft);
|
|
125
131
|
--nx-btn-bg-hover: var(--nx-btn-tone-soft);
|
|
126
132
|
--nx-btn-border: var(--nx-btn-tone);
|
|
@@ -168,6 +174,35 @@
|
|
|
168
174
|
background: var(--nx-danger-solid);
|
|
169
175
|
}
|
|
170
176
|
|
|
177
|
+
/*
|
|
178
|
+
* A count over the corner (`badge`; the chat icon's unread count too): laid over the box, never beside it, so the
|
|
179
|
+
* button keeps its size and a bar or a column of them does not move as the counts arrive.
|
|
180
|
+
*/
|
|
181
|
+
.nx-btn:has(> .nx-btn__badge) {
|
|
182
|
+
position: relative;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.nx-btn__badge,
|
|
186
|
+
.nx-chat-btn__badge {
|
|
187
|
+
position: absolute;
|
|
188
|
+
top: -5px;
|
|
189
|
+
right: -5px;
|
|
190
|
+
display: grid;
|
|
191
|
+
place-items: center;
|
|
192
|
+
min-width: 16px;
|
|
193
|
+
height: 16px;
|
|
194
|
+
padding: 0 4px;
|
|
195
|
+
border: 1px solid var(--nx-surface);
|
|
196
|
+
border-radius: var(--nx-radius-full);
|
|
197
|
+
background: var(--nx-danger-solid);
|
|
198
|
+
color: var(--nx-danger-text);
|
|
199
|
+
font-size: 10px;
|
|
200
|
+
font-weight: 700;
|
|
201
|
+
font-variant-numeric: tabular-nums;
|
|
202
|
+
line-height: 1;
|
|
203
|
+
pointer-events: none;
|
|
204
|
+
}
|
|
205
|
+
|
|
171
206
|
.nx-btn__dot[data-tone="primary"] {
|
|
172
207
|
background: var(--nx-primary-solid);
|
|
173
208
|
}
|
|
@@ -87,26 +87,7 @@
|
|
|
87
87
|
color: var(--nx-primary-text);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
/* The number of unread messages
|
|
91
|
-
.nx-chat-btn__badge {
|
|
92
|
-
position: absolute;
|
|
93
|
-
top: -5px;
|
|
94
|
-
right: -5px;
|
|
95
|
-
display: grid;
|
|
96
|
-
place-items: center;
|
|
97
|
-
min-width: 16px;
|
|
98
|
-
height: 16px;
|
|
99
|
-
padding: 0 4px;
|
|
100
|
-
border: 1px solid var(--nx-surface);
|
|
101
|
-
border-radius: var(--nx-radius-full);
|
|
102
|
-
background: var(--nx-danger-solid);
|
|
103
|
-
color: var(--nx-danger-text);
|
|
104
|
-
font-size: 10px;
|
|
105
|
-
font-weight: 700;
|
|
106
|
-
font-variant-numeric: tabular-nums;
|
|
107
|
-
line-height: 1;
|
|
108
|
-
pointer-events: none;
|
|
109
|
-
}
|
|
90
|
+
/* The number of unread messages over the corner: the badge `Button` draws too (Nexus.Button.css). */
|
|
110
91
|
|
|
111
92
|
/* The panel */
|
|
112
93
|
|
|
@@ -210,8 +191,15 @@
|
|
|
210
191
|
border-top: 1px solid var(--nx-border);
|
|
211
192
|
}
|
|
212
193
|
|
|
213
|
-
/*
|
|
194
|
+
/*
|
|
195
|
+
* The people, in a column beside the thread: a dividing line, not a panel inside a panel.
|
|
196
|
+
*
|
|
197
|
+
* Every scroller of the chat is positioned (`position: relative`; this one `absolute` in a narrow panel, below), so what
|
|
198
|
+
* lies out of the flow inside it - a visually hidden word - scrolls with it instead of being placed against the page
|
|
199
|
+
* and making it taller (card C-mail-client-fix). check-contract.mjs holds the chat's and the mail client's scrollers to it.
|
|
200
|
+
*/
|
|
214
201
|
.nx-chat-panel__aside {
|
|
202
|
+
position: relative;
|
|
215
203
|
display: flex;
|
|
216
204
|
flex: 0 0 220px;
|
|
217
205
|
flex-direction: column;
|
|
@@ -286,6 +274,7 @@
|
|
|
286
274
|
}
|
|
287
275
|
|
|
288
276
|
.nx-chat-thread__list {
|
|
277
|
+
position: relative;
|
|
289
278
|
display: flex;
|
|
290
279
|
flex: 1 1 auto;
|
|
291
280
|
flex-direction: column;
|
|
@@ -301,6 +290,19 @@
|
|
|
301
290
|
box-shadow: inset var(--nx-focus-ring);
|
|
302
291
|
}
|
|
303
292
|
|
|
293
|
+
/* A lead (a mail thread's head) opens the scroll edge to edge, and scrolls with the lines under it. */
|
|
294
|
+
.nx-chat-thread__lead {
|
|
295
|
+
flex-shrink: 0;
|
|
296
|
+
margin: calc(-1 * var(--nx-space-3)) calc(-1 * var(--nx-space-3)) 0;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/* Under a lead the lines are a log of their own, spaced as the list spaces them. */
|
|
300
|
+
.nx-chat-thread__log {
|
|
301
|
+
display: flex;
|
|
302
|
+
flex-direction: column;
|
|
303
|
+
gap: var(--nx-space-2);
|
|
304
|
+
}
|
|
305
|
+
|
|
304
306
|
.nx-chat-thread__day {
|
|
305
307
|
display: flex;
|
|
306
308
|
flex-direction: column;
|
|
@@ -785,6 +787,69 @@
|
|
|
785
787
|
text-align: center;
|
|
786
788
|
}
|
|
787
789
|
|
|
790
|
+
/*
|
|
791
|
+
* A notification: an event line across the thread, not a bubble on a side. The bell and the words line up with the
|
|
792
|
+
* avatars and bubbles beside them; nothing is boxed, so it reads as quieter than what people wrote.
|
|
793
|
+
*/
|
|
794
|
+
.nx-chat-event {
|
|
795
|
+
display: grid;
|
|
796
|
+
grid-template-columns: var(--nx-avatar-size, 28px) minmax(0, 1fr);
|
|
797
|
+
gap: var(--nx-space-2);
|
|
798
|
+
align-items: start;
|
|
799
|
+
align-self: stretch;
|
|
800
|
+
color: var(--nx-text-muted);
|
|
801
|
+
font-size: var(--nx-text-sm);
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
.nx-chat-event__icon {
|
|
805
|
+
justify-self: center;
|
|
806
|
+
width: 15px;
|
|
807
|
+
height: 15px;
|
|
808
|
+
margin-top: 2px;
|
|
809
|
+
color: var(--nx-primary);
|
|
810
|
+
vertical-align: 0;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
.nx-chat-event__text {
|
|
814
|
+
display: flex;
|
|
815
|
+
flex-direction: column;
|
|
816
|
+
gap: 1px;
|
|
817
|
+
min-width: 0;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.nx-chat-event__meta {
|
|
821
|
+
display: flex;
|
|
822
|
+
flex-wrap: wrap;
|
|
823
|
+
gap: 0 var(--nx-space-2);
|
|
824
|
+
align-items: baseline;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
.nx-chat-event__author {
|
|
828
|
+
color: var(--nx-text);
|
|
829
|
+
font-weight: 600;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
.nx-chat-event__meta time {
|
|
833
|
+
font-size: var(--nx-text-xs);
|
|
834
|
+
font-variant-numeric: tabular-nums;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
.nx-chat-event__body {
|
|
838
|
+
overflow-wrap: anywhere;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
.nx-chat-event__body > :first-child {
|
|
842
|
+
margin-top: 0;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
.nx-chat-event__body > :last-child {
|
|
846
|
+
margin-bottom: 0;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
.nx-chat-event__body > * + * {
|
|
850
|
+
margin-top: var(--nx-space-1);
|
|
851
|
+
}
|
|
852
|
+
|
|
788
853
|
/* The people */
|
|
789
854
|
|
|
790
855
|
.nx-chat-people {
|
|
@@ -900,6 +965,10 @@
|
|
|
900
965
|
font-size: var(--nx-text-sm);
|
|
901
966
|
}
|
|
902
967
|
|
|
968
|
+
.nx-chat-failure--flat {
|
|
969
|
+
border-color: transparent;
|
|
970
|
+
}
|
|
971
|
+
|
|
903
972
|
.nx-chat-failure button {
|
|
904
973
|
display: inline-flex;
|
|
905
974
|
gap: 3px;
|
|
@@ -943,6 +1012,25 @@
|
|
|
943
1012
|
text-align: center;
|
|
944
1013
|
}
|
|
945
1014
|
|
|
1015
|
+
/* What the writer should know before sending (`notice`): a quiet line over the writing area, not a box. */
|
|
1016
|
+
.nx-chat-composer__notice {
|
|
1017
|
+
display: flex;
|
|
1018
|
+
gap: 6px;
|
|
1019
|
+
align-items: flex-start;
|
|
1020
|
+
margin: 0;
|
|
1021
|
+
color: var(--nx-text-muted);
|
|
1022
|
+
font-size: var(--nx-text-sm);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
.nx-chat-composer__notice .nx-icon {
|
|
1026
|
+
flex-shrink: 0;
|
|
1027
|
+
width: 15px;
|
|
1028
|
+
height: 15px;
|
|
1029
|
+
margin-top: 2px;
|
|
1030
|
+
color: var(--nx-info);
|
|
1031
|
+
vertical-align: 0;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
946
1034
|
/* The editor is the whole writing area, so the row under it carries only the hint and the buttons. */
|
|
947
1035
|
.nx-chat-composer__row {
|
|
948
1036
|
display: flex;
|
|
@@ -1119,6 +1207,7 @@
|
|
|
1119
1207
|
*/
|
|
1120
1208
|
|
|
1121
1209
|
.nx-chat-list {
|
|
1210
|
+
position: relative;
|
|
1122
1211
|
display: flex;
|
|
1123
1212
|
flex: 1 1 auto;
|
|
1124
1213
|
flex-direction: column;
|
|
@@ -1222,8 +1311,9 @@
|
|
|
1222
1311
|
text-overflow: ellipsis;
|
|
1223
1312
|
}
|
|
1224
1313
|
|
|
1314
|
+
/* Inline, so it keeps its own width in a table cell (an inbox's Unread column) as in the list's row. */
|
|
1225
1315
|
.nx-chat-list__badge {
|
|
1226
|
-
display: grid;
|
|
1316
|
+
display: inline-grid;
|
|
1227
1317
|
flex-shrink: 0;
|
|
1228
1318
|
place-items: center;
|
|
1229
1319
|
min-width: 18px;
|
|
@@ -1248,6 +1338,7 @@
|
|
|
1248
1338
|
/* New chat */
|
|
1249
1339
|
|
|
1250
1340
|
.nx-chat-new {
|
|
1341
|
+
position: relative;
|
|
1251
1342
|
display: flex;
|
|
1252
1343
|
flex: 1 1 auto;
|
|
1253
1344
|
flex-direction: column;
|
|
@@ -1370,6 +1461,7 @@
|
|
|
1370
1461
|
* list under it would fall outside. The highlighted row is the one Enter puts in.
|
|
1371
1462
|
*/
|
|
1372
1463
|
.nx-chat-mentions {
|
|
1464
|
+
position: relative;
|
|
1373
1465
|
display: flex;
|
|
1374
1466
|
flex-direction: column;
|
|
1375
1467
|
gap: 1px;
|
|
@@ -335,6 +335,22 @@
|
|
|
335
335
|
border-color: var(--nx-danger);
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
+
/*
|
|
339
|
+
* Tabs (`RadioGroup design="tabs"`): the options on a `TabButtons` track that wraps (`nx-tabs--wrap`), each chosen
|
|
340
|
+
* option raised; the chosen option's description on a line under the track, the others' in their tooltips. An
|
|
341
|
+
* invalid group edges the track in the danger colour.
|
|
342
|
+
*/
|
|
343
|
+
.nx-choices--tabs[data-invalid] .nx-tabs {
|
|
344
|
+
--nx-tabs-track-border: var(--nx-danger);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.nx-choices__note {
|
|
348
|
+
margin: var(--nx-space-2) 0 0;
|
|
349
|
+
color: var(--nx-text-muted);
|
|
350
|
+
font-size: var(--nx-field-label-font);
|
|
351
|
+
line-height: 1.4;
|
|
352
|
+
}
|
|
353
|
+
|
|
338
354
|
[data-nx-motion="reduce"] .nx-choice__control,
|
|
339
355
|
[data-nx-motion="reduce"] .nx-choice__control::before,
|
|
340
356
|
[data-nx-motion="reduce"] .nx-choices--cards .nx-choice {
|