@pgcorp/ui-kit 0.10.1 → 0.11.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 (97) hide show
  1. package/README.md +89 -0
  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_64c62e90_scoped_64c62e90_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_49f356bb_scoped_49f356bb_lang.css → SButton.css_vue_type_style_index_0_src_52ad38b1_scoped_52ad38b1_lang.css} +1 -1
  6. 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
  7. package/dist/assets/src/components/shared/controls/{SLink.css_vue_type_style_index_0_src_fc6fdfb3_scoped_fc6fdfb3_lang.css → SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css} +1 -1
  8. package/dist/assets/src/components/shared/data-display/SCodeBlock.css_vue_type_style_index_0_src_78557968_scoped_78557968_lang.css +2 -0
  9. package/dist/assets/src/components/shared/data-display/{SCodeEditor.css_vue_type_style_index_0_src_cad79088_scoped_cad79088_lang.css → SCodeEditor.css_vue_type_style_index_0_src_124ca461_scoped_124ca461_lang.css} +1 -1
  10. package/dist/assets/src/components/shared/data-display/SCodeWorkspaceEditor.css_vue_type_style_index_0_src_b200dc8e_scoped_b200dc8e_lang.css +2 -0
  11. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +2 -0
  12. package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_a0d16ca3_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_b3963080_lang.css} +1 -1
  13. package/dist/assets/src/components/shared/navigation/{SBreadcrumbs.css_vue_type_style_index_0_src_e2c5851e_scoped_e2c5851e_lang.css → SBreadcrumbs.css_vue_type_style_index_0_src_f836963c_scoped_f836963c_lang.css} +1 -1
  14. package/dist/assets/src/components/shared/persona/_internal/SPersonaRunConsole.css_vue_type_style_index_0_src_21bf807e_scoped_21bf807e_lang.css +2 -0
  15. package/dist/index.js +4 -2
  16. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +243 -0
  17. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +7 -0
  18. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +721 -239
  19. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +244 -4
  20. package/dist/src/components/icons/_internal/sputnigUiIconRuntime.d.ts +18 -0
  21. package/dist/src/components/icons/_internal/sputnigUiIconRuntime.js +99 -0
  22. package/dist/src/components/icons/sputnigUiIcons.d.ts +5 -81
  23. package/dist/src/components/icons/sputnigUiIcons.js +238 -394
  24. package/dist/src/components/layout/SAppShell.vue.d.ts +2 -2
  25. package/dist/src/components/layout/SSideMenuButton.vue.d.ts +1 -1
  26. package/dist/src/components/layout/_internal/SAppBrand.vue.d.ts +3 -3
  27. package/dist/src/components/layout/types.d.ts +2 -2
  28. package/dist/src/components/shared/_internal/SDialogSurface.vue.d.ts +2 -1
  29. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  30. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +38 -37
  31. package/dist/src/components/shared/_internal/SMenuItem.vue_vue_type_script_setup_true_lang.js +1 -1
  32. package/dist/src/components/shared/_internal/SToastItem.vue_vue_type_script_setup_true_lang.js +1 -1
  33. package/dist/src/components/shared/_internal/STreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/src/components/shared/_internal/dialogSurface.d.ts +3 -0
  35. package/dist/src/components/shared/_internal/dialogSurface.js +23 -19
  36. package/dist/src/components/shared/containers/SCloudChromeRow.vue_vue_type_script_setup_true_lang.js +44 -44
  37. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +7 -1
  38. package/dist/src/components/shared/containers/SDrawer.vue.js +2 -2
  39. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +49 -44
  40. package/dist/src/components/shared/containers/SModal.vue.d.ts +7 -1
  41. package/dist/src/components/shared/containers/SModal.vue.js +2 -2
  42. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +48 -41
  43. package/dist/src/components/shared/controls/SButton.vue.d.ts +32 -2
  44. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  45. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +77 -79
  46. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +1 -1
  47. package/dist/src/components/shared/controls/SComboboxTrigger.vue_vue_type_script_setup_true_lang.js +1 -1
  48. package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +1 -1
  49. package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +21 -21
  50. package/dist/src/components/shared/controls/SInputText.vue.d.ts +6 -0
  51. package/dist/src/components/shared/controls/SInputText.vue.js +2 -2
  52. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +117 -97
  53. package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
  54. package/dist/src/components/shared/controls/SLink.vue.js +2 -2
  55. package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +22 -22
  56. package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
  58. package/dist/src/components/shared/controls/STextarea.vue.d.ts +12 -18
  59. package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +1 -1
  60. package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +1 -1
  61. package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +1 -1
  62. package/dist/src/components/shared/data-display/SCodeBlock.vue.d.ts +33 -11
  63. package/dist/src/components/shared/data-display/SCodeBlock.vue.js +2 -2
  64. package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +77 -75
  65. package/dist/src/components/shared/data-display/SCodeEditor.vue.d.ts +22 -10
  66. package/dist/src/components/shared/data-display/SCodeEditor.vue.js +2 -2
  67. package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +44 -44
  68. package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue.js +2 -2
  70. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +3 -3
  71. package/dist/src/components/shared/data-display/SCopyField.vue_vue_type_script_setup_true_lang.js +1 -1
  72. package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +1 -1
  73. package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +1 -1
  74. package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +1 -1
  75. package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
  77. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +2 -2
  78. package/dist/src/components/shared/database/SSqlEditor.vue_vue_type_script_setup_true_lang.js +7 -10
  79. package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
  80. package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +70 -68
  81. package/dist/src/components/shared/navigation/SBreadcrumbs.vue.js +2 -2
  82. package/dist/src/components/shared/navigation/SBreadcrumbs.vue_vue_type_script_setup_true_lang.js +20 -21
  83. package/dist/src/components/shared/persona/SPersonaProjectPicker.vue_vue_type_script_setup_true_lang.js +1 -1
  84. package/dist/src/components/shared/persona/_internal/SPersonaRunConsole.vue.js +2 -2
  85. package/dist/src/components/shared/persona/_internal/SPersonaRunConsole.vue_vue_type_script_setup_true_lang.js +6 -3
  86. package/dist/src/composables/useDialogOverlay.d.ts +2 -0
  87. package/dist/src/composables/useDialogOverlay.js +14 -7
  88. package/dist/src/internal/feedbackPresentation.js +1 -1
  89. package/docs/accessibility.md +10 -0
  90. package/docs/public-api.md +12 -0
  91. package/docs/versioning.md +38 -10
  92. package/package.json +1 -1
  93. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_1226da98_scoped_1226da98_lang.css +0 -2
  94. package/dist/assets/src/components/shared/data-display/SCodeBlock.css_vue_type_style_index_0_src_aad45526_scoped_aad45526_lang.css +0 -2
  95. package/dist/assets/src/components/shared/data-display/SCodeWorkspaceEditor.css_vue_type_style_index_0_src_864bce1d_scoped_864bce1d_lang.css +0 -2
  96. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_63180598_scoped_63180598_lang.css +0 -2
  97. package/dist/assets/src/components/shared/persona/_internal/SPersonaRunConsole.css_vue_type_style_index_0_src_c71f59d4_scoped_c71f59d4_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 };
@@ -31,7 +31,23 @@ type __VLS_Slots = {
31
31
  /** Пассивная trailing presentation, например badge. / Passive trailing presentation such as a badge. */
32
32
  trailing?: () => VNodeChild;
33
33
  };
34
- declare const __VLS_base: import('vue').DefineSetupFnComponent<Record<string, any>, {}, {}, Record<string, any> & {}, import('vue').PublicProps>;
34
+ declare const __VLS_base: import('vue').DefineComponent<(LinkPresentationProps & LinkDestinationOptions & {
35
+ readonly href: string;
36
+ readonly to?: never;
37
+ }) | (LinkPresentationProps & LinkDestinationOptions & {
38
+ readonly href?: never;
39
+ readonly to: LinkRouterTarget;
40
+ }), {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
41
+ click: (event: MouseEvent) => any;
42
+ }, string, import('vue').PublicProps, Readonly<(LinkPresentationProps & LinkDestinationOptions & {
43
+ readonly href: string;
44
+ readonly to?: never;
45
+ }) | (LinkPresentationProps & LinkDestinationOptions & {
46
+ readonly href?: never;
47
+ readonly to: LinkRouterTarget;
48
+ })> & Readonly<{
49
+ onClick?: ((event: MouseEvent) => any) | undefined;
50
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
35
51
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
36
52
  declare const _default: typeof __VLS_export;
37
53
  export default _default;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/controls/SLink.css_vue_type_style_index_0_src_fc6fdfb3_scoped_fc6fdfb3_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SLink.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/controls/SLink.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-fc6fdfb3"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-c7ae14e1"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -33,41 +33,41 @@ var y = {
33
33
  underline: { default: "hover" },
34
34
  wrap: { default: "normal" },
35
35
  contentKind: { default: "text" },
36
- leadingIcon: { default: void 0 },
36
+ leadingIcon: {},
37
37
  target: { default: "_self" },
38
- rel: { default: void 0 },
39
- href: { default: void 0 },
40
- to: { default: void 0 }
38
+ rel: {},
39
+ href: {},
40
+ to: {}
41
41
  },
42
42
  emits: ["click"],
43
43
  setup(u, { emit: S }) {
44
- let C = u, w = S, T = e({
44
+ let C = S, w = e({
45
45
  component: "SLink",
46
46
  owner: "native navigation link"
47
- }), E = g();
47
+ }), T = g();
48
48
  n({ owner: "SLink" });
49
- let D = {
49
+ let E = {
50
50
  owner: "SLink",
51
51
  region: "passive link content",
52
52
  guidance: "Вынесите control за границы ссылки. / Move the control outside the link."
53
- }, O = i(() => r({
54
- href: C.href,
55
- to: C.to,
56
- target: C.target,
57
- rel: C.rel,
53
+ }, D = i(() => r({
54
+ href: u.href,
55
+ to: u.to,
56
+ target: u.target,
57
+ rel: u.rel,
58
58
  owner: "SLink"
59
- })), k = i(() => C.disabled ? "a" : O.value.kind === "router" ? v : "a"), A = () => ({
60
- ...T.bindings(),
61
- ...C.disabled ? {} : O.value.bindings
59
+ })), O = i(() => u.disabled ? "a" : D.value.kind === "router" ? v : "a"), k = () => ({
60
+ ...w.bindings(),
61
+ ...u.disabled ? {} : D.value.bindings
62
62
  });
63
- function j(e) {
64
- if (C.disabled) {
63
+ function A(e) {
64
+ if (u.disabled) {
65
65
  e.preventDefault(), e.stopImmediatePropagation();
66
66
  return;
67
67
  }
68
- w("click", e);
68
+ C("click", e);
69
69
  }
70
- return (e, n) => (f(), a(m(k.value), d(A(), {
70
+ return (e, n) => (f(), a(m(O.value), d(k(), {
71
71
  class: "s-link",
72
72
  "data-variant": u.variant,
73
73
  "data-external": u.external || void 0,
@@ -82,10 +82,10 @@ var y = {
82
82
  "aria-disabled": u.disabled || void 0,
83
83
  tabindex: u.disabled ? -1 : void 0,
84
84
  role: u.disabled ? "link" : void 0,
85
- onClick: j
85
+ onClick: A
86
86
  }), {
87
- default: _(() => [u.leadingIcon ? (f(), s("span", y, [(f(), a(m(u.leadingIcon), { class: "s-link__icon-graphic" }))])) : o("", !0), l(h(t), { contract: D }, {
88
- default: _(() => [c("span", b, [p(e.$slots, "default", {}, void 0, !0)]), E.trailing ? (f(), s("span", x, [p(e.$slots, "trailing", {}, void 0, !0)])) : o("", !0)]),
87
+ default: _(() => [u.leadingIcon ? (f(), s("span", y, [(f(), a(m(u.leadingIcon), { class: "s-link__icon-graphic" }))])) : o("", !0), l(h(t), { contract: E }, {
88
+ default: _(() => [c("span", b, [p(e.$slots, "default", {}, void 0, !0)]), T.trailing ? (f(), s("span", x, [p(e.$slots, "trailing", {}, void 0, !0)])) : o("", !0)]),
89
89
  _: 3
90
90
  })]),
91
91
  _: 3
@@ -1,4 +1,4 @@
1
- import { Check as e } from "../../icons/sputnigUiIcons.js";
1
+ import { Check as e } from "../../icons/_internal/generatedSputnigUiIconComponents.js";
2
2
  import { useInteractiveLeafRegistration as t } from "../../../internal/passiveContentContract.js";
3
3
  import n from "./SMarker.vue.js";
4
4
  import { listboxContextKey as r } from "../_internal/listboxContext.js";
@@ -1 +1 @@
1
- export type { Props as STextareaProps, STextareaAppearance, STextareaAutocomplete, STextareaSuggestionPopupRole, STextareaSuggestions, STextareaReplaceOptions, STextareaResizeContract, STextareaSelection, STextareaSelectionDirection, STextareaSize, STextareaState, } from './STextarea.vue';
1
+ export type { Props as STextareaProps, STextareaApi, STextareaAppearance, STextareaAutocomplete, STextareaSuggestionPopupRole, STextareaSuggestions, STextareaReplaceOptions, STextareaResizeContract, STextareaSelection, STextareaSelectionDirection, STextareaSize, STextareaState, } from './STextarea.vue';
@@ -28,6 +28,17 @@ export interface STextareaReplaceOptions {
28
28
  selectionMode?: SelectionMode;
29
29
  focus?: boolean;
30
30
  }
31
+ /** Typed imperative surface for focus, selection, resizing, and controlled edits. */
32
+ export interface STextareaApi {
33
+ focus(): void;
34
+ getSelection(): STextareaSelection;
35
+ getSelectionOffset(): number;
36
+ insertSoftLineBreak(): void;
37
+ replaceSelection(text: string, options?: STextareaReplaceOptions): STextareaState;
38
+ resize(): void;
39
+ setSelection(selection: STextareaSelection, focusOwner?: boolean): void;
40
+ setSelectionOffset(offset: number): void;
41
+ }
31
42
  /**
32
43
  * Дискриминированный resize contract: fixed не имеет maxRows, content может быть bounded или unbounded.
33
44
  * Discriminated resize contract: fixed has no maxRows; content can be bounded or unbounded.
@@ -63,24 +74,7 @@ export interface Props {
63
74
  appearance?: STextareaAppearance;
64
75
  monospace?: boolean;
65
76
  }
66
- declare function resize(): void;
67
- declare function focus(): void;
68
- declare function getSelectionOffset(): number;
69
- declare function getSelection(): STextareaSelection;
70
- declare function setSelection(selection: STextareaSelection, focusOwner?: boolean): void;
71
- declare function setSelectionOffset(offset: number): void;
72
- declare function replaceSelection(text: string, options?: STextareaReplaceOptions): STextareaState;
73
- declare function insertSoftLineBreak(): void;
74
- declare const __VLS_export: import('vue').DefineComponent<Props, {
75
- focus: typeof focus;
76
- getSelection: typeof getSelection;
77
- getSelectionOffset: typeof getSelectionOffset;
78
- insertSoftLineBreak: typeof insertSoftLineBreak;
79
- replaceSelection: typeof replaceSelection;
80
- resize: typeof resize;
81
- setSelection: typeof setSelection;
82
- setSelectionOffset: typeof setSelectionOffset;
83
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
77
+ declare const __VLS_export: import('vue').DefineComponent<Props, STextareaApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
84
78
  click: (mouseEvent: MouseEvent) => any;
85
79
  compositionend: (compositionEvent: CompositionEvent) => any;
86
80
  compositionstart: (compositionEvent: CompositionEvent) => any;
@@ -1,4 +1,4 @@
1
- import { X as e } from "../../../icons/sputnigUiIcons.js";
1
+ import { X as e } from "../../../icons/_internal/generatedSputnigUiIconComponents.js";
2
2
  import { useUiKitLocale as t } from "../../../../composables/useUiKitLocale.js";
3
3
  import { validateBoundedInteger as n } from "../../../../internal/runtimeContract.js";
4
4
  import { useInteractiveLeafRegistration as r } from "../../../../internal/passiveContentContract.js";
@@ -58,8 +58,8 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
58
58
  tone: InteractiveSurfaceTone;
59
59
  trailingIcon: Component;
60
60
  density: InteractiveSurfaceDensity;
61
- description: string | null;
62
61
  detail: string | null;
62
+ description: string | null;
63
63
  surface: InteractiveSurfaceContract;
64
64
  titleTooltip: string;
65
65
  indentLevel: number;
@@ -1,4 +1,4 @@
1
- import { X as e } from "../../icons/sputnigUiIcons.js";
1
+ import { X as e } from "../../icons/_internal/generatedSputnigUiIconComponents.js";
2
2
  import { useUiKitLocale as t } from "../../../composables/useUiKitLocale.js";
3
3
  import { useOwnedAttrs as n } from "../../../internal/ownedAttrs.js";
4
4
  import { validateBoolean as r, validateExactString as i, validateNonEmptyString as a } from "../../../internal/runtimeContract.js";
@@ -1,15 +1,10 @@
1
- import { SCodeEditorCapabilities, SCodeEditorLanguage, SCodeEditorViewport } from './SCodeEditor.vue';
2
- type AccessibleName = {
3
- ariaLabel: string;
4
- ariaLabelledby?: never;
5
- } | {
6
- ariaLabel?: never;
7
- ariaLabelledby: string;
8
- };
1
+ import { SCodeEditorCapabilities, SCodeEditorLanguage, SCodeEditorReadyPayload, SCodeEditorSelectionAppliedPayload, SCodeEditorViewport } from './SCodeEditor.vue';
9
2
  /** Public adapter contract над canonical SCodeEditor leaf. / Public adapter contract over the canonical SCodeEditor leaf. */
10
- export type Props = AccessibleName & {
3
+ export interface Props {
11
4
  code: string;
12
5
  language: SCodeEditorLanguage;
6
+ ariaLabel?: string;
7
+ ariaLabelledby?: string;
13
8
  presentation?: 'editor' | 'plain' | 'highlighted';
14
9
  showHeader?: boolean;
15
10
  showLineNumbers?: boolean;
@@ -22,7 +17,34 @@ export type Props = AccessibleName & {
22
17
  viewport?: SCodeEditorViewport;
23
18
  placeholder?: string;
24
19
  errorMessage?: string;
25
- };
26
- declare const __VLS_export: import('vue').DefineSetupFnComponent<Record<string, any>, {}, {}, Record<string, any> & {}, import('vue').PublicProps>;
20
+ }
21
+ /** Public imperative surface shared by editor and read-only presentations. */
22
+ export interface SCodeBlockApi {
23
+ applySelection(position: number): void;
24
+ focus(): void;
25
+ }
26
+ declare const __VLS_export: import('vue').DefineComponent<Props, SCodeBlockApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
27
+ ready: (payload: SCodeEditorReadyPayload) => any;
28
+ "cursor-activity": (payload: {
29
+ pos: number;
30
+ lineFrom: number;
31
+ lineTo: number;
32
+ lineText: string;
33
+ cursorCol: number;
34
+ }) => any;
35
+ "selection-applied": (payload: SCodeEditorSelectionAppliedPayload) => any;
36
+ "update:code": (value: string) => any;
37
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
38
+ onReady?: ((payload: SCodeEditorReadyPayload) => any) | undefined;
39
+ "onCursor-activity"?: ((payload: {
40
+ pos: number;
41
+ lineFrom: number;
42
+ lineTo: number;
43
+ lineText: string;
44
+ cursorCol: number;
45
+ }) => any) | undefined;
46
+ "onSelection-applied"?: ((payload: SCodeEditorSelectionAppliedPayload) => any) | undefined;
47
+ "onUpdate:code"?: ((value: string) => any) | undefined;
48
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
49
  declare const _default: typeof __VLS_export;
28
50
  export default _default;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/data-display/SCodeBlock.css_vue_type_style_index_0_src_aad45526_scoped_aad45526_lang.css";
1
+ import "../../../../assets/src/components/shared/data-display/SCodeBlock.css_vue_type_style_index_0_src_78557968_scoped_78557968_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SCodeBlock.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/data-display/SCodeBlock.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-aad45526"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-78557968"]]);
7
7
  //#endregion
8
8
  export { n as default };