@nice2dev/ui 1.0.21 → 1.0.23

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 (123) hide show
  1. package/CHANGELOG.md +198 -0
  2. package/dist/NiceErrorBoundary-B0262Ffc.js +770 -0
  3. package/dist/NiceErrorBoundary-BNhkOZtq.cjs +1 -0
  4. package/dist/NiceErrorBoundary-BXOLv-zG.cjs +1 -0
  5. package/dist/NiceErrorBoundary-DsreAsON.cjs +1 -0
  6. package/dist/NiceErrorBoundary-DyPWyuki.js +770 -0
  7. package/dist/NiceErrorBoundary-HMfrXIir.js +770 -0
  8. package/dist/NiceForm-B7D1MASh.js +5383 -0
  9. package/dist/NiceForm-BA9zZdm8.cjs +382 -0
  10. package/dist/NiceForm-Ba9rvBoT.cjs +382 -0
  11. package/dist/NiceForm-DAGMJpgx.js +5383 -0
  12. package/dist/NiceForm-D_ifvkIf.js +5386 -0
  13. package/dist/NiceForm-kd4essRP.cjs +382 -0
  14. package/dist/NiceForm.css +1 -1
  15. package/dist/NiceModal-4DLpDmAl.js +95 -0
  16. package/dist/NiceModal-BVT9cZbf.cjs +1 -0
  17. package/dist/NiceModal-CiOYOWJy.cjs +1 -0
  18. package/dist/NiceModal-D2xJTZZf.cjs +1 -0
  19. package/dist/NiceModal-DZbHCdKq.js +95 -0
  20. package/dist/NiceModal-MeC1cNtW.js +95 -0
  21. package/dist/NiceModuleLifecyclePanel-BZMUuDad.js +6807 -0
  22. package/dist/NiceModuleLifecyclePanel-BiX4KxaK.js +6781 -0
  23. package/dist/NiceModuleLifecyclePanel-C54g5eV_.cjs +1 -0
  24. package/dist/NiceModuleLifecyclePanel-CDo0iVfr.js +6781 -0
  25. package/dist/NiceModuleLifecyclePanel-DEJpoz5a.cjs +1 -0
  26. package/dist/NiceModuleLifecyclePanel-DrDTpH6K.cjs +1 -0
  27. package/dist/NiceModuleLifecyclePanel.css +1 -1
  28. package/dist/NicePagination-3be3_sVK.js +171 -0
  29. package/dist/NicePagination-BCRsVzkR.cjs +1 -0
  30. package/dist/NicePagination-C8gx6Bcl.js +171 -0
  31. package/dist/NicePagination-CNxEAb4C.cjs +1 -0
  32. package/dist/NicePagination-Cg_WEf-R.cjs +1 -0
  33. package/dist/NicePagination-DQXdzx7W.js +171 -0
  34. package/dist/NicePinCodeInput-3WugpLHi.js +12240 -0
  35. package/dist/NicePinCodeInput-BD2bMmVF.cjs +696 -0
  36. package/dist/NicePinCodeInput-CSfRHs4v.cjs +419 -0
  37. package/dist/NicePinCodeInput-CjwFvOEQ.js +13092 -0
  38. package/dist/NicePinCodeInput-DCLRLR8a.js +13097 -0
  39. package/dist/NicePinCodeInput-DoBQnMj9.cjs +694 -0
  40. package/dist/NiceSavedQueryPanel-DFDDuKWd.js +6597 -0
  41. package/dist/NiceSavedQueryPanel-DT9v7kUB.cjs +596 -0
  42. package/dist/NiceSavedQueryPanel-DTU4eiIH.cjs +596 -0
  43. package/dist/NiceSavedQueryPanel-RLj3BnDR.js +6866 -0
  44. package/dist/NiceSavedQueryPanel-qtWETcRP.cjs +596 -0
  45. package/dist/NiceSavedQueryPanel-z29D7N_A.js +6584 -0
  46. package/dist/NiceTabs-B4dM77y_.js +1657 -0
  47. package/dist/NiceTabs-BTVTtRZR.cjs +1 -0
  48. package/dist/NiceTabs-BXGmot7J.cjs +1 -0
  49. package/dist/NiceTabs-CFA8DGYR.cjs +1 -0
  50. package/dist/NiceTabs-Cx9DN6QD.js +1657 -0
  51. package/dist/NiceTabs-DJdhKste.js +1657 -0
  52. package/dist/NiceWindow-5VCSBJrc.js +1592 -0
  53. package/dist/NiceWindow-BEFAUTLp.cjs +1 -0
  54. package/dist/NiceWindow-Cs6-Dbci.js +1592 -0
  55. package/dist/NiceWindow-DYw4NCeb.js +1592 -0
  56. package/dist/NiceWindow-O_g8StvA.cjs +1 -0
  57. package/dist/NiceWindow-a4wB_m30.cjs +1 -0
  58. package/dist/NiceWindow.css +1 -0
  59. package/dist/charts-BDr6B81L.js +4657 -0
  60. package/dist/charts-Ci_KrAoU.cjs +761 -0
  61. package/dist/charts-ClxW-i5q.js +4657 -0
  62. package/dist/charts-De7FYS1U.cjs +761 -0
  63. package/dist/charts-DjFvhCdD.js +4657 -0
  64. package/dist/charts-Dr_FIPZT.cjs +761 -0
  65. package/dist/charts.cjs +1 -1
  66. package/dist/charts.mjs +1 -1
  67. package/dist/core-BIz6zQ5u.cjs +122 -0
  68. package/dist/core-BYxnKGOi.js +23141 -0
  69. package/dist/core-CT5vpy5U.js +25248 -0
  70. package/dist/core-CZE5v34h.cjs +122 -0
  71. package/dist/core-Cjw8oBvC.cjs +96 -0
  72. package/dist/core-xcuNJ-DB.js +24948 -0
  73. package/dist/data-branching-B7dCyaWr.cjs +1 -0
  74. package/dist/data-branching-BPAeL45o.js +6133 -0
  75. package/dist/data-branching-Byz79mmA.cjs +1 -0
  76. package/dist/data-branching-DjuerHfS.js +6133 -0
  77. package/dist/data-branching.cjs +1 -1
  78. package/dist/data-branching.d.ts +3 -0
  79. package/dist/data-branching.mjs +1 -1
  80. package/dist/data.cjs +1 -1
  81. package/dist/data.d.ts +45 -7
  82. package/dist/data.mjs +1 -1
  83. package/dist/devops-C3Pmbnxc.js +7684 -0
  84. package/dist/devops-CrXz348W.cjs +17 -0
  85. package/dist/devops-DYFov8j3.js +7684 -0
  86. package/dist/devops-g4qcLXah.cjs +17 -0
  87. package/dist/devops.cjs +1 -1
  88. package/dist/devops.d.ts +5 -0
  89. package/dist/devops.mjs +1 -1
  90. package/dist/editors.cjs +1 -1
  91. package/dist/editors.d.ts +175 -1
  92. package/dist/editors.mjs +44 -41
  93. package/dist/feedback.cjs +1 -1
  94. package/dist/feedback.d.ts +1 -2
  95. package/dist/feedback.mjs +2 -2
  96. package/dist/index-9Gi1mNY7.js +67912 -0
  97. package/dist/index-AEO3cK4T.cjs +5194 -0
  98. package/dist/index-BMQ-F0zE.js +65054 -0
  99. package/dist/index-BNb9q4Ll.cjs +5490 -0
  100. package/dist/index-CjdfogVa.js +66711 -0
  101. package/dist/index-Di3Cgr1P.cjs +5518 -0
  102. package/dist/index.cjs +1 -1
  103. package/dist/index.css +1 -1
  104. package/dist/index.d.ts +752 -62
  105. package/dist/index.mjs +982 -963
  106. package/dist/lazy.cjs +1 -1
  107. package/dist/lazy.d.ts +11 -0
  108. package/dist/lazy.mjs +24 -24
  109. package/dist/navigation.cjs +1 -1
  110. package/dist/navigation.d.ts +30 -4
  111. package/dist/navigation.mjs +34 -34
  112. package/dist/no-code-CHvv1KjZ.cjs +332 -0
  113. package/dist/no-code-CyvddsYt.js +7133 -0
  114. package/dist/no-code-Dl3ima61.cjs +332 -0
  115. package/dist/no-code-ktRzFaET.js +7133 -0
  116. package/dist/no-code.cjs +1 -1
  117. package/dist/no-code.d.ts +11 -0
  118. package/dist/no-code.mjs +1 -1
  119. package/dist/overlays.cjs +1 -1
  120. package/dist/overlays.d.ts +38 -0
  121. package/dist/overlays.mjs +52 -52
  122. package/dist/style.css +7 -4
  123. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,203 @@
1
+ # [1.0.23] — 2026-06-06
2
+
3
+ ### Added — OmniVerk wishlist (DX quality-of-life)
4
+
5
+ - **`NiceSidebarNav`** — guest / read-only support: `disabledContextMenuActions`
6
+ (`'hide' | 'reorder' | 'rename' | 'newGroup' | 'collapseToggle'`) greys out the
7
+ listed destructive actions, and `readonly` is a shorthand that disables them all
8
+ while keeping navigation, expand/collapse, "Open in new tab" and "Copy link".
9
+ Plus granular section flags `showModeStrip` / `showSources` / `showFavorites` /
10
+ `showFooterPreferences` (`minimal` is now the shorthand for all four off).
11
+ - **`NiceLogLevel`** — added `'trace'` (below `debug`) to mirror standard loggers.
12
+ - **`NiceManifestSection<TSchema>`** is now generic + a `defineManifestSection()`
13
+ helper, so a literal JSON-Schema infers without `as JsonSchema` casts.
14
+ - **`NiceVariant`** — `'danger'` is now an accepted alias for `'error'`
15
+ (normalized via `normalizeVariant`); **`NiceSize`** accepts the full-name
16
+ aliases `'small' | 'medium' | 'large'` (→ `sm`/`md`/`lg` via `normalizeSize`).
17
+ - **`NiceLanguagePicker` / `NiceThemePicker`** — aligned trigger height in the
18
+ compact + ghost variant so the flag and the swatch share a baseline.
19
+
20
+ ### BREAKING — V2/V3 extermination (pre-production cleanup, no back-compat)
21
+
22
+ The unified view standard is now the only model. Test-phase cleanup; production
23
+ starts at 1.1.1.
24
+
25
+ - **Removed** the legacy builders and the v1 view model entirely (use
26
+ **`NiceViewEditor`** + **`NiceViewDefinition`** instead): `NiceFormBuilder` /
27
+ `NiceFormDesigner` (`@nice2dev/ui-forms`), `NiceViewBuilder` /
28
+ `NiceControlConfigurator` / `NiceDashboardDesigner` (`@nice2dev/ui-designers`),
29
+ `NiceDashboardStudio` / `NiceReportBuilder` (`@nice2dev/ui-bi`), plus the v1
30
+ `viewDefinition` model and the convergence adapters (`formSchemaToV2`,
31
+ `viewDefinitionToV2`, `dashboardToV2`, …). Form-schema types/utils moved to
32
+ `formTypes` / `formUtils` (`@nice2dev/ui-forms`); `NiceFormBuilderAI` now renders
33
+ via `NiceSchemaForm`.
34
+ - **Renamed** all view `*V2` → canonical (suffix dropped): `NiceViewDefinitionV2`→
35
+ `NiceViewDefinition`, `NiceViewRendererV2`→`NiceViewRenderer`, `NiceViewRowV2`/
36
+ `NiceViewCellV2`→`NiceViewRow`/`NiceViewCell`, `serialize/deserialize/
37
+ validateViewDefinitionV2`→suffixless, `entityToViewV2`→`entityToView`,
38
+ `EntityToViewV2Options`→`EntityToViewOptions`.
39
+ - **Workflow**: `NiceWorkflowDesignerV2` is now the canonical `NiceWorkflowDesigner`
40
+ (`@nice2dev/ui`); the older `@nice2dev/ui-designers` designer was removed and that
41
+ entry point re-exports the canonical one.
42
+ - **game-engine**: `SaveSystemV2` (engine) → `SaveSystem`; the older
43
+ `performance/SaveSystem` → `GameSaveSystem`.
44
+
45
+ ### View standard — follow-ups (also in 1.0.23)
46
+
47
+ - **`NiceViewEditor`** — optional `tutorial?` "?" guided-tour launcher (built-in EN
48
+ tour + i18n keys across en/pl/de/fr/es/uk; off by default).
49
+ - **`NiceViewRenderer`** — new `onRunScript` prop executes view `'script'` actions
50
+ via a host bridge (renderer never evaluates script itself; skipped with a warning
51
+ when no handler).
52
+ - Showcase: the OmniVerk sample module seeds views scaffolded via `entityToView`; the
53
+ NiceViewEditor demo shows the `tutorial` launcher.
54
+
55
+ # [1.0.22] — 2026-06-03
56
+
57
+ ### Added — Module Editor controls (OmniVerk brief §5, universal/reusable)
58
+
59
+ A set of framework-agnostic controls for building module/manifest editors. All
60
+ controls are execution-agnostic — the consumer supplies `onRun` / `onSend` /
61
+ `onTestConnection`, so sandboxing stays on the host side.
62
+
63
+ - **`NiceScriptRunner`** — inline script test runner: code editor + JSON input +
64
+ Run + captured logs + result pane. Never evals itself; consumer provides `onRun`.
65
+ - **`NiceLogConsole`** — reusable, controlled log/output panel (script runs,
66
+ webhook replays, or `NiceConsole`'s bottom dock). Level filtering + auto-scroll.
67
+ - **`NiceKeyValueEditor`** — key/value list editor (headers / env vars /
68
+ credentials) with masked secret rows, per-row enable, descriptions, key
69
+ autocomplete and duplicate-key detection.
70
+ - **`NiceLifecycleHooksEditor`** — bind handlers to lifecycle triggers with
71
+ per-binding order, enable flag and optional condition (generalises the
72
+ `NiceGitHooks` pattern for any trigger → handler scenario).
73
+ - **`NiceRevisionHistory`** — revision timeline with side-by-side diff
74
+ (`NiceCodeDiffEditor`) and rollback; inline or lazily-loaded content.
75
+ - **`NiceCodeEditor`** — new additive prop **`extraLibs`** feeds `.d.ts` sources
76
+ to Monaco for IntelliSense (e.g. a generated `ctx.d.ts`). Backward compatible.
77
+
78
+ Companion controls ship in sibling packages: `NiceSchemaForm` +
79
+ `NiceManifestEditor` (`@nice2dev/ui-forms`), `NicePaymentProviderConfig` /
80
+ `NicePaymentMethodSelector` + `NICE_PAYMENT_PROVIDER_PROFILES`
81
+ (`@nice2dev/ui-money`), and `NiceWebhookTester` (`@nice2dev/ui-api`). Each is
82
+ demoed (with feedback) under its own package's showcase page.
83
+
84
+ **Module-creation suite** (`@nice2dev/ui-forms`): `NiceModuleEditor` — an
85
+ end-to-end, headless-IO tool (browse → manifest + entities + i18n → validate →
86
+ save via a pluggable `NiceModuleDataProvider`) — plus `NiceEntityEditor`,
87
+ `NiceI18nEditor` and `NiceArrayField` (structured array-of-objects editing, which
88
+ also upgrades `NiceSchemaForm` so manifest arrays like `modules[]`/`dependencyRefs[]`
89
+ are edited in a grid instead of raw JSON). Demoed in the UI Forms showcase with a
90
+ File System Access adapter for editing real on-disk modules.
91
+
92
+ **Unified view standard (one editor for forms / grids / detail / dashboards / pages).**
93
+ The repo had several overlapping view models (form `FormSchema`, generic
94
+ `NiceViewDefinition`, BI `Dashboard`) and a mature runtime engine
95
+ (`NiceViewDefinitionV2` + `NiceViewRendererV2` + `NiceViewRegistry` + `NiceCodeGenerator`
96
+ for TS/Dart/RBAC + `NiceCrossPlatformSchema`) — but **no visual editor** for it.
97
+ This release adds that editor and converges the rest onto the one model:
98
+
99
+ - **`NiceViewEditor`** (`@nice2dev/ui`) — the single visual authoring tool for
100
+ `NiceViewDefinitionV2`: palette (control registry) · canvas (rows/cells +
101
+ colSpan, Design / Preview / Source) · properties (props · data **binding**
102
+ `source/field/twoWay` · **role-based permissions** · events → no-code actions) ·
103
+ data-sources panel · live preview via `NiceViewRendererV2`. A BI control is just
104
+ a control bound to a data source, so charts/KPIs work inside any view (incl. forms).
105
+ - **`NiceActionBuilder`** (`@nice2dev/ui`) — visual no-code editor over the typed
106
+ `NiceViewAction[]` (navigate / apiCall / setField / refresh / dialog / **script** …).
107
+ - **`entityToViewV2`** (`@nice2dev/ui`) — scaffold a form / detail / grid view from
108
+ an entity (dataType → control mapping); defaults to the OmniVerk
109
+ `ModuleEntity`/`ModuleEntityField` shape but works with any `fields[]` entity.
110
+ - **V2 inline scripts** — `NiceViewAction` gains a `'script'` type + `script`/`language`
111
+ (inline JS/C#, executed by the host — never the UI). Additive, back-compatible.
112
+ - **`NiceModuleEditor`** gains a **Views** tab + `NiceModuleFiles.views` — author a
113
+ module's views (and "New view from entity") right inside the module editor; views
114
+ serialize as `*.view.json` and feed the existing `NiceCodeGenerator`.
115
+ - **Convergence adapters** (back-compatible; the legacy builders keep working):
116
+ `formSchemaToV2` / `v2ToFormSchema` (`@nice2dev/ui-forms`),
117
+ `viewDefinitionToV2` / `v2ToViewDefinition` (`@nice2dev/ui-designers`),
118
+ `dashboardToV2` (`@nice2dev/ui-bi`). `NiceViewEditor` is the recommended path
119
+ going forward; the legacy `NiceFormBuilder`/`NiceFormDesigner`/`NiceViewBuilder`/
120
+ `NiceDashboardDesigner`/`NiceDashboardStudio`/`NiceReportBuilder` converge onto it
121
+ via these adapters (hard `@deprecated` tagging to follow once consumers migrate).
122
+ (`@nice2dev/ui-bi` gains a `@nice2dev/ui` devDependency for the type-only adapter.)
123
+
124
+ **Tutorials** — a universal, decoupled tutorial launcher so any editor can expose
125
+ an optional "?" button that runs a translated `NiceTutorial`. `@nice2dev/ui-core`
126
+ adds `NiceTutorialButton`, `NiceTutorialsProvider`, `useNiceTutorials` /
127
+ `useNiceTutorialsEnabled`, `resolveTutorial`/`resolveStepsI18n` and the
128
+ `NiceComponentTutorial` prop type; `@nice2dev/ui` adds `NiceTutorialHost` (mount
129
+ once; bridges to `NiceTutorial`; `enabled` is the global "hide all tutorials"
130
+ switch). Steps are i18n-key aware (`t(key, enDefault)` → falls back to the inline
131
+ English). Editors opt in via an optional `tutorial?` prop (off by default).
132
+ Adopted with built-in EN + PL tours — `@nice2dev/ui-forms`: `NiceModuleEditor`,
133
+ `NiceManifestEditor`, `NiceSchemaForm`, `NiceEntityEditor`, `NiceI18nEditor`,
134
+ `NiceFormBuilder`, `NiceFormDesigner`; `@nice2dev/ui-money`:
135
+ `NicePaymentProviderConfig`; `@nice2dev/ui-api`: `NiceWebhookTester`,
136
+ `NiceAPIDesigner`, `NiceAPITester`, `NiceIntegrationBuilder`. `@nice2dev/ui` —
137
+ **all editors/designers/builders/studios**: `NiceCodeEditor`, `NiceMarkdownEditor`,
138
+ `NiceHtmlEditor`, `NiceDocumentEditor`, `NiceScriptRunner`, `NiceKeyValueEditor`,
139
+ `NiceLifecycleHooksEditor`, `NiceRevisionHistory`, `NiceKanbanBoard`,
140
+ `NiceQueryBuilder`, `NiceFilterBuilder`, `NiceWorkflowDesigner`,
141
+ `NiceLowCodeStudio`, `NiceComponentDesigner`, `NicePageBuilder`,
142
+ `NiceStateDesigner`, `NiceTestBuilder`, `NiceThemeBuilder`/`NiceThemeDesigner`,
143
+ `NiceDiagramDesigner`, `NiceReportBuilder`, `NiceERPReportDesigner`,
144
+ `NiceRecipeEditor`, `NicePipelineEditor`, `NiceMergeRequestBuilder`,
145
+ `NiceAutomationRuleEditor`, `NiceSceneActionBuilder`, `NiceBackupTagEditor`,
146
+ `NiceDataMergeBuilder`, `NiceInvoiceLineEditor`, `NiceImageEditor`,
147
+ `NiceCropEditor`, `NicePDFAnnotationEditor`, `NiceVideoEditor`. Domain packages
148
+ (import the launcher from `@nice2dev/ui`) — `ui-designers`:
149
+ `NiceViewBuilder`, `NiceDashboardDesigner`, `NiceWorkflowDesigner`; `ui-3d`:
150
+ `NiceMaterialEditor`, `NiceArmatureEditor`, `NiceMorphTargetEditor`,
151
+ `NiceTerrainEditor`, `NiceParticleEditor`, `NiceUVEditor`; `ui-graphics`:
152
+ `NiceFontEditor`, `NiceIconEditor`, `NiceUIDesigner`; `game-engine`:
153
+ `NiceGameEditor`, `NiceLevelEditor`, `NiceMaterialEditor`, `NiceParticleEditor`;
154
+ `ui-buildings`: `NiceFloorPlanEditor`, `NiceSceneEditor`, `NiceAutomationEditor`,
155
+ `NiceSpatialEditor`; `ui-diagrams`: `NiceDecisionTreeEditor`, `NiceDiagramEditor`;
156
+ `ui-enterprise`: `NiceContractEditor`, `NiceInvoiceDesigner`; `ui-presentations`:
157
+ `NicePresentationEditor`. Standalone packages (which gain a `@nice2dev/ui-core`
158
+ peer dependency and import the launcher from it) — `ui-bi`:
159
+ `NiceDashboardStudio`, `NiceReportBuilder`, `NiceETLBuilder`; `ui-video`:
160
+ `NiceVideoEditor`; `ui-ai`: `NiceMLStudio`; `ui-math`: `NiceMathEditor`;
161
+ `ui-audio`: `NiceDmxEditor`. (`ui-api` likewise gains a `@nice2dev/ui-core` peer
162
+ dependency for the launcher button.) **~75 editors across 17 packages now expose
163
+ the optional "?" tour (off by default), every tour with EN + PL.**
164
+
165
+ ### Fixed
166
+
167
+ - **Theming** — the new controls now drive all colours through the `--nice-*`
168
+ theme alias layer (e.g. `--nice-surface`, `--nice-bg-secondary`) instead of
169
+ undefined token names, so they follow the active light/dark theme.
170
+ `NiceLogConsole` no longer hard-codes a dark palette (the `theme` prop was
171
+ removed; it inherits the app theme).
172
+
1
173
  # [1.0.21] — 2026-05-30
2
174
 
175
+ ### Fixed / Reworked — NiceTutorial visual + UX overhaul
176
+
177
+ - **Tooltip is now a properly themed card** (background, border, shadow,
178
+ padding). Previously the component shipped without a stylesheet so the
179
+ body floated invisibly on the dark overlay.
180
+ - **Spotlight padding default `8 → 0`** — the highlight ring now sits flush
181
+ against the target. Keep the buffer by setting `step.highlightPadding`
182
+ per-step.
183
+ - **`buttonsPlacement` prop** — controls where Skip/Prev/Next/Play live:
184
+ - `'floating-bottom'` (new default): fixed bottom-center bar that
185
+ never jumps between steps and never overlaps the tooltip body.
186
+ - `'inline'`: legacy behaviour (footer inside the tooltip).
187
+ - **`buttonsDisplay` prop** — `'icon'` (new default), `'icon-text'`, or
188
+ `'text'` (legacy). Icon mode renders round 32×32 buttons; pill shape
189
+ for icon-text / text.
190
+ - **Autoplay support** — opt-out via `showAutoplay={false}` (default `true`):
191
+ PLAY/PAUSE button, progress bar, and speed slider (range configurable
192
+ via `autoplaySpeedRange`, default 2–15 s). `autoplayInterval` sets the
193
+ initial speed (default 5000 ms). `onAutoplayChange` callback.
194
+ - **New `labels` entries** — `play`, `pause`, `speed`, `close`. NavShell
195
+ zasila je z istniejących kluczy `tutorial.*` (EN + PL).
196
+ - **Six inline SVG icons** (close / prev / next / skip / play / pause)
197
+ matching the existing house style. No new peer deps.
198
+ - **i18n** — nowe klucze `tutorial.play`, `tutorial.pause`, `tutorial.speed`,
199
+ `tutorial.close` (EN + PL).
200
+
3
201
  ### Added — NiceNavShell sticky body slots
4
202
 
5
203
  - 4 nowe propsy: `showStickyHeader` (default `false`), `stickyHeaderContent`,