@pgcorp/ui-kit 0.10.2 → 0.12.0

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 (55) hide show
  1. package/README.md +185 -11
  2. package/dist/assets/src/components/shared/_internal/{SDialogSurface.css_vue_type_style_index_0_src_979bf586_scoped_979bf586_lang.css → SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css} +1 -1
  3. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +2 -0
  4. package/dist/assets/src/components/shared/containers/{SModal.css_vue_type_style_index_0_src_dc3c799e_scoped_dc3c799e_lang.css → SModal.css_vue_type_style_index_0_src_23373daf_scoped_23373daf_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +2 -0
  6. package/dist/assets/src/components/shared/controls/SChoiceCards.css_vue_type_style_index_0_src_af9fa9d1_scoped_af9fa9d1_lang.css +2 -0
  7. package/dist/assets/src/components/shared/controls/{SInputText.css_vue_type_style_index_0_src_6d42d245_scoped_6d42d245_lang.css → SInputText.css_vue_type_style_index_0_src_a9c5f1aa_scoped_a9c5f1aa_lang.css} +1 -1
  8. package/dist/assets/src/components/shared/data-display/{SCodeEditor.css_vue_type_style_index_0_src_124ca461_scoped_124ca461_lang.css → SCodeEditor.css_vue_type_style_index_0_src_3ad533d9_scoped_3ad533d9_lang.css} +1 -1
  9. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +2 -0
  10. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +2 -0
  11. package/dist/src/components/layout/SSideMenuButton.vue.d.ts +1 -1
  12. package/dist/src/components/shared/_internal/SDialogSurface.vue.d.ts +2 -1
  13. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  14. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +37 -36
  15. package/dist/src/components/shared/_internal/dialogSurface.d.ts +3 -0
  16. package/dist/src/components/shared/_internal/dialogSurface.js +23 -19
  17. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +5 -1
  18. package/dist/src/components/shared/containers/SDrawer.vue.js +2 -2
  19. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +48 -44
  20. package/dist/src/components/shared/containers/SModal.vue.d.ts +5 -1
  21. package/dist/src/components/shared/containers/SModal.vue.js +2 -2
  22. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +47 -41
  23. package/dist/src/components/shared/controls/SButton.vue.d.ts +3 -0
  24. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  25. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +103 -99
  26. package/dist/src/components/shared/controls/SChoiceCards.vue.d.ts +1 -0
  27. package/dist/src/components/shared/controls/SChoiceCards.vue.js +2 -2
  28. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +53 -49
  29. package/dist/src/components/shared/controls/SInputText.vue.d.ts +6 -0
  30. package/dist/src/components/shared/controls/SInputText.vue.js +2 -2
  31. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +117 -97
  32. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  33. package/dist/src/components/shared/controls/STextarea.vue.d.ts +4 -0
  34. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +5 -1
  35. package/dist/src/components/shared/data-display/SCodeEditor.vue.d.ts +90 -7
  36. package/dist/src/components/shared/data-display/SCodeEditor.vue.js +2 -2
  37. package/dist/src/components/shared/data-display/SStatus.vue.d.ts +7 -0
  38. package/dist/src/components/shared/data-display/SStatus.vue.js +2 -2
  39. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +28 -21
  40. package/dist/src/components/shared/data-display/SVirtualList.vue.d.ts +2 -0
  41. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  42. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +317 -210
  43. package/dist/src/internal/useBinaryInput.js +3 -2
  44. package/docs/accessibility.md +10 -0
  45. package/docs/public-api.md +12 -0
  46. package/package.json +1 -1
  47. package/src/components/shared/controls/SButton.css +28 -0
  48. package/src/components/shared/controls/SChoiceCards.css +10 -3
  49. package/src/components/shared/data-display/SStatus.css +4 -0
  50. package/src/components/shared/data-display/SVirtualList.css +12 -0
  51. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_d0cace23_scoped_d0cace23_lang.css +0 -2
  52. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_52ad38b1_scoped_52ad38b1_lang.css +0 -2
  53. package/dist/assets/src/components/shared/controls/SChoiceCards.css_vue_type_style_index_0_src_627a8628_scoped_627a8628_lang.css +0 -2
  54. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_c76fa058_scoped_c76fa058_lang.css +0 -2
  55. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_1717877d_scoped_1717877d_lang.css +0 -2
@@ -1,16 +1,16 @@
1
1
  import { mergeIdReferences as e, useOwnedAttrs as t } from "../../../internal/ownedAttrs.js";
2
- import { resolveOptionalDomId as n, validateExactString as r } from "../../../internal/runtimeContract.js";
3
- import { useInteractiveLeafRegistration as i } from "../../../internal/passiveContentContract.js";
4
- import a from "./SButton.vue.js";
5
- import o from "./SField.vue.js";
6
- import { resolveFieldSurfaceBindings as s } from "../../../internal/fieldSurface.js";
7
- import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createVNode as p, defineComponent as m, mergeProps as h, openBlock as g, ref as _, resolveDynamicComponent as v, toDisplayString as y, unref as b, useId as x, watchEffect as S, withCtx as C } from "vue";
2
+ import { resolveOptionalDomId as n, validateBoundedInteger as r, validateExactString as i } from "../../../internal/runtimeContract.js";
3
+ import { useInteractiveLeafRegistration as a } from "../../../internal/passiveContentContract.js";
4
+ import o from "./SButton.vue.js";
5
+ import s from "./SField.vue.js";
6
+ import { resolveFieldSurfaceBindings as c } from "../../../internal/fieldSurface.js";
7
+ import { computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createVNode as m, defineComponent as h, mergeProps as g, openBlock as _, ref as v, resolveDynamicComponent as y, toDisplayString as b, unref as x, useId as S, watchEffect as C, withCtx as w } from "vue";
8
8
  //#region src/components/shared/controls/SInputText.vue?vue&type=script&setup=true&lang.ts
9
- var w = [
9
+ var T = [
10
10
  "data-input-family",
11
11
  "data-trailing",
12
12
  "data-with-label"
13
- ], T = { class: "s-input-control" }, E = [
13
+ ], E = { class: "s-input-control" }, D = [
14
14
  "id",
15
15
  "name",
16
16
  "type",
@@ -26,17 +26,19 @@ var w = [
26
26
  "disabled",
27
27
  "readonly",
28
28
  "required",
29
+ "minlength",
30
+ "maxlength",
29
31
  "aria-invalid",
30
32
  "aria-describedby"
31
- ], D = ["data-kind"], O = {
33
+ ], O = ["data-kind"], k = {
32
34
  key: 0,
33
35
  class: "s-input-trailing__passive",
34
36
  "aria-hidden": "true"
35
- }, k = {
37
+ }, A = {
36
38
  key: 1,
37
39
  class: "s-input-trailing__text",
38
40
  "aria-hidden": "true"
39
- }, A = /*@__PURE__*/ m({
41
+ }, j = /*@__PURE__*/ h({
40
42
  inheritAttrs: !1,
41
43
  __name: "SInputText",
42
44
  props: {
@@ -56,6 +58,8 @@ var w = [
56
58
  type: Boolean,
57
59
  default: !1
58
60
  },
61
+ minLength: { default: void 0 },
62
+ maxLength: { default: void 0 },
59
63
  monospace: {
60
64
  type: Boolean,
61
65
  default: !1
@@ -90,8 +94,8 @@ var w = [
90
94
  "click",
91
95
  "keydown"
92
96
  ],
93
- setup(m, { expose: A, emit: j }) {
94
- let M = [
97
+ setup(h, { expose: j, emit: M }) {
98
+ let N = [
95
99
  "text",
96
100
  "search",
97
101
  "password",
@@ -104,7 +108,7 @@ var w = [
104
108
  "month",
105
109
  "time",
106
110
  "week"
107
- ], N = {
111
+ ], P = {
108
112
  text: {
109
113
  family: "textual",
110
114
  type: "text"
@@ -153,33 +157,47 @@ var w = [
153
157
  family: "temporal",
154
158
  type: "week"
155
159
  }
156
- }, P = m, F = j, I = t({
160
+ }, F = h, I = M, L = t({
157
161
  component: "SInputText",
158
162
  owner: "native input"
159
163
  });
160
- i({ owner: "SInputText" });
161
- let L = _(null);
162
- A({
163
- focus: () => L.value?.focus(),
164
+ a({ owner: "SInputText" });
165
+ let R = v(null);
166
+ j({
167
+ focus: () => R.value?.focus(),
164
168
  getElement: () => {
165
- let e = L.value;
169
+ let e = R.value;
166
170
  if (!e) throw Error("SInputText: native input element is unavailable");
167
171
  return e;
168
172
  }
169
173
  });
170
- let R = x(), z = c(() => n("SInputText", "id", P.id, `s-input-text-${R}`)), B = c(() => {
171
- let e = r("SInputText", "type", P.type, M);
172
- return N[e];
173
- }), V = c(() => r("SInputText", "size", P.size, [
174
+ let z = S(), B = l(() => n("SInputText", "id", F.id, `s-input-text-${z}`)), V = l(() => {
175
+ let e = i("SInputText", "type", F.type, N);
176
+ return P[e];
177
+ }), H = l(() => {
178
+ let e = F.minLength === void 0 ? void 0 : r("SInputText", "minLength", F.minLength, {
179
+ minimum: 0,
180
+ maximum: 2 ** 53 - 1
181
+ }), t = F.maxLength === void 0 ? void 0 : r("SInputText", "maxLength", F.maxLength, {
182
+ minimum: 0,
183
+ maximum: 2 ** 53 - 1
184
+ });
185
+ if (e !== void 0 && t !== void 0 && e > t) throw RangeError(`SInputText: minLength (${e}) не может превышать maxLength (${t}). / SInputText: minLength (${e}) must not exceed maxLength (${t}).`);
186
+ if ((e !== void 0 || t !== void 0) && V.value.family !== "textual") throw TypeError("SInputText: minLength и maxLength применимы только к textual native input types. / SInputText: minLength and maxLength apply only to textual native input types.");
187
+ return {
188
+ minLength: e,
189
+ maxLength: t
190
+ };
191
+ }), U = l(() => i("SInputText", "size", F.size, [
174
192
  "sm",
175
193
  "md",
176
194
  "lg"
177
- ])), H = c(() => r("SInputText", "appearance", P.appearance, [
195
+ ])), W = l(() => i("SInputText", "appearance", F.appearance, [
178
196
  "field",
179
197
  "grid-cell",
180
198
  "workbench-title"
181
- ])), U = c(() => {
182
- let e = P.modelModifiers;
199
+ ])), G = l(() => {
200
+ let e = F.modelModifiers;
183
201
  if (typeof e != "object" || !e || Array.isArray(e)) throw TypeError("SInputText: modelModifiers должен быть object. / SInputText: modelModifiers must be an object.");
184
202
  let t = e, n = /* @__PURE__ */ new Set([
185
203
  "trim",
@@ -194,104 +212,106 @@ var w = [
194
212
  lazy: t.lazy === !0
195
213
  };
196
214
  });
197
- function W(e) {
198
- return s("SInputText", {
215
+ function K(e) {
216
+ return c("SInputText", {
199
217
  kind: "text-input",
200
- appearance: H.value === "field" ? "field" : "embedded",
218
+ appearance: W.value === "field" ? "field" : "embedded",
201
219
  invalid: e.invalid,
202
220
  disabled: e.disabled,
203
221
  readonly: e.readonly
204
222
  });
205
223
  }
206
- let G = c(() => {
207
- if (P.trailingIcon) return "icon";
208
- if (P.trailingText !== void 0) return "text";
209
- if (P.trailingAction) return "action";
224
+ let q = l(() => {
225
+ if (F.trailingIcon) return "icon";
226
+ if (F.trailingText !== void 0) return "text";
227
+ if (F.trailingAction) return "action";
210
228
  });
211
- S(() => {
212
- if (U.value, [
213
- P.trailingIcon,
214
- P.trailingText,
215
- P.trailingAction
229
+ C(() => {
230
+ if (G.value, H.value, [
231
+ F.trailingIcon,
232
+ F.trailingText,
233
+ F.trailingAction
216
234
  ].filter((e) => e !== void 0).length > 1) throw Error("SInputText: trailingIcon, trailingText и trailingAction взаимоисключающие");
217
- if (P.trailingText !== void 0 && P.trailingText.length === 0) throw Error("SInputText: trailingText не может быть пустым");
218
- if (P.trailingAction && P.trailingAction.label.trim().length === 0) throw Error("SInputText: trailingAction.label обязателен");
235
+ if (F.trailingText !== void 0 && F.trailingText.length === 0) throw Error("SInputText: trailingText не может быть пустым");
236
+ if (F.trailingAction && F.trailingAction.label.trim().length === 0) throw Error("SInputText: trailingAction.label обязателен");
219
237
  });
220
- function K(e) {
238
+ function J(e) {
221
239
  let t = e.target;
222
240
  if (!(t instanceof HTMLInputElement)) throw TypeError("SInputText: input/change event target должен быть HTMLInputElement");
223
- let n = U.value.trim ? t.value.trim() : t.value;
224
- F("update:modelValue", n);
241
+ let n = G.value.trim ? t.value.trim() : t.value;
242
+ I("update:modelValue", n);
225
243
  }
226
- function q(e) {
227
- U.value.lazy || K(e);
244
+ function Y(e) {
245
+ G.value.lazy || J(e);
228
246
  }
229
- function J(e) {
230
- U.value.lazy && K(e);
247
+ function X(e) {
248
+ G.value.lazy && J(e);
231
249
  }
232
- return (t, n) => (g(), d("div", {
250
+ return (t, n) => (_(), f("div", {
233
251
  class: "s-input-text-wrapper",
234
- "data-input-family": B.value.family,
235
- "data-trailing": G.value,
236
- "data-with-label": !!m.label || void 0
237
- }, [p(o, {
238
- "control-id": z.value,
239
- label: m.label,
240
- required: m.required,
241
- "help-text": m.helpText,
242
- "error-message": m.errorMessage,
243
- invalid: m.invalid,
244
- disabled: m.disabled,
245
- readonly: m.readonly
252
+ "data-input-family": V.value.family,
253
+ "data-trailing": q.value,
254
+ "data-with-label": !!h.label || void 0
255
+ }, [m(s, {
256
+ "control-id": B.value,
257
+ label: h.label,
258
+ required: h.required,
259
+ "help-text": h.helpText,
260
+ "error-message": h.errorMessage,
261
+ invalid: h.invalid,
262
+ disabled: h.disabled,
263
+ readonly: h.readonly
246
264
  }, {
247
- default: C((t) => [f("div", T, [f("input", h({
248
- ...b(I).bindings(),
249
- ...W(t)
265
+ default: w((t) => [p("div", E, [p("input", g({
266
+ ...x(L).bindings(),
267
+ ...K(t)
250
268
  }, {
251
269
  id: t.controlId,
252
- name: m.name,
270
+ name: h.name,
253
271
  ref_key: "inputRef",
254
- ref: L,
255
- type: B.value.type,
256
- class: ["s-input-text", { "s-input-text--monospace": m.monospace }],
257
- "data-size": V.value,
258
- "data-density": m.density,
259
- "data-appearance": H.value,
260
- value: m.modelValue,
261
- placeholder: m.placeholder,
262
- autocomplete: m.autocomplete,
263
- autocapitalize: m.autocapitalize,
264
- autocorrect: m.autocorrect,
265
- spellcheck: m.spellcheck,
272
+ ref: R,
273
+ type: V.value.type,
274
+ class: ["s-input-text", { "s-input-text--monospace": h.monospace }],
275
+ "data-size": U.value,
276
+ "data-density": h.density,
277
+ "data-appearance": W.value,
278
+ value: h.modelValue,
279
+ placeholder: h.placeholder,
280
+ autocomplete: h.autocomplete,
281
+ autocapitalize: h.autocapitalize,
282
+ autocorrect: h.autocorrect,
283
+ spellcheck: h.spellcheck,
266
284
  disabled: t.disabled,
267
285
  readonly: t.readonly,
268
286
  required: t.required,
287
+ minlength: H.value.minLength,
288
+ maxlength: H.value.maxLength,
269
289
  "aria-invalid": t.invalid || void 0,
270
- "aria-describedby": b(e)(b(I).string("aria-describedby"), t.describedBy),
271
- onInput: q,
272
- onChange: J,
273
- onFocus: n[0] ||= (e) => F("focus", e),
274
- onClick: n[1] ||= (e) => F("click", e),
275
- onKeydown: n[2] ||= (e) => F("keydown", e)
276
- }), null, 16, E), G.value ? (g(), d("div", {
290
+ "aria-describedby": x(e)(x(L).string("aria-describedby"), t.describedBy),
291
+ onInput: Y,
292
+ onChange: X,
293
+ onFocus: n[0] ||= (e) => I("focus", e),
294
+ onClick: n[1] ||= (e) => I("click", e),
295
+ onKeydown: n[2] ||= (e) => I("keydown", e)
296
+ }), null, 16, D), q.value ? (_(), f("div", {
277
297
  key: 0,
278
298
  class: "s-input-trailing",
279
- "data-kind": G.value
280
- }, [m.trailingIcon ? (g(), d("span", O, [(g(), l(v(m.trailingIcon), { class: "s-input-trailing__icon" }))])) : m.trailingText === void 0 ? m.trailingAction ? (g(), l(a, {
299
+ "data-kind": q.value
300
+ }, [h.trailingIcon ? (_(), f("span", k, [(_(), u(y(h.trailingIcon), { class: "s-input-trailing__icon" }))])) : h.trailingText === void 0 ? h.trailingAction ? (_(), u(o, {
281
301
  key: 2,
282
302
  label: "",
283
303
  size: "sm",
284
- density: m.density,
304
+ density: h.density,
285
305
  appearance: "ghost",
286
306
  shape: "square",
287
307
  "icon-only": "",
288
- severity: m.trailingAction.severity ?? "secondary",
289
- "leading-icon": m.trailingAction.icon,
290
- loading: m.trailingAction.loading,
291
- disabled: t.disabled || m.trailingAction.disabled,
292
- title: m.trailingAction.title ?? m.trailingAction.label,
293
- "aria-label": m.trailingAction.label,
294
- onClick: n[3] ||= (e) => F("trailing-action", e)
308
+ severity: h.trailingAction.severity ?? "secondary",
309
+ "leading-icon": h.trailingAction.icon,
310
+ loading: h.trailingAction.loading,
311
+ disabled: t.disabled || h.trailingAction.disabled,
312
+ title: h.trailingAction.title ?? h.trailingAction.label,
313
+ "aria-label": h.trailingAction.label,
314
+ onClick: n[3] ||= (e) => I("trailing-action", e)
295
315
  }, null, 8, [
296
316
  "density",
297
317
  "severity",
@@ -300,7 +320,7 @@ var w = [
300
320
  "disabled",
301
321
  "title",
302
322
  "aria-label"
303
- ])) : u("", !0) : (g(), d("span", k, y(m.trailingText), 1))], 8, D)) : u("", !0)])]),
323
+ ])) : d("", !0) : (_(), f("span", A, b(h.trailingText), 1))], 8, O)) : d("", !0)])]),
304
324
  _: 1
305
325
  }, 8, [
306
326
  "control-id",
@@ -311,8 +331,8 @@ var w = [
311
331
  "invalid",
312
332
  "disabled",
313
333
  "readonly"
314
- ])], 8, w));
334
+ ])], 8, T));
315
335
  }
316
336
  });
317
337
  //#endregion
318
- export { A as default };
338
+ export { j as default };
@@ -17,15 +17,15 @@ export interface SMenuSurfaceApi {
17
17
  declare const __VLS_export: import('vue').DefineComponent<Props, SMenuSurfaceApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
18
  select: (item: SMenuSelectableEntry, event: SMenuActivationEvent) => any;
19
19
  escape: () => any;
20
- tab: (event: KeyboardEvent) => any;
21
20
  "focus-exit": (event: FocusEvent) => any;
21
+ tab: (event: KeyboardEvent) => any;
22
22
  "submenu-back": () => any;
23
23
  "dismiss-tree": () => any;
24
24
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
25
25
  onSelect?: ((item: SMenuSelectableEntry, event: SMenuActivationEvent) => any) | undefined;
26
26
  onEscape?: (() => any) | undefined;
27
- onTab?: ((event: KeyboardEvent) => any) | undefined;
28
27
  "onFocus-exit"?: ((event: FocusEvent) => any) | undefined;
28
+ onTab?: ((event: KeyboardEvent) => any) | undefined;
29
29
  "onSubmenu-back"?: (() => any) | undefined;
30
30
  "onDismiss-tree"?: (() => any) | undefined;
31
31
  }>, {
@@ -75,10 +75,12 @@ export interface Props {
75
75
  monospace?: boolean;
76
76
  }
77
77
  declare const __VLS_export: import('vue').DefineComponent<Props, STextareaApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
78
+ blur: (focusEvent: FocusEvent) => any;
78
79
  click: (mouseEvent: MouseEvent) => any;
79
80
  compositionend: (compositionEvent: CompositionEvent) => any;
80
81
  compositionstart: (compositionEvent: CompositionEvent) => any;
81
82
  compositionupdate: (compositionEvent: CompositionEvent) => any;
83
+ focus: (focusEvent: FocusEvent) => any;
82
84
  keydown: (keyboardEvent: KeyboardEvent) => any;
83
85
  keyup: (keyboardEvent: KeyboardEvent) => any;
84
86
  paste: (clipboardEvent: ClipboardEvent) => any;
@@ -86,10 +88,12 @@ declare const __VLS_export: import('vue').DefineComponent<Props, STextareaApi, {
86
88
  "selection-change": (selection: STextareaSelection) => any;
87
89
  "state-change": (state: STextareaState) => any;
88
90
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
91
+ onBlur?: ((focusEvent: FocusEvent) => any) | undefined;
89
92
  onClick?: ((mouseEvent: MouseEvent) => any) | undefined;
90
93
  onCompositionend?: ((compositionEvent: CompositionEvent) => any) | undefined;
91
94
  onCompositionstart?: ((compositionEvent: CompositionEvent) => any) | undefined;
92
95
  onCompositionupdate?: ((compositionEvent: CompositionEvent) => any) | undefined;
96
+ onFocus?: ((focusEvent: FocusEvent) => any) | undefined;
93
97
  onKeydown?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
94
98
  onKeyup?: ((keyboardEvent: KeyboardEvent) => any) | undefined;
95
99
  onPaste?: ((clipboardEvent: ClipboardEvent) => any) | undefined;
@@ -76,6 +76,8 @@ var se = [
76
76
  "keydown",
77
77
  "keyup",
78
78
  "click",
79
+ "focus",
80
+ "blur",
79
81
  "paste",
80
82
  "compositionstart",
81
83
  "compositionupdate",
@@ -390,8 +392,10 @@ var se = [
390
392
  onKeydown: ye,
391
393
  onKeyup: be,
392
394
  onClick: xe,
395
+ onFocus: n[0] ||= (e) => w("focus", e),
396
+ onBlur: n[1] ||= (e) => w("blur", e),
393
397
  onSelect: Se,
394
- onPaste: n[0] ||= (e) => w("paste", e),
398
+ onPaste: n[2] ||= (e) => w("paste", e),
395
399
  onCompositionstart: Ce,
396
400
  onCompositionupdate: we,
397
401
  onCompositionend: Te
@@ -27,11 +27,14 @@ export interface SCodeEditorSelectionAppliedPayload {
27
27
  position: number;
28
28
  source: 'controlled' | 'imperative';
29
29
  }
30
- /** Accessible-name props; runtime validation requires exactly one owner. */
31
- export interface SCodeEditorAccessibleName {
32
- ariaLabel?: string;
33
- ariaLabelledby?: string;
34
- }
30
+ /** Accessible-name props; exactly one owner is required by both TypeScript and runtime validation. */
31
+ export type SCodeEditorAccessibleName = {
32
+ ariaLabel: string;
33
+ ariaLabelledby?: never;
34
+ } | {
35
+ ariaLabel?: never;
36
+ ariaLabelledby: string;
37
+ };
35
38
  /** Public SCodeEditor contract; размер задаёт только semantic viewport. / Public SCodeEditor contract; sizing is expressed only by semantic viewport. */
36
39
  export type Props = SCodeEditorAccessibleName & {
37
40
  modelValue: string;
@@ -51,14 +54,94 @@ export type Props = SCodeEditorAccessibleName & {
51
54
  /** Помечает editor content невалидным без владения presentation диагностики. / Marks the editor content as invalid without owning diagnostic presentation. */
52
55
  invalid?: boolean;
53
56
  };
54
- declare const __VLS_export: import('vue').DefineComponent<Props, SCodeEditorApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
57
+ declare const __VLS_export: import('vue').DefineComponent<({
58
+ ariaLabel: string;
59
+ ariaLabelledby?: never;
60
+ } & {
61
+ modelValue: string;
62
+ language: SCodeEditorLanguage;
63
+ capabilities: SCodeEditorCapabilities;
64
+ readOnly?: boolean;
65
+ disabled?: boolean;
66
+ autofocus?: boolean;
67
+ placeholder?: string;
68
+ viewport?: SCodeEditorViewport;
69
+ variant?: SCodeEditorVariant;
70
+ nextSelectionPos?: number | null;
71
+ /** Controlled diagnostics expressed only through serializable UI-kit ranges. */
72
+ diagnostics?: readonly SCodeEditorDiagnostic<SCodeEditorDiagnosticId>[];
73
+ /** DOM id supplemental status/diagnostic owner. / DOM id of a supplemental status/diagnostic owner. */
74
+ ariaDescribedby?: string;
75
+ /** Помечает editor content невалидным без владения presentation диагностики. / Marks the editor content as invalid without owning diagnostic presentation. */
76
+ invalid?: boolean;
77
+ }) | ({
78
+ ariaLabel?: never;
79
+ ariaLabelledby: string;
80
+ } & {
81
+ modelValue: string;
82
+ language: SCodeEditorLanguage;
83
+ capabilities: SCodeEditorCapabilities;
84
+ readOnly?: boolean;
85
+ disabled?: boolean;
86
+ autofocus?: boolean;
87
+ placeholder?: string;
88
+ viewport?: SCodeEditorViewport;
89
+ variant?: SCodeEditorVariant;
90
+ nextSelectionPos?: number | null;
91
+ /** Controlled diagnostics expressed only through serializable UI-kit ranges. */
92
+ diagnostics?: readonly SCodeEditorDiagnostic<SCodeEditorDiagnosticId>[];
93
+ /** DOM id supplemental status/diagnostic owner. / DOM id of a supplemental status/diagnostic owner. */
94
+ ariaDescribedby?: string;
95
+ /** Помечает editor content невалидным без владения presentation диагностики. / Marks the editor content as invalid without owning diagnostic presentation. */
96
+ invalid?: boolean;
97
+ }), SCodeEditorApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
55
98
  "update:modelValue": (value: string) => any;
56
99
  ready: (payload: SCodeEditorReadyPayload) => any;
57
100
  "selection-change": (payload: SCodeEditorSelectionRange) => any;
58
101
  "cursor-activity": (payload: SCodeEditorCursorActivity) => any;
59
102
  "view-state-change": (payload: SCodeEditorViewState) => any;
60
103
  "selection-applied": (payload: SCodeEditorSelectionAppliedPayload) => any;
61
- }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
104
+ }, string, import('vue').PublicProps, Readonly<({
105
+ ariaLabel: string;
106
+ ariaLabelledby?: never;
107
+ } & {
108
+ modelValue: string;
109
+ language: SCodeEditorLanguage;
110
+ capabilities: SCodeEditorCapabilities;
111
+ readOnly?: boolean;
112
+ disabled?: boolean;
113
+ autofocus?: boolean;
114
+ placeholder?: string;
115
+ viewport?: SCodeEditorViewport;
116
+ variant?: SCodeEditorVariant;
117
+ nextSelectionPos?: number | null;
118
+ /** Controlled diagnostics expressed only through serializable UI-kit ranges. */
119
+ diagnostics?: readonly SCodeEditorDiagnostic<SCodeEditorDiagnosticId>[];
120
+ /** DOM id supplemental status/diagnostic owner. / DOM id of a supplemental status/diagnostic owner. */
121
+ ariaDescribedby?: string;
122
+ /** Помечает editor content невалидным без владения presentation диагностики. / Marks the editor content as invalid without owning diagnostic presentation. */
123
+ invalid?: boolean;
124
+ }) | ({
125
+ ariaLabel?: never;
126
+ ariaLabelledby: string;
127
+ } & {
128
+ modelValue: string;
129
+ language: SCodeEditorLanguage;
130
+ capabilities: SCodeEditorCapabilities;
131
+ readOnly?: boolean;
132
+ disabled?: boolean;
133
+ autofocus?: boolean;
134
+ placeholder?: string;
135
+ viewport?: SCodeEditorViewport;
136
+ variant?: SCodeEditorVariant;
137
+ nextSelectionPos?: number | null;
138
+ /** Controlled diagnostics expressed only through serializable UI-kit ranges. */
139
+ diagnostics?: readonly SCodeEditorDiagnostic<SCodeEditorDiagnosticId>[];
140
+ /** DOM id supplemental status/diagnostic owner. / DOM id of a supplemental status/diagnostic owner. */
141
+ ariaDescribedby?: string;
142
+ /** Помечает editor content невалидным без владения presentation диагностики. / Marks the editor content as invalid without owning diagnostic presentation. */
143
+ invalid?: boolean;
144
+ })> & Readonly<{
62
145
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
63
146
  onReady?: ((payload: SCodeEditorReadyPayload) => any) | undefined;
64
147
  "onSelection-change"?: ((payload: SCodeEditorSelectionRange) => any) | undefined;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/data-display/SCodeEditor.css_vue_type_style_index_0_src_124ca461_scoped_124ca461_lang.css";
1
+ import "../../../../assets/src/components/shared/data-display/SCodeEditor.css_vue_type_style_index_0_src_3ad533d9_scoped_3ad533d9_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SCodeEditor.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/data-display/SCodeEditor.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-124ca461"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-3ad533d9"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -4,6 +4,7 @@ export type StatusTone = FeedbackTone;
4
4
  export type StatusAppearance = 'text' | 'soft';
5
5
  export type StatusSize = 'xs' | 'sm' | 'md';
6
6
  export type StatusLiveMode = Exclude<FeedbackLiveMode, 'auto'>;
7
+ export type StatusVisibility = 'visible' | 'assistive';
7
8
  export interface StatusPresentation {
8
9
  label: string;
9
10
  tone?: StatusTone;
@@ -17,6 +18,10 @@ type __VLS_Props = {
17
18
  size?: StatusSize;
18
19
  /** Видимость текстовой подписи при сохранении accessible name. / Text-label visibility while preserving the accessible name. */
19
20
  labelVisibility?: 'visible' | 'sr-only';
21
+ /** Видимость всей status surface; assistive removes it from layout while retaining live-region semantics. */
22
+ visibility?: StatusVisibility;
23
+ /** Optional accessible name owned by the status root instead of a raw aria-label attribute. */
24
+ ariaLabel?: string;
20
25
  title?: string;
21
26
  icon?: Component | null;
22
27
  live?: StatusLiveMode;
@@ -24,9 +29,11 @@ type __VLS_Props = {
24
29
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
25
30
  title: string;
26
31
  size: StatusSize;
32
+ visibility: StatusVisibility;
27
33
  icon: Component | null;
28
34
  tone: StatusTone;
29
35
  live: StatusLiveMode;
36
+ ariaLabel: string;
30
37
  appearance: StatusAppearance;
31
38
  labelVisibility: "visible" | "sr-only";
32
39
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_c76fa058_scoped_c76fa058_lang.css";
1
+ import "../../../../assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SStatus.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/data-display/SStatus.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-c76fa058"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-3ce41a12"]]);
7
7
  //#endregion
8
8
  export { n as default };