@nice2dev/ui 1.0.16 → 1.0.18

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 (172) hide show
  1. package/CHANGELOG.md +252 -0
  2. package/dist/NiceAlertDialog.doc-BST0-aVs.cjs +14 -0
  3. package/dist/NiceAlertDialog.doc-GRpJU_5Y.js +38 -0
  4. package/dist/NiceAnimatePresence.doc-BrttRpeS.js +36 -0
  5. package/dist/NiceAnimatePresence.doc-IdEWrSnT.cjs +12 -0
  6. package/dist/NiceCalendarScheduler.doc-Cc-DFMhR.js +33 -0
  7. package/dist/NiceCalendarScheduler.doc-TPe0kRBN.cjs +9 -0
  8. package/dist/NiceCameraFeed.doc-BJl0gdWv.js +31 -0
  9. package/dist/NiceCameraFeed.doc-Bt4eZ8MH.cjs +7 -0
  10. package/dist/NiceChip.doc-Bccf4IQe.cjs +7 -0
  11. package/dist/NiceChip.doc-DEsqjL7z.js +31 -0
  12. package/dist/NiceCombobox.doc-8hMzrsdM.js +34 -0
  13. package/dist/NiceCombobox.doc-C5IPnVuz.cjs +10 -0
  14. package/dist/NiceConfigProvider.doc-CKIudO44.js +32 -0
  15. package/dist/NiceConfigProvider.doc-bMLQj3Zx.cjs +8 -0
  16. package/dist/NiceCronEditor.doc-BThdELxx.js +31 -0
  17. package/dist/NiceCronEditor.doc-w_TbOWFo.cjs +7 -0
  18. package/dist/NiceDataList.doc-DHXrpTPT.cjs +9 -0
  19. package/dist/NiceDataList.doc-R8SchHqZ.js +33 -0
  20. package/dist/NiceDiagram.doc-CASS0Tnj.cjs +8 -0
  21. package/dist/NiceDiagram.doc-DGX-Hwhg.js +32 -0
  22. package/dist/NiceDocPage.doc-BVBe27kj.cjs +1 -0
  23. package/dist/NiceDocPage.doc-CDcL3Sqt.js +25 -0
  24. package/dist/NiceDrawingCanvas.doc-DYYFKKMW.js +32 -0
  25. package/dist/NiceDrawingCanvas.doc-wa684gbC.cjs +8 -0
  26. package/dist/NiceDropdown.doc-D2NS9hBT.js +35 -0
  27. package/dist/NiceDropdown.doc-dAgER8da.cjs +11 -0
  28. package/dist/NiceDropzone.doc-CVVNc9SE.cjs +9 -0
  29. package/dist/NiceDropzone.doc-aeajYWqU.js +33 -0
  30. package/dist/NiceEnergyMonitor.doc-BBnVKuwf.js +32 -0
  31. package/dist/NiceEnergyMonitor.doc-lf6CCIYi.cjs +8 -0
  32. package/dist/NiceErrorBoundary-B1Y6X3Ya.js +762 -0
  33. package/dist/NiceErrorBoundary-COY0cEsF.js +762 -0
  34. package/dist/NiceErrorBoundary-CR-_ZScD.cjs +1 -0
  35. package/dist/NiceErrorBoundary-DM5IMdOr.cjs +1 -0
  36. package/dist/NiceExpressionBuilder.doc-CTjqEcZR.cjs +8 -0
  37. package/dist/NiceExpressionBuilder.doc-Cu_ORFhd.js +32 -0
  38. package/dist/NiceFileExplorer.doc-B0aN041v.js +32 -0
  39. package/dist/NiceFileExplorer.doc-DNHYQF_t.cjs +8 -0
  40. package/dist/NiceFloatingActionButton.doc-BOlJwq4S.cjs +7 -0
  41. package/dist/NiceFloatingActionButton.doc-oYnwvMP9.js +31 -0
  42. package/dist/NiceFontPicker.doc-B10vOqeF.cjs +8 -0
  43. package/dist/NiceFontPicker.doc-DuPp0cDP.js +32 -0
  44. package/dist/NiceForm-BSkm9-yP.js +5357 -0
  45. package/dist/NiceForm-COk1rNVa.js +5357 -0
  46. package/dist/NiceForm-CU8Dldq-.cjs +382 -0
  47. package/dist/NiceForm-DDN-yf30.cjs +382 -0
  48. package/dist/NiceGestureHandler.doc-9GGvVnM5.cjs +8 -0
  49. package/dist/NiceGestureHandler.doc-BduQU3SA.js +32 -0
  50. package/dist/NiceHeader.doc-Cxoy_f_k.cjs +6 -0
  51. package/dist/NiceHeader.doc-DjAVl-T4.js +30 -0
  52. package/dist/NiceImage.doc-COy4iVy1.js +34 -0
  53. package/dist/NiceImage.doc-CvnaTRj8.cjs +10 -0
  54. package/dist/NiceInPlaceEditor.doc-8nC6Kqvn.cjs +1 -0
  55. package/dist/NiceInPlaceEditor.doc-gF1XPyu5.js +25 -0
  56. package/dist/NiceInteractiveTimeline.doc-BTeASFR4.js +50 -0
  57. package/dist/NiceInteractiveTimeline.doc-WMOVQhMe.cjs +11 -0
  58. package/dist/NiceJsonEditor.doc-BpVa-AlY.js +31 -0
  59. package/dist/NiceJsonEditor.doc-DeyoVDQw.cjs +7 -0
  60. package/dist/NiceMegaMenu.doc-CO34gN43.cjs +7 -0
  61. package/dist/NiceMegaMenu.doc-DpchTBL6.js +31 -0
  62. package/dist/NiceMentionInput.doc-O0W58Unu.js +32 -0
  63. package/dist/NiceMentionInput.doc-ZSPjBsZc.cjs +8 -0
  64. package/dist/NiceModal-9uxWPAE_.cjs +1 -0
  65. package/dist/NiceModal-BPDP1Fi-.js +95 -0
  66. package/dist/NiceModal-CIITx65V.cjs +1 -0
  67. package/dist/NiceModal-CN23FZsc.js +95 -0
  68. package/dist/NiceModuleLifecyclePanel-BDnsr5ZW.js +6349 -0
  69. package/dist/NiceModuleLifecyclePanel-DF0Ay1oH.js +6349 -0
  70. package/dist/NiceModuleLifecyclePanel-F1uN0gMh.cjs +1 -0
  71. package/dist/NiceModuleLifecyclePanel-g_ZVFzoE.cjs +1 -0
  72. package/dist/NiceMotion.doc-COF5BldG.cjs +9 -0
  73. package/dist/NiceMotion.doc-utheTBgM.js +33 -0
  74. package/dist/NiceMultiColumnComboBox.doc-Ben0Q0J0.cjs +1 -0
  75. package/dist/NiceMultiColumnComboBox.doc-CK1DppZI.js +25 -0
  76. package/dist/NiceNotificationList.doc-CBWusjJX.cjs +7 -0
  77. package/dist/NiceNotificationList.doc-D7lQIxK0.js +31 -0
  78. package/dist/NiceOfflineSync.doc-BLQFyOf2.cjs +8 -0
  79. package/dist/NiceOfflineSync.doc-CKWFmR3b.js +32 -0
  80. package/dist/NicePagination-B4U0LwZy.js +171 -0
  81. package/dist/NicePagination-CGQf54a9.cjs +1 -0
  82. package/dist/NicePagination-D829pF7A.cjs +1 -0
  83. package/dist/NicePagination-D89Kst8b.js +171 -0
  84. package/dist/NicePinCodeInput-Bf_QcaPW.cjs +419 -0
  85. package/dist/NicePinCodeInput-Co42gC9R.js +11875 -0
  86. package/dist/NicePinCodeInput-DG_-eXXJ.cjs +419 -0
  87. package/dist/NicePinCodeInput-g-yUiepm.js +11875 -0
  88. package/dist/NicePreview.doc-Cl7_5MVR.js +30 -0
  89. package/dist/NicePreview.doc-atKISvmp.cjs +6 -0
  90. package/dist/NicePropertyGrid.doc-D6xljYe1.cjs +7 -0
  91. package/dist/NicePropertyGrid.doc-nX2etusg.js +31 -0
  92. package/dist/NiceRadio.doc-BTURz62X.js +27 -0
  93. package/dist/NiceRadio.doc-Cc8-1vbn.cjs +3 -0
  94. package/dist/NiceRecurrencePicker.doc-78HjPJm0.js +31 -0
  95. package/dist/NiceRecurrencePicker.doc-vC2YmCXF.cjs +7 -0
  96. package/dist/NiceRichTextEditor.doc-ClPCkzCd.cjs +6 -0
  97. package/dist/NiceRichTextEditor.doc-CtmV9UvX.js +30 -0
  98. package/dist/NiceSavedQueryPanel-BuvMBwIf.cjs +596 -0
  99. package/dist/NiceSavedQueryPanel-CE3QR4RY.js +6446 -0
  100. package/dist/NiceSavedQueryPanel-DR-j6eA5.js +6446 -0
  101. package/dist/NiceSavedQueryPanel-DSnj-3Es.cjs +596 -0
  102. package/dist/NiceSceneSelector.doc-CY2OmaWQ.cjs +7 -0
  103. package/dist/NiceSceneSelector.doc-UsVgDrw1.js +31 -0
  104. package/dist/NiceScrollArea.doc-C6Y-odUa.js +27 -0
  105. package/dist/NiceScrollArea.doc-LdxDrGDY.cjs +3 -0
  106. package/dist/NiceSheet.doc-CsIu3Y1G.cjs +11 -0
  107. package/dist/NiceSheet.doc-DLfSY-MA.js +35 -0
  108. package/dist/NiceSpeedDial.doc-CSWvNR9n.cjs +7 -0
  109. package/dist/NiceSpeedDial.doc-DqnpBcMy.js +31 -0
  110. package/dist/NiceSplitPane.doc-Ck_FvdL6.cjs +9 -0
  111. package/dist/NiceSplitPane.doc-Di68JZuy.js +33 -0
  112. package/dist/NiceSpotlight.doc-CM4PnsHE.js +34 -0
  113. package/dist/NiceSpotlight.doc-Dm_B-kUJ.cjs +10 -0
  114. package/dist/NiceStepNavigation.doc-DXraCs7t.js +31 -0
  115. package/dist/NiceStepNavigation.doc-TSy2dWmf.cjs +7 -0
  116. package/dist/NiceSteps.doc-C_mkhnez.cjs +10 -0
  117. package/dist/NiceSteps.doc-PW1zubHM.js +34 -0
  118. package/dist/NiceSwitch.doc-CLc7OxrE.cjs +6 -0
  119. package/dist/NiceSwitch.doc-dGMMY4es.js +30 -0
  120. package/dist/NiceTabs-32xjguOv.cjs +1 -0
  121. package/dist/NiceTabs-B6E7-er3.cjs +1 -0
  122. package/dist/NiceTabs-Blk0h4jY.js +1624 -0
  123. package/dist/NiceTabs-J2zAw8vC.js +1624 -0
  124. package/dist/NiceTransition.doc-BmImVoB8.js +35 -0
  125. package/dist/NiceTransition.doc-GA1N91ON.cjs +11 -0
  126. package/dist/NiceTree.doc-D7SCXljC.js +40 -0
  127. package/dist/NiceTree.doc-DZx3hUwY.cjs +16 -0
  128. package/dist/NiceUnitConverter.doc-DmiyYOH_.cjs +10 -0
  129. package/dist/NiceUnitConverter.doc-YnzD3uKT.js +34 -0
  130. package/dist/NiceVirtualGrid.doc-DI2c9ckY.js +35 -0
  131. package/dist/NiceVirtualGrid.doc-rtwudxTG.cjs +11 -0
  132. package/dist/NiceVirtualList.doc-BpoTiXoV.js +31 -0
  133. package/dist/NiceVirtualList.doc-C8q-Hfl0.cjs +7 -0
  134. package/dist/NiceWindow-6F_z4_18.js +1409 -0
  135. package/dist/NiceWindow-B4jA_-hi.js +1409 -0
  136. package/dist/NiceWindow-Bnh6rKt4.cjs +1 -0
  137. package/dist/NiceWindow-UpKllge7.cjs +1 -0
  138. package/dist/charts-0BEMJ0Xt.js +4657 -0
  139. package/dist/charts-CbxmU6Z2.cjs +761 -0
  140. package/dist/charts-DXkFBiD4.cjs +761 -0
  141. package/dist/charts-SHnY1_oD.js +4645 -0
  142. package/dist/charts.cjs +1 -1
  143. package/dist/charts.d.ts +19 -19
  144. package/dist/charts.mjs +1 -1
  145. package/dist/core-BIA5_uSq.js +22316 -0
  146. package/dist/core-DQYnL6uf.cjs +96 -0
  147. package/dist/core-Dpfb_THi.js +22316 -0
  148. package/dist/core-DqlrEV-9.cjs +96 -0
  149. package/dist/data.cjs +1 -1
  150. package/dist/data.mjs +1 -1
  151. package/dist/editors.cjs +1 -1
  152. package/dist/editors.mjs +3 -3
  153. package/dist/feedback.cjs +1 -1
  154. package/dist/feedback.d.ts +10 -10
  155. package/dist/feedback.mjs +2 -2
  156. package/dist/index-BjBsn6ad.cjs +5194 -0
  157. package/dist/index-C2Uoywo9.js +63852 -0
  158. package/dist/index-GIkNMdRp.js +61439 -0
  159. package/dist/index-pQGuLKEE.cjs +5194 -0
  160. package/dist/index.cjs +1 -1
  161. package/dist/index.css +1 -1
  162. package/dist/index.d.ts +1631 -53
  163. package/dist/index.mjs +943 -895
  164. package/dist/lazy.cjs +1 -1
  165. package/dist/lazy.d.ts +4 -3
  166. package/dist/lazy.mjs +3 -3
  167. package/dist/navigation.cjs +1 -1
  168. package/dist/navigation.mjs +4 -4
  169. package/dist/overlays.cjs +1 -1
  170. package/dist/overlays.mjs +2 -2
  171. package/dist/style.css +22 -7
  172. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,255 @@
1
+ # [1.1.0] — 2026-05-21 (cd. — batch 6: number/rate/file/search/tag/prompt/palette/lightbox)
2
+
3
+ ### Added — Numeric input / rating / async search / tag input / overlays / command palette
4
+
5
+ Kolejne 8 planned-only doc.json stubs → real components
6
+ (64/64 tests passed):
7
+
8
+ **Editors / inputs:**
9
+
10
+ - `NiceNumericInput` — spinbutton z +/-, clamping, step, precision,
11
+ pluggable `format` (string z `{value}` placeholder lub funkcja).
12
+ `role="spinbutton"` + pełne `aria-valuenow/min/max`.
13
+ - `NiceRate` — star rating z arrow-key nav, Home/End extremes,
14
+ `allowHalf` granulacją, custom character override, clear-on-click-same.
15
+ - `NiceFilePicker` — visual wrapper na `<input type=file>` z hidden
16
+ input w tab orderze (keyboard equivalence) + proxy clicku z
17
+ customowego triggera. `useNiceTranslation('filePicker.label')`.
18
+ - `NiceSearchInput` — combobox z async suggestions + recents
19
+ fallback, request-id guard (stale responses swallowed),
20
+ Down/Up nav + Enter pick.
21
+ - `NiceTagInput` — chip multi-value input z paste-with-separator,
22
+ Backspace-deletes-last, suggestions filter, maxTags cap.
23
+
24
+ **Overlays:**
25
+
26
+ - `NicePromptDialog` — modal asking for single value (replacement
27
+ dla `window.prompt`). Auto-focus, Enter submits, Escape +
28
+ backdrop cancel. Labels przez `useNiceTranslation('ok','cancel')`.
29
+ - `NiceLightbox` — full-screen image viewer z prev/next nav,
30
+ zoom (+/- keys + buttons), download button, N/M counter.
31
+ Wszystkie toolbar labels przez i18n.
32
+
33
+ **Navigation:**
34
+
35
+ - `NiceCommandBar` — searchable command palette (Ctrl+K-style)
36
+ z filterowaniem po `label`+`keywords`, grupowaniem po `category`,
37
+ shortcut chip per item, opcjonalnym global shortcut do otwarcia.
38
+
39
+ ---
40
+
41
+ # [1.1.0] — 2026-05-20 (cd. — batch 5: form fields / feedback / nav / shell)
42
+
43
+ ### Added — Form fields / feedback / mobile gesture / nav / shell
44
+
45
+ Kolejne 8 planned-only doc.json stubs → real components
46
+ (52/52 tests passed):
47
+
48
+ **Editors / inputs:**
49
+
50
+ - `NiceCheckboxGroup` — multi-select checkbox set, controlled / uncontrolled,
51
+ horizontal / vertical, per-option disable.
52
+ - `NiceToggleGroup` — compound component (`<NiceToggleGroup.Item>`),
53
+ single OR multi-select, ARIA toggle-button pattern z `aria-pressed`.
54
+ - `NiceOTPInput` — multi-digit OTP z auto-advance, Backspace step-back,
55
+ Arrow Left/Right nav, pełny-kod paste, separator slot.
56
+ `autoComplete="one-time-code"` dla OS-level autofill.
57
+
58
+ **Editors / pickers:**
59
+
60
+ - `NiceCascadeSelect` — multi-column cascading dropdown dla hierarchii.
61
+ Placeholder przez `useNiceTranslation('cascadeSelect.placeholder')`.
62
+
63
+ **Feedback:**
64
+
65
+ - `NiceResult` — full-page result state (success/error/info/warning/pending).
66
+ `role="alert"` dla error, `role="status"` dla pozostałych.
67
+
68
+ **Display:**
69
+
70
+ - `NiceSwipeCard` — pointer-driven swipe card z unified touch/mouse/pen.
71
+ Threshold-based commit + arrow-key fallback.
72
+
73
+ **Navigation:**
74
+
75
+ - `NiceTabBar` — top-level section nav, ARIA tablist pattern, arrow-key
76
+ - Home/End nav skipping disabled tabs, roving tabIndex.
77
+
78
+ **Layout:**
79
+
80
+ - `NiceLayout` — app shell (header/aside/main/footer) z natywnymi HTML5
81
+ landmarks. Sider placement start/end.
82
+
83
+ ---
84
+
85
+ # [1.1.0] — 2026-05-20 (cd. — batch 4: numerical / disclosure / chrome primitives)
86
+
87
+ ### Added — Numerical / disclosure / page-chrome primitives
88
+
89
+ Kolejne 8 planned-only doc.json stubs → real components
90
+ (46/46 tests passed):
91
+
92
+ **Display (numerical / decorative):**
93
+
94
+ - `NiceCountUp` — animated counter z requestAnimationFrame + ease-out
95
+ cubic, decimals/prefix/suffix/separator, `onComplete` callback.
96
+ `aria-label` z final value (AT czyta destination raz, nie każdy tick).
97
+ - `NiceCountdown` — live countdown do `targetDate`, formats
98
+ `full`/`compact`/`minimal`, per-unit visibility, `role="timer"`
99
+ - `aria-live="polite"`. Labels przez `useNiceTranslation`
100
+ (`countdown.days/hours/minutes/seconds`).
101
+ - `NiceCollapsibleCard` — card z built-in collapse affordance,
102
+ trigger='header' lub 'icon'. Chevron `aria-label` przez
103
+ `useNiceTranslation('collapsibleCard.expand/collapse')`.
104
+ - `NiceRibbon` — corner banner przyklejający się do top corner
105
+ wrapped elementu (wrapper auto position:relative).
106
+
107
+ **Layout (disclosure / chrome):**
108
+
109
+ - `NiceCollapse` — single-panel disclosure z aria-expanded +
110
+ aria-controls auto-wired, controlled / uncontrolled mode.
111
+ - `NiceFooter` — semantic `<footer>` z contentinfo landmark, link
112
+ groups jako `<nav>`, social icons z explicit accessible labels,
113
+ optional sticky positioning.
114
+ - `NicePageHeader` — dashboard chrome (breadcrumb + back + avatar +
115
+ title + tags + actions + footer slot). Back button label przez
116
+ `useNiceTranslation('pageHeader.back')`.
117
+ - `NiceCardGrid` — CSS-Grid layout z responsive columns
118
+ (fixed number lub per-breakpoint map). Reflow czysto CSS bez
119
+ resize listenera (scoped `<style>` z media queries + CSS variable).
120
+
121
+ ---
122
+
123
+ # [1.1.0] — 2026-05-20 (cd. — batch 3: utility / a11y / nav primitives)
124
+
125
+ ### Added — Utility / accessibility / navigation primitives
126
+
127
+ Kolejne 8 planned-only doc.json stubs → real components
128
+ (33/33 tests passed):
129
+
130
+ **Utility / accessibility:**
131
+
132
+ - `NiceClickOutside` — declarative outside-click detector
133
+ (component form of `useClickOutside`). Optional `disabled` flag,
134
+ configurable `mouseEvent` (mousedown/click/mouseup).
135
+ - `NiceFocusTrap` — cycles Tab / Shift+Tab between focusable
136
+ descendants. `initialFocus` accepts ref OR CSS selector. Restores
137
+ focus on deactivate by default.
138
+ - `NiceLiveRegion` — visually-hidden (or visible) ARIA live region
139
+ with politeness / atomic / relevant knobs.
140
+ - `NiceSuspense` — drop-in `React.Suspense` z `delay` (ms) gate —
141
+ prevents the spinner-flash anti-pattern for fast resolves.
142
+
143
+ **Navigation:**
144
+
145
+ - `NiceAnchor` — table-of-contents nav z IntersectionObserver
146
+ scroll-spy + smooth-scroll on click, nested items, optional
147
+ `position: sticky`.
148
+
149
+ **Display:**
150
+
151
+ - `NiceBackTop` — floating back-to-top button z ease-out cubic
152
+ tween, custom target / duration / glyph. Label przez
153
+ `useNiceTranslation('backTop.aria')`.
154
+
155
+ **Layout:**
156
+
157
+ - `NiceAffix` — sticky-position wrapper z onChange callback i
158
+ same-size placeholder zachowującym document flow.
159
+ - `NiceMediaObject` — classic media object pattern (image-with-content
160
+ row layout), configurable position / align / spacing.
161
+
162
+ ---
163
+
164
+ # [1.1.0] — 2026-05-20 (cd. — batch 2: more primitives)
165
+
166
+ ### Added — Layout / typography / display / tools / feedback primitives
167
+
168
+ Kolejne 8 planned-only doc.json stubs zostało zaimplementowanych jako
169
+ prawdziwe kontrolki (47/47 testów passed):
170
+
171
+ **Typography:**
172
+
173
+ - `NiceHeading` — semantic h1-h6 z odsprzężoną skalą wizualną
174
+ (`xs`-`3xl`). Renderuje natywny tag dla a11y, designerzy wybierają
175
+ rozmiar niezależnie od poziomu.
176
+ - `NiceParagraph` — body-text z wariantami `lead` / `muted` i 3
177
+ rozmiarami (sm/md/lg).
178
+ - `NiceLink` — styled `<a>` z `external` przełączającym automatycznie
179
+ `target=_blank` + `rel=noopener noreferrer` (chroni przed
180
+ tab-napping).
181
+
182
+ **Layout:**
183
+
184
+ - `NiceContainer` — centrowany wrapper z width preset
185
+ (sm 640 / md 768 / lg 1024 / xl 1280 / full), `padding` na padding-inline.
186
+ - `NiceSection` — `<section>` z opcjonalnym headerem
187
+ (title / subtitle / actions slot) i `divider`.
188
+
189
+ **Display:**
190
+
191
+ - `NiceStatistic` — KPI tile: tytuł, locale-formatted value (`Intl.NumberFormat`),
192
+ pre/suffix, trend chip z kolorem (up/down).
193
+
194
+ **Tools:**
195
+
196
+ - `NiceCopyButton` — copy-to-clipboard z timed feedback. Async
197
+ Clipboard API + execCommand fallback. Etykiety przez
198
+ `useNiceTranslation` (`copy.label`, `copy.success`, `copy.aria`).
199
+
200
+ **Feedback:**
201
+
202
+ - `NiceCallout` — info/warning/error/success/tip block z opcjonalnym
203
+ title, custom icon, dismiss button. `role=alert` dla error,
204
+ `role=status` dla pozostałych. Etykieta przez
205
+ `useNiceTranslation('callout.dismiss')`.
206
+
207
+ ---
208
+
209
+ # [1.1.0] — 2026-05-20
210
+
211
+ ### Added — Layout & typography primitives
212
+
213
+ Eight long-standing "planned" doc.json stubs are now real components,
214
+ implemented as thin CSS-in-component wrappers so consumers can stay
215
+ in JSX without dropping to inline style or className soup.
216
+
217
+ **Layout** (`packages/ui/src/layout/`):
218
+
219
+ - `NiceCenter` — flex centering on one or both axes, with optional
220
+ `minHeight` for vertical-only scenarios and `inline` for inline-flex.
221
+ - `NiceStack` — one-dimensional layout with uniform `spacing`, optional
222
+ `divider` element interleaved between every pair of children.
223
+ - `NiceFlex` — direct flexbox container exposing the full `direction` /
224
+ `wrap` / `justify` / `align` / `gap` surface.
225
+ - `NiceSpacer` — flexible (`flex`) or fixed-size (`size`) whitespace
226
+ element, with `axis` control. `aria-hidden`.
227
+ - `NiceAspectRatio` — width:height ratio container using native CSS
228
+ `aspect-ratio`. Accepts number (`16/9 = 1.777…`) or shorthand string.
229
+
230
+ **Typography** (`packages/ui/src/typography/`):
231
+
232
+ - `NiceBlockquote` — semantic `<blockquote>` with optional `author` /
233
+ `cite` footer; three visual variants (`default` / `bordered` /
234
+ `filled`).
235
+ - `NiceTruncate` — multi-line line-clamp with optional Show more /
236
+ Show less toggle. Toggle labels go through `useNiceTranslation`
237
+ (`truncate.expand` / `truncate.collapse`) so they follow the global
238
+ language picker.
239
+ - `NiceHighlight` — wraps matches of a `query` (string or array) inside
240
+ the source `text` with `<mark>` (or a custom tag). Regex-safe input
241
+ escaping; case-insensitive by default.
242
+
243
+ **Migration:** The old `packages/ui/docs/<Name>.doc.json` planned stubs
244
+ were deleted and replaced with `status: "stable"` doc.json files
245
+ colocated next to each `.tsx`. The playground catalog now publishes
246
+ these as real components.
247
+
248
+ **Tests:** Eight new specs added under `__tests__/`. All eight pass
249
+ (47 assertions total).
250
+
251
+ ---
252
+
1
253
  # [1.0.14] — 2026-05-11
2
254
 
3
255
  ### Added — CSS Import Support for Vite/Webpack/React
@@ -0,0 +1,14 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceAlertDialog",o="Alert dialog for important messages.",i="overlay",n="1.0.0",a="planned",c=[{name:"open",type:"boolean",required:!0,description:"Open state"},{name:"onOpenChange",type:"(open: boolean) => void",description:"Open state change"},{name:"title",type:"React.ReactNode",description:"Dialog title"},{name:"description",type:"React.ReactNode",description:"Dialog description"},{name:"children",type:"React.ReactNode",description:"Dialog content"}],l=[{title:"Alert Dialog",description:"Important message alert",code:`<NiceAlertDialog open={showAlert} onOpenChange={setShowAlert}>
2
+ <NiceAlertDialog.Content>
3
+ <NiceAlertDialog.Header>
4
+ <NiceAlertDialog.Title>Warning</NiceAlertDialog.Title>
5
+ <NiceAlertDialog.Description>
6
+ Are you sure you want to continue?
7
+ </NiceAlertDialog.Description>
8
+ </NiceAlertDialog.Header>
9
+ <NiceAlertDialog.Footer>
10
+ <NiceAlertDialog.Cancel>Cancel</NiceAlertDialog.Cancel>
11
+ <NiceAlertDialog.Action>Continue</NiceAlertDialog.Action>
12
+ </NiceAlertDialog.Footer>
13
+ </NiceAlertDialog.Content>
14
+ </NiceAlertDialog>`}],r={keyboard:["Tab between buttons","Escape to close"],aria:["role=alertdialog","aria-labelledby","aria-describedby"]},s=["NiceDialog","NiceConfirmDialog","NiceModal"],p={$schema:e,name:t,description:o,category:i,since:n,status:a,props:c,examples:l,accessibility:r,seeAlso:s};exports.$schema=e;exports.accessibility=r;exports.category=i;exports.default=p;exports.description=o;exports.examples=l;exports.name=t;exports.props=c;exports.seeAlso=s;exports.since=n;exports.status=a;
@@ -0,0 +1,38 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceAlertDialog", o = "Alert dialog for important messages.", i = "overlay", n = "1.0.0", a = "planned", c = [{ name: "open", type: "boolean", required: !0, description: "Open state" }, { name: "onOpenChange", type: "(open: boolean) => void", description: "Open state change" }, { name: "title", type: "React.ReactNode", description: "Dialog title" }, { name: "description", type: "React.ReactNode", description: "Dialog description" }, { name: "children", type: "React.ReactNode", description: "Dialog content" }], l = [{ title: "Alert Dialog", description: "Important message alert", code: `<NiceAlertDialog open={showAlert} onOpenChange={setShowAlert}>
2
+ <NiceAlertDialog.Content>
3
+ <NiceAlertDialog.Header>
4
+ <NiceAlertDialog.Title>Warning</NiceAlertDialog.Title>
5
+ <NiceAlertDialog.Description>
6
+ Are you sure you want to continue?
7
+ </NiceAlertDialog.Description>
8
+ </NiceAlertDialog.Header>
9
+ <NiceAlertDialog.Footer>
10
+ <NiceAlertDialog.Cancel>Cancel</NiceAlertDialog.Cancel>
11
+ <NiceAlertDialog.Action>Continue</NiceAlertDialog.Action>
12
+ </NiceAlertDialog.Footer>
13
+ </NiceAlertDialog.Content>
14
+ </NiceAlertDialog>` }], r = { keyboard: ["Tab between buttons", "Escape to close"], aria: ["role=alertdialog", "aria-labelledby", "aria-describedby"] }, s = ["NiceDialog", "NiceConfirmDialog", "NiceModal"], g = {
15
+ $schema: e,
16
+ name: t,
17
+ description: o,
18
+ category: i,
19
+ since: n,
20
+ status: a,
21
+ props: c,
22
+ examples: l,
23
+ accessibility: r,
24
+ seeAlso: s
25
+ };
26
+ export {
27
+ e as $schema,
28
+ r as accessibility,
29
+ i as category,
30
+ g as default,
31
+ o as description,
32
+ l as examples,
33
+ t as name,
34
+ c as props,
35
+ s as seeAlso,
36
+ n as since,
37
+ a as status
38
+ };
@@ -0,0 +1,36 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", n = "NiceAnimatePresence", t = "Animate components as they mount/unmount.", i = "utility", o = "1.0.0", c = "planned", a = [{ name: "children", type: "React.ReactNode", required: !0, description: "Children to animate" }, { name: "initial", type: "boolean", default: "true", description: "Animate on initial mount" }, { name: "mode", type: "'sync' | 'wait' | 'popLayout'", default: "'sync'", description: "Animation mode" }, { name: "onExitComplete", type: "() => void", description: "Exit complete callback" }], s = [{ title: "Animate Presence", description: "Mount/unmount animations", code: `<NiceAnimatePresence mode="wait">
2
+ {items.map(item => (
3
+ <motion.div
4
+ key={item.id}
5
+ initial={{ opacity: 0, y: 20 }}
6
+ animate={{ opacity: 1, y: 0 }}
7
+ exit={{ opacity: 0, y: -20 }}
8
+ >
9
+ {item.content}
10
+ </motion.div>
11
+ ))}
12
+ </NiceAnimatePresence>` }], m = { keyboard: [], aria: ["Reduced motion support"] }, d = ["NiceTransition", "NiceMotion"], p = {
13
+ $schema: e,
14
+ name: n,
15
+ description: t,
16
+ category: i,
17
+ since: o,
18
+ status: c,
19
+ props: a,
20
+ examples: s,
21
+ accessibility: m,
22
+ seeAlso: d
23
+ };
24
+ export {
25
+ e as $schema,
26
+ m as accessibility,
27
+ i as category,
28
+ p as default,
29
+ t as description,
30
+ s as examples,
31
+ n as name,
32
+ a as props,
33
+ d as seeAlso,
34
+ o as since,
35
+ c as status
36
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceAnimatePresence",n="Animate components as they mount/unmount.",i="utility",o="1.0.0",c="planned",a=[{name:"children",type:"React.ReactNode",required:!0,description:"Children to animate"},{name:"initial",type:"boolean",default:"true",description:"Animate on initial mount"},{name:"mode",type:"'sync' | 'wait' | 'popLayout'",default:"'sync'",description:"Animation mode"},{name:"onExitComplete",type:"() => void",description:"Exit complete callback"}],s=[{title:"Animate Presence",description:"Mount/unmount animations",code:`<NiceAnimatePresence mode="wait">
2
+ {items.map(item => (
3
+ <motion.div
4
+ key={item.id}
5
+ initial={{ opacity: 0, y: 20 }}
6
+ animate={{ opacity: 1, y: 0 }}
7
+ exit={{ opacity: 0, y: -20 }}
8
+ >
9
+ {item.content}
10
+ </motion.div>
11
+ ))}
12
+ </NiceAnimatePresence>`}],m={keyboard:[],aria:["Reduced motion support"]},p=["NiceTransition","NiceMotion"],d={$schema:e,name:t,description:n,category:i,since:o,status:c,props:a,examples:s,accessibility:m,seeAlso:p};exports.$schema=e;exports.accessibility=m;exports.category=i;exports.default=d;exports.description=n;exports.examples=s;exports.name=t;exports.props=a;exports.seeAlso=p;exports.since=o;exports.status=c;
@@ -0,0 +1,33 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceCalendarScheduler", n = "Calendar scheduler for appointments and event management.", a = "planning", c = "1.0.0", o = "planned", r = [{ name: "events", type: "SchedulerEvent[]", required: !0, description: "Event data" }, { name: "view", type: "'day' | 'week' | 'month' | 'agenda'", default: "'week'", description: "View mode" }, { name: "date", type: "Date", required: !0, description: "Current date" }, { name: "onDateChange", type: "(date: Date) => void", description: "Date change callback" }, { name: "onEventClick", type: "(event: SchedulerEvent) => void", description: "Event click callback" }, { name: "onEventCreate", type: "(start: Date, end: Date) => void", description: "Create event callback" }, { name: "onEventUpdate", type: "(event: SchedulerEvent) => void", description: "Update event callback" }, { name: "resources", type: "Resource[]", description: "Resources for multi-resource view" }, { name: "workingHours", type: "WorkingHours", description: "Working hours config" }], i = [{ title: "Calendar Scheduler", description: "Schedule events", code: `<NiceCalendarScheduler
2
+ events={appointments}
3
+ view="week"
4
+ date={currentDate}
5
+ onDateChange={setCurrentDate}
6
+ onEventClick={openEvent}
7
+ onEventCreate={createEvent}
8
+ onEventUpdate={updateEvent}
9
+ />` }], s = { keyboard: ["Arrow keys to navigate", "Enter to select"], aria: ["Calendar scheduler", "Event descriptions"] }, d = ["NiceDatePicker", "NiceGanttChart"], p = {
10
+ $schema: e,
11
+ name: t,
12
+ description: n,
13
+ category: a,
14
+ since: c,
15
+ status: o,
16
+ props: r,
17
+ examples: i,
18
+ accessibility: s,
19
+ seeAlso: d
20
+ };
21
+ export {
22
+ e as $schema,
23
+ s as accessibility,
24
+ a as category,
25
+ p as default,
26
+ n as description,
27
+ i as examples,
28
+ t as name,
29
+ r as props,
30
+ d as seeAlso,
31
+ c as since,
32
+ o as status
33
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceCalendarScheduler",n="Calendar scheduler for appointments and event management.",a="planning",c="1.0.0",o="planned",r=[{name:"events",type:"SchedulerEvent[]",required:!0,description:"Event data"},{name:"view",type:"'day' | 'week' | 'month' | 'agenda'",default:"'week'",description:"View mode"},{name:"date",type:"Date",required:!0,description:"Current date"},{name:"onDateChange",type:"(date: Date) => void",description:"Date change callback"},{name:"onEventClick",type:"(event: SchedulerEvent) => void",description:"Event click callback"},{name:"onEventCreate",type:"(start: Date, end: Date) => void",description:"Create event callback"},{name:"onEventUpdate",type:"(event: SchedulerEvent) => void",description:"Update event callback"},{name:"resources",type:"Resource[]",description:"Resources for multi-resource view"},{name:"workingHours",type:"WorkingHours",description:"Working hours config"}],s=[{title:"Calendar Scheduler",description:"Schedule events",code:`<NiceCalendarScheduler
2
+ events={appointments}
3
+ view="week"
4
+ date={currentDate}
5
+ onDateChange={setCurrentDate}
6
+ onEventClick={openEvent}
7
+ onEventCreate={createEvent}
8
+ onEventUpdate={updateEvent}
9
+ />`}],i={keyboard:["Arrow keys to navigate","Enter to select"],aria:["Calendar scheduler","Event descriptions"]},d=["NiceDatePicker","NiceGanttChart"],l={$schema:e,name:t,description:n,category:a,since:c,status:o,props:r,examples:s,accessibility:i,seeAlso:d};exports.$schema=e;exports.accessibility=i;exports.category=a;exports.default=l;exports.description=n;exports.examples=s;exports.name=t;exports.props=r;exports.seeAlso=d;exports.since=c;exports.status=o;
@@ -0,0 +1,31 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceCameraFeed", n = "Security camera live feed with PTZ controls and recording.", a = "smart-home", t = "1.0.0", r = "planned", s = [{ name: "camera", type: "Camera", required: !0, description: "Camera info" }, { name: "streamUrl", type: "string", required: !0, description: "Stream URL" }, { name: "onPTZControl", type: "(command: PTZCommand) => Promise<void>", description: "PTZ callback" }, { name: "onSnapshot", type: "() => Promise<string>", description: "Snapshot callback" }, { name: "onRecordToggle", type: "(recording: boolean) => Promise<void>", description: "Record callback" }, { name: "showControls", type: "boolean", default: "true", description: "Show controls" }, { name: "showTimestamp", type: "boolean", default: "true", description: "Show timestamp" }, { name: "fullscreenEnabled", type: "boolean", default: "true", description: "Allow fullscreen" }], c = [{ title: "Camera Feed", description: "View camera", code: `<NiceCameraFeed
2
+ camera={securityCamera}
3
+ streamUrl={camera.streamUrl}
4
+ onPTZControl={sendPTZCommand}
5
+ onSnapshot={takeSnapshot}
6
+ showControls
7
+ />` }], i = { keyboard: ["Tab through controls", "Arrow keys for PTZ"], aria: ["Video feed", "Control buttons"] }, m = ["NiceVideoPlayer", "NiceSensorGaugePanel"], d = {
8
+ $schema: e,
9
+ name: o,
10
+ description: n,
11
+ category: a,
12
+ since: t,
13
+ status: r,
14
+ props: s,
15
+ examples: c,
16
+ accessibility: i,
17
+ seeAlso: m
18
+ };
19
+ export {
20
+ e as $schema,
21
+ i as accessibility,
22
+ a as category,
23
+ d as default,
24
+ n as description,
25
+ c as examples,
26
+ o as name,
27
+ s as props,
28
+ m as seeAlso,
29
+ t as since,
30
+ r as status
31
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceCameraFeed",t="Security camera live feed with PTZ controls and recording.",a="smart-home",n="1.0.0",r="planned",s=[{name:"camera",type:"Camera",required:!0,description:"Camera info"},{name:"streamUrl",type:"string",required:!0,description:"Stream URL"},{name:"onPTZControl",type:"(command: PTZCommand) => Promise<void>",description:"PTZ callback"},{name:"onSnapshot",type:"() => Promise<string>",description:"Snapshot callback"},{name:"onRecordToggle",type:"(recording: boolean) => Promise<void>",description:"Record callback"},{name:"showControls",type:"boolean",default:"true",description:"Show controls"},{name:"showTimestamp",type:"boolean",default:"true",description:"Show timestamp"},{name:"fullscreenEnabled",type:"boolean",default:"true",description:"Allow fullscreen"}],c=[{title:"Camera Feed",description:"View camera",code:`<NiceCameraFeed
2
+ camera={securityCamera}
3
+ streamUrl={camera.streamUrl}
4
+ onPTZControl={sendPTZCommand}
5
+ onSnapshot={takeSnapshot}
6
+ showControls
7
+ />`}],i={keyboard:["Tab through controls","Arrow keys for PTZ"],aria:["Video feed","Control buttons"]},m=["NiceVideoPlayer","NiceSensorGaugePanel"],l={$schema:e,name:o,description:t,category:a,since:n,status:r,props:s,examples:c,accessibility:i,seeAlso:m};exports.$schema=e;exports.accessibility=i;exports.category=a;exports.default=l;exports.description=t;exports.examples=c;exports.name=o;exports.props=s;exports.seeAlso=m;exports.since=n;exports.status=r;
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceChip",i="Chip/pill component for selections.",c="display",n="1.0.0",a="planned",o=[{name:"children",type:"React.ReactNode",required:!0,description:"Chip content"},{name:"variant",type:"'filled' | 'outlined'",default:"'filled'",description:"Chip variant"},{name:"color",type:"'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'",default:"'default'",description:"Chip color"},{name:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"Chip size"},{name:"avatar",type:"React.ReactNode",description:"Avatar element"},{name:"icon",type:"React.ReactNode",description:"Leading icon"},{name:"deletable",type:"boolean",default:"false",description:"Show delete icon"},{name:"disabled",type:"boolean",default:"false",description:"Disabled state"},{name:"onClick",type:"() => void",description:"Click callback"},{name:"onDelete",type:"() => void",description:"Delete callback"}],s=[{title:"Chip",description:"Selection chip",code:`<NiceChip
2
+ avatar={<NiceAvatar src="/user.jpg" size="xs" />}
3
+ deletable
4
+ onDelete={handleDelete}
5
+ >
6
+ John Doe
7
+ </NiceChip>`}],l={keyboard:["Tab to focus","Enter to click","Delete to remove"],aria:["Button or static element"]},d=["NiceTag","NiceTagInput"],p={$schema:e,name:t,description:i,category:c,since:n,status:a,props:o,examples:s,accessibility:l,seeAlso:d};exports.$schema=e;exports.accessibility=l;exports.category=c;exports.default=p;exports.description=i;exports.examples=s;exports.name=t;exports.props=o;exports.seeAlso=d;exports.since=n;exports.status=a;
@@ -0,0 +1,31 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceChip", i = "Chip/pill component for selections.", n = "display", a = "1.0.0", c = "planned", o = [{ name: "children", type: "React.ReactNode", required: !0, description: "Chip content" }, { name: "variant", type: "'filled' | 'outlined'", default: "'filled'", description: "Chip variant" }, { name: "color", type: "'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'", default: "'default'", description: "Chip color" }, { name: "size", type: "'sm' | 'md' | 'lg'", default: "'md'", description: "Chip size" }, { name: "avatar", type: "React.ReactNode", description: "Avatar element" }, { name: "icon", type: "React.ReactNode", description: "Leading icon" }, { name: "deletable", type: "boolean", default: "false", description: "Show delete icon" }, { name: "disabled", type: "boolean", default: "false", description: "Disabled state" }, { name: "onClick", type: "() => void", description: "Click callback" }, { name: "onDelete", type: "() => void", description: "Delete callback" }], s = [{ title: "Chip", description: "Selection chip", code: `<NiceChip
2
+ avatar={<NiceAvatar src="/user.jpg" size="xs" />}
3
+ deletable
4
+ onDelete={handleDelete}
5
+ >
6
+ John Doe
7
+ </NiceChip>` }], l = { keyboard: ["Tab to focus", "Enter to click", "Delete to remove"], aria: ["Button or static element"] }, d = ["NiceTag", "NiceTagInput"], p = {
8
+ $schema: e,
9
+ name: t,
10
+ description: i,
11
+ category: n,
12
+ since: a,
13
+ status: c,
14
+ props: o,
15
+ examples: s,
16
+ accessibility: l,
17
+ seeAlso: d
18
+ };
19
+ export {
20
+ e as $schema,
21
+ l as accessibility,
22
+ n as category,
23
+ p as default,
24
+ i as description,
25
+ s as examples,
26
+ t as name,
27
+ o as props,
28
+ d as seeAlso,
29
+ a as since,
30
+ c as status
31
+ };
@@ -0,0 +1,34 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceCombobox", t = "Combobox with search and custom input.", n = "input", a = "1.0.0", l = "planned", s = [{ name: "value", type: "string", description: "Current value" }, { name: "defaultValue", type: "string", description: "Default value" }, { name: "options", type: "{ label: string; value: string }[]", description: "Available options" }, { name: "placeholder", type: "string", description: "Placeholder text" }, { name: "disabled", type: "boolean", default: "false", description: "Disabled state" }, { name: "allowCustomValue", type: "boolean", default: "true", description: "Allow entering custom values" }, { name: "filter", type: "(query: string, option: Option) => boolean", description: "Custom filter function" }, { name: "onChange", type: "(value: string) => void", description: "Change callback" }, { name: "onSearch", type: "(query: string) => void", description: "Search callback" }], c = [{ title: "Combobox", description: "Searchable combobox", code: `<NiceCombobox
2
+ options={[
3
+ { label: 'React', value: 'react' },
4
+ { label: 'Vue', value: 'vue' },
5
+ { label: 'Angular', value: 'angular' }
6
+ ]}
7
+ placeholder="Select or type..."
8
+ allowCustomValue
9
+ onChange={(value) => console.log('Selected:', value)}
10
+ />` }], i = { keyboard: ["Type to filter", "Arrow keys to navigate", "Enter to select"], aria: ["Combobox role", "Listbox popup"] }, r = ["NiceSelect", "NiceAutocomplete"], p = {
11
+ $schema: e,
12
+ name: o,
13
+ description: t,
14
+ category: n,
15
+ since: a,
16
+ status: l,
17
+ props: s,
18
+ examples: c,
19
+ accessibility: i,
20
+ seeAlso: r
21
+ };
22
+ export {
23
+ e as $schema,
24
+ i as accessibility,
25
+ n as category,
26
+ p as default,
27
+ t as description,
28
+ c as examples,
29
+ o as name,
30
+ s as props,
31
+ r as seeAlso,
32
+ a as since,
33
+ l as status
34
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceCombobox",t="Combobox with search and custom input.",n="input",a="1.0.0",l="planned",s=[{name:"value",type:"string",description:"Current value"},{name:"defaultValue",type:"string",description:"Default value"},{name:"options",type:"{ label: string; value: string }[]",description:"Available options"},{name:"placeholder",type:"string",description:"Placeholder text"},{name:"disabled",type:"boolean",default:"false",description:"Disabled state"},{name:"allowCustomValue",type:"boolean",default:"true",description:"Allow entering custom values"},{name:"filter",type:"(query: string, option: Option) => boolean",description:"Custom filter function"},{name:"onChange",type:"(value: string) => void",description:"Change callback"},{name:"onSearch",type:"(query: string) => void",description:"Search callback"}],i=[{title:"Combobox",description:"Searchable combobox",code:`<NiceCombobox
2
+ options={[
3
+ { label: 'React', value: 'react' },
4
+ { label: 'Vue', value: 'vue' },
5
+ { label: 'Angular', value: 'angular' }
6
+ ]}
7
+ placeholder="Select or type..."
8
+ allowCustomValue
9
+ onChange={(value) => console.log('Selected:', value)}
10
+ />`}],c={keyboard:["Type to filter","Arrow keys to navigate","Enter to select"],aria:["Combobox role","Listbox popup"]},r=["NiceSelect","NiceAutocomplete"],p={$schema:e,name:o,description:t,category:n,since:a,status:l,props:s,examples:i,accessibility:c,seeAlso:r};exports.$schema=e;exports.accessibility=c;exports.category=n;exports.default=p;exports.description=t;exports.examples=i;exports.name=o;exports.props=s;exports.seeAlso=r;exports.since=a;exports.status=l;
@@ -0,0 +1,32 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", n = "NiceConfigProvider", o = "Global configuration provider.", i = "utility", t = "1.0.0", c = "planned", r = [{ name: "children", type: "React.ReactNode", required: !0, description: "Provider children" }, { name: "locale", type: "Locale", description: "Locale configuration" }, { name: "theme", type: "ThemeConfig", description: "Theme configuration" }, { name: "prefixCls", type: "string", description: "Component class prefix" }, { name: "componentSize", type: "'small' | 'middle' | 'large'", description: "Default component size" }, { name: "direction", type: "'ltr' | 'rtl'", default: "'ltr'", description: "Text direction" }, { name: "renderEmpty", type: "(componentName: string) => React.ReactNode", description: "Empty state renderer" }], a = [{ title: "Config Provider", description: "Global configuration", code: `<NiceConfigProvider
2
+ locale={enUS}
3
+ theme={{ primaryColor: '#1890ff' }}
4
+ componentSize="middle"
5
+ direction="ltr"
6
+ >
7
+ <App />
8
+ </NiceConfigProvider>` }], s = { keyboard: [], aria: ["Language announcement"] }, d = ["NiceThemeProvider", "NiceI18nProvider"], p = {
9
+ $schema: e,
10
+ name: n,
11
+ description: o,
12
+ category: i,
13
+ since: t,
14
+ status: c,
15
+ props: r,
16
+ examples: a,
17
+ accessibility: s,
18
+ seeAlso: d
19
+ };
20
+ export {
21
+ e as $schema,
22
+ s as accessibility,
23
+ i as category,
24
+ p as default,
25
+ o as description,
26
+ a as examples,
27
+ n as name,
28
+ r as props,
29
+ d as seeAlso,
30
+ t as since,
31
+ c as status
32
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",n="NiceConfigProvider",o="Global configuration provider.",i="utility",t="1.0.0",c="planned",r=[{name:"children",type:"React.ReactNode",required:!0,description:"Provider children"},{name:"locale",type:"Locale",description:"Locale configuration"},{name:"theme",type:"ThemeConfig",description:"Theme configuration"},{name:"prefixCls",type:"string",description:"Component class prefix"},{name:"componentSize",type:"'small' | 'middle' | 'large'",description:"Default component size"},{name:"direction",type:"'ltr' | 'rtl'",default:"'ltr'",description:"Text direction"},{name:"renderEmpty",type:"(componentName: string) => React.ReactNode",description:"Empty state renderer"}],s=[{title:"Config Provider",description:"Global configuration",code:`<NiceConfigProvider
2
+ locale={enUS}
3
+ theme={{ primaryColor: '#1890ff' }}
4
+ componentSize="middle"
5
+ direction="ltr"
6
+ >
7
+ <App />
8
+ </NiceConfigProvider>`}],a={keyboard:[],aria:["Language announcement"]},d=["NiceThemeProvider","NiceI18nProvider"],p={$schema:e,name:n,description:o,category:i,since:t,status:c,props:r,examples:s,accessibility:a,seeAlso:d};exports.$schema=e;exports.accessibility=a;exports.category=i;exports.default=p;exports.description=o;exports.examples=s;exports.name=n;exports.props=r;exports.seeAlso=d;exports.since=t;exports.status=c;
@@ -0,0 +1,31 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceCronEditor", n = "Cron expression editor with visual builder.", t = "editors", i = "1.0.0", s = "planned", r = [{ name: "value", type: "string", required: !0, description: "Cron expression" }, { name: "onChange", type: "(value: string) => void", required: !0, description: "Change callback" }, { name: "mode", type: "'visual' | 'text' | 'both'", default: "'both'", description: "Editor mode" }, { name: "showPreview", type: "boolean", default: "true", description: "Show next run times" }, { name: "previewCount", type: "number", default: "5", description: "Number of preview times" }, { name: "locale", type: "string", description: "Locale for preview" }, { name: "disabled", type: "boolean", default: "false", description: "Disabled state" }], c = [{ title: "Cron Editor", description: "Edit cron schedule", code: `<NiceCronEditor
2
+ value={cronExpression}
3
+ onChange={setCronExpression}
4
+ mode="both"
5
+ showPreview
6
+ previewCount={5}
7
+ />` }], a = { keyboard: ["Tab through fields"], aria: ["Cron editor", "Schedule preview"] }, d = ["NiceBackupScheduler", "NiceRulesEngine"], p = {
8
+ $schema: e,
9
+ name: o,
10
+ description: n,
11
+ category: t,
12
+ since: i,
13
+ status: s,
14
+ props: r,
15
+ examples: c,
16
+ accessibility: a,
17
+ seeAlso: d
18
+ };
19
+ export {
20
+ e as $schema,
21
+ a as accessibility,
22
+ t as category,
23
+ p as default,
24
+ n as description,
25
+ c as examples,
26
+ o as name,
27
+ r as props,
28
+ d as seeAlso,
29
+ i as since,
30
+ s as status
31
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceCronEditor",t="Cron expression editor with visual builder.",n="editors",i="1.0.0",s="planned",r=[{name:"value",type:"string",required:!0,description:"Cron expression"},{name:"onChange",type:"(value: string) => void",required:!0,description:"Change callback"},{name:"mode",type:"'visual' | 'text' | 'both'",default:"'both'",description:"Editor mode"},{name:"showPreview",type:"boolean",default:"true",description:"Show next run times"},{name:"previewCount",type:"number",default:"5",description:"Number of preview times"},{name:"locale",type:"string",description:"Locale for preview"},{name:"disabled",type:"boolean",default:"false",description:"Disabled state"}],c=[{title:"Cron Editor",description:"Edit cron schedule",code:`<NiceCronEditor
2
+ value={cronExpression}
3
+ onChange={setCronExpression}
4
+ mode="both"
5
+ showPreview
6
+ previewCount={5}
7
+ />`}],a={keyboard:["Tab through fields"],aria:["Cron editor","Schedule preview"]},d=["NiceBackupScheduler","NiceRulesEngine"],l={$schema:e,name:o,description:t,category:n,since:i,status:s,props:r,examples:c,accessibility:a,seeAlso:d};exports.$schema=e;exports.accessibility=a;exports.category=n;exports.default=l;exports.description=t;exports.examples=c;exports.name=o;exports.props=r;exports.seeAlso=d;exports.since=i;exports.status=s;