@de-kit/st-ui 0.1.11 → 0.1.14

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 (63) hide show
  1. package/README.md +2 -2
  2. package/dist/components/birthday-picker/birthday-picker.cjs +245 -0
  3. package/dist/components/birthday-picker/birthday-picker.cjs.map +1 -0
  4. package/dist/components/birthday-picker/birthday-picker.d.cts +24 -0
  5. package/dist/components/birthday-picker/birthday-picker.d.ts +24 -0
  6. package/dist/components/birthday-picker/birthday-picker.js +245 -0
  7. package/dist/components/birthday-picker/birthday-picker.js.map +1 -0
  8. package/dist/components/birthday-picker/birthday-picker.scss +84 -0
  9. package/dist/components/birthday-picker/index.d.cts +2 -0
  10. package/dist/components/birthday-picker/index.d.ts +2 -0
  11. package/dist/components/birthday-picker/wheel-column.cjs +114 -0
  12. package/dist/components/birthday-picker/wheel-column.cjs.map +1 -0
  13. package/dist/components/birthday-picker/wheel-column.js +114 -0
  14. package/dist/components/birthday-picker/wheel-column.js.map +1 -0
  15. package/dist/components/birthday-picker/wheel-column.scss +61 -0
  16. package/dist/components/button/button.scss +2 -2
  17. package/dist/components/field/field.cjs +4 -3
  18. package/dist/components/field/field.cjs.map +1 -1
  19. package/dist/components/field/field.d.cts +1 -1
  20. package/dist/components/field/field.d.ts +1 -1
  21. package/dist/components/field/field.js +4 -3
  22. package/dist/components/field/field.js.map +1 -1
  23. package/dist/components/form/form.cjs +124 -0
  24. package/dist/components/form/form.cjs.map +1 -0
  25. package/dist/components/form/form.d.cts +31 -0
  26. package/dist/components/form/form.d.ts +31 -0
  27. package/dist/components/form/form.js +121 -0
  28. package/dist/components/form/form.js.map +1 -0
  29. package/dist/components/form/form.scss +29 -0
  30. package/dist/components/form/index.d.cts +2 -0
  31. package/dist/components/form/index.d.ts +2 -0
  32. package/dist/components/phone-input/index.d.cts +2 -0
  33. package/dist/components/phone-input/index.d.ts +2 -0
  34. package/dist/components/phone-input/phone-input.cjs +105 -0
  35. package/dist/components/phone-input/phone-input.cjs.map +1 -0
  36. package/dist/components/phone-input/phone-input.d.cts +29 -0
  37. package/dist/components/phone-input/phone-input.d.ts +29 -0
  38. package/dist/components/phone-input/phone-input.js +103 -0
  39. package/dist/components/phone-input/phone-input.js.map +1 -0
  40. package/dist/icons/icon-gallery-next.cjs +1 -1
  41. package/dist/icons/icon-gallery-next.cjs.map +1 -1
  42. package/dist/icons/icon-gallery-next.js +1 -1
  43. package/dist/icons/icon-gallery-next.js.map +1 -1
  44. package/dist/icons/icon-gallery-prev.cjs +1 -1
  45. package/dist/icons/icon-gallery-prev.cjs.map +1 -1
  46. package/dist/icons/icon-gallery-prev.js +1 -1
  47. package/dist/icons/icon-gallery-prev.js.map +1 -1
  48. package/dist/icons/icon-label-ozon.cjs +4 -4
  49. package/dist/icons/icon-label-ozon.cjs.map +1 -1
  50. package/dist/icons/icon-label-ozon.js +4 -4
  51. package/dist/icons/icon-label-ozon.js.map +1 -1
  52. package/dist/icons/icon-label-yandex.cjs +1 -1
  53. package/dist/icons/icon-label-yandex.cjs.map +1 -1
  54. package/dist/icons/icon-label-yandex.js +1 -1
  55. package/dist/icons/icon-label-yandex.js.map +1 -1
  56. package/dist/icons/index.cjs +2 -2
  57. package/dist/icons/index.js +2 -2
  58. package/dist/index.cjs +10 -0
  59. package/dist/index.d.cts +7 -1
  60. package/dist/index.d.ts +7 -1
  61. package/dist/index.js +4 -1
  62. package/dist/styles/vars.scss +2 -2
  63. package/package.json +8 -5
@@ -0,0 +1,103 @@
1
+ import { cn, when } from "../../lib/cn.js";
2
+ import { useFieldControl } from "../field/field-context.js";
3
+ import { IconCross } from "../../icons/icon-cross.js";
4
+ import { forwardRef, useCallback, useEffect, useRef, useState } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import "@/components/input/input.scss";
7
+ import { IMaskInput } from "react-imask";
8
+ // src/components/phone-input/phone-input.tsx
9
+ const PHONE_MASK = "+7 (000) 000-00-00";
10
+ /**
11
+ * Плейсхолдер в виде маски: цифры маски заменяются на «_», литералы остаются.
12
+ * Это атрибут placeholder, а не значение, поэтому required и FormData не меняются.
13
+ */
14
+ const maskPlaceholder = (mask) => mask.replace(/[09]/g, "_");
15
+ const assignRef = (ref, node) => {
16
+ if (typeof ref === "function") {
17
+ ref(node);
18
+ return;
19
+ }
20
+ if (ref) ref.current = node;
21
+ };
22
+ /**
23
+ * Прямая запись `input.value` обходит react-imask, поэтому значение пишем через
24
+ * сеттер прототипа и шлём `input`: маска сама обновится и вызовет onAccept.
25
+ */
26
+ const emitInputValue = (input, next) => {
27
+ (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set)?.call(input, next);
28
+ input.dispatchEvent(new Event("input", { bubbles: true }));
29
+ };
30
+ /**
31
+ * Телефон на react-imask. Внутри `Field` берёт id, required и ошибку у поля,
32
+ * а в `reportValue` отдаёт цифры, чтобы пустое значение считалось пустым.
33
+ */
34
+ const PhoneInput = forwardRef(function PhoneInput({ mask = PHONE_MASK, placeholder = maskPlaceholder(mask), value, defaultValue, size = "md", error, clearable = false, clearLabel = "Очистить", onClear, className, id, disabled, readOnly, onAccept, "aria-describedby": ariaDescribedBy, ...props }, ref) {
35
+ const field = useFieldControl();
36
+ const reportValue = field?.reportValue;
37
+ const inputRef = useRef(null);
38
+ const [uncontrolledFilled, setUncontrolledFilled] = useState(() => defaultValue !== void 0 && defaultValue !== "");
39
+ const isInvalid = Boolean(error) || Boolean(field?.invalid);
40
+ const canClear = clearable && !disabled && !readOnly && (value !== void 0 ? value !== "" : uncontrolledFilled);
41
+ const describedBy = [field?.describedBy, ariaDescribedBy].filter((part) => Boolean(part)).join(" ");
42
+ const setRef = useCallback((node) => {
43
+ inputRef.current = node;
44
+ assignRef(ref, node);
45
+ }, [ref]);
46
+ useEffect(() => {
47
+ if (value === "") reportValue?.("");
48
+ }, [value, reportValue]);
49
+ const handleAccept = (nextValue, maskRef) => {
50
+ setUncontrolledFilled(maskRef.unmaskedValue !== "");
51
+ reportValue?.(maskRef.unmaskedValue);
52
+ onAccept?.(nextValue, maskRef.unmaskedValue);
53
+ };
54
+ const handleClearMouseDown = (event) => {
55
+ event.preventDefault();
56
+ };
57
+ const handleClear = () => {
58
+ const input = inputRef.current;
59
+ if (!input) return;
60
+ emitInputValue(input, "");
61
+ onClear?.();
62
+ input.focus();
63
+ };
64
+ return /* @__PURE__ */ jsxs("div", {
65
+ className: "input__wrap",
66
+ children: [/* @__PURE__ */ jsx(IMaskInput, {
67
+ ...props,
68
+ type: "tel",
69
+ placeholder,
70
+ inputMode: "tel",
71
+ autoComplete: "tel",
72
+ mask,
73
+ inputRef: setRef,
74
+ value,
75
+ defaultValue,
76
+ onAccept: handleAccept,
77
+ disabled,
78
+ readOnly,
79
+ ...field ? { id: field.id } : { id },
80
+ ...field?.required ? {
81
+ "required": true,
82
+ "aria-required": true
83
+ } : {},
84
+ ...isInvalid ? { "aria-invalid": true } : {},
85
+ ...describedBy ? { "aria-describedby": describedBy } : {},
86
+ ...field?.errorId ? { "aria-errormessage": field.errorId } : {},
87
+ className: cn("input", className, when(size !== "md", `input--${size}`), when(isInvalid, "input--error"), when(clearable && !disabled && !readOnly, "input--clearable"))
88
+ }), canClear ? /* @__PURE__ */ jsx("button", {
89
+ type: "button",
90
+ className: "input__clear",
91
+ "aria-label": clearLabel,
92
+ onMouseDown: handleClearMouseDown,
93
+ onClick: handleClear,
94
+ children: /* @__PURE__ */ jsx(IconCross, {
95
+ width: 16,
96
+ height: 16
97
+ })
98
+ }) : null]
99
+ });
100
+ });
101
+ export { PHONE_MASK, PhoneInput, maskPlaceholder };
102
+
103
+ //# sourceMappingURL=phone-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-input.js","names":[],"sources":["../../../src/components/phone-input/phone-input.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type InputHTMLAttributes,\n type MouseEvent,\n type Ref,\n} from 'react';\nimport { IMaskInput } from 'react-imask';\n\nimport { useFieldControl } from '@/components/field/field-context';\nimport type { InputSize } from '@/components/input';\nimport { IconCross } from '@/icons/icon-cross';\nimport { cn, when } from '@/lib/cn';\nimport '@/components/input/input.scss';\n\nexport const PHONE_MASK = '+7 (000) 000-00-00';\n\n/**\n * Плейсхолдер в виде маски: цифры маски заменяются на «_», литералы остаются.\n * Это атрибут placeholder, а не значение, поэтому required и FormData не меняются.\n */\nexport const maskPlaceholder = (mask: string) => mask.replace(/[09]/g, '_');\n\nconst assignRef = (\n ref: Ref<HTMLInputElement> | undefined,\n node: HTMLInputElement | null,\n) => {\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (ref) ref.current = node;\n};\n\n/**\n * Прямая запись `input.value` обходит react-imask, поэтому значение пишем через\n * сеттер прототипа и шлём `input`: маска сама обновится и вызовет onAccept.\n */\nconst emitInputValue = (input: HTMLInputElement, next: string) => {\n const setter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n\n setter?.call(input, next);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n};\n\nexport interface PhoneInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type' | 'value' | 'defaultValue' | 'onChange'\n> {\n /** Маска из react-imask. По умолчанию — российский номер. */\n mask?: string;\n /** По умолчанию показывает маску вроде «+7 (___) ___-__-__». */\n placeholder?: string;\n /** Маскированное значение, как в `input`. Пустая строка очищает поле. */\n value?: string;\n defaultValue?: string;\n size?: InputSize;\n error?: boolean;\n /** Крестик справа. Появляется, только когда в поле есть значение. */\n clearable?: boolean;\n clearLabel?: string;\n /** Вызывается после очистки крестиком; `onAccept` получит пустые значения. */\n onClear?: () => void;\n /** Вызывается на каждый ввод: `value` — с маской, `unmaskedValue` — только цифры. */\n onAccept?: (value: string, unmaskedValue: string) => void;\n}\n\n/**\n * Телефон на react-imask. Внутри `Field` берёт id, required и ошибку у поля,\n * а в `reportValue` отдаёт цифры, чтобы пустое значение считалось пустым.\n */\nexport const PhoneInput = forwardRef<HTMLInputElement, PhoneInputProps>(\n function PhoneInput(\n {\n mask = PHONE_MASK,\n placeholder = maskPlaceholder(mask),\n value,\n defaultValue,\n size = 'md',\n error,\n clearable = false,\n clearLabel = 'Очистить',\n onClear,\n className,\n id,\n disabled,\n readOnly,\n onAccept,\n 'aria-describedby': ariaDescribedBy,\n ...props\n },\n ref,\n ) {\n const field = useFieldControl();\n const reportValue = field?.reportValue;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [uncontrolledFilled, setUncontrolledFilled] = useState(\n () => defaultValue !== undefined && defaultValue !== '',\n );\n const isInvalid = Boolean(error) || Boolean(field?.invalid);\n const hasValue = value !== undefined ? value !== '' : uncontrolledFilled;\n const canClear = clearable && !disabled && !readOnly && hasValue;\n const describedBy = [field?.describedBy, ariaDescribedBy]\n .filter(part => Boolean(part))\n .join(' ');\n\n const setRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n assignRef(ref, node);\n },\n [ref],\n );\n\n // Сброс снаружи (value='') не проходит через onAccept, поэтому сообщаем здесь.\n useEffect(() => {\n if (value === '') reportValue?.('');\n }, [value, reportValue]);\n\n const handleAccept = (\n nextValue: string,\n maskRef: { unmaskedValue: string },\n ) => {\n setUncontrolledFilled(maskRef.unmaskedValue !== '');\n reportValue?.(maskRef.unmaskedValue);\n onAccept?.(nextValue, maskRef.unmaskedValue);\n };\n\n const handleClearMouseDown = (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n };\n\n const handleClear = () => {\n const input = inputRef.current;\n if (!input) return;\n\n emitInputValue(input, '');\n onClear?.();\n input.focus();\n };\n\n return (\n <div className=\"input__wrap\">\n <IMaskInput\n {...props}\n type=\"tel\"\n placeholder={placeholder}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n mask={mask}\n inputRef={setRef}\n value={value}\n defaultValue={defaultValue}\n onAccept={handleAccept}\n disabled={disabled}\n readOnly={readOnly}\n {...(field ? { id: field.id } : { id })}\n {...(field?.required\n ? { 'required': true, 'aria-required': true }\n : {})}\n {...(isInvalid ? { 'aria-invalid': true } : {})}\n {...(describedBy ? { 'aria-describedby': describedBy } : {})}\n {...(field?.errorId ? { 'aria-errormessage': field.errorId } : {})}\n className={cn(\n 'input',\n className,\n when(size !== 'md', `input--${size}`),\n when(isInvalid, 'input--error'),\n when(clearable && !disabled && !readOnly, 'input--clearable'),\n )}\n />\n {canClear ? (\n <button\n type=\"button\"\n className=\"input__clear\"\n aria-label={clearLabel}\n onMouseDown={handleClearMouseDown}\n onClick={handleClear}\n >\n <IconCross width={16} height={16} />\n </button>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;AAkBA,MAAa,aAAa;;;;;AAM1B,MAAa,mBAAmB,SAAiB,KAAK,QAAQ,SAAS,GAAG;AAE1E,MAAM,aACJ,KACA,SACG;CACH,IAAI,OAAO,QAAQ,YAAY;EAC7B,IAAI,IAAI;EACR;CACF;CAEA,IAAI,KAAK,IAAI,UAAU;AACzB;;;;;AAMA,MAAM,kBAAkB,OAAyB,SAAiB;CAMhE,CALe,OAAO,yBACpB,iBAAiB,WACjB,OACF,CAAC,EAAE,IAAA,EAEK,KAAK,OAAO,IAAI;CACxB,MAAM,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC;AAC3D;;;;;AA4BA,MAAa,aAAa,WACxB,SAAS,WACP,EACE,OAAO,YACP,cAAc,gBAAgB,IAAI,GAClC,OACA,cACA,OAAO,MACP,OACA,YAAY,OACZ,aAAa,YACb,SACA,WACA,IACA,UACA,UACA,UACA,oBAAoB,iBACpB,GAAG,SAEL,KACA;CACA,MAAM,QAAQ,gBAAgB;CAC9B,MAAM,cAAc,OAAO;CAC3B,MAAM,WAAW,OAAgC,IAAI;CACrD,MAAM,CAAC,oBAAoB,yBAAyB,eAC5C,iBAAiB,KAAA,KAAa,iBAAiB,EACvD;CACA,MAAM,YAAY,QAAQ,KAAK,KAAK,QAAQ,OAAO,OAAO;CAE1D,MAAM,WAAW,aAAa,CAAC,YAAY,CAAC,aAD3B,UAAU,KAAA,IAAY,UAAU,KAAK;CAEtD,MAAM,cAAc,CAAC,OAAO,aAAa,eAAe,CAAC,CACtD,QAAO,SAAQ,QAAQ,IAAI,CAAC,CAAC,CAC7B,KAAK,GAAG;CAEX,MAAM,SAAS,aACZ,SAAkC;EACjC,SAAS,UAAU;EACnB,UAAU,KAAK,IAAI;CACrB,GACA,CAAC,GAAG,CACN;CAGA,gBAAgB;EACd,IAAI,UAAU,IAAI,cAAc,EAAE;CACpC,GAAG,CAAC,OAAO,WAAW,CAAC;CAEvB,MAAM,gBACJ,WACA,YACG;EACH,sBAAsB,QAAQ,kBAAkB,EAAE;EAClD,cAAc,QAAQ,aAAa;EACnC,WAAW,WAAW,QAAQ,aAAa;CAC7C;CAEA,MAAM,wBAAwB,UAAyC;EACrE,MAAM,eAAe;CACvB;CAEA,MAAM,oBAAoB;EACxB,MAAM,QAAQ,SAAS;EACvB,IAAI,CAAC,OAAO;EAEZ,eAAe,OAAO,EAAE;EACxB,UAAU;EACV,MAAM,MAAM;CACd;CAEA,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,YAAD;GACE,GAAI;GACJ,MAAK;GACQ;GACb,WAAU;GACV,cAAa;GACP;GACN,UAAU;GACH;GACO;GACd,UAAU;GACA;GACA;GACV,GAAK,QAAQ,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,GAAG;GACrC,GAAK,OAAO,WACR;IAAE,YAAY;IAAM,iBAAiB;GAAK,IAC1C,CAAC;GACL,GAAK,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;GAC7C,GAAK,cAAc,EAAE,oBAAoB,YAAY,IAAI,CAAC;GAC1D,GAAK,OAAO,UAAU,EAAE,qBAAqB,MAAM,QAAQ,IAAI,CAAC;GAChE,WAAW,GACT,SACA,WACA,KAAK,SAAS,MAAM,UAAU,MAAM,GACpC,KAAK,WAAW,cAAc,GAC9B,KAAK,aAAa,CAAC,YAAY,CAAC,UAAU,kBAAkB,CAC9D;EACD,CAAA,GACA,WACC,oBAAC,UAAD;GACE,MAAK;GACL,WAAU;GACV,cAAY;GACZ,aAAa;GACb,SAAS;GAET,UAAA,oBAAC,WAAD;IAAW,OAAO;IAAI,QAAQ;GAAK,CAAA;EAC7B,CAAA,IACN,IACD;;AAET,CACF"}
@@ -4,7 +4,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
4
4
  const IconGalleryNext = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_svg.Svg, {
5
5
  viewBox: "0 0 20 40",
6
6
  width: 20,
7
- height: 40,
7
+ height: 20,
8
8
  fill: "currentColor",
9
9
  ...props,
10
10
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
@@ -1 +1 @@
1
- {"version":3,"file":"icon-gallery-next.cjs","names":["Svg"],"sources":["../../src/icons/icon-gallery-next.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryNext = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={40}\n fill=\"currentColor\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.707,19.293l-14-14c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L15.586,20L2.293,33.293c-0.391,0.391-0.391,1.023,0,1.414s1.023,0.391,1.414,0s14-14,14-14C18.098,20.316,18.098,19.684,17.707,19.293z\"\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACA,YAAAA,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,UAAS;EACT,UAAS;EACT,GAAE;CACH,CAAA;AACE,CAAA"}
1
+ {"version":3,"file":"icon-gallery-next.cjs","names":["Svg"],"sources":["../../src/icons/icon-gallery-next.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryNext = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={20}\n fill=\"currentColor\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.707,19.293l-14-14c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L15.586,20L2.293,33.293c-0.391,0.391-0.391,1.023,0,1.414s1.023,0.391,1.414,0s14-14,14-14C18.098,20.316,18.098,19.684,17.707,19.293z\"\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACA,YAAAA,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,UAAS;EACT,UAAS;EACT,GAAE;CACH,CAAA;AACE,CAAA"}
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  const IconGalleryNext = (props) => /* @__PURE__ */ jsx(Svg, {
5
5
  viewBox: "0 0 20 40",
6
6
  width: 20,
7
- height: 40,
7
+ height: 20,
8
8
  fill: "currentColor",
9
9
  ...props,
10
10
  children: /* @__PURE__ */ jsx("path", {
@@ -1 +1 @@
1
- {"version":3,"file":"icon-gallery-next.js","names":[],"sources":["../../src/icons/icon-gallery-next.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryNext = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={40}\n fill=\"currentColor\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.707,19.293l-14-14c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L15.586,20L2.293,33.293c-0.391,0.391-0.391,1.023,0,1.414s1.023,0.391,1.414,0s14-14,14-14C18.098,20.316,18.098,19.684,17.707,19.293z\"\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,oBAAC,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,oBAAC,QAAD;EACE,UAAS;EACT,UAAS;EACT,GAAE;CACH,CAAA;AACE,CAAA"}
1
+ {"version":3,"file":"icon-gallery-next.js","names":[],"sources":["../../src/icons/icon-gallery-next.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryNext = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={20}\n fill=\"currentColor\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.707,19.293l-14-14c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414L15.586,20L2.293,33.293c-0.391,0.391-0.391,1.023,0,1.414s1.023,0.391,1.414,0s14-14,14-14C18.098,20.316,18.098,19.684,17.707,19.293z\"\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,oBAAC,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,oBAAC,QAAD;EACE,UAAS;EACT,UAAS;EACT,GAAE;CACH,CAAA;AACE,CAAA"}
@@ -4,7 +4,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
4
4
  const IconGalleryPrev = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_svg.Svg, {
5
5
  viewBox: "0 0 20 40",
6
6
  width: 20,
7
- height: 40,
7
+ height: 20,
8
8
  fill: "currentColor",
9
9
  ...props,
10
10
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z" })
@@ -1 +1 @@
1
- {"version":3,"file":"icon-gallery-prev.cjs","names":["Svg"],"sources":["../../src/icons/icon-gallery-prev.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryPrev = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={40}\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z\" />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACA,YAAAA,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,GAAE,gMAAiM,CAAA;AACtM,CAAA"}
1
+ {"version":3,"file":"icon-gallery-prev.cjs","names":["Svg"],"sources":["../../src/icons/icon-gallery-prev.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryPrev = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={20}\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z\" />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACA,YAAAA,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,GAAE,gMAAiM,CAAA;AACtM,CAAA"}
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  const IconGalleryPrev = (props) => /* @__PURE__ */ jsx(Svg, {
5
5
  viewBox: "0 0 20 40",
6
6
  width: 20,
7
- height: 40,
7
+ height: 20,
8
8
  fill: "currentColor",
9
9
  ...props,
10
10
  children: /* @__PURE__ */ jsx("path", { d: "M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z" })
@@ -1 +1 @@
1
- {"version":3,"file":"icon-gallery-prev.js","names":[],"sources":["../../src/icons/icon-gallery-prev.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryPrev = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={40}\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z\" />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,oBAAC,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,oBAAC,QAAD,EAAM,GAAE,gMAAiM,CAAA;AACtM,CAAA"}
1
+ {"version":3,"file":"icon-gallery-prev.js","names":[],"sources":["../../src/icons/icon-gallery-prev.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconGalleryPrev = (props: IconProps) => (\n <Svg\n viewBox=\"0 0 20 40\"\n width={20}\n height={20}\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M4.414,20L17.707,6.707c0.391-0.391,0.391-1.023,0-1.414s-1.023-0.391-1.414,0s-14,14-14,14c-0.391,0.391-0.391,1.023,0,1.414l14,14c0.391,0.391,1.023,0.391,1.414,0s0.391-1.023,0-1.414L4.414,20z\" />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,oBAAC,KAAD;CACE,SAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAK;CACL,GAAI;CAEJ,UAAA,oBAAC,QAAD,EAAM,GAAE,gMAAiM,CAAA;AACtM,CAAA"}
@@ -9,19 +9,19 @@ const IconLabelOzon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(req
9
9
  children: [
10
10
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
11
11
  fill: "#005BFF",
12
- d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\r\nC16,5.79,14.21,4,12,4z"
12
+ d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\nC16,5.79,14.21,4,12,4z"
13
13
  }),
14
14
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
15
15
  fill: "#F91155",
16
- d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\r\nL12.78,9.19z"
16
+ d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\nL12.78,9.19z"
17
17
  }),
18
18
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
19
19
  fill: "#FFFFFF",
20
- d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\r\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
20
+ d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
21
21
  }),
22
22
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
23
23
  fill: "#F91155",
24
- d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\r\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
24
+ d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
25
25
  })
26
26
  ]
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-ozon.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\r\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\r\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\r\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\r\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
1
+ {"version":3,"file":"icon-label-ozon.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
@@ -9,19 +9,19 @@ const IconLabelOzon = (props) => /* @__PURE__ */ jsxs(Svg, {
9
9
  children: [
10
10
  /* @__PURE__ */ jsx("path", {
11
11
  fill: "#005BFF",
12
- d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\r\nC16,5.79,14.21,4,12,4z"
12
+ d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\nC16,5.79,14.21,4,12,4z"
13
13
  }),
14
14
  /* @__PURE__ */ jsx("path", {
15
15
  fill: "#F91155",
16
- d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\r\nL12.78,9.19z"
16
+ d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\nL12.78,9.19z"
17
17
  }),
18
18
  /* @__PURE__ */ jsx("path", {
19
19
  fill: "#FFFFFF",
20
- d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\r\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
20
+ d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
21
21
  }),
22
22
  /* @__PURE__ */ jsx("path", {
23
23
  fill: "#F91155",
24
- d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\r\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
24
+ d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
25
25
  })
26
26
  ]
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-ozon.js","names":[],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\r\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\r\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\r\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\r\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
1
+ {"version":3,"file":"icon-label-ozon.js","names":[],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
@@ -13,7 +13,7 @@ const IconLabelYandex = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(r
13
13
  r: "6"
14
14
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
15
15
  fill: "#FFFFFF",
16
- d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\r\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
16
+ d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
17
17
  })]
18
18
  });
19
19
  exports.IconLabelYandex = IconLabelYandex;
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-yandex.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\r\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
1
+ {"version":3,"file":"icon-label-yandex.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
@@ -13,7 +13,7 @@ const IconLabelYandex = (props) => /* @__PURE__ */ jsxs(Svg, {
13
13
  r: "6"
14
14
  }), /* @__PURE__ */ jsx("path", {
15
15
  fill: "#FFFFFF",
16
- d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\r\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
16
+ d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
17
17
  })]
18
18
  });
19
19
  export { IconLabelYandex };
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-yandex.js","names":[],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\r\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,oBAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,oBAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
1
+ {"version":3,"file":"icon-label-yandex.js","names":[],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,oBAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,oBAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_icon_spinner = require("./icon-spinner.cjs");
3
3
  const require_icon_cross = require("./icon-cross.cjs");
4
+ const require_icon_calendar = require("./icon-calendar.cjs");
5
+ const require_icon_correct = require("./icon-correct.cjs");
4
6
  const require_control_mark_checkbox = require("./control-mark-checkbox.cjs");
5
7
  const require_control_mark_radiobutton = require("./control-mark-radiobutton.cjs");
6
8
  const require_icon_adult = require("./icon-adult.cjs");
@@ -13,7 +15,6 @@ const require_icon_barchart = require("./icon-barchart.cjs");
13
15
  const require_icon_bell = require("./icon-bell.cjs");
14
16
  const require_icon_box = require("./icon-box.cjs");
15
17
  const require_icon_burger = require("./icon-burger.cjs");
16
- const require_icon_calendar = require("./icon-calendar.cjs");
17
18
  const require_icon_camera = require("./icon-camera.cjs");
18
19
  const require_icon_card = require("./icon-card.cjs");
19
20
  const require_icon_cart = require("./icon-cart.cjs");
@@ -26,7 +27,6 @@ const require_icon_code = require("./icon-code.cjs");
26
27
  const require_icon_comment = require("./icon-comment.cjs");
27
28
  const require_icon_conveyor = require("./icon-conveyor.cjs");
28
29
  const require_icon_copy = require("./icon-copy.cjs");
29
- const require_icon_correct = require("./icon-correct.cjs");
30
30
  const require_icon_crop = require("./icon-crop.cjs");
31
31
  const require_icon_cycle = require("./icon-cycle.cjs");
32
32
  const require_icon_divide = require("./icon-divide.cjs");
@@ -1,5 +1,7 @@
1
1
  import { IconSpinner } from "./icon-spinner.js";
2
2
  import { IconCross } from "./icon-cross.js";
3
+ import { IconCalendar } from "./icon-calendar.js";
4
+ import { IconCorrect } from "./icon-correct.js";
3
5
  import { ControlMarkCheckbox } from "./control-mark-checkbox.js";
4
6
  import { ControlMarkRadiobutton } from "./control-mark-radiobutton.js";
5
7
  import { IconAdult } from "./icon-adult.js";
@@ -12,7 +14,6 @@ import { IconBarchart } from "./icon-barchart.js";
12
14
  import { IconBell } from "./icon-bell.js";
13
15
  import { IconBox } from "./icon-box.js";
14
16
  import { IconBurger } from "./icon-burger.js";
15
- import { IconCalendar } from "./icon-calendar.js";
16
17
  import { IconCamera } from "./icon-camera.js";
17
18
  import { IconCard } from "./icon-card.js";
18
19
  import { IconCart } from "./icon-cart.js";
@@ -25,7 +26,6 @@ import { IconCode } from "./icon-code.js";
25
26
  import { IconComment } from "./icon-comment.js";
26
27
  import { IconConveyor } from "./icon-conveyor.js";
27
28
  import { IconCopy } from "./icon-copy.js";
28
- import { IconCorrect } from "./icon-correct.js";
29
29
  import { IconCrop } from "./icon-crop.js";
30
30
  import { IconCycle } from "./icon-cycle.js";
31
31
  import { IconDivide } from "./icon-divide.js";
package/dist/index.cjs CHANGED
@@ -2,15 +2,25 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_button = require("./components/button/button.cjs");
3
3
  const require_checkbox = require("./components/checkbox/checkbox.cjs");
4
4
  const require_field = require("./components/field/field.cjs");
5
+ const require_form = require("./components/form/form.cjs");
5
6
  const require_input = require("./components/input/input.cjs");
7
+ const require_birthday_picker = require("./components/birthday-picker/birthday-picker.cjs");
6
8
  const require_radio = require("./components/radio/radio.cjs");
9
+ const require_phone_input = require("./components/phone-input/phone-input.cjs");
7
10
  const require_spinner = require("./components/spinner/spinner.cjs");
8
11
  const require_textarea = require("./components/textarea/textarea.cjs");
9
12
  require("./styles/vars.scss");
13
+ exports.BirthdayPicker = require_birthday_picker.BirthdayPicker;
10
14
  exports.Button = require_button.Button;
11
15
  exports.CheckboxInput = require_checkbox.CheckboxInput;
12
16
  exports.Field = require_field.Field;
17
+ exports.Form = require_form.Form;
18
+ exports.FormActions = require_form.FormActions;
19
+ exports.FormConsent = require_form.FormConsent;
20
+ exports.FormSubmit = require_form.FormSubmit;
13
21
  exports.Input = require_input.Input;
22
+ exports.PHONE_MASK = require_phone_input.PHONE_MASK;
23
+ exports.PhoneInput = require_phone_input.PhoneInput;
14
24
  exports.RadioGroup = require_radio.RadioGroup;
15
25
  exports.RadioInput = require_radio.RadioInput;
16
26
  exports.Spinner = require_spinner.Spinner;
package/dist/index.d.cts CHANGED
@@ -4,12 +4,18 @@ import { CheckboxInput, CheckboxInputProps } from "./components/checkbox/checkbo
4
4
  import "./components/checkbox/index.cjs";
5
5
  import { Field, FieldHintPlacement, FieldProps } from "./components/field/field.cjs";
6
6
  import "./components/field/index.cjs";
7
+ import { Form, FormActions, FormActionsProps, FormConsent, FormConsentProps, FormProps, FormSubmit } from "./components/form/form.cjs";
8
+ import "./components/form/index.cjs";
9
+ import { BirthdayPicker, BirthdayPickerProps } from "./components/birthday-picker/birthday-picker.cjs";
10
+ import "./components/birthday-picker/index.cjs";
7
11
  import { Input, InputProps, InputSize } from "./components/input/input.cjs";
8
12
  import "./components/input/index.cjs";
9
13
  import { RadioGroup, RadioGroupProps, RadioInput, RadioInputProps } from "./components/radio/radio.cjs";
10
14
  import "./components/radio/index.cjs";
15
+ import { PHONE_MASK, PhoneInput, PhoneInputProps } from "./components/phone-input/phone-input.cjs";
16
+ import "./components/phone-input/index.cjs";
11
17
  import { Spinner, SpinnerPosition, SpinnerProps } from "./components/spinner/spinner.cjs";
12
18
  import "./components/spinner/index.cjs";
13
19
  import { TextArea, TextAreaProps, TextAreaSize } from "./components/textarea/textarea.cjs";
14
20
  import "./components/textarea/index.cjs";
15
- export { Button, type ButtonAsChildProps, type ButtonComponentProps, type ButtonProps, type ButtonSize, type ButtonVariant, CheckboxInput, type CheckboxInputProps, Field, type FieldHintPlacement, type FieldProps, Input, type InputProps, type InputSize, RadioGroup, type RadioGroupProps, RadioInput, type RadioInputProps, Spinner, type SpinnerPosition, type SpinnerProps, TextArea, type TextAreaProps, type TextAreaSize };
21
+ export { BirthdayPicker, type BirthdayPickerProps, Button, type ButtonAsChildProps, type ButtonComponentProps, type ButtonProps, type ButtonSize, type ButtonVariant, CheckboxInput, type CheckboxInputProps, Field, type FieldHintPlacement, type FieldProps, Form, FormActions, type FormActionsProps, FormConsent, type FormConsentProps, type FormProps, FormSubmit, Input, type InputProps, type InputSize, PHONE_MASK, PhoneInput, type PhoneInputProps, RadioGroup, type RadioGroupProps, RadioInput, type RadioInputProps, Spinner, type SpinnerPosition, type SpinnerProps, TextArea, type TextAreaProps, type TextAreaSize };
package/dist/index.d.ts CHANGED
@@ -4,12 +4,18 @@ import { CheckboxInput, CheckboxInputProps } from "./components/checkbox/checkbo
4
4
  import "./components/checkbox/index.js";
5
5
  import { Field, FieldHintPlacement, FieldProps } from "./components/field/field.js";
6
6
  import "./components/field/index.js";
7
+ import { Form, FormActions, FormActionsProps, FormConsent, FormConsentProps, FormProps, FormSubmit } from "./components/form/form.js";
8
+ import "./components/form/index.js";
9
+ import { BirthdayPicker, BirthdayPickerProps } from "./components/birthday-picker/birthday-picker.js";
10
+ import "./components/birthday-picker/index.js";
7
11
  import { Input, InputProps, InputSize } from "./components/input/input.js";
8
12
  import "./components/input/index.js";
9
13
  import { RadioGroup, RadioGroupProps, RadioInput, RadioInputProps } from "./components/radio/radio.js";
10
14
  import "./components/radio/index.js";
15
+ import { PHONE_MASK, PhoneInput, PhoneInputProps } from "./components/phone-input/phone-input.js";
16
+ import "./components/phone-input/index.js";
11
17
  import { Spinner, SpinnerPosition, SpinnerProps } from "./components/spinner/spinner.js";
12
18
  import "./components/spinner/index.js";
13
19
  import { TextArea, TextAreaProps, TextAreaSize } from "./components/textarea/textarea.js";
14
20
  import "./components/textarea/index.js";
15
- export { Button, type ButtonAsChildProps, type ButtonComponentProps, type ButtonProps, type ButtonSize, type ButtonVariant, CheckboxInput, type CheckboxInputProps, Field, type FieldHintPlacement, type FieldProps, Input, type InputProps, type InputSize, RadioGroup, type RadioGroupProps, RadioInput, type RadioInputProps, Spinner, type SpinnerPosition, type SpinnerProps, TextArea, type TextAreaProps, type TextAreaSize };
21
+ export { BirthdayPicker, type BirthdayPickerProps, Button, type ButtonAsChildProps, type ButtonComponentProps, type ButtonProps, type ButtonSize, type ButtonVariant, CheckboxInput, type CheckboxInputProps, Field, type FieldHintPlacement, type FieldProps, Form, FormActions, type FormActionsProps, FormConsent, type FormConsentProps, type FormProps, FormSubmit, Input, type InputProps, type InputSize, PHONE_MASK, PhoneInput, type PhoneInputProps, RadioGroup, type RadioGroupProps, RadioInput, type RadioInputProps, Spinner, type SpinnerPosition, type SpinnerProps, TextArea, type TextAreaProps, type TextAreaSize };
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import { Button } from "./components/button/button.js";
2
2
  import { CheckboxInput } from "./components/checkbox/checkbox.js";
3
3
  import { Field } from "./components/field/field.js";
4
+ import { Form, FormActions, FormConsent, FormSubmit } from "./components/form/form.js";
4
5
  import { Input } from "./components/input/input.js";
6
+ import { BirthdayPicker } from "./components/birthday-picker/birthday-picker.js";
5
7
  import { RadioGroup, RadioInput } from "./components/radio/radio.js";
8
+ import { PHONE_MASK, PhoneInput } from "./components/phone-input/phone-input.js";
6
9
  import { Spinner } from "./components/spinner/spinner.js";
7
10
  import { TextArea } from "./components/textarea/textarea.js";
8
11
  import "./styles/vars.scss";
9
- export { Button, CheckboxInput, Field, Input, RadioGroup, RadioInput, Spinner, TextArea };
12
+ export { BirthdayPicker, Button, CheckboxInput, Field, Form, FormActions, FormConsent, FormSubmit, Input, PHONE_MASK, PhoneInput, RadioGroup, RadioInput, Spinner, TextArea };
@@ -18,7 +18,7 @@
18
18
  // Ховер outline. Выключенный контрол и вторичный текст/иконка.
19
19
  --color-secondary: #f7f7f7;
20
20
  --color-muted: #e5e5e5;
21
- --color-muted-foreground: #727272;
21
+ --color-muted-foreground: #808080; // 727272
22
22
 
23
23
  --color-border: color-mix(in srgb, var(--color-foreground) 10%, transparent);
24
24
  --color-input: #d9d9d9;
@@ -30,7 +30,7 @@
30
30
  --color-sidebar: color-mix(in srgb, var(--color-foreground) 3%, transparent);
31
31
 
32
32
  // Акцент, ошибка, успех. Текст на акценте отдельный: в тёмной теме primary-foreground инвертируется, этот нет.
33
- --color-accent: #002bff;
33
+ --color-accent: #0000ff;
34
34
  --color-accent-foreground: #fff;
35
35
  --color-destructive: #ff0000;
36
36
  --color-success: #00a66f;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@de-kit/st-ui",
3
- "version": "0.1.11",
3
+ "version": "0.1.14",
4
4
  "description": "React-компоненты splittest: глобальный SCSS и токены из основного фронтенда",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -48,12 +48,15 @@
48
48
  "publishConfig": {
49
49
  "access": "public"
50
50
  },
51
+ "dependencies": {
52
+ "react-imask": "^7.6.1"
53
+ },
51
54
  "devDependencies": {
52
55
  "@arethetypeswrong/cli": "^0.18.5",
53
56
  "@changesets/cli": "^3.0.3",
54
- "@storybook/addon-a11y": "^10.6.3",
55
- "@storybook/addon-docs": "^10.6.3",
56
- "@storybook/react-vite": "^10.6.3",
57
+ "@storybook/addon-a11y": "^10.6.5",
58
+ "@storybook/addon-docs": "^10.6.5",
59
+ "@storybook/react-vite": "^10.6.5",
57
60
  "@testing-library/dom": "^10.4.2",
58
61
  "@testing-library/jest-dom": "^7.0.1",
59
62
  "@testing-library/react": "^16.3.3",
@@ -69,7 +72,7 @@
69
72
  "react": "^19.3.1",
70
73
  "react-dom": "^19.3.1",
71
74
  "sass": "^1.93.2",
72
- "storybook": "^10.6.3",
75
+ "storybook": "^10.6.5",
73
76
  "tsdown": "^0.23.2",
74
77
  "typescript": "^6.0.3",
75
78
  "vite": "^8.3.5",