@iskra-ui/react 0.1.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/LICENCE.md +79 -0
  2. package/dist/components/Alert/Alert.d.ts +18 -0
  3. package/dist/components/Alert/Alert.d.ts.map +1 -0
  4. package/dist/components/Alert/index.d.ts +3 -0
  5. package/dist/components/Alert/index.d.ts.map +1 -0
  6. package/dist/components/Avatar/Avatar.d.ts +16 -0
  7. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  8. package/dist/components/Avatar/index.d.ts +3 -0
  9. package/dist/components/Avatar/index.d.ts.map +1 -0
  10. package/dist/components/Badge/Badge.d.ts +21 -0
  11. package/dist/components/Badge/Badge.d.ts.map +1 -0
  12. package/dist/components/Badge/index.d.ts +3 -0
  13. package/dist/components/Badge/index.d.ts.map +1 -0
  14. package/dist/components/Button/Button.d.ts +26 -0
  15. package/dist/components/Button/Button.d.ts.map +1 -0
  16. package/dist/components/Button/index.d.ts +3 -0
  17. package/dist/components/Button/index.d.ts.map +1 -0
  18. package/dist/components/Card/Card.d.ts +21 -0
  19. package/dist/components/Card/Card.d.ts.map +1 -0
  20. package/dist/components/Card/index.d.ts +3 -0
  21. package/dist/components/Card/index.d.ts.map +1 -0
  22. package/dist/components/Checkbox/Checkbox.d.ts +12 -0
  23. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  24. package/dist/components/Checkbox/index.d.ts +3 -0
  25. package/dist/components/Checkbox/index.d.ts.map +1 -0
  26. package/dist/components/EmptyState/EmptyState.d.ts +12 -0
  27. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -0
  28. package/dist/components/EmptyState/index.d.ts +3 -0
  29. package/dist/components/EmptyState/index.d.ts.map +1 -0
  30. package/dist/components/FormField/FormField.d.ts +27 -0
  31. package/dist/components/FormField/FormField.d.ts.map +1 -0
  32. package/dist/components/FormField/index.d.ts +3 -0
  33. package/dist/components/FormField/index.d.ts.map +1 -0
  34. package/dist/components/Icon/Icon.d.ts +21 -0
  35. package/dist/components/Icon/Icon.d.ts.map +1 -0
  36. package/dist/components/Icon/index.d.ts +3 -0
  37. package/dist/components/Icon/index.d.ts.map +1 -0
  38. package/dist/components/IconButton/IconButton.d.ts +11 -0
  39. package/dist/components/IconButton/IconButton.d.ts.map +1 -0
  40. package/dist/components/IconButton/index.d.ts +3 -0
  41. package/dist/components/IconButton/index.d.ts.map +1 -0
  42. package/dist/components/Modal/Modal.d.ts +24 -0
  43. package/dist/components/Modal/Modal.d.ts.map +1 -0
  44. package/dist/components/Modal/index.d.ts +3 -0
  45. package/dist/components/Modal/index.d.ts.map +1 -0
  46. package/dist/components/Radio/Radio.d.ts +32 -0
  47. package/dist/components/Radio/Radio.d.ts.map +1 -0
  48. package/dist/components/Radio/index.d.ts +3 -0
  49. package/dist/components/Radio/index.d.ts.map +1 -0
  50. package/dist/components/Sidebar/Sidebar.d.ts +23 -0
  51. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
  52. package/dist/components/Sidebar/index.d.ts +3 -0
  53. package/dist/components/Sidebar/index.d.ts.map +1 -0
  54. package/dist/components/Skeleton/Skeleton.d.ts +14 -0
  55. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
  56. package/dist/components/Skeleton/index.d.ts +3 -0
  57. package/dist/components/Skeleton/index.d.ts.map +1 -0
  58. package/dist/components/Spinner/Spinner.d.ts +11 -0
  59. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  60. package/dist/components/Spinner/index.d.ts +3 -0
  61. package/dist/components/Spinner/index.d.ts.map +1 -0
  62. package/dist/components/Switch/Switch.d.ts +11 -0
  63. package/dist/components/Switch/Switch.d.ts.map +1 -0
  64. package/dist/components/Switch/index.d.ts +3 -0
  65. package/dist/components/Switch/index.d.ts.map +1 -0
  66. package/dist/components/Table/Table.d.ts +33 -0
  67. package/dist/components/Table/Table.d.ts.map +1 -0
  68. package/dist/components/Table/index.d.ts +3 -0
  69. package/dist/components/Table/index.d.ts.map +1 -0
  70. package/dist/components/Tabs/Tabs.d.ts +22 -0
  71. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  72. package/dist/components/Tabs/index.d.ts +3 -0
  73. package/dist/components/Tabs/index.d.ts.map +1 -0
  74. package/dist/components/TextField/TextField.d.ts +23 -0
  75. package/dist/components/TextField/TextField.d.ts.map +1 -0
  76. package/dist/components/TextField/index.d.ts +3 -0
  77. package/dist/components/TextField/index.d.ts.map +1 -0
  78. package/dist/components/Textarea/Textarea.d.ts +15 -0
  79. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  80. package/dist/components/Textarea/index.d.ts +3 -0
  81. package/dist/components/Textarea/index.d.ts.map +1 -0
  82. package/dist/components/Toast/Toast.d.ts +24 -0
  83. package/dist/components/Toast/Toast.d.ts.map +1 -0
  84. package/dist/components/Toast/index.d.ts +3 -0
  85. package/dist/components/Toast/index.d.ts.map +1 -0
  86. package/dist/index.cjs +2 -0
  87. package/dist/index.cjs.map +1 -0
  88. package/dist/index.d.ts +23 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +1472 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/styles.css +2 -0
  93. package/dist/utils/cx.d.ts +3 -0
  94. package/dist/utils/cx.d.ts.map +1 -0
  95. package/dist/utils/useFocusTrap.d.ts +8 -0
  96. package/dist/utils/useFocusTrap.d.ts.map +1 -0
  97. package/package.json +60 -0
package/LICENCE.md ADDED
@@ -0,0 +1,79 @@
1
+ # Лицензии
2
+
3
+ Документ фиксирует правовой статус кода дизайн-системы **Искра.DCI** и сторонних компонентов, которые **поставляются потребителям** вместе с npm-пакетами `@iskra-ui/*`.
4
+
5
+ ---
6
+
7
+ ## Пакеты `@iskra-ui/*`
8
+
9
+ | Пакет | Статус |
10
+ | --------------------- | ---------------------------------------------- |
11
+ | `@iskra-ui/tokens` | Проприетарное ПО |
12
+ | `@iskra-ui/styles` | Проприетарное ПО + сторонние шрифты (см. ниже) |
13
+ | `@iskra-ui/icons` | Проприетарное ПО |
14
+ | `@iskra-ui/core` | Проприетарное ПО |
15
+ | `@iskra-ui/react` | Проприетарное ПО |
16
+ | `@iskra-ui/vue` | Проприетарное ПО |
17
+ | `@iskra-ui/dci-react` | Проприетарное ПО |
18
+
19
+ Исходный код, дизайн-токены, компоненты, документация и торговые обозначения **Искра.DCI** / **ИСКРА.DCI** принадлежат правообладателю платформы. Все права защищены.
20
+
21
+ Пакеты публикуются в публичном npm-реестре (`publishConfig.access: public`). Использование, копирование, распространение и модификация **вне условий, согласованных с правообладателем**, запрещены.
22
+
23
+ Приватные пакеты монорепозитория (`@iskra-ui/eslint-config`, `@iskra-ui/tsconfig`, `@iskra-ui/docs-react`) распространяются только внутри репозитория и не публикуются в npm.
24
+
25
+ ---
26
+
27
+ ## Сторонние компоненты в составе поставки
28
+
29
+ ### Шрифты (`@iskra-ui/styles`)
30
+
31
+ В бандл `@iskra-ui/styles` встроены variable-шрифты (self-hosted, без CDN):
32
+
33
+ | Шрифт | Файл | Лицензия |
34
+ | ---------------------------------------------------- | ---------------------------------- | --------------------------------------------------------- |
35
+ | [Inter](https://rsms.me/inter/) | `Inter-VariableFont_opsz_wght.ttf` | [SIL Open Font License 1.1](https://openfontlicense.org/) |
36
+ | [JetBrains Mono](https://www.jetbrains.com/lp/mono/) | `JetBrainsMono_wght_.ttf` | [SIL Open Font License 1.1](https://openfontlicense.org/) |
37
+
38
+ Шрифты копируются в `packages/styles/dist/fonts/` при сборке пакета. При распространении производных продуктов необходимо сохранять уведомления OFL для этих файлов.
39
+
40
+ **Краткое условие OFL 1.1:** шрифты можно использовать, изучать, модифицировать и распространять при условии, что производные шрифты не продаются отдельно и что уведомление об авторских правах и лицензии OFL сохраняется в составе дистрибутива.
41
+
42
+ ### Иконки (`@iskra-ui/icons`)
43
+
44
+ Набор `@iskra-ui/icons` — **оригинальная SVG-разметка** Искра.DCI (16×16, stroke 1.5px), нарисованная под геометрию outline-иконок, принятую в бренде.
45
+
46
+ Геометрия согласована со стилем:
47
+
48
+ | Источник | Лицензия | Примечание |
49
+ | --------------------------------------------- | -------- | ---------------------------------------------------------------------- |
50
+ | [Feather Icons](https://feathericons.com/) | MIT | Референс по stroke и сетке; глифы в репозитории не копируются дословно |
51
+ | [Heroicons](https://heroicons.com/) (outline) | MIT | Допустимый заменитель при отсутствии глифа в наборе |
52
+
53
+ MIT-лицензии Feather Icons и Heroicons **не распространяются** на код `@iskra-ui/icons`, но указаны как происхождение визуального языка. При публикации открытых форков или выноса иконок в отдельный OSS-пакет — сверьтесь с юридической службой правообладателя.
54
+
55
+ ### Инструменты разработки (не входят в npm-поставку)
56
+
57
+ Зависимости dev/build (React, Vue, Vite, Storybook, ESLint, Turbo, Changesets и др.) подчиняются лицензиям соответствующих проектов. Они **не включаются** в publishable-артефакты `@iskra-ui/*` и в этом документе не перечисляются.
58
+
59
+ ---
60
+
61
+ ## Торговые марки
62
+
63
+ **Искра**, **Искра.DCI**, **ИСКРА.DCI**, логотип-искра и маскот **Бит** — элементы бренда платформы. Их использование вне продуктов правообладателя регулируется отдельно от лицензии на исходный код.
64
+
65
+ Названия **React**, **Vue**, **pnpm**, **Storybook** и других сторонних проектов принадлежат их владельцам.
66
+
67
+ ---
68
+
69
+ ## Вопросы по лицензированию
70
+
71
+ По условиям использования пакетов `@iskra-ui/*`, white-label брендингу и включению компонентов в сторонние продукты обращайтесь к правообладателю платформы Искра.DCI.
72
+
73
+ ---
74
+
75
+ ## См. также
76
+
77
+ - [README.md](README.md) — обзор монорепозитория
78
+ - [docs/PACKAGES.md](docs/PACKAGES.md) — состав поставки пакетов
79
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — разработка и релизы
@@ -0,0 +1,18 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import './Alert.css';
3
+ export type AlertVariant = 'info' | 'success' | 'warning' | 'error';
4
+ export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
5
+ variant?: AlertVariant;
6
+ title?: ReactNode;
7
+ /** Replace the default status icon (or pass null to hide it). */
8
+ icon?: ReactNode | null;
9
+ closable?: boolean;
10
+ onClose?: () => void;
11
+ closeLabel?: string;
12
+ }
13
+ /**
14
+ * Alert — inline contextual message. Errors/warnings announce assertively
15
+ * (`role="alert"`); info/success use a polite `role="status"`.
16
+ */
17
+ export declare function Alert({ variant, title, icon, closable, onClose, closeLabel, children, className, ...rest }: AlertProps): import("react").JSX.Element;
18
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AASpE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC/E,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,OAAgB,EAChB,KAAK,EACL,IAAI,EACJ,QAAgB,EAChB,OAAO,EACP,UAAsB,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,UAAU,+BAqBZ"}
@@ -0,0 +1,3 @@
1
+ export { Alert } from './Alert.js';
2
+ export type { AlertProps, AlertVariant } from './Alert.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import './Avatar.css';
3
+ export type AvatarSize = 'sm' | 'md' | 'lg';
4
+ export type AvatarShape = 'circle' | 'square';
5
+ export type AvatarStatus = 'online' | 'warn' | 'off' | 'error';
6
+ export interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
7
+ /** Display name — used for the accessible label and initials fallback. */
8
+ name?: string;
9
+ src?: string;
10
+ size?: AvatarSize;
11
+ shape?: AvatarShape;
12
+ status?: AvatarStatus;
13
+ }
14
+ /** Avatar — user/device representation with image or initials fallback + status dot. */
15
+ export declare function Avatar({ name, src, size, shape, status, className, ...rest }: AvatarProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,eAAe,CAAC;IAClE,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAQD,wFAAwF;AACxF,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,GAAG,EACH,IAAW,EACX,KAAgB,EAChB,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,WAAW,+BAoBb"}
@@ -0,0 +1,3 @@
1
+ export { Avatar } from './Avatar.js';
2
+ export type { AvatarProps, AvatarSize, AvatarShape, AvatarStatus } from './Avatar.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import './Badge.css';
3
+ export type BadgeVariant = 'success' | 'warning' | 'error' | 'info' | 'accent' | 'neutral';
4
+ export type BadgeSize = 's' | 'm';
5
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
6
+ variant?: BadgeVariant;
7
+ size?: BadgeSize;
8
+ /** Show a leading status dot. */
9
+ dot?: boolean;
10
+ icon?: ReactNode;
11
+ }
12
+ /** Badge — informational status pill. Not interactive by default. */
13
+ export declare function Badge({ variant, size, dot, icon, children, className, ...rest }: BadgeProps): import("react").JSX.Element;
14
+ export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
15
+ accent?: boolean;
16
+ onRemove?: () => void;
17
+ removeLabel?: string;
18
+ }
19
+ /** Tag — mono technical label, optionally removable (chip). */
20
+ export declare function Tag({ accent, onRemove, removeLabel, children, className, ...rest }: TagProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3F,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;AAElC,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,EACpB,OAAmB,EACnB,IAAU,EACV,GAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,UAAU,+BAQZ;AAED,MAAM,WAAW,QAAS,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+DAA+D;AAC/D,wBAAgB,GAAG,CAAC,EAClB,MAAc,EACd,QAAQ,EACR,WAAuB,EACvB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,QAAQ,+BAuBV"}
@@ -0,0 +1,3 @@
1
+ export { Badge, Tag } from './Badge.js';
2
+ export type { BadgeProps, BadgeVariant, BadgeSize, TagProps } from './Badge.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type ButtonHTMLAttributes, type ReactNode } from 'react';
2
+ import './Button.css';
3
+ export type ButtonVariant = 'primary' | 'outline' | 'secondary' | 'ghost' | 'destructive';
4
+ export type ButtonSize = 's' | 'm' | 'l';
5
+ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
6
+ /** Visual variant. */
7
+ variant?: ButtonVariant;
8
+ /** Control size — s·m·l map to 28·32·36px height. */
9
+ size?: ButtonSize;
10
+ /** Icon rendered before the label. */
11
+ iconBefore?: ReactNode;
12
+ /** Icon rendered after the label. */
13
+ iconAfter?: ReactNode;
14
+ /** Square icon-only button (requires an accessible name via aria-label). */
15
+ iconOnly?: boolean;
16
+ /** Shows a spinner and disables interaction. */
17
+ loading?: boolean;
18
+ /** Stretches to the full width of its container. */
19
+ fullWidth?: boolean;
20
+ }
21
+ /**
22
+ * Button — primary action control. Always renders a native `<button>`.
23
+ * For toggle buttons set `aria-pressed`; for icon-only buttons set `aria-label`.
24
+ */
25
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
26
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACzF,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,2GAsCjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Button } from './Button.js';
2
+ export type { ButtonProps, ButtonVariant, ButtonSize } from './Button.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import './Card.css';
3
+ export type CardPadding = 'none' | 's' | 'm' | 'l';
4
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
5
+ padding?: CardPadding;
6
+ elevated?: boolean;
7
+ /** Hoverable/focusable affordance. Set `onClick` and an accessible name. */
8
+ interactive?: boolean;
9
+ selected?: boolean;
10
+ }
11
+ /** Card — surface container. Use Card.Header / Card.Body / Card.Footer for structured content. */
12
+ export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>> & {
13
+ Header: typeof CardHeader;
14
+ Body: typeof CardBody;
15
+ Footer: typeof CardFooter;
16
+ };
17
+ declare function CardHeader({ className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
18
+ declare function CardBody({ className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
19
+ declare function CardFooter({ className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnD,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kGAAkG;AAClG,eAAO,MAAM,IAAI,EAmBX,KAAK,CAAC,yBAAyB,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG;IACvF,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,IAAI,EAAE,OAAO,QAAQ,CAAC;IACtB,MAAM,EAAE,OAAO,UAAU,CAAC;CAC3B,CAAC;AAEF,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEzE;AACD,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEvE;AACD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEzE"}
@@ -0,0 +1,3 @@
1
+ export { Card } from './Card.js';
2
+ export type { CardProps, CardPadding } from './Card.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import './Checkbox.css';
3
+ export type CheckboxSize = 's' | 'm';
4
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
5
+ indeterminate?: boolean;
6
+ size?: CheckboxSize;
7
+ label?: ReactNode;
8
+ description?: ReactNode;
9
+ }
10
+ /** Checkbox — checked / indeterminate / disabled, with optional label + description. */
11
+ export declare function Checkbox({ checked, defaultChecked, indeterminate, disabled, size, label, description, onChange, id, className, ...rest }: CheckboxProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=Checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3F,OAAO,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC;AAErC,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB;IACC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,cAAc,EACd,aAAqB,EACrB,QAAgB,EAChB,IAAU,EACV,KAAK,EACL,WAAW,EACX,QAAQ,EACR,EAAE,EACF,SAAS,EACT,GAAG,IAAI,EACR,EAAE,aAAa,+BA4Df"}
@@ -0,0 +1,3 @@
1
+ export { Checkbox } from './Checkbox.js';
2
+ export type { CheckboxProps, CheckboxSize } from './Checkbox.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import './EmptyState.css';
3
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
4
+ icon?: ReactNode;
5
+ title: ReactNode;
6
+ description?: ReactNode;
7
+ /** Primary action (usually a Button). */
8
+ action?: ReactNode;
9
+ }
10
+ /** EmptyState — zero-data placeholder with optional icon, copy and a call to action. */
11
+ export declare function EmptyState({ icon, title, description, action, className, ...rest }: EmptyStateProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,eAAe,+BAajB"}
@@ -0,0 +1,3 @@
1
+ export { EmptyState } from './EmptyState.js';
2
+ export type { EmptyStateProps } from './EmptyState.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import './FormField.css';
3
+ interface ControlAriaProps {
4
+ id?: string;
5
+ 'aria-describedby'?: string;
6
+ 'aria-invalid'?: boolean;
7
+ 'aria-required'?: boolean;
8
+ }
9
+ export interface FormFieldProps {
10
+ label?: ReactNode;
11
+ hint?: ReactNode;
12
+ error?: ReactNode | boolean;
13
+ required?: boolean;
14
+ /** Provide an explicit id; otherwise one is generated and wired to the control. */
15
+ id?: string;
16
+ /** A single form control. Receives id + aria-* automatically. */
17
+ children: ReactElement<ControlAriaProps>;
18
+ className?: string;
19
+ }
20
+ /**
21
+ * FormField — labels a single control and wires `htmlFor`, `aria-describedby`,
22
+ * `aria-invalid` and `aria-required`. Pairs with raw inputs or any control that
23
+ * forwards id/aria props.
24
+ */
25
+ export declare function FormField({ label, hint, error, required, id, children, className, }: FormFieldProps): import("react").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=FormField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/FormField/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,iBAAiB,CAAC;AAEzB,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAgB,EAChB,EAAE,EACF,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAmChB"}
@@ -0,0 +1,3 @@
1
+ export { FormField } from './FormField.js';
2
+ export type { FormFieldProps } from './FormField.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type CSSProperties, type SVGProps } from 'react';
2
+ import { type IconName } from '@iskra-ui/icons';
3
+ export type { IconName };
4
+ /** All registered icon names — handy for tooling / showcases. */
5
+ export declare const ICON_NAMES: ("chevron-down" | "chevron-up" | "chevron-left" | "chevron-right" | "chevrons-left" | "chevrons-right" | "arrow-up" | "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up-right" | "external" | "menu" | "more" | "more-vertical" | "check" | "close" | "plus" | "minus" | "check-circle" | "x-circle" | "plus-circle" | "minus-circle" | "success" | "warning" | "error" | "info" | "help" | "search" | "filter" | "sliders" | "refresh" | "sync" | "undo" | "redo" | "trash" | "edit" | "copy" | "save" | "download" | "upload" | "share" | "link" | "clipboard" | "folder" | "file" | "file-text" | "eye" | "eye-off" | "bell" | "bell-off" | "lock" | "unlock" | "shield" | "shield-check" | "key" | "zap" | "activity" | "settings" | "user" | "users" | "user-plus" | "calendar" | "clock" | "history" | "server" | "database" | "cloud" | "cpu" | "globe" | "wifi" | "terminal" | "code" | "git-branch" | "layers" | "grid" | "list" | "tag" | "bookmark" | "star" | "pin" | "mail" | "message" | "sun" | "moon" | "power" | "log-out" | "log-in")[];
6
+ export interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'name'> {
7
+ /** Icon name from the canonical set. */
8
+ name: IconName;
9
+ /** Size — number (px) or any CSS length. Defaults to 1em (scales with text). */
10
+ size?: number | string;
11
+ strokeWidth?: number;
12
+ /** Accessible name. When omitted the icon is decorative (aria-hidden). */
13
+ title?: string;
14
+ style?: CSSProperties;
15
+ }
16
+ /**
17
+ * Icon — single shared 16×16 / 1.5px-stroke outline set. Monochrome, inherits
18
+ * `currentColor`. Provide `title` to expose an accessible name.
19
+ */
20
+ export declare function Icon({ name, size, strokeWidth, title, className, style, ...rest }: IconProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAElE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,iEAAiE;AACjE,eAAO,MAAM,UAAU,igCAAY,CAAC;AAEpC,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACtE,wCAAwC;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,IAAY,EACZ,WAAiB,EACjB,KAAK,EACL,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,SAAS,+BAsBX"}
@@ -0,0 +1,3 @@
1
+ export { Icon, ICON_NAMES } from './Icon.js';
2
+ export type { IconProps, IconName } from './Icon.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ButtonProps } from '../Button/Button.js';
3
+ export interface IconButtonProps extends Omit<ButtonProps, 'iconOnly' | 'children' | 'iconBefore' | 'iconAfter'> {
4
+ /** The icon to render. */
5
+ icon: ReactNode;
6
+ /** Accessible name — required because there is no visible text. */
7
+ 'aria-label': string;
8
+ }
9
+ /** IconButton — square, icon-only button. Always requires an accessible name. */
10
+ export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
11
+ //# sourceMappingURL=IconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,WAAW,EACX,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CACrD;IACC,0BAA0B;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,iFAAiF;AACjF,eAAO,MAAM,UAAU,+GASrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { IconButton } from './IconButton.js';
2
+ export type { IconButtonProps } from './IconButton.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Modal.css';
3
+ export type ModalSize = 's' | 'm' | 'l';
4
+ export interface ModalProps {
5
+ open: boolean;
6
+ onClose: () => void;
7
+ title?: ReactNode;
8
+ description?: ReactNode;
9
+ children?: ReactNode;
10
+ footer?: ReactNode;
11
+ size?: ModalSize;
12
+ closeOnEsc?: boolean;
13
+ closeOnOverlayClick?: boolean;
14
+ showClose?: boolean;
15
+ closeLabel?: string;
16
+ className?: string;
17
+ }
18
+ /**
19
+ * Modal — accessible dialog rendered in a portal. Implements the WAI-ARIA dialog
20
+ * pattern: `role="dialog"`, `aria-modal`, focus trap, Esc to close, focus
21
+ * restoration, and an `aria-labelledby`/`aria-describedby` association.
22
+ */
23
+ export declare function Modal({ open, onClose, title, description, children, footer, size, closeOnEsc, closeOnOverlayClick, showClose, closeLabel, className, }: ModalProps): import("react").ReactPortal | null;
24
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,IAAU,EACV,UAAiB,EACjB,mBAA0B,EAC1B,SAAgB,EAChB,UAAsB,EACtB,SAAS,GACV,EAAE,UAAU,sCAsFZ"}
@@ -0,0 +1,3 @@
1
+ export { Modal } from './Modal.js';
2
+ export type { ModalProps, ModalSize } from './Modal.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import './Radio.css';
3
+ export type RadioSize = 's' | 'm';
4
+ export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
5
+ value: string;
6
+ size?: RadioSize;
7
+ label?: ReactNode;
8
+ description?: ReactNode;
9
+ }
10
+ /** Radio — single radio button (usually rendered by RadioGroup). */
11
+ export declare function Radio({ value, checked, defaultChecked, name, disabled, size, label, description, onChange, id, className, ...rest }: RadioProps): import("react").JSX.Element;
12
+ export interface RadioOption {
13
+ value: string;
14
+ label?: ReactNode;
15
+ description?: ReactNode;
16
+ disabled?: boolean;
17
+ }
18
+ export interface RadioGroupProps {
19
+ name?: string;
20
+ value?: string;
21
+ defaultValue?: string;
22
+ onChange?: (value: string) => void;
23
+ options?: RadioOption[];
24
+ size?: RadioSize;
25
+ orientation?: 'vertical' | 'horizontal';
26
+ disabled?: boolean;
27
+ className?: string;
28
+ children?: ReactNode;
29
+ }
30
+ /** RadioGroup — manages single selection across its Radios. Controlled or uncontrolled. */
31
+ export declare function RadioGroup({ name, value, defaultValue, onChange, options, size, orientation, disabled, className, children, }: RadioGroupProps): import("react").JSX.Element;
32
+ //# sourceMappingURL=Radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../src/components/Radio/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,mBAAmB,EAExB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;AAElC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,oEAAoE;AACpE,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,OAAO,EACP,cAAc,EACd,IAAI,EACJ,QAAgB,EAChB,IAAU,EACV,KAAK,EACL,WAAW,EACX,QAAQ,EACR,EAAE,EACF,SAAS,EACT,GAAG,IAAI,EACR,EAAE,UAAU,+BA+BZ;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,IAAU,EACV,WAAwB,EACxB,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,+BAwCjB"}
@@ -0,0 +1,3 @@
1
+ export { Radio, RadioGroup } from './Radio.js';
2
+ export type { RadioProps, RadioGroupProps, RadioOption, RadioSize } from './Radio.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Radio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ import './Sidebar.css';
2
+ export type SidebarVariant = 'operator' | 'admin';
3
+ export type SidebarTheme = '' | 'theme-cold' | 'theme-warm';
4
+ export interface SidebarProps {
5
+ /** Icon-only narrow mode (52px). */
6
+ collapsed?: boolean;
7
+ /** Flip `collapsed` in host state. */
8
+ onToggle?: () => void;
9
+ /** Highlights item + sets aria-current. */
10
+ activeItem?: string;
11
+ /** Called on item click. */
12
+ onNavigate?: (id: string) => void;
13
+ /** Admin adds Пользователи / Аудит / Система. */
14
+ variant?: SidebarVariant;
15
+ /** Theme scope class (dark by default). */
16
+ theme?: SidebarTheme;
17
+ /** Numeric badges keyed by nav item id, e.g. { alerts: 3 }. */
18
+ badges?: Record<string, number>;
19
+ className?: string;
20
+ }
21
+ /** Sidebar — shared navigation for operator and admin frontends. */
22
+ export declare function Sidebar({ collapsed, onToggle, activeItem, onNavigate, variant, theme, badges, className, }: SidebarProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AAEvB,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,YAAY,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iDAAiD;IACjD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgOD,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,EACtB,SAAiB,EACjB,QAAQ,EACR,UAAuB,EACvB,UAAU,EACV,OAAoB,EACpB,KAAU,EACV,MAAW,EACX,SAAc,GACf,EAAE,YAAY,+BAgHd"}
@@ -0,0 +1,3 @@
1
+ export { Sidebar } from './Sidebar.js';
2
+ export type { SidebarProps, SidebarVariant, SidebarTheme } from './Sidebar.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import './Skeleton.css';
3
+ export type SkeletonVariant = 'text' | 'rect' | 'circle';
4
+ export interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
5
+ variant?: SkeletonVariant;
6
+ width?: number | string;
7
+ height?: number | string;
8
+ /** For variant="text": number of lines to render. */
9
+ lines?: number;
10
+ animated?: boolean;
11
+ }
12
+ /** Skeleton — content placeholder shown while data loads. Decorative (aria-hidden). */
13
+ export declare function Skeleton({ variant, width, height, lines, animated, className, style, ...rest }: SkeletonProps): import("react").JSX.Element;
14
+ //# sourceMappingURL=Skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,gBAAgB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,EACvB,OAAgB,EAChB,KAAK,EACL,MAAM,EACN,KAAS,EACT,QAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,aAAa,+BAmBf"}
@@ -0,0 +1,3 @@
1
+ export { Skeleton } from './Skeleton.js';
2
+ export type { SkeletonProps, SkeletonVariant } from './Skeleton.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import './Spinner.css';
3
+ export type SpinnerSize = 's' | 'm' | 'l';
4
+ export interface SpinnerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
5
+ size?: SpinnerSize;
6
+ /** Accessible label announced to screen readers. */
7
+ label?: string;
8
+ }
9
+ /** Spinner — indeterminate loading indicator with an accessible label. */
10
+ export declare function Spinner({ size, label, className, ...rest }: SpinnerProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=Spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE1C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAChF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,EAAE,IAAU,EAAE,KAAmB,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,+BAO5F"}
@@ -0,0 +1,3 @@
1
+ export { Spinner } from './Spinner.js';
2
+ export type { SpinnerProps, SpinnerSize } from './Spinner.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}