@nordmanai/nif 0.2.5 → 0.2.9

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 (70) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.js +6915 -6376
  3. package/dist/styles.css +1 -1
  4. package/dist/ui/components/nm-alert-dialog/nm-alert-dialog.d.ts +17 -0
  5. package/dist/ui/components/nm-dialog/nm-dialog.d.ts +4 -0
  6. package/dist/ui/components/nm-drawer/nm-drawer.d.ts +18 -0
  7. package/dist/ui/components/nm-sidebar/nm-sidebar.d.ts +134 -0
  8. package/dist/ui/config/nm-appearance.d.ts +13 -1
  9. package/dist/ui/config/nm-drawer.d.ts +3 -0
  10. package/dist/ui/config/nm-sidebar.d.ts +29 -0
  11. package/dist/ui/lib/appearance/appearanceState.d.ts +2 -1
  12. package/package.json +1 -1
  13. package/registry/index.json +212 -1
  14. package/registry/ui/components/nm-ai/nm-ai.css +3 -3
  15. package/registry/ui/components/nm-alert/nm-alert.css +1 -1
  16. package/registry/ui/components/nm-alert-dialog/nm-alert-dialog.css +4 -0
  17. package/registry/ui/components/nm-alert-dialog/nm-alert-dialog.tsx +43 -0
  18. package/registry/ui/components/nm-button/nm-button.css +2 -2
  19. package/registry/ui/components/nm-button-group/nm-button-group.css +1 -1
  20. package/registry/ui/components/nm-calendar/nm-calendar.css +1 -1
  21. package/registry/ui/components/nm-card/nm-card.css +2 -2
  22. package/registry/ui/components/nm-chatbox/nm-chatbox.css +1 -1
  23. package/registry/ui/components/nm-checkbox/nm-checkbox.css +2 -2
  24. package/registry/ui/components/nm-chip/nm-chip.css +1 -1
  25. package/registry/ui/components/nm-code-block/nm-code-block.css +1 -1
  26. package/registry/ui/components/nm-collection/nm-collection.css +2 -2
  27. package/registry/ui/components/nm-color-picker/nm-color-picker.css +1 -1
  28. package/registry/ui/components/nm-combobox/nm-combobox.css +2 -2
  29. package/registry/ui/components/nm-command/nm-command.css +1 -1
  30. package/registry/ui/components/nm-composer/nm-composer.css +3 -3
  31. package/registry/ui/components/nm-date-picker/nm-date-picker.css +2 -2
  32. package/registry/ui/components/nm-dialog/nm-dialog.css +16 -1
  33. package/registry/ui/components/nm-dialog/nm-dialog.tsx +8 -0
  34. package/registry/ui/components/nm-drawer/nm-drawer.css +70 -0
  35. package/registry/ui/components/nm-drawer/nm-drawer.tsx +41 -0
  36. package/registry/ui/components/nm-dropdown/nm-dropdown.css +2 -2
  37. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.css +1 -1
  38. package/registry/ui/components/nm-field/nm-field.css +6 -6
  39. package/registry/ui/components/nm-hover-card/nm-hover-card.css +1 -1
  40. package/registry/ui/components/nm-input/nm-input.css +3 -3
  41. package/registry/ui/components/nm-input-group/nm-input-group.css +2 -2
  42. package/registry/ui/components/nm-message/nm-message.css +1 -1
  43. package/registry/ui/components/nm-native-select/nm-native-select.css +2 -2
  44. package/registry/ui/components/nm-popover/nm-popover.css +1 -1
  45. package/registry/ui/components/nm-prose/nm-prose.css +3 -3
  46. package/registry/ui/components/nm-questionnaire/nm-questionnaire.css +3 -3
  47. package/registry/ui/components/nm-radio-group/nm-radio-group.css +2 -2
  48. package/registry/ui/components/nm-segmented/nm-segmented.css +1 -1
  49. package/registry/ui/components/nm-select/nm-select.css +2 -2
  50. package/registry/ui/components/nm-separator/nm-separator.css +1 -1
  51. package/registry/ui/components/nm-side-panel/nm-side-panel.css +1 -1
  52. package/registry/ui/components/nm-sidebar/nm-sidebar.css +647 -0
  53. package/registry/ui/components/nm-sidebar/nm-sidebar.tsx +532 -0
  54. package/registry/ui/components/nm-spinner/nm-spinner.css +1 -1
  55. package/registry/ui/components/nm-switch/nm-switch.css +1 -1
  56. package/registry/ui/components/nm-table/nm-table.css +4 -4
  57. package/registry/ui/components/nm-tabs/nm-tabs.css +1 -1
  58. package/registry/ui/components/nm-textarea/nm-textarea.css +5 -5
  59. package/registry/ui/components/nm-toggle/nm-toggle.css +1 -1
  60. package/registry/ui/components/nordman-icon-button/nordman-icon-button.css +2 -2
  61. package/registry/ui/components/nordman-login/nordman-login.css +3 -3
  62. package/registry/ui/components/nordman-toggle/nordman-toggle.css +1 -1
  63. package/registry/ui/config/nm-appearance.ts +17 -0
  64. package/registry/ui/config/nm-drawer.ts +3 -0
  65. package/registry/ui/config/nm-sidebar.ts +37 -0
  66. package/registry/ui/lib/appearance/appearanceState.ts +8 -0
  67. package/registry/ui/lib/appearance/applyAppearance.ts +3 -1
  68. package/registry/ui/lib/appearance/deriveTokens.ts +2 -0
  69. package/registry/ui/styles/light-appearance.css +3 -3
  70. package/registry/ui/styles/tokens.css +31 -0
@@ -88,7 +88,7 @@
88
88
  gap: var(--nm-space-8);
89
89
  min-height: var(--control-h);
90
90
  padding: 0 var(--control-px);
91
- border: var(--nm-rule) solid var(--nm-line-strong);
91
+ border: var(--nm-rule) solid var(--nm-border-strong);
92
92
  border-radius: var(--nm-control-r);
93
93
  background: var(--nm-raised);
94
94
  color: var(--nm-fg-muted);
@@ -126,7 +126,7 @@
126
126
  }
127
127
 
128
128
  .nm-calendar__day--today .nm-calendar__day-button {
129
- border-color: var(--nm-stroke);
129
+ border-color: var(--nm-border-stroke);
130
130
  }
131
131
 
132
132
  .nm-calendar__day--outside .nm-calendar__day-button {
@@ -6,7 +6,7 @@
6
6
  gap: var(--nm-space-12);
7
7
  min-width: 0;
8
8
  padding: var(--nm-card-pad);
9
- border: var(--nm-rule) solid var(--nm-line-strong);
9
+ border: var(--nm-rule) solid var(--nm-border-strong);
10
10
  border-radius: var(--nm-radius-lg);
11
11
  background: var(--nm-raised);
12
12
  color: var(--nm-fg);
@@ -39,7 +39,7 @@
39
39
  }
40
40
 
41
41
  .nm-card[data-interactive]:hover:not([data-disabled]) {
42
- border-color: var(--nm-stroke);
42
+ border-color: var(--nm-border-stroke);
43
43
  background: var(--nm-inset);
44
44
  }
45
45
 
@@ -407,7 +407,7 @@
407
407
  align-items: center;
408
408
  gap: var(--nm-space-4);
409
409
  padding: var(--nm-icon-pad);
410
- border: var(--nm-rule) solid var(--nm-line);
410
+ border: var(--nm-rule) solid var(--nm-border);
411
411
  border-radius: calc((var(--nm-icon-control) + var(--nm-rule) * 2) / 2);
412
412
  background: transparent;
413
413
  color: var(--nm-fg-subtle);
@@ -8,9 +8,9 @@
8
8
  width: var(--nm-icon-button);
9
9
  height: var(--nm-icon-button);
10
10
  padding: 0;
11
- border: var(--nm-rule) solid var(--nm-stroke);
11
+ border: var(--nm-rule) solid var(--nm-border-stroke);
12
12
  border-radius: var(--nm-radius-sm);
13
- background: transparent;
13
+ background: var(--nm-borderless-fill);
14
14
  color: var(--nm-canvas);
15
15
  cursor: pointer;
16
16
  transition:
@@ -62,7 +62,7 @@
62
62
  }
63
63
 
64
64
  .nm-chip[data-tone='outline'] {
65
- border-color: var(--nm-line-strong);
65
+ border-color: var(--nm-border-strong);
66
66
  background: transparent;
67
67
  color: var(--nm-fg);
68
68
  }
@@ -5,7 +5,7 @@
5
5
  width: 100%;
6
6
  min-width: 0;
7
7
  overflow: hidden;
8
- border: var(--nm-rule) solid var(--nm-line-strong);
8
+ border: var(--nm-rule) solid var(--nm-border-strong);
9
9
  border-radius: var(--nm-radius-lg);
10
10
  background: var(--nm-inset);
11
11
  color: var(--nm-fg);
@@ -96,7 +96,7 @@
96
96
  justify-content: space-between;
97
97
  gap: var(--nm-space-8);
98
98
  padding: var(--table-cell-py) var(--table-gap);
99
- border-bottom: var(--nm-rule) solid var(--nm-line);
99
+ border-bottom: var(--nm-rule) solid var(--nm-border);
100
100
  border-radius: 0;
101
101
  color: var(--nm-fg-subtle);
102
102
  font-size: var(--table-fs);
@@ -111,7 +111,7 @@
111
111
  .nm-collection__head:hover,
112
112
  .nm-collection__head:focus-within {
113
113
  padding-block: var(--table-head-py);
114
- border-bottom-color: var(--nm-line-strong);
114
+ border-bottom-color: var(--nm-border-strong);
115
115
  background: transparent;
116
116
  color: var(--nm-fg-subtle);
117
117
  font-size: var(--table-head-fs);
@@ -9,7 +9,7 @@
9
9
  box-sizing: border-box;
10
10
  width: var(--nm-icon-button);
11
11
  height: var(--nm-icon-button);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-radius-sm);
14
14
  background: var(--nm-swatch);
15
15
  }
@@ -7,7 +7,7 @@
7
7
  min-width: 0;
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  .nm-combobox__group:not([data-bare]):focus-within {
26
- border-color: var(--nm-stroke);
26
+ border-color: var(--nm-border-stroke);
27
27
  }
28
28
 
29
29
  .nm-combobox__input {
@@ -7,7 +7,7 @@
7
7
  width: 100%;
8
8
  padding: var(--nm-space-12) var(--nm-space-24) var(--nm-space-24);
9
9
  overflow: hidden;
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-radius-lg);
12
12
  background: var(--nm-panel);
13
13
  color: var(--nm-fg);
@@ -6,7 +6,7 @@
6
6
  gap: var(--nm-space-24);
7
7
  width: 100%;
8
8
  padding: var(--nm-space-12);
9
- border: var(--nm-rule) solid var(--nm-line-strong);
9
+ border: var(--nm-rule) solid var(--nm-border-strong);
10
10
  border-radius: var(--nm-radius-lg);
11
11
  background: var(--nm-raised);
12
12
  color: var(--nm-fg);
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .nm-composer:focus-within {
18
- border-color: var(--nm-stroke);
18
+ border-color: var(--nm-border-stroke);
19
19
  }
20
20
 
21
21
  .nm-composer[data-disabled='true'] {
@@ -217,7 +217,7 @@
217
217
  margin: 0;
218
218
  padding: 0 0 var(--nm-space-12);
219
219
  list-style: none;
220
- border-bottom: var(--nm-rule) solid var(--nm-line);
220
+ border-bottom: var(--nm-rule) solid var(--nm-border);
221
221
  }
222
222
 
223
223
  .nm-composer__queued {
@@ -7,7 +7,7 @@
7
7
  min-width: var(--nm-width-date);
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -28,7 +28,7 @@
28
28
  }
29
29
 
30
30
  .nm-picker__trigger:hover:not(:disabled) {
31
- border-color: var(--nm-stroke);
31
+ border-color: var(--nm-border-stroke);
32
32
  }
33
33
 
34
34
  .nm-picker__trigger:focus-visible,
@@ -23,7 +23,7 @@
23
23
  width: min(var(--nm-width-dialog), calc(100% - var(--nm-space-24) * 2));
24
24
  max-height: 70%;
25
25
  overflow: hidden;
26
- border: var(--nm-rule) solid var(--nm-line-strong);
26
+ border: var(--nm-rule) solid var(--nm-border-strong);
27
27
  border-radius: var(--nm-radius-lg);
28
28
  background: var(--nm-panel);
29
29
  color: var(--nm-fg);
@@ -56,6 +56,21 @@
56
56
  color: var(--nm-fg-muted);
57
57
  font-size: var(--nm-type-ui-sm);
58
58
  }
59
+ .nm-dialog__body {
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: var(--nm-space-12);
63
+ min-height: 0;
64
+ padding: var(--nm-space-16) var(--nm-space-24) 0;
65
+ overflow: auto;
66
+ }
67
+ .nm-dialog__footer {
68
+ display: flex;
69
+ flex-wrap: wrap;
70
+ gap: var(--nm-space-8);
71
+ justify-content: flex-end;
72
+ padding: var(--nm-space-24);
73
+ }
59
74
 
60
75
  .nm-dialog[data-size='full'] {
61
76
  inset: 0;
@@ -31,6 +31,14 @@ export function NmDialogHeader({ className, ...props }: ComponentProps<'div'>) {
31
31
  return <div data-slot="dialog-header" className={nmClass('nm-dialog__header', className)} {...props} />;
32
32
  }
33
33
 
34
+ /** The content between the header and the footer. It scrolls when the dialog is full. */
35
+ export function NmDialogBody({ className, ...props }: ComponentProps<'div'>) {
36
+ return <div data-slot="dialog-body" className={nmClass('nm-dialog__body', className)} {...props} />;
37
+ }
38
+ /** The actions at the end, right-aligned. */
39
+ export function NmDialogFooter({ className, ...props }: ComponentProps<'div'>) {
40
+ return <div data-slot="dialog-footer" className={nmClass('nm-dialog__footer', className)} {...props} />;
41
+ }
34
42
  export function NmDialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {
35
43
  return <DialogPrimitive.Title data-slot="dialog-title" className={nmClass('nm-dialog__title', className as string)} {...props} />;
36
44
  }
@@ -0,0 +1,70 @@
1
+ .nm-drawer__backdrop {
2
+ position: fixed;
3
+ z-index: var(--nm-menu-z);
4
+ inset: 0;
5
+ background: rgb(var(--nm-canvas-rgb) / 0.7);
6
+ transition: opacity var(--reveal) var(--ease);
7
+ }
8
+ .nm-drawer__backdrop[data-starting-style],
9
+ .nm-drawer__backdrop[data-ending-style] {
10
+ opacity: 0;
11
+ }
12
+ /* The panel sits on an edge and takes the whole height. It slides in from its own edge. */
13
+ .nm-drawer {
14
+ position: fixed;
15
+ z-index: var(--nm-menu-z);
16
+ inset-block: 0;
17
+ display: flex;
18
+ flex-direction: column;
19
+ box-sizing: border-box;
20
+ width: var(--nm-width-drawer);
21
+ max-width: 100%;
22
+ background: var(--nm-raised);
23
+ color: var(--nm-fg);
24
+ font-family: var(--nm-font);
25
+ font-size: var(--nm-type-ui);
26
+ outline: none;
27
+ /* The motion popup owns transform: it slides the panel in from its side. */
28
+ transition: opacity var(--reveal) var(--ease);
29
+ }
30
+ .nm-drawer[data-side='left'] {
31
+ inset-inline-start: 0;
32
+ border-inline-end: var(--nm-rule) solid var(--nm-border-strong);
33
+ }
34
+ .nm-drawer[data-side='right'] {
35
+ inset-inline-end: 0;
36
+ border-inline-start: var(--nm-rule) solid var(--nm-border-strong);
37
+ }
38
+ .nm-drawer[data-starting-style],
39
+ .nm-drawer[data-ending-style] {
40
+ opacity: 0;
41
+ }
42
+ .nm-drawer__header {
43
+ display: flex;
44
+ flex-direction: column;
45
+ gap: var(--nm-space-4);
46
+ padding: var(--nm-space-16);
47
+ }
48
+ .nm-drawer__footer {
49
+ display: flex;
50
+ gap: var(--nm-space-8);
51
+ justify-content: flex-end;
52
+ margin-top: auto;
53
+ padding: var(--nm-space-16);
54
+ }
55
+ .nm-drawer__title {
56
+ margin: 0;
57
+ font-size: var(--nm-type-body);
58
+ font-weight: var(--nm-weight-medium);
59
+ }
60
+ .nm-drawer__description {
61
+ margin: 0;
62
+ color: var(--nm-fg-muted);
63
+ font-size: var(--nm-type-ui-sm);
64
+ }
65
+ @media (prefers-reduced-motion: reduce) {
66
+ .nm-drawer,
67
+ .nm-drawer__backdrop {
68
+ transition: none;
69
+ }
70
+ }
@@ -0,0 +1,41 @@
1
+ import type { ComponentProps } from 'react';
2
+ import { Dialog as DialogPrimitive } from '../../lib/nm-motion.ts';
3
+ import { nmClass } from '../../lib/nm-class.ts';
4
+ import type { NmDrawerSide } from '../../config/nm-drawer.ts';
5
+
6
+ /**
7
+ * A panel that slides in from an edge, over the page, with a scrim behind it. The shadcn Sheet, on the Base UI
8
+ * Dialog, styled by NIF tokens. For navigation on a phone, filters, or a form that should not leave the page.
9
+ */
10
+ export function NmDrawer(props: DialogPrimitive.Root.Props) {
11
+ return <DialogPrimitive.Root data-slot="drawer" {...props} />;
12
+ }
13
+ export function NmDrawerTrigger(props: DialogPrimitive.Trigger.Props) {
14
+ return <DialogPrimitive.Trigger data-slot="drawer-trigger" {...props} />;
15
+ }
16
+ export function NmDrawerClose(props: DialogPrimitive.Close.Props) {
17
+ return <DialogPrimitive.Close data-slot="drawer-close" {...props} />;
18
+ }
19
+ /** The panel. `side` is the edge it comes from. Its width is the --nm-width-drawer token. */
20
+ export function NmDrawerContent({ className, children, side = 'left', ...props }: DialogPrimitive.Popup.Props & { side?: NmDrawerSide }) {
21
+ return (
22
+ <DialogPrimitive.Portal>
23
+ <DialogPrimitive.Backdrop data-slot="drawer-overlay" className="nm-drawer__backdrop" />
24
+ <DialogPrimitive.Popup data-slot="drawer-content" data-side={side} from={side} className={nmClass('nm-drawer', className as string)} {...props}>
25
+ {children}
26
+ </DialogPrimitive.Popup>
27
+ </DialogPrimitive.Portal>
28
+ );
29
+ }
30
+ export function NmDrawerHeader({ className, ...props }: ComponentProps<'div'>) {
31
+ return <div data-slot="drawer-header" className={nmClass('nm-drawer__header', className)} {...props} />;
32
+ }
33
+ export function NmDrawerFooter({ className, ...props }: ComponentProps<'div'>) {
34
+ return <div data-slot="drawer-footer" className={nmClass('nm-drawer__footer', className)} {...props} />;
35
+ }
36
+ export function NmDrawerTitle({ className, ...props }: DialogPrimitive.Title.Props) {
37
+ return <DialogPrimitive.Title data-slot="drawer-title" className={nmClass('nm-drawer__title', className as string)} {...props} />;
38
+ }
39
+ export function NmDrawerDescription({ className, ...props }: DialogPrimitive.Description.Props) {
40
+ return <DialogPrimitive.Description data-slot="drawer-description" className={nmClass('nm-drawer__description', className as string)} {...props} />;
41
+ }
@@ -83,7 +83,7 @@
83
83
  max-height: var(--nm-dropdown-max);
84
84
  margin: 0;
85
85
  padding: var(--nm-list-pad);
86
- border: var(--nm-rule) solid var(--nm-line-strong);
86
+ border: var(--nm-rule) solid var(--nm-border-strong);
87
87
  border-radius: var(--nm-menu-radius);
88
88
  background: var(--nm-panel);
89
89
  color: var(--nm-fg);
@@ -160,7 +160,7 @@
160
160
  height: 0;
161
161
  margin: var(--nm-space-8) 0;
162
162
  border: 0;
163
- border-top: var(--nm-rule) solid var(--nm-line);
163
+ border-top: var(--nm-rule) solid var(--nm-border);
164
164
  background: transparent;
165
165
  }
166
166
 
@@ -15,7 +15,7 @@
15
15
  padding: var(--nm-list-pad);
16
16
  overflow-x: hidden;
17
17
  overflow-y: auto;
18
- border: var(--nm-rule) solid var(--nm-line-strong);
18
+ border: var(--nm-rule) solid var(--nm-border-strong);
19
19
  border-radius: var(--nm-menu-radius);
20
20
  background: var(--nm-panel);
21
21
  color: var(--nm-fg);
@@ -7,7 +7,7 @@
7
7
  box-sizing: border-box;
8
8
  min-height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg-subtle);
@@ -22,7 +22,7 @@
22
22
 
23
23
  .nm-field:not(.nm-field--stack):focus-within,
24
24
  .nm-field__box:focus-within {
25
- border-color: var(--nm-stroke);
25
+ border-color: var(--nm-border-stroke);
26
26
  }
27
27
 
28
28
  .nm-field__icon,
@@ -131,7 +131,7 @@
131
131
  min-height: var(--nm-field-h);
132
132
  max-height: var(--nm-field-h);
133
133
  padding: 0 var(--control-px);
134
- border: var(--nm-rule) solid var(--nm-line-strong);
134
+ border: var(--nm-rule) solid var(--nm-border-strong);
135
135
  border-radius: var(--nm-control-r);
136
136
  background: var(--nm-raised);
137
137
  }
@@ -256,7 +256,7 @@
256
256
  width: var(--nm-field-h);
257
257
  height: var(--nm-field-h);
258
258
  padding: 0;
259
- border: var(--nm-rule) solid var(--nm-line-strong);
259
+ border: var(--nm-rule) solid var(--nm-border-strong);
260
260
  border-radius: var(--nm-control-r);
261
261
  background: var(--nm-raised);
262
262
  color: var(--nm-fg);
@@ -279,7 +279,7 @@
279
279
  padding: var(--nm-menu-pad);
280
280
  overflow: auto;
281
281
  list-style: none;
282
- border: var(--nm-rule) solid var(--nm-line-strong);
282
+ border: var(--nm-rule) solid var(--nm-border-strong);
283
283
  border-radius: var(--nm-control-menu-radius);
284
284
  background: var(--nm-panel);
285
285
  max-height: var(--nm-dropdown-max);
@@ -290,7 +290,7 @@
290
290
  align-items: center;
291
291
  gap: var(--nm-space-8);
292
292
  padding: var(--nm-space-8) var(--nm-control-option-inset);
293
- border-bottom: var(--nm-rule) solid var(--nm-line);
293
+ border-bottom: var(--nm-rule) solid var(--nm-border);
294
294
  }
295
295
 
296
296
  .nm-field__search-input {
@@ -9,7 +9,7 @@
9
9
  gap: var(--nm-space-12);
10
10
  width: var(--nm-width-popup-sm);
11
11
  padding: var(--nm-panel-pad);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-control-menu-radius);
14
14
  background: var(--nm-panel);
15
15
  color: var(--nm-fg);
@@ -5,7 +5,7 @@
5
5
  min-width: 0;
6
6
  height: var(--nm-field-h);
7
7
  padding: 0 var(--control-px);
8
- border: var(--nm-rule) solid var(--nm-line-strong);
8
+ border: var(--nm-rule) solid var(--nm-border-strong);
9
9
  border-radius: var(--nm-control-r);
10
10
  background: var(--nm-raised);
11
11
  color: var(--nm-fg);
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  .nm-input:hover:not(:disabled) {
27
- border-color: var(--nm-stroke);
27
+ border-color: var(--nm-border-stroke);
28
28
  }
29
29
 
30
30
  .nm-input:focus-visible {
@@ -51,7 +51,7 @@
51
51
  margin-right: var(--control-px);
52
52
  padding: 0 var(--control-px);
53
53
  border: 0;
54
- border-right: var(--nm-rule) solid var(--nm-line-strong);
54
+ border-right: var(--nm-rule) solid var(--nm-border-strong);
55
55
  background: var(--nm-panel);
56
56
  color: var(--nm-fg);
57
57
  font: inherit;
@@ -4,14 +4,14 @@
4
4
  box-sizing: border-box;
5
5
  width: 100%;
6
6
  height: var(--nm-field-h);
7
- border: var(--nm-rule) solid var(--nm-line-strong);
7
+ border: var(--nm-rule) solid var(--nm-border-strong);
8
8
  border-radius: var(--nm-control-r);
9
9
  background: var(--nm-raised);
10
10
  transition: border-color 0.15s;
11
11
  }
12
12
 
13
13
  .nm-input-group:hover {
14
- border-color: var(--nm-stroke);
14
+ border-color: var(--nm-border-stroke);
15
15
  }
16
16
 
17
17
  .nm-input-group:focus-within {
@@ -169,7 +169,7 @@
169
169
  margin-top: 0.75em;
170
170
  margin-bottom: 0.75em;
171
171
  color: var(--nm-fg-subtle);
172
- border-left-color: var(--nm-line);
172
+ border-left-color: var(--nm-border);
173
173
  font-weight: var(--nm-weight-regular);
174
174
  }
175
175
 
@@ -8,7 +8,7 @@
8
8
  width: 100%;
9
9
  height: var(--nm-field-h);
10
10
  padding: 0 calc(var(--control-px) + var(--nm-icon-button) + var(--nm-space-8)) 0 var(--control-px);
11
- border: var(--nm-rule) solid var(--nm-line-strong);
11
+ border: var(--nm-rule) solid var(--nm-border-strong);
12
12
  border-radius: var(--nm-control-r);
13
13
  background: var(--nm-raised);
14
14
  color: var(--nm-fg);
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .nm-native-select__control:hover:not(:disabled) {
24
- border-color: var(--nm-stroke);
24
+ border-color: var(--nm-border-stroke);
25
25
  }
26
26
 
27
27
  .nm-native-select__control:focus-visible {
@@ -9,7 +9,7 @@
9
9
  gap: var(--nm-space-12);
10
10
  width: var(--nm-width-popup);
11
11
  padding: var(--nm-panel-pad);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-control-menu-radius);
14
14
  background: var(--nm-panel);
15
15
  color: var(--nm-fg);
@@ -45,7 +45,7 @@
45
45
 
46
46
  .nm-prose blockquote {
47
47
  padding-inline-start: var(--nm-space-12);
48
- border-inline-start: var(--nm-space-2) solid var(--nm-line-strong);
48
+ border-inline-start: var(--nm-space-2) solid var(--nm-border-strong);
49
49
  color: var(--nm-fg-muted);
50
50
  }
51
51
 
@@ -66,7 +66,7 @@
66
66
  .nm-prose hr {
67
67
  margin: var(--nm-space-24) 0;
68
68
  border: 0;
69
- border-top: var(--nm-rule) solid var(--nm-divider);
69
+ border-top: var(--nm-rule) solid var(--nm-border-divider);
70
70
  }
71
71
 
72
72
  .nm-prose table {
@@ -76,6 +76,6 @@
76
76
 
77
77
  .nm-prose :is(th, td) {
78
78
  padding: var(--nm-space-8) var(--nm-space-12);
79
- border-bottom: var(--nm-rule) solid var(--nm-line);
79
+ border-bottom: var(--nm-rule) solid var(--nm-border);
80
80
  text-align: start;
81
81
  }
@@ -12,7 +12,7 @@
12
12
 
13
13
  .nm-questionnaire--card {
14
14
  padding: var(--nm-space-24);
15
- border: var(--nm-rule) solid var(--nm-line-strong);
15
+ border: var(--nm-rule) solid var(--nm-border-strong);
16
16
  border-radius: var(--nm-radius-lg);
17
17
  background: var(--nm-raised);
18
18
  }
@@ -68,7 +68,7 @@
68
68
  gap: var(--nm-space-12);
69
69
  box-sizing: border-box;
70
70
  padding: var(--nm-space-12);
71
- border: var(--nm-rule) solid var(--nm-line-strong);
71
+ border: var(--nm-rule) solid var(--nm-border-strong);
72
72
  border-radius: var(--nm-control-r);
73
73
  background: transparent;
74
74
  cursor: pointer;
@@ -102,7 +102,7 @@
102
102
  width: var(--nm-icon-button);
103
103
  height: var(--nm-icon-button);
104
104
  margin-top: var(--nm-space-2);
105
- border: var(--nm-rule) solid var(--nm-stroke);
105
+ border: var(--nm-rule) solid var(--nm-border-stroke);
106
106
  border-radius: 50%;
107
107
  color: var(--nm-canvas);
108
108
  }
@@ -15,9 +15,9 @@
15
15
  width: var(--nm-icon-button);
16
16
  height: var(--nm-icon-button);
17
17
  padding: 0;
18
- border: var(--nm-rule) solid var(--nm-stroke);
18
+ border: var(--nm-rule) solid var(--nm-border-stroke);
19
19
  border-radius: 50%;
20
- background: transparent;
20
+ background: var(--nm-borderless-fill);
21
21
  cursor: pointer;
22
22
  transition: border-color 0.15s;
23
23
  }
@@ -3,7 +3,7 @@
3
3
  align-items: stretch;
4
4
  gap: var(--nm-space-2);
5
5
  padding: var(--toggle-pad);
6
- border: var(--nm-rule) solid var(--nm-line-strong);
6
+ border: var(--nm-rule) solid var(--nm-border-strong);
7
7
  border-radius: var(--toggle-r);
8
8
  background: transparent;
9
9
  }
@@ -7,7 +7,7 @@
7
7
  min-width: 0;
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -27,7 +27,7 @@
27
27
  .nm-select__trigger:hover,
28
28
  .nm-select__trigger[data-popup-open],
29
29
  .nm-select__trigger:focus-visible {
30
- border-color: var(--nm-stroke);
30
+ border-color: var(--nm-border-stroke);
31
31
  outline: none;
32
32
  }
33
33
 
@@ -1,6 +1,6 @@
1
1
  .nm-separator {
2
2
  flex-shrink: 0;
3
- background: var(--nm-line);
3
+ background: var(--nm-border);
4
4
  }
5
5
 
6
6
  .nm-separator[data-orientation='horizontal'] {
@@ -40,7 +40,7 @@
40
40
  flex: 0 0 var(--nm-side-panel-basis);
41
41
  flex-direction: column;
42
42
  min-height: 0;
43
- border-inline-start: var(--nm-rule) solid var(--nm-divider);
43
+ border-inline-start: var(--nm-rule) solid var(--nm-border-divider);
44
44
  background: var(--nm-canvas);
45
45
  }
46
46