nexus-shared 3.0.0 → 3.2.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 +442 -0
- package/README.md +1123 -1000
- package/dist/Client.Index.d.ts +6 -0
- package/dist/Client.Index.js +6 -0
- package/dist/Components/Chats/ChatParts.d.ts +2 -2
- package/dist/Components/Chats/ChatParts.js +3 -7
- package/dist/Components/Chats/ChatThread.js +3 -3
- package/dist/Components/Documents/Button.d.ts +6 -1
- package/dist/Components/Documents/Button.js +2 -2
- package/dist/Components/Documents/Menu.js +21 -9
- package/dist/Components/Documents/SplitButton.d.ts +3 -1
- package/dist/Components/Documents/SplitButton.js +7 -5
- package/dist/Components/Documents/TabButtons.d.ts +5 -2
- package/dist/Components/Documents/TabButtons.js +2 -2
- package/dist/Components/Forms/ApiForm.d.ts +1 -1
- package/dist/Components/Forms/ApiForm.js +1 -1
- package/dist/Components/Forms/Crud.js +486 -206
- package/dist/Components/Forms/CrudHistory.d.ts +66 -0
- package/dist/Components/Forms/CrudHistory.js +140 -0
- package/dist/Components/Forms/CrudParts.d.ts +5 -1
- package/dist/Components/Forms/CrudParts.js +38 -5
- package/dist/Components/Forms/ExcelImport.d.ts +23 -7
- package/dist/Components/Forms/ExcelImport.js +189 -60
- package/dist/Components/Forms/Form.js +9 -14
- package/dist/Components/Forms/SubmitForm.d.ts +11 -2
- package/dist/Components/Forms/SubmitForm.js +23 -12
- package/dist/Components/Inputs/CodeBox.d.ts +69 -0
- package/dist/Components/Inputs/CodeBox.js +316 -0
- package/dist/Components/Inputs/DatePicker.js +4 -1
- package/dist/Components/Inputs/DateRangePicker.js +4 -1
- package/dist/Components/Inputs/DateTimePicker.js +4 -1
- package/dist/Components/Inputs/Dropdown.js +4 -1
- package/dist/Components/Inputs/DropdownParts.d.ts +1 -1
- package/dist/Components/Inputs/DropdownParts.js +4 -6
- package/dist/Components/Inputs/InputRenderer.js +3 -0
- package/dist/Components/Inputs/NumberBox.js +26 -2
- package/dist/Components/Inputs/RowsInput.js +2 -2
- package/dist/Components/Inputs/Slider.js +4 -1
- package/dist/Components/Inputs/TabularForm.js +42 -10
- package/dist/Components/Inputs/TextArea.js +4 -1
- package/dist/Components/Inputs/TextBox.js +4 -1
- package/dist/Components/Inputs/TimePanel.js +4 -3
- package/dist/Components/Inputs/TimePicker.js +4 -1
- package/dist/Components/Inputs/TreeView.d.ts +55 -5
- package/dist/Components/Inputs/TreeView.js +372 -23
- package/dist/Components/Layouts/Popup.js +1 -4
- package/dist/Components/Layouts/ThemePicker.d.ts +21 -3
- package/dist/Components/Layouts/ThemePicker.js +89 -6
- package/dist/Components/Layouts/ThemeScript.d.ts +4 -2
- package/dist/Components/Layouts/ThemeScript.js +4 -2
- package/dist/Components/Layouts/ThemeSwitcher.d.ts +6 -3
- package/dist/Components/Layouts/ThemeSwitcher.js +9 -8
- package/dist/Components/Viewers/Avatar.d.ts +21 -0
- package/dist/Components/Viewers/Avatar.js +21 -0
- package/dist/Components/Viewers/DataTable.js +252 -62
- package/dist/Components/Viewers/DataTableColumns.d.ts +7 -3
- package/dist/Components/Viewers/DataTableColumns.js +25 -68
- package/dist/Components/Viewers/DataTableFilters.d.ts +21 -0
- package/dist/Components/Viewers/DataTableFilters.js +68 -0
- package/dist/Components/Viewers/DataTableParts.d.ts +28 -10
- package/dist/Components/Viewers/DataTableParts.js +42 -13
- package/dist/Helpers/AnimationHelpers.d.ts +11 -0
- package/dist/Helpers/AnimationHelpers.js +20 -2
- package/dist/Helpers/ApiModules.d.ts +3 -34
- package/dist/Helpers/ApiModules.js +3 -3
- package/dist/Helpers/ApiRoutes.d.ts +68 -26
- package/dist/Helpers/ApiRoutes.js +31 -27
- package/dist/Helpers/ArrayHelpers.d.ts +0 -0
- package/dist/Helpers/ArrayHelpers.js +2 -0
- package/dist/Helpers/CodeHelpers.d.ts +97 -0
- package/dist/Helpers/CodeHelpers.js +332 -0
- package/dist/Helpers/CrudBackend.d.ts +101 -8
- package/dist/Helpers/CrudBackend.js +172 -11
- package/dist/Helpers/CrudColumns.d.ts +51 -0
- package/dist/Helpers/CrudColumns.js +69 -0
- package/dist/Helpers/CrudHelpers.d.ts +50 -5
- package/dist/Helpers/CrudHelpers.js +109 -12
- package/dist/Helpers/ExcelBackend.d.ts +3 -3
- package/dist/Helpers/ExcelBackend.js +8 -2
- package/dist/Helpers/ExcelHelpers.d.ts +36 -8
- package/dist/Helpers/ExcelHelpers.js +55 -13
- package/dist/Helpers/FormStore.d.ts +9 -5
- package/dist/Helpers/FormStore.js +25 -5
- package/dist/Helpers/InputParamsHelpers.js +8 -0
- package/dist/Helpers/MessageBuilder.js +3 -0
- package/dist/Helpers/NexusHelpers.d.ts +0 -0
- package/dist/Helpers/NexusHelpers.js +1 -0
- package/dist/Helpers/NumberHelpers.d.ts +7 -1
- package/dist/Helpers/NumberHelpers.js +41 -3
- package/dist/Helpers/PopoverHelpers.d.ts +17 -5
- package/dist/Helpers/PopoverHelpers.js +52 -17
- package/dist/Helpers/PopoverHooks.d.ts +24 -0
- package/dist/Helpers/PopoverHooks.js +62 -0
- package/dist/Helpers/RequestCache.d.ts +35 -0
- package/dist/Helpers/RequestCache.js +113 -0
- package/dist/Helpers/RowsStore.d.ts +7 -2
- package/dist/Helpers/RowsStore.js +15 -3
- package/dist/Helpers/TableFilters.d.ts +25 -0
- package/dist/Helpers/TableFilters.js +162 -0
- package/dist/Helpers/TableHelpers.d.ts +7 -4
- package/dist/Helpers/TableHelpers.js +15 -6
- package/dist/Helpers/TableJoins.d.ts +70 -0
- package/dist/Helpers/TableJoins.js +250 -0
- package/dist/Helpers/TableStore.d.ts +16 -3
- package/dist/Helpers/TableStore.js +25 -5
- package/dist/Helpers/ThemeHelpers.d.ts +21 -4
- package/dist/Helpers/ThemeHelpers.js +46 -9
- package/dist/Helpers/TreeStore.d.ts +225 -11
- package/dist/Helpers/TreeStore.js +683 -90
- package/dist/Helpers/UserPreferences.d.ts +22 -0
- package/dist/Helpers/UserPreferences.js +116 -0
- package/dist/Interfaces/CrudInterfaces.d.ts +67 -10
- package/dist/Interfaces/ExcelInterfaces.d.ts +12 -0
- package/dist/Interfaces/FormInterfaces.d.ts +37 -6
- package/dist/Interfaces/InputInterfaces.d.ts +24 -0
- package/dist/Interfaces/MessageInterfaces.d.ts +1 -1
- package/dist/Interfaces/PreferenceInterfaces.d.ts +51 -0
- package/dist/Interfaces/PreferenceInterfaces.js +25 -0
- package/dist/Interfaces/TableInterfaces.d.ts +145 -16
- package/dist/Interfaces/ThemeInterfaces.d.ts +25 -0
- package/dist/Interfaces/ThemeInterfaces.js +15 -0
- package/dist/Services/ApiProxy.d.ts +36 -1
- package/dist/Services/ApiProxy.js +182 -52
- package/dist/Services/ApiProxyRules.d.ts +203 -0
- package/dist/Services/ApiProxyRules.js +426 -0
- package/dist/Services/ExcelApi.d.ts +3 -1
- package/dist/Services/ExcelApi.js +1 -1
- package/dist/Services/JoinSources.d.ts +48 -0
- package/dist/Services/JoinSources.js +74 -0
- package/dist/Services/ServerApi.d.ts +13 -2
- package/dist/Services/ServerApi.js +8 -3
- package/dist/Services/ThemeService.d.ts +18 -2
- package/dist/Services/ThemeService.js +80 -16
- package/dist/Shared.Index.d.ts +6 -0
- package/dist/Shared.Index.js +6 -0
- package/package.json +4 -2
- package/src/Styles/Nexus.Avatar.css +79 -0
- package/src/Styles/Nexus.Base.css +51 -4
- package/src/Styles/Nexus.Button.css +27 -0
- package/src/Styles/Nexus.Calendar.css +4 -6
- package/src/Styles/Nexus.Chat.css +5 -51
- package/src/Styles/Nexus.Choice.css +4 -6
- package/src/Styles/Nexus.Crud.css +16 -9
- package/src/Styles/Nexus.Dropdown.css +12 -61
- package/src/Styles/Nexus.Editor.css +4 -6
- package/src/Styles/Nexus.Excel.css +34 -15
- package/src/Styles/Nexus.Form.css +25 -67
- package/src/Styles/Nexus.Index.css +1 -0
- package/src/Styles/Nexus.Input.css +794 -637
- package/src/Styles/Nexus.Markdown.css +0 -28
- package/src/Styles/Nexus.Menu.css +8 -30
- package/src/Styles/Nexus.Popup.css +22 -29
- package/src/Styles/Nexus.RichText.css +2 -32
- package/src/Styles/Nexus.Rows.css +51 -10
- package/src/Styles/Nexus.Slider.css +3 -5
- package/src/Styles/Nexus.Tab.Buttons.css +20 -7
- package/src/Styles/Nexus.Table.css +1387 -1296
- package/src/Styles/Nexus.Theme.Picker.css +342 -232
- package/src/Styles/Nexus.Time.css +9 -12
- package/src/Styles/Nexus.Toast.css +6 -8
- package/src/Styles/Nexus.Tokens.css +17 -0
- package/src/Styles/Nexus.Tree.css +76 -11
|
@@ -54,34 +54,6 @@
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
/* The preview's thin scrollbar, as the text area's (Nexus.Input.css). */
|
|
58
|
-
.nx-md__preview::-webkit-scrollbar {
|
|
59
|
-
width: 8px;
|
|
60
|
-
height: 8px;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.nx-md__preview::-webkit-scrollbar-track,
|
|
64
|
-
.nx-md__preview::-webkit-scrollbar-corner {
|
|
65
|
-
background: transparent;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.nx-md__preview::-webkit-scrollbar-thumb {
|
|
69
|
-
border: 2px solid transparent;
|
|
70
|
-
border-radius: var(--nx-radius-full);
|
|
71
|
-
background: var(--nx-field-scrollbar) padding-box;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.nx-md__preview::-webkit-scrollbar-thumb:hover {
|
|
75
|
-
background-color: var(--nx-field-scrollbar-hover);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@supports not selector(::-webkit-scrollbar) {
|
|
79
|
-
.nx-md__preview {
|
|
80
|
-
scrollbar-width: thin;
|
|
81
|
-
scrollbar-color: var(--nx-field-scrollbar) transparent;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
57
|
/*
|
|
86
58
|
* Markdown content (MarkdownView), in the editor's preview and anywhere else. Sizes are in em, so the text follows
|
|
87
59
|
* the size of the element it sits in.
|
|
@@ -5,49 +5,31 @@
|
|
|
5
5
|
* because focus follows the pointer.
|
|
6
6
|
*/
|
|
7
7
|
.nx-menu {
|
|
8
|
-
--nx-menu-item-height:
|
|
8
|
+
--nx-menu-item-height: var(--nx-row);
|
|
9
9
|
--nx-menu-font: var(--nx-text-md);
|
|
10
10
|
--nx-menu-pad-x: var(--nx-space-2);
|
|
11
|
+
--nx-popover-pad: 4px;
|
|
11
12
|
|
|
12
13
|
position: fixed;
|
|
13
14
|
inset: auto;
|
|
14
15
|
min-width: 180px;
|
|
15
16
|
max-width: min(360px, calc(100% - 16px));
|
|
16
|
-
max-height: calc(100vh - 16px);
|
|
17
|
-
padding: 4px;
|
|
18
17
|
outline: none;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
flex-direction: column;
|
|
24
|
-
animation: nx-menu-in 120ms ease-out;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/* The items scroll, not the panel: a panel that scrolls its own box would cut its arrow off. A block inside the
|
|
28
|
-
panel's column, so a long menu scrolls instead of squeezing its items the way flex children would. */
|
|
20
|
+
/* The items scroll inside the panel (`.nx-popover__scroll`): a block, so a long menu scrolls instead of squeezing
|
|
21
|
+
its items the way flex children would. */
|
|
29
22
|
.nx-menu__list {
|
|
30
23
|
display: block;
|
|
31
|
-
flex: 1 1 auto;
|
|
32
|
-
min-height: 0;
|
|
33
|
-
overflow: hidden auto;
|
|
34
|
-
overscroll-behavior: contain;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@keyframes nx-menu-in {
|
|
38
|
-
from {
|
|
39
|
-
opacity: 0;
|
|
40
|
-
transform: translateY(-4px);
|
|
41
|
-
}
|
|
42
24
|
}
|
|
43
25
|
|
|
44
26
|
.nx-menu--sm {
|
|
45
|
-
--nx-menu-item-height:
|
|
27
|
+
--nx-menu-item-height: calc(var(--nx-row) - 4px);
|
|
46
28
|
--nx-menu-font: var(--nx-text-sm);
|
|
47
29
|
}
|
|
48
30
|
|
|
49
31
|
.nx-menu--lg {
|
|
50
|
-
--nx-menu-item-height:
|
|
32
|
+
--nx-menu-item-height: calc(var(--nx-row) + 6px);
|
|
51
33
|
--nx-menu-font: var(--nx-text-lg);
|
|
52
34
|
--nx-menu-pad-x: 10px;
|
|
53
35
|
}
|
|
@@ -249,11 +231,7 @@
|
|
|
249
231
|
min-width: 240px;
|
|
250
232
|
}
|
|
251
233
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
.nx-split .nx-split__toggle .nx-icon {
|
|
255
|
-
animation: none;
|
|
256
|
-
transition: none;
|
|
257
|
-
}
|
|
234
|
+
[data-nx-motion="reduce"] .nx-split .nx-split__toggle .nx-icon {
|
|
235
|
+
transition: none;
|
|
258
236
|
}
|
|
259
237
|
}
|
|
@@ -23,48 +23,38 @@
|
|
|
23
23
|
translate: var(--nx-popup-x, 0px) var(--nx-popup-y, 0px);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/*
|
|
27
|
+
* Opening and closing are a plain fade, the popup and its backdrop together: it appears where it stays, at the size
|
|
28
|
+
* it keeps, so nothing in it moves while it fades. Closing waits for its fade (`afterAnimation`), and takes no clicks
|
|
29
|
+
* meanwhile, so a double-click on Save does not submit twice; with animations off there is no fade to wait for.
|
|
30
|
+
*/
|
|
26
31
|
.nx-popup[open] {
|
|
27
32
|
display: flex;
|
|
28
33
|
flex-direction: column;
|
|
29
|
-
animation: nx-popup-in
|
|
34
|
+
animation: nx-popup-in 160ms ease-out;
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
.nx-popup::backdrop {
|
|
33
38
|
background: rgb(0 0 0 / 0.5);
|
|
34
|
-
animation: nx-popup-
|
|
39
|
+
animation: nx-popup-in 160ms ease-out;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
|
-
/* A closing popup takes no more clicks, so a double-click on Save does not submit twice. */
|
|
38
42
|
.nx-popup--closing[open] {
|
|
39
|
-
animation: nx-popup-out
|
|
43
|
+
animation: nx-popup-out 120ms ease-in forwards;
|
|
40
44
|
pointer-events: none;
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
.nx-popup--closing::backdrop {
|
|
44
|
-
animation: nx-popup-
|
|
48
|
+
animation: nx-popup-out 120ms ease-in forwards;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
@keyframes nx-popup-in {
|
|
48
52
|
from {
|
|
49
53
|
opacity: 0;
|
|
50
|
-
transform: translateY(10px) scale(0.98);
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
@keyframes nx-popup-out {
|
|
55
|
-
to {
|
|
56
|
-
opacity: 0;
|
|
57
|
-
transform: translateY(6px) scale(0.98);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@keyframes nx-popup-fade-in {
|
|
62
|
-
from {
|
|
63
|
-
opacity: 0;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@keyframes nx-popup-fade-out {
|
|
68
58
|
to {
|
|
69
59
|
opacity: 0;
|
|
70
60
|
}
|
|
@@ -116,7 +106,7 @@
|
|
|
116
106
|
}
|
|
117
107
|
|
|
118
108
|
.nx-popup[data-nx-minimizing]::backdrop {
|
|
119
|
-
animation: nx-popup-
|
|
109
|
+
animation: nx-popup-out 200ms ease-in forwards;
|
|
120
110
|
}
|
|
121
111
|
|
|
122
112
|
/* Header, either design: the title bar moves the popup, so it selects no text and a touch drags instead of scrolling. */
|
|
@@ -394,6 +384,11 @@
|
|
|
394
384
|
border-top: 1px solid var(--nx-border);
|
|
395
385
|
}
|
|
396
386
|
|
|
387
|
+
/* A form's bar fills the foot, so its status line sits beside the buttons instead of on a row of its own. */
|
|
388
|
+
.nx-popup__foot > .nx-form-buttons {
|
|
389
|
+
flex: 1 1 auto;
|
|
390
|
+
}
|
|
391
|
+
|
|
397
392
|
/* Message boxes: a small popup whose icon carries the tone. */
|
|
398
393
|
.nx-popup--message .nx-popup__body {
|
|
399
394
|
padding-top: var(--nx-space-2);
|
|
@@ -718,14 +713,12 @@
|
|
|
718
713
|
}
|
|
719
714
|
}
|
|
720
715
|
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
animation: none;
|
|
729
|
-
}
|
|
716
|
+
[data-nx-motion="reduce"] .nx-popup[open],
|
|
717
|
+
[data-nx-motion="reduce"] .nx-popup--closing[open],
|
|
718
|
+
[data-nx-motion="reduce"] .nx-popup::backdrop,
|
|
719
|
+
[data-nx-motion="reduce"] .nx-popup--closing::backdrop,
|
|
720
|
+
[data-nx-motion="reduce"] .nx-popup[data-nx-minimizing]::backdrop,
|
|
721
|
+
[data-nx-motion="reduce"] .nx-dock__item {
|
|
722
|
+
animation: none;
|
|
730
723
|
}
|
|
731
724
|
}
|
|
@@ -287,34 +287,6 @@
|
|
|
287
287
|
resize: none;
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
-
/* The text's thin scrollbar, as the text area's (Nexus.Input.css). */
|
|
291
|
-
.nx-rte__content::-webkit-scrollbar {
|
|
292
|
-
width: 8px;
|
|
293
|
-
height: 8px;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
.nx-rte__content::-webkit-scrollbar-track,
|
|
297
|
-
.nx-rte__content::-webkit-scrollbar-corner {
|
|
298
|
-
background: transparent;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
.nx-rte__content::-webkit-scrollbar-thumb {
|
|
302
|
-
border: 2px solid transparent;
|
|
303
|
-
border-radius: var(--nx-radius-full);
|
|
304
|
-
background: var(--nx-field-scrollbar) padding-box;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
.nx-rte__content::-webkit-scrollbar-thumb:hover {
|
|
308
|
-
background-color: var(--nx-field-scrollbar-hover);
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
@supports not selector(::-webkit-scrollbar) {
|
|
312
|
-
.nx-rte__content {
|
|
313
|
-
scrollbar-width: thin;
|
|
314
|
-
scrollbar-color: var(--nx-field-scrollbar) transparent;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
290
|
/* Tokens: values a template fills in, edited as one piece. */
|
|
319
291
|
.nx-rte__token {
|
|
320
292
|
padding: 0.05em 0.45em;
|
|
@@ -455,9 +427,7 @@
|
|
|
455
427
|
flex: 1 1 auto;
|
|
456
428
|
}
|
|
457
429
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
transition: none;
|
|
461
|
-
}
|
|
430
|
+
[data-nx-motion="reduce"] .nx-rte-colors__swatch {
|
|
431
|
+
transition: none;
|
|
462
432
|
}
|
|
463
433
|
}
|
|
@@ -95,8 +95,6 @@
|
|
|
95
95
|
outline: none;
|
|
96
96
|
/* A focused cell scrolls clear of the header and the fixed columns. */
|
|
97
97
|
scroll-padding: var(--nx-tabular-row) 0 0 var(--nx-tabular-num, 48px);
|
|
98
|
-
scrollbar-width: thin;
|
|
99
|
-
scrollbar-color: color-mix(in oklab, var(--nx-text-subtle) 75%, transparent) transparent;
|
|
100
98
|
transition: border-color var(--nx-duration);
|
|
101
99
|
}
|
|
102
100
|
|
|
@@ -351,16 +349,61 @@
|
|
|
351
349
|
height: 15px;
|
|
352
350
|
}
|
|
353
351
|
|
|
354
|
-
.nx-tabular__num-button:is(:hover, :focus-visible, [aria-expanded="true"]) {
|
|
352
|
+
.nx-tabular__num-button:not(:disabled):is(:hover, :focus-visible, [aria-expanded="true"]) {
|
|
355
353
|
background: var(--nx-surface-hover);
|
|
356
354
|
color: var(--nx-text);
|
|
357
355
|
}
|
|
358
356
|
|
|
357
|
+
.nx-tabular__num-button[data-tone="danger"]:not(:disabled):is(:hover, :focus-visible) {
|
|
358
|
+
color: var(--nx-danger);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/* A locked row's lock is drawn in the text colour, so the locked rows can be told apart down the column. */
|
|
362
|
+
.nx-tabular__num-button[aria-pressed="true"] {
|
|
363
|
+
color: var(--nx-text);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.nx-tabular__num-button:disabled {
|
|
367
|
+
cursor: default;
|
|
368
|
+
opacity: 0.4;
|
|
369
|
+
}
|
|
370
|
+
|
|
359
371
|
.nx-tabular__num-button:focus-visible {
|
|
360
372
|
outline: 2px solid var(--nx-primary);
|
|
361
373
|
outline-offset: -2px;
|
|
362
374
|
}
|
|
363
375
|
|
|
376
|
+
/* With the actions at the end, the number column is the number alone. */
|
|
377
|
+
.nx-tabular[data-actions-at="end"] .nx-tabular__num {
|
|
378
|
+
grid-template-columns: minmax(0, 1fr);
|
|
379
|
+
padding-right: 10px;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/*
|
|
383
|
+
* The row's actions at its end (`actionsAt="end"`), as a data table has them: fixed at the right edge while the
|
|
384
|
+
* columns scroll, each action its own small button, every one always in its place.
|
|
385
|
+
*/
|
|
386
|
+
.nx-tabular__actions {
|
|
387
|
+
position: sticky;
|
|
388
|
+
right: 0;
|
|
389
|
+
z-index: 1;
|
|
390
|
+
display: flex;
|
|
391
|
+
align-items: center;
|
|
392
|
+
justify-content: flex-end;
|
|
393
|
+
gap: 2px;
|
|
394
|
+
padding-inline: 4px;
|
|
395
|
+
border-left: 1px solid var(--nx-tabular-line);
|
|
396
|
+
background: inherit;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/*
|
|
400
|
+
* The line under the table keeps its height in a tabular form, said or not: it holds the hint or the message of the
|
|
401
|
+
* input with focus, and a line that came and went with the focus made the whole panel jump on every click.
|
|
402
|
+
*/
|
|
403
|
+
.nx-tabular > .nx-rows__footer {
|
|
404
|
+
min-height: calc(var(--nx-text-xs) * 1.35);
|
|
405
|
+
}
|
|
406
|
+
|
|
364
407
|
/* A row with a problem, after a check: a red edge at its start, and a red number. */
|
|
365
408
|
.nx-tabular__row[data-problem] > .nx-tabular__num {
|
|
366
409
|
box-shadow: inset 3px 0 0 var(--nx-danger);
|
|
@@ -585,12 +628,10 @@
|
|
|
585
628
|
text-align: center;
|
|
586
629
|
}
|
|
587
630
|
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
transition: none;
|
|
594
|
-
}
|
|
631
|
+
[data-nx-motion="reduce"] .nx-tabular__viewport,
|
|
632
|
+
[data-nx-motion="reduce"] .nx-tabular__num-button,
|
|
633
|
+
[data-nx-motion="reduce"] .nx-group-form__toggle,
|
|
634
|
+
[data-nx-motion="reduce"] .nx-group-form__chevron {
|
|
635
|
+
transition: none;
|
|
595
636
|
}
|
|
596
637
|
}
|
|
@@ -269,10 +269,8 @@
|
|
|
269
269
|
cursor: default;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
transition: none;
|
|
276
|
-
}
|
|
272
|
+
[data-nx-motion="reduce"] .nx-slider__tooltip,
|
|
273
|
+
[data-nx-motion="reduce"] .nx-slider__input::-webkit-slider-thumb {
|
|
274
|
+
transition: none;
|
|
277
275
|
}
|
|
278
276
|
}
|
|
@@ -212,6 +212,21 @@
|
|
|
212
212
|
grid-template-columns: 1fr;
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
+
/*
|
|
216
|
+
* `auto`: in a container wide enough for them, every option says what it is, as the chosen one does. 900px is a data
|
|
217
|
+
* table's bar with its Add, four lists, Reload, ⋮ and a full search on one line, and room to spare.
|
|
218
|
+
*/
|
|
219
|
+
@container (min-width: 900px) {
|
|
220
|
+
.nx-tabs--labels-auto .nx-tabs__option {
|
|
221
|
+
padding: 0 var(--nx-space-3);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.nx-tabs--labels-auto .nx-tabs__label {
|
|
225
|
+
grid-template-columns: 1fr;
|
|
226
|
+
margin-inline-start: 6px;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
215
230
|
.nx-tabs--labels-selected .nx-tabs__text {
|
|
216
231
|
min-width: 0;
|
|
217
232
|
overflow: hidden;
|
|
@@ -408,12 +423,10 @@
|
|
|
408
423
|
--nx-tabs-list-gap: 12px;
|
|
409
424
|
}
|
|
410
425
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
transition: none;
|
|
417
|
-
}
|
|
426
|
+
[data-nx-motion="reduce"] .nx-tabs__indicator,
|
|
427
|
+
[data-nx-motion="reduce"] .nx-tabs--multiple .nx-tabs__option,
|
|
428
|
+
[data-nx-motion="reduce"] .nx-tabs--labels-selected :is(.nx-tabs__option, .nx-tabs__label),
|
|
429
|
+
[data-nx-motion="reduce"] .nx-tabs--list .nx-tabs__option::before {
|
|
430
|
+
transition: none;
|
|
418
431
|
}
|
|
419
432
|
}
|