nuvox 0.1.3 → 0.1.5
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/BUILDING-COMPONENTS.md +2 -0
- package/CHANGELOG.md +55 -109
- package/dist/{chunk-KKRVJF3Y.js → chunk-NC2NEPPE.js} +756 -2
- package/dist/chunk-NC2NEPPE.js.map +1 -0
- package/dist/index.cjs +720 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +19 -1
- package/dist/react/index.cjs +4828 -2466
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.css +1014 -67
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.cts +180 -3
- package/dist/react/index.d.ts +180 -3
- package/dist/react/index.js +2646 -1024
- package/dist/react/index.js.map +1 -1
- package/dist/{context-menu-CcYi_Dc_.d.cts → rich-text-DpGtEsdl.d.cts} +147 -1
- package/dist/{context-menu-CcYi_Dc_.d.ts → rich-text-DpGtEsdl.d.ts} +147 -1
- package/package.json +2 -2
- package/dist/chunk-KKRVJF3Y.js.map +0 -1
package/BUILDING-COMPONENTS.md
CHANGED
|
@@ -437,6 +437,8 @@ good at telling you.
|
|
|
437
437
|
| 42 | Carousel | F | ✅ | ❌ | ❌ *(own baseline: arrow keys, pause-on-hover, not Rule 11)* | ✅ | ✅ *(active slide)* | 🛠️ Built |
|
|
438
438
|
| 43 | Rating | B | ✅ | ❌ | ❌ | ➖ | ✅ *(selected value)* | 🛠️ Built *(added outside the original plan — a single-value control, same shape as Slider)* |
|
|
439
439
|
| 44 | StatCard | A | ✅ | ❌ | ❌ | ➖ | ❌ | 🛠️ Built *(added outside the original plan — composes `Card` for chrome)* |
|
|
440
|
+
| 45 | CodeBlock | A | ✅ *(forwards to the scrollable `<pre>`)* | ❌ | ❌ | ➖ | ❌ | 🛠️ Built *(added outside the original plan — tokenizer lives in the shared `core/code-highlight.ts` primitive, not owned solely by this component; `highlighter` prop is a pluggable escape hatch, see that file's header)* |
|
|
441
|
+
| 46 | RichTextEditor | F | ✅ *(`RichTextContent` forwards to the contentEditable element)* | ➖ *(the link editor's popover panel portals via the real `Popover`, not directly)* | ➖ *(inherited transitively through `Popover`)* | ✅ *(link editor composes `Popover`, Rule 12)* | ✅ *(`value`/`onChange`, HTML string)* | 🛠️ Built *(added outside the original plan — by far the largest component; deliberately NOT a ProseMirror-style document model, see `core/rich-text.ts`'s header for the v1 scope boundary and the `engine` escape hatch for consumers who need one)* |
|
|
440
442
|
|
|
441
443
|
A few things worth noting from the table itself, not just the rows:
|
|
442
444
|
|
package/CHANGELOG.md
CHANGED
|
@@ -3,131 +3,77 @@
|
|
|
3
3
|
All notable changes to this project are documented here.
|
|
4
4
|
Format loosely follows [Keep a Changelog](https://keepachangelog.com/).
|
|
5
5
|
|
|
6
|
+
## [0.1.5]
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
* Added new components: `ChatBubble`, `Sidebar`, `ResizablePanel`, `CodeBlock`, `RichTextEditor`, and `SpeedDial`.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
* Fixed multiple CSS and theming issues across several components.
|
|
15
|
+
* Improved component styling consistency across themes.
|
|
16
|
+
* Fixed various layout, spacing, and visual issues.
|
|
17
|
+
|
|
18
|
+
## [0.1.4]
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
* Fixed nested overlay interactions so genuinely nested overlays work correctly without interfering with sibling overlays.
|
|
23
|
+
* Fixed z-index handling for nested overlays such as `DropdownMenu`, `Select`, `Combobox`, and `ColorPicker` inside other overlays.
|
|
24
|
+
* Improved overlay behavior across deeply nested portal structures.
|
|
25
|
+
* Added regression coverage for nested and sibling overlay scenarios.
|
|
26
|
+
|
|
6
27
|
## [0.1.3]
|
|
7
28
|
|
|
8
29
|
### Fixed
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- `gradient`'s `text`/`textMuted` were still `light` theme's values,
|
|
19
|
-
measured at 2.79:1 and a barely-there 1.32:1 against the theme's own
|
|
20
|
-
background gradient's darker stop — anything rendered directly on
|
|
21
|
-
the page background (as `Timeline`/`Pagination`/`Tabs` are, per this
|
|
22
|
-
library's own docs examples, with no wrapping surface assumed) was
|
|
23
|
-
close to unreadable. Darkened both — see the measured before/after
|
|
24
|
-
in the new `tests/theme-text-contrast.test.ts`. `textMuted` still
|
|
25
|
-
can't clear full AA (4.5:1) against the gradient's darkest point
|
|
26
|
-
with a single flat color; this is the best available compromise,
|
|
27
|
-
not a complete fix.
|
|
28
|
-
- `glass`'s `border` (`rgba(255,255,255,0.35)`) composited to literal
|
|
29
|
-
`#ffffff` against a plain white backdrop — a 1.0:1 ratio, i.e.
|
|
30
|
-
actually invisible (reported as `Progress`'s track outline
|
|
31
|
-
vanishing). Retinted to a neutral slate that stays visible against
|
|
32
|
-
both a plain white and a plain black fallback backdrop, since most
|
|
33
|
-
consumers won't add the "rich background" this theme's own
|
|
34
|
-
description says it needs.
|
|
35
|
-
- `Slider`'s value-label bubble (`showValueLabel`) had no space
|
|
36
|
-
reserved for it above the track and could overflow into the field's
|
|
37
|
-
own `label` text above it — most visible with a thumb near 0%.
|
|
38
|
-
`getRootClasses` (internal, not part of the public API surface) now
|
|
39
|
-
takes `showValueLabel` and adds a modifier class that reserves the
|
|
40
|
-
room the bubble actually needs.
|
|
41
|
-
- Nesting one dismissible overlay inside another (e.g. a `DropdownMenu`
|
|
42
|
-
inside a `Popover`) broke: every overlay portals its content to
|
|
43
|
-
`document.body` via `ThemedPortal`, as a DOM sibling of wherever it
|
|
44
|
-
was rendered rather than a descendant, so a click inside the nested
|
|
45
|
-
one registered as "outside" the outer one's own refs and closed it
|
|
46
|
-
before the click could register. `useClickOutside` now ignores
|
|
47
|
-
clicks inside any `[data-nuvox-portal]` node, fixing every
|
|
48
|
-
`Popover`/`DropdownMenu`/`Select`/`Combobox`/`ContextMenu`/
|
|
49
|
-
`CommandPalette` pairing at once instead of one at a time. See
|
|
50
|
-
`tests/nested-overlays.test.tsx`.
|
|
51
|
-
- `Carousel`'s `CarouselPrevious`/`CarouselNext` centered against the
|
|
52
|
-
whole `.nx-carousel` box (viewport + indicators + anything else
|
|
53
|
-
below it), not the viewport alone — correct only by coincidence when
|
|
54
|
-
the viewport was tall relative to everything else in the box.
|
|
55
|
-
`.nx-carousel` is now a CSS grid with the viewport pinned to its own
|
|
56
|
-
grid cell, which becomes the containing block for a same-cell
|
|
57
|
-
absolutely-positioned item (CSS Grid §10.1). This holds regardless
|
|
58
|
-
of `CarouselIndicators`' height or the viewport's own height, so an
|
|
59
|
-
explicit height is no longer required for correct centering (still
|
|
60
|
-
good practice for layout stability, just not load-bearing anymore).
|
|
61
|
-
Wrapping the buttons in your own `<div>` is still unsupported, for a
|
|
62
|
-
different reason than before: a plain wrapper isn't a positioning
|
|
63
|
-
context, so the buttons fall through to `.nx-carousel` regardless of
|
|
64
|
-
the grid fix.
|
|
65
|
-
- `docs-site`'s live "Controlled" `Carousel` demo and `carousel.mdx`'s
|
|
66
|
-
guidance both still reflected the pre-fix structure/requirements;
|
|
67
|
-
updated to match the fix above.
|
|
30
|
+
|
|
31
|
+
* Fixed multiple theme contrast and visibility issues across `neobrutalism`, `gradient`, and `glass` themes.
|
|
32
|
+
* Fixed `neobrutalism` warning colors and `Rating` star outlines.
|
|
33
|
+
* Improved text contrast in the `gradient` theme.
|
|
34
|
+
* Fixed `glass` theme borders becoming invisible on plain backgrounds.
|
|
35
|
+
* Fixed `Slider` value labels overlapping with field labels.
|
|
36
|
+
* Fixed nested dismissible overlays closing unexpectedly when interacting with their child overlays.
|
|
37
|
+
* Fixed `Carousel` navigation buttons being incorrectly centered relative to the full carousel container.
|
|
38
|
+
* Updated the carousel documentation and live examples to match the corrected behavior.
|
|
68
39
|
|
|
69
40
|
### Added
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
passes against the new one.
|
|
73
|
-
- `tests/theme-text-contrast.test.ts` — checks `text`/`textMuted`
|
|
74
|
-
against `background` for every theme, including gradient stops
|
|
75
|
-
extracted from non-solid backgrounds. `outline-text-contrast.test.ts`
|
|
76
|
-
only ever checked the outline-button `color-mix()` blend and
|
|
77
|
-
explicitly skipped non-solid backgrounds — a real coverage gap; this
|
|
78
|
-
is what would have caught the `gradient` regression above before it
|
|
79
|
-
shipped.
|
|
41
|
+
|
|
42
|
+
* Added regression tests for nested overlays and theme text contrast.
|
|
80
43
|
|
|
81
44
|
## [0.1.2]
|
|
82
45
|
|
|
83
46
|
### Fixed
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
number]` union in single-thumb mode. It's now generic, so a plain
|
|
89
|
-
`<Slider value={n} onChange={setN} />` infers `(value: number) =>
|
|
90
|
-
void` with no cast needed; range mode still infers the tuple.
|
|
91
|
-
- `nuvox/react` now re-exports ~20 prop-relevant types that previously
|
|
92
|
-
only lived in `"nuvox"` (`SliderValue`, `SelectOptionItem`,
|
|
93
|
-
`CommandItem`/`CommandGroup`, `TableCoreProps`, `DrawerSide`/
|
|
94
|
-
`DrawerSize`, `ModalSize`, `ProgressVariant`, and others) — a
|
|
95
|
-
consumer typing a handler no longer needs to import from both
|
|
96
|
-
entry points for one component.
|
|
47
|
+
|
|
48
|
+
* Added the missing `label` prop to `Select`.
|
|
49
|
+
* Improved `Slider` type inference for single-value and range modes.
|
|
50
|
+
* Re-exported commonly used component prop types from `nuvox/react`.
|
|
97
51
|
|
|
98
52
|
### Changed
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
the library on one convention (`onChange` was already the majority —
|
|
102
|
-
9 of 13 controlled components used it before this). No deprecated
|
|
103
|
-
alias was kept; see `CONTRACT.md` Rule 10 for why this was allowed
|
|
104
|
-
as a one-time pre-1.0 exception.
|
|
53
|
+
|
|
54
|
+
* **Breaking:** Renamed `onValueChange` to `onChange` for `Accordion`, `Combobox`, `Select`, and `Tabs` to provide a consistent controlled-component API.
|
|
105
55
|
|
|
106
56
|
### Added
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- `tests/no-on-value-change.test.ts` — fails the build if
|
|
112
|
-
`onValueChange` is ever reintroduced as a real prop anywhere in
|
|
113
|
-
`src/react/`. Added after an external review caught the drift above;
|
|
114
|
-
this is the enforcement so it can't silently happen again.
|
|
115
|
-
- `BUILDING-COMPONENTS.md`'s Category E section now explicitly states
|
|
116
|
-
the `value`/`onChange` convention applies there too — it previously
|
|
117
|
-
had no documented prop-naming rule at all for Tabs/Accordion's
|
|
118
|
-
controlled state, which is how they drifted differently from
|
|
119
|
-
Select/Combobox (Category D, which *did* already have this rule and
|
|
120
|
-
violated it).
|
|
57
|
+
|
|
58
|
+
* Added dedicated documentation for theme CSS variables.
|
|
59
|
+
* Added tests to prevent `onValueChange` from being reintroduced.
|
|
60
|
+
* Updated component-building guidelines to document the `value` / `onChange` convention.
|
|
121
61
|
|
|
122
62
|
## [0.1.1]
|
|
123
63
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
* Fixed multiple CSS and theming issues across several components.
|
|
67
|
+
* Improved styling consistency and theme behavior throughout the component library.
|
|
68
|
+
* Fixed various component-specific layout, spacing, and visual issues.
|
|
127
69
|
|
|
128
70
|
## [0.1.0]
|
|
129
71
|
|
|
130
|
-
Initial public release.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
72
|
+
Initial public release.
|
|
73
|
+
|
|
74
|
+
* Consolidated the core and React bindings into a single `nuvox` package.
|
|
75
|
+
* Deprecated and unpublished the previous 7 scoped `@nuvox/*` packages.
|
|
76
|
+
* Introduced a framework-agnostic core with React bindings.
|
|
77
|
+
* Added 40+ components.
|
|
78
|
+
* Added 11 themes.
|
|
79
|
+
* Added 490+ icons.
|