@nice2dev/ui 1.0.5 → 1.0.8

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 (130) hide show
  1. package/README.md +253 -207
  2. package/dist/NiceAPIFlow.doc-DnQLPUie.js +30 -0
  3. package/dist/NiceAPIFlow.doc-Dx4qw1lm.cjs +6 -0
  4. package/dist/NiceBranchManager.doc-BXjiENlD.cjs +6 -0
  5. package/dist/NiceBranchManager.doc-xLB82YwU.js +30 -0
  6. package/dist/NiceButton-B5RXLDwI.cjs +1 -0
  7. package/dist/NiceButton-CDiS45Ya.cjs +1 -0
  8. package/dist/NiceButton-D9l39Rs7.js +595 -0
  9. package/dist/NiceButton-DmTHNHet.js +450 -0
  10. package/dist/NiceCodeTemplate.doc-BWxTE4C_.cjs +6 -0
  11. package/dist/NiceCodeTemplate.doc-CA2U5F-v.js +30 -0
  12. package/dist/NiceDataBranchGraph.doc-CkitupWc.js +29 -0
  13. package/dist/NiceDataBranchGraph.doc-DDUgipqH.cjs +5 -0
  14. package/dist/NiceDataBranchManager.doc-B0ODKOs4.js +30 -0
  15. package/dist/NiceDataBranchManager.doc-CC5o8ihs.cjs +6 -0
  16. package/dist/NiceDataConflictResolver.doc-CdzScNie.cjs +5 -0
  17. package/dist/NiceDataConflictResolver.doc-V8vxYAeo.js +29 -0
  18. package/dist/NiceDataDiffViewer.doc-CR14Bq3A.cjs +6 -0
  19. package/dist/NiceDataDiffViewer.doc-w2I2QjhX.js +30 -0
  20. package/dist/NiceDataMapper.doc-C7jSyHRM.js +30 -0
  21. package/dist/NiceDataMapper.doc-DXjQHz87.cjs +6 -0
  22. package/dist/NiceDataMergeBuilder.doc-CV32WC_w.cjs +6 -0
  23. package/dist/NiceDataMergeBuilder.doc-DtuYb3nx.js +30 -0
  24. package/dist/NiceDataSnapshot.doc-CFLkY3ry.js +30 -0
  25. package/dist/NiceDataSnapshot.doc-CpZyQ17u.cjs +6 -0
  26. package/dist/NiceErrorBoundary-BAeqfoSc.cjs +1 -0
  27. package/dist/NiceErrorBoundary-D1hh5GGe.js +732 -0
  28. package/dist/NiceErrorBoundary-Dta4TGee.cjs +1 -0
  29. package/dist/NiceErrorBoundary-niMx1aSJ.js +837 -0
  30. package/dist/NiceEventOrchestrator.doc-C4SJfIDV.js +30 -0
  31. package/dist/NiceEventOrchestrator.doc-CxjsLxBG.cjs +6 -0
  32. package/dist/NiceGitBlame.doc-BG3_K9_0.cjs +6 -0
  33. package/dist/NiceGitBlame.doc-DrJABEat.js +30 -0
  34. package/dist/NiceGitConflictResolver.doc-BK7hAfz6.js +30 -0
  35. package/dist/NiceGitConflictResolver.doc-CgroGM9_.cjs +6 -0
  36. package/dist/NiceGitDiffViewer.doc-BAwgcY_3.cjs +6 -0
  37. package/dist/NiceGitDiffViewer.doc-BXKJeP-E.js +30 -0
  38. package/dist/NiceGitGraph.doc-B-WtGuzn.cjs +5 -0
  39. package/dist/NiceGitGraph.doc-DxnDPCgC.js +29 -0
  40. package/dist/NiceGitHooks.doc-BrEizvMp.js +29 -0
  41. package/dist/NiceGitHooks.doc-C4EdV5zj.cjs +5 -0
  42. package/dist/NiceMergeRequestBuilder.doc-C5p8mYuh.cjs +6 -0
  43. package/dist/NiceMergeRequestBuilder.doc-Ct9RCmU8.js +30 -0
  44. package/dist/NiceModuleLifecyclePanel-BapdidD6.js +4776 -0
  45. package/dist/NiceModuleLifecyclePanel-Brg1RLwi.cjs +1 -0
  46. package/dist/NiceModuleLifecyclePanel-CsFsm534.cjs +1 -0
  47. package/dist/NiceModuleLifecyclePanel-I_TXRiiY.js +5053 -0
  48. package/dist/NicePinCodeInput-4q8yULuo.js +13359 -0
  49. package/dist/NicePinCodeInput-CrMfdxxc.js +15287 -0
  50. package/dist/NicePinCodeInput-D0aF9MK8.cjs +692 -0
  51. package/dist/NicePinCodeInput-eD2q8nGa.cjs +692 -0
  52. package/dist/NicePinCodeInput.css +1 -0
  53. package/dist/NicePipelineEditor.doc-0eGt8zbX.cjs +5 -0
  54. package/dist/NicePipelineEditor.doc-DTmaOebn.js +29 -0
  55. package/dist/NicePipelineMonitor.doc-67CmsRcf.cjs +5 -0
  56. package/dist/NicePipelineMonitor.doc-mSMdhuG8.js +29 -0
  57. package/dist/NiceSavedQueryPanel-BZNvqSQW.cjs +596 -0
  58. package/dist/NiceSavedQueryPanel-CUAsdOjJ.js +6190 -0
  59. package/dist/NiceSavedQueryPanel-DUw8plYP.js +5666 -0
  60. package/dist/NiceSavedQueryPanel-xpk09zy1.cjs +596 -0
  61. package/dist/NiceSavedQueryPanel.css +1 -0
  62. package/dist/NiceStateDesigner.doc-B36u0hNU.js +29 -0
  63. package/dist/NiceStateDesigner.doc-MPmvNHSx.cjs +5 -0
  64. package/dist/NiceStockChart-CHlOnWzN.cjs +287 -0
  65. package/dist/NiceStockChart-Cpmv9_Cc.js +2341 -0
  66. package/dist/NiceStockChart.css +1 -0
  67. package/dist/NiceTestBuilder.doc-BFInj8GJ.js +30 -0
  68. package/dist/NiceTestBuilder.doc-CB03U_uR.cjs +6 -0
  69. package/dist/NiceToggle-C1UKGXmJ.js +209 -0
  70. package/dist/NiceToggle-CaY1u82g.js +277 -0
  71. package/dist/NiceToggle-DFJFQv_Z.cjs +1 -0
  72. package/dist/NiceToggle-lVi-ETi0.cjs +1 -0
  73. package/dist/NiceWindow-D1awkyFl.js +1636 -0
  74. package/dist/NiceWindow-IdHAcP70.cjs +1 -0
  75. package/dist/NiceWindow-SiCaREbq.js +1408 -0
  76. package/dist/NiceWindow-yARTUJsg.cjs +1 -0
  77. package/dist/charts-Bx_kNBsE.js +4280 -0
  78. package/dist/charts-DECVsCHX.cjs +754 -0
  79. package/dist/charts.cjs +1 -0
  80. package/dist/charts.css +1 -0
  81. package/dist/charts.d.ts +1043 -0
  82. package/dist/charts.mjs +23 -0
  83. package/dist/core-BZBTsGWN.cjs +96 -0
  84. package/dist/core-BpghV7Ls.js +17555 -0
  85. package/dist/core-CfXsl755.js +16305 -0
  86. package/dist/core-DGJSUW64.cjs +96 -0
  87. package/dist/data-branching-De4ExX-S.cjs +1 -0
  88. package/dist/data-branching-DiRfob1f.js +6071 -0
  89. package/dist/data-branching.cjs +1 -0
  90. package/dist/data-branching.d.ts +401 -0
  91. package/dist/data-branching.mjs +9 -0
  92. package/dist/data.cjs +1 -0
  93. package/dist/data.d.ts +2003 -0
  94. package/dist/data.mjs +21 -0
  95. package/dist/devops-BnYinjkT.cjs +17 -0
  96. package/dist/devops-Ckh57eti.js +7198 -0
  97. package/dist/devops.cjs +1 -0
  98. package/dist/devops.d.ts +758 -0
  99. package/dist/devops.mjs +12 -0
  100. package/dist/editors.cjs +1 -0
  101. package/dist/editors.d.ts +2728 -0
  102. package/dist/editors.mjs +66 -0
  103. package/dist/feedback.cjs +1 -0
  104. package/dist/feedback.d.ts +339 -0
  105. package/dist/feedback.mjs +16 -0
  106. package/dist/index-C853adw1.cjs +6199 -0
  107. package/dist/index-CBIZ6mTQ.cjs +5734 -0
  108. package/dist/index-CIl98Vbm.js +72951 -0
  109. package/dist/index-CNwVELPJ.js +62857 -0
  110. package/dist/index-CUx_-gKK.cjs +1 -0
  111. package/dist/index-x8mRM4Jc.js +17 -0
  112. package/dist/index.cjs +1 -7866
  113. package/dist/index.css +1 -0
  114. package/dist/index.d.ts +4888 -180
  115. package/dist/index.mjs +1021 -105889
  116. package/dist/lazy.cjs +1 -0
  117. package/dist/lazy.d.ts +1880 -0
  118. package/dist/lazy.mjs +98 -0
  119. package/dist/navigation.cjs +1 -0
  120. package/dist/navigation.d.ts +1862 -0
  121. package/dist/navigation.mjs +576 -0
  122. package/dist/no-code-BCuadkm4.cjs +332 -0
  123. package/dist/no-code-TL7PyulA.js +7005 -0
  124. package/dist/no-code.cjs +1 -0
  125. package/dist/no-code.d.ts +870 -0
  126. package/dist/no-code.mjs +13 -0
  127. package/dist/overlays.cjs +1 -0
  128. package/dist/overlays.d.ts +706 -0
  129. package/dist/overlays.mjs +482 -0
  130. package/package.json +51 -1
@@ -0,0 +1,450 @@
1
+ import { jsxs as l, jsx as e, Fragment as ve } from "react/jsx-runtime";
2
+ import Ce, { forwardRef as ne, useCallback as W, useMemo as z, useState as ee, useRef as be } from "react";
3
+ import { a as ie, b as oe, u as de, c as ue, d as ce, e as we, N as pe, f as Se, g as Me, C as ae } from "./core-CfXsl755.js";
4
+ const Re = ne(({
5
+ label: y,
6
+ helperText: v,
7
+ error: t,
8
+ required: A,
9
+ disabled: s,
10
+ readOnly: a,
11
+ size: B = "md",
12
+ name: M,
13
+ id: x,
14
+ className: R,
15
+ style: k,
16
+ accessMode: p,
17
+ displayStyle: g,
18
+ value: h,
19
+ defaultValue: _,
20
+ onChange: C,
21
+ onBlur: o,
22
+ onKeyDown: m,
23
+ placeholder: w,
24
+ type: D = "text",
25
+ maxLength: F,
26
+ prefix: I,
27
+ suffix: q,
28
+ clearable: c,
29
+ autoFocus: J,
30
+ submitOnEnter: S,
31
+ onSubmit: L,
32
+ showKeyboardHints: Q,
33
+ ...K
34
+ }, le) => {
35
+ const G = ie(p, x);
36
+ if (G === "hidden") return null;
37
+ G === "disabled" && (s = !0), G === "readOnly" && (a = !0);
38
+ const { t: E } = oe(), d = de(x), te = ue("input", g), se = ce("input", g), V = W(() => C?.(""), [C]), $ = we({
39
+ enabled: S,
40
+ onSubmit: L
41
+ }), O = W((u) => {
42
+ $(u), m?.(u);
43
+ }, [$, m]), P = z(() => {
44
+ const u = [];
45
+ return S && u.push({ key: "Enter", description: E("shortcuts.submit", "Submit") }), c && u.push({ key: "Escape", description: E("shortcuts.clear", "Clear") }), u;
46
+ }, [S, c, E]);
47
+ return /* @__PURE__ */ l("div", { className: `nice-field ${R || ""}`, style: k, children: [
48
+ y && /* @__PURE__ */ l("label", { htmlFor: d, className: `nice-field__label ${A ? "nice-field__label--required" : ""}`, children: [
49
+ y,
50
+ Q && P.length > 0 && /* @__PURE__ */ e(pe, { shortcuts: P, size: "sm" })
51
+ ] }),
52
+ /* @__PURE__ */ l("div", { className: `nice-input nice-input--${B} nice-input--ds-${se} ${t ? "nice-input--error" : ""} ${s ? "nice-input--disabled" : ""} ${a ? "nice-input--readonly" : ""}`, style: te, children: [
53
+ I && /* @__PURE__ */ e("span", { className: "nice-input__icon", children: I }),
54
+ /* @__PURE__ */ e(
55
+ "input",
56
+ {
57
+ ref: le,
58
+ id: d,
59
+ className: "nice-input__native",
60
+ type: D,
61
+ name: M,
62
+ value: h,
63
+ defaultValue: _,
64
+ placeholder: w,
65
+ disabled: s,
66
+ readOnly: a,
67
+ maxLength: F,
68
+ autoFocus: J,
69
+ "aria-invalid": !!t,
70
+ "aria-describedby": t ? `${d}-error` : v ? `${d}-helper` : void 0,
71
+ onChange: (u) => C?.(u.target.value),
72
+ onBlur: o,
73
+ onKeyDown: O,
74
+ ...K
75
+ }
76
+ ),
77
+ c && h && /* @__PURE__ */ e("button", { type: "button", className: "nice-input__clear", onClick: V, "aria-label": E("controls.clear", "Clear"), children: "✕" }),
78
+ q && /* @__PURE__ */ e("span", { className: "nice-input__icon", children: q })
79
+ ] }),
80
+ t && /* @__PURE__ */ e("div", { id: `${d}-error`, className: "nice-field__error", role: "alert", children: t }),
81
+ !t && v && /* @__PURE__ */ e("div", { id: `${d}-helper`, className: "nice-field__helper", children: v })
82
+ ] });
83
+ });
84
+ Re.displayName = "NiceTextInput";
85
+ const De = ne(({
86
+ label: y,
87
+ helperText: v,
88
+ error: t,
89
+ required: A,
90
+ disabled: s,
91
+ size: a = "md",
92
+ name: B,
93
+ id: M,
94
+ className: x,
95
+ style: R,
96
+ accessMode: k,
97
+ displayStyle: p,
98
+ options: g,
99
+ value: h,
100
+ onChange: _,
101
+ placeholder: C,
102
+ multiple: o = !1,
103
+ searchable: m = !1,
104
+ clearable: w = !1,
105
+ emptyText: D,
106
+ maxHeight: F = 240,
107
+ optionsSource: I,
108
+ valueField: q,
109
+ labelField: c,
110
+ virtualScroll: J,
111
+ optionHeight: S = 36,
112
+ onSearch: L,
113
+ loading: Q,
114
+ renderOption: K,
115
+ showKeyboardHints: le
116
+ }, G) => {
117
+ const E = ie(k, M);
118
+ if (E === "hidden") return null;
119
+ (E === "disabled" || E === "readOnly") && (s = !0);
120
+ const { t: d } = oe(), te = ue("input", p), se = ce("input", p), V = de(M), [$, O] = ee(!1), [P, u] = ee(""), [U, H] = ee(-1), [he, Ne] = ee(0), _e = be(null), ye = Se(
121
+ I ?? null,
122
+ q ?? I?.keyField ?? "id",
123
+ c ?? "name"
124
+ ), T = I ? ye.options : g ?? [];
125
+ Me(_e, () => {
126
+ O(!1), u("");
127
+ });
128
+ const f = z(() => h ? Array.isArray(h) ? h : [h] : [], [h]), b = z(() => {
129
+ if (!P && !L || L) return T;
130
+ const n = P.toLowerCase();
131
+ return T.filter((r) => r.label.toLowerCase().includes(n) || String(r.value).toLowerCase().includes(n));
132
+ }, [T, P, L]), me = z(() => {
133
+ const n = /* @__PURE__ */ new Map();
134
+ for (const r of b) {
135
+ const i = r.group || "";
136
+ n.has(i) || n.set(i, []), n.get(i).push(r);
137
+ }
138
+ return n;
139
+ }, [b]), X = W((n) => {
140
+ if (o) {
141
+ const r = f.includes(n) ? f.filter((i) => i !== n) : [...f, n];
142
+ _?.(r);
143
+ } else
144
+ _?.(n), O(!1), u("");
145
+ }, [o, f, _]), ke = W((n) => {
146
+ if (n.key === "Escape") {
147
+ O(!1), u("");
148
+ return;
149
+ }
150
+ if (n.key === "Enter" || n.key === " ") {
151
+ if (!$) {
152
+ O(!0), n.preventDefault();
153
+ return;
154
+ }
155
+ U >= 0 && b[U] && (X(b[U].value), n.preventDefault());
156
+ return;
157
+ }
158
+ n.key === "ArrowDown" && (n.preventDefault(), H((r) => Math.min(r + 1, b.length - 1))), n.key === "ArrowUp" && (n.preventDefault(), H((r) => Math.max(r - 1, 0)));
159
+ }, [$, U, b, X]), fe = z(() => f.length === 0 ? null : o ? f.map((n) => T.find((r) => r.value === n)?.label || n).join(", ") : T.find((n) => n.value === f[0])?.label || f[0], [f, T, o]), ge = W((n) => {
160
+ n.stopPropagation(), _?.(o ? [] : "");
161
+ }, [_, o]), $e = z(() => [
162
+ { key: "Enter", description: d("shortcuts.select", "Select") },
163
+ { key: "Space", description: d("shortcuts.openDropdown", "Open dropdown") },
164
+ ae.moveUp,
165
+ ae.moveDown,
166
+ ae.cancel
167
+ ], [d]);
168
+ return /* @__PURE__ */ l("div", { className: `nice-field ${x || ""}`, style: R, children: [
169
+ y && /* @__PURE__ */ l("label", { htmlFor: V, className: `nice-field__label ${A ? "nice-field__label--required" : ""}`, children: [
170
+ y,
171
+ le && /* @__PURE__ */ e(pe, { shortcuts: $e, size: "sm" })
172
+ ] }),
173
+ /* @__PURE__ */ l("div", { className: "nice-select", ref: _e, children: [
174
+ /* @__PURE__ */ l(
175
+ "button",
176
+ {
177
+ ref: G,
178
+ type: "button",
179
+ id: V,
180
+ role: "combobox",
181
+ "aria-expanded": $,
182
+ "aria-haspopup": "listbox",
183
+ "aria-invalid": !!t,
184
+ className: `nice-select__trigger nice-select__trigger--${a} nice-select--ds-${se} ${$ ? "nice-select__trigger--open" : ""} ${t ? "nice-select__trigger--error" : ""} ${s ? "nice-select__trigger--disabled" : ""}`,
185
+ style: te,
186
+ disabled: s,
187
+ onClick: () => O(!$),
188
+ onKeyDown: ke,
189
+ children: [
190
+ fe ? /* @__PURE__ */ e("span", { children: fe }) : /* @__PURE__ */ e("span", { className: "nice-select__placeholder", children: C || d("controls.select", "Select...") }),
191
+ /* @__PURE__ */ l("span", { style: { display: "flex", alignItems: "center", gap: 4 }, children: [
192
+ w && f.length > 0 && /* @__PURE__ */ e("span", { className: "nice-input__clear", onClick: ge, role: "button", "aria-label": d("controls.clear", "Clear"), children: "✕" }),
193
+ /* @__PURE__ */ e("svg", { className: `nice-select__chevron ${$ ? "nice-select__chevron--open" : ""}`, viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ e("path", { fillRule: "evenodd", d: "M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z", clipRule: "evenodd" }) })
194
+ ] })
195
+ ]
196
+ }
197
+ ),
198
+ $ && /* @__PURE__ */ l(
199
+ "div",
200
+ {
201
+ className: "nice-select__dropdown",
202
+ role: "listbox",
203
+ style: { maxHeight: F },
204
+ onScroll: J ? (n) => Ne(n.currentTarget.scrollTop) : void 0,
205
+ children: [
206
+ (m || L) && /* @__PURE__ */ e("div", { className: "nice-select__search", children: /* @__PURE__ */ e(
207
+ "input",
208
+ {
209
+ type: "text",
210
+ value: P,
211
+ onChange: (n) => {
212
+ u(n.target.value), H(0), L?.(n.target.value);
213
+ },
214
+ placeholder: d("controls.search", "Search..."),
215
+ autoFocus: !0
216
+ }
217
+ ) }),
218
+ Q && /* @__PURE__ */ e("div", { className: "nice-select__loading", children: /* @__PURE__ */ e("div", { className: "nice-spinner nice-spinner--sm", style: { margin: "8px auto" } }) }),
219
+ !Q && b.length === 0 ? /* @__PURE__ */ e("div", { className: "nice-select__empty", children: D || d("controls.noResults", "No results found") }) : J && !Array.from(me.keys()).some((n) => n !== "") ? (() => {
220
+ const r = b.length * S, i = Math.max(0, Math.floor(he / S) - 3), j = Math.min(b.length, Math.ceil((he + F) / S) + 3), Y = b.slice(i, j);
221
+ return /* @__PURE__ */ e("div", { style: { height: r, position: "relative" }, children: Y.map((N, xe) => {
222
+ const re = i + xe, Z = f.includes(N.value);
223
+ return /* @__PURE__ */ e(
224
+ "div",
225
+ {
226
+ role: "option",
227
+ "aria-selected": Z,
228
+ className: `nice-select__option ${Z ? "nice-select__option--selected" : ""} ${re === U ? "nice-select__option--highlighted" : ""} ${N.disabled ? "nice-select__option--disabled" : ""}`,
229
+ style: { position: "absolute", top: re * S, left: 0, right: 0, height: S, display: "flex", alignItems: "center", padding: "0 12px" },
230
+ onClick: () => !N.disabled && X(String(N.value)),
231
+ onMouseEnter: () => H(re),
232
+ children: K ? K(N, Z) : /* @__PURE__ */ l(ve, { children: [
233
+ N.icon && /* @__PURE__ */ e("span", { children: N.icon }),
234
+ /* @__PURE__ */ l("div", { style: { flex: 1 }, children: [
235
+ /* @__PURE__ */ e("div", { children: N.label }),
236
+ N.description && /* @__PURE__ */ e("div", { className: "nice-select__option-desc", children: N.description })
237
+ ] }),
238
+ Z && /* @__PURE__ */ e("svg", { className: "nice-select__option-check", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ e("path", { fillRule: "evenodd", d: "M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z", clipRule: "evenodd" }) })
239
+ ] })
240
+ },
241
+ N.value
242
+ );
243
+ }) });
244
+ })() : Array.from(me.entries()).map(([n, r]) => /* @__PURE__ */ l(Ce.Fragment, { children: [
245
+ n && /* @__PURE__ */ e("div", { className: "nice-select__group-label", children: n }),
246
+ r.map((i) => {
247
+ const j = f.includes(i.value), Y = b.indexOf(i);
248
+ return /* @__PURE__ */ e(
249
+ "div",
250
+ {
251
+ role: "option",
252
+ "aria-selected": j,
253
+ className: `nice-select__option ${j ? "nice-select__option--selected" : ""} ${Y === U ? "nice-select__option--highlighted" : ""} ${i.disabled ? "nice-select__option--disabled" : ""}`,
254
+ onClick: () => !i.disabled && X(String(i.value)),
255
+ onMouseEnter: () => H(Y),
256
+ children: K ? K(i, j) : /* @__PURE__ */ l(ve, { children: [
257
+ i.icon && /* @__PURE__ */ e("span", { children: i.icon }),
258
+ /* @__PURE__ */ l("div", { style: { flex: 1 }, children: [
259
+ /* @__PURE__ */ e("div", { children: i.label }),
260
+ i.description && /* @__PURE__ */ e("div", { className: "nice-select__option-desc", children: i.description })
261
+ ] }),
262
+ j && /* @__PURE__ */ e("svg", { className: "nice-select__option-check", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ e("path", { fillRule: "evenodd", d: "M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z", clipRule: "evenodd" }) })
263
+ ] })
264
+ },
265
+ i.value
266
+ );
267
+ })
268
+ ] }, n))
269
+ ]
270
+ }
271
+ )
272
+ ] }),
273
+ t && /* @__PURE__ */ e("div", { className: "nice-field__error", role: "alert", children: t }),
274
+ !t && v && /* @__PURE__ */ e("div", { className: "nice-field__helper", children: v })
275
+ ] });
276
+ });
277
+ De.displayName = "NiceSelect";
278
+ const Ie = [
279
+ "#ef4444",
280
+ "#f97316",
281
+ "#f59e0b",
282
+ "#84cc16",
283
+ "#10b981",
284
+ "#06b6d4",
285
+ "#3b82f6",
286
+ "#6366f1",
287
+ "#8b5cf6",
288
+ "#ec4899",
289
+ "#64748b",
290
+ "#1e293b"
291
+ ];
292
+ function Ee() {
293
+ return "#" + Math.floor(Math.random() * 16777215).toString(16).padStart(6, "0");
294
+ }
295
+ const Ae = ne(({
296
+ label: y,
297
+ helperText: v,
298
+ error: t,
299
+ required: A,
300
+ disabled: s,
301
+ id: a,
302
+ className: B,
303
+ style: M,
304
+ accessMode: x,
305
+ displayStyle: R,
306
+ value: k = "#3b82f6",
307
+ onChange: p,
308
+ presets: g = Ie,
309
+ showInput: h = !0,
310
+ showRandom: _ = !0,
311
+ showKeyboardHints: C
312
+ }, o) => {
313
+ const m = ie(x, a);
314
+ if (m === "hidden") return null;
315
+ (m === "disabled" || m === "readOnly") && (s = !0);
316
+ const { t: w } = oe(), D = de(a);
317
+ ce("input", R);
318
+ const F = be(null), I = W(() => {
319
+ s || p?.(Ee());
320
+ }, [s, p]), q = z(() => [
321
+ { key: "Enter", description: w("shortcuts.openPicker", "Open color picker") },
322
+ { key: "Arrow keys", description: w("shortcuts.navigatePresets", "Navigate presets") }
323
+ ], [w]);
324
+ return /* @__PURE__ */ l("div", { className: `nice-field ${B || ""}`, style: M, children: [
325
+ y && /* @__PURE__ */ l("label", { htmlFor: D, className: `nice-field__label ${A ? "nice-field__label--required" : ""}`, children: [
326
+ y,
327
+ C && /* @__PURE__ */ e(pe, { shortcuts: q, size: "sm" })
328
+ ] }),
329
+ /* @__PURE__ */ l("div", { className: "nice-color-picker", children: [
330
+ /* @__PURE__ */ l("div", { className: "nice-color-picker__preview-row", children: [
331
+ /* @__PURE__ */ e(
332
+ "div",
333
+ {
334
+ className: "nice-color-picker__swatch",
335
+ style: { background: k },
336
+ onClick: () => F.current?.click(),
337
+ role: "button",
338
+ tabIndex: 0,
339
+ "aria-label": "Pick color",
340
+ children: /* @__PURE__ */ e(
341
+ "input",
342
+ {
343
+ ref: (c) => {
344
+ F.current = c, typeof o == "function" ? o(c) : o && (o.current = c);
345
+ },
346
+ type: "color",
347
+ className: "nice-color-picker__native",
348
+ id: D,
349
+ value: k,
350
+ disabled: s,
351
+ onChange: (c) => p?.(c.target.value)
352
+ }
353
+ )
354
+ }
355
+ ),
356
+ h && /* @__PURE__ */ e("div", { className: "nice-input nice-input--sm", style: { width: 100 }, children: /* @__PURE__ */ e(
357
+ "input",
358
+ {
359
+ className: "nice-input__native",
360
+ type: "text",
361
+ value: k,
362
+ disabled: s,
363
+ onChange: (c) => p?.(c.target.value),
364
+ maxLength: 7
365
+ }
366
+ ) }),
367
+ _ && /* @__PURE__ */ e("button", { type: "button", className: "nice-btn nice-btn--outline nice-btn--sm nice-color-picker__random", onClick: I, disabled: s, title: "Random color", "aria-label": "Random color", children: "🎲" })
368
+ ] }),
369
+ g.length > 0 && /* @__PURE__ */ e("div", { className: "nice-color-picker__presets", children: g.map((c) => /* @__PURE__ */ e(
370
+ "div",
371
+ {
372
+ className: `nice-color-picker__preset ${k === c ? "nice-color-picker__preset--active" : ""}`,
373
+ style: { background: c },
374
+ onClick: () => p?.(c),
375
+ role: "button",
376
+ tabIndex: 0,
377
+ "aria-label": c
378
+ },
379
+ c
380
+ )) })
381
+ ] }),
382
+ t && /* @__PURE__ */ e("div", { className: "nice-field__error", role: "alert", children: t }),
383
+ !t && v && /* @__PURE__ */ e("div", { className: "nice-field__helper", children: v })
384
+ ] });
385
+ });
386
+ Ae.displayName = "NiceColorPicker";
387
+ const Fe = ne(
388
+ ({
389
+ children: y,
390
+ variant: v = "primary",
391
+ size: t = "md",
392
+ type: A = "button",
393
+ disabled: s,
394
+ loading: a,
395
+ fullWidth: B,
396
+ onClick: M,
397
+ leftIcon: x,
398
+ rightIcon: R,
399
+ className: k,
400
+ style: p,
401
+ id: g,
402
+ accessMode: h,
403
+ displayStyle: _,
404
+ ...C
405
+ }, o) => {
406
+ const m = ie(h, g);
407
+ if (m === "hidden") return null;
408
+ (m === "disabled" || m === "readOnly") && (s = !0);
409
+ const w = ue("button", _), D = ce("button", _);
410
+ return /* @__PURE__ */ l(
411
+ "button",
412
+ {
413
+ ref: o,
414
+ type: A,
415
+ id: g,
416
+ className: `nice-btn nice-btn--${v} nice-btn--${t} nice-btn--ds-${D} ${B ? "nice-btn--full-width" : ""} ${a ? "nice-btn--loading" : ""} ${k || ""}`,
417
+ style: { ...w, ...p },
418
+ disabled: s || a,
419
+ "aria-busy": a || void 0,
420
+ "aria-disabled": s || a || void 0,
421
+ onClick: M,
422
+ ...C,
423
+ children: [
424
+ a && /* @__PURE__ */ e(
425
+ "svg",
426
+ {
427
+ className: "nice-btn__spinner",
428
+ viewBox: "0 0 24 24",
429
+ fill: "none",
430
+ stroke: "currentColor",
431
+ strokeWidth: "3",
432
+ "aria-hidden": "true",
433
+ children: /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "10", strokeDasharray: "31.4 31.4", strokeLinecap: "round" })
434
+ }
435
+ ),
436
+ !a && x && /* @__PURE__ */ e("span", { "aria-hidden": "true", children: x }),
437
+ /* @__PURE__ */ e("span", { children: y }),
438
+ !a && R && /* @__PURE__ */ e("span", { "aria-hidden": "true", children: R })
439
+ ]
440
+ }
441
+ );
442
+ }
443
+ );
444
+ Fe.displayName = "NiceButton";
445
+ export {
446
+ Ae as N,
447
+ De as a,
448
+ Re as b,
449
+ Fe as c
450
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceCodeTemplate",a="Code template manager with variable substitution and snippet generation.",s="no-code",n="1.0.7",o="stable",i=[{name:"templates",type:"CodeTemplate[]",required:!0,description:"Available templates"},{name:"variables",type:"Record<string, string>",description:"Template variables"},{name:"onGenerate",type:"(template: string, vars: Record<string, string>) => string",description:"Generate code callback"},{name:"language",type:"string",description:"Target language"}],c=[{title:"Code Template",description:"Generate code from templates",code:`<NiceCodeTemplate
2
+ templates={codeTemplates}
3
+ variables={{ className: 'MyClass' }}
4
+ onGenerate={handleGenerate}
5
+ language="typescript"
6
+ />`}],r={role:"region",ariaLabel:"Code template manager"},l=["NiceCodeEditor","NiceSnippetManager"],p={$schema:e,name:t,description:a,category:s,since:n,status:o,props:i,examples:c,accessibility:r,seeAlso:l};exports.$schema=e;exports.accessibility=r;exports.category=s;exports.default=p;exports.description=a;exports.examples=c;exports.name=t;exports.props=i;exports.seeAlso=l;exports.since=n;exports.status=o;
@@ -0,0 +1,30 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceCodeTemplate", a = "Code template manager with variable substitution and snippet generation.", n = "no-code", s = "1.0.7", o = "stable", i = [{ name: "templates", type: "CodeTemplate[]", required: !0, description: "Available templates" }, { name: "variables", type: "Record<string, string>", description: "Template variables" }, { name: "onGenerate", type: "(template: string, vars: Record<string, string>) => string", description: "Generate code callback" }, { name: "language", type: "string", description: "Target language" }], c = [{ title: "Code Template", description: "Generate code from templates", code: `<NiceCodeTemplate
2
+ templates={codeTemplates}
3
+ variables={{ className: 'MyClass' }}
4
+ onGenerate={handleGenerate}
5
+ language="typescript"
6
+ />` }], r = { role: "region", ariaLabel: "Code template manager" }, l = ["NiceCodeEditor", "NiceSnippetManager"], p = {
7
+ $schema: e,
8
+ name: t,
9
+ description: a,
10
+ category: n,
11
+ since: s,
12
+ status: o,
13
+ props: i,
14
+ examples: c,
15
+ accessibility: r,
16
+ seeAlso: l
17
+ };
18
+ export {
19
+ e as $schema,
20
+ r as accessibility,
21
+ n as category,
22
+ p as default,
23
+ a as description,
24
+ c as examples,
25
+ t as name,
26
+ i as props,
27
+ l as seeAlso,
28
+ s as since,
29
+ o as status
30
+ };
@@ -0,0 +1,29 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceDataBranchGraph", n = "Timeline visualization of data changes, merges, and environment promotions.", a = "data-branching", i = "1.0.7", o = "stable", c = [{ name: "history", type: "DataHistoryEntry[]", required: !0, description: "Data change history" }, { name: "environments", type: "string[]", description: "Environment names for lanes" }, { name: "onEntrySelect", type: "(entry: DataHistoryEntry) => void", description: "Entry selection callback" }, { name: "layout", type: "'horizontal' | 'vertical'", default: "horizontal", description: "Timeline layout" }], s = [{ title: "Data Branch Graph", description: "Visualize data change history", code: `<NiceDataBranchGraph
2
+ history={changeHistory}
3
+ environments={['DEV', 'TEST', 'PROD']}
4
+ onEntrySelect={handleSelect}
5
+ />` }], r = { role: "tree", ariaLabel: "Data change timeline" }, l = ["NiceDataDiffViewer", "NiceGitGraph"], h = {
6
+ $schema: e,
7
+ name: t,
8
+ description: n,
9
+ category: a,
10
+ since: i,
11
+ status: o,
12
+ props: c,
13
+ examples: s,
14
+ accessibility: r,
15
+ seeAlso: l
16
+ };
17
+ export {
18
+ e as $schema,
19
+ r as accessibility,
20
+ a as category,
21
+ h as default,
22
+ n as description,
23
+ s as examples,
24
+ t as name,
25
+ c as props,
26
+ l as seeAlso,
27
+ i as since,
28
+ o as status
29
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceDataBranchGraph",n="Timeline visualization of data changes, merges, and environment promotions.",a="data-branching",i="1.0.7",o="stable",s=[{name:"history",type:"DataHistoryEntry[]",required:!0,description:"Data change history"},{name:"environments",type:"string[]",description:"Environment names for lanes"},{name:"onEntrySelect",type:"(entry: DataHistoryEntry) => void",description:"Entry selection callback"},{name:"layout",type:"'horizontal' | 'vertical'",default:"horizontal",description:"Timeline layout"}],c=[{title:"Data Branch Graph",description:"Visualize data change history",code:`<NiceDataBranchGraph
2
+ history={changeHistory}
3
+ environments={['DEV', 'TEST', 'PROD']}
4
+ onEntrySelect={handleSelect}
5
+ />`}],r={role:"tree",ariaLabel:"Data change timeline"},l=["NiceDataDiffViewer","NiceGitGraph"],h={$schema:e,name:t,description:n,category:a,since:i,status:o,props:s,examples:c,accessibility:r,seeAlso:l};exports.$schema=e;exports.accessibility=r;exports.category=a;exports.default=h;exports.description=n;exports.examples=c;exports.name=t;exports.props=s;exports.seeAlso=l;exports.since=i;exports.status=o;
@@ -0,0 +1,30 @@
1
+ const n = "https://nice2dev.com/schemas/component-doc-v1.json", e = "NiceDataBranchManager", t = "Environment management panel for DEV, TEST, UAT, STAGING, PROD data environments.", a = "data-branching", o = "1.0.7", r = "stable", i = [{ name: "environments", type: "DataEnvironment[]", required: !0, description: "Available environments" }, { name: "currentEnvironment", type: "string", description: "Currently selected environment" }, { name: "onSelect", type: "(env: string) => void", description: "Environment selection callback" }, { name: "onCreateBranch", type: "(name: string, from: string) => Promise<void>", description: "Create data branch callback" }, { name: "onPromote", type: "(from: string, to: string) => Promise<void>", description: "Promote data callback" }], c = [{ title: "Data Branch Manager", description: "Manage data environments", code: `<NiceDataBranchManager
2
+ environments={envList}
3
+ currentEnvironment="DEV"
4
+ onSelect={handleSelect}
5
+ onPromote={handlePromote}
6
+ />` }], s = { role: "region", ariaLabel: "Data environment manager" }, m = ["NiceDataSnapshot", "NiceDataMergeBuilder"], l = {
7
+ $schema: n,
8
+ name: e,
9
+ description: t,
10
+ category: a,
11
+ since: o,
12
+ status: r,
13
+ props: i,
14
+ examples: c,
15
+ accessibility: s,
16
+ seeAlso: m
17
+ };
18
+ export {
19
+ n as $schema,
20
+ s as accessibility,
21
+ a as category,
22
+ l as default,
23
+ t as description,
24
+ c as examples,
25
+ e as name,
26
+ i as props,
27
+ m as seeAlso,
28
+ o as since,
29
+ r as status
30
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",n="NiceDataBranchManager",t="Environment management panel for DEV, TEST, UAT, STAGING, PROD data environments.",a="data-branching",o="1.0.7",r="stable",i=[{name:"environments",type:"DataEnvironment[]",required:!0,description:"Available environments"},{name:"currentEnvironment",type:"string",description:"Currently selected environment"},{name:"onSelect",type:"(env: string) => void",description:"Environment selection callback"},{name:"onCreateBranch",type:"(name: string, from: string) => Promise<void>",description:"Create data branch callback"},{name:"onPromote",type:"(from: string, to: string) => Promise<void>",description:"Promote data callback"}],c=[{title:"Data Branch Manager",description:"Manage data environments",code:`<NiceDataBranchManager
2
+ environments={envList}
3
+ currentEnvironment="DEV"
4
+ onSelect={handleSelect}
5
+ onPromote={handlePromote}
6
+ />`}],s={role:"region",ariaLabel:"Data environment manager"},m=["NiceDataSnapshot","NiceDataMergeBuilder"],l={$schema:e,name:n,description:t,category:a,since:o,status:r,props:i,examples:c,accessibility:s,seeAlso:m};exports.$schema=e;exports.accessibility=s;exports.category=a;exports.default=l;exports.description=t;exports.examples=c;exports.name=n;exports.props=i;exports.seeAlso=m;exports.since=o;exports.status=r;
@@ -0,0 +1,5 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",o="NiceDataConflictResolver",t="Resolve data conflicts during merge with side-by-side comparison and resolution actions.",s="data-branching",c="1.0.7",i="stable",l=[{name:"conflicts",type:"DataConflict[]",required:!0,description:"List of conflicts"},{name:"onResolve",type:"(resolution: ConflictResolution) => void",description:"Resolve conflict callback"},{name:"onResolveAll",type:"(strategy: 'source' | 'target') => void",description:"Resolve all callback"},{name:"showFieldDiff",type:"boolean",default:!0,description:"Show field-level diff"}],n=[{title:"Data Conflict Resolver",description:"Resolve merge conflicts",code:`<NiceDataConflictResolver
2
+ conflicts={mergeConflicts}
3
+ onResolve={handleResolve}
4
+ onResolveAll={handleResolveAll}
5
+ />`}],a={role:"region",ariaLabel:"Data conflict resolver"},r=["NiceDataMergeBuilder","NiceGitConflictResolver"],d={$schema:e,name:o,description:t,category:s,since:c,status:i,props:l,examples:n,accessibility:a,seeAlso:r};exports.$schema=e;exports.accessibility=a;exports.category=s;exports.default=d;exports.description=t;exports.examples=n;exports.name=o;exports.props=l;exports.seeAlso=r;exports.since=c;exports.status=i;
@@ -0,0 +1,29 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", o = "NiceDataConflictResolver", t = "Resolve data conflicts during merge with side-by-side comparison and resolution actions.", s = "data-branching", c = "1.0.7", l = "stable", n = [{ name: "conflicts", type: "DataConflict[]", required: !0, description: "List of conflicts" }, { name: "onResolve", type: "(resolution: ConflictResolution) => void", description: "Resolve conflict callback" }, { name: "onResolveAll", type: "(strategy: 'source' | 'target') => void", description: "Resolve all callback" }, { name: "showFieldDiff", type: "boolean", default: !0, description: "Show field-level diff" }], i = [{ title: "Data Conflict Resolver", description: "Resolve merge conflicts", code: `<NiceDataConflictResolver
2
+ conflicts={mergeConflicts}
3
+ onResolve={handleResolve}
4
+ onResolveAll={handleResolveAll}
5
+ />` }], a = { role: "region", ariaLabel: "Data conflict resolver" }, r = ["NiceDataMergeBuilder", "NiceGitConflictResolver"], d = {
6
+ $schema: e,
7
+ name: o,
8
+ description: t,
9
+ category: s,
10
+ since: c,
11
+ status: l,
12
+ props: n,
13
+ examples: i,
14
+ accessibility: a,
15
+ seeAlso: r
16
+ };
17
+ export {
18
+ e as $schema,
19
+ a as accessibility,
20
+ s as category,
21
+ d as default,
22
+ t as description,
23
+ i as examples,
24
+ o as name,
25
+ n as props,
26
+ r as seeAlso,
27
+ c as since,
28
+ l as status
29
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="https://nice2dev.com/schemas/component-doc-v1.json",t="NiceDataDiffViewer",i="Compare data records between environments with field-level diff highlighting.",n="data-branching",a="1.0.7",o="stable",s=[{name:"sourceData",type:"Record<string, unknown>",required:!0,description:"Source environment data"},{name:"targetData",type:"Record<string, unknown>",required:!0,description:"Target environment data"},{name:"entity",type:"string",description:"Entity type name"},{name:"mode",type:"'split' | 'inline'",default:"split",description:"Display mode"},{name:"onFieldSelect",type:"(field: string) => void",description:"Field selection callback"}],c=[{title:"Data Diff Viewer",description:"Compare records between environments",code:`<NiceDataDiffViewer
2
+ sourceData={devRecord}
3
+ targetData={testRecord}
4
+ entity="Customer"
5
+ mode="split"
6
+ />`}],r={role:"region",ariaLabel:"Data comparison viewer"},d=["NiceDataBranchGraph","NiceDataConflictResolver"],l={$schema:e,name:t,description:i,category:n,since:a,status:o,props:s,examples:c,accessibility:r,seeAlso:d};exports.$schema=e;exports.accessibility=r;exports.category=n;exports.default=l;exports.description=i;exports.examples=c;exports.name=t;exports.props=s;exports.seeAlso=d;exports.since=a;exports.status=o;
@@ -0,0 +1,30 @@
1
+ const e = "https://nice2dev.com/schemas/component-doc-v1.json", t = "NiceDataDiffViewer", n = "Compare data records between environments with field-level diff highlighting.", i = "data-branching", a = "1.0.7", o = "stable", r = [{ name: "sourceData", type: "Record<string, unknown>", required: !0, description: "Source environment data" }, { name: "targetData", type: "Record<string, unknown>", required: !0, description: "Target environment data" }, { name: "entity", type: "string", description: "Entity type name" }, { name: "mode", type: "'split' | 'inline'", default: "split", description: "Display mode" }, { name: "onFieldSelect", type: "(field: string) => void", description: "Field selection callback" }], s = [{ title: "Data Diff Viewer", description: "Compare records between environments", code: `<NiceDataDiffViewer
2
+ sourceData={devRecord}
3
+ targetData={testRecord}
4
+ entity="Customer"
5
+ mode="split"
6
+ />` }], c = { role: "region", ariaLabel: "Data comparison viewer" }, d = ["NiceDataBranchGraph", "NiceDataConflictResolver"], l = {
7
+ $schema: e,
8
+ name: t,
9
+ description: n,
10
+ category: i,
11
+ since: a,
12
+ status: o,
13
+ props: r,
14
+ examples: s,
15
+ accessibility: c,
16
+ seeAlso: d
17
+ };
18
+ export {
19
+ e as $schema,
20
+ c as accessibility,
21
+ i as category,
22
+ l as default,
23
+ n as description,
24
+ s as examples,
25
+ t as name,
26
+ r as props,
27
+ d as seeAlso,
28
+ a as since,
29
+ o as status
30
+ };