nexus-shared 3.1.0 → 4.0.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.
Files changed (234) hide show
  1. package/CHANGELOG.md +2268 -446
  2. package/LICENSE +21 -21
  3. package/README.md +1705 -1084
  4. package/dist/Client.Index.d.ts +17 -0
  5. package/dist/Client.Index.js +17 -0
  6. package/dist/Components/Documents/DocumentFrame.d.ts +50 -0
  7. package/dist/Components/Documents/DocumentFrame.js +83 -0
  8. package/dist/Components/Documents/Menu.d.ts +4 -0
  9. package/dist/Components/Documents/Menu.js +40 -24
  10. package/dist/Components/Documents/PrintDocument.d.ts +95 -0
  11. package/dist/Components/Documents/PrintDocument.js +62 -0
  12. package/dist/Components/Documents/Tabs.d.ts +59 -0
  13. package/dist/Components/Documents/Tabs.js +70 -0
  14. package/dist/Components/Forms/ApiForm.js +19 -2
  15. package/dist/Components/Forms/Crud.d.ts +2 -2
  16. package/dist/Components/Forms/Crud.js +871 -377
  17. package/dist/Components/Forms/CrudActions.d.ts +136 -0
  18. package/dist/Components/Forms/CrudActions.js +184 -0
  19. package/dist/Components/Forms/CrudHistory.d.ts +66 -0
  20. package/dist/Components/Forms/CrudHistory.js +140 -0
  21. package/dist/Components/Forms/CrudNarrowPicker.d.ts +31 -0
  22. package/dist/Components/Forms/CrudNarrowPicker.js +180 -0
  23. package/dist/Components/Forms/CrudParts.d.ts +30 -2
  24. package/dist/Components/Forms/CrudParts.js +56 -5
  25. package/dist/Components/Forms/CrudRowForms.d.ts +26 -0
  26. package/dist/Components/Forms/CrudRowForms.js +114 -0
  27. package/dist/Components/Forms/CrudScopes.d.ts +28 -0
  28. package/dist/Components/Forms/CrudScopes.js +76 -0
  29. package/dist/Components/Forms/CrudTree.d.ts +90 -0
  30. package/dist/Components/Forms/CrudTree.js +363 -0
  31. package/dist/Components/Forms/CrudWorkspace.d.ts +63 -0
  32. package/dist/Components/Forms/CrudWorkspace.js +169 -0
  33. package/dist/Components/Forms/ExcelImport.js +3 -3
  34. package/dist/Components/Forms/Form.d.ts +4 -4
  35. package/dist/Components/Forms/Form.js +125 -16
  36. package/dist/Components/Forms/FormLeaveGuard.d.ts +44 -0
  37. package/dist/Components/Forms/FormLeaveGuard.js +65 -0
  38. package/dist/Components/Forms/RecordFlows.d.ts +50 -0
  39. package/dist/Components/Forms/RecordFlows.js +282 -0
  40. package/dist/Components/Forms/SubmitForm.d.ts +37 -2
  41. package/dist/Components/Forms/SubmitForm.js +195 -10
  42. package/dist/Components/Inputs/CheckBox.js +1 -1
  43. package/dist/Components/Inputs/ChoiceField.d.ts +21 -1
  44. package/dist/Components/Inputs/ChoiceField.js +28 -2
  45. package/dist/Components/Inputs/CodeBox.d.ts +69 -0
  46. package/dist/Components/Inputs/CodeBox.js +316 -0
  47. package/dist/Components/Inputs/DatePicker.js +4 -1
  48. package/dist/Components/Inputs/DateRangePicker.js +4 -1
  49. package/dist/Components/Inputs/DateTimePicker.js +4 -1
  50. package/dist/Components/Inputs/Dropdown.d.ts +13 -0
  51. package/dist/Components/Inputs/Dropdown.js +8 -5
  52. package/dist/Components/Inputs/DropdownParts.d.ts +3 -1
  53. package/dist/Components/Inputs/DropdownParts.js +16 -4
  54. package/dist/Components/Inputs/Field.d.ts +7 -1
  55. package/dist/Components/Inputs/Field.js +2 -2
  56. package/dist/Components/Inputs/GroupForm.d.ts +6 -6
  57. package/dist/Components/Inputs/GroupForm.js +10 -11
  58. package/dist/Components/Inputs/InputRenderer.d.ts +9 -6
  59. package/dist/Components/Inputs/InputRenderer.js +39 -31
  60. package/dist/Components/Inputs/NumberBox.js +4 -2
  61. package/dist/Components/Inputs/PictureInput.d.ts +41 -0
  62. package/dist/Components/Inputs/PictureInput.js +70 -0
  63. package/dist/Components/Inputs/RadioGroup.d.ts +16 -3
  64. package/dist/Components/Inputs/RadioGroup.js +8 -3
  65. package/dist/Components/Inputs/RowsInput.d.ts +1 -1
  66. package/dist/Components/Inputs/RowsInput.js +18 -3
  67. package/dist/Components/Inputs/TabularForm.d.ts +5 -5
  68. package/dist/Components/Inputs/TabularForm.js +29 -29
  69. package/dist/Components/Inputs/TextArea.d.ts +6 -0
  70. package/dist/Components/Inputs/TextArea.js +14 -2
  71. package/dist/Components/Inputs/TextBox.js +4 -1
  72. package/dist/Components/Inputs/TextBoxTypes.d.ts +6 -0
  73. package/dist/Components/Inputs/TextBoxTypes.js +17 -0
  74. package/dist/Components/Inputs/TimePicker.js +4 -1
  75. package/dist/Components/Inputs/TreeView.d.ts +107 -6
  76. package/dist/Components/Inputs/TreeView.js +513 -30
  77. package/dist/Components/Layouts/MessageBox.d.ts +15 -2
  78. package/dist/Components/Layouts/MessageBox.js +56 -7
  79. package/dist/Components/Layouts/Popup.d.ts +13 -6
  80. package/dist/Components/Layouts/Popup.js +37 -9
  81. package/dist/Components/Layouts/PopupDock.d.ts +3 -1
  82. package/dist/Components/Layouts/PopupDock.js +2 -1
  83. package/dist/Components/Layouts/PopupHost.js +5 -4
  84. package/dist/Components/Layouts/ThemePicker.d.ts +3 -2
  85. package/dist/Components/Layouts/ThemePicker.js +16 -4
  86. package/dist/Components/Viewers/DataTable.js +205 -61
  87. package/dist/Components/Viewers/DataTableFilters.d.ts +1 -1
  88. package/dist/Components/Viewers/DataTableFilters.js +17 -2
  89. package/dist/Components/Viewers/DataTableParts.d.ts +46 -12
  90. package/dist/Components/Viewers/DataTableParts.js +62 -21
  91. package/dist/Components/Viewers/OwnerFiles.d.ts +175 -0
  92. package/dist/Components/Viewers/OwnerFiles.js +589 -0
  93. package/dist/Components/Viewers/QrCodeImage.d.ts +22 -0
  94. package/dist/Components/Viewers/QrCodeImage.js +15 -0
  95. package/dist/Components/Viewers/RecordCards.d.ts +16 -0
  96. package/dist/Components/Viewers/RecordCards.js +509 -0
  97. package/dist/Helpers/ApiModules.d.ts +3 -34
  98. package/dist/Helpers/ApiModules.js +3 -3
  99. package/dist/Helpers/ApiRoutes.d.ts +68 -26
  100. package/dist/Helpers/ApiRoutes.js +31 -27
  101. package/dist/Helpers/ArrayHelpers.d.ts +0 -0
  102. package/dist/Helpers/ArrayHelpers.js +2 -0
  103. package/dist/Helpers/BusyHooks.d.ts +6 -0
  104. package/dist/Helpers/BusyHooks.js +39 -0
  105. package/dist/Helpers/CodeHelpers.d.ts +97 -0
  106. package/dist/Helpers/CodeHelpers.js +332 -0
  107. package/dist/Helpers/CrudBackend.d.ts +114 -6
  108. package/dist/Helpers/CrudBackend.js +214 -11
  109. package/dist/Helpers/CrudColumns.d.ts +98 -0
  110. package/dist/Helpers/CrudColumns.js +160 -0
  111. package/dist/Helpers/CrudDetailsTabs.d.ts +58 -0
  112. package/dist/Helpers/CrudDetailsTabs.js +126 -0
  113. package/dist/Helpers/CrudHelpers.d.ts +130 -6
  114. package/dist/Helpers/CrudHelpers.js +304 -12
  115. package/dist/Helpers/CrudNarrowPick.d.ts +83 -0
  116. package/dist/Helpers/CrudNarrowPick.js +157 -0
  117. package/dist/Helpers/CrudRowForms.d.ts +15 -0
  118. package/dist/Helpers/CrudRowForms.js +43 -0
  119. package/dist/Helpers/CrudScopes.d.ts +32 -0
  120. package/dist/Helpers/CrudScopes.js +79 -0
  121. package/dist/Helpers/DropdownHelpers.d.ts +3 -1
  122. package/dist/Helpers/DropdownHelpers.js +6 -2
  123. package/dist/Helpers/ExcelHelpers.d.ts +1 -1
  124. package/dist/Helpers/ExcelHelpers.js +12 -11
  125. package/dist/Helpers/FileAdapter.d.ts +78 -0
  126. package/dist/Helpers/FileAdapter.js +102 -0
  127. package/dist/Helpers/FilePrimaries.d.ts +48 -0
  128. package/dist/Helpers/FilePrimaries.js +138 -0
  129. package/dist/Helpers/FormConfirm.d.ts +32 -0
  130. package/dist/Helpers/FormConfirm.js +40 -0
  131. package/dist/Helpers/FormStore.d.ts +90 -5
  132. package/dist/Helpers/FormStore.js +318 -22
  133. package/dist/Helpers/InputConditions.d.ts +50 -0
  134. package/dist/Helpers/InputConditions.js +168 -0
  135. package/dist/Helpers/InputMemory.d.ts +106 -0
  136. package/dist/Helpers/InputMemory.js +385 -0
  137. package/dist/Helpers/InputNarrowing.d.ts +18 -0
  138. package/dist/Helpers/InputNarrowing.js +67 -0
  139. package/dist/Helpers/InputParamsHelpers.d.ts +44 -1
  140. package/dist/Helpers/InputParamsHelpers.js +162 -71
  141. package/dist/Helpers/MessageBuilder.js +2 -0
  142. package/dist/Helpers/NexusDriveAdapter.d.ts +55 -0
  143. package/dist/Helpers/NexusDriveAdapter.js +207 -0
  144. package/dist/Helpers/NexusHelpers.d.ts +0 -0
  145. package/dist/Helpers/NexusHelpers.js +1 -0
  146. package/dist/Helpers/NumberHelpers.d.ts +95 -0
  147. package/dist/Helpers/NumberHelpers.js +126 -0
  148. package/dist/Helpers/Permissions.js +2 -1
  149. package/dist/Helpers/QrCode.d.ts +26 -0
  150. package/dist/Helpers/QrCode.js +463 -0
  151. package/dist/Helpers/RecordCards.d.ts +205 -0
  152. package/dist/Helpers/RecordCards.js +378 -0
  153. package/dist/Helpers/RequestCache.d.ts +47 -0
  154. package/dist/Helpers/RequestCache.js +132 -0
  155. package/dist/Helpers/RowsStore.d.ts +37 -2
  156. package/dist/Helpers/RowsStore.js +128 -10
  157. package/dist/Helpers/ServerPreview.d.ts +69 -0
  158. package/dist/Helpers/ServerPreview.js +99 -0
  159. package/dist/Helpers/TableColumns.js +4 -3
  160. package/dist/Helpers/TableExport.d.ts +7 -1
  161. package/dist/Helpers/TableExport.js +21 -15
  162. package/dist/Helpers/TableFilters.d.ts +1 -1
  163. package/dist/Helpers/TableFilters.js +24 -23
  164. package/dist/Helpers/TableHelpers.d.ts +24 -3
  165. package/dist/Helpers/TableHelpers.js +58 -12
  166. package/dist/Helpers/TableJoins.d.ts +83 -0
  167. package/dist/Helpers/TableJoins.js +284 -0
  168. package/dist/Helpers/TableStore.d.ts +26 -1
  169. package/dist/Helpers/TableStore.js +73 -7
  170. package/dist/Helpers/TreeStore.d.ts +306 -11
  171. package/dist/Helpers/TreeStore.js +1048 -90
  172. package/dist/Helpers/UserPreferences.d.ts +8 -0
  173. package/dist/Helpers/UserPreferences.js +17 -0
  174. package/dist/Interfaces/CrudInterfaces.d.ts +512 -14
  175. package/dist/Interfaces/FileInterfaces.d.ts +162 -0
  176. package/dist/Interfaces/FileInterfaces.js +4 -0
  177. package/dist/Interfaces/FormInterfaces.d.ts +393 -29
  178. package/dist/Interfaces/FormInterfaces.js +79 -1
  179. package/dist/Interfaces/InputInterfaces.d.ts +39 -3
  180. package/dist/Interfaces/MessageInterfaces.d.ts +1 -1
  181. package/dist/Interfaces/PreferenceInterfaces.d.ts +8 -0
  182. package/dist/Interfaces/PreferenceInterfaces.js +2 -5
  183. package/dist/Interfaces/RecordInterfaces.d.ts +367 -0
  184. package/dist/Interfaces/RecordInterfaces.js +1 -0
  185. package/dist/Interfaces/TableInterfaces.d.ts +160 -5
  186. package/dist/Services/ApiProxy.d.ts +36 -1
  187. package/dist/Services/ApiProxy.js +182 -52
  188. package/dist/Services/ApiProxyRules.d.ts +203 -0
  189. package/dist/Services/ApiProxyRules.js +426 -0
  190. package/dist/Services/ExcelApi.js +5 -0
  191. package/dist/Services/FileApi.d.ts +13 -0
  192. package/dist/Services/FileApi.js +29 -0
  193. package/dist/Services/ImageEditorLoader.d.ts +14 -0
  194. package/dist/Services/ImageEditorLoader.js +51 -0
  195. package/dist/Services/JoinSources.d.ts +80 -0
  196. package/dist/Services/JoinSources.js +150 -0
  197. package/dist/Services/ModuleImport.d.ts +7 -0
  198. package/dist/Services/ModuleImport.js +22 -0
  199. package/dist/Services/ServerApi.d.ts +13 -2
  200. package/dist/Services/ServerApi.js +8 -3
  201. package/dist/Shared.Index.d.ts +20 -0
  202. package/dist/Shared.Index.js +20 -0
  203. package/package.json +92 -85
  204. package/src/Styles/Nexus.Avatar.css +80 -79
  205. package/src/Styles/Nexus.Base.css +117 -117
  206. package/src/Styles/Nexus.Button.css +186 -180
  207. package/src/Styles/Nexus.Calendar.css +273 -273
  208. package/src/Styles/Nexus.Chat.css +1443 -1443
  209. package/src/Styles/Nexus.Choice.css +359 -343
  210. package/src/Styles/Nexus.Crud.css +542 -168
  211. package/src/Styles/Nexus.DateTime.css +81 -81
  212. package/src/Styles/Nexus.Dropdown.css +733 -725
  213. package/src/Styles/Nexus.Editor.css +295 -295
  214. package/src/Styles/Nexus.Excel.css +389 -389
  215. package/src/Styles/Nexus.Files.css +410 -0
  216. package/src/Styles/Nexus.Form.css +282 -279
  217. package/src/Styles/Nexus.Index.css +41 -37
  218. package/src/Styles/Nexus.Input.css +238 -4
  219. package/src/Styles/Nexus.Markdown.css +237 -237
  220. package/src/Styles/Nexus.Menu.css +246 -237
  221. package/src/Styles/Nexus.Popup.css +800 -724
  222. package/src/Styles/Nexus.Print.css +288 -0
  223. package/src/Styles/Nexus.QrCode.css +12 -0
  224. package/src/Styles/Nexus.Record.css +430 -0
  225. package/src/Styles/Nexus.Rows.css +637 -637
  226. package/src/Styles/Nexus.Slider.css +276 -276
  227. package/src/Styles/Nexus.Tab.Buttons.css +497 -432
  228. package/src/Styles/Nexus.Table.css +98 -35
  229. package/src/Styles/Nexus.Theme.Picker.css +59 -3
  230. package/src/Styles/Nexus.Themes.css +200 -194
  231. package/src/Styles/Nexus.Time.css +144 -144
  232. package/src/Styles/Nexus.Toast.css +263 -263
  233. package/src/Styles/Nexus.Tokens.css +94 -89
  234. package/src/Styles/Nexus.Tree.css +530 -431
@@ -1,89 +1,94 @@
1
- /*
2
- * Design tokens. Components use only these variables. Colors come from the active theme (Nexus.Themes.css);
3
- * this file holds everything else, plus the colors derived from a theme's palette.
4
- */
5
- @layer nexus.tokens {
6
- :root {
7
- /* Light, dark, or the system setting when data-nx-mode is not set. */
8
- color-scheme: light dark;
9
-
10
- /* Type */
11
- --nx-font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
12
- --nx-font-mono: "Cascadia Mono", Consolas, "SFMono-Regular", Menlo, monospace;
13
- /* Nepali text (lang="ne"): system fonts with Devanagari glyphs; the page font has none. */
14
- --nx-font-devanagari: "Noto Sans Devanagari", "Nirmala UI", "Kohinoor Devanagari", "Devanagari Sangam MN", Mangal, var(--nx-font);
15
- --nx-text-xs: 0.75rem;
16
- --nx-text-sm: 0.8125rem;
17
- --nx-text-md: 0.875rem;
18
- --nx-text-lg: 1rem;
19
- --nx-text-xl: 1.25rem;
20
- --nx-text-2xl: 1.625rem;
21
- --nx-leading: 1.5;
22
-
23
- /* Shape and spacing */
24
- --nx-radius-sm: 4px;
25
- --nx-radius: 6px;
26
- --nx-radius-lg: 10px;
27
- --nx-radius-full: 999px;
28
- --nx-space-1: 4px;
29
- --nx-space-2: 8px;
30
- --nx-space-3: 12px;
31
- --nx-space-4: 16px;
32
- --nx-space-5: 20px;
33
- --nx-space-6: 24px;
34
- --nx-space-8: 32px;
35
-
36
- /* Density: the sizes a compact and a cozy page differ by (cozy below). Everything sized by them follows. */
37
- --nx-control-sm: 28px;
38
- --nx-control-md: 34px;
39
- --nx-control-lg: 40px;
40
- /* A row in a list: a menu's item, a table's row and header, a dropdown's option, the Columns panel's line. */
41
- --nx-row: 32px;
42
- /* A bottom band, such as a table's footer: small controls with 6px above and below, and its 1px line. */
43
- --nx-footbar: calc(var(--nx-control-sm) + 13px);
44
-
45
- /* Motion */
46
- --nx-duration: 120ms;
47
- }
48
-
49
- /*
50
- * Cozy: every control 4px taller and every row 6px, for a touch screen or a large monitor. One attribute on <html>
51
- * (ThemeScript and ThemeSwitcher set it), so no component asks; compact, the default, is the sizes above.
52
- */
53
- :root[data-nx-density="cozy"] {
54
- --nx-control-sm: 32px;
55
- --nx-control-md: 38px;
56
- --nx-control-lg: 44px;
57
- --nx-row: 38px;
58
- }
59
-
60
- :root[data-nx-mode="light"] {
61
- color-scheme: light;
62
- }
63
-
64
- :root[data-nx-mode="dark"] {
65
- color-scheme: dark;
66
- }
67
-
68
- /*
69
- * Derived colors, declared wherever a theme applies, so an element with its own data-nx-theme
70
- * (a theme preview, for example) gets hover and soft colors from that theme.
71
- * Mixing toward the text color darkens in light mode and lightens in dark mode.
72
- */
73
- :root,
74
- [data-nx-theme] {
75
- --nx-primary-hover: color-mix(in oklab, var(--nx-primary-solid), var(--nx-text) 16%);
76
- --nx-primary-soft: color-mix(in oklab, var(--nx-primary) 14%, var(--nx-surface));
77
- --nx-danger-hover: color-mix(in oklab, var(--nx-danger-solid), var(--nx-text) 16%);
78
- --nx-danger-soft: color-mix(in oklab, var(--nx-danger) 14%, var(--nx-surface));
79
- --nx-success-soft: color-mix(in oklab, var(--nx-success) 14%, var(--nx-surface));
80
- --nx-warning-soft: color-mix(in oklab, var(--nx-warning) 14%, var(--nx-surface));
81
- --nx-info-soft: color-mix(in oklab, var(--nx-info) 14%, var(--nx-surface));
82
-
83
- --nx-focus-ring: 0 0 0 3px color-mix(in oklab, var(--nx-primary) 35%, transparent);
84
- --nx-shadow-sm: 0 1px 2px light-dark(rgb(16 24 40 / 0.06), rgb(0 0 0 / 0.4));
85
- --nx-shadow:
86
- 0 4px 14px light-dark(rgb(16 24 40 / 0.08), rgb(0 0 0 / 0.45)),
87
- 0 1px 3px light-dark(rgb(16 24 40 / 0.06), rgb(0 0 0 / 0.35));
88
- }
89
- }
1
+ /*
2
+ * Design tokens. Components use only these variables. Colors come from the active theme (Nexus.Themes.css);
3
+ * this file holds everything else, plus the colors derived from a theme's palette.
4
+ */
5
+ @layer nexus.tokens {
6
+ :root {
7
+ /* Light, dark, or the system setting when data-nx-mode is not set. */
8
+ color-scheme: light dark;
9
+
10
+ /* Type */
11
+ --nx-font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
12
+ --nx-font-mono: "Cascadia Mono", Consolas, "SFMono-Regular", Menlo, monospace;
13
+ /* Nepali text (lang="ne"): system fonts with Devanagari glyphs; the page font has none. */
14
+ --nx-font-devanagari: "Noto Sans Devanagari", "Nirmala UI", "Kohinoor Devanagari", "Devanagari Sangam MN", Mangal, var(--nx-font);
15
+ --nx-text-xs: 0.75rem;
16
+ --nx-text-sm: 0.8125rem;
17
+ --nx-text-md: 0.875rem;
18
+ --nx-text-lg: 1rem;
19
+ --nx-text-xl: 1.25rem;
20
+ --nx-text-2xl: 1.625rem;
21
+ --nx-leading: 1.5;
22
+
23
+ /* Shape and spacing */
24
+ --nx-radius-sm: 4px;
25
+ --nx-radius: 6px;
26
+ --nx-radius-lg: 10px;
27
+ --nx-radius-full: 999px;
28
+ --nx-space-1: 4px;
29
+ --nx-space-2: 8px;
30
+ --nx-space-3: 12px;
31
+ --nx-space-4: 16px;
32
+ --nx-space-5: 20px;
33
+ --nx-space-6: 24px;
34
+ --nx-space-8: 32px;
35
+
36
+ /* Density: the sizes a compact and a cozy page differ by (cozy below). Everything sized by them follows. */
37
+ --nx-control-sm: 28px;
38
+ --nx-control-md: 34px;
39
+ --nx-control-lg: 40px;
40
+ /* A row in a list: a menu's item, a table's row and header, a dropdown's option, the Columns panel's line. */
41
+ --nx-row: 32px;
42
+ /* A bottom band, such as a table's footer: small controls with 6px above and below, and its 1px line. */
43
+ --nx-footbar: calc(var(--nx-control-sm) + 13px);
44
+
45
+ /* Motion */
46
+ --nx-duration: 120ms;
47
+ }
48
+
49
+ /*
50
+ * Cozy: every control 4px taller and every row 6px, for a touch screen or a large monitor. One attribute on <html>
51
+ * (ThemeScript and ThemeSwitcher set it), so no component asks; compact, the default, is the sizes above.
52
+ */
53
+ :root[data-nx-density="cozy"] {
54
+ --nx-control-sm: 32px;
55
+ --nx-control-md: 38px;
56
+ --nx-control-lg: 44px;
57
+ --nx-row: 38px;
58
+ }
59
+
60
+ :root[data-nx-mode="light"] {
61
+ color-scheme: light;
62
+ }
63
+
64
+ :root[data-nx-mode="dark"] {
65
+ color-scheme: dark;
66
+ }
67
+
68
+ /*
69
+ * Derived colors, declared wherever a theme applies, so an element with its own data-nx-theme
70
+ * (a theme preview, for example) gets hover and soft colors from that theme.
71
+ *
72
+ * A solid fill under the pointer (--nx-primary-hover, --nx-danger-hover; a button pressed too) is the fill with 12%
73
+ * black mixed in, in every theme and in light and dark mode alike. The fill sits behind the white --nx-*-text label,
74
+ * so the darker step only raises the label's contrast: 6:1 or more, from 4.6:1 at rest. It is about the same step in
75
+ * every theme (an OKLab difference of 5.8 to 7.4, x100). Mixing toward the text color lightened the fill in dark
76
+ * mode, to 3.5:1. npm run check:themes reads these two lines and checks both.
77
+ */
78
+ :root,
79
+ [data-nx-theme] {
80
+ --nx-primary-hover: color-mix(in oklab, var(--nx-primary-solid), black 12%);
81
+ --nx-primary-soft: color-mix(in oklab, var(--nx-primary) 14%, var(--nx-surface));
82
+ --nx-danger-hover: color-mix(in oklab, var(--nx-danger-solid), black 12%);
83
+ --nx-danger-soft: color-mix(in oklab, var(--nx-danger) 14%, var(--nx-surface));
84
+ --nx-success-soft: color-mix(in oklab, var(--nx-success) 14%, var(--nx-surface));
85
+ --nx-warning-soft: color-mix(in oklab, var(--nx-warning) 14%, var(--nx-surface));
86
+ --nx-info-soft: color-mix(in oklab, var(--nx-info) 14%, var(--nx-surface));
87
+
88
+ --nx-focus-ring: 0 0 0 3px color-mix(in oklab, var(--nx-primary) 35%, transparent);
89
+ --nx-shadow-sm: 0 1px 2px light-dark(rgb(16 24 40 / 0.06), rgb(0 0 0 / 0.4));
90
+ --nx-shadow:
91
+ 0 4px 14px light-dark(rgb(16 24 40 / 0.08), rgb(0 0 0 / 0.45)),
92
+ 0 1px 3px light-dark(rgb(16 24 40 / 0.06), rgb(0 0 0 / 0.35));
93
+ }
94
+ }