@neo-ui-kit/react 1.0.1 → 1.0.2

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/README.md CHANGED
@@ -25,7 +25,7 @@ import "@neo-ui-kit/react/styles.css";
25
25
  To test repository changes before publishing, run `npm run package` from the repository root and install the resulting archive in a separate application:
26
26
 
27
27
  ```bash
28
- npm install /path/to/adui/release/neo-ui-kit-react-1.0.1.tgz
28
+ npm install /path/to/adui/release/neo-ui-kit-react-1.0.2.tgz
29
29
  ```
30
30
 
31
31
  Maintainers publish new versions from `Pro100Dimka/adui` using the `release.yml` GitHub Actions workflow, a matching `v<version>` tag, and the `npm-publication` environment. npm trusts its OIDC identity; no `NPM_TOKEN` is required. The workflow checks the project and packed consumer before publishing the tested archive. Published `1.0.0` cannot be overwritten: code and README changes in npm require a new package version. See the [repository release instructions](https://github.com/Pro100Dimka/adui#npm-пакет).
@@ -182,6 +182,13 @@ import { ThemeProvider, useMotion } from "@neo-ui-kit/react/core";
182
182
 
183
183
  Canvas-rendered volume knob. Drag near the edge to rotate, drag from the center to move linearly, click the outer scale to jump. Wheel and arrow keys change the value, Shift gives a fine step, PageUp/PageDown change by 10, Home/End set 0/100, Escape cancels a drag, double-click resets. `onValueChange` fires while adjusting, `onValueCommit` after the gesture. `readOnly` turns it into a gauge.
184
184
 
185
+ ## 1.0.2 release notes
186
+
187
+ - Restore the complete visualizer on the original documentation route and name it `QuantumBackground`.
188
+ - Export `QuantumBackground` and `QuantumBackgroundProps`. `QuantumFieldExperience` remains a compatible alias of the same component; existing imports keep working.
189
+ - Preserve the original renderer, particles, post-processing, audio controls and theme integration. The separate lightweight `QuantumField` primitive retains its existing API.
190
+ - Both legacy documentation links, `quantum-field` and `quantum-field-experience`, open the `QuantumBackground` page.
191
+
185
192
  ## 1.0.1 release notes
186
193
 
187
194
  - Clarifies npm installation and documents GitHub Actions trusted publishing through OIDC.
@@ -209,6 +216,17 @@ Version 1.0.0 is the new NEO UI starting point. Rebuild the local archive after
209
216
 
210
217
  Repository evidence, browser runners, before/after measurements and coverage limits are recorded in `evidence/`. Unit and renderer checks complement actual browser geometry and interaction checks; they do not certify untested physical devices or browser engines.
211
218
 
212
- ## Quantum Field experience
219
+ ## QuantumBackground
220
+
221
+ `QuantumBackground` is the complete Quantum Fields visualizer inside an iframe. A compact, transparent field sits above the kit's `FilePicker`, externally controlled `AudioPlayer`, tooltip-labelled microphone/screenshot/fullscreen actions, field selector, and sensitivity control. The selected song name appears on the file button; playback and seeking use the visualizer's single audio source. Other controls live in a closed-by-default “Тонкая настройка” section below the field. It follows the nearest `ThemeProvider` palette. This experience includes MIT-licensed upstream code and CDN-loaded Three.js modules; the upstream notice is shipped as `UPSTREAM-LICENSE.txt`. It is not mounted in overview-card previews.
222
+
223
+ ```tsx
224
+ import { QuantumBackground, ThemeProvider } from "@neo-ui-kit/react";
225
+ import "@neo-ui-kit/react/styles.css";
226
+
227
+ <ThemeProvider theme="violet">
228
+ <QuantumBackground />
229
+ </ThemeProvider>
230
+ ```
213
231
 
214
- `QuantumFieldExperience` restores the full Quantum Fields visualizer inside an iframe. A compact, transparent field sits above the kit's `FilePicker`, externally controlled `AudioPlayer`, tooltip-labelled microphone/screenshot/fullscreen actions, field selector, and sensitivity control. The selected song name appears on the file button; playback and seeking use the visualizer's single audio source. Other controls live in a closed-by-default “Тонкая настройка” section below the field. It follows the nearest `ThemeProvider` palette. This experience includes MIT-licensed upstream code and CDN-loaded Three.js modules; the upstream notice is shipped as `UPSTREAM-LICENSE.txt`. It is not mounted in overview-card previews. For a smaller self-authored field without transport controls, use `QuantumField` directly.
232
+ `QuantumBackgroundProps` accepts div attributes and an optional `particleBudget` cap. Leave the cap unset for the original adaptive particle count. `QuantumFieldExperience` and `QuantumFieldExperienceProps` remain compatible aliases. The separate lightweight `QuantumField` primitive documented above keeps its original props and rendering; it is not an alias of the full background.
@@ -13,10 +13,14 @@ export declare const quantumFieldExperienceControls: readonly {
13
13
  label: string;
14
14
  controls: readonly Control[];
15
15
  }[];
16
- export type QuantumFieldExperienceProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
16
+ export type QuantumBackgroundProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
17
17
  /** Maximum number of visible particles across both field layers. Adaptive quality may draw fewer. */
18
18
  particleBudget?: number;
19
19
  };
20
20
  /** Full MIT-licensed renderer; the host kit owns the controls and theme. */
21
- export declare function QuantumFieldExperience({ className, particleBudget, ...props }: QuantumFieldExperienceProps): import("react").JSX.Element;
21
+ export declare function QuantumBackground({ className, particleBudget, ...props }: QuantumBackgroundProps): import("react").JSX.Element;
22
+ /** @deprecated Use QuantumBackground. The original import remains compatible. */
23
+ export declare const QuantumFieldExperience: typeof QuantumBackground;
24
+ /** @deprecated Use QuantumBackgroundProps. */
25
+ export type QuantumFieldExperienceProps = QuantumBackgroundProps;
22
26
  export {};
package/dist/index.d.ts CHANGED
@@ -122,8 +122,8 @@ export { NeonWaves } from "./components/artwork/NeonWaves/NeonWaves";
122
122
  export type { NeonWavesProps } from "./components/artwork/NeonWaves/NeonWaves";
123
123
  export { QuantumField, quantumFieldModes, quantumFieldResolution, quantumFieldAudio } from "./components/artwork/QuantumField/QuantumField";
124
124
  export type { QuantumFieldProps, QuantumFieldMode, QuantumFieldQuality, QuantumAudioFrame } from "./components/artwork/QuantumField/QuantumField";
125
- export { QuantumFieldExperience } from "./components/artwork/QuantumField/QuantumFieldExperience";
126
- export type { QuantumFieldExperienceProps } from "./components/artwork/QuantumField/QuantumFieldExperience";
125
+ export { QuantumBackground, QuantumFieldExperience } from "./components/artwork/QuantumField/QuantumFieldExperience";
126
+ export type { QuantumBackgroundProps, QuantumFieldExperienceProps } from "./components/artwork/QuantumField/QuantumFieldExperience";
127
127
  export { createQuantumFieldAudio } from "./components/artwork/QuantumField/audio";
128
128
  export { Spectrum } from "./components/artwork/Spectrum/Spectrum";
129
129
  export type { SpectrumProps } from "./components/artwork/Spectrum/Spectrum";
package/dist/index.js CHANGED
@@ -8228,7 +8228,7 @@ var TransportControls = /* @__PURE__ */ memo(function TransportControls2({ send,
8228
8228
  ] })
8229
8229
  ] });
8230
8230
  });
8231
- function QuantumFieldExperience({ className = "", particleBudget, ...props }) {
8231
+ function QuantumBackground({ className = "", particleBudget, ...props }) {
8232
8232
  const frame = useRef28(null);
8233
8233
  const viewport = useRef28(null);
8234
8234
  const theme = useThemePalette();
@@ -8292,19 +8292,20 @@ function QuantumFieldExperience({ className = "", particleBudget, ...props }) {
8292
8292
  send("palette", [theme.primary, theme.secondary]);
8293
8293
  }, [ready, theme.primary, theme.secondary]);
8294
8294
  return /* @__PURE__ */ jsxs39("div", { "data-ad-component": "QuantumFieldExperience", className: `ad-quantum-field-experience ${className}`.trim(), ...props, children: [
8295
- /* @__PURE__ */ jsx48("div", { className: "ad-qf-viewport", ref: viewport, children: mounted && /* @__PURE__ */ jsx48("iframe", { ref: frame, title: "Quantum Field visualizer", srcDoc: reference_default, allow: "microphone", "data-particle-budget": normalizedBudget }) }),
8295
+ /* @__PURE__ */ jsx48("div", { className: "ad-qf-viewport", ref: viewport, children: mounted && /* @__PURE__ */ jsx48("iframe", { ref: frame, title: "Quantum Background visualizer", srcDoc: reference_default, allow: "microphone", "data-particle-budget": normalizedBudget }) }),
8296
8296
  /* @__PURE__ */ jsxs39("div", { className: "ad-qf-controls", children: [
8297
8297
  /* @__PURE__ */ jsxs39("div", { className: "ad-qf-toolbar", children: [
8298
8298
  /* @__PURE__ */ jsx48(TransportControls, { send, viewport, receive: transportReceiver }),
8299
8299
  /* @__PURE__ */ jsx48("div", { className: "ad-qf-setting-grid ad-qf-essentials", children: essentialControls.map(renderControl) })
8300
8300
  ] }),
8301
8301
  /* @__PURE__ */ jsxs39(CollapsibleSection, { title: "\u0422\u043E\u043D\u043A\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430", description: "\u0421\u0440\u0435\u0434\u0430, \u043A\u0430\u043C\u0435\u0440\u0430, \u044D\u0444\u0444\u0435\u043A\u0442\u044B \u0438 \u0440\u0435\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u0437\u0432\u0443\u043A", icon: "settings", defaultOpen: false, children: [
8302
- /* @__PURE__ */ jsx48(Tabs, { label: "\u0422\u043E\u043D\u043A\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 Quantum Field", items: detailedGroups.map(({ id, label }) => ({ value: id, label })), value: tab, onValueChange: setTab }),
8302
+ /* @__PURE__ */ jsx48(Tabs, { label: "\u0422\u043E\u043D\u043A\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 Quantum Background", items: detailedGroups.map(({ id, label }) => ({ value: id, label })), value: tab, onValueChange: setTab }),
8303
8303
  /* @__PURE__ */ jsx48("div", { className: "ad-qf-control-panel", role: "tabpanel", "aria-label": group.label, children: /* @__PURE__ */ jsx48("div", { className: "ad-qf-setting-grid", children: group.controls.filter(({ key }) => !enabledBy[key] || settings[enabledBy[key]] === true).map(renderControl) }) })
8304
8304
  ] })
8305
8305
  ] })
8306
8306
  ] });
8307
8307
  }
8308
+ var QuantumFieldExperience = QuantumBackground;
8308
8309
 
8309
8310
  // src/components/artwork/QuantumField/audio.ts
8310
8311
  function createQuantumFieldAudio() {
@@ -9570,6 +9571,7 @@ export {
9570
9571
  Planet,
9571
9572
  Popover,
9572
9573
  ProgressBar,
9574
+ QuantumBackground,
9573
9575
  QuantumField,
9574
9576
  QuantumFieldExperience,
9575
9577
  Reveal,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neo-ui-kit/react",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "NEO UI — React component library",
5
5
  "type": "module",
6
6
  "license": "MIT",